]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/server/patron/new_standing_penalty.js
Reworking of the "Messages" interface in the patron display for manipulating standing...
[working/Evergreen.git] / Open-ILS / xul / staff_client / server / patron / new_standing_penalty.js
1 var data; var error; 
2
3 function default_focus() { document.getElementById('note_tb').focus(); } // parent interfaces often call this
4
5 function new_penalty_init() {
6     try {
7
8         commonStrings = document.getElementById('commonStrings');
9         patronStrings = document.getElementById('patronStrings');
10
11         if (typeof JSAN == 'undefined') {
12             throw(
13                 commonStrings.getString('common.jsan.missing')
14             );
15         }
16
17         JSAN.errorLevel = "die"; // none, warn, or die
18         JSAN.addRepository('..');
19
20                 JSAN.use('OpenILS.data'); data = new OpenILS.data(); data.stash_retrieve();
21
22         JSAN.use('util.error'); error = new util.error();
23         JSAN.use('util.widgets');
24
25         build_penalty_menu();
26
27         /* set widget behavior */
28         document.getElementById('csp_menulist').addEventListener(
29             'command',
30             function() {
31                 document.getElementById('note_btn').checked = false;
32                 document.getElementById('alert_btn').checked = false;
33                 document.getElementById('block_btn').checked = false;
34             },
35             false
36         );
37         document.getElementById('note_btn').addEventListener(
38             'command', 
39             function() { 
40                 document.getElementById('csp_menulist').setAttribute('label',''); 
41                 document.getElementById('csp_menupopup').setAttribute('value','21'); // SILENT_NOTE
42             }, 
43             false
44         );
45         document.getElementById('alert_btn').addEventListener(
46             'command', 
47             function() { 
48                 document.getElementById('csp_menulist').setAttribute('label',''); 
49                 document.getElementById('csp_menupopup').setAttribute('value','20'); // ALERT_NOTE
50             }, 
51             false
52         );
53         document.getElementById('block_btn').addEventListener(
54             'command', 
55             function() { 
56                 document.getElementById('csp_menulist').setAttribute('label',''); 
57                 document.getElementById('csp_menupopup').setAttribute('value','25'); // STAFF_CHR
58             }, 
59             false
60         );
61         document.getElementById('cancel_btn').addEventListener(
62             'command', function() { window.close(); }, false
63         );
64         document.getElementById('apply_btn').addEventListener(
65             'command', 
66             function() {
67                 update_modal_xulG(
68                     {
69                         'id' : document.getElementById('csp_menupopup').getAttribute('value'),
70                         'note' : document.getElementById('note_tb').value,
71                         'modify' : 1
72                     }
73                 )
74                 window.close();
75             }, 
76             false
77         );
78
79         default_focus();
80
81     } catch(E) {
82         var err_prefix = 'standing_penalties.js -> penalty_init() : ';
83         if (error) error.standard_unexpected_error_alert(err_prefix,E); else alert(err_prefix + E);
84     }
85
86 }
87
88 function build_penalty_menu() {
89     try {
90
91         var csp_menupopup = document.getElementById('csp_menupopup');
92         util.widgets.remove_children(csp_menupopup);
93         for (var i = 0; i < data.list.csp.length; i++) {
94             if (data.list.csp[i].id() > 100) {
95                 var menuitem = document.createElement('menuitem'); csp_menupopup.appendChild(menuitem);
96                 menuitem.setAttribute('label',data.list.csp[i].label());
97                 menuitem.setAttribute('value',data.list.csp[i].id());
98                 menuitem.setAttribute('id','csp_'+data.list.csp[i].id());
99                 menuitem.setAttribute('oncommand',"var p = this.parentNode; p.parentNode.setAttribute('label',this.getAttribute('label')); p.setAttribute('value'," + data.list.csp[i].id() + ")");
100             }
101         }
102
103     } catch(E) {
104         var err_prefix = 'new_standing_penalty.js -> build_penalty_menu() : ';
105         if (error) error.standard_unexpected_error_alert(err_prefix,E); else alert(err_prefix + E);
106     }
107 }
108