]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/serial/sstr_editor.js
Improve Firefox/XULRunner Support
[Evergreen.git] / Open-ILS / xul / staff_client / server / serial / sstr_editor.js
1 dump('entering serial/sstr_editor.js\n');
2 // vim:noet:sw=4:ts=4:
3
4 JSAN.use('serial.editor_base');
5
6 if (typeof serial == 'undefined') serial = {};
7 serial.sstr_editor = function (params) {
8     try {
9         JSAN.use('util.error'); this.error = new util.error();
10         JSAN.use('OpenILS.data'); this.data = new OpenILS.data(); this.data.init({'via':'stash'});
11         JSAN.use('util.network'); this.network = new util.network();
12     } catch(E) {
13         dump('serial/sstr_editor: ' + E + '\n');
14     }
15
16     /* This keeps track of what fields have been edited for styling purposes */
17     this.changed = {};
18
19     /* This holds the original values for prepopulating the field editors */
20     this.editor_values = {};
21
22 };
23
24 serial.sstr_editor.prototype = {
25     // we could do this with non-standard '__proto__' property instead
26     'editor_base_init' : serial.editor_base.editor_base_init,
27     'editor_base_apply' : serial.editor_base.editor_base_apply,
28     'editor_base_save' : serial.editor_base.editor_base_save,
29
30     'fm_type' : 'sstr',
31     'fm_type_plural' : 'sstrs',
32
33     'init' : function (params) {
34         var obj = this;
35
36         params.retrieve_function = 'FM_SSTR_BATCH_RETRIEVE.authoritative';
37
38         obj.editor_base_init(params);
39
40         /* Do it */
41         obj.summarize( obj.sstrs );
42         obj.render();
43     },
44
45     /******************************************************************************************************/
46     /* Restore backup copies */
47
48     'reset' :  serial.editor_base.editor_base_reset,
49
50     /******************************************************************************************************/
51     /* Apply a value to a specific field on all the copies being edited */
52
53     'apply' : function(field,value) {
54         var obj = this;
55
56         obj.editor_base_apply(field, value);
57     },
58
59     /******************************************************************************************************/
60
61     'init_panes' : function () {
62         var obj = this;
63         obj.panes_and_field_names = {
64
65         /* These get shown in the left panel */
66         'sstr_editor_left_pane' :
67         [
68             [
69                 'id',
70                 { 
71                     //render: 'fm.id() == null ? "" : fm.id();',
72                     //input: 'c = function(v){ obj.apply("distribution",v); if (typeof post_c == "function") post_c(v); }; x = document.createElement("textbox"); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
73
74                 }
75             ],
76             [
77                 'routing_label',
78                 { 
79                     //render: 'fm.routing_label() == null ? "" : fm.routing_label();',
80                     input: 'c = function(v){ obj.apply("routing_label",v); if (typeof post_c == "function") post_c(v); }; x = document.createElement("textbox"); x.setAttribute("value",obj.editor_values.routing_label); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
81                     value_key: 'routing_label'
82                 }
83             ]
84         ]
85
86         };
87     },
88
89     /******************************************************************************************************/
90     /* This loops through all our fieldnames and all the copies, tallying up counts for the different values */
91
92     'summarize' :  serial.editor_base.editor_base_summarize,
93
94     /******************************************************************************************************/
95     /* Display the summarized data and inputs for editing */
96
97     'render' :  serial.editor_base.editor_base_render,
98
99     /******************************************************************************************************/
100     /* This actually draws the change button and input widget for a given field */
101     'render_input' : serial.editor_base.editor_base_render_input,
102
103     /******************************************************************************************************/
104     /* save the streams */
105
106     'save' : function() {
107         var obj = this;
108         obj.editor_base_save('open-ils.serial.stream.batch.update');
109     },
110
111     /******************************************************************************************************/
112     'save_attributes' : serial.editor_base.editor_base_save_attributes
113 };
114
115 dump('exiting serial/sstr_editor.js\n');