/* Copyright (c) 2006-2007, ePages GmbH All Rights Reserved. epages.cartridges.de_epages.design.widget.Navigationelement $Revision: 1.17 $ */ dojo.provide("epages.cartridges.de_epages.design.widget.Navbarselect"); dojo.require("epages.widget.LocalizedWidget"); dojo.require("epages.lang.array"); dojo.require("dijit._Container"); dojo.require("epages.cartridges.de_epages.design.widget.Navbarpreview"); dojo.require("epages.event"); dojo.require('epages.widget.Modaldialog'); dojo.require('epages.widget.Message'); dojo.declare( "epages.cartridges.de_epages.design.widget.Navbarselect", [epages.widget.LocalizedWidget,dijit._Container], { /** * public properties */ lockLevel: '0', layout: 'Layout1', objectId: '', undobuttonsId : 'undoWidget', imageUrl: epages.vars.StoreRoot + '/BO/icons', roofIsVisible: '1', headerIsVisible: '1', topIsVisible: '1', bottomIsVisible: '1', footerIsVisible: '1', leftIsVisible: '1', rightIsVisible: '1', leftrightonlyatstartpageIsVisible: '1', /** * private properties */ _dialogWidget: null, _dialogWidgetTarget: null, /** * widget properties */ templatePath : dojo.moduleUrl('epages.cartridges.de_epages.design.widget','templates/Navbarselect.html'), translationName : dojo.moduleUrl('epages.cartridges.de_epages.design.widget','templates/translation'), widgetsInTemplate :true, // override postCreate : function() { this.inherited("postCreate", arguments); this.lockLevel = parseInt(this.lockLevel); $A(['Roof', 'Header', 'Top', 'Left', 'Right', 'Bottom', 'Footer', 'LeftRightOnlyAtStartPage']).each( function (el) { var el_lc = el.toLowerCase(); // header var v = el_lc + 'IsVisible'; // attribute name: headerIsVisible var checkNode = $('Check' + el + 'IsVisible'); // checkHeaderNode var checkNodeLabel = dojo.query('label[for="Check' + el + 'IsVisible"]'); var visibleNode = this['isVisible'+el+'Node']; // isVisibleHeaderNode var checkWidget = dijit.byNode(checkNode); this[v] = this[v] == '1' ? true : false; if (this.lockLevel > 0){ checkWidget.attr('disabled ',true); } // if (this._htmlUndo) this._htmlUndo.setDefaultValue(visibleNode); this.connect(checkNode, 'onclick', 'clickBar'); this.connect(visibleNode, 'onchange', 'onChangeIsVisible'); checkWidget.attr('checked',this[v]); if(el !== 'LeftRightOnlyAtStartPage'){ if (this[v]) { this.Navbarpreview.enableBar(el_lc); } else { this.Navbarpreview.disableBar(el_lc); } } else{ if(this['rightIsVisible'] == '0' && this['leftIsVisible'] == '0'){ dojo.addClass(checkNodeLabel[0], 'Disabled'); dojo.attr(checkNode, 'disabled', 'disabled'); } } }, this); }, setBar: function (navbar, check) { if(navbar !== 'LeftRightOnlyAtStartPage'){ $$('Check' + navbar + 'IsVisible').attr('checked',check); if (check) { this.Navbarpreview.enableBar(navbar.toLowerCase()); } else { this.Navbarpreview.disableBar(navbar.toLowerCase()); } } }, _createDialog: function(){ var messageWidget = new epages.widget.Message({ headline:this.translation.get("SaveQuestion"), message: this.translation.get("ChangeNavbarsDescription"), sizeClass:"Large", typeClass:"Warning" }); var me =this; var buttons = [{ label: this.translation.get("Save"), cssClass: 'Active', onclick: function() { this._modalDialogWidget.hide(); me.sendChanges(me._dialogWidgetTarget); } }, { label: this.translation.get("Cancel"), onclick: function() { this._modalDialogWidget.hide(); me._undoChange(me._dialogWidgetTarget); } }]; this._dialogWidget = new epages.widget.Modaldialog({ id: "Designtoolcontroller_DialogWidget", options:{ title : this.translation.get("ChangeOnNavbars"), width : 400, height: 120, content: messageWidget }, buttons : buttons }); document.body.appendChild(this._dialogWidget.domNode); }, sendChanges: function (t) { var navbar = t.value; var vNode = this['isVisible'+navbar+'Node']; vNode.value = t.checked ? '1' : '0'; epages.event.fire(vNode,'change'); if ($$(this.undobuttonsId)) { $$(this.undobuttonsId).sendChanges({ text : this.translate("BusyWhileSavingData"), permanent : true }); window.setTimeout(function(){ window.location.href = window.location.href; },1000); } }, clickBar: function (evt) { var u = $$(this.undobuttonsId); if(u){ if(u.existsChanges()){ if(!this._dialogWidget){ this._createDialog(); } this._dialogWidgetTarget = evt.currentTarget; this._dialogWidget.show(); } else{ this.sendChanges(evt.currentTarget); } } else { this.sendChanges(evt.currentTarget); } }, onChangeIsVisible: function (evt) { var t = evt.currentTarget; this.setBar(t.id.replace(/IsVisible$/, ''), t.value == '1' ? true : false); }, _undoChange: function(t){ t.checked = !t.checked; } } );