/* COOKIES */ var editModus = ''; var Plugins = new Array(); var PageAge = -1; var PageTimer; var PlugDispState=[]; // state 1=visible, 0=hidden var blockStyle = "block" var alias = '/dashboard' var Cookies = { init: function () { var allCookies = document.cookie.split('; '); for (var i=0;i'; nr += 1; } } } //log('Page - end of redraw'); // reset Page.refreshPlugins(); }, refreshPlugins: function() { //log('Page.refreshPlugins age='+PageAge); PageAge += 1; PageTimer = callLater(60, Page.refreshPlugins); //log('triggered ....' + PageAge); for (p in Plugins) { Plugins[p].refresh(PageAge); } }, editMenu: function() { EditArea.edit('m'); }, editMenuItem: function() { EditArea.edit(); }, editPlugins: function() { EditArea.edit('p'); }, showServerError: function() { getElement('servererror').style.display = blockStyle; }, hideServerError: function() { getElement('servererror').style.display = 'None'; } }; var EditArea = { init: function(caller) { this.page=caller connect('savemenu', 'onclick', EditArea, 'save'); connect('saveexitmenu', 'onclick', EditArea, 'saveExit'); connect('closemenu', 'onclick', EditArea, 'hide'); }, edit: function(modus) { editModus = modus getElement('editarea').style.display = blockStyle; if (editModus=='m') { Ajax.getConfigAsText(Session.userid(), EditArea.redrawMenu); } if (editModus=='p') { Ajax.getConfigAsText(Session.userid(), EditArea.redrawPlugs); } }, save: function() { menu = getElement('menulines').value; getElement('editarea').style.display = blockStyle; if (editModus=='m') { //log('Editarea.save: saving menu'); Ajax.saveMenuFromText(Session.userid(), getElement('menulines').value, Page.redrawMenu); } if (editModus=='p') { //log('Editarea.save: saving plugins'); if (PageTimer) { PageTimer.cancel; } PageAge=-1; Ajax.savePlugsFromText(Session.userid(), getElement('menulines').value, Page.redrawPlugs); } }, saveExit: function() { this.save(); this.hide(); }, hide: function() { getElement('editarea').style.display = 'None'; }, redrawMenu: function(transport) { Page.hideServerError(); //Page.redrawMenu(transport); getElement('menulines').value = transport.menu; }, redrawPlugs: function(transport) { Page.hideServerError(); //Page.redrawPlugs(transport); getElement('menulines').value = transport.plugs; } }; var EditPage = { start: function(hostName) { Session.init(hostName); //log('start page'); EditArea.init(this); Ajax.getConfig(Session.userid(), this.redrawPage); }, redrawPage: function(transport) { Page.hideServerError(); //log('ep: redraw page'); transport = notXMLHttpRequest(transport); EditPage.redrawMenu(transport); EditArea.edit(); }, redrawMenu: function(transport) { Page.hideServerError(); //log('ep: redraw menu'); transport = notXMLHttpRequest(transport); //log('redrawPage: ' + transport.menu); //alert(transport); getElement('menu3').innerHTML = transport.menu; } } /********************* plugin object *********************/ function Plugin(nr, initstring) { // Define super class // set divname, name, serverquery and timer this.nr = nr; this.divname = 'plugin' + nr; // the initstrig should look like: // :([[, param2 ..]]), var objRegExp = /^(\w+):.*$/; this.title = initstring.replace(objRegExp, "$1"); objRegExp = /^\w*:(\w+)\(.*$/; this.func = initstring.replace(objRegExp, "$1"); objRegExp = /^[^(]+\(([^)]*).*$/; this.params = initstring.replace(objRegExp, "$1"); //log(this.params); objRegExp = /.+\),(\d+)$/; this.refreshrate = parseInt(initstring.replace(objRegExp, "$1")); this.nextrefreshage = 0; //log('created plugin '+this.title + ', '+this.func); } Plugin.prototype.refresh = function(age) { // Define Method //log(' Refresh ' + this.divname ); if (age >= this.nextrefreshage) { //log(' Refresh 2 ' + this.divname ); this.nextrefreshage += this.refreshrate; Ajax.loadPlugin(Session.userid, this.func, this.params, bind(this.redraw, this)) } } Plugin.prototype.redraw = function(transport) { // Define Method //log('redraw '+this.nr); Page.hideServerError(); var body = '
'+transport.plugin+'
'; var header = '' var html = '
'+this.title+''+header+'
'+body+'
'; getElement(this.divname).innerHTML = html; this.setDispState(Session.getDispState(this.title)); //log('REDRAW'); } Plugin.prototype.toggle = function() { // Define Method var button = getElement('toggle'+this.nr).src; // could be a plus or a minus button if (button.indexOf('minus')>=0) { this.setDispState(0); } else { this.setDispState(1); } } Plugin.prototype.setDispState = function(state) { // Define Method var div = 'plugbody'+this.nr; if (state == 0) { hide(div); getElement('toggle'+this.nr).src=alias+"/static/icon_plus.gif"; Session.setDispStateOff(this.title); } else { unhide(div); getElement('toggle'+this.nr).src=alias+"/static/icon_minus.gif"; Session.setDispStateOn(this.title); } }