/*!
* 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