TaskContext=function(id){
Workflow.call(this,id);
};
TaskContext.prototype=new Workflow;
TaskContext.prototype.type="TaskContext";
TaskContext.prototype.editTaskSteps = function(_3252){
var taskExtObj = new TaskContext();
var pro_uid = _3252.scope.workflow.getUrlVars();
var taskId = _3252.scope.workflow.currentSelection.id;
var stepsFields = Ext.data.Record.create([
{
name: 'STEP_TITLE',
type: 'string'
},
{
name: 'STEP_UID',
type: 'string'
},
{
name: 'STEP_TYPE_OBJ',
type: 'string'
},
{
name: 'STEP_CONDITION',
type: 'string'
},
{
name: 'STEP_POSITION',
type: 'string'
},
{
name: 'STEP_MODE',
type: 'string'
},
{
name: 'STEP_UID_OBJ',
type: 'string'
}
]);
var editor = new Ext.ux.grid.RowEditor({
saveText: 'Update'
});
var btnAdd = new Ext.Button({
id: 'btnAdd',
text: 'Assign Step',
iconCls: 'application_add',
handler: function(){
var User = grid.getStore();
var e = new stepsFields({
//STEP_TITLE: User.data.items[0].data.STEP_TITLE,
STEP_UID : '',
STEP_TYPE_OBJ : '',
STEP_CONDITION : '',
STEP_POSITION : '',
STEP_MODE : '',
STEP_UID_OBJ : ''
});
if(availableSteps.data.items.length == 0)
Ext.MessageBox.alert ('Status','No steps are available. All Steps have been already assigned.');
else
{
editor.stopEditing();
taskSteps.insert(0, e);
grid.getView().refresh();
//grid.getSelectionModel().selectRow(0);
editor.startEditing(0, 0);
}
}
});
var btnRemove = new Ext.Button({
id: 'btnRemove',
text: 'Remove Step',
iconCls: 'application_delete',
handler: function (s) {
editor.stopEditing();
var s = grid.getSelectionModel().getSelections();
for(var i = 0, r; r = s[i]; i++){
//First Deleting step from Database using Ajax
var stepUID = r.data.STEP_UID;
var stepPosition = r.data.STEP_POSITION;
//if STEP_UID is properly defined (i.e. set to valid value) then only delete the row
//else its a BLANK ROW for which Ajax should not be called.
if(r.data.STEP_UID != "")
{
Ext.Ajax.request({
url : '../steps/steps_Delete.php',
method: 'POST',
params: {
TASK : taskId,
STEP_UID : stepUID,
STEP_POSITION : stepPosition
},
success: function(response) {
Ext.MessageBox.alert ('Status','Step has been removed successfully.');
//Secondly deleting from Grid
taskSteps.remove(r);
//Reloading store after removing steps
taskSteps.reload();
}
});
}
else
taskSteps.remove(r);
}
}
});
var tb = new Ext.Toolbar({
items: [btnAdd, btnRemove]
});
// create the Data Store of all Steps that are already been assigned to a task
var taskSteps = new Ext.data.JsonStore({
root : 'data',
totalProperty: 'totalCount',
idProperty : 'gridIndex',
remoteSort : true,
fields : stepsFields,
proxy : new Ext.data.HttpProxy({
url : 'proxyExtjs?tid='+taskId+'&action=getAssignedSteps'
})
});
//taskUsers.setDefaultSort('LABEL', 'asc');
taskSteps.load();
// create the Data Store of all Steps that are not been assigned to a task i.e available steps
var availableSteps = new Ext.data.JsonStore({
root : 'data',
url : 'proxyExtjs?pid='+pro_uid+'&tid='+taskId+'&action=getAvailableSteps',
totalProperty : 'totalCount',
idProperty : 'gridIndex',
remoteSort : false,
autoLoad : true,
fields : stepsFields
});
//availableSteps.load();
var conditionsColumns = new Ext.grid.ColumnModel({
columns: [
{
id: 'STEP_TITLE',
header: 'Title',
dataIndex: 'STEP_TITLE',
width: 280,
editor: new Ext.form.TextField({
//allowBlank: false
})
},
{
//id: 'STEP_TITLE',
header: 'Condition',
dataIndex: 'STEP_CONDITION',
width: 250,
editable: true,
editor: new Ext.form.TextField({
})
},
{
header: 'Assign Condition',
width: 200,
renderer: function(val){return '';}
}
]
});
var grid = new Ext.grid.GridPanel({
store : taskSteps,
id : 'mygrid',
loadMask : true,
loadingText : 'Loading...',
renderTo : 'cases-grid',
frame : false,
autoHeight : false,
enableDragDrop : true,
ddGroup : 'firstGridDDGroup',
clicksToEdit: 1,
minHeight :400,
height :400,
layout : 'form',
plugins : [editor],
columns : [{
id: 'STEP_TITLE',
header: 'Title',
dataIndex: 'STEP_TITLE',
width: 200,
sortable: true,
editor: new Ext.form.ComboBox({
xtype : 'combo',
fieldLabel : 'Users_groups',
//hiddenName : 'number',
store : availableSteps,
displayField : 'STEP_TITLE' ,
valueField : 'STEP_TITLE',
//name : 'STEP_TITLE',
scope : this,
triggerAction: 'all',
emptyText : 'Select Step',
allowBlank : false,
onSelect: function(record, index){
var User = grid.getStore();
if(typeof _3252.scope.workflow.currentrowIndex == 'undefined')
var selectedrowIndex = '0';
else
selectedrowIndex = _3252.scope.workflow.currentrowIndex; //getting Index of the row that has been edited
//User.data.items[0].data.STEP_TITLE= record.data.STEP_TITLE;
User.data.items[selectedrowIndex].data.STEP_UID= record.data.STEP_UID;
User.data.items[selectedrowIndex].data.STEP_TYPE_OBJ=record.data.STEP_TYPE_OBJ;
User.data.items[selectedrowIndex].data.STEP_CONDITION=record.data.STEP_CONDITION;
User.data.items[selectedrowIndex].data.STEP_POSITION=record.data.STEP_POSITION;
User.data.items[selectedrowIndex].data.STEP_UID_OBJ=record.data.STEP_UID_OBJ;
User.data.items[selectedrowIndex].data.STEP_MODE=record.data.STEP_MODE;
this.setValue(record.data[this.valueField || this.displayField]);
this.collapse();
}
})
},
{
id: 'STEP_MODE',
header: 'Mode',
dataIndex: 'STEP_MODE',
width: 100,
sortable: true,
editor: new Ext.form.ComboBox ({
editable : false,
triggerAction: 'all',
lazyRender:true,
allowBlank : false,
emptyText : 'Select Mode',
mode: 'local',
scope: this,
store: new Ext.data.ArrayStore({
id: 0,
fields: [
'STEP_MODE',
'STEP_MODE'
],
data: [['EDIT', 'Edit'], ['VIEW', 'View']]
}),
valueField: 'STEP_MODE',
defaultValue: 'EDIT',
displayField: 'STEP_MODE',
onSelect: function(record, index){
var User = grid.getStore();
User.data.items[0].data.STEP_MODE=record.data.STEP_MODE;
this.setValue(record.data[this.valueField || this.displayField]);
this.collapse();
}
})
},
{
sortable: false,
renderer: function()
{
return String.format("Edit",pro_uid,taskId);
}
}
],
sm: new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect: function(smObj, rowIndex, record) {
_3252.scope.workflow.currentrowIndex = rowIndex;
}
}
}),
stripeRows: true,
viewConfig: {forceFit: true},
tbar: tb
});
editor.on({
scope: this,
afteredit: function(roweditor, changes, record, rowIndex) {
var stepUIDObj = record.data.STEP_UID_OBJ;
var stepTypeObj = record.data.STEP_TYPE_OBJ;
var stepMode = record.data.STEP_MODE;
Ext.Ajax.request({
url : '../steps/steps_Save.php',
method: 'POST',
params: {
sProcess : pro_uid,
sTask : taskId,
sType : stepTypeObj,
sUID : stepUIDObj,
sMode : stepMode
},
success: function(response) {
Ext.MessageBox.alert ('Status','Step has been assigned successfully.');
}
});
availableSteps.reload();
//Deleting previously assigned step on updating/replacing with new step.
if(changes != '' && typeof record.json != 'undefined')
{
var stepUID = record.json.STEP_UID;
var stepPosition = record.json.STEP_POSITION;
Ext.Ajax.request({
url : '../steps/steps_Delete.php',
method: 'POST',
params: {
TASK : taskId,
STEP_UID : stepUID,
STEP_POSITION : stepPosition
},
success: function(response) {
//Ext.MessageBox.alert ('Status','Step has been updated successfully.');
}
});
}
}
});
// Setup Drop Targets
// This will make sure we only drop to the view scroller element
var firstGridDropTargetEl = grid.getView().scroller.dom;
var firstGridDropTarget = new Ext.dd.DropTarget(firstGridDropTargetEl, {
ddGroup : 'firstGridDDGroup',
notifyDrop : function(ddSource, e, data){
var records = ddSource.dragData.selections;
Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
grid.store.add(records);
grid.store.commitChanges();
//firstGrid.store.sort('gridIndex', 'ASC');
return true
}
});
firstGridDropTarget.addToGroup('firstGridDDGroup');
//Getting triggers data using stepTriggers function
var treeGrid = taskExtObj.stepTriggers(_3252);
treeGrid.render(document.body);
var taskStepsTabs = new Ext.FormPanel({
labelWidth: 100,
bodyStyle :'padding:5px 5px 0',
width : 850,
height : 500,
items:
{
xtype:'tabpanel',
activeTab: 0,
defaults:{
autoHeight:true,
bodyStyle:'padding:10px'
},
items:[{
title:'Steps',
layout:'fit',
defaults: {
width: 400
},
items:[grid]
},{
title:'Condition',
layout:'fit',
defaults: {
width: 400
},
items:[{
xtype: 'grid',
ds: taskSteps,
cm: conditionsColumns,
height: 350,
loadMask : true,
loadingText : 'Loading...',
border: false
}]
},{
title:'Triggers',
layout:'form',
defaults: {
width: 400
},
items:[treeGrid]
}]
}
});
taskStepsTabs.render(document.body);
_3252.scope.workflow.taskStepsTabs = taskStepsTabs;
var window = new Ext.Window({
title: 'Steps Of',
collapsible: false,
maximizable: false,
width: 700,
height: 380,
minWidth: 200,
minHeight: 150,
layout: 'fit',
plain: true,
bodyStyle: 'padding:5px;',
buttonAlign: 'center',
items: taskStepsTabs
/*buttons: [{
text: 'Save',
handler: function(){
//var getstore = grid.getStore();
//var getData = getstore.data.items;
//taskExtObj.saveTaskSteps(getData);
}
},{
text: 'Cancel',
handler: function(){
// when this button clicked,
window.close();
}
}]*/
});
window.show();
}
TaskContext.prototype.editUsers= function(_5625)
{
var taskExtObj = new TaskContext();
var pro_uid = workflow.getUrlVars();
var taskId = workflow.currentSelection.id;
var userFields = Ext.data.Record.create([
{
name: 'LABEL',
type: 'string'
},
{
name: 'TU_TYPE',
type: 'string'
},
{
name: 'TU_RELATION',
type: 'string'
},
{
name: 'TAS_UID',
type: 'string'
},
{
name: 'USR_UID',
type: 'string'
}
]);
var editor = new Ext.ux.grid.RowEditor({
saveText: 'Update'
});
var btnAdd = new Ext.Button({
id: 'btnAdd',
text: 'Assign User',
iconCls: 'application_add',
handler: function(){
var User = grid.getStore();
var e = new userFields({
//LABEL: 'Select User or Group',
//LABEL: User.data.items[0].data.LABEL,
TAS_UID: '',
TU_TYPE: '',
USR_UID: '',
TU_RELATION: ''
});
//storeUsers.reload();
if(storeUsers.data.items.length == 0)
Ext.MessageBox.alert ('Status','No users are available. All users have been already assigned.');
else
{
editor.stopEditing();
taskUsers.insert(0, e);
grid.getView().refresh();
//grid.getSelectionModel().selectRow(0);
editor.startEditing(0, 0);
}
}
});
var btnRemove = new Ext.Button({
id: 'btnRemove',
text: 'Remove User',
iconCls: 'application_delete',
handler: function (s) {
editor.stopEditing();
var s = grid.getSelectionModel().getSelections();
for(var i = 0, r; r = s[i]; i++){
//First Deleting assigned users from Database
var user_TURel = r.data.TU_RELATION;
var userUID = r.data.USR_UID;
var user_TUtype = r.data.TU_TYPE;
var urlparams = '?action=ofToAssign&data={"TAS_UID":"'+taskId+'","TU_RELATION":"'+user_TURel+'","USR_UID":"'+userUID+'","TU_TYPE":"'+user_TUtype+'"}';
//if USR_UID is properly defined (i.e. set to valid value) then only delete the row
//else its a BLANK ROW for which Ajax should not be called.
if(r.data.USR_UID != "")
{
Ext.Ajax.request({
url : 'processes_Ajax.php' +urlparams ,
/*method: 'POST',
params: {
functions : 'ofToAssign',
TAS_UID : taskId,
TU_RELATION : user_TURel,
USR_UID : userUID,
TU_TYPE : user_TUtype
},*/
success: function(response) {
Ext.MessageBox.alert ('Status','User has been removed successfully.');
//Secondly deleting from Grid
taskUsers.remove(r);
//Reloading available user store
taskUsers.reload();
}
});
}
else
taskUsers.remove(r);
}
}
});
var tb = new Ext.Toolbar({
items: [btnAdd, btnRemove]
});
// create the Data Store of users that are already assigned to a task
var taskUsers = new Ext.data.JsonStore({
root : 'data',
totalProperty: 'totalCount',
idProperty : 'gridIndex',
remoteSort : true,
fields : userFields,
proxy: new Ext.data.HttpProxy({
url: 'proxyExtjs?pid='+pro_uid+'&tid='+taskId+'&action=getAssignedUsersList'
})
});
//taskUsers.setDefaultSort('LABEL', 'asc');
taskUsers.load();
// create the Data Store of users that are not assigned to a task
var storeUsers = new Ext.data.JsonStore({
root : 'data',
url : 'proxyExtjs?tid='+taskId+'&action=getAvailableUsersList',
totalProperty : 'totalCount',
idProperty : 'gridIndex',
remoteSort : false, //true,
autoLoad : true,
fields : userFields
});
var grid = new Ext.grid.GridPanel({
store: taskUsers,
id : 'mygrid',
//cm: cm,
loadMask: true,
loadingText: 'Loading...',
renderTo: 'cases-grid',
frame: false,
autoHeight:false,
clicksToEdit: 1,
minHeight:400,
height :400,
layout: 'fit',
plugins: [editor],
columns: [
new Ext.grid.RowNumberer(),
{
id: 'LABEL',
header: 'Group or User',
dataIndex: 'LABEL',
width: 100,
sortable: true,
editor: new Ext.form.ComboBox({
xtype: 'combo',
fieldLabel: 'Users_groups',
hiddenName: 'number',
store : storeUsers,
displayField : 'LABEL' ,
valueField : 'LABEL',
name : 'LABEL',
scope : _5625,
triggerAction: 'all',
emptyText: 'Select User or Group',
allowBlank: false,
onSelect: function(record, index){
var User = grid.getStore();
if(typeof _5625.scope.workflow.currentrowIndex == 'undefined')
var selectedrowIndex = '0';
else
selectedrowIndex = _5625.scope.workflow.currentrowIndex; //getting Index of the row that has been edited
//User.data.items[0].data.LABEL= record.data.LABEL;
User.data.items[selectedrowIndex].data.TAS_UID = record.data.TAS_UID;
User.data.items[selectedrowIndex].data.TU_TYPE = record.data.TU_TYPE;
User.data.items[selectedrowIndex].data.USR_UID = record.data.USR_UID;
User.data.items[selectedrowIndex].data.TU_RELATION = record.data.TU_RELATION;
this.setValue(record.data[this.valueField || this.displayField]);
this.collapse();
}
})
}
],
sm: new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect: function(smObj, rowIndex, record) {
_5625.scope.workflow.currentrowIndex = rowIndex;
}
}
}),
stripeRows: true,
viewConfig: {forceFit: true},
tbar: tb
});
storeUsers.load();
editor.on({
scope: this,
afteredit: function(roweditor, changes, record, rowIndex) {
var taskId = record.data.TAS_UID;
var userId = record.data.USR_UID;
var tu_Type = record.data.TU_TYPE;
var tu_Relation = record.data.TU_RELATION;
var urlparams = '?action=assign&data={"TAS_UID":"'+taskId+'","USR_UID":"'+userId+'","TU_TYPE":"'+tu_Type+'","TU_RELATION":"'+tu_Relation+'"}';
Ext.Ajax.request({
url: 'processes_Ajax.php' +urlparams ,
success: function (response) { // When saving data success
Ext.MessageBox.alert ('Status','User has been successfully assigned');
},
failure: function () { // when saving data failed
Ext.MessageBox.alert ('Status','Failed saving User Assigned to Task');
}
});
//Updating the user incase if already assigned user has been replaced by other user
if(changes != '' && typeof record.json != 'undefined')
{
var user_TURel = record.json.TU_RELATION;
var userUID = record.json.USR_UID;
var user_TUtype = record.json.TU_TYPE;
urlparams = '?action=ofToAssign&data={"TAS_UID":"'+taskId+'","TU_RELATION":"'+user_TURel+'","USR_UID":"'+userUID+'","TU_TYPE":"'+user_TUtype+'"}';
Ext.Ajax.request({
url : 'processes_Ajax.php' +urlparams ,
success: function(response) {
//Ext.MessageBox.alert ('Status','User has been updated successfully.');
}
});
}
storeUsers.reload();
}
});
var panel = new Ext.Panel({
id: 'panel',
renderTo: Ext.getBody(),
items: [grid]
});
var window = new Ext.Window({
title: 'Users and User Groups',
collapsible: false,
maximizable: false,
width: 400,
height: 350,
minWidth: 200,
minHeight: 150,
layout: 'fit',
plain: true,
bodyStyle: 'padding:5px;',
buttonAlign: 'center',
items: panel
/*buttons: [{
text: 'Save',
handler: function(){
Ext.MessageBox.alert ("User has been successfully assigned");
//var getstore = grid.getStore();
//var getData = getstore.data.items;
//taskExtObj.saveTaskUsers(getData);
}
},{
text: 'Cancel',
handler: function(){
// when this button clicked,
window.close();
}
}]*/
});
window.show();
}
TaskContext.prototype.editTaskProperties= function(_5625)
{
var taskExtObj = new TaskContext();
var taskId = _5625.scope.workflow.currentSelection.id;
/*function setTaskAssignType(formData){
for(var i=0;i';}
}
],
sm: new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect: function(smObj, rowIndex, record) {
_5625.scope.workflow.currentRowTrigger = rowIndex;
}
}
}),
stripeRows: true,
viewConfig: {forceFit: true},
tbar: toolBar
});
triggerEditor.on({
scope: this,
afteredit: function(roweditor, changes, record, rowIndex) {
var stepUID = record.data.STEP_UID;
var triUID = record.data.TRI_UID;
var sType = record.data.ST_TYPE;
var sCondition = record.data.ST_CONDITION;
//var urlparams = '?action=assignTrigger&data={"STEP_UID":"'+stepUID+'","TRI_UID":"'+triUID+'","ST_TYPE":"'+sType+'","ST_CONDITION":""}';
Ext.Ajax.request({
url : '../steps/steps_Ajax.php',
method: 'POST',
params:{
action : 'assignTrigger',
STEP_UID : stepUID,
TRI_UID : triUID,
ST_TYPE : sType,
ST_CONDITION : sCondition
},
success: function(response) {
Ext.MessageBox.alert ('Status','Triggers has been assigned successfully.');
}
});
//Deleting previously assigned trigger on updating/replacing with new trigger.
if(changes != '' && typeof record.json != 'undefined' )
{
stepUID = record.json.STEP_UID;
var sTrigger = record.json.TRI_UID;
sType = record.json.ST_TYPE;
var iPosition = record.json.ST_POSITION;
var urlparams = '?action=ofToAssignTrigger&sStep=' + stepUID + '&sTrigger=' + sTrigger + '&sType=' + sType + '&iPosition=' + iPosition
Ext.Ajax.request({
url : '../steps/steps_Ajax.php' + urlparams,
success: function(response) {
//Ext.MessageBox.alert ('Status','Trigger has been updated successfully.');
}
});
}
availableTriggers.reload();
}
});
var treeGrid = new Ext.FormPanel({
frame: true,
labelAlign: 'left',
bodyStyle:'padding:5px',
width: 750,
height: 500,
layout: 'column',
items: [{
columnWidth: 0.4,
layout: 'fit',
items: [tree]
},{
columnWidth: 0.6,
xtype: 'fieldset',
//labelWidth: 120,
title:'Assign Triggers',
defaults: {width: 140, border:false},
autoHeight: true,
bodyStyle: Ext.isIE ? 'padding:0 0 5px 15px;' : 'padding:10px 15px;',
border: false,
items: [triggerGrid]
}]
});
return treeGrid;
/*var window = new Ext.Window({
title: 'Steps Of',
collapsible: false,
maximizable: false,
width: 700,
height: 500,
//minWidth: 200,
//autoHeight: true,
minHeight : 150,
layout : 'fit',
plain: true,
bodyStyle: 'padding:5px;',
buttonAlign: 'center',
items: [treeGrid],
buttons: [{
text: 'Save',
handler: function(){
}
},{
text: 'Cancel',
handler: function(){
// when this button clicked,
window.close();
}
}]
});
window.show();*/
}
TaskContext.prototype.editUsersAdHoc= function(_5625)
{
var taskExtObj = new TaskContext();
var pro_uid = workflow.getUrlVars();
var taskId = workflow.currentSelection.id;
var userFields = Ext.data.Record.create([
{
name: 'LABEL',
type: 'string'
},
{
name: 'TU_TYPE',
type: 'string'
},
{
name: 'TU_RELATION',
type: 'string'
},
{
name: 'TAS_UID',
type: 'string'
},
{
name: 'USR_UID',
type: 'string'
}
]);
var editor = new Ext.ux.grid.RowEditor({
saveText: 'Update'
});
var taskUsers = new Ext.data.JsonStore({
root : 'data',
totalProperty: 'totalCount',
idProperty : 'gridIndex',
remoteSort : true,
fields : userFields,
proxy: new Ext.data.HttpProxy({
url: 'proxyExtjs?pid='+pro_uid+'&tid='+taskId+'&action=assignedUsers'
})
});
//taskUsers.setDefaultSort('LABEL', 'asc');
taskUsers.load();
// create the Data Store of users that are not assigned to a task
var storeUsers = new Ext.data.JsonStore({
root : 'data',
url : 'proxyExtjs?tid='+taskId+'&action=availableUsers',
totalProperty : 'totalCount',
idProperty : 'gridIndex',
remoteSort : false, //true,
autoLoad : true,
fields : userFields
});
var btnAdd = new Ext.Button({
id: 'btnAdd',
text: 'Assign User',
iconCls: 'application_add',
handler: function(){
var User = grid.getStore();
var e = new userFields({
//LABEL: 'Select User or Group',
//LABEL: User.data.items[0].data.LABEL,
TAS_UID: '',
TU_TYPE: '',
USR_UID: '',
TU_RELATION: ''
});
//storeUsers.reload();
if(storeUsers.data.items.length == 0)
Ext.MessageBox.alert ('Status','No users are available. All users have been already assigned.');
else
{
editor.stopEditing();
taskUsers.insert(0, e);
grid.getView().refresh();
//grid.getSelectionModel().selectRow(0);
editor.startEditing(0, 0);
}
}
});
var btnRemove = new Ext.Button({
id: 'btnRemove',
text: 'Remove User',
iconCls: 'application_delete',
handler: function (s) {
editor.stopEditing();
var s = grid.getSelectionModel().getSelections();
for(var i = 0, r; r = s[i]; i++){
//First Deleting assigned users from Database
var user_TURel = r.data.TU_RELATION;
var userUID = r.data.USR_UID;
var user_TUtype = r.data.TU_TYPE;
var urlparams = '?action=ofToAssign&data={"TAS_UID":"'+taskId+'","TU_RELATION":"'+user_TURel+'","USR_UID":"'+userUID+'","TU_TYPE":"'+user_TUtype+'"}';
//if USR_UID is properly defined (i.e. set to valid value) then only delete the row
//else its a BLANK ROW for which Ajax should not be called.
if(r.data.USR_UID != "")
{
Ext.Ajax.request({
url : 'processes_Ajax.php' +urlparams ,
/*method: 'POST',
params: {
functions : 'ofToAssign',
TAS_UID : taskId,
TU_RELATION : user_TURel,
USR_UID : userUID,
TU_TYPE : user_TUtype
},*/
success: function(response) {
Ext.MessageBox.alert ('Status','User has been removed successfully.');
//Secondly deleting from Grid
taskUsers.remove(r);
//Reloading available user store
taskUsers.reload();
}
});
}
else
taskUsers.remove(r);
}
}
});
var tb = new Ext.Toolbar({
items: [btnAdd, btnRemove]
});
// create the Data Store of users that are already assigned to a task
var grid = new Ext.grid.GridPanel({
store: taskUsers,
id : 'mygrid',
//cm: cm,
loadMask: true,
loadingText: 'Loading...',
renderTo: 'cases-grid',
frame: false,
autoHeight:false,
clicksToEdit: 1,
minHeight:400,
height :400,
layout: 'fit',
plugins: [editor],
columns: [
new Ext.grid.RowNumberer(),
{
id: 'LABEL',
header: 'Group or User',
dataIndex: 'LABEL',
width: 100,
sortable: true,
editor: new Ext.form.ComboBox({
xtype: 'combo',
fieldLabel: 'Users_groups',
hiddenName: 'number',
store : storeUsers,
displayField : 'LABEL',
valueField : 'LABEL',
name : 'LABEL',
scope : _5625,
triggerAction: 'all',
emptyText: 'Select User or Group',
allowBlank: false,
onSelect: function(record, index){
var User = grid.getStore();
if(typeof _5625.scope.workflow.currentrowIndex == 'undefined')
var selectedrowIndex = '0';
else
selectedrowIndex = _5625.scope.workflow.currentrowIndex; //getting Index of the row that has been edited
//User.data.items[0].data.LABEL= record.data.LABEL;
User.data.items[selectedrowIndex].data.TAS_UID = record.data.TAS_UID;
User.data.items[selectedrowIndex].data.TU_TYPE = record.data.TU_TYPE;
User.data.items[selectedrowIndex].data.USR_UID = record.data.USR_UID;
User.data.items[selectedrowIndex].data.TU_RELATION = record.data.TU_RELATION;
this.setValue(record.data[this.valueField || this.displayField]);
this.collapse();
}
})
}
],
sm: new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect: function(smObj, rowIndex, record) {
_5625.scope.workflow.currentrowIndex = rowIndex;
}
}
}),
stripeRows: true,
viewConfig: {forceFit: true},
tbar: tb
});
storeUsers.load();
editor.on({
scope: this,
afteredit: function(roweditor, changes, record, rowIndex) {
var taskId = record.data.TAS_UID;
var userId = record.data.USR_UID;
var tu_Type = record.data.TU_TYPE;
var tu_Relation = record.data.TU_RELATION;
///var urlparams = '?action=assign&data={"TAS_UID":"'+taskId+'","USR_UID":"'+userId+'","TU_TYPE":"'+tu_Type+'","TU_RELATION":"'+tu_Relation+'"}';
Ext.Ajax.request({
url: '../users/users_Ajax.php',
METHOD:'post',
success: function (response) { // When saving data success
Ext.MessageBox.alert ('Status','User has been successfully assigned');
},
params:{
functions : 'assign',
TAS_UID : taskId,
USR_UID : userId,
TU_TYPE : tu_Type,
TU_RELATION:tu_Relation
},
failure: function () { // when saving data failed
Ext.MessageBox.alert ('Status','Failed saving User Assigned to Task');
}
});
//Updating the user incase if already assigned user has been replaced by other user
if(changes != '' && typeof record.json != 'undefined')
{
var user_TURel = record.json.TU_RELATION;
var userUID = record.json.USR_UID;
var user_TUtype = record.json.TU_TYPE;
//urlparams = '?action=ofToAssign&data={"TAS_UID":"'+taskId+'","TU_RELATION":"'+user_TURel+'","USR_UID":"'+userUID+'","TU_TYPE":"'+user_TUtype+'"}';
Ext.Ajax.request({
url : '../users/users_Ajax.php',
method: 'POST',
success: function(response) {
Ext.MessageBox.alert ('Status','User has been updated successfully.');
},
params:{
functions : 'ofToAssign',
TAS_UID : taskId,
USR_UID : userId,
TU_TYPE : tu_Type,
TU_RELATION:tu_Relation
}
});
}
//storeUsers.reload();
}
});
var panel = new Ext.Panel({
id: 'panel',
renderTo: Ext.getBody(),
items: [grid]
});
var window = new Ext.Window({
title: 'Users and User Groups(Ad Hoc)',
collapsible: false,
maximizable: false,
width: 400,
height: 350,
minWidth: 200,
minHeight: 150,
layout: 'fit',
plain: true,
bodyStyle: 'padding:5px;',
buttonAlign: 'center',
items: panel
});
window.show();
}