web/js/siteconfig.js (769 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ function generalSiteConfigCB(data, ioArgs) { if(data.items.status == 'success') { dojo.removeClass(data.items.msgid, 'cfgerror'); dojo.addClass(data.items.msgid, 'cfgsuccess'); dojo.byId(data.items.msgid).innerHTML = data.items.msg; if('contid' in data.items && 'savecont' in data.items) dojo.byId(data.items.contid).value = data.items.savecont; if('btn' in data.items) dijit.byId(data.items.btn).set('disabled', false); if('extrafunc' in data.items) { if(data.items.extrafunc.match('\.')) { var part1 = data.items.extrafunc.split('.')[0]; var part2 = data.items.extrafunc.split('.')[1]; window[part1][part2](data); } else window[data.items.extrafunc](data); } clearmsg(data.items.msgid, 20); } else if(data.items.status == 'noaction') { dojo.removeClass(data.items.msgid, 'cfgerror'); dojo.removeClass(data.items.msgid, 'cfgsuccess'); dojo.byId(data.items.msgid).innerHTML = ''; if('btn' in data.items) dijit.byId(data.items.btn).set('disabled', false); } else if(data.items.status == 'failed') { dojo.removeClass(data.items.msgid, 'cfgsuccess'); dojo.addClass(data.items.msgid, 'cfgerror'); dojo.byId(data.items.msgid).innerHTML = data.items.errmsg; if('btn' in data.items) dijit.byId(data.items.btn).set('disabled', false); if('contid' in data.items && 'savecont' in data.items) dojo.byId(data.items.contid).value = data.items.savecont; } else if(data.items.status == 'noaccess') { alert(data.items.msg); } } function clearmsg(id, wait) { setTimeout(function() { dojo.byId(id).innerHTML = ''; dojo.removeClass(id, 'cfgerror'); dojo.removeClass(id, 'cfgsuccess'); }, wait * 1000); } function saveTimeSource() { var data = {continuation: dojo.byId('timesourcecont').value, timesource: dijit.byId('timesource').value}; dijit.byId('timesourcebtn').set('disabled', true); RPCwrapper(data, generalSiteConfigCB, 1); } function TimeVariable() {} TimeVariable.prototype.addAffiliationSetting = function() { dijit.byId(this.domidbase + 'addbtn').set('disabled', true); var data = {continuation: dojo.byId(this.domidbase + 'addcont').value, affilid: dijit.byId(this.domidbase + 'newaffilid').value, value: dijit.byId(this.domidbase + 'newval').value}; RPCwrapper(data, generalSiteConfigCB, 1); } TimeVariable.prototype.addAffiliationSettingCBextra = function(data) { var span = document.createElement('span'); span.setAttribute('id', data.items.id + 'span'); var label = document.createElement('label'); label.setAttribute('for', data.items.id); label.innerHTML = data.items.affil + ': '; span.appendChild(label); var span2 = document.createElement('span'); span2.setAttribute('class', 'labeledform'); var spinner = new dijit.form.NumberSpinner({ id: data.items.id, required: 'true', style: 'width: 70px;', value: data.items.value, constraints: {min: data.items.minval, max: data.items.maxval}, smallDelta: 1, largeDelta: 10 }, document.createElement('div')); span2.appendChild(spinner.domNode); span.appendChild(span2); var func = this.deleteAffiliationSetting; var domidbase = this.domidbase; var btn = new dijit.form.Button({ id: data.items.id + 'delbtn', label: _('Delete'), onClick: function() { func(data.items.id, domidbase); } }, document.createElement('div')); span.appendChild(btn.domNode); span.appendChild(document.createElement('br')); dojo.byId(this.domidbase + 'affildiv').appendChild(span); dojo.byId('delete' + this.domidbase + 'cont').value = data.items.deletecont; dojo.byId(this.domidbase + 'cont').value = data.items.savecont; dijit.byId(this.domidbase + 'newaffilid').removeOption({value: data.items.affilid}); if(dijit.byId(this.domidbase + 'newaffilid').options.length == 0) dojo.addClass(this.domidbase + 'adddiv', 'hidden'); var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); keys.push(data.items.id); dojo.byId(this.domidbase + 'savekeys').value = keys.join(','); } TimeVariable.prototype.saveSettings = function() { var data = {continuation: dojo.byId(this.domidbase + 'cont').value}; var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); for(var i = 0; i < keys.length; i++) { if(! checkValidatedObj(keys[i])) { dijit.byId(keys[i]).focus(); return; } data[keys[i]] = dijit.byId(keys[i]).get('value'); } dijit.byId(this.domidbase + 'btn').set('disabled', true); RPCwrapper(data, generalSiteConfigCB, 1); } TimeVariable.prototype.deleteAffiliationSetting = function(key, domidbase) { var data = {key: key, continuation: dojo.byId('delete' + domidbase + 'cont').value}; RPCwrapper(data, generalSiteConfigCB, 1); } TimeVariable.prototype.deleteAffiliationSettingCBextra = function(data) { dijit.byId(data.items.delid).destroy(); dijit.byId(data.items.delid + 'delbtn').destroy(); dojo.destroy(data.items.delid + 'span'); dijit.byId(this.domidbase + 'newaffilid').addOption({value: data.items.affilid, label: data.items.affil}); dojo.removeClass(this.domidbase + 'adddiv', 'hidden'); var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); var newkeys = new Array(); for(var i = 0; i < keys.length; i++) { if(keys[i] != data.items.delid) newkeys.push(keys[i]); } dojo.byId(this.domidbase + 'savekeys').value = newkeys.join(','); dojo.byId(this.domidbase + 'cont').value = data.items.savecont; } function connectedUserCheck() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'connectedusercheck'; } connectedUserCheck.prototype = new TimeVariable(); var connectedUserCheck = new connectedUserCheck(); function acknowledge() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'acknowledge'; } acknowledge.prototype = new TimeVariable(); var acknowledge = new acknowledge(); function initialconnecttimeout() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'initialconnecttimeout'; } initialconnecttimeout.prototype = new TimeVariable(); var initialconnecttimeout = new initialconnecttimeout(); function reconnecttimeout() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'reconnecttimeout'; } reconnecttimeout.prototype = new TimeVariable(); var reconnecttimeout = new reconnecttimeout(); function generalInuse() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'generalinuse'; } generalInuse.prototype = new TimeVariable(); var generalInuse = new generalInuse(); function serverInuse() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'serverinuse'; } serverInuse.prototype = new TimeVariable(); var serverInuse = new serverInuse(); function clusterInuse() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'clusterinuse'; } clusterInuse.prototype = new TimeVariable(); var clusterInuse = new clusterInuse(); function generalEndNotice1() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'generalendnotice1'; } generalEndNotice1.prototype = new TimeVariable(); var generalEndNotice1 = new generalEndNotice1(); function generalEndNotice2() { TimeVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'generalendnotice2'; } generalEndNotice2.prototype = new TimeVariable(); var generalEndNotice2 = new generalEndNotice2(); function AffilTextVariable() {} AffilTextVariable.prototype.addAffiliationSetting = function() { dijit.byId(this.domidbase + 'addbtn').set('disabled', true); var data = {continuation: dojo.byId(this.domidbase + 'addcont').value, affilid: dijit.byId(this.domidbase + 'newaffilid').value, value: dijit.byId(this.domidbase + 'newval').value}; RPCwrapper(data, generalSiteConfigCB, 1); } AffilTextVariable.prototype.addAffiliationSettingCBextra = function(data) { var span = document.createElement('span'); span.setAttribute('id', data.items.id + 'span'); var label = document.createElement('label'); label.setAttribute('for', data.items.id); label.innerHTML = data.items.affil + ': '; span.appendChild(label); var span2 = document.createElement('span'); span2.setAttribute('class', 'labeledform'); if(data.items.vartype == 'text') { var input = new dijit.form.ValidationTextBox({ id: data.items.id, required: 'true', style: 'width: ' + data.items.width, value: data.items.value, regExp: data.items.constraints, invalidMessage: data.items.invalidmsg }, document.createElement('div')); } else if(data.items.vartype == 'selectonly') { var options = []; var i = 0; for(var key in data.items.constraints) { options[i] = {label: key, value: key}; if(key == data.items.value) options[i].selected = true; i += 1; } var input = new dijit.form.Select({ id: data.items.id, required: 'true', style: 'width: ' + data.items.width, options: options }, document.createElement('div')); } span2.appendChild(input.domNode); span.appendChild(span2); if(data.items.allowdelete) { var func = this.deleteAffiliationSetting; var domidbase = this.domidbase; var btn = new dijit.form.Button({ id: data.items.id + 'delbtn', label: _('Delete'), onClick: function() { func(data.items.id, domidbase); } }, document.createElement('div')); span.appendChild(btn.domNode); } span.appendChild(document.createElement('br')); dojo.byId(this.domidbase + 'affildiv').appendChild(span); dijit.byId(this.domidbase + 'newval').reset(); dojo.byId('delete' + this.domidbase + 'cont').value = data.items.deletecont; dojo.byId(this.domidbase + 'cont').value = data.items.savecont; dijit.byId(this.domidbase + 'newaffilid').removeOption({value: data.items.affilid}); if(dijit.byId(this.domidbase + 'newaffilid').options.length == 0) dojo.addClass(this.domidbase + 'adddiv', 'hidden'); var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); if(keys.length == 1 && keys[0] == '') keys[0] = data.items.id; else keys.push(data.items.id); dojo.byId(this.domidbase + 'savekeys').value = keys.join(','); } AffilTextVariable.prototype.saveSettings = function() { var data = {continuation: dojo.byId(this.domidbase + 'cont').value}; var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); for(var i = 0; i < keys.length; i++) { if(! checkValidatedObj(keys[i])) { dijit.byId(keys[i]).focus(); return; } var newval = dijit.byId(keys[i]).get('value'); if(newval === 0) data[keys[i]] = 'zero'; else data[keys[i]] = newval; } dijit.byId(this.domidbase + 'btn').set('disabled', true); RPCwrapper(data, generalSiteConfigCB, 1); } AffilTextVariable.prototype.deleteAffiliationSetting = function(affilid, domidbase) { var data = {affilid: affilid, continuation: dojo.byId('delete' + domidbase + 'cont').value}; RPCwrapper(data, generalSiteConfigCB, 1); } AffilTextVariable.prototype.deleteAffiliationSettingCBextra = function(data) { dijit.byId(data.items.delid).destroy(); dijit.byId(data.items.delid + 'delbtn').destroy(); dojo.destroy(data.items.delid + 'span'); dijit.byId(this.domidbase + 'newaffilid').addOption({value: data.items.affilid, label: data.items.affil}); dojo.removeClass(this.domidbase + 'adddiv', 'hidden'); var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); var newkeys = new Array(); for(var i = 0; i < keys.length; i++) { if(keys[i] != data.items.delid) newkeys.push(keys[i]); } dojo.byId(this.domidbase + 'savekeys').value = newkeys.join(','); dojo.byId('delete' + this.domidbase + 'cont').value = data.items.delcont; } function affilhelpaddr() { AffilTextVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'affilhelpaddr'; } affilhelpaddr.prototype = new AffilTextVariable(); var affilhelpaddr = new affilhelpaddr(); function affilwebaddr() { AffilTextVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'affilwebaddr'; } affilwebaddr.prototype = new AffilTextVariable(); var affilwebaddr = new affilwebaddr(); function affilkmsserver() { AffilTextVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'affilkmsserver'; } affilkmsserver.prototype = new AffilTextVariable(); var affilkmsserver = new affilkmsserver(); function affiltheme() { AffilTextVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'affiltheme'; } affiltheme.prototype = new AffilTextVariable(); var affiltheme = new affiltheme(); function affilshibonly() { AffilTextVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'affilshibonly'; } affilshibonly.prototype = new AffilTextVariable(); var affilshibonly = new affilshibonly(); function affilshibname() { AffilTextVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'affilshibname'; } affilshibname.prototype = new AffilTextVariable(); var affilshibname = new affilshibname(); function GlobalSingleVariable() {} GlobalSingleVariable.prototype.saveSettings = function() { var data = {continuation: dojo.byId(this.domidbase + 'cont').value}; if('checked' in dijit.byId(this.domidbase)) { if(dijit.byId(this.domidbase).checked) data.newval = dijit.byId(this.domidbase).value; else data.newval = 0; } else data.newval = dijit.byId(this.domidbase).value; dijit.byId(this.domidbase + 'btn').set('disabled', true); RPCwrapper(data, generalSiteConfigCB, 1); } function userPasswordLength() { GlobalSingleVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'userpasswordlength'; } userPasswordLength.prototype = new GlobalSingleVariable(); var userPasswordLength = new userPasswordLength(); function userPasswordSpecialChar() { GlobalSingleVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'userpasswordspchar'; } userPasswordSpecialChar.prototype = new GlobalSingleVariable(); var userPasswordSpecialChar = new userPasswordSpecialChar(); function natPortRange() { GlobalSingleVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'natportrange'; } natPortRange.prototype = new GlobalSingleVariable(); var natPortRange = new natPortRange(); function GlobalMultiVariable() {} GlobalMultiVariable.prototype.saveSettings = function() { var data = {continuation: dojo.byId(this.domidbase + 'cont').value}; var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); for(var i = 0; i < keys.length; i++) { if('checked' in dijit.byId(keys[i])) { if(dijit.byId(keys[i]).checked) data[keys[i]] = dijit.byId(keys[i]).value; else data[keys[i]] = 0; } else { if(! checkValidatedObj(keys[i])) { dijit.byId(keys[i]).focus(); return; } data[keys[i]] = dijit.byId(keys[i]).get('value'); } } dijit.byId(this.domidbase + 'btn').set('disabled', true); RPCwrapper(data, generalSiteConfigCB, 1); } GlobalMultiVariable.prototype.addNewMultiVal = function() { var data = {continuation: dojo.byId(this.domidbase + 'addcont').value, multivalid: dijit.byId(this.domidbase + 'newmultivalid').get('value'), multival: dijit.byId(this.domidbase + 'newmultival').get('value')}; dijit.byId(this.domidbase + 'addbtn').set('disabled', true); RPCwrapper(data, generalSiteConfigCB, 1); } GlobalMultiVariable.prototype.addNewMultiValCBextra = function(data) { var span = document.createElement('span'); span.setAttribute('id', data.items.addid + 'wrapspan'); var label = document.createElement('label'); label.setAttribute('for', data.items.addid); label.innerHTML = data.items.addname + ': '; span.appendChild(label); var span2 = document.createElement('span'); span2.setAttribute('class', 'labeledform'); var text = new dijit.form.ValidationTextBox({ id: data.items.addid, required: 'true', style: 'width: 400px;', value: data.items.addval, regExp: data.items.regexp, invalidMessage: data.items.invalidmsg }, document.createElement('div')); span2.appendChild(text.domNode); span.appendChild(span2); var func = this.deleteMultiVal; var domidbase = this.domidbase; var btn = new dijit.form.Button({ id: data.items.addid + 'delbtn', label: _('Delete'), onClick: function() { func(data.items.delkey, domidbase); } }, document.createElement('div')); span.appendChild(btn.domNode); span.appendChild(document.createElement('br')); dojo.byId(this.domidbase + 'multivalspan').appendChild(span); dijit.byId(this.domidbase + 'newmultival').set('value', ''); dijit.byId(this.domidbase + 'newmultivalid').removeOption({value: data.items.delkey}); if(dijit.byId(this.domidbase + 'newmultivalid').options.length == 0) dojo.addClass(this.domidbase + 'multivalnewspan', 'hidden'); dojo.byId(this.domidbase + 'addcont').value = data.items.addcont; dojo.byId('delete' + this.domidbase + 'cont').value = data.items.delcont; dojo.byId(this.domidbase + 'cont').value = data.items.savecont; var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); if(keys[0] == '') keys[0] = data.items.addid; else keys.push(data.items.addid); dojo.byId(this.domidbase + 'savekeys').value = keys.join(','); dijit.byId(this.domidbase + 'addbtn').set('disabled', false); } GlobalMultiVariable.prototype.deleteMultiVal = function(key, domidbase) { var data = {key: key, continuation: dojo.byId('delete' + domidbase + 'cont').value}; RPCwrapper(data, generalSiteConfigCB, 1); } GlobalMultiVariable.prototype.deleteMultiValCBextra = function(data) { dijit.byId(data.items.delid).destroy(); dijit.byId(data.items.delid + 'delbtn').destroy(); dojo.destroy(data.items.delid + 'wrapspan'); dijit.byId(this.domidbase + 'newmultivalid').addOption({value: data.items.addid, label: data.items.addname}); var keys = dojo.byId(this.domidbase + 'savekeys').value.split(','); var newkeys = new Array(); for(var i = 0; i < keys.length; i++) { if(keys[i] != data.items.delid) newkeys.push(keys[i]); } dojo.byId(this.domidbase + 'savekeys').value = newkeys.join(','); dojo.removeClass(this.domidbase + 'multivalnewspan', 'hidden'); dojo.byId(this.domidbase + 'cont').value = data.items.savecont; } GlobalMultiVariable.prototype.saveCBextra = function(data) { dojo.byId(this.domidbase + 'cont').value = data.items.savecont; } function nfsmount() { GlobalMultiVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'nfsmount'; } nfsmount.prototype = new GlobalMultiVariable(); var nfsmount = new nfsmount(); function affiliation() { GlobalMultiVariable.apply(this, Array.prototype.slice.call(arguments)); this.domidbase = 'affiliation'; this.addNewMultiVal = function() { var data = {continuation: dojo.byId(this.domidbase + 'addcont').value, multival: dijit.byId(this.domidbase + 'newmultival').get('value')}; dijit.byId(this.domidbase + 'addbtn').set('disabled', true); RPCwrapper(data, generalSiteConfigCB, 1); } this.deleteMultiVal = function(key, domidbase) { var affil = dijit.byId(this.domidbase + '|' + key).get('_resetValue'); dojo.byId('delaffilkey').value = key; this.showDelete(affil); } this.deleteMultiValSubmit = function() { var data = {key: dojo.byId('delaffilkey').value, continuation: dojo.byId('delete' + this.domidbase + 'cont').value}; RPCwrapper(data, generalSiteConfigCB, 1); setTimeout(this.hideDelete, 300); } this.pagerefresh = function(data) { window.location.reload(false); } this.deleteMultiValCBextra = function(data) { dijit.byId(data.items.delid).destroy(); dijit.byId(data.items.delid + 'delbtn').destroy(); dojo.destroy(data.items.delid + 'wrapspan'); window.location.reload(false); } this.showDelete = function(affil) { dojo.byId('affilconfirmname').innerHTML = affil; dojo.byId('siteconfigconfirmoverlay').style.display = 'block'; dojo.byId('affiliationconfirmbox').style.display = 'block'; var dialog = dojo.byId('affiliationconfirmbox'); var overlay = dojo.byId('siteconfigconfirmoverlay'); dialog.style.top = (overlay.offsetHeight/2) - (dialog.offsetHeight/2) + 'px'; dialog.style.left = (overlay.offsetWidth/2) - (dialog.offsetWidth/2) + 'px'; } this.hideDelete = function() { dojo.byId('siteconfigconfirmoverlay').style.display = 'none'; dojo.byId('affiliationconfirmbox').style.display = 'none'; dojo.byId('affilconfirmname').innerHTML = ''; } } affiliation.prototype = new GlobalMultiVariable(); var affiliation = new affiliation(); function messages() { var items; var timer; var validatecnt; var invalids; this.init(); } messages.prototype.init = function() { if(typeof dijit !== 'object' || dijit.byId('messagesselid') === undefined) { if('init' in messages) setTimeout(messages.init, 500); else setTimeout(messages.prototype.init, 500); return; } messages.setContents(1); messages.invalids = new Object(); setTimeout(function() { messages.validatecnt = 1; messages.validatePoll(); }, 1000); } messages.prototype.validateContent = function() { var subj = dijit.byId('messagessubject').get('value'); if(! this.checkBalancedBrackets(subj)) { dojo.addClass('messagesmsg', 'cfgerror'); dojo.removeClass('messagesmsg', 'cfgsuccess'); dojo.byId('messagesmsg').innerHTML = _('Unmatched or empty brackets ( [ and ] ) in subject'); return false; } var body = dijit.byId('messagesbody').get('value'); if(! this.checkBalancedBrackets(body)) { dojo.addClass('messagesmsg', 'cfgerror'); dojo.removeClass('messagesmsg', 'cfgsuccess'); dojo.byId('messagesmsg').innerHTML = _('Unmatched or empty brackets ( [ and ] ) in message'); return false; } var shortmsg = dijit.byId('messagesshortmsg').get('value'); if(! this.checkBalancedBrackets(shortmsg)) { dojo.addClass('messagesmsg', 'cfgerror'); dojo.removeClass('messagesmsg', 'cfgsuccess'); dojo.byId('messagesmsg').innerHTML = _('Unmatched or empty brackets ( [ and ] ) in short message'); return false; } return true; } messages.prototype.checkBalancedBrackets = function(string) { var len = string.length; var inBracket = 0; var hasContent = 0; for(var i = 0; i < len; i++) { var ch = string.charAt(i); switch(ch) { case '[': if(inBracket) return false; inBracket = 1; hasContent = 0; break; case ']': if(! hasContent) return false; inBracket = 0; hasContent = 0; break; default: if(inBracket) hasContent = 1; } } if(inBracket) return false; return true; } messages.prototype.setContents = function(clearmsg) { if(messages.items === undefined) { messages.items = JSON.parse(document.getElementById('messagesdata').innerHTML); } var msgkey = dijit.byId('messagesselid').get('value'); var msgkeyparts = msgkey.split('|'); if(msgkeyparts[0] == 'adminmessage') { dijit.byId('messagesaffilid').set('displayedValue', 'Global'); dijit.byId('messagesaffilid').set('disabled', true); } else { dijit.byId('messagesaffilid').set('disabled', false); } var affil = dijit.byId('messagesaffilid').get('displayedValue'); var key = msgkey + '|' + affil; if(affil == 'Global' || ! (affil in messages.items[msgkey])) { // use default dijit.byId('messagesdelbtn').set('disabled', true); var item = messages.items[msgkey]['Global']; if(affil == 'Global') { dojo.addClass('defaultmessagesdiv', 'hidden'); } else { dojo.removeClass('defaultmessagesdiv', 'hidden'); } } else { // use affil specific msg dijit.byId('messagesdelbtn').set('disabled', false); var item = messages.items[msgkey][affil]; dojo.addClass('defaultmessagesdiv', 'hidden'); } var affiltype; if(affil == 'Global') { affiltype = 'Default message for any affiliation'; } else { affiltype = 'Message for ' + affil + ' affiliation'; } dojo.byId('messagesaffil').innerHTML = affiltype; dijit.byId('messagessubject').set('value', item['subject']); if(('DBmanagedHTML' in item) && item['DBmanagedHTML'] == 1) { dijit.byId('messagesbody').set('value', 'This message body contains HTML that is set directly in the database'); dijit.byId('messagesbody').set('disabled', true); dijit.byId('messagessubject').set('disabled', true); dijit.byId('messagesshortmsg').set('disabled', true); dijit.byId('messagessavebtn').set('disabled', true); dijit.byId('messagesdelbtn').set('disabled', true); } else { dijit.byId('messagesbody').set('value', item['message']); dijit.byId('messagesbody').set('disabled', false); dijit.byId('messagessubject').set('disabled', false); dijit.byId('messagesshortmsg').set('disabled', false); dijit.byId('messagessavebtn').set('disabled', false); dijit.byId('messagesdelbtn').set('disabled', false); } if('short_message' in item) dijit.byId('messagesshortmsg').set('value', item['short_message']); else dijit.byId('messagesshortmsg').set('value', ''); if(clearmsg) { dojo.removeClass('messagesmsg', 'cfgerror'); dojo.removeClass('messagesmsg', 'cfgsuccess'); dojo.byId('messagesmsg').innerHTML = ''; } } messages.prototype.confirmdeletemsg = function() { var affil = dijit.byId('messagesaffilid').get('displayedValue'); if(affil == 'Global') return; var key = dijit.byId('messagesselid').get('value'); var keyparts = key.split('|'); dojo.byId('deleteMsgAffil').innerHTML = affil; dojo.byId('deleteMsgCategory').innerHTML = keyparts[0]; dojo.byId('deleteMsgType').innerHTML = keyparts[1]; dijit.byId('deleteMessageDlg').show(); } messages.prototype.deletemsg = function() { dijit.byId('messagesdelbtn').set('disabled', true); dijit.byId('messagesselid').set('disabled', true); dijit.byId('messagesaffilid').set('disabled', true); var data = {key: dijit.byId('messagesselid').get('value'), affilid: dijit.byId('messagesaffilid').get('value'), continuation: dojo.byId('deletemessagescont').value}; RPCwrapper(data, generalSiteConfigCB, 1); } messages.prototype.deleteMessagesCBextra = function(data) { dijit.byId('messagesselid').set('disabled', false); dijit.byId('messagesaffilid').set('disabled', false); delete messages.items[data.items.key][data.items.affil]; dijit.byId('deleteMessageDlg').hide(); messages.setContents(0); } messages.prototype.savemsg = function() { if(! this.validateContent()) { return; } var invalidkey = dijit.byId('messagesselid').get('value') + '|' + dijit.byId('messagesaffilid').get('displayedValue'); if('invalidkey' in this.invalids) { this.invalids.splice(invalidkey, 1); this.updateInvalidContent(); } dijit.byId('messagessavebtn').set('disabled', true); dijit.byId('messagesselid').set('disabled', true); dijit.byId('messagesaffilid').set('disabled', true); var data = {key: dijit.byId('messagesselid').get('value'), affilid: dijit.byId('messagesaffilid').get('value'), subject: dijit.byId('messagessubject').get('value'), body: dijit.byId('messagesbody').get('value'), shortmsg: dijit.byId('messagesshortmsg').get('value'), continuation: dojo.byId('savemessagescont').value}; RPCwrapper(data, generalSiteConfigCB, 1); } messages.prototype.saveMessagesCBextra = function(data) { dijit.byId('messagesselid').set('disabled', false); dijit.byId('messagesaffilid').set('disabled', false); messages.items[data.items.key][data.items.affil] = new Object(); messages.items[data.items.key][data.items.affil]['name'] = data.items.name; messages.items[data.items.key][data.items.affil]['subject'] = data.items.subject; messages.items[data.items.key][data.items.affil]['message'] = data.items.body; messages.items[data.items.key][data.items.affil]['short_message'] = data.items.shortmsg; dijit.byId('deleteMessageDlg').hide(); messages.setContents(0); messages.startValidatePoll(); } messages.prototype.validatePoll = function() { var data = {continuation: dojo.byId('validatemessagespollcont').value}; RPCwrapper(data, this.validatePollCB, 1); this.validatecnt--; } messages.prototype.validatePollCB = function(data, ioArgs) { if(data.items.status == 'invalid') { messages.invalids = data.items.values; messages.updateInvalidContent(); } else { messages.invalids = new Object(); dijit.byId('invalidmsgfieldspane').hide(); } clearTimeout(this.timer); if(messages.validatecnt <= 0) return; messages.timer = setTimeout(function() { messages.validatePoll(); }, 1000); } messages.prototype.startValidatePoll = function() { this.validatecnt = 60; this.validatePoll(); } messages.prototype.stopValidatePoll = function() { clearTimeout(messages.timer); } messages.prototype.updateInvalidContent = function() { var msg = ''; for(key in this.invalids) { var parts = key.split('|'); var item = this.invalids[key]; if(parts.length == 2) { msg += 'Message: ' + parts[0] + ' -&gt; ' + parts[1] + '<br>'; } else { msg += 'Affiliation: ' + parts[2] + '<br>'; msg += 'Message: ' + parts[0] + ' -&gt; ' + parts[1] + '<br>'; } for(key in item) { if(item === undefined) continue; msg += key + ":<br>"; for(var i = 0; i < item[key].length; i++) { msg += '&nbsp;&nbsp;' + item[key][i] + '<br>'; } } msg += '<br>'; } dojo.byId('invalidmsgfieldcontent').innerHTML = msg; if(dijit.byId('invalidmsgfieldspane').domNode.style.visibility != 'visible') dijit.byId('invalidmsgfieldspane').show(); } var messages = new messages();