1 dump('entering serial/scap_editor.js\n');
4 JSAN.use('serial.editor_base');
5 var pattern_code_key = 'Pattern Code (temporary)';
7 if (typeof serial == 'undefined') serial = {};
8 serial.scap_editor = function (params) {
10 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
11 JSAN.use('util.error'); this.error = new util.error();
12 JSAN.use('OpenILS.data'); this.data = new OpenILS.data(); this.data.init({'via':'stash'});
13 JSAN.use('util.network'); this.network = new util.network();
15 dump('serial/scap_editor: ' + E + '\n');
18 /* This keeps track of what fields have been edited for styling purposes */
21 /* This holds the original values for prepopulating the field editors */
22 this.editor_values = {};
26 serial.scap_editor.prototype = {
27 // we could do this with non-standard '__proto__' property instead
28 'editor_base_init' : serial.editor_base.editor_base_init,
29 'editor_base_apply' : serial.editor_base.editor_base_apply,
30 'editor_base_save' : serial.editor_base.editor_base_save,
33 'fm_type_plural' : 'scaps',
35 'init' : function (params) {
38 params.retrieve_function = 'FM_SCAP_BATCH_RETRIEVE.authoritative';
40 obj.editor_base_init(params);
43 obj.summarize( obj.scaps );
47 /******************************************************************************************************/
48 /* Restore backup copies */
50 'reset' : serial.editor_base.editor_base_reset,
52 /******************************************************************************************************/
53 /* Apply a value to a specific field on all the copies being edited */
55 'apply' : function(field,value) {
58 obj.editor_base_apply(field, value);
61 /******************************************************************************************************/
63 'init_panes' : function () {
65 obj.panes_and_field_names = {
67 /* These get shown in the left panel */
68 'scap_editor_left_pane' :
73 render: '"ID : " + fm.id();',
74 //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);',
79 $('catStrings').getString('staff.cat.copy_editor.field.creation_date.label'),
81 render: 'fm.create_date() == null ? "<Unset>" : util.date.formatted_date( fm.create_date(), "%F");',
88 input: 'c = function(v){ obj.apply("type",v); if (typeof post_c == "function") post_c(v); }; x = util.widgets.make_menulist( [ ["basic", "basic"], ["index", "index"], ["supplement", "supplement"] ] ); x.setAttribute("value",obj.editor_values.type); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
95 render: 'fm.active() == null ? $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null") : ( get_bool( fm.active() ) ? $("catStrings").getString("staff.cat.copy_editor.field.circulate.yes_or_true") : $("catStrings").getString("staff.cat.copy_editor.field.circulate.no_or_false") )',
96 input: 'c = function(v){ obj.apply("active",v); if (typeof post_c == "function") post_c(v); }; x = util.widgets.make_menulist( [ [ $("catStrings").getString("staff.cat.copy_editor.field.circulate.yes_or_true"), get_db_true() ], [ $("catStrings").getString("staff.cat.copy_editor.field.circulate.no_or_false"), get_db_false() ] ] ); x.setAttribute("value",obj.editor_values.active); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
98 dropdown_key: 'fm.active()'
104 render: 'fm.pattern_code() == null ? "" : fm.pattern_code();',
105 input: 'c = function(v){ obj.apply("pattern_code",v); if (typeof post_c == "function") post_c(v); }; x = document.createElement("textbox"); x.setAttribute("value",obj.editor_values.pattern_code); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
106 value_key: 'pattern_code'
114 /******************************************************************************************************/
115 /* This loops through all our fieldnames and all the copies, tallying up counts for the different values */
117 'summarize' : serial.editor_base.editor_base_summarize,
119 /******************************************************************************************************/
120 /* Display the summarized data and inputs for editing */
122 'render' : serial.editor_base.editor_base_render,
124 /******************************************************************************************************/
125 /* This actually draws the change button and input widget for a given field */
126 'render_input' : serial.editor_base.editor_base_render_input,
128 /******************************************************************************************************/
129 /* save the caption/patterns */
131 'save' : function() {
133 obj.editor_base_save('open-ils.serial.caption_and_pattern.batch.update');
136 /* Pattern/caption wizard */
137 "pattern_wizard": function() {
140 var onsubmit = function(value) {
141 obj.apply("pattern_code", value);
142 obj.summarize(obj.scaps);
145 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
147 xulG.url_prefix("/xul/server/serial/pattern_wizard.xul"),
154 /******************************************************************************************************/
155 'save_attributes' : serial.editor_base.editor_base_save_attributes
158 dump('exiting serial/scap_editor.js\n');