|
|
|
@ -2,7 +2,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
|
|
|
|
|
extend: 'NgcpCsc.view.pages.pbxconfig.PbxConfigController',
|
|
|
|
|
alias: 'controller.devices',
|
|
|
|
|
onIconClicked: function(event, el) {
|
|
|
|
|
// override onIconClicked of PbxConfigController
|
|
|
|
|
// overrides onIconClicked of PbxConfigController
|
|
|
|
|
if (el.dataset.onseatclick) {
|
|
|
|
|
Ext.Function.defer(eval('this.' + el.dataset.onseatclick), 1, this, [el]);
|
|
|
|
|
return;
|
|
|
|
@ -12,22 +12,27 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
onMouseEntered: function(event, el) {
|
|
|
|
|
if (el.dataset.onseathovered) {
|
|
|
|
|
var selectedRec = this.getSelectedRec();
|
|
|
|
|
var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
if (el.dataset.onseathovered && !editPanel.isVisible()) {
|
|
|
|
|
Ext.Function.defer(eval('this.' + el.dataset.onseathovered), 1, this, [el]);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onMouseLeave: function() {
|
|
|
|
|
var selectedRec = this.getSelectedRec();
|
|
|
|
|
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
showPanel.hide();
|
|
|
|
|
},
|
|
|
|
|
seatHovered: function(el) {
|
|
|
|
|
this.setShowEditPanelFields(el);
|
|
|
|
|
},
|
|
|
|
|
seatClick: function(el) {
|
|
|
|
|
this.setShowEditPanelFields(el, true);
|
|
|
|
|
},
|
|
|
|
|
setShowEditPanelFields: function(el, showBtns) {
|
|
|
|
|
setShowEditPanelFields: function(el) {
|
|
|
|
|
var selectedRec = this.getSelectedRec();
|
|
|
|
|
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
var order = el.id.split('-')[2];
|
|
|
|
|
var seatData;
|
|
|
|
|
var labelPositioning = Ext.fly(el.id).getPositioning();
|
|
|
|
|
var seatData, offset;
|
|
|
|
|
|
|
|
|
|
Ext.each(selectedRec.get('seats'), function(seat) {
|
|
|
|
|
if (order == seat.order) {
|
|
|
|
@ -35,21 +40,15 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
showPanel.down('[name=editBtns]').hide();
|
|
|
|
|
offset = (seatData.position.anchor == "right") ? Ext.fly(el.id).getWidth() + 18 : -184;
|
|
|
|
|
showPanel.down('[name=typeValue]').setHtml((seatData && seatData.type && seatData.name) ? seatData.type + ": " + seatData.name : "Unassigned");
|
|
|
|
|
editPanel._user = seatData.name || null;
|
|
|
|
|
editPanel._type = seatData.type || null;
|
|
|
|
|
editPanel._order = seatData.order;
|
|
|
|
|
showPanel.setTitle(seatData.order);
|
|
|
|
|
editPanel.setTitle('Edit ' + seatData.order);
|
|
|
|
|
if (showBtns) {
|
|
|
|
|
showPanel.down('[name=editBtns]').show();
|
|
|
|
|
showPanel.addCls('devices-seat-fieldset');
|
|
|
|
|
}else{
|
|
|
|
|
showPanel.removeCls('devices-seat-fieldset');
|
|
|
|
|
}
|
|
|
|
|
editPanel.hide();
|
|
|
|
|
showPanel.show();
|
|
|
|
|
showPanel.getEl().setLeft(parseInt(labelPositioning.left.split('px')[0]) + offset);
|
|
|
|
|
showPanel.getEl().setTop(parseInt(labelPositioning.top.split('px')[0]) + 20);
|
|
|
|
|
},
|
|
|
|
|
deviceSelected: function(combo, rec) {
|
|
|
|
|
var grid = this.lookupReference('devicesGrid');
|
|
|
|
@ -72,20 +71,41 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
|
|
|
|
|
nameField.focus();
|
|
|
|
|
}, 50)
|
|
|
|
|
},
|
|
|
|
|
editSeat: function() {
|
|
|
|
|
editSeat: function(el) {
|
|
|
|
|
var selectedRec = this.getSelectedRec();
|
|
|
|
|
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
var type = editPanel._type;
|
|
|
|
|
var seatName = editPanel._user;
|
|
|
|
|
var labelPositioning = Ext.fly(el.id).getPositioning();
|
|
|
|
|
var order = el.id.split('-')[2];
|
|
|
|
|
var type, seatName, offset;
|
|
|
|
|
|
|
|
|
|
Ext.each(selectedRec.get('seats'), function(seat) {
|
|
|
|
|
if (order == seat.order) {
|
|
|
|
|
seatData = seat;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
type = seatData.type || null;
|
|
|
|
|
seatName = seatData.name || null;
|
|
|
|
|
offset = (seatData.position.anchor == "right") ? Ext.fly(el.id).getWidth() + 18 : -184;
|
|
|
|
|
if (!type || !seatName) {
|
|
|
|
|
editPanel.removeCls('devices-seat-fieldset-assigned');
|
|
|
|
|
editPanel.addCls('devices-seat-fieldset-unassigned');
|
|
|
|
|
} else {
|
|
|
|
|
editPanel.addCls('devices-seat-fieldset-assigned');
|
|
|
|
|
editPanel.removeCls('devices-seat-fieldset-unassigned');
|
|
|
|
|
}
|
|
|
|
|
editPanel.down('[name=typeValue]').setValue(type);
|
|
|
|
|
editPanel.down('[name=seat]').setValue(seatName);
|
|
|
|
|
showPanel.hide();
|
|
|
|
|
editPanel.show();
|
|
|
|
|
editPanel.getEl().setLeft(parseInt(labelPositioning.left.split('px')[0]) + offset);
|
|
|
|
|
editPanel.getEl().setTop(parseInt(labelPositioning.top.split('px')[0]) + 20);
|
|
|
|
|
},
|
|
|
|
|
deleteSeat: function() {
|
|
|
|
|
var me = this;
|
|
|
|
|
var selectedRec = this.getSelectedRec();
|
|
|
|
|
var grid = me.lookupReference('devicesGrid');
|
|
|
|
|
var selectedRec = me.getSelectedRec();
|
|
|
|
|
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
|
|
|
|
@ -101,7 +121,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
|
|
|
|
|
seat.type = null;
|
|
|
|
|
me.commitUnsavedChanges();
|
|
|
|
|
me.fireEvent('showmessage', true, Ngcp.csc.locales.pbxconfig.changes_saved[localStorage.getItem('languageSelected')])
|
|
|
|
|
showPanel.hide();
|
|
|
|
|
editPanel.hide();
|
|
|
|
|
grid.focus();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -118,6 +139,10 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
|
|
|
|
|
var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
var type = editPanel.down('[name=typeValue]').getValue();
|
|
|
|
|
var user = editPanel.down('[name=seat]').getValue();
|
|
|
|
|
if (!type || !user) {
|
|
|
|
|
me.fireEvent('showmessage', false, Ngcp.csc.locales.common.fields_required[localStorage.getItem('languageSelected')]);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Ext.each(selectedRec.get('seats'), function(seat) {
|
|
|
|
|
if (seat.order == editPanel._order) {
|
|
|
|
|
// workaround; TODO improve with binding in next iterations
|
|
|
|
@ -130,15 +155,16 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
me.commitUnsavedChanges();
|
|
|
|
|
showPanel.show();
|
|
|
|
|
editPanel.hide();
|
|
|
|
|
me.commitUnsavedChanges();
|
|
|
|
|
editPanel.hide();
|
|
|
|
|
},
|
|
|
|
|
commitUnsavedChanges: function() {
|
|
|
|
|
var grid = this.lookupReference('devicesGrid');
|
|
|
|
|
var selectedRec = this.getSelectedRec();
|
|
|
|
|
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0];
|
|
|
|
|
selectedRec.set('imageWithButtons', null, {silent: true});
|
|
|
|
|
selectedRec.set('imageWithButtons', null, {
|
|
|
|
|
silent: true
|
|
|
|
|
});
|
|
|
|
|
grid.getStore().commitChanges();
|
|
|
|
|
this.keepRowExpanded(grid, selectedRec);
|
|
|
|
|
Ext.Function.defer(function() {
|
|
|
|
@ -146,9 +172,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
|
|
|
|
|
}, 50);
|
|
|
|
|
},
|
|
|
|
|
discardChanges: function() {
|
|
|
|
|
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + this.getSelectedRec().get('id'))[0];
|
|
|
|
|
var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + this.getSelectedRec().get('id'))[0];
|
|
|
|
|
showPanel.show();
|
|
|
|
|
editPanel.hide();
|
|
|
|
|
},
|
|
|
|
|
getSelectedRec: function() {
|
|
|
|
|