web/js/resources/image.js (851 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 Image() { Resource.apply(this, Array.prototype.slice.call(arguments)); this.selids = []; this.selectingall = false; this.restype = 'image'; } Image.prototype = new Resource(); Image.prototype.colformatter = function(value, rowIndex, obj) { if(obj.field == 'deleted' || obj.field == 'test' || obj.field == 'forcheckout' || obj.field == 'checkuser' || obj.field == 'rootaccess' || obj.field == 'sethostname' || obj.field == 'adauthenabled') { if(value == "0") return '<span class="rederrormsg">' + _('false') + '</span>'; if(value == "1") return '<span class="ready">' + _('true') + '</span>'; } if((obj.field == 'addomain' && value == null) || (obj.field == 'baseOU' && value == null)) return '(' + _('unset') + ')'; if(obj.field == 'maxinitialtime') { if(value == 0) { return _('Default for User'); } else if(value < 60) { return value + ' ' + _('minutes'); } else if(value == 60) { return _('1 hour'); } else if(value < 2880) { return parseInt(value / 60) + ' ' + _('hours'); } else if(value <= 64800) { return parseInt(value / 1440) + ' ' + _('days'); } else { return parseInt(value / 10080) + ' ' + _('weeks'); } } return value; } Image.prototype.numericsort = function(a, b) { if(typeof a != 'string' && typeof b != 'string') return 0; if(typeof a != 'string') return -1; if(typeof b != 'string') return 1; var al = parseInt(a, 10); var bl = parseInt(b, 10); if(al < bl) return -1; if(bl < al) return 1; return 0; } var resource = new Image(); function initPage() { if(! ('resourcegrid' in window)) { setTimeout(function() { initPage(); }, 100); return; } else { if(! resourcestore.comparatorMap) { resourcestore.comparatorMap = {}; } resourcestore.comparatorMap['minram'] = resource.numericsort; } } function inlineEditResourceCB(data, ioArgs) { if(data.items.status == 'success') { if(dijit.byId('advancedoptions').open) dijit.byId('advancedoptions').toggle(); dojo.byId('saveresourcecont').value = data.items.cont; dijit.byId('addeditdlg').set('title', data.items.title); dijit.byId('addeditbtn').set('label', _('Save Changes')); dojo.byId('editresid').value = data.items.resid; dijit.byId('name').set('value', data.items.data.prettyname); dijit.byId('owner').set('value', data.items.data.owner); dijit.byId('description').set('value', data.items.data.description); dijit.byId('usage').set('value', data.items.data.usage); dijit.byId('ram').set('value', data.items.data.minram); dijit.byId('cores').set('value', data.items.data.minprocnumber); dijit.byId('cpuspeed').set('value', data.items.data.minprocspeed); dijit.byId('networkspeed').set('value', data.items.data.minnetwork); dijit.byId('concurrent').set('value', data.items.data.maxconcurrent); dijit.byId('reload').set('value', data.items.data.reloadtime); dijit.byId('checkout').set('value', data.items.data.forcheckout); dijit.byId('checkuser').set('value', data.items.data.checkuser); dijit.byId('rootaccess').set('value', data.items.data.rootaccess); dijit.byId('sethostname').set('value', data.items.data.sethostname); dijit.byId('maxinitialtime').set('value', data.items.data.maxinitialtime); if(data.items.data.ostype == 'windows' || data.items.data.ostype == 'linux') dojo.removeClass('sethostnamediv', 'hidden'); else dojo.addClass('sethostnamediv', 'hidden'); dojo.byId('connectmethodlist').innerHTML = data.items.data.connectmethods.join('<br>'); dijit.byId('connectmethodttd').set('href', data.items.data.connectmethodurl); if(data.items.data.ostype == 'windows') { dojo.removeClass('imageadauthbox', 'hidden'); if('addomainvals' in data.items.data) var advalcnt = Object.keys(data.items.data.addomainvals).length; else var advalcnt = 0; if(data.items.data.addomainid != null) { dijit.byId('adauthenable').set('checked', true); if('extraaddomainid' in data.items.data) { var option = {value: data.items.data.extraaddomainid, label: data.items.data.addomain}; dijit.byId('addomainid').addOption([option]); dijit.byId('addomainid').extraaddomainid = data.items.data.extraaddomainid; dijit.byId('addomainid').extraaddomainou = data.items.data.extraaddomainou; } dijit.byId('addomainid').set('value', data.items.data.addomainid); dijit.byId('baseou').set('value', data.items.data.baseOU); if(advalcnt == 1 && ('extraaddomainid' in data.items.data)) dijit.byId('baseou').set('disabled', true); } else { dijit.byId('adauthenable').set('checked', false); dijit.byId('addomainid').reset(); dijit.byId('baseou').reset(); if(advalcnt == 0) dijit.byId('adauthenable').set('disabled', true); } } else { dojo.addClass('imageadauthbox', 'hidden'); dijit.byId('adauthenable').set('checked', false); dijit.byId('addomainid').reset(); dijit.byId('baseou').reset(); } dijit.byId('subimagedlg').set('href', data.items.data.subimageurl); dojo.byId('revisiondiv').innerHTML = data.items.data.revisionHTML; dojo.byId('addeditdlgerrmsg').innerHTML = ''; AJdojoCreate('revisiondiv'); dijit.byId('addeditdlg').show(); } else if(data.items.status == 'noaccess') { alert(_('Access denied to edit this item')); } } function initAddDialog() { if(dijit.byId('addomainid').options.length == 0) { dijit.byId('adauthenable').set('disabled', true); } } function delayedEditResize() { setTimeout(function() {resizeRecenterDijitDialog('addeditdlg');}, 300); } function resetEditResource() { dijit.byId('name').reset(); dijit.byId('owner').reset(); dijit.byId('description').reset(); dijit.byId('usage').reset(); dijit.byId('imgcomments').reset(); dijit.byId('ram').reset(); dijit.byId('cores').reset(); dijit.byId('cpuspeed').reset(); dijit.byId('networkspeed').reset(); dijit.byId('concurrent').reset(); if(dijit.byId('reload')) dijit.byId('reload').reset(); dijit.byId('checkout').reset(); dijit.byId('checkuser').reset(); dijit.byId('rootaccess').reset(); dijit.byId('sethostname').reset(); if(dijit.byId('sysprep')) dijit.byId('sysprep').reset(); if(dojo.byId('connectmethodids')) dojo.byId('connectmethodids').value = ''; dojo.byId('addeditdlgerrmsg').innerHTML = ''; if(dijit.byId('advancedoptions').open) dijit.byId('advancedoptions').toggle(); dojo.byId('connectmethodlist').innerHTML = ''; dojo.byId('addeditdlgerrmsg').innerHTML = ''; dijit.byId('adauthenable').reset(); dijit.byId('addomainid').reset(); dijit.byId('baseou').reset(); } function saveResource() { var submitbtn = dijit.byId('addeditbtn'); var errobj = dojo.byId('addeditdlgerrmsg'); if(! checkValidatedObj('name', errobj)) return; /*if(! dijit.byId('owner')._hasBeenBlurred && dijit.byId('owner').get('value') == '') { dijit.byId('owner')._hasBeenBlurred = true; dijit.byId('owner').validate(); submitbtn.set('disabled', true); setTimeout(function() { saveResource(); submitbtn.set('disabled', false); }, 1000); return; }*/ if(ownerchecking) { submitbtn.set('disabled', true); setTimeout(function() { saveResource(); submitbtn.set('disabled', false); }, 1000); return; } if(! checkValidatedObj('owner', errobj)) return; if(! checkValidatedObj('ram', errobj)) { if(! dijit.byId('advancedoptions').open) dijit.byId('advancedoptions').toggle(); setTimeout(function() {dijit.byId('ram').focus();}, 300); return; } if(! checkValidatedObj('cores', errobj)) { if(! dijit.byId('advancedoptions').open) dijit.byId('advancedoptions').toggle(); setTimeout(function() {dijit.byId('cores').focus();}, 300); return; } if(! checkValidatedObj('cpuspeed', errobj)) { if(! dijit.byId('advancedoptions').open) dijit.byId('advancedoptions').toggle(); setTimeout(function() {dijit.byId('cpuspeed').focus();}, 300); return; } if(! checkValidatedObj('concurrent', errobj)) { if(! dijit.byId('advancedoptions').open) dijit.byId('advancedoptions').toggle(); setTimeout(function() {dijit.byId('concurrent').focus();}, 300); return; } if(! checkValidatedObj('reload', errobj)) { if(! dijit.byId('advancedoptions').open) dijit.byId('advancedoptions').toggle(); setTimeout(function() {dijit.byId('reload').focus();}, 300); return; } if(dijit.byId('adauthenable').checked && ! checkValidatedObj('baseou', errobj)) { if(! dijit.byId('advancedoptions').open) dijit.byId('advancedoptions').toggle(); setTimeout(function() {dijit.byId('baseou').focus();}, 300); return; } if(dojo.byId('editresid').value == 0) var data = {continuation: dojo.byId('addresourcecont').value}; else var data = {continuation: dojo.byId('saveresourcecont').value}; data['name'] = dijit.byId('name').get('value'); data['owner'] = dijit.byId('owner').get('value'); data['networkspeed'] = parseInt(dijit.byId('networkspeed').get('value')); if((+log10(data['networkspeed']).toFixed(2) % 1) != 0) { // log10(1000) -> 2.9999999999999996 errobj.innerHTML = _('Invalid network speed specified'); return; } data['concurrent'] = dijit.byId('concurrent').get('value'); if(data['concurrent'] < 0 || data['concurrent'] > 255) { errobj.innerHTML = _('Max Concurrent Usage must be between 0 and 255'); return; } data['checkout'] = parseInt(dijit.byId('checkout').get('value')); if(data['checkout'] != 0 && data['checkout'] != 1) { errobj.innerHTML = _('Invalid value specified for \'Available for checkout\''); return; } data['checkuser'] = parseInt(dijit.byId('checkuser').get('value')); if(data['checkuser'] != 0 && data['checkuser'] != 1) { errobj.innerHTML = _('Invalid value specified for \'Check for logged in user\''); return; } data['rootaccess'] = parseInt(dijit.byId('rootaccess').get('value')); if(data['rootaccess'] != 0 && data['rootaccess'] != 1) { errobj.innerHTML = _('Invalid value specified for \'Users have administrative access\''); return; } data['sethostname'] = parseInt(dijit.byId('sethostname').get('value')); if(data['sethostname'] != 0 && data['sethostname'] != 1) { if(dojo.hasClass('sethoatnamediv', 'hidden')) { data['sethostname'] = 0; } else { errobj.innerHTML = _('Invalid value specified for \'Set computer hostname\''); return; } } data['maxinitialtime'] = parseInt(dijit.byId('maxinitialtime').get('value')); if(data['maxinitialtime'] < 0 || data['maxinitialtime'] > 201600) { errobj.innerHTML = _('Invalid Max Reservation Duration selected'); return; } if(dijit.byId('sysprep')) { data['sysprep'] = parseInt(dijit.byId('sysprep').get('value')); if(data['sysprep'] != 0 && data['sysprep'] != 1) { errobj.innerHTML = _('Invalid value specified for \'Use sysprep\''); return; } if(! /[0-9,]+/.test(dojo.byId('connectmethodids').value)) { errobj.innerHTML = _('Invalid Connect Methods specified'); return; } data['connectmethodids'] = dojo.byId('connectmethodids').value; } data['desc'] = dijit.byId('description').get('value'); data['usage'] = dijit.byId('usage').get('value'); if(dijit.byId('imgcomments')) data['imgcomments'] = dijit.byId('imgcomments').get('value'); data['ram'] = dijit.byId('ram').get('value'); data['cores'] = dijit.byId('cores').get('value'); data['cpuspeed'] = dijit.byId('cpuspeed').get('value'); if(dijit.byId('reload')) data['reload'] = dijit.byId('reload').get('value'); if(dijit.byId('adauthenable').checked) { data['adauthenabled'] = 1; data['addomainid'] = dijit.byId('addomainid').get('value'); data['baseou'] = dijit.byId('baseou').get('value'); } else { data['adauthenabled'] = 0; data['addomainid'] = 0; data['baseou'] = ''; } submitbtn.set('disabled', true); RPCwrapper(data, saveResourceCB, 1); } function submitClickThrough() { var submitbtn = dijit.byId('clickthroughDlgBtn'); var data = {continuation: dojo.byId('addresourcecont').value}; submitbtn.set('disabled', true); RPCwrapper(data, saveResourceCB, 1); } function saveResourceCB(data, ioArgs) { if(data.items.status == 'error') { dojo.byId('addeditdlgerrmsg').innerHTML = '<br>' + data.items.msg; dijit.byId('addeditbtn').set('disabled', false); return; } else if(data.items.status == 'adderror') { alert(data.items.errormsg); dijit.byId('clickthroughdlg').hide(); dijit.byId('clickthroughDlgBtn').set('disabled', false); } else if(data.items.status == 'success') { if(data.items.action == 'clickthrough') { dojo.byId('addresourcecont').value = data.items.cont; dojo.byId('clickthroughDlgContent').innerHTML = data.items.agree; dijit.byId('addeditbtn').set('disabled', false); dijit.byId('clickthroughDlgBtn').set('disabled', false); dijit.byId('clickthroughdlg').show(); return; } else if(data.items.action == 'add') { dijit.byId('clickthroughdlg').hide(); dijit.byId('clickthroughDlgBtn').set('disabled', false); resRefresh(); } else { resourcegrid.store.fetch({ query: {id: data.items.data.id}, onItem: function(item) { resourcegrid.store.setValue(item, 'name', data.items.data.prettyname); resourcegrid.store.setValue(item, 'owner', data.items.data.owner); resourcegrid.store.setValue(item, 'minram', data.items.data.minram); resourcegrid.store.setValue(item, 'minprocnumber', data.items.data.minprocnumber); resourcegrid.store.setValue(item, 'minprocspeed', data.items.data.minprocspeed); resourcegrid.store.setValue(item, 'minnetwork', data.items.data.minnetwork); resourcegrid.store.setValue(item, 'maxconcurrent', parseInt(data.items.data.maxconcurrent)); resourcegrid.store.setValue(item, 'forcheckout', data.items.data.forcheckout); resourcegrid.store.setValue(item, 'checkuser', data.items.data.checkuser); resourcegrid.store.setValue(item, 'rootaccess', parseInt(data.items.data.rootaccess)); resourcegrid.store.setValue(item, 'sethostname', parseInt(data.items.data.sethostname)); resourcegrid.store.setValue(item, 'maxinitialtime', parseInt(data.items.data.maxinitialtime)); resourcegrid.store.setValue(item, 'reloadtime', data.items.data.reloadtime); resourcegrid.store.setValue(item, 'adauthenabled', data.items.data.adauthenabled); resourcegrid.store.setValue(item, 'addomainid', data.items.data.addomainid); resourcegrid.store.setValue(item, 'addomain', data.items.data.addomain); resourcegrid.store.setValue(item, 'baseOU', data.items.data.baseOU); }, onComplete: function(items, result) { // when call resourcegrid.sort directly, the table contents disappear; not sure why setTimeout(function() {resourcegrid.sort();}, 10); } }); } dijit.byId('name').reset(); dijit.byId('owner').reset(); dijit.byId('networkspeed').reset(); dijit.byId('concurrent').reset(); dijit.byId('checkout').reset(); dijit.byId('checkuser').reset(); dijit.byId('rootaccess').reset(); dijit.byId('sethostname').reset(); dijit.byId('description').reset(); dijit.byId('usage').reset(); if(dijit.byId('imgcomments')) { dijit.byId('imgcomments').reset(); } dijit.byId('ram').reset(); dijit.byId('cores').reset(); dijit.byId('cpuspeed').reset(); if(dijit.byId('reload')) dijit.byId('reload').reset(); dijit.byId('addeditdlg').hide(); dojo.byId('addeditdlgerrmsg').innerHTML = ''; if('extraaddomainid' in dijit.byId('addomainid')) { dijit.byId('addomainid').removeOption({value: dijit.byId('addomainid').extraaddomainid}); delete dijit.byId('addomainid').extraaddomainid; delete dijit.byId('addomainid').extraaddomainou; } dijit.registry.filter(function(widget, index){return widget.id.match(/^comments/);}).forEach(function(widget) {widget.destroy();}); setTimeout(function() {dijit.byId('addeditbtn').set('disabled', false);}, 250); } } function updateCurrentConMethods() { var tmp = dijit.byId('addcmsel').get('value'); if(tmp == '') { dijit.byId('addcmsel').set('disabled', true); dijit.byId('addcmbtn').set('disabled', true); } else { dijit.byId('addcmsel').set('disabled', false); dijit.byId('addcmbtn').set('disabled', false); } // update list of current methods var obj = dojo.byId('curmethodsel'); for(var i = obj.options.length - 1; i >= 0; i--) obj.remove(i); cmstore.fetch({ query: {active: 1}, onItem: function(item) { var obj = dojo.byId('curmethodsel').options; obj[obj.length] = new Option(item.display[0], item.name[0], false, false); }, onComplete: function() { sortSelect(dojo.byId('curmethodsel')); updateConnectionMethodList(); } }); } function addSubimage() { dijit.byId('addbtn').attr('label', _('Working...')); var data = {continuation: dojo.byId('addsubimagecont').value, imageid: dijit.byId('addsubimagesel').value}; RPCwrapper(data, addSubimageCB, 1); } function addSubimageCB(data, ioArgs) { if(data.items.error) { dijit.byId('addbtn').attr('label', _('Add Subimage')); alert(data.items.msg); return; } var obj = dojo.byId('cursubimagesel'); if(obj.options[0].text == _('(None)')) { obj.disabled = false; obj.remove(0); } dojo.byId('addsubimagecont').value = data.items.addcont; dojo.byId('remsubimagecont').value = data.items.remcont; var index = obj.options.length; obj.options[index] = new Option(data.items.name, data.items.newid, false, false); sortSelect(obj); dojo.byId('subimgcnt').innerHTML = obj.options.length; dijit.byId('addbtn').attr('label', _('Add Subimage')); } function remSubimages() { var obj = dojo.byId('cursubimagesel'); var imgids = new Array(); for(var i = obj.options.length - 1; i >= 0; i--) { if(obj.options[i].selected) imgids.push(obj.options[i].value); } if(! imgids.length) return; var ids = imgids.join(','); dijit.byId('rembtn').attr('label', _('Working...')); var data = {continuation: dojo.byId('remsubimagecont').value, imageids: ids}; RPCwrapper(data, remSubimagesCB, 1); } function remSubimagesCB(data, ioArgs) { if(data.items.error) { dijit.byId('rembtn').attr('label', _('Remove Selected Subimage(s)')); alert(data.items.msg); return; } var obj = dojo.byId('cursubimagesel'); for(var i = obj.options.length - 1; i >= 0; i--) { if(obj.options[i].selected) obj.remove(i); } if(! obj.options.length) { obj.disabled = true; obj.options[0] = new Option(_('(None)'), 'none', false, false); dojo.byId('subimgcnt').innerHTML = 0; } else dojo.byId('subimgcnt').innerHTML = obj.options.length; dojo.byId('addsubimagecont').value = data.items.addcont; dojo.byId('remsubimagecont').value = data.items.remcont; dijit.byId('rembtn').attr('label', _('Remove Selected Subimage(s)')); } function selectConMethodRevision(url) { var revid = dijit.byId('conmethodrevid').get('value'); dijit.byId('addcmsel').set('disabled', true); dijit.byId('addcmbtn').set('disabled', true); var oldstore = cmstore; cmstore = new dojo.data.ItemFileWriteStore({url: url + '&revid=' + revid}); dijit.byId('addcmsel').setStore(cmstore, '', {query: {active: 0}}); } function addConnectMethod() { cmstore.fetch({ query: {name: dijit.byId('addcmsel').value}, onItem: addConnectMethod2 }); } function addConnectMethod2(item) { if(cmstore.getValue(item, 'autoprovisioned') == 0) { dojo.byId('autoconfirmcontent').innerHTML = cmstore.getValue(item, 'display'); dijit.byId('autoconfirmdlg').show(); return; } addConnectMethod3(); } function addConnectMethod3() { dojo.byId('cmerror').innerHTML = ''; dijit.byId('addcmbtn').attr('label', _('Working...')); var data = {continuation: dojo.byId('addcmcont').value, newid: dijit.byId('addcmsel').value}; if(dijit.byId('conmethodrevid')) data.revid = dijit.byId('conmethodrevid').get('value'); else data.revid = 0; RPCwrapper(data, addConnectMethodCB, 1); } function addConnectMethodCB(data, ioArgs) { if(data.items.error) { dijit.byId('addcmbtn').attr('label', _('Add Method')); alert(data.items.msg); return; } cmstore.fetch({ query: {name: data.items.newid}, onItem: function(item) { cmstore.setValue(item, 'active', 1); } }); dijit.byId('addcmsel').setStore(cmstore, '', {query: {active: 0}}); dojo.byId('addcmcont').value = data.items.addcont; dojo.byId('remcmcont').value = data.items.remcont; dijit.byId('addcmbtn').attr('label', _('Add Method')); } function remConnectMethod() { var obj = dojo.byId('curmethodsel'); var cmids = new Array(); for(var i = obj.options.length - 1; i >= 0; i--) { if(obj.options[i].selected) cmids.push(obj.options[i].value); } if(! cmids.length) return; if(cmids.length == obj.options.length) { dojo.byId('cmerror').innerHTML = _('There must be at least one item in Current Methods'); setTimeout(function() {dojo.byId('cmerror').innerHTML = '';}, 20000); return; } var ids = cmids.join(','); dijit.byId('remcmbtn').attr('label', _('Working...')); var data = {continuation: dojo.byId('remcmcont').value, ids: ids}; if(dijit.byId('conmethodrevid')) data.revid = dijit.byId('conmethodrevid').get('value'); else data.revid = 0; RPCwrapper(data, remConnectMethodCB, 1); } function remConnectMethodCB(data, ioArgs) { if(dijit.byId('addcmsel').get('disabled')) { dijit.byId('addcmsel').set('disabled', false); dijit.byId('addcmbtn').set('disabled', false); } if(data.items.error) { dijit.byId('rembtn').attr('label', _('Remove Selected Methods')); alert(data.items.msg); return; } var obj = dojo.byId('curmethodsel'); for(var i = obj.options.length - 1; i >= 0; i--) { if(obj.options[i].selected) { cmstore.fetch({ query: {name: obj.options[i].value}, onItem: function(item) { cmstore.setValue(item, 'active', 0); } }); obj.remove(i); } } dijit.byId('addcmsel').setStore(cmstore, '', {query: {active: 0}}); dojo.byId('addcmcont').value = data.items.addcont; dojo.byId('remcmcont').value = data.items.remcont; updateConnectionMethodList(); dijit.byId('remcmbtn').attr('label', _('Remove Selected Methods')); } function updateConnectionMethodList() { var options = dojo.byId('curmethodsel').options; var items = new Array(); var ids = new Array(); for(var i = 0; i < options.length; i++) { items.push(options[i].text); ids.push(options[i].value); } dojo.byId('connectmethodlist').innerHTML = items.join('<br>'); if(dojo.byId('connectmethodids')) dojo.byId('connectmethodids').value = ids.join(','); } function log10(x) { return Math.log(x) / Math.LN10; } function updateRevisionProduction(cont) { document.body.style.cursor = 'wait'; RPCwrapper({continuation: cont}, generalCB); } function updateRevisionComments(id, cont) { document.body.style.cursor = 'wait'; var data = {continuation: cont, comments: dijit.byId(id).value}; RPCwrapper(data, updateRevisionCommentsCB, 1); } function updateRevisionCommentsCB(data, ioArgs) { //var obj = dijit.byId('comments' + data.items.id); //obj.setValue(data.items.comments); document.body.style.cursor = 'default'; } function deleteRevisions(cont, idlist) { var ids = idlist.split(','); var checkedids = new Array(); for(var i = 0; i < ids.length; i++) { var id = ids[i]; var obj = document.getElementById('chkrev' + id); var obj2 = document.getElementById('radrev' + id); if(obj.checked) { if(obj2.checked) { alert(_('You cannot delete the production revision.')); return; } checkedids.push(id); } } if(checkedids.length == 0) return; checkedids = checkedids.join(','); var data = {continuation: cont, checkedids: checkedids}; RPCwrapper(data, deleteRevisionsCB, 1); } function deleteRevisionsCB(data, ioArgs) { if('status' in data.items && data.items.status == 'error') { dojo.byId('addeditdlgerrmsg').innerHTML = data.items.msg; return; } dijit.registry.filter(function(widget, index){return widget.id.match(/^comments/);}).forEach(function(widget) {widget.destroy();}); var obj = document.getElementById('revisiondiv'); obj.innerHTML = data.items.html; AJdojoCreate('revisiondiv'); } function hideStartImageDlg() { dojo.byId('newimage').checked = true; } function hideUpdateImageDlg() { dojo.byId('newimage').checked = true; dojo.byId('updateimage').value = ''; dojo.byId('previouscomments').innerHTML = ''; dijit.byId('newcomments').reset(); } function hideClickThroughDlg() { if(dijit.byId('addeditdlg').open) dijit.byId('addeditdlg').hide(); if(dijit.byId('updateimagedlg').open) dijit.byId('updateimagedlg').hide(); } function startImage(cont) { RPCwrapper({continuation: cont}, startImageCB, 1); } function startImageCB(data, ioArgs) { if(data.items.status == 'error') { alert(data.items.errmsg); return; } if(data.items.status == 'resgone') { alert(data.items.errmsg); resRefresh(); return; } if(data.items.status == 'rootaccessnoimage') { dijit.byId('startimagedisableddlg').show(); return; } // configure add image dialog, extra work, but saves an AJAX call after selection resetEditResource(); var methodids = new Array(); var methods = new Array(); for(var key in data.items.connectmethods) { if(isNaN(key)) continue; methodids.push(key); methods.push(data.items.connectmethods[key]); } dojo.byId('connectmethodids').value = methodids.join(','); dojo.byId('connectmethodlist').innerHTML = methods.join('<br>'); dijit.byId('owner').set('value', data.items.owner); dijit.byId('connectmethodttd').set('href', data.items.connectmethodurl); dojo.byId('addresourcecont').value = data.items.newcont; if(data.items.enableupdate == 1) { dojo.byId('updateimage').value = data.items.updatecont; dojo.byId('previouscomments').innerHTML = data.items.comments; dojo.byId('updateimage').disabled = ''; dojo.removeClass('updateimagelabel', 'disabledlabel'); } else { dojo.byId('updateimage').disabled = 'disabled'; dojo.addClass('updateimagelabel', 'disabledlabel'); } dijit.byId('addeditbtn').set('label', _('Create Image')); dijit.byId('addeditbtn').set('disabled', false); dijit.byId('clickthroughDlgBtn').set('disabled', false); if(data.items.ostype == 'windows' || data.items.ostype == 'linux') { dojo.removeClass('sethostnamediv', 'hidden'); if(data.items.ostype == 'windows') dijit.byId('sethostname').set('value', 0); else dijit.byId('sethostname').set('value', 1); } else dojo.addClass('sethostnamediv', 'hidden'); dijit.byId('adauthenable').set('checked', false); dijit.byId('addomainid').reset(); dijit.byId('baseou').reset(); if(data.items.ostype == 'windows') { dojo.removeClass('sysprepdiv', 'hidden'); dojo.removeClass('imageadauthbox', 'hidden'); } else { dojo.addClass('sysprepdiv', 'hidden'); dojo.addClass('imageadauthbox', 'hidden'); } if(data.items.checkpoint) { dojo.addClass('imageendrescontent', 'hidden'); dojo.removeClass('imagekeeprescontent', 'hidden'); } else { dojo.removeClass('imageendrescontent', 'hidden'); dojo.addClass('imagekeeprescontent', 'hidden'); } // show selection dialog dijit.byId('startimagedlg').show(); } function submitCreateUpdateImage() { if(dojo.byId('newimage').checked) { dijit.byId('addeditdlg').show(); initAddDialog(); dijit.byId('startimagedlg').hide(); return; } else if(dojo.byId('updateimage').checked) { //var data = {continuation: dojo.byId('updateimage').value}; dijit.byId('updateimagedlg').show(); dijit.byId('startimagedlg').hide(); return; } } function submitUpdateImage() { dijit.byId('updateImageDlgBtn').set('disabled', true); var data = {continuation: dojo.byId('updateimage').value, comments: dijit.byId('newcomments').value}; RPCwrapper(data, updateImageCB, 1); } function updateImageCB(data, ioArgs) { dijit.byId('updateImageDlgBtn').set('disabled', false); if(data.items.status == 'error') { alert(data.items.errmsg); dijit.byId('updateimagedlg').hide(); return; } else if(data.items.status == 'success') { if(data.items.action == 'clickthrough') { dojo.byId('updateimage').value = data.items.cont; dojo.byId('clickthroughDlgContent').innerHTML = data.items.agree; dijit.byId('clickthroughDlgBtn').set('disabled', false); dijit.byId('clickthroughdlg').show(); return; } } else if(data.items.status == 'noaccess') { alert(_('You must be the owner of the image to update it.')); dijit.byId('updateimagedlg').hide(); return; } } function clickThroughAgree() { dijit.byId('clickthroughDlgBtn').set('disabled', true); if(dijit.byId('addeditdlg').open) saveResource(); else if(dijit.byId('updateimagedlg').open) submitUpdateImageClickthrough(); } function submitUpdateImageClickthrough() { var data = {continuation: dojo.byId('updateimage').value}; RPCwrapper(data, submitUpdateImageClickthroughCB, 1); } function submitUpdateImageClickthroughCB(data, ioArgs) { if(data.items.status == 'noaccess') { alert(_('You must be the owner of the image to update it.')); dijit.byId('updateimagedlg').hide(); dijit.byId('clickthroughdlg').hide(); dijit.byId('clickthroughDlgBtn').set('disabled', false); return; } else if(data.items.status == 'error') { alert(data.items.errmsg); dijit.byId('updateimagedlg').hide(); dijit.byId('clickthroughdlg').hide(); dijit.byId('clickthroughDlgBtn').set('disabled', false); return; } imagestore.fetch({ query: {id: data.items.imageid}, onItem: function(item, request) { imagestore.setValue(item, 'revisions', 1); } }); dijit.byId('updateimagedlg').hide(); dijit.byId('clickthroughdlg').hide(); dijit.byId('clickthroughDlgBtn').set('disabled', false); resRefresh(); } function toggleADauth() { if(dijit.byId('adauthenable').checked) { dijit.byId('addomainid').set('disabled', false); dijit.byId('baseou').set('disabled', false); } else { dijit.byId('addomainid').set('disabled', true); dijit.byId('baseou').set('disabled', true); } selectADauth(); } function selectADauth() { var obj = dijit.byId('addomainid'); if('extraaddomainid' in obj && obj.get('value') == obj.extraaddomainid) { dijit.byId('baseou').set('value', obj.extraaddomainou); dijit.byId('baseou').set('disabled', true); } else if(dijit.byId('adauthenable').checked) { dijit.byId('baseou').set('disabled', false); } }