web/js/blockallocations.js (1,280 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. */ var timeout = null; var ownervalid = true; var blockFormAddWeeklyData = { identifier: 'id', items: [] } var blockFormAddMonthlyData = { identifier: 'id', items: [] } var blockFormAddListData = { identifier: 'id', items: [] } var usagechart = null; function generalReqCB(data, ioArgs) { eval(data); document.body.style.cursor = 'default'; } function populateBlockStore(cont) { RPCwrapper({continuation: cont}, populateBlockStoreCB, 1); } function populateBlockStoreCB(data, ioArgs) { if(data.items.error) { alert(data.items.error); return; } if(data.items.type == 'weekly' || data.items.type == 'monthly') { if(data.items.type == 'weekly') { var store = requestBlockAddWeeklyStore; var grid = requestBlockAddWeeklyGrid; var rmfunc = blockFormRemoveWeeklyTime; } else { var store = requestBlockAddMonthlyStore; var grid = requestBlockAddMonthlyGrid; var rmfunc = blockFormRemoveMonthlyTime; } if(! store.nextid) store.nextid = 0; for(var i = 0; i < data.items.starths.length; i++) { var id = store.nextid + 1; store.nextid = id; var start = dojox.string.sprintf('%02d%02d%02d%02d', data.items.starths[i], data.items.startms[i], data.items.endhs[i], data.items.endms[i]); var start2 = new Date(0); start2.setHours(data.items.starths[i]); start2.setMinutes(data.items.startms[i]); var end = new Date(0); end.setHours(data.items.endhs[i]); end.setMinutes(data.items.endms[i]); var btn = new dijit.form.Button({ label: _("Remove"), onClick: createRemoveFunc(rmfunc, id) }); store.newItem({id: id, start: start, start2: start2, end: end, remove: btn}); } grid.sort(); } else if(data.items.type == 'list') { var store = requestBlockAddListStore; var grid = requestBlockAddListGrid; if(! store.nextid) store.nextid = 0; for(var i = 0; i < data.items.starths.length; i++) { var id = store.nextid + 1; store.nextid = id; var date1 = dojox.string.sprintf('%d%02d%02d%02d%02d%02d%02d', data.items.years[i], data.items.months[i], data.items.days[i], data.items.starths[i], data.items.startms[i], data.items.endhs[i], data.items.endms[i]); var date2 = new Date(0); date2.setDate(data.items.days[i]); date2.setFullYear(data.items.years[i]); date2.setMonth(data.items.months[i] - 1); var start = new Date(0); start.setHours(data.items.starths[i]); start.setMinutes(data.items.startms[i]); var end = new Date(0); end.setHours(data.items.endhs[i]); end.setMinutes(data.items.endms[i]); var btn = new dijit.form.Button({ label: _("Remove"), onClick: createRemoveFunc(blockFormRemoveListSlot, id) }); store.newItem({id: id, date1: date1, date2: date2, start: start, end: end, remove: btn}); } grid.sort(); } } function createRemoveFunc(func, id) { return function() {func(id);} } function updateBlockStatus() { var data = {continuation: dojo.byId('updatecont').value}; RPCwrapper(data, updateBlockStatusCB, 1); } function updateBlockStatusCB(data, ioArgs) { if(data.items.status && data.items.status == 'gone') { dojo.byId('statusdiv').innerHTML = _('The selected Block Request no longer exists.'); return; } dojo.byId('available').innerHTML = data.items.available; dojo.byId('reloading').innerHTML = data.items.reloading; dojo.byId('used').innerHTML = data.items.used; dojo.byId('failed').innerHTML = data.items.failed; setTimeout(updateBlockStatus, 30000); } function blockFormChangeTab(tab) { if(tab == 'list') dijit.byId('timeTypeContainer').selectChild(dijit.byId('listtab')); else if(tab == 'weekly') dijit.byId('timeTypeContainer').selectChild(dijit.byId('weeklytab')); else if(tab == 'monthly') dijit.byId('timeTypeContainer').selectChild(dijit.byId('monthlytab')); } function blockFormWeeklyAddBtnCheck(isstart) { var startobj = dijit.byId('weeklyaddstart'); var endobj = dijit.byId('weeklyaddend'); if(isstart) endobj.validate(); if(startobj.isValid() && endobj.isValid()) dijit.byId('requestBlockWeeklyAddBtn').attr('disabled', false); else dijit.byId('requestBlockWeeklyAddBtn').attr('disabled', true); } function blockFormMonthlyAddBtnCheck(isstart) { var startobj = dijit.byId('monthlyaddstart'); var endobj = dijit.byId('monthlyaddend'); if(isstart) endobj.validate(); if(startobj.isValid() && endobj.isValid()) dijit.byId('requestBlockMonthlyAddBtn').attr('disabled', false); else dijit.byId('requestBlockMonthlyAddBtn').attr('disabled', true); } function blockFormListAddBtnCheck() { var dateobj = dijit.byId('listadddate'); var startobj = dijit.byId('listaddstart'); var endobj = dijit.byId('listaddend'); if(dateobj.isValid() && startobj.isValid() && endobj.isValid()) dijit.byId('requestBlockListAddBtn').attr('disabled', false); else dijit.byId('requestBlockListAddBtn').attr('disabled', true); } function blockFormAddWeeklyTime() { var startobj = dijit.byId('weeklyaddstart'); var endobj = dijit.byId('weeklyaddend'); if(! startobj.isValid() || ! endobj.isValid()) return; var s = startobj.value; var end = endobj.value; var start = dojox.string.sprintf('%02d%02d%02d%02d', s.getHours(), s.getMinutes(), end.getHours(), end.getMinutes()); var tmp = s; tmp.setFullYear(2000, 0, 1); var startts = tmp.getTime(); tmp = end; tmp.setFullYear(2000, 0, 1); var endts = tmp.getTime(); var items = requestBlockAddWeeklyStore._getItemsArray(); var len = items.length; for(var i = 0; i < len; i++) { var testend = items[i].end[0]; testend.setFullYear(2000, 0, 1); testend = testend.getTime(); var teststart = items[i].start2[0]; teststart.setFullYear(2000, 0, 1); teststart = teststart.getTime(); if(startts < testend && endts > teststart) { alert(_('These times overlap with an existing time slot')); return; } } if(! requestBlockAddWeeklyStore.nextid) requestBlockAddWeeklyStore.nextid = 0; var id = requestBlockAddWeeklyStore.nextid + 1; requestBlockAddWeeklyStore.nextid = id; var btn = new dijit.form.Button({ label: _("Remove"), onClick: function() {blockFormRemoveWeeklyTime(id);} }); requestBlockAddWeeklyStore.newItem({id: id, start: start, start2: s, end: end, remove: btn}); requestBlockAddWeeklyGrid.sort(); } function blockFormAddMonthlyTime() { var startobj = dijit.byId('monthlyaddstart'); var endobj = dijit.byId('monthlyaddend'); if(! startobj.isValid() || ! endobj.isValid()) return; var s = startobj.value; var end = endobj.value; var start = dojox.string.sprintf('%02d%02d%02d%02d', s.getHours(), s.getMinutes(), end.getHours(), end.getMinutes()); var startts = s.getTime(); var endts = end.getTime(); var items = requestBlockAddMonthlyStore._getItemsArray(); var len = items.length; for(var i = 0; i < len; i++) { if(startts < items[i].end[0].getTime() && endts > items[i].start2[0].getTime()) { alert(_('These times overlap with an existing time slot')); return; } } if(! requestBlockAddMonthlyStore.nextid) requestBlockAddMonthlyStore.nextid = 0; var id = requestBlockAddMonthlyStore.nextid + 1; requestBlockAddMonthlyStore.nextid = id; var btn = new dijit.form.Button({ label: _("Remove"), onClick: function() {blockFormRemoveMonthlyTime(id);} }); requestBlockAddMonthlyStore.newItem({id: id, start: start, start2: s, end: end, remove: btn}); requestBlockAddMonthlyGrid.sort(); } function blockFormAddListSlot() { var dateobj = dijit.byId('listadddate'); var startobj = dijit.byId('listaddstart'); var endobj = dijit.byId('listaddend'); if(! dateobj.isValid() || ! startobj.isValid() || ! endobj.isValid()) return; var today = new Date(dojo.byId('nowtimestamp').value * 1000); today.setHours(0); today.setMinutes(0); today.setSeconds(0); today.setMilliseconds(0); if(dateobj.value < today) { alert(_('The date must be today or later')); return; } var d = dateobj.value; var start = startobj.value; var end = endobj.value; var date1 = dojox.string.sprintf('%d%02d%02d%02d%02d%02d%02d', d.getFullYear(), (d.getMonth() + 1), d.getDate(), start.getHours(), start.getMinutes(), end.getHours(), end.getMinutes()); var startts = d.getTime() + start.getTime(); var endts = d.getTime() + end.getTime(); var items = requestBlockAddListStore._getItemsArray(); var len = items.length; for(var i = 0; i < len; i++) { var checkstart = items[i].date2[0].getTime() + items[i].start[0].getTime(); var checkend = items[i].date2[0].getTime() + items[i].end[0].getTime(); if(startts < checkend && endts > checkstart) { alert(_('The date and times overlap with an existing time slot')); return; } } if(! requestBlockAddListStore.nextid) requestBlockAddListStore.nextid = 0; var id = requestBlockAddListStore.nextid + 1; requestBlockAddListStore.nextid = id; var btn = new dijit.form.Button({ label: _("Remove"), onClick: function() {blockFormRemoveListSlot(id);} }); requestBlockAddListStore.newItem({id: id, date1: date1, date2: d, start: start, end: end, remove: btn}); requestBlockAddListGrid.sort(); } function blockFormRemoveWeeklyTime(id) { requestBlockAddWeeklyStore.fetch({ query: {id: id}, onItem: function(item) { requestBlockAddWeeklyStore.deleteItem(item); } }); } function blockFormRemoveMonthlyTime(id) { requestBlockAddMonthlyStore.fetch({ query: {id: id}, onItem: function(item) { requestBlockAddMonthlyStore.deleteItem(item); } }); } function blockFormRemoveListSlot(id) { requestBlockAddListStore.fetch({ query: {id: id}, onItem: function(item) { requestBlockAddListStore.deleteItem(item); } }); } function blockFormConfirm(mode) { if(! dijit.byId('machinecnt').isValid() || (dijit.byId('imagesel') && ! dijit.byId('imagesel').isValid()) || (dijit.byId('groupsel') && ! dijit.byId('groupsel').isValid()) || (dijit.byId('brname') && ! dijit.byId('brname').isValid()) || (dijit.byId('browner') && ! dijit.byId('browner').isValid())) { alert(_('Please fix invalid values before submitting.')); return; } var weekly = dojo.byId('weeklyradio'); var monthly = dojo.byId('monthlyradio'); var list = dojo.byId('listradio'); if(weekly.checked) blockFormVerifyWeekly(mode); else if(monthly.checked) blockFormVerifyMonthly(mode); else if(list.checked) blockFormVerifyList(mode); } function blockFormSubmit(mode) { var weekly = dojo.byId('weeklyradio'); var monthly = dojo.byId('monthlyradio'); var list = dojo.byId('listradio'); if(weekly.checked) blockFormSubmitWeekly(mode); else if(monthly.checked) blockFormSubmitMonthly(mode); else if(list.checked) blockFormSubmitList(mode); } function blockFormVerifyWeekly(mode) { if(! dijit.byId('wkfirstdate').isValid()) { dijit.byId('wkfirstdate')._hasBeenBlurred = true; dijit.byId('wkfirstdate').validate(); alert(_('Please fill in First Date of Usage')); return; } if(! dijit.byId('wklastdate').isValid()) { dijit.byId('wklastdate')._hasBeenBlurred = true; dijit.byId('wklastdate').validate(); alert(_('Please fill in Last Date of Usage')); return; } var today = new Date(); today.setHours(0); today.setMinutes(0); today.setSeconds(0); today.setMilliseconds(0); if(pagemode != 'edit' && dijit.byId('wkfirstdate').value < today) { alert(_('The First Date of Usage must be today or later')); return; } if(pagemode != 'edit' && dijit.byId('wklastdate').value < dijit.byId('wkfirstdate').value) { alert(_('The Last Date of Usage must be the same or later than the First Date of Usage')); return; } if(pagemode == 'edit' && dijit.byId('wklastdate').value < today) { alert(_('The Last Date of Usage must be today or later')); return; } var days = new Array(); if(dojo.byId('wdays0').checked) days.push(_('Sunday')); if(dojo.byId('wdays1').checked) days.push(_('Monday')); if(dojo.byId('wdays2').checked) days.push(_('Tuesday')); if(dojo.byId('wdays3').checked) days.push(_('Wednesday')); if(dojo.byId('wdays4').checked) days.push(_('Thursday')); if(dojo.byId('wdays5').checked) days.push(_('Friday')); if(dojo.byId('wdays6').checked) days.push(_('Saturday')); if(days.length == 0) { alert(_('At least one day must be checked when using "Repeating Weekly"')); return; } var len = requestBlockAddWeeklyStore._getItemsArray().length; if(len == 0) { alert(_('At least one start/end combination must be entered when using "Repeating Weekly"')); return; } if(dijit.byId('groupsel')) var groupselobj = dijit.byId('groupsel'); else var groupselobj = dojo.byId('groupsel'); if(mode == 'request' && groupselobj.value == 0 && dijit.byId('comments').value.length == 0) { alert(_('When submitting "(group not listed)" as the user group, information must be included in the comments about what group needs to be created.')); return; } if(mode != 'request') { dojo.byId('confnametitle').innerHTML = _('Name:'); dojo.byId('confname').innerHTML = dijit.byId('brname').textbox.value; dojo.byId('confownertitle').innerHTML = _('Owner:'); dojo.byId('confowner').innerHTML = dijit.byId('browner').textbox.value; } dojo.byId('confimage').innerHTML = getSelectText('imagesel'); dojo.byId('confseats').innerHTML = dijit.byId('machinecnt').value; if(groupselobj.value == 0) dojo.byId('confgroup').innerHTML = _('specified in comments'); else dojo.byId('confgroup').innerHTML = getSelectText('groupsel'); dojo.byId('confrepeat').innerHTML = _('Weekly'); dojo.byId('conftitle1').innerHTML = _('First Date:'); dojo.byId('confvalue1').innerHTML = dijit.byId('wkfirstdate').getDisplayedValue(); dojo.byId('conftitle2').innerHTML = _('Last Date:'); dojo.byId('confvalue2').innerHTML = dijit.byId('wklastdate').getDisplayedValue(); dojo.byId('conftitle3').innerHTML = _('Repeating on these days:'); dojo.byId('confvalue3').innerHTML = days.join('<br>'); var times = new Array(); var items = requestBlockAddWeeklyStore._getItemsArray(); for(var i = 0; i < len; i++) { var item = new Object(); item.key = items[i].start[0]; item.val = timeFromTextBox(items[i].start2[0]) + ' - ' + timeFromTextBox(items[i].end[0]); times.push(item); } times.sort(sortTimeArray); var times2 = new Array(); for(i = 0; i < len; i++) times2.push(times[i].val); dojo.byId('conftitle4').innerHTML = _('During these times:'); dojo.byId('confvalue4').innerHTML = times2.join('<br>'); if(dijit.byId('comments') && dijit.byId('comments').value.length) dojo.removeClass('commentsnote', 'hidden'); dijit.byId('confirmDialog').show(); } function blockFormSubmitWeekly(mode) { var days = new Array(); if(dojo.byId('wdays0').checked) days.push(0); if(dojo.byId('wdays1').checked) days.push(1); if(dojo.byId('wdays2').checked) days.push(2); if(dojo.byId('wdays3').checked) days.push(3); if(dojo.byId('wdays4').checked) days.push(4); if(dojo.byId('wdays5').checked) days.push(5); if(dojo.byId('wdays6').checked) days.push(6); var times = new Array(); var items = requestBlockAddWeeklyStore._getItemsArray(); var len = items.length; var a = ''; for(var i = 0; i < len; i++) { a = dojox.string.sprintf('%02d:%02d|%02d:%02d', items[i].start2[0].getHours(), items[i].start2[0].getMinutes(), items[i].end[0].getHours(), items[i].end[0].getMinutes()); times.push(a); } var alltimes = times.join(','); var imageid = getSelectValue('imagesel'); var seats = dijit.byId('machinecnt').value; var groupid = getSelectValue('groupsel'); var obj = dijit.byId('wkfirstdate').value; var startdate = dojox.string.sprintf('%d%02d%02d', obj.getFullYear(), (obj.getMonth() + 1), obj.getDate()); obj = dijit.byId('wklastdate').value; var enddate = dojox.string.sprintf('%d%02d%02d', obj.getFullYear(), (obj.getMonth() + 1), obj.getDate()); var days2 = days.join(','); var data = {continuation: dojo.byId('submitcont').value, imageid: imageid, seats: seats, groupid: groupid, type: 'weekly', startdate: startdate, enddate: enddate, times: alltimes, days: days2}; if(dojo.byId('submitcont2').value != '') data.continuation = dojo.byId('submitcont2').value; if(mode != 'request') { data.name = dijit.byId('brname').value; data.owner = dijit.byId('browner').value; } else data.comments = dijit.byId('comments').value; document.body.style.cursor = 'wait'; RPCwrapper(data, generalReqCB); } function blockFormVerifyMonthly(mode) { if(! dijit.byId('mnfirstdate').isValid()) { dijit.byId('mnfirstdate')._hasBeenBlurred = true; dijit.byId('mnfirstdate').validate(); alert(_('Please fill in First Date of Usage')); return; } if(! dijit.byId('mnlastdate').isValid()) { dijit.byId('mnlastdate')._hasBeenBlurred = true; dijit.byId('mnlastdate').validate(); alert(_('Please fill in Last Date of Usage')); return; } var today = new Date(); today.setHours(0); today.setMinutes(0); today.setSeconds(0); today.setMilliseconds(0); if(pagemode != 'edit' && dijit.byId('mnfirstdate').value < today) { alert(_('The First Date of Usage must be today or later')); return; } if(pagemode != 'edit' && dijit.byId('mnlastdate').value < dijit.byId('mnfirstdate').value) { alert(_('The Last Date of Usage must be the same or later than the First Date of Usage')); return; } if(pagemode == 'edit' && dijit.byId('mnlastdate').value < today) { alert(_('The Last Date of Usage must be today or later')); return; } var len = requestBlockAddMonthlyStore._getItemsArray().length; if(len == 0) { alert(_('At least one start/end combination must be entered when using "Repeating Monthly"')); return; } if(dijit.byId('groupsel')) var groupselobj = dijit.byId('groupsel'); else var groupselobj = dojo.byId('groupsel'); if(mode == 'request' && groupselobj.value == 0 && dijit.byId('comments').value.length == 0) { alert(_('When submitting "(group not listed)" as the user group, information must be included in the comments about what group needs to be created.')); return; } if(mode != 'request') { dojo.byId('confnametitle').innerHTML = _('Name:'); dojo.byId('confname').innerHTML = dijit.byId('brname').textbox.value; dojo.byId('confownertitle').innerHTML = _('Owner:'); dojo.byId('confowner').innerHTML = dijit.byId('browner').textbox.value; } dojo.byId('confimage').innerHTML = getSelectText('imagesel'); dojo.byId('confseats').innerHTML = dijit.byId('machinecnt').value; if(groupselobj.value == 0) dojo.byId('confgroup').innerHTML = _('specified in comments'); else dojo.byId('confgroup').innerHTML = getSelectText('groupsel'); dojo.byId('confrepeat').innerHTML = _('Monthly'); dojo.byId('conftitle1').innerHTML = _('First Date:'); dojo.byId('confvalue1').innerHTML = dijit.byId('mnfirstdate').getDisplayedValue(); dojo.byId('conftitle2').innerHTML = _('Last Date:'); dojo.byId('confvalue2').innerHTML = dijit.byId('mnlastdate').getDisplayedValue(); dojo.byId('conftitle3').innerHTML = _('Repeat on:'); var obj = dojo.byId('mnweeknum'); var date1 = obj.options[obj.selectedIndex].text; obj = dojo.byId('mnday'); date1 += " " + obj.options[obj.selectedIndex].text; dojo.byId('confvalue3').innerHTML = date1 + ' ' + _("of each month"); var times = new Array(); var items = requestBlockAddMonthlyStore._getItemsArray(); for(var i = 0; i < len; i++) { var item = new Object(); item.key = items[i].start[0]; item.val = timeFromTextBox(items[i].start2[0]) + ' - ' + timeFromTextBox(items[i].end[0]); times.push(item); } times.sort(sortTimeArray); var times2 = new Array(); for(i = 0; i < len; i++) times2.push(times[i].val); dojo.byId('conftitle4').innerHTML = _('During these times:'); dojo.byId('confvalue4').innerHTML = times2.join('<br>'); if(dijit.byId('comments') && dijit.byId('comments').value.length) dojo.removeClass('commentsnote', 'hidden'); dijit.byId('confirmDialog').show(); } function blockFormSubmitMonthly(mode) { var obj = dojo.byId('mnweeknum'); var weeknum = obj.options[obj.selectedIndex].value; obj = dojo.byId('mnday'); var day = obj.options[obj.selectedIndex].value; var times = new Array(); var items = requestBlockAddMonthlyStore._getItemsArray(); var len = items.length; var a = ''; var b = ''; for(var i = 0; i < len; i++) { a = items[i].start2[0].getHours() + ':' + items[i].start2[0].getMinutes(); b = items[i].end[0].getHours() + ':' + items[i].end[0].getMinutes(); times.push(a + '|' + b); } var alltimes = times.join(','); var imageid = getSelectValue('imagesel'); var seats = dijit.byId('machinecnt').value; var groupid = getSelectValue('groupsel'); var obj = dijit.byId('mnfirstdate').value; var startdate = dojox.string.sprintf('%d%02d%02d', obj.getFullYear(), (obj.getMonth() + 1), obj.getDate()); obj = dijit.byId('mnlastdate').value; var enddate = dojox.string.sprintf('%d%02d%02d', obj.getFullYear(), (obj.getMonth() + 1), obj.getDate()); var data = {continuation: dojo.byId('submitcont').value, imageid: imageid, seats: seats, groupid: groupid, type: 'monthly', startdate: startdate, enddate: enddate, weeknum: weeknum, day: day, times: alltimes}; if(dojo.byId('submitcont2').value != '') data.continuation = dojo.byId('submitcont2').value; if(mode != 'request') { data.name = dijit.byId('brname').value; data.owner = dijit.byId('browner').value; } else data.comments = dijit.byId('comments').value; document.body.style.cursor = 'wait'; RPCwrapper(data, generalReqCB); } function blockFormVerifyList(mode) { var len = requestBlockAddListStore._getItemsArray().length; if(len == 0) { alert(_('At least one date/start/end combination must be entered when using "List of Dates/Times"')); return; } if(dijit.byId('groupsel')) var groupselobj = dijit.byId('groupsel'); else var groupselobj = dojo.byId('groupsel'); if(groupselobj.value == 0 && dijit.byId('comments').value.length == 0) { alert(_('When submitting "(group not listed)" as the user group, information must be included in the comments about what group needs to be created.')); return; } if(mode != 'request') { dojo.byId('confnametitle').innerHTML = _('Name:'); dojo.byId('confname').innerHTML = dijit.byId('brname').textbox.value; dojo.byId('confownertitle').innerHTML = _('Owner:'); dojo.byId('confowner').innerHTML = dijit.byId('browner').textbox.value; } dojo.byId('confimage').innerHTML = getSelectText('imagesel'); dojo.byId('confseats').innerHTML = dijit.byId('machinecnt').value; if(groupselobj.value == 0) dojo.byId('confgroup').innerHTML = _('specified in comments'); else dojo.byId('confgroup').innerHTML = getSelectText('groupsel'); dojo.byId('confrepeat').innerHTML = _('List of Dates/Times'); dojo.byId('conftitle1').innerHTML = _('Repeat on:'); var slots = new Array(); var items = requestBlockAddListStore._getItemsArray(); var date1 = ''; var start = ''; var end = ''; for(var i = 0; i < len; i++) { var item = new Object(); date1 = gridDateTimePrimary(items[i].date1[0]); start = timeFromTextBox(items[i].start[0]); end = timeFromTextBox(items[i].end[0]); item.key = items[i].date1[0]; item.value = date1 + ' ' + start + ' - ' + end; slots.push(item); } slots.sort(sortTimeArray); var slots2 = new Array(); for(i = 0; i < len; i++) slots2.push(slots[i].value); dojo.byId('confvalue1').innerHTML = slots2.join('<br>'); if(dijit.byId('comments') && dijit.byId('comments').value.length) dojo.removeClass('commentsnote', 'hidden'); dijit.byId('confirmDialog').show(); } function blockFormSubmitList(mode) { var slots = new Array(); var items = requestBlockAddListStore._getItemsArray(); var date1 = ''; var start = ''; var end = ''; var len = items.length; for(var i = 0; i < len; i++) { date1 = items[i].date1[0].substr(0, 8); start = items[i].date1[0].substr(8, 2) + ':' + items[i].date1[0].substr(10, 2); end = items[i].date1[0].substr(12, 2) + ':' + items[i].date1[0].substr(14, 2); slots.push(date1 + '|' + start + '|' + end); } var allslots = slots.join(','); var imageid = getSelectValue('imagesel'); var seats = dijit.byId('machinecnt').value; var groupid = getSelectValue('groupsel'); var data = {continuation: dojo.byId('submitcont').value, imageid: imageid, seats: seats, groupid: groupid, type: 'list', slots: allslots}; if(dojo.byId('submitcont2').value != '') data.continuation = dojo.byId('submitcont2').value; if(mode != 'request') { data.name = dijit.byId('brname').value; data.owner = dijit.byId('browner').value; } else data.comments = dijit.byId('comments').value; document.body.style.cursor = 'wait'; RPCwrapper(data, generalReqCB); } function clearHideConfirmForm() { dijit.byId('confirmDialog').hide(); dojo.byId('confnametitle').innerHTML = ''; dojo.byId('confname').innerHTML = ''; dojo.byId('confowner').innerHTML = ''; dojo.byId('confimage').innerHTML = ''; dojo.byId('confseats').innerHTML = ''; dojo.byId('confgroup').innerHTML = ''; dojo.byId('confrepeat').innerHTML = ''; dojo.byId('conftitle1').innerHTML = ''; dojo.byId('confvalue1').innerHTML = ''; dojo.byId('conftitle2').innerHTML = ''; dojo.byId('confvalue2').innerHTML = ''; dojo.byId('conftitle3').innerHTML = ''; dojo.byId('confvalue3').innerHTML = ''; dojo.byId('conftitle4').innerHTML = ''; dojo.byId('confvalue4').innerHTML = ''; dojo.addClass('commentsnote', 'hidden'); } function clearHideConfirmDelete() { dijit.byId('confirmDialog').hide(); dojo.byId('confname').innerHTML = ''; dojo.byId('confowner').innerHTML = ''; dojo.byId('confimage').innerHTML = ''; dojo.byId('confseats').innerHTML = ''; dojo.byId('confgroup').innerHTML = ''; dojo.byId('confrepeat').innerHTML = ''; dojo.byId('conftitle1').innerHTML = ''; dojo.byId('confvalue1').innerHTML = ''; dojo.byId('conftitle2').innerHTML = ''; dojo.byId('confvalue2').innerHTML = ''; dojo.byId('conftitle3').innerHTML = ''; dojo.byId('confvalue3').innerHTML = ''; dojo.byId('conftitle4').innerHTML = ''; dojo.byId('confvalue4').innerHTML = ''; } function clearHideView() { dijit.byId('viewDialog').hide(); dojo.byId('confname').innerHTML = ''; dojo.byId('confowner').innerHTML = ''; dojo.byId('confimage').innerHTML = ''; dojo.byId('confseats').innerHTML = ''; dojo.byId('confgroup').innerHTML = ''; dojo.byId('confrepeat').innerHTML = ''; dojo.byId('conftitle1').innerHTML = ''; dojo.byId('confvalue1').innerHTML = ''; dojo.byId('conftitle2').innerHTML = ''; dojo.byId('confvalue2').innerHTML = ''; dojo.byId('conftitle3').innerHTML = ''; dojo.byId('confvalue3').innerHTML = ''; dojo.byId('conftitle4').innerHTML = ''; dojo.byId('confvalue4').innerHTML = ''; } function clearHideConfirmAccept() { dijit.byId('acceptDialog').hide(); dojo.byId('acceptimage').innerHTML = ''; dojo.byId('acceptseats').innerHTML = ''; dojo.byId('acceptgroup').innerHTML = ''; dojo.byId('acceptrepeat').innerHTML = ''; dojo.byId('accepttitle1').innerHTML = ''; dojo.byId('acceptvalue1').innerHTML = ''; dojo.byId('accepttitle2').innerHTML = ''; dojo.byId('acceptvalue2').innerHTML = ''; dojo.byId('accepttitle3').innerHTML = ''; dojo.byId('acceptvalue3').innerHTML = ''; dojo.byId('accepttitle4').innerHTML = ''; dojo.byId('acceptvalue4').innerHTML = ''; dojo.byId('accepttitle5').innerHTML = ''; dojo.byId('acceptvalue5').innerHTML = ''; if(dijit.byId('groupsel')) dijit.byId('groupsel').attr('displayedValue', dijit.byId('groupsel').focusNode.defaultValue); else dojo.byId('groupsel').value = 0; dojo.byId('brname').value = ''; dojo.byId('acceptemailuser').innerHTML = ''; dijit.byId('acceptemailtext').attr('value', ''); } function clearHideConfirmReject() { dijit.byId('rejectDialog').hide(); dojo.byId('rejectimage').innerHTML = ''; dojo.byId('rejectseats').innerHTML = ''; dojo.byId('rejectgroup').innerHTML = ''; dojo.byId('rejectrepeat').innerHTML = ''; dojo.byId('rejecttitle1').innerHTML = ''; dojo.byId('rejectvalue1').innerHTML = ''; dojo.byId('rejecttitle2').innerHTML = ''; dojo.byId('rejectvalue2').innerHTML = ''; dojo.byId('rejecttitle3').innerHTML = ''; dojo.byId('rejectvalue3').innerHTML = ''; dojo.byId('rejecttitle4').innerHTML = ''; dojo.byId('rejectvalue4').innerHTML = ''; dojo.byId('rejecttitle5').innerHTML = ''; dojo.byId('rejectvalue5').innerHTML = ''; dojo.byId('rejectemailuser').innerHTML = ''; dijit.byId('rejectemailtext').attr('value', ''); } function deleteBlockConfirm(cont) { var data = {continuation: cont}; document.body.style.cursor = 'wait'; RPCwrapper(data, deleteBlockConfirmCB, 1); } function deleteBlockConfirmCB(data, ioArgs) { if(data.items.repeating == 'weekly') { dojo.byId('confname').innerHTML = data.items.name; dojo.byId('confowner').innerHTML = data.items.owner; dojo.byId('confimage').innerHTML = data.items.image; dojo.byId('confseats').innerHTML = data.items.seats; dojo.byId('confgroup').innerHTML = data.items.usergroup; dojo.byId('confrepeat').innerHTML = _('Weekly'); dojo.byId('conftitle1').innerHTML = _('First Date:'); dojo.byId('confvalue1').innerHTML = data.items.startdate; dojo.byId('conftitle2').innerHTML = _('Last Date:'); dojo.byId('confvalue2').innerHTML = data.items.lastdate; dojo.byId('conftitle3').innerHTML = _('Repeating on these days:'); dojo.byId('confvalue3').innerHTML = data.items.days.join('<br>'); dojo.byId('conftitle4').innerHTML = _('During these times:'); dojo.byId('confvalue4').innerHTML = data.items.times.join('<br>'); } else if(data.items.repeating == 'monthly') { dojo.byId('confname').innerHTML = data.items.name; dojo.byId('confowner').innerHTML = data.items.owner; dojo.byId('confimage').innerHTML = data.items.image; dojo.byId('confseats').innerHTML = data.items.seats; dojo.byId('confgroup').innerHTML = data.items.usergroup; dojo.byId('confrepeat').innerHTML = _('Monthly'); dojo.byId('conftitle1').innerHTML = _('First Date:'); dojo.byId('confvalue1').innerHTML = data.items.startdate; dojo.byId('conftitle2').innerHTML = _('Last Date:'); dojo.byId('confvalue2').innerHTML = data.items.lastdate; dojo.byId('conftitle3').innerHTML = _('Repeat on:'); dojo.byId('confvalue3').innerHTML = data.items.date1 + ' ' + _("of each month"); dojo.byId('conftitle4').innerHTML = _('During these times:'); dojo.byId('confvalue4').innerHTML = data.items.times.join('<br>'); } else if(data.items.repeating == 'list') { dojo.byId('confname').innerHTML = data.items.name; dojo.byId('confowner').innerHTML = data.items.owner; dojo.byId('confimage').innerHTML = data.items.image; dojo.byId('confseats').innerHTML = data.items.seats; dojo.byId('confgroup').innerHTML = data.items.usergroup; dojo.byId('confrepeat').innerHTML = _('List of Dates/Times'); dojo.byId('conftitle1').innerHTML = _('Repeat on:'); dojo.byId('confvalue1').innerHTML = data.items.slots.join('<br>'); } dojo.byId('submitdeletecont').value = data.items.cont; document.body.style.cursor = 'default'; dijit.byId('confirmDialog').show(); } function deleteBlockSubmit() { var cont = dojo.byId('submitdeletecont').value; var data = {continuation: cont}; document.body.style.cursor = 'wait'; RPCwrapper(data, generalReqCB); } function viewBlockAllocation(cont) { var data = {continuation: cont}; document.body.style.cursor = 'wait'; RPCwrapper(data, viewBlockAllocationCB, 1); } function viewBlockAllocationCB(data, ioArgs) { if(data.items.repeating == 'weekly') { dojo.byId('confname').innerHTML = data.items.name; dojo.byId('confowner').innerHTML = data.items.owner; dojo.byId('confimage').innerHTML = data.items.image; dojo.byId('confseats').innerHTML = data.items.seats; dojo.byId('confgroup').innerHTML = data.items.usergroup; dojo.byId('confrepeat').innerHTML = _('Weekly'); dojo.byId('conftitle1').innerHTML = _('First Date:'); dojo.byId('confvalue1').innerHTML = data.items.startdate; dojo.byId('conftitle2').innerHTML = _('Last Date:'); dojo.byId('confvalue2').innerHTML = data.items.lastdate; dojo.byId('conftitle3').innerHTML = _('Repeating on these days:'); dojo.byId('confvalue3').innerHTML = data.items.days.join('<br>'); dojo.byId('conftitle4').innerHTML = _('During these times:'); dojo.byId('confvalue4').innerHTML = data.items.times.join('<br>'); } else if(data.items.repeating == 'monthly') { dojo.byId('confname').innerHTML = data.items.name; dojo.byId('confowner').innerHTML = data.items.owner; dojo.byId('confimage').innerHTML = data.items.image; dojo.byId('confseats').innerHTML = data.items.seats; dojo.byId('confgroup').innerHTML = data.items.usergroup; dojo.byId('confrepeat').innerHTML = _('Monthly'); dojo.byId('conftitle1').innerHTML = _('First Date:'); dojo.byId('confvalue1').innerHTML = data.items.startdate; dojo.byId('conftitle2').innerHTML = _('Last Date:'); dojo.byId('confvalue2').innerHTML = data.items.lastdate; dojo.byId('conftitle3').innerHTML = _('Repeat on:'); dojo.byId('confvalue3').innerHTML = data.items.date1 + ' ' + _("of each month"); dojo.byId('conftitle4').innerHTML = _('During these times:'); dojo.byId('confvalue4').innerHTML = data.items.times.join('<br>'); } else if(data.items.repeating == 'list') { dojo.byId('confname').innerHTML = data.items.name; dojo.byId('confowner').innerHTML = data.items.owner; dojo.byId('confimage').innerHTML = data.items.image; dojo.byId('confseats').innerHTML = data.items.seats; dojo.byId('confgroup').innerHTML = data.items.usergroup; dojo.byId('confrepeat').innerHTML = _('List of Dates/Times'); dojo.byId('conftitle1').innerHTML = _('Repeat on:'); dojo.byId('confvalue1').innerHTML = data.items.slots.join('<br>'); } document.body.style.cursor = 'default'; dijit.byId('viewDialog').show(); } function acceptBlockConfirm(cont) { var data = {continuation: cont}; document.body.style.cursor = 'wait'; RPCwrapper(data, acceptBlockConfirmCB, 1); } function acceptBlockConfirmCB(data, ioArgs) { dojo.byId('acceptimage').innerHTML = data.items.image; dojo.byId('acceptseats').innerHTML = data.items.seats; if(data.items.usergroup == null) { dojo.addClass('staticusergroup', 'hidden'); dojo.removeClass('editusergroup', 'hidden'); } else { dojo.addClass('editusergroup', 'hidden'); dojo.removeClass('staticusergroup', 'hidden'); dojo.byId('acceptgroup').innerHTML = data.items.usergroup; } if('warnmsg' in data.items && data.items.warnmsg != '') { dojo.removeClass('warnmsgtr', 'hidden'); dojo.byId('warnmsg').innerHTML = data.items.warnmsg; } else { dojo.addClass('warnmsgtr', 'hidden'); dojo.byId('warnmsg').innerHTML = ''; } if(data.items.validemail) { dojo.removeClass('acceptemailblock', 'hidden'); dojo.addClass('acceptemailwarning', 'hidden'); dojo.byId('acceptemailuser').innerHTML = data.items.emailuser; dijit.byId('acceptemailtext').attr('value', data.items.email); } else { dojo.addClass('acceptemailblock', 'hidden'); dojo.removeClass('acceptemailwarning', 'hidden'); } if(data.items.repeating == 'weekly') { dojo.byId('acceptrepeat').innerHTML = _('Weekly'); dojo.byId('accepttitle1').innerHTML = _('First Date:'); dojo.byId('acceptvalue1').innerHTML = data.items.startdate; dojo.byId('accepttitle2').innerHTML = _('Last Date:'); dojo.byId('acceptvalue2').innerHTML = data.items.lastdate; dojo.byId('accepttitle3').innerHTML = _('Repeating on these days:'); dojo.byId('acceptvalue3').innerHTML = data.items.days.join('<br>'); dojo.byId('accepttitle4').innerHTML = _('During these times:'); dojo.byId('acceptvalue4').innerHTML = data.items.times.join('<br>'); dojo.byId('accepttitle5').innerHTML = _('User Submitted Comments:'); dojo.byId('acceptvalue5').innerHTML = data.items.comments; } else if(data.items.repeating == 'monthly') { dojo.byId('acceptrepeat').innerHTML = _('Monthly'); dojo.byId('accepttitle1').innerHTML = _('First Date:'); dojo.byId('acceptvalue1').innerHTML = data.items.startdate; dojo.byId('accepttitle2').innerHTML = _('Last Date:'); dojo.byId('acceptvalue2').innerHTML = data.items.lastdate; dojo.byId('accepttitle3').innerHTML = _('Repeat on:'); dojo.byId('acceptvalue3').innerHTML = data.items.date1 + ' ' + _("of each month"); dojo.byId('accepttitle4').innerHTML = _('During these times:'); dojo.byId('acceptvalue4').innerHTML = data.items.times.join('<br>'); dojo.byId('accepttitle5').innerHTML = _('User Submitted Comments:'); dojo.byId('acceptvalue5').innerHTML = data.items.comments; } else if(data.items.repeating == 'list') { dojo.byId('acceptrepeat').innerHTML = _('List of Dates/Times'); dojo.byId('accepttitle1').innerHTML = _('Repeat on:'); dojo.byId('acceptvalue1').innerHTML = data.items.slots.join('<br>'); dojo.byId('accepttitle2').innerHTML = _('User Submitted Comments:'); dojo.byId('acceptvalue2').innerHTML = data.items.comments; } dojo.byId('submitacceptcont').value = data.items.cont; document.body.style.cursor = 'default'; dijit.byId('acceptDialog').show(); } function acceptBlockSubmit() { var cont = dojo.byId('submitacceptcont').value; var data = {continuation: cont, groupid: getSelectValue('groupsel'), brname: dijit.byId('brname').value, emailtext: dijit.byId('acceptemailtext').attr('value')}; if(dojo.byId('submitacceptcont2').value != '') data.continuation = dojo.byId('submitacceptcont2').value; document.body.style.cursor = 'wait'; RPCwrapper(data, generalReqCB); } function rejectBlockConfirm(cont) { var data = {continuation: cont}; document.body.style.cursor = 'wait'; RPCwrapper(data, rejectBlockConfirmCB, 1); } function rejectBlockConfirmCB(data, ioArgs) { dojo.byId('rejectimage').innerHTML = data.items.image; dojo.byId('rejectseats').innerHTML = data.items.seats; if(data.items.usergroup == null) dojo.addClass('staticusergroup', 'hidden'); else { dojo.removeClass('staticusergroup', 'hidden'); dojo.byId('rejectgroup').innerHTML = data.items.usergroup; } if(data.items.validemail) { dojo.removeClass('rejectemailblock', 'hidden'); dojo.addClass('rejectemailwarning', 'hidden'); dojo.byId('rejectemailuser').innerHTML = data.items.emailuser; dijit.byId('rejectemailtext').attr('value', data.items.email); } else { dojo.addClass('rejectemailblock', 'hidden'); dojo.removeClass('rejectemailwarning', 'hidden'); } if(data.items.repeating == 'weekly') { dojo.byId('rejectrepeat').innerHTML = _('Weekly'); dojo.byId('rejecttitle1').innerHTML = _('First Date:'); dojo.byId('rejectvalue1').innerHTML = data.items.startdate; dojo.byId('rejecttitle2').innerHTML = _('Last Date:'); dojo.byId('rejectvalue2').innerHTML = data.items.lastdate; dojo.byId('rejecttitle3').innerHTML = _('Repeating on these days:'); dojo.byId('rejectvalue3').innerHTML = data.items.days.join('<br>'); dojo.byId('rejecttitle4').innerHTML = _('During these times:'); dojo.byId('rejectvalue4').innerHTML = data.items.times.join('<br>'); dojo.byId('rejecttitle5').innerHTML = _('User Submitted Comments:'); dojo.byId('rejectvalue5').innerHTML = data.items.comments; } else if(data.items.repeating == 'monthly') { dojo.byId('rejectrepeat').innerHTML = _('Monthly'); dojo.byId('rejecttitle1').innerHTML = _('First Date:'); dojo.byId('rejectvalue1').innerHTML = data.items.startdate; dojo.byId('rejecttitle2').innerHTML = _('Last Date:'); dojo.byId('rejectvalue2').innerHTML = data.items.lastdate; dojo.byId('rejecttitle3').innerHTML = _('Repeat on:'); dojo.byId('rejectvalue3').innerHTML = data.items.date1 + ' ' + _("of each month"); dojo.byId('rejecttitle4').innerHTML = _('During these times:'); dojo.byId('rejectvalue4').innerHTML = data.items.times.join('<br>'); dojo.byId('rejecttitle5').innerHTML = _('User Submitted Comments:'); dojo.byId('rejectvalue5').innerHTML = data.items.comments; } else if(data.items.repeating == 'list') { dojo.byId('rejectrepeat').innerHTML = _('List of Dates/Times'); dojo.byId('rejecttitle1').innerHTML = _('Repeat on:'); dojo.byId('rejectvalue1').innerHTML = data.items.slots.join('<br>'); dojo.byId('rejecttitle2').innerHTML = _('User Submitted Comments:'); dojo.byId('rejectvalue2').innerHTML = data.items.comments; } dojo.byId('submitrejectcont').value = data.items.cont; document.body.style.cursor = 'default'; dijit.byId('rejectDialog').show(); } function rejectBlockSubmit() { var cont = dojo.byId('submitrejectcont').value; var data = {continuation: cont, groupid: getSelectValue('groupsel'), brname: dijit.byId('brname').value, emailtext: dijit.byId('rejectemailtext').attr('value')}; document.body.style.cursor = 'wait'; RPCwrapper(data, generalReqCB); } function sortTimeArray(a, b) { if(a.key < b.key) return -1; return 1; } function gridDateTimePrimary(val) { return val.substr(4, 2) + '/' + val.substr(6, 2) + '/' + val.substr(0, 4) + ' ' + dojo.byId('timezone').value; } function gridTimePrimary(val) { var hour = parseInt(val.substr(0, 2), 10); var min = parseInt(val.substr(2, 2), 10); return formatHourMin(hour, min) + ' ' + dojo.byId('timezone').value; } function timeFromTextBox(time) { var hour = time.getHours(); var min = time.getMinutes(); return formatHourMin(hour, min) + ' ' + dojo.byId('timezone').value; } function formatHourMin(hour, min) { if(min < 10) min = "0" + min; if(hour == 0) return 12 + ":" + min + " AM"; if(hour < 12) return hour + ":" + min + " AM"; if(hour == 12) return 12 + ":" + min + " PM"; return (hour - 12) + ":" + min + " PM"; } function viewBlockTimes(cont) { var data = {continuation: cont}; document.body.style.cursor = 'wait'; RPCwrapper(data, viewBlockTimesCB, 1); } function viewBlockTimesCB(data, ioArgs) { document.body.style.cursor = 'default'; var cont = data.items.cont; dojo.byId('toggletimecont').value = cont; var items = data.items.items; for(var i = 0; i < items.length; i++) { if(items[i].skip == 0) var label = _('Skip'); else var label = _('Use'); var btn = new dijit.form.Button({ label: label, onClick: createRemoveFunc(toggleBlockTime, items[i].id) }); items[i].delbtn = btn; } var newdata = new Object; newdata.items = items; var newstore = new dojo.data.ItemFileWriteStore({data: newdata}); var oldstore = blockTimesGrid.store; blockTimesGrid.setStore(newstore); if(oldstore) delete oldstore; dijit.byId('viewtimesDialog').show(); blockTimesGrid.render(); } function toggleBlockTime(id) { var cont = dojo.byId('toggletimecont').value; var data = {blocktimeid: id, continuation: cont}; document.body.style.cursor = 'wait'; RPCwrapper(data, toggleBlockTimeCB, 1); } function toggleBlockTimeCB(data, ioArgs) { document.body.style.cursor = 'default'; if(data.items.error) { alert(data.items.error); return; } blockTimesGrid.store.fetch({query: {id: data.items.timeid}, onComplete: function(items, request) { items[0].skip[0] = data.items.newval; if(data.items.newval == 1) items[0].delbtn[0].setLabel(_('Use')); else items[0].delbtn[0].setLabel(_('Skip')); blockTimesGrid.update(); } }); } function blockTimeRowStyle(row) { var item = blockTimesGrid.getItem(row.index); if(item) { var skip = blockTimesGrid.store.getValue(item, 'skip'); if(skip == 1) row.customStyles += "background-color: red;"; } blockTimesGrid.focus.styleRow(row); blockTimesGrid.edit.styleRow(row); } function blockTimesGridDate(val) { var year = val.substr(0, 4); var month = val.substr(5, 2); var day = val.substr(8, 2); return dojox.string.sprintf('%s/%s/%s', month, day, year); } function blockTimesGridStart(val) { var hour = parseInt(val.substr(11, 2), 10); var min = parseInt(val.substr(14, 2), 10); return formatHourMin(hour, min) + ' ' + dojo.byId('timezone').value; } function blockTimesGridEnd(val) { var hour = parseInt(val.substr(11, 2), 10); var min = parseInt(val.substr(14, 2), 10); return formatHourMin(hour, min) + ' ' + dojo.byId('timezone').value; } function ownerFocus() { if(! dijit.byId('browner')._hasBeenBlurred) dijit.byId('browner')._hasBeenBlurred = true; } function checkOwner(val, constraints) { if(! dijit.byId('browner')._hasBeenBlurred) return true; if(timeout != null) clearTimeout(timeout); timeout = setTimeout(checkOwner2, 700); return ownervalid; } function checkOwner2() { var data = {user: dijit.byId('browner').textbox.value, continuation: dojo.byId('valuseridcont').value}; RPCwrapper(data, checkOwnerCB, 1); } function checkOwnerCB(data, ioArgs) { var obj = dijit.byId('browner'); if(data.items.status && data.items.status == 'invalid') { obj.attr('state', 'Error'); obj._setStateClass(); obj.displayMessage(obj.getErrorMessage('Unknown user')); ownervalid = false; } else { obj.attr('state', 'Normal'); obj._setStateClass(); obj.displayMessage(null); ownervalid = true; } } function updateAllocatedMachines() { var d = dijit.byId('chartstartdate').value; var t = dijit.byId('chartstarttime').value; var date1 = dojox.string.sprintf('%d-%02d-%02d %02d:%02d', d.getFullYear(), (d.getMonth() + 1), d.getDate(), t.getHours(), t.getMinutes()); var cont = dojo.byId('updatecont').value; RPCwrapper({continuation: cont, start: date1}, updateAllocatedMachinesCB, 1); } function updateAllocatedMachinesCB(data, ioArgs) { dojo.byId('updatecont').value = data.items.cont; var graph = dijit.byId('allocatedBareMachines').chart; graph.updateSeries('Main', data.items.bare.points); graph.labeldata = data.items.bare.points; graph.render(); var graph = dijit.byId('allocatedVirtualMachines').chart; graph.updateSeries('Main', data.items.virtual.points); graph.labeldata = data.items.virtual.points; graph.render(); if(data.items.bare.total != 0) dojo.byId('totalbare').innerHTML = _('Total online:') + ' ' + data.items.bare.total; else dojo.byId('totalbare').innerHTML = ''; if(data.items.virtual.total != 0) dojo.byId('totalvirtual').innerHTML = _('Total online:') + ' ' + data.items.virtual.total; else dojo.byId('totalvirtual').innerHTML = ''; dojo.byId('allocatedBareMachines').style.height = '320px'; dojo.byId('allocatedBareMachines').childNodes[0].attributes[1].nodeValue = '320'; dojo.byId('allocatedVirtualMachines').style.height = '320px'; dojo.byId('allocatedVirtualMachines').childNodes[0].attributes[1].nodeValue = '320'; } function timestampToTimeBare(val) { if(! dijit.byId('allocatedBareMachines').chart.labeldata) return ''; else var data = dijit.byId('allocatedBareMachines').chart.labeldata; return data[val]['text']; } function timestampToTimeVirtual(val) { if(! dijit.byId('allocatedVirtualMachines').chart.labeldata) return ''; else var data = dijit.byId('allocatedVirtualMachines').chart.labeldata; return data[val]['text']; } function machinecntfilter(val) { return parseInt(val); } function viewBlockUsage(blockid) { var cont = dojo.byId('viewblockusagecont').value; RPCwrapper({continuation: cont, blockid: blockid}, viewBlockUsageCB, 1); } function viewBlockUsageCB(data, ioArgs) { if(data.items.status == 'success') { if(usagechart) usagechart.destroy(); usagechart = new dojox.charting.Chart2D('blockusagechartdiv'); usagechart.setTheme(dojox.charting.themes.ThreeD); var xtickstep = parseInt(data.items.usage.xlabels.length / 10) || 1; usagechart.addAxis("x", { includeZero: false, labels: data.items.usage.xlabels, rotation: -90, minorTicks: false, font: 'normal normal normal 11px verdana', majorTickStep: xtickstep }); usagechart.addAxis('y', { vertical: true, max: 100, includeZero: true, minorTicks: true, minorLabels: false, majorTickStep: 20, minorTickStep: 10 }); usagechart.addPlot('default', {type: "Columns", gap: 1}); usagechart.addPlot('Grid', {type: 'Grid', hMajorLines: true, vMajorLines: false}); usagechart.addSeries("Main", data.items.usage.points, {stroke: {width: 1}}); var a = new dojox.charting.action2d.Tooltip(usagechart); usagechart.render(); dojo.addClass('blockusageemptydiv', 'hidden'); dojo.removeClass('blockusagechartdiv', 'hidden'); dijit.byId('viewUsageDialog').show(); } else if(data.items.status == 'empty') { dojo.addClass('blockusagechartdiv', 'hidden'); dojo.removeClass('blockusageemptydiv', 'hidden'); dijit.byId('viewUsageDialog').show(); } } function clearCont2() { if(dojo.byId('submitcont2')) dojo.byId('submitcont2').value = ''; if(dojo.byId('submitacceptcont2')) dojo.byId('submitacceptcont2').value = ''; }