/*! * Ext JS Library 3.2.1 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ var weekDays = [['- ALL -','- ' + _('ID_ALL') + ' -'], ['SUN',_('ID_WEEKDAY_ABB_0')], ['MON',_('ID_WEEKDAY_ABB_1')], ['TUE',_('ID_WEEKDAY_ABB_2')], ['WED',_('ID_WEEKDAY_ABB_3')], ['THU',_('ID_WEEKDAY_ABB_4')], ['FRI',_('ID_WEEKDAY_ABB_5')], ['SAT',_('ID_WEEKDAY_ABB_6')]]; comboStatusStore = new Ext.data.SimpleStore({ fields: ['id','value'], data: weekDays }); var get = ''; var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for (var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } get = vars[0]; var message = ''; function workHourCompositeFieldInterfaz(i){ //!dataSystem var d = new Date(); var idTime = d.getTime(); var workHourComposite = 'workHourComposite'+idTime; //! var CompositeField1 = new Ext.form.CompositeField( { xtype : 'compositefield', id : workHourComposite, hideLabel : true, labelWidth : 100, items : [ { xtype : 'displayfield', width : 10, value : '' }, { xtype: 'displayfield', style: 'text-align:center;color:#808080;font-size:11px;margin-top:5px;', value: i-1 }, { xtype : 'displayfield', width : 5, value : '' }, { xtype: 'combo', fieldLabel: _('ID_STATUS'), hiddenName: 'status', typeAhead: true, mode: 'local', store: comboStatusStore, displayField: 'value', width: 100, valueField:'id', allowBlank: true, triggerAction: 'all', emptyText: _('ID_SELECT_STATUS'), selectOnFocus:true }, { xtype : 'displayfield', width : 10, value : '' }, { xtype: 'textfield', width: 70, fieldLabel: _('ID_NAME'), name : 'td1', allowBlank: true }, { xtype : 'displayfield', width : 10, value : '' }, { xtype: 'textfield', width: 70, fieldLabel: _('ID_NAME'), name : 'td2', allowBlank: true }, { xtype : 'displayfield', width : 10, value : '' }, { xtype: 'box', fieldLabel: _('ID_FILENAME'), name: 'filename', autoEl: { style: 'margin-top:5px', html:'Delete' } } ] }); return CompositeField1; } function fordataWorkDayFieldNew() { var dynaformCalendar_ = Ext.getCmp('dynaformCalendar'); var idWorkHour_= Ext.getCmp('idWorkHour'); var i = idWorkHour_.items.length; idWorkHour_.insert( i, workHourCompositeFieldInterfaz(i) ); dynaformCalendar_.doLayout(); } function fordataWorkDayFieldRemove(workHourComposite,i) { dynaformCalendar_ = Ext.getCmp('dynaformCalendar'); idWorkHour_= Ext.getCmp('idWorkHour'); var workHourComposite_ = Ext.getCmp(workHourComposite); var idWorkHour_= Ext.getCmp('idWorkHour'); for( var index = 0 ; index < idWorkHour_.items.length ; index++ ) { if( index >= i ) { idWorkHour_.items.items[index].items.items[1].value = index-2; idWorkHour_.items.items[index].items.items[1].originalValue = index-2; } } var e = workHourComposite_.el.up( '.x-form-item' ); idWorkHour_.remove( workHourComposite_ ); e.remove(); dynaformCalendar_.doLayout(); } Ext.ux.OrderedFormPanel = Ext.extend( Ext.FormPanel, { addAfter : function( a, c ){ for( var i = 0 ; i < this.items.items.length ; i++ ){ if( this.items.items[i] == a ){ this.insert( i + 1, c ); return; } } }, addBefore : function( a, c ) { for( var i = 0 ; i < this.items.items.length ; i++ ){ if( this.items.items[i] == a ){ this.insert( i, c ); return; } } } }); //[ Global variables calendarWorkDayArray = []; calendarWorkDayArray[0] = 'SUN'; calendarWorkDayArray[1] = 'MON'; calendarWorkDayArray[2] = 'TUE'; calendarWorkDayArray[3] = 'WED'; calendarWorkDayArray[4] = 'THU'; calendarWorkDayArray[5] = 'FRI'; calendarWorkDayArray[6] = 'SAT'; calendarWorkDayStatusArray = new Array(); calendarWorkDayStatusArray['SUN'] = 'On'; calendarWorkDayStatusArray['MON'] = 'On'; calendarWorkDayStatusArray['TUE'] = 'On'; calendarWorkDayStatusArray['WED'] = 'On'; calendarWorkDayStatusArray['THU'] = 'On'; calendarWorkDayStatusArray['FRI'] = 'On'; calendarWorkDayStatusArray['SAT'] = 'On'; function calendarWorkDayStatusReset() { calendarWorkDayStatusArray['SUN'] = 'On'; calendarWorkDayStatusArray['MON'] = 'On'; calendarWorkDayStatusArray['TUE'] = 'On'; calendarWorkDayStatusArray['WED'] = 'On'; calendarWorkDayStatusArray['THU'] = 'On'; calendarWorkDayStatusArray['FRI'] = 'On'; calendarWorkDayStatusArray['SAT'] = 'On'; } //] Ext.onReady( function() { var Employee = Ext.data.Record.create ([ { name: 'name', type: 'string' }, { name: 'start', type: 'string' }, { name: 'end', type: 'string' } ]); //[ genData var genData = function() { var data = []; bussinesDayArray = fields['BUSINESS_DAY']; var rowNameDataArray = new Array(); rowNameDataArray['7'] = '- ALL -'; rowNameDataArray['0'] = 'SUN'; rowNameDataArray['1'] = 'MON' ; rowNameDataArray['2'] = 'TUE' ; rowNameDataArray['3'] = 'WED' ; rowNameDataArray['4'] = 'THU' ; rowNameDataArray['5'] = 'FRI' ; rowNameDataArray['6'] = 'SAT' ; for (i=0;i gridEachStartSecond)||(gridEachEndSecond>editorStartSecond)) dataExist = 'Off'; else{ if(editorEndSecond>gridEachStartSecond||gridEachEndSecond>editorEndSecond) dataExist = 'Off'; } } } }); /* if(dataExist == 'Off') { PMExt.notify( _('ID_ERROR') , _('ID_TIME_EXIST_IN_LIST')); e.name = gridName; e.start = gridStart; e.end = gridEnd; }*/ } } return; }, beforeedit: function(roweditor, rowIndex) { } }); grid = new Ext.grid.GridPanel( { //grid work days store: store, sm: new Ext.grid.RowSelectionModel({ selectSingle: true, listeners:{ selectionchange: function(sm) { if (sm.getCount() == 0) { Ext.getCmp('btnRemove').setDisabled(true); } else { Ext.getCmp('btnRemove').setDisabled(false); } } } }), id: "gridCalendar", width: 470, height : 150, region:'center', margins: '0 5 5 5', autoExpandColumn: 'name', plugins: [editor], view: new Ext.grid.GroupingView({ markDirty: false }), tbar: [ { iconCls: 'icon-user-add', text: _('ID_ADD'), handler: function(){ var e = new Employee({ name: '- ALL -', start: '00:00', end: '00:00' }); editor.stopEditing(); store.insert(0, e); grid.getView().refresh(); grid.getSelectionModel().selectRow(0); editor.startEditing(0); } }, { ref: '../removeBtn', iconCls: 'icon-user-delete', text: _('ID_REMOVE'), id: 'btnRemove', disabled: true, handler: function(){ editor.stopEditing(); var record = grid.getSelectionModel().getSelected(); records = grid.getStore(); if (record.data.name == '- ALL -' && records.getCount() === 1) PMExt.error( _('ID_ERROR'), _('ID_NODELETEOPTIONALL')); else store.remove(record); } }], columns: [ new Ext.grid.RowNumberer(), { header: _('ID_DAY'), id: 'name', dataIndex: 'name', width: 50, sortable: true, editor: { xtype: 'combo', id: 'calendarColumnDayCombo', fieldLabel: _('ID_STATUS'), hiddenName: 'status', typeAhead: true, mode: 'local', forceSelection: true, store: comboStatusStore, displayField: 'value', width: 150, valueField:'id', allowBlank: true, triggerAction: 'all', emptyText: _('ID_SELECT_STATUS'), selectOnFocus:true }, renderer: function(value) { for(var i = 0; i < weekDays.length; i++) { if (weekDays[i].indexOf(value) > -1) { return weekDays[i][1]; } } return ''; } }, { header: _('ID_START_HH_MM'), dataIndex: 'start', width: 150, sortable: true, editor: { xtype: 'timefield', minValue: '12:00 AM', maxValue: '23:59 PM', increment: 30, forceSelection: true, format: 'H:i' }, renderer: horaRender }, { header: _('ID_END_HH_MM'), dataIndex: 'end', width: 150, sortable: true, editor: { xtype: 'timefield', minValue: '12:00 AM', maxValue: '23:59 PM', increment: 30, forceSelection: true, format: 'H:i' } } ] }); var EmployeeHoliday = Ext.data.Record.create ([ { name: 'name', type: 'string' }, { name: 'startDate', type: 'date', dateFormat: 'n/j/Y' }, { name: 'endDate', type: 'date', dateFormat: 'n/j/Y' } ]); var genDataHoliday = function(){ var data = []; var holidayArray = fields['HOLIDAY']; for (i=0;i * ' + _('ID_NAME') , xtype : 'textfield' , name : 'name' , msgTarget: 'side', enableKeyEvents: true, listeners: { focus : function(textfield){ var element = document.getElementById('dynaformCalendarName'); element.setAttribute('maxlength','100'); element.onpaste = function (e){ var textValue = undefined; if(window.clipboardData && window.clipboardData.getData) { textValue = window.clipboardData.getData('Text'); }else if(e.clipboardData && e.clipboardData.getData) { textValue = e.clipboardData.getData('text/plain'); } if(textValue.length>99){ Ext.MessageBox.alert(_('ID_WARNING'), _("ID_PPP_MAXIMUM_LENGTH")+":100", function(){ return true;}); } return true; } } } }, { id : 'dynaformCalendarDescription' , xtype : 'textarea' , border : true , name: 'TRI_DESCRIPTION' , hidden: false , fieldLabel: _('ID_DESCRIPTION') , width: 200 , height: 40 } , { xtype : 'compositefield', hideLabel : true, labelWidth : 100, items : [ { xtype : 'displayfield', width : 90, value : '' }, { id : 'dynaformCalendarStatus', xtype : 'checkbox', fieldLabel : 'd', hideLabel : true, name : 'label1', checked : true, style : 'margin-left: 10px', boxLabel : _('ID_ACTIVE') } ] } ] }, { id : 'workDays', xtype: 'fieldset', title: _('ID_WORK_DAYS')+' ('+_('ID_3DAYSMINIMUM')+')', items: [ {//8 id : 'dynaformCalendarWorkDays', xtype : 'checkboxgroup', fieldLabel: ' ', name : 'SCH_MONTH', hideLabel : true, allowBlank: true, columns: 4, items: [ { boxLabel : _('ID_WEEKDAY_ABB_0'), name: 'M0', readOnly:true, disabled:false, handler : function() { gridCalendarDayModification( this , 'SUN' ); } }, { boxLabel : _('ID_WEEKDAY_ABB_1'), name: 'M1', checked: true, readOnly:true, disabled:false, handler : function() { gridCalendarDayModification( this , 'MON' ); } }, { boxLabel : _('ID_WEEKDAY_ABB_2'), name: 'M2', checked: true, readOnly:true, disabled:false, handler : function() { gridCalendarDayModification( this , 'TUE' ); } }, { boxLabel : _('ID_WEEKDAY_ABB_3'), name: 'M3', checked: true, readOnly:true, disabled:false, handler : function() { gridCalendarDayModification( this , 'WED' ); } }, { boxLabel : _('ID_WEEKDAY_ABB_4'), name: 'M4', checked: true, readOnly:true, disabled:false, handler : function() { gridCalendarDayModification( this , 'THU' ); } }, { boxLabel : _('ID_WEEKDAY_ABB_5'), name: 'M5', checked: true, readOnly:true, disabled:false, handler : function() { gridCalendarDayModification( this , 'FRI' ); } }, { boxLabel : _('ID_SAT'), name: 'M6', readOnly:true, disabled:false, handler : function() { gridCalendarDayModification( this , 'SAT' ); } } ] } ] }, { id : 'idWorkHour', title : _('ID_WORK_HOURS'), xtype : 'fieldset', checkboxToggle : true, autoHeight : true, defaults : {width: 560}, defaultType : 'textfield', collapsed : false, items : [ { xtype : 'compositefield', hideLabel : true, layout : 'fit', labelWidth : 100, items : [ { xtype : 'displayfield', width : 1, value : '' }, grid ] } ] }, { id: 'idHolidays', title: _('ID_HOLIDAYS'), xtype:'fieldset', checkboxToggle:true, autoHeight:true, defaults: {width: 560}, defaultType: 'textfield', collapsed: false, items :[ { xtype : 'compositefield', hideLabel : true, layout : 'fit', labelWidth : 100, items : [ { xtype : 'displayfield', width : 1, value : '' }, gridHoliday ] } ] } ], //button buttons:[ { text: fields['NEWCALENDAR']=='YES'?_("ID_CREATE") : _("ID_UPDATE"), handler: function() { Ext.getCmp('idInvalidCalendarName').hide(); Ext.getCmp('dynaformCalendarName').setValue(Ext.getCmp('dynaformCalendarName').getValue().trim()); var canlendarName = Ext.getCmp('dynaformCalendarName').getValue().trim(); if(canlendarName === ""){ Ext.apply(Ext.getCmp('dynaformCalendarName'), {allowBlank: false}, {}); Ext.Msg.alert(_('ID_WARNING'), _("ID_FIELD_REQUIRED", _("ID_NAME"))); Ext.getCmp('dynaformCalendarName').setValue(""); return; } Ext.Ajax.request({ url: '../adminProxy/calendarValidate', params: { action: 'calendarName', oldName: fields.OLD_NAME, name: canlendarName, uid: fields.CALENDAR_UID }, success: function (resp) { if (resp.responseText != '[]') message = resp.responseText; else message = ''; if(message!=''){ Ext.getCmp('idInvalidCalendarName').show(); Ext.getCmp('dynaformCalendarName').focus(); return false; } var flag = 0; gridHoliday.store.each(function(record) { var start = record.data['startDate']; var end = record.data['endDate']; if ((! start) || (! end)) flag = 1; }); assignedGrid = grid; var allRows = assignedGrid.getStore(); var columns = new Array(); var hasSomePrimaryKey = false; //!fordata var canlendarName = Ext.getCmp('dynaformCalendarName').getValue(); var calendarDescription = Ext.getCmp('dynaformCalendarDescription').getValue(); var calendarStatus = Ext.getCmp('dynaformCalendarStatus').getValue(); var calendarStatusString = "INACTIVE"; var calendarWorkDays = Ext.getCmp('dynaformCalendarWorkDays').getValue(); var calendarWorkDaysArray = new Array(); var businessDayStatus = Ext.getCmp('idWorkHour'); var businessDayStatusCollapsed = businessDayStatus.collapsed; var businessDayStatusString = "INACTIVE"; var businessDay = ""; var holidayStatus = Ext.getCmp('idHolidays'); var holidayStatusCollapsed = holidayStatus.collapsed; var holidayStatusString = "INACTIVE"; var holiday = ""; //!fordata var dynaformCalendarWorkDaysArray = Ext.getCmp('dynaformCalendarWorkDays').items.items; var dynaformCalendarWorkDaysArrayLength = dynaformCalendarWorkDaysArray.length; var dynaformCalendarWorkDaysArrayChecked; var dynaformCalendarWorkDaysArrayCheckedArray = new Array(); var indexAuxiliar = 0; var arrayDayinCheckbox = new Array(); for(i=0;i=3){ if(all==1){ Ext.Ajax.request( { url: '../adminProxy/calendarSave', params: { CALENDAR_UID : CALENDAR_UID, OLD_NAME : "", CALENDAR_NAME : canlendarName, CALENDAR_DESCRIPTION : calendarDescription, CALENDAR_STATUS : calendarStatus, CALENDAR_WORK_DAYS : calendarWorkDays, BUSINESS_DAY_STATUS : businessDayStatus, BUSINESS_DAY : businessDay, HOLIDAY_STATUS : holidayStatus, HOLIDAY : holiday }, success: function(resp){ if(fields['NEWCALENDAR']=='YES') { PMExt.notify( _('ID_STATUS') , _('ID_CALENDAR_CREATED_SUCCESSFULLY') ); } else { PMExt.notify( _('ID_STATUS') , _('ID_CALENDAR_UPDATED_SUCCESSFULLY') ); } window.location.href = '../setup/calendarList'; } }); } else { var flagDay = 0; var indexArray = 0; var arrayDayinGridSize = arrayDayinGrid.length; var arrayDayinCheckboxSize = arrayDayinCheckbox.length; for(var a = 0 ; a