pmosExt=function(id){
Workflow.call(this,id);
};
pmosExt.prototype=new Workflow;
pmosExt.prototype.type="pmosExt";
pmosExt.prototype.addExtJsWindow = function(items,width,height,title)
{
var window = new Ext.Window({
title: title,
collapsible: false,
maximizable: false,
width: width,
height: height,
minWidth: 300,
minHeight: 200,
layout: 'fit',
plain: true,
bodyStyle: 'padding:5px;',
buttonAlign: 'center',
items: items,
buttons: [{
text: 'Save',
handler: function(){
// when this button clicked, sumbit this form
items.getForm().submit({
//waitMsg: 'Saving...', // Wait Message
success: function () { // When saving data success
//Ext.MessageBox.alert (response.responseText);
// clear the form
//simpleForm.getForm().reset();
},
failure: function () { // when saving data failed
Ext.MessageBox.alert ('Message','Authentication Failed');
}
});
// var test = webForm.getForm().submit({url:'../cases/cases_SchedulerValidateUser.php', submitEmptyText: false});
}
},{
text: 'Cancel',
handler: function(){
// when this button clicked,
window.close();
}
}]
});
window.show();
}
pmosExt.prototype.popWebEntry= function(_5678)
{
var oTask = _5678.workflow.taskUid;
var oDyna = _5678.workflow.dynaList;
var webEntryDetails = _5678.workflow.webEntryList;
var webEntry = '';
if(typeof webEntryDetails != 'undefined'){ //Web Entry Present
if(webEntryDetails.length > 0 && webEntryDetails[0].W_LINK != '') //Web Entry Present
webEntry = webEntryDetails[0].W_LINK;
}
var webForm = new Ext.FormPanel({
labelWidth: 120, // label settings here cascade unless overridden
//url:'save-form.php',
frame:true,
title: '',
scope:_5678,
bodyStyle:'padding:5px 5px 0',
width: 500,
height: 400,
defaultType: 'textfield',
buttonAlign : 'center',
items: [
{
xtype:'fieldset',
title: 'WebEntry Link',
collapsible: false,
autoHeight:true,
buttonAlign : 'center',
defaults: {width: 210},
//defaultType: 'textfield',
items: [
{
html: webEntry,
xtype: "panel",
width:400
},{
xtype: 'fieldset',
layout:'column',
border:false,
align:'center',
//width: 700,
items:[{
columnWidth:.3,
layout: 'form',
border:false,
items: [{
xtype: 'button',
id: 'edit',
text: 'Edit',
bodyStyle: 'padding-left:35px;',
// width:50,
handler: function(){
var properties = _5678.workflow.webForm.items.items[1];
var credential = _5678.workflow.webForm.items.items[2];
properties.show();
credential.show();
_5678.workflow.webEntrywindow.buttons[0].enable();
_5678.workflow.webEntrywindow.setHeight(450);
}
}]
},{
columnWidth:.3,
layout: 'form',
border:false,
//bodyStyle: 'padding:35px;',
items: [{
xtype: 'button',
id: 'cancel',
//width:50,
text: 'Cancel',
handler: function(){
var properties = _5678.workflow.webForm.items.items[1];
var credential = _5678.workflow.webForm.items.items[2];
properties.hide();
credential.hide();
_5678.workflow.webEntrywindow.buttons[0].disable();
_5678.workflow.webEntrywindow.setHeight(200);
}
}]
}]
}
/*{
xtype: 'button',
id: 'edit',
text: 'Edit',
width:50,
handler: function(){
var properties = _5678.workflow.webForm.items.items[1];
var credential = _5678.workflow.webForm.items.items[2];
properties.show();
credential.show();
_5678.workflow.webEntrywindow.buttons[0].enable();
_5678.workflow.webEntrywindow.setHeight(450);
}
},{
xtype: 'button',
id: 'cancel',
width:50,
text: 'Cancel',
handler: function(){
var properties = _5678.workflow.webForm.items.items[1];
var credential = _5678.workflow.webForm.items.items[2];
properties.hide();
credential.hide();
_5678.workflow.webEntrywindow.buttons[0].disable();
_5678.workflow.webEntrywindow.setHeight(200);
}*/
// }
]
},
{
xtype:'fieldset',
title: 'Properties',
collapsible: false,
autoHeight:true,
defaults: {width: 210},
defaultType: 'textfield',
items: [{
width: 200,
xtype: 'combo',
mode: 'local',
forceSelection: true,
allowBlank:false,
triggerAction: 'all',
editable: false,
fieldLabel: 'Initial Task',
name: 'initTask',
hiddenName: 'initTask',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data :oTask
})
},{
width: 200,
xtype: 'combo',
mode: 'local',
forceSelection: true,
allowBlank:false,
triggerAction: 'all',
editable: false,
fieldLabel: 'Initial Dynaform',
name: 'initDyna',
hiddenName: 'initDyna',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data :oDyna
})
},{
width: 200,
xtype: 'combo',
mode: 'local',
forceSelection: true,
allowBlank:false,
triggerAction: 'all',
editable: false,
fieldLabel: 'Methods',
name: 'methods',
hiddenName: 'methods',
displayField: 'name',
valueField: 'value',
scope:_5678,
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'PHP Pages with Web Services', value: 'WS'},
{name : 'Single HTML', value: 'SINGLE'},
]
}),
onSelect: function(record, index){
var fields = this.scope.workflow.webForm.items.items;
if(index == 1)
{ //Select
fields[2].collapse();
_5678.workflow.webEntrywindow.buttons[0].disable();
_5678.workflow.webEntrywindow.buttons[1].enable();
}
else
{
fields[2].expand();
_5678.workflow.webEntrywindow.buttons[0].enable();
_5678.workflow.webEntrywindow.buttons[1].disable();
}
this.setValue(record.data[this.valueField || this.displayField]);
this.collapse();
}
}, {
width: 200,
xtype: 'combo',
mode: 'local',
forceSelection: true,
triggerAction: 'all',
editable: false,
allowBlank:false,
fieldLabel: 'Input Document Access',
name: 'inputDocAccess',
hiddenName: 'inputDocAccess',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'No Restriction', value: '1'},
{name : 'Restricted to Process Permission', value: '2'},
]
})
}]
},{
xtype:'fieldset',
title: 'PHP & Web Service options',
collapsible: false,
autoHeight:true,
defaults: {width: 210},
defaultType: 'textfield',
items: [{
fieldLabel: 'Web Service User',
name: 'webserviceUser',
allowBlank:true
},{
fieldLabel: 'Web Service Password',
name: 'webservicePassword',
allowBlank:true,
inputType:'password'
}]
}]
});
webForm.render(document.body);
_5678.workflow.webForm = webForm;
var fields = webForm.items.items;
var oPmosExt = new pmosExt();
//oPmosExt.addExtJsWindow(webForm,600,500,'Add New webentry');
var webEntrywindow = new Ext.Window({
title: 'Start Message Event(Web Entry)',
collapsible: false,
maximizable: false,
width: 450,
height: 450,
minWidth: 300,
minHeight: 200,
layout: 'fit',
plain: true,
bodyStyle: 'padding:5px;',
buttonAlign: 'center',
items: webForm,
scope:_5678,
buttons: [{
text: 'Test Configuration',
handler: function(){
var propertiesfields = _5678.workflow.webForm.items.items[1].items.items;
var credentialFields = _5678.workflow.webForm.items.items[2].items.items;
var task_uid = propertiesfields[0].getValue();
var dyna_uid = propertiesfields[1].getValue();
var we_type = propertiesfields[2].getValue();
var we_usr = propertiesfields[3].getValue();
var tasName = 'test';
var username = credentialFields[0].getValue();
var password = credentialFields[1].getValue();
var pro_uid = _5678.workflow.getUrlVars();
var args = '?action=webEntry_validate&data={"PRO_UID":"'+pro_uid +'", "TASKS":"'+task_uid+'", "DYNAFORM":"'+dyna_uid+'", "WE_TYPE":"'+we_type+'", "WS_USER":"'+username+'", "WS_PASS":"'+password+'", "WS_ROUNDROBIN":"", "WE_USR":"'+we_usr+'", "TASKS_NAME":"'+tasName+'"}';
Ext.Ajax.request({
url: 'processes_Ajax.php'+ args,
success: function(response) {
if(response.responseText == "1")
this.workflow.webEntrywindow.buttons[1].enable();
else
{
Ext.Msg.alert (response.responseText);
this.workflow.webEntrywindow.buttons[1].disable();
}
},
failure: function(){
Ext.Msg.alert ('Failure');
}
});
}
},{
text: 'Generate Web Entry Page',
disabled:true,
handler: function(){
var webEntryLink = _5678.workflow.webForm.items.items[0].items.items;
var propertiesfields = _5678.workflow.webForm.items.items[1].items.items;
var credentialFields = _5678.workflow.webForm.items.items[2].items.items;
var task_uid = propertiesfields[0].getValue();
var dyna_uid = propertiesfields[1].getValue();
var we_type = propertiesfields[2].getValue();
var we_usr = propertiesfields[3].getValue();
var tasName = 'test';
var username = credentialFields[0].getValue();
var password = credentialFields[1].getValue();
var pro_uid = _5678.workflow.getUrlVars();
var args = '?action=webEntry_generate&data={"PRO_UID":"'+pro_uid +'", "TASKS":"'+task_uid+'", "DYNAFORM":"'+dyna_uid+'", "WE_TYPE":"'+we_type+'", "WS_USER":"'+username+'", "WS_PASS":"'+password+'", "WS_ROUNDROBIN":"", "WE_USR":"'+we_usr+'"}';
Ext.Ajax.request({
url: 'processes_Ajax.php'+ args,
success: function(response) {
webEntryLink[0].initialConfig.html = response.responseText;
// webEntryLink[0].setValue(response.responseText);
_5678.workflow.webForm.items.items[0].show();
_5678.workflow.webForm.items.items[1].hide();
_5678.workflow.webForm.items.items[2].hide();
this.workflow.webEntrywindow.buttons[1].disable();
Ext.Msg.alert(response.responseText);
},
failure: function(){
Ext.Msg.alert ('Failure');
}
});
}
}]
});
_5678.workflow.webEntrywindow = webEntrywindow;
webEntrywindow.show();
var webEntryDetails = _5678.workflow.webEntryList;
var webEntryLink = _5678.workflow.webForm.items.items[0];
var propertiesfields = _5678.workflow.webForm.items.items[1];
var credentialFields = _5678.workflow.webForm.items.items[2];
if(typeof webEntryDetails != 'undefined')
if(webEntryDetails.length > 0 && webEntryDetails[0].W_LINK != ''){ //Web Entry Present
// webEntryLink.items.items[0].setValue(webEntryDetails[0].W_LINK);
_5678.workflow.webEntrywindow.setHeight(200);
webEntryLink.show();
propertiesfields.hide();
credentialFields.hide();
}
else
{
propertiesfields.show();
credentialFields.show();
webEntryLink.hide();
}
}
pmosExt.prototype.popCaseSchedular= function(_5678){
Ext.QuickTips.init();
var oPmosExt = new pmosExt();
//Get the Task Data
var oTask = _5678.workflow.taskUid;
if(typeof oTask != 'undefined')
{
taskName = oTask[0].name;
task_uid = oTask[0].value;
}
var caseSchedularForm = new Ext.FormPanel({
labelWidth: 120, // label settings here cascade unless overridden
url:'cases_Scheduler_Save.php',
frame:true,
title: 'General Information',
bodyStyle:'padding:5px 5px 0',
width: 500,
height: 400,
buttonAlign : 'center',
defaultType: 'textfield',
items: [{
xtype:'fieldset',
title: 'Please insert a valid processmaker user name and password, in order to assign the case
to their respective owner',
collapsible: false,
autoHeight:true,
buttonAlign : 'center',
defaults: {width: 210},
defaultType: 'textfield',
items: [
{
fieldLabel: 'Username',
name: 'SCH_DEL_USER_NAME',
allowBlank:false,
blankText:'Enter username'
},{
fieldLabel: 'Password',
inputType:'password',
name: 'SCH_USER_PASSWORD',
allowBlank:false,
blankText:'Enter Password'
},{
xtype: 'button',
id: 'testUser',
width:75,
text: 'Test User',
arrowAlign: 'center',
scope:_5678,
align:'center',
margins:'5 5 5 5',
handler: function(){
var credentialFieldset = _5678.workflow.caseSchedularForm.items.items[0];
var propertiesFieldset = _5678.workflow.caseSchedularForm.items.items[1];
var timeFieldset = _5678.workflow.caseSchedularForm.items.items[2];
var username = credentialFieldset.items.items[0].getValue();
var password = credentialFieldset.items.items[1].getValue();
if(username == '' || password == ''){
Ext.Msg.alert('Please enter valid credentials');
}
else
{
Ext.Ajax.request({
url: '../cases/cases_SchedulerValidateUser.php?USERNAME=' + username+'&PASSWORD='+password,
success: function(response) {
var result = Ext.util.JSON.decode(response.responseText);
if(result.status == 0)
{
credentialFieldset.items.items[4].setValue(response.responseText);
propertiesFieldset.show();
timeFieldset.show();
timeFieldset.collapse();
credentialFieldset.items.items[2].hide(); //Hide Test User
credentialFieldset.items.items[3].show(); //Show Edit User
}
Ext.Msg.alert(result.message);
},
failure: function(){
Ext.Msg.alert ('Failure');
}
});
}
}
},{
xtype: 'button',
id: 'editUser',
width:75,
text: 'Edit User',
arrowAlign: 'center',
scope:_5678,
align:'center',
hidden:true,
margins:'5 5 5 5',
handler: function(){
var credentialFieldset = _5678.workflow.caseSchedularForm.items.items[0];
var propertiesFieldset = _5678.workflow.caseSchedularForm.items.items[1];
var timeFieldset = _5678.workflow.caseSchedularForm.items.items[2];
propertiesFieldset.hide();
timeFieldset.hide();
credentialFieldset.items.items[3].hide(); //Hide Edit User
credentialFieldset.items.items[2].show(); //Show Test User
}
},{
fieldLabel: 'Usr_uid',
name: 'SCH_DEL_USER_UID',
hidden:true
},{
fieldLabel: 'pro_uid',
name: 'PRO_UID',
hidden:true
},{
fieldLabel: 'SCH_DAYS_PERFORM_TASK',
name: 'SCH_DAYS_PERFORM_TASK',
hidden:true,
value:1
},{
fieldLabel: 'TAS_UID',
name: 'TAS_UID',
hidden:true,
value:1
},{
fieldLabel: 'SCH_WEEK_DAYS',
name: 'SCH_WEEK_DAYS',
hidden:true
},{
fieldLabel: 'SCH_MONTHS',
name: 'SCH_MONTHS',
hidden:true
},{
fieldLabel: 'EVN_UID',
name: 'EVN_UID',
hidden:true
},{
fieldLabel: 'SCH_UID',
name: 'SCH_UID',
hidden:true
}]
},{
xtype:'fieldset',
title: 'Properties',
collapsible: false,
autoHeight:true,
buttonAlign : 'center',
defaults: {width: 210},
defaultType: 'textfield',
items: [
{
fieldLabel: 'TASK',
name: 'TAS_NAME',
value: taskName,
readOnly:true,
allowBlank:false
}
/*{
width: 160,
xtype: 'combo',
mode: 'local',
forceSelection: true,
triggerAction: 'all',
editable: false,
allowBlank:false,
fieldLabel: 'Task',
name: 'TAS_UID',
hiddenName: 'task',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data :oTask
})
}*/,{
fieldLabel: 'Description',
allowBlank:false,
name: 'SCH_NAME'
//allowBlank:false
},{
width: 120,
xtype: 'combo',
mode: 'local',
triggerAction: 'all',
forceSelection: true,
allowBlank:false,
value: '--select--',
editable: false,
fieldLabel: 'Perform this Task',
name: 'SCH_OPTION',
displayField: 'name',
valueField: 'value',
scope:_5678,
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data :[
{name : '--select--', value: '0',selected: true},
{name : 'Daily', value: '1'},
{name : 'Weekly', value: '2'},
{name : 'Monthly', value: '3'},
{name : 'One time only', value: '4'}
]
}),
onSelect: function(record, index){
oPmosExt.hideSchOptions(caseSchedularForm,index);
this.setValue(record.data[this.valueField || this.displayField]);
this.collapse();
}
}
]},{
xtype:'fieldset',
title: 'Select the time and day you want this task to start.',
collapsible: false,
autoHeight:true,
buttonAlign : 'center',
defaults: {width: 210},
defaultType: 'textfield',
items: [
{
xtype: 'datefield',
name:'SCH_START_DATE',
format: 'Y-m-d',
fieldLabel: 'Start Date'
},{
xtype: 'datefield',
name:'SCH_END_DATE',
format: 'Y-m-d',
fieldLabel: 'End Date'
},{
fieldLabel: 'Execution Time',
name: 'SCH_START_TIME'
//allowBlank:false
},{
xtype: 'checkboxgroup',
fieldLabel: 'Select the day(s) of the week below',
name:'SCH_WEEK_DAY',
hidden: true,
// Put all controls in a single column with width 100%
columns: 2,
items: [
{boxLabel: 'Monday', name: '1', checked: true},
{boxLabel: 'Tuesday', name: '2'},
{boxLabel: 'Wednesday', name: '3'},
{boxLabel: 'Thursday', name: '4'},
{boxLabel: 'Friday', name: '5'},
{boxLabel: 'Saturday', name: '6'},
{boxLabel: 'Sunday', name: '7'}
]
},{
width: 100,
labelWidth: 0,
xtype: 'combo',
mode: 'local',
triggerAction: 'all',
forceSelection: true,
hidden: true,
editable: false,
scope:_5678,
name: 'SCH_START_DAY',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'Day of Month', value: '1'},
{name : 'The Day', value: '2'},
]
}),
onSelect: function(record, index){
var timefieldset = this.scope.workflow.caseSchedularForm.items.items[2];
var fields = timefieldset.items.items;
var fieldsToToggle = new Array();
if(index == 0){ //Select
fieldsToToggle = [fields[5],fields[6]];
oPmosExt.toggleFields(fieldsToToggle,false);
fieldsToToggle = [fields[7]];
oPmosExt.toggleFields(fieldsToToggle,true);
}
else
{
fieldsToToggle = [fields[5],fields[6]];
oPmosExt.toggleFields(fieldsToToggle,true);
fieldsToToggle = [fields[7]];
oPmosExt.toggleFields(fieldsToToggle,false);
}
this.setValue(record.data[this.valueField || this.displayField]);
this.collapse();
}
},{
width: 100,
labelWidth: 0,
xtype: 'combo',
mode: 'local',
triggerAction: 'all',
forceSelection: true,
hidden: true,
editable: false,
name: 'SCH_START_DAY_OPT_2_WEEKS',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'First', value: '1'},
{name : 'Second', value: '2'},
{name : 'Third', value: '3'},
{name : 'Fourth', value: '4'},
{name : 'Last', value: '5'},
]
})
},{
width: 100,
labelWidth: 0,
xtype: 'combo',
mode: 'local',
triggerAction: 'all',
forceSelection: true,
hidden: true,
editable: false,
name: 'SCH_START_DAY_OPT_2_DAYS_WEEK',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'Monday', value: '1'},
{name : 'Tuesday', value: '2'},
{name : 'Wednesday', value: '3'},
{name : 'Thursday', value: '4'},
{name : 'Friday', value: '5'},
{name : 'Saturday', value: '6'},
{name : 'Sunday', value: '7'},
]
})
},{
name: 'SCH_START_DAY_OPT_1',
hidden: true,
value:1
},{
xtype: 'checkboxgroup',
fieldLabel: 'of the month(s)',
name:'SCH_MONTH',
hidden:true,
// Put all controls in a single column with width 100%
columns: 3,
items: [
{boxLabel : 'Jan', name: '1'},
{boxLabel : 'Feb', name: '2'},
{boxLabel : 'Mar', name: '3'},
{boxLabel : 'Apr', name: '4'},
{boxLabel : 'May', name: '5'},
{boxLabel : 'Jun', name: '6'},
{boxLabel : 'Jul', name: '7'},
{boxLabel : 'Aug', name: '8'},
{boxLabel : 'Sep', name: '9'},
{boxLabel : 'Oct', name: '10'},
{boxLabel : 'Nov', name: '11'},
{boxLabel : 'Dec', name: '12'},
]
}]}
]
});
caseSchedularForm.render(document.body);
var credentialFieldset = caseSchedularForm.items.items[0];
var propertiesFieldset = caseSchedularForm.items.items[1];
var timeFieldset = caseSchedularForm.items.items[2];
var evn_uid = _5678.workflow.currentSelection.id;
//Loading Details into the form
caseSchedularForm.form.load({
url:'proxyCaseSchLoad?eid='+evn_uid,
method:'GET',
waitMsg:'Loading',
success:function(form,action) {
propertiesFieldset.show();
timeFieldset.show();
timeFieldset.collapse();
credentialFieldset.items.items[2].hide(); //Hide Test User
credentialFieldset.items.items[3].show(); //Show Edit User
var index = propertiesFieldset.items.items[2].value;
timeFieldset.expand();
var sch_month = credentialFieldset.items.items[9].getValue();
var aSchMonth = new Array();
var sSchMonth = '';
aSchMonth = sch_month.substr(0,sch_month.length-1).split("|");
for(var i=0;i