1 dojo.require("dijit.form.Button");
2 dojo.require("dijit.form.DateTextBox");
3 dojo.require("dijit.form.TextBox");
4 dojo.require("dijit.form.NumberSpinner");
5 dojo.require("dijit.form.FilteringSelect");
6 dojo.require("openils.widget.PCrudAutocompleteBox");
7 dojo.require("openils.widget.AutoGrid");
8 dojo.require("openils.widget.ProgressDialog");
9 dojo.require("openils.PermaCrud");
10 dojo.require("openils.CGI");
12 var pcrud, cgi, issuance_id;
14 var context_url_param;
16 function load_sitem_grid() {
17 sitem_grid.overrideEditWidgets.status = status_selector;
18 sitem_grid.overrideEditWidgets.status.shove = {}; /* sic */
20 sitem_grid.dataLoader = sitem_data_loader;
21 sitem_grid.dataLoader();
24 function load_siss_display() {
26 "siss", issuance_id, {
27 "onresponse": function(r) {
28 if (r = openils.Util.readResponse(r)) {
29 var link = dojo.byId("siss_label_here");
30 link.onclick = function() {
31 location.href = oilsBasePath +
32 "/serial/subscription?id=" +
33 r.subscription() + "&tab=issuances" +
36 link.innerHTML = r.label();
37 prepare_create_dialog(r.subscription());
44 function sitem_data_loader() {
45 sitem_grid.resetStore();
46 sitem_grid.showLoadProgressIndicator();
48 fieldmapper.standardRequest(
49 ["open-ils.serial", "open-ils.serial.items.by_issuance"], {
51 openils.User.authtoken, issuance_id, {
52 "limit": sitem_grid.displayLimit,
53 "offset": sitem_grid.displayOffset
57 "onresponse": function(r) {
58 var item = openils.Util.readResponse(r);
59 sitem_cache[item.id()] = item;
60 sitem_grid.store.newItem(item.toStoreItem());
62 "oncomplete": function(r) {
63 sitem_grid.hideLoadProgressIndicator();
69 function _get_field(store, item, field) {
71 var id = store.getValue(item, "id");
72 return sitem_cache[id][field]();
75 /* create the get_foo() functions used by our AutoGrid */
76 ["creator", "editor", "stream", "unit"].forEach(
78 window["get_" + field] = function(row_index, item) {
79 return _get_field(this.grid.store, item, field);
84 function format_user(user) {
85 return user ? user.usrname() : "";
88 function format_stream(stream) {
89 return stream ? (stream.routing_label() || "[None]") : ""; /* XXX i18n */
92 function format_unit(unit) {
93 return unit ? (unit.barcode() || "[None]") : ""; /* XXX i18n */
96 function update_sitem_safely(obj, opts, edit_pane) {
97 fieldmapper.standardRequest(
98 ["open-ils.serial", "open-ils.serial.item.update"], {
99 "params": [openils.User.authtoken, obj],
101 "oncomplete": function(r) {
102 if (r = openils.Util.readResponse(r)) {
103 if (edit_pane.onPostSubmit)
104 edit_pane.onPostSubmit(null, [r]);
111 function prepare_create_dialog(sub_id) {
113 "sdist", {"subscription": sub_id}, {
116 "oncomplete": function(r) {
117 if (r = openils.Util.readResponse(r)) {
118 new openils.widget.PCrudAutocompleteBox({
120 "searchAttr": "routing_label",
121 "hasDownArrow": true,
124 "base_filter": {"distribution": r},
125 "honor_retrieve_all": true
127 }, "stream_selector");
134 function create_new_items(form) {
135 var item = new sitem();
137 item.issuance(issuance_id); /* from global */
138 item.stream(form.stream);
139 item.status(form.status);
142 dojo.date.stamp.toISOString(form.date_expected) : null
146 dojo.date.stamp.toISOString(form.date_received) : null
149 progress_dialog.show(true);
150 fieldmapper.standardRequest(
151 ["open-ils.serial", "open-ils.serial.item.create"], {
152 "params": [openils.User.authtoken, item, form.count],
154 "oncomplete": function(r) {
155 progress_dialog.hide();
156 if (r = openils.Util.readResponse(r)) {
157 sitem_grid.refresh();
164 openils.Util.addOnLoad(
166 cgi = new openils.CGI();
167 pcrud = new openils.PermaCrud();
169 issuance_id = cgi.param("issuance");
173 var context = cgi.param('context');
175 context_url_param = '&context=' + context;
177 context_url_param = '';