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,
15 function osEditorInit() {
17 $('user').appendChild(text(USER.usrname()));
19 for( var i in ORG_SETTINGS ) ORG_SETTINGS[i] = $(i);
23 fetchHighestPermOrgs( SESSION, USER.id(), myPerms );
31 function osCurrentOrg() {
32 var selector = $('os_orgs');
33 return getSelectorVal(selector);
36 function osBuildOrgs() {
37 var org = findOrgUnit(PERMS['UPDATE_ORG_SETTING']);
39 if( !org || org == -1 ) {
40 org = findOrgUnit(USER.ws_ou());
41 for( var i in ORG_SETTINGS )
42 $(i+'.apply').disabled = true;
45 var type = findOrgType(org.ou_type()) ;
47 var selector = $('os_orgs');
48 buildOrgSel(selector, org, type.depth());
49 if(!type.can_have_users())
50 selector.options[0].disabled = true;
52 selector.onchange = osDrawRange;
56 if( ! osBaseOrg.children() )
57 for( var i in ORG_SETTINGS )
58 $(i+'.apply_all').disabled = true;
60 var gotoOrg = USER.ws_ou();
61 if( ! setSelector( selector, gotoOrg ) ) {
62 gotoOrg = USER.home_ou();
63 setSelector( selector, gotoOrg );
66 for( var i in ORG_SETTINGS )
72 function osSetCallback(setting) {
73 $(setting+'.apply_all').onclick = function() { osUpdate(setting, true); };
74 $(setting+'.apply').onclick = function() { osUpdate(setting, false); };
79 function osDrawRange() {
80 var org = osCurrentOrg();
81 appendClear($('osCurrentOrg'), text(findOrgUnit(org).name()));
82 var req = new Request(ORG_SETTING_RETRIEVE, org);
88 function osDraw( r ) {
89 var org = osCurrentOrg();
90 var settings = r.getResultObject();
92 for( var i in ORG_SETTINGS ) {
93 var node = ORG_SETTINGS[i];
94 var val = settings[i];
96 (node.getAttribute('ismoney')) ?
97 _formatMoney(val) : (val != null) ? val : "";
101 function _formatMoney(m) {
102 if(!m || m == 0) return '0.00';
104 if( m.match(/\d+\.\d+/) ) return m;
105 if( !m.match(/\./) ) return m + '.00';
106 if( m.match(/^\.\d+/) ) return '0' + m;
110 function osUpdate( setting, allOrgs ) {
111 var val = ORG_SETTINGS[setting].value;
112 var org = osCurrentOrg();
115 if(!confirmId('os_confirm_all')) return;
116 var sel = $('os_orgs');
118 iterate( sel.options,
121 var o_unit = findOrgUnit(item.value);
122 var type = findOrgType(o_unit.ou_type()) ;
123 if( type.can_have_users() ) {
124 if(!osUpdateOrg(setting, val, o_unit.id()))
129 if(!stop) alertId('os_success');
133 if(osUpdateOrg(setting, val, org))
134 alertId('os_success');
140 function osUpdateOrg( setting, value, org ) {
143 var req = new Request(ORG_SETTING_UPDATE, SESSION, org, s);
144 req.request.alertEvent = false;
146 var resp = req.result();
148 if( checkILSEvent(resp) ) {
149 alertILSEvent(resp, "Error updating " + findOrgUnit(org).name() );