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