]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/serial/subscription/issuance.js
3f4dfcffa89ced72b4dc781bfde7a36dab8c36ab
[working/Evergreen.git] / Open-ILS / web / js / ui / default / serial / subscription / issuance.js
1 dojo.require("dijit.form.DateTextBox");
2
3 function fresh_scap_selector(grid) {
4     /* this really needs to be sync, not async */
5     pcrud.search(
6         "scap", {"subscription": sub_id, "active": "t"}, {
7             "timeout": 10,
8             "oncomplete": function(r) {
9                 var data = scap.toStoreData(openils.Util.readResponse(r));
10                 var selector = new dijit.form.FilteringSelect(
11                     {
12                         "store": new dojo.data.ItemFileReadStore({"data":data}),
13                         "searchAttr": "id"
14                     },
15                     dojo.create("span")
16                 );
17                 selector.shove = {
18                     "create": data.items.length ? data.items[0].id : ""
19                 };
20                 dojo.connect(
21                     selector, "onChange", null, function() {
22                         if (this.item) {
23                             var widget =
24                                 grid.overrideEditWidgets.holding_type;
25                             widget.attr("value", this.item.type);
26                             widget.attr("disabled", true);
27                         }
28                     }
29                 );
30
31                 grid.overrideEditWidgets.caption_and_pattern = selector;
32                 if (grid.overrideEditWidgets.holding_code) {
33                     grid.overrideEditWidgets.holding_code.update_scap_selector(
34                         selector
35                     );
36                 } else {
37                     grid.overrideEditWidgets.holding_code =
38                         new openils.widget.HoldingCode({
39                             "scap_selector": selector
40                         });
41                     grid.overrideEditWidgets.holding_code.shove = {
42                         "create": "[]"
43                     };
44                     grid.overrideEditWidgets.holding_code.startup();
45                 }
46
47                 grid.overrideEditWidgets.date_published =
48                     new dijit.form.DateTextBox();
49                 grid.overrideEditWidgets.date_published.shove = {};
50                 grid.overrideEditWidgets.holding_code.date_widget =
51                     grid.overrideEditWidgets.date_published;
52             }
53         }
54     );
55 }
56
57 function prepare_prediction_dialog() {
58     if (sub.end_date()) {
59         prediction_dialog_end_date.attr("disabled", false);
60         prediction_dialog_end_date.attr("checked", true);
61     } else {
62         prediction_dialog_end_num.attr("checked", true);
63         prediction_dialog_end_date.attr("disabled", true);
64         prediction_dialog_num_to_predict.focus();
65     }
66     prediction_dialog_submit.attr("disabled", false);
67 }
68
69 function generate_predictions(fields) {
70     var args = {"ssub_id": sub.id()};
71
72     if (fields.end_how == "date") {
73         args.end_date = sub.end_date();
74     } else if ((num = Number(fields.num_to_predict)) > 0)  {
75         args.num_to_predict = num;
76     } else {
77         alert("Go with a whole, positive number."); /* XXX i18n */
78         return;
79     }
80
81     progress_dialog.show(true);
82     try {
83         fieldmapper.standardRequest(
84             ["open-ils.serial", "open-ils.serial.make_predictions"], {
85                 "params": [openils.User.authtoken, args],
86                 "async": true,
87                 "onresponse": function(r) {
88                     openils.Util.readResponse(r); /* tests for events */
89                 },
90                 "oncomplete": function() {
91                     progress_dialog.hide();
92                     iss_grid.refresh();
93                 }
94             }
95         );
96     } catch (E) {
97         alert(E);
98         progess_dialog.hide();
99     }
100 }