1 var ORG_SETTING_UPDATE = 'open-ils.actor:open-ils.actor.org_unit.settings.update';
2 var ORG_SETTING_RETRIEVE = 'open-ils.actor:open-ils.actor.org_unit.settings.retrieve';
3 var ORG_SETTING_DELETE = 'open-ils.actor:open-ils.actor.org_setting.delete';
5 var myPerms = [ 'UPDATE_ORG_SETTING' ];
9 'circ.lost_materials_processing_fee' : null,
10 'cat.default_item_price' : null,
11 // 'circ.collections_fee' : null,
12 'auth.opac_timeout' : null,
13 'auth.staff_timeout' : null,
16 function osEditorInit() {
18 $('user').appendChild(text(USER.usrname()));
20 for( var i in ORG_SETTINGS ) ORG_SETTINGS[i] = $(i);
24 fetchHighestPermOrgs( SESSION, USER.id(), myPerms );
32 function osCurrentOrg() {
33 var selector = $('os_orgs');
34 return getSelectorVal(selector);
37 function osBuildOrgs() {
38 var org = findOrgUnit(PERMS['UPDATE_ORG_SETTING']);
40 if( !org || org == -1 ) {
41 org = findOrgUnit(USER.ws_ou());
42 for( var i in ORG_SETTINGS )
43 $(i+'.apply').disabled = true;
46 var type = findOrgType(org.ou_type()) ;
48 var selector = $('os_orgs');
49 buildOrgSel(selector, org, type.depth());
50 if(!isTrue(type.can_have_users()))
51 selector.options[0].disabled = true;
53 selector.onchange = osDrawRange;
57 if( ! osBaseOrg.children() )
58 for( var i in ORG_SETTINGS )
59 $(i+'.apply_all').disabled = true;
61 var gotoOrg = USER.ws_ou();
62 if( ! setSelector( selector, gotoOrg ) ) {
63 gotoOrg = USER.home_ou();
64 setSelector( selector, gotoOrg );
67 for( var i in ORG_SETTINGS )
73 function osSetCallback(setting) {
74 $(setting+'.apply_all').onclick = function() { osUpdate(setting, true); };
75 $(setting+'.apply').onclick = function() { osUpdate(setting, false); };
80 function osDrawRange() {
81 var org = osCurrentOrg();
82 appendClear($('osCurrentOrg'), text(findOrgUnit(org).name()));
83 var req = new Request(ORG_SETTING_RETRIEVE, org);
89 function osDraw( r ) {
90 var org = osCurrentOrg();
91 var settings = r.getResultObject();
93 for( var i in ORG_SETTINGS ) {
94 var node = ORG_SETTINGS[i];
95 var val = settings[i];
97 (node.getAttribute('ismoney')) ?
98 _formatMoney(val) : (val != null) ? val : "";
102 function _formatMoney(m) {
103 if(!m || m == 0) return '0.00';
105 if( m.match(/\d+\.\d+/) ) return m;
106 if( !m.match(/\./) ) return m + '.00';
107 if( m.match(/^\.\d+/) ) return '0' + m;
111 function osUpdate( setting, allOrgs ) {
112 var val = ORG_SETTINGS[setting].value;
113 var org = osCurrentOrg();
116 if(!confirmId('os_confirm_all')) return;
117 var sel = $('os_orgs');
119 iterate( sel.options,
122 var o_unit = findOrgUnit(item.value);
123 var type = findOrgType(o_unit.ou_type()) ;
124 if( type.can_have_users() ) {
125 if(!osUpdateOrg(setting, val, o_unit.id()))
130 if(!stop) alertId('os_success');
134 if(osUpdateOrg(setting, val, org))
135 alertId('os_success');
141 function osUpdateOrg( setting, value, org ) {
144 var req = new Request(ORG_SETTING_UPDATE, SESSION, org, s);
145 req.request.alertEvent = false;
147 var resp = req.result();
149 if( checkILSEvent(resp) ) {
150 alertILSEvent(resp, "Error updating " + findOrgUnit(org).name() );