37252 lines
1.4 MiB
37252 lines
1.4 MiB
/*----------------------------------********---------------------------------*/
|
||
/**features-begins**/
|
||
var defaultRules = {
|
||
'bpmn:StartEvent': [
|
||
{
|
||
code: '105101',
|
||
description: 'Start Event must have an outgoing sequence flow'.translate(),
|
||
type: 'bpmnStartEvent',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.outgoing && ref.outgoing.length === 1)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105102',
|
||
description: "Can't connect start event to subprocess".translate(),
|
||
type: 'bpmnStartEvent',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem,
|
||
refArray = ref.outgoing;
|
||
if (ref && refArray && refArray.length === 1) {
|
||
if (refArray[0].targetRef.$type === "bpmn:SubProcess") {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105103',
|
||
description: 'Invalid Connection between elements'.translate(),
|
||
type: 'bpmnStartEvent',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
if(!shape.ValidateConnections()) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
}
|
||
],
|
||
'bpmnActivity': [
|
||
{
|
||
code: '105201',
|
||
description: 'Activity must have an incoming sequence flow'.translate(),
|
||
type: 'bpmnActivity',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.incoming && ref.incoming.length > 0 )) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105202',
|
||
description: 'Activity must have an outgoing sequence flow'.translate(),
|
||
type: 'bpmnActivity',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.outgoing && ref.outgoing.length === 1)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105203',
|
||
description: 'Invalid Connection between elements'.translate(),
|
||
type: 'bpmnActivity',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
if(!shape.ValidateConnections()) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
}
|
||
],
|
||
'bpmn:EndEvent': [
|
||
{
|
||
code: '105301',
|
||
description: 'End event must have an incoming sequence flow'.translate(),
|
||
type: 'bpmnEndEvent',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.incoming && ref.incoming.length > 0)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105302',
|
||
description: 'Invalid Connection between elements'.translate(),
|
||
type: 'bpmnEndEvent',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
if(!shape.ValidateConnections()) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
}
|
||
],
|
||
'bpmnIntermediateEvent': [
|
||
{
|
||
code: '105401',
|
||
description: 'Intermediate event must have one or more incoming sequence flow'.translate(),
|
||
type: 'bpmnIntermediateEvent',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.incoming && ref.incoming.length >= 1)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
|
||
code: '105402',
|
||
description: 'Intermediate event must have an outgoing sequence flow'.translate(),
|
||
type: 'bpmnIntermediateEvent',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.outgoing && ref.outgoing.length === 1)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105403',
|
||
description: 'Invalid Connection between elements'.translate(),
|
||
type: 'bpmnIntermediateEvent',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
if(!shape.ValidateConnections()) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
}
|
||
],
|
||
'bpmnGateway': [
|
||
{
|
||
code: '105501',
|
||
description: 'Diverging Gateway must have an incoming sequence flow'.translate(),
|
||
type: 'bpmnGateway',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
if (shape.gat_direction === 'CONVERGING') {
|
||
error.description = 'Converging Gateway must have two or more incoming sequence flow'.translate();
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.incoming && ref.incoming.length > 1)) {
|
||
shape.addErrorLog(error);
|
||
}
|
||
} else {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && ref.incoming && ref.incoming.length > 1) {
|
||
error.description = "Diverging gateways expect to receive only one incoming flow. ".translate()
|
||
+ "Ignore this warning if your flow is planned to reach to this gateway by only one of the incoming flows at a time".translate();
|
||
shape.addErrorLog(error);
|
||
} else if (ref && !(ref.incoming && ref.incoming.length === 1)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
|
||
}
|
||
},
|
||
{
|
||
code: '105502',
|
||
description: 'Diverging Gateway must have two or more outgoing sequence flow'.translate(),
|
||
type: 'bpmnGateway',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
if (shape.gat_direction === 'CONVERGING') {
|
||
error.description = 'Converging Gateway must have a outgoing sequence flow'.translate();
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.outgoing && ref.outgoing.length === 1)) {
|
||
shape.addErrorLog(error);
|
||
}
|
||
} else {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.outgoing && ref.outgoing.length > 1)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105503',
|
||
description: 'Invalid Connection between elements'.translate(),
|
||
type: 'bpmnGateway',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
if(!shape.ValidateConnections()) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
}
|
||
],
|
||
'bpmnSubProcess': [
|
||
{
|
||
code: '105601',
|
||
description: 'SubProcess must have an incoming sequence flow'.translate(),
|
||
type: 'bpmnSubProcess',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.incoming && ref.incoming.length > 0)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105602',
|
||
description: 'SubProcess must have an outgoing sequence flow'.translate(),
|
||
type: 'bpmnSubProcess',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
var ref = shape.businessObject.elem;
|
||
if (ref && !(ref.outgoing && ref.outgoing.length === 1)) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
code: '105603',
|
||
description: 'Invalid Connection between elements'.translate(),
|
||
type: 'bpmnSubProcess',
|
||
severity: 'Error',
|
||
criteria: function (shape, error) {
|
||
if(!shape.ValidateConnections()) {
|
||
//add error
|
||
shape.addErrorLog(error);
|
||
}
|
||
}
|
||
}
|
||
]
|
||
};
|
||
/**features-ends**/
|
||
/*----------------------------------********---------------------------------*/
|
||
var defaultCrown = {
|
||
items: [
|
||
{
|
||
id: "task",
|
||
name: "Task".translate(),
|
||
className: "mafe-corona-task",
|
||
eventOnMouseDown: function (item) {
|
||
item.canvas.canCreateShape = true;
|
||
item.canvas.canCreateShapeType = 'TASK';
|
||
item.canvas.canCreateShapeClass = 'mafe-toolbar-task';
|
||
item.canvas.connectStartShape = item.parent.parent;
|
||
},
|
||
eventOnMouseOut: function (item) {
|
||
if (item.canvas.canCreateShape) {
|
||
item.parent.hide();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "gateway",
|
||
name: 'Gateway'.translate(),
|
||
className: 'mafe-corona-gateway-exclusive',
|
||
eventOnClick: function (item) {
|
||
item.parent.hide();
|
||
},
|
||
eventOnMouseDown: function (item) {
|
||
item.canvas.canCreateShape = true;
|
||
item.canvas.canCreateShapeType = 'EXCLUSIVE';
|
||
item.canvas.canCreateShapeClass = 'mafe-toolbar-gateway-exclusive';
|
||
item.canvas.connectStartShape = item.parent.parent;
|
||
},
|
||
eventOnMouseOut: function (item) {
|
||
if (item.canvas.canCreateShape) {
|
||
item.parent.hide();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "intermediate",
|
||
name: 'Intermediate'.translate(),
|
||
className: 'mafe-corona-intermediate',
|
||
eventOnClick: function (item) {
|
||
item.parent.hide();
|
||
},
|
||
eventOnMouseDown: function (item) {
|
||
item.canvas.canCreateShape = true;
|
||
item.canvas.canCreateShapeType = 'INTERMEDIATE_EMAIL';
|
||
item.canvas.canCreateShapeClass = 'mafe-toolbar-intermediate-send-mesage';
|
||
item.canvas.connectStartShape = item.parent.parent;
|
||
},
|
||
eventOnMouseOut: function (item) {
|
||
if (item.canvas.canCreateShape) {
|
||
item.parent.hide();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "end",
|
||
name: 'End'.translate(),
|
||
className: 'mafe-corona-end',
|
||
eventOnClick: function (item) {
|
||
item.parent.hide();
|
||
},
|
||
eventOnMouseDown: function (item) {
|
||
item.canvas.canCreateShape = true;
|
||
item.canvas.canCreateShapeType = 'END';
|
||
item.canvas.canCreateShapeClass = 'mafe-toolbar-end';
|
||
item.canvas.connectStartShape = item.parent.parent;
|
||
},
|
||
eventOnMouseOut: function (item) {
|
||
if (item.canvas.canCreateShape) {
|
||
item.parent.hide();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "flow",
|
||
name: 'Flow'.translate(),
|
||
className: 'mafe-corona-flow',
|
||
eventOnClick: function (item) {
|
||
item.parent.hide();
|
||
item.parent.parent.canvas.hideAllFocusedLabels();
|
||
},
|
||
eventOnMouseDown: function (item) {
|
||
item.canvas.canConnect = true;
|
||
item.canvas.connectStartShape = item.parent.parent;
|
||
}
|
||
},
|
||
{
|
||
id: "properties",
|
||
name: 'Properties'.translate(),
|
||
className: 'mafe-corona-settings',
|
||
eventOnClick: function (item) {
|
||
item.parent.hide();
|
||
PMDesigner.saveAndOpenSettings(item.parent.parent, PMDesigner.shapeProperties);
|
||
}
|
||
},
|
||
{
|
||
id: "delete",
|
||
name: 'Delete'.translate(),
|
||
className: 'mafe-corona-delete',
|
||
eventOnClick: function (item) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
item.parent.hide();
|
||
}
|
||
}
|
||
]
|
||
};
|
||
|
||
var configCrown = {
|
||
'PMActivity': {
|
||
'DEFAULT': {
|
||
order: ["task", "gateway", "intermediate", "end", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 3
|
||
}
|
||
},
|
||
'PMGateway': {
|
||
'PARALLEL': {
|
||
order: ["task", "gateway", "end", "flow", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'EXCLUSIVE': {
|
||
order: ["task", "gateway", "end", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'INCLUSIVE': {
|
||
order: ["task", "gateway", "end", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
}
|
||
},
|
||
'PMEvent': {
|
||
'START_EMPTY': {
|
||
order: ["task", "gateway", "intermediate", "flow", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'START_MESSAGECATCH': {
|
||
order: ["task", "gateway", "intermediate", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'START_TIMER': {
|
||
order: ["task", "gateway", "intermediate", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'START_CONDITIONAL': {
|
||
order: ["task", "gateway", "intermediate", "flow", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'START_SIGNALCATCH': {
|
||
order: ["task", "gateway", "intermediate", "flow", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'INTERMEDIATE_EMAIL': {
|
||
order: ["task", "gateway", "end", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'INTERMEDIATE_MESSAGETHROW': {
|
||
order: ["task", "gateway", "end", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'INTERMEDIATE_SIGNALTHROW': {
|
||
order: ["task", "gateway", "end", "flow", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'INTERMEDIATE_MESSAGECATCH': {
|
||
order: ["task", "gateway", "end", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'INTERMEDIATE_TIMER': {
|
||
order: ["task", "gateway", "end", "flow", "properties", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'INTERMEDIATE_CONDITIONAL': {
|
||
order: ["task", "gateway", "end", "flow", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'INTERMEDIATE_SIGNALCATCH': {
|
||
order: ["task", "gateway", "end", "flow", "delete"],
|
||
rows: 3,
|
||
cols: 2
|
||
},
|
||
'END_EMPTY': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
},
|
||
'END_EMAIL': {
|
||
order: ["flow", "properties", "delete"],
|
||
rows: 2,
|
||
cols: 2
|
||
},
|
||
'END_MESSAGETHROW': {
|
||
order: ["flow", "properties", "delete"],
|
||
rows: 2,
|
||
cols: 2
|
||
},
|
||
'END_ERRORTHROW': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
},
|
||
'END_SIGNALTHROW': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
},
|
||
'END_TERMINATETHROW': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
}
|
||
},
|
||
'PMPool': {
|
||
'DEFAULT': {
|
||
order: ["delete"],
|
||
rows: 1,
|
||
cols: 1
|
||
}
|
||
},
|
||
'PMParticipant': {
|
||
'DEFAULT': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
}
|
||
},
|
||
'PMArtifact': {
|
||
'TEXT_ANNOTATION': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
},
|
||
'GROUP': {
|
||
order: ["delete"],
|
||
rows: 1,
|
||
cols: 1
|
||
}
|
||
},
|
||
'PMData': {
|
||
'DATAOBJECT': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
},
|
||
'DATAINPUT': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
},
|
||
'DATAOUTPUT': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
},
|
||
'DATASTORE': {
|
||
order: ["flow", "delete"],
|
||
rows: 2,
|
||
cols: 1
|
||
}
|
||
}
|
||
};
|
||
var PMDesigner = {},
|
||
LANG,
|
||
WORKSPACE,
|
||
SKIN,
|
||
DEFAULT_WINDOW_WIDTH,
|
||
DEFAULT_WINDOW_HEIGHT,
|
||
ENABLED_FEATURES,
|
||
DataDictionary,
|
||
enviromentVariables,
|
||
resizingFrame,
|
||
ViewTaskInformation;
|
||
|
||
PMDesigner.defaultRules = window.defaultRules ? window.defaultRules : {};
|
||
PMDesigner.defaultCrown = window.defaultCrown ? defaultCrown : {};
|
||
PMDesigner.configCrown = window.configCrown ? configCrown : {};
|
||
PMDesigner.modelRules = new ModelRules(PMDesigner.defaultRules);
|
||
PMDesigner.modelCrown = new ModelCrown(PMDesigner.defaultCrown);
|
||
PMDesigner.remoteUrl = "";
|
||
PMDesigner.moddle = new BpmnModdle();
|
||
PMDesigner.bpmnFactory = new BpmnFactory(PMDesigner.moddle);
|
||
PMDesigner.keyCodeF5 = 116;
|
||
PMDesigner.autoSave = true;
|
||
PMDesigner.shapeProperties = function (shape) {
|
||
var typeShape = shape.type;
|
||
switch (typeShape) {
|
||
case "PMActivity":
|
||
PMDesigner.activityProperties(shape);
|
||
break;
|
||
case "PMGateway":
|
||
PMDesigner.gatewayProperties(shape);
|
||
break;
|
||
case "PMEvent":
|
||
shape.eventProperties();
|
||
break;
|
||
}
|
||
};
|
||
|
||
/**
|
||
* function to get the enviroment variables (WORKSPACE, LANG, SKIN)
|
||
*/
|
||
enviromentVariables = function (variable) {
|
||
var url1, variables, WORKSPACE, LANG, SKIN;
|
||
if (window.parent) {
|
||
url1 = window.parent.location.pathname;
|
||
variables = url1.split('/');
|
||
WORKSPACE = variables[1];
|
||
WORKSPACE = WORKSPACE.substring(3);
|
||
LANG = variables[2];
|
||
SKIN = variables[3];
|
||
|
||
if (variable == 'WORKSPACE') {
|
||
return WORKSPACE;
|
||
} else if (variable == 'LANG') {
|
||
return LANG;
|
||
} else if (variable == 'SKIN') {
|
||
return SKIN;
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
};
|
||
|
||
LANG = (typeof SYS_LANG !== "undefined") ? SYS_LANG : enviromentVariables('LANG');
|
||
WORKSPACE = (typeof SYS_SYS !== "undefined") ? SYS_SYS : enviromentVariables('WORKSPACE');
|
||
SKIN = (typeof SYS_SKIN !== "undefined") ? SYS_SKIN : enviromentVariables('SKIN');
|
||
|
||
DEFAULT_WINDOW_WIDTH = 1093;
|
||
DEFAULT_WINDOW_HEIGHT = 520;
|
||
ENABLED_FEATURES = [];
|
||
|
||
if (LANG != 'en') {
|
||
if (typeof __TRANSLATIONMAFE != "undefined" && typeof __TRANSLATIONMAFE[LANG] != 'undefined') {
|
||
PMUI.loadLanguage(__TRANSLATIONMAFE.en, 'en');
|
||
PMUI.loadLanguage(__TRANSLATIONMAFE[LANG], LANG);
|
||
|
||
PMUI.setDefaultLanguage('en');
|
||
PMUI.setCurrentLanguage(LANG);
|
||
}
|
||
}
|
||
|
||
PMDesigner.resizeFrame = function () {
|
||
if (parent.document.documentElement === document.documentElement) {
|
||
jQuery(".content").css("height", parseInt(jQuery(window).height()));
|
||
} else {
|
||
jQuery(".content").css("height", document.body.clientHeight);
|
||
|
||
}
|
||
};
|
||
resizingFrame = PMDesigner.resizeFrame;
|
||
PMDesigner.applyCanvasOptions = function () {
|
||
list = new PMUI.control.DropDownListControl({
|
||
options: [],
|
||
style: {
|
||
cssClasses: [
|
||
"mafe-dropdown-zoom"
|
||
]
|
||
},
|
||
width: 150,
|
||
onChange: function (newValue, previous) {
|
||
var canvas = PMDesigner.project.diagrams.find('id', newValue);
|
||
PMUI.getActiveCanvas().getHTML().style.display = 'none';
|
||
PMUI.setActiveCanvas(canvas);
|
||
canvas.getHTML().style.display = 'inline';
|
||
}
|
||
});
|
||
//enable to support multidiagram
|
||
//jQuery(jQuery(".navBar li")[6]).append(list.getHTML());
|
||
list.defineEvents();
|
||
PMDesigner.canvasList = list;
|
||
};
|
||
//Zoom
|
||
PMDesigner.ApplyOptionsZoom = function () {
|
||
list = new PMUI.control.DropDownListControl({
|
||
id: '_idListZoom',
|
||
options: [
|
||
{
|
||
label: "50%",
|
||
value: 1
|
||
},
|
||
{
|
||
label: "75%",
|
||
value: 2
|
||
},
|
||
{
|
||
label: "100%",
|
||
value: 3,
|
||
selected: true
|
||
},
|
||
{
|
||
label: "125%",
|
||
value: 4
|
||
},
|
||
{
|
||
label: "150%",
|
||
value: 5
|
||
}
|
||
],
|
||
style: {
|
||
cssClasses: [
|
||
"mafe-dropdown-zoom"
|
||
]
|
||
},
|
||
onChange: function (newValue, previous) {
|
||
var i;
|
||
newValue = parseInt(newValue, 10);
|
||
PMUI.getActiveCanvas().applyZoom(newValue);
|
||
}
|
||
});
|
||
|
||
//jQuery(jQuery(".navBar li")[4]).append(list.getHTML());
|
||
jQuery(jQuery(".mafe-zoom-options")).append(list.getHTML());
|
||
|
||
list.defineEvents();
|
||
};
|
||
/**
|
||
* hides all requiered TinyControls
|
||
*/
|
||
PMDesigner.hideAllTinyEditorControls = function () {
|
||
var control,
|
||
i,
|
||
max,
|
||
j,
|
||
mapMax,
|
||
editor,
|
||
controlMap = [
|
||
'tinyeditor_fontselect',
|
||
'tinyeditor_fontsizeselect',
|
||
'tinyeditor_bullist',
|
||
'tinyeditor_numlist',
|
||
'tinyeditor_forecolor',
|
||
'tinyeditor_backcolor'
|
||
];
|
||
for (i = 0, max = tinymce.editors.length; i < max; i += 1) {
|
||
editor = tinymce.editors[i];
|
||
jQuery.each(editor.controlManager.controls, function (index, val) {
|
||
if (val && jQuery.isFunction(val.hideMenu)) {
|
||
val.hideMenu();
|
||
}
|
||
});
|
||
}
|
||
|
||
};
|
||
|
||
|
||
jQuery(document).ready(function ($) {
|
||
var setSaveButtonDisabled,
|
||
s,
|
||
sidebarCanvas,
|
||
project,
|
||
d,
|
||
downloadLink,
|
||
handlerExportNormal,
|
||
handlerExportGranular,
|
||
handler,
|
||
validatosr,
|
||
help,
|
||
option,
|
||
menu,
|
||
elem,
|
||
validatorLabel = "Validator".translate();
|
||
/***************************************************
|
||
* Defines the Process
|
||
***************************************************/
|
||
if (typeof prj_uid === "undefined") {
|
||
prj_uid = '';
|
||
}
|
||
if (typeof prj_readonly === "undefined") {
|
||
prj_readonly = '';
|
||
}
|
||
if (typeof credentials === "undefined") {
|
||
credentials = '';
|
||
} else {
|
||
credentials = RCBase64.decode(credentials);
|
||
credentials = (credentials == '') ? "" : JSON.parse(credentials);
|
||
}
|
||
|
||
if (prj_readonly !== 'true') {
|
||
$("#idContent").find(".content_controls").show();
|
||
$(".bpmn_shapes").show();
|
||
$('.bpmn_shapes_legend').hide();
|
||
$("#idNavBar").show().css('height', '33px');
|
||
}
|
||
|
||
PMDesigner.createHTML();
|
||
setSaveButtonDisabled = function (that) {
|
||
if (that.isDirty()) {
|
||
if (document.getElementsByClassName("mafe-save-process").length > 0) {
|
||
document.getElementsByClassName("mafe-save-process")[0].removeAttribute("style");
|
||
document.getElementsByClassName("mafe-save-process")[0].childNodes[0].style.color = "#FFF";
|
||
|
||
var mafebuttonMenu = document.getElementsByClassName("mafe-button-menu")[0];
|
||
mafebuttonMenu.style.backgroundColor = "#0C9778";
|
||
mafebuttonMenu.firstChild.src = "/lib/img/caret-down-w.png";
|
||
}
|
||
} else {
|
||
if (document.getElementsByClassName("mafe-save-process").length > 0) {
|
||
document.getElementsByClassName("mafe-save-process")[0].style.backgroundColor = "#e8e8e8";
|
||
document.getElementsByClassName("mafe-save-process")[0].style.color = "#000";
|
||
document.getElementsByClassName("mafe-save-process")[0].childNodes[0].style.color = "#000";
|
||
document.getElementsByClassName("mafe-save-process")[0].childNodes[0].text = "Save".translate();
|
||
|
||
var mafebuttonMenu = document.getElementsByClassName("mafe-button-menu")[0];
|
||
mafebuttonMenu.style.backgroundColor = "#e8e8e8";
|
||
mafebuttonMenu.firstChild.src = "/lib/img/caret-down.png";
|
||
}
|
||
}
|
||
};
|
||
sidebarCanvas = [];
|
||
for (s = 0; s < PMDesigner.sidebar.length; s += 1) {
|
||
sidebarCanvas = sidebarCanvas.concat(PMDesigner.sidebar[s].getSelectors());
|
||
jQuery(".bpmn_shapes").append(PMDesigner.sidebar[s].getHTML());
|
||
}
|
||
//Adding Sidebar to DOM
|
||
firstAbsuluteX = jQuery("#div-layout-canvas").offset().left;
|
||
|
||
project = new PMProject({
|
||
id: prj_uid,
|
||
name: 'Untitled Process',
|
||
readOnly: prj_readonly === "true",
|
||
keys: {
|
||
access_token: credentials.access_token,
|
||
expires_in: credentials.expires_in,
|
||
token_type: credentials.token_type,
|
||
scope: credentials.scope,
|
||
refresh_token: credentials.refresh_token,
|
||
client_id: credentials.client_id,
|
||
client_secret: credentials.client_secret
|
||
},
|
||
listeners: {
|
||
create: function (self, element) {
|
||
var sh, i,
|
||
contDivergent = 0,
|
||
contConvergent = 0;
|
||
//Updating the background color for connections
|
||
jQuery(".pmui-intersection > div > div").css("background-color", "black");
|
||
|
||
if (element.type == "Connection") {
|
||
///////////****************Changing the gatDirection*******************//////////////////
|
||
if (element.relatedObject.srcPort.parent.gat_type === "PARALLEL" ||
|
||
element.relatedObject.srcPort.parent.gat_type === "INCLUSIVE" ||
|
||
element.relatedObject.destPort.parent.gat_type === "PARALLEL" ||
|
||
element.relatedObject.destPort.parent.gat_type === "INCLUSIVE") {
|
||
if (element.relatedObject.srcPort.parent.gat_type !== undefined) {
|
||
sh = element.relatedObject.srcPort.parent;
|
||
} else {
|
||
sh = element.relatedObject.destPort.parent;
|
||
}
|
||
|
||
if (sh.gat_direction === "DIVERGING") {
|
||
for (i = 0; i < sh.ports.asArray().length; i += 1) {
|
||
if (sh.ports.asArray()[i].connection.flo_element_origin_type === "bpmnActivity") {
|
||
contDivergent += 1;
|
||
}
|
||
if (contDivergent > 1) {
|
||
sh.gat_direction = "CONVERGING";
|
||
i = sh.ports.asArray().length;
|
||
}
|
||
}
|
||
}
|
||
if (sh.gat_direction === "CONVERGING") {
|
||
for (i = 0; i < sh.ports.asArray().length; i += 1) {
|
||
if (sh.ports.asArray()[i].connection.flo_element_origin_type === "bpmnGateway") {
|
||
contConvergent += 1;
|
||
}
|
||
if (contConvergent > 1) {
|
||
sh.gat_direction = "DIVERGING";
|
||
i = sh.ports.asArray().length;
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
setSaveButtonDisabled(self);
|
||
},
|
||
update: function (self) {
|
||
//Updating the background color for connections
|
||
jQuery(".pmui-intersection > div > div").css("background-color", "black");
|
||
setSaveButtonDisabled(self);
|
||
},
|
||
remove: function (self) {
|
||
setSaveButtonDisabled(self);
|
||
},
|
||
success: function (self, xhr, response) {
|
||
var message;
|
||
self.dirty = false;
|
||
setSaveButtonDisabled(self);
|
||
self.dirtyElements[0] = {
|
||
laneset: {},
|
||
lanes: {},
|
||
activities: {},
|
||
events: {},
|
||
gateways: {},
|
||
flows: {},
|
||
artifacts: {},
|
||
lines: {},
|
||
data: {},
|
||
participants: {},
|
||
startMessageEvent: {},
|
||
startTimerEvent: {}
|
||
};
|
||
self.updateIdentifiers(response);
|
||
//if (PMDesigner.currentMsgFlash) {
|
||
PMDesigner.msgFlash('The process was saved successfully.'.translate(), document.body, 'success', 3000, 5);
|
||
PMDesigner.RoutingRuleSetOrder();
|
||
//}
|
||
|
||
},
|
||
failure: function (self, xhr, response) {
|
||
var message;
|
||
if (response.error.code === 401) {
|
||
/*message = new PMUI.ui.FlashMessage({
|
||
message: "It was not possible to establish a connection with the server".translate(),
|
||
duration: 5000,
|
||
appendTo: document.body,
|
||
severity: 'info'
|
||
});
|
||
message.show();*/
|
||
//self.remoteProxy.setUrl("/"+WORKSPACE+"/oauth2/token");
|
||
//self.setRefreshToken();
|
||
//self.remoteProxy.setUrl("/api/1.0/"+WORKSPACE+"/project/"+prj_uid);
|
||
//self.save();
|
||
} else {
|
||
PMDesigner.msgFlash('Error saving the process.'.translate(), document.body, 'error', 3000, 5);
|
||
self.updateIdentifiers(response);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
PMDesigner.project = project;
|
||
//create a new restApi
|
||
PMDesigner.restApi = RestApi.createRestApi({
|
||
serverUrl: '/rest/v10',
|
||
keys: PMDesigner.project.keys
|
||
});
|
||
systemRest = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [{
|
||
url: 'system/enabled-features',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var result = response.pop();
|
||
ENABLED_FEATURES = result.response;
|
||
navbarExportUpdate();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
ENABLED_FEATURES = [];
|
||
}
|
||
}).setBaseEndPoint('').executeRestClient();
|
||
PMDesigner.connectValidator = new ConnectValidator();
|
||
for (d = 0; d < PMDesigner.sidebar.length; d += 1) {
|
||
PMDesigner.sidebar[d].activate();
|
||
PMDesigner.sidebar[d].enableActions();
|
||
}
|
||
|
||
$('.bpmn_shapes_legend').hide();
|
||
project.remoteProxy.setUrl(HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + prj_uid);
|
||
project.load();
|
||
|
||
/*===========================================
|
||
= ProcessMaker module =
|
||
===========================================*/
|
||
|
||
//Renders content controls
|
||
PMDesigner.contentControl.show();
|
||
new PMAction({
|
||
selector: ".mafe-menu-eventmessages-create",
|
||
label: {
|
||
selector: ".mafe-menu-eventmessages-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.eventMessages.create();
|
||
}
|
||
});
|
||
|
||
/*----- End of ProcessMaker module ------*/
|
||
|
||
/*========================================
|
||
= Designer buttons =
|
||
========================================*/
|
||
|
||
//Renders navBar Panel
|
||
PMDesigner.navbarPanel.show();
|
||
// create Zoom options
|
||
PMDesigner.ApplyOptionsZoom();
|
||
//the action to generate a .bpmn file with the export option.
|
||
downloadLink = $('.mafe-button-export-bpmn-process');
|
||
downloadLink.click(function (e) {
|
||
PMDesigner.moddle.toXML(PMDesigner.businessObject, function (err, xmlStrUpdated) {
|
||
|
||
setEncoded(downloadLink, PMDesigner.project.projectName + '.bpmn', xmlStrUpdated);
|
||
|
||
// xmlStrUpdated contains new id and the added process
|
||
});
|
||
|
||
});
|
||
option = $("<div class='mafe-button-menu-option'>" + "Save as".translate() + "</div>");
|
||
/**
|
||
* Add data tables
|
||
*/
|
||
$('body').append('<div class="bpmn_validator"><div class="validator_header"></div><div class="validator_body"></div></div>')
|
||
$('.validator_header').append('<h2> ' + validatorLabel + ' </h2>');
|
||
$('.validator_header').append('<a class="validator-close" href="#"><span class="mafe-validator-close" title=""></span></a>');
|
||
$('.validator_body').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="validator-table" width="100%"></table>');
|
||
PMDesigner.validTable = $('#validator-table').DataTable({
|
||
paging: false,
|
||
scrollY: 100,
|
||
searching: false,
|
||
"info": false,
|
||
scrollCollapse: true,
|
||
"columns": [
|
||
{
|
||
name: 'numrow',
|
||
"title": "#",
|
||
width: '5%',
|
||
render: function (data, type, row, conf) {
|
||
return conf.row + 1;
|
||
}
|
||
},
|
||
{
|
||
name: 'id',
|
||
className: 'never'
|
||
},
|
||
{
|
||
"title": "Type".translate(),
|
||
width: '10%',
|
||
name: 'severity',
|
||
render: function (data, type, row, conf) {
|
||
var clasMap = {
|
||
Error: 'mafe-icon-error',
|
||
Warning: 'mafe-icon-warning'
|
||
};
|
||
if (type === 'display') {
|
||
return ' <i class="' + clasMap[data] + '"></i> ' + data;
|
||
}
|
||
return data;
|
||
}
|
||
},
|
||
{name: 'element', "title": "Element".translate(), width: '15%'},
|
||
{name: 'element-type', "title": "Element Type".translate(), width: '15%'},
|
||
{name: 'description', "title": "Description".translate(), width: '45%'}
|
||
]
|
||
});
|
||
jQuery('#validator-table tbody').on('click', 'tr', function () {
|
||
var id = PMDesigner.validTable.row(this).data()[1],
|
||
shape;
|
||
if ($(this).hasClass('selected')) {
|
||
$(this).removeClass('selected');
|
||
PMUI.getActiveCanvas().hideAllCoronas().emptyCurrentSelection();
|
||
}
|
||
else {
|
||
PMDesigner.validTable.$('tr.selected').removeClass('selected');
|
||
$(this).addClass('selected');
|
||
PMUI.getActiveCanvas().hideAllCoronas().emptyCurrentSelection();
|
||
shape = PMUI.getActiveCanvas().items.find('id', id);
|
||
PMUI.getActiveCanvas().addToSelection(shape.relatedObject);
|
||
}
|
||
});
|
||
PMDesigner.validTable.columns([1]).visible(false);
|
||
/********finish datatables********/
|
||
new PMAction({
|
||
selector: ".mafe-validator-close",
|
||
tooltip: "Close Validator".translate(),
|
||
execute: true,
|
||
handler: function () {
|
||
$('.bpmn_validator').css('visibility', 'hidden');
|
||
$('.mafe-toolbar-validation').css('background-color', 'rgb(233, 233, 233)');
|
||
PMDesigner.validator = false;
|
||
}
|
||
});
|
||
|
||
menu = $("<div class='mafe-button-menu-container'></div>");
|
||
menu.append(option);
|
||
option.on("mouseout", function (e) {
|
||
menu.hide();
|
||
});
|
||
option.on("click", function (e) {
|
||
var saveas;
|
||
menu.hide();
|
||
PMDesigner.project.remoteProxy.setUrl(HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id);
|
||
PMDesigner.project.save(true);
|
||
saveas = new SaveAs();
|
||
saveas.open();
|
||
});
|
||
$(".mafe-button-menu").on("click", function (e) {
|
||
e.stopPropagation();
|
||
$(".mafe-save-process").append(menu);
|
||
menu.show();
|
||
});
|
||
|
||
/*----- End of Designer buttons ------*/
|
||
/*=================================================
|
||
= Full screen functionality =
|
||
=================================================*/
|
||
if (parent.document.documentElement === document.documentElement) {
|
||
elem = document.documentElement;
|
||
} else {
|
||
elem = parent.document.getElementById("frameMain");
|
||
}
|
||
PMDesigner.fullScreen = new FullScreen({
|
||
element: elem,
|
||
onReadyScreen: function () {
|
||
setTimeout(function () {
|
||
PMDesigner.resizeFrame();
|
||
}, 500);
|
||
},
|
||
onCancelScreen: function () {
|
||
setTimeout(function () {
|
||
PMDesigner.resizeFrame();
|
||
}, 500);
|
||
}
|
||
});
|
||
/*----- End of Full screen functionality ------*/
|
||
|
||
/*=============================================
|
||
= Shapes and Controls Box =
|
||
=============================================*/
|
||
PMDesigner.cookie = {
|
||
name: "PMDesigner",
|
||
object: {},
|
||
get: function (cname) {
|
||
var name = cname + "=", i, c,
|
||
ca = document.cookie.split(';');
|
||
for (i = 0; i < ca.length; i += 1) {
|
||
c = ca[i].trim();
|
||
if (c.indexOf(name) == 0)
|
||
return c.substring(name.length, c.length);
|
||
}
|
||
return "";
|
||
},
|
||
remove: function (cname) {
|
||
jQuery.each(PMDesigner.cookie.object, function (index, val) {
|
||
if (index === cname) {
|
||
delete PMDesigner.cookie.object[cname];
|
||
PMDesigner.cookie.refresh();
|
||
}
|
||
});
|
||
},
|
||
refresh: function () {
|
||
document.cookie = PMDesigner.cookie.name + "=" + JSON.stringify(PMDesigner.cookie.object);
|
||
}
|
||
};
|
||
PMDesigner.localStorage = {
|
||
prefix: "PM_" + WORKSPACE + "_" + prj_uid,
|
||
object: {},
|
||
remove: function (cname) {
|
||
var obj;
|
||
obj = localStorage.getItem(PMDesigner.localStorage.prefix);
|
||
obj = (obj === null) ? {} : JSON.parse(obj);
|
||
if (obj[cname]) {
|
||
delete obj[cname];
|
||
localStorage.setItem(PMDesigner.localStorage.prefix, JSON.stringify(obj));
|
||
}
|
||
}
|
||
};
|
||
if (Modernizr.localstorage) {
|
||
var localDesigner = localStorage.getItem(PMDesigner.localStorage.prefix);
|
||
localDesigner = (localDesigner === null) ? {} : JSON.parse(localDesigner);
|
||
PMDesigner.panelsPosition = localDesigner;
|
||
} else {
|
||
if (PMDesigner.cookie.get(PMDesigner.cookie.name) !== "") {
|
||
var positions, pLeft, pTop, html;
|
||
positions = JSON.parse(PMDesigner.cookie.get(PMDesigner.cookie.name));
|
||
PMDesigner.cookie.object = positions;
|
||
PMDesigner.panelsPosition = positions;
|
||
}
|
||
}
|
||
if (typeof PMDesigner.panelsPosition === "object") {
|
||
var pst = PMDesigner.panelsPosition;
|
||
if (pst.navbar) {
|
||
pLeft = pst.navbar.x;
|
||
pTop = pst.navbar.y;
|
||
html = document.getElementsByClassName("navBar")[0];
|
||
}
|
||
if (pst.bpmn) {
|
||
pLeft = 0;
|
||
pTop = 0;
|
||
html = document.getElementsByClassName("bpmn_shapes")[0];
|
||
html.style.left = pLeft + "px";
|
||
html.style.top = pTop + "px";
|
||
}
|
||
if (pst.controls) {
|
||
pLeft = pst.controls.x;
|
||
pTop = pst.controls.y;
|
||
html = document.getElementsByClassName("content_controls")[0];
|
||
html.style.left = pLeft + "px";
|
||
html.style.top = pTop + "px";
|
||
if (pTop > 503) {
|
||
$("#idContent").find(".content_controls").css({'top': '', 'left': ''});
|
||
}
|
||
}
|
||
}
|
||
jQuery(".bpmn_shapes").draggable({
|
||
handle: "div",
|
||
start: function () {
|
||
},
|
||
drag: function () {
|
||
},
|
||
stop: function (event) {
|
||
var pLeft, pTop, currentObj;
|
||
pLeft = parseInt(event.target.style.left);
|
||
pTop = parseInt(event.target.style.top);
|
||
bpmn = {
|
||
bpmn: {
|
||
x: pLeft,
|
||
y: pTop
|
||
}
|
||
};
|
||
if (Modernizr.localstorage) {
|
||
currentObj = localStorage.getItem(PMDesigner.localStorage.prefix);
|
||
currentObj = (currentObj === null) ? {} : JSON.parse(currentObj);
|
||
jQuery.extend(true, currentObj, bpmn);
|
||
localStorage.setItem(PMDesigner.localStorage.prefix, JSON.stringify(currentObj));
|
||
} else {
|
||
jQuery.extend(true, PMDesigner.cookie.object, bpmn);
|
||
document.cookie = PMDesigner.cookie.name + "=" + JSON.stringify(PMDesigner.cookie.object);
|
||
}
|
||
}
|
||
});
|
||
jQuery(".content_controls").draggable({
|
||
handle: "div",
|
||
start: function () {
|
||
},
|
||
drag: function () {
|
||
jQuery("html").css("overflow", "hidden");
|
||
},
|
||
stop: function (event) {
|
||
jQuery("html").css("overflow", "auto");
|
||
if (jQuery(this).position().top > $(window).height()) {
|
||
var x = $(window).height() - 30;
|
||
jQuery(this).css({'top': x + 'px'});
|
||
}
|
||
var pLeft, pTop, currentObj;
|
||
pLeft = parseInt(event.target.style.left);
|
||
pTop = parseInt(event.target.style.top);
|
||
if (pTop < 90)
|
||
pTop = 90;
|
||
event.target.style.setProperty("top", pTop.toString() + "px");
|
||
controls = {
|
||
controls: {
|
||
x: pLeft,
|
||
y: pTop
|
||
}
|
||
};
|
||
if (Modernizr.localstorage) {
|
||
currentObj = localStorage.getItem(PMDesigner.localStorage.prefix);
|
||
currentObj = (currentObj === null) ? {} : JSON.parse(currentObj);
|
||
jQuery.extend(true, currentObj, controls);
|
||
localStorage.setItem(PMDesigner.localStorage.prefix, JSON.stringify(currentObj));
|
||
} else {
|
||
jQuery.extend(true, PMDesigner.cookie.object, controls);
|
||
document.cookie = PMDesigner.cookie.name + "=" + JSON.stringify(PMDesigner.cookie.object);
|
||
}
|
||
}
|
||
});
|
||
/*----- End of Shapes and Controls Box ------*/
|
||
|
||
//Resize window
|
||
PMDesigner.resizeFrame();
|
||
|
||
/*==============================================
|
||
= Autosave functionality =
|
||
==============================================*/
|
||
PMDesigner.project.setSaveInterval(40000);
|
||
setInterval(function () {
|
||
if (PMDesigner.autoSave && PMDesigner.project.isDirty() && PMDesigner.project.readOnly === false) {
|
||
PMDesigner.project.remoteProxy.setUrl(HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + prj_uid);
|
||
PMDesigner.msgFlash('Saving Process'.translate(), document.body, 'success', 5000, 5);
|
||
PMDesigner.project.save(true);
|
||
}
|
||
}, PMDesigner.project.saveInterval);
|
||
/*----- End of Autosave functionality ------*/
|
||
|
||
//Reviewing functionalities
|
||
if (!PMDesigner.supportBrowser("fullscreen")) {
|
||
var li = document.getElementsByClassName("mafe-button-fullscreen");
|
||
if (li) {
|
||
li[0].parentElement.style.display = "none";
|
||
}
|
||
}
|
||
jQuery('.mafe-zoom-options').attr('title', 'Zoom'.translate()).tooltip({tooltipClass: "mafe-action-tooltip"});
|
||
jQuery('.mafe-toolbar-lasso').mouseover(function (e) {
|
||
$('.mafe-toolbar-lasso').css('cursor', 'pointer');
|
||
});
|
||
jQuery('.mafe-toolbar-validation').mouseover(function (e) {
|
||
$('.mafe-toolbar-validation').css('cursor', 'pointer');
|
||
});
|
||
jQuery('.mafe-toolbar-lasso').click(function (e) {
|
||
if (!PMUI.getActiveCanvas().lassoEnabled) {
|
||
$('.mafe-toolbar-lasso').css('background-color', 'rgb(207, 207, 207)');
|
||
PMUI.getActiveCanvas().lassoEnabled = true;
|
||
} else {
|
||
$('.mafe-toolbar-lasso').css('background-color', 'rgb(233, 233, 233)');
|
||
PMUI.getActiveCanvas().lassoEnabled = false;
|
||
}
|
||
});
|
||
|
||
PMDesigner.helper = new IntroHelper({
|
||
tooltipClass: 'general',
|
||
skipLabel: 'Quit'.translate(),
|
||
|
||
nextLabel: 'Next →'.translate(),
|
||
prevLabel: '← Back'.translate(),
|
||
doneLabel: 'Done'.translate(),
|
||
steps: [
|
||
{
|
||
intro: '<div class="screencast"/>'
|
||
},
|
||
{
|
||
element: '#idNavBar',
|
||
intro: 'The designer bar displays the process name and is used to control the process view (zoom, full screen view), the export, undo/redo and the save button.'.translate()
|
||
},
|
||
|
||
{
|
||
element: '.bpmn_shapes',
|
||
intro: 'Drag and drop the process elements that you want to include in the process design.'.translate() +
|
||
'<br /><img src="../../../lib/img/corona-task.png">' + ' Task: Add to include an action in your process.'.translate() +
|
||
'<br /><img src="../../../lib/img/corona-gateway-exclusive.png"> <img src="../../../lib/img/corona-gateway-parallel.png"> <img src="../../../lib/img/corona-gateway-inclusive.png">' + ' Gateway: Selects a path or divides the process into multiple paths and joins them together.'.translate() +
|
||
'<br /><img src="../../../lib/img/corona-start.png"> <img src="../../../lib/img/corona-start-message.png">' + ' Start Event: The process always begins with a start event.'.translate() +
|
||
'<br /><img src="../../../lib/img/corona-intermediate-receive-message.png"> <img src="../../../lib/img/corona-intermediate-send-message.png">' + ' Intermediate Event: Used to define an event that happens in the middle of the process.'.translate() +
|
||
'<br /><img src="../../../lib/img/corona-end.png"> <img src="../../../lib/img/corona-end-message.png">' + ' End Event: End the execution of the process.'.translate() +
|
||
'<br /><img src="../../../lib/img/corona-pool.png">' + ' Pool: Place each process in a separate pool.'.translate() +
|
||
'<br /><img src="../../../lib/img/corona-lane.png">' + ' Lane: Used to divide a process into different sections.'.translate()
|
||
},
|
||
{
|
||
element: '#div-layout-canvas',
|
||
intro: "In the design area you can drop the process elements and order or arrange them to design your process.".translate()
|
||
},
|
||
{
|
||
element: '.content_controls',
|
||
intro: '<p>' +
|
||
'The process objects are used to add execution features to the current process design.'.translate() +
|
||
'<br/>Variables: Define the process data.'.translate() +
|
||
'<br/>Dynaforms: Create dynamic forms.'.translate() +
|
||
'<br/>Triggers: Create scripts.'.translate() +
|
||
'<br/>Output documents: Generate documents with process data.'.translate() +
|
||
'<br/>DB connections: Connect to external databases.'.translate() +
|
||
'</p>',
|
||
position: 'left'
|
||
},
|
||
{
|
||
intro: '<div class="startcoronahelp"></div><div>' + 'Select an element in the designer to display the quick toolbar with the list of the most used options available for that element.'.translate() + '</div>'
|
||
}
|
||
],
|
||
onExit: function () {
|
||
var canvas = PMUI.getActiveCanvas();
|
||
if (canvas && canvas.getGridLine() && canvas.getHTML()) {
|
||
canvas.getHTML().classList.add("pmui-pmcanvas");
|
||
}
|
||
}
|
||
});
|
||
|
||
jQuery('.mafe-toolbar-validation').click(function (e) {
|
||
if (!PMDesigner.validator) {
|
||
$('.mafe-toolbar-validation').css('background-color', 'rgb(207, 207, 207)');
|
||
PMDesigner.validator = true;
|
||
} else {
|
||
$('.bpmn_validator').css('visibility', 'hidden');
|
||
$('.mafe-toolbar-validation').css('background-color', 'rgb(233, 233, 233)');
|
||
PMDesigner.validator = false;
|
||
}
|
||
});
|
||
if (inArray("jXsSi94bkRUcVZyRStNVExlTXhEclVadGRRcG9xbjNvTWVFQUF3cklKQVBiVT0=", ENABLED_FEATURES)) {
|
||
$("#idNavBar").find(".mafe-button-export-process").html(
|
||
$("#idNavBar").find(".mafe-button-export-process").text() + " ▼"
|
||
);
|
||
}
|
||
|
||
function inArray(needle, haystack) {
|
||
var i,
|
||
length = haystack.length;
|
||
for (i = 0; i < length; i += 1) {
|
||
if (haystack[i] == needle) return true;
|
||
}
|
||
return false;
|
||
}
|
||
});
|
||
|
||
window.onload = function () {
|
||
//Reset the scroll positions
|
||
window.scrollBy(-window.scrollX, -window.scrollY);
|
||
document.onkeydown = function (e) {
|
||
if (e.keyCode === 8 && e.target === document.body) {
|
||
e.stopPropagation();
|
||
return false;
|
||
}
|
||
};
|
||
};
|
||
/*==================================================
|
||
= Components from the Panels =
|
||
==================================================*/
|
||
|
||
PMDesigner.createHTML = function () {
|
||
var minShapes = document.createElement("span"),
|
||
minShapesLegend = document.createElement("span"),
|
||
refreshShapes = document.createElement("span"),
|
||
minControls = document.createElement("span"),
|
||
processObjects = document.createElement("span"),
|
||
refreshControls = document.createElement("span"),
|
||
refreshNavBar = document.createElement("span");
|
||
minShapes.id = "minShapes";
|
||
minShapesLegend.id = "minShapesLegend";
|
||
refreshShapes.id = "resetShapes";
|
||
minControls.id = "minControls";
|
||
refreshControls.id = "resetControls";
|
||
refreshNavBar.id = "resetNavBar";
|
||
minShapes.className = "mafe-shapes-toggle";
|
||
minShapesLegend.className = "mafe-shapes-toggle";
|
||
refreshShapes.className = "mafe-shapes-refresh";
|
||
minControls.className = "mafe-shapes-toggle";
|
||
processObjects.className = "mafe-process-object";
|
||
refreshControls.className = "mafe-shapes-refresh";
|
||
refreshNavBar.className = "mafe-shapes-refresh";
|
||
minShapes.title = "Minimize".translate();
|
||
minShapesLegend.title = "Minimize".translate();
|
||
refreshShapes.title = "reset".translate();
|
||
minControls.title = "Minimize".translate();
|
||
refreshControls.title = "Reset to original position".translate();
|
||
refreshNavBar.title = "reset".translate();
|
||
|
||
jQuery(minShapes).tooltip({tooltipClass: "mafe-action-tooltip"});
|
||
jQuery(minShapesLegend).tooltip({tooltipClass: "mafe-action-tooltip"});
|
||
jQuery(refreshShapes).tooltip({tooltipClass: "mafe-action-tooltip"});
|
||
jQuery(minControls).tooltip({tooltipClass: "mafe-action-tooltip"});
|
||
jQuery(refreshControls).tooltip({tooltipClass: "mafe-action-tooltip"});
|
||
jQuery(refreshNavBar).tooltip({tooltipClass: "mafe-action-tooltip"});
|
||
|
||
refreshControls.style.backgroundPosition = '0px 0px';
|
||
processObjects.textContent = "Process Objects".translate();
|
||
|
||
minShapes.onclick = function () {
|
||
var i,
|
||
items = jQuery(".bpmn_shapes > ul");
|
||
if (items.length > 0) {
|
||
for (i = 0; i < items.length; i += 1) {
|
||
if (jQuery(items[i]).css("display").toLowerCase() !== "none") {
|
||
jQuery(items[i]).css({
|
||
display: 'none'
|
||
});
|
||
} else {
|
||
jQuery(items[i]).css({
|
||
display: 'block'
|
||
});
|
||
}
|
||
|
||
}
|
||
}
|
||
};
|
||
minShapesLegend.onclick = function () {
|
||
var i,
|
||
items = jQuery(".bpmn_shapes_legend").children();
|
||
for (i = 1; i < items.length; i += 1) {
|
||
if (jQuery(items[i]).css("display").toLowerCase() !== "none") {
|
||
jQuery(items[i]).css({
|
||
display: 'none'
|
||
});
|
||
} else {
|
||
jQuery(items[i]).css({
|
||
display: 'block'
|
||
});
|
||
}
|
||
}
|
||
};
|
||
refreshShapes.onclick = function () {
|
||
jQuery(".bpmn_shapes").removeAttr('style');
|
||
if (Modernizr.localstorage) {
|
||
PMDesigner.localStorage.remove("bpmn");
|
||
} else {
|
||
PMDesigner.cookie.remove("bpmn");
|
||
}
|
||
};
|
||
minControls.onclick = function () {
|
||
var i,
|
||
title = '',
|
||
items = jQuery(".content_controls > ul");
|
||
|
||
if (items.length > 0) {
|
||
for (i = 0; i < items.length; i += 1) {
|
||
if (jQuery(items[i]).css("display").toLowerCase() !== "none") {
|
||
jQuery(items[i]).css({
|
||
display: 'none'
|
||
});
|
||
title = "Maximize";
|
||
$('#minControls').removeClass('mafe-shapes-toggle');
|
||
$('#minControls').addClass('mafe-shapes-plus');
|
||
} else {
|
||
jQuery(items[i]).css({
|
||
display: 'block'
|
||
});
|
||
title = "Minimize";
|
||
$('#minControls').removeClass('mafe-shapes-plus');
|
||
$('#minControls').addClass('mafe-shapes-toggle');
|
||
|
||
}
|
||
}
|
||
}
|
||
jQuery(minControls).tooltip({content: title.translate()});
|
||
};
|
||
refreshControls.onclick = function () {
|
||
jQuery(".content_controls").css({
|
||
left: "auto",
|
||
right: "20px",
|
||
top: "90px"
|
||
});
|
||
if (Modernizr.localstorage) {
|
||
PMDesigner.localStorage.remove("controls");
|
||
} else {
|
||
PMDesigner.cookie.remove("controls");
|
||
}
|
||
};
|
||
refreshNavBar.onclick = function () {
|
||
jQuery(".navBar").removeAttr('style');
|
||
if (Modernizr.localstorage) {
|
||
PMDesigner.localStorage.remove("navbar");
|
||
} else {
|
||
PMDesigner.cookie.remove("navbar");
|
||
}
|
||
};
|
||
|
||
|
||
jQuery(".bpmn_shapes>div").append(minShapes);
|
||
jQuery(".bpmn_shapes>div").append(refreshShapes);
|
||
jQuery(".content_controls>div").append(processObjects);
|
||
jQuery(".content_controls>div").append(minControls);
|
||
jQuery(".content_controls>div").append(refreshControls);
|
||
jQuery(".navBar>div").append(refreshNavBar);
|
||
jQuery(".bpmn_shapes_legend>div").append(minShapesLegend);
|
||
jQuery(".bpmn_shapes, .content_controls").on("contextmenu", function (e) {
|
||
e.preventDefault();
|
||
});
|
||
|
||
PMDesigner.applyCanvasOptions();
|
||
|
||
};
|
||
|
||
/*----- End of Components from the Panels ------*/
|
||
|
||
/*=====================================================
|
||
= Get information about browser =
|
||
=====================================================*/
|
||
PMDesigner.getBrowser = function () {
|
||
var match,
|
||
ua = navigator.userAgent.toLowerCase();
|
||
if (ua) {
|
||
match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
|
||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
|
||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
|
||
/(msie) ([\w.]+)/.exec(ua) ||
|
||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
|
||
[];
|
||
|
||
return {
|
||
browser: match[1] || "",
|
||
version: match[2] || "0"
|
||
};
|
||
}
|
||
};
|
||
/*----- End of Get information about browser ------*/
|
||
|
||
PMDesigner.supportBrowser = function (functionality) {
|
||
var browser, el, module;
|
||
functionality = functionality.toLowerCase();
|
||
switch (functionality) {
|
||
case "fullscreen":
|
||
browser = PMDesigner.getBrowser();
|
||
if ((browser.browser === "msie") && (parseInt(browser.version, 10) <= 10)) {
|
||
try {
|
||
module = new ActiveXObject("WScript.Shell");
|
||
} catch (e) {
|
||
module = false;
|
||
}
|
||
} else {
|
||
el = document.documentElement;
|
||
module = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen;
|
||
if (!module) {
|
||
module = false;
|
||
}
|
||
}
|
||
break;
|
||
case "":
|
||
break;
|
||
}
|
||
return module;
|
||
};
|
||
|
||
/*============================================================
|
||
= Leave the current page Functionality =
|
||
============================================================*/
|
||
window.onbeforeunload = function (e) {
|
||
var message;
|
||
if ((PMDesigner.project.isDirty()
|
||
&& !PMDesigner.project.readOnly)
|
||
|| PMDesigner.project.isSave) {
|
||
message = "There are unsaved changes, if you leave the editor some changes won't be saved.".translate();
|
||
e = e || window.event;
|
||
if (e) {
|
||
e.returnValue = message;
|
||
}
|
||
return message;
|
||
}
|
||
};
|
||
/*----- End of Leave the current page Functionality ------*/
|
||
|
||
/*=====================================================================
|
||
= Validating coordinates for create a new shape =
|
||
=====================================================================*/
|
||
PMUI.validCoordinatedToCreate = function (canvas, event, shape) {
|
||
var position, p, width, height, createElem = true, panels = [], message;
|
||
//navBar panel
|
||
position = jQuery(".navBar").offset();
|
||
width = jQuery(".navBar").width();
|
||
height = jQuery(".navBar").height();
|
||
element = {
|
||
x1: position.left,
|
||
y1: position.top,
|
||
x2: position.left + width,
|
||
y2: position.top + height
|
||
};
|
||
panels.push(element);
|
||
//BPMN panel
|
||
position = jQuery(".bpmn_shapes").offset();
|
||
width = jQuery(".bpmn_shapes").width();
|
||
height = jQuery(".bpmn_shapes").height();
|
||
element = {
|
||
x1: position.left,
|
||
y1: position.top,
|
||
x2: position.left + width,
|
||
y2: position.top + height
|
||
};
|
||
if (panels.length > 0) {
|
||
for (p = 0; p < panels.length; p += 1) {
|
||
if (((event.pageX >= panels[p].x1) && (event.pageX <= panels[p].x2))
|
||
&& ((event.pageY >= panels[p].y1) && (event.pageY <= panels[p].y2))) {
|
||
PMDesigner.msgFlash('Is not possible create the element in that area'.translate(), document.body, 'info', 3000, 5);
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
|
||
return true;
|
||
};
|
||
/*----- End of Validating coordinates for create a new shape ------*/
|
||
|
||
PMUI.pageCoordinatesToShapeCoordinates = function (shape, e, xCoord, yCoord, customShape) {
|
||
var coordinates,
|
||
x = (!xCoord) ? e.pageX : xCoord,
|
||
y = (!yCoord) ? e.pageY : yCoord,
|
||
orgX = (!xCoord) ? e.pageX : xCoord,
|
||
orgY = (!yCoord) ? e.pageY : yCoord,
|
||
canvas = shape.getCanvas();
|
||
x += canvas.getLeftScroll() - shape.getAbsoluteX() - canvas.getX();
|
||
y += canvas.getTopScroll() - shape.getAbsoluteY() - canvas.getY();
|
||
coordinates = new PMUI.util.Point(x, y);
|
||
return coordinates;
|
||
};
|
||
|
||
PMDesigner.msgFlash = function (text, container, severity, duration, zorder) {
|
||
var msg;
|
||
if (!PMDesigner.currentMsgFlash) {
|
||
msg = new PMUI.ui.FlashMessage({
|
||
id: '__msgFlashMessage',
|
||
severity: 'success'
|
||
});
|
||
} else {
|
||
msg = PMDesigner.currentMsgFlash;
|
||
}
|
||
if (msg.html)
|
||
jQuery(msg.html).remove();
|
||
msg.setMessage(text || "");
|
||
msg.setAppendTo(container || document.body);
|
||
msg.setSeverity(severity || "success");
|
||
msg.setDuration(duration || 3000);
|
||
msg.setZOrder(zorder || 200);
|
||
msg.show();
|
||
PMDesigner.currentMsgFlash = msg;
|
||
};
|
||
|
||
PMDesigner.msgWinError = function (text) {
|
||
var msgError;
|
||
if (!PMDesigner.currentWinError) {
|
||
msgError = new PMUI.ui.MessageWindow({
|
||
id: 'showMessageWindowFailure',
|
||
width: 490,
|
||
windowMessageType: 'error',
|
||
title: 'Error'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: 'Ok'.translate(),
|
||
handler: function () {
|
||
msgError.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
} else {
|
||
msgError = PMDesigner.currentWinError;
|
||
}
|
||
msgError.setMessage(text || 'Error'.translate());
|
||
msgError.showFooter();
|
||
msgError.open();
|
||
PMDesigner.currentWinError = msgError;
|
||
};
|
||
|
||
PMDesigner.msgWinWarning = function (text) {
|
||
var msgWarning;
|
||
if (!PMDesigner.currentWinWarning) {
|
||
msgWarning = new PMUI.ui.MessageWindow({
|
||
id: 'showMessageWindowWarning',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: 'Warning'.translate(),
|
||
footerItems: [{
|
||
text: 'Ok'.translate(),
|
||
buttonType: "success", handler: function () {
|
||
msgWarning.close();
|
||
}
|
||
}]
|
||
});
|
||
} else {
|
||
msgWarning = PMDesigner.currentWinWarning;
|
||
}
|
||
msgWarning.setMessage(text || 'Warning'.translate());
|
||
msgWarning.showFooter();
|
||
msgWarning.open();
|
||
PMDesigner.currentWinWarning = msgWarning;
|
||
};
|
||
|
||
PMDesigner.modeReadOnly = function () {
|
||
var restClient;
|
||
if (prj_readonly === 'true') {
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [{
|
||
url: 'cases/' + app_uid + '/tasks',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var viewTaskInformation = new ViewTaskInformation();
|
||
viewTaskInformation.setData(response[0].response);
|
||
viewTaskInformation.setShapes();
|
||
viewTaskInformation.showViewLegendsInformation();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.setBaseEndPoint('');
|
||
restClient.executeRestClient();
|
||
}
|
||
};
|
||
|
||
PMDesigner.reloadDataTable = function () {
|
||
$('.bpmn_validator').css('visibility', 'visible');
|
||
};
|
||
/**
|
||
* Disable the autosave feature
|
||
*/
|
||
PMDesigner.autoSaveValue = function (value) {
|
||
PMDesigner.autoSave = value;
|
||
};
|
||
/**
|
||
* Escape XML characters method.
|
||
* There are only five:
|
||
* " "
|
||
* ' '
|
||
* < <
|
||
* > >
|
||
* & &
|
||
*
|
||
* @param {string} label
|
||
* @returns {string}
|
||
*/
|
||
PMDesigner.escapeXMLCharacters = function (label) {
|
||
return label
|
||
.replace(/&/g, "&")
|
||
.replace(/"/g, """)
|
||
.replace(/'/g, "'")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
};
|
||
|
||
DataDictionary = function () {
|
||
};
|
||
DataDictionary.prototype.getColor = function (value) {
|
||
switch (value) {
|
||
case 'TASK_IN_PROGRESS':
|
||
return 'red';
|
||
case 'TASK_COMPLETED':
|
||
return 'green';
|
||
case 'TASK_PENDING_NOT_EXECUTED':
|
||
return 'silver';
|
||
case 'TASK_PARALLEL':
|
||
return 'orange';
|
||
default:
|
||
return 'white';
|
||
}
|
||
};
|
||
DataDictionary.prototype.getStatus = function (value) {
|
||
switch (value) {
|
||
case 'TASK_IN_PROGRESS':
|
||
return 'Task in Progress'.translate();
|
||
case 'TASK_COMPLETED':
|
||
return 'Completed Task'.translate();
|
||
case 'TASK_PENDING_NOT_EXECUTED':
|
||
return 'Pending Task / Not Executed'.translate();
|
||
case 'TASK_PARALLEL':
|
||
return 'Parallel Task'.translate();
|
||
default:
|
||
return value;
|
||
}
|
||
};
|
||
DataDictionary.prototype.getTasAssignType = function (value) {
|
||
switch (value) {
|
||
case 'BALANCED':
|
||
return 'Balanced'.translate();
|
||
case 'MANUAL':
|
||
return 'Manual'.translate();
|
||
case 'REPORT_TO':
|
||
return 'Report toO'.translate();
|
||
case 'EVALUATE':
|
||
return 'Evaluate'.translate();
|
||
case 'SELF_SERVICE':
|
||
return 'self Service'.translate();
|
||
case 'SELF_SERVICE_EVALUATE':
|
||
return 'Self Service Evaluate'.translate();
|
||
default:
|
||
return value;
|
||
}
|
||
};
|
||
DataDictionary.prototype.getTasType = function (value) {
|
||
switch (value) {
|
||
case 'NORMAL':
|
||
return 'Normal'.translate();
|
||
case 'SUBPROCESS':
|
||
return 'Sub Process'.translate();
|
||
default:
|
||
return value;
|
||
}
|
||
};
|
||
DataDictionary.prototype.getTasDerivation = function (value) {
|
||
switch (value) {
|
||
case 'NORMAL':
|
||
return 'Normal'.translate();
|
||
default:
|
||
return value;
|
||
}
|
||
};
|
||
|
||
ViewTaskInformation = function (settings) {
|
||
ViewTaskInformation.prototype.init.call(this, settings);
|
||
};
|
||
ViewTaskInformation.prototype.init = function () {
|
||
var that = this,
|
||
panelButton = new PMUI.core.Panel({
|
||
layout: 'hbox',
|
||
items: [
|
||
that.getButton('Information', function () {
|
||
that.showInformation();
|
||
}),
|
||
that.getButton('Delegations', function () {
|
||
that.showDelegations();
|
||
}),
|
||
that.getButton('Route', function () {
|
||
that.showRoute();
|
||
})
|
||
]
|
||
});
|
||
that.windowAbstract.showFooter();
|
||
that.windowAbstract.addItem(panelButton);
|
||
that.windowAbstract.addItem(that.panelvertical);
|
||
};
|
||
ViewTaskInformation.prototype.dataDictionary = new DataDictionary();
|
||
ViewTaskInformation.prototype.data = null;
|
||
ViewTaskInformation.prototype.shapeData = null;
|
||
ViewTaskInformation.prototype.panelvertical = new PMUI.core.Panel({layout: 'vbox', width: 400});
|
||
ViewTaskInformation.prototype.windowAbstract = new PMUI.ui.Window({id: 'windowAbstract', width: 500, height: 350});
|
||
ViewTaskInformation.prototype.setData = function (data) {
|
||
this.data = data;
|
||
};
|
||
ViewTaskInformation.prototype.setCursor = function (shape) {
|
||
shape.getHTML().onmouseover = function () {
|
||
this.style.cursor = 'pointer';
|
||
};
|
||
shape.getHTML().onmouseout = function () {
|
||
this.style.cursor = '';
|
||
};
|
||
};
|
||
ViewTaskInformation.prototype.setShapes = function () {
|
||
var that = this,
|
||
shape,
|
||
diagrams,
|
||
i,
|
||
j,
|
||
dt = that.data;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
diagrams = PMDesigner.project.diagrams.asArray();
|
||
for (j = 0; j < diagrams.length; j += 1) {
|
||
shape = diagrams[j].getCustomShapes().find('id', dt[i].tas_uid);
|
||
if (typeof shape != "undefined" && shape != null) {
|
||
shape.changeColor(that.dataDictionary.getColor(dt[i].status));
|
||
shape.data = dt[i];
|
||
shape.hasClick = function (event) {
|
||
that.setShapeData(this.data);
|
||
that.showInformation();
|
||
};
|
||
that.setCursor(shape);
|
||
}
|
||
}
|
||
}
|
||
};
|
||
ViewTaskInformation.prototype.setShapeData = function (data) {
|
||
this.shapeData = data;
|
||
};
|
||
ViewTaskInformation.prototype.addRowNewLine = function (label, value) {
|
||
var panelhorizontal = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
panelhorizontal.addItem(new PMUI.ui.TextLabel({text: ''}));
|
||
this.panelvertical.addItem(panelhorizontal);
|
||
return panelhorizontal;
|
||
};
|
||
ViewTaskInformation.prototype.addRow = function (label, value) {
|
||
var field1, field2, field3, panelhorizontal;
|
||
|
||
field1 = new PMUI.ui.TextLabel({text: label.translate(), proportion: 0.3});
|
||
field2 = new PMUI.ui.TextLabel({text: ':', proportion: 0.1});
|
||
field3 = new PMUI.ui.TextLabel({text: value ? value + '' : '', proportion: 0.6});
|
||
|
||
panelhorizontal = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
|
||
panelhorizontal.addItem(field1);
|
||
panelhorizontal.addItem(field2);
|
||
panelhorizontal.addItem(field3);
|
||
this.panelvertical.addItem(panelhorizontal);
|
||
return panelhorizontal;
|
||
};
|
||
ViewTaskInformation.prototype.clearRows = function () {
|
||
this.panelvertical.clearItems();
|
||
};
|
||
ViewTaskInformation.prototype.showInformation = function () {
|
||
var that = this;
|
||
that.clearRows();
|
||
that.addRow('Title'.translate(), that.shapeData.tas_title);
|
||
that.addRow('Description'.translate(), that.shapeData.tas_description);
|
||
that.addRow('Status'.translate(), that.dataDictionary.getStatus(that.shapeData.status));
|
||
that.addRow('Type'.translate(), that.dataDictionary.getTasType(that.shapeData.tas_type));
|
||
that.addRow('Assign type'.translate(), that.dataDictionary.getTasAssignType(that.shapeData.tas_assign_type));
|
||
that.addRow('Routing'.translate(), that.dataDictionary.getTasDerivation(that.shapeData.tas_derivation));
|
||
that.addRow('Start'.translate(), that.shapeData.tas_start);
|
||
that.addRowNewLine();
|
||
that.addRow('Last User Name'.translate(), that.shapeData.usr_username);
|
||
that.addRow('Last User'.translate(), that.shapeData.usr_firstname + ' ' + that.shapeData.usr_lastname);
|
||
|
||
that.windowAbstract.setTitle('Information'.translate() + ' ' + that.shapeData.tas_title);
|
||
that.windowAbstract.open();
|
||
that.windowAbstract.body.style.padding = '20px';
|
||
};
|
||
ViewTaskInformation.prototype.showDelegations = function () {
|
||
var that = this, i, dt;
|
||
that.clearRows();
|
||
dt = that.shapeData.delegations;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
that.addRow('User', dt[i].usr_username);
|
||
that.addRow('User Name', dt[i].usr_firstname + ' ' + dt[i].usr_lastname);
|
||
that.addRow('Duration', dt[i].del_duration);
|
||
that.addRow('Finish Date', dt[i].del_finish_date);
|
||
that.addRow('Index', dt[i].del_index);
|
||
that.addRow('Init Date', dt[i].del_init_date);
|
||
that.addRow('Task Due Date', dt[i].del_task_due_date);
|
||
that.addRowNewLine();
|
||
}
|
||
|
||
that.windowAbstract.setTitle('Delegations'.translate() + ' ' + that.shapeData.tas_title);
|
||
that.windowAbstract.open();
|
||
that.windowAbstract.body.style.padding = '20px';
|
||
};
|
||
ViewTaskInformation.prototype.showRoute = function () {
|
||
var that = this, i, dt;
|
||
that.clearRows();
|
||
that.addRow('Type', that.shapeData.route.type);
|
||
that.addRowNewLine();
|
||
dt = that.shapeData.route.to;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
that.addRow('Condition', dt[i].rou_condition);
|
||
that.addRow('Number', dt[i].rou_number);
|
||
that.addRowNewLine();
|
||
}
|
||
|
||
that.windowAbstract.setTitle('Route'.translate() + ' ' + that.shapeData.tas_title);
|
||
that.windowAbstract.open();
|
||
that.windowAbstract.body.style.padding = '20px';
|
||
};
|
||
ViewTaskInformation.prototype.getButton = function (text, fn) {
|
||
return new PMUI.ui.Button({
|
||
text: text.translate(),
|
||
width: 180,
|
||
height: 50,
|
||
style: {
|
||
cssProperties: {
|
||
marginRight: 10,
|
||
marginBottom: 10,
|
||
backgroundColor: '#474747',
|
||
borderRadius: 5,
|
||
padding: 5
|
||
},
|
||
cssClasses: ['mafeButton']
|
||
},
|
||
handler: fn
|
||
});
|
||
};
|
||
ViewTaskInformation.prototype.showViewLegendsInformation = function () {
|
||
var i, dt, legend, legendIcon, legendText;
|
||
$('.bpmn_shapes_legend').show();
|
||
|
||
i;
|
||
dt = [
|
||
['red', 'Task in Progress'.translate()],
|
||
['green', 'Completed Task'.translate()],
|
||
['silver', 'Pending Task / Not Executed'.translate()],
|
||
['orange', 'Parallel Task'.translate()]
|
||
];
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
legend = $("<div></div>");
|
||
legendIcon = $("<div></div>").addClass("mafe-activity-task-" + dt[i][0]).addClass("icon-legend");
|
||
legendText = $("<div>" + dt[i][1] + "</div>").addClass("text-legend");
|
||
legend.append(legendIcon).append(legendText);
|
||
jQuery(".bpmn_shapes_legend").append(legend);
|
||
}
|
||
|
||
jQuery(".bpmn_shapes_legend").draggable({
|
||
handle: "div",
|
||
start: function () {
|
||
},
|
||
drag: function (event, e, u) {
|
||
},
|
||
stop: function (event) {
|
||
|
||
}
|
||
});
|
||
};
|
||
|
||
(function () {
|
||
/**
|
||
* @class PMUI.menu.ContextMenu
|
||
* Handles the context menu of designer
|
||
* contains all the menus for elements
|
||
*
|
||
* @extend PMUI.util.Factory
|
||
* @constructor
|
||
* This method creates a new instance of this object
|
||
* @param {Object} [settings] Constructor settings
|
||
*/
|
||
"use strict";
|
||
var ContextMenu = function (settings) {
|
||
this.factory = null;
|
||
ContextMenu.prototype.init.call(this, settings);
|
||
};
|
||
|
||
ContextMenu.prototype.type = 'ContextMenu';
|
||
|
||
ContextMenu.prototype.family = 'ContextMenu';
|
||
|
||
/**
|
||
* Initializes the object.
|
||
* @param {Object} settings A JSON object with the config options.
|
||
* @private
|
||
*/
|
||
ContextMenu.prototype.init = function (settings) {
|
||
jQuery.extend(true, defaults, settings);
|
||
this.factory = new PMUI.util.Factory(defaults.factory);
|
||
};
|
||
|
||
/**
|
||
* Register a new context menu object into a product.
|
||
*
|
||
* Usage example:
|
||
* @example
|
||
* //Remember, this is an abstract class so it shouldn't be instantiate,
|
||
* //anyway we are instantiating it just for this example
|
||
* var additionalMenu = {
|
||
* id: "additionalMenu",
|
||
* text: "New Menu",
|
||
* onClick: function () {
|
||
* PMDesigner.msgWinWarning('This is a new Menu');
|
||
* }
|
||
* };
|
||
* // Assuming that you're using PMDesigner.contextMenuFactory as the default contextMenuFactory
|
||
* PMDesigner.contextMenuFactory.registerMenu("CANVAS", additionalMenu);
|
||
*
|
||
* @param {String} productName Name of the shape or product in factory.
|
||
* @param {Object} menu Object with menu values and actions.
|
||
* @private
|
||
*/
|
||
ContextMenu.prototype.registerMenu = function (productName, menu) {
|
||
if (typeof this.factory.products[productName] === 'undefined') {
|
||
console.log('Context Menu Warning: Cannot add Menu into: ' + productName + '. Please, review name.');
|
||
} else {
|
||
if (this.factory.products[productName].items instanceof Array) {
|
||
this.factory.products[productName].items.push(menu);
|
||
}
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Removes context menu object from product.
|
||
*
|
||
* Usage example:
|
||
* @example
|
||
* // Assuming that you're using PMDesigner.contextMenuFactory as the default contextMenuFactory
|
||
* // this example removes Canvas gridLines option
|
||
* PMDesigner.contextMenuFactory.removeMenu("CANVAS", "id", "menuGridLines");
|
||
*
|
||
* @param {String} product Name of the shape or product in factory.
|
||
* @param {String} id Key to look through product.
|
||
* @param {String} value Name of the elementValue.
|
||
* @private
|
||
*/
|
||
ContextMenu.prototype.removeMenu = function (product, id, value) {
|
||
if (typeof this.factory.products[product] !== 'undefined') {
|
||
this.factory.products[product].items = _.reject(this.factory.products[product].items, function (menuValue) {
|
||
return menuValue[id] === value;
|
||
});
|
||
} else {
|
||
console.log('Context Menu Warning: Cannot find ' + product + ' Menu. Please, review name.');
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Returns specific product.
|
||
* @param {String} type Name of product.
|
||
* @private
|
||
*/
|
||
ContextMenu.prototype.getProduct = function (type) {
|
||
return this.factory.products[type];
|
||
};
|
||
|
||
var menuMessages = {
|
||
'START': {
|
||
'TIMER': 'Please configure cron to create cases.'.translate(),
|
||
'CONDITIONAL': 'Please configure cron to create cases in base to a condition.'.translate(),
|
||
'SIGNALCATCH': 'Please configure cron to create cases in base to a signal.'.translate()
|
||
},
|
||
'INTERMEDIATE': {
|
||
'CATCH': {
|
||
'TIMER': 'Please configure cron to wait for time event.'.translate(),
|
||
'CONDITIONAL': 'Please configure cron to wait for time condition.'.translate(),
|
||
'SIGNALCATCH': 'Please configure script to wait for a signal.'.translate()
|
||
},
|
||
'THROW': {
|
||
'SIGNALTHROW': 'Please configure a script to send a signal.'.translate()
|
||
}
|
||
},
|
||
'END': {
|
||
'ERRORTHROW': 'Please configure script to end with error status.'.translate(),
|
||
'SIGNALTHROW': 'Please configure script to send a signal.'.translate(),
|
||
'TERMINATETHROW': 'Please configure script to terminate case.'.translate()
|
||
}
|
||
},
|
||
menu = {},
|
||
rootMenu,
|
||
elementActivite,
|
||
typeMenu = {
|
||
text: "Gateway Type".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
id: "gatewaytype",
|
||
items: [
|
||
{
|
||
id: "gatewayexclusive",
|
||
text: "Exclusive (XOR) Gateway".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeTypeTo('EXCLUSIVE');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "gatewayparallel",
|
||
text: "Parallel (AND) Gateway".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeTypeTo('PARALLEL');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "gatewayinclusive",
|
||
text: "Inclusive (OR) Gateway".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeTypeTo('INCLUSIVE');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
}
|
||
]
|
||
},
|
||
endMarker = {
|
||
text: "End Event Type".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
id: "result",
|
||
items: [
|
||
{
|
||
id: "endempty",
|
||
text: "Empty".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('EMPTY', 'Empty');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "endemail",
|
||
text: "Email Message".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('EMAIL', 'Email Message');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "endmessagethrow",
|
||
text: "Message".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('MESSAGETHROW', 'Message');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "enderrorthrow",
|
||
text: "Error".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('ERRORTHROW', 'Error');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "endsignalthrow",
|
||
text: "Signal".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('SIGNALTHROW', 'Signal');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "endterminatethrow",
|
||
text: "Terminate".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('TERMINATETHROW', 'Terminate');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
}
|
||
]
|
||
},
|
||
intermediateCatchMarker = {
|
||
text: "Intermediate Event Type".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
id: "trigger",
|
||
items: [
|
||
{
|
||
id: "intermediatemessagecatch",
|
||
text: "Receive Message".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('MESSAGECATCH', 'Receive Message');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "intermediatetimer",
|
||
text: "Timer".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('TIMER', 'Timer');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "intermediateconditional",
|
||
text: "Conditional".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('CONDITIONAL', 'Conditional');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "intermediatesignalcatch",
|
||
text: "Signal".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('SIGNALCATCH', 'Signal');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
}
|
||
]
|
||
},
|
||
boundaryCatchMarker = {
|
||
text: "Boundary Event Type".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
id: "eventType",
|
||
items: [
|
||
{
|
||
id: "messageCatch",
|
||
text: "Receive Message".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('MESSAGECATCH', 'Receive Message');
|
||
}
|
||
},
|
||
{
|
||
id: "boundaryTimer",
|
||
text: "Timer".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('TIMER', 'Timer');
|
||
}
|
||
},
|
||
{
|
||
id: "BoudaryConditional",
|
||
text: "Conditional".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('CONDITIONAL', 'Conditional');
|
||
}
|
||
},
|
||
{
|
||
id: "BoudarySignal",
|
||
text: "Signal".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('SIGNALCATCH', 'Signal');
|
||
}
|
||
},
|
||
{
|
||
id: "BoudaryError",
|
||
text: "Error".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('ERRORCATCH', 'Error');
|
||
}
|
||
}
|
||
]
|
||
},
|
||
intermediateThrowMarker = {
|
||
text: "Intermediate Event Type".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
id: "result",
|
||
items: [
|
||
{
|
||
id: "intermediateemail",
|
||
text: "Email Message".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('EMAIL', 'Email Message');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "intermediatemessagethrow",
|
||
text: "Send Message".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('MESSAGETHROW', 'Send Message');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "intermediatesignalthrow",
|
||
text: "Signal".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('SIGNALTHROW', 'Signal');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
}
|
||
]
|
||
},
|
||
startCatchMarker = {
|
||
text: "Start Event Type".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
id: "trigger",
|
||
items: [
|
||
{
|
||
id: "startempty",
|
||
text: "Empty".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('EMPTY', 'Empty');
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "startmessagecatch",
|
||
text: "Receive Message".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('MESSAGECATCH', 'Receive Message');
|
||
rootMenu = menuOption.getRootMenu();
|
||
rootMenu.getItems()[3].disable();
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "starttimer",
|
||
text: "Timer".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('TIMER', 'Timer');
|
||
rootMenu = menuOption.getRootMenu();
|
||
rootMenu.getItems()[3].disable();
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "startconditional",
|
||
text: "Conditional".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('CONDITIONAL', 'Conditional');
|
||
rootMenu = menuOption.getRootMenu();
|
||
rootMenu.getItems()[3].disable();
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
},
|
||
{
|
||
id: "startsignalcatch",
|
||
text: "Signal".translate(),
|
||
onClick: function (menuOption) {
|
||
var targetElement = menuOption
|
||
.getMenuTargetElement();
|
||
targetElement.changeMarkerTo('SIGNALCATCH', 'Signal');
|
||
rootMenu = menuOption.getRootMenu();
|
||
rootMenu.getItems()[3].disable();
|
||
PMDesigner.project.updateElement([]);
|
||
}
|
||
}
|
||
]
|
||
},
|
||
canvas = {
|
||
id: "menuCanvas",
|
||
width: 150,
|
||
items: [
|
||
{
|
||
id: "menuEditProcess",
|
||
text: "Edit Process".translate(),
|
||
onClick: function (menuOption) {
|
||
PMDesigner.propertiesProcess();
|
||
}
|
||
},
|
||
{
|
||
id: "menuGridLines",
|
||
text: "Enable Grid Lines".translate(),
|
||
onClick: function () {
|
||
var canvas = PMUI.getActiveCanvas();
|
||
if (canvas.toogleGridLine()) {
|
||
this.setText("Disable Grid Lines".translate());
|
||
} else {
|
||
this.setText("Enable Grid Lines".translate());
|
||
}
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var canvas = PMUI.getActiveCanvas();
|
||
if (canvas.currentConnection) {
|
||
canvas.currentConnection.hidePortsAndHandlers();
|
||
}
|
||
if (canvas.isGridLine) {
|
||
menu.items.find('id', 'menuGridLines').setText("Disable Grid Lines".translate());
|
||
}
|
||
|
||
}
|
||
},
|
||
task = {
|
||
id: "menuTask",
|
||
items: [
|
||
{
|
||
id: "taskType",
|
||
text: "Task Type".translate(),
|
||
items: [
|
||
{
|
||
id: "empty",
|
||
text: "Empty Task".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "sendtask",
|
||
text: "Send Task".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "receivetask",
|
||
text: "Receive Task".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "usertask",
|
||
text: "User Task".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "servicetask",
|
||
text: "Service Task".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "scripttask",
|
||
text: "Script Task".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "manualtask",
|
||
text: "Manual Task".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "businessrule",
|
||
text: "Business Rule Task".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerType(menuOption);
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: "loopType",
|
||
text: "Marker Type".translate(),
|
||
items: [
|
||
{
|
||
id: "empty",
|
||
text: "None".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerLoopType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "loop",
|
||
text: "Loop".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerLoopType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "parallel",
|
||
text: "Parallel".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerLoopType(menuOption);
|
||
}
|
||
},
|
||
{
|
||
id: "sequential",
|
||
text: "Sequential".translate(),
|
||
onClick: function (menuOption) {
|
||
handlerMarkerLoopType(menuOption);
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: "menuTaskSteps",
|
||
text: "Steps".translate(),
|
||
icon: "mafe-menu-task-steps",
|
||
onClick: function (menuOption) {
|
||
var splitedID = menuOption.getMenuTargetElement().getID().split("-");
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.act_name = menuOption.getMenuTargetElement().act_name;
|
||
PMDesigner.act_uid = menuOption.getMenuTargetElement().act_uid;
|
||
PMDesigner.stepsTask = new stepsTask();
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.act_name = menuOption.getMenuTargetElement().act_name;
|
||
PMDesigner.act_uid = menuOption.getMenuTargetElement().act_uid;
|
||
PMDesigner.stepsTask = new stepsTask();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "menuTaskAssignedRules",
|
||
text: "Assignment Rules".translate(),
|
||
icon: "mafe-menu-users-action",
|
||
onClick: function (menuOption) {
|
||
var splitedID = menuOption.getMenuTargetElement().getID().split("-");
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.assigmentRules(menuOption.getMenuTargetElement());
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.assigmentRules(menuOption.getMenuTargetElement());
|
||
}
|
||
}
|
||
},
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.parent.hide();
|
||
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: "Delete".translate(),
|
||
icon: "mafe-menu-delete-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.parent.hide();
|
||
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
},
|
||
{
|
||
id: "menuTaskProperties",
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
onClick: function (menuOption) {
|
||
var splitedID = menuOption.getMenuTargetElement().getID().split("-");
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.activityProperties(menuOption.getMenuTargetElement());
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.activityProperties(menuOption.getMenuTargetElement());
|
||
}
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var targetElement = menu.getTargetElement();
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(targetElement);
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection
|
||
.hidePortsAndHandlers();
|
||
}
|
||
|
||
if (targetElement.act_task_type == "SCRIPTTASK") {
|
||
menu.getItems()[1].setVisible(false);
|
||
menu.getItems()[2].setVisible(false);
|
||
menu.getItems()[3].setVisible(false);
|
||
} else {
|
||
menu.getItems()[1].setVisible(true);
|
||
menu.getItems()[2].setVisible(true);
|
||
menu.getItems()[3].setVisible(true);
|
||
}
|
||
|
||
if (targetElement.act_task_type == "MANUALTASK" || targetElement.act_task_type == "USERTASK" || targetElement.act_task_type == "EMPTY") {
|
||
menu.getItems()[1].getItems()[2].setVisible(true);
|
||
} else {
|
||
menu.getItems()[1].getItems()[2].setVisible(false);
|
||
}
|
||
}
|
||
},
|
||
subProcess = {
|
||
id: "menuSubProcess",
|
||
items: [
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.parent.hide();
|
||
|
||
menuOption.getMenuTargetElement().label.canvas
|
||
.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: "Delete Routing Rule".translate(),
|
||
icon: "mafe-menu-delete-rules-action",
|
||
onClick: function (menuOption) {
|
||
var splitedID = menuOption.getMenuTargetElement().getID().split("-");
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.RoutingRuleDeleteAllFlow(menuOption.getMenuTargetElement());
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.RoutingRuleDeleteAllFlow(menuOption.getMenuTargetElement());
|
||
}
|
||
}
|
||
},
|
||
{
|
||
text: "Delete".translate(),
|
||
icon: "mafe-menu-delete-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.parent.hide();
|
||
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
},
|
||
{
|
||
id: "menuSubProperties",
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
onClick: function (menuOption) {
|
||
var splitedID = menuOption.getMenuTargetElement().getID().split("-");
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.propertiesSubProcess(menuOption
|
||
.getMenuTargetElement(menuOption.getMenuTargetElement()));
|
||
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.propertiesSubProcess(menuOption
|
||
.getMenuTargetElement(menuOption.getMenuTargetElement()));
|
||
|
||
}
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var targetElement = menu.getTargetElement();
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(targetElement);
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection
|
||
.hidePortsAndHandlers();
|
||
}
|
||
}
|
||
},
|
||
start = {
|
||
id: 'menuStart',
|
||
items: [
|
||
startCatchMarker,
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: "Delete".translate(),
|
||
icon: "mafe-menu-delete-action",
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
},
|
||
{
|
||
id: "menuStartWebEntry",
|
||
text: "Web Entry".translate(),
|
||
icon: "mafe-menu-start-message-view",
|
||
//visible: false,
|
||
onClick: function (menuOption) {
|
||
var splitedID = menuOption.getMenuTargetElement().getID().split("-"), webEntry;
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
var webEntry;
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
webEntry = new WebEntry(menuOption.getMenuTargetElement());
|
||
webEntry.render();
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
webEntry = new WebEntry(menuOption.getMenuTargetElement());
|
||
webEntry.render();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "menuStartProperties",
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-start-message-view",
|
||
onClick: function (menuOption) {
|
||
var a = menuOption.getMenuTargetElement(), message_window,
|
||
splitedID = menuOption.getMenuTargetElement().getID().split("-");
|
||
switch (a.getEventMarker()) {
|
||
case "TIMER":
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.timerEventProperties(menuOption.getMenuTargetElement());
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.timerEventProperties(menuOption.getMenuTargetElement());
|
||
}
|
||
break;
|
||
default :
|
||
var messageEventDefinition,
|
||
eventCurrent = menuOption.getMenuTargetElement();
|
||
if (menuMessages[eventCurrent.evn_type][eventCurrent.evn_marker] !== undefined) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
width: 490,
|
||
title: 'Information'.translate(),
|
||
windowMessageType: 'info',
|
||
bodyHeight: 'auto',
|
||
message: menuMessages[eventCurrent.evn_type][eventCurrent.evn_marker],
|
||
footerItems: [
|
||
{
|
||
text: 'Ok'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
messageEventDefinition = new MessageEventDefinition(eventCurrent);
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
messageEventDefinition = new MessageEventDefinition(eventCurrent);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var targetElement = menu.getTargetElement(),
|
||
shape,
|
||
propertyMap = ['MESSAGECATCH', 'TIMER'];
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(targetElement);
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
if (targetElement.evn_marker == 'TIMER') {
|
||
}
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
if (targetElement.evn_marker === 'MESSAGECATCH') {
|
||
var dt = menu.getItems();
|
||
for (var i = 0; i < dt.length; i += 1) {
|
||
if (dt[i].id === 'idReceiveMessage') {
|
||
dt[i].setVisible(true);
|
||
}
|
||
}
|
||
}
|
||
//disabled weebentry for others pmEvent no support
|
||
if (targetElement.getPorts().asArray().length) {
|
||
shape = targetElement.getPorts().getFirst().getConnection().getDestPort().parent;
|
||
if (shape && (shape instanceof PMActivity) && targetElement.evn_marker === "EMPTY") {
|
||
menu.items.find('id', 'menuStartWebEntry').enable();
|
||
} else if (shape && (shape instanceof PMEvent) && shape.evn_marker === "EMAIL"
|
||
&& targetElement.evn_marker === "EMPTY") {
|
||
menu.items.find('id', 'menuStartWebEntry').enable();
|
||
} else {
|
||
menu.items.find('id', 'menuStartWebEntry').disable();
|
||
}
|
||
} else {
|
||
menu.items.find('id', 'menuStartWebEntry').disable();
|
||
}
|
||
|
||
//Enable && Disabled - Properties
|
||
if (targetElement.evn_type === "START" && propertyMap.indexOf(targetElement.evn_marker) >= 0) {
|
||
menu.items.find('id', 'menuStartProperties').enable();
|
||
} else {
|
||
menu.items.find('id', 'menuStartProperties').disable();
|
||
}
|
||
},
|
||
onHide: function (menu) {
|
||
var dt = menu.getItems(), i;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
if (dt[i].id === 'idReceiveMessage') {
|
||
dt[i].setVisible(false);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
end = {
|
||
id: 'menuEnd',
|
||
items: [
|
||
endMarker,
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: "Delete".translate(),
|
||
icon: "mafe-menu-delete-action",
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
},
|
||
{
|
||
id: "menuEndProperties",
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-delete-action",
|
||
onClick: function (menuOption) {
|
||
var a = menuOption.getMenuTargetElement(), message_window,
|
||
splitedID = menuOption.getMenuTargetElement().getID().split("-");
|
||
switch (a.getEventMarker()) {
|
||
case "EMAIL":
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.emailEventProperties(menuOption.getMenuTargetElement());
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.emailEventProperties(menuOption.getMenuTargetElement());
|
||
}
|
||
break;
|
||
default :
|
||
var messageEventDefinition,
|
||
eventCurrent = menuOption.getMenuTargetElement();
|
||
if (menuMessages[eventCurrent.evn_type][eventCurrent.evn_marker] !== undefined) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
width: 490,
|
||
title: 'Information'.translate(),
|
||
windowMessageType: 'info',
|
||
bodyHeight: 'auto',
|
||
message: menuMessages[eventCurrent.evn_type][eventCurrent.evn_marker],
|
||
footerItems: [
|
||
{
|
||
text: 'Ok'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
messageEventDefinition = new MessageEventDefinition(eventCurrent);
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
messageEventDefinition = new MessageEventDefinition(eventCurrent);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var propertyMap = ['MESSAGETHROW', 'EMAIL'],
|
||
targetElement = menu.getTargetElement();
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(targetElement);
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
|
||
|
||
//Enable && Disabled - Properties
|
||
if (targetElement.evn_type === "END" && propertyMap.indexOf(targetElement.evn_marker) >= 0) {
|
||
menu.items.find('id', 'menuEndProperties').enable();
|
||
} else {
|
||
menu.items.find('id', 'menuEndProperties').disable();
|
||
}
|
||
}
|
||
},
|
||
selection = {
|
||
id: 'menuSelection',
|
||
items: [
|
||
{
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-properties-action"
|
||
},
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: "Delete".translate(),
|
||
icon: "mafe-menu-delete-action"
|
||
}
|
||
]
|
||
},
|
||
evaluation = {
|
||
id: 'menuEvaluation',
|
||
items: [
|
||
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: "Delete".translate(),
|
||
icon: "mafe-menu-delete-action",
|
||
onClick: function (menuOption) {
|
||
alert("Working on this feature...");
|
||
}
|
||
},
|
||
{
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
onClick: function (menuOption) {
|
||
alert("Working on this feature...");
|
||
}
|
||
}
|
||
]
|
||
},
|
||
parallel = {
|
||
id: 'menuParallel',
|
||
items: [
|
||
typeMenu,
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
}
|
||
],
|
||
listeners: {},
|
||
onShow: function (menu) {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
}
|
||
},
|
||
exclusive = {
|
||
id: 'menuExclusive',
|
||
items: [
|
||
typeMenu,
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: "Delete".translate(),
|
||
icon: "mafe-menu-delete-action",
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
},
|
||
{
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
onClick: function (menuOption) {
|
||
PMDesigner.RoutingRule(menuOption.getMenuTargetElement());
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var element = menu.getTargetElement(), propertyOption;
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(element);
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
if (menu.items) {
|
||
if (element && element.gat_direction) {
|
||
propertyOption = menu.items.find("text", "Properties");
|
||
if (propertyOption) {
|
||
if (element.gat_direction === 'CONVERGING') {
|
||
propertyOption.disable();
|
||
} else {
|
||
propertyOption.enable();
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
},
|
||
inclusive = {
|
||
id: 'menuInclusive',
|
||
items: [
|
||
typeMenu,
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
},
|
||
{
|
||
text: 'Properties'.translate(),
|
||
icon: 'mafe-menu-properties-action',
|
||
onClick: function (menuOption) {
|
||
PMDesigner.RoutingRule(menuOption.getMenuTargetElement());
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var element = menu.getTargetElement(), propertyOption;
|
||
PMUI.getActiveCanvas().addToSelection(element);
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
|
||
if (menu.items) {
|
||
if (element && element.gat_direction) {
|
||
propertyOption = menu.items.find("text", "Properties");
|
||
if (propertyOption) {
|
||
if (element.gat_direction === 'CONVERGING') {
|
||
propertyOption.disable();
|
||
} else {
|
||
propertyOption.enable();
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
complex = {
|
||
id: 'menuComplex',
|
||
items: [
|
||
typeMenu,
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
},
|
||
{
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-properties-action",
|
||
onClick: function (menuOption) {
|
||
PMDesigner.complexRoutingRule(menuOption.getMenuTargetElement());
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
}
|
||
},
|
||
group = {
|
||
id: 'menuLine',
|
||
items: [
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
}
|
||
},
|
||
dataObject = {
|
||
id: 'menuDataObject',
|
||
items: [
|
||
{
|
||
id: "dataType",
|
||
text: "Data Type".translate(),
|
||
items: [
|
||
{
|
||
id: "dataobject",
|
||
text: "Data Empty".translate(),
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().switchDataType('DATAOBJECT');
|
||
}
|
||
},
|
||
{
|
||
id: "datainput",
|
||
text: "Data Input".translate(),
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().switchDataType('DATAINPUT');
|
||
}
|
||
},
|
||
{
|
||
id: "dataoutput",
|
||
text: "Data Output".translate(),
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().switchDataType('DATAOUTPUT');
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
}
|
||
},
|
||
dataStore = {
|
||
id: 'menuDataObject',
|
||
items: [
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
}
|
||
},
|
||
textAnnotation = {
|
||
id: 'menuDataObject',
|
||
items: [
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
}
|
||
},
|
||
intermediate = {
|
||
id: 'intermediate',
|
||
items: [
|
||
intermediateCatchMarker,
|
||
intermediateThrowMarker,
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
},
|
||
{
|
||
id: "intermediateProperties",
|
||
text: "Properties".translate(),
|
||
icon: "mafe-menu-delete-action",
|
||
onClick: function (menuOption) {
|
||
var a = menuOption.getMenuTargetElement(), message_window,
|
||
splitedID = menuOption.getMenuTargetElement().getID().split("-");
|
||
switch (a.getEventMarker()) {
|
||
case "EMAIL":
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.emailEventProperties(menuOption.getMenuTargetElement());
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.emailEventProperties(menuOption.getMenuTargetElement());
|
||
}
|
||
break;
|
||
case "TIMER":
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
PMDesigner.timerEventProperties(menuOption.getMenuTargetElement());
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
PMDesigner.timerEventProperties(menuOption.getMenuTargetElement());
|
||
}
|
||
break;
|
||
default :
|
||
var messageEventDefinition,
|
||
eventCurrent = menuOption.getMenuTargetElement();
|
||
if (menuMessages[eventCurrent.evn_type][eventCurrent.evn_behavior][eventCurrent.evn_marker] !== undefined) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
width: 490,
|
||
title: 'Information'.translate(),
|
||
windowMessageType: 'info',
|
||
bodyHeight: 'auto',
|
||
message: menuMessages[eventCurrent.evn_type][eventCurrent.evn_behavior][eventCurrent.evn_marker],
|
||
footerItems: [
|
||
{
|
||
text: 'Ok'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
menuOption.parent.hide();
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
//open property form
|
||
messageEventDefinition = new MessageEventDefinition(eventCurrent);
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
messageEventDefinition = new MessageEventDefinition(eventCurrent);
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var targetElement = menu.getTargetElement(),
|
||
propertyEnabled = ['MESSAGECATCH', 'MESSAGETHROW', 'EMAIL', 'TIMER'];
|
||
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
|
||
if (targetElement.evn_behavior === 'CATCH') {
|
||
targetElement.menu.getItems()[0].setVisible(true);
|
||
targetElement.menu.getItems()[1].setVisible(false);
|
||
} else {
|
||
targetElement.menu.getItems()[0].setVisible(false);
|
||
targetElement.menu.getItems()[1].setVisible(true);
|
||
}
|
||
|
||
//Enable && Disabled - Properties
|
||
if (propertyEnabled.indexOf(targetElement.evn_marker) >= 0) {
|
||
|
||
menu.items.find('id', 'intermediateProperties').enable();
|
||
} else {
|
||
menu.items.find('id', 'intermediateProperties').disable();
|
||
}
|
||
}
|
||
},
|
||
boundary = {
|
||
id: 'menuDataObject',
|
||
items: [
|
||
boundaryCatchMarker,
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
var targetElement = menu.getTargetElement();
|
||
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
|
||
}
|
||
},
|
||
participant = {
|
||
id: 'menuDataObject',
|
||
items: [
|
||
{
|
||
text: "Edit Label".translate(),
|
||
icon: "mafe-menu-edit-label-action",
|
||
onClick: function (menuOption) {
|
||
menuOption.getMenuTargetElement().label.canvas.hideAllFocusLabels();
|
||
menuOption.getMenuTargetElement().label.getFocus();
|
||
}
|
||
},
|
||
{
|
||
text: 'Delete'.translate(),
|
||
icon: 'mafe-menu-delete-action',
|
||
onClick: function (menuOption) {
|
||
PMUI.getActiveCanvas().removeElements();
|
||
}
|
||
}
|
||
],
|
||
onShow: function (menu) {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().addToSelection(menu.getTargetElement());
|
||
if (PMUI.getActiveCanvas().currentConnection) {
|
||
PMUI.getActiveCanvas().currentConnection.hidePortsAndHandlers();
|
||
}
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().hideAllFocusLabels();
|
||
}
|
||
};
|
||
var defaults = {
|
||
factory: {
|
||
products: {
|
||
'CANVAS': canvas,
|
||
'TASK': task,
|
||
'SUB_PROCESS': subProcess,
|
||
'START': start,
|
||
'END': end,
|
||
'SELECTION': selection,
|
||
'EVALUATION': evaluation,
|
||
'PARALLEL': parallel,
|
||
'EXCLUSIVE': exclusive,
|
||
'EVENTBASED': exclusive,
|
||
'EXCLUSIVEEVENTBASED': exclusive,
|
||
'PARALLELEVENTBASED': exclusive,
|
||
'INCLUSIVE': inclusive,
|
||
'COMPLEX': complex,
|
||
'VERTICAL_LINE': group,
|
||
'HORIZONTAL_LINE': group,
|
||
'GROUP': group,
|
||
'LANE': participant,
|
||
'DATAOBJECT': dataObject,
|
||
'DATASTORE': dataStore,
|
||
'TEXT_ANNOTATION': textAnnotation,
|
||
'V_LABEL': textAnnotation,
|
||
'H_LABEL': textAnnotation,
|
||
'INTERMEDIATE': intermediate,
|
||
'BOUNDARY': boundary,
|
||
'PARTICIPANT': participant,
|
||
'POOL': participant
|
||
},
|
||
|
||
defaultProduct: 'START'
|
||
}
|
||
};
|
||
|
||
PMDesigner.contextMenuFactory = new ContextMenu(defaults.factory);
|
||
PMDesigner.getMenuFactory = function (type) {
|
||
if (prj_readonly === 'true') {
|
||
return {};
|
||
}
|
||
return PMDesigner.contextMenuFactory.getProduct(type);
|
||
};
|
||
/**
|
||
* Change task type marker
|
||
* @param menuOption
|
||
*/
|
||
function handlerMarkerType(menuOption) {
|
||
var result = true,
|
||
tempType = menuOption.getMenuTargetElement().getTaskType();
|
||
menuOption.parent.hide();
|
||
|
||
menuOption.getMenuTargetElement().switchTaskType(menuOption.id.toUpperCase());
|
||
|
||
//validate if act loop type is parallel
|
||
if (menuOption.getMenuTargetElement().act_loop_type === "PARALLEL") {
|
||
handlerMarkerLoopType(menuOption, tempType)
|
||
}
|
||
|
||
//to enable save button
|
||
PMDesigner.project.updateElement([]);
|
||
|
||
}
|
||
|
||
/**
|
||
* Change marker loop type
|
||
* @param menuOption
|
||
* @param type
|
||
* @returns {boolean}
|
||
*/
|
||
function handlerMarkerLoopType(menuOption, type) {
|
||
var message_window,
|
||
loopType = menuOption.id.toUpperCase(),
|
||
taskType = menuOption.getMenuTargetElement().act_task_type;
|
||
if (typeof type !== 'undefined' && type !== null) {
|
||
taskType = type;
|
||
}
|
||
|
||
if (menuOption.getMenuTargetElement().act_loop_type === "PARALLEL") {
|
||
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "handlerMarkerType",
|
||
width: 490,
|
||
title: 'Parallel Marker Type'.translate(),
|
||
windowMessageType: 'warning',
|
||
bodyHeight: 'auto',
|
||
message: "The configuring of multiple instances will be lost".translate(),
|
||
footerItems: [
|
||
{
|
||
text: 'Cancel'.translate(),
|
||
handler: function () {
|
||
menuOption.getMenuTargetElement().switchLoopType('PARALLEL');
|
||
menuOption.getMenuTargetElement().switchTaskType(taskType);
|
||
message_window.close();
|
||
return false;
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: 'Continue'.translate(),
|
||
handler: function () {
|
||
try {
|
||
if (loopType == "loop" || loopType == "sequential") {
|
||
menuOption.getMenuTargetElement().switchLoopType(loopType.toUpperCase());
|
||
} else {
|
||
menuOption.getMenuTargetElement().switchLoopType('EMPTY');
|
||
}
|
||
PMDesigner.project.updateElement([]);
|
||
} catch (e) {
|
||
console.error("loop marker error", e.message);
|
||
}
|
||
message_window.close();
|
||
return true;
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
menuOption.parent.hide();
|
||
menuOption.getMenuTargetElement().switchLoopType(loopType.toUpperCase());
|
||
PMDesigner.project.updateElement([]);
|
||
return true;
|
||
}
|
||
}
|
||
|
||
}());
|
||
|
||
(function () {
|
||
PMDesigner.shapeFactory = function (type, options) {
|
||
var customshape = null,
|
||
menuShape,
|
||
defaultOptions = null,
|
||
canvasName,
|
||
name,
|
||
id,
|
||
classEvent = "start",
|
||
pmCanvas = this.canvas,
|
||
corona = PMDesigner.defaultCrown,
|
||
wildcard;
|
||
|
||
canvasName = new IncrementNameCanvas(pmCanvas);
|
||
name = canvasName.get(type);
|
||
|
||
if (typeof options === 'undefined') {
|
||
options = {};
|
||
if (type === 'START_MESSAGE') {
|
||
type = 'START';
|
||
classEvent = "message";
|
||
options.evn_marker = 'MESSAGECATCH';
|
||
}
|
||
if (type === 'START_TIMER') {
|
||
type = 'START';
|
||
classEvent = "timer";
|
||
options.evn_marker = 'TIMER';
|
||
}
|
||
|
||
if (type === 'END_MESSAGE') {
|
||
type = 'END';
|
||
classEvent = "message";
|
||
options.evn_marker = 'MESSAGETHROW';
|
||
}
|
||
if (type === 'END_EMAIL') {
|
||
type = 'END';
|
||
classEvent = "email";
|
||
options.evn_marker = 'EMAIL';
|
||
options.evn_behavior = 'THROW';
|
||
}
|
||
if (type === 'INTERMEDIATE_SENDMESSAGE') {
|
||
type = 'INTERMEDIATE';
|
||
classEvent = "sendmessage";
|
||
options.evn_marker = 'MESSAGETHROW';
|
||
options.evn_behavior = 'THROW';
|
||
}
|
||
if (type === 'INTERMEDIATE_RECEIVEMESSAGE') {
|
||
type = 'INTERMEDIATE';
|
||
classEvent = "receivemessage";
|
||
options.evn_marker = 'MESSAGECATCH';
|
||
options.evn_behavior = 'CATCH';
|
||
}
|
||
if (type === 'INTERMEDIATE_EMAIL') {
|
||
type = 'INTERMEDIATE';
|
||
classEvent = "email";
|
||
options.evn_marker = 'EMAIL';
|
||
options.evn_behavior = 'THROW';
|
||
}
|
||
if (type === 'INTERMEDIATE_TIMER') {
|
||
type = 'INTERMEDIATE';
|
||
classEvent = "timer";
|
||
options.evn_marker = 'TIMER';
|
||
}
|
||
if (type === 'BOUNDARY_EVENT') {
|
||
type = 'BOUNDARY';
|
||
classEvent = "receivemessage";
|
||
options.evn_marker = 'EMPTY';
|
||
options.evn_behavior = 'CATCH';
|
||
}
|
||
|
||
switch (type) {
|
||
case 'COMPLEX':
|
||
case 'PARALLEL':
|
||
case 'EXCLUSIVE':
|
||
case 'EVENTBASED':
|
||
case 'EXCLUSIVEEVENTBASED':
|
||
case 'PARALLELEVENTBASED':
|
||
case 'INCLUSIVE':
|
||
options.gat_type = type;
|
||
break;
|
||
}
|
||
}
|
||
if (type === 'DATAOBJECT') {
|
||
type = 'DATAOBJECT';
|
||
options.dat_object_type = 'dataobject';
|
||
}
|
||
if (type === 'DATAINPUT') {
|
||
type = 'DATAOBJECT';
|
||
options.dat_object_type = 'datainput';
|
||
}
|
||
if (type === 'DATAOUTPUT') {
|
||
type = 'DATAOBJECT';
|
||
options.dat_object_type = 'dataoutput';
|
||
}
|
||
|
||
wildcard = [
|
||
{
|
||
name: 'wildcard'.translate(),
|
||
className: 'mafe-wildcard',
|
||
onClick: null,
|
||
column: 2
|
||
}
|
||
];
|
||
|
||
switch (type) {
|
||
case 'TASK':
|
||
defaultOptions = {
|
||
canvas: pmCanvas,
|
||
width: 150,
|
||
height: 75,
|
||
act_type: 'TASK',
|
||
act_name: name,
|
||
act_task_type: 'EMPTY',
|
||
act_loop_type: 'EMPTY',
|
||
minHeight: 30,
|
||
minWidth: 150,
|
||
maxHeight: 50,
|
||
maxWidth: 170,
|
||
container: "activity",
|
||
labels: [
|
||
{
|
||
message: name,
|
||
width: 0,
|
||
height: 0,
|
||
position: {
|
||
location: 'center',
|
||
diffX: 0,
|
||
diffY: 0
|
||
},
|
||
attachEvents: false
|
||
}
|
||
],
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-activity-task'
|
||
]
|
||
}
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'activityResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 8,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmactivitydrop",
|
||
selectors: [
|
||
"#BOUNDARY_EVENT",
|
||
".mafe-event-boundary",
|
||
".dragConnectHandler"
|
||
]
|
||
},
|
||
markers: [
|
||
{
|
||
markerType: 'USERTASK',
|
||
x: 10,
|
||
y: 10,
|
||
position: 0,
|
||
markerZoomClasses: []
|
||
},
|
||
{
|
||
markerType: 'EMPTY',
|
||
x: 10,
|
||
y: 10,
|
||
position: 4,
|
||
markerZoomClasses: []
|
||
}
|
||
],
|
||
validatorMarker: {
|
||
width: 12,
|
||
height: 12,
|
||
position: 2,
|
||
errors: {
|
||
style: {
|
||
markerZoomClassesError: [
|
||
"mafe-style-error-marker-7",
|
||
"mafe-style-error-marker-10",
|
||
"mafe-style-error-marker-14",
|
||
"mafe-style-error-marker-17",
|
||
"mafe-style-error-marker-21"
|
||
],
|
||
markerZoomClassesWarning: [
|
||
"mafe-style-warning-marker-7",
|
||
"mafe-style-warning-marker-10",
|
||
"mafe-style-warning-marker-14",
|
||
"mafe-style-warning-marker-17",
|
||
"mafe-style-warning-marker-21"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
corona: corona,
|
||
focusLabel: true
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
defaultOptions.markers[0]
|
||
.markerZoomClasses = PMDesigner.updateMarkerLayerClasses(defaultOptions);
|
||
defaultOptions.markers[1]
|
||
.markerZoomClasses = PMDesigner.updateLoopLayerClasses(defaultOptions);
|
||
customshape = new PMActivity(defaultOptions);
|
||
break;
|
||
case 'SUB_PROCESS':
|
||
defaultOptions = {
|
||
canvas: pmCanvas,
|
||
width: 150,
|
||
height: 75,
|
||
act_type: 'SUB_PROCESS',
|
||
act_loop_type: 'EMPTY',
|
||
act_name: name,
|
||
act_task_type: 'COLLAPSED',
|
||
minHeight: 30,
|
||
minWidth: 150,
|
||
maxHeight: 50,
|
||
maxWidth: 170,
|
||
container: "activity",
|
||
labels: [
|
||
{
|
||
message: name,
|
||
position: {
|
||
location: 'center',
|
||
diffX: 0,
|
||
diffY: 0
|
||
},
|
||
attachEvents: false
|
||
}
|
||
],
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-activity-subprocess'
|
||
]
|
||
}
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'activityResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 8,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmactivitydrop",
|
||
selectors: [
|
||
"#BOUNDARY_EVENT",
|
||
".mafe-event-boundary",
|
||
".dragConnectHandler"
|
||
]
|
||
},
|
||
markers: [
|
||
{
|
||
markerType: 'COLLAPSED',
|
||
x: 10,
|
||
y: 10,
|
||
position: 4,
|
||
markerZoomClasses: [
|
||
"mafe-collapsed-marker-10",
|
||
"mafe-collapsed-marker-15",
|
||
"mafe-collapsed-marker-21",
|
||
"mafe-collapsed-marker-26",
|
||
"mafe-collapsed-marker-31"
|
||
]
|
||
}
|
||
],
|
||
validatorMarker: {
|
||
width: 12,
|
||
height: 12,
|
||
position: 2,
|
||
errors: {
|
||
style: {
|
||
markerZoomClassesError: [
|
||
"mafe-style-error-marker-7",
|
||
"mafe-style-error-marker-10",
|
||
"mafe-style-error-marker-14",
|
||
"mafe-style-error-marker-17",
|
||
"mafe-style-error-marker-21"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
corona: corona,
|
||
focusLabel: true
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
defaultOptions.markers[0]
|
||
.markerZoomClasses = PMDesigner.updateMarkerLayerClasses(defaultOptions);
|
||
customshape = new PMActivity(defaultOptions);
|
||
break;
|
||
case 'START':
|
||
defaultOptions = {
|
||
canvas: pmCanvas,
|
||
width: 33,
|
||
height: 33,
|
||
evn_type: 'START',
|
||
evn_name: '',
|
||
evn_marker: 'EMPTY',
|
||
evn_behavior: 'catch',
|
||
evn_message: 'LEAD',
|
||
labels: [
|
||
{
|
||
message: '',
|
||
visible: true,
|
||
width: 100,
|
||
position: {
|
||
location: 'bottom',
|
||
diffX: 0,
|
||
diffY: 13
|
||
}
|
||
}
|
||
],
|
||
style: {
|
||
cssClasses: ['mafe-event-start']
|
||
},
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: []
|
||
},
|
||
zoomSprites: [
|
||
'mafe-event-start-empty-16',
|
||
'mafe-event-start-empty-24',
|
||
'mafe-event-start-empty-33',
|
||
'mafe-event-start-empty-41',
|
||
'mafe-event-start-empty-49'
|
||
]
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'NoResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 4,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
validatorMarker: {
|
||
width: 12,
|
||
height: 12,
|
||
position: 2,
|
||
errors: {
|
||
style: {
|
||
markerZoomClassesError: [
|
||
"mafe-style-error-marker-7",
|
||
"mafe-style-error-marker-10",
|
||
"mafe-style-error-marker-14",
|
||
"mafe-style-error-marker-17",
|
||
"mafe-style-error-marker-21"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
corona: corona
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
defaultOptions.layers[0]
|
||
.zoomSprites = PMDesigner.updateLayerClasses(defaultOptions);
|
||
customshape = new PMEvent(defaultOptions);
|
||
break;
|
||
case 'INTERMEDIATE':
|
||
defaultOptions = {
|
||
canvas: pmCanvas,
|
||
width: 33,
|
||
height: 33,
|
||
evn_type: 'INTERMEDIATE',
|
||
evn_name: '',
|
||
evn_marker: 'EMPTY',
|
||
evn_behavior: 'CATCH',
|
||
labels: [
|
||
{
|
||
message: '',
|
||
visible: true,
|
||
position: {
|
||
location: 'bottom',
|
||
diffX: 0,
|
||
diffY: 13
|
||
}
|
||
}
|
||
],
|
||
style: {
|
||
cssClasses: ['mafe-event-intermediate']
|
||
},
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: []
|
||
},
|
||
zoomSprites: [
|
||
'mafe-event-intermediate-16',
|
||
'mafe-event-intermediate-24',
|
||
'mafe-event-intermediate-33',
|
||
'mafe-event-intermediate-41',
|
||
'mafe-event-intermediate-49'
|
||
]
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'NoResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 4,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
validatorMarker: {
|
||
width: 12,
|
||
height: 12,
|
||
position: 2,
|
||
errors: {
|
||
style: {
|
||
markerZoomClassesError: [
|
||
"mafe-style-error-marker-7",
|
||
"mafe-style-error-marker-10",
|
||
"mafe-style-error-marker-14",
|
||
"mafe-style-error-marker-17",
|
||
"mafe-style-error-marker-21"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
corona: corona
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
defaultOptions.layers[0]
|
||
.zoomSprites = PMDesigner.updateLayerClasses(defaultOptions);
|
||
customshape = new PMEvent(defaultOptions);
|
||
break;
|
||
case 'BOUNDARY':
|
||
defaultOptions = {
|
||
canvas: pmCanvas,
|
||
width: 33,
|
||
height: 33,
|
||
evn_type: 'BOUNDARY',
|
||
evn_name: '',
|
||
evn_marker: 'EMPTY',
|
||
evn_behavior: 'CATCH',
|
||
labels: [
|
||
{
|
||
message: '',
|
||
visible: true,
|
||
position: {
|
||
location: 'bottom',
|
||
diffX: 0,
|
||
diffY: 0
|
||
}
|
||
}
|
||
],
|
||
style: {
|
||
cssClasses: ['mafe-event-boundary']
|
||
},
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: []
|
||
},
|
||
zoomSprites: [
|
||
'mafe-event-intermediate-16',
|
||
'mafe-event-intermediate-24',
|
||
'mafe-event-intermediate-33',
|
||
'mafe-event-intermediate-41',
|
||
'mafe-event-intermediate-49'
|
||
]
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'NoResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 4,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
drag: 'nodrag'
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
defaultOptions.layers[0]
|
||
.zoomSprites = PMDesigner.updateLayerClasses(defaultOptions);
|
||
customshape = new PMEvent(defaultOptions);
|
||
break;
|
||
|
||
case 'END':
|
||
defaultOptions = {
|
||
canvas: pmCanvas,
|
||
width: 33,
|
||
height: 33,
|
||
evn_type: 'END',
|
||
evn_name: '',
|
||
evn_marker: 'EMPTY',
|
||
evn_behavior: 'throw',
|
||
labels: [
|
||
{
|
||
message: '',
|
||
visible: true,
|
||
position: {
|
||
location: 'bottom',
|
||
diffX: 0,
|
||
diffY: 13
|
||
}
|
||
}
|
||
],
|
||
style: {
|
||
cssClasses: ['mafe-event-end']
|
||
},
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: []
|
||
},
|
||
zoomSprites: [
|
||
'mafe-event-end-empty-16',
|
||
'mafe-event-end-empty-24',
|
||
'mafe-event-end-empty-33',
|
||
'mafe-event-end-empty-41',
|
||
'mafe-event-end-empty-49'
|
||
]
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'NoResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 4,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
validatorMarker: {
|
||
width: 12,
|
||
height: 12,
|
||
position: 2,
|
||
errors: {
|
||
style: {
|
||
markerZoomClassesError: [
|
||
"mafe-style-error-marker-7",
|
||
"mafe-style-error-marker-10",
|
||
"mafe-style-error-marker-14",
|
||
"mafe-style-error-marker-17",
|
||
"mafe-style-error-marker-21"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
corona: corona
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
defaultOptions.layers[0]
|
||
.zoomSprites = PMDesigner.updateLayerClasses(defaultOptions);
|
||
customshape = new PMEvent(defaultOptions);
|
||
break;
|
||
|
||
case 'COMPLEX':
|
||
case 'PARALLEL':
|
||
case 'EXCLUSIVE':
|
||
case 'EVENTBASED':
|
||
case 'EXCLUSIVEEVENTBASED':
|
||
case 'PARALLELEVENTBASED':
|
||
case 'INCLUSIVE':
|
||
defaultOptions = {
|
||
labels: [
|
||
{
|
||
message: '',
|
||
visible: true,
|
||
width: 100,
|
||
position: {
|
||
location: 'bottom',
|
||
diffX: 0,
|
||
diffY: 13
|
||
}
|
||
}
|
||
],
|
||
canvas: pmCanvas,
|
||
width: 41,
|
||
height: 41,
|
||
gat_type: 'EXCLUSIVE',
|
||
gat_name: '',
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: []
|
||
},
|
||
zoomSprites: [
|
||
'mafe-gateway-exclusive-20',
|
||
'mafe-gateway-exclusive-30',
|
||
'mafe-gateway-exclusive-41',
|
||
'mafe-gateway-exclusive-51',
|
||
'mafe-gateway-exclusive-61'
|
||
]
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'NoResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 4,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
validatorMarker: {
|
||
width: 12,
|
||
height: 12,
|
||
position: 2,
|
||
errors: {
|
||
style: {
|
||
markerZoomClassesError: [
|
||
"mafe-style-error-marker-7",
|
||
"mafe-style-error-marker-10",
|
||
"mafe-style-error-marker-14",
|
||
"mafe-style-error-marker-17",
|
||
"mafe-style-error-marker-21"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
corona: corona
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
defaultOptions.layers[0]
|
||
.zoomSprites = PMDesigner.updateGatewayLayerClasses(defaultOptions);
|
||
customshape = new PMGateway(defaultOptions);
|
||
break;
|
||
case 'GROUP':
|
||
defaultOptions = {
|
||
art_name: name,
|
||
art_type: 'GROUP',
|
||
canvas: pmCanvas,
|
||
width: 200,
|
||
height: 100,
|
||
style: {
|
||
cssClasses: ['mafe-artifact-group']
|
||
},
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "background-layer",
|
||
priority: 1,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-artifact-group'
|
||
]
|
||
}
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'annotationResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 8,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
labels: [
|
||
{
|
||
message: "",
|
||
width: 0,
|
||
height: 0,
|
||
position: {
|
||
location: 'top',
|
||
diffX: 2,
|
||
diffY: 0
|
||
},
|
||
attachEvents: false,
|
||
updateParent: true,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-label-annotation'
|
||
]
|
||
}
|
||
}
|
||
],
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
corona: corona,
|
||
focusLabel: true
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
customshape = new PMArtifact(defaultOptions);
|
||
break;
|
||
case 'TEXT_ANNOTATION':
|
||
defaultOptions = {
|
||
art_name: name,
|
||
art_type: 'TEXT_ANNOTATION',
|
||
canvas: pmCanvas,
|
||
width: 100,
|
||
height: 30,
|
||
style: {
|
||
cssClasses: ['mafe-artifact-annotation']
|
||
},
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "background-layer",
|
||
priority: 1,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-artifact-annotation'
|
||
]
|
||
}
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'annotationResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 8,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
labels: [
|
||
{
|
||
message: name,
|
||
width: 0,
|
||
height: 0,
|
||
position: {
|
||
location: 'center',
|
||
diffX: 0,
|
||
diffY: 0
|
||
},
|
||
attachEvents: false,
|
||
updateParent: true
|
||
}
|
||
],
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
corona: corona,
|
||
focusLabel: true
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
customshape = new PMArtifact(defaultOptions);
|
||
break;
|
||
|
||
case 'DATAOBJECT':
|
||
defaultOptions = {
|
||
labels: [
|
||
{
|
||
message: '',
|
||
visible: true,
|
||
width: 100,
|
||
position: {
|
||
location: 'bottom',
|
||
diffX: 0,
|
||
diffY: 0
|
||
}
|
||
}
|
||
],
|
||
canvas: pmCanvas,
|
||
width: 33,
|
||
height: 41,
|
||
dat_type: 'DATAOBJECT',
|
||
dat_object_type: "dataobject",
|
||
dat_name: '',
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: []
|
||
},
|
||
zoomSprites: [
|
||
'mafe-dataobject-50',
|
||
'mafe-dataobject-75',
|
||
'mafe-dataobject-100',
|
||
'mafe-dataobject-125',
|
||
'mafe-dataobject-150'
|
||
]
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'NoResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 4,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
markers: [
|
||
{
|
||
markerType: 'USERTASK',
|
||
x: 10,
|
||
y: 10,
|
||
position: 0
|
||
}
|
||
],
|
||
corona: corona
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
defaultOptions.markers[0]
|
||
.markerZoomClasses = PMDesigner.updateDataMarkerLayerClasses(defaultOptions);
|
||
customshape = new PMData(defaultOptions);
|
||
break;
|
||
|
||
case 'DATASTORE':
|
||
defaultOptions = {
|
||
labels: [
|
||
{
|
||
message: '',
|
||
visible: true,
|
||
width: 100,
|
||
position: {
|
||
location: 'bottom',
|
||
diffX: 0,
|
||
diffY: 0
|
||
}
|
||
}
|
||
],
|
||
canvas: pmCanvas,
|
||
width: 41,
|
||
height: 41,
|
||
dat_type: 'DATASTORE',
|
||
dat_name: '',
|
||
layers: [
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssClasses: []
|
||
},
|
||
zoomSprites: [
|
||
'mafe-datastore-20',
|
||
'mafe-datastore-30',
|
||
'mafe-datastore-41',
|
||
'mafe-datastore-51',
|
||
'mafe-datastore-61'
|
||
]
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
connectAtMiddlePoints: true,
|
||
resizeBehavior: 'NoResize',
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 4,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
corona: corona
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
customshape = new PMData(defaultOptions);
|
||
break;
|
||
case 'PARTICIPANT':
|
||
defaultOptions = {
|
||
width: 500,
|
||
height: 130,
|
||
"canvas": this,
|
||
"connectAtMiddlePoints": false,
|
||
topLeft: true,
|
||
connectionType: 'dotted',
|
||
resizeBehavior: "participantResize",
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 8,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmconnection",
|
||
selectors: ['.dragConnectHandler']
|
||
},
|
||
"style": {
|
||
cssClasses: ["mafe-pool"]
|
||
|
||
},
|
||
layers: [
|
||
{
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssProperties: {}
|
||
}
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
labels: [
|
||
{
|
||
message: name,
|
||
width: 0,
|
||
height: 0,
|
||
orientation: 'vertical',
|
||
position: {
|
||
location: 'center-left',
|
||
diffX: 15,
|
||
diffY: 0
|
||
},
|
||
attachEvents: false
|
||
}
|
||
],
|
||
par_name: name,
|
||
corona: corona,
|
||
focusLabel: true
|
||
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
customshape = new PMParticipant(defaultOptions);
|
||
break;
|
||
case 'POOL':
|
||
if (options.lns_name) {
|
||
name = options.lns_name;
|
||
} else if (options.par_name) {
|
||
name = options.par_name;
|
||
}
|
||
defaultOptions = {
|
||
width: 700,
|
||
height: 200,
|
||
"canvas": pmCanvas,
|
||
"connectAtMiddlePoints": false,
|
||
topLeft: false,
|
||
connectionType: 'dotted',
|
||
resizeBehavior: "poolResize",
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 8,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmcontainer",
|
||
selectors: [
|
||
"#TASK",
|
||
"#SUB_PROCESS",
|
||
"#START",
|
||
"#START_MESSAGE",
|
||
"#START_TIMER",
|
||
"#END",
|
||
"#END_MESSAGE",
|
||
"#END_EMAIL",
|
||
"#INTERMEDIATE_SENDMESSAGE",
|
||
"#INTERMEDIATE_RECEIVEMESSAGE",
|
||
"#INTERMEDIATE_EMAIL",
|
||
"#INTERMEDIATE_TIMER",
|
||
"#EXCLUSIVE",
|
||
"#PARALLEL",
|
||
"#INCLUSIVE",
|
||
"#DATAOBJECT",
|
||
"#DATASTORE",
|
||
"#TEXT_ANNOTATION",
|
||
"#LANE",
|
||
"#GROUP",
|
||
".mafe-event-start",
|
||
".mafe-event-intermediate",
|
||
".mafe-event-end",
|
||
".pmui-pmactivity",
|
||
".pmui-pmgateway",
|
||
".pmui-pmdata",
|
||
".mafe-artifact-annotation",
|
||
".mafe-artifact-group",
|
||
".port"
|
||
]
|
||
},
|
||
container: "pool",
|
||
"style": {
|
||
cssClasses: ["mafe-pool"]
|
||
|
||
},
|
||
layers: [
|
||
{
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssProperties: {}
|
||
}
|
||
},
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
layerName: "second-layer",
|
||
priority: 2,
|
||
visible: false,
|
||
style: {
|
||
cssClasses: []
|
||
}
|
||
}
|
||
],
|
||
labels: [
|
||
{
|
||
message: name,
|
||
width: 0,
|
||
height: 0,
|
||
orientation: 'vertical',
|
||
position: {
|
||
location: 'center-left',
|
||
diffX: 15,
|
||
diffY: 0
|
||
},
|
||
attachEvents: false
|
||
}
|
||
],
|
||
lns_name: name,
|
||
focusLabel: true,
|
||
corona: corona
|
||
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
customshape = new PMPool(defaultOptions);
|
||
break;
|
||
case 'LANE':
|
||
defaultOptions = {
|
||
width: 500,
|
||
height: 200,
|
||
"canvas": pmCanvas,
|
||
"connectAtMiddlePoints": false,
|
||
topLeft: true,
|
||
connectionType: 'dotted',
|
||
resizeBehavior: "laneResize",
|
||
resizeHandlers: {
|
||
type: "Rectangle",
|
||
total: 8,
|
||
resizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "rgb(0, 255, 0)",
|
||
'border': '1px solid black'
|
||
}
|
||
},
|
||
nonResizableStyle: {
|
||
cssProperties: {
|
||
'background-color': "white",
|
||
'border': '1px solid black'
|
||
}
|
||
}
|
||
},
|
||
"drop": {
|
||
type: "pmcontainer",
|
||
selectors: [
|
||
"#TASK",
|
||
"#SUB_PROCESS",
|
||
"#START",
|
||
"#START_MESSAGE",
|
||
"#START_TIMER",
|
||
"#END",
|
||
"#END_MESSAGE",
|
||
"#END_EMAIL",
|
||
"#INTERMEDIATE_SENDMESSAGE",
|
||
"#INTERMEDIATE_RECEIVEMESSAGE",
|
||
"#INTERMEDIATE_EMAIL",
|
||
"#INTERMEDIATE_TIMER",
|
||
"#EXCLUSIVE",
|
||
"#PARALLEL",
|
||
"#INCLUSIVE",
|
||
"#DATAOBJECT",
|
||
"#DATASTORE",
|
||
"#GROUP",
|
||
"#TEXT_ANNOTATION",
|
||
".mafe-event-start",
|
||
".mafe-event-intermediate",
|
||
".mafe-event-end",
|
||
".pmui-pmactivity",
|
||
".pmui-pmgateway",
|
||
".pmui-pmdata",
|
||
".mafe-artifact-annotation",
|
||
".mafe-artifact-group"
|
||
]
|
||
},
|
||
container: "lane",
|
||
layers: [
|
||
{
|
||
layerName: "first-layer",
|
||
priority: 2,
|
||
visible: true,
|
||
style: {
|
||
cssProperties: {}
|
||
}
|
||
}
|
||
|
||
],
|
||
labels: [
|
||
{
|
||
message: name,
|
||
width: 0,
|
||
height: 0,
|
||
orientation: 'vertical',
|
||
position: {
|
||
location: 'center-left',
|
||
diffX: 15,
|
||
diffY: 0
|
||
}
|
||
}
|
||
],
|
||
lan_name: name,
|
||
focusLabel: true
|
||
|
||
};
|
||
jQuery.extend(true, defaultOptions, options);
|
||
customshape = new PMLane(defaultOptions);
|
||
break;
|
||
|
||
}
|
||
if (customshape && !pmCanvas.readOnly) {
|
||
customshape.attachListeners();
|
||
customshape.extendedType = type;
|
||
menuShape = PMDesigner.getMenuFactory(type);
|
||
customshape.getHTML();
|
||
customshape.setContextMenu(menuShape);
|
||
}
|
||
return customshape;
|
||
};
|
||
PMDesigner.updateLayerClasses = function (options) {
|
||
return [
|
||
'mafe-event-' + options.evn_type.toLowerCase() + '-' + options.evn_marker.toLowerCase() + '-16',
|
||
'mafe-event-' + options.evn_type.toLowerCase() + '-' + options.evn_marker.toLowerCase() + '-24',
|
||
'mafe-event-' + options.evn_type.toLowerCase() + '-' + options.evn_marker.toLowerCase() + '-33',
|
||
'mafe-event-' + options.evn_type.toLowerCase() + '-' + options.evn_marker.toLowerCase() + '-41',
|
||
'mafe-event-' + options.evn_type.toLowerCase() + '-' + options.evn_marker.toLowerCase() + '-49'
|
||
];
|
||
};
|
||
PMDesigner.updateGatewayLayerClasses = function (options) {
|
||
return [
|
||
'mafe-gateway-' + options.gat_type.toLowerCase() + '-20',
|
||
'mafe-gateway-' + options.gat_type.toLowerCase() + '-30',
|
||
'mafe-gateway-' + options.gat_type.toLowerCase() + '-41',
|
||
'mafe-gateway-' + options.gat_type.toLowerCase() + '-51',
|
||
'mafe-gateway-' + options.gat_type.toLowerCase() + '-61'
|
||
];
|
||
};
|
||
PMDesigner.updateMarkerLayerClasses = function (options) {
|
||
if (options.act_task_type !== 'EMPTY') {
|
||
return [
|
||
"mafe-" + options.act_task_type.toLowerCase() + "-marker-10",
|
||
"mafe-" + options.act_task_type.toLowerCase() + "-marker-15",
|
||
"mafe-" + options.act_task_type.toLowerCase() + "-marker-21",
|
||
"mafe-" + options.act_task_type.toLowerCase() + "-marker-26",
|
||
"mafe-" + options.act_task_type.toLowerCase() + "-marker-31"
|
||
];
|
||
}
|
||
};
|
||
PMDesigner.updateLoopLayerClasses = function (options) {
|
||
if (options.act_loop_type !== 'EMPTY') {
|
||
return [
|
||
"mafe-" + options.act_loop_type.toLowerCase() + "-marker-10",
|
||
"mafe-" + options.act_loop_type.toLowerCase() + "-marker-15",
|
||
"mafe-" + options.act_loop_type.toLowerCase() + "-marker-21",
|
||
"mafe-" + options.act_loop_type.toLowerCase() + "-marker-26",
|
||
"mafe-" + options.act_loop_type.toLowerCase() + "-marker-31"
|
||
];
|
||
}
|
||
};
|
||
PMDesigner.updateDataMarkerLayerClasses = function (options) {
|
||
var type = options.dat_object_type.toLowerCase();
|
||
if (type !== 'dataobject') {
|
||
return [
|
||
"mafe-" + type + "-marker-10",
|
||
"mafe-" + type + "-marker-15",
|
||
"mafe-" + type + "-marker-21",
|
||
"mafe-" + type + "-marker-26",
|
||
"mafe-" + type + "-marker-31"
|
||
];
|
||
}
|
||
};
|
||
/**
|
||
* Save a process and open the settings
|
||
* @param shape
|
||
* @param callback
|
||
*/
|
||
PMDesigner.saveAndOpenSettings= function (shape, callback) {
|
||
var splitedID;
|
||
|
||
if(shape) {
|
||
splitedID = shape.getID().split("-");
|
||
if ((splitedID && splitedID[0] === 'pmui') || PMDesigner.project.isDirty()) {
|
||
PMDesigner.restApi.execute({
|
||
data: JSON.stringify(PMDesigner.project.getDirtyObject()),
|
||
method: "update",
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE + "/project/" + PMDesigner.project.id,
|
||
success: function (data, textStatus, xhr) {
|
||
PMDesigner.project.listeners.success(PMDesigner.project, textStatus, data);
|
||
PMDesigner.project.isSave = false;
|
||
if(callback) {
|
||
callback(shape);
|
||
}
|
||
},
|
||
error: function (xhr, textStatus, errorThrown) {
|
||
PMDesigner.project.listeners.failure(that, textStatus, xhr);
|
||
PMDesigner.project.isSave = false;
|
||
}
|
||
});
|
||
} else {
|
||
callback(shape);
|
||
}
|
||
}
|
||
|
||
|
||
};
|
||
}());
|
||
PMDesigner.sidebar = [];
|
||
|
||
PMDesigner.sidebar.push(
|
||
new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'TASK',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-task'
|
||
],
|
||
tooltip: "Task".translate()
|
||
},
|
||
{
|
||
selector: 'SUB_PROCESS',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-subprocess'
|
||
],
|
||
tooltip: "Sub Process".translate()
|
||
}
|
||
]
|
||
}),
|
||
new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'EXCLUSIVE',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-gateway-exclusive'
|
||
],
|
||
tooltip: "Exclusive Gateway".translate()
|
||
},
|
||
{
|
||
selector: 'PARALLEL',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-gateway-parallel'
|
||
],
|
||
tooltip: "Parallel gateway".translate()
|
||
},
|
||
{
|
||
selector: 'INCLUSIVE',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-gateway-inclusive'
|
||
],
|
||
tooltip: "Inclusive Gateway".translate()
|
||
}
|
||
]
|
||
}),
|
||
new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'START',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-start'
|
||
],
|
||
tooltip: "Start Event".translate()
|
||
},
|
||
{
|
||
selector: 'START_TIMER',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-event-start-timer'
|
||
],
|
||
tooltip: "Start Timer Event".translate()
|
||
},
|
||
{
|
||
selector: 'INTERMEDIATE_EMAIL',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-intermediate-send-mesage'
|
||
],
|
||
tooltip: "Intermediate Email Event".translate()
|
||
},
|
||
{
|
||
selector: 'INTERMEDIATE_TIMER',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-event-intermediate-timer'
|
||
],
|
||
tooltip: "Intermediate Timer Event".translate()
|
||
},
|
||
{
|
||
selector: 'END',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-end'
|
||
],
|
||
tooltip: "End Event".translate()
|
||
},
|
||
{
|
||
selector: 'END_EMAIL',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-end-message'
|
||
],
|
||
tooltip: "End Email Event ".translate()
|
||
}
|
||
]
|
||
}),
|
||
new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'DATAOBJECT',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-data-object'
|
||
],
|
||
tooltip: "Data Object".translate()
|
||
},
|
||
{
|
||
selector: 'DATASTORE',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-data-store'
|
||
],
|
||
tooltip: "Data Store".translate()
|
||
}
|
||
]
|
||
}),
|
||
new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'PARTICIPANT',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-blackbox'
|
||
],
|
||
tooltip: " Black Box Pool".translate()
|
||
},
|
||
{
|
||
selector: 'POOL',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-pool'
|
||
],
|
||
tooltip: "Pool".translate()
|
||
},
|
||
{
|
||
selector: 'LANE',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-lane'
|
||
],
|
||
tooltip: "Lane".translate()
|
||
}
|
||
]
|
||
}),
|
||
new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'GROUP',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-group'
|
||
],
|
||
tooltip: "Group".translate()
|
||
},
|
||
{
|
||
selector: 'TEXT_ANNOTATION',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-annotation'
|
||
],
|
||
tooltip: "Text Annotation".translate()
|
||
}
|
||
]
|
||
}),
|
||
new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'LASSO',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-lasso'
|
||
],
|
||
tooltip: "Lasso".translate()
|
||
}
|
||
|
||
]
|
||
}),
|
||
new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'enableAutosave',
|
||
type: 'switch',
|
||
className: [
|
||
'mafe-toolbar-autosave'
|
||
],
|
||
tooltip: "Validate Now".translate(),
|
||
checked: true,
|
||
text: "Auto Save".translate(),
|
||
checkHandler: function (value) {
|
||
PMDesigner.autoSaveValue(value);
|
||
}
|
||
}
|
||
]
|
||
})
|
||
);
|
||
ListDynaform = function () {
|
||
this.superTitle = 'Dynaforms'.translate();
|
||
this.tableContainerHeight = 374;
|
||
this.buttonCreate = null;
|
||
this.onCreate = new Function();
|
||
this.onShowId = new Function();
|
||
this.onEdit = new Function();
|
||
this.onDel = new Function();
|
||
this.loaded = false;
|
||
this.clickedClose = true;
|
||
Mafe.Grid.call(this);
|
||
ListDynaform.prototype.init.call(this);
|
||
};
|
||
ListDynaform.prototype = new Mafe.Grid();
|
||
ListDynaform.prototype.init = function () {
|
||
var that = this;
|
||
that.buttonCreate = new PMUI.ui.Button({
|
||
id: 'dynaformButtonNew',
|
||
text: 'Create'.translate(),
|
||
height: '36px',
|
||
width: 100,
|
||
style: {cssClasses: ['mafe-button-create']},
|
||
handler: function (event) {
|
||
that.onCreate(event);
|
||
}
|
||
});
|
||
that.buttonCreate.defineEvents();
|
||
that.setID('idListDynaform');
|
||
that.setColumns([{
|
||
id: 'copyuid',
|
||
title: 'Show ID'.translate(),
|
||
dataType: 'button',
|
||
buttonLabel: 'Show ID'.translate(),
|
||
buttonStyle: {cssClasses: ['mafe-button-show']},
|
||
onButtonClick: function (row, grid) {
|
||
that.onShowId(row, grid);
|
||
}
|
||
}, {
|
||
id: 'dynaformGridPanelTitle',
|
||
title: 'Title'.translate(),
|
||
dataType: 'string',
|
||
width: '460px',
|
||
alignmentCell: 'left',
|
||
sortable: true,
|
||
columnData: 'dyn_title'
|
||
}, {
|
||
id: 'dynaformGridPanelEdit',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonStyle: {cssClasses: ['mafe-button-edit']},
|
||
buttonLabel: function (row, data) {
|
||
return 'Edit'.translate();
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.onEdit(row, grid);
|
||
}
|
||
}, {
|
||
id: 'dynaformGridPanelDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonStyle: {cssClasses: ['mafe-button-delete']},
|
||
buttonLabel: function (row, data) {
|
||
return 'Delete'.translate();
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.onDel(row, grid);
|
||
}
|
||
}
|
||
]);
|
||
};
|
||
ListDynaform.prototype.createHTML = function () {
|
||
Mafe.Grid.prototype.createHTML.call(this);
|
||
this.dom.toolbar.appendChild(this.buttonCreate.getHTML());
|
||
return this.html;
|
||
};
|
||
ListDynaform.prototype.load = function () {
|
||
var that = this;
|
||
that.clearItems();
|
||
(new PMRestClient({
|
||
endpoint: 'dynaforms',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
that.setDataItems(response);
|
||
that.sort('dyn_title', 'asc');
|
||
that.loaded = true;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
|
||
that.loaded = false;
|
||
},
|
||
messageError: 'There are problems getting the list of dynaforms, please try again.'.translate()
|
||
})).executeRestClient();
|
||
};
|
||
ListDynaform.prototype.getSuperTitle = function () {
|
||
return this.superTitle;
|
||
};
|
||
|
||
BlankDynaform = function () {
|
||
this.superTitle = 'Create Blank Dynaform'.translate();
|
||
this.onSave = new Function();
|
||
this.onSaveOpen = new Function();
|
||
this.onCancel = new Function();
|
||
this.buttons = null;
|
||
Mafe.Form.call(this);
|
||
BlankDynaform.prototype.init.call(this);
|
||
};
|
||
BlankDynaform.prototype = new Mafe.Form();
|
||
BlankDynaform.prototype.init = function () {
|
||
var that = this;
|
||
that.setID('formDynaformInformation');
|
||
that.setTitle('Dynaform Information'.translate());
|
||
that.setItems([{
|
||
id: 'formDynaformInformationTitle',
|
||
pmType: 'text',
|
||
label: 'Title'.translate(),
|
||
value: '',
|
||
maxLength: 255,
|
||
placeholder: 'The Dynaform title'.translate(),
|
||
name: 'dyn_title',
|
||
required: true,
|
||
controlsWidth: 303
|
||
}, {
|
||
id: 'formDynaformInformationDescription',
|
||
pmType: 'textarea',
|
||
rows: 200,
|
||
name: 'dyn_description',
|
||
width: 200,
|
||
label: 'Description'.translate(),
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
}
|
||
]);
|
||
that.buttons = [
|
||
new PMUI.ui.Button({
|
||
id: 'btnClose',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
handler: function () {
|
||
that.onCancel();
|
||
}
|
||
}),
|
||
new PMUI.ui.Button({
|
||
id: 'windowDynaformInformationSaveOpen',
|
||
text: 'Save & Open'.translate(),
|
||
buttonType: 'success',
|
||
handler: function () {
|
||
that.onSaveOpen();
|
||
}
|
||
}),
|
||
new PMUI.ui.Button({
|
||
id: 'windowDynaformInformationSave',
|
||
text: 'Save'.translate(),
|
||
buttonType: 'success',
|
||
handler: function () {
|
||
that.onSave();
|
||
}
|
||
})
|
||
];
|
||
};
|
||
BlankDynaform.prototype.getButtons = function () {
|
||
return this.buttons;
|
||
};
|
||
BlankDynaform.prototype.getSuperTitle = function () {
|
||
return this.superTitle;
|
||
};
|
||
|
||
Dynaform = function (settings) {
|
||
this.listDynaform = null;
|
||
this.blankDynaform = null;
|
||
Mafe.Window.call(this, settings);
|
||
Dynaform.prototype.init.call(this, settings);
|
||
};
|
||
Dynaform.prototype = new Mafe.Window();
|
||
Dynaform.prototype.init = function (settings) {
|
||
var that = this;
|
||
that.listDynaform = new ListDynaform();
|
||
that.setOnBeforeCloseHandler(function () {
|
||
this.clickedClose = true;
|
||
if (!that.blankDynaform.isVisible()) {
|
||
that.close();
|
||
} else {
|
||
that.blankDynaform.onCancel();
|
||
}
|
||
});
|
||
that.listDynaform.load();
|
||
that.listDynaform.onShowId = function (row, grid) {
|
||
showUID(row.getData().dyn_uid);
|
||
};
|
||
that.listDynaform.onCreate = function () {
|
||
that.resetView();
|
||
that.setTitle(that.blankDynaform.getSuperTitle());
|
||
that.blankDynaform.setVisible(true);
|
||
that.setButtons(that.blankDynaform.getButtons());
|
||
};
|
||
that.listDynaform.onEdit = function (row, grid) {
|
||
that.edit(row, grid);
|
||
};
|
||
that.listDynaform.onDel = function (row, grid) {
|
||
that.del(row, grid);
|
||
};
|
||
|
||
that.blankDynaform = new BlankDynaform();
|
||
that.blankDynaform.onSave = function () {
|
||
that.saveBlank(false);
|
||
};
|
||
that.blankDynaform.onSaveOpen = function () {
|
||
that.saveBlank(true);
|
||
};
|
||
that.blankDynaform.onCancel = function () {
|
||
$("input,select,textarea").blur();
|
||
var title = "";
|
||
that.blankDynaform.loseChanges(title);
|
||
};
|
||
that.blankDynaform.onYesConfirmCancellation = function () {
|
||
if (that.clickedClose) {
|
||
that.close();
|
||
}
|
||
that.resetView();
|
||
that.setTitle(that.listDynaform.getSuperTitle());
|
||
that.listDynaform.setVisible(true);
|
||
};
|
||
|
||
that.addItem(that.listDynaform);
|
||
that.addItem(that.blankDynaform);
|
||
|
||
that.open();
|
||
that.resetView();
|
||
that.setTitle(that.listDynaform.getSuperTitle());
|
||
that.listDynaform.setVisible(true);
|
||
|
||
// hard coding dyn_title textfield because enter keypress reload the current page
|
||
if (that.blankDynaform.getItems()[0]
|
||
&& that.blankDynaform.getItems()[0].controls[0]
|
||
&& that.blankDynaform.getItems()[0].controls[0].html) {
|
||
$(that.blankDynaform.getItems()[0].controls[0].html).keypress(function (e) {
|
||
if (e.which == 13) {
|
||
e.preventDefault();
|
||
}
|
||
});
|
||
}
|
||
};
|
||
Dynaform.prototype.saveBlank = function (open) {
|
||
var that = this,
|
||
data,
|
||
restClient,
|
||
flagAux;
|
||
|
||
if (!that.blankDynaform.isValid()) {
|
||
flagAux = that.blankDynaform.visible;
|
||
} else {
|
||
flagAux = that.blankDynaform.isValid();
|
||
}
|
||
|
||
if (flagAux) {
|
||
if (getData2PMUI(that.blankDynaform.html).dyn_title == "") {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
data = getData2PMUI(that.blankDynaform.html);
|
||
data['dyn_version'] = 2;
|
||
data['dyn_type'] = 'xmlform';
|
||
restClient = new PMRestClient({
|
||
endpoint: 'dynaform',
|
||
typeRequest: 'post',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
if (open) {
|
||
that.close();
|
||
try {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
} catch (msg) {
|
||
}
|
||
PMDesigner.dynaformDesigner(response);
|
||
} else {
|
||
that.resetView();
|
||
that.setTitle(that.listDynaform.getSuperTitle());
|
||
that.listDynaform.setVisible(true);
|
||
that.listDynaform.load();
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems creating the dynaform, please try again.'.translate(),
|
||
messageSuccess: 'Dynaform saved successfully'.translate(),
|
||
flashContainer: that.listDynaform
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
Dynaform.prototype.edit = function (row, grid) {
|
||
this.close();
|
||
try {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
} catch (msg) {
|
||
}
|
||
PMDesigner.dynaformDesigner(row.getData());
|
||
};
|
||
Dynaform.prototype.del = function (row, grid) {
|
||
var that = this,
|
||
confirmDeletion = new Mafe.ConfirmDeletion();
|
||
confirmDeletion.setMessage('Do you want to delete this DynaForm?'.translate());
|
||
confirmDeletion.setTitle("Dynaform".translate());
|
||
confirmDeletion.onDelete = function () {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'dynaform/' + row.getData().dyn_uid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
that.listDynaform.load();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems deleting the dynaform, please try again.'.translate(),
|
||
messageSuccess: 'Dynaform deleted successfully'.translate(),
|
||
flashContainer: that.listDynaform
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
};
|
||
|
||
(function () {
|
||
PMDesigner.dynaform = function () {
|
||
var dynaform = new Dynaform();
|
||
};
|
||
PMDesigner.dynaform.create = function () {
|
||
var dynaform = new Dynaform();
|
||
dynaform.resetView();
|
||
dynaform.setTitle(dynaform.blankDynaform.getSuperTitle());
|
||
dynaform.blankDynaform.setVisible(true);
|
||
dynaform.setButtons(dynaform.blankDynaform.getButtons());
|
||
};
|
||
}());
|
||
|
||
/**
|
||
* Updates the granular export feature after enabled features are loaded.
|
||
*/
|
||
var navbarExportUpdate = function () {
|
||
//Code export - export granular (handler)
|
||
var handlerExportNormal = function () {
|
||
var ws = enviromentVariables('WORKSPACE');
|
||
if (!HTTP_SERVER_HOSTNAME) {
|
||
HTTP_SERVER_HOSTNAME = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');
|
||
}
|
||
location.href = HTTP_SERVER_HOSTNAME + "/api/1.0/" + ws + "/project/" + PMDesigner.project.id + "/export?access_token=" + PMDesigner.project.keys.access_token;
|
||
};
|
||
|
||
var handlerExportGranular = function () {
|
||
var optionExportNormal = $("<div class='mafe-button-submenu-option normalExport'>" + "Normal".translate() + "</div>"),
|
||
optionExportGranular = $("<div class='mafe-button-submenu-option granularExport'>" + "Custom".translate() + "</div>"),
|
||
menuExport = $("<div class='mafe-button-menu-container sub-nav'></div>").hide(),
|
||
$item = $("#idNavBar").find(".mafe-button-export-process").closest("li");
|
||
|
||
menuExport.append(optionExportNormal).append(optionExportGranular);
|
||
if (!$item.find(".mafe-button-menu-container").length) {
|
||
$item.append(menuExport);
|
||
}
|
||
$(".ui-tooltip").hide();
|
||
$(menuExport).slideToggle("slow");
|
||
$item.on("mouseleave", function (e) {
|
||
if ($(this).find(".mafe-button-menu-container").eq(0).is(":visible")) {
|
||
var that = this;
|
||
$(that).find(".mafe-button-menu-container").remove();
|
||
}
|
||
});
|
||
|
||
$(".sub-nav").on("click", ".normalExport", function (event) {
|
||
var ws = enviromentVariables('WORKSPACE'),
|
||
locationOrigin;
|
||
if (!window.location.origin) {
|
||
locationOrigin = window.location.protocol + "//" + window.location.hostname +
|
||
(window.location.port ? ':' + window.location.port : '');
|
||
} else if (typeof HTTP_SERVER_HOSTNAME !== 'undefined') {
|
||
locationOrigin = HTTP_SERVER_HOSTNAME;
|
||
} else {
|
||
locationOrigin = window.location.origin;
|
||
}
|
||
location.href = locationOrigin + "/api/1.0/" + ws + "/project/" + PMDesigner.project.id + "/export?access_token=" + PMDesigner.project.keys.access_token;
|
||
});
|
||
|
||
$(".sub-nav").on("click", ".granularExport", function (event) {
|
||
PMDesigner.granularProcessExport();
|
||
});
|
||
};
|
||
if (inArray("jXsSi94bkRUcVZyRStNVExlTXhEclVadGRRcG9xbjNvTWVFQUF3cklKQVBiVT0=", ENABLED_FEATURES)) {
|
||
handler = handlerExportGranular;
|
||
} else {
|
||
handler = handlerExportNormal;
|
||
}
|
||
|
||
};
|
||
|
||
function inArray(needle, haystack) {
|
||
var i,
|
||
length = haystack.length;
|
||
for (i = 0; i < length; i += 1) {
|
||
if (haystack[i] == needle) return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
var defaultNavbarPanelMenus = {
|
||
array: [],
|
||
init: function () {
|
||
var closeVar = {
|
||
id: 'closeButton',
|
||
name: 'Close',
|
||
htmlProperty: {
|
||
id: 'closeButton',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-close',
|
||
child: [
|
||
{
|
||
element: 'span',
|
||
class: 'mafe-button-close'
|
||
}
|
||
]
|
||
}
|
||
|
||
]
|
||
},
|
||
actions: {
|
||
selector: ".mafe-button-close",
|
||
tooltip: "Close".translate(),
|
||
execute: true,
|
||
handler: function () {
|
||
var message_window,
|
||
browser = PMDesigner.getBrowser(),
|
||
url = parent.location.href;
|
||
|
||
if (PMDesigner.project.isDirty() && !PMDesigner.project.isSave) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
id: "cancelSaveSubprocPropertiesWin",
|
||
title: PMDesigner.project.projectName,
|
||
message: 'Save your changes and exit ?'.translate(),
|
||
footerItems: [
|
||
{
|
||
pmType: 'label',
|
||
text: ' '
|
||
}, {
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
PMDesigner.project.isClose = true;
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1)) {
|
||
window.close();
|
||
} else {
|
||
parent.location.href = url;
|
||
}
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
PMDesigner.project.saveClose(true);
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1)) {
|
||
window.close();
|
||
} else {
|
||
parent.location.href = url;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
helpVar = {
|
||
id: 'helpButton',
|
||
name: 'Help',
|
||
htmlProperty: {
|
||
id: 'helpButton',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-help',
|
||
child: [
|
||
{
|
||
element: 'span',
|
||
class: 'mafe-toolbar-help'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
selector: ".mafe-toolbar-help",
|
||
tooltip: "Help".translate(),
|
||
execute: true,
|
||
handler: function () {
|
||
var canvas = PMUI.getActiveCanvas();
|
||
PMDesigner.helper.startIntro();
|
||
if (canvas && canvas.getHTML()) {
|
||
canvas.getHTML().classList.remove("pmui-pmcanvas");
|
||
}
|
||
}
|
||
}
|
||
},
|
||
saveVar = {
|
||
id: 'saveButton',
|
||
name: 'Save',
|
||
htmlProperty: {
|
||
id: 'saveButton',
|
||
element: 'li',
|
||
class: 'mafe-save-process',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-button-save'
|
||
},
|
||
{
|
||
element: 'span',
|
||
class: 'mafe-button-menu',
|
||
child: [
|
||
{
|
||
element: 'img',
|
||
src: '/lib/img/caret-down.png'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
selector: ".mafe-button-save",
|
||
tooltip: "Save process".translate(),
|
||
label: {
|
||
text: "Save".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
if (PMDesigner.project.isDirty() && PMDesigner.project.isSave === false) {
|
||
PMDesigner.project.isSave = true;
|
||
document.getElementsByClassName("mafe-save-process")[0].childNodes[0].text = "Saving";
|
||
PMDesigner.project.save(true);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
exportButton = {
|
||
id: 'exportButton',
|
||
name: 'ExportButton',
|
||
htmlProperty: {
|
||
id: 'exportButton',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-button-export-process'
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
selector: ".mafe-button-export-process",
|
||
tooltip: "Export process".translate(),
|
||
label: {
|
||
text: "Export Process".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
handler();
|
||
}
|
||
}
|
||
},
|
||
exportBpmnButton = {
|
||
id: 'exportBpmnButton',
|
||
name: 'ExportBpmn',
|
||
htmlProperty: {
|
||
id: 'exportBpmnButton',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-button-export-bpmn-process'
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
selector: ".mafe-button-export-bpmn-process",
|
||
tooltip: "Export Diagram ".translate(),
|
||
label: {
|
||
text: "Export Diagram".translate()
|
||
},
|
||
execute: false,
|
||
handler: function () {
|
||
}
|
||
}
|
||
},
|
||
zoomVar = {
|
||
id: 'zoomOptions',
|
||
name: 'Zoom',
|
||
htmlProperty: {
|
||
id: 'zoomOptions',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'span',
|
||
class: 'mafe-zoom-options'
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
id: 'zoomOptions',
|
||
spanclass: 'mafe-zoom-options',
|
||
actions: 'zoom'
|
||
},
|
||
aditionalAction: {
|
||
execute: PMDesigner.ApplyOptionsZoom()
|
||
}
|
||
},
|
||
undo = {
|
||
id: 'undoButton',
|
||
name: 'Undo',
|
||
htmlProperty: {
|
||
id: 'undoButton',
|
||
element: 'li',
|
||
class: 'mafe-undo',
|
||
child: [
|
||
{
|
||
element: 'b',
|
||
class: 'mafe-action-undo',
|
||
child: [
|
||
{
|
||
element: 'span',
|
||
class: 'mafe-button-undo'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
selector: ".mafe-action-undo",
|
||
tooltip: "Undo Action".translate(),
|
||
label: {
|
||
text: ''
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().commandStack.undo();
|
||
}
|
||
}
|
||
},
|
||
redo = {
|
||
id: 'redoButton',
|
||
name: 'Redo',
|
||
htmlProperty: {
|
||
id: 'redoButton',
|
||
element: 'li',
|
||
class: 'mafe-redo',
|
||
child: [
|
||
{
|
||
element: 'b',
|
||
class: 'mafe-action-redo',
|
||
child: [
|
||
{
|
||
element: 'span',
|
||
class: 'mafe-button-redo'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
selector: ".mafe-action-redo",
|
||
tooltip: "Redo Action".translate(),
|
||
label: {
|
||
text: ''
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMUI.getActiveCanvas().hideDragConnectHandlers();
|
||
PMUI.getActiveCanvas().commandStack.redo();
|
||
}
|
||
}
|
||
},
|
||
fullScreen = {
|
||
id: 'fullScreenButton',
|
||
name: 'FullScreen',
|
||
htmlProperty: {
|
||
id: 'fullScreenButton',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-button-fullscreen'
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
selector: ".mafe-button-fullscreen",
|
||
tooltip: "Full Screen".translate(),
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.fullScreen.toggle(this);
|
||
}
|
||
}
|
||
};
|
||
navbarExportUpdate();
|
||
this.array = [
|
||
closeVar,
|
||
helpVar,
|
||
saveVar,
|
||
exportButton,
|
||
exportBpmnButton,
|
||
zoomVar,
|
||
undo,
|
||
redo,
|
||
fullScreen
|
||
];
|
||
},
|
||
/**
|
||
* Get Array of Items of the NavBarPanelMenu
|
||
* @returns {Array}
|
||
*/
|
||
getNavBarPanelMenu: function () {
|
||
return this.array;
|
||
},
|
||
/**
|
||
* Adds one Item To NavBarPanelMenu
|
||
* @param item
|
||
*/
|
||
addItemToNavBarPanelMenu: function (item) {
|
||
this.array.push(item);
|
||
}
|
||
};
|
||
|
||
defaultNavbarPanelMenus.init();
|
||
/*----------------------------------********---------------------------------*/
|
||
/**features-begins**/
|
||
(function(){
|
||
if(PMDesigner.sidebar) {
|
||
PMDesigner.sidebar.push(new ToolbarPanel({
|
||
fields: [
|
||
{
|
||
selector: 'VALIDATOR',
|
||
type: 'button',
|
||
className: [
|
||
'mafe-designer-icon',
|
||
'mafe-toolbar-validation'
|
||
],
|
||
tooltip: "Validate Now".translate(),
|
||
actions: {
|
||
selector: ".mafe-toolbar-validation",
|
||
tooltip: "Validator".translate(),
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.reloadDataTable();
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}));
|
||
}
|
||
|
||
})();
|
||
/**features-ends**/
|
||
/*----------------------------------********---------------------------------*/
|
||
|
||
/**
|
||
* @class PMUI.menu.navBarPanel
|
||
* Handles the navbar panel of designer,
|
||
* contains all menus for content elements.
|
||
*
|
||
* @param {array} items Default items
|
||
* @constructor
|
||
*/
|
||
var NavbarPanel = function (items) {
|
||
NavbarPanel.prototype.init.call(this, items);
|
||
};
|
||
|
||
/**
|
||
* Initializes the object.
|
||
*
|
||
* @param {array} items Array with default values.
|
||
*/
|
||
NavbarPanel.prototype.init = function (items) {
|
||
var item;
|
||
if (typeof items === 'undefined') {
|
||
items = defaultNavbarPanelMenus.getNavBarPanelMenu();
|
||
}
|
||
this.items = new PMUI.util.ArrayList();
|
||
for (item in items) {
|
||
if (!items.hasOwnProperty(item)) {
|
||
continue;
|
||
}
|
||
this.items.insert(items[item]);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* This method renders HTML and actions into designer
|
||
*
|
||
*/
|
||
NavbarPanel.prototype.show = function () {
|
||
var item = null,
|
||
i,
|
||
max;
|
||
if (PMDesigner.navbarPanel.items instanceof Object) {
|
||
for (i = 0, max = PMDesigner.navbarPanel.items.getSize(); i < max; i += 1) {
|
||
item = PMDesigner.navbarPanel.items.get(i);
|
||
if (typeof item.htmlProperty !== "undefined") {
|
||
PMDesigner.navbarPanel.buildHtmlElement(item.htmlProperty);
|
||
}
|
||
if (typeof item.aditionalAction !== "undefined") {
|
||
item.aditionalAction;
|
||
}
|
||
if (typeof item.actions !== "undefined") {
|
||
new PMAction(item.actions);
|
||
}
|
||
}
|
||
} else {
|
||
throw new Error('cannot show the elements of the List');
|
||
}
|
||
|
||
};
|
||
|
||
/**
|
||
* This method creates a html element button into the navBar Panel
|
||
* @param {Object} element
|
||
* @param {HTMLElement} before
|
||
*/
|
||
NavbarPanel.prototype.buildHtmlElement = function (element, before) {
|
||
var ul = document.getElementById('idNavBarList'),
|
||
htmlElement;
|
||
if ((typeof ul !== undefined) && (ul !== null)) {
|
||
htmlElement = this.getNodeChild(element, ul);
|
||
if (typeof before !== "undefined") {
|
||
before = document.getElementById(before);
|
||
ul.insertBefore(htmlElement, before);
|
||
} else {
|
||
ul.appendChild(htmlElement);
|
||
}
|
||
}
|
||
|
||
};
|
||
|
||
/**
|
||
* This method assembling dependent html elements to the button
|
||
* @param {Object} nodeChild
|
||
* @param {HTMLElement} nodePattern
|
||
* @returns {Element}
|
||
*/
|
||
NavbarPanel.prototype.getNodeChild = function (nodeChild, nodePattern) {
|
||
var node = document.createElement(nodeChild.element),
|
||
i;
|
||
if (typeof nodeChild.id !== 'undefined') {
|
||
node.setAttribute("id", nodeChild.id);
|
||
}
|
||
if (nodeChild.element === 'a') {
|
||
node.setAttribute("href", "return;");
|
||
}
|
||
if (typeof(nodeChild.class) !== 'undefined') {
|
||
node.setAttribute("class", nodeChild.class);
|
||
}
|
||
if (typeof(nodeChild.child) !== 'undefined' && nodeChild.child instanceof Array) {
|
||
for (i = 0; i < nodeChild.child.length; i += 1) {
|
||
this.getNodeChild(nodeChild.child[i], node);
|
||
}
|
||
}
|
||
if (typeof(nodeChild.src) !== 'undefined') {
|
||
node.setAttribute("src", nodeChild.src);
|
||
}
|
||
if ((typeof nodePattern !== undefined) && (nodePattern !== null) && nodePattern.localName !== 'ul') {
|
||
nodePattern.appendChild(node);
|
||
}
|
||
return node;
|
||
};
|
||
|
||
/**
|
||
* This method removes an html element for the
|
||
* NavBar panel array List and delete the HTML from the designer.
|
||
* @param {String} idButton
|
||
*/
|
||
NavbarPanel.prototype.deleteHtmlElement = function (idButton) {
|
||
var btn = document.getElementById(idButton),
|
||
element = PMDesigner.contentControl.items.find("id", idButton),
|
||
remove = PMDesigner.contentControl.items.remove(element);
|
||
if (typeof btn !== 'undefined' && remove === true) {
|
||
btn.parentNode.removeChild(btn);
|
||
} else {
|
||
throw new Error('Cannot find the specified button: ' + idButton + '. Please, review this');
|
||
}
|
||
};
|
||
|
||
/**
|
||
* NavbarPanel get an instance
|
||
* @type {NavbarPanel}
|
||
*/
|
||
PMDesigner.navbarPanel = new NavbarPanel(defaultNavbarPanelMenus.getNavBarPanelMenu());
|
||
|
||
function defaultContentControlMenus() {
|
||
var variableCreate = {
|
||
id: 'variableCreate',
|
||
name: 'Variable',
|
||
htmlProperty: {
|
||
id: 'variableCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-variable'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-variable-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-variable",
|
||
label: {
|
||
text: "Variables".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.variables();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-variable-create",
|
||
label: {
|
||
selector: ".mafe-menu-variable-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.variables.create();
|
||
}
|
||
}
|
||
},
|
||
messageType = {
|
||
id: 'messageTypeCreate',
|
||
name: 'MessageType',
|
||
htmlProperty: {
|
||
id: 'messageTypeCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-messagetype'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-messagetype-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-messagetype",
|
||
label: {
|
||
text: "Message Types".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.messageType();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-messagetype-create",
|
||
label: {
|
||
selector: ".mafe-menu-messagetype-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.messageType.create();
|
||
}
|
||
}
|
||
},
|
||
dynaformCreate = {
|
||
id: 'dynaformCreate',
|
||
name: 'Dynaform',
|
||
htmlProperty: {
|
||
id: 'dynaformCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-dynaform'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-dynaform-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-dynaform",
|
||
label: {
|
||
text: "Dynaforms".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.dynaform();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-dynaform-create",
|
||
label: {
|
||
selector: ".mafe-menu-dynaform-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.dynaform.create();
|
||
}
|
||
}
|
||
},
|
||
inputDocumentCreate = {
|
||
id: 'inputDocumentCreate',
|
||
name: 'InputDocument',
|
||
htmlProperty: {
|
||
id: 'inputDocumentCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-inputdocuments'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-inputdocuments-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-inputdocuments",
|
||
label: {
|
||
text: "Input Documents".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
var inputDocument = new InputDocument();
|
||
inputDocument.build();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-inputdocuments-create",
|
||
label: {
|
||
selector: ".mafe-menu-inputdocuments-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
var inputDocument = new InputDocument();
|
||
inputDocument.build();
|
||
inputDocument.openFormInMainWindow();
|
||
inputDocument.method = "POST";
|
||
}
|
||
}
|
||
},
|
||
outputDocumentCreate = {
|
||
id: 'outputDocumentCreate',
|
||
name: 'OutputDocument',
|
||
htmlProperty: {
|
||
id: 'outputDocumentCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-outputdocuments'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-outputdocuments-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-outputdocuments",
|
||
label: {
|
||
text: "Output Documents".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.output();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-outputdocuments-create",
|
||
label: {
|
||
selector: ".mafe-menu-outputdocuments-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.output();
|
||
PMDesigner.output.create();
|
||
}
|
||
}
|
||
},
|
||
triggerCreate = {
|
||
id: 'triggerCreate',
|
||
name: 'Trigger',
|
||
htmlProperty: {
|
||
id: 'triggerCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-triggers'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-triggers-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-triggers",
|
||
label: {
|
||
text: "Triggers".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.trigger();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-triggers-create",
|
||
label: {
|
||
selector: ".mafe-menu-triggers-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.trigger();
|
||
PMDesigner.trigger.create();
|
||
}
|
||
}
|
||
},
|
||
reportTableCreate = {
|
||
id: 'reportTableCreate',
|
||
name: 'ReportTable',
|
||
htmlProperty: {
|
||
id: 'reportTableCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-reporttables'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-reporttables-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-reporttables",
|
||
label: {
|
||
text: "Report Tables".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.reporttable();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-reporttables-create",
|
||
label: {
|
||
selector: ".mafe-menu-reporttables-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.reporttable();
|
||
PMDesigner.reporttable.create();
|
||
}
|
||
}
|
||
},
|
||
databaseCreate = {
|
||
id: 'databaseCreate',
|
||
name: 'Database',
|
||
htmlProperty: {
|
||
id: 'databaseCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-databaseconnections'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-databaseconnections-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-databaseconnections",
|
||
label: {
|
||
text: "Database Connections".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.database();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-databaseconnections-create",
|
||
label: {
|
||
selector: ".mafe-menu-databaseconnections-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.database.create();
|
||
}
|
||
}
|
||
},
|
||
templateCreate = {
|
||
id: 'templateCreate',
|
||
name: 'TemplateCreate',
|
||
htmlProperty: {
|
||
id: 'templateCreate',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-templates'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-templates-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-templates",
|
||
label: {
|
||
text: "Templates".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.ProcessFilesManager("templates", "CREATION_NORMAL");
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-templates-create",
|
||
label: {
|
||
selector: ".mafe-menu-templates-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.ProcessFilesManager.createFirst("templates", "CREATION_MORE");
|
||
}
|
||
}
|
||
},
|
||
menuPublic = {
|
||
id: 'menuPublic',
|
||
name: 'MenuPublic',
|
||
htmlProperty: {
|
||
id: 'menuPublic',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-public'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-public-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-public",
|
||
label: {
|
||
text: "Public Files".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.ProcessFilesManager("public", "CREATION_NORMAL");
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-public-create",
|
||
label: {
|
||
selector: ".mafe-menu-public-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.ProcessFilesManager.createFirst("public", "CREATION_MORE");
|
||
}
|
||
}
|
||
},
|
||
menuPermission = {
|
||
id: 'menuPermission',
|
||
name: 'MenuPermission',
|
||
htmlProperty: {
|
||
id: 'menuPermission',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-permissions'
|
||
},
|
||
{
|
||
element: 'a',
|
||
class: 'btn_create mafe-menu-permissions-create',
|
||
child: [
|
||
{
|
||
element: 'span'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-permissions",
|
||
label: {
|
||
text: "Permissions".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.processPermissions();
|
||
}
|
||
},
|
||
createAction: {
|
||
selector: ".mafe-menu-permissions-create",
|
||
label: {
|
||
selector: ".mafe-menu-permissions-create span",
|
||
text: "Create".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.processPermissions.create();
|
||
}
|
||
}
|
||
},
|
||
menuCaseTracker = {
|
||
id: 'menuCaseTracker',
|
||
name: 'CaseTracker',
|
||
htmlProperty: {
|
||
id: 'menuCaseTracker',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-casetracker'
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-casetracker",
|
||
label: {
|
||
text: "Case Tracker".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.caseTracker();
|
||
}
|
||
}
|
||
},
|
||
menuSupervisor = {
|
||
id: 'menuSupervisor',
|
||
name: 'MenuSupervisor',
|
||
htmlProperty: {
|
||
id: 'menuSupervisor',
|
||
element: 'li',
|
||
child: [
|
||
{
|
||
element: 'a',
|
||
class: 'mafe-menu-supervisors'
|
||
}
|
||
]
|
||
},
|
||
actions: {
|
||
type: 'button',
|
||
selector: ".mafe-menu-supervisors",
|
||
label: {
|
||
text: "Supervisors".translate()
|
||
},
|
||
execute: true,
|
||
handler: function () {
|
||
PMDesigner.assigmentSupervisors();
|
||
}
|
||
}
|
||
};
|
||
|
||
return [
|
||
variableCreate,
|
||
messageType,
|
||
dynaformCreate,
|
||
inputDocumentCreate,
|
||
outputDocumentCreate,
|
||
triggerCreate,
|
||
reportTableCreate,
|
||
databaseCreate,
|
||
templateCreate,
|
||
menuPublic,
|
||
menuPermission,
|
||
menuCaseTracker,
|
||
menuSupervisor
|
||
];
|
||
};
|
||
|
||
/**
|
||
* @class PMUI.menu.contentControl
|
||
* Handles the content control menu of designer,
|
||
* contains all menus for content elements.
|
||
*
|
||
* @param {array} items Default items
|
||
* @constructor
|
||
*/
|
||
var ContentControl = function (items) {
|
||
ContentControl.prototype.init.call(this, items);
|
||
};
|
||
|
||
/**
|
||
* Initializes the object.
|
||
*
|
||
* @param {array} items Array with default values.
|
||
*/
|
||
ContentControl.prototype.init = function (items) {
|
||
this.items = new PMUI.util.ArrayList();
|
||
if (typeof items === 'undefined') {
|
||
items = defaultContentControlMenus();
|
||
}
|
||
for (var item in items) {
|
||
if (!items.hasOwnProperty(item)) {
|
||
continue;
|
||
}
|
||
this.items.insert(items[item]);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* This method renders HTML and actions into designer
|
||
*
|
||
*/
|
||
ContentControl.prototype.show = function () {
|
||
var item = null,
|
||
i,
|
||
max;
|
||
if (this.items instanceof Object) {
|
||
for (i = 0, max = this.items.getSize(); i < max; i += 1) {
|
||
item = this.items.get(i);
|
||
if (typeof item.htmlProperty !== "undefined") {
|
||
this.buildHtmlElement(item.htmlProperty);
|
||
}
|
||
if (typeof item.actions !== "undefined") {
|
||
new PMAction(item.actions);
|
||
}
|
||
if (typeof item.createAction !== "undefined") {
|
||
new PMAction(item.createAction);
|
||
}
|
||
}
|
||
} else {
|
||
throw new Error('Cannot show the elements of the List');
|
||
}
|
||
};
|
||
|
||
/**
|
||
* This method creates a html element button into the content
|
||
* control panel.
|
||
* @param {Object} element
|
||
* @param {HTMLElement} before
|
||
*/
|
||
ContentControl.prototype.buildHtmlElement = function (element, before) {
|
||
var ul = document.getElementById('contentControlList'),
|
||
htmlElement;
|
||
if ((typeof ul !== undefined) && (ul !== null)) {
|
||
htmlElement = this.getNodeChild(element, ul);
|
||
if (typeof before !== "undefined") {
|
||
before = document.getElementById(before);
|
||
ul.insertBefore(htmlElement, before);
|
||
} else {
|
||
ul.appendChild(htmlElement);
|
||
}
|
||
}
|
||
|
||
};
|
||
|
||
/**
|
||
* This method assembling dependent html elements to the button
|
||
* @param {Object} nodeChild
|
||
* @param {HTMLElement} nodePattern
|
||
* @returns {Element}
|
||
*/
|
||
ContentControl.prototype.getNodeChild = function (nodeChild, nodePattern) {
|
||
var node = document.createElement(nodeChild.element),
|
||
i;
|
||
if (typeof nodeChild.id !== 'undefined') {
|
||
node.setAttribute("id", nodeChild.id);
|
||
}
|
||
if (nodeChild.element === 'a') {
|
||
node.setAttribute("href", "#");
|
||
}
|
||
if (typeof(nodeChild.class) !== 'undefined') {
|
||
node.setAttribute("class", nodeChild.class);
|
||
}
|
||
if (typeof(nodeChild.child) !== 'undefined' && nodeChild.child instanceof Array) {
|
||
for (i = 0; i < nodeChild.child.length; i += 1) {
|
||
this.getNodeChild(nodeChild.child[i], node);
|
||
}
|
||
}
|
||
if (typeof(nodeChild.src) !== 'undefined') {
|
||
node.setAttribute("src", nodeChild.src);
|
||
}
|
||
if ((typeof nodePattern !== undefined) && (nodePattern !== null) && nodePattern.localName !== 'ul') {
|
||
nodePattern.appendChild(node);
|
||
}
|
||
return node;
|
||
};
|
||
|
||
/**
|
||
* This method removes an html element for the
|
||
* Content Control panel array List and delete the HTML from the designer.
|
||
* @param {String} idButton
|
||
*/
|
||
ContentControl.prototype.deleteHtmlElement = function (idButton) {
|
||
var btn = document.getElementById(idButton),
|
||
element = this.items.find("id", idButton),
|
||
remove = this.items.remove(element);
|
||
if (typeof btn !== 'undefined' && remove === true) {
|
||
btn.parentNode.removeChild(btn);
|
||
} else {
|
||
throw new Error('Cannot find the specified button: ' + idButton + '. Please, review this');
|
||
}
|
||
};
|
||
|
||
/**
|
||
* ContentControl get an instance
|
||
* @type {ContentControl}
|
||
*/
|
||
PMDesigner.contentControl = new ContentControl(defaultContentControlMenus());
|
||
|
||
/**
|
||
* Input Document module
|
||
* @param options
|
||
* @constructor
|
||
*/
|
||
var InputDocument = function (options) {
|
||
this.winMainInputDocument = null;
|
||
this.externalType = false;
|
||
this.inputDocumentOriginDataForUpdate = {};
|
||
this.windowDialog = null;
|
||
this.assignAccordion = null;
|
||
this.clickedClose = true;
|
||
this.onUpdateInputDocumentHandler = null;
|
||
InputDocument.prototype.init.call(this, options);
|
||
};
|
||
/**
|
||
* set close modulo InputDocument constructor
|
||
* @param handler, the callback function
|
||
*/
|
||
InputDocument.prototype.setOnUpdateInputDocumentHandler = function (handler) {
|
||
if (typeof handler === "function") {
|
||
this.onUpdateInputDocumentHandler = handler;
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* constructor
|
||
* @param options
|
||
*/
|
||
InputDocument.prototype.init = function (options) {
|
||
var defaults = {
|
||
onUpdateInputDocumentHandler: null
|
||
};
|
||
$.extend(true, defaults, options);
|
||
this.setOnUpdateInputDocumentHandler(defaults.onUpdateInputDocumentHandler);
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Puts input document using rest proxy, to update data
|
||
* @param inputDocumentUid
|
||
* @param data
|
||
*/
|
||
InputDocument.prototype.inputDocumentPutRestProxy = function (inputDocumentUid, data) {
|
||
var that = this,
|
||
restProxy;
|
||
|
||
restProxy = new PMRestClient({
|
||
endpoint: "input-document/" + inputDocumentUid,
|
||
typeRequest: 'update',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
var message;
|
||
if (!that.externalType) {
|
||
if (typeof flagInputDocument != 'undefined' && flagInputDocument) {
|
||
that.winMainInputDocument.close();
|
||
return;
|
||
}
|
||
that.inputDocumentsGetRestProxy();
|
||
that.openGridPanelInMainWindow();
|
||
} else {
|
||
that.winMainInputDocument.close();
|
||
message = new PMUI.ui.FlashMessage({
|
||
message: 'Input Document edited correctly.'.translate(),
|
||
duration: 3000,
|
||
severity: 'success',
|
||
appendTo: that.windowDialog
|
||
});
|
||
message.show();
|
||
}
|
||
if (typeof that.onUpdateInputDocumentHandler === "function") {
|
||
that.onUpdateInputDocumentHandler(data, that);
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Input Document updated successfully'.translate(),
|
||
flashContainer: that.grdpnlInputDocument
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
/**
|
||
* Deletes an input document
|
||
* @param inputDocumentUid
|
||
*/
|
||
InputDocument.prototype.inputDocumentDeleteRestProxy = function (inputDocumentUid) {
|
||
var that = this,
|
||
restProxy;
|
||
restProxy = new PMRestClient({
|
||
endpoint: "input-document/" + inputDocumentUid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
that.inputDocumentsGetRestProxy();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Input Document deleted successfully'.translate(),
|
||
flashContainer: that.grdpnlInputDocument
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
/**
|
||
* Creates an input document using rest proxy
|
||
* @param data
|
||
*/
|
||
InputDocument.prototype.inputDocumentPostRestProxy = function (data) {
|
||
var that = this,
|
||
restProxy;
|
||
restProxy = new PMRestClient({
|
||
endpoint: "input-document",
|
||
typeRequest: 'post',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
that.inputDocumentsGetRestProxy();
|
||
that.openGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Input Document saved successfully'.translate(),
|
||
flashContainer: that.grdpnlInputDocument
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
/**
|
||
* Gets all input documents to populate the grid
|
||
*/
|
||
InputDocument.prototype.inputDocumentsGetRestProxy = function () {
|
||
var that = this,
|
||
restProxy = new PMRestClient({
|
||
endpoint: 'input-documents',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
that.grdpnlInputDocument.setDataItems(response);
|
||
that.grdpnlInputDocument.sort('inp_doc_title', 'asc');
|
||
if (PMVariables.prototype.isWindowActive()) {
|
||
PMVariables.prototype.setInputDocumentsFromIDModule(PMUI.getPMUIObject(inp_doc_uid), response);
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
/**
|
||
* Gets an specific input document data to edit it
|
||
* @param inputDocumentUid
|
||
*/
|
||
InputDocument.prototype.inputDocumentFormGetProxy = function (inputDocumentUid) {
|
||
var that = this,
|
||
restProxy;
|
||
restProxy = new PMRestClient({
|
||
endpoint: "input-document/" + inputDocumentUid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var data = response;
|
||
that.method = "PUT";
|
||
that.openFormForEditInMainWindow(data);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
/**
|
||
* Open Edit form and sets to main windows
|
||
* @param inputDocumentData
|
||
*/
|
||
InputDocument.prototype.openFormForEditInMainWindow = function (inputDocumentData) {
|
||
var that = this;
|
||
|
||
that.inputDocumentOriginDataForUpdate = inputDocumentData;
|
||
that.inputDocumentUid = inputDocumentData.inp_doc_uid;
|
||
that.frmInputDocument.getField('inp_doc_original').setValue("");
|
||
that.winMainInputDocument.setTitle("Edit Input Document".translate());
|
||
|
||
that.frmInputDocument.getField('inp_doc_title').setValue(inputDocumentData.inp_doc_title);
|
||
that.frmInputDocument.getField('inp_doc_description').setValue(inputDocumentData.inp_doc_description);
|
||
that.frmInputDocument.getField('inp_doc_form_needed').setValue(inputDocumentData.inp_doc_form_needed);
|
||
that.frmInputDocument.getField('inp_doc_original').setValue(inputDocumentData.inp_doc_original);
|
||
|
||
if (inputDocumentData.inp_doc_form_needed !== "VIRTUAL") {
|
||
that.frmInputDocument.getField('inp_doc_original').setVisible(true);
|
||
} else {
|
||
that.frmInputDocument.getField('inp_doc_original').setVisible(false);
|
||
}
|
||
that.frmInputDocument.getField('inp_doc_versioning').setValue(parseInt(inputDocumentData.inp_doc_versioning + ""));
|
||
that.frmInputDocument.getField('inp_doc_destination_path').setValue(inputDocumentData.inp_doc_destination_path);
|
||
that.frmInputDocument.getField('inp_doc_tags').setValue(inputDocumentData.inp_doc_tags);
|
||
that.frmInputDocument.getField('inp_doc_type_file').setValue(inputDocumentData.inp_doc_type_file);
|
||
that.frmInputDocument.getField('inp_doc_max_filesize').setValue(inputDocumentData.inp_doc_max_filesize);
|
||
that.frmInputDocument.getField('inp_doc_max_filesize_unit').setValue(inputDocumentData.inp_doc_max_filesize_unit);
|
||
};
|
||
/**
|
||
* Open the grid panel and sets to mai windows
|
||
*/
|
||
InputDocument.prototype.openGridPanelInMainWindow = function () {
|
||
this.grdpnlInputDocument.setVisible(true);
|
||
this.frmInputDocument.setVisible(false);
|
||
this.winMainInputDocument.setTitle("Input Documents".translate());
|
||
this.winMainInputDocument.hideFooter();
|
||
};
|
||
/**
|
||
* Set the option external type of input Document
|
||
*/
|
||
InputDocument.prototype.setExternalType = function (value) {
|
||
if (typeof value === "boolean") {
|
||
this.externalType = value;
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* Set the option window Dialog, a window that open this class
|
||
*/
|
||
InputDocument.prototype.setWindowDialog = function (value) {
|
||
this.windowDialog = value;
|
||
return this;
|
||
};
|
||
|
||
InputDocument.prototype.setAssignAccordion = function (obj) {
|
||
this.assignAccordion = obj;
|
||
};
|
||
|
||
/**
|
||
* Open create form an sets to main windows
|
||
*/
|
||
InputDocument.prototype.openFormInMainWindow = function () {
|
||
this.grdpnlInputDocument.setVisible(false);
|
||
this.frmInputDocument.setVisible(true);
|
||
this.winMainInputDocument.setTitle("Create Input Document".translate());
|
||
this.winMainInputDocument.showFooter();
|
||
};
|
||
|
||
InputDocument.prototype.checkIfValuesAreEqual = function (initialData, finalData) {
|
||
var key1, key2;
|
||
if (!Object.keys(initialData).length && Object.keys(finalData).length) {
|
||
if (finalData['inp_doc_title'] != '' || finalData['inp_doc_form_needed'] != 'VIRTUAL' || finalData['inp_doc_description'] != '' || finalData['inp_doc_versioning'] != '0' || finalData['inp_doc_destination_path'] != '') {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
for (key1 in initialData) {
|
||
for (key2 in finalData) {
|
||
if (typeof(initialData[key1]) != "undefined" &&
|
||
typeof(finalData[key2]) != "undefined" &&
|
||
key1 == key2 &&
|
||
initialData[key1] != finalData[key2]
|
||
) {
|
||
//Return
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
};
|
||
|
||
/**
|
||
* Generate all ui components(window, form, grid, fields)
|
||
*/
|
||
|
||
InputDocument.prototype.isDirtyFormInput = function () {
|
||
$("input,select,textarea").blur();
|
||
var that = this, message_window;
|
||
if (this.frmInputDocument.isVisible()) {
|
||
if (!this.externalType) {
|
||
if (!(this.checkIfValuesAreEqual(this.inputDocumentOriginDataForUpdate, getData2PMUI(this.frmInputDocument.html)))) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
width: 490,
|
||
title: "Input Documents".translate(),
|
||
windowMessageType: 'warning',
|
||
bodyHeight: 'auto',
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: 'No'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
text: 'Yes'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
if (typeof flagInputDocument != 'undefined' && flagInputDocument) {
|
||
if (that.clickedClose) {
|
||
message_window.close();
|
||
that.winMainInputDocument.close();
|
||
return;
|
||
} else {
|
||
that.winMainInputDocument.close();
|
||
flagInputDocument = false;
|
||
}
|
||
return;
|
||
} else {
|
||
if (that.clickedClose) {
|
||
message_window.close();
|
||
that.winMainInputDocument.close();
|
||
return;
|
||
} else {
|
||
inputDocumentOption = "";
|
||
that.openGridPanelInMainWindow();
|
||
}
|
||
}
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
this.inputDocumentOriginDataForUpdate = {};
|
||
} else {
|
||
if (that.clickedClose) {
|
||
this.winMainInputDocument.close();
|
||
} else {
|
||
inputDocumentOption = "";
|
||
this.openGridPanelInMainWindow();
|
||
}
|
||
}
|
||
} else {
|
||
that.winMainInputDocument.close();
|
||
}
|
||
} else {
|
||
that.winMainInputDocument.close();
|
||
}
|
||
};
|
||
|
||
InputDocument.prototype.build = function () {
|
||
var ID = this,
|
||
btnSave,
|
||
btnCancel,
|
||
winMainInputDocument,
|
||
frmInputDocument,
|
||
grdpnlInputDocument,
|
||
btnNew,
|
||
inp_doc_destination_path,
|
||
inp_doc_tags,
|
||
that = this;
|
||
|
||
btnSave = new PMUI.ui.Button({
|
||
id: "btnSave",
|
||
text: "Save".translate(),
|
||
handler: function () {
|
||
var flagAux, data;
|
||
|
||
if (!ID.frmInputDocument.isValid()) {
|
||
flagAux = ID.frmInputDocument.visible;
|
||
} else {
|
||
flagAux = ID.frmInputDocument.isValid();
|
||
}
|
||
|
||
if (flagAux) {
|
||
if (getData2PMUI(ID.frmInputDocument.html).inp_doc_title == "") {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
if (ID.frmInputDocument.getField("inp_doc_max_filesize").getValue() != "") {
|
||
if (!/^\+?(0|[1-9]\d*)$/.test(ID.frmInputDocument.getField("inp_doc_max_filesize").getValue())) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
//validation because getData method do not work in IE
|
||
if (navigator.userAgent.indexOf("MSIE") !== -1 || navigator.userAgent.indexOf("Trident") !== -1) {
|
||
data = getData2PMUI(that.frmInputDocument.html);
|
||
} else {
|
||
data = that.frmInputDocument.getData();
|
||
}
|
||
|
||
data["inp_doc_versioning"] = parseInt(data["inp_doc_versioning"]);
|
||
|
||
switch (that.method) {
|
||
case "POST":
|
||
that.inputDocumentPostRestProxy(data);
|
||
break;
|
||
case "PUT":
|
||
that.inputDocumentPutRestProxy(that.inputDocumentUid, data);
|
||
break;
|
||
}
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
|
||
btnCancel = new PMUI.ui.Button({
|
||
id: "btnCancel",
|
||
text: "Cancel".translate(),
|
||
handler: function () {
|
||
that.clickedClose = false;
|
||
that.isDirtyFormInput();
|
||
},
|
||
buttonType: 'error'
|
||
});
|
||
btnNew = new PMUI.ui.Button({
|
||
id: "btnNew",
|
||
text: "Create".translate(),
|
||
height: "36px",
|
||
width: 100,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-button-create'
|
||
]
|
||
},
|
||
handler: function () {
|
||
that.openFormInMainWindow();
|
||
that.method = "POST";
|
||
that.frmInputDocument.reset();
|
||
}
|
||
});
|
||
|
||
/* form panel*/
|
||
this.frmInputDocument = new PMUI.form.Form({
|
||
id: "frmInputDocument",
|
||
width: 900,
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
pmType: "text",
|
||
label: "Title".translate(),
|
||
id: "inputDocTitle",
|
||
name: "inp_doc_title",
|
||
valueType: 'string',
|
||
maxLength: 200,
|
||
required: true,
|
||
controlsWidth: 300
|
||
},
|
||
{
|
||
pmType: "dropdown",
|
||
name: "inp_doc_form_needed",
|
||
id: "inputDocDocumentType",
|
||
label: "Document Type".translate(),
|
||
value: "VIRTUAL",
|
||
controlsWidth: 130,
|
||
options: [
|
||
{
|
||
value: "VIRTUAL",
|
||
label: "Digital".translate()
|
||
},
|
||
{
|
||
value: "REAL",
|
||
label: "Printed".translate()
|
||
},
|
||
{
|
||
value: "VREAL",
|
||
label: "Digital/Printed".translate()
|
||
}
|
||
],
|
||
onChange: function (newValue, prevValue) {
|
||
var fields = that.frmInputDocument.getFields();
|
||
if (newValue != "VIRTUAL") {
|
||
fields[2].setVisible(true);
|
||
} else {
|
||
fields[2].setVisible(false);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
pmType: "dropdown",
|
||
id: "inputDocDocumentType",
|
||
name: "inp_doc_original",
|
||
label: "Format".translate(),
|
||
value: "ORIGINAL",
|
||
controlsWidth: 105,
|
||
visible: false,
|
||
options: [
|
||
{
|
||
value: "ORIGINAL",
|
||
label: "Original".translate()
|
||
},
|
||
{
|
||
value: "COPYLEGAL",
|
||
label: "Legal Copy".translate()
|
||
},
|
||
{
|
||
value: "COPY",
|
||
label: "Copy".translate()
|
||
}
|
||
]
|
||
},
|
||
{
|
||
pmType: "textarea",
|
||
id: "inputDocDescription",
|
||
name: "inp_doc_description",
|
||
label: "Description".translate(),
|
||
controlsWidth: 380,
|
||
rows: 100,
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
},
|
||
{
|
||
pmType: "dropdown",
|
||
id: "inputDocEnableVersioning",
|
||
name: "inp_doc_versioning",
|
||
label: "Enable Versioning".translate(),
|
||
value: 0,
|
||
controlsWidth: 75,
|
||
options: [
|
||
{
|
||
value: 0,
|
||
label: "NO".translate(),
|
||
selected: true
|
||
},
|
||
{
|
||
value: 1,
|
||
label: "YES".translate()
|
||
}
|
||
]
|
||
}
|
||
],
|
||
buttonPanelPosition: 'top'
|
||
});
|
||
inp_doc_destination_path = new CriteriaField({
|
||
id: "inputDocDestinationPath",
|
||
name: "inp_doc_destination_path",
|
||
valueType: "string",
|
||
label: "Destination Path".translate(),
|
||
maxLength: 200,
|
||
controlsWidth: 380
|
||
});
|
||
|
||
inp_doc_tags = new CriteriaField({
|
||
id: "inputDocTags",
|
||
name: "inp_doc_tags",
|
||
valueType: "string",
|
||
label: "Tags".translate(),
|
||
maxLength: 200,
|
||
value: "INPUT",
|
||
controlsWidth: 380
|
||
});
|
||
|
||
inp_doc_allowed = new PMUI.field.TextField({
|
||
label: "Allowed file extensions (Use .* to allow any extension)".translate(),
|
||
id: "inputDocAllowedFileExtensions",
|
||
name: "inp_doc_type_file",
|
||
valueType: 'string',
|
||
maxLength: 200,
|
||
required: true,
|
||
value: ".*",
|
||
controlsWidth: 380
|
||
|
||
});
|
||
|
||
inp_doc_maximum = new PMUI.field.TextField({
|
||
label: "Maximum file size (Use zero if unlimited)".translate(),
|
||
id: "inputDocMaximumFileSize",
|
||
name: "inp_doc_max_filesize",
|
||
valueType: 'string',
|
||
maxLength: 200,
|
||
required: true,
|
||
value: "0",
|
||
controlsWidth: 380,
|
||
validators: [
|
||
{
|
||
pmType: "regexp",
|
||
criteria: /^\d*$/,
|
||
errorMessage: "Please enter a positive integer value".translate()
|
||
}
|
||
]
|
||
|
||
});
|
||
|
||
inp_doc_maximum_unit = new PMUI.field.DropDownListField({
|
||
id: "inputDocUnit",
|
||
name: "inp_doc_max_filesize_unit",
|
||
label: "Unit".translate(),
|
||
value: "ORIGINAL",
|
||
controlsWidth: 105,
|
||
visible: true,
|
||
options: [
|
||
{
|
||
value: "KB",
|
||
label: "KB".translate()
|
||
},
|
||
{
|
||
value: "MB",
|
||
label: "MB".translate()
|
||
}
|
||
]
|
||
});
|
||
|
||
that.frmInputDocument.addItem(inp_doc_destination_path);
|
||
that.frmInputDocument.addItem(inp_doc_tags);
|
||
that.frmInputDocument.addItem(inp_doc_allowed);
|
||
that.frmInputDocument.addItem(inp_doc_maximum);
|
||
that.frmInputDocument.addItem(inp_doc_maximum_unit);
|
||
|
||
/*grid panel*/
|
||
|
||
this.grdpnlInputDocument = new PMUI.grid.GridPanel({
|
||
id: "grdpnlInputDocument",
|
||
pageSize: 10,
|
||
width: "96%",
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 374,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [
|
||
{
|
||
id: 'grdpnlInputDocumentButtonShow',
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Show ID".translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-show'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData();
|
||
showUID(data.inp_doc_uid);
|
||
}
|
||
},
|
||
{
|
||
columnData: "inp_doc_title",
|
||
title: "Title".translate(),
|
||
width: "607px",
|
||
alignment: "left",
|
||
sortable: true,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
id: 'grdpnlInputDocumentButtonEdit',
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Edit".translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData();
|
||
that.inputDocumentOriginDataForUpdate = {};
|
||
that.openFormInMainWindow();
|
||
that.inputDocumentFormGetProxy(data.inp_doc_uid);
|
||
|
||
}
|
||
},
|
||
{
|
||
id: 'grdpnlInputDocumentButtonDelete',
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Delete".translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData(),
|
||
confirmWindow;
|
||
confirmWindow = new PMUI.ui.MessageWindow({
|
||
id: "inputMessageWindowWarning",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: "Input Documents".translate(),
|
||
message: "Do you want to delete this Input Document?".translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'confirmWindowButtonNo',
|
||
text: "No".translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'confirmWindowButtonYes',
|
||
text: "Yes".translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
that.inputDocumentDeleteRestProxy(data.inp_doc_uid);
|
||
confirmWindow.close();
|
||
confirmWindow.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
confirmWindow.open();
|
||
confirmWindow.dom.titleContainer.style.height = "17px";
|
||
confirmWindow.showFooter();
|
||
}
|
||
}
|
||
],
|
||
dataItems: null
|
||
});
|
||
/* main windows */
|
||
this.winMainInputDocument = new PMUI.ui.Window({
|
||
id: "winMainInputDocument",
|
||
title: "Input Documents".translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
buttonPanelPosition: 'bottom',
|
||
footerAlign: 'right',
|
||
visibleFooter: true,
|
||
footerItems: [
|
||
btnCancel,
|
||
btnSave
|
||
],
|
||
onBeforeClose: function () {
|
||
that.clickedClose = true;
|
||
that.isDirtyFormInput();
|
||
}
|
||
});
|
||
// add form and grid to windows
|
||
this.winMainInputDocument.addItem(this.grdpnlInputDocument);
|
||
this.winMainInputDocument.addItem(this.frmInputDocument);
|
||
this.winMainInputDocument.open();
|
||
//custom css
|
||
this.frmInputDocument.getField("inp_doc_type_file").html.style.padding = "6px 0";
|
||
this.frmInputDocument.getField("inp_doc_type_file").html.style.float = "left";
|
||
this.frmInputDocument.getField("inp_doc_max_filesize").html.style.padding = "6px 0";
|
||
this.frmInputDocument.getField("inp_doc_max_filesize").html.style.float = "left";
|
||
this.frmInputDocument.getField("inp_doc_max_filesize_unit").html.style.padding = "6px 0";
|
||
this.frmInputDocument.getField("inp_doc_max_filesize_unit").html.style.float = "left";
|
||
this.grdpnlInputDocument.setVisible(true);
|
||
this.frmInputDocument.setVisible(false);
|
||
this.winMainInputDocument.hideFooter();
|
||
/* insert create button to grid*/
|
||
this.grdpnlInputDocument.dom.toolbar.appendChild(btnNew.getHTML());
|
||
btnNew.defineEvents();
|
||
this.inputDocumentsGetRestProxy();
|
||
};
|
||
|
||
(function () {
|
||
|
||
var loadValuesStartTimer, openForm, updateStatus;
|
||
|
||
PMDesigner.startTimer = function (element) {
|
||
|
||
var startTimer = element,
|
||
restClient,
|
||
loadServerData,
|
||
listUsers,
|
||
itemsDaly,
|
||
itemsWeekly,
|
||
loadOptionsRadio,
|
||
itemsMonthly,
|
||
itemsOneTime,
|
||
itemsEvery,
|
||
showProperties,
|
||
updateCaseScheduler,
|
||
buttonCancel,
|
||
loadUsers,
|
||
loadDataForm,
|
||
formCreateCaseScheduler,
|
||
schedulerListWindow,
|
||
buttonSave,
|
||
dataForm;
|
||
|
||
loadValuesStartTimer = function ($flag) {
|
||
listUsers = [];
|
||
dataForm = [];
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'activity/' + startTimer.ports.get(0).connection.flo_element_dest + '/assignee/all',
|
||
method: 'GET'
|
||
},
|
||
{
|
||
url: 'case-scheduler/' + startTimer.evn_uid,
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
listUsers = response[0].response;
|
||
dataForm = response[1].response;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: [null, 'There are problems loading the Start Timer, please try again.'.translate()]
|
||
});
|
||
restClient.executeRestClient();
|
||
if ($flag) {
|
||
return listUsers.length;
|
||
}
|
||
return true;
|
||
};
|
||
|
||
updateCaseScheduler = function (data) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: 'case-scheduler/' + startTimer.evn_uid,
|
||
typeRequest: 'update',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
formCreateCaseScheduler.reset();
|
||
schedulerListWindow.close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Start Timer updated successfully'.translate(),
|
||
messageError: 'There are problems updating the Start Timer, please try again.'.translate(),
|
||
flashContainer: document.body
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
updateStatus = function () {
|
||
var status = (typeof dataForm.sch_state !== 'undefined') ? ((dataForm.sch_state === 'ACTIVE') ? 'INACTIVE' : 'ACTIVE') : 'INACTIVE';
|
||
dataForm.sch_state = status;
|
||
updateCaseScheduler(dataForm);
|
||
};
|
||
|
||
//Items for the form Create and edit Case Scheduler
|
||
itemsDaly = [
|
||
{
|
||
pmType: 'panel',
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
id: 'startDate',
|
||
pmType: 'datetime',
|
||
label: 'Start date'.translate(),
|
||
value: '',
|
||
returnFormat: 'yy-mm-dd',
|
||
required: true,
|
||
dateFormat: 'yy mm dd',
|
||
dateTime: false,
|
||
name: 'startDate',
|
||
valueType: 'date',
|
||
labelWidth: '26%'
|
||
},
|
||
{
|
||
id: 'endDate',
|
||
pmType: 'datetime',
|
||
label: 'End date'.translate(),
|
||
value: '',
|
||
returnFormat: 'yy-mm-dd',
|
||
required: false,
|
||
dateFormat: 'yy mm dd',
|
||
dateTime: false,
|
||
name: 'endDate',
|
||
valueType: 'date'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'execttime',
|
||
pmType: 'text',
|
||
label: 'Execution time'.translate(),
|
||
value: '',
|
||
required: true,
|
||
name: 'execttime',
|
||
placeholder: '(HH:MM) Format 24 hrs.'.translate(),
|
||
valueType: 'string',
|
||
validators: [{
|
||
pmType: 'regexp',
|
||
criteria: /^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/,
|
||
errorMessage: 'Please enter a valid hour.'.translate()
|
||
}
|
||
],
|
||
helper: 'Example: 1:00, 14:30, 00:00'
|
||
}
|
||
];
|
||
|
||
itemsWeekly = [
|
||
{
|
||
pmType: 'panel',
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
id: 'startDate',
|
||
pmType: 'datetime',
|
||
label: 'Start date'.translate(),
|
||
value: '',
|
||
returnFormat: 'yy-mm-dd',
|
||
required: true,
|
||
dateFormat: 'yy mm dd',
|
||
dateTime: false,
|
||
name: 'startDate',
|
||
valueType: 'date',
|
||
labelWidth: '26%'
|
||
},
|
||
{
|
||
id: 'endDate',
|
||
pmType: 'datetime',
|
||
label: 'End date'.translate(),
|
||
value: '',
|
||
returnFormat: 'yy-mm-dd',
|
||
required: false,
|
||
dateFormat: 'yy mm dd',
|
||
dateTime: false,
|
||
name: 'endDate',
|
||
valueType: 'date'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'execttime',
|
||
pmType: 'text',
|
||
label: 'Execution time'.translate(),
|
||
value: '',
|
||
required: true,
|
||
name: 'execttime',
|
||
placeholder: '(HH:MM) Format 24 hrs.'.translate(),
|
||
valueType: 'string',
|
||
validators: [{
|
||
pmType: 'regexp',
|
||
criteria: /^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/,
|
||
errorMessage: 'Please enter a valid hour.'.translate()
|
||
}
|
||
],
|
||
helper: 'Example: 1:00, 14:30, 00:00'
|
||
},
|
||
{
|
||
id: 'daysoftheweek',
|
||
pmType: 'checkbox',
|
||
label: 'Select the day(s) of the week below'.translate(),
|
||
value: '',
|
||
name: 'daysoftheweek',
|
||
required: false,
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 3,
|
||
options: [
|
||
{
|
||
id: 'monday',
|
||
label: 'Monday'.translate(),
|
||
value: '1'
|
||
},
|
||
{
|
||
id: 'tuesday',
|
||
label: 'Tuesday'.translate(),
|
||
value: '2'
|
||
},
|
||
{
|
||
id: 'wednesday',
|
||
label: 'Wednesday'.translate(),
|
||
value: '3'
|
||
},
|
||
{
|
||
id: 'thursday',
|
||
label: 'Thursday'.translate(),
|
||
value: '4'
|
||
},
|
||
{
|
||
id: 'friday',
|
||
label: 'Friday'.translate(),
|
||
value: '5'
|
||
},
|
||
{
|
||
id: 'saturday',
|
||
label: 'Saturday'.translate(),
|
||
value: '6'
|
||
},
|
||
{
|
||
id: 'sunday',
|
||
label: 'Sunday'.translate(),
|
||
value: '7'
|
||
}
|
||
]
|
||
}
|
||
];
|
||
|
||
loadOptionsRadio = function (newVal) {
|
||
var paneldaysofMonth = formCreateCaseScheduler.getItems()[1].getItems()[2].getItems()[1];
|
||
paneldaysofMonth.setVisible(true);
|
||
if (newVal === 'dayofmonth') {
|
||
paneldaysofMonth.getItems()[0].setVisible(true);
|
||
paneldaysofMonth.getItems()[1].setVisible(false);
|
||
} else if (newVal === 'day') {
|
||
paneldaysofMonth.getItems()[0].setVisible(false);
|
||
paneldaysofMonth.getItems()[1].setVisible(true);
|
||
}
|
||
};
|
||
|
||
itemsMonthly = [
|
||
{
|
||
pmType: 'panel',
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
id: 'startDate',
|
||
pmType: 'datetime',
|
||
label: 'Start date'.translate(),
|
||
value: '',
|
||
returnFormat: 'yy-mm-dd',
|
||
required: true,
|
||
dateFormat: 'yy mm dd',
|
||
datetime: false,
|
||
name: 'startDate',
|
||
valueType: 'date',
|
||
labelWidth: '26%'
|
||
},
|
||
{
|
||
id: 'endDate',
|
||
pmType: 'datetime',
|
||
label: 'End date'.translate(),
|
||
value: '',
|
||
returnFormat: 'yy-mm-dd',
|
||
required: false,
|
||
dateFormat: 'yy mm dd',
|
||
datetime: false,
|
||
name: 'endDate',
|
||
valueType: 'date'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'execttime',
|
||
pmType: 'text',
|
||
label: 'Execution time'.translate(),
|
||
value: '',
|
||
required: true,
|
||
name: 'execttime',
|
||
placeholder: '(HH:MM) Format 24 hrs.'.translate(),
|
||
valueType: 'string',
|
||
controlsWidth: 580,
|
||
validators: [{
|
||
pmType: 'regexp',
|
||
criteria: /^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/,
|
||
errorMessage: 'Please enter a valid hour.'.translate()
|
||
}
|
||
],
|
||
helper: 'Example: 1:00, 14:30, 00:00'
|
||
},
|
||
{
|
||
pmType: 'panel',
|
||
id: 'panelDays',
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
id: 'options',
|
||
pmType: 'radio',
|
||
label: '',
|
||
value: '',
|
||
name: 'options',
|
||
required: false,
|
||
controlPositioning: 'vertical',
|
||
maxDirectionOptions: 4,
|
||
options: [
|
||
{
|
||
id: 'dayMonth',
|
||
label: 'Day of month'.translate(),
|
||
value: 'dayofmonth'
|
||
},
|
||
{
|
||
id: 'day',
|
||
label: 'The day'.translate(),
|
||
value: 'day'
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
loadOptionsRadio(newVal);
|
||
},
|
||
labelWidth: '46%'
|
||
},
|
||
{
|
||
pmType: 'panel',
|
||
id: 'paneldaysofMonth',
|
||
layout: 'vbox',
|
||
items: [
|
||
{
|
||
id: 'dayoftheMonth',
|
||
pmType: 'text',
|
||
label: '',
|
||
value: '',
|
||
placeholder: 'Day of the month (example: 1)'.translate(),
|
||
required: false,
|
||
name: 'dayMonth',
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
pmType: 'panel',
|
||
id: 'panelmonth',
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
id: 'first',
|
||
pmType: 'dropdown',
|
||
label: '',
|
||
value: '',
|
||
required: false,
|
||
name: 'first',
|
||
valueType: 'string',
|
||
options: [
|
||
{
|
||
label: 'First'.translate(),
|
||
value: '1'
|
||
},
|
||
{
|
||
label: 'Second'.translate(),
|
||
value: '2'
|
||
},
|
||
{
|
||
label: 'Third'.translate(),
|
||
value: '3'
|
||
},
|
||
{
|
||
label: 'Fourth'.translate(),
|
||
value: '4'
|
||
},
|
||
{
|
||
label: 'Last'.translate(),
|
||
value: '5'
|
||
}
|
||
],
|
||
controlsWidth: 100
|
||
},
|
||
{
|
||
id: 'day',
|
||
pmType: 'dropdown',
|
||
label: '',
|
||
value: '',
|
||
required: false,
|
||
name: 'day',
|
||
valueType: 'string',
|
||
options: [
|
||
{
|
||
label: 'Monday'.translate(),
|
||
value: '1'
|
||
},
|
||
{
|
||
label: 'Tuesday'.translate(),
|
||
value: '2'
|
||
},
|
||
{
|
||
label: 'Wednesday'.translate(),
|
||
value: '3'
|
||
},
|
||
{
|
||
label: 'Thursday'.translate(),
|
||
value: '4'
|
||
},
|
||
{
|
||
label: 'Friday'.translate(),
|
||
value: '5'
|
||
},
|
||
{
|
||
label: 'Saturday'.translate(),
|
||
value: '6'
|
||
},
|
||
{
|
||
label: 'Sunday'.translate(),
|
||
value: '7'
|
||
}
|
||
],
|
||
controlsWidth: 100
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'months',
|
||
pmType: 'checkbox',
|
||
label: 'Of the month(s)'.translate(),
|
||
value: '',
|
||
name: 'months',
|
||
required: false,
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 4,
|
||
options: [
|
||
{
|
||
id: 'jan',
|
||
label: 'Jan'.translate(),
|
||
value: '1'
|
||
},
|
||
{
|
||
id: 'feb',
|
||
label: 'Feb'.translate(),
|
||
value: '2'
|
||
},
|
||
{
|
||
id: 'mar',
|
||
label: 'Mar'.translate(),
|
||
value: '3'
|
||
},
|
||
{
|
||
id: 'apr',
|
||
label: 'Apr'.translate(),
|
||
value: '4'
|
||
},
|
||
{
|
||
id: 'may',
|
||
label: 'May'.translate(),
|
||
value: '5'
|
||
},
|
||
{
|
||
id: 'jun',
|
||
label: 'Jun'.translate(),
|
||
value: '6'
|
||
},
|
||
{
|
||
id: 'jul',
|
||
label: 'Jul'.translate(),
|
||
value: '7'
|
||
},
|
||
{
|
||
id: 'aug',
|
||
label: 'Aug'.translate(),
|
||
value: '8'
|
||
},
|
||
{
|
||
id: 'sep',
|
||
label: 'Sep'.translate(),
|
||
value: '9'
|
||
},
|
||
{
|
||
id: 'oct',
|
||
label: 'Oct'.translate(),
|
||
value: '10'
|
||
},
|
||
{
|
||
id: 'nov',
|
||
label: 'Nov'.translate(),
|
||
value: '11'
|
||
},
|
||
{
|
||
id: 'dec',
|
||
label: 'Dec'.translate(),
|
||
value: '12'
|
||
}
|
||
]
|
||
}
|
||
];
|
||
|
||
itemsOneTime = [{
|
||
id: 'execttime',
|
||
pmType: 'text',
|
||
label: 'Execution time'.translate(),
|
||
value: '',
|
||
required: true,
|
||
name: 'execttime',
|
||
placeholder: '(HH:MM) Format 24 hrs.'.translate(),
|
||
valueType: 'string',
|
||
validators: [{
|
||
pmType: 'regexp',
|
||
criteria: /^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/,
|
||
errorMessage: 'Please enter a valid hour.'.translate()
|
||
}
|
||
],
|
||
helper: 'Example: 1:00, 14:30, 00:00'
|
||
}];
|
||
|
||
itemsEvery = [{
|
||
id: 'execttime',
|
||
pmType: 'text',
|
||
label: 'Execute every Hour(s)'.translate(),
|
||
value: '',
|
||
required: true,
|
||
name: 'execttime',
|
||
valueType: 'string',
|
||
placeholder: '(HH:MM) Format 24 hrs.'.translate(),
|
||
validators: [{
|
||
pmType: 'regexp',
|
||
criteria: /^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/,
|
||
errorMessage: 'Please enter a valid hour.'.translate()
|
||
}
|
||
],
|
||
helper: 'Example: 1:00, 14:30, 00:00'
|
||
}];
|
||
|
||
showProperties = function (newValue) {
|
||
switch (newValue) {
|
||
case 'daily':
|
||
formCreateCaseScheduler.getItems()[1].clearItems();
|
||
formCreateCaseScheduler.getItems()[1].setVisible(true);
|
||
formCreateCaseScheduler.getItems()[1].setItems(itemsDaly);
|
||
break;
|
||
case 'weekly':
|
||
formCreateCaseScheduler.getItems()[1].clearItems();
|
||
formCreateCaseScheduler.getItems()[1].setVisible(true);
|
||
formCreateCaseScheduler.getItems()[1].setItems(itemsWeekly);
|
||
break;
|
||
case 'monthly':
|
||
formCreateCaseScheduler.getItems()[1].clearItems();
|
||
formCreateCaseScheduler.getItems()[1].setVisible(true);
|
||
formCreateCaseScheduler.getItems()[1].setItems(itemsMonthly);
|
||
var paneldaysofMonth = formCreateCaseScheduler.getItems()[1].getItems()[2].getItems()[1];
|
||
paneldaysofMonth.setVisible(false);
|
||
formCreateCaseScheduler.getItems()[1].getItems()[2].getItems()[0].hideColon();
|
||
paneldaysofMonth.getItems()[0].hideColon();
|
||
paneldaysofMonth.getItems()[1].getItems()[0].hideColon();
|
||
paneldaysofMonth.getItems()[1].getItems()[1].hideColon();
|
||
break;
|
||
case 'oneTime':
|
||
formCreateCaseScheduler.getItems()[1].clearItems();
|
||
formCreateCaseScheduler.getItems()[1].setVisible(true);
|
||
formCreateCaseScheduler.getItems()[1].setItems(itemsOneTime);
|
||
break;
|
||
case 'every':
|
||
formCreateCaseScheduler.getItems()[1].clearItems();
|
||
formCreateCaseScheduler.getItems()[1].setVisible(true);
|
||
formCreateCaseScheduler.getItems()[1].setItems(itemsEvery);
|
||
validateKeysField(formCreateCaseScheduler.getField('execttime').getControls()[0].getHTML(), ['isnumber', 'iscolon']);
|
||
break;
|
||
}
|
||
};
|
||
|
||
//Form to Edit and create the Case Scheduler
|
||
formCreateCaseScheduler = new PMUI.form.Form({
|
||
id: 'formCreateCaseScheduler',
|
||
border: false,
|
||
visibleHeader: false,
|
||
width: '925px',
|
||
name: 'formcreate',
|
||
title: '',
|
||
items: [
|
||
{
|
||
id: 'panelProperties',
|
||
pmType: 'panel',
|
||
layout: 'vbox',
|
||
fieldset: true,
|
||
height: '350px',
|
||
legend: 'Properties'.translate(),
|
||
items: [
|
||
{
|
||
id: 'state',
|
||
pmType: 'dropdown',
|
||
label: 'Status'.translate(),
|
||
name: 'state',
|
||
required: true,
|
||
value: '',
|
||
controlsWidth: 150,
|
||
options: [
|
||
{
|
||
value: 'ACTIVE',
|
||
label: 'Active'.translate()
|
||
},
|
||
{
|
||
value: 'INACTIVE',
|
||
label: 'Inactive'.translate()
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'username',
|
||
pmType: 'dropdown',
|
||
label: 'User'.translate(),
|
||
name: 'username',
|
||
required: true,
|
||
controlsWidth: 300,
|
||
value: '',
|
||
options: [],
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
},
|
||
{
|
||
id: 'name',
|
||
pmType: 'text',
|
||
label: 'Name'.translate(),
|
||
value: startTimer.evn_name,
|
||
required: true,
|
||
name: 'name',
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: 'performTask',
|
||
pmType: 'dropdown',
|
||
label: 'Perform this task'.translate(),
|
||
name: 'performTask',
|
||
required: true,
|
||
value: '',
|
||
controlsWidth: 300,
|
||
options: [
|
||
{
|
||
label: '- Select -'.translate(),
|
||
value: '',
|
||
disabled: true,
|
||
selected: true
|
||
},
|
||
{
|
||
value: 'daily',
|
||
label: 'Daily'.translate()
|
||
},
|
||
{
|
||
value: 'weekly',
|
||
label: 'Weekly'.translate()
|
||
},
|
||
{
|
||
value: 'monthly',
|
||
label: 'Monthly'.translate()
|
||
},
|
||
{
|
||
value: 'oneTime',
|
||
label: 'One Time Only'.translate()
|
||
},
|
||
{
|
||
value: 'every',
|
||
label: 'Every'.translate()
|
||
}
|
||
],
|
||
onChange: function (newValue, prevValue) {
|
||
showProperties(newValue);
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'panelSelectDate',
|
||
pmType: 'panel',
|
||
layout: 'vbox',
|
||
fieldset: true,
|
||
visible: false,
|
||
height: '350px',
|
||
legend: 'Select the date and time for case(s) to be initiated.'.translate(),
|
||
items: []
|
||
}
|
||
]
|
||
});
|
||
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'cancelSchedulerButton',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
handler: function (event) {
|
||
if (formCreateCaseScheduler.isDirty()) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
id: 'cancelMessageStartTimer',
|
||
title: 'Start Timer Event'.translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: 'No'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: 'Yes'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
schedulerListWindow.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
formCreateCaseScheduler.reset();
|
||
schedulerListWindow.close();
|
||
}
|
||
}
|
||
});
|
||
|
||
//Window Buttons
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'saveSchedulerButton',
|
||
text: 'Save'.translate(),
|
||
height: 31,
|
||
buttonType: 'success',
|
||
handler: function (event) {
|
||
if (formCreateCaseScheduler.isValid()) {
|
||
var dataFormCreate = formCreateCaseScheduler.getData();
|
||
|
||
var dataToSend = {
|
||
sch_del_user_name: dataFormCreate.username,
|
||
sch_name: startTimer.evn_name,
|
||
tas_uid: startTimer.ports.get(0).connection.flo_element_dest,
|
||
sch_start_time: '',
|
||
sch_start_date: '',
|
||
sch_week_days: '',
|
||
sch_start_day: '',
|
||
sch_start_day_opt_1: '',
|
||
sch_start_day_opt_2: '',
|
||
sch_months: '',
|
||
sch_end_date: '',
|
||
sch_repeat_every: '',
|
||
sch_state: (dataFormCreate.state !== '') ? dataFormCreate.state : 'ACTIVE',
|
||
sch_option: ''
|
||
};
|
||
|
||
var perform = dataFormCreate.performTask;
|
||
switch (perform) {
|
||
case 'daily':
|
||
dataToSend.sch_option = '1';
|
||
dataToSend.sch_start_time = dataFormCreate.execttime;
|
||
dataToSend.sch_start_date = dataFormCreate.startDate;
|
||
dataToSend.sch_end_date = dataFormCreate.endDate;
|
||
break;
|
||
case 'weekly':
|
||
var formdays = eval(dataFormCreate.daysoftheweek);
|
||
var days = '';
|
||
for (i = 0; i < formdays.length; i += 1) {
|
||
if (i !== (formdays.length - 1)) {
|
||
days += formdays[i] + '|';
|
||
} else {
|
||
days += formdays[i];
|
||
}
|
||
}
|
||
|
||
dataToSend.sch_option = '2';
|
||
dataToSend.sch_start_time = dataFormCreate.execttime;
|
||
dataToSend.sch_start_date = dataFormCreate.startDate;
|
||
dataToSend.sch_end_date = dataFormCreate.endDate;
|
||
dataToSend.sch_week_days = days;
|
||
break;
|
||
case 'monthly':
|
||
dataToSend.sch_option = '3';
|
||
dataToSend.sch_start_time = dataFormCreate.execttime;
|
||
dataToSend.sch_start_date = dataFormCreate.startDate;
|
||
dataToSend.sch_end_date = dataFormCreate.endDate;
|
||
if (dataFormCreate.options === 'dayofmonth') {
|
||
var formmonths = eval(dataFormCreate.months);
|
||
var months = '';
|
||
for (i = 0; i < formmonths.length; i += 1) {
|
||
if (i !== (formmonths.length - 1)) {
|
||
months += formmonths[i] + '|';
|
||
} else {
|
||
months += formmonths[i];
|
||
}
|
||
}
|
||
dataToSend.sch_start_day = '1'; //Day of month
|
||
dataToSend.sch_start_day_opt_1 = dataFormCreate.dayMonth;//1 to 31 - day of the month
|
||
} else if (dataFormCreate.options === 'day') {
|
||
var opt2 = dataFormCreate.first + '|' + dataFormCreate.day;
|
||
var formmonths = eval(dataFormCreate.months);
|
||
var months = '';
|
||
for (i = 0; i < formmonths.length; i += 1) {
|
||
if (i !== (formmonths.length - 1)) {
|
||
months += formmonths[i] + '|';
|
||
} else {
|
||
months += formmonths[i];
|
||
}
|
||
}
|
||
dataToSend.sch_start_day = '2'; //Day of month
|
||
dataToSend.sch_start_day_opt_2 = opt2;//1 to 31 - day of the month
|
||
|
||
}
|
||
dataToSend.sch_months = months;
|
||
break;
|
||
case 'oneTime':
|
||
dataToSend.sch_option = '4';
|
||
dataToSend.sch_start_time = dataFormCreate.execttime;
|
||
break;
|
||
case 'every':
|
||
dataToSend.sch_option = '5';
|
||
dataToSend.sch_repeat_every = timeToDecimal(dataFormCreate.execttime).toFixed(2);
|
||
break;
|
||
}
|
||
updateCaseScheduler(dataToSend);
|
||
}
|
||
}
|
||
});
|
||
|
||
//load users
|
||
loadUsers = function () {
|
||
var field = formCreateCaseScheduler.getField('username');
|
||
field.clearOptions();
|
||
for (var i = 0; i < listUsers.length; i += 1) {
|
||
field.addOption({
|
||
value: listUsers[i].aas_username,
|
||
label: listUsers[i].aas_name + ' ' + listUsers[i].aas_lastname
|
||
});
|
||
}
|
||
};
|
||
|
||
loadDataForm = function () {
|
||
var loadTime,
|
||
option,
|
||
daysVal,
|
||
monthsVal,
|
||
monthsop,
|
||
days,
|
||
i,
|
||
startTime,
|
||
finallyST,
|
||
dataEdit;
|
||
|
||
loadTime = function (dataEdit, dataForm) {
|
||
var starDate,
|
||
startTime,
|
||
finallyST,
|
||
endDate;
|
||
starDate = dataForm.sch_start_date ? dataForm.sch_start_date.split(' ') : [''];
|
||
endDate = dataForm.sch_end_date ? dataForm.sch_end_date.split(' ') : [''];
|
||
|
||
startTime = dataForm.sch_start_time.split(' ');
|
||
startTime = startTime[1].split(':');
|
||
finallyST = startTime[0] + ':' + startTime[1];
|
||
dataEdit[4].setValue(starDate[0]);
|
||
dataEdit[5].setValue(endDate[0]);
|
||
dataEdit[6].setValue(finallyST);
|
||
};
|
||
|
||
dataEdit = formCreateCaseScheduler.getFields();
|
||
|
||
dataEdit[0].setValue(dataForm.sch_state);
|
||
dataEdit[1].setValue(dataForm.sch_del_user_name);
|
||
option = 'daily';
|
||
switch (dataForm.sch_option) {
|
||
case '1':
|
||
option = 'daily';
|
||
dataEdit[3].setValue(option);
|
||
showProperties(option);
|
||
dataEdit = formCreateCaseScheduler.getFields();
|
||
loadTime(dataEdit, dataForm);
|
||
break;
|
||
case '2':
|
||
option = 'weekly';
|
||
dataEdit[3].setValue(option);
|
||
showProperties(option);
|
||
dataEdit = formCreateCaseScheduler.getFields();
|
||
loadTime(dataEdit, dataForm);
|
||
|
||
daysVal = "[\"";
|
||
days = dataForm.sch_week_days.split('|');
|
||
for (i = 0; i < days.length; i += 1) {
|
||
if (i !== (days.length - 1)) {
|
||
daysVal += days[i] + "\",\"";
|
||
} else {
|
||
daysVal += days[i] + "\"]";
|
||
}
|
||
}
|
||
dataEdit[7].setValue(daysVal);
|
||
break;
|
||
case '3':
|
||
option = 'monthly';
|
||
dataEdit[3].setValue(option);
|
||
showProperties(option);
|
||
dataEdit = formCreateCaseScheduler.getFields();
|
||
loadTime(dataEdit, dataForm);
|
||
days = [];
|
||
if (dataForm.sch_start_day !== '') {
|
||
days = dataForm.sch_start_day.split('|');
|
||
}
|
||
|
||
if (days[0] === '1') {
|
||
dataEdit[7].setValue('dayofmonth');
|
||
loadOptionsRadio('dayofmonth');
|
||
dataEdit[8].setValue(days[1]);
|
||
} else if (days[0] === '2') {
|
||
dataEdit[7].setValue('day');
|
||
loadOptionsRadio('day');
|
||
dataEdit[9].setValue(days[1]);
|
||
dataEdit[10].setValue(days[2]);
|
||
}
|
||
monthsVal = "[\"";
|
||
monthsop = dataForm.sch_months.split('|');
|
||
for (i = 0; i < monthsop.length; i += 1) {
|
||
if (i !== (monthsop.length - 1)) {
|
||
monthsVal += monthsop[i] + "\",\"";
|
||
} else {
|
||
monthsVal += monthsop[i] + "\"]";
|
||
}
|
||
}
|
||
dataEdit[11].setValue(monthsVal);
|
||
break;
|
||
case '4':
|
||
option = 'oneTime';
|
||
dataEdit[3].setValue(option);
|
||
showProperties(option);
|
||
dataEdit = formCreateCaseScheduler.getFields();
|
||
startTime = dataForm.sch_start_time.split(' ');
|
||
startTime = startTime[1].split(':');
|
||
finallyST = startTime[0] + ':' + startTime[1];
|
||
dataEdit[4].setValue(finallyST);
|
||
break;
|
||
case '5':
|
||
option = 'every';
|
||
dataEdit[3].setValue(option);
|
||
showProperties(option);
|
||
dataEdit = formCreateCaseScheduler.getFields();
|
||
dataEdit[4].setValue(decimalToTime(parseFloat(dataForm.sch_repeat_every)));
|
||
break;
|
||
}
|
||
};
|
||
|
||
//Main window Case Scheduler
|
||
schedulerListWindow = new PMUI.ui.Window({
|
||
id: 'schedulerListWindow',
|
||
title: 'Start Timer Event'.translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
buttonPanelPosition: 'top',
|
||
buttons: [
|
||
buttonSave,
|
||
{pmType: 'label', text: 'or'},
|
||
buttonCancel
|
||
]
|
||
});
|
||
|
||
openForm = function () {
|
||
schedulerListWindow.addItem(formCreateCaseScheduler);
|
||
schedulerListWindow.open();
|
||
loadUsers();
|
||
loadDataForm();
|
||
applyStyleWindowForm(schedulerListWindow);
|
||
schedulerListWindow.showFooter();
|
||
schedulerListWindow.defineEvents();
|
||
};
|
||
};
|
||
|
||
PMDesigner.startTimer.openForm = function (element) {
|
||
openForm();
|
||
};
|
||
|
||
PMDesigner.startTimer.validate = function (element) {
|
||
if (element.ports.isEmpty()) {
|
||
PMDesigner.msgFlash('Must connect to a Task'.translate(), document.body, 'error', 3000, 5);
|
||
return false;
|
||
}
|
||
PMDesigner.startTimer(element);
|
||
if (loadValuesStartTimer(true) === 0) {
|
||
PMDesigner.msgFlash('The task doesn\'t have assigned users'.translate(), document.body, 'info', 3000, 5);
|
||
return false;
|
||
}
|
||
return true;
|
||
};
|
||
|
||
}());
|
||
(
|
||
function () {
|
||
var dataBaseConnectionOption,
|
||
winFrmDataBaseConnectionShow,
|
||
frmDataBaseConnection,
|
||
closeClicked = true;
|
||
|
||
PMDesigner.database = function (event) {
|
||
var winGrdpnlDataBaseConnection,
|
||
panelTest,
|
||
grdpnlDataBaseConnection,
|
||
flagError,
|
||
titleOld,
|
||
btnNew,
|
||
btnTestConnection,
|
||
btnCreate,
|
||
btnCancel,
|
||
testShow,
|
||
isDirtyFrmDataBaseConnection,
|
||
showForm,
|
||
listDBConnection,
|
||
refreshGridPanelInMainWindow,
|
||
dataBaseConnectionsGetRestProxy,
|
||
dataBaseConnectionPostTestRestProxy,
|
||
dataBaseConnectionGetRestProxy,
|
||
dataBaseConnectionPutRestProxy,
|
||
dataBaseConnectionDeleteRestProxy,
|
||
dataBaseConnectionPostRestProxy,
|
||
cboEngineSetOptionsRestProxy,
|
||
showEncoderOptions,
|
||
hideEncoderOptions,
|
||
cboConnectionTypeOracleSetOptions,
|
||
cboEncodeSetOptionsRestProxy,
|
||
winFrmDataBaseConnectionShow,
|
||
cboEngine,
|
||
txtUID,
|
||
cboEncode,
|
||
txtTns,
|
||
txtServer,
|
||
txtDataBaseName,
|
||
disableAllItems,
|
||
txtUsername,
|
||
txtPassword,
|
||
txtPort,
|
||
btnBack,
|
||
txtDescription,
|
||
cboConnectionTypeOracle,
|
||
dataBaseConnectionData;
|
||
|
||
disableAllItems = function () {
|
||
winGrdpnlDataBaseConnection.getItems()[0].setVisible(false);
|
||
winGrdpnlDataBaseConnection.getItems()[1].setVisible(false);
|
||
winGrdpnlDataBaseConnection.getItems()[2].setVisible(false);
|
||
|
||
txtUID.setVisible(false);
|
||
btnTestConnection.setVisible(false);
|
||
btnBack.setVisible(false);
|
||
btnCreate.setVisible(false);
|
||
btnCancel.setVisible(false);
|
||
};
|
||
|
||
testShow = function (testData) {
|
||
var msg = "", titleSummary, style, i, flag;
|
||
flagError = 0;
|
||
disableAllItems();
|
||
titleOld = winGrdpnlDataBaseConnection.getTitle();
|
||
winGrdpnlDataBaseConnection.setTitle("Testing Server Connection".translate());
|
||
winGrdpnlDataBaseConnection.getItems()[2].setVisible(true);
|
||
|
||
for (i = 0; i <= testData.length - 1; i += 1) {
|
||
flag = (typeof(testData[i].error) != "undefined") ? 1 : 0;
|
||
if (flag != 1) {
|
||
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em;\" />" + testData[i].test + "<br />";
|
||
} else {
|
||
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData[i].error + "<br />";
|
||
}
|
||
|
||
if (typeof(testData[i].error) != "undefined" && flagError == 0) {
|
||
flagError = 1;
|
||
}
|
||
}
|
||
if (flag == 0) {
|
||
btnCreate.setVisible(true);
|
||
btnBack.setVisible(true);
|
||
} else {
|
||
btnBack.setVisible(true);
|
||
}
|
||
|
||
titleSummary = "<div style=\"margin: 1em 1em 0.5em 1em; padding: 0 2em 0 2em; border: 2px solid #AFC5D0; background:#D7ECF1; font: bold 1em arial; text-align: center; width: " + (DEFAULT_WINDOW_WIDTH - 22) + ";\">Testing Database Server configuration</div>";
|
||
|
||
style = $('#panelTest').attr("style");
|
||
titleSummary = titleSummary + "<div style=\"margin-left: 0.5em; padding: 0.5em; height: 235px;\">" + msg + "</div>";
|
||
$('#panelTest').empty();
|
||
style = style + ' background: #FFFFFF; font: normal 0.8em arial;';
|
||
$('#panelTest').attr("style", style);
|
||
$('#panelTest').append(titleSummary);
|
||
};
|
||
|
||
isDirtyFrmDataBaseConnection = function () {
|
||
var message_window;
|
||
$("input,select,textarea").blur();
|
||
if (frmDataBaseConnection.isVisible()) {
|
||
if (frmDataBaseConnection.isDirty()) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Database Connections".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
dataBaseConnectionOption = "";
|
||
if (closeClicked) {
|
||
winGrdpnlDataBaseConnection.close();
|
||
}
|
||
refreshGridPanelInMainWindow(false);
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
],
|
||
title: 'Confirm'.translate()
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
if (closeClicked) {
|
||
winGrdpnlDataBaseConnection.close();
|
||
} else {
|
||
dataBaseConnectionOption = "";
|
||
refreshGridPanelInMainWindow(false);
|
||
}
|
||
}
|
||
} else {
|
||
winGrdpnlDataBaseConnection.close();
|
||
}
|
||
};
|
||
showForm = function () {
|
||
disableAllItems();
|
||
winGrdpnlDataBaseConnection.setTitle(titleOld);
|
||
winGrdpnlDataBaseConnection.getItems()[1].setVisible(true);
|
||
btnTestConnection.setVisible(true);
|
||
btnCancel.setVisible(true);
|
||
}
|
||
|
||
refreshGridPanelInMainWindow = function (load) {
|
||
disableAllItems();
|
||
winGrdpnlDataBaseConnection.hideFooter();
|
||
dataBaseConnectionOption = "";
|
||
winGrdpnlDataBaseConnection.getItems()[0].setVisible(true);
|
||
winGrdpnlDataBaseConnection.setTitle("Database Connections".translate());
|
||
load = load != null ? load : true;
|
||
if (load) {
|
||
dataBaseConnectionsGetRestProxy(grdpnlDataBaseConnection);
|
||
}
|
||
};
|
||
|
||
dataBaseConnectionsGetRestProxy = function (grdpnl) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "database-connections",
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
listDBConnection = response;
|
||
grdpnl.setDataItems(listDBConnection);
|
||
grdpnl.sort('dbs_database_name', 'asc');
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
dataBaseConnectionPostTestRestProxy = function (data) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "database-connection/test",
|
||
typeRequest: "post",
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
testShow(response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
dataBaseConnectionGetRestProxy = function (dataBaseConnectionUid) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "database-connection/" + dataBaseConnectionUid,
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
var data = response;
|
||
dataBaseConnectionOption = "PUT";
|
||
winFrmDataBaseConnectionShow("PUT", data);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
dataBaseConnectionPutRestProxy = function (dataBaseConnectionUid, data) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "database-connection/" + dataBaseConnectionUid,
|
||
typeRequest: "update",
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Database connection edited successfully'.translate(),
|
||
flashContainer: grdpnlDataBaseConnection
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
dataBaseConnectionDeleteRestProxy = function (dataBaseConnectionUid) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "database-connection/" + dataBaseConnectionUid,
|
||
typeRequest: "remove",
|
||
functionSuccess: function (xhr, response) {
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Database connection deleted successfully'.translate(),
|
||
flashContainer: grdpnlDataBaseConnection
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
dataBaseConnectionPostRestProxy = function (data) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "database-connection",
|
||
typeRequest: "post",
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
messageError: 'An unexpected error while deleting the DB Connection, please try again later.'.translate(),
|
||
messageSuccess: 'Database connection saved successfully'.translate(),
|
||
flashContainer: grdpnlDataBaseConnection
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
cboEngineSetOptionsRestProxy = function (cboEngine, cboEncode) {
|
||
cboEngine.clearOptions();
|
||
var restProxy = new PMRestClient({
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
var data = response,
|
||
i,
|
||
arrayOptions = [];
|
||
for (i = 0; i <= data.length - 1; i += 1) {
|
||
arrayOptions.push(
|
||
{
|
||
value: data[i].id,
|
||
label: data[i].name
|
||
}
|
||
);
|
||
}
|
||
cboEngine.setOptions(arrayOptions);
|
||
cboEngine.setValue(arrayOptions[0].value);
|
||
cboEncodeSetOptionsRestProxy(cboEngine.getValue(), cboEncode);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
restProxy.setBaseEndPoint("system/db-engines");
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
hideEncoderOptions = function () {
|
||
cboEncode.setVisible(true);
|
||
cboConnectionTypeOracle.setVisible(true);
|
||
};
|
||
|
||
showEncoderOptions = function () {
|
||
cboEncode.setVisible(true);
|
||
cboConnectionTypeOracle.setVisible(false);
|
||
};
|
||
cboConnectionTypeOracleSetOptions = function (cboConnectionTypeOracle) {
|
||
var arrayEnconde = [],
|
||
i,
|
||
arrayOptions = [];
|
||
cboConnectionTypeOracle.clearOptions();
|
||
|
||
arrayEnconde = [
|
||
{"value": "NORMAL", "text": "Normal"},
|
||
{"value": "TNS", "text": "TNS"}
|
||
];
|
||
|
||
for (i = 0; i <= arrayEnconde.length - 1; i += 1) {
|
||
arrayOptions.push(
|
||
{
|
||
value: arrayEnconde[i].value,
|
||
label: arrayEnconde[i].text
|
||
}
|
||
);
|
||
}
|
||
|
||
cboConnectionTypeOracle.setOptions(arrayOptions);
|
||
};
|
||
cboEncodeSetOptionsRestProxy = function (selectedCboEngineValue, cboEncode) {
|
||
var arrayEnconde = [],
|
||
arrayNewEnconde,
|
||
i,
|
||
portsDefault,
|
||
arrayOptions,
|
||
encode = selectedCboEngineValue;
|
||
cboEncode.clearOptions();
|
||
|
||
arrayEnconde["mysql"] = [
|
||
{"value": "big5", "text": "big5 - Big5 Traditional Chinese"},
|
||
{"value": "dec8", "text": "dec8 - DEC West European"},
|
||
{"value": "cp850", "text": "cp850 - DOS West European"},
|
||
{"value": "hp8", "text": "hp8 - HP West European"},
|
||
{"value": "koi8r", "text": "koi8r - KOI8-R Relcom Russian"},
|
||
{"value": "latin1", "text": "latin1 - cp1252 West European"},
|
||
{"value": "latin2", "text": "latin2 - ISO 8859-2 Central European"},
|
||
{"value": "swe7", "text": "swe7 - 7bit Swedish"},
|
||
{"value": "ascii", "text": "ascii - US ASCII"},
|
||
{"value": "ujis", "text": "ujis - EUC-JP Japanese"},
|
||
{"value": "sjis", "text": "sjis - Shift-JIS Japanese"},
|
||
{"value": "hebrew", "text": "hebrew - ISO 8859-8 Hebrew"},
|
||
{"value": "tis620", "text": "tis620 - TIS620 Thai"},
|
||
{"value": "euckr", "text": "euckr - EUC-KR Korean"},
|
||
{"value": "koi8u", "text": "koi8u - KOI8-U Ukrainian"},
|
||
{"value": "gb2312", "text": "gb2312 - GB2312 Simplified Chinese"},
|
||
{"value": "greek", "text": "greek - ISO 8859-7 Greek"},
|
||
{"value": "cp1250", "text": "cp1250 - Windows Central European"},
|
||
{"value": "gbk", "text": "gbk - GBK Simplified Chinese"},
|
||
{"value": "latin5", "text": "latin5 - ISO 8859-9 Turkish"},
|
||
{"value": "armscii8", "text": "armscii8 - ARMSCII-8 Armenian"},
|
||
{"value": "utf8", "text": "utf8 - UTF-8 Unicode"},
|
||
{"value": "ucs2", "text": "ucs2 - UCS-2 Unicode"},
|
||
{"value": "cp866", "text": "cp866 - DOS Russian"},
|
||
{"value": "keybcs2", "text": "keybcs2 - DOS Kamenicky Czech-Slovak"},
|
||
{"value": "macce", "text": "macce - Mac Central European"},
|
||
{"value": "macroman", "text": "macroman - Mac West European"},
|
||
{"value": "cp852", "text": "cp852 - DOS Central European"},
|
||
{"value": "latin7", "text": "atin7 - ISO 8859-13 Baltic"},
|
||
{"value": "cp1251", "text": "cp1251 - Windows Cyrillic"},
|
||
{"value": "cp1256", "text": "cp1256 - Windows Arabic"},
|
||
{"value": "cp1257", "text": "cp1257 - Windows Baltic"},
|
||
{"value": "binary", "text": "binary - Binary pseudo charset"},
|
||
{"value": "geostd8", "text": "geostd8 - GEOSTD8 Georgian"},
|
||
{"value": "cp932", "text": "cp932] - SJIS for Windows Japanese"},
|
||
{"value": "eucjpms", "text": "eucjpms - UJIS for Windows Japanese"}
|
||
];
|
||
|
||
arrayEnconde["pgsql"] = [
|
||
{"value": "BIG5", "text": "BIG5"},
|
||
{"value": "EUC_CN", "text": "EUC_CN"},
|
||
{"value": "EUC_JP", "text": "EUC_JP"},
|
||
{"value": "EUC_KR", "text": "EUC_KR"},
|
||
{"value": "EUC_TW", "text": "EUC_TW"},
|
||
{"value": "GB18030", "text": "GB18030"},
|
||
{"value": "GBK", "text": "GBK"},
|
||
{"value": "ISO_8859_5", "text": "ISO_8859_5"},
|
||
{"value": "ISO_8859_6", "text": "ISO_8859_6"},
|
||
{"value": "ISO_8859_7", "text": "ISO_8859_7"},
|
||
{"value": "ISO_8859_8", "text": "ISO_8859_8"},
|
||
{"value": "JOHAB", "text": "JOHAB"},
|
||
{"value": "KOI8", "text": "KOI8"},
|
||
{"value": "selected", "text": "LATIN1"},
|
||
{"value": "LATIN2", "text": "LATIN2"},
|
||
{"value": "LATIN3", "text": "LATIN3"},
|
||
{"value": "LATIN4", "text": "LATIN4"},
|
||
{"value": "LATIN5", "text": "LATIN5"},
|
||
{"value": "LATIN6", "text": "LATIN6"},
|
||
{"value": "LATIN7", "text": "LATIN7"},
|
||
{"value": "LATIN8", "text": "LATIN8"},
|
||
{"value": "LATIN9", "text": "LATIN9"},
|
||
{"value": "LATIN10", "text": "LATIN10"},
|
||
{"value": "SJIS", "text": "SJIS"},
|
||
{"value": "SQL_ASCII", "text": "SQL_ASCII"},
|
||
{"value": "UHC", "text": "UHC"},
|
||
{"value": "UTF8", "text": "UTF8"},
|
||
{"value": "WIN866", "text": "WIN866"},
|
||
{"value": "WIN874", "text": "WIN874"},
|
||
{"value": "WIN1250", "text": "WIN1250"},
|
||
{"value": "WIN1251", "text": "WIN1251"},
|
||
{"value": "WIN1252", "text": "WIN1252"},
|
||
{"value": "WIN1256", "text": "WIN1256"},
|
||
{"value": "WIN1258", "text": "WIN1258"}
|
||
];
|
||
|
||
arrayEnconde["mssql"] = [
|
||
{"value": "utf8", "text": "utf8 - UTF-8 Unicode"}
|
||
];
|
||
|
||
arrayEnconde["oracle"] = [
|
||
{"value": "UTF8", "text": "UTF8 - Unicode 3.0 UTF-8 Universal character set, CESU-8 compliant"},
|
||
{"value": "UTFE", "text": "UTFE - EBCDIC form of Unicode 3.0 UTF-8 Universal character set"},
|
||
{"value": "AL16UTF16", "text": "AL16UTF16 - Unicode 3.1 UTF-16 Universal character set"},
|
||
{"value": "AL32UTF8", "text": "AL32UTF8 - Unicode 3.1 UTF-8 Universal character set"}
|
||
];
|
||
|
||
arrayEnconde["sqlsrv"] = [
|
||
{"value": "utf8", "text": "utf8 - UTF-8 Unicode"}
|
||
];
|
||
|
||
arrayNewEnconde = (typeof(arrayEnconde[encode]) != "undefined") ? arrayEnconde[encode] : [];
|
||
arrayOptions = [];
|
||
|
||
for (i = 0; i <= arrayNewEnconde.length - 1; i += 1) {
|
||
arrayOptions.push(
|
||
{
|
||
value: arrayNewEnconde[i].value,
|
||
label: arrayNewEnconde[i].text
|
||
}
|
||
);
|
||
}
|
||
|
||
cboEncode.setOptions(arrayOptions);
|
||
cboEncode.setValue('utf8');
|
||
|
||
portsDefault = ["3306", "5432", "1433", "1521"];
|
||
switch (encode) {
|
||
case "mysql":
|
||
txtPort.setValue(portsDefault[0]);
|
||
showEncoderOptions();
|
||
break;
|
||
case "pgsql":
|
||
txtPort.setValue(portsDefault[1]);
|
||
showEncoderOptions();
|
||
break;
|
||
case "mssql":
|
||
txtPort.setValue(portsDefault[2]);
|
||
showEncoderOptions();
|
||
break;
|
||
case "oracle":
|
||
txtPort.setValue(portsDefault[3]);
|
||
hideEncoderOptions();
|
||
break;
|
||
}
|
||
};
|
||
|
||
winFrmDataBaseConnectionShow = function (option, data) {
|
||
disableAllItems();
|
||
dataBaseConnectionData = data;
|
||
frmDataBaseConnection.reset();
|
||
cboEngineSetOptionsRestProxy(cboEngine, cboEncode);
|
||
cboConnectionTypeOracleSetOptions(cboConnectionTypeOracle);
|
||
winGrdpnlDataBaseConnection.getItems()[1].setVisible(true);
|
||
btnTestConnection.setVisible(true);
|
||
btnCancel.setVisible(true);
|
||
winGrdpnlDataBaseConnection.showFooter();
|
||
|
||
switch (option) {
|
||
case "POST":
|
||
winGrdpnlDataBaseConnection.setTitle("Create Database Connection".translate());
|
||
frmDataBaseConnection.setTitle("");
|
||
txtTns.setVisible(false);
|
||
txtTns.setRequired(false);
|
||
txtServer.setVisible(true);
|
||
txtServer.setRequired(true);
|
||
txtDataBaseName.setVisible(true);
|
||
txtDataBaseName.setRequired(true);
|
||
txtPort.setVisible(true);
|
||
txtPort.setRequired(true);
|
||
txtPort.setValue("3306");
|
||
break;
|
||
case "PUT":
|
||
winGrdpnlDataBaseConnection.setTitle("Edit Database Connection".translate());
|
||
frmDataBaseConnection.setTitle("");
|
||
txtUID.setVisible(true);
|
||
txtUID.setValue(dataBaseConnectionData.dbs_uid);
|
||
cboEngine.setValue(dataBaseConnectionData.dbs_type);
|
||
cboEncodeSetOptionsRestProxy(dataBaseConnectionData.dbs_type, cboEncode);
|
||
cboEncode.setValue(dataBaseConnectionData.dbs_encode);
|
||
txtServer.setValue(dataBaseConnectionData.dbs_server);
|
||
txtDataBaseName.setValue(dataBaseConnectionData.dbs_database_name);
|
||
txtUsername.setValue(dataBaseConnectionData.dbs_username);
|
||
txtPassword.setValue(dataBaseConnectionData.dbs_password);
|
||
txtPort.setValue(dataBaseConnectionData.dbs_port);
|
||
txtDescription.setValue(dataBaseConnectionData.dbs_description);
|
||
|
||
if (dataBaseConnectionData.dbs_type == "oracle") {
|
||
cboConnectionTypeOracle.setValue(dataBaseConnectionData.dbs_connection_type);
|
||
cboConnectionTypeOracle.setVisible(true);
|
||
|
||
if (dataBaseConnectionData.dbs_connection_type == "TNS" && dataBaseConnectionData.dbs_tns != "") {
|
||
txtTns.setValue(dataBaseConnectionData.dbs_tns);
|
||
txtTns.setVisible(true);
|
||
txtTns.setRequired(true);
|
||
|
||
txtServer.setValue("");
|
||
txtServer.setVisible(false);
|
||
txtServer.setRequired(false);
|
||
|
||
txtDataBaseName.setValue("");
|
||
txtDataBaseName.setVisible(false);
|
||
txtDataBaseName.setRequired(false);
|
||
|
||
txtPort.setValue("");
|
||
txtPort.setVisible(false);
|
||
txtPort.setRequired(false);
|
||
} else {
|
||
txtTns.setValue("");
|
||
txtTns.setVisible(false);
|
||
txtTns.setRequired(false);
|
||
|
||
txtServer.setVisible(true);
|
||
txtServer.setRequired(true);
|
||
|
||
txtDataBaseName.setVisible(true);
|
||
txtDataBaseName.setRequired(true);
|
||
|
||
txtPort.setVisible(true);
|
||
txtPort.setRequired(true);
|
||
}
|
||
} else {
|
||
txtTns.setValue("");
|
||
txtTns.setVisible(false);
|
||
txtTns.setRequired(false);
|
||
|
||
txtServer.setVisible(true);
|
||
txtServer.setRequired(true);
|
||
|
||
txtDataBaseName.setVisible(true);
|
||
txtDataBaseName.setRequired(true);
|
||
|
||
txtPort.setVisible(true);
|
||
txtPort.setRequired(true);
|
||
}
|
||
break;
|
||
}
|
||
frmDataBaseConnection.setFocus();
|
||
};
|
||
|
||
txtUID = new PMUI.field.TextField({
|
||
id: "txtUID",
|
||
name: "txtUID",
|
||
valueType: "string",
|
||
controlsWidth: 300,
|
||
label: "UID".translate(),
|
||
maxLength: 200,
|
||
readOnly: true,
|
||
visible: false
|
||
});
|
||
|
||
cboEngine = new PMUI.field.DropDownListField({
|
||
id: "cboEngine",
|
||
name: "cboEngine",
|
||
label: "Engine".translate(),
|
||
options: null,
|
||
controlsWidth: 150,
|
||
onChange: function (newValue, prevValue) {
|
||
if (cboEngine.getValue() == "oracle") {
|
||
cboConnectionTypeOracleSetOptions(cboConnectionTypeOracle);
|
||
} else {
|
||
txtTns.setVisible(false);
|
||
txtTns.setRequired(false);
|
||
|
||
txtServer.setVisible(true);
|
||
txtServer.setRequired(true);
|
||
|
||
txtDataBaseName.setVisible(true);
|
||
txtDataBaseName.setRequired(true);
|
||
|
||
txtPort.setVisible(true);
|
||
txtPort.setRequired(true);
|
||
}
|
||
|
||
cboEncodeSetOptionsRestProxy(cboEngine.getValue(), cboEncode);
|
||
}
|
||
});
|
||
|
||
cboEncode = new PMUI.field.DropDownListField({
|
||
id: "cboEncode",
|
||
name: "cboEncode",
|
||
label: "Encode".translate(),
|
||
options: null,
|
||
controlsWidth: 300
|
||
});
|
||
|
||
cboConnectionTypeOracle = new PMUI.field.DropDownListField({
|
||
id: "cboConnectionTypeOracle",
|
||
name: "cboConnectionTypeOracle",
|
||
label: "Select Connection Type".translate(),
|
||
options: null,
|
||
controlsWidth: 300,
|
||
|
||
onChange: function (newValue, prevValue) {
|
||
if (cboConnectionTypeOracle.getValue() != "NORMAL") {
|
||
txtTns.setVisible(true);
|
||
txtTns.setRequired(true);
|
||
|
||
txtServer.setVisible(false);
|
||
txtServer.setRequired(false);
|
||
|
||
txtDataBaseName.setVisible(false);
|
||
txtDataBaseName.setRequired(false);
|
||
|
||
txtPort.setVisible(false);
|
||
txtPort.setRequired(false);
|
||
} else {
|
||
txtTns.setVisible(false);
|
||
txtTns.setRequired(false);
|
||
|
||
txtServer.setVisible(true);
|
||
txtServer.setRequired(true);
|
||
|
||
txtDataBaseName.setVisible(true);
|
||
txtDataBaseName.setRequired(true);
|
||
|
||
txtPort.setValue("1521");
|
||
txtPort.setVisible(true);
|
||
txtPort.setRequired(true);
|
||
}
|
||
}
|
||
});
|
||
|
||
txtTns = new PMUI.field.TextField({
|
||
id: "txtTns",
|
||
name: "txtTns",
|
||
valueType: "txtTns",
|
||
controlsWidth: 300,
|
||
label: "TNS".translate(),
|
||
maxLength: 200,
|
||
visible: false,
|
||
required: true
|
||
});
|
||
|
||
txtServer = new PMUI.field.TextField({
|
||
id: "txtServer",
|
||
name: "txtServer",
|
||
valueType: "string",
|
||
controlsWidth: 300,
|
||
label: "Server".translate(),
|
||
maxLength: 200,
|
||
required: true
|
||
});
|
||
|
||
txtDataBaseName = new PMUI.field.TextField({
|
||
id: "txtDataBaseName",
|
||
name: "txtDataBaseName",
|
||
valueType: "string",
|
||
controlsWidth: 300,
|
||
label: "Database Name".translate(),
|
||
maxLength: 200,
|
||
required: true
|
||
});
|
||
|
||
txtUsername = new PMUI.field.TextField({
|
||
id: "txtUsername",
|
||
name: "txtUsername",
|
||
valueType: "string",
|
||
controlsWidth: 300,
|
||
label: "Username".translate(),
|
||
maxLength: 200,
|
||
required: true
|
||
});
|
||
|
||
txtPassword = new PMUI.field.PasswordField({
|
||
id: "txtPassword",
|
||
name: "txtPassword",
|
||
valueType: "string",
|
||
controlsWidth: 300,
|
||
label: "Password".translate(),
|
||
maxLength: 200
|
||
});
|
||
|
||
txtPort = new PMUI.field.TextField({
|
||
id: "txtPort",
|
||
name: "txtPort",
|
||
valueType: "string",
|
||
controlsWidth: 300,
|
||
label: "Port".translate(),
|
||
value: "3306",
|
||
controlsWidth: 300,
|
||
maxLength: 200,
|
||
required: true
|
||
});
|
||
|
||
txtDescription = new PMUI.field.TextAreaField({
|
||
id: "txtDescription",
|
||
name: "txtDescription",
|
||
valueType: "string",
|
||
controlsWidth: 500,
|
||
label: "Description".translate(),
|
||
height: "200px",
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
});
|
||
|
||
btnTestConnection = new PMUI.ui.Button({
|
||
id: "btnTestConnection",
|
||
text: "Test Connection".translate(),
|
||
buttonType: 'success',
|
||
handler: function () {
|
||
var data;
|
||
if (frmDataBaseConnection.isValid()) {
|
||
if (cboEngine.getValue() == "oracle") {
|
||
data = {
|
||
dbs_type: cboEngine.getValue(),
|
||
dbs_encode: cboEncode.getValue(),
|
||
dbs_connection_type: cboConnectionTypeOracle.getValue(),
|
||
dbs_tns: txtTns.getValue(),
|
||
dbs_server: txtServer.getValue(),
|
||
dbs_database_name: txtDataBaseName.getValue(),
|
||
dbs_username: txtUsername.getValue(),
|
||
dbs_password: getData2PMUI(frmDataBaseConnection.html).txtPassword,
|
||
dbs_port: parseInt(getData2PMUI(frmDataBaseConnection.html).txtPort),
|
||
dbs_description: txtDescription.getValue()
|
||
};
|
||
} else {
|
||
data = {
|
||
dbs_type: cboEngine.getValue(),
|
||
dbs_encode: cboEncode.getValue(),
|
||
dbs_server: txtServer.getValue(),
|
||
dbs_database_name: txtDataBaseName.getValue(),
|
||
dbs_username: txtUsername.getValue(),
|
||
dbs_password: getData2PMUI(frmDataBaseConnection.html).txtPassword,
|
||
dbs_port: parseInt(getData2PMUI(frmDataBaseConnection.html).txtPort),
|
||
dbs_description: txtDescription.getValue()
|
||
};
|
||
}
|
||
dataBaseConnectionPostTestRestProxy(data);
|
||
}
|
||
}
|
||
});
|
||
|
||
btnCreate = new PMUI.ui.Button({
|
||
id: "btnCreate",
|
||
text: "Save".translate(),
|
||
buttonType: "success",
|
||
handler: function () {
|
||
var data;
|
||
if (cboEngine.getValue() == "oracle") {
|
||
data = {
|
||
dbs_type: cboEngine.getValue(),
|
||
dbs_encode: cboEncode.getValue(),
|
||
dbs_connection_type: cboConnectionTypeOracle.getValue(),
|
||
dbs_tns: txtTns.getValue(),
|
||
dbs_server: txtServer.getValue(),
|
||
dbs_database_name: txtDataBaseName.getValue(),
|
||
dbs_username: txtUsername.getValue(),
|
||
dbs_password: getData2PMUI(frmDataBaseConnection.html).txtPassword,
|
||
dbs_port: parseInt(getData2PMUI(frmDataBaseConnection.html).txtPort),
|
||
dbs_description: txtDescription.getValue()
|
||
};
|
||
} else {
|
||
data = {
|
||
dbs_type: cboEngine.getValue(),
|
||
dbs_encode: cboEncode.getValue(),
|
||
dbs_server: txtServer.getValue(),
|
||
dbs_database_name: txtDataBaseName.getValue(),
|
||
dbs_username: txtUsername.getValue(),
|
||
dbs_password: txtPassword.getValue(),
|
||
dbs_port: parseInt(txtPort.getValue()),
|
||
dbs_description: txtDescription.getValue()
|
||
};
|
||
}
|
||
|
||
switch (dataBaseConnectionOption) {
|
||
case "POST":
|
||
if (frmDataBaseConnection.isValid()) {
|
||
dataBaseConnectionPostRestProxy(data);
|
||
} else {
|
||
return;
|
||
}
|
||
break;
|
||
case "PUT":
|
||
if (frmDataBaseConnection.isValid()) {
|
||
dataBaseConnectionPutRestProxy(dataBaseConnectionData.dbs_uid, data);
|
||
} else {
|
||
return;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
});
|
||
|
||
btnCancel = new PMUI.ui.Button({
|
||
id: "btnCancel",
|
||
text: "Cancel".translate(),
|
||
buttonType: 'error',
|
||
handler: function () {
|
||
closeClicked = false;
|
||
isDirtyFrmDataBaseConnection();
|
||
}
|
||
});
|
||
|
||
btnBack = new PMUI.ui.Button({
|
||
id: "btnBack",
|
||
text: "Back".translate(),
|
||
handler: function () {
|
||
showForm();
|
||
}
|
||
});
|
||
|
||
frmDataBaseConnection = new PMUI.form.Form({
|
||
id: "frmDataBaseConnection",
|
||
width: DEFAULT_WINDOW_WIDTH - 70,
|
||
items: [
|
||
txtUID,
|
||
cboEngine,
|
||
cboEncode,
|
||
cboConnectionTypeOracle,
|
||
txtTns,
|
||
txtServer,
|
||
txtDataBaseName,
|
||
txtUsername,
|
||
txtPassword,
|
||
txtPort,
|
||
txtDescription
|
||
]
|
||
});
|
||
|
||
txtPort.controls[0].onKeyUp = function () {
|
||
var txtPortfinalValue,
|
||
txtPortValue = getData2PMUI(frmDataBaseConnection.html).txtPort;
|
||
if (/\D/.test(txtPortValue)) {
|
||
if (isNaN(parseInt(txtPortValue))) {
|
||
txtPortfinalValue = "";
|
||
} else {
|
||
txtPortfinalValue = parseInt(txtPortValue);
|
||
}
|
||
txtPort.setValue(txtPortfinalValue);
|
||
}
|
||
};
|
||
|
||
btnNew = new PMUI.ui.Button({
|
||
id: "btnNew",
|
||
text: "Create".translate(),
|
||
height: "36px",
|
||
width: 100,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-button-create'
|
||
]
|
||
},
|
||
handler: function () {
|
||
dataBaseConnectionOption = "POST";
|
||
winFrmDataBaseConnectionShow("POST", {});
|
||
}
|
||
});
|
||
|
||
grdpnlDataBaseConnection = new PMUI.grid.GridPanel({
|
||
id: "grdpnlDataBaseConnection",
|
||
filterable: true,
|
||
pageSize: 10,
|
||
width: "96%",
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 374,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [
|
||
{
|
||
id: 'grdpnlDataBaseConnectionButtonShow',
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Show ID".translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-show'
|
||
]
|
||
},
|
||
width: "100px",
|
||
onButtonClick: function (row, grid) {
|
||
showUID(row.getData().dbs_uid);
|
||
}
|
||
},
|
||
{
|
||
columnData: "dbs_type",
|
||
title: "Type".translate(),
|
||
width: "100px",
|
||
sortable: true,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
columnData: "dbs_server",
|
||
title: "Server".translate(),
|
||
width: "155px",
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
columnData: "dbs_database_name",
|
||
title: "Database Name".translate(),
|
||
width: "160px",
|
||
sortable: true,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
columnData: "dbs_description",
|
||
title: "Description".translate(),
|
||
width: "200px",
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
id: 'grdpnlDataBaseConnectionButtonEdit',
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Edit".translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
dataBaseConnectionGetRestProxy(row.getData().dbs_uid);
|
||
}
|
||
},
|
||
{
|
||
id: 'grdpnlDataBaseConnectionButtonDelete',
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Delete".translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData();
|
||
var msgWarning = new PMUI.ui.MessageWindow({
|
||
id: "msgWarning",
|
||
title: 'Database Connections'.translate(),
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
message: "Do you want to delete this DB Connection?".translate(),
|
||
buttons: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
msgWarning.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
dataBaseConnectionDeleteRestProxy(data.dbs_uid);
|
||
msgWarning.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
msgWarning.open();
|
||
msgWarning.showFooter();
|
||
}
|
||
}
|
||
],
|
||
dataItems: null
|
||
});
|
||
|
||
panelTest = new PMUI.core.Panel({
|
||
id: 'panelTest',
|
||
height: DEFAULT_WINDOW_HEIGHT - 71,
|
||
display: 'inline-block'
|
||
});
|
||
|
||
winGrdpnlDataBaseConnection = new PMUI.ui.Window({
|
||
id: "winGrdpnlDataBaseConnection",
|
||
title: "Database Connections".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
buttonPanelPosition: "bottom",
|
||
buttons: [btnCancel, btnBack, btnTestConnection, btnCreate],
|
||
onBeforeClose: function () {
|
||
closeClicked = true;
|
||
isDirtyFrmDataBaseConnection();
|
||
}
|
||
});
|
||
|
||
winGrdpnlDataBaseConnection.addItem(grdpnlDataBaseConnection);
|
||
winGrdpnlDataBaseConnection.addItem(frmDataBaseConnection);
|
||
winGrdpnlDataBaseConnection.addItem(panelTest);
|
||
|
||
refreshGridPanelInMainWindow();
|
||
if (typeof listDBConnection !== "undefined") {
|
||
winGrdpnlDataBaseConnection.open();
|
||
frmDataBaseConnection.panel.html.style.padding = "10px";
|
||
$('#grdpnlDataBaseConnection .pmui-textcontrol').css({'margin-top': '5px', width: '250px'});
|
||
winGrdpnlDataBaseConnection.defineEvents();
|
||
applyStyleWindowForm(winGrdpnlDataBaseConnection);
|
||
winGrdpnlDataBaseConnection.footer.html.style.textAlign = 'right';
|
||
$(btnNew.getHTML()).css({float: "right"})
|
||
grdpnlDataBaseConnection.dom.toolbar.appendChild(btnNew.getHTML());
|
||
btnNew.defineEvents();
|
||
|
||
disableAllItems();
|
||
winGrdpnlDataBaseConnection.getItems()[0].setVisible(true);
|
||
}
|
||
};
|
||
|
||
PMDesigner.database.create = function () {
|
||
PMDesigner.database();
|
||
dataBaseConnectionOption = "POST";
|
||
winFrmDataBaseConnectionShow("POST", {});
|
||
};
|
||
}()
|
||
);
|
||
|
||
(function () {
|
||
var openTinyInMainWindow,
|
||
dataOutPutDocument,
|
||
openFormInMainWindow,
|
||
messageRequired;
|
||
|
||
PMDesigner.output = function (event) {
|
||
var winMainOutputDocument, formOutput, rowData, updateOutPut, restClient, isDirtyFormOutput, clickedClose = true, that = this,
|
||
setDataRow,
|
||
clearDataRow,
|
||
getGridOutput,
|
||
disableAllItems,
|
||
deleteDataRow,
|
||
updateOutput,
|
||
refreshGridPanelInMainWindow,
|
||
openGridPanelInMainWindow,
|
||
openFormForEditInMainWindow,
|
||
editorTiny,
|
||
outputFormDocPdfSecurityOpen,
|
||
docMargin,
|
||
password,
|
||
outputFormDocPdfSecurityOwner,
|
||
outputFormDocPdfSecurityEnabled,
|
||
btnCloseWindowOutputDoc,
|
||
btnSaveWindowOutputDoc,
|
||
btnCancelTiny,
|
||
newButtonOutput,
|
||
gridOutput,
|
||
winMainOutputDocument,
|
||
btnSaveTiny,
|
||
listOutputDocs,
|
||
headerSettings,
|
||
footerSettings,
|
||
changeType,
|
||
setMinValue,
|
||
getFieldById;
|
||
|
||
/**
|
||
* Get field by id string, if not found return null.
|
||
* @param {string} id
|
||
* @returns {object}
|
||
*/
|
||
getFieldById = function (id) {
|
||
var fields = formOutput.getFields();
|
||
for (var i in fields) {
|
||
if (fields[i].id === id) {
|
||
return fields[i];
|
||
}
|
||
}
|
||
return null;
|
||
};
|
||
|
||
setDataRow = function (row) {
|
||
dataOutPutDocument = row.getData();
|
||
rowData = row;
|
||
};
|
||
|
||
clearDataRow = function () {
|
||
dataOutPutDocument = '';
|
||
rowData = '';
|
||
};
|
||
|
||
isDirtyFormOutput = function () {
|
||
var message_window;
|
||
$("input,select,textarea").blur();
|
||
if (formOutput.isVisible()) {
|
||
if (formOutput.isDirty()) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
width: 490,
|
||
title: "Output Documents".translate(),
|
||
windowMessageType: "warning",
|
||
bodyHeight: 'auto',
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
clearDataRow();
|
||
message_window.close();
|
||
if (clickedClose) {
|
||
tinymce.EditorManager.execCommand('mceRemoveControl', true, 'tinyeditor');
|
||
winMainOutputDocument.close();
|
||
} else {
|
||
clearDataRow();
|
||
openGridPanelInMainWindow();
|
||
}
|
||
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
clearDataRow();
|
||
if (clickedClose) {
|
||
tinymce.EditorManager.execCommand('mceRemoveControl', true, 'tinyeditor');
|
||
winMainOutputDocument.close()
|
||
} else {
|
||
openGridPanelInMainWindow();
|
||
}
|
||
}
|
||
} else {
|
||
winMainOutputDocument.close();
|
||
}
|
||
};
|
||
getGridOutput = function () {
|
||
var restClientGet = new PMRestClient({
|
||
endpoint: 'output-documents',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
listOutputDocs = response;
|
||
gridOutput.setDataItems(listOutputDocs);
|
||
gridOutput.sort('out_doc_title', 'asc');
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the output documents, please try again.".translate()
|
||
});
|
||
restClientGet.executeRestClient();
|
||
};
|
||
|
||
disableAllItems = function () {
|
||
winMainOutputDocument.hideFooter();
|
||
formOutput.reset();
|
||
|
||
winMainOutputDocument.getItems()[0].setVisible(false);
|
||
winMainOutputDocument.getItems()[1].setVisible(false);
|
||
for (var i = 0; i <= winMainOutputDocument.getItems()[1].getItems().length - 1; i += 1) {
|
||
winMainOutputDocument.getItems()[1].getItems()[i].setVisible(false);
|
||
}
|
||
btnSaveWindowOutputDoc.setVisible(false);
|
||
btnCloseWindowOutputDoc.setVisible(false);
|
||
btnSaveTiny.setVisible(false);
|
||
btnCancelTiny.setVisible(false);
|
||
|
||
winMainOutputDocument.footer.getItems()[2].setVisible(false);
|
||
};
|
||
|
||
refreshGridPanelInMainWindow = function () {
|
||
disableAllItems();
|
||
winMainOutputDocument.getItems()[0].setVisible(true);
|
||
winMainOutputDocument.setTitle("Output Documents".translate());
|
||
getGridOutput();
|
||
};
|
||
|
||
openGridPanelInMainWindow = function () {
|
||
disableAllItems();
|
||
winMainOutputDocument.getItems()[0].setVisible(true);
|
||
winMainOutputDocument.setTitle("Output Documents".translate());
|
||
$(winMainOutputDocument.body).removeClass("pmui-background");
|
||
};
|
||
|
||
openFormInMainWindow = function () {
|
||
disableAllItems();
|
||
winMainOutputDocument.showFooter();
|
||
winMainOutputDocument.getItems()[1].setVisible(true);
|
||
for (var i = 0; i < winMainOutputDocument.getItems()[1].getItems().length; i += 1) {
|
||
if (winMainOutputDocument.getItems()[1].getItems()[i].type !== "PMTinyField") {
|
||
winMainOutputDocument.getItems()[1].getItems()[i].setVisible(true);
|
||
}
|
||
}
|
||
btnSaveWindowOutputDoc.setVisible(true);
|
||
btnCloseWindowOutputDoc.setVisible(true);
|
||
winMainOutputDocument.footer.getItems()[2].setVisible(true);
|
||
password.setVisible(false);
|
||
headerSettings.setVisible(false);
|
||
footerSettings.setVisible(false);
|
||
footerSettings.getField('total_number_page_footer').disable();
|
||
headerSettings.getField('total_number_page_header').disable();
|
||
winMainOutputDocument.setTitle("Create Output Document".translate());
|
||
winMainOutputDocument.setHeight(520);
|
||
formOutput.panel.style.addProperties({padding: '20px 10px'});
|
||
formOutput.setFocus();
|
||
};
|
||
|
||
openFormForEditInMainWindow = function (outputDocumentData) {
|
||
disableAllItems();
|
||
winMainOutputDocument.showFooter();
|
||
btnSaveWindowOutputDoc.setVisible(true);
|
||
btnCloseWindowOutputDoc.setVisible(true);
|
||
winMainOutputDocument.footer.getItems()[1].setVisible(false);
|
||
formOutput.setWidth(700);
|
||
winMainOutputDocument.getItems()[1].setVisible(true);
|
||
winMainOutputDocument.setTitle("Edit Output Document".translate());
|
||
$(winMainOutputDocument.body).addClass("pmui-background");
|
||
for (var i = 0; i < winMainOutputDocument.getItems()[1].getItems().length; i += 1) {
|
||
if (winMainOutputDocument.getItems()[1].getItems()[i].type !== "PMTinyField") {
|
||
winMainOutputDocument.getItems()[1].getItems()[i].setVisible(true);
|
||
}
|
||
}
|
||
|
||
password.setVisible(false);
|
||
headerSettings.setVisible(false);
|
||
footerSettings.setVisible(false);
|
||
if (dataOutPutDocument != '' && dataOutPutDocument != undefined) {
|
||
var dataEdit = formOutput.getFields();
|
||
getFieldById('outputDocTitle').setValue(dataOutPutDocument['out_doc_title']);
|
||
getFieldById('outputDocFilenameGenerated').setValue(dataOutPutDocument['out_doc_filename']);
|
||
getFieldById('outputDocDescription').setValue(dataOutPutDocument['out_doc_description']);
|
||
getFieldById('outputDocReportGenerator').setValue(dataOutPutDocument['out_doc_report_generator']);
|
||
getFieldById('outputDocMedia').setValue(dataOutPutDocument['out_doc_media']);
|
||
getFieldById('outputDocOrientation').setValue(dataOutPutDocument['out_doc_landscape']);
|
||
getFieldById('outputDocMarginLeft').setValue(dataOutPutDocument['out_doc_left_margin']);
|
||
getFieldById('outputDocMarginRight').setValue(dataOutPutDocument['out_doc_right_margin']);
|
||
getFieldById('outputDocMarginTop').setValue(dataOutPutDocument['out_doc_top_margin']);
|
||
getFieldById('outputDocMarginBottom').setValue(dataOutPutDocument['out_doc_bottom_margin']);
|
||
getFieldById('outputDocToGenerate').setValue(dataOutPutDocument['out_doc_generate']);
|
||
|
||
//Set data in header settings
|
||
if (dataOutPutDocument['out_doc_header'] !== "[]") {
|
||
getFieldById('enableHeader').setValue(dataOutPutDocument['out_doc_header'].enableHeader ? '["1"]' : '0');
|
||
dataOutPutDocument['out_doc_header'].enableHeader ? headerSettings.setVisible(true) : headerSettings.setVisible(false);
|
||
getFieldById('headerTitle').setValue(dataOutPutDocument['out_doc_header'].title);
|
||
getFieldById('fontSizeHeader').setValue(dataOutPutDocument['out_doc_header'].titleFontSize);
|
||
getFieldById('positionXTitleHeader').setValue(dataOutPutDocument['out_doc_header'].titleFontPositionX);
|
||
getFieldById('positionYTitleHeader').setValue(dataOutPutDocument['out_doc_header'].titleFontPositionY);
|
||
getFieldById('headerLogo').setValue(dataOutPutDocument['out_doc_header'].logo);
|
||
getFieldById('logoWidthHeader').setValue(dataOutPutDocument['out_doc_header'].logoWidth);
|
||
getFieldById('positionXLogoHeader').setValue(dataOutPutDocument['out_doc_header'].logoPositionX);
|
||
getFieldById('positionYLogoHeader').setValue(dataOutPutDocument['out_doc_header'].logoPositionY);
|
||
getFieldById('pageNumberHeader').setValue(dataOutPutDocument['out_doc_header'].pageNumber ? '["1"]' : '0');
|
||
getFieldById('paginationTitleHeader').setValue(dataOutPutDocument['out_doc_header'].pageNumberTitle);
|
||
getFieldById('totalNumberPageHeader').setValue(dataOutPutDocument['out_doc_header'].pageNumberTotal ? '["1"]' : '0');
|
||
getFieldById('positionXNumberHeader').setValue(dataOutPutDocument['out_doc_header'].pageNumberPositionX);
|
||
getFieldById('positionYNumberHeader').setValue(dataOutPutDocument['out_doc_header'].pageNumberPositionY);
|
||
if (getFieldById('pageNumberHeader').getValue() === '["1"]') {
|
||
getFieldById('paginationTitleHeader').enable();
|
||
getFieldById('totalNumberPageHeader').enable();
|
||
getFieldById('positionXNumberHeader').enable();
|
||
getFieldById('positionYNumberHeader').enable();
|
||
} else {
|
||
getFieldById('paginationTitleHeader').disable();
|
||
getFieldById('totalNumberPageHeader').disable();
|
||
getFieldById('positionXNumberHeader').disable();
|
||
getFieldById('positionYNumberHeader').disable();
|
||
}
|
||
}
|
||
//Set data in footer settings
|
||
if (dataOutPutDocument['out_doc_header'] !== "[]") {
|
||
getFieldById('enableFooter').setValue(dataOutPutDocument['out_doc_footer'].enableFooter ? '["1"]' : '0');
|
||
dataOutPutDocument['out_doc_footer'].enableFooter ? footerSettings.setVisible(true) : footerSettings.setVisible(false);
|
||
getFieldById('footerTitle').setValue(dataOutPutDocument['out_doc_footer'].title);
|
||
getFieldById('fontSizeFooter').setValue(dataOutPutDocument['out_doc_footer'].titleFontSize);
|
||
getFieldById('positionXTitleFooter').setValue(dataOutPutDocument['out_doc_footer'].titleFontPositionX);
|
||
getFieldById('positionYTitleFooter').setValue(dataOutPutDocument['out_doc_footer'].titleFontPositionY);
|
||
getFieldById('footerLogo').setValue(dataOutPutDocument['out_doc_footer'].logo);
|
||
getFieldById('logoWidthFooter').setValue(dataOutPutDocument['out_doc_footer'].logoWidth);
|
||
getFieldById('positionXLogoFooter').setValue(dataOutPutDocument['out_doc_footer'].logoPositionX);
|
||
getFieldById('positionYLogoFooter').setValue(dataOutPutDocument['out_doc_footer'].logoPositionY);
|
||
getFieldById('pageNumerFooter').setValue(dataOutPutDocument['out_doc_footer'].pageNumber ? '["1"]' : '0');
|
||
getFieldById('paginationTitleFooter').setValue(dataOutPutDocument['out_doc_footer'].pageNumberTitle);
|
||
getFieldById('totalNumberPageFooter').setValue(dataOutPutDocument['out_doc_footer'].pageNumberTotal ? '["1"]' : '0');
|
||
getFieldById('positionXNumberFooter').setValue(dataOutPutDocument['out_doc_footer'].pageNumberPositionX);
|
||
getFieldById('positionYNumberFooter').setValue(dataOutPutDocument['out_doc_footer'].pageNumberPositionY);
|
||
if (getFieldById('pageNumerFooter').getValue() === '["1"]') {
|
||
getFieldById('paginationTitleFooter').enable();
|
||
getFieldById('totalNumberPageFooter').enable();
|
||
getFieldById('positionXNumberFooter').enable();
|
||
getFieldById('positionYNumberFooter').enable();
|
||
} else {
|
||
getFieldById('paginationTitleFooter').disable();
|
||
getFieldById('totalNumberPageFooter').disable();
|
||
getFieldById('positionXNumberFooter').disable();
|
||
getFieldById('positionYNumberFooter').disable();
|
||
}
|
||
}
|
||
|
||
if (dataOutPutDocument["out_doc_generate"] != "DOC") {
|
||
getFieldById('outputDocDPFSecurity').setVisible(true);
|
||
} else {
|
||
getFieldById('outputDocDPFSecurity').setVisible(false);
|
||
}
|
||
|
||
getFieldById('outputDocDPFSecurity').setValue(dataOutPutDocument['out_doc_pdf_security_enabled']);
|
||
if (dataOutPutDocument['out_doc_pdf_security_enabled'] != 0) {
|
||
password.setVisible(true);
|
||
}
|
||
getFieldById('outputFormDocPdfSecurityOpen').setValue(dataOutPutDocument['out_doc_pdf_security_open_password']);
|
||
getFieldById('outputFormDocPdfSecurityOwner').setValue(dataOutPutDocument['out_doc_pdf_security_owner_password']);
|
||
|
||
dataOutPutDocument['out_doc_pdf_security_permissions'] = dataOutPutDocument['out_doc_pdf_security_permissions'].split("|");
|
||
getFieldById('outputFormDocPdfSecurityPermissions').setValue(JSON.stringify(dataOutPutDocument['out_doc_pdf_security_permissions']));
|
||
|
||
getFieldById('outputDocEnableVersioning').setValue(dataOutPutDocument['out_doc_versioning']);
|
||
getFieldById('outputDocDestinationPath').setValue(dataOutPutDocument['out_doc_destination_path']);
|
||
getFieldById('outputDocTags').setValue(dataOutPutDocument['out_doc_tags']);
|
||
getFieldById('outputDocGenerateFileLink').setValue(dataOutPutDocument["out_doc_open_type"]);
|
||
}
|
||
winMainOutputDocument.setHeight(520);
|
||
formOutput.panel.style.addProperties({padding: '20px 10px'});
|
||
formOutput.setFocus();
|
||
};
|
||
|
||
openTinyInMainWindow = function (outputDocumentData) {
|
||
//Fix for IE11
|
||
var isIe11 = /Trident\/7\.0;.*rv\s*\:?\s*11/.test(navigator.userAgent);
|
||
|
||
if (isIe11) {
|
||
tinyMCE.isGecko = false;
|
||
}
|
||
|
||
//Set TinyMCE
|
||
disableAllItems();
|
||
winMainOutputDocument.showFooter();
|
||
tinyEditorField = 13;
|
||
formOutput.setVisible(true);
|
||
formOutput.getItems()[tinyEditorField].setVisible(true);
|
||
formOutput.setWidth(890);
|
||
btnSaveTiny.setVisible(true);
|
||
btnCancelTiny.setVisible(true);
|
||
if (!editorTiny.isInitialized) {
|
||
editorTiny.createHTML();
|
||
editorTiny.setParameterTiny();
|
||
editorTiny.isInitialized = true;
|
||
} else {
|
||
tinyMCE.execCommand('mceFocus', false, 'tinyeditor');
|
||
}
|
||
var dataEdit = formOutput.getFields();
|
||
winMainOutputDocument.setTitle("Edit Output Document".translate());
|
||
if (dataOutPutDocument != '' && dataOutPutDocument != undefined) {
|
||
dataOutPutDocument['out_doc_template'] = (dataOutPutDocument['out_doc_template'] != null) ? dataOutPutDocument['out_doc_template'] : ' ';
|
||
dataEdit[47].setValue(dataOutPutDocument['out_doc_template']);
|
||
dataEdit[47].setValueTiny(dataOutPutDocument['out_doc_template']);
|
||
dataEdit[47].setHeight(425);
|
||
|
||
formOutput.getItems()[13].setVisible(false)
|
||
dataEdit[47].setVisible(true);
|
||
}
|
||
formOutput.panel.style.addProperties({padding: '0px 10px'});
|
||
winMainOutputDocument.setHeight(520);
|
||
if (!editorTiny.isInitialized)
|
||
tinymce.execCommand('mceFocus', false, 'tinyeditor');
|
||
};
|
||
|
||
deleteDataRow = function () {
|
||
confirmWindow = new PMUI.ui.MessageWindow({
|
||
id: "outputMessageWindowWarning",
|
||
windowMessageType: 'warning',
|
||
bodyHeight: 'auto',
|
||
width: 490,
|
||
title: "Output Documents".translate(),
|
||
message: "Do you want to delete this Output Document?".translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'confirmWindowButtonNo',
|
||
text: "No".translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'confirmWindowButtonYes',
|
||
text: "Yes".translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
var restClient;
|
||
confirmWindow.close();
|
||
restClient = new PMRestClient({
|
||
endpoint: "output-document/" + dataOutPutDocument.out_doc_uid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems deleting the OutputDocument, please try again.".translate(),
|
||
messageSuccess: 'Output Document deleted successfully'.translate(),
|
||
flashContainer: gridOutput
|
||
});
|
||
restClient.executeRestClient();
|
||
},
|
||
buttonType: "success"
|
||
},
|
||
]
|
||
});
|
||
confirmWindow.open();
|
||
confirmWindow.dom.titleContainer.style.height = "17px";
|
||
confirmWindow.showFooter();
|
||
};
|
||
|
||
updateOutput = function (data) {
|
||
dataOutPutDocument = '';
|
||
var restClientUpdate = new PMRestClient({
|
||
endpoint: "output-document/" + data.out_doc_uid,
|
||
typeRequest: 'update',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
dataOutPutDocument = data;
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems updating the OutputDocument, please try again.".translate(),
|
||
messageSuccess: 'Output Document edited successfully'.translate(),
|
||
flashContainer: gridOutput
|
||
});
|
||
restClientUpdate.executeRestClient();
|
||
};
|
||
|
||
editorTiny = new PMTinyField({
|
||
id: 'outputEditorTiny',
|
||
theme: "advanced",
|
||
plugins: "advhr,advimage,advlink,advlist,autolink,autoresize,contextmenu,directionality,emotions,example,example_dependency,fullpage,fullscreen,iespell,inlinepopups,insertdatetime,layer,legacyoutput,lists,media,nonbreaking,noneditable,pagebreak,paste,preview,print,save,searchreplace,style,tabfocus,table,template,visualblocks,visualchars,wordcount,xhtmlxtras,pmSimpleUploader,pmVariablePicker,style",
|
||
mode: "specific_textareas",
|
||
editorSelector: "tmceEditor",
|
||
widthTiny: DEFAULT_WINDOW_WIDTH - 58,
|
||
heightTiny: DEFAULT_WINDOW_HEIGHT - 100,
|
||
directionality: 'ltr',
|
||
verifyHtml: false,
|
||
themeAdvancedButtons1: "pmSimpleUploader,|,pmVariablePicker,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontselect,fontsizeselect,|,cut,copy,paste,|,bullist,numlist,|,outdent,indent,blockquote",
|
||
themeAdvancedButtons2: "tablecontrols,|,undo,redo,|,link,unlink,image,|,forecolor,backcolor,styleprops,|,hr,removeformat,visualaid,|,sub,sup,|,ltr,rtl,|,code",
|
||
popupCss: "/js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialogTinyBpmn.css",
|
||
contentCss: "/css/fonts.css,/fonts/styles.php",
|
||
themeAdvancedFonts: tcPdfFonts,
|
||
skin: "o2k7",
|
||
skin_variant: "silver"
|
||
});
|
||
|
||
docMargin = new PMUI.form.FormPanel({
|
||
fieldset: true,
|
||
layout: 'hbox',
|
||
legend: "Margin".translate(),
|
||
items: [
|
||
new PMUI.form.FormPanel({
|
||
fieldset: true,
|
||
layout: "box",
|
||
proportion: 0.6,
|
||
padding: "5px 5px",
|
||
items: [
|
||
new PMUI.form.FormPanel({
|
||
fieldset: true,
|
||
height: 200,
|
||
width: 170,
|
||
borderWidth : "3px",
|
||
})
|
||
]
|
||
}),
|
||
{
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
items: [
|
||
{
|
||
id: 'outputDocMarginLeft',
|
||
pmType: "text",
|
||
label: "Left".translate(),
|
||
required: true,
|
||
value: 20,
|
||
name: "out_doc_left_margin",
|
||
controlsWidth: 50,
|
||
labelWidth: '35%'
|
||
}, {
|
||
id: 'outputDocMarginRight',
|
||
pmType: "text",
|
||
label: "Right".translate(),
|
||
required: true,
|
||
value: 20,
|
||
name: "out_doc_right_margin",
|
||
controlsWidth: 50,
|
||
labelWidth: '35%'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
proportion: 1.5,
|
||
items: [
|
||
{
|
||
id: 'outputDocMarginTop',
|
||
pmType: "text",
|
||
label: "Top".translate(),
|
||
required: true,
|
||
value: 20,
|
||
name: "out_doc_top_margin",
|
||
controlsWidth: 50,
|
||
labelWidth: '27%'
|
||
}, {
|
||
id: 'outputDocMarginBottom',
|
||
pmType: "text",
|
||
label: "Bottom".translate(),
|
||
required: true,
|
||
value: 20,
|
||
name: "out_doc_bottom_margin",
|
||
controlsWidth: 50,
|
||
labelWidth: '27%'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
});
|
||
|
||
//Field "Open Password - Owner Password"
|
||
outputFormDocPdfSecurityOpen = new PMUI.field.PasswordField({
|
||
id: "outputFormDocPdfSecurityOpen",
|
||
name: "out_doc_pdf_security_open_password",
|
||
value: "",
|
||
label: "Open Password ".translate(),
|
||
required: true,
|
||
controlsWidth: 300
|
||
});
|
||
|
||
outputFormDocPdfSecurityOwner = new PMUI.field.PasswordField({
|
||
id: "outputFormDocPdfSecurityOwner",
|
||
name: "out_doc_pdf_security_owner_password",
|
||
value: "",
|
||
label: "Owner Password ".translate(),
|
||
required: true,
|
||
controlsWidth: 300
|
||
|
||
});
|
||
|
||
password = new PMUI.form.FormPanel({
|
||
width: 500,
|
||
height: 130,
|
||
fieldset: true,
|
||
visible: false,
|
||
legend: "",
|
||
items: [
|
||
{
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
items: [
|
||
outputFormDocPdfSecurityOpen,
|
||
outputFormDocPdfSecurityOwner
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
items: [
|
||
{
|
||
id: 'outputFormDocPdfSecurityPermissions',
|
||
pmType: 'checkbox',
|
||
label: "Allowed Permissions".translate(),
|
||
value: '',
|
||
name: 'out_doc_pdf_security_permissions',
|
||
required: false,
|
||
controlPositioning: 'horizontal',
|
||
separator: "|",
|
||
maxDirectionOptions: 4,
|
||
options: [
|
||
{
|
||
id: 'monday',
|
||
label: "print".translate(),
|
||
value: 'print'
|
||
},
|
||
{
|
||
id: 'monday',
|
||
label: "modify".translate(),
|
||
value: 'modify'
|
||
},
|
||
{
|
||
id: 'monday',
|
||
label: "copy".translate(),
|
||
value: 'copy'
|
||
},
|
||
{
|
||
id: 'monday',
|
||
label: "forms".translate(),
|
||
value: 'forms'
|
||
}
|
||
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
layout: "vbox"
|
||
});
|
||
|
||
/**
|
||
* Header Settings
|
||
*/
|
||
headerSettings = new PMUI.form.FormPanel({
|
||
fieldset: true,
|
||
layout: 'vbox',
|
||
name: "header_settings",
|
||
legend: "Header Settings".translate(),
|
||
items: [
|
||
{
|
||
pmType: "panel",
|
||
layout: 'hbox',
|
||
items: [
|
||
new CriteriaField({
|
||
id: 'headerTitle',
|
||
pmType: "text",
|
||
name: 'header_title',
|
||
label: "Header Title".translate(),
|
||
labelWidth: '26%',
|
||
controlsWidth: 285,
|
||
required: false,
|
||
proportion: 3
|
||
}),
|
||
{
|
||
id: 'fontSizeHeader',
|
||
pmType: "text",
|
||
label: "Font Size".translate(),
|
||
required: false,
|
||
value: 8,
|
||
name: "font_size_header",
|
||
controlsWidth: 50,
|
||
labelWidth: '51%',
|
||
proportion: 1.2,
|
||
onChange: function (newVal, oldVal) {
|
||
if (newVal <= 7 || newVal >= 73) {
|
||
this.setValue(oldVal);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: 'positionXTitleHeader',
|
||
pmType: "text",
|
||
label: "Position X".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_x_title_header",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%'
|
||
},
|
||
{
|
||
id: 'positionYTitleHeader',
|
||
pmType: "text",
|
||
label: "Position Y".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_y_title_header",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%'
|
||
},
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
layout: 'hbox',
|
||
items: [
|
||
new CriteriaField({
|
||
id: 'headerLogo',
|
||
pmType: "text",
|
||
name: 'header_logo',
|
||
label: "Header Logo".translate(),
|
||
labelWidth: '26%',
|
||
controlsWidth: 285,
|
||
required: false,
|
||
proportion: 3
|
||
}),
|
||
{
|
||
id: 'logoWidthHeader',
|
||
pmType: "text",
|
||
label: "Logo Width".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "logo_width_header",
|
||
controlsWidth: 50,
|
||
labelWidth: '51%',
|
||
proportion: 1.2
|
||
},
|
||
{
|
||
id: 'positionXLogoHeader',
|
||
pmType: "text",
|
||
label: "Position X".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_x_logo_header",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%'
|
||
},
|
||
{
|
||
id: 'positionYLogoHeader',
|
||
pmType: "text",
|
||
label: "Position Y".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_y_logo_header",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%'
|
||
},
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
layout: "hbox",
|
||
items: [
|
||
new PMUI.form.FormPanel({
|
||
fieldset: false,
|
||
layout: 'hbox',
|
||
legend: "Header Settings".translate(),
|
||
proportion: 3,
|
||
fontSize: 10,
|
||
padding: 0,
|
||
items: [
|
||
new SwitchField({
|
||
id: 'pageNumberHeader',
|
||
labelWidth: "50%",
|
||
label: "Page Number".translate(),
|
||
name: "page_number_header",
|
||
value: '1',
|
||
controlsWidth: 54,
|
||
proportion: 0.45,
|
||
controlPositioning: 'vertical',
|
||
options: [
|
||
{
|
||
id: 'pageNumberOptionHeader',
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
if (newVal === '["1"]') {
|
||
headerSettings.getField('pagination_title_header').updateDisabled(false);
|
||
headerSettings.getField('total_number_page_header').enable();
|
||
getFieldById('totalNumberPageHeader').enable();
|
||
getFieldById('positionXNumberHeader').enable();
|
||
getFieldById('positionYNumberHeader').enable();
|
||
} else {
|
||
headerSettings.getField('pagination_title_header').updateDisabled(true);
|
||
headerSettings.getField('total_number_page_header').disable();
|
||
getFieldById('totalNumberPageHeader').disable();
|
||
getFieldById('positionXNumberHeader').disable();
|
||
getFieldById('positionYNumberHeader').disable();
|
||
}
|
||
}
|
||
}),
|
||
new CriteriaField({
|
||
id: 'paginationTitleHeader',
|
||
pmType: "text",
|
||
name: 'pagination_title_header',
|
||
label: "Pagination Title".translate(),
|
||
labelWidth: '27%',
|
||
controlsWidth: 170,
|
||
required: false,
|
||
disabled: true
|
||
}),
|
||
]
|
||
}),
|
||
new SwitchField({
|
||
id: 'totalNumberPageHeader',
|
||
labelWidth: "60%",
|
||
label: "Total Number of Pages".translate(),
|
||
name: "total_number_page_header",
|
||
value: '1',
|
||
controlPositioning: 'vertical',
|
||
controlsWidth: 54,
|
||
proportion: 1.2,
|
||
options: [
|
||
{
|
||
id: 'totalNumberPageOptionHeader',
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
}
|
||
}),
|
||
{
|
||
id: 'positionXNumberHeader',
|
||
pmType: "text",
|
||
label: "Position X".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_x_number_header",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%',
|
||
disabled: true
|
||
},
|
||
{
|
||
id: 'positionYNumberHeader',
|
||
pmType: "text",
|
||
label: "Position Y".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_y_number_header",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%',
|
||
disabled: true
|
||
},
|
||
]
|
||
}
|
||
]
|
||
});
|
||
|
||
/**
|
||
* Footer settings
|
||
*/
|
||
footerSettings = new PMUI.form.FormPanel({
|
||
fieldset: true,
|
||
layout: 'vbox',
|
||
name: "footer_settings",
|
||
legend: "Footer Settings".translate(),
|
||
items: [
|
||
{
|
||
pmType: "panel",
|
||
layout: 'hbox',
|
||
items: [
|
||
new CriteriaField({
|
||
id: 'footerTitle',
|
||
pmType: "text",
|
||
name: 'footer_title',
|
||
label: "Footer Title".translate(),
|
||
labelWidth: '26%',
|
||
controlsWidth: 285,
|
||
required: false,
|
||
proportion: 3
|
||
}),
|
||
{
|
||
id: 'fontSizeFooter',
|
||
pmType: "text",
|
||
label: "Font Size".translate(),
|
||
required: false,
|
||
value: 8,
|
||
name: "font_size_footer",
|
||
controlsWidth: 50,
|
||
labelWidth: '51%',
|
||
proportion: 1.2,
|
||
onChange: function (newVal, oldVal) {
|
||
if (newVal <= 7 || newVal >= 73) {
|
||
this.setValue(oldVal);
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: 'positionXTitleFooter',
|
||
pmType: "text",
|
||
label: "Position X".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_x_title_footer",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%'
|
||
},
|
||
{
|
||
id: 'positionYTitleFooter',
|
||
pmType: "text",
|
||
label: "Position Y".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_y_title_footer",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%'
|
||
},
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
layout: 'hbox',
|
||
items: [
|
||
new CriteriaField({
|
||
id: 'footerLogo',
|
||
pmType: "text",
|
||
name: 'footer_logo',
|
||
label: "Footer Logo".translate(),
|
||
labelWidth: '26%',
|
||
controlsWidth: 285,
|
||
required: false,
|
||
proportion: 3
|
||
}),
|
||
{
|
||
id: 'logoWidthFooter',
|
||
pmType: "text",
|
||
label: "Logo Width".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "logo_width_footer",
|
||
controlsWidth: 50,
|
||
labelWidth: '51%',
|
||
proportion: 1.2
|
||
},
|
||
{
|
||
id: 'positionXLogoFooter',
|
||
pmType: "text",
|
||
label: "Position X".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_x_logo_footer",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%'
|
||
},
|
||
{
|
||
id: 'positionYLogoFooter',
|
||
pmType: "text",
|
||
label: "Position Y".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_y_logo_footer",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%'
|
||
},
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
layout: "hbox",
|
||
items: [
|
||
new PMUI.form.FormPanel({
|
||
fieldset: false,
|
||
layout: 'hbox',
|
||
legend: "Footer Settings".translate(),
|
||
proportion: 3,
|
||
fontSize: 10,
|
||
padding: 0,
|
||
items: [
|
||
new SwitchField({
|
||
id: 'pageNumerFooter',
|
||
labelWidth: "50%",
|
||
label: "Page Number".translate(),
|
||
name: "page_number_footer",
|
||
value: '1',
|
||
controlsWidth: 54,
|
||
proportion: 0.45,
|
||
controlPositioning: 'vertical',
|
||
options: [
|
||
{
|
||
id: 'pageNumberOptionFooter',
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
if (newVal === '["1"]') {
|
||
footerSettings.getField('pagination_title_footer').updateDisabled(false);
|
||
footerSettings.getField('total_number_page_footer').enable();
|
||
getFieldById('totalNumberPageFooter').enable();
|
||
getFieldById('positionXNumberFooter').enable();
|
||
getFieldById('positionYNumberFooter').enable();
|
||
} else {
|
||
footerSettings.getField('pagination_title_footer').updateDisabled(true);
|
||
footerSettings.getField('total_number_page_footer').disable();
|
||
getFieldById('totalNumberPageFooter').disable();
|
||
getFieldById('positionXNumberFooter').disable();
|
||
getFieldById('positionYNumberFooter').disable();
|
||
}
|
||
}
|
||
}),
|
||
new CriteriaField({
|
||
id: 'paginationTitleFooter',
|
||
pmType: "text",
|
||
name: 'pagination_title_footer',
|
||
label: "Pagination Title".translate(),
|
||
labelWidth: '27%',
|
||
controlsWidth: 170,
|
||
required: false,
|
||
disabled: true
|
||
}),
|
||
]
|
||
}),
|
||
new SwitchField({
|
||
id: 'totalNumberPageFooter',
|
||
labelWidth: "60%",
|
||
label: "Total Number of Pages".translate(),
|
||
name: "total_number_page_footer",
|
||
value: '1',
|
||
controlPositioning: 'vertical',
|
||
controlsWidth: 54,
|
||
proportion: 1.2,
|
||
options: [
|
||
{
|
||
id: 'totalNumberPageOptionFooter',
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
}
|
||
}),
|
||
{
|
||
id: 'positionXNumberFooter',
|
||
pmType: "text",
|
||
label: "Position X".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_x_number_footer",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%',
|
||
disabled: true
|
||
},
|
||
{
|
||
id: 'positionYNumberFooter',
|
||
pmType: "text",
|
||
label: "Position Y".translate(),
|
||
required: false,
|
||
value: 0,
|
||
name: "position_y_number_footer",
|
||
controlsWidth: 50,
|
||
labelWidth: '62%',
|
||
disabled: true
|
||
},
|
||
]
|
||
}
|
||
]
|
||
});
|
||
|
||
/**
|
||
* Change the type of control
|
||
*/
|
||
changeType = function () {
|
||
headerSettings.getField('font_size_header').getControl().getHTML().type = "number";
|
||
headerSettings.getField('position_x_title_header').getControl().getHTML().type = "number";
|
||
headerSettings.getField('position_y_title_header').getControl().getHTML().type = "number";
|
||
headerSettings.getField('logo_width_header').getControl().getHTML().type = "number";
|
||
headerSettings.getField('position_x_logo_header').getControl().getHTML().type = "number";
|
||
headerSettings.getField('position_y_logo_header').getControl().getHTML().type = "number";
|
||
headerSettings.getField('position_x_number_header').getControl().getHTML().type = "number";
|
||
headerSettings.getField('position_y_number_header').getControl().getHTML().type = "number";
|
||
footerSettings.getField('font_size_footer').getControl().getHTML().type = "number";
|
||
footerSettings.getField('position_x_title_footer').getControl().getHTML().type = "number";
|
||
footerSettings.getField('position_y_title_footer').getControl().getHTML().type = "number";
|
||
footerSettings.getField('logo_width_footer').getControl().getHTML().type = "number";
|
||
footerSettings.getField('position_x_logo_footer').getControl().getHTML().type = "number";
|
||
footerSettings.getField('position_y_logo_footer').getControl().getHTML().type = "number";
|
||
footerSettings.getField('position_x_number_footer').getControl().getHTML().type = "number";
|
||
footerSettings.getField('position_y_number_footer').getControl().getHTML().type = "number";
|
||
};
|
||
|
||
/**
|
||
* Set a minimum value to avoid entering negative numbers
|
||
*/
|
||
setMinValue = function () {
|
||
headerSettings.getField('position_x_title_header').getControl().getHTML().min = "0";
|
||
headerSettings.getField('position_y_title_header').getControl().getHTML().min = "0";
|
||
headerSettings.getField('logo_width_header').getControl().getHTML().min = "0";
|
||
headerSettings.getField('position_x_logo_header').getControl().getHTML().min = "0";
|
||
headerSettings.getField('position_y_logo_header').getControl().getHTML().min = "0";
|
||
headerSettings.getField('position_x_number_header').getControl().getHTML().min = "0";
|
||
headerSettings.getField('position_y_number_header').getControl().getHTML().min = "0";
|
||
footerSettings.getField('position_x_title_footer').getControl().getHTML().min = "0";
|
||
footerSettings.getField('position_y_title_footer').getControl().getHTML().min = "0";
|
||
footerSettings.getField('logo_width_footer').getControl().getHTML().min = "0";
|
||
footerSettings.getField('position_x_logo_footer').getControl().getHTML().min = "0";
|
||
footerSettings.getField('position_y_logo_footer').getControl().getHTML().min = "0";
|
||
footerSettings.getField('position_x_number_footer').getControl().getHTML().min = "0";
|
||
footerSettings.getField('position_y_number_footer').getControl().getHTML().min = "0";
|
||
};
|
||
|
||
//Field "PDF security"
|
||
outputFormDocPdfSecurityEnabled = new PMUI.field.DropDownListField({
|
||
id: "outputDocDPFSecurity",
|
||
name: "out_doc_pdf_security_enabled",
|
||
label: "PDF security".translate(),
|
||
labelWidth: "27%",
|
||
valueType: "number",
|
||
visible: false,
|
||
|
||
options: [
|
||
{
|
||
value: 0,
|
||
label: "Disabled".translate(),
|
||
selected: true
|
||
},
|
||
{
|
||
value: 1,
|
||
label: "Enabled".translate()
|
||
|
||
}
|
||
],
|
||
|
||
controlsWidth: 100,
|
||
|
||
onChange: function (newValue, prevValue) {
|
||
var visible = true;
|
||
|
||
if (newValue == 0) {
|
||
visible = false;
|
||
|
||
outputFormDocPdfSecurityOpen.setValue("");
|
||
outputFormDocPdfSecurityOwner.setValue("");
|
||
}
|
||
|
||
password.setVisible(visible);
|
||
}
|
||
});
|
||
|
||
//the form is 700px width, but with the tiny grows to 890
|
||
formOutput = new PMUI.form.Form({
|
||
id: 'outputForm',
|
||
name: 'outputForm',
|
||
fieldset: true,
|
||
title: "",
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 43,
|
||
items: [
|
||
{
|
||
id: 'outputDocTitle',
|
||
pmType: "text",
|
||
name: 'out_doc_title',
|
||
label: "Title".translate(),
|
||
labelWidth: '27%',
|
||
controlsWidth: 300,
|
||
required: true
|
||
},
|
||
new CriteriaField({
|
||
id: 'outputDocFilenameGenerated',
|
||
pmType: "text",
|
||
name: 'out_doc_filename',
|
||
label: "Filename generated".translate(),
|
||
labelWidth: '27%',
|
||
controlsWidth: 300,
|
||
required: true
|
||
}),
|
||
{
|
||
id: 'outputDocDescription',
|
||
pmType: "textarea",
|
||
name: 'out_doc_description',
|
||
label: "Description".translate(),
|
||
labelWidth: '27%',
|
||
controlsWidth: 500,
|
||
rows: 100,
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
},
|
||
{
|
||
id: 'outputDocReportGenerator',
|
||
pmType: "dropdown",
|
||
name: 'out_doc_report_generator',
|
||
label: "Report Generator".translate(),
|
||
labelWidth: '27%',
|
||
require: true,
|
||
controlsWidth: 165,
|
||
options: [
|
||
{
|
||
label: "TCPDF".translate(),
|
||
value: "TCPDF"
|
||
},
|
||
{
|
||
label: "HTML2PDF (Old Version)".translate(),
|
||
value: "HTML2PDF"
|
||
}
|
||
],
|
||
value: "TCPDF"
|
||
},
|
||
{
|
||
id: 'outputDocMedia',
|
||
pmType: "dropdown",
|
||
name: 'out_doc_media',
|
||
label: "Media".translate(),
|
||
labelWidth: '27%',
|
||
controlsWidth: 165,
|
||
options: [
|
||
{label: "Letter".translate(), value: "Letter"},
|
||
{label: "Legal".translate(), value: "Legal"},
|
||
{label: "Executive".translate(), value: "Executive"},
|
||
{label: "B5".translate(), value: "B5"},
|
||
{label: "Folio".translate(), value: "Folio"},
|
||
{label: "A0Oversize".translate(), value: "A0Oversize"},
|
||
{label: "A0".translate(), value: "A0"},
|
||
{label: "A1".translate(), value: "A1"},
|
||
{label: "A2".translate(), value: "A2"},
|
||
{label: "A3".translate(), value: "A3"},
|
||
{label: "A4".translate(), value: "A4"},
|
||
{label: "A5".translate(), value: "A5"},
|
||
{label: "A6".translate(), value: "A6"},
|
||
{label: "A7".translate(), value: "A7"},
|
||
{label: "A8".translate(), value: "A8"},
|
||
{label: "A9".translate(), value: "A9"},
|
||
{label: "A10", value: "A10"},
|
||
{label: "Screenshot640".translate(), value: "SH640"},
|
||
{label: "Screenshot800".translate(), value: "SH800"},
|
||
{label: "Screenshot1024".translate(), value: "SH1024"}
|
||
]
|
||
},
|
||
{
|
||
id: 'outputDocOrientation',
|
||
pmType: "dropdown",
|
||
name: 'out_doc_landscape',
|
||
labelWidth: '27%',
|
||
label: "Orientation".translate(),
|
||
controlsWidth: 165,
|
||
options: [
|
||
{
|
||
label: "Portrait".translate(),
|
||
selected: true,
|
||
value: 0
|
||
},
|
||
{
|
||
label: "Landscape".translate(),
|
||
value: 1
|
||
}
|
||
],
|
||
valueType: 'number'
|
||
},
|
||
docMargin,
|
||
new SwitchField({
|
||
id: 'enableHeader',
|
||
labelWidth: "6%",
|
||
label: "Header".translate(),
|
||
name: "enableHeader",
|
||
value: '0',
|
||
controlsWidth: 54,
|
||
controlPositioning: 'vertical',
|
||
options: [
|
||
{
|
||
id: 'enableHeader',
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
if (newVal === '["1"]') {
|
||
headerSettings.setVisible(true);
|
||
} else {
|
||
headerSettings.setVisible(false);
|
||
}
|
||
}
|
||
}),
|
||
headerSettings,
|
||
new SwitchField({
|
||
id: 'enableFooter',
|
||
labelWidth: "6%",
|
||
label: "Footer".translate(),
|
||
name: "enableFooter",
|
||
value: '0',
|
||
controlsWidth: 54,
|
||
controlPositioning: 'vertical',
|
||
options: [
|
||
{
|
||
id: 'enableFooter',
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
if (newVal === '["1"]') {
|
||
footerSettings.setVisible(true);
|
||
} else {
|
||
footerSettings.setVisible(false);
|
||
}
|
||
}
|
||
}),
|
||
footerSettings,
|
||
{
|
||
id: 'outputDocToGenerate',
|
||
pmType: "dropdown",
|
||
name: 'out_doc_generate',
|
||
controlsWidth: 70,
|
||
labelWidth: '27%',
|
||
label: "Output Document to Generate".translate(),
|
||
options: [
|
||
{
|
||
label: "Both".translate(),
|
||
value: "BOTH"
|
||
},
|
||
{
|
||
label: "Doc".translate(),
|
||
value: "DOC"
|
||
},
|
||
{
|
||
label: "Pdf".translate(),
|
||
value: "PDF"
|
||
}
|
||
],
|
||
value: "BOTH",
|
||
onChange: function (newValue, prevValue) {
|
||
if (newValue == "DOC") {
|
||
outputFormDocPdfSecurityEnabled.setVisible(false);
|
||
outputFormDocPdfSecurityEnabled.setValue(0);
|
||
password.setVisible(false);
|
||
outputFormDocPdfSecurityOpen.setValue("");
|
||
outputFormDocPdfSecurityOwner.setValue("");
|
||
} else {
|
||
outputFormDocPdfSecurityEnabled.setVisible(true);
|
||
}
|
||
}
|
||
},
|
||
outputFormDocPdfSecurityEnabled,
|
||
password,
|
||
{
|
||
id: 'outputDocEnableVersioning',
|
||
pmType: "dropdown",
|
||
name: "out_doc_versioning",
|
||
controlsWidth: 70,
|
||
labelWidth: '27%',
|
||
label: 'Enable versioning'.translate(),
|
||
options: [
|
||
{
|
||
label: "Yes".translate(),
|
||
value: 1
|
||
},
|
||
{
|
||
label: "No".translate(),
|
||
selected: true,
|
||
value: 0
|
||
}
|
||
],
|
||
valueType: 'number'
|
||
},
|
||
new CriteriaField({
|
||
id: 'outputDocDestinationPath',
|
||
pmType: "text",
|
||
name: "out_doc_destination_path",
|
||
labelWidth: '27%',
|
||
label: "Destination Path".translate(),
|
||
controlsWidth: 340
|
||
}),
|
||
new CriteriaField({
|
||
id: 'outputDocTags',
|
||
pmType: "text",
|
||
name: "out_doc_tags",
|
||
labelWidth: '27%',
|
||
label: "Tags".translate(),
|
||
controlsWidth: 340
|
||
}),
|
||
{
|
||
id: "outputDocGenerateFileLink",
|
||
name: "cboByGeneratedFile",
|
||
pmType: "dropdown",
|
||
controlsWidth: 155,
|
||
labelWidth: "27%",
|
||
label: "By clicking on the generated file link".translate(),
|
||
|
||
options: [
|
||
{
|
||
value: 0,
|
||
label: "Open the file".translate()
|
||
},
|
||
{
|
||
label: "Download the file".translate(),
|
||
value: 1,
|
||
selected: true
|
||
}
|
||
],
|
||
|
||
valueType: "number"
|
||
}
|
||
],
|
||
style: {
|
||
cssProperties: {
|
||
marginLeft: '20px'
|
||
}
|
||
}
|
||
});
|
||
|
||
formOutput.style.addProperties({marginLeft: '20px'});
|
||
gridOutput = new PMUI.grid.GridPanel({
|
||
id: 'gridOutput',
|
||
pageSize: 10,
|
||
width: "96%",
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 374,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [
|
||
{
|
||
id: 'gridOutputButtonShow',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Show ID'.translate(),
|
||
columnData: "out_doc_uid",
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-show'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData();
|
||
showUID(data.out_doc_uid);
|
||
}
|
||
},
|
||
{
|
||
title: 'Title'.translate(),
|
||
dataType: 'string',
|
||
width: '392px',
|
||
alignment: "left",
|
||
columnData: "out_doc_title",
|
||
sortable: true,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
title: 'Type'.translate(),
|
||
dataType: 'string',
|
||
width: '100px',
|
||
alignmentCell: 'left',
|
||
columnData: "out_doc_type",
|
||
sortable: true
|
||
},
|
||
{
|
||
id: 'gridOutputButtonEdit',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit'
|
||
]
|
||
},
|
||
buttonLabel: 'Edit'.translate(),
|
||
onButtonClick: function (row, grid) {
|
||
messageRequired.hide();
|
||
setDataRow(row);
|
||
openFormForEditInMainWindow();
|
||
}
|
||
},
|
||
{
|
||
id: 'gridOutputButtonProperties',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-properties'
|
||
]
|
||
},
|
||
buttonLabel: 'Open Editor'.translate(),
|
||
onButtonClick: function (row, grid) {
|
||
setDataRow(row);
|
||
openTinyInMainWindow(row);
|
||
}
|
||
},
|
||
{
|
||
id: 'gridOutputButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
},
|
||
buttonLabel: 'Delete'.translate(),
|
||
onButtonClick: function (row, grid) {
|
||
setDataRow(row);
|
||
deleteDataRow();
|
||
}
|
||
}
|
||
]
|
||
});
|
||
|
||
/**
|
||
* Filter data of header settings
|
||
* @param {Array} data
|
||
* @return {Array}
|
||
*/
|
||
setDataHeaderSettings = function (data) {
|
||
var headerData = {
|
||
"logo": data.header_logo,
|
||
"logoWidth": data.logo_width_header,
|
||
"logoPositionX": data.position_x_logo_header,
|
||
"logoPositionY": data.position_y_logo_header,
|
||
"title": data.header_title,
|
||
"titleFontSize": data.font_size_header,
|
||
"titleFontPositionX": data.position_x_title_header,
|
||
"titleFontPositionY": data.position_y_title_header,
|
||
"pageNumber": headerSettings.getField('page_number_header').value === '["1"]',
|
||
"pageNumberTitle": headerSettings.getField('pagination_title_header').value,
|
||
"pageNumberTotal": headerSettings.getField('total_number_page_header').value === '["1"]',
|
||
"pageNumberPositionX": headerSettings.getField('position_x_number_header').value,
|
||
"pageNumberPositionY": headerSettings.getField('position_y_number_header').value,
|
||
"enableHeader": data.enableHeader === '["1"]'
|
||
};
|
||
//it is necessary to clean the data because it is already in the json
|
||
delete data.header_logo;
|
||
delete data.logo_width_header;
|
||
delete data.position_x_logo_header;
|
||
delete data.position_y_logo_header;
|
||
delete data.header_title;
|
||
delete data.font_size_header;
|
||
delete data.position_x_title_header;
|
||
delete data.position_y_title_header;
|
||
delete data.page_number_header;
|
||
delete data.pagination_title_header;
|
||
delete data.total_number_page_header;
|
||
delete data.position_x_number_header;
|
||
delete data.position_y_number_header;
|
||
delete data.enableHeader;
|
||
return headerData;
|
||
};
|
||
|
||
/**
|
||
* Filter data of footer settings
|
||
* @param {Array} data
|
||
* @return {Array}
|
||
*/
|
||
setDataFooterSettings = function (data) {
|
||
var footerData = {
|
||
"logo": data.footer_logo,
|
||
"logoWidth": data.logo_width_footer,
|
||
"logoPositionX": data.position_x_logo_footer,
|
||
"logoPositionY": data.position_y_logo_footer,
|
||
"title": data.footer_title,
|
||
"titleFontSize": data.font_size_footer,
|
||
"titleFontPositionX": data.position_x_title_footer,
|
||
"titleFontPositionY": data.position_y_title_footer,
|
||
"pageNumber": footerSettings.getField('page_number_footer').value === '["1"]',
|
||
"pageNumberTitle": footerSettings.getField('pagination_title_footer').value,
|
||
"pageNumberTotal": footerSettings.getField('total_number_page_footer').value === '["1"]',
|
||
"pageNumberPositionX": footerSettings.getField('position_x_number_footer').value,
|
||
"pageNumberPositionY": footerSettings.getField('position_y_number_footer').value,
|
||
"enableFooter": data.enableFooter === '["1"]'
|
||
};
|
||
//it is necessary to clean the data because it is already in the json
|
||
delete data.footer_logo;
|
||
delete data.logo_width_footer;
|
||
delete data.position_x_logo_footer;
|
||
delete data.position_y_logo_footer;
|
||
delete data.footer_title;
|
||
delete data.font_size_footer;
|
||
delete data.position_x_title_footer;
|
||
delete data.position_y_title_footer;
|
||
delete data.page_number_footer;
|
||
delete data.pagination_title_footer;
|
||
delete data.total_number_page_footer;
|
||
delete data.position_x_number_footer;
|
||
delete data.position_y_number_footer;
|
||
delete data.enableFooter;
|
||
return footerData;
|
||
};
|
||
|
||
btnSaveWindowOutputDoc = new PMUI.ui.Button({
|
||
id: 'btnSaveWindowOutputDoc',
|
||
text: "Save".translate(),
|
||
handler: function () {
|
||
var itemOutPut;
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1)) {
|
||
itemOutPut = getData2PMUI(formOutput.html);
|
||
} else {
|
||
itemOutPut = formOutput.getData();
|
||
}
|
||
if (itemOutPut.out_doc_title != "" && itemOutPut.out_doc_filename != "") {
|
||
|
||
itemOutPut['out_doc_type'] = "HTML";
|
||
|
||
var items = jQuery.parseJSON(itemOutPut['out_doc_pdf_security_permissions']);
|
||
itemOutPut['out_doc_pdf_security_permissions'] = '';
|
||
for (var i = 0; i < items.length; i += 1) {
|
||
itemOutPut['out_doc_pdf_security_permissions'] += (i == 0) ? items[i] : '|' + items[i];
|
||
}
|
||
|
||
itemOutPut["out_doc_landscape"] = parseInt(itemOutPut["out_doc_landscape"]);
|
||
itemOutPut["out_doc_pdf_security_enabled"] = parseInt(itemOutPut["out_doc_pdf_security_enabled"]);
|
||
itemOutPut["out_doc_versioning"] = parseInt(itemOutPut["out_doc_versioning"]);
|
||
itemOutPut["out_doc_open_type"] = parseInt(getData2PMUI(formOutput.html).cboByGeneratedFile);
|
||
itemOutPut["out_doc_header"] = setDataHeaderSettings(itemOutPut);
|
||
itemOutPut["out_doc_footer"] = setDataFooterSettings(itemOutPut);
|
||
if (dataOutPutDocument != '' && dataOutPutDocument != undefined) {
|
||
itemOutPut['out_doc_uid'] = dataOutPutDocument.out_doc_uid;
|
||
restClient = new PMRestClient({
|
||
endpoint: "output-document/" + dataOutPutDocument.out_doc_uid,
|
||
typeRequest: 'update',
|
||
data: itemOutPut,
|
||
functionSuccess: function (xhr, response) {
|
||
dataOutPutDocument = itemOutPut;
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems updating the OutputDocument, please try again.".translate(),
|
||
messageSuccess: 'Output Document edited successfully'.translate(),
|
||
flashContainer: gridOutput
|
||
});
|
||
restClient.executeRestClient();
|
||
} else {
|
||
if (1 === parseInt(itemOutPut.out_doc_pdf_security_enabled) && (itemOutPut.out_doc_pdf_security_open_password.trim() === "" || itemOutPut.out_doc_pdf_security_owner_password.trim() === "")) {
|
||
password.getItems()[0].getItems()[0].isValid();
|
||
password.getItems()[0].getItems()[1].isValid();
|
||
return false;
|
||
}
|
||
itemOutPut['out_doc_uid'] = '';
|
||
restClient = new PMRestClient({
|
||
endpoint: "output-document",
|
||
typeRequest: 'post',
|
||
data: itemOutPut,
|
||
functionSuccess: function (xhr, response) {
|
||
dataOutPutDocument = itemOutPut;
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems saved the OutputDocument, please try again.".translate(),
|
||
messageSuccess: 'Output Document saved successfully'.translate(),
|
||
flashContainer: gridOutput
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
clearDataRow();
|
||
} else {
|
||
formOutput.getField("out_doc_title").isValid();
|
||
formOutput.getField("out_doc_filename").isValid();
|
||
}
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
|
||
btnCloseWindowOutputDoc = new PMUI.ui.Button({
|
||
id: 'btnCloseWindowOutputDoc',
|
||
text: "Cancel".translate(),
|
||
handler: function () {
|
||
clickedClose = false;
|
||
isDirtyFormOutput();
|
||
},
|
||
buttonType: 'error'
|
||
});
|
||
|
||
newButtonOutput = new PMUI.ui.Button({
|
||
id: 'outputButtonNew',
|
||
text: 'Create'.translate(),
|
||
height: "36px",
|
||
width: 100,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-button-create'
|
||
]
|
||
},
|
||
handler: function () {
|
||
clearDataRow();
|
||
openFormInMainWindow();
|
||
}
|
||
});
|
||
|
||
btnCancelTiny = new PMUI.ui.Button({
|
||
id: 'btnCloseTiny',
|
||
text: 'Cancel'.translate(),
|
||
handler: function () {
|
||
/*if (typeof dataOutPutDocument['externalType'] != 'undefined' && dataOutPutDocument['externalType']) {
|
||
winMainOutputDocument.close();
|
||
return;
|
||
}*/
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
clickedClose = false;
|
||
isDirtyFormOutput();
|
||
},
|
||
buttonType: 'error'
|
||
});
|
||
|
||
btnSaveTiny = new PMUI.ui.Button({
|
||
id: 'btnSaveTiny',
|
||
text: 'Save'.translate(),
|
||
handler: function () {
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
dataOutPutDocument['out_doc_template'] = tinyMCE.activeEditor.getContent();
|
||
updateOutput(dataOutPutDocument);
|
||
if (typeof dataOutPutDocument['externalType'] != 'undefined' && dataOutPutDocument['externalType']) {
|
||
winMainOutputDocument.close();
|
||
return;
|
||
}
|
||
clearDataRow();
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
|
||
winMainOutputDocument = new PMUI.ui.Window({
|
||
id: "winMainOutputDocument",
|
||
title: "Output Documents".translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
buttonPanelPosition: "bottom",
|
||
onBeforeClose: function () {
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
clickedClose = true;
|
||
isDirtyFormOutput();
|
||
},
|
||
footerItems: [
|
||
btnCancelTiny,
|
||
btnSaveTiny,
|
||
btnCloseWindowOutputDoc,
|
||
btnSaveWindowOutputDoc]
|
||
});
|
||
|
||
formOutput.addItem(editorTiny);
|
||
formOutput.footer.setVisible(false);
|
||
|
||
winMainOutputDocument.addItem(gridOutput);
|
||
winMainOutputDocument.addItem(formOutput);
|
||
|
||
refreshGridPanelInMainWindow();
|
||
|
||
validateKeysField(docMargin.getField('out_doc_left_margin').getControls()[0].getHTML(), ['isbackspace', 'isnumber']);
|
||
validateKeysField(docMargin.getField('out_doc_right_margin').getControls()[0].getHTML(), ['isbackspace', 'isnumber']);
|
||
validateKeysField(docMargin.getField('out_doc_top_margin').getControls()[0].getHTML(), ['isbackspace', 'isnumber']);
|
||
validateKeysField(docMargin.getField('out_doc_bottom_margin').getControls()[0].getHTML(), ['isbackspace', 'isnumber']);
|
||
changeType();
|
||
setMinValue();
|
||
|
||
if (typeof listOutputDocs !== "undefined") {
|
||
winMainOutputDocument.open();
|
||
$('#gridOutput .pmui-textcontrol').css({'margin-top': '5px', width: '250px'});
|
||
messageRequired = $(document.getElementById("requiredMessage"));
|
||
applyStyleWindowForm(winMainOutputDocument);
|
||
|
||
editorTiny.isInitialized = false;
|
||
winMainOutputDocument.footer.html.style.textAlign = 'right';
|
||
|
||
gridOutput.dom.toolbar.appendChild(newButtonOutput.getHTML());
|
||
newButtonOutput.defineEvents();
|
||
winMainOutputDocument.defineEvents();
|
||
disableAllItems();
|
||
winMainOutputDocument.getItems()[0].setVisible(true);
|
||
}
|
||
};
|
||
|
||
PMDesigner.output.showTiny = function (uid) {
|
||
getItemdOutput = function () {
|
||
var restClientGet = new PMRestClient({
|
||
endpoint: 'output-document/' + uid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
dataOutPutDocument = response;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the output documents, please try again.".translate()
|
||
});
|
||
restClientGet.executeRestClient();
|
||
};
|
||
getItemdOutput();
|
||
dataOutPutDocument['externalType'] = true;
|
||
openTinyInMainWindow(dataOutPutDocument);
|
||
};
|
||
|
||
PMDesigner.output.create = function () {
|
||
openFormInMainWindow();
|
||
};
|
||
}());
|
||
|
||
(
|
||
function () {
|
||
var iframeRT,
|
||
reportWindow,
|
||
pathSrc;
|
||
|
||
PMDesigner.reporttable = function (event) {
|
||
reportWindow = new PMUI.ui.Window({
|
||
id: 'reportTableWindow',
|
||
title: "Report Tables".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT
|
||
});
|
||
|
||
pathSrc = window.parent.location;
|
||
|
||
iframeRT = new PMIframe({
|
||
id: 'reporTableIframe',
|
||
src: window.location.href.split("/")[0] + "//" + pathSrc.host + "/sys" + WORKSPACE + "/" + LANG + "/" + SKIN + "/pmTables?PRO_UID=" + PMDesigner.project.id + "&flagProcessmap=1",
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT - 36,
|
||
scrolling: 'no',
|
||
frameborder: '0'
|
||
});
|
||
|
||
reportWindow.addItem(iframeRT);
|
||
reportWindow.open();
|
||
reportWindow.setBodyPadding(0);
|
||
};
|
||
|
||
PMDesigner.reporttable.create = function () {
|
||
pathSrc = window.parent.location;
|
||
reportWindow.clearItems();
|
||
iframeRT = new PMIframe({
|
||
id: 'reporTableIframe',
|
||
src: window.location.href.split("/")[0] + "//" + pathSrc.host + "/sys" + WORKSPACE + "/" + LANG + "/" + SKIN + "/pmTables/edit?PRO_UID=" + PMDesigner.project.id + "&tableType=report&flagProcessmap=1",
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT - 36,
|
||
scrolling: 'no',
|
||
frameborder: '0'
|
||
});
|
||
reportWindow.addItem(iframeRT);
|
||
reportWindow.open();
|
||
reportWindow.setBodyPadding(0);
|
||
}
|
||
|
||
}()
|
||
);
|
||
(function () {
|
||
$ctrlSpaceMessage = $("<p class='ctrlSpaceMessage'>" + "Press".translate() + " <strong>ctrl+space</strong> " + "to get the function list".translate() + ".</p>");
|
||
var btnCopyImport, openFormCustom, formEditTriggerCustom;
|
||
var triggerOriginDataForUpdate = {};
|
||
PMDesigner.trigger = function (event) {
|
||
var listTriggers,
|
||
clickedClose = true,
|
||
message_ErrorWindow,
|
||
flagChanges,
|
||
isDirtyFormTrigger,
|
||
gridListTrigger,
|
||
getListTrigger,
|
||
addNumberTriggerWizard,
|
||
newTriggerOptions,
|
||
allTreesItems,
|
||
buttonNew,
|
||
buttonCopy,
|
||
buttonWizard,
|
||
openListTriggers,
|
||
openFormWizard,
|
||
openFormWizardEditMode,
|
||
openFormCopy,
|
||
openFormEditCode,
|
||
openNewTriggerOptions,
|
||
listProjects,
|
||
getListProjects,
|
||
triggerSelectedData,
|
||
formCopyTrigger,
|
||
codMirr,
|
||
formEditTriggerWizard,
|
||
sepInputs,
|
||
labelInputs,
|
||
paramPanel,
|
||
sepOutputs,
|
||
labelOutputs,
|
||
returnPanel,
|
||
parameterItems,
|
||
returnItems,
|
||
treeNewTrigger,
|
||
accordionNewTrigger,
|
||
updateCustom,
|
||
checkIfValuesAreEqual,
|
||
buttonSave,
|
||
copyButton,
|
||
applyButton,
|
||
btnEditSourceCode,
|
||
buttonCancel,
|
||
editCode,
|
||
formEditCode,
|
||
triggerWindow,
|
||
formcustom;
|
||
|
||
message_ErrorWindow = new PMUI.ui.MessageWindow({
|
||
id: "errorMessage",
|
||
width: 490,
|
||
windowMessageType: 'error',
|
||
title: "Triggers".translate(),
|
||
message: "This is an error message.".translate(),
|
||
footerItems: [
|
||
{
|
||
text: 'OK'.translate(),
|
||
handler: function () {
|
||
message_ErrorWindow.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
isDirtyFormTrigger = function () {
|
||
$("input,select,textarea").blur();
|
||
$("div.pmui-window-body.pmui-background").css('overflow', '');
|
||
var formcustom = triggerWindow.getItems()[1];
|
||
var formwizard = triggerWindow.getItems()[2];
|
||
var formcopy = triggerWindow.getItems()[3];
|
||
var formeditcode = triggerWindow.getItems()[4];
|
||
var accordionnewtrigger = triggerWindow.getItems()[5];
|
||
var flag = false;
|
||
|
||
var finalData = {
|
||
tri_uid: getData2PMUI(formEditTriggerCustom.html).uid,
|
||
tri_title: getData2PMUI(formEditTriggerCustom.html).title,
|
||
tri_description: getData2PMUI(formEditTriggerCustom.html).description,
|
||
tri_webbot: getData2PMUI(formEditTriggerCustom.html).code
|
||
};
|
||
|
||
if (formcustom.isVisible() == true) {
|
||
flag = (checkIfValuesAreEqual(triggerOriginDataForUpdate, finalData)) ? false : true;
|
||
} else if (formwizard.isVisible() == true) {
|
||
flag = formEditTriggerWizard.isDirty();
|
||
} else if (formcopy.isVisible() == true) {
|
||
flag = formCopyTrigger.isDirty();
|
||
if (!flag) {
|
||
$('.ctrlSpaceMessage').remove();
|
||
}
|
||
} else if (formeditcode.isVisible() == true) {
|
||
flag = formeditcode.isDirty();
|
||
var flagFormCustom = (checkIfValuesAreEqual(triggerOriginDataForUpdate, finalData)) ? false : true;
|
||
if (!flag && formeditcode.getItems()[0].controls[0].value != "" || flagFormCustom) {
|
||
flag = true;
|
||
}
|
||
}
|
||
|
||
if (flag == true) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
title: "Triggers".translate(),
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
triggerOriginDataForUpdate = {};
|
||
var formcustom = triggerWindow.getItems()[1];
|
||
var formwizard = triggerWindow.getItems()[2];
|
||
var formcopy = triggerWindow.getItems()[3];
|
||
var formeditcode = triggerWindow.getItems()[4];
|
||
|
||
if (formcustom.isVisible() == true) {
|
||
var uidInForm = formEditTriggerCustom.getFields()[0].getValue();
|
||
formEditTriggerCustom.reset();
|
||
openListTriggers();
|
||
} else if (formwizard.isVisible() == true) {
|
||
var uidInForm = formEditTriggerWizard.getFields()[0].getValue();
|
||
formEditTriggerWizard.reset();
|
||
openListTriggers();
|
||
} else if (formcopy.isVisible() == true) {
|
||
$('.ctrlSpaceMessage').remove();
|
||
formCopyTrigger.reset();
|
||
openListTriggers();
|
||
} else if (formeditcode.isVisible() == true) {
|
||
formeditcode.reset();
|
||
openFormCustom("Edit".translate());
|
||
}
|
||
message_window.close();
|
||
if (clickedClose) {
|
||
triggerWindow.close();
|
||
}
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
var formcustom = triggerWindow.getItems()[1];
|
||
var formwizard = triggerWindow.getItems()[2];
|
||
var formcopy = triggerWindow.getItems()[3];
|
||
var formeditcode = triggerWindow.getItems()[4];
|
||
var accordionnewtrigger = triggerWindow.getItems()[5];
|
||
|
||
if (formcustom.isVisible() == true) {
|
||
var uidInForm = formEditTriggerCustom.getFields()[0].getValue();
|
||
formEditTriggerCustom.reset();
|
||
openListTriggers();
|
||
} else if (formwizard.isVisible() == true) {
|
||
var uidInForm = formEditTriggerWizard.getFields()[0].getValue();
|
||
formEditTriggerWizard.reset();
|
||
openListTriggers();
|
||
} else if (formcopy.isVisible() == true) {
|
||
formCopyTrigger.reset();
|
||
openListTriggers();
|
||
} else if (formeditcode.isVisible() == true) {
|
||
formeditcode.reset();
|
||
openFormCustom("Edit".translate());
|
||
} else if (accordionnewtrigger.isVisible() == true) {
|
||
openListTriggers();
|
||
}
|
||
if (clickedClose) {
|
||
triggerWindow.close();
|
||
}
|
||
}
|
||
};
|
||
//GRID List Case Scheduler
|
||
gridListTrigger = new PMUI.grid.GridPanel({
|
||
id: "listTriggers",
|
||
pageSize: 10,
|
||
width: "96%",
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 374,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [
|
||
{
|
||
id: 'listTriggersButtonShow',
|
||
title: '',
|
||
dataType: 'button',
|
||
searchable: false,
|
||
buttonLabel: 'Show ID'.translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-show'
|
||
]
|
||
},
|
||
id: 'copyuid',
|
||
onButtonClick: function (row, grid) {
|
||
var dataRow = row.getData();
|
||
messageWindow = new PMUI.ui.MessageWindow({
|
||
id: 'dynaformMessageWindowUID',
|
||
windowMessageType: 'info',
|
||
width: 490,
|
||
title: "Triggers".translate(),
|
||
message: dataRow.tri_uid,
|
||
footerItems: [
|
||
{
|
||
text: 'OK'.translate(),
|
||
handler: function () {
|
||
messageWindow.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
messageWindow.setTitle("ID".translate());
|
||
messageWindow.open();
|
||
messageWindow.showFooter();
|
||
$(messageWindow.dom.icon).removeClass();
|
||
}
|
||
},
|
||
{
|
||
title: 'Title'.translate(),
|
||
id: "title",
|
||
dataType: 'string',
|
||
width: "407px",
|
||
visible: true,
|
||
columnData: "tri_title",
|
||
searcheable: true,
|
||
sortable: true,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
title: 'Type'.translate(),
|
||
id: "type",
|
||
dataType: 'string',
|
||
width: "225px",
|
||
visible: true,
|
||
alignmentCell: 'left',
|
||
columnData: function (data) {
|
||
if (typeof(data.tri_param) == "object" && typeof(data.tri_param.params) == "object") {
|
||
var wizardData = data.tri_param.params;
|
||
|
||
return wizardData.LIBRARY_NAME;
|
||
} else {
|
||
return "Custom";
|
||
}
|
||
},
|
||
searcheable: true,
|
||
sortable: true
|
||
},
|
||
{
|
||
id: "editButton",
|
||
title: '',
|
||
dataType: 'button',
|
||
messageTooltip: "Edit".translate(),
|
||
buttonLabel: "Edit".translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
triggerOriginDataForUpdate = {};
|
||
var data = row.getData();
|
||
triggerOriginDataForUpdate = data;
|
||
var fields;
|
||
if (data.tri_param == "") {
|
||
|
||
openFormCustom("Edit".translate());
|
||
formEditTriggerCustom.showFooter();
|
||
|
||
var codeMirrorControl, cmControlCopyTrigger;
|
||
codeMirrorControl = formEditTriggerCustom.getItems()[1].controls[0].cm;
|
||
|
||
if (codeMirrorControl != undefined) {
|
||
codeMirrorControl.setSize(580, 160);
|
||
}
|
||
formEditTriggerCustom.getItems()[1].setHeight(170);
|
||
fields = formEditTriggerCustom.getItems()[0];
|
||
fields.getItems()[0].setValue(data.tri_uid);
|
||
fields.getItems()[1].setValue(data.tri_title);
|
||
fields.getItems()[2].setValue(data.tri_description);
|
||
formEditTriggerCustom.getItems()[1].setValue(data.tri_webbot);
|
||
|
||
codeMirrorControl.setValue(data.tri_webbot);
|
||
codeMirrorControl.refresh();
|
||
} else {
|
||
openFormWizardEditMode();
|
||
|
||
var wizardData = data.tri_param.params;
|
||
|
||
var lib = wizardData.LIBRARY_CLASS;
|
||
lib = lib.split('.');
|
||
lib = lib[1];
|
||
fields = formEditTriggerWizard.getFields();
|
||
fields[0].setValue(data.tri_uid);
|
||
fields[1].setValue(lib);
|
||
fields[2].setValue(wizardData.PMFUNTION_NAME);
|
||
fields[3].setValue(wizardData.LIBRARY_NAME + " (" + wizardData.PMFUNTION_LABEL + ")");
|
||
fields[4].setValue(data.tri_title);
|
||
fields[5].setValue(data.tri_description);
|
||
fields[6].setValue(data.tri_webbot);
|
||
|
||
var inputItems = [];
|
||
var outputItems = [];
|
||
|
||
restClient = new PMRestClient({
|
||
endpoint: "trigger-wizard/" + lib + "/" + wizardData.PMFUNTION_NAME,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
if (response.fn_params.input != undefined) {
|
||
for (j = 0; j < response.fn_params.input.length; j++) {
|
||
var nameInput = response.fn_params.input[j].name;
|
||
|
||
var inp = new CriteriaField({
|
||
id: nameInput,
|
||
pmType: "text",
|
||
name: nameInput,
|
||
label: response.fn_params.input[j].label,
|
||
value: wizardData[nameInput].toString(),
|
||
controlsWidth: 400,
|
||
labelWidth: '27%',
|
||
helper: response.fn_params.input[j].description,
|
||
required: response.fn_params.input[j].name === "unpauseDate" ? true : response.fn_params.input[j].required
|
||
});
|
||
|
||
inputItems.push(inp);
|
||
}
|
||
}
|
||
if (response.fn_params.output != undefined) {
|
||
for (k = 0; k < response.fn_params.output.length; k++) {
|
||
var nameOutput = response.fn_params.output[k].name;
|
||
|
||
var out = new CriteriaField({
|
||
id: nameOutput,
|
||
pmType: "text",
|
||
name: nameOutput,
|
||
label: response.fn_params.output[k].label,
|
||
value: wizardData.TRI_ANSWER.toString(),
|
||
controlsWidth: 400,
|
||
labelWidth: '27%',
|
||
helper: response.fn_params.output[k].description,
|
||
required: response.fn_params.output[k].required
|
||
});
|
||
|
||
outputItems.push(out);
|
||
}
|
||
}
|
||
triggerWindow.setTitle("Edit".translate() + " " + wizardData.LIBRARY_NAME);
|
||
if (inputItems.length > 0) {
|
||
formEditTriggerWizard.getItems()[1].setVisible(true);
|
||
formEditTriggerWizard.getItems()[2].setVisible(true);
|
||
formEditTriggerWizard.getItems()[3].setVisible(true);
|
||
formEditTriggerWizard.getItems()[3].clearItems();
|
||
formEditTriggerWizard.getItems()[3].setItems(inputItems);
|
||
} else {
|
||
formEditTriggerWizard.getItems()[1].setVisible(false);
|
||
formEditTriggerWizard.getItems()[2].setVisible(false);
|
||
formEditTriggerWizard.getItems()[3].setVisible(false);
|
||
formEditTriggerWizard.getItems()[3].clearItems();
|
||
}
|
||
if (outputItems.length > 0) {
|
||
formEditTriggerWizard.getItems()[4].setVisible(true);
|
||
formEditTriggerWizard.getItems()[5].setVisible(true);
|
||
formEditTriggerWizard.getItems()[6].setVisible(true);
|
||
formEditTriggerWizard.getItems()[6].clearItems();
|
||
formEditTriggerWizard.getItems()[6].setItems(outputItems);
|
||
} else {
|
||
formEditTriggerWizard.getItems()[4].setVisible(false);
|
||
formEditTriggerWizard.getItems()[5].setVisible(false);
|
||
formEditTriggerWizard.getItems()[6].setVisible(false);
|
||
formEditTriggerWizard.getItems()[6].clearItems();
|
||
}
|
||
labelInputs.dom.labelTextContainer.style.display = "none";
|
||
labelOutputs.dom.labelTextContainer.style.display = "none";
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the triggers wizard list, please try again.".translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: "deleteButton",
|
||
title: '',
|
||
dataType: 'button',
|
||
messageTooltip: "Delete".translate(),
|
||
buttonLabel: "Delete".translate(),
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var questionWindow, dataRow = row.getData();
|
||
|
||
questionWindow = new PMUI.ui.MessageWindow({
|
||
id: "questionDeleteWindow",
|
||
title: "Triggers".translate(),
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
message: "Do you want to delete this Trigger?".translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'questionDeleteWindowButtonNo',
|
||
text: "No".translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
questionWindow.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'questionDeleteWindowButtonYes',
|
||
text: "Yes".translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
questionWindow.close();
|
||
restClient = new PMRestClient({
|
||
endpoint: "trigger/" + dataRow.tri_uid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
grid.removeItem(row);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: "Trigger deleted successfully".translate(),
|
||
flashContainer: gridListTrigger
|
||
});
|
||
restClient.executeRestClient();
|
||
},
|
||
buttonType: "success"
|
||
},
|
||
]
|
||
});
|
||
|
||
questionWindow.open();
|
||
questionWindow.dom.titleContainer.style.height = "17px";
|
||
questionWindow.showFooter();
|
||
}
|
||
}
|
||
],
|
||
dataItems: listTriggers,
|
||
onRowClick: function (row, data) {
|
||
|
||
}
|
||
});
|
||
|
||
getListTrigger = function () {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'triggers',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
listTriggers = response;
|
||
gridListTrigger.setDataItems(listTriggers);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the Triggers list, please try again.".translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
addNumberTriggerWizard = function (value, position) {
|
||
coutTriggers = document.createElement("span");
|
||
coutTriggers.textContent = value;
|
||
headerAccordion = triggerWindow.getItems()[5].getItems()[position].header.html;
|
||
headerAccordion.appendChild(coutTriggers);
|
||
coutTriggers.style.float = "right";
|
||
coutTriggers.style.color = "white";
|
||
coutTriggers.style.fontSize = "13px";
|
||
coutTriggers.style.marginRight = "6px";
|
||
coutTriggers.style.marginTop = "3px";
|
||
};
|
||
|
||
newTriggerOptions = function () {
|
||
|
||
var acItemCustom = accordionNewTrigger.getItems()[0];
|
||
var acItemCopy = accordionNewTrigger.getItems()[1];
|
||
acItemCustom.setIconClosed('pmcustomtrigger');
|
||
acItemCustom.setIconExpanded('pmcustomtrigger');
|
||
acItemCopy.setIconClosed('pmcopytrigger');
|
||
acItemCopy.setIconExpanded('pmcopytrigger');
|
||
|
||
var itemCustom = jQuery("#custom > .pmui-accordion-item-header > span")[1];
|
||
itemCustom.style.width = "0px";
|
||
var itemCopy = jQuery("#copy > .pmui-accordion-item-header > span")[1];
|
||
itemCopy.style.width = "0px";
|
||
|
||
var numOfItems = accordionNewTrigger.getItems();
|
||
|
||
var lengthLibFunctions = [];
|
||
if (numOfItems.length <= 2) {
|
||
restClient = new PMRestClient({
|
||
endpoint: "trigger-wizards",
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
for (i = 0; i < response.length; i++) {
|
||
var functTree = response[i].lib_functions;
|
||
lengthLibFunctions[i] = functTree.length;
|
||
var newTreeItems = [];
|
||
for (h = 0; h < functTree.length; h++) {
|
||
newTreeItems.push({
|
||
label: functTree[h].fn_label,
|
||
id: functTree[h].fn_name,
|
||
onClick: function () {
|
||
for (s = 0; s < response.length; s++) {
|
||
for (p = 0; p < response[s].lib_functions.length; p++) {
|
||
if (response[s].lib_functions[p].fn_name == this.id) {
|
||
var fn = response[s].lib_functions[p].fn_params;
|
||
var fnLabel = response[s].lib_functions[p].fn_label;
|
||
var fnName = response[s].lib_functions[p].fn_name;
|
||
var libName = response[s].lib_name;
|
||
var libTitle = response[s].lib_title;
|
||
p = response[s].lib_functions.length;
|
||
s = response.length - 1;
|
||
}
|
||
}
|
||
}
|
||
var inputItems = [];
|
||
if (fn.input != undefined) {
|
||
for (j = 0; j < fn.input.length; j++) {
|
||
var val = "";
|
||
if (fn.input[j].type == "array") {
|
||
val = "array('')";
|
||
}
|
||
var inp = new CriteriaField({
|
||
id: fn.input[j].name,
|
||
pmType: "text",
|
||
name: fn.input[j].name,
|
||
label: fn.input[j].label,
|
||
controlsWidth: 400,
|
||
labelWidth: '27%',
|
||
value: val,
|
||
helper: fn.input[j].description,
|
||
required: fn.input[j].name === "unpauseDate" ? true : fn.input[j].required
|
||
});
|
||
|
||
inputItems.push(inp);
|
||
}
|
||
}
|
||
|
||
var outputItems = [];
|
||
if (fn.output != undefined) {
|
||
for (k = 0; k < fn.output.length; k++) {
|
||
var out = new CriteriaField({
|
||
id: fn.output[k].name,
|
||
pmType: "text",
|
||
name: fn.output[k].name,
|
||
label: fn.output[k].label,
|
||
controlsWidth: 400,
|
||
labelWidth: '27%',
|
||
helper: fn.output[k].description,
|
||
required: fn.output[k].required
|
||
});
|
||
|
||
outputItems.push(out);
|
||
}
|
||
}
|
||
formEditTriggerWizard.reset();
|
||
formEditTriggerWizard.setTitle(fnLabel + ' (' + fnName + ')');
|
||
formEditTriggerWizard.getItems()[0].getItems()[1].setValue(libName);
|
||
formEditTriggerWizard.getItems()[0].getItems()[2].setValue(fnName);
|
||
formEditTriggerWizard.getItems()[0].getItems()[3].setValue(libTitle + ' (' + fnLabel + ')');
|
||
|
||
if (inputItems.length > 0) {
|
||
formEditTriggerWizard.getItems()[1].setVisible(true);
|
||
formEditTriggerWizard.getItems()[2].setVisible(true);
|
||
formEditTriggerWizard.getItems()[3].setVisible(true);
|
||
formEditTriggerWizard.getItems()[3].clearItems();
|
||
formEditTriggerWizard.getItems()[3].setItems(inputItems);
|
||
} else {
|
||
formEditTriggerWizard.getItems()[1].setVisible(false);
|
||
formEditTriggerWizard.getItems()[2].setVisible(false);
|
||
formEditTriggerWizard.getItems()[3].setVisible(false);
|
||
formEditTriggerWizard.getItems()[3].clearItems();
|
||
}
|
||
if (outputItems.length > 0) {
|
||
formEditTriggerWizard.getItems()[4].setVisible(true);
|
||
formEditTriggerWizard.getItems()[5].setVisible(true);
|
||
formEditTriggerWizard.getItems()[6].setVisible(true);
|
||
formEditTriggerWizard.getItems()[6].clearItems();
|
||
formEditTriggerWizard.getItems()[6].setItems(outputItems);
|
||
} else {
|
||
formEditTriggerWizard.getItems()[4].setVisible(false);
|
||
formEditTriggerWizard.getItems()[5].setVisible(false);
|
||
formEditTriggerWizard.getItems()[6].setVisible(false);
|
||
formEditTriggerWizard.getItems()[6].clearItems();
|
||
}
|
||
openFormWizard();
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
triggerWindow.setTitle("Create".translate() + " " + libTitle);
|
||
}
|
||
});
|
||
}
|
||
labelInputs.dom.labelTextContainer.style.display = "none";
|
||
labelOutputs.dom.labelTextContainer.style.display = "none";
|
||
allTreesItems[i] = newTreeItems;
|
||
|
||
var arrayTriggerWizards = [
|
||
"pmFunctions",
|
||
"pmSugar",
|
||
"pmTalend",
|
||
"pmTrAlfresco",
|
||
"pmTrSharepoint"
|
||
];
|
||
|
||
if (arrayTriggerWizards.indexOf(response[i].lib_name) == -1) {
|
||
$("head").append("<style type=\"text/css\">." + response[i].lib_name + " {background: url(" + response[i].lib_icon + ") no-repeat 50% 50%;}</style>");
|
||
}
|
||
|
||
//Accordion
|
||
var newAccordionItem = [];
|
||
newAccordionItem = {
|
||
iconClass: response[i].lib_name,
|
||
id: response[i].lib_name,
|
||
title: response[i].lib_title,
|
||
height: 'auto'
|
||
};
|
||
accordionNewTrigger.addItem(newAccordionItem);
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the triggers wizard list, please try again.".translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
|
||
openNewTriggerOptions();
|
||
var accordion = triggerWindow.getItems()[5].getItems();
|
||
accordion[0].setVisible(false);
|
||
accordion[1].setVisible(false);
|
||
for (i = 0; i < accordion.length; i++) {
|
||
accordion[i].header.html.style.backgroundColor = "#FFFFFF";
|
||
if (i > 1) {
|
||
addNumberTriggerWizard(lengthLibFunctions[i - 2], (i));
|
||
}
|
||
}
|
||
};
|
||
|
||
allTreesItems = [];
|
||
getListTrigger();
|
||
|
||
//Button NEW Trigger
|
||
buttonNew = new PMUI.ui.Button({
|
||
id: 'newTriggerButton',
|
||
text: "Create".translate(),
|
||
height: "36px",
|
||
width: 100,
|
||
handler: function (event) {
|
||
openFormCustom("Create".translate());
|
||
formEditTriggerCustom.getField("code").dom.labelTextContainer.style.width = "23.8%";
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
formEditTriggerCustom.showFooter();
|
||
|
||
var codeMirrorControl, cmControlCopyTrigger;
|
||
codeMirrorControl = formEditTriggerCustom.getItems()[1].controls[0].cm;
|
||
formEditTriggerCustom.getItems()[1].html.style.padding = "10px";
|
||
if (codeMirrorControl !== undefined) {
|
||
codeMirrorControl.setSize(580, 150);
|
||
}
|
||
formEditTriggerCustom.getItems()[1].setHeight(170);
|
||
|
||
formEditTriggerCustom.reset();
|
||
|
||
fields = formEditTriggerCustom.getItems()[0];
|
||
fields.getItems()[0].setValue("");
|
||
fields.getItems()[1].setValue("");
|
||
fields.getItems()[2].setValue("");
|
||
formEditTriggerCustom.getItems()[1].setValue("");
|
||
formEditTriggerCustom.getItems()[1].controls[0].cm.setValue("");
|
||
codeMirrorControl.refresh();
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-button-create'
|
||
]
|
||
}
|
||
});
|
||
|
||
//Button COPY Trigger
|
||
buttonCopy = new PMUI.ui.Button({
|
||
id: 'copyTriggerButton',
|
||
text: "Copy".translate(),
|
||
height: "36px",
|
||
width: 100,
|
||
handler: function (event) {
|
||
getListProjects();
|
||
openFormCopy();
|
||
formCopyTrigger.getFields()[1].clearOptions();
|
||
$("#Code .CodeMirror.cm-s-default.CodeMirror-wrap").css({'border': '1px solid #c0c0c0'});
|
||
|
||
var cmControlCopyTrigger = formCopyTrigger.getFields()[4].controls[0].cm;
|
||
cmControlCopyTrigger.setValue("");
|
||
if (cmControlCopyTrigger !== undefined) {
|
||
cmControlCopyTrigger.setSize(650, 140);
|
||
}
|
||
cmControlCopyTrigger.refresh();
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-button-create'
|
||
]
|
||
}
|
||
});
|
||
|
||
//Button WIZARD Trigger
|
||
buttonWizard = new PMUI.ui.Button({
|
||
id: 'wizardTriggerButton',
|
||
text: "Wizard".translate(),
|
||
height: "36px",
|
||
width: 100,
|
||
handler: function (event) {
|
||
newTriggerOptions();
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-button-create'
|
||
]
|
||
}
|
||
});
|
||
|
||
openListTriggers = function () {
|
||
triggerWindow.getItems()[0].setVisible(true);
|
||
triggerWindow.getItems()[1].setVisible(false);
|
||
triggerWindow.getItems()[2].setVisible(false);
|
||
triggerWindow.getItems()[3].setVisible(false);
|
||
triggerWindow.getItems()[4].setVisible(false);
|
||
triggerWindow.getItems()[5].setVisible(false);
|
||
triggerWindow.setTitle("Triggers".translate());
|
||
triggerWindow.hideFooter();
|
||
$(triggerWindow.body).removeClass("pmui-background");
|
||
};
|
||
|
||
openFormCustom = function (typeTitle) {
|
||
triggerWindow.getItems()[0].setVisible(false);
|
||
triggerWindow.getItems()[1].setVisible(true);
|
||
triggerWindow.getItems()[2].setVisible(false);
|
||
triggerWindow.getItems()[3].setVisible(false);
|
||
triggerWindow.getItems()[4].setVisible(false);
|
||
triggerWindow.getItems()[5].setVisible(false);
|
||
triggerWindow.footer.getItems()[0].setVisible(true); //button Cancel
|
||
triggerWindow.footer.getItems()[1].setVisible(true); //button Save
|
||
triggerWindow.footer.getItems()[2].setVisible(false); //Edit Source Code
|
||
triggerWindow.footer.getItems()[3].setVisible(false); //button Aply
|
||
triggerWindow.footer.getItems()[4].setVisible(false); //button Copy/import
|
||
|
||
triggerWindow.setTitle(typeTitle + " Custom Trigger".translate());
|
||
triggerWindow.showFooter();
|
||
$(triggerWindow.body).addClass("pmui-background");
|
||
formEditTriggerCustom.setFocus();
|
||
|
||
$('.CodeMirror.cm-s-default')[0].style.border = "1px solid #c0c0c0";
|
||
if (formEditTriggerCustom.getItems()[0].getItems()[1].visible == false) {
|
||
var fields = formEditTriggerCustom.getItems()[0];
|
||
fields.getItems()[1].setVisible(true);
|
||
fields.getItems()[2].setVisible(true);
|
||
formEditTriggerCustom.footer.getItems()[1].setVisible(true);
|
||
}
|
||
formEditTriggerCustom.getFields()[4].dom.labelTextContainer.style.marginLeft = "10px";
|
||
formEditTriggerCustom.setAlignmentButtons('left');
|
||
|
||
$("#code").after($ctrlSpaceMessage.css({
|
||
"margin": "5px 0 0 0",
|
||
"text-align": "center",
|
||
"width": "655px",
|
||
"padding": ""
|
||
}));
|
||
};
|
||
|
||
openFormWizard = function () {
|
||
triggerWindow.getItems()[0].setVisible(false);
|
||
triggerWindow.getItems()[1].setVisible(false);
|
||
triggerWindow.getItems()[2].setVisible(true);
|
||
triggerWindow.getItems()[3].setVisible(false);
|
||
triggerWindow.getItems()[4].setVisible(false);
|
||
triggerWindow.getItems()[5].setVisible(false);
|
||
triggerWindow.footer.getItems()[0].setVisible(true); //button Cancel
|
||
triggerWindow.footer.getItems()[1].setVisible(true); //button Save
|
||
triggerWindow.footer.getItems()[2].setVisible(false); //Edit Source Code
|
||
triggerWindow.footer.getItems()[3].setVisible(false); //button Aply
|
||
triggerWindow.footer.getItems()[4].setVisible(false); //button Copy/import
|
||
triggerWindow.showFooter();
|
||
$(triggerWindow.body).addClass("pmui-background");
|
||
formEditTriggerWizard.setFocus();
|
||
};
|
||
|
||
openFormWizardEditMode = function () {
|
||
triggerWindow.getItems()[0].setVisible(false);
|
||
triggerWindow.getItems()[1].setVisible(false);
|
||
triggerWindow.getItems()[2].setVisible(true);
|
||
triggerWindow.getItems()[3].setVisible(false);
|
||
triggerWindow.getItems()[4].setVisible(false);
|
||
triggerWindow.getItems()[5].setVisible(false);
|
||
triggerWindow.footer.getItems()[0].setVisible(true); //button Cancel
|
||
triggerWindow.footer.getItems()[1].setVisible(true); //button Save
|
||
triggerWindow.footer.getItems()[2].setVisible(true); //Edit Source Code
|
||
triggerWindow.footer.getItems()[3].setVisible(false); //button Aply
|
||
triggerWindow.footer.getItems()[4].setVisible(false); //button Copy/import
|
||
triggerWindow.showFooter();
|
||
$(triggerWindow.body).addClass("pmui-background");
|
||
formEditTriggerWizard.setFocus();
|
||
};
|
||
|
||
|
||
openFormCopy = function () {
|
||
triggerWindow.getItems()[0].setVisible(false);
|
||
triggerWindow.getItems()[1].setVisible(false);
|
||
triggerWindow.getItems()[2].setVisible(false);
|
||
triggerWindow.getItems()[3].setVisible(true);
|
||
triggerWindow.getItems()[4].setVisible(false);
|
||
triggerWindow.getItems()[5].setVisible(false);
|
||
triggerWindow.setTitle("Copy Trigger".translate());
|
||
triggerWindow.footer.getItems()[0].setVisible(true); //button Cancel
|
||
triggerWindow.footer.getItems()[1].setVisible(false); //button Save
|
||
triggerWindow.footer.getItems()[2].setVisible(false); //Edit Source Code
|
||
triggerWindow.footer.getItems()[3].setVisible(false); //button Aply
|
||
triggerWindow.footer.getItems()[4].setVisible(true); //button Copy/import
|
||
triggerWindow.showFooter();
|
||
$(triggerWindow.body).addClass("pmui-background");
|
||
formCopyTrigger.setFocus();
|
||
|
||
$(".pmui-field").css("float", "left");
|
||
$('#Code .pmui.pmui-pmcodemirrorcontrol').append($ctrlSpaceMessage.css({
|
||
"margin-top": "10px",
|
||
"text-align": "",
|
||
"width": "655px",
|
||
"padding": ""
|
||
}));
|
||
};
|
||
|
||
openFormEditCode = function () {
|
||
triggerWindow.getItems()[0].setVisible(false);
|
||
triggerWindow.getItems()[1].setVisible(false);
|
||
triggerWindow.getItems()[2].setVisible(false);
|
||
triggerWindow.getItems()[3].setVisible(false);
|
||
triggerWindow.getItems()[4].setVisible(true);
|
||
triggerWindow.getItems()[5].setVisible(false);
|
||
triggerWindow.setTitle("Editor".translate());
|
||
triggerWindow.footer.getItems()[0].setVisible(true); //button Cancel
|
||
triggerWindow.footer.getItems()[1].setVisible(false); //button Save
|
||
triggerWindow.footer.getItems()[2].setVisible(false); //Edit Source Code
|
||
triggerWindow.footer.getItems()[3].setVisible(true); //button Aply
|
||
triggerWindow.footer.getItems()[4].setVisible(false); //button Copy/import
|
||
triggerWindow.showFooter();
|
||
$(triggerWindow.body).addClass("pmui-background");
|
||
|
||
$($('#codeEditor .CodeMirror.cm-s-default.CodeMirror-wrap')[0]).after($ctrlSpaceMessage.css({
|
||
"padding": "5px 0 0 10px",
|
||
"text-align": ""
|
||
}));
|
||
|
||
};
|
||
|
||
openNewTriggerOptions = function () {
|
||
triggerWindow.getItems()[0].setVisible(false);
|
||
triggerWindow.getItems()[1].setVisible(false);
|
||
triggerWindow.getItems()[2].setVisible(false);
|
||
triggerWindow.getItems()[3].setVisible(false);
|
||
triggerWindow.getItems()[4].setVisible(false);
|
||
triggerWindow.getItems()[5].setVisible(true);
|
||
triggerWindow.setTitle("Create Predefined Trigger".translate());
|
||
triggerWindow.footer.getItems()[0].setVisible(true); //button Cancel
|
||
triggerWindow.footer.getItems()[1].setVisible(false); //button Save
|
||
triggerWindow.footer.getItems()[2].setVisible(false); //Edit Source Code
|
||
triggerWindow.footer.getItems()[3].setVisible(false); //button Aply
|
||
triggerWindow.footer.getItems()[4].setVisible(false); //button Copy/import
|
||
triggerWindow.showFooter();
|
||
$(triggerWindow.body).removeClass("pmui-background");
|
||
};
|
||
|
||
//obtaning the list of process to show it on the copy/import of a trigger dropdown
|
||
listProjects = [];
|
||
getListProjects = function () {
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
listProjects = [];
|
||
formCopyTrigger.getFields()[0].clearOptions();
|
||
listProjects[0] = {
|
||
label: "- Select a process -".translate(),
|
||
value: "",
|
||
disabled: true,
|
||
selected: true
|
||
};
|
||
for (i = 0; i < response.length; i++) {
|
||
listProjects.push({
|
||
label: response[i].prj_name,
|
||
value: response[i].prj_uid
|
||
});
|
||
}
|
||
formCopyTrigger.getFields()[0].setOptions(listProjects);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the list of projects.".translate()
|
||
});
|
||
restClient.setBaseEndPoint('projects');
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
//form Copy/Import Trigger
|
||
triggerSelectedData;
|
||
formCopyTrigger = new PMUI.form.Form({
|
||
id: "formCopyTriggers",
|
||
border: true,
|
||
width: '890px',
|
||
height: 'auto',
|
||
title: "",
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
pmType: 'dropdown',
|
||
id: "processField",
|
||
label: 'Process'.translate(),
|
||
name: 'prj_uid',
|
||
required: true,
|
||
controlsWidth: 300,
|
||
value: "",
|
||
options: listProjects,
|
||
onChange: function (newValue, prevValue) {
|
||
var formFields = formCopyTrigger.getFields();
|
||
formFields[2].setValue("");
|
||
formFields[3].setValue("");
|
||
formFields[4].controls[0].cm.setValue("");
|
||
|
||
var uidProj = newValue, myForm = this.form;
|
||
|
||
//obtaning the Trigger list of the process SELECTED
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
triggerSelectedData = response;
|
||
var listTriggersCopy = [];
|
||
listTriggersCopy[0] = {
|
||
label: "- Select a trigger -".translate(),
|
||
value: "",
|
||
disabled: true,
|
||
selected: true
|
||
};
|
||
|
||
for (i = 0; i < response.length; i++) {
|
||
listTriggersCopy.push({
|
||
label: response[i].tri_title,
|
||
value: response[i].tri_uid
|
||
});
|
||
}
|
||
formFields[1].setOptions(listTriggersCopy);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the list of triggers.".translate()
|
||
});
|
||
restClient.setBaseEndPoint("project/" + uidProj + "/triggers");
|
||
restClient.executeRestClient();
|
||
}
|
||
},
|
||
{
|
||
pmType: 'dropdown',
|
||
id: "triggerField",
|
||
label: 'Trigger'.translate(),
|
||
name: 'tri_uid',
|
||
required: true,
|
||
controlsWidth: 300,
|
||
value: "",
|
||
options: [],
|
||
onChange: function (newValue, prevValue) {
|
||
var formFields = formCopyTrigger.getFields();
|
||
formFields[2].setValue("");
|
||
formFields[3].setValue("");
|
||
formFields[4].controls[0].cm.setValue("");
|
||
|
||
var uidTri = newValue;
|
||
|
||
for (i = 0; i < triggerSelectedData.length; i++) {
|
||
if (triggerSelectedData[i].tri_uid == uidTri) {
|
||
formFields[2].setValue(triggerSelectedData[i].tri_title);
|
||
formFields[3].setValue(triggerSelectedData[i].tri_description);
|
||
formFields[4].controls[0].cm.setValue(triggerSelectedData[i].tri_webbot);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
pmType: "text",
|
||
id: "triTitle",
|
||
label: "Title of the new trigger".translate(),
|
||
placeholder: "Insert the title of the new trigger".translate(),
|
||
name: "tri_title",
|
||
required: true,
|
||
valueType: 'string',
|
||
controlsWidth: 300,
|
||
style: {
|
||
cssProperties: {
|
||
'float': 'left'
|
||
}
|
||
}
|
||
},
|
||
{
|
||
pmType: "textarea",
|
||
id: "triDescription",
|
||
rows: 80,
|
||
name: 'tri_description',
|
||
label: "Description of the new trigger".translate(),
|
||
valueType: 'string',
|
||
controlsWidth: 652,
|
||
style: {
|
||
cssClasses: ['mafe-textarea-resize'],
|
||
cssProperties: {'float': 'left'}
|
||
}
|
||
}
|
||
]
|
||
});
|
||
codMirr = new PMCodeMirrorField();
|
||
codMirr.setLabel("Code".translate());
|
||
codMirr.setID("Code");
|
||
codMirr.setName('tri_webbot');
|
||
CodeMirror.commands.autocomplete = function (cm) {
|
||
CodeMirror.showHint(cm, CodeMirror.phpHint);
|
||
};
|
||
formCopyTrigger.addItem(codMirr);
|
||
|
||
//Form to Edit the trigger with the WIZARD (we used a Form because we need buttons to save the changes)
|
||
formEditTriggerWizard = new PMUI.form.Form({
|
||
id: "formEditTriggerWizard",
|
||
border: true,
|
||
visibleHeader: false,
|
||
name: "formwizard",
|
||
width: 926,
|
||
title: "New Trigger".translate(),
|
||
items: [
|
||
{
|
||
id: "panelDetailsWizard",
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
height: 'auto',
|
||
legend: "DETAILS".translate(),
|
||
items: [
|
||
{
|
||
id: "uid",
|
||
pmType: "text",
|
||
label: "ID".translate(),
|
||
value: "",
|
||
name: "uid",
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "libName",
|
||
pmType: "text",
|
||
label: "",
|
||
value: "",
|
||
name: "libName",
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "fnName",
|
||
pmType: "text",
|
||
label: "",
|
||
value: "",
|
||
name: "fnName",
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "type",
|
||
pmType: "text",
|
||
label: "Type".translate(),
|
||
value: "WIZARD",
|
||
controlsWidth: 450,
|
||
labelWidth: '27%',
|
||
readOnly: true,
|
||
name: "type",
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "titleDetailsWiz",
|
||
pmType: "text",
|
||
label: "Title".translate(),
|
||
value: "",
|
||
controlsWidth: 450,
|
||
labelWidth: '27%',
|
||
name: "titleDetails",
|
||
valueType: 'string',
|
||
required: true
|
||
},
|
||
{
|
||
id: "descriptionDetailsWiz",
|
||
pmType: "textarea",
|
||
label: "Description".translate(),
|
||
value: "",
|
||
rows: 90,
|
||
width: '300px',
|
||
controlsWidth: 450,
|
||
labelWidth: '27%',
|
||
name: "descriptionDetails",
|
||
valueType: 'string',
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
},
|
||
{
|
||
id: "webbot",
|
||
pmType: "text",
|
||
label: "Webbot".translate(),
|
||
value: "",
|
||
name: "webbot",
|
||
controlsWidth: 300,
|
||
labelWidth: '27%',
|
||
visible: false,
|
||
valueType: 'string'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
});
|
||
|
||
//adding a separator Inputs line
|
||
sepInputs = new PMSeparatorLineField({
|
||
controlHeight: '1px',
|
||
controlColor: "#CDCDCD",
|
||
controlsWidth: "890px",
|
||
marginLeft: '0%'
|
||
});
|
||
formEditTriggerWizard.addItem(sepInputs);
|
||
|
||
//adding a label Inputs
|
||
labelInputs = new PMLabelField({
|
||
text: "PARAMETERS".translate(),
|
||
textMode: "plain",
|
||
style: {
|
||
cssProperties: {
|
||
color: "#AEAEAE",
|
||
'font-weight': 'bold'
|
||
}
|
||
},
|
||
controlsWidth: 885
|
||
});
|
||
formEditTriggerWizard.addItem(labelInputs);
|
||
|
||
//adding the Inputs Items (PARAMETERS) Panel
|
||
paramPanel = new PMUI.form.FormPanel({
|
||
id: "panelParametersWizard",
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
height: 'auto',
|
||
visible: false,
|
||
legend: "__PARAMETERS__".translate(),
|
||
items: []
|
||
});
|
||
formEditTriggerWizard.addItem(paramPanel);
|
||
|
||
//adding a separator Outputs line
|
||
sepOutputs = new PMSeparatorLineField({
|
||
controlHeight: 1,
|
||
controlColor: "#CDCDCD",
|
||
controlsWidth: "890px",
|
||
marginLeft: '0%'
|
||
});
|
||
formEditTriggerWizard.addItem(sepOutputs);
|
||
|
||
//adding a label Outputs
|
||
labelOutputs = new PMLabelField({
|
||
text: "RETURN VALUE".translate(),
|
||
textMode: "plain",
|
||
style: {
|
||
cssProperties: {
|
||
color: "#AEAEAE",
|
||
'font-weight': 'bold'
|
||
}
|
||
},
|
||
controlsWidth: 885
|
||
});
|
||
|
||
formEditTriggerWizard.addItem(labelOutputs);
|
||
|
||
//adding the Output Items (Returns) Panel
|
||
returnPanel = new PMUI.form.FormPanel({
|
||
id: "panelReturnValWizard",
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
height: 'auto',
|
||
visible: false,
|
||
legend: "RETURN VALUE".translate(),
|
||
items: []
|
||
});
|
||
formEditTriggerWizard.addItem(returnPanel);
|
||
|
||
|
||
//treePanel New Trigger PMF
|
||
treeNewTrigger = new PMUI.panel.TreePanel({
|
||
id: "treeNewTrigger",
|
||
width: 'auto',
|
||
height: 'auto',
|
||
style: {
|
||
cssClasses: ['pmtrigger'],
|
||
cssProperties: {
|
||
'margin-top': '5px',
|
||
'margin-bottom': '4px'
|
||
}
|
||
},
|
||
items: []
|
||
});
|
||
|
||
//Acordion Panel New Triggers Options
|
||
accordionNewTrigger = new PMUI.panel.AccordionPanel({
|
||
id: "accordionNewTrigger",
|
||
width: 885,
|
||
height: 'auto',
|
||
borderWidth: "0px",
|
||
hiddenTitle: true,
|
||
style: {
|
||
cssProperties: {
|
||
'margin-left': '30px'
|
||
}
|
||
},
|
||
items: [
|
||
{
|
||
iconClass: "",
|
||
id: 'custom',
|
||
title: "Custom Trigger".translate(),
|
||
height: '26px',
|
||
body: "",
|
||
style: {
|
||
cssProperties: {
|
||
"background-color": "#FDFDFD"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
iconClass: "",
|
||
id: 'copy',
|
||
title: "Copy Trigger".translate(),
|
||
height: '26px',
|
||
body: "",
|
||
style: {
|
||
cssProperties: {
|
||
"background-color": "#FDFDFD"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
listeners: {
|
||
select: function (obj, event) {
|
||
|
||
if (obj.id == "custom") {
|
||
openFormCustom("Create".translate());
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
formEditTriggerCustom.showFooter();
|
||
|
||
var codeMirrorControl, cmControlCopyTrigger;
|
||
codeMirrorControl = formEditTriggerCustom.getItems()[1].controls[0].cm;
|
||
|
||
if (codeMirrorControl != undefined) {
|
||
codeMirrorControl.setSize(580, 150); //CodeMirror Size
|
||
}
|
||
formEditTriggerCustom.getItems()[1].setHeight(170);
|
||
|
||
formEditTriggerCustom.reset();
|
||
|
||
fields = formEditTriggerCustom.getItems()[0];
|
||
fields.getItems()[0].setValue("");
|
||
fields.getItems()[1].setValue("");
|
||
fields.getItems()[2].setValue("");
|
||
formEditTriggerCustom.getItems()[1].setValue("");
|
||
formEditTriggerCustom.getItems()[1].controls[0].cm.setValue("");
|
||
|
||
} else if (obj.id == "copy") {
|
||
|
||
getListProjects();
|
||
openFormCopy();
|
||
$($('#Code .CodeMirror.cm-s-default.CodeMirror-wrap')[1]).css({'border': '1px solid #c0c0c0'});
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
|
||
var cmControlCopyTrigger = formCopyTrigger.getFields()[4].controls[0].cm;
|
||
if (cmControlCopyTrigger != undefined) {
|
||
cmControlCopyTrigger.setSize(650, 140); //CodeMirror in formCopyTrigger Size
|
||
}
|
||
} else {
|
||
if (treeNewTrigger.getItems() == "" || treeNewTrigger.id != obj.id) {
|
||
var acItems = accordionNewTrigger.getItems();
|
||
var accordionActualItem = accordionNewTrigger.getItem(obj.id);
|
||
|
||
for (i = 0; i < acItems.length; i++) {
|
||
if (acItems[i].id == accordionActualItem.id) {
|
||
var positionActualAcItem = i - 2;
|
||
}
|
||
}
|
||
|
||
treeNewTrigger.setItems(allTreesItems[positionActualAcItem]);
|
||
treeNewTrigger.setID(obj.id);
|
||
|
||
accordionActualItem.setBody(treeNewTrigger);
|
||
treeNewTrigger.defineEvents();
|
||
applyStyleTreePanel(treeNewTrigger, false);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
});
|
||
|
||
updateCustom = function (dataToSend, triggerUid) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: "trigger/" + triggerUid,
|
||
typeRequest: 'update',
|
||
data: dataToSend,
|
||
functionSuccess: function (xhr, response) {
|
||
formEditTriggerCustom.setDirty(false);
|
||
getListTrigger();
|
||
openListTriggers();
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
var msg = response.error.message;
|
||
var arrayMatch = [];
|
||
|
||
if ((arrayMatch = /^[\w\s]+\:\s*(.*)$/i.exec(msg))) {
|
||
msg = arrayMatch[1];
|
||
}
|
||
|
||
PMDesigner.msgWinError(msg);
|
||
},
|
||
messageSuccess: "Trigger updated successfully".translate(),
|
||
flashContainer: gridListTrigger
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
checkIfValuesAreEqual = function (initialData, finalData) {
|
||
if (typeof(initialData['tri_uid']) == "undefined" && finalData['tri_uid'] == '') {
|
||
if (finalData['tri_description'] != '' || finalData['tri_title'] != '' || finalData['tri_webbot'] != '') {
|
||
return false;
|
||
}
|
||
}
|
||
for (var key1 in initialData) {
|
||
for (var key2 in finalData) {
|
||
if (typeof(initialData[key1]) != "undefined" &&
|
||
typeof(finalData[key2]) != "undefined" &&
|
||
key1 == key2 &&
|
||
initialData[key1] != finalData[key2]
|
||
) {
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//Buttons Save and Cancel for the 'formEditTriggerCustom' and 'formEditTriggerWizard'
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'saveTriggerButton',
|
||
text: "Save".translate(),
|
||
handler: function (event) {
|
||
triggerOriginDataForUpdate = {};
|
||
var formcustom = triggerWindow.getItems()[1],
|
||
formwizard = triggerWindow.getItems()[2],
|
||
formTriggerData,
|
||
restClient,
|
||
dataToSend,
|
||
formTriggerData,
|
||
inputFields,
|
||
message_window,
|
||
outputV,
|
||
outputFields,
|
||
inputV,
|
||
dataToSend,
|
||
flagEdit;
|
||
if (formcustom.isVisible() == true) {
|
||
valuesCustom=formcustom.getItems()[0];
|
||
if (!formEditTriggerCustom.isValid( )) {
|
||
flagEdit = formEditTriggerCustom.visible;
|
||
} else {
|
||
flagEdit = formEditTriggerCustom.isValid();
|
||
}
|
||
if (flagEdit) {
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1)) {
|
||
formTriggerData = getData2PMUI(formEditTriggerCustom.html);
|
||
} else {
|
||
formTriggerData = formEditTriggerCustom.getData();
|
||
}
|
||
if (formTriggerData.title.trim() === "") {
|
||
return false;
|
||
}
|
||
dataToSend = {
|
||
tri_title: formTriggerData.title,
|
||
tri_description: formTriggerData.description,
|
||
tri_webbot: formTriggerData.code,
|
||
tri_param: ""
|
||
};
|
||
|
||
if (formTriggerData.uid === "") {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'trigger',
|
||
typeRequest: 'post',
|
||
data: dataToSend,
|
||
functionSuccess: function (xhr, response) {
|
||
formEditTriggerCustom.setDirty(false);
|
||
getListTrigger();
|
||
formEditTriggerCustom.getItems()[0].getItems()[0].setValue(response.tri_uid);
|
||
openListTriggers();
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
var msg = response.error.message,
|
||
arrayMatch = [];
|
||
|
||
if ((arrayMatch = /^[\w\s]+\:\s*(.*)$/i.exec(msg))) {
|
||
msg = arrayMatch[1];
|
||
}
|
||
|
||
PMDesigner.msgWinError(msg);
|
||
},
|
||
messageSuccess: "New Trigger saved successfully".translate(),
|
||
flashContainer: gridListTrigger
|
||
});
|
||
restClient.executeRestClient();
|
||
} else {
|
||
if (formTriggerData.wizzard != "") {
|
||
if (formEditTriggerCustom.isDirty()) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "wizzardToCustomTriggerWin",
|
||
windowMessageType: 'warning',
|
||
title: 'Triggers'.translate(),
|
||
width: 490,
|
||
message: 'Do you want to save the changes? This Trigger will be saved like a custom Trigger.'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
openFormWizardEditMode();
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
formEditTriggerCustom.reset();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
updateCustom(dataToSend, formTriggerData.uid);
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
openListTriggers();
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
}
|
||
} else {
|
||
updateCustom(dataToSend, formTriggerData.uid);
|
||
}
|
||
}
|
||
}
|
||
} else if (formwizard.isVisible() == true) {
|
||
if (formEditTriggerWizard.isValid() || ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1))) {
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1)) {
|
||
formTriggerData = getData2PMUI(formEditTriggerWizard.html);
|
||
} else {
|
||
formTriggerData = formEditTriggerWizard.getData();
|
||
}
|
||
|
||
inputV = {};
|
||
inputFields = formEditTriggerWizard.getItems()[3];
|
||
for (i = 0; i < inputFields.getItems().length; i++) {
|
||
inputV[inputFields.getItems()[i].name] = formTriggerData[inputFields.getItems()[i].name];
|
||
}
|
||
|
||
outputV = {};
|
||
outputFields = formEditTriggerWizard.getItems()[6];
|
||
for (j = 0; j < outputFields.getItems().length; j++) {
|
||
outputV[outputFields.getItems()[j].name] = formTriggerData[outputFields.getItems()[j].name];
|
||
}
|
||
|
||
dataToSend = {
|
||
tri_title: formTriggerData.titleDetails,
|
||
tri_description: formTriggerData.descriptionDetails,
|
||
tri_type: "SCRIPT",
|
||
tri_params: {
|
||
input: inputV,
|
||
output: outputV
|
||
}
|
||
};
|
||
|
||
if (formTriggerData.uid === "") {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'trigger-wizard/' + formTriggerData.libName + '/' + formTriggerData.fnName,
|
||
typeRequest: 'post',
|
||
data: dataToSend,
|
||
functionSuccess: function (xhr, response) {
|
||
formEditTriggerWizard.setDirty(false);
|
||
getListTrigger();
|
||
formEditTriggerWizard.getFields()[0].setValue(response.tri_uid);
|
||
openListTriggers();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: "New Trigger saved successfully".translate(),
|
||
flashContainer: gridListTrigger
|
||
});
|
||
restClient.executeRestClient();
|
||
} else {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'trigger-wizard/' + formTriggerData.libName + '/' + formTriggerData.fnName + '/' + formTriggerData.uid,
|
||
typeRequest: 'update',
|
||
data: dataToSend,
|
||
functionSuccess: function (xhr, response) {
|
||
formEditTriggerWizard.setDirty(false);
|
||
getListTrigger();
|
||
openListTriggers();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: "Trigger updated successfully".translate(),
|
||
flashContainer: gridListTrigger
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
}
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
|
||
//Buttons Save and Cancel for the 'formEditTriggerCustom' and 'formEditTriggerWizard'
|
||
copyButton = new PMUI.ui.Button({
|
||
id: 'copyAndSaveButton',
|
||
text: "Copy Trigger".translate(),
|
||
buttonType: 'success',
|
||
handler: function (event) {
|
||
var data,
|
||
dataToSend,
|
||
restClient;
|
||
if (formCopyTrigger.isValid()) {
|
||
formCopyTrigger.setDirty(false);
|
||
|
||
data = formCopyTrigger.getData();
|
||
dataToSend = {
|
||
tri_title: getData2PMUI(formCopyTrigger.html).tri_title.trim(),
|
||
tri_description: data.tri_description,
|
||
tri_webbot: data.tri_webbot,
|
||
tri_param: ""
|
||
};
|
||
restClient = new PMRestClient({
|
||
endpoint: 'trigger',
|
||
typeRequest: 'post',
|
||
data: dataToSend,
|
||
functionSuccess: function (xhr, response) {
|
||
getListTrigger();
|
||
formCopyTrigger.reset();
|
||
openListTriggers();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: "New Trigger saved successfully".translate(),
|
||
flashContainer: gridListTrigger
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
});
|
||
|
||
//Buttons Apply for the Code Editor
|
||
applyButton = new PMUI.ui.Button({
|
||
id: 'applyButton',
|
||
text: "Apply".translate(),
|
||
buttonType: 'success',
|
||
handler: function (event) {
|
||
|
||
$("div.pmui-window-body.pmui-background").css('overflow', '');
|
||
if (formEditCode.isValid()) {
|
||
var typeTitle = "Edit".translate();
|
||
if (triggerWindow.getItems()[1].getData().uid == "") {
|
||
typeTitle = "Create".translate();
|
||
}
|
||
openFormCustom(typeTitle);
|
||
formEditCode.setDirty(false);
|
||
|
||
var editCode = formEditCode.getItems()[0].controls[0].cm;
|
||
editCodeValue = editCode.getValue();
|
||
|
||
var codeMirrorCustom = formEditTriggerCustom.getItems()[1].controls[0].cm;
|
||
|
||
if (codeMirrorCustom != undefined) {
|
||
codeMirrorCustom.setSize(580, 150); //CodeMirror Size
|
||
}
|
||
codeMirrorCustom.setValue(editCodeValue);
|
||
formEditTriggerCustom.getItems()[1].setValue(editCodeValue);
|
||
|
||
editCode.setValue("");
|
||
editCodeValue = "";
|
||
|
||
formEditCode.getItems()[0].setValue("");
|
||
}
|
||
}
|
||
});
|
||
|
||
//Button Edit Source Code (this is showed just when the Trigger Wizzard is opened in edition mode)
|
||
btnEditSourceCode = new PMUI.ui.Button({
|
||
id: 'btnEditSourceCode',
|
||
text: "Edit Source Code".translate(),
|
||
buttonType: 'success',
|
||
handler: function (event) {
|
||
|
||
var data = formEditTriggerWizard.getData();
|
||
var fields;
|
||
openFormCustom("Edit".translate());
|
||
formEditTriggerCustom.showFooter();
|
||
|
||
var codeMirrorControl;
|
||
codeMirrorControl = formEditTriggerCustom.getItems()[1].controls[0].cm;
|
||
|
||
if (codeMirrorControl !== undefined) {
|
||
codeMirrorControl.setSize(650, 280);
|
||
}
|
||
formEditTriggerCustom.getItems()[1].setHeight(170);
|
||
|
||
fields = formEditTriggerCustom.getItems()[0];
|
||
fields.getItems()[0].setValue(data.uid);
|
||
fields.getItems()[1].setValue(data.titleDetails);
|
||
fields.getItems()[2].setValue(data.descriptionDetails);
|
||
fields.getItems()[3].setValue(data.webbot);
|
||
fields.getItems()[3].setVisible(false);
|
||
formEditTriggerCustom.getItems()[1].setValue(data.webbot);
|
||
|
||
codeMirrorControl.setValue(data.webbot);
|
||
|
||
formEditTriggerCustom.getItems()[1].setHeight(300);
|
||
fields.getItems()[1].setVisible(false);
|
||
fields.getItems()[2].setVisible(false);
|
||
formEditTriggerCustom.footer.getItems()[1].setVisible(false);
|
||
formEditTriggerCustom.footer.getItems()[0].style.addProperties({'margin-right': "10px"});
|
||
formEditTriggerCustom.footer.style.addProperties({width: '880px'});
|
||
codeMirrorControl.refresh();
|
||
}
|
||
});
|
||
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'cancelTriggerButton',
|
||
text: "Cancel".translate(),
|
||
buttonType: 'error',
|
||
handler: function (event) {
|
||
clickedClose = false;
|
||
isDirtyFormTrigger();
|
||
}
|
||
});
|
||
|
||
//Form to Edit the Custom trigger (we used a Form because we need buttons to save the changes)
|
||
formEditTriggerCustom = new PMUI.form.Form({
|
||
id: "formEditTriggerCustom",
|
||
border: true,
|
||
visibleHeader: false,
|
||
width: '900px',
|
||
height: "365px",
|
||
name: "formcustom",
|
||
title: "Custom Trigger".translate(),
|
||
items: [
|
||
{
|
||
id: "panelDetailsCustom",
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
height: '380px',
|
||
legend: "DETAILS".translate(),
|
||
items: [
|
||
{
|
||
id: "uid",
|
||
pmType: "text",
|
||
label: "ID".translate(),
|
||
value: "",
|
||
name: "uid",
|
||
readOnly: true,
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "title",
|
||
pmType: "text",
|
||
label: "Title".translate(),
|
||
value: "",
|
||
required: true,
|
||
name: "title",
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "description",
|
||
pmType: "textarea",
|
||
rows: 70,
|
||
name: 'description',
|
||
label: "Description".translate(),
|
||
valueType: 'string',
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
},
|
||
{
|
||
id: "wizzard",
|
||
pmType: "text",
|
||
label: "Wizzard".translate(),
|
||
value: "",
|
||
name: "wizzard",
|
||
readOnly: true,
|
||
visible: false,
|
||
valueType: 'string'
|
||
}
|
||
]
|
||
}
|
||
],
|
||
buttons: [
|
||
{
|
||
text: "@@",
|
||
id: "selectPickerButton",
|
||
handler: function () {
|
||
var picker = new VariablePicker();
|
||
picker.open({
|
||
success: function (variable) {
|
||
var codeMirror = formEditTriggerCustom.getItems()[1].controls[0].cm;
|
||
var cursorPos = codeMirror.getCursor();
|
||
codeMirror.replaceSelection(variable);
|
||
codeMirror.setCursor(cursorPos.line, cursorPos.ch);
|
||
}
|
||
});
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
"margin-left": '208px',
|
||
"background": "rgb(30, 145, 209)",
|
||
"border": "0px solid rgb(30, 145, 209)"
|
||
}
|
||
}
|
||
}, {
|
||
text: "Open Editor".translate(),
|
||
id: "openEditorButton",
|
||
handler: function () {
|
||
openFormEditCode();
|
||
formEditCode.showFooter();
|
||
|
||
var codeMirrorCustom = formEditTriggerCustom.getItems()[1].controls[0].cm;
|
||
var value = codeMirrorCustom.getValue();
|
||
|
||
var codeMirrorCopy = formEditCode.getItems()[0].controls[0].cm;
|
||
|
||
if (codeMirrorCopy != undefined) {
|
||
codeMirrorCopy.setSize(810, 315); //CodeMirror Size
|
||
$($('#codeEditor .CodeMirror.cm-s-default.CodeMirror-wrap')[0]).css({'border': '1px solid #c0c0c0'});
|
||
|
||
}
|
||
|
||
formEditCode.getItems()[0].setHeight(325);
|
||
|
||
codeMirrorCopy.setValue(value);
|
||
formEditCode.getItems()[0].setValue(value);
|
||
formEditCode.setDirty(false);
|
||
|
||
$('#codeEditor .pmui-field-label').hide();
|
||
$('#formEditCode').children().last().css({
|
||
'margin-top': '-352px',
|
||
'border': '0px',
|
||
'margin-right': '-15px'
|
||
}).find('a').css('padding', '10px 5px');
|
||
$($('#codeEditor .CodeMirror.cm-s-default.CodeMirror-wrap')[0]).css({
|
||
'margin-left': '10px',
|
||
'width': '850px',
|
||
'height': '360px'
|
||
});
|
||
$('#triggerWindow .pmui-window-body').css('overflow', 'hidden');
|
||
codeMirrorCopy.refresh();
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
"margin-right": 2
|
||
}
|
||
}
|
||
}
|
||
]
|
||
});
|
||
cd = new PMCodeMirrorField({
|
||
labelWidth: '23.8%'
|
||
});
|
||
cd.setLabel("Code".translate());
|
||
formEditTriggerCustom.addItem(cd);
|
||
formEditTriggerCustom.getItems()[1].setName('code');
|
||
formEditTriggerCustom.getItems()[1].setID('code');
|
||
|
||
formEditCode = new PMUI.form.Form({
|
||
id: "formEditCode",
|
||
border: true,
|
||
visibleHeader: false,
|
||
width: '925px',
|
||
name: "formeditcode",
|
||
title: "Editor".translate(),
|
||
items: [],
|
||
buttons: [
|
||
{
|
||
text: "@@",
|
||
id: "selectPickerButton",
|
||
handler: function () {
|
||
var picker = new VariablePicker();
|
||
picker.open({
|
||
success: function (variable) {
|
||
var codeMirror = formEditCode.getItems()[0].controls[0].cm;
|
||
var cursorPos = codeMirror.getCursor();
|
||
codeMirror.replaceSelection(variable);
|
||
codeMirror.setCursor(cursorPos.line, cursorPos.ch);
|
||
}
|
||
});
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
"margin-left": '229px',
|
||
"background": "rgb(45, 62, 80)",
|
||
"border": "1px solid rgb(45, 62, 80)"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
});
|
||
editCode = new PMCodeMirrorField({
|
||
labelWidth: '9%'
|
||
});
|
||
editCode.setLabel("Code".translate());
|
||
formEditCode.addItem(editCode);
|
||
formEditCode.getItems()[0].setName('codeEditor');
|
||
formEditCode.getItems()[0].setID('codeEditor');
|
||
|
||
//Trigger Window
|
||
triggerWindow = new PMUI.ui.Window({
|
||
id: "triggerWindow",
|
||
title: "Triggers".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerItems: [
|
||
buttonCancel,
|
||
buttonSave,
|
||
btnEditSourceCode,
|
||
applyButton,
|
||
copyButton
|
||
],
|
||
buttonPanelPosition: "bottom",
|
||
footerAling: "right",
|
||
onBeforeClose: function () {
|
||
clickedClose = true;
|
||
isDirtyFormTrigger();
|
||
}
|
||
});
|
||
|
||
|
||
triggerWindow.addItem(gridListTrigger);
|
||
triggerWindow.addItem(formEditTriggerCustom);
|
||
triggerWindow.addItem(formEditTriggerWizard);
|
||
triggerWindow.addItem(formCopyTrigger);
|
||
triggerWindow.addItem(formEditCode);
|
||
triggerWindow.addItem(accordionNewTrigger);
|
||
|
||
if (typeof listTriggers !== "undefined") {
|
||
triggerWindow.open();
|
||
codMirr.dom.labelTextContainer.style.width = "23.8%";
|
||
codMirr.html.style.padding = "10px";
|
||
formEditTriggerCustom.panel.html.style.padding = "10px 10px";
|
||
$('#listTriggers .pmui-textcontrol').css({'margin-top': '5px', width: '250px'});
|
||
applyStyleWindowForm(triggerWindow);
|
||
triggerWindow.hideFooter();
|
||
openListTriggers();
|
||
|
||
gridListTrigger.dom.toolbar.appendChild(buttonNew.getHTML());
|
||
buttonNew.defineEvents();
|
||
|
||
gridListTrigger.dom.toolbar.appendChild(buttonCopy.getHTML());
|
||
buttonCopy.defineEvents();
|
||
|
||
gridListTrigger.dom.toolbar.appendChild(buttonWizard.getHTML());
|
||
buttonWizard.defineEvents();
|
||
|
||
triggerWindow.defineEvents();
|
||
gridListTrigger.sort('tri_title', 'asc');
|
||
formEditTriggerCustom.panel.style.addProperties({'overflow': 'hidden'});
|
||
|
||
formcustom = triggerWindow.getItems()[1];
|
||
valuesCustom=formcustom.getItems()[0];
|
||
}
|
||
};
|
||
|
||
PMDesigner.trigger.create = function () {
|
||
var codeMirrorControl, cmControlCopyTrigger;
|
||
openFormCustom("Create".translate());
|
||
formEditTriggerCustom.getField("code").dom.labelTextContainer.style.width = "23.8%";
|
||
$('.pmui-pmseparatorlinefield .pmui-field-label').css({display: 'none'});
|
||
formEditTriggerCustom.showFooter();
|
||
|
||
codeMirrorControl = formEditTriggerCustom.getItems()[1].controls[0].cm;
|
||
formEditTriggerCustom.getItems()[1].html.style.padding = "10px";
|
||
if (codeMirrorControl !== undefined) {
|
||
codeMirrorControl.setSize(580, 150);
|
||
codeMirrorControl.refresh();
|
||
}
|
||
codeMirrorControl.refresh();
|
||
formEditTriggerCustom.getItems()[1].setHeight(170);
|
||
formEditTriggerCustom.reset();
|
||
};
|
||
}());
|
||
/**
|
||
* new stepTask module
|
||
*/
|
||
var stepsTask = function (activity) {
|
||
this.mainWindow = null;
|
||
this.secondaryWindow = null;
|
||
this.stepsAssignTree = null;
|
||
this.mainContainer = null;
|
||
this.labelsPanel = null;
|
||
this.stepsMainContainer = null;
|
||
this.stepsAssignAccordion = null;
|
||
this.confirmWindow = null;
|
||
this.elementAccordionOpen = null;
|
||
this.groupType = null;
|
||
this.groupLabel = null;
|
||
this.stepsType = null;
|
||
this.stepsAssigned = null;
|
||
stepsTask.prototype.initialize.call(this, activity);
|
||
};
|
||
/**
|
||
* initialization method steps settings, constants are created.
|
||
* components are created
|
||
* the data is loaded
|
||
* styles are customized
|
||
* It extends behaviors and events
|
||
*/
|
||
stepsTask.prototype.initialize = function () {
|
||
this.groupType = ['DYNAFORM', 'INPUT_DOCUMENT', 'OUTPUT_DOCUMENT', 'EXTERNAL'];
|
||
this.groupLabel = ['Dynaform (s)'.translate(), 'Input Document (s)'.translate(), 'OutPut Document (s)'.translate(), 'External (s)'.translate()];
|
||
this.stepsType = {
|
||
"DYNAFORM": "Dynaform".translate(),
|
||
"INPUT_DOCUMENT": "Input Document".translate(),
|
||
"OUTPUT_DOCUMENT": "Output Document".translate(),
|
||
"EXTERNAL": "External".translate()
|
||
};
|
||
this.stepsAssigned = new PMUI.util.ArrayList();
|
||
this.elementAccordionOpen = new PMUI.util.ArrayList();
|
||
this.createWidgets();
|
||
this.mainWindow.addItem(this.mainContainer);
|
||
this.mainWindow.open();
|
||
this.loadInitialData();
|
||
this.customStyles();
|
||
this.elementsAccordionOpenFixed();
|
||
this.addEventSortableInAccordionElements();
|
||
this.addEventSortableInTreePanelElements();
|
||
};
|
||
/**
|
||
* the components are created PMUI UI
|
||
* - confirmWindow
|
||
* - mainWindow
|
||
* - labelsPanel
|
||
* - stepsAssignTree
|
||
* - stepsAssignAccordion
|
||
* - stepsMainContainer
|
||
* - mainContainer
|
||
* - secondaryWindow
|
||
*/
|
||
stepsTask.prototype.createWidgets = function () {
|
||
var that = this;
|
||
this.confirmWindow = new PMUI.ui.MessageWindow({
|
||
id: 'confirmWindowDeleteAcceptedValue',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: '',
|
||
message: '',
|
||
footerItems: [
|
||
{
|
||
id: 'confirmWindow-footer-no',
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'confirmWindow-footer-yes',
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
buttonType: "success"
|
||
}
|
||
],
|
||
visibleFooter: true
|
||
});
|
||
this.mainWindow = new PMUI.ui.Window({
|
||
id: "stepsForTask",
|
||
title: "Steps for task".translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH
|
||
});
|
||
this.labelsPanel = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
proportion: 0.08,
|
||
layout: "hbox",
|
||
items: [
|
||
new PMUI.field.TextAnnotationField({
|
||
text: 'Available Elements'.translate(),
|
||
text_Align: 'center',
|
||
proportion: 1.4
|
||
}),
|
||
new PMUI.field.TextAnnotationField({
|
||
text: 'Assigned Elements (Drop here)'.translate(),
|
||
text_Align: 'center',
|
||
proportion: 1.3
|
||
}),
|
||
new PMUI.ui.Button({
|
||
buttonType: "link",
|
||
"text": "Expand all".translate(),
|
||
id: "expand-button",
|
||
proportion: 0.6,
|
||
handler: function () {
|
||
var items, i, item, buttonAfected;
|
||
items = that.stepsAssignAccordion.getItems();
|
||
buttonAfected = that.labelsPanel.getItem("collapse-button");
|
||
buttonAfected.setDisabled(false);
|
||
this.setDisabled(true);
|
||
that.elementAccordionOpen.clear();
|
||
for (i = 0; i < items.length; i += 1) {
|
||
item = items[i];
|
||
item.expand();
|
||
that.elementAccordionOpen.insert(item);
|
||
}
|
||
}
|
||
}),
|
||
new PMUI.ui.Button({
|
||
buttonType: "link",
|
||
"text": "Collapse all".translate(),
|
||
id: "collapse-button",
|
||
proportion: 0.7,
|
||
disabled: true,
|
||
handler: function () {
|
||
var items, i, item, buttonAfected;
|
||
buttonAfected = that.labelsPanel.getItem("expand-button");
|
||
buttonAfected.setDisabled(false);
|
||
this.setDisabled(true);
|
||
items = that.stepsAssignAccordion.getItems();
|
||
for (i = 0; i < items.length; i += 1) {
|
||
item = items[i];
|
||
that.elementAccordionOpen.remove(item);
|
||
item.collapse();
|
||
}
|
||
}
|
||
})
|
||
]
|
||
});
|
||
this.stepsAssignTree = new PMUI.panel.TreePanel({
|
||
id: 'stepsAssignTree',
|
||
proportion: 0.5,
|
||
height: 475,
|
||
filterable: true,
|
||
autoBind: true,
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nodeDefaultSettings: {
|
||
labelDataBind: 'obj_title',
|
||
autoBind: true,
|
||
collapsed: false,
|
||
itemsDataBind: 'items',
|
||
childrenDefaultSettings: {
|
||
labelDataBind: 'obj_title',
|
||
autoBind: true
|
||
},
|
||
behavior: 'drag'
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
margin: '0px 0px 0px 0px',
|
||
float: 'left',
|
||
overflow: 'auto'
|
||
},
|
||
cssClasses: ['mafe-border-panel']
|
||
}
|
||
});
|
||
this.stepsAssignAccordion = new PMUI.panel.AccordionPanel({
|
||
id: 'stepsAssignAccordion',
|
||
multipleSelection: true,
|
||
hiddenTitle: true,
|
||
proportion: 1.5,
|
||
style: {
|
||
cssProperties: {
|
||
margin: '0px 0px 0px 0px'
|
||
},
|
||
cssClasses: ['mafe-border-panel']
|
||
},
|
||
listeners: {
|
||
select: function (accordionItem, event) {
|
||
var buttonExpand, buttonCollapse, itemsAccod;
|
||
itemsAccod = that.stepsAssignAccordion.items;
|
||
if (accordionItem.collapsed) {
|
||
if (that.elementAccordionOpen.indexOf(accordionItem) > -1) {
|
||
that.elementAccordionOpen.remove(accordionItem);
|
||
}
|
||
} else {
|
||
if (that.elementAccordionOpen.indexOf(accordionItem) === -1) {
|
||
that.elementAccordionOpen.insert(accordionItem);
|
||
}
|
||
}
|
||
buttonCollapse = that.labelsPanel.getItem("collapse-button");
|
||
buttonExpand = that.labelsPanel.getItem("expand-button");
|
||
if (that.elementAccordionOpen.getSize() === 0) {
|
||
buttonExpand.setDisabled(false);
|
||
buttonCollapse.setDisabled(true);
|
||
} else if (that.elementAccordionOpen.getSize() === itemsAccod.getSize()) {
|
||
buttonExpand.setDisabled(true);
|
||
buttonCollapse.setDisabled(false);
|
||
} else {
|
||
buttonExpand.setDisabled(false);
|
||
buttonCollapse.setDisabled(false);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
this.stepsMainContainer = new PMUI.core.Panel({
|
||
id: "stepsMainContainer",
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT - 45,
|
||
layout: 'hbox',
|
||
height: 475,
|
||
items: [
|
||
this.stepsAssignTree,
|
||
this.stepsAssignAccordion
|
||
]
|
||
});
|
||
this.mainContainer = new PMUI.core.Panel({
|
||
id: "mainContainer",
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT - 45,
|
||
layout: 'vbox',
|
||
items: [
|
||
this.labelsPanel,
|
||
this.stepsMainContainer
|
||
]
|
||
});
|
||
this.secondaryWindow = new PMUI.ui.Window({
|
||
visibleFooter: true,
|
||
title: 'Trigger'.translate(),
|
||
footerAlign: 'right',
|
||
footerItems: [
|
||
{
|
||
text: "@@",
|
||
id: "secondaryWindow-criteria",
|
||
handler: function () {
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
"background": "rgb(45, 62, 80)",
|
||
"border": "1px solid rgb(45, 62, 80)"
|
||
},
|
||
cssClasses: ["mafe-button-condition-trigger"]
|
||
}
|
||
}, {
|
||
id: 'secondaryWindow-cancel',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
height: 31,
|
||
style: {
|
||
cssClasses: ["mafe-button-condition-trigger"]
|
||
},
|
||
handler: function () {
|
||
}
|
||
}, {
|
||
id: 'secondaryWindow-save',
|
||
text: 'Save'.translate(),
|
||
buttonType: 'success',
|
||
height: 31,
|
||
style: {
|
||
cssClasses: ["mafe-button-condition-trigger"]
|
||
},
|
||
handler: function () {
|
||
}
|
||
}
|
||
]
|
||
});
|
||
};
|
||
/**
|
||
* This method loads the initial data module steps,for the components:
|
||
* - stepsAssignTree
|
||
* - stepsAssignAccordion
|
||
*/
|
||
stepsTask.prototype.loadInitialData = function () {
|
||
this.loadTreePanelData(this.getTreePanelData());
|
||
this.loadAccordionItems(this.getAccordionData());
|
||
};
|
||
/**
|
||
* This method loads the options to stepsAssignAccordion
|
||
* @param {Array} response An array where each element can be a {Element} object or a JSON object
|
||
*/
|
||
stepsTask.prototype.loadAccordionItems = function (response) {
|
||
var firstResp = [],
|
||
secondResp = [],
|
||
i,
|
||
item,
|
||
assigmentConfig,
|
||
firstRes = 0,
|
||
secondRes = 1;
|
||
if (jQuery.isArray(response) && response.length) {
|
||
if (typeof response[firstRes] === "object") {
|
||
firstResp = response[firstRes].response ? response[firstRes].response : [];
|
||
}
|
||
if (typeof response[secondRes] === "object") {
|
||
secondResp = response[secondRes].response ? response[secondRes].response : [];
|
||
}
|
||
}
|
||
if (firstResp.length) {
|
||
for (i = 0; i < firstResp.length; i += 1) {
|
||
item = this.createAccordionItem(firstResp[i], true, true);
|
||
this.stepsAssignAccordion.addItem(item);
|
||
item.dataItem = firstResp[i];
|
||
this.customAccordionItemButtons(item.html, firstResp[i], item);
|
||
}
|
||
}
|
||
assigmentConfig = {
|
||
step_type_obj: "Assignment".translate(),
|
||
triggers: secondResp,
|
||
st_type: "ASSIGNMENT",
|
||
obj_title: "Assignment".translate(),
|
||
step_uid_obj: "Assignment"
|
||
};
|
||
item = this.createAccordionItem(assigmentConfig);
|
||
this.stepsAssignAccordion.addItem(item);
|
||
item.dataItem = assigmentConfig;
|
||
assigmentConfig = {
|
||
step_type_obj: "Routing".translate(),
|
||
triggers: secondResp,
|
||
obj_title: "Routing".translate(),
|
||
st_type: 'ROUTING',
|
||
step_uid_obj: "Routing"
|
||
};
|
||
item = this.createAccordionItem(assigmentConfig);
|
||
this.stepsAssignAccordion.addItem(item);
|
||
item.dataItem = assigmentConfig;
|
||
this.stepsAssignAccordion.defineEvents();
|
||
};
|
||
/**
|
||
* This method creates an element for stepsAssignAccordion
|
||
* @param {data} It is an object with the settings to create the element
|
||
* @returns {PMUI.item.AccordionItem}
|
||
*/
|
||
stepsTask.prototype.createAccordionItem = function (data) {
|
||
var that = this,
|
||
gridBefore,
|
||
gridAfter,
|
||
beforeTitle,
|
||
afterTitle,
|
||
i,
|
||
textLabel;
|
||
if (this.stepsType[data.step_type_obj]) {
|
||
textLabel = this.stepsType[data.step_type_obj];
|
||
} else {
|
||
textLabel = data.step_type_obj;
|
||
}
|
||
beforeTitle = new PMUI.field.TextAnnotationField({
|
||
text: 'Before'.translate() + ' ' + textLabel,
|
||
proportion: 0.5,
|
||
text_Align: 'left'
|
||
});
|
||
afterTitle = new PMUI.field.TextAnnotationField({
|
||
text: 'After'.translate() + ' ' + textLabel,
|
||
proportion: 0.5,
|
||
text_Align: 'left',
|
||
visible: data.st_type === "ASSIGNMENT" ? false : true
|
||
});
|
||
|
||
gridBefore = new PMUI.grid.GridPanel({
|
||
behavior: 'dragdropsort',
|
||
filterable: false,
|
||
visibleHeaders: false,
|
||
data: data.triggers,
|
||
st_type: 'BEFORE',
|
||
step_uid: data.step_uid,
|
||
visibleFooter: false,
|
||
width: '96%',
|
||
emptyMessage: 'No records found'.translate(),
|
||
style: {
|
||
cssClasses: ['mafe-gridPanel']
|
||
},
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [
|
||
{
|
||
title: '',
|
||
dataType: 'string',
|
||
alignmentCell: 'center',
|
||
columnData: "st_position",
|
||
width: 20
|
||
}, {
|
||
title: 'Before Output Document'.translate(),
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
columnData: 'tri_title',
|
||
width: 360
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: function (row, data) {
|
||
return data.st_condition === '' ? 'Condition'.translate() : 'Condition *'.translate();
|
||
},
|
||
buttonStyle: {cssClasses: ['mafe-button-edit']},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData();
|
||
that.editCondition(grid.step_uid, data.tri_uid, data.st_type, row);
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Edit'.translate(),
|
||
buttonStyle: {cssClasses: ['mafe-button-edit']},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData(),
|
||
restClient;
|
||
restClient = new PMRestClient({
|
||
endpoint: 'trigger/' + data.tri_uid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
that.editTrigger(response.tri_webbot, response.tri_uid);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Remove'.translate(),
|
||
buttonStyle: {cssClasses: ['mafe-button-delete']},
|
||
onButtonClick: function (row, grid) {
|
||
that.removeTrigger(row, grid);
|
||
}
|
||
}
|
||
],
|
||
onDrop: function (container, draggableItem, index) {
|
||
var receiveData = draggableItem.getData();
|
||
if (draggableItem instanceof PMUI.item.TreeNode) {
|
||
that.receiveTreeNodeItem(receiveData, this, index);
|
||
} else {
|
||
that.receiveRowItem(receiveData, this, index, draggableItem);
|
||
}
|
||
that.updateIndexToGrid(this);
|
||
return false;
|
||
},
|
||
onSort: function (container, item, index) {
|
||
var receiveData = item.getData();
|
||
that.sortableRowHandler(receiveData, this, index);
|
||
that.updateIndexToGrid(this);
|
||
}
|
||
});
|
||
if (data.st_type !== "ROUTING" && data.st_type !== "ASSIGNMENT") {
|
||
gridBefore.st_type = 'BEFORE';
|
||
} else if (data.st_type === "ROUTING") {
|
||
gridBefore.st_type = "BEFORE_ROUTING";
|
||
} else {
|
||
gridBefore.st_type = "BEFORE_ASSIGNMENT";
|
||
}
|
||
gridBefore.step_uid = data.step_uid;
|
||
gridBefore.clearItems();
|
||
if (jQuery.isArray(data.triggers)) {
|
||
for (i = 0; i < data.triggers.length; i += 1) {
|
||
if (gridBefore.st_type === data.triggers[i].st_type) {
|
||
gridBefore.addDataItem({
|
||
st_condition: data.triggers[i].st_condition,
|
||
st_position: data.triggers[i].st_position,
|
||
st_type: data.triggers[i].st_type,
|
||
tri_description: data.triggers[i].tri_description,
|
||
tri_title: data.triggers[i].tri_title,
|
||
tri_uid: data.triggers[i].tri_uid,
|
||
obj_title: data.triggers[i].tri_title,
|
||
obj_uid: data.triggers[i].tri_uid
|
||
});
|
||
}
|
||
}
|
||
}
|
||
gridAfter = new PMUI.grid.GridPanel({
|
||
behavior: 'dragdropsort',
|
||
filterable: false,
|
||
visibleHeaders: false,
|
||
data: data.triggers,
|
||
visibleFooter: false,
|
||
width: '96%',
|
||
visible: data.st_type === "ASSIGNMENT" ? false : true,
|
||
emptyMessage: 'No records found'.translate(),
|
||
style: {
|
||
cssClasses: ['mafe-gridPanel']
|
||
},
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [
|
||
{
|
||
title: '',
|
||
dataType: 'string',
|
||
alignmentCell: 'center',
|
||
columnData: 'st_position',
|
||
width: 20
|
||
}, {
|
||
title: 'Before Output Document'.translate(),
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
columnData: 'tri_title',
|
||
width: 360
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: function (row, data) {
|
||
return data.st_condition === '' ? 'Condition'.translate() : 'Condition *'.translate();
|
||
},
|
||
buttonStyle: {cssClasses: ['mafe-button-edit']},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData();
|
||
that.editCondition(grid.step_uid, data.tri_uid, data.st_type, row);
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Edit'.translate(),
|
||
buttonStyle: {cssClasses: ['mafe-button-edit']},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData(),
|
||
restClient;
|
||
restClient = new PMRestClient({
|
||
endpoint: 'trigger/' + data.tri_uid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
that.editTrigger(response.tri_webbot, response.tri_uid);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Remove'.translate(),
|
||
buttonStyle: {cssClasses: ['mafe-button-delete']},
|
||
onButtonClick: function (row, grid) {
|
||
that.removeTrigger(row, grid);
|
||
}
|
||
}
|
||
],
|
||
onDrop: function (container, draggableItem, index) {
|
||
var receiveData = draggableItem.getData();
|
||
if (draggableItem instanceof PMUI.item.TreeNode) {
|
||
that.receiveTreeNodeItem(receiveData, this, index);
|
||
} else {
|
||
that.receiveRowItem(receiveData, this, index, draggableItem);
|
||
}
|
||
that.updateIndexToGrid(this);
|
||
return false;
|
||
},
|
||
onSort: function (container, item, index) {
|
||
var receiveData = item.getData();
|
||
that.sortableRowHandler(receiveData, this, index);
|
||
that.updateIndexToGrid(this);
|
||
}
|
||
});
|
||
if (data.st_type !== "ROUTING" && data.st_type !== "ASSIGNMENT") {
|
||
gridAfter.st_type = 'AFTER';
|
||
} else if (data.st_type == "ROUTING") {
|
||
gridAfter.st_type = "AFTER_ROUTING";
|
||
} else {
|
||
gridAfter.st_type = "AFTER_ASSIGNMENT";
|
||
}
|
||
gridAfter.step_uid = data.step_uid;
|
||
if (jQuery.isArray(data.triggers)) {
|
||
for (i = 0; i < data.triggers.length; i += 1) {
|
||
if (gridAfter.st_type === data.triggers[i].st_type) {
|
||
gridAfter.addDataItem({
|
||
st_condition: data.triggers[i].st_condition,
|
||
st_position: data.triggers[i].st_position,
|
||
st_type: data.triggers[i].st_type,
|
||
tri_description: data.triggers[i].tri_description,
|
||
tri_title: data.triggers[i].tri_title,
|
||
tri_uid: data.triggers[i].tri_uid,
|
||
obj_title: data.triggers[i].tri_title,
|
||
obj_uid: data.triggers[i].tri_uid
|
||
});
|
||
}
|
||
}
|
||
}
|
||
var accordionItem = new PMUI.item.AccordionItem({
|
||
id: 'id' + data.step_uid_obj,
|
||
dataStep: data,
|
||
closeable: true,
|
||
body: new PMUI.core.Panel({
|
||
layout: 'vbox',
|
||
items: [
|
||
beforeTitle,
|
||
gridBefore,
|
||
afterTitle,
|
||
gridAfter
|
||
]
|
||
})
|
||
});
|
||
if (this.stepsType[data.step_type_obj]) {
|
||
accordionItem.setTitle(data.step_position + ". " + data.obj_title + ' (' + this.stepsType[data.step_type_obj] + ')');
|
||
this.stepsAssigned.insert(accordionItem);
|
||
} else {
|
||
accordionItem.setTitle((this.stepsAssignAccordion.items.getSize() + 1) + ". " + data.obj_title);
|
||
}
|
||
return accordionItem;
|
||
};
|
||
/**
|
||
* styles that can not be handled with the library are customized PMUI
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.customStyles = function () {
|
||
this.mainWindow.body.style.overflow = "hidden";
|
||
};
|
||
/**
|
||
* run the endpoint 'activity/{activity_id}/available-steps' to get
|
||
* dynaforms, output document, input Document and external, Unassigned or Availables
|
||
* @returns {Array}
|
||
*/
|
||
stepsTask.prototype.getStepAvailables = function () {
|
||
var resp = [];
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'activity/' + PMDesigner.act_uid + '/available-steps',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
if (jQuery.isArray(response)) {
|
||
resp = response[0] ? response[0].response : [];
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
return resp;
|
||
};
|
||
/**
|
||
* run the endpoint 'activity/{activity_id}/available-steps' to get all Availables
|
||
* triggres and dynaforms Unassigned or Availables
|
||
* @returns {Array}
|
||
*/
|
||
stepsTask.prototype.getTreePanelData = function () {
|
||
var resp = [];
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [{
|
||
url: 'activity/' + PMDesigner.act_uid + '/available-steps',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'triggers',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
resp = response;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
return resp;
|
||
}
|
||
/**
|
||
* this method loads the data to stepsAssignTree
|
||
* @param response, the answer is an array containing all the elements
|
||
* that will be loaded into the step stepsAssignTree
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.loadTreePanelData = function (response) {
|
||
var that = this,
|
||
data,
|
||
i,
|
||
j,
|
||
type,
|
||
label,
|
||
items,
|
||
labelTrigger,
|
||
dataTree = [],
|
||
treeNode;
|
||
data = response[1].response;
|
||
labelTrigger = 'Trigger (s)'.translate();
|
||
if (data.length === 0) {
|
||
dataTree.push({
|
||
obj_title: labelTrigger,
|
||
items: [this.notItemConfig()]
|
||
});
|
||
} else {
|
||
items = [];
|
||
for (i = 0; i < data.length; i += 1) {
|
||
items.push({
|
||
obj_title: data[i]['tri_title'],
|
||
obj_type: data[i]['tri_type'],
|
||
obj_uid: data[i]['tri_uid']
|
||
});
|
||
}
|
||
dataTree.push({
|
||
obj_title: labelTrigger,
|
||
items: items,
|
||
id: "TRIGGER"
|
||
});
|
||
}
|
||
data = response[0].response;
|
||
type = this.groupType;
|
||
label = this.groupLabel;
|
||
items = [];
|
||
for (i = 0; i < type.length; i += 1) {
|
||
items = [];
|
||
for (j = 0; j < data.length; j += 1) {
|
||
if (type[i] === data[j].obj_type) {
|
||
items.push({
|
||
obj_title: data[j]['obj_title'],
|
||
obj_type: data[j]['obj_type'],
|
||
obj_uid: data[j]['obj_uid']
|
||
});
|
||
}
|
||
}
|
||
if (items.length === 0) {
|
||
dataTree.push({
|
||
obj_title: label[i].translate(),
|
||
items: [this.notItemConfig()],
|
||
behavior: '',
|
||
id: type[i]
|
||
});
|
||
} else {
|
||
dataTree.push({
|
||
obj_title: label[i].translate(),
|
||
items: items,
|
||
behavior: 'drag',
|
||
id: type[i]
|
||
});
|
||
}
|
||
}
|
||
this.stepsAssignTree.clearItems();
|
||
for (i = 0; i < dataTree.length; i += 1) {
|
||
this.stepsAssignTree.addDataItem(dataTree[i]);
|
||
treeNode = this.stepsAssignTree.getItem(i);
|
||
treeNode.setID(dataTree[i].id);
|
||
this.updateIndexPosition(treeNode);
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* run the endpoint 'activity/{activity_id}/steps' and 'activity/{activity_id}/step/triggers'
|
||
* to get all triggres and dynaforms assigned
|
||
* @returns {Array}
|
||
*/
|
||
stepsTask.prototype.getAccordionData = function () {
|
||
var resp = [],
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'activity/' + PMDesigner.act_uid + '/steps',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'activity/' + PMDesigner.act_uid + '/step/triggers',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
resp = response;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems getting the Steps, please try again.'.translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
return resp;
|
||
};
|
||
/**
|
||
* checks whether a trigger is already assigned in a grid
|
||
* @param grid, is instanceof PMUI.grid.Grid, in conducting the search
|
||
* @param tri_uid, search parameter in the rows of the grid
|
||
* @returns {boolean}
|
||
*/
|
||
stepsTask.prototype.isTriggerAssigned = function (grid, tri_uid) {
|
||
var data, i, exist = false;
|
||
data = grid.getData();
|
||
if (grid && jQuery.isArray(data)) {
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].tri_uid === tri_uid) {
|
||
exist = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return exist;
|
||
};
|
||
/**
|
||
* retorna el tipo de de step, para la ejecucion de "endpoint"
|
||
* @param st_type, this a step type, the accepted parameters are:
|
||
* - BEFORE_ASSIGNMENT
|
||
* - BEFORE_ROUTING
|
||
* - AFTER_ROUTING
|
||
* - BEFORE
|
||
* - AFTER
|
||
* @returns {string}
|
||
*/
|
||
stepsTask.prototype.getStepType = function (st_type) {
|
||
var value;
|
||
switch (st_type) {
|
||
case 'BEFORE_ASSIGNMENT':
|
||
value = 'before-assignment';
|
||
break;
|
||
case 'BEFORE_ROUTING':
|
||
value = 'before-routing';
|
||
break;
|
||
case 'AFTER_ROUTING':
|
||
value = 'after-routing';
|
||
break;
|
||
case 'BEFORE':
|
||
value = 'before';
|
||
break;
|
||
case 'AFTER':
|
||
value = 'after';
|
||
break;
|
||
default:
|
||
value = '';
|
||
break;
|
||
}
|
||
return value;
|
||
};
|
||
/**
|
||
* This method is executed when editing a "trigger" in a row of the grid.
|
||
* secondary window opens with the current configuration of the trigger
|
||
* @param trigger, is the return value when is update 'trigger' action in the enpoint
|
||
* @param triggerID, is the id of the trigger to update
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.editTrigger = function (trigger, triggerID) {
|
||
var codeMirror,
|
||
saveButton,
|
||
cancelButton,
|
||
criteriaButton,
|
||
that = this;
|
||
this.resetSecondaryWindow();
|
||
codeMirror = new PMCodeMirror({
|
||
id: "codeMirror"
|
||
});
|
||
CodeMirror.commands.autocomplete = function (cm) {
|
||
CodeMirror.showHint(cm, CodeMirror.phpHint);
|
||
};
|
||
codeMirror.setValue(trigger);
|
||
this.secondaryWindow.setWidth(DEFAULT_WINDOW_WIDTH);
|
||
this.secondaryWindow.setHeight(DEFAULT_WINDOW_HEIGHT);
|
||
this.secondaryWindow.setTitle("Trigger".translate());
|
||
saveButton = this.secondaryWindow.footer.getItem("secondaryWindow-save");
|
||
cancelButton = this.secondaryWindow.footer.getItem("secondaryWindow-cancel");
|
||
criteriaButton = this.secondaryWindow.footer.getItem("secondaryWindow-criteria");
|
||
if (saveButton) {
|
||
saveButton.setHandler(function () {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'trigger/' + triggerID,
|
||
typeRequest: 'update',
|
||
data: {
|
||
tri_param: '',
|
||
tri_webbot: codeMirror.getValue()
|
||
},
|
||
messageError: 'There are problems updating the trigger, please try again.'.translate(),
|
||
messageSuccess: 'Trigger updated correctly'.translate(),
|
||
flashContainer: that.mainWindow,
|
||
functionSuccess: function () {
|
||
that.secondaryWindow.close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
});
|
||
}
|
||
if (cancelButton) {
|
||
cancelButton.setHandler(function () {
|
||
that.secondaryWindow.close();
|
||
});
|
||
}
|
||
if (criteriaButton) {
|
||
criteriaButton.setVisible(true);
|
||
criteriaButton.setHandler(function () {
|
||
var picker = new VariablePicker();
|
||
picker.open({
|
||
success: function (variable) {
|
||
var cursorPos,
|
||
codemirror;
|
||
codemirror = codeMirror.cm;
|
||
cursorPos = codemirror.getCursor();
|
||
codemirror.replaceSelection(variable);
|
||
codemirror.setCursor(cursorPos.line, cursorPos.ch);
|
||
}
|
||
});
|
||
});
|
||
}
|
||
this.secondaryWindow.open();
|
||
this.secondaryWindow.addItem(codeMirror);
|
||
codeMirror.cm.setSize(this.secondaryWindow.getWidth(), 380);
|
||
$(".CodeMirror.cm-s-default.CodeMirror-wrap").after($ctrlSpaceMessage.css({
|
||
"padding-left": "10px",
|
||
"margin": "3px 0px 0px 0px"
|
||
}));
|
||
$(".pmui-window-body").css("overflow", "hidden");
|
||
codeMirror.cm.refresh();
|
||
};
|
||
/**
|
||
* edit the selected trigger condition
|
||
* @param stepID, It is the id of the step to upgrade
|
||
* @param triggerID, is the id of the trigger to update
|
||
* @param stepType, It is the kind of step to update
|
||
* @param row, PMUI.grid.GridPanelRow, is the row affected
|
||
*/
|
||
stepsTask.prototype.editCondition = function (stepID, triggerID, stepType, row) {
|
||
var saveButton,
|
||
cancelButton,
|
||
criteriaButton,
|
||
form,
|
||
dataRow,
|
||
that = this;
|
||
dataRow = row.getData();
|
||
this.resetSecondaryWindow();
|
||
this.secondaryWindow.setWidth(500);
|
||
this.secondaryWindow.setHeight(350);
|
||
this.secondaryWindow.setTitle('Condition Trigger'.translate());
|
||
this.secondaryWindow.setTitle("Trigger".translate());
|
||
form = new PMUI.form.Form({
|
||
id: 'idFormEditCondition',
|
||
width: 500,
|
||
title: 'Condition Trigger'.translate(),
|
||
visibleHeader: false,
|
||
items: [
|
||
new CriteriaField({
|
||
id: 'st_condition',
|
||
pmType: 'textarea',
|
||
name: 'st_condition',
|
||
valueType: 'string',
|
||
label: 'Condition'.translate(),
|
||
placeholder: 'Insert a condition'.translate(),
|
||
rows: 150,
|
||
controlsWidth: 250,
|
||
renderType: 'textarea',
|
||
value: dataRow.st_condition
|
||
})
|
||
]
|
||
});
|
||
this.secondaryWindow.addItem(form);
|
||
saveButton = this.secondaryWindow.footer.getItem("secondaryWindow-save");
|
||
cancelButton = this.secondaryWindow.footer.getItem("secondaryWindow-cancel");
|
||
criteriaButton = this.secondaryWindow.footer.getItem("secondaryWindow-criteria");
|
||
if (saveButton) {
|
||
saveButton.setHandler(function () {
|
||
var data,
|
||
restClient;
|
||
data = form.getData();
|
||
data.st_type = stepType;
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + PMDesigner.act_uid + '/step/' + ((typeof(stepID) != "undefined") ? stepID + "/" : "") + 'trigger/' + triggerID,
|
||
typeRequest: 'update',
|
||
data: data,
|
||
messageError: 'There are problems update the Step Trigger, please try again.'.translate(),
|
||
functionSuccess: function (xhr, response) {
|
||
dataRow.st_condition = data.st_condition;
|
||
row.setData(dataRow);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
that.secondaryWindow.close();
|
||
});
|
||
}
|
||
if (cancelButton) {
|
||
cancelButton.setHandler(function () {
|
||
that.secondaryWindow.close();
|
||
});
|
||
}
|
||
if (criteriaButton) {
|
||
criteriaButton.setVisible(false);
|
||
criteriaButton.handler = null;
|
||
}
|
||
this.secondaryWindow.open();
|
||
};
|
||
/**
|
||
* eliminates the elements of the secondary window
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.resetSecondaryWindow = function () {
|
||
var i, items;
|
||
if (this.secondaryWindow && this.secondaryWindow.items.getSize() > 0) {
|
||
items = this.secondaryWindow.items;
|
||
for (i = 0; i < items.getSize(); i += 1) {
|
||
this.secondaryWindow.removeItem(items.get(i));
|
||
}
|
||
}
|
||
};
|
||
/**
|
||
* It establishes a PMUI.util.ArrayList that stores the
|
||
* elements of "stepsAssignAccordion" that are open
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.elementsAccordionOpenFixed = function () {
|
||
var i,
|
||
accordionItems;
|
||
if (this.stepsAssignAccordion) {
|
||
accordionItems = this.stepsAssignAccordion.getItems();
|
||
if ($.isArray(accordionItems)) {
|
||
for (i = 0; i < accordionItems.length; i += 1) {
|
||
if (!accordionItems[i].collapsed) {
|
||
this.elementAccordionOpen.insert(accordionItems[i]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
};
|
||
/**
|
||
* It is an extension to add the "sortable" event "stepAssignAccordion".
|
||
* when a node "treePanel" is added to stop runs and is where you choose if it's a sort or aggregation.
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.addEventSortableInAccordionElements = function () {
|
||
var tagContainer,
|
||
newIndex,
|
||
index,
|
||
treeNodeObject,
|
||
treeNodeData,
|
||
that = this;
|
||
if (this.stepsAssignAccordion && this.stepsAssignAccordion.html) {
|
||
tagContainer = this.stepsAssignAccordion.body;
|
||
$(tagContainer).sortable({
|
||
items: '>div:not(#idAssignment,#idRouting)',
|
||
placeholder: 'steps-placeholder',
|
||
receive: function (event, ui) {
|
||
var item = ui ? ui.item : null;
|
||
if (item && item instanceof jQuery && item.length) {
|
||
treeNodeObject = PMUI.getPMUIObject(item.get(0));
|
||
treeNodeData = treeNodeObject.getData();
|
||
}
|
||
},
|
||
stop: function (event, ui) {
|
||
var itemClone = ui ? ui.item : null,
|
||
accordionItems,
|
||
accordionItem,
|
||
dataEdited,
|
||
restClientMultipart,
|
||
restClient;
|
||
var newIndex = ui.item.index();
|
||
accordionItems = that.stepsAssignAccordion.getItems();
|
||
if (itemClone && itemClone instanceof jQuery && itemClone.length) {
|
||
if (treeNodeObject) {
|
||
itemClone.remove();
|
||
if (newIndex + 1 > accordionItems.length) {
|
||
newIndex = that.stepsAssigned.getSize();
|
||
}
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + PMDesigner.act_uid + '/step',
|
||
typeRequest: 'post',
|
||
data: {
|
||
step_type_obj: treeNodeData.obj_type,
|
||
step_uid_obj: treeNodeData.obj_uid,
|
||
step_condition: '',
|
||
step_position: newIndex + 1,
|
||
step_mode: 'EDIT'
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var item, buttonAfected, treeNode;
|
||
that.stepsAssignTree.removeItem(treeNodeObject);
|
||
treeNode = that.stepsAssignTree.items.find("id", response.step_type_obj);
|
||
if (treeNode.items.getSize() === 0) {
|
||
treeNode.addDataItem(that.notItemConfig());
|
||
}
|
||
response.obj_description = '';
|
||
response.obj_title = treeNodeData.obj_title;
|
||
response.triggers = [];
|
||
item = that.createAccordionItem(response, true, true);
|
||
item.dataItem = response;
|
||
if (that.stepsAssignAccordion.items.getSize() === 2) {
|
||
that.stepsAssignAccordion.addItem(item, 0);
|
||
} else {
|
||
that.stepsAssignAccordion.addItem(item, newIndex);
|
||
}
|
||
that.stepsAssignAccordion.defineEvents();
|
||
that.customAccordionItemButtons(item.html, response, item);
|
||
that.updateItemIndexToAccordion();
|
||
that.addEventSortableInAccordionElements();
|
||
that.addEventSortableInTreePanelElements();
|
||
buttonAfected = that.labelsPanel.getItem("expand-button");
|
||
buttonAfected.setDisabled(false);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'An unexpected error while assigning the step, please try again later.'.translate(),
|
||
messageSuccess: 'Step assigned successfully.'.translate(),
|
||
flashContainer: that.stepsAssignAccordion.getParent()
|
||
});
|
||
restClient.executeRestClient();
|
||
} else {
|
||
accordionItem = PMUI.getPMUIObject(ui.item.get(0));
|
||
index = that.stepsAssignAccordion.items.indexOf(accordionItem);
|
||
if (newIndex !== index) {
|
||
that.stepsAssignAccordion.items.remove(accordionItem);
|
||
that.stepsAssignAccordion.items.insertAt(accordionItem, newIndex);
|
||
dataEdited = {
|
||
step_position: newIndex + 1,
|
||
step_uid: accordionItem.dataItem.step_uid,
|
||
step_type_obj: accordionItem.dataItem.step_type_obj,
|
||
step_uid_obj: accordionItem.dataItem.step_uid_obj
|
||
};
|
||
restClientMultipart = new PMRestClient({
|
||
endpoint: 'activity/' + PMDesigner.act_uid + '/step/' + accordionItem.dataItem.step_uid,
|
||
typeRequest: 'update',
|
||
data: dataEdited,
|
||
functionSuccess: function (xhr, response) {
|
||
that.updateItemIndexToAccordion();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'An unexpected error while editing the step, please try again later.'.translate(),
|
||
messageSuccess: 'Step editing successfully.'.translate(),
|
||
flashContainer: this.mainWindow
|
||
});
|
||
restClientMultipart.executeRestClient();
|
||
}
|
||
}
|
||
}
|
||
},
|
||
start: function (e, ui) {
|
||
newIndex = ui.item.index();
|
||
}
|
||
});
|
||
}
|
||
};
|
||
/**
|
||
* It is an extension to add the "sortable" event "stepsAssignTree".
|
||
* when choosing a node treePanel and you want to add to the accordion or the grid
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.addEventSortableInTreePanelElements = function () {
|
||
var items = this.stepsAssignTree.getItems(),
|
||
connect,
|
||
i,
|
||
sw,
|
||
that = this,
|
||
nodeItems;
|
||
for (i = 0; i < items.length; i += 1) {
|
||
nodeItems = items[i].getItems();
|
||
if (nodeItems.length && nodeItems[0].getData().obj_type) {
|
||
sw = items[i].getItems()[0].getData().obj_type === "SCRIPT";
|
||
connect = sw ? ".pmui-gridpanel-tbody" : ".pmui-accordion-panel-body";
|
||
$(items[i].html).find('ul').find('>li').draggable({
|
||
appendTo: document.body,
|
||
revert: "invalid",
|
||
helper: "clone",
|
||
cursor: "move",
|
||
zIndex: 1000,
|
||
connectToSortable: connect,
|
||
start: function (e) {
|
||
var i, nodeTag, node, nodeData, accordionItems, item;
|
||
nodeTag = e.target;
|
||
node = PMUI.getPMUIObject(nodeTag);
|
||
nodeData = node.getData();
|
||
accordionItems = that.stepsAssignAccordion.getItems();
|
||
$(that.stepsAssignAccordion.body).hide();
|
||
if (nodeData.obj_type !== "SCRIPT") {
|
||
for (i = 0; i < accordionItems.length; i += 1) {
|
||
item = accordionItems[i];
|
||
item.collapse();
|
||
}
|
||
}
|
||
$(that.stepsAssignAccordion.body).show();
|
||
},
|
||
stop: function () {
|
||
var i = 0, max;
|
||
if (that.elementAccordionOpen) {
|
||
max = that.elementAccordionOpen.getSize();
|
||
for (i = 0; i < max; i += 1) {
|
||
that.elementAccordionOpen.get(i).expand();
|
||
}
|
||
}
|
||
}
|
||
});
|
||
} else {
|
||
$(nodeItems[0].html).draggable("disable");
|
||
}
|
||
}
|
||
};
|
||
/**
|
||
* add custom buttons on the head of an element of stepsAssignAccordion
|
||
* are three buttons
|
||
* properties
|
||
* edit
|
||
* remove
|
||
* @param html, is the html of the header accordion item
|
||
* @param step, the data of the step selected
|
||
*/
|
||
stepsTask.prototype.customAccordionItemButtons = function (html, step, accordionItem) {
|
||
var propertiesStep,
|
||
editStep,
|
||
removeStep,
|
||
$html,
|
||
containerButtons,
|
||
that = this,
|
||
title;
|
||
if (html) {
|
||
$html = jQuery(html.getElementsByClassName("pmui-accordion-item-header"));
|
||
title = step.obj_title + ' (' + step.step_type_obj + ')';
|
||
$html.find(".pmui-accordion-item-title").get(0).title = title;
|
||
containerButtons = $('<div></div>');
|
||
containerButtons.addClass("propertiesTask-accordionItem");
|
||
propertiesStep = $('<a>' + 'Properties'.translate() + '</a>');
|
||
propertiesStep.addClass("mafe-button-edit propertiesTask-accordionButton");
|
||
editStep = $('<a>' + 'Edit'.translate() + '</a>');
|
||
editStep.addClass("mafe-button-edit propertiesTask-accordionButton");
|
||
removeStep = $('<a>' + 'Remove'.translate() + '</a>');
|
||
removeStep.addClass("mafe-button-delete propertiesTask-accordionButton");
|
||
|
||
propertiesStep.click(function (e) {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
that.propertiesStepShow(step);
|
||
return false;
|
||
});
|
||
|
||
editStep.click(function (e) {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
that.editStepShow(step, accordionItem);
|
||
return false;
|
||
});
|
||
|
||
removeStep.click(function (e) {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
that.removeStepShow(step);
|
||
return false;
|
||
});
|
||
containerButtons.append(propertiesStep);
|
||
containerButtons.append(editStep);
|
||
containerButtons.append(removeStep);
|
||
$html.append(containerButtons);
|
||
}
|
||
};
|
||
/**
|
||
* opens the properties of the selected step with the current settings
|
||
* @param step, is the data of selected step
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.propertiesStepShow = function (step) {
|
||
var form,
|
||
saveButton,
|
||
cancelButton,
|
||
criteriaButton,
|
||
that = this;
|
||
this.resetSecondaryWindow();
|
||
this.secondaryWindow.setWidth(520);
|
||
this.secondaryWindow.setHeight(370);
|
||
this.secondaryWindow.setTitle('Step Properties'.translate());
|
||
form = new PMUI.form.Form({
|
||
id: 'stepsEditCondition',
|
||
width: 500,
|
||
title: 'Condition Trigger'.translate(),
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
id: 'step_mode',
|
||
pmType: 'radio',
|
||
label: 'Mode'.translate(),
|
||
value: '',
|
||
visible: step.step_type_obj === "DYNAFORM" ? true : false,
|
||
name: 'step_mode',
|
||
options: [
|
||
{
|
||
id: 'modeEdit',
|
||
label: 'Edit'.translate(),
|
||
value: 'EDIT',
|
||
selected: true
|
||
}, {
|
||
id: 'modeView',
|
||
label: 'View'.translate(),
|
||
value: 'VIEW'
|
||
}
|
||
]
|
||
},
|
||
new CriteriaField({
|
||
id: 'step_condition',
|
||
pmType: 'textarea',
|
||
name: 'step_condition',
|
||
valueType: 'string',
|
||
label: 'Condition'.translate(),
|
||
placeholder: 'Insert a condition'.translate(),
|
||
rows: 150,
|
||
controlsWidth: 250,
|
||
renderType: 'textarea'
|
||
})
|
||
]
|
||
});
|
||
this.secondaryWindow.addItem(form);
|
||
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'activity/' + PMDesigner.act_uid + '/step/' + step.step_uid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
form.getField('step_mode').setValue(response.step_mode);
|
||
form.getField('step_condition').setValue(response.step_condition);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
saveButton = this.secondaryWindow.footer.getItem("secondaryWindow-save");
|
||
cancelButton = this.secondaryWindow.footer.getItem("secondaryWindow-cancel");
|
||
criteriaButton = this.secondaryWindow.footer.getItem("secondaryWindow-criteria");
|
||
if (saveButton) {
|
||
saveButton.setHandler(function () {
|
||
var restClient;
|
||
if (form.isValid()) {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + PMDesigner.act_uid + '/step/' + step.step_uid,
|
||
typeRequest: 'update',
|
||
data: form.getData(),
|
||
functionSuccess: function () {
|
||
that.secondaryWindow.close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems update the Step Trigger, please try again.'.translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
});
|
||
}
|
||
if (cancelButton) {
|
||
cancelButton.setHandler(function () {
|
||
that.secondaryWindow.close();
|
||
});
|
||
}
|
||
if (criteriaButton) {
|
||
criteriaButton.handler = null;
|
||
criteriaButton.setVisible(false);
|
||
}
|
||
this.secondaryWindow.open();
|
||
};
|
||
/**
|
||
* opens the step of the selected step with the current settings
|
||
* @param step, is the data of selected step
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.editStepShow = function (step, accordioItem) {
|
||
var inputDocument,
|
||
that = this;
|
||
switch (step.step_type_obj) {
|
||
case 'DYNAFORM':
|
||
var restProxy = new PMRestClient({
|
||
endpoint: 'dynaform/' + step.step_uid_obj,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var old = PMUI.activeCanvas,
|
||
formDesigner;
|
||
PMUI.activeCanvas = false;
|
||
formDesigner = PMDesigner.dynaformDesigner(response);
|
||
formDesigner.onHide = function () {
|
||
var assignedDynaform,
|
||
i,
|
||
data,
|
||
title;
|
||
assignedDynaform = that.getStepsAssignedByCriteria("DYNAFORM");
|
||
if (jQuery.isArray(assignedDynaform)) {
|
||
for (i = 0; i < assignedDynaform.length; i += 1) {
|
||
data = assignedDynaform[i];
|
||
if (typeof data === "object") {
|
||
if (data.step_uid === step.step_uid) {
|
||
title = data.step_position + ". " + data.obj_title;
|
||
title = title + ' (' + that.stepsType["DYNAFORM"] + ')';
|
||
accordioItem.setTitle(title);
|
||
accordioItem.dataItem = data;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
PMUI.activeCanvas = old;
|
||
};
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
break;
|
||
case 'OUTPUT_DOCUMENT':
|
||
PMDesigner.output();
|
||
PMDesigner.output.showTiny(step.step_uid_obj);
|
||
break;
|
||
case 'INPUT_DOCUMENT':
|
||
inputDocument = new InputDocument({
|
||
onUpdateInputDocumentHandler: function (data, inputDoc) {
|
||
var position, title;
|
||
position = accordioItem.dataItem.step_position;
|
||
title = position + ". " + data.inp_doc_title;
|
||
title = title + ' (' + that.stepsType["INPUT_DOCUMENT"] + ')';
|
||
accordioItem.dataItem.obj_title = data.inp_doc_title;
|
||
accordioItem.setTitle(title);
|
||
inputDoc.winMainInputDocument.close();
|
||
}
|
||
});
|
||
inputDocument.build();
|
||
inputDocument.openFormInMainWindow();
|
||
inputDocument.inputDocumentFormGetProxy(step.step_uid_obj);
|
||
break;
|
||
}
|
||
};
|
||
/**
|
||
* the window opens for confirmation of the removal step
|
||
* @param step, the current step to remove
|
||
* @chainable
|
||
*/
|
||
stepsTask.prototype.removeStepShow = function (step) {
|
||
var title,
|
||
yesButton,
|
||
noButton,
|
||
that = this,
|
||
restClient;
|
||
if (this.stepsType[step.step_type_obj] !== undefined) {
|
||
title = "Step {0} ( {1} )".translate([step.obj_title, this.stepsType[step.step_type_obj]]);
|
||
this.confirmWindow.setTitle(title);
|
||
} else {
|
||
this.confirmWindow.setTitle("Step " + step.step_type_obj.capitalize());
|
||
}
|
||
this.confirmWindow.setMessage("Do you want to remove the step '{0}'?".translate([step.obj_title]));
|
||
yesButton = this.confirmWindow.footer.getItem("confirmWindow-footer-yes");
|
||
noButton = this.confirmWindow.footer.getItem("confirmWindow-footer-no");
|
||
if (yesButton) {
|
||
yesButton.setHandler(function () {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + PMDesigner.act_uid + '/step/' + step.step_uid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
that.removingStepTask(step, response);
|
||
that.confirmWindow.close();
|
||
that.updateItemIndexToAccordion();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'An unexpected error while deleting the step, please try again later.'.translate(),
|
||
messageSuccess: 'Step removed successfully'.translate(),
|
||
flashContainer: that.mainWindow.getParent()
|
||
});
|
||
restClient.executeRestClient();
|
||
});
|
||
}
|
||
if (noButton) {
|
||
noButton.setHandler(function () {
|
||
that.confirmWindow.close();
|
||
});
|
||
}
|
||
this.confirmWindow.open();
|
||
};
|
||
/**
|
||
* eliminates the step of step Assign Accordion
|
||
* @param step, the current step to remove
|
||
* @param response, data from the endpoint
|
||
*/
|
||
stepsTask.prototype.removingStepTask = function (step, response) {
|
||
var stepObject,
|
||
stepAvailable,
|
||
treeNodeObject,
|
||
stepAvailables,
|
||
i,
|
||
itemsTreeNode = [],
|
||
items = [];
|
||
stepObject = this.stepsAssignAccordion.getItem("id" + step.step_uid_obj);
|
||
this.elementAccordionOpen.remove(stepObject);
|
||
this.stepsAssigned.remove(stepObject);
|
||
this.stepsAssignAccordion.removeItem(stepObject);
|
||
if (stepObject) {
|
||
stepAvailable = this.getStepAvailables();
|
||
stepAvailables = this.getAvailablesStepsByCriteria(step.step_type_obj, stepAvailable);
|
||
for (i = 0; i < stepAvailables.length; i += 1) {
|
||
items.push({
|
||
obj_title: stepAvailables[i]['obj_title'],
|
||
obj_type: stepAvailables[i]['obj_type'],
|
||
obj_uid: stepAvailables[i]['obj_uid']
|
||
});
|
||
}
|
||
treeNodeObject = this.stepsAssignTree.getItem(step.step_type_obj);
|
||
itemsTreeNode = treeNodeObject.getItems();
|
||
for (i = 0; i < itemsTreeNode.length; i += 1) {
|
||
treeNodeObject.removeItem(itemsTreeNode[i]);
|
||
}
|
||
treeNodeObject.clearItems();
|
||
treeNodeObject.setDataItems(items);
|
||
this.updateIndexPosition(treeNodeObject);
|
||
this.addEventSortableInTreePanelElements();
|
||
this.addEventSortableInAccordionElements();
|
||
}
|
||
};
|
||
/**
|
||
* get the steps is not assigned by a criterion
|
||
* @param criteria, It is the filter criteria search
|
||
* @param stepAvailable, all steps Unassigned
|
||
* @returns {Array}, filtered items
|
||
*/
|
||
stepsTask.prototype.getAvailablesStepsByCriteria = function (criteria, stepAvailable) {
|
||
var items = [],
|
||
i;
|
||
if (jQuery.isArray(stepAvailable)) {
|
||
for (i = 0; i < stepAvailable.length; i += 1) {
|
||
if (stepAvailable[i].obj_type === criteria) {
|
||
items.push(stepAvailable[i]);
|
||
}
|
||
}
|
||
}
|
||
return items;
|
||
};
|
||
/**
|
||
* This method is executed when an element stepsAssignTree, is assigned in a grid
|
||
* @param receiveData, data of the droppable item
|
||
* @param grid, the affected grid
|
||
* @param index, the index position row
|
||
* @returns {stepsTask}
|
||
*/
|
||
stepsTask.prototype.receiveTreeNodeItem = function (receiveData, grid, index) {
|
||
var restClient, that = this, message;
|
||
if (that.isTriggerAssigned(grid, receiveData.obj_uid)) {
|
||
message = new PMUI.ui.FlashMessage({
|
||
message: 'Trigger is assigned.'.translate(),
|
||
duration: 3000,
|
||
severity: 'error',
|
||
appendTo: that.mainWindow
|
||
});
|
||
message.show();
|
||
return;
|
||
}
|
||
restClient = new PMRestClient({
|
||
endpoint: grid.step_uid === undefined ?
|
||
'activity/' + PMDesigner.act_uid + '/step/trigger' :
|
||
'activity/' + PMDesigner.act_uid + '/step/' + grid.step_uid + '/trigger',
|
||
typeRequest: 'post',
|
||
data: {
|
||
tri_uid: receiveData.obj_uid,
|
||
st_type: grid.st_type,
|
||
st_condition: '',
|
||
st_position: index + 1
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
grid.addDataItem({
|
||
st_condition: '',
|
||
st_position: index + 1,
|
||
st_type: grid.st_type,
|
||
tri_description: '',
|
||
tri_title: receiveData.obj_title,
|
||
tri_uid: receiveData.obj_uid,
|
||
obj_title: receiveData.obj_title,
|
||
obj_uid: receiveData.obj_uid
|
||
}, index);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
return this;
|
||
};
|
||
/**
|
||
* This method is executed when a row is drop in another grid
|
||
* @param receiveData, data of the droppable item
|
||
* @param grid, the affected grid
|
||
* @param index, the index position row
|
||
* @param draggableItem
|
||
* @returns {*}
|
||
*/
|
||
stepsTask.prototype.receiveRowItem = function (receiveData, grid, index, draggableItem) {
|
||
var receiveParent = draggableItem.getParent(),
|
||
message,
|
||
restClient,
|
||
that = this;
|
||
if (this.isTriggerAssigned(grid, receiveData.obj_uid)) {
|
||
message = new PMUI.ui.FlashMessage({
|
||
message: 'Trigger is assigned.'.translate(),
|
||
duration: 3000,
|
||
severity: 'error',
|
||
appendTo: that.mainWindow
|
||
});
|
||
index = receiveParent.items.indexOf(draggableItem);
|
||
receiveParent.items.remove(draggableItem);
|
||
receiveParent.addItem(draggableItem, index);
|
||
message.show();
|
||
return false;
|
||
}
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: grid.step_uid === undefined ?
|
||
'activity/' + PMDesigner.act_uid + '/step/trigger' :
|
||
'activity/' + PMDesigner.act_uid + '/step/' + grid.step_uid + '/trigger',
|
||
method: 'POST',
|
||
data: {
|
||
tri_uid: receiveData.obj_uid,
|
||
st_type: grid.st_type,
|
||
st_condition: receiveData.st_condition,
|
||
st_position: index + 1
|
||
}
|
||
}, {
|
||
url: receiveParent.step_uid === undefined ?
|
||
'activity/' + PMDesigner.act_uid + '/step/trigger/' + receiveData.obj_uid + '/' + that.getStepType(receiveParent.st_type) :
|
||
'activity/' + PMDesigner.act_uid + '/step/' + receiveParent.step_uid + '/trigger/' + receiveData.obj_uid + '/' + receiveParent.st_type.toLowerCase(),
|
||
method: 'DELETE'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var data;
|
||
data = receiveData;
|
||
if (data.hasOwnProperty("st_type")) {
|
||
data.st_type = grid.st_type;
|
||
grid.addDataItem(receiveData, index);
|
||
}
|
||
receiveParent.removeItem(draggableItem);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
flashContainer: that.mainWindow,
|
||
messageError: [
|
||
'An unexpected error while assigning the trigger, please try again later.'.translate()
|
||
],
|
||
messageSuccess: [
|
||
'Trigger assigned successfully.'.translate()
|
||
]
|
||
});
|
||
restClient.executeRestClient();
|
||
return this;
|
||
};
|
||
/**
|
||
* This method is executed when a row is sorted in the grid
|
||
* @param receiveData, data of the droppable item
|
||
* @param grid, the affected grid
|
||
* @param index, the new index position row
|
||
* @returns {stepsTask}
|
||
*/
|
||
stepsTask.prototype.sortableRowHandler = function (receiveData, grid, index) {
|
||
var that = this,
|
||
restClient;
|
||
restClient = new PMRestClient({
|
||
endpoint: grid.step_uid === undefined ?
|
||
'activity/' + PMDesigner.act_uid + "/step/trigger/" + receiveData.tri_uid :
|
||
'activity/' + PMDesigner.act_uid + "/step/" + grid.step_uid + "/trigger/" + receiveData.tri_uid,
|
||
typeRequest: 'update',
|
||
data: {
|
||
st_type: receiveData.st_type,
|
||
st_condition: receiveData.st_condition,
|
||
st_position: index + 1
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
flashContainer: that.mainWindow,
|
||
messageError: 'An unexpected error while assigning the trigger, please try again later.'.translate(),
|
||
messageSuccess: 'Trigger assigned successfully.'.translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
return this;
|
||
};
|
||
/**
|
||
* This method eliminates the list of triggers trigger an assigned step
|
||
* @param row, the row affected or selected
|
||
* @param grid, It is affected or grid to remove selected row
|
||
*/
|
||
stepsTask.prototype.removeTrigger = function (row, grid) {
|
||
var message = 'Do you want to remove the trigger "',
|
||
messageData = row.getData().tri_title ? row.getData().tri_title : "",
|
||
yesButton,
|
||
noButton,
|
||
that = this,
|
||
restClient;
|
||
message = message + messageData + '"?';
|
||
this.confirmWindow.setMessage(message.translate());
|
||
yesButton = this.confirmWindow.footer.getItem("confirmWindow-footer-yes");
|
||
if (yesButton) {
|
||
yesButton.setHandler(function () {
|
||
restClient = new PMRestClient({
|
||
endpoint: grid.step_uid === undefined ?
|
||
'activity/' + PMDesigner.act_uid + '/step/trigger/' + row.getData().tri_uid + '/' + that.getStepType(row.getData().st_type) :
|
||
'activity/' + PMDesigner.act_uid + '/step/' + grid.step_uid + '/trigger/' + row.getData().tri_uid + '/' + that.getStepType(row.getData().st_type),
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
grid.removeItem(row);
|
||
that.confirmWindow.close();
|
||
that.updateIndexToGrid(grid);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
flashContainer: that.mainWindow,
|
||
messageError: 'An unexpected error while deleting the trigger, please try again later.'.translate(),
|
||
messageSuccess: 'Trigger removed successfully'.translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
});
|
||
}
|
||
noButton = this.confirmWindow.footer.getItem("confirmWindow-footer-no");
|
||
if (noButton) {
|
||
noButton.setHandler(function () {
|
||
that.confirmWindow.close();
|
||
});
|
||
}
|
||
this.confirmWindow.open();
|
||
};
|
||
/**
|
||
* updates indexes of elements selected grid
|
||
* @param grid, It is affected or grid to remove selected row
|
||
* @returns {stepsTask}
|
||
*/
|
||
stepsTask.prototype.updateIndexToGrid = function (grid) {
|
||
var cell, rows, i, row;
|
||
if (grid) {
|
||
rows = grid.getItems();
|
||
if (jQuery.isArray(rows)) {
|
||
for (i = 0; i < rows.length; i += 1) {
|
||
row = rows[i];
|
||
cell = row.cells.find("columnData");
|
||
if (cell) {
|
||
cell.setContent(i + 1);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* get the steps assigned by a search criterion
|
||
* @param criteria, search filter, after running the endpoint getAccordionData method
|
||
* @returns {Array}, response with criteria
|
||
*/
|
||
stepsTask.prototype.getStepsAssignedByCriteria = function (criteria) {
|
||
var allAssigned,
|
||
i,
|
||
elements,
|
||
j,
|
||
resp,
|
||
response = [];
|
||
allAssigned = this.getAccordionData();
|
||
if (jQuery.isArray(allAssigned)) {
|
||
for (i = 0; i < allAssigned.length; i += 1) {
|
||
resp = allAssigned[i];
|
||
if (typeof resp === "object") {
|
||
elements = resp.response ? resp.response : [];
|
||
for (j = 0; j < elements.length; j += 1) {
|
||
data = elements[j];
|
||
if (typeof data === "object") {
|
||
if (data.step_type_obj && data.step_type_obj === criteria) {
|
||
response.push(data);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return response;
|
||
};
|
||
/**
|
||
* updates indexes of elements assigned
|
||
* @returns {stepsTask}
|
||
*/
|
||
stepsTask.prototype.updateItemIndexToAccordion = function () {
|
||
var title,
|
||
i,
|
||
item,
|
||
dataItem,
|
||
items = this.stepsAssignAccordion.items,
|
||
position,
|
||
max;
|
||
max = items.getSize();
|
||
for (i = 0; i < max; i += 1) {
|
||
item = items.get(i);
|
||
position = items.indexOf(item);
|
||
dataItem = item.dataItem;
|
||
title = (position + 1) + ". " + dataItem.obj_title;
|
||
if (this.stepsType[dataItem.step_type_obj]){
|
||
title = title + ' (' + this.stepsType[dataItem.step_type_obj] + ')';
|
||
}
|
||
item.dataItem.step_position = i + 1;
|
||
item.setTitle(title);
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* add tooltip in treeNode elements
|
||
* @returns {stepsTask}
|
||
*/
|
||
stepsTask.prototype.updateIndexPosition = function (treeNode) {
|
||
var items, i, item, $item, text, data;
|
||
if (treeNode && treeNode.html) {
|
||
items = treeNode.getItems();
|
||
if (jQuery.isArray(items)) {
|
||
for (i = 0; i < items.length; i += 1) {
|
||
item = items[i];
|
||
if (item.html) {
|
||
$item = $(item.html);
|
||
data = item.getData();
|
||
text = $item.find("a").get(0);
|
||
text.title = data.obj_title;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* return the not items config.
|
||
* @returns {{obj_title: *, obj_uid: string, id: string}}
|
||
*/
|
||
stepsTask.prototype.notItemConfig = function () {
|
||
var config = {
|
||
obj_title: 'N/A'.translate(),
|
||
obj_uid: '',
|
||
id: "notItem"
|
||
};
|
||
return config;
|
||
};
|
||
(
|
||
function () {
|
||
var processPermissionsSetForm;
|
||
PMDesigner.processPermissions = function (event) {
|
||
var PROCESS_PERMISSIONS_OPTION = "",
|
||
PROCESS_PERMISSIONS_UID = "",
|
||
arrayCboGroup = [],
|
||
arrayCboUser = [],
|
||
winGrdpnlProcessPermissions,
|
||
grdpnlProcessPermissions,
|
||
frmProcessPermissions,
|
||
processPermissionsData,
|
||
btnCreate, btnSave, btnCancel,
|
||
loadDataFromServerToFields,
|
||
disableAllItems,
|
||
listProcessPermissions,
|
||
isDirty2,
|
||
isDirtyFormProcessPermission,
|
||
refreshGridPanelInMainWindow,
|
||
processPermissionsGetRestProxy,
|
||
processPermissionsPostRestProxy,
|
||
processPermissionGetRestProxy,
|
||
processPermissionsPutRestProxy,
|
||
cboTargetCboOriginTaskSetOptionsRestProxy,
|
||
cboDynaFormSetOptionsRestProxy,
|
||
cboInputDocumentSetOptionsRestProxy,
|
||
cboOutputDocumentSetOptionsRestProxy,
|
||
processPermissionsSetFormByType,
|
||
processPermissionsDeleteRestProxy,
|
||
cboStatusCase,
|
||
cboTargetTask,
|
||
cboGroupOrUser,
|
||
cboOriginTask,
|
||
optionsType,
|
||
cboType,
|
||
cboDynaForm,
|
||
cboInputDocument,
|
||
cboOutputDocument,
|
||
cboPermission,
|
||
cboParticipationRequired,
|
||
processPermissionsDataIni = {},
|
||
notification,
|
||
notificationText = "Fields marked with an asterisk (%%ASTERISK%%) are required.".translate()
|
||
.replace(/%%ASTERISK%%/g, '<span style="color: #e84c3d">*</span>');
|
||
|
||
loadDataFromServerToFields = function () {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'project/' + PMDesigner.project.id + '/',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'project/' + PMDesigner.project.id + '/dynaforms',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'project/' + PMDesigner.project.id + '/input-documents',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'project/' + PMDesigner.project.id + '/output-documents',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var i;
|
||
data = response[0].response;
|
||
cboTargetTask.clearOptions();
|
||
cboOriginTask.clearOptions();
|
||
cboTargetTask.addOption({value: '', label: 'Select an option'.translate()});
|
||
cboOriginTask.addOption({value: '', label: 'All Tasks'.translate()});
|
||
for (i = 0; i <= data.diagrams[0].activities.length - 1; i += 1) {
|
||
cboTargetTask.addOption({
|
||
value: data.diagrams[0].activities[i].act_uid,
|
||
label: data.diagrams[0].activities[i].act_name
|
||
});
|
||
cboOriginTask.addOption({
|
||
value: data.diagrams[0].activities[i].act_uid,
|
||
label: data.diagrams[0].activities[i].act_name
|
||
});
|
||
}
|
||
//project/dynaforms
|
||
data = response[1].response;
|
||
cboDynaForm.clearOptions();
|
||
cboDynaForm.addOption({value: '', label: 'All'.translate()});
|
||
for (i = 0; i <= data.length - 1; i += 1) {
|
||
cboDynaForm.addOption({value: data[i].dyn_uid, label: data[i].dyn_title});
|
||
}
|
||
//project/input-documents
|
||
data = response[2].response;
|
||
cboInputDocument.clearOptions();
|
||
cboInputDocument.addOption({value: '', label: 'All'.translate()});
|
||
for (i = 0; i <= data.length - 1; i += 1) {
|
||
cboInputDocument.addOption({value: data[i].inp_doc_uid, label: data[i].inp_doc_title});
|
||
}
|
||
//project/output-documents
|
||
data = response[3].response;
|
||
cboOutputDocument.clearOptions();
|
||
cboOutputDocument.addOption({value: '', label: 'All'.translate()});
|
||
for (i = 0; i <= data.length - 1; i += 1) {
|
||
cboOutputDocument.addOption({value: data[i].out_doc_uid, label: data[i].out_doc_title});
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.setBaseEndPoint('');
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
disableAllItems = function () {
|
||
winGrdpnlProcessPermissions.getItems()[0].setVisible(false);
|
||
winGrdpnlProcessPermissions.getItems()[1].setVisible(false);
|
||
winGrdpnlProcessPermissions.hideFooter();
|
||
};
|
||
|
||
isDirty2 = function () {
|
||
var user,
|
||
dynaForm,
|
||
inputDocument,
|
||
outputDocument,
|
||
flagInsert = (typeof(processPermissionsData.op_case_status) === "undefined") ? true : false;
|
||
|
||
if (flagInsert) {
|
||
processPermissionsData = processPermissionsDataIni;
|
||
}
|
||
|
||
if (cboStatusCase.getValue() != processPermissionsData.op_case_status) {
|
||
return true;
|
||
}
|
||
|
||
if (cboTargetTask.getValue() != processPermissionsData.tas_uid) {
|
||
return true;
|
||
}
|
||
|
||
user = (cboGroupOrUser.get("value") !== null && cboGroupOrUser.get("value")) ? cboGroupOrUser.get("value") : "";
|
||
|
||
if (user != processPermissionsData.usr_uid) {
|
||
return true;
|
||
}
|
||
|
||
if (cboOriginTask.getValue() != processPermissionsData.op_task_source) {
|
||
return true;
|
||
}
|
||
|
||
if (cboParticipationRequired.getValue() != processPermissionsData.op_participate) {
|
||
return true;
|
||
}
|
||
|
||
if (cboType.getValue() != processPermissionsData.op_obj_type) {
|
||
return true;
|
||
}
|
||
|
||
switch (cboType.getValue()) {
|
||
case "DYNAFORM":
|
||
dynaForm = (cboDynaForm.getValue() !== "") ? cboDynaForm.getValue() : "0";
|
||
|
||
if (dynaForm != processPermissionsData.op_obj_uid) {
|
||
return true;
|
||
}
|
||
|
||
if (cboPermission.getValue() != processPermissionsData.op_action) {
|
||
return true;
|
||
}
|
||
break;
|
||
case "ATTACHMENT":
|
||
if (cboPermission.getValue() !== processPermissionsData.op_action) {
|
||
return true;
|
||
}
|
||
break;
|
||
case "INPUT":
|
||
inputDocument = (cboInputDocument.getValue() !== "") ? cboInputDocument.getValue() : "0";
|
||
|
||
if (inputDocument != processPermissionsData.op_obj_uid) {
|
||
return true;
|
||
}
|
||
|
||
if (cboPermission.getValue() != processPermissionsData.op_action) {
|
||
return true;
|
||
}
|
||
|
||
break;
|
||
case "OUTPUT":
|
||
outputDocument = (cboOutputDocument.getValue() !== "") ? cboOutputDocument.getValue() : "0";
|
||
|
||
if (outputDocument != processPermissionsData.op_obj_uid) {
|
||
return true;
|
||
}
|
||
if (cboPermission.getValue() != processPermissionsData.op_action) {
|
||
return true;
|
||
}
|
||
break;
|
||
case "CASES_NOTES":
|
||
case "SUMMARY_FORM":
|
||
break;
|
||
case "ANY":
|
||
case "MSGS_HISTORY":
|
||
if (cboPermission.getValue() != processPermissionsData.op_action) {
|
||
return true;
|
||
}
|
||
break;
|
||
}
|
||
|
||
return false;
|
||
};
|
||
|
||
isDirtyFormProcessPermission = function () {
|
||
$("input,select,textarea").blur();
|
||
if (frmProcessPermissions.isVisible()) {
|
||
var result = frmProcessPermissions.isDirty(), message_window;
|
||
|
||
if (isDirty2()) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Permissions".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
PROCESS_PERMISSIONS_OPTION = "";
|
||
PROCESS_PERMISSIONS_UID = "";
|
||
cboGroupOrUser.html.find("input").val("");
|
||
cboGroupOrUser.value = "";
|
||
if (clickedClose) {
|
||
winGrdpnlProcessPermissions.close();
|
||
} else {
|
||
refreshGridPanelInMainWindow(false);
|
||
}
|
||
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
if (cboGroupOrUser.html.find("input").val()) {
|
||
cboGroupOrUser.html.find("input").val("");
|
||
}
|
||
cboGroupOrUser.containerList.hide();
|
||
PROCESS_PERMISSIONS_OPTION = "";
|
||
PROCESS_PERMISSIONS_UID = "";
|
||
refreshGridPanelInMainWindow(false);
|
||
if (clickedClose) {
|
||
winGrdpnlProcessPermissions.close();
|
||
}
|
||
}
|
||
} else {
|
||
winGrdpnlProcessPermissions.close();
|
||
}
|
||
};
|
||
refreshGridPanelInMainWindow = function (load) {
|
||
disableAllItems();
|
||
PROCESS_PERMISSIONS_OPTION = "";
|
||
PROCESS_PERMISSIONS_UID = "";
|
||
winGrdpnlProcessPermissions.getItems()[0].setVisible(true);
|
||
winGrdpnlProcessPermissions.setTitle("Permissions".translate());
|
||
load = load != null ? load : true;
|
||
if (load) {
|
||
processPermissionsGetRestProxy(grdpnlProcessPermissions);
|
||
}
|
||
};
|
||
|
||
processPermissionsGetRestProxy = function (grdpnl) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "process-permissions",
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
listProcessPermissions = response;
|
||
grdpnl.setDataItems(listProcessPermissions);
|
||
grdpnl.sort('group_user', 'asc');
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
processPermissionsPostRestProxy = function (data) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "process-permission",
|
||
typeRequest: "post",
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Permission saved successfully'.translate(),
|
||
flashContainer: grdpnlProcessPermissions
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
processPermissionGetRestProxy = function (processPermissionsUid) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "process-permission/" + processPermissionsUid,
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
var data = response;
|
||
processPermissionsSetForm("PUT", data);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
processPermissionsPutRestProxy = function (processPermissionsUid, data) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "process-permission/" + processPermissionsUid,
|
||
typeRequest: "update",
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Permission edited successfully'.translate(),
|
||
flashContainer: grdpnlProcessPermissions
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
cboTargetCboOriginTaskSetOptionsRestProxy = function (cboTargetTask, cboOriginTask) {
|
||
cboTargetTask.clearOptions();
|
||
cboOriginTask.clearOptions();
|
||
var restProxy = new PMRestClient({
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
var data = response, i;
|
||
cboTargetTask.addOption({value: "", label: "Select one option".translate()});
|
||
cboOriginTask.addOption({value: "", label: "All Tasks".translate()});
|
||
for (i = 0; i <= data.diagrams[0].activities.length - 1; i += 1) {
|
||
cboTargetTask.addOption({
|
||
value: data.diagrams[0].activities[i].act_uid,
|
||
label: data.diagrams[0].activities[i].act_name
|
||
});
|
||
cboOriginTask.addOption({
|
||
value: data.diagrams[0].activities[i].act_uid,
|
||
label: data.diagrams[0].activities[i].act_name
|
||
});
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
cboDynaFormSetOptionsRestProxy = function (cboDynaForm) {
|
||
cboDynaForm.clearOptions();
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "dynaforms",
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
var data = response, i;
|
||
cboDynaForm.addOption({value: "", label: "All".translate()});
|
||
for (i = 0; i <= data.length - 1; i += 1) {
|
||
cboDynaForm.addOption({value: data[i].dyn_uid, label: data[i].dyn_title});
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
cboInputDocumentSetOptionsRestProxy = function (cboInputDocument) {
|
||
cboInputDocument.clearOptions();
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "input-documents",
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
var data = response, i;
|
||
cboInputDocument.addOption({value: "", label: "All".translate()});
|
||
for (i = 0; i <= data.length - 1; i += 1) {
|
||
cboInputDocument.addOption({value: data[i].inp_doc_uid, label: data[i].inp_doc_title});
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
cboOutputDocumentSetOptionsRestProxy = function (cboOutputDocument) {
|
||
var restProxy;
|
||
cboOutputDocument.clearOptions();
|
||
restProxy = new PMRestClient({
|
||
endpoint: "output-documents",
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
var data = response, i;
|
||
cboOutputDocument.addOption({value: "", label: "All".translate()});
|
||
for (i = 0; i <= data.length - 1; i += 1) {
|
||
cboOutputDocument.addOption({value: data[i].out_doc_uid, label: data[i].out_doc_title});
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
processPermissionsSetFormByType = function (type) {
|
||
cboPermission.removeOption("DELETE");
|
||
cboPermission.removeOption("RESEND");
|
||
|
||
cboPermission.reset();
|
||
cboOriginTask.setVisible(true);
|
||
cboParticipationRequired.setVisible(true);
|
||
cboStatusCase.setVisible(true);
|
||
cboDynaForm.setVisible(false);
|
||
cboInputDocument.setVisible(false);
|
||
cboOutputDocument.setVisible(false);
|
||
cboPermission.setVisible(false);
|
||
|
||
switch (type) {
|
||
case "DYNAFORM":
|
||
cboDynaForm.setVisible(true);
|
||
cboPermission.setVisible(true);
|
||
break;
|
||
case "ATTACHMENT":
|
||
cboPermission.setVisible(true);
|
||
break;
|
||
case "INPUT":
|
||
cboPermission.addOption({value: "DELETE", label: "Delete".translate()});
|
||
|
||
cboInputDocument.setVisible(true);
|
||
cboPermission.setVisible(true);
|
||
break;
|
||
case "OUTPUT":
|
||
cboPermission.addOption({value: "DELETE", label: "Delete".translate()});
|
||
|
||
cboOutputDocument.setVisible(true);
|
||
cboPermission.setVisible(true);
|
||
break;
|
||
case "CASES_NOTES":
|
||
case "SUMMARY_FORM":
|
||
break;
|
||
case "MSGS_HISTORY":
|
||
cboPermission.addOption({value: "RESEND", label: "Resend".translate()});
|
||
|
||
cboPermission.setVisible(true);
|
||
break;
|
||
case "ANY":
|
||
cboPermission.setVisible(true);
|
||
break;
|
||
case "REASSIGN_MY_CASES":
|
||
cboOriginTask.setVisible(false);
|
||
cboParticipationRequired.setVisible(false);
|
||
cboStatusCase.setVisible(false);
|
||
break;
|
||
}
|
||
};
|
||
|
||
processPermissionsDeleteRestProxy = function (processPermissionsUid) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "process-permission/" + processPermissionsUid,
|
||
typeRequest: "remove",
|
||
functionSuccess: function (xhr, response) {
|
||
refreshGridPanelInMainWindow();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Permission deleted successfully'.translate(),
|
||
flashContainer: grdpnlProcessPermissions
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
processPermissionsSetForm = function (option, data) {
|
||
cboGroupOrUser.hideMessageRequired();
|
||
processPermissionsData = data;
|
||
PROCESS_PERMISSIONS_OPTION = option;
|
||
PROCESS_PERMISSIONS_UID = (typeof(processPermissionsData.op_uid) !== "undefined") ? processPermissionsData.op_uid : "";
|
||
|
||
disableAllItems();
|
||
winGrdpnlProcessPermissions.showFooter();
|
||
winGrdpnlProcessPermissions.getItems()[1].setVisible(true);
|
||
|
||
loadDataFromServerToFields();
|
||
|
||
switch (option) {
|
||
case "POST":
|
||
winGrdpnlProcessPermissions.setTitle("Create permission".translate());
|
||
frmProcessPermissions.reset();
|
||
processPermissionsSetFormByType(cboType.getValue());
|
||
|
||
break;
|
||
case "PUT":
|
||
winGrdpnlProcessPermissions.setTitle("Edit permission".translate());
|
||
cboStatusCase.setValue(processPermissionsData.op_case_status);
|
||
cboTargetTask.setValue(processPermissionsData.tas_uid);
|
||
|
||
var endpoint;
|
||
if (processPermissionsData.op_user_relation == 1) {
|
||
endpoint = "users/" + processPermissionsData.usr_uid;
|
||
}
|
||
if (processPermissionsData.op_user_relation == 2) {
|
||
endpoint = "groups/" + processPermissionsData.usr_uid;
|
||
}
|
||
|
||
if (endpoint) {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
if (response.hasOwnProperty("usr_uid")) {
|
||
cboGroupOrUser.set("value", response["usr_uid"]);
|
||
cboGroupOrUser.data = response;
|
||
cboGroupOrUser.html.find("input").val(response["usr_firstname"] + " " + response["usr_lastname"] + " " + "(" + response["usr_username"] + ")");
|
||
}
|
||
if (response.hasOwnProperty("grp_uid")) {
|
||
cboGroupOrUser.set("value", response["grp_uid"]);
|
||
cboGroupOrUser.data = response;
|
||
cboGroupOrUser.html.find("input").val(response["grp_title"]);
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.setBaseEndPoint(endpoint);
|
||
restClient.executeRestClient();
|
||
}
|
||
|
||
cboParticipationRequired.setValue(processPermissionsData.op_participate);
|
||
cboType.setValue(processPermissionsData.op_obj_type);
|
||
cboOriginTask.setValue(processPermissionsData.op_task_source);
|
||
processPermissionsSetFormByType(processPermissionsData.op_obj_type);
|
||
switch (processPermissionsData.op_obj_type) {
|
||
case "ANY":
|
||
cboPermission.setValue(processPermissionsData.op_action);
|
||
break;
|
||
case "DYNAFORM":
|
||
cboDynaForm.setValue(processPermissionsData.op_obj_uid);
|
||
cboPermission.setValue(processPermissionsData.op_action);
|
||
break;
|
||
case "ATTACHMENT":
|
||
cboPermission.setValue(processPermissionsData.op_action);
|
||
break;
|
||
case "INPUT":
|
||
cboInputDocument.setValue(processPermissionsData.op_obj_uid);
|
||
cboPermission.setValue(processPermissionsData.op_action);
|
||
break;
|
||
case "OUTPUT":
|
||
cboOutputDocument.setValue(processPermissionsData.op_obj_uid);
|
||
cboPermission.setValue(processPermissionsData.op_action);
|
||
break;
|
||
case "CASES_NOTES":
|
||
case "SUMMARY_FORM":
|
||
break;
|
||
case "MSGS_HISTORY":
|
||
cboPermission.setValue(processPermissionsData.op_action);
|
||
break;
|
||
}
|
||
break;
|
||
}
|
||
frmProcessPermissions.setFocus();
|
||
};
|
||
|
||
cboStatusCase = new PMUI.field.DropDownListField({
|
||
id: "cboStatusCase",
|
||
name: "cboStatusCase",
|
||
controlsWidth: "120px",
|
||
label: "Case Status".translate(),
|
||
value: "ALL",
|
||
options: [
|
||
{
|
||
value: "ALL",
|
||
label: "All".translate()
|
||
},
|
||
{
|
||
value: "DRAFT",
|
||
label: "DRAFT".translate()
|
||
},
|
||
{
|
||
value: "TO_DO",
|
||
label: "TO DO".translate()
|
||
},
|
||
{
|
||
value: "PAUSED",
|
||
label: "PAUSED".translate()
|
||
},
|
||
{
|
||
value: "COMPLETED",
|
||
label: "COMPLETED".translate()
|
||
}
|
||
]
|
||
});
|
||
|
||
cboTargetTask = new PMUI.field.DropDownListField({
|
||
id: "cboTargetTask",
|
||
name: "cboTargetTask",
|
||
controlsWidth: "300px",
|
||
label: "Target Task".translate(),
|
||
options: null
|
||
});
|
||
cboGroupOrUser = new SuggestField({
|
||
label: "Group or User".translate(),
|
||
id: "cboGroupOrUser",
|
||
name: "cboGroupOrUser",
|
||
placeholder: "suggest users and groups",
|
||
width: 500,
|
||
required: true,
|
||
separatingText: ["Groups", "Users"],
|
||
dynamicLoad: {
|
||
data: [
|
||
{
|
||
key: "grp_uid",
|
||
label: ["grp_title"]
|
||
},
|
||
{
|
||
key: "usr_uid",
|
||
label: ["usr_firstname", "usr_lastname", "(", "usr_username", ")"]
|
||
}
|
||
],
|
||
keys: {
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE,
|
||
accessToken: PMDesigner.project.tokens.access_token,
|
||
endpoints: [
|
||
{
|
||
method: "GET",
|
||
url: 'groups'
|
||
}, {
|
||
method: "GET",
|
||
url: 'users'
|
||
}
|
||
]
|
||
}
|
||
}
|
||
});
|
||
|
||
cboOriginTask = new PMUI.field.DropDownListField({
|
||
id: "cboOriginTask",
|
||
name: "cboOriginTask",
|
||
controlsWidth: "300px",
|
||
label: "Origin Task".translate(),
|
||
options: null
|
||
});
|
||
|
||
cboParticipationRequired = new PMUI.field.DropDownListField({
|
||
id: "cboParticipationRequired",
|
||
name: "cboParticipationRequired",
|
||
controlsWidth: "70px",
|
||
label: "Participation required?".translate(),
|
||
value: "0",
|
||
options: [
|
||
{
|
||
value: "0",
|
||
label: "No".translate()
|
||
},
|
||
{
|
||
value: "1",
|
||
label: "Yes".translate()
|
||
}
|
||
]
|
||
});
|
||
notification = new PMUI.field.TextAnnotationField({
|
||
id: "requiredMessage",
|
||
name: "Message",
|
||
textType: PMUI.field.TextAnnotationField.TEXT_TYPES.HTML,
|
||
text: notificationText,
|
||
text_Align: "center"
|
||
});
|
||
optionsType = [
|
||
{
|
||
value: "ANY",
|
||
label: "All".translate()
|
||
},
|
||
{
|
||
value: "DYNAFORM",
|
||
label: "Dynaform".translate()
|
||
},
|
||
{
|
||
value: "ATTACHMENT",
|
||
label: "Attachment".translate()
|
||
},
|
||
{
|
||
value: "INPUT",
|
||
label: "Input Document".translate()
|
||
},
|
||
{
|
||
value: "OUTPUT",
|
||
label: "Output Document".translate()
|
||
},
|
||
{
|
||
value: "CASES_NOTES",
|
||
label: "Cases Notes".translate()
|
||
},
|
||
{
|
||
value: "MSGS_HISTORY",
|
||
label: "Messages History".translate()
|
||
},
|
||
{
|
||
value: "REASSIGN_MY_CASES",
|
||
label: "Reassign my cases".translate()
|
||
}
|
||
];
|
||
|
||
if (enterprise == "1") {
|
||
optionsType.push({value: "SUMMARY_FORM", label: "Summary Form".translate()});
|
||
}
|
||
// sorting the optionsType
|
||
optionsType.sort(function(a, b) {
|
||
return (a.label > b.label) ? 1 : ((b.label > a.label) ? -1 : 0);
|
||
});
|
||
|
||
cboType = new PMUI.field.DropDownListField({
|
||
id: "cboType",
|
||
name: "cboType",
|
||
controlsWidth: "180px",
|
||
label: "Type".translate(),
|
||
value: "ANY",
|
||
options: optionsType,
|
||
onChange: function (newValue, prevValue) {
|
||
processPermissionsSetFormByType(cboType.getValue());
|
||
}
|
||
});
|
||
|
||
cboDynaForm = new PMUI.field.DropDownListField({
|
||
id: "cboDynaForm",
|
||
name: "cboDynaForm",
|
||
controlsWidth: "300px",
|
||
label: "DynaForm".translate(),
|
||
options: [],
|
||
visible: false
|
||
});
|
||
|
||
cboInputDocument = new PMUI.field.DropDownListField({
|
||
id: "cboInputDocument",
|
||
name: "cboInputDocument",
|
||
controlsWidth: "300px",
|
||
label: "Input Document".translate(),
|
||
options: [],
|
||
visible: false
|
||
});
|
||
|
||
cboOutputDocument = new PMUI.field.DropDownListField({
|
||
id: "cboOutputDocument",
|
||
name: "cboOutputDocument",
|
||
controlsWidth: "300px",
|
||
label: "Output Document".translate(),
|
||
options: [],
|
||
visible: false
|
||
});
|
||
|
||
cboPermission = new PMUI.field.DropDownListField({
|
||
id: "cboPermission",
|
||
name: "cboPermission",
|
||
controlsWidth: "100px",
|
||
label: "Permission".translate(),
|
||
value: "VIEW",
|
||
options: [
|
||
{
|
||
value: "VIEW",
|
||
label: "View".translate()
|
||
},
|
||
{
|
||
value: "BLOCK",
|
||
label: "Block".translate()
|
||
}
|
||
],
|
||
visible: true
|
||
});
|
||
|
||
frmProcessPermissions = new PMUI.form.Form({
|
||
id: "frmProcessPermissions",
|
||
|
||
title: "",
|
||
width: "890px",
|
||
items: [
|
||
cboType,
|
||
cboStatusCase,
|
||
cboTargetTask,
|
||
cboOriginTask,
|
||
cboParticipationRequired,
|
||
cboDynaForm,
|
||
cboInputDocument,
|
||
cboOutputDocument,
|
||
cboPermission
|
||
]
|
||
});
|
||
|
||
btnCreate = new PMUI.ui.Button({
|
||
id: "btnCreate",
|
||
text: "Create".translate(),
|
||
height: "36px",
|
||
width: 100,
|
||
style: {
|
||
cssClasses: [
|
||
"mafe-button-create"
|
||
]
|
||
},
|
||
|
||
handler: function () {
|
||
frmProcessPermissions.reset();
|
||
processPermissionsDataIni = {};
|
||
|
||
processPermissionsDataIni.op_case_status = "ALL";
|
||
processPermissionsDataIni.tas_uid = "";
|
||
processPermissionsDataIni.usr_uid = "";
|
||
processPermissionsDataIni.op_task_source = "";
|
||
processPermissionsDataIni.op_participate = "0";
|
||
processPermissionsDataIni.op_obj_type = "ANY";
|
||
processPermissionsDataIni.op_obj_uid = "";
|
||
processPermissionsDataIni.op_action = "VIEW";
|
||
|
||
processPermissionsSetForm("POST", {});
|
||
}
|
||
});
|
||
|
||
grdpnlProcessPermissions = new PMUI.grid.GridPanel({
|
||
id: "grdpnlProcessPermissions",
|
||
filterPlaceholder: "Search ...".translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
pageSize: 10,
|
||
width: "96%",
|
||
tableContainerHeight: 374,
|
||
//height: DEFAULT_WINDOW_HEIGHT - 60,
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
filterable: true,
|
||
columns: [
|
||
{
|
||
columnData: "group_user",
|
||
title: "Group or User".translate(),
|
||
alignmentCell: 'left',
|
||
width: "190px",
|
||
sortable: true
|
||
},
|
||
{
|
||
columnData: "op_obj_type",
|
||
title: "Type".translate(),
|
||
alignmentCell: 'left',
|
||
width: "100px",
|
||
sortable: true
|
||
},
|
||
{
|
||
columnData: "participated",
|
||
title: "Participation".translate(),
|
||
alignmentCell: 'left',
|
||
width: "115px",
|
||
sortable: true
|
||
},
|
||
{
|
||
columnData: "object",
|
||
title: "Object".translate(),
|
||
alignmentCell: 'left',
|
||
width: "158px",
|
||
sortable: true
|
||
},
|
||
{
|
||
columnData: "op_action",
|
||
title: "Permission".translate(),
|
||
alignmentCell: 'left',
|
||
width: "100px",
|
||
sortable: true
|
||
},
|
||
{
|
||
columnData: "op_case_status",
|
||
title: "Status".translate(),
|
||
alignmentCell: 'left',
|
||
width: "70px",
|
||
sortable: true
|
||
},
|
||
{
|
||
id: 'grdpnlProcessPermissionsButtonEdit',
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Edit".translate(),
|
||
width: "70px",
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
"mafe-button-edit"
|
||
]
|
||
},
|
||
|
||
onButtonClick: function (row, grid) {
|
||
var data;
|
||
frmProcessPermissions.reset();
|
||
data = row.getData();
|
||
processPermissionGetRestProxy(data.op_uid);
|
||
}
|
||
},
|
||
{
|
||
id: 'grdpnlProcessPermissionsButtonDelete',
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Delete".translate(),
|
||
width: "80px",
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
"mafe-button-delete"
|
||
]
|
||
},
|
||
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData(), msgWarning;
|
||
msgWarning = new PMUI.ui.MessageWindow({
|
||
id: "msgWarning",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Permissions".translate(),
|
||
message: "Do you want to delete this permission?".translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'msgWarningButtonNo',
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
msgWarning.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'msgWarningButtonYes',
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
processPermissionsDeleteRestProxy(data.op_uid);
|
||
msgWarning.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
msgWarning.open();
|
||
msgWarning.dom.titleContainer.style.height = '17px';
|
||
msgWarning.showFooter();
|
||
}
|
||
}
|
||
],
|
||
dataItems: null
|
||
});
|
||
|
||
winGrdpnlProcessPermissions = new PMUI.ui.Window({
|
||
id: "winGrdpnlProcessPermissions",
|
||
title: "Permissions".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
buttonPanelPosition: "bottom",
|
||
footerAlign: "right",
|
||
onBeforeClose: function () {
|
||
clickedClose = true;
|
||
isDirtyFormProcessPermission();
|
||
},
|
||
footerItems: [
|
||
{
|
||
id: "btnCancel",
|
||
text: "Cancel".translate(),
|
||
buttonType: "error",
|
||
handler: function () {
|
||
clickedClose = false;
|
||
isDirtyFormProcessPermission();
|
||
}
|
||
},
|
||
{
|
||
id: "btnSave",
|
||
text: "Save".translate(),
|
||
buttonType: "success",
|
||
handler: function () {
|
||
var cboGroupOrUserValue = "", groupOrUser, data;
|
||
|
||
if (frmProcessPermissions.isValid() && cboGroupOrUser.isValid()) {
|
||
if (cboGroupOrUser.data) {
|
||
if (cboGroupOrUser.data.hasOwnProperty("usr_uid")) {
|
||
cboGroupOrUserValue = "1|" + cboGroupOrUser.get("value");
|
||
}
|
||
if (cboGroupOrUser.data.hasOwnProperty("grp_uid")) {
|
||
cboGroupOrUserValue = "2|" + cboGroupOrUser.get("value");
|
||
}
|
||
} else {
|
||
cboGroupOrUserValue = "";
|
||
}
|
||
groupOrUser = cboGroupOrUserValue.split("|");
|
||
|
||
data = {
|
||
op_case_status: cboStatusCase.getValue(),
|
||
tas_uid: cboTargetTask.getValue() === '0' ? '' : cboTargetTask.getValue(),
|
||
op_user_relation: groupOrUser[0],
|
||
usr_uid: groupOrUser[1],
|
||
op_task_source: cboOriginTask.getValue() === '0' ? '' : cboOriginTask.getValue(),
|
||
op_participate: cboParticipationRequired.getValue()
|
||
};
|
||
|
||
switch (cboType.getValue()) {
|
||
case "DYNAFORM":
|
||
data["op_obj_type"] = cboType.getValue();
|
||
data["dynaforms"] = cboDynaForm.getValue();
|
||
data["op_action"] = cboPermission.getValue();
|
||
break;
|
||
case "INPUT":
|
||
data["op_obj_type"] = cboType.getValue();
|
||
data["inputs"] = cboInputDocument.getValue();
|
||
data["op_action"] = cboPermission.getValue();
|
||
break;
|
||
case "OUTPUT":
|
||
data["op_obj_type"] = cboType.getValue();
|
||
data["outputs"] = cboOutputDocument.getValue();
|
||
data["op_action"] = cboPermission.getValue();
|
||
break;
|
||
case "CASES_NOTES":
|
||
data["op_obj_type"] = cboType.getValue();
|
||
data["op_action"] = cboPermission.getValue();
|
||
break;
|
||
case "REASSIGN_MY_CASES":
|
||
data = {};
|
||
data["op_user_relation"] = groupOrUser[0];
|
||
data["usr_uid"] = groupOrUser[1];
|
||
data["tas_uid"] = cboTargetTask.getValue() === '0' ? '' : cboTargetTask.getValue();
|
||
data["op_obj_type"] = cboType.getValue();
|
||
break;
|
||
default:
|
||
data["op_obj_type"] = cboType.getValue();
|
||
data["op_action"] = cboPermission.getValue();
|
||
break;
|
||
}
|
||
switch (PROCESS_PERMISSIONS_OPTION) {
|
||
case "POST":
|
||
processPermissionsPostRestProxy(data);
|
||
break;
|
||
case "PUT":
|
||
processPermissionsPutRestProxy(PROCESS_PERMISSIONS_UID, data);
|
||
break;
|
||
}
|
||
} else {
|
||
cboGroupOrUser.showMessageRequired();
|
||
frmProcessPermissions.addItem(notification)
|
||
}
|
||
|
||
cboGroupOrUser.html.find("input").val("");
|
||
cboGroupOrUser.value = "";
|
||
}
|
||
}
|
||
]
|
||
});
|
||
|
||
winGrdpnlProcessPermissions.addItem(grdpnlProcessPermissions);
|
||
winGrdpnlProcessPermissions.addItem(frmProcessPermissions);
|
||
|
||
refreshGridPanelInMainWindow();
|
||
if (typeof listProcessPermissions !== "undefined") {
|
||
winGrdpnlProcessPermissions.open();
|
||
$(cboGroupOrUser.createHTML()).insertBefore(cboType.html);
|
||
|
||
|
||
cboGroupOrUser.html.find("input").val("");
|
||
jQuery(grdpnlProcessPermissions.html).css({
|
||
margin: "2px"
|
||
});
|
||
winGrdpnlProcessPermissions.body.style.height = "auto";
|
||
$('#grdpnlProcessPermissions .pmui-textcontrol').css({'margin-top': '5px', width: '250px'});
|
||
winGrdpnlProcessPermissions.defineEvents();
|
||
applyStyleWindowForm(winGrdpnlProcessPermissions);
|
||
|
||
grdpnlProcessPermissions.dom.toolbar.appendChild(btnCreate.getHTML());
|
||
btnCreate.defineEvents();
|
||
disableAllItems();
|
||
refreshGridPanelInMainWindow();
|
||
}
|
||
};
|
||
|
||
PMDesigner.processPermissions.create = function () {
|
||
PMDesigner.processPermissions();
|
||
|
||
frmProcessPermissions.reset();
|
||
processPermissionsDataIni = {};
|
||
|
||
processPermissionsDataIni.op_case_status = "ALL";
|
||
processPermissionsDataIni.tas_uid = "";
|
||
processPermissionsDataIni.usr_uid = "";
|
||
processPermissionsDataIni.op_task_source = "";
|
||
processPermissionsDataIni.op_participate = "0";
|
||
processPermissionsDataIni.op_obj_type = "ANY";
|
||
processPermissionsDataIni.op_obj_uid = "";
|
||
processPermissionsDataIni.op_action = "VIEW";
|
||
|
||
processPermissionsSetForm("POST", {});
|
||
};
|
||
}()
|
||
);
|
||
|
||
(function () {
|
||
var winHtmlShow, loadValuesStartMessage;
|
||
|
||
PMDesigner.startMessage = function (element) {
|
||
var winGrdpnlStartMessage,
|
||
btnNew,
|
||
cboUser,
|
||
cboDynaForm,
|
||
btnGenerateStartMessagePage,
|
||
frmDataStartMessage,
|
||
frmHtml,
|
||
winFrmDataStartMessage,
|
||
restProxy,
|
||
disableAllItems,
|
||
winFrmStartMessageShow,
|
||
updateStartMessage,
|
||
loadDataDynaform,
|
||
loadDataUsers,
|
||
loadDataForm,
|
||
listUsers = [],
|
||
cboMethod,
|
||
listDynaforms = [],
|
||
dataForm = [],
|
||
enableGenerateWebEntry,
|
||
btnSaveStartMessagePage,
|
||
btnStartMessageCancel,
|
||
btnClose,
|
||
startMessage = element;
|
||
|
||
disableAllItems = function () {
|
||
winGrdpnlStartMessage.getItems()[0].setVisible(false);
|
||
winGrdpnlStartMessage.getItems()[1].setVisible(false);
|
||
btnGenerateStartMessagePage.setVisible(false);
|
||
btnStartMessageCancel.setVisible(false);
|
||
btnClose.setVisible(false);
|
||
winGrdpnlStartMessage.hideFooter();
|
||
};
|
||
|
||
winFrmStartMessageShow = function () {
|
||
disableAllItems();
|
||
frmDataStartMessage.reset();
|
||
winGrdpnlStartMessage.showFooter();
|
||
winGrdpnlStartMessage.getItems()[0].setVisible(true);
|
||
btnGenerateStartMessagePage.setVisible(true);
|
||
btnStartMessageCancel.setVisible(true);
|
||
loadDataUsers();
|
||
loadDataDynaform();
|
||
loadDataForm();
|
||
frmDataStartMessage.setFocus();
|
||
};
|
||
|
||
winHtmlShow = function (msgHtml) {
|
||
if (typeof msgHtml == 'undefined') {
|
||
msgHtml = dataForm.we_data;
|
||
if (dataForm.we_method == "WS") {
|
||
window.open(msgHtml);
|
||
winGrdpnlStartMessage.close();
|
||
return false;
|
||
}
|
||
}
|
||
disableAllItems();
|
||
winGrdpnlStartMessage.showFooter();
|
||
winGrdpnlStartMessage.footer.getItems()[1].setVisible(false);
|
||
btnClose.setVisible(true);
|
||
winGrdpnlStartMessage.getItems()[1].setVisible(true);
|
||
winGrdpnlStartMessage.getItems()[1].setWidth(925);
|
||
winGrdpnlStartMessage.getItems()[1].setHeight(440);
|
||
winGrdpnlStartMessage.getItems()[1].hideHeader();
|
||
frmHtml.getFields()[0].setHeight(396);
|
||
frmHtml.getItems()[0].setValue(msgHtml);
|
||
frmHtml.panel.style.addProperties({'box-sizing': 'initial'});
|
||
frmHtml.style.addProperties({marginLeft: '16px'});
|
||
frmHtml.setFocus();
|
||
return true;
|
||
};
|
||
|
||
loadValuesStartMessage = function (flag) {
|
||
var viewFlagForm,
|
||
restClient,
|
||
response;
|
||
listUsers = [];
|
||
listDynaforms = [];
|
||
dataForm = [];
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'activity/' + startMessage.ports.get(0).connection.flo_element_dest + '/assignee/all',
|
||
method: 'GET'
|
||
},
|
||
{
|
||
url: "activity/" + startMessage.ports.get(0).connection.flo_element_dest + "/steps",
|
||
method: 'GET'
|
||
}, {
|
||
url: 'web-entry/' + startMessage.evn_uid,
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
listUsers = response[0].response;
|
||
listDynaforms = response[1].response;
|
||
dataForm = response[2].response;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
if (flag) {
|
||
viewFlagForm = false;
|
||
if (typeof dataForm == 'object' && dataForm.we_data != null) {
|
||
viewFlagForm = true;
|
||
}
|
||
response = [listUsers.length, listDynaforms.length, viewFlagForm];
|
||
return response;
|
||
}
|
||
return true;
|
||
};
|
||
|
||
updateStartMessage = function (data) {
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: "web-entry/" + startMessage.evn_uid,
|
||
method: 'PUT',
|
||
data: data
|
||
},
|
||
{
|
||
url: 'web-entry/' + startMessage.evn_uid,
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
dataForm = response[1].response;
|
||
if (data.we_method == "HTML") {
|
||
winHtmlShow(response.we_data);
|
||
}
|
||
btnGenerateStartMessagePage.setVisible(false);
|
||
btnStartMessageCancel.setVisible(false);
|
||
btnClose.setVisible(true);
|
||
winGrdpnlStartMessage.footer.getItems()[1].setVisible(false);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: ["There are problems updating the Web Entry, please try again.".translate()],
|
||
messageSuccess: ['Web Entry updated successfully'.translate()],
|
||
flashContainer: frmDataStartMessage
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
loadDataDynaform = function () {
|
||
var i;
|
||
cboDynaForm.clearOptions();
|
||
for (i = 0; i <= listDynaforms.length - 1; i++) {
|
||
if (listDynaforms[i].step_type_obj == "DYNAFORM") {
|
||
cboDynaForm.addOption({
|
||
value: listDynaforms[i].step_uid_obj,
|
||
label: listDynaforms[i].obj_title
|
||
});
|
||
}
|
||
}
|
||
};
|
||
|
||
loadDataUsers = function () {
|
||
var i;
|
||
cboUser.clearOptions();
|
||
for (i = 0; i <= listUsers.length - 1; i++) {
|
||
cboUser.addOption({
|
||
value: listUsers[i].aas_uid,
|
||
label: listUsers[i].aas_name + ' ' + listUsers[i].aas_lastname
|
||
});
|
||
}
|
||
};
|
||
|
||
loadDataForm = function () {
|
||
cboUser.setValue(dataForm.usr_uid);
|
||
cboDynaForm.setValue(dataForm.dyn_uid);
|
||
cboMethod.setValue(dataForm.we_method);
|
||
};
|
||
|
||
enableGenerateWebEntry = function () {
|
||
btnGenerateStartMessagePage.setVisible(true);
|
||
btnStartMessageCancel.setVisible(true);
|
||
btnClose.setVisible(false);
|
||
winGrdpnlStartMessage.footer.getItems()[1].setVisible(true);
|
||
};
|
||
cboUser = new PMUI.field.DropDownListField({
|
||
id: "cboUser",
|
||
name: "cboUser",
|
||
label: "User".translate(),
|
||
required: true,
|
||
options: null,
|
||
onChange: function (newVal, oldVal) {
|
||
enableGenerateWebEntry();
|
||
},
|
||
controlsWidth: 350
|
||
});
|
||
|
||
cboDynaForm = new PMUI.field.DropDownListField({
|
||
id: "cboDynaForm",
|
||
name: "cboDynaForm",
|
||
label: "Initial Dynaform".translate(),
|
||
options: null,
|
||
required: true,
|
||
onChange: function (newVal, oldVal) {
|
||
enableGenerateWebEntry();
|
||
},
|
||
controlsWidth: 350
|
||
});
|
||
|
||
cboMethod = new PMUI.field.DropDownListField({
|
||
id: "cboMethod",
|
||
name: "cboMethod",
|
||
label: "Method".translate(),
|
||
value: "WS",
|
||
options: [
|
||
{
|
||
value: "WS",
|
||
label: "PHP pages with Web Services".translate()
|
||
},
|
||
{
|
||
value: "HTML",
|
||
label: "Single HTML".translate()
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
enableGenerateWebEntry();
|
||
},
|
||
controlsWidth: 350
|
||
});
|
||
|
||
btnGenerateStartMessagePage = new PMUI.ui.Button({
|
||
id: "btnGenerateStartMessagePage",
|
||
text: "Generate Web Entry Page".translate(),
|
||
handler: function () {
|
||
var flagGenerateStartMessage = 0, data;
|
||
data = {
|
||
tas_uid: startMessage.ports.get(0).connection.flo_element_dest,
|
||
dyn_uid: cboDynaForm.getValue(),
|
||
usr_uid: cboUser.getValue(),
|
||
we_title: startMessage.evn_name,
|
||
we_description: '',
|
||
we_method: cboMethod.getValue(),
|
||
we_input_document_access: 1
|
||
};
|
||
|
||
if (frmDataStartMessage.isValid()) {
|
||
updateStartMessage(data);
|
||
}
|
||
},
|
||
buttonType: 'success',
|
||
height: 31,
|
||
visible: true
|
||
});
|
||
btnSaveStartMessagePage = new PMUI.ui.Button({
|
||
id: "btnGenerateStartMessagePage",
|
||
text: "Save".translate(),
|
||
handler: function () {
|
||
var flagGenerateStartMessage = 0, data;
|
||
data = {
|
||
tas_uid: startMessage.ports.get(0).connection.flo_element_dest,
|
||
dyn_uid: cboDynaForm.getValue(),
|
||
usr_uid: cboUser.getValue(),
|
||
we_title: startMessage.evn_name,
|
||
we_description: '',
|
||
we_method: cboMethod.getValue(),
|
||
we_input_document_access: 1
|
||
};
|
||
|
||
if (frmDataStartMessage.isValid()) {
|
||
updateStartMessage(data);
|
||
}
|
||
},
|
||
buttonType: 'success',
|
||
height: 31,
|
||
visible: true
|
||
});
|
||
|
||
frmDataStartMessage = new PMUI.form.Form({
|
||
id: "frmDataStartMessage",
|
||
title: "",
|
||
width: DEFAULT_WINDOW_WIDTH - 70,
|
||
items: [
|
||
cboUser,
|
||
cboDynaForm,
|
||
cboMethod
|
||
],
|
||
visibleHeader: false
|
||
});
|
||
|
||
btnClose = new PMUI.ui.Button({
|
||
id: "btnClose",
|
||
text: "Close".translate(),
|
||
handler: function () {
|
||
winGrdpnlStartMessage.close();
|
||
},
|
||
buttonType: 'success',
|
||
height: 31
|
||
});
|
||
|
||
btnStartMessageCancel = new PMUI.ui.Button({
|
||
id: "btnStartMessageCancel",
|
||
text: "Cancel".translate(),
|
||
handler: function () {
|
||
var message_window;
|
||
if (frmDataStartMessage.isDirty()) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
windowMessageType: 'warning',
|
||
id: "cancelMessageStartTimer",
|
||
title: "Start Message Event".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
bodyHeight: 'auto',
|
||
width: 490,
|
||
footerItems: [
|
||
{
|
||
text: 'No'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: 'Yes'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
winGrdpnlStartMessage.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
frmDataStartMessage.reset();
|
||
winGrdpnlStartMessage.close();
|
||
}
|
||
}
|
||
});
|
||
|
||
frmHtml = new PMUI.form.Form({
|
||
id: "frmHtml",
|
||
title: "",
|
||
width: DEFAULT_WINDOW_WIDTH - 43,
|
||
items: [
|
||
{
|
||
id: "txtHtml",
|
||
name: "txtHtml",
|
||
pmType: "textarea",
|
||
valueType: "string",
|
||
rows: 400,
|
||
value: '',
|
||
controlsWidth: DEFAULT_WINDOW_WIDTH - 50,
|
||
labelVisible: false,
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
}
|
||
]
|
||
});
|
||
|
||
winGrdpnlStartMessage = new PMUI.ui.Window({
|
||
id: "winGrdpnlStartMessage",
|
||
title: "Start Message Event".translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
buttonPanelPosition: "top",
|
||
buttons: [btnSaveStartMessagePage, {pmType: 'label', text: 'or'}, btnStartMessageCancel, btnClose]
|
||
});
|
||
|
||
winGrdpnlStartMessage.addItem(frmDataStartMessage);
|
||
|
||
openForm = function () {
|
||
winGrdpnlStartMessage.open();
|
||
winGrdpnlStartMessage.defineEvents();
|
||
applyStyleWindowForm(winGrdpnlStartMessage);
|
||
winGrdpnlStartMessage.footer.html.style.textAlign = 'right';
|
||
winFrmStartMessageShow();
|
||
}
|
||
};
|
||
|
||
PMDesigner.startMessage.openForm = function (element) {
|
||
openForm();
|
||
};
|
||
|
||
PMDesigner.startMessage.viewForm = function (element) {
|
||
openForm();
|
||
};
|
||
|
||
PMDesigner.startMessage.validate = function (starMessageEvent) {
|
||
if (starMessageEvent.ports.isEmpty()) {
|
||
PMDesigner.msgFlash('Must connect to a Task'.translate(), document.body, 'error', 4000, 5);
|
||
return [false, false];
|
||
}
|
||
PMDesigner.startMessage(starMessageEvent);
|
||
response = loadValuesStartMessage(true);
|
||
if (response[0] == 0) {
|
||
PMDesigner.msgFlash('The task doesn\'t have assigned users'.translate(), document.body, 'info', 4000);
|
||
return [false, false];
|
||
}
|
||
if (response[1] == 0) {
|
||
PMDesigner.msgFlash('The task doesn\'t have assigned Dynaforms'.translate(), document.body, 'info', 4000);
|
||
return [false, false];
|
||
}
|
||
return [true, response[2]];
|
||
}
|
||
}());
|
||
|
||
(function () {
|
||
var windowPropSub;
|
||
|
||
PMDesigner.propertiesSubProcess = function (activity) {
|
||
var typeVariables = ['@@', '@#', '@=', '@&'],
|
||
restClient,
|
||
isDirtyFormSubProcess,
|
||
getSubProcess,
|
||
formVarTexOriginOut,
|
||
updateSubProcess,
|
||
formVarTexOriginIn,
|
||
loadDropProcess,
|
||
formVarTexTargetOut,
|
||
formVarTexTargetIn,
|
||
windowPropertiesSub,
|
||
formProperties,
|
||
sepInputs,
|
||
gridVariablesOut,
|
||
gridVariablesIn,
|
||
formVariablesPanelOut,
|
||
formVariablesPanelIn,
|
||
validateVariable,
|
||
formVarButtonAddOut,
|
||
formVarButtonAddIn,
|
||
labelVariablesOut,
|
||
labelVariablesIn,
|
||
loadDataServer,
|
||
loadActivity,
|
||
isDirty = false;
|
||
|
||
restClient = new PMRestClient({
|
||
endpoint: 'projects',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
for (var i = 0; i < response.length; i += 1) {
|
||
if (response[i].prj_uid != PMDesigner.project.projectId) {
|
||
formProperties.getField('out_doc_process').addOption({
|
||
label: response[i].prj_name,
|
||
value: response[i].prj_uid
|
||
});
|
||
}
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the output documents, please try again.".translate()
|
||
});
|
||
isDirtyFormSubProcess = function () {
|
||
var message_window;
|
||
if (formProperties.isDirty() || isDirty) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
id: "cancelSaveSubprocPropertiesWin",
|
||
title: "Sub-process Properties".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
formProperties.reset();
|
||
gridVariablesOut.setDataItems("");
|
||
gridVariablesIn.setDataItems("");
|
||
formProperties.setDirty(false);
|
||
windowPropertiesSub.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
windowPropertiesSub.close();
|
||
}
|
||
};
|
||
getSubProcess = function () {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "subprocess/" + activity.act_uid,
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
var yout,
|
||
oout,
|
||
jout,
|
||
itemsOut,
|
||
i,
|
||
xin,
|
||
yin,
|
||
oin,
|
||
jin,
|
||
dout,
|
||
din,
|
||
itemsIn,
|
||
xout;
|
||
formProperties.getField('out_doc_title').setValue(response.spr_name);
|
||
formProperties.getField('out_doc_process').setValue(response.spr_pro);
|
||
formProperties.getField('out_doc_type').setValue(response.spr_synchronous);
|
||
|
||
if (response.spr_variables_out != false) {
|
||
xout = JSON.stringify(response.spr_variables_out);
|
||
yout = xout.substring(1, xout.length - 1);
|
||
oout = yout.replace(/"/g, '');
|
||
jout = oout.split(',');
|
||
|
||
itemsOut = [];
|
||
for (i = 0; i < jout.length; i += 1) {
|
||
dout = jout[i].split(':');
|
||
itemsOut.push({
|
||
origin: dout[0],
|
||
target: dout[1]
|
||
});
|
||
}
|
||
gridVariablesOut.setDataItems(itemsOut);
|
||
|
||
gridVariablesIn.setVisible(false);
|
||
formVariablesPanelIn.setVisible(false);
|
||
}
|
||
|
||
if (response.spr_variables_in != false && response.spr_variables_in != undefined) {
|
||
xin = JSON.stringify(response.spr_variables_in);
|
||
yin = xin.substring(1, xin.length - 1);
|
||
oin = yin.replace(/"/g, '');
|
||
jin = oin.split(',');
|
||
|
||
itemsIn = [];
|
||
for (i = 0; i < jin.length; i += 1) {
|
||
din = jin[i].split(':');
|
||
itemsIn.push({
|
||
origin: din[0],
|
||
target: din[1]
|
||
});
|
||
}
|
||
gridVariablesIn.setDataItems(itemsIn);
|
||
}
|
||
|
||
if (response.spr_synchronous == "1") {
|
||
gridVariablesIn.setVisible(true);
|
||
formVariablesPanelIn.setVisible(true);
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
updateSubProcess = function (data) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "subprocess/" + activity.act_uid,
|
||
typeRequest: "update",
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
var name = formProperties.getData().out_doc_title;
|
||
activity.setName(name);
|
||
activity.setActName(name);
|
||
PMDesigner.project.dirty = true;
|
||
|
||
formProperties.reset();
|
||
gridVariablesOut.setDataItems("");
|
||
gridVariablesIn.setDataItems("");
|
||
formProperties.setDirty(false);
|
||
windowPropertiesSub.close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
formVarTexOriginOut = new CriteriaField({
|
||
id: 'idformVarTexOriginOut',
|
||
pmType: "text",
|
||
name: 'nmformVarTexOriginOut',
|
||
placeholder: 'Origin'.translate(),
|
||
labelVisible: false,
|
||
controlsWidth: 150
|
||
});
|
||
|
||
formVarTexOriginIn = new CriteriaField({
|
||
id: 'idformVarTexOriginIn',
|
||
pmType: "text",
|
||
name: 'nmformVarTexOriginIn',
|
||
placeholder: 'Select Origin Process'.translate(),
|
||
labelVisible: false,
|
||
controlsWidth: 150
|
||
});
|
||
|
||
formVarTexTargetOut = new CriteriaField({
|
||
id: 'idformVarTexTargetOut',
|
||
pmType: "text",
|
||
name: 'nmformVarTexTargetOut',
|
||
placeholder: 'Select Target Process'.translate(),
|
||
labelVisible: false,
|
||
controlsWidth: 150,
|
||
required: true
|
||
});
|
||
|
||
formVarTexTargetIn = new CriteriaField({
|
||
id: 'idformVarTexTargetIn',
|
||
pmType: "text",
|
||
name: 'nmformVarTexTargetIn',
|
||
placeholder: 'Target'.translate(),
|
||
labelVisible: false,
|
||
controlsWidth: 150
|
||
});
|
||
|
||
windowPropertiesSub = new PMUI.ui.Window({
|
||
id: 'propSubWindow',
|
||
title: "Sub-process Properties".translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
bodyHeight: '465px',
|
||
bodyWidth: '900px',
|
||
onBeforeClose: function () {
|
||
isDirtyFormSubProcess();
|
||
},
|
||
buttons: [
|
||
{
|
||
id: 'propSubButtonClose',
|
||
text: "Close".translate(),
|
||
buttonType: 'error',
|
||
handler: function () {
|
||
isDirtyFormSubProcess();
|
||
}
|
||
},
|
||
{
|
||
id: 'propSubButtonSave',
|
||
text: "Save".translate(),
|
||
buttonType: 'success',
|
||
handler: function () {
|
||
if (!formProperties.isValid()) {
|
||
return;
|
||
}
|
||
var propertiesData = formProperties.getData();
|
||
var variablesOutData = gridVariablesOut.getData();
|
||
var variablesOut = {};
|
||
if (variablesOutData.length > "0") {
|
||
for (i = 0; i < variablesOutData.length; i += 1) {
|
||
variablesOut[variablesOutData[i].origin] = variablesOutData[i].target;
|
||
}
|
||
}
|
||
var variablesIn = {};
|
||
if (propertiesData.out_doc_type == "1") {
|
||
var variablesInData = gridVariablesIn.getData();
|
||
if (variablesInData.length > "0") {
|
||
for (j = 0; j < variablesInData.length; j += 1) {
|
||
variablesIn[variablesInData[j].origin] = variablesInData[j].target;
|
||
}
|
||
}
|
||
}
|
||
|
||
var dataToSend = {
|
||
spr_pro: propertiesData.out_doc_process,
|
||
spr_tas: propertiesData.spr_tas,
|
||
spr_name: propertiesData.out_doc_title,
|
||
spr_synchronous: propertiesData.out_doc_type,
|
||
spr_variables_out: variablesOut,
|
||
spr_variables_in: variablesIn
|
||
};
|
||
|
||
updateSubProcess(dataToSend);
|
||
}
|
||
}
|
||
],
|
||
buttonPanelPosition: 'bottom',
|
||
buttonsPosition: 'right'
|
||
});
|
||
|
||
formProperties = new PMUI.form.Form({
|
||
id: 'propSubForm',
|
||
title: "",
|
||
fieldset: true,
|
||
visibleHeader: false,
|
||
width: 926,
|
||
height: 'auto',
|
||
items: [
|
||
{
|
||
id: 'propSubFormTitle',
|
||
pmType: "text",
|
||
name: 'out_doc_title',
|
||
label: "Sub-Process name".translate(),
|
||
required: true,
|
||
controlsWidth: 300
|
||
},
|
||
{
|
||
id: 'propSubFormProcess',
|
||
pmType: "dropdown",
|
||
name: 'out_doc_process',
|
||
label: "Process".translate(),
|
||
controlsWidth: 300,
|
||
required: true,
|
||
options: [
|
||
{
|
||
label: "- Select a process -".translate(),
|
||
value: "",
|
||
disabled: true,
|
||
selected: true
|
||
}
|
||
],
|
||
value: "",
|
||
onChange: function (a, b) {
|
||
if (a.trim().length !== 0) {
|
||
formVarTexTargetOut.buttonHTML.enable();
|
||
formVarTexOriginIn.buttonHTML.enable();
|
||
formVarTexTargetOut.controls[0].setPlaceholder("Target");
|
||
formVarTexOriginIn.controls[0].setPlaceholder("Origin");
|
||
} else {
|
||
formVarTexTargetOut.buttonHTML.disable();
|
||
formVarTexOriginIn.buttonHTML.disable();
|
||
}
|
||
formVarTexTargetOut.setProcess(a);
|
||
formVarTexOriginIn.setProcess(a);
|
||
loadActivity(a);
|
||
}
|
||
},
|
||
{
|
||
id: 'propSubFormActivity',
|
||
pmType: "dropdown",
|
||
name: 'spr_tas',
|
||
label: "Starting activity".translate(),
|
||
controlsWidth: 300,
|
||
required: true,
|
||
options: [
|
||
{
|
||
label: "- Select starting activity -".translate(),
|
||
value: "",
|
||
disabled: true,
|
||
selected: true
|
||
}
|
||
],
|
||
value: "",
|
||
onChange: function (a, b) {
|
||
}
|
||
},
|
||
{
|
||
id: 'propSubFormType',
|
||
pmType: "dropdown",
|
||
name: 'out_doc_type',
|
||
label: "Type".translate(),
|
||
controlsWidth: 150,
|
||
required: true,
|
||
options: [
|
||
{
|
||
label: "Asynchronous".translate(),
|
||
value: "0"
|
||
},
|
||
{
|
||
label: "Synchronous".translate(),
|
||
value: "1"
|
||
}
|
||
],
|
||
value: "0",
|
||
onChange: function (a, b) {
|
||
isDirty = true;
|
||
}
|
||
}
|
||
],
|
||
onChange: function (newValue, prevValue) {
|
||
switch (newValue.value) {
|
||
case "1" :
|
||
gridVariablesIn.setVisible(true);
|
||
gridVariablesIn.style.addProperties({marginLeft: '45px'});
|
||
formVariablesPanelIn.setVisible(true);
|
||
formVariablesPanelIn.getItems()[2].setWidth(80);
|
||
$(formVariablesPanelIn.html).css({width: '850px', marginLeft: '45px'});
|
||
windowPropertiesSub.getItems()[4].setVisible(true);
|
||
break;
|
||
case "0":
|
||
gridVariablesIn.setVisible(false);
|
||
formVariablesPanelIn.setVisible(false);
|
||
windowPropertiesSub.getItems()[4].setVisible(false);
|
||
break;
|
||
default :
|
||
break;
|
||
}
|
||
}
|
||
});
|
||
|
||
sepInputs = new PMSeparatorLineField({
|
||
controlHeight: '1px',
|
||
controlColor: "#CDCDCD",
|
||
controlsWidth: "890px",
|
||
marginLeft: '0%'
|
||
});
|
||
|
||
formProperties.addItem(sepInputs);
|
||
|
||
gridVariablesOut = new PMUI.grid.GridPanel({
|
||
id: 'propSubGridVariablesOut',
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
pageSize: 10,
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
columns: [
|
||
{
|
||
title: 'Origin'.translate(),
|
||
dataType: 'string',
|
||
width: '40%',
|
||
alignmentCell: 'left',
|
||
columnData: "origin"
|
||
},
|
||
{
|
||
title: 'Target'.translate(),
|
||
dataType: 'string',
|
||
width: '40%',
|
||
alignmentCell: 'left',
|
||
columnData: "target"
|
||
},
|
||
{
|
||
id: 'propSubGridVariablesOutButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: '20%',
|
||
buttonLabel: 'Delete'.translate(),
|
||
onButtonClick: function (row, grid) {
|
||
grid.removeItem(row);
|
||
isDirty = true;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
}
|
||
|
||
}
|
||
]
|
||
});
|
||
|
||
gridVariablesIn = new PMUI.grid.GridPanel({
|
||
id: 'propSubGridVariablesIn',
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
pageSize: 10,
|
||
columns: [
|
||
{
|
||
title: 'Origin'.translate(),
|
||
dataType: 'string',
|
||
width: '40%',
|
||
alignmentCell: 'left',
|
||
columnData: "origin"
|
||
},
|
||
{
|
||
title: 'Target'.translate(),
|
||
dataType: 'string',
|
||
width: '40%',
|
||
alignmentCell: 'left',
|
||
columnData: "target"
|
||
},
|
||
{
|
||
id: 'propSubGridVariablesInButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: '20%',
|
||
buttonLabel: 'Delete'.translate(),
|
||
onButtonClick: function (row, grid) {
|
||
grid.removeItem(row);
|
||
isDirty = true;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
}
|
||
}
|
||
]
|
||
});
|
||
|
||
formVariablesPanelOut = new PMUI.core.Panel({
|
||
id: "formVariablesPanelOut",
|
||
layout: "hbox",
|
||
fieldset: true,
|
||
width: DEFAULT_WINDOW_WIDTH - 70
|
||
});
|
||
|
||
formVariablesPanelIn = new PMUI.core.Panel({
|
||
id: "formVariablesPanelIn",
|
||
layout: "hbox",
|
||
fieldset: true,
|
||
legend: "Variables In".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH - 70
|
||
});
|
||
|
||
validateVariable = function (field) {
|
||
var value;
|
||
field.controls[0].style.removeClasses(['error'])
|
||
value = field.getValue();
|
||
if (value == '') {
|
||
PMDesigner.msgWinWarning('Please insert variable before adding to the list.'.translate());
|
||
field.controls[0].style.addClasses(['error'])
|
||
return false;
|
||
}
|
||
if (typeVariables.indexOf(String(value.substring(0, 2))) != -1) {
|
||
return true;
|
||
}
|
||
PMDesigner.msgWinWarning("The value introduced doesn\'t have the correct format with a vallid prefix (@@, @#, @=, @&)".translate());
|
||
field.controls[0].style.addClasses(['error'])
|
||
return false;
|
||
};
|
||
|
||
formVarButtonAddOut = new PMUI.ui.Button({
|
||
id: 'formVarButtonAddOut',
|
||
text: 'Add'.translate(),
|
||
width: 60,
|
||
visible: false,
|
||
buttonType: "success",
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-properties'
|
||
]
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
padding: "5px"
|
||
}
|
||
},
|
||
handler: function () {
|
||
var gridOut, i;
|
||
if (validateVariable(formVarTexOriginOut) && validateVariable(formVarTexTargetOut)) {
|
||
a = formVarTexOriginOut.getValue();
|
||
b = formVarTexTargetOut.getValue();
|
||
gridVariablesOut.addDataItem({origin: a, target: b});
|
||
formVarTexOriginOut.setValue("");
|
||
formVarTexTargetOut.setValue("");
|
||
isDirty = true;
|
||
|
||
gridOut = document.getElementById("propSubGridVariablesOut").getElementsByTagName("table")[0];
|
||
i = gridOut.rows.length - 1;
|
||
gridOut.getElementsByClassName("pmui pmui-button")[i].style.marginTop = "2px";
|
||
}
|
||
}
|
||
});
|
||
|
||
formVarButtonAddIn = new PMUI.ui.Button({
|
||
id: 'formVarButtonAddIn',
|
||
text: 'Add'.translate(),
|
||
width: 60,
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-properties'
|
||
]
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
padding: "5px",
|
||
}
|
||
},
|
||
buttonType: 'success',
|
||
handler: function () {
|
||
var gridOut, i;
|
||
if (validateVariable(formVarTexOriginIn) && validateVariable(formVarTexTargetIn)) {
|
||
a = formVarTexOriginIn.getValue();
|
||
b = formVarTexTargetIn.getValue();
|
||
gridVariablesIn.addDataItem({origin: a, target: b});
|
||
formVarTexOriginIn.setValue("");
|
||
formVarTexTargetIn.setValue("");
|
||
isDirty = true;
|
||
|
||
gridOut = document.getElementById("propSubGridVariablesIn").getElementsByTagName("table")[0];
|
||
i = gridOut.rows.length - 1;
|
||
gridOut.getElementsByClassName("pmui pmui-button")[i].style.marginTop = "2px";
|
||
}
|
||
}
|
||
});
|
||
|
||
labelVariablesOut = new PMUI.ui.TextLabel({
|
||
textMode: 'plain',
|
||
text: 'Variables Out'.translate()
|
||
});
|
||
|
||
labelVariablesIn = new PMUI.ui.TextLabel({
|
||
textMode: 'plain',
|
||
text: 'Variables In'.translate()
|
||
});
|
||
|
||
loadDropProcess = function () {
|
||
formProperties.getField('out_doc_process').clearOptions();
|
||
formProperties.getField('out_doc_process').addOption({
|
||
label: "- Select a process -".translate(),
|
||
value: "",
|
||
disabled: true,
|
||
selected: true
|
||
});
|
||
};
|
||
loadDataServer = function () {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'projects',
|
||
method: 'GET'
|
||
},
|
||
{
|
||
url: 'project/' + PMDesigner.project.id + '/subprocess/' + activity.act_uid,
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var dt,
|
||
itemsOut,
|
||
yout,
|
||
oout,
|
||
jout,
|
||
dout,
|
||
xin,
|
||
yin,
|
||
oin,
|
||
jin,
|
||
din,
|
||
itemsIn,
|
||
xout;
|
||
|
||
//projects
|
||
dt = response[0].response;
|
||
for (var i = 0; i < dt.length; i += 1) {
|
||
if (dt[i].prj_uid !== PMDesigner.project.projectId) {
|
||
formProperties.getField('out_doc_process').addOption({
|
||
label: dt[i].prj_name,
|
||
value: dt[i].prj_uid
|
||
});
|
||
}
|
||
}
|
||
//subprocess
|
||
dt = response[1].response;
|
||
formProperties.getField('out_doc_title').setValue(dt.spr_name);
|
||
formProperties.getField('out_doc_process').setValue(dt.spr_pro === '0' ? '' : dt.spr_pro);
|
||
formProperties.getField('out_doc_type').setValue(dt.spr_synchronous);
|
||
|
||
if (dt.spr_variables_out !== false) { //Asynchronous
|
||
xout = JSON.stringify(dt.spr_variables_out);
|
||
itemsOut = [];
|
||
if (xout != "[]") {
|
||
yout = xout.substring(1, xout.length - 1);
|
||
oout = yout.replace(/"/g, '');
|
||
jout = oout.split(',');
|
||
for (i = 0; i < jout.length; i += 1) {
|
||
dout = jout[i].split(':');
|
||
itemsOut.push({
|
||
origin: dout[0],
|
||
target: dout[1]
|
||
});
|
||
}
|
||
}
|
||
gridVariablesOut.setDataItems(itemsOut);
|
||
gridVariablesIn.setVisible(false);
|
||
formVariablesPanelIn.setVisible(false);
|
||
}
|
||
|
||
if (dt.spr_variables_in !== false && dt.spr_variables_in !== undefined) { //Synchronous
|
||
xin = JSON.stringify(dt.spr_variables_in);
|
||
itemsIn = [];
|
||
if (xin != "[]") {
|
||
yin = xin.substring(1, xin.length - 1);
|
||
oin = yin.replace(/"/g, '');
|
||
jin = oin.split(',');
|
||
for (i = 0; i < jin.length; i += 1) {
|
||
din = jin[i].split(':');
|
||
itemsIn.push({
|
||
origin: din[0],
|
||
target: din[1]
|
||
});
|
||
}
|
||
}
|
||
gridVariablesIn.setDataItems(itemsIn);
|
||
}
|
||
|
||
if (dt.spr_synchronous === "1") {
|
||
gridVariablesIn.setVisible(true);
|
||
formVariablesPanelIn.setVisible(true);
|
||
}
|
||
if (formProperties.getField('out_doc_process').getValue() !== '') {
|
||
loadActivity(formProperties.getField('out_doc_process').getValue());
|
||
}
|
||
formProperties.getField('spr_tas').setValue(dt.spr_tas === '0' ? '' : dt.spr_tas);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.setBaseEndPoint('');
|
||
restClient.executeRestClient();
|
||
};
|
||
loadActivity = function (value) {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'project/' + value + '/starting-tasks',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var dropdown,
|
||
i,
|
||
dt = response[0].response;
|
||
dt = dt.sort(function (a, b) {
|
||
return a.act_name.toString().toLowerCase() > b.act_name.toString().toLowerCase();
|
||
});
|
||
dropdown = formProperties.getField('spr_tas');
|
||
dropdown.clearOptions();
|
||
dropdown.addOption({
|
||
value: '',
|
||
label: '- Select starting activity -'.translate()
|
||
});
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
dropdown.addOption({
|
||
value: dt[i].act_uid,
|
||
label: dt[i].act_name
|
||
});
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.setBaseEndPoint('');
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
formVariablesPanelOut.addItem(formVarTexOriginOut);
|
||
formVariablesPanelOut.addItem(formVarTexTargetOut);
|
||
formVariablesPanelOut.addItem(formVarButtonAddOut);
|
||
|
||
formVariablesPanelIn.addItem(formVarTexOriginIn);
|
||
formVariablesPanelIn.addItem(formVarTexTargetIn);
|
||
formVariablesPanelIn.addItem(formVarButtonAddIn);
|
||
|
||
gridVariablesIn.setVisible(false);
|
||
formVariablesPanelIn.setVisible(false);
|
||
|
||
windowPropertiesSub.addItem(formProperties);
|
||
windowPropertiesSub.addItem(new PMUI.ui.TextLabel({
|
||
width: 890,
|
||
text: 'Variables Out'.translate(),
|
||
style: {
|
||
cssProperties: {
|
||
background: '#aaaaaa',
|
||
margin: '-15px 10px 10px 15px',
|
||
color: 'white',
|
||
padding: '6px',
|
||
'font-weight': 'bold'
|
||
}
|
||
},
|
||
display: 'block'
|
||
}));
|
||
windowPropertiesSub.addItem(formVariablesPanelOut);
|
||
windowPropertiesSub.addItem(gridVariablesOut);
|
||
|
||
windowPropertiesSub.addItem(new PMUI.ui.TextLabel({
|
||
width: 890,
|
||
text: 'Variables In'.translate(),
|
||
style: {
|
||
cssProperties: {
|
||
background: '#aaaaaa',
|
||
margin: '15px 10px 10px 15px',
|
||
color: 'white',
|
||
padding: '6px',
|
||
'font-weight': 'bold'
|
||
}
|
||
},
|
||
display: 'block',
|
||
visible: false
|
||
}));
|
||
|
||
windowPropertiesSub.addItem(formVariablesPanelIn);
|
||
windowPropertiesSub.addItem(gridVariablesIn);
|
||
|
||
loadDropProcess();
|
||
gridVariablesOut.setDataItems("");
|
||
gridVariablesIn.setDataItems("");
|
||
loadDataServer();
|
||
|
||
if (formProperties.getItems()[1].getValue() != "0") {
|
||
formVarTexTargetOut.setProcess(formProperties.getItems()[1].getValue());
|
||
formVarTexOriginIn.setProcess(formProperties.getItems()[1].getValue());
|
||
}
|
||
windowPropertiesSub.open();
|
||
if (formProperties.getField('out_doc_process').getValue().trim().length === 0) {
|
||
formVarTexTargetOut.buttonHTML.disable();
|
||
formVarTexOriginIn.buttonHTML.disable();
|
||
} else {
|
||
formVarTexTargetOut.buttonHTML.enable();
|
||
formVarTexOriginIn.buttonHTML.enable();
|
||
}
|
||
windowPropertiesSub.showFooter();
|
||
applyStyleWindowForm(windowPropertiesSub);
|
||
formVariablesPanelIn.getItems()[0].dom.labelTextContainer.style.display = "none";
|
||
formVariablesPanelIn.getItems()[1].dom.labelTextContainer.style.display = "none";
|
||
formVariablesPanelOut.getItems()[0].dom.labelTextContainer.style.display = "none";
|
||
formVariablesPanelOut.getItems()[1].dom.labelTextContainer.style.display = "none";
|
||
formVariablesPanelOut.style.addProperties({marginLeft: '45px'});
|
||
gridVariablesOut.style.addProperties({marginLeft: '45px'});
|
||
if (formVariablesPanelIn.visible == true) {
|
||
gridVariablesIn.setVisible(true);
|
||
gridVariablesIn.style.addProperties({marginLeft: '45px'});
|
||
formVariablesPanelIn.setVisible(true);
|
||
formVariablesPanelIn.getItems()[2].setWidth(80);
|
||
$(formVariablesPanelIn.html).css({width: '850px', marginLeft: '45px'});
|
||
windowPropertiesSub.getItems()[4].setVisible(true);
|
||
}
|
||
|
||
formVariablesPanelOut.style.addProperties({width: '870px'});
|
||
$(gridVariablesIn.html).find(".pmui-gridpanel-footer").css("position", "static");
|
||
$(gridVariablesIn.html).find(".pmui-gridpanel-footer").css("margin-top", "0px");
|
||
$(gridVariablesOut.html).find(".pmui-gridpanel-footer").css("position", "static");
|
||
$(gridVariablesOut.html).find(".pmui-gridpanel-footer").css("margin-top", "0px");
|
||
windowPropertiesSub.defineEvents();
|
||
gridVariablesOut.html.children[0].style.display = "none";
|
||
gridVariablesIn.html.children[0].style.display = "none";
|
||
formProperties.getField('out_doc_title').setFocus();
|
||
formVarButtonAddOut.setWidth(80);
|
||
formVarButtonAddOut.setVisible(true);
|
||
|
||
};
|
||
}());
|
||
if (typeof(consolidated) == 'undefined') {
|
||
consolidated = '0';
|
||
}
|
||
PMDesigner.activityProperties = function (activity) {
|
||
switch (activity.getActivityType()) {
|
||
case "SUB_PROCESS":
|
||
PMDesigner.propertiesSubProcess(activity);
|
||
break;
|
||
case "TASK":
|
||
if (activity.getTaskType() === "SCRIPTTASK") {
|
||
PMDesigner.scriptTaskProperties(activity);
|
||
} else {
|
||
PMDesigner.taskProperties(activity);
|
||
}
|
||
break;
|
||
}
|
||
};
|
||
|
||
PMDesigner.taskProperties = function (activity) {
|
||
var formDefinitions,
|
||
featuresForms = [],
|
||
propertiesTabs,
|
||
formCaseLabels,
|
||
dataProperties,
|
||
formTimingControl,
|
||
configurationForms,
|
||
customGrid,
|
||
formNotifications,
|
||
buttonFieldCancel,
|
||
buttonFieldAdd,
|
||
abeForm,
|
||
MobilePanel,
|
||
enableTaskMobile,
|
||
routeCaseMobile,
|
||
abeMainPanel,
|
||
abeAddOption,
|
||
abeTemplates,
|
||
abeDynaforms,
|
||
abeReceiverAccount,
|
||
abeEmailAcount,
|
||
abeFields,
|
||
warningChanges,
|
||
windowProperties,
|
||
processDataProperties,
|
||
i,
|
||
editRow = null,
|
||
arrayTrue = '["TRUE"]',
|
||
arrayFalse = '["FALSE"]',
|
||
stringTrue = "TRUE",
|
||
stringFalse = "FALSE",
|
||
defaultServerlabel = "Mail (PHP)".translate();
|
||
|
||
configurationForms = [
|
||
{
|
||
id: 'windowPropertiesTabPanelDefinitions',
|
||
icon: '',
|
||
title: 'Definitions'.translate(),
|
||
panel: formDefinitions = new PMUI.form.Form({
|
||
id: 'formDefinitions',
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 250,
|
||
items: [{
|
||
id: 'formDefinitionsUID',
|
||
pmType: 'text',
|
||
name: 'UID',
|
||
valueType: 'string',
|
||
label: 'UID'.translate(),
|
||
controlsWidth: 300
|
||
}, {
|
||
id: 'formDefinitionsTitle',
|
||
pmType: 'text',
|
||
name: 'tas_title',
|
||
valueType: 'string',
|
||
label: 'Title'.translate(),
|
||
placeholder: 'Insert a title'.translate(),
|
||
required: true,
|
||
controlsWidth: 300
|
||
}, {
|
||
id: 'formDefinitionsDescription',
|
||
pmType: 'textarea',
|
||
name: 'tas_description',
|
||
valueType: 'string',
|
||
label: 'Description'.translate(),
|
||
placeholder: 'Insert a description'.translate(),
|
||
rows: 100,
|
||
controlsWidth: 300,
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
}, new CriteriaField({
|
||
id: 'formDefinitionsVariable',
|
||
pmType: 'text',
|
||
name: 'tas_priority_variable',
|
||
valueType: 'string',
|
||
label: 'Variable for Case priority'.translate(),
|
||
controlsWidth: 300
|
||
}), {
|
||
id: 'formDefinitionsRouting',
|
||
pmType: 'dropdown',
|
||
name: 'tas_derivation_screen_tpl',
|
||
valueType: 'string',
|
||
label: 'Routing Screen Template'.translate(),
|
||
controlsWidth: 150,
|
||
style: {
|
||
cssProperties: {
|
||
float: "left"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
})
|
||
},
|
||
{
|
||
id: 'windowPropertiesTabPanelCaseLabels',
|
||
icon: '',
|
||
title: 'Case Labels'.translate(),
|
||
panel: formCaseLabels = new PMUI.form.Form({
|
||
id: 'formCaseLabels',
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 250,
|
||
items: [new CriteriaField({
|
||
id: 'formCaseLabelsTitle',
|
||
pmType: 'text',
|
||
name: 'tas_def_title',
|
||
valueType: 'string',
|
||
label: 'Title'.translate(),
|
||
placeholder: 'Insert a title'.translate(),
|
||
controlsWidth: DEFAULT_WINDOW_WIDTH - 527
|
||
}), new CriteriaField({
|
||
id: 'formCaseLabelsDescription',
|
||
pmType: 'textarea',
|
||
name: 'tas_def_description',
|
||
valueType: 'string',
|
||
label: 'Description'.translate(),
|
||
placeholder: 'Insert a description'.translate(),
|
||
rows: 100,
|
||
controlsWidth: DEFAULT_WINDOW_WIDTH - 527,
|
||
renderType: 'textarea'
|
||
})
|
||
]
|
||
})
|
||
},
|
||
{
|
||
id: 'windowPropertiesTabPanelTimingControl',
|
||
icon: '',
|
||
title: 'Timing Control'.translate(),
|
||
panel: formTimingControl = new PMUI.form.Form({
|
||
id: 'formTimingControl',
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 250,
|
||
items: [{
|
||
id: 'formTimingControlFly',
|
||
pmType: 'checkbox',
|
||
name: 'tas_transfer_fly',
|
||
labelVisible: false,
|
||
options: [
|
||
{
|
||
id: 'formTimingControlOption',
|
||
label: 'Allow users to change the task duration in runtime'.translate(),
|
||
value: '1'
|
||
}
|
||
],
|
||
onChange: function (val) {
|
||
changeTimingControl(this.controls[0].selected);
|
||
}
|
||
}, {
|
||
id: 'formTimingMainPanel',
|
||
pmType: 'panel',
|
||
items: [
|
||
{
|
||
id: 'formTimingControlTask',
|
||
pmType: 'text',
|
||
name: 'tas_duration',
|
||
valueType: 'string',
|
||
label: 'Task duration'.translate(),
|
||
required: true,
|
||
maxLength: 3,
|
||
controlsWidth: 200,
|
||
validators: [
|
||
{
|
||
pmType: "regexp",
|
||
criteria: /^\d*$/,
|
||
errorMessage: "Please enter a positive integer value".translate()
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'formTimingControlAverage',
|
||
pmType: 'text',
|
||
name: 'tas_average',
|
||
valueType: 'string',
|
||
label: 'Average'.translate(),
|
||
maxLength: 3,
|
||
readOnly: true,
|
||
controlsWidth: 200
|
||
},
|
||
{
|
||
id: 'formTimingControlSdv',
|
||
pmType: 'text',
|
||
name: 'tas_sdv',
|
||
valueType: 'string',
|
||
label: 'SDV'.translate(),
|
||
maxLength: 3,
|
||
readOnly: true,
|
||
controlsWidth: 200
|
||
},
|
||
{
|
||
id: 'formTimingControlTime',
|
||
pmType: 'dropdown',
|
||
name: 'tas_timeunit',
|
||
label: 'Time unit'.translate(),
|
||
controlsWidth: 100,
|
||
options: [{
|
||
id: 'formTimingControlTime1',
|
||
label: 'Hours'.translate(),
|
||
value: 'HOURS'
|
||
}, {
|
||
id: 'formTimingControlTime2',
|
||
label: 'Days'.translate(),
|
||
value: 'DAYS'
|
||
}, {
|
||
id: 'formTimingControlTime3',
|
||
label: 'Minutes'.translate(),
|
||
value: 'MINUTES'
|
||
}
|
||
]
|
||
}, {
|
||
id: 'formTimingControlCount',
|
||
pmType: 'dropdown',
|
||
name: 'tas_type_day',
|
||
label: 'Count days by'.translate(),
|
||
controlsWidth: 150,
|
||
options: [{
|
||
id: 'formTimingControlCount1',
|
||
label: 'Work Days'.translate(),
|
||
value: 1
|
||
}, {
|
||
id: 'formTimingControlCount2',
|
||
label: 'Calendar Days'.translate(),
|
||
value: 2
|
||
}
|
||
]
|
||
}, {
|
||
id: 'formTimingControlCalendar',
|
||
pmType: 'dropdown',
|
||
name: 'tas_calendar',
|
||
label: 'Calendar'.translate(),
|
||
options: [],
|
||
controlsWidth: 150
|
||
}
|
||
]
|
||
}
|
||
]
|
||
})
|
||
},
|
||
{
|
||
id: 'windowPropertiesTabPanelNotifications',
|
||
icon: '',
|
||
title: 'Notifications'.translate(),
|
||
panel: formNotifications = new PMUI.form.Form({
|
||
id: 'formNotifications',
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 250,
|
||
items: [
|
||
{
|
||
id: 'formNotificationsTasSend',
|
||
pmType: 'checkbox',
|
||
name: 'tas_send_last_email',
|
||
labelVisible: false,
|
||
options: [{
|
||
id: 'formNotificationsTasSend1',
|
||
label: 'After routing notify the next assigned user(s)'.translate(),
|
||
value: '1'
|
||
}
|
||
],
|
||
onChange: function (val) {
|
||
changeFormNotifications(this.controls[0].selected, 'text');
|
||
}
|
||
}, {
|
||
id: 'formNotificationsMainPanel',
|
||
pmType: 'panel',
|
||
items: [
|
||
{
|
||
id: 'tas_email_server_uid',
|
||
name: 'tas_email_server_uid',
|
||
pmType: 'dropdown',
|
||
label: 'Email account'.translate(),
|
||
controlsWidth: 300,
|
||
labelWidth: "27%",
|
||
options: [
|
||
{
|
||
label: 'Default email account'.translate(),
|
||
value: ''
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'tas_not_email_from_format',
|
||
name: 'tas_not_email_from_format',
|
||
pmType: 'dropdown',
|
||
label: 'Sender Name'.translate(),
|
||
controlsWidth: 300,
|
||
labelWidth: "27%",
|
||
options: [
|
||
{
|
||
id: 'assignedUser',
|
||
label: 'Previous User'.translate(),
|
||
value: 0
|
||
}, {
|
||
id: 'emailAccountSettings',
|
||
label: 'Email Sender Name'.translate(),
|
||
value: 1
|
||
}
|
||
]
|
||
},
|
||
new CriteriaField({
|
||
id: 'formNotificationsSubject',
|
||
pmType: 'text',
|
||
name: 'tas_def_subject_message',
|
||
valueType: 'string',
|
||
label: 'Subject'.translate(),
|
||
placeholder: 'Insert a title'.translate(),
|
||
required: true,
|
||
controlsWidth: 300,
|
||
labelWidth: "27%"
|
||
}), {
|
||
id: 'formNotificationsContent',
|
||
pmType: 'dropdown',
|
||
name: 'tas_def_message_type',
|
||
label: 'Content Type'.translate(),
|
||
controlsWidth: 150,
|
||
labelWidth: "27%",
|
||
options: [{
|
||
id: 'formNotificationsContent1',
|
||
value: 'text',
|
||
label: 'Plain Text'.translate()
|
||
}, {
|
||
id: 'formNotificationsContent2',
|
||
value: 'template',
|
||
label: 'Html Template'.translate()
|
||
}
|
||
],
|
||
onChange: function (value) {
|
||
visibleContentType(value);
|
||
}
|
||
}, new CriteriaField({
|
||
id: 'formNotificationsMessage',
|
||
pmType: 'textarea',
|
||
name: 'tas_def_message',
|
||
valueType: 'string',
|
||
label: 'Message'.translate(),
|
||
placeholder: 'Insert a message'.translate(),
|
||
rows: 100,
|
||
width: 10,
|
||
required: true,
|
||
controlsWidth: 300,
|
||
renderType: 'textarea',
|
||
labelWidth: "27%"
|
||
}), {
|
||
id: 'formNotificationsTemplate',
|
||
pmType: 'dropdown',
|
||
name: 'tas_def_message_template',
|
||
label: 'Template'.translate(),
|
||
options: [{
|
||
value: '',
|
||
label: ''
|
||
}],
|
||
labelWidth: "27%"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'formNotificationsTasReceive',
|
||
pmType: 'checkbox',
|
||
name: 'tas_receive_last_email',
|
||
labelVisible: false,
|
||
options: [{
|
||
id: 'formNotificationsTasReceive',
|
||
label: 'Notify the assigned user to this task'.translate(),
|
||
value: '1'
|
||
}
|
||
],
|
||
onChange: function (val) {
|
||
changeFormNotificationsReceive(this.controls[0].selected, 'text');
|
||
}
|
||
},
|
||
{
|
||
id: 'formNotificationsReceivePanel',
|
||
pmType: 'panel',
|
||
items: [
|
||
{
|
||
id: 'tas_receive_server_uid',
|
||
name: 'tas_receive_server_uid',
|
||
pmType: 'dropdown',
|
||
label: 'Email account'.translate(),
|
||
controlsWidth: 300,
|
||
labelWidth: "27%",
|
||
options: [
|
||
{
|
||
label: 'Default email account'.translate(),
|
||
value: ''
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'tas_receive_email_from_format',
|
||
name: 'tas_receive_email_from_format',
|
||
pmType: 'dropdown',
|
||
label: 'Sender Name'.translate(),
|
||
controlsWidth: 300,
|
||
labelWidth: "27%",
|
||
options: [
|
||
{
|
||
id: 'assignedUser',
|
||
label: 'Previous User'.translate(),
|
||
value: 0
|
||
}, {
|
||
id: 'emailAccountSettings',
|
||
label: 'Email Sender Name'.translate(),
|
||
value: 1
|
||
}
|
||
]
|
||
},
|
||
new CriteriaField({
|
||
id: 'tas_receive_subject_message',
|
||
pmType: 'text',
|
||
name: 'tas_receive_subject_message',
|
||
valueType: 'string',
|
||
label: 'Subject'.translate(),
|
||
placeholder: 'Insert a title'.translate(),
|
||
required: true,
|
||
controlsWidth: 300,
|
||
labelWidth: "27%"
|
||
}),
|
||
{
|
||
id: 'tas_receive_message_type',
|
||
pmType: 'dropdown',
|
||
name: 'tas_receive_message_type',
|
||
label: 'Content Type'.translate(),
|
||
controlsWidth: 150,
|
||
labelWidth: "27%",
|
||
options: [{
|
||
id: 'formNotificationsReceive1',
|
||
value: 'text',
|
||
label: 'Plain Text'.translate()
|
||
}, {
|
||
id: 'formNotificationsReceive2',
|
||
value: 'template',
|
||
label: 'Html Template'.translate()
|
||
}
|
||
],
|
||
onChange: function (value) {
|
||
visibleContentTypeReceive(value);
|
||
}
|
||
},
|
||
new CriteriaField({
|
||
id: 'tas_receive_message',
|
||
pmType: 'textarea',
|
||
name: 'tas_receive_message',
|
||
valueType: 'string',
|
||
label: 'Message'.translate(),
|
||
placeholder: 'Insert a message'.translate(),
|
||
rows: 100,
|
||
width: 10,
|
||
required: true,
|
||
controlsWidth: 300,
|
||
renderType: 'textarea',
|
||
labelWidth: "27%"
|
||
}),
|
||
{
|
||
id: 'tas_receive_message_template',
|
||
pmType: 'dropdown',
|
||
name: 'tas_receive_message_template',
|
||
label: 'Template'.translate(),
|
||
options: [{
|
||
value: '',
|
||
label: ''
|
||
}],
|
||
labelWidth: "27%"
|
||
}
|
||
|
||
]
|
||
}
|
||
]
|
||
})
|
||
}
|
||
];
|
||
if (consolidated == '1') {
|
||
configurationForms.push({
|
||
id: 'windowPropertiesTabPanelConsolidated',
|
||
icon: '',
|
||
title: 'Consolidated Case '.translate(),
|
||
panel: formConsolidated = new PMUI.form.Form({
|
||
id: 'formConsolidated',
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 250,
|
||
items: [
|
||
{
|
||
id: 'formConsolidatedEnable',
|
||
pmType: 'checkbox',
|
||
name: 'consolidated_enable',
|
||
labelVisible: false,
|
||
options: [{
|
||
label: 'Enable consolidate for this task.'.translate(),
|
||
value: '1'
|
||
}
|
||
],
|
||
onChange: function (val) {
|
||
changeConsolidated(this.controls[0].selected);
|
||
}
|
||
}, {
|
||
id: 'formConsolidatedMainPanel',
|
||
pmType: 'panel',
|
||
items: [
|
||
{
|
||
id: 'formConsolidatedReportTable',
|
||
pmType: 'text',
|
||
name: 'consolidated_report_table',
|
||
visible: false,
|
||
valueType: 'string',
|
||
controlsWidth: 300
|
||
}, {
|
||
id: 'formConsolidatedDynaform',
|
||
pmType: 'dropdown',
|
||
name: 'consolidated_dynaform',
|
||
label: 'Dynaform Template'.translate(),
|
||
options: [],
|
||
required: true,
|
||
controlsWidth: 300
|
||
}, {
|
||
id: 'formConsolidatedTable',
|
||
pmType: 'text',
|
||
name: 'consolidated_table',
|
||
valueType: 'string',
|
||
label: 'Table Name'.translate(),
|
||
placeholder: 'Insert a table name'.translate(),
|
||
required: true,
|
||
controlsWidth: 300,
|
||
style: {
|
||
cssProperties: {
|
||
float: "left"
|
||
}
|
||
},
|
||
validators: [{
|
||
pmType: "regexp",
|
||
criteria: /^[a-zA-Z0-9_]+$/,
|
||
errorMessage: "The table name can not contain spaces".translate()
|
||
}]
|
||
}, {
|
||
id: 'formConsolidatedTitle',
|
||
pmType: 'text',
|
||
name: 'consolidated_title',
|
||
valueType: 'string',
|
||
label: 'Title'.translate(),
|
||
placeholder: 'Insert a title'.translate(),
|
||
required: true,
|
||
controlsWidth: 300,
|
||
style: {
|
||
cssProperties: {
|
||
float: "left"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
})
|
||
});
|
||
}
|
||
|
||
/*----------------------------------********---------------------------------*/
|
||
/**features-begins**/
|
||
customGrid = new PMUI.grid.GridPanel({
|
||
id: 'customGrid',
|
||
pageSize: 10,
|
||
width: DEFAULT_WINDOW_WIDTH - 400,
|
||
style: {
|
||
cssClasses: ['mafe-gridPanel'],
|
||
cssProperties: {
|
||
'margin-left': '0px',
|
||
'padding-top': '5px'
|
||
}
|
||
},
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
behavior: 'dragdropsort',
|
||
filterable: false,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return '';
|
||
},
|
||
columns: [{
|
||
id: 'abe_custom_value',
|
||
title: 'Value'.translate(),
|
||
dataType: 'string',
|
||
columnData: 'abe_custom_value',
|
||
alignmentCell: 'left',
|
||
width: 95,
|
||
sortable: true
|
||
}, {
|
||
id: 'abe_custom_label',
|
||
title: 'Label'.translate(),
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
columnData: 'abe_custom_label',
|
||
width: 135,
|
||
sortable: true
|
||
}, {
|
||
id: 'abe_custom_format',
|
||
title: 'Format (CSS)'.translate(),
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
columnData: 'abe_custom_format',
|
||
width: 320,
|
||
sortable: true
|
||
}, {
|
||
id: 'varEdit',
|
||
dataType: 'button',
|
||
title: '',
|
||
buttonLabel: 'Edit'.translate(),
|
||
width: '68px',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
customGridRowEdit(row);
|
||
}
|
||
}, {
|
||
id: 'varDelete',
|
||
dataType: 'button',
|
||
title: '',
|
||
buttonLabel: function (row, data) {
|
||
return 'Delete'.translate();
|
||
},
|
||
width: '68px',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
customGrid.removeItem(row);
|
||
}
|
||
}
|
||
],
|
||
dataItems: null
|
||
});
|
||
|
||
abeFields = {
|
||
'type': {
|
||
name: "ABE_TYPE",
|
||
id: "ABE_TYPE",
|
||
label: "Type",
|
||
pmType: "dropdown",
|
||
options: [
|
||
{
|
||
"label": "- None -".translate(),
|
||
"value": "",
|
||
"type": "default"
|
||
},
|
||
{
|
||
"label": "Link to fill a form".translate(),
|
||
"value": "LINK"
|
||
},
|
||
{
|
||
"label": "Use a field to generate actions links".translate(),
|
||
"value": "FIELD"
|
||
},
|
||
{
|
||
"label": "Email response".translate(),
|
||
"value": "RESPONSE"
|
||
},
|
||
{
|
||
"label": "Custom actions".translate(),
|
||
"value": "CUSTOM"
|
||
}
|
||
],
|
||
onChange: function (val) {
|
||
var addOptionForm, buttonAdd, buttonAddControl, buttonCancel, buttonCancelControl;
|
||
abeFields.type.value = val;
|
||
$(abeFields.email.getHTML()).find('.pmui-field-message span').css('display', 'none');
|
||
$(abeFields.action.getHTML()).find('.pmui-field-message span').css('display', 'none');
|
||
$customGrid = $("#customGrid");
|
||
if (abeAddOption && abeAddOption.getHTML()) {
|
||
addOptionForm = $(abeAddOption.getHTML());
|
||
addOptionForm.hide();
|
||
}
|
||
switch (val) {
|
||
case '' :
|
||
abeForm.setItems([abeFields.type]);
|
||
break;
|
||
case 'LINK' :
|
||
$customGrid.hide().appendTo($("#windowProperties").find(".pmui-window-body:eq(0)"));
|
||
abeForm.setItems([
|
||
abeFields.type,
|
||
abeFields.template,
|
||
abeFields.dynaform,
|
||
abeFields.subject,
|
||
abeFields.email,
|
||
abeFields.emailAccount,
|
||
abeFields.emailFrom,
|
||
abeFields.note,
|
||
abeFields.forceLogin]);
|
||
abeForm.getField('ABE_CASE_NOTE_IN_RESPONSE').setValue(abeFields.note.value);
|
||
abeForm.getField("ABE_FORCE_LOGIN").setValue(abeFields.forceLogin.value);
|
||
break;
|
||
case 'FIELD' :
|
||
$customGrid.hide().appendTo($("#windowProperties").find(".pmui-window-body:eq(0)"));
|
||
abeForm.setItems([
|
||
abeFields.type,
|
||
abeFields.template,
|
||
abeFields.dynaform,
|
||
abeFields.subject,
|
||
abeFields.email,
|
||
abeFields.action,
|
||
abeFields.emailAccount,
|
||
abeFields.emailFrom,
|
||
abeFields.note,
|
||
abeFields.forceLogin]);
|
||
abeForm.getField('ABE_CASE_NOTE_IN_RESPONSE').setValue(abeFields.note.value);
|
||
abeForm.getField("ABE_FORCE_LOGIN").setValue(abeFields.forceLogin.value);
|
||
abeFields.action.setLabel('Variable sent in email'.translate());
|
||
abeFields.action.setPlaceholder('Insert a variable with options'.translate());
|
||
break;
|
||
case 'RESPONSE' :
|
||
abeForm.setItems([
|
||
abeFields.type,
|
||
abeFields.receiverAccount,
|
||
abeFields.emailAccount,
|
||
abeFields.emailFrom,
|
||
abeFields.email,
|
||
abeFields.subject,
|
||
abeFields.template,
|
||
abeFields.action,
|
||
abeFields.body,
|
||
abeFields.note]);
|
||
abeForm.getField("ABE_CASE_NOTE_IN_RESPONSE").setValue(abeFields.note.value);
|
||
if (!abeAddOption) {
|
||
abeMainPanel.addItem(abeAddOption = new PMUI.form.Form(abeFields.customGrid));
|
||
} else {
|
||
addOptionForm.show();
|
||
}
|
||
buttonAdd = abeAddOption.getField("buttonFieldAdd");
|
||
buttonAddControl = buttonAdd.getControl();
|
||
buttonAddControl.button.setButtonType("success");
|
||
|
||
buttonCancel = abeAddOption.getField("buttonFieldCancel");
|
||
buttonCancelControl = buttonCancel.getControl();
|
||
buttonCancelControl.button.setButtonType("error");
|
||
abeFields.action.setLabel('Store option in'.translate());
|
||
abeFields.action.setPlaceholder('Store result in variable @@myResult'.translate());
|
||
customDOM();
|
||
break;
|
||
case 'CUSTOM' :
|
||
abeForm.setItems([
|
||
abeFields.type,
|
||
abeFields.emailAccount,
|
||
abeFields.emailFrom,
|
||
abeFields.email,
|
||
abeFields.subject,
|
||
abeFields.template,
|
||
abeFields.action,
|
||
abeFields.note,
|
||
abeFields.forceLogin]);
|
||
abeForm.getField("ABE_CASE_NOTE_IN_RESPONSE").setValue(abeFields.note.value);
|
||
abeForm.getField("ABE_FORCE_LOGIN").setValue(abeFields.forceLogin.value);
|
||
if (!abeAddOption) {
|
||
abeMainPanel.addItem(abeAddOption = new PMUI.form.Form(abeFields.customGrid));
|
||
} else {
|
||
addOptionForm.show();
|
||
}
|
||
buttonAdd = abeAddOption.getField("buttonFieldAdd");
|
||
buttonAddControl = buttonAdd.getControl();
|
||
buttonAddControl.button.setButtonType("success");
|
||
|
||
buttonCancel = abeAddOption.getField("buttonFieldCancel");
|
||
buttonCancelControl = buttonCancel.getControl();
|
||
buttonCancelControl.button.setButtonType("error");
|
||
abeFields.action.setLabel('Store Result In'.translate());
|
||
abeFields.action.setPlaceholder('Store result in variable @@myResult'.translate());
|
||
customDOM();
|
||
break;
|
||
}
|
||
}
|
||
},
|
||
'template': abeTemplates = {
|
||
name: "ABE_TEMPLATE",
|
||
label: 'Email template'.translate(),
|
||
pmType: "dropdown",
|
||
controlsWidth: 300,
|
||
required: true,
|
||
options: [
|
||
{
|
||
"value": "",
|
||
"label": "- Select a Template -".translate(),
|
||
"type": "default"
|
||
}
|
||
],
|
||
onChange: function (val) {
|
||
}
|
||
},
|
||
'dynaform': abeDynaforms = {
|
||
name: "DYN_UID",
|
||
label: 'Dynaform'.translate(),
|
||
pmType: "dropdown",
|
||
controlsWidth: 300,
|
||
options: [
|
||
{
|
||
"value": "",
|
||
"label": "- Select a Dynaform -".translate(),
|
||
"type": "default"
|
||
}
|
||
],
|
||
onChange: function (val) {
|
||
}
|
||
},
|
||
'subject': new CriteriaField({
|
||
id: 'ABE_SUBJECT_FIELD',
|
||
pmType: 'text',
|
||
name: 'ABE_SUBJECT_FIELD',
|
||
valueType: 'string',
|
||
label: 'Subject by email'.translate(),
|
||
placeholder: 'Insert a subject variable'.translate(),
|
||
required: false,
|
||
controlsWidth: 250
|
||
}),
|
||
'email': new CriteriaField({
|
||
id: 'ABE_EMAIL_FIELD',
|
||
pmType: 'text',
|
||
name: 'ABE_EMAIL_FIELD',
|
||
valueType: 'string',
|
||
label: 'Email variable'.translate(),
|
||
placeholder: 'Insert an email variable'.translate(),
|
||
helper: "It leaving this field in blank, the next user's email will be used.".translate(),
|
||
controlsWidth: 250
|
||
}),
|
||
'action': new CriteriaField({
|
||
id: 'ABE_ACTION_FIELD',
|
||
pmType: 'text',
|
||
name: 'ABE_ACTION_FIELD',
|
||
valueType: 'string',
|
||
label: 'Variable sent in email'.translate(),
|
||
placeholder: 'Insert a variable with options'.translate(),
|
||
required: true,
|
||
controlsWidth: 250
|
||
}),
|
||
'body': new CriteriaField({
|
||
id: 'ABE_ACTION_BODY_FIELD',
|
||
pmType: 'text',
|
||
name: 'ABE_ACTION_BODY_FIELD',
|
||
valueType: 'string',
|
||
label: 'Store email body in'.translate(),
|
||
placeholder: 'Store result in variable @@myResult'.translate(),
|
||
required: true,
|
||
controlsWidth: 250
|
||
}),
|
||
'receiverAccount': abeReceiverAccount = {
|
||
id: 'ABE_EMAIL_SERVER_RECEIVER_UID',
|
||
pmType: 'dropdown',
|
||
name: 'ABE_EMAIL_SERVER_RECEIVER_UID',
|
||
label: 'Receiver account'.translate(),
|
||
controlsWidth: 300,
|
||
required: true,
|
||
options: [
|
||
{
|
||
id: 'selectIMAPEmailAccount',
|
||
label: 'Please select an IMAP Email Server Account'.translate(),
|
||
value: ''
|
||
}
|
||
]
|
||
},
|
||
'emailAccount': abeEmailAcount = {
|
||
id: 'ABE_EMAIL_SERVER_UID',
|
||
pmType: 'dropdown',
|
||
name: 'ABE_EMAIL_SERVER_UID',
|
||
label: 'Email account'.translate(),
|
||
controlsWidth: 300,
|
||
options: [
|
||
{
|
||
id: 'defEmailAccount',
|
||
label: 'Default email account'.translate(),
|
||
value: ''
|
||
}
|
||
]
|
||
},
|
||
'emailFrom': {
|
||
id: 'ABE_MAILSERVER_OR_MAILCURRENT',
|
||
pmType: 'dropdown',
|
||
name: 'ABE_MAILSERVER_OR_MAILCURRENT',
|
||
label: 'Sender Name'.translate(),
|
||
controlsWidth: 300,
|
||
options: [
|
||
{
|
||
id: 'emailServerConfiguration',
|
||
label: 'Previous user'.translate(),
|
||
value: 0
|
||
}, {
|
||
id: 'femailCurrentUser',
|
||
label: 'Email Sender Name'.translate(),
|
||
value: 1
|
||
}
|
||
]
|
||
},
|
||
'note': {
|
||
name: "ABE_CASE_NOTE_IN_RESPONSE",
|
||
pmType: "checkbox",
|
||
labelVisible: false,
|
||
options: [
|
||
{
|
||
"id": "formTimingControlOption",
|
||
"label": "Register a Case Note when the recipient submits the Response".translate(),
|
||
"value": "1"
|
||
}
|
||
]
|
||
},
|
||
forceLogin: {
|
||
name: "ABE_FORCE_LOGIN",
|
||
pmType: "checkbox",
|
||
labelVisible: false,
|
||
options: [
|
||
{
|
||
id: "ABE_FORCE_LOGIN",
|
||
label: "Force user login".translate(),
|
||
value: 1
|
||
}
|
||
]
|
||
},
|
||
'customGrid': {
|
||
id: "customGridPanel",
|
||
pmType: "panel",
|
||
visibleHeader: false,
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
width: 735,
|
||
legend: "Options".translate(),
|
||
items: [
|
||
{
|
||
pmType: 'panel',
|
||
legend: "Options".translate(),
|
||
fieldset: true,
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
pmType: "panel",
|
||
id: "customGridPanelControls",
|
||
layout: "hbox",
|
||
proportion: 1.7,
|
||
items: [
|
||
{
|
||
pmType: "panel",
|
||
layout: "vbox",
|
||
id: "firstPanel",
|
||
proportion: 0.8,
|
||
items: [
|
||
{
|
||
pmType: "text",
|
||
name: "abe_custom_value_add",
|
||
id: "abe_custom_value_add",
|
||
label: "Value".translate(),
|
||
valueType: "string",
|
||
labelWidth: "37%",
|
||
controlsWidth: 120,
|
||
maxLength: 255,
|
||
required: true
|
||
},
|
||
{
|
||
pmType: "text",
|
||
name: "abe_custom_label_add",
|
||
id: "abe_custom_label_add",
|
||
label: "Label".translate(),
|
||
valueType: "string",
|
||
labelWidth: "37%",
|
||
controlsWidth: 120,
|
||
maxLength: 255,
|
||
required: true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
layout: "vbox",
|
||
id: "secondPanel",
|
||
proportion: 1.2,
|
||
items: [
|
||
{
|
||
pmType: "textarea",
|
||
name: "abe_custom_format_add",
|
||
id: "abe_custom_format_add",
|
||
label: "Format (CSS)".translate(),
|
||
valueType: "string",
|
||
required: false,
|
||
controlsWidth: 235,
|
||
placeholder: "padding:12px;\ntext-decoration:none;\nborder-radius:2px;\nbackground:#1fbc99;\nborder:1px solid #1ba385;",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-textarea-resize'
|
||
]
|
||
},
|
||
rows: 90,
|
||
validators: [
|
||
{
|
||
pmType: "regexp",
|
||
criteria: /^[a-zA-Z0-9\s\[\]\.\-_#%;,=:()']*$/,
|
||
errorMessage: "Please enter only CSS code".translate()
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
id: "thirdPanel",
|
||
layout: "vbox",
|
||
proportion: 0.3,
|
||
items: [
|
||
{
|
||
id: 'buttonFieldAdd',
|
||
pmType: 'buttonField',
|
||
value: 'Add'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
handler: function (field) {
|
||
addAcceptedValue();
|
||
},
|
||
buttonType: "success",
|
||
controlsWidth: 120,
|
||
style: {
|
||
cssProperties: {
|
||
'width': 'auto'
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: 'buttonFieldCancel',
|
||
pmType: 'buttonField',
|
||
value: 'Cancel'.translate(),
|
||
labelVisible: false,
|
||
visible: false,
|
||
buttonAlign: 'center',
|
||
handler: function (field) {
|
||
clearAddOptionForm();
|
||
},
|
||
buttonType: "error",
|
||
controlsWidth: 120,
|
||
style: {
|
||
cssProperties: {
|
||
'width': 'auto'
|
||
}
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
};
|
||
for (i in ENABLED_FEATURES) {
|
||
if (ENABLED_FEATURES[i] === 'zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=') {
|
||
featuresForms.push({
|
||
id: "ActionsByEmailConfiguration",
|
||
title: "Actions by Email".translate(),
|
||
icon: "",
|
||
panel: abeMainPanel = new PMUI.core.Panel({
|
||
id: "ActionsByEmailPanel",
|
||
items: [
|
||
abeForm = new PMUI.form.Form({
|
||
id: "ActionsByEmail",
|
||
name: "ActionsByEmail",
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 245,
|
||
items: [abeFields.type]
|
||
})
|
||
]
|
||
})
|
||
});
|
||
}
|
||
}
|
||
featuresForms.push({
|
||
id: 'OfflineMobileConfiguration',
|
||
icon: '',
|
||
title: 'Mobile'.translate(),
|
||
panel: MobilePanel = new PMUI.core.Panel({
|
||
id: "MobilePanel",
|
||
items: [
|
||
enableTaskMobile = new PMUI.field.CheckBoxGroupField({
|
||
id: 'enableTaskMobile',
|
||
name: 'tas_offline',
|
||
pmType: 'checkbox',
|
||
labelVisible: false,
|
||
options: [{
|
||
id: 'enableTaskOffLineUse',
|
||
label: 'Enable this task for offline use:'.translate(),
|
||
value: 'TRUE'
|
||
}],
|
||
onChange: function (value) {
|
||
var valueField = this.getControl(0).isSelected();
|
||
onChangeMobileOffline(valueField);
|
||
}
|
||
}),
|
||
routeCaseMobile = new PMUI.field.CheckBoxGroupField({
|
||
id: 'routeCaseMobile',
|
||
name: 'tas_auto_root',
|
||
pmType: 'checkbox',
|
||
labelVisible: false,
|
||
options: [{
|
||
id: 'routeCaseBackOnline',
|
||
label: 'Route case when back online'.translate(),
|
||
value: 'TRUE'
|
||
}]
|
||
}),
|
||
new PMUI.field.TextAnnotationField({
|
||
text: 'Triggers after and before a step are not supported when working offline'.translate(),
|
||
text_Align: 'center',
|
||
proportion: 1.4,
|
||
style: {
|
||
cssProperties: {
|
||
color: 'red'
|
||
}
|
||
}
|
||
})
|
||
]
|
||
})
|
||
});
|
||
/**features-ends**/
|
||
/*----------------------------------********---------------------------------*/
|
||
|
||
warningChanges = new PMUI.ui.MessageWindow({
|
||
id: 'warningChanges',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: 'Activity Properties'.translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'warningChangesButtonNo',
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
warningChanges.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'warningChangesButtonYes',
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
windowProperties.close();
|
||
warningChanges.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
windowProperties = new PMUI.ui.Window({
|
||
id: 'windowProperties',
|
||
title: 'Activity Properties'.translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
onOpen: function () {
|
||
loadServerData();
|
||
},
|
||
items: [
|
||
propertiesTabs = new PMUI.panel.TabPanel({
|
||
id: 'windowPropertiesTabPanel',
|
||
height: 435,
|
||
width: DEFAULT_WINDOW_WIDTH - 50,
|
||
style: {
|
||
cssProperties: {
|
||
'margin-left': '10px'
|
||
}
|
||
},
|
||
items: configurationForms.concat(featuresForms),
|
||
itemsPosition: {
|
||
position: 'left'
|
||
},
|
||
onTabClick: function (tab) {
|
||
setFocusTab(tab);
|
||
}
|
||
}),
|
||
customGrid
|
||
],
|
||
onBeforeClose: function () {
|
||
if (isDirty()) {
|
||
warningChanges.open();
|
||
warningChanges.showFooter();
|
||
} else {
|
||
windowProperties.close();
|
||
}
|
||
},
|
||
buttonPanelPosition: 'bottom',
|
||
buttonsPosition: 'right',
|
||
buttons: [
|
||
{
|
||
id: 'windowPropertiesButtonCancel',
|
||
text: 'Cancel'.translate(),
|
||
handler: function () {
|
||
if (isDirty()) {
|
||
warningChanges.open();
|
||
warningChanges.showFooter();
|
||
} else {
|
||
windowProperties.close();
|
||
}
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'windowPropertiesButtonSave',
|
||
text: 'Save'.translate(),
|
||
handler: function () {
|
||
saveData();
|
||
},
|
||
buttonType: 'success'
|
||
}
|
||
]
|
||
});
|
||
|
||
function changeConsolidated(value) {
|
||
var panel = formConsolidated.getItem('formConsolidatedMainPanel');
|
||
formConsolidated.getField('consolidated_enable').setValue(value ? '["1"]' : '[]');
|
||
|
||
if (panel) {
|
||
panel.setVisible(value);
|
||
if (value) {
|
||
panel.enable();
|
||
} else {
|
||
panel.disable();
|
||
}
|
||
}
|
||
|
||
formConsolidated.getField('consolidated_report_table').setVisible(false);
|
||
}
|
||
|
||
function changeTimingControl(value) {
|
||
var mainPanel = formTimingControl.getItem('formTimingMainPanel');
|
||
formTimingControl.getField('tas_transfer_fly').setValue(value ? '["1"]' : '[]');
|
||
if (mainPanel) {
|
||
if (value) {
|
||
mainPanel.disable();
|
||
|
||
} else {
|
||
mainPanel.enable();
|
||
}
|
||
mainPanel.setVisible(!value);
|
||
}
|
||
if (window.enterprise !== "1") {
|
||
formTimingControl.getField('tas_average').setVisible(false);
|
||
formTimingControl.getField('tas_sdv').setVisible(false);
|
||
}
|
||
}
|
||
|
||
function changeFormNotifications(value, valueTwo) {
|
||
var panel = formNotifications.getItem('formNotificationsMainPanel');
|
||
|
||
if (panel) {
|
||
panel.setVisible(value);
|
||
if (value) {
|
||
panel.enable();
|
||
} else {
|
||
panel.disable();
|
||
}
|
||
}
|
||
|
||
if (value) {
|
||
formNotifications.getField('tas_def_message_type').setValue(valueTwo);
|
||
visibleContentType(valueTwo);
|
||
}
|
||
formNotifications.getField('tas_send_last_email').setValue(value ? '["1"]' : '[]');
|
||
formNotifications.getField('tas_def_subject_message').setFocus();
|
||
}
|
||
|
||
/**
|
||
* Notification receive change handler, according to user selection
|
||
* @param value
|
||
* @param valueTwo
|
||
*/
|
||
function changeFormNotificationsReceive(value, valueTwo) {
|
||
var panel = formNotifications.getItem('formNotificationsReceivePanel');
|
||
|
||
if (panel) {
|
||
panel.setVisible(value);
|
||
if (value) {
|
||
panel.enable();
|
||
} else {
|
||
panel.disable();
|
||
}
|
||
}
|
||
|
||
if (value) {
|
||
formNotifications.getField('tas_receive_message_type').setValue(valueTwo);
|
||
visibleContentTypeReceive(valueTwo);
|
||
}
|
||
formNotifications.getField('tas_receive_last_email').setValue(value ? '["1"]' : '[]');
|
||
formNotifications.getField('tas_receive_subject_message').setFocus();
|
||
}
|
||
|
||
/**
|
||
* Get value parsed
|
||
* @param valueCheckBox '["TRUE"]'/'["FALSE"]'
|
||
* @returns {string} "TRUE"/"FALSE"
|
||
*/
|
||
function getValueCheckBox(valueCheckBox) {
|
||
var optionSelected = JSON.parse(valueCheckBox),
|
||
valChecked;
|
||
valChecked = (Array.isArray(optionSelected) && optionSelected.length === 1) ? optionSelected[0] : stringFalse;
|
||
return valChecked;
|
||
}
|
||
|
||
function loadFormData(response) {
|
||
dataProperties = response.properties;
|
||
formDefinitions.getField('UID').setReadOnly(true);
|
||
formDefinitions.getField('UID').setValue(activity.id);
|
||
formDefinitions.getField('tas_title').setValue(dataProperties.tas_title);
|
||
formDefinitions.getField('tas_title').setFocus();
|
||
formDefinitions.getField('tas_description').setValue(dataProperties.tas_description);
|
||
formDefinitions.getField('tas_priority_variable').setValue(dataProperties.tas_priority_variable);
|
||
formDefinitions.getField('tas_derivation_screen_tpl').setValue(dataProperties.tas_derivation_screen_tpl);
|
||
|
||
formCaseLabels.getField('tas_def_title').setValue(dataProperties.tas_def_title);
|
||
formCaseLabels.getField('tas_def_description').setValue(dataProperties.tas_def_description);
|
||
|
||
if (dataProperties.tas_transfer_fly === 'FALSE') {
|
||
changeTimingControl(false);
|
||
} else {
|
||
changeTimingControl(true);
|
||
}
|
||
formTimingControl.getField('tas_duration').setValue(dataProperties.tas_duration);
|
||
formTimingControl.getField('tas_timeunit').setValue(dataProperties.tas_timeunit);
|
||
formTimingControl.getField('tas_type_day').setValue(dataProperties.tas_type_day);
|
||
formTimingControl.getField('tas_calendar').setValue(dataProperties.tas_calendar);
|
||
|
||
if (window.enterprise === "1") {
|
||
formTimingControl.getField('tas_average').setValue(dataProperties.tas_average);
|
||
formTimingControl.getField('tas_sdv').setValue(dataProperties.tas_sdv);
|
||
}
|
||
|
||
changeFormNotifications(dataProperties.tas_send_last_email === 'TRUE', dataProperties.tas_def_message_type);
|
||
changeFormNotificationsReceive(dataProperties.tas_receive_last_email === 'TRUE', dataProperties.tas_receive_message_type);
|
||
formNotifications.getField('tas_def_subject_message').setValue(dataProperties.tas_def_subject_message);
|
||
formNotifications.getField('tas_def_message_type').setValue(dataProperties.tas_def_message_type);
|
||
formNotifications.getField('tas_def_message').setValue(dataProperties.tas_def_message);
|
||
formNotifications.getField('tas_email_server_uid').setValue(dataProperties.tas_email_server_uid);
|
||
formNotifications.getField('tas_def_message_template').setValue(dataProperties.tas_def_message_template);
|
||
formNotifications.getField('tas_not_email_from_format').setValue(dataProperties.tas_not_email_from_format);
|
||
// receive
|
||
formNotifications.getField('tas_receive_subject_message').setValue(dataProperties.tas_receive_subject_message);
|
||
formNotifications.getField('tas_receive_message_type').setValue(dataProperties.tas_receive_message_type);
|
||
formNotifications.getField('tas_receive_message').setValue(dataProperties.tas_receive_message);
|
||
formNotifications.getField('tas_receive_server_uid').setValue(dataProperties.tas_receive_server_uid);
|
||
formNotifications.getField('tas_receive_message_template').setValue(dataProperties.tas_receive_message_template);
|
||
formNotifications.getField('tas_receive_email_from_format').setValue(dataProperties.tas_receive_email_from_format);
|
||
}
|
||
/*----------------------------------********---------------------------------*/
|
||
|
||
/**
|
||
* Set Visibility from second check(routeCaseMobile) and set value for false
|
||
* @param value
|
||
* @param valueTwo
|
||
*/
|
||
function changeFormOfflineMobile(data) {
|
||
// Offline setData parameters
|
||
var dataProperties = data.properties || null,
|
||
parseValue = dataProperties.tas_offline === stringTrue ? true : false;
|
||
|
||
enableTaskMobile.setValue(dataProperties.tas_offline === stringTrue ? arrayTrue : arrayFalse);
|
||
routeCaseMobile.setValue(dataProperties.tas_auto_root === stringTrue ? arrayTrue : arrayFalse);
|
||
onChangeMobileOffline(parseValue);
|
||
}
|
||
|
||
function onChangeMobileOffline(parseValue) {
|
||
if (typeof parseValue === "boolean" && !parseValue) {
|
||
routeCaseMobile.setValue(arrayFalse);
|
||
}
|
||
routeCaseMobile.setVisible(parseValue);
|
||
}
|
||
|
||
/****feature-begin*****/
|
||
function loadFeaturesConfiguration(response) {
|
||
var form, type, i, j, customGridData;
|
||
if (typeof response === 'undefined') {
|
||
abeForm.setItems([abeFields.template, abeFields.subject, abeFields.email, abeFields.emailFrom, abeFields.action, abeFields.note, abeFields.forceLogin]);
|
||
return;
|
||
}
|
||
for (i in response) {
|
||
switch (response[i]['feature']) {
|
||
case 'ActionsByEmail':
|
||
abeForm._form_data = response[i];
|
||
type = '';
|
||
if (typeof response[i]['ABE_TYPE'] !== 'undefined') {
|
||
type = response[i]['ABE_TYPE'];
|
||
}
|
||
abeFields.type.value = type;
|
||
for (j in abeFields) {
|
||
abeFields[j].value = (response[i][abeFields[j].name] || '');
|
||
}
|
||
switch (type) {
|
||
case '' :
|
||
abeForm.setItems([abeFields.type]);
|
||
break;
|
||
case 'LINK' :
|
||
abeForm.setItems([
|
||
abeFields.type,
|
||
abeFields.template,
|
||
abeFields.dynaform,
|
||
abeFields.subject,
|
||
abeFields.email,
|
||
abeFields.emailFrom,
|
||
abeFields.note,
|
||
abeFields.forceLogin]);
|
||
abeForm.getField('ABE_CASE_NOTE_IN_RESPONSE').setValue(abeFields.note.value);
|
||
abeForm.getField("ABE_FORCE_LOGIN").setValue(abeFields.forceLogin.value);
|
||
break;
|
||
case 'FIELD' :
|
||
abeForm.setItems([
|
||
abeFields.type,
|
||
abeFields.template,
|
||
abeFields.dynaform,
|
||
abeFields.subject,
|
||
abeFields.email,
|
||
abeFields.action,
|
||
abeFields.emailFrom,
|
||
abeFields.note,
|
||
abeFields.forceLogin]);
|
||
abeForm.getField('ABE_CASE_NOTE_IN_RESPONSE').setValue(abeFields.note.value);
|
||
abeForm.getField("ABE_FORCE_LOGIN").setValue(abeFields.forceLogin.value);
|
||
break;
|
||
case 'RESPONSE' :
|
||
abeForm.setItems([
|
||
abeFields.type,
|
||
abeFields.emailFrom,
|
||
abeFields.email,
|
||
abeFields.subject,
|
||
abeFields.template,
|
||
abeFields.action,
|
||
abeFields.body,
|
||
abeFields.receiverAccount,
|
||
abeFields.note,
|
||
abeFields.customGrid]);
|
||
abeForm.getField("ABE_CASE_NOTE_IN_RESPONSE").setValue(abeFields.note.value);
|
||
|
||
customGridData = response[i].ABE_CUSTOM_GRID;
|
||
customGrid.setDataItems(customGridData);
|
||
|
||
break;
|
||
case 'CUSTOM' :
|
||
abeForm.setItems([
|
||
abeFields.type,
|
||
abeFields.emailFrom,
|
||
abeFields.email,
|
||
abeFields.subject,
|
||
abeFields.template,
|
||
abeFields.action,
|
||
abeFields.note,
|
||
abeFields.forceLogin,
|
||
abeFields.customGrid]);
|
||
abeForm.getField("ABE_CASE_NOTE_IN_RESPONSE").setValue(abeFields.note.value);
|
||
abeForm.getField("ABE_FORCE_LOGIN").setValue(abeFields.forceLogin.value);
|
||
|
||
customGridData = response[i].ABE_CUSTOM_GRID;
|
||
customGrid.setDataItems(customGridData);
|
||
|
||
break;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
processDataProperties = function (properties) {
|
||
var fields = properties.form.getFields(), i;
|
||
properties.data['_features'] = (properties.data['_features'] || {});
|
||
|
||
if (typeof properties.form._form_data === 'undefined') {
|
||
properties.form._form_data = {};
|
||
properties.form._form_data['ABE_UID'] = '';
|
||
properties.form._form_data['PRO_UID'] = PMDesigner.project.id;
|
||
properties.form._form_data['TAS_UID'] = activity.id;
|
||
}
|
||
|
||
properties.data['_features'][properties.feature] = {
|
||
'type': properties.type,
|
||
'fields': {
|
||
'ABE_UID': properties.form._form_data['ABE_UID'],
|
||
'ABE_TYPE': 'FIELD',
|
||
'PRO_UID': properties.form._form_data['PRO_UID'],
|
||
'TAS_UID': properties.form._form_data['TAS_UID']
|
||
}
|
||
};
|
||
for (i in fields) {
|
||
properties.data
|
||
['_features']
|
||
[properties.feature]
|
||
['fields']
|
||
[fields[i].name] = fields[i].getValue();
|
||
}
|
||
return properties.data;
|
||
};
|
||
|
||
function loadStepsConsolidated(response) {
|
||
var field = formConsolidated.getField('consolidated_dynaform'), i;
|
||
field.clearOptions();
|
||
field.addOption({
|
||
value: '',
|
||
label: '- None -'.translate()
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (response[i].step_type_obj == "DYNAFORM") {
|
||
field.addOption({
|
||
value: response[i].step_uid_obj,
|
||
label: response[i].obj_title
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
function loadFormConsolidate(response) {
|
||
if (response.rep_tab_uid != '') {
|
||
formConsolidated.getField('consolidated_report_table').setValue(response.rep_tab_uid);
|
||
formConsolidated.getField('consolidated_dynaform').setValue(response.dyn_uid);
|
||
changeConsolidated(true);
|
||
} else {
|
||
changeConsolidated(false);
|
||
}
|
||
formConsolidated.getField('consolidated_table').setValue(response.rep_tab_name);
|
||
formConsolidated.getField('consolidated_title').setValue(response.con_value);
|
||
}
|
||
|
||
/****feature-end*****/
|
||
/*----------------------------------********---------------------------------*/
|
||
function loadCalendar(response) {
|
||
var field = formTimingControl.getField('tas_calendar'), i;
|
||
field.clearOptions();
|
||
field.addOption({
|
||
value: '',
|
||
label: '- None -'.translate()
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
field.addOption({
|
||
value: response[i].cal_uid,
|
||
label: response[i].cal_name
|
||
});
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Loads the template from rest service response
|
||
* @param response
|
||
* @param fieldName
|
||
*/
|
||
function loadTemplate(response, fieldName) {
|
||
var field = formNotifications.getField(fieldName), i, field2;
|
||
field.clearOptions();
|
||
field.addOption({
|
||
value: 'alert_message.html',
|
||
label: '-- Default --'.translate()
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
field.addOption({
|
||
value: response[i].prf_filename,
|
||
label: response[i].prf_filename
|
||
});
|
||
}
|
||
field2 = formDefinitions.getField('tas_derivation_screen_tpl');
|
||
field2.clearOptions();
|
||
field2.addOption({
|
||
value: '',
|
||
label: '-- Default --'.translate()
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (response[i].prf_filename !== 'alert_message.html') {
|
||
field2.addOption({
|
||
value: response[i].prf_filename,
|
||
label: response[i].prf_filename
|
||
});
|
||
}
|
||
}
|
||
};
|
||
/**
|
||
* Load Email account server dropdown options
|
||
* @param response
|
||
*/
|
||
function loadEmailAccount(response, fieldName) {
|
||
var field = formNotifications.getField(fieldName) || null,
|
||
i;
|
||
if (response instanceof Array && field) {
|
||
for (i = 0; i < response.length; i += 1) {
|
||
field.addOption({
|
||
value: response[i].mess_uid,
|
||
label: response[i].mess_engine === "MAIL" ?
|
||
response[i].mess_from_name && response[i].mess_from_name !== "" ?
|
||
response[i].mess_from_name : defaultServerlabel : response[i].mess_from_name && response[i].mess_from_name !== "" ?
|
||
response[i].mess_from_name + ' <' + response[i].mess_account + '>' : ' <' + response[i].mess_account + '>'
|
||
});
|
||
}
|
||
}
|
||
};
|
||
|
||
function loadABETemplateField(templates) {
|
||
var templateField = abeForm.getField('ABE_TEMPLATE'), i;
|
||
for (i in templates) {
|
||
if (templateField !== null) {
|
||
templateField.addOption({
|
||
value: templates[i].FIELD,
|
||
label: templates[i].NAME
|
||
});
|
||
}
|
||
abeTemplates.options.push({
|
||
value: templates[i].FIELD,
|
||
label: templates[i].NAME
|
||
});
|
||
}
|
||
};
|
||
/**
|
||
* Loads the email accounts settings
|
||
* @param response
|
||
*/
|
||
function loadABEmailAccount(response) {
|
||
var accountField = abeForm.getField('ABE_EMAIL_SERVER_UID') || null,
|
||
i;
|
||
|
||
if (response instanceof Array) {
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (accountField !== null) {
|
||
accountField.addOption({
|
||
value: response[i].mess_uid,
|
||
label: response[i].mess_engine === "MAIL" ?
|
||
response[i].mess_from_name && response[i].mess_from_name !== "" ?
|
||
response[i].mess_from_name : defaultServerlabel : response[i].mess_from_name && response[i].mess_from_name !== "" ?
|
||
response[i].mess_from_name + ' <' + response[i].mess_account + '>' : ' <' + response[i].mess_account + '>'
|
||
});
|
||
}
|
||
abeEmailAcount.options.push({
|
||
value: response[i].mess_uid,
|
||
label: response[i].mess_engine === "MAIL" ?
|
||
response[i].mess_from_name && response[i].mess_from_name !== "" ?
|
||
response[i].mess_from_name : defaultServerlabel : response[i].mess_from_name && response[i].mess_from_name !== "" ?
|
||
response[i].mess_from_name + ' <' + response[i].mess_account + '>' : ' <' + response[i].mess_account + '>'
|
||
});
|
||
}
|
||
}
|
||
|
||
};
|
||
|
||
/**
|
||
* Loads the IMAP email accounts settings
|
||
* @param response
|
||
*/
|
||
function loadABImapEmailAccount(response) {
|
||
var accountField = abeForm.getField('ABE_RECEIVER_EMAIL_SERVER_UID') || null,
|
||
i;
|
||
|
||
if (response instanceof Array) {
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (response[i].mess_engine === "IMAP" || response[i].mess_engine === "GMAILAPI" || response[i].mess_engine === "OFFICE365API") {
|
||
if (accountField !== null) {
|
||
accountField.addOption({
|
||
value: response[i].mess_uid,
|
||
label: response[i].mess_from_name && response[i].mess_from_name !== "" ?
|
||
response[i].mess_from_name + ' <' + response[i].mess_account + '>' : ' <' + response[i].mess_account + '>'
|
||
});
|
||
}
|
||
abeReceiverAccount.options.push({
|
||
value: response[i].mess_uid,
|
||
label: response[i].mess_from_name && response[i].mess_from_name !== "" ?
|
||
response[i].mess_from_name + ' <' + response[i].mess_account + '>' : ' <' + response[i].mess_account + '>'
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
};
|
||
|
||
function loadABEDynaformField(dynaforms) {
|
||
var dynaformField = abeForm.getField('DYN_UID'), i;
|
||
for (i in dynaforms) {
|
||
if (dynaformField !== null) {
|
||
dynaformField.addOption({
|
||
value: dynaforms[i].DYN_UID,
|
||
label: dynaforms[i].DYN_NAME
|
||
});
|
||
}
|
||
abeDynaforms.options.push({
|
||
value: dynaforms[i].DYN_UID,
|
||
label: dynaforms[i].DYN_NAME
|
||
});
|
||
}
|
||
}
|
||
|
||
function loadServerData() {
|
||
var restClient, i;
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: {
|
||
"formconfig": {
|
||
"url": 'project/' + PMDesigner.project.id + '/activity/' + activity.id,
|
||
"method": 'GET'
|
||
},
|
||
"calendar": {
|
||
"url": 'calendar',
|
||
"method": 'GET'
|
||
},
|
||
"templates": {
|
||
"url": 'project/' + PMDesigner.project.id + '/file-manager?path=templates',
|
||
"method": 'GET'
|
||
},
|
||
"emailserver": {
|
||
"url": 'project/' + PMDesigner.project.id + '/email-event/accounts/emailServer',
|
||
"method": 'GET'
|
||
}
|
||
}
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
loadTemplate(response["templates"].response, 'tas_def_message_template');
|
||
loadTemplate(response["templates"].response, 'tas_receive_message_template');
|
||
loadCalendar(response["calendar"].response);
|
||
loadFormData(response["formconfig"].response);
|
||
loadEmailAccount(response["emailserver"].response, 'tas_email_server_uid');
|
||
loadEmailAccount(response["emailserver"].response, 'tas_receive_server_uid');
|
||
|
||
/*----------------------------------********---------------------------------*/
|
||
/****features-begin****/
|
||
if (consolidated == '1') {
|
||
if(response["steps"]) {
|
||
loadStepsConsolidated(response["steps"].response);
|
||
}
|
||
if (response["consolidate"]){
|
||
loadFormConsolidate(response["consolidate"].response);
|
||
}
|
||
}
|
||
|
||
for (i in ENABLED_FEATURES) {
|
||
if (ENABLED_FEATURES[i] == 'zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=') {
|
||
changeFormOfflineMobile(response["formconfig"].response);
|
||
loadABEmailAccount(response["emailserver"].response);
|
||
loadABImapEmailAccount(response["emailserver"].response);
|
||
if (response["featureconfig"]) {
|
||
loadFeaturesConfiguration(response["featureconfig"].response);
|
||
}
|
||
if (response["abetemplates"]) {
|
||
loadABETemplateField(response["abetemplates"].response);
|
||
}
|
||
if (response['abedynaforms']) {
|
||
loadABEDynaformField(response['abedynaforms'].response);
|
||
}
|
||
}
|
||
}
|
||
/****features-end****/
|
||
/*----------------------------------********---------------------------------*/
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
if (consolidated == '1') {
|
||
$.extend(restClient.data.calls, {
|
||
"steps": {
|
||
'url': 'project/' + PMDesigner.project.id + '/activity/' + activity.id + '/steps',
|
||
'method': 'GET'
|
||
},
|
||
"consolidate": {
|
||
"url": 'consolidated/' + activity.id,
|
||
"method": 'GET'
|
||
}
|
||
});
|
||
}
|
||
/*----------------------------------********---------------------------------*/
|
||
/****features-begin****/
|
||
for (i in ENABLED_FEATURES) {
|
||
if (ENABLED_FEATURES[i] == 'zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=') {
|
||
$.extend(restClient.data.calls, {
|
||
"featureconfig": {
|
||
url: 'project/' + PMDesigner.project.id + '/activity/' + activity.id + '/feature-configuration/',
|
||
method: 'GET'
|
||
},
|
||
"abetemplates": {
|
||
"url": 'ActionsByEmail/Templates/' + PMDesigner.project.id,
|
||
"method": 'GET'
|
||
},
|
||
"abedynaforms": {
|
||
url: 'ActionsByEmail/Dynaforms/' + PMDesigner.project.id,
|
||
method: 'GET'
|
||
}
|
||
});
|
||
}
|
||
}
|
||
/****features-end****/
|
||
/*----------------------------------********---------------------------------*/
|
||
restClient.setBaseEndPoint('');
|
||
restClient.executeRestClient();
|
||
}
|
||
|
||
function visibleContentType(value) {
|
||
formNotifications.getField('tas_def_message_template').disable();
|
||
formNotifications.getField('tas_def_message').disable();
|
||
if (value === 'text') {
|
||
formNotifications.getField('tas_def_message').enable();
|
||
formNotifications.getField('tas_def_message').setVisible(true);
|
||
formNotifications.getField('tas_def_message_template').setVisible(false);
|
||
}
|
||
if (value === 'template') {
|
||
formNotifications.getField('tas_def_message_template').enable();
|
||
formNotifications.getField('tas_def_message').setVisible(false);
|
||
formNotifications.getField('tas_def_message_template').setVisible(true);
|
||
}
|
||
};
|
||
/**
|
||
* content type handler, enable or disable templates or message field
|
||
* @param value
|
||
*/
|
||
function visibleContentTypeReceive(value) {
|
||
formNotifications.getField('tas_receive_message_template').disable();
|
||
formNotifications.getField('tas_receive_message').disable();
|
||
if (value === 'text') {
|
||
formNotifications.getField('tas_receive_message').enable();
|
||
formNotifications.getField('tas_receive_message').setVisible(true);
|
||
formNotifications.getField('tas_receive_message_template').setVisible(false);
|
||
}
|
||
if (value === 'template') {
|
||
formNotifications.getField('tas_receive_message_template').enable();
|
||
formNotifications.getField('tas_receive_message').setVisible(false);
|
||
formNotifications.getField('tas_receive_message_template').setVisible(true);
|
||
}
|
||
};
|
||
function saveData() {
|
||
var tabPanel = windowProperties.getItem('windowPropertiesTabPanel'),
|
||
tabItems = tabPanel.getItems(),
|
||
valid = true,
|
||
panel,
|
||
tas_transfer_fly,
|
||
tas_send_last_email,
|
||
tas_receive_last_email,
|
||
dataCaseLabels,
|
||
dataDefinitions,
|
||
dataTimingControl,
|
||
dataNotification,
|
||
consolidated_enable,
|
||
message,
|
||
i;
|
||
|
||
/**Beging validations**/
|
||
//Validate data inside forms.
|
||
for (i = 0; i < tabItems.length; i += 1) {
|
||
panel = tabItems[i].getPanel();
|
||
if (panel instanceof PMUI.form.Form) {
|
||
valid = valid && panel.isValid();
|
||
} else {
|
||
if (panel.getID() === "ActionsByEmailPanel") {
|
||
if (!abeForm.isValid()) {
|
||
valid = false;
|
||
}
|
||
}
|
||
}
|
||
if (!valid) {
|
||
tabItems[i].select();
|
||
return;
|
||
}
|
||
}
|
||
/**End validations**/
|
||
|
||
/*----------------------------------********---------------------------------*/
|
||
/****features-begin****/
|
||
if (abeFields && abeFields.type.value === 'FIELD' && abeFields.action.value === '') {
|
||
$(abeFields.action.getHTML()).find('.pmui-field-message span').css('display', 'block');
|
||
return;
|
||
}
|
||
/****features-end****/
|
||
/*----------------------------------********---------------------------------*/
|
||
|
||
tas_transfer_fly = formTimingControl.getField('tas_transfer_fly').getValue() === '["1"]';
|
||
tas_send_last_email = formNotifications.getField('tas_send_last_email').getValue() === '["1"]';
|
||
tas_receive_last_email = formNotifications.getField('tas_receive_last_email').getValue() === '["1"]';
|
||
|
||
if (tas_transfer_fly !== false) {
|
||
var a = formTimingControl.getField('tas_transfer_fly').getValue();
|
||
formTimingControl.reset();
|
||
formTimingControl.getField('tas_transfer_fly').setValue(a);
|
||
formTimingControl.getField('tas_duration').setValue('1');
|
||
formTimingControl.getField('tas_timeunit').setValue('DAYS');
|
||
formTimingControl.getField('tas_type_day').setValue('');
|
||
formTimingControl.getField('tas_calendar').setValue('');
|
||
}
|
||
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1)) {
|
||
dataDefinitions = getData2PMUI(formDefinitions.html);
|
||
dataCaseLabels = getData2PMUI(formCaseLabels.html);
|
||
dataTimingControl = getData2PMUI(formTimingControl.html);
|
||
dataNotification = getData2PMUI(formNotifications.html);
|
||
if (!dataCaseLabels) {
|
||
dataCaseLabels = {};
|
||
}
|
||
if (!dataTimingControl) {
|
||
dataTimingControl = {};
|
||
}
|
||
if (!dataNotification) {
|
||
dataNotification = {};
|
||
}
|
||
} else {
|
||
dataDefinitions = formDefinitions.getData();
|
||
dataCaseLabels = formCaseLabels.getData();
|
||
dataTimingControl = formTimingControl.getData();
|
||
dataNotification = formNotifications.getData();
|
||
}
|
||
|
||
if (dataDefinitions['tas_title']) {
|
||
dataProperties.tas_title = dataDefinitions['tas_title'];
|
||
}
|
||
if (dataDefinitions['tas_description']) {
|
||
dataProperties.tas_description = dataDefinitions['tas_description'];
|
||
}
|
||
if (dataDefinitions['tas_priority_variable'] || typeof dataDefinitions['tas_priority_variable'] == "string") {
|
||
dataProperties.tas_priority_variable = dataDefinitions['tas_priority_variable'];
|
||
}
|
||
if (dataDefinitions['tas_derivation_screen_tpl'] || dataDefinitions['tas_derivation_screen_tpl'] == "") {
|
||
dataProperties.tas_derivation_screen_tpl = dataDefinitions['tas_derivation_screen_tpl'];
|
||
}
|
||
dataProperties.tas_def_title = dataCaseLabels['tas_def_title'];
|
||
dataProperties.tas_def_description = dataCaseLabels['tas_def_description'];
|
||
dataProperties.tas_transfer_fly = tas_transfer_fly ? 'TRUE' : 'FALSE';
|
||
if (dataTimingControl['tas_duration']) {
|
||
dataProperties.tas_duration = dataTimingControl['tas_duration'];
|
||
}
|
||
if (dataTimingControl['tas_timeunit']) {
|
||
dataProperties.tas_timeunit = dataTimingControl['tas_timeunit'];
|
||
}
|
||
if (dataTimingControl['tas_type_day']) {
|
||
dataProperties.tas_type_day = dataTimingControl['tas_type_day'];
|
||
}
|
||
if (dataTimingControl['tas_calendar']) {
|
||
dataProperties.tas_calendar = dataTimingControl['tas_calendar'];
|
||
}
|
||
dataProperties.tas_send_last_email = tas_send_last_email ? 'TRUE' : 'FALSE';
|
||
if (dataNotification['tas_not_email_from_format']) {
|
||
dataProperties.tas_not_email_from_format = dataNotification['tas_not_email_from_format'];
|
||
}
|
||
if (dataNotification['tas_def_subject_message']) {
|
||
dataProperties.tas_def_subject_message = dataNotification['tas_def_subject_message'];
|
||
}
|
||
if (dataNotification['tas_def_message_type']) {
|
||
dataProperties.tas_def_message_type = dataNotification['tas_def_message_type'];
|
||
}
|
||
if (dataNotification['tas_def_message']) {
|
||
dataProperties.tas_def_message = dataNotification['tas_def_message'];
|
||
}
|
||
if (dataNotification['tas_def_message_template']) {
|
||
dataProperties.tas_def_message_template = dataNotification['tas_def_message_template'];
|
||
}
|
||
if (dataNotification['tas_email_server_uid'] !== 'undefined' && dataNotification['tas_email_server_uid'] !== null) {
|
||
dataProperties.tas_email_server_uid = dataNotification['tas_email_server_uid'];
|
||
}
|
||
|
||
dataProperties.tas_receive_last_email = tas_receive_last_email ? 'TRUE' : 'FALSE';
|
||
if (dataNotification['tas_receive_email_from_format']) {
|
||
dataProperties.tas_receive_email_from_format = dataNotification['tas_receive_email_from_format'];
|
||
}
|
||
if (dataNotification['tas_receive_server_uid'] !== 'undefined' && dataNotification['tas_receive_server_uid'] !== null) {
|
||
dataProperties.tas_receive_server_uid = dataNotification['tas_receive_server_uid'];
|
||
}
|
||
if (dataNotification['tas_receive_subject_message']) {
|
||
dataProperties.tas_receive_subject_message = dataNotification['tas_receive_subject_message'];
|
||
}
|
||
if (dataNotification['tas_receive_message_type']) {
|
||
dataProperties.tas_receive_message_type = dataNotification['tas_receive_message_type'];
|
||
}
|
||
if (dataNotification['tas_receive_message']) {
|
||
dataProperties.tas_receive_message = dataNotification['tas_receive_message'];
|
||
}
|
||
if (dataNotification['tas_receive_message_template']) {
|
||
dataProperties.tas_receive_message_template = dataNotification['tas_receive_message_template'];
|
||
}
|
||
/*----------------------------------********---------------------------------*/
|
||
/** features-start */
|
||
for (i in ENABLED_FEATURES) {
|
||
if (ENABLED_FEATURES[i] == 'zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=') {
|
||
dataProperties = processDataProperties({
|
||
'type': 'configuration',
|
||
'feature': abeForm.id,
|
||
'data': dataProperties,
|
||
'form': abeForm
|
||
});
|
||
if (abeForm.getField("ABE_TYPE").getValue() === "CUSTOM" || abeForm.getField("ABE_TYPE").getValue() === "RESPONSE") {
|
||
if (customGrid.getData().length == 0) {
|
||
message = new PMUI.ui.FlashMessage({
|
||
message: "At least one option must be filled.".translate(),
|
||
duration: 3000,
|
||
severity: 'error',
|
||
appendTo: windowProperties.footer
|
||
});
|
||
message.show();
|
||
return;
|
||
} else {
|
||
dataProperties._features.ActionsByEmail.fields.ABE_CUSTOM_GRID = customGrid.getData();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
// OffLine saveData parameters
|
||
dataProperties[enableTaskMobile.name] = getValueCheckBox(enableTaskMobile.getValue());
|
||
dataProperties[routeCaseMobile.name] = getValueCheckBox(routeCaseMobile.getValue());
|
||
|
||
|
||
/** features-end */
|
||
/*----------------------------------********---------------------------------*/
|
||
|
||
if (consolidated == '1') {
|
||
consolidated_enable = false;
|
||
if (formConsolidated.getField('consolidated_enable').getValue() == '["1"]') {
|
||
consolidated_enable = true;
|
||
if (!formConsolidated.isValid()) {
|
||
return;
|
||
}
|
||
}
|
||
dataProperties.consolidate_data = {
|
||
"consolidated_enable": consolidated_enable,
|
||
"consolidated_dynaform": formConsolidated.getField('consolidated_dynaform').getValue(),
|
||
"consolidated_table": formConsolidated.getField('consolidated_table').getValue(),
|
||
"consolidated_title": formConsolidated.getField('consolidated_title').getValue(),
|
||
"consolidated_report_table": formConsolidated.getField('consolidated_report_table').getValue()
|
||
};
|
||
}
|
||
|
||
(new PMRestClient({
|
||
endpoint: 'activity/' + activity.id,
|
||
typeRequest: 'update',
|
||
messageError: '',
|
||
data: {
|
||
definition: {},
|
||
properties: dataProperties
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
setNameActivity(dataProperties.tas_title);
|
||
windowProperties.close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'Task properties saved successfully'.translate(),
|
||
flashContainer: document.body
|
||
})).executeRestClient();
|
||
}
|
||
|
||
function setFocusTab(tab) {
|
||
var style;
|
||
$customGrid = $("#customGrid");
|
||
$customGrid.hide().appendTo($("#windowProperties").find(".pmui-window-body:eq(0)"));
|
||
|
||
if (tab.getTitle() === 'Definitions'.translate()) {
|
||
formDefinitions.getField('tas_title').setFocus();
|
||
}
|
||
if (tab.getTitle() === 'Case Labels'.translate()) {
|
||
formCaseLabels.getField('tas_def_title').setFocus();
|
||
style = $('#formCaseLabelsDescription .pmui-field-label').attr("style");
|
||
style = style + ' float: left;';
|
||
$('#formCaseLabelsDescription .pmui-field-label').attr("style", style);
|
||
}
|
||
if (tab.getTitle() === 'Timing Control'.translate()) {
|
||
formTimingControl.getField('tas_duration').setFocus();
|
||
}
|
||
if (tab.getTitle() === 'Notifications'.translate()) {
|
||
formNotifications.getField('tas_def_subject_message').setFocus();
|
||
style = $('#formNotificationsMessage .pmui-field-label').attr("style");
|
||
style = style + ' float: left;';
|
||
$('#formNotificationsMessage .pmui-field-label').attr("style", style);
|
||
|
||
style = $('#tas_receive_message .pmui-field-label').attr("style");
|
||
style = style + ' float: left;';
|
||
$('#tas_receive_message .pmui-field-label').attr("style", style);
|
||
}
|
||
if (tab.getTitle() === 'Actions by Email'.translate()) {
|
||
abeForm.getField("ABE_TYPE").onChange(abeForm.getField("ABE_TYPE").getValue());
|
||
}
|
||
}
|
||
|
||
function isDirty() {
|
||
return formDefinitions.isDirty() ||
|
||
formCaseLabels.isDirty() ||
|
||
formTimingControl.isDirty() ||
|
||
formNotifications.isDirty();
|
||
}
|
||
|
||
function setNameActivity(name) {
|
||
activity.setName(name);
|
||
activity.setActName(name);
|
||
PMDesigner.project.dirty = true;
|
||
}
|
||
|
||
windowProperties.open();
|
||
windowProperties.showFooter();
|
||
|
||
applyStyleWindowForm(windowProperties);
|
||
if (consolidated == '1') {
|
||
formConsolidated.getField('consolidated_report_table').setVisible(false);
|
||
}
|
||
/*----------------------------------********---------------------------------*/
|
||
/** features-start */
|
||
// validates if there is customGrid Action by Email grid
|
||
if (windowProperties.getItem('customGrid')) {
|
||
windowProperties.getItem('customGrid').setVisible(false);
|
||
}
|
||
/** features-end */
|
||
/*----------------------------------********---------------------------------*/
|
||
|
||
/**Builds the forms**/
|
||
//This is necessary to do because many elements are built dynamically.
|
||
var tabItems = propertiesTabs.getItems(), i;
|
||
for (i = 0; i < tabItems.length; i += 1) {
|
||
tabItems[i].select();
|
||
setFocusTab(tabItems[i]);
|
||
}
|
||
tabItems[0].select();
|
||
setFocusTab(tabItems[0]);
|
||
/**End builds the forms**/
|
||
|
||
function customDOM() {
|
||
$customGrid = $("#customGrid");
|
||
$customGrid.show().appendTo($("#customGridPanel").find("fieldset:eq(0)"));
|
||
document.getElementById("customGridPanel").style.width = "720px";
|
||
document.getElementById("customGridPanel").style.padding = "";
|
||
document.getElementById("customGridPanel").getElementsByTagName("fieldset")[0].style.width = "100%";
|
||
$(".pmui-gridpanel-footer").css({"text-align": "center", "margin-top": "10px", "width": "120%"});
|
||
$(".pmui-gridpanel-footer").removeClass("pmui-gridpanel-footer");
|
||
}
|
||
|
||
function clearAddOptionForm() {
|
||
abeAddOption.getField("abe_custom_value_add").setValue("");
|
||
abeAddOption.getField("abe_custom_label_add").setValue("");
|
||
abeAddOption.getField("abe_custom_format_add").setValue("");
|
||
abeAddOption.getField("buttonFieldCancel").setVisible(false);
|
||
abeAddOption.getField("buttonFieldAdd").setValue("Add".translate());
|
||
editRow = null;
|
||
};
|
||
function addAcceptedValue() {
|
||
var abeValue = abeAddOption.getField("abe_custom_value_add").getValue(),
|
||
abeLabel = abeAddOption.getField("abe_custom_label_add").getValue(),
|
||
abeFormat = abeAddOption.getField("abe_custom_format_add").getValue();
|
||
|
||
if (abeAddOption && !abeAddOption.isValid()) {
|
||
return;
|
||
}
|
||
|
||
if (!evaluateTags(abeFormat, 'validate')) {
|
||
return;
|
||
}
|
||
|
||
if (editRow === null) {
|
||
customGrid.addItem(new PMUI.grid.GridPanelRow({
|
||
data: {
|
||
abe_custom_value: abeValue,
|
||
abe_custom_label: abeLabel,
|
||
abe_custom_format: abeFormat
|
||
}
|
||
}));
|
||
} else {
|
||
editRow.setData({
|
||
abe_custom_value: abeValue,
|
||
abe_custom_label: abeLabel,
|
||
abe_custom_format: abeFormat
|
||
});
|
||
editRow = null;
|
||
abeAddOption.getField("buttonFieldCancel").setVisible(false);
|
||
abeAddOption.getField("buttonFieldAdd").setValue("Add".translate());
|
||
}
|
||
abeAddOption.getField("abe_custom_value_add").setValue("");
|
||
abeAddOption.getField("abe_custom_label_add").setValue("");
|
||
abeAddOption.getField("abe_custom_format_add").setValue("");
|
||
}
|
||
|
||
function customGridRowEdit(row) {
|
||
editRow = row;
|
||
row = row.getData();
|
||
if (abeAddOption) {
|
||
abeAddOption.getField("abe_custom_value_add").setValue(row.abe_custom_value);
|
||
abeAddOption.getField("abe_custom_label_add").setValue(row.abe_custom_label);
|
||
abeAddOption.getField("abe_custom_format_add").setValue(row.abe_custom_format);
|
||
abeAddOption.getField("buttonFieldCancel").setVisible(true);
|
||
abeAddOption.getField("buttonFieldAdd").setValue("Save".translate());
|
||
}
|
||
}
|
||
|
||
function evaluateTags(html, action) {
|
||
var oldHtml;
|
||
var tagBody = '(?:[^"\'>]|"[^"]*"|\'[^\']*\')*';
|
||
var pattern = /^[a-zA-Z0-9\s\[\]\.\-_#%;,=:()']*$/;
|
||
var tagOrComment = new RegExp(
|
||
'<(?:'
|
||
// Comment body.
|
||
+ '!--(?:(?:-*[^->])*--+|-?)'
|
||
// Special "raw text" elements whose content should be elided.
|
||
+ '|script\\b' + tagBody + '>[\\s\\S]*?</script\\s*'
|
||
+ '|style\\b' + tagBody + '>[\\s\\S]*?</style\\s*'
|
||
// Regular name
|
||
+ '|/?[a-z]'
|
||
+ tagBody
|
||
+ ')>',
|
||
'gi');
|
||
|
||
var action = (typeof action === 'undefined') ? 'delete' : 'validate';
|
||
if (action == "validate") {
|
||
return pattern.test(html);
|
||
} else {
|
||
do {
|
||
oldHtml = html;
|
||
html = html.replace(tagOrComment, '');
|
||
} while (html !== oldHtml);
|
||
return html.replace(/</g, '<');
|
||
}
|
||
}
|
||
};
|
||
|
||
var openCreateTemplates = false;
|
||
|
||
PMDesigner.ProcessFilesManager = function (processFileManagerOptionPath, optionCreation) {
|
||
var rowselected = {};
|
||
var rowselectedFile = {};
|
||
var typeSave = '';
|
||
var gridFilesManager;
|
||
var gridTemplate;
|
||
var gridPublic;
|
||
var formEdit;
|
||
var windowEdit;
|
||
var windowCode;
|
||
var editorHTML;
|
||
var formUpload;
|
||
var formUploadField;
|
||
var initTinyMCE = null;
|
||
var flagGridTemplate = true;
|
||
var flagGridPublic = true;
|
||
var presviusValueTiny = "";
|
||
var buttonEditClass = 'mafe-button-edit';
|
||
var buttonDeleteClass = 'mafe-button-delete';
|
||
var buttonPropertiesClass = 'mafe-button-properties';
|
||
|
||
var warningTemplate = new PMUI.ui.MessageWindow({
|
||
id: 'warningTemplate',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: 'Process Files Manager'.translate(),
|
||
message: 'Do you want to delete this file?'.translate(),
|
||
footerItems: [{
|
||
id: 'warningTemplateButtonNo',
|
||
text: 'No'.translate(),
|
||
handler: function () {
|
||
warningTemplate.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'warningTemplateButtonYes',
|
||
text: 'Yes'.translate(),
|
||
handler: function () {
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager/' + rowselectedFile.getData().prf_uid,
|
||
typeRequest: 'remove',
|
||
messageError: '',
|
||
functionSuccess: function (xhr, response) {
|
||
PMDesigner.msgFlash('File deleted successfully'.translate(), gridTemplate);
|
||
loadTemplate();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'File deleted successfully'.translate(),
|
||
flashContainer: gridTemplate
|
||
})).executeRestClient();
|
||
warningTemplate.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
var isDirtyUpload = function () {
|
||
if (formUpload.isDirty()) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Upload File".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
formUploadField.reset();
|
||
message_window.close();
|
||
windowUpload.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
windowUpload.close();
|
||
}
|
||
};
|
||
|
||
var isDirtyFormEdit = function () {
|
||
var fileContent = $(tinyMCE.activeEditor.getContent()).text().trim().length ? tinyMCE.activeEditor.getContent() : formEdit.getField("filecontent").getValue();
|
||
if (formEdit.isDirty() || fileContent !== presviusValueTiny) {
|
||
$(".mceSplitButtonMenu").each(function () {
|
||
if ($(this).is(":visible")) {
|
||
$(this).addClass("mrdk").hide();
|
||
}
|
||
});
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
width: 490,
|
||
windowMessageType: 'warning',
|
||
title: 'Process Files Manager'.translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
$(".mceSplitButtonMenu.mrdk").each(function () {
|
||
if ($(this).is(":hidden")) {
|
||
$(this).removeClass("mrdk").show();
|
||
}
|
||
});
|
||
message_window.close();
|
||
windowFilesManager.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
|
||
if (clickedClose) {
|
||
windowEdit.close();
|
||
} else {
|
||
windowEdit.close();
|
||
windowFilesManager.open();
|
||
}
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
if (clickedClose) {
|
||
windowEdit.close();
|
||
} else {
|
||
windowEdit.close();
|
||
windowFilesManager.open();
|
||
}
|
||
}
|
||
};
|
||
|
||
var warningPublic = new PMUI.ui.MessageWindow({
|
||
id: 'warningPublic',
|
||
title: 'Process Files Manager'.translate(),
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
message: 'Do you want to delete this file?'.translate(),
|
||
footerItems: [{
|
||
id: 'warningPublicButtonNo',
|
||
text: 'No'.translate(),
|
||
handler: function () {
|
||
warningPublic.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'warningPublicButtonYes',
|
||
text: 'Yes'.translate(),
|
||
handler: function () {
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager/' + rowselectedFile.getData().prf_uid,
|
||
typeRequest: 'remove',
|
||
messageError: '',
|
||
functionSuccess: function (xhr, response) {
|
||
loadPublic();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageSuccess: 'File deleted successfully'.translate(),
|
||
flashContainer: gridPublic
|
||
})).executeRestClient();
|
||
warningPublic.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
var windowFilesManager = new PMUI.ui.Window({
|
||
id: 'windowFilesManager',
|
||
title: 'Process Files Manager'.translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
items: [
|
||
gridFilesManager = new PMUI.grid.GridPanel({
|
||
id: 'gridFilesManager',
|
||
pageSize: 10,
|
||
width: "96%",
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
dataItems: {},
|
||
columns: [
|
||
{
|
||
title: 'Main Folders'.translate(),
|
||
dataType: 'string',
|
||
columnData: 'prf_path',
|
||
width: DEFAULT_WINDOW_WIDTH - 200,
|
||
alignmentCell: 'left',
|
||
sortable: true
|
||
},
|
||
{
|
||
id: 'filesGridViewCol',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'View'.translate(),
|
||
buttonStyle: {cssClasses: ['mafe-button-show']},
|
||
onButtonClick: function (row, grid) {
|
||
rowselected = row;
|
||
openFolder();
|
||
}
|
||
}
|
||
],
|
||
onRowClick: function (row, grid) {
|
||
rowselected = row;
|
||
openFolder();
|
||
}
|
||
})
|
||
]
|
||
});
|
||
var buttonNew = new PMUI.ui.Button({
|
||
id: 'createBtn',
|
||
text: 'Create'.translate(),
|
||
height: "38px",
|
||
width: 100,
|
||
style: {cssClasses: ['mafe-button-create']},
|
||
handler: function (event) {
|
||
newfile();
|
||
}
|
||
});
|
||
var gridTemplate = new PMUI.grid.GridPanel({
|
||
id: 'gridTemplate',
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
pageSize: 10,
|
||
width: '96%',
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
tableContainerHeight: 374,
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
dataItems: {},
|
||
columns: [{
|
||
title: "TEMPLATES".translate(),
|
||
dataType: 'string',
|
||
columnData: 'prf_filename',
|
||
width: '500px',
|
||
alignmentCell: 'left',
|
||
sortable: true
|
||
}, {
|
||
dataType: 'string',
|
||
columnData: 'prf_uid',
|
||
alignmentCell: 'left',
|
||
visible: false
|
||
}, {
|
||
dataType: 'string',
|
||
columnData: 'prf_content',
|
||
alignmentCell: 'left',
|
||
visible: false
|
||
}, {
|
||
id: 'gridTemplateButtonHtmlEditor',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Html Editor'.translate(),
|
||
width: '106px',
|
||
onButtonClick: function (row, grid) {
|
||
openHtmlEditor(row);
|
||
},
|
||
buttonStyle: {cssClasses: [buttonEditClass]}
|
||
}, {
|
||
id: 'gridTemplateButtonRichTextEditor',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Rich Text'.translate(),
|
||
width: '100px',
|
||
onButtonClick: function (row, grid) {
|
||
presviusValueTiny = row.getData().prf_content ? row.getData().prf_content : "";
|
||
rowselectedFile = row;
|
||
editfile();
|
||
},
|
||
buttonStyle: {cssClasses: [buttonEditClass]}
|
||
}, {
|
||
id: 'gridTemplateButtonDownload',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Download'.translate(),
|
||
width: '100px',
|
||
onButtonClick: function (row, grid) {
|
||
rowselectedFile = row;
|
||
download();
|
||
},
|
||
buttonStyle: {cssClasses: [buttonPropertiesClass]}
|
||
}, {
|
||
id: 'gridTemplateButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Delete'.translate(),
|
||
width: '82px',
|
||
onButtonClick: function (row, grid) {
|
||
rowselectedFile = row;
|
||
warningTemplate.open();
|
||
warningTemplate.showFooter();
|
||
},
|
||
buttonStyle: {cssClasses: [buttonDeleteClass]}
|
||
}
|
||
]
|
||
});
|
||
var buttonPublicCreate = new PMUI.ui.Button({
|
||
id: 'buttonPublicCreate',
|
||
text: 'Create'.translate(),
|
||
height: "38px",
|
||
width: 100,
|
||
style: {cssClasses: ['mafe-button-create']},
|
||
handler: function (event) {
|
||
newfile();
|
||
}
|
||
|
||
});
|
||
var buttonUpload = new PMUI.ui.Button({
|
||
id: 'uploadBtn',
|
||
text: 'Upload'.translate(),
|
||
style: {cssClasses: ['mafe-button-upload'], cssProperties: {'margin-right': '5px', 'float': 'none'}},
|
||
handler: function (event) {
|
||
windowUpload.open();
|
||
applyStyleWindowForm(windowUpload);
|
||
|
||
}
|
||
});
|
||
var gridPublic = new PMUI.grid.GridPanel({
|
||
id: 'gridPublic',
|
||
pageSize: 10,
|
||
width: '96%',
|
||
style: {
|
||
cssClasses: ["mafe-gridPanel"]
|
||
},
|
||
emptyMessage: 'No records found'.translate(),
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 374,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
dataItems: {},
|
||
columns: [{
|
||
title: "PUBLIC".translate(),
|
||
dataType: 'string',
|
||
columnData: 'prf_filename',
|
||
width: '704px',
|
||
alignmentCell: 'left',
|
||
sortable: true
|
||
}, {
|
||
dataType: 'string',
|
||
columnData: 'prf_uid',
|
||
alignmentCell: 'left',
|
||
visible: false
|
||
}, {
|
||
id: 'gridPublicButtonDownload',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Download'.translate(),
|
||
width: '111px',
|
||
onButtonClick: function (row, grid) {
|
||
rowselectedFile = row;
|
||
download();
|
||
},
|
||
buttonStyle: {cssClasses: ['mafe-button-properties']}
|
||
}, {
|
||
id: 'gridPublicButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Delete'.translate(),
|
||
width: '82px',
|
||
onButtonClick: function (row, grid) {
|
||
rowselectedFile = row;
|
||
warningPublic.open();
|
||
warningPublic.showFooter();
|
||
},
|
||
buttonStyle: {cssClasses: ['mafe-button-delete']}
|
||
}
|
||
]
|
||
});
|
||
var windowUpload = new PMUI.ui.Window({
|
||
id: 'windowUpload',
|
||
title: 'Upload File'.translate(),
|
||
height: 200,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
onBeforeClose: function () {
|
||
isDirtyUpload();
|
||
},
|
||
items: [
|
||
formUpload = new PMUI.form.Form({
|
||
id: 'formUpload',
|
||
visibleHeader: false,
|
||
items: [
|
||
formUploadField = new PMUI.field.UploadField({
|
||
id: 'formUploadField',
|
||
label: 'File'.translate(),
|
||
name: 'prf_file',
|
||
multiple: false,
|
||
labelWidth: '25%',
|
||
accept: 'text/html',
|
||
controlsWidth: 300
|
||
})
|
||
]
|
||
})
|
||
],
|
||
visibleFooter: true,
|
||
buttonPanelPosition: 'bottom',
|
||
buttonsPosition: 'right',
|
||
buttons: [{
|
||
id: 'windowUploadButtonCancel',
|
||
text: 'Cancel'.translate(),
|
||
handler: function () {
|
||
isDirtyUpload();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'windowUploadButtonUpload',
|
||
text: 'Upload'.translate(),
|
||
handler: function () {
|
||
uploadFile();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
/**
|
||
* Create window TinyMCE
|
||
*/
|
||
function createWindowTinyMCE() {
|
||
windowEdit = new PMUI.ui.Window({
|
||
id: 'windowEdit',
|
||
title: '',
|
||
height: DEFAULT_WINDOW_HEIGHT - 80,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
onBeforeClose: function () {
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
clickedClose = true;
|
||
isDirtyFormEdit();
|
||
},
|
||
items: [
|
||
formEdit = new PMUI.form.Form({
|
||
id: 'formEdit',
|
||
visibleHeader: false,
|
||
width: 900,
|
||
items: [
|
||
new PMUI.field.TextField({
|
||
id: 'filename',
|
||
name: 'filename',
|
||
label: 'Filename'.translate(),
|
||
placeholder: 'Insert file name'.translate(),
|
||
required: true,
|
||
valueType: 'string',
|
||
labelWidth: "15%",
|
||
controlsWidth: 300,
|
||
validators: [{
|
||
pmType: "regexp",
|
||
criteria: /^[a-zA-Z0-9-_ ]*$/,
|
||
errorMessage: "File name is invalid".translate()
|
||
}]
|
||
}),
|
||
new PMUI.field.TextAreaField({
|
||
id: 'filecontent',
|
||
name: 'filecontent',
|
||
label: 'Content'.translate(),
|
||
value: '',
|
||
rows: 210,
|
||
labelWidth: "15%",
|
||
controlsWidth: 720,
|
||
onChange: function (currentValue, previousValue) {
|
||
},
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
})
|
||
]
|
||
})
|
||
],
|
||
buttonPanelPosition: 'bottom',
|
||
buttonsPosition: 'right',
|
||
buttons: [{
|
||
id: 'windowEditButtonCancel',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
handler: function () {
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
clickedClose = false;
|
||
isDirtyFormEdit();
|
||
}
|
||
}, {
|
||
id: 'windowEditButtonSave',
|
||
text: "Save".translate(),
|
||
buttonType: 'success',
|
||
handler: function () {
|
||
if (formEdit.isValid()) {
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
$(".mceSplitButtonMenu").hide();
|
||
save();
|
||
}
|
||
}
|
||
}
|
||
]
|
||
});
|
||
formEdit.getField('filename').enable();
|
||
formEdit.getField('filecontent').getControls()[0].getHTML().className = 'tmceEditor';
|
||
windowEdit.open();
|
||
windowEdit.showFooter();
|
||
applyStyleWindowForm(windowEdit);
|
||
tinyMCE.init({
|
||
editor_selector: 'tmceEditor',
|
||
mode: 'specific_textareas',
|
||
directionality: 'ltr',
|
||
verify_html: false,
|
||
skin: 'o2k7',
|
||
theme: 'advanced',
|
||
skin_variant: 'silver',
|
||
relative_urls : false,
|
||
remove_script_host : false,
|
||
theme_advanced_source_editor_width: DEFAULT_WINDOW_WIDTH - 50,
|
||
theme_advanced_source_editor_height: DEFAULT_WINDOW_HEIGHT - 100,
|
||
plugins: "advhr,advimage,advlink,advlist,autolink,autoresize,contextmenu,directionality,emotions,example,example_dependency,fullpage,fullscreen,iespell,inlinepopups,insertdatetime,layer,legacyoutput,lists,media,nonbreaking,noneditable,pagebreak,paste,preview,print,save,searchreplace,style,tabfocus,table,template,visualblocks,visualchars,wordcount,xhtmlxtras,pmSimpleUploader,pmVariablePicker,style",
|
||
theme_advanced_buttons1: 'pmSimpleUploader,|,pmVariablePicker,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontselect,fontsizeselect,|,cut,copy,paste',
|
||
theme_advanced_buttons2: 'bullist,numlist,|,outdent,indent,blockquote,|,tablecontrols,|,undo,redo,|,link,unlink,image,|,forecolor,backcolor,styleprops',
|
||
theme_advanced_buttons3: 'hr,removeformat,visualaid,|,sub,sup,|,ltr,rtl,|,code',
|
||
popup_css: "/js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialogTinyBpmn.css",
|
||
convert_urls: false,
|
||
onchange_callback: function (inst) {
|
||
formEdit.getField('filecontent').setValue(tinyMCE.activeEditor.getContent({format: 'raw'}));
|
||
},
|
||
handle_event_callback: function (e) {
|
||
},
|
||
setup: function (ed) {
|
||
ed.onSetContent.add(function (ed, l) {
|
||
formEdit.getField('filecontent').setValue(tinyMCE.activeEditor.getContent({format: 'raw'}));
|
||
});
|
||
},
|
||
oninit: function () {
|
||
tinyMCE.activeEditor.processID = PMDesigner.project.id;
|
||
}
|
||
});
|
||
validateKeysField(formEdit.getField('filename').getControls()[0].getHTML(), ['isbackspace', 'isnumber', 'isletter', 'isunderscore', 'ishyphen', 'isparenthesisopening', 'isparenthesisclosing']);
|
||
windowEdit.footer.getItems()[0].setHeight(38);
|
||
windowEdit.footer.getItems()[1].setHeight(38);
|
||
document.getElementById(windowEdit.footer.getItems()[0].id).style.lineHeight = '18px';
|
||
document.getElementById(windowEdit.footer.getItems()[1].id).style.lineHeight = '18px';
|
||
}
|
||
/**
|
||
* Create and open HTML Editor
|
||
*/
|
||
function openHtmlEditor(rowSelected) {
|
||
var buttonCancel,
|
||
buttonSave,
|
||
contentHTML,
|
||
rowData = rowSelected.getData(),
|
||
factorWidth = 0.9,
|
||
factorHeight = 0.7;
|
||
|
||
//CodeMirror
|
||
editorHTML = new PMCodeMirror({
|
||
id: "editCodeHTML"
|
||
});
|
||
|
||
//Footer´s buttons
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'saveHtmlEditor',
|
||
text: "Apply".translate(),
|
||
buttonType: 'success',
|
||
handler: function (event) {
|
||
saveHtmlEditor();
|
||
}
|
||
});
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'cancelHtmlEditor',
|
||
text: "Cancel".translate(),
|
||
buttonType: 'error',
|
||
handler: function (event) {
|
||
windowCode.close();
|
||
}
|
||
});
|
||
//Create Window with Code Mirror
|
||
windowCode = new PMUI.ui.Window({
|
||
id: 'windowCode',
|
||
title: 'HTML Editor'.translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT * 0.9,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
footerItems: [
|
||
buttonCancel,
|
||
buttonSave
|
||
],
|
||
buttonPanelPosition: "bottom",
|
||
footerAlign: "right"
|
||
});
|
||
|
||
windowCode.open();
|
||
windowCode.showFooter();
|
||
windowCode.addItem(editorHTML);
|
||
contentHTML = $.isPlainObject(rowData) && !$.isEmptyObject(rowData) ? rowData.prf_content : "";
|
||
editorHTML.cm.setSize(windowCode.getWidth() * factorWidth, windowCode.getHeight() * factorHeight);
|
||
editorHTML.cm.setValue(contentHTML);
|
||
editorHTML.related_row = rowData.prf_uid;
|
||
|
||
// Apply styles
|
||
$(".CodeMirror.cm-s-default.CodeMirror-wrap").css({
|
||
"margin": "10px 0 0 20px",
|
||
"border": "1px solid #c0c0c0"
|
||
});
|
||
$(".CodeMirror.cm-s-default.CodeMirror-wrap").after($ctrlSpaceMessage.css({
|
||
"margin": "5px 5px 5px 20px"
|
||
}));
|
||
$(".pmui-window-body").css("overflow", "hidden");
|
||
editorHTML.cm.refresh();
|
||
}
|
||
|
||
function newfile() {
|
||
windowFilesManager.close();
|
||
|
||
initTinyMCE = function () {
|
||
tinyMCE.activeEditor.domainURL = "/sys" + WORKSPACE + "/" + LANG + "/" + SKIN + "/";
|
||
tinyMCE.activeEditor.processID = PMDesigner.project.id;
|
||
};
|
||
createWindowTinyMCE();
|
||
typeSave = 'new';
|
||
var title = (processFileManagerOptionPath == 'templates') ? "Create ".translate() + " " + processFileManagerOptionPath.substring(0, processFileManagerOptionPath.length - 1).translate() : "Create ".translate() + " " + processFileManagerOptionPath.translate() + " " + "file".translate();
|
||
windowEdit.setTitle(title.translate());
|
||
var closeElement = windowEdit.header.childNodes[1];
|
||
if (closeElement.addEventListener) {
|
||
closeElement.addEventListener("click", function () {
|
||
$(".mceSplitButtonMenu").hide();
|
||
}, false);
|
||
} else {
|
||
closeElement.attachEvent("click", function () {
|
||
$(".mceSplitButtonMenu").hide();
|
||
});
|
||
}
|
||
formEdit.setFocus();
|
||
}
|
||
|
||
function editfile() {
|
||
var title,
|
||
closeElement;
|
||
|
||
windowFilesManager.close();
|
||
initTinyMCE = function () {
|
||
tinyMCE.activeEditor.domainURL = "/sys" + WORKSPACE + "/" + LANG + "/" + SKIN + "/";
|
||
tinyMCE.activeEditor.processID = PMDesigner.project.id;
|
||
};
|
||
createWindowTinyMCE();
|
||
typeSave = 'update';
|
||
title = "Edit ".translate() + " " + processFileManagerOptionPath.substring(0, processFileManagerOptionPath.length - 1).translate();
|
||
if (windowEdit && formEdit) {
|
||
windowEdit.setTitle(title.translate());
|
||
closeElement = windowEdit.header.childNodes[1];
|
||
if (closeElement.addEventListener) {
|
||
closeElement.addEventListener("click", function () {
|
||
$(".mceSplitButtonMenu").hide();
|
||
}, false);
|
||
} else {
|
||
closeElement.attachEvent("click", function () {
|
||
$(".mceSplitButtonMenu").hide();
|
||
});
|
||
}
|
||
formEdit.getField('filename').getControl().setStyle({cssProperties: {"background": "#EEEEEE"}});
|
||
formEdit.getField('filename').disable();
|
||
formEdit.getField('filename').setValue(rowselectedFile.getData().prf_filename);
|
||
var a = rowselectedFile.getData().prf_content;
|
||
formEdit.getField('filecontent').setValue(a);
|
||
if (tinyMCE.activeEditor) {
|
||
tinyMCE.activeEditor.setContent(a);
|
||
}
|
||
}
|
||
}
|
||
|
||
function save() {
|
||
var flagAux;
|
||
|
||
if (!formEdit.isValid()) {
|
||
flagAux = formEdit.visible;
|
||
} else {
|
||
flagAux = formEdit.isValid();
|
||
}
|
||
|
||
if (flagAux) {
|
||
if (getData2PMUI(formEdit.html).filename == "") {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1)) {
|
||
var data = getData2PMUI(formEdit.html);
|
||
} else {
|
||
var data = formEdit.getData();
|
||
}
|
||
|
||
if (typeSave === 'new') {
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager',
|
||
typeRequest: 'post',
|
||
messageError: '',
|
||
data: {
|
||
prf_filename: data.filename + ".html",
|
||
prf_path: processFileManagerOptionPath,
|
||
prf_content: data.filecontent
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
windowEdit.close();
|
||
if (processFileManagerOptionPath == "templates") {
|
||
PMDesigner.msgFlash('File saved successfully'.translate(), gridTemplate);
|
||
windowFilesManager.open();
|
||
loadTemplate();
|
||
}
|
||
if (processFileManagerOptionPath == "public") {
|
||
PMDesigner.msgFlash('File saved successfully'.translate(), gridPublic);
|
||
windowFilesManager.open();
|
||
loadPublic();
|
||
}
|
||
formEdit.getField('filename').setValue('');
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
}
|
||
if (typeSave === 'update') {
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager/' + rowselectedFile.getData().prf_uid,
|
||
typeRequest: 'update',
|
||
messageError: '',
|
||
data: {
|
||
prf_content: tinyMCE.activeEditor.getContent()
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
windowEdit.close();
|
||
if (processFileManagerOptionPath == "templates") {
|
||
PMDesigner.msgFlash('File updated successfully'.translate(), gridTemplate);
|
||
windowFilesManager.open();
|
||
loadTemplate();
|
||
}
|
||
if (processFileManagerOptionPath == "public") {
|
||
PMDesigner.msgFlash('File updated successfully'.translate(), gridPublic);
|
||
windowFilesManager.open();
|
||
loadPublic();
|
||
}
|
||
formEdit.getField('filename').setValue('');
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
}
|
||
}
|
||
/**
|
||
* Save Content of the Html Editor
|
||
*/
|
||
function saveHtmlEditor() {
|
||
var index = 0,
|
||
codeMirror = windowCode.getItems()[index],
|
||
contentCodeMirror = codeMirror.getValue(),
|
||
rowRelatedUID = codeMirror.related_row,
|
||
request;
|
||
|
||
|
||
request = new PMRestClient({
|
||
endpoint: 'file-manager/' + rowRelatedUID,
|
||
typeRequest: 'update',
|
||
messageError: 'Error Update File'.translate(),
|
||
data: {
|
||
prf_content: contentCodeMirror
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
windowCode.close();
|
||
if (processFileManagerOptionPath == "templates") {
|
||
PMDesigner.msgFlash('File updated successfully'.translate(), gridTemplate);
|
||
windowFilesManager.open();
|
||
loadTemplate();
|
||
}
|
||
if (processFileManagerOptionPath == "public") {
|
||
PMDesigner.msgFlash('File updated successfully'.translate(), gridPublic);
|
||
windowFilesManager.open();
|
||
loadPublic();
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
request.executeRestClient();
|
||
}
|
||
|
||
function loadFileManager() {
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager',
|
||
typeRequest: 'get',
|
||
messageError: '',
|
||
functionSuccess: function (xhr, response) {
|
||
gridFilesManager.clearItems();
|
||
for (var i = 0; i < response.length; i++) {
|
||
gridFilesManager.addDataItem({prf_path: response[i].name});
|
||
}
|
||
if (openCreateTemplates) {
|
||
gridFilesManager.onRowClick(gridFilesManager.getItems()[0]);
|
||
newfile();
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
}
|
||
|
||
function loadTemplate() {
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager',
|
||
typeRequest: 'get',
|
||
messageError: '',
|
||
data: {
|
||
path: processFileManagerOptionPath,
|
||
get_content: true
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
gridTemplate.clearItems();
|
||
gridTemplate.clearItemsColumns();
|
||
for (var i = 0; i < response.length; i++) {
|
||
gridTemplate.addDataItem({
|
||
prf_filename: response[i].prf_filename,
|
||
prf_content: response[i].prf_content,
|
||
prf_uid: response[i].prf_uid,
|
||
prf_assigned_routing_screen: response[i].prf_derivation_screen
|
||
});
|
||
}
|
||
gridTemplate.sort('prf_filename', 'asc');
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
checkDerivationScreen();
|
||
}
|
||
|
||
function loadPublic() {
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager',
|
||
typeRequest: 'get',
|
||
messageError: '',
|
||
data: {
|
||
path: processFileManagerOptionPath,
|
||
get_content: false
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
gridPublic.clearItems();
|
||
for (var i = 0; i < response.length; i++) {
|
||
gridPublic.addDataItem({
|
||
prf_filename: response[i].prf_filename,
|
||
prf_uid: response[i].prf_uid
|
||
});
|
||
}
|
||
gridPublic.sort('prf_filename', 'asc');
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
}
|
||
|
||
function download() {
|
||
var xhr,
|
||
win = window,
|
||
value = 'blob',
|
||
url = HTTP_SERVER_HOSTNAME + '/api/1.0/' + WORKSPACE + '/project/' + PMDesigner.project.id + '/file-manager/' + rowselectedFile.getData().prf_uid + '/download';
|
||
|
||
if (win.XMLHttpRequest) {
|
||
xhr = new XMLHttpRequest();
|
||
} else if (win.ActiveXObject) {
|
||
xhr = new ActiveXObject('Microsoft.XMLHTTP');
|
||
}
|
||
win.URL = win.URL || win.webkitURL;
|
||
|
||
xhr.open('GET', url, true);
|
||
xhr.responseType = value;
|
||
xhr.setRequestHeader('Authorization', 'Bearer ' + PMDesigner.project.keys.access_token);
|
||
xhr.setRequestHeader ('Cache-Control', 'no-cache');
|
||
xhr.onload = function () {
|
||
if (this.status === 200) {
|
||
if (processFileManagerOptionPath == "templates") {
|
||
PMDesigner.msgFlash('Start file download successfully'.translate(), gridTemplate);
|
||
}
|
||
if (processFileManagerOptionPath == "public") {
|
||
PMDesigner.msgFlash('Start file download successfully'.translate(), gridPublic);
|
||
}
|
||
var doc = win.document, a = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'), event = doc.createEvent('MouseEvents');
|
||
event.initMouseEvent('click', true, false, win, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||
var blob = xhr.response;
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1) || (navigator.userAgent.indexOf("Edge") != -1)) {
|
||
window.navigator.msSaveBlob(blob, rowselectedFile.getData().prf_filename);
|
||
}
|
||
else {
|
||
a.href = win.URL.createObjectURL(blob);
|
||
a.download = rowselectedFile.getData().prf_filename;
|
||
a.dispatchEvent(event);
|
||
}
|
||
}
|
||
};
|
||
xhr.send()
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Upload file to Public Files or Templates
|
||
*/
|
||
function uploadFile() {
|
||
var fileSelector = formUploadField.getHTML().getElementsByTagName('input')[0],
|
||
formData = new FormData(),
|
||
xhr;
|
||
if (fileSelector.files.length === 0) {
|
||
PMDesigner.msgFlash('Please select a file to upload'.translate(), windowUpload.footer, "info");
|
||
return;
|
||
}
|
||
formData.append('form', fileSelector.files[0]);
|
||
xhr = new XMLHttpRequest();
|
||
xhr.open('POST', '/api/1.0/' + WORKSPACE + '/project/' + PMDesigner.project.id + '/process-files-manager/' + processFileManagerOptionPath, true);
|
||
xhr.setRequestHeader('Authorization', 'Bearer ' + PMDesigner.project.keys.access_token);
|
||
xhr.onload = function () {
|
||
var resp;
|
||
switch (xhr.status) {
|
||
case 200:
|
||
formUploadField.reset();
|
||
windowUpload.close();
|
||
if (processFileManagerOptionPath === "templates") {
|
||
PMDesigner.msgFlash('File uploaded successfully'.translate(), gridTemplate);
|
||
loadTemplate();
|
||
}
|
||
if (processFileManagerOptionPath === "public") {
|
||
PMDesigner.msgFlash('File uploaded successfully'.translate(), gridPublic);
|
||
loadPublic();
|
||
}
|
||
break;
|
||
default:
|
||
if (this.response) {
|
||
resp = JSON.parse(this.response);
|
||
PMDesigner.msgWinError(resp.message ? resp.message : resp.error.message);
|
||
}
|
||
break;
|
||
}
|
||
};
|
||
xhr.send(formData);
|
||
}
|
||
|
||
function styleApp() {
|
||
try {
|
||
gridFilesManager.dom.toolbar.style.display = 'none';
|
||
gridTemplate.dom.toolbar.getElementsByTagName('input')[0].style.visibility = 'hidden';
|
||
gridPublic.dom.toolbar.getElementsByTagName('input')[0].style.visibility = 'hidden';
|
||
|
||
} catch (e) {
|
||
}
|
||
}
|
||
|
||
function disableAllFields() {
|
||
windowFilesManager.getItems()[0].setVisible(false);
|
||
|
||
}
|
||
|
||
function openFolder() {
|
||
disableAllFields();
|
||
styleApp();
|
||
|
||
if (processFileManagerOptionPath == "templates") {
|
||
windowFilesManager.setTitle("Templates".translate());
|
||
loadTemplate();
|
||
if (flagGridTemplate) {
|
||
windowFilesManager.addItem(gridTemplate);
|
||
flagGridTemplate = false;
|
||
}
|
||
|
||
var buttonsTemplate = document.createElement("div");
|
||
buttonsTemplate.id = "buttonsTemplate";
|
||
buttonsTemplate.style.display = "inlineBlock";
|
||
buttonsTemplate.style.float = "right";
|
||
|
||
buttonsTemplate.appendChild(buttonUpload.getHTML());
|
||
buttonsTemplate.appendChild(buttonNew.getHTML());
|
||
//buttonsTemplate.appendChild(buttonBack.getHTML());
|
||
|
||
buttonUpload.defineEvents();
|
||
buttonNew.defineEvents();
|
||
//buttonBack.defineEvents();
|
||
|
||
gridTemplate.dom.toolbar.appendChild(buttonsTemplate);
|
||
gridTemplate.setVisible(true);
|
||
gridTemplate.dom.toolbar.getElementsByTagName('input')[0].style.visibility = 'visible';
|
||
buttonNew.getHTML().style.top = '-3px';
|
||
}
|
||
if (processFileManagerOptionPath == "public") {
|
||
windowFilesManager.setTitle("Public Files".translate());
|
||
loadPublic();
|
||
if (flagGridPublic) {
|
||
windowFilesManager.addItem(gridPublic);
|
||
flagGridPublic = false;
|
||
}
|
||
var buttonsPublic = document.createElement("div");
|
||
buttonsPublic.id = "buttonsPublic";
|
||
buttonsPublic.style.display = "inlineBlock";
|
||
buttonsPublic.style.float = "right";
|
||
|
||
buttonsPublic.appendChild(buttonUpload.getHTML());
|
||
buttonsPublic.appendChild(buttonPublicCreate.getHTML());
|
||
//buttonsPublic.appendChild(buttonBack.getHTML());
|
||
|
||
buttonUpload.defineEvents();
|
||
buttonPublicCreate.defineEvents();
|
||
//buttonBack.defineEvents();
|
||
|
||
gridPublic.dom.toolbar.appendChild(buttonsPublic);
|
||
gridPublic.dom.toolbar.getElementsByTagName('input')[0].style.visibility = 'visible';
|
||
gridPublic.setVisible(true);
|
||
buttonPublicCreate.getHTML().style.top = '-3px';
|
||
}
|
||
}
|
||
/**
|
||
* Check Templates Assigned Derivation Screen
|
||
* @returns {checkDerivationScreen}
|
||
*/
|
||
function checkDerivationScreen () {
|
||
var gridTemplateAux = gridTemplate,
|
||
idRichText = "gridTemplateButtonRichTextEditor",
|
||
rowsGrid,
|
||
columnsGrid,
|
||
dataRowGrid,
|
||
columnRichText,
|
||
index = 0,
|
||
cell = {},
|
||
message = "Editor unavailable",
|
||
tooltipMafeClass = "mafe-action-tooltip-black",
|
||
i,
|
||
max;
|
||
|
||
rowsGrid = gridTemplateAux.getItems();
|
||
columnsGrid = gridTemplateAux.getColumns();
|
||
columnRichText = $.grep(columnsGrid, function (item, index) {
|
||
return item.id === idRichText;
|
||
});
|
||
for (i = 0, max = rowsGrid.length; i < max; i += 1) {
|
||
dataRowGrid = rowsGrid[i].data.customKeys;
|
||
if (dataRowGrid.prf_assigned_routing_screen && columnRichText.length) {
|
||
columnRichText[index].disableCell(i);
|
||
cell = columnRichText[index].getCells().length ? columnRichText[index].getCells()[i] : cell;
|
||
if (!$.isEmptyObject(cell)) {
|
||
$(cell.getHTML()).attr('title', message).tooltip({
|
||
tooltipClass: tooltipMafeClass,
|
||
position: {
|
||
my: 'center top',
|
||
at: 'center bottom+4'
|
||
}
|
||
});
|
||
}
|
||
}
|
||
}
|
||
return this;
|
||
}
|
||
|
||
if (optionCreation == "CREATION_NORMAL") {
|
||
windowFilesManager.open();
|
||
openFolder();
|
||
} else {
|
||
windowFilesManager.open();
|
||
openFolder();
|
||
newfile();
|
||
}
|
||
checkDerivationScreen();
|
||
};
|
||
|
||
PMDesigner.ProcessFilesManager.createFirst = function (processFileManagerOptionPath, optionCreation) {
|
||
PMDesigner.ProcessFilesManager(processFileManagerOptionPath, optionCreation);
|
||
};
|
||
|
||
(function () {
|
||
PMDesigner.assigmentRules = function (event) {
|
||
var formAssignmentRules,
|
||
i,
|
||
tabPanelAssignmentRules,
|
||
windowAssignmentRules,
|
||
dataProperties,
|
||
activity = event,
|
||
pageSizeAssignment = 9,
|
||
pageSizeAssignmentAD = 9,
|
||
quickMessageWindow = new QuickMessageWindow(),
|
||
arrayObjectUserList = [],
|
||
arrayObjectUserList2 = [],
|
||
arrayObjectUsers = [],
|
||
arrayObjectUsers2 = [],
|
||
arrayObjectAdhocUser = [],
|
||
arrayObjectAdhocUser2 = [],
|
||
arrayObjectAdhocUserList = [],
|
||
arrayObjectAdhocUserList2 = [],
|
||
warningMessageWindowDirty,
|
||
restClient,
|
||
assigmentPanelGlobal,
|
||
assigmentPanelUser,
|
||
panelTitleUser,
|
||
titleUser,
|
||
panelGridUser,
|
||
buttonsUsers,
|
||
gridUsers,
|
||
assigmentPanelUserList,
|
||
panelTitleUserList,
|
||
titleUserList,
|
||
panelGridUserList,
|
||
buttonsUserList,
|
||
gridUserList,
|
||
assigmentPanelGlobalAD,
|
||
assigmentPanelUserAD,
|
||
panelTitleUserAD,
|
||
titleUserAD,
|
||
panelSearchUserAD,
|
||
searchGridUserAD,
|
||
panelGridUserAD,
|
||
buttonsUsersAD,
|
||
gridUsersAD,
|
||
assigmentPanelUserListAD,
|
||
panelTitleUseListAD,
|
||
titleUserListAD,
|
||
panelGridUserListAD,
|
||
buttonsUserListAD,
|
||
gridUserListAD,
|
||
panelContainerRules,
|
||
panelContainerUsers,
|
||
panelContainerUsersAdHoc,
|
||
loadTrigger,
|
||
loadFormData,
|
||
loadServerData,
|
||
loadFreeUsers,
|
||
loadAssignmentUsers,
|
||
loadAdHocFreeUsers,
|
||
loadAdHocAssignmentUsers,
|
||
updateRules,
|
||
allHidden,
|
||
changeRadioButtons,
|
||
visibleService,
|
||
hiddenTab,
|
||
saveData,
|
||
saveOrUpdateUserAndAdHocUsers,
|
||
applyStyles,
|
||
applyStylesAD,
|
||
assignee,
|
||
remove,
|
||
assigneeAD,
|
||
removeAD,
|
||
groupRows,
|
||
flashMessage = new PMUI.ui.FlashMessage({
|
||
message: '',
|
||
appendTo: document.body,
|
||
duration: 1000,
|
||
severity: "success"
|
||
});
|
||
|
||
warningMessageWindowDirty = new PMUI.ui.MessageWindow({
|
||
id: 'warningMessageWindowDirty',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: 'Routing Rule'.translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [{
|
||
id: 'warningMessageWindowDirtyButtonNo',
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDirty.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'warningMessageWindowDirtyButtonYes',
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDirty.close();
|
||
windowAssignmentRules.close();
|
||
},
|
||
buttonType: "success"
|
||
}]
|
||
});
|
||
formAssignmentRules = new PMUI.form.Form({
|
||
id: 'formAssignmentRules',
|
||
visibleHeader: false,
|
||
buttonPanelPosition: 'top',
|
||
width: 910,
|
||
items: [
|
||
new PMUI.field.RadioButtonGroupField({
|
||
id: 'formTasAssignType',
|
||
name: 'tas_assign_type',
|
||
label: 'Case assignment method'.translate(),
|
||
required: false,
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 3,
|
||
options: [{
|
||
id: 'formTasAssignTypeCyclical',
|
||
label: 'Cyclical Assignment'.translate(),
|
||
value: 'BALANCED',
|
||
selected: true
|
||
}, {
|
||
id: 'formTasAssignTypeManual',
|
||
label: 'Manual Assignment'.translate(),
|
||
value: 'MANUAL'
|
||
}, {
|
||
id: 'formTasAssignTypeValue',
|
||
label: 'Value Based Assignment'.translate(),
|
||
value: 'EVALUATE'
|
||
}, {
|
||
id: 'formTasAssignTypeReports',
|
||
label: 'Reports to'.translate(),
|
||
value: 'REPORT_TO'
|
||
}, {
|
||
id: 'formTasAssignTypeSelf',
|
||
label: 'Self Service'.translate(),
|
||
value: 'SELF_SERVICE'
|
||
}, {
|
||
id: 'formTasAssignTypeSelfValue',
|
||
label: 'Self Service Value Based Assignment'.translate(),
|
||
value: 'SELF_SERVICE_EVALUATE'
|
||
}, {
|
||
id: 'formTasAssignTypeParallel',
|
||
label: 'Parallel Assignment'.translate(),
|
||
value: 'MULTIPLE_INSTANCE'
|
||
}, {
|
||
id: 'formTasAssignTypeParallel',
|
||
label: 'Value Based Assignment'.translate(),
|
||
value: 'MULTIPLE_INSTANCE_VALUE_BASED'
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
changeRadioButtons(newVal);
|
||
},
|
||
}), new CriteriaField({
|
||
id: 'formAssignmentRulesVariable',
|
||
pmType: 'text',
|
||
name: 'tas_assign_variable',
|
||
valueType: 'string',
|
||
label: 'Variable for Value Based Assignment'.translate(),
|
||
controlsWidth: DEFAULT_WINDOW_WIDTH - 527
|
||
}), new CriteriaField({
|
||
id: 'formAssignmentRulesVariableSelf',
|
||
pmType: 'text',
|
||
name: 'tas_group_variable',
|
||
valueType: 'string',
|
||
label: 'Variable for Self Service Value Based Assignment'.translate(),
|
||
controlsWidth: DEFAULT_WINDOW_WIDTH - 527
|
||
}), {
|
||
id: 'formAssignmentRulesSetTimeout',
|
||
pmType: 'checkbox',
|
||
name: 'tas_selfservice_timeout',
|
||
label: 'Set a timeout'.translate(),
|
||
options: [{
|
||
id: 'formAssignmentRulesSetTimeoutOption',
|
||
label: '',
|
||
value: '1'
|
||
}
|
||
],
|
||
onChange: function (val) {
|
||
visibleService(this.controls[0].selected);
|
||
}
|
||
}, {
|
||
id: 'formAssignmentRulesTime',
|
||
pmType: 'text',
|
||
name: 'tas_selfservice_time',
|
||
valueType: 'string',
|
||
label: 'Time'.translate(),
|
||
required: true,
|
||
validators: [{
|
||
pmType: "regexp",
|
||
criteria: /^[0-9]*$/,
|
||
errorMessage: "Please enter a numeric value".translate()
|
||
}]
|
||
}, {
|
||
id: 'formAssignmentRulesTimeUnit',
|
||
pmType: 'dropdown',
|
||
name: 'tas_selfservice_time_unit',
|
||
label: 'Time unit'.translate(),
|
||
options: [{
|
||
id: 'formAssignmentRulesTimeUnitOption1',
|
||
label: 'Hours'.translate(),
|
||
value: 'HOURS'
|
||
}, {
|
||
id: 'formAssignmentRulesTimeUnitOption2',
|
||
label: 'Days'.translate(),
|
||
value: 'DAYS'
|
||
}, {
|
||
id: 'formAssignmentRulesTimeUnitOption3',
|
||
label: 'Minutes'.translate(),
|
||
value: 'MINUTES'
|
||
}]
|
||
}, {
|
||
id: 'formAssignmentRulesTrigger',
|
||
pmType: 'dropdown',
|
||
name: 'tas_selfservice_trigger_uid',
|
||
label: 'Trigger to execute'.translate(),
|
||
required: true,
|
||
options: [{
|
||
id: 'formAssignmentRulesTriggerOption1',
|
||
value: '',
|
||
label: ''
|
||
}]
|
||
}, {
|
||
id: 'formAssignmentRulesTriggerExecute',
|
||
pmType: 'dropdown',
|
||
name: 'tas_selfservice_execution',
|
||
label: 'Execute Trigger'.translate(),
|
||
options: [{
|
||
id: 'formAssignmentRulesTriggerExecute1',
|
||
label: 'Every time scheduled by cron'.translate(),
|
||
value: 'EVERY_TIME'
|
||
}, {
|
||
id: 'formAssignmentRulesTriggerExecute2',
|
||
label: 'Once'.translate(),
|
||
value: 'ONCE'
|
||
}]
|
||
}
|
||
]
|
||
});
|
||
restClient = new PMRestClient({
|
||
endpoint: 'projects',
|
||
typeRequest: 'get',
|
||
messageError: "There are problems, please try again.".translate(),
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
assigmentPanelGlobal = new PMUI.core.Panel({
|
||
id: "assigmentPanelGlobal",
|
||
layout: "hbox",
|
||
width: DEFAULT_WINDOW_WIDTH
|
||
});
|
||
assigmentPanelUser = new PMUI.core.Panel({
|
||
id: "assigmentPanelUser",
|
||
layout: "vbox",
|
||
width: "60%",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-panel-assignment-white'
|
||
]
|
||
}
|
||
});
|
||
panelTitleUser = new PMUI.core.Panel({
|
||
id: "panelTitleUser",
|
||
layout: "hbox"
|
||
});
|
||
titleUser = new PMUI.ui.TextLabel({
|
||
id: "titleUser",
|
||
label: " ",
|
||
textMode: 'plain',
|
||
text: 'Available users list'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
panelGridUser = new PMUI.core.Panel({
|
||
id: "panelGridUser",
|
||
layout: "hbox",
|
||
style: {
|
||
cssClasses: ["mafe-panel"]
|
||
}
|
||
});
|
||
buttonsUsers = new PMUI.field.RadioButtonGroupField({
|
||
id: "buttonsUsers",
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 3,
|
||
options: [{
|
||
id: 'buttonAllAv',
|
||
label: 'View all'.translate(),
|
||
value: 'all',
|
||
selected: true
|
||
}, {
|
||
id: 'buttonUsersAv',
|
||
label: 'View users'.translate(),
|
||
value: 'user'
|
||
}, {
|
||
id: 'buttonGroupsAv',
|
||
label: 'View groups'.translate(),
|
||
value: 'group'
|
||
}],
|
||
onChange: function (newVal, oldVal) {
|
||
switch (newVal) {
|
||
case "user" :
|
||
gridUsers.typeList = "user";
|
||
break;
|
||
case "group":
|
||
gridUsers.typeList = "group";
|
||
break;
|
||
default:
|
||
gridUsers.typeList = "";
|
||
break;
|
||
}
|
||
gridUsers.goToPage(0);
|
||
}
|
||
});
|
||
gridUsers = new PMUI.grid.GridPanel({
|
||
id: "gridUsers",
|
||
pageSize: pageSizeAssignment - 1,
|
||
edges: 2,
|
||
behavior: 'dragdropsort',
|
||
displayedPages: 2,
|
||
filterable: true,
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 242,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
customDataRest: function (data) {
|
||
var i;
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].aas_type == "group") {
|
||
data[i]["available"] = data[i].aas_name;
|
||
} else {
|
||
data[i]["available"] = data[i].aas_name + " " + data[i].aas_lastname + " (" + data[i].aas_username + ")";
|
||
}
|
||
}
|
||
return data;
|
||
},
|
||
dynamicLoad: {
|
||
keys: {
|
||
server: HTTP_SERVER_HOSTNAME,
|
||
projectID: PMDesigner.project.projectId,
|
||
workspace: WORKSPACE,
|
||
accessToken: PMDesigner.project.tokens.access_token,
|
||
endPoint: 'project/' + PMDesigner.project.id + '/activity/' + activity.id + '/available-assignee/paged'
|
||
}
|
||
},
|
||
columns: [{
|
||
id: 'gridUsersButtonLabel',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: "10%",
|
||
buttonLabel: function (row, data) {
|
||
return data.fullName;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-grid-button'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var option, select;
|
||
select = document.createElement("span");
|
||
select.id = "list-usersIngroup";
|
||
option = document.createElement("span");
|
||
option.id = "list-usersIngroup-iem"
|
||
|
||
if (row.getData()["aas_type"] === 'group') {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var optionClone, i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (i == 10) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.innerHTML = "<b style='float: right'>. . .<b>";
|
||
select.appendChild(optionClone);
|
||
} else {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "- " + response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
optionClone.title = response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
select.appendChild(optionClone);
|
||
}
|
||
}
|
||
if (!optionClone) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "No users".translate();
|
||
select.appendChild(optionClone);
|
||
}
|
||
|
||
quickMessageWindow.show($(row.html).find('a')[0], select);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.setBaseEndPoint('group/' + row.getData()["aas_uid"] + '/users?start=0&limit=11');
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
title: "",
|
||
dataType: 'string',
|
||
columnData: "available",
|
||
alignmentCell: "left",
|
||
width: "330px"
|
||
},
|
||
{
|
||
id: 'gridUsersButtonAssign',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: "10%",
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit-assign'
|
||
]
|
||
},
|
||
buttonLabel: function (row, data) {
|
||
var sw = row.getData()["aas_type"] === 'user';
|
||
row.getCells()[0].content.style.addClasses([sw ? 'button-icon-user' : 'button-icon-group']);
|
||
return '';
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var dataRow = {};
|
||
grid = (grid != null) ? grid : gridUsers;
|
||
assignee(row);
|
||
gridUserList.goToPage(gridUserList.currentPage);
|
||
grid.goToPage(0);
|
||
gridUserList.goToPage(0);
|
||
flashMessage.setMessage("Assignee saved successfully".translate());
|
||
flashMessage.setAppendTo(windowAssignmentRules.getHTML());
|
||
flashMessage.show();
|
||
}
|
||
}],
|
||
onDropOut: function (item, origin, destiny) {
|
||
},
|
||
onDrop: function (a, row) {
|
||
grid = this;
|
||
remove(row);
|
||
gridUserList.goToPage(gridUserList.currentPage);
|
||
grid.goToPage(grid.currentPage);
|
||
flashMessage.setMessage("The user/group was successfully removed".translate());
|
||
flashMessage.setAppendTo(windowAssignmentRules.getHTML());
|
||
flashMessage.show();
|
||
return false;
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-grid'
|
||
]
|
||
}
|
||
});
|
||
assigmentPanelUserList = new PMUI.core.Panel({
|
||
id: "assigmentPanelUserList",
|
||
layout: "vbox",
|
||
width: "60%",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-panel-assignment-white'
|
||
]
|
||
}
|
||
});
|
||
panelTitleUserList = new PMUI.core.Panel({
|
||
id: "panelTitleUserList",
|
||
layout: "hbox"
|
||
});
|
||
titleUserList = new PMUI.ui.TextLabel({
|
||
id: "titleUserList",
|
||
textMode: 'plain',
|
||
text: 'Assigned users list'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
panelGridUserList = new PMUI.core.Panel({
|
||
id: "panelGridUserList",
|
||
layout: "hbox",
|
||
style: {
|
||
cssClasses: ["mafe-panel"]
|
||
}
|
||
});
|
||
buttonsUserList = new PMUI.field.RadioButtonGroupField({
|
||
id: "buttonsUserList",
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 3,
|
||
options: [{
|
||
id: 'buttonAllAs',
|
||
label: 'View all'.translate(),
|
||
value: 'all',
|
||
selected: true
|
||
}, {
|
||
id: 'buttonUsersAs',
|
||
label: 'View users'.translate(),
|
||
value: 'user'
|
||
}, {
|
||
id: 'buttonGroupsAs',
|
||
label: 'View groups'.translate(),
|
||
value: 'group'
|
||
}],
|
||
onChange: function (newVal, oldVal) {
|
||
switch (newVal) {
|
||
case "user" :
|
||
gridUserList.typeList = "user";
|
||
break;
|
||
case "group":
|
||
gridUserList.typeList = "group";
|
||
break;
|
||
default:
|
||
gridUserList.typeList = "";
|
||
break;
|
||
}
|
||
gridUserList.goToPage(0);
|
||
}
|
||
});
|
||
gridUserList = new PMUI.grid.GridPanel({
|
||
id: "gridUserList",
|
||
pageSize: pageSizeAssignment - 1,
|
||
edges: 2,
|
||
displayedPages: 2,
|
||
behavior: 'dragdropsort',
|
||
filterable: true,
|
||
nextLabel: 'Next'.translate(),
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 242,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
emptyMessage: function () {
|
||
var div = document.createElement('div'),
|
||
span = document.createElement('span');
|
||
div.appendChild(span);
|
||
div.className = "mafe-grid-panel-empty";
|
||
div.style.height = gridUserList.dom.tableContainer.style.height;
|
||
div.style.width = gridUserList.dom.tableContainer.style.width;
|
||
span.innerHTML = 'Drag & Drop a User or a Group here'.translate();
|
||
return div;
|
||
},
|
||
onEmpty: function () {
|
||
gridUserList.dom.tableContainer.style.overflow = "hidden";
|
||
},
|
||
dynamicLoad: {
|
||
keys: {
|
||
server: HTTP_SERVER_HOSTNAME,
|
||
projectID: PMDesigner.project.projectId,
|
||
workspace: WORKSPACE,
|
||
accessToken: PMDesigner.project.tokens.access_token,
|
||
endPoint: 'project/' + PMDesigner.project.id + '/activity/' + activity.id + '/assignee/paged'
|
||
}
|
||
},
|
||
customDataRest: function (data) {
|
||
var i;
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].aas_type == "group") {
|
||
data[i]["assignment"] = data[i].aas_name;
|
||
} else {
|
||
data[i]["assignment"] = data[i].aas_name + " " + data[i].aas_lastname + " (" + data[i].aas_username + ")";
|
||
}
|
||
}
|
||
return data;
|
||
},
|
||
columns: [
|
||
{
|
||
id: 'gridUserListButtonLabel',
|
||
title: "",
|
||
width: "10%",
|
||
dataType: 'button',
|
||
buttonLabel: function (row, data) {
|
||
return data.lastName;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-grid-button'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var option, select;
|
||
select = document.createElement("span");
|
||
select.id = "list-usersIngroup";
|
||
option = document.createElement("span");
|
||
option.id = "list-usersIngroup-iem";
|
||
|
||
if (row.getData()["aas_type"] === "group") {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var optionClone, i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (i == 10) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.innerHTML = "<b style='float: right'>. . .<b>";
|
||
select.appendChild(optionClone);
|
||
} else {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "- " + response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
optionClone.title = response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
select.appendChild(optionClone);
|
||
}
|
||
}
|
||
if (!optionClone) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "No users".translate();
|
||
select.appendChild(optionClone);
|
||
}
|
||
|
||
quickMessageWindow.show($(row.html).find('a')[0], select);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.setBaseEndPoint("group/" + row.getData()["aas_uid"] + "/users?start=0&limit=11");
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
title: '',
|
||
dataType: 'string',
|
||
columnData: "assignment",
|
||
alignmentCell: "left",
|
||
width: "330px"
|
||
},
|
||
{
|
||
id: 'gridUserListButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: "10%",
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete-assign'
|
||
]
|
||
},
|
||
buttonLabel: function (row, data) {
|
||
var sw = row.getData()["aas_type"] === 'user';
|
||
row.getCells()[0].content.style.addClasses([sw ? 'button-icon-user' : 'button-icon-group']);
|
||
return '';
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var dataRow = {};
|
||
grid = (grid != null) ? grid : gridUserList;
|
||
remove(row);
|
||
gridUserList.goToPage(gridUserList.currentPage);
|
||
grid.goToPage(0);
|
||
gridUsers.goToPage(0);
|
||
flashMessage.setMessage("The user/group was successfully removed".translate());
|
||
flashMessage.setAppendTo(windowAssignmentRules.getHTML());
|
||
flashMessage.show();
|
||
}
|
||
}
|
||
],
|
||
onDropOut: function (item, origin, destiny) {
|
||
},
|
||
onDrop: function (grid, row) {
|
||
var dataRow = {};
|
||
grid = this;
|
||
assignee(row);
|
||
gridUsers.goToPage(gridUsers.currentPage);
|
||
grid.goToPage(grid.currentPage);
|
||
flashMessage.setMessage("Assignee saved successfully".translate());
|
||
flashMessage.setAppendTo(windowAssignmentRules.getHTML());
|
||
flashMessage.show();
|
||
return false;
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-grid'
|
||
]
|
||
}
|
||
});
|
||
|
||
assigmentPanelGlobalAD = new PMUI.core.Panel({
|
||
id: "assigmentPanelGlobalAD",
|
||
layout: "hbox",
|
||
width: DEFAULT_WINDOW_WIDTH
|
||
|
||
});
|
||
assigmentPanelUserAD = new PMUI.core.Panel({
|
||
id: "assigmentPanelUserAD",
|
||
layout: "vbox",
|
||
width: "60%",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-panel-assignment-white'
|
||
]
|
||
}
|
||
});
|
||
panelTitleUserAD = new PMUI.core.Panel({
|
||
id: "panelTitleUserAD",
|
||
layout: "hbox"
|
||
});
|
||
titleUserAD = new PMUI.ui.TextLabel({
|
||
id: "titleUserAD",
|
||
label: " ",
|
||
textMode: 'plain',
|
||
text: 'Available users list'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
panelSearchUserAD = new PMUI.core.Panel({
|
||
id: "panelSearchUserAD",
|
||
layout: "hbox"
|
||
});
|
||
searchGridUserAD = new PMUI.field.TextField({
|
||
id: "searchGridUserAD",
|
||
label: " ",
|
||
placeholder: 'Search ...'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-assigment-search'
|
||
]
|
||
}
|
||
});
|
||
panelGridUserAD = new PMUI.core.Panel({
|
||
id: "panelGridUserAD",
|
||
layout: "hbox",
|
||
style: {
|
||
cssClasses: ["mafe-panel"]
|
||
}
|
||
});
|
||
buttonsUsersAD = new PMUI.field.RadioButtonGroupField({
|
||
id: "buttonsUsersAD",
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 3,
|
||
options: [{
|
||
id: 'buttonAllAv',
|
||
label: 'View all'.translate(),
|
||
selected: true,
|
||
value: 'all'
|
||
}, {
|
||
id: 'buttonUsersAv',
|
||
label: 'View users'.translate(),
|
||
value: 'user'
|
||
}, {
|
||
id: 'buttonGroupsAv',
|
||
label: 'View groups'.translate(),
|
||
value: 'group'
|
||
}],
|
||
onChange: function (newVal, oldVal) {
|
||
switch (newVal) {
|
||
case "user" :
|
||
gridUsersAD.typeList = "user";
|
||
break;
|
||
case "group":
|
||
gridUsersAD.typeList = "group";
|
||
break;
|
||
default:
|
||
gridUsersAD.typeList = "";
|
||
break;
|
||
}
|
||
gridUsersAD.goToPage(0);
|
||
}
|
||
});
|
||
gridUsersAD = new PMUI.grid.GridPanel({
|
||
id: "gridUsersAD",
|
||
pageSize: pageSizeAssignmentAD - 1,
|
||
filterable: true,
|
||
behavior: 'dragdropsort',
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 242,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
dynamicLoad: {
|
||
keys: {
|
||
server: HTTP_SERVER_HOSTNAME,
|
||
projectID: PMDesigner.project.projectId,
|
||
workspace: WORKSPACE,
|
||
accessToken: PMDesigner.project.tokens.access_token,
|
||
endPoint: 'project/' + PMDesigner.project.id + '/activity/' + activity.id + '/adhoc-available-assignee/paged'
|
||
}
|
||
},
|
||
customDataRest: function (data) {
|
||
var i;
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].ada_type == "group") {
|
||
data[i]["available"] = data[i].ada_name;
|
||
} else {
|
||
data[i]["available"] = data[i].ada_name + " " + data[i].ada_lastname + " (" + data[i].ada_username + ")";
|
||
}
|
||
}
|
||
return data;
|
||
},
|
||
columns: [
|
||
{
|
||
id: 'gridUsersADButtonLabel',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: "10%",
|
||
buttonLabel: function (row, data) {
|
||
return data.lastName;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-grid-button'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var option, select;
|
||
select = document.createElement("span");
|
||
select.id = "list-usersIngroup";
|
||
option = document.createElement("span");
|
||
option.id = "list-usersIngroup-iem";
|
||
if (row.getData()["ada_type"] === "group") {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var optionClone, i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (i == 10) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.innerHTML = "<b style='float: right'>. . .<b>";
|
||
select.appendChild(optionClone);
|
||
} else {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "- " + response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
optionClone.title = response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
select.appendChild(optionClone);
|
||
}
|
||
}
|
||
if (!optionClone) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "No users".translate();
|
||
select.appendChild(optionClone);
|
||
}
|
||
|
||
quickMessageWindow.show($(row.html).find('a')[0], select);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.setBaseEndPoint("group/" + row.getData()["ada_uid"] + "/users?start=0&limit=11");
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
title: "",
|
||
dataType: 'string',
|
||
columnData: "available",
|
||
alignmentCell: "left",
|
||
width: "330px"
|
||
},
|
||
{
|
||
id: 'gridUsersADButtonAssign',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: "10%",
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit-assign'
|
||
]
|
||
},
|
||
buttonLabel: function (row, data) {
|
||
var sw = row.getData()["ada_type"] === 'user';
|
||
row.getCells()[0].content.style.addClasses([sw ? 'button-icon-user' : 'button-icon-group']);
|
||
return '';
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var dataRow = {};
|
||
grid = (grid != null) ? grid : gridUsersAD;
|
||
assigneeAD(row);
|
||
grid.goToPage(gridUsersAD.currentPage);
|
||
gridUserListAD.goToPage(0);
|
||
flashMessage.setMessage("Assignee saved successfully".translate());
|
||
flashMessage.setAppendTo(windowAssignmentRules.getHTML());
|
||
flashMessage.show();
|
||
}
|
||
}
|
||
],
|
||
onDropOut: function (item, origin, destiny) {
|
||
formAssignmentRules.dirty = true;
|
||
grid = gridUsersAD;
|
||
grid.sort('fullName', 'asc');
|
||
buttonsUserListAD.setValue(buttonsUsersAD.getValue());
|
||
groupRows(gridUsersAD, 'all');
|
||
groupRows(gridUserListAD, 'all');
|
||
arrayObjectAdhocUserList.push(item);
|
||
index = arrayObjectAdhocUser.indexOf(item);
|
||
if (index > -1) {
|
||
arrayObjectAdhocUser.splice(index, 1);
|
||
}
|
||
},
|
||
onDrop: function (a, row) {
|
||
grid = this;
|
||
removeAD(row);
|
||
gridUserListAD.goToPage(gridUserListAD.currentPage);
|
||
grid.goToPage(grid.currentPage);
|
||
flashMessage.setMessage("The user/group was successfully removed".translate());
|
||
flashMessage.setAppendTo(windowAssignmentRules.getHTML());
|
||
flashMessage.show();
|
||
return false;
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-grid'
|
||
]
|
||
}
|
||
});
|
||
assigmentPanelUserListAD = new PMUI.core.Panel({
|
||
id: "assigmentPanelUserListAD",
|
||
layout: "vbox",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-panel-assignment-white'
|
||
]
|
||
},
|
||
width: "60%"
|
||
});
|
||
panelTitleUseListAD = new PMUI.core.Panel({
|
||
id: "panelTitleUseListAD",
|
||
layout: "hbox"
|
||
});
|
||
titleUserListAD = new PMUI.ui.TextLabel({
|
||
id: "titleUserListAD",
|
||
textMode: 'plain',
|
||
text: 'Assigned users list'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
panelGridUserListAD = new PMUI.core.Panel({
|
||
id: "panelGridUserListAD",
|
||
layout: "hbox",
|
||
style: {
|
||
cssClasses: ["mafe-panel"]
|
||
}
|
||
});
|
||
buttonsUserListAD = new PMUI.field.RadioButtonGroupField({
|
||
id: "buttonsUserListAD",
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 3,
|
||
options: [{
|
||
id: 'buttonAllAs',
|
||
label: 'View all'.translate(),
|
||
value: 'all',
|
||
selected: true
|
||
}, {
|
||
id: 'buttonUsersAs',
|
||
label: 'View users'.translate(),
|
||
value: 'user'
|
||
}, {
|
||
id: 'buttonGroupsAs',
|
||
label: 'View groups'.translate(),
|
||
value: 'group'
|
||
}],
|
||
onChange: function (newVal, oldVal) {
|
||
switch (newVal) {
|
||
case "user" :
|
||
gridUserListAD.typeList = "user";
|
||
break;
|
||
case "group":
|
||
gridUserListAD.typeList = "group";
|
||
break;
|
||
default:
|
||
gridUserListAD.typeList = "";
|
||
break;
|
||
}
|
||
gridUserListAD.goToPage(0);
|
||
}
|
||
});
|
||
gridUserListAD = new PMUI.grid.GridPanel({
|
||
id: "gridUserListAD",
|
||
pageSize: pageSizeAssignmentAD - 1,
|
||
behavior: 'dragdropsort',
|
||
filterable: true,
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 242,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
emptyMessage: function () {
|
||
var div = document.createElement('div'),
|
||
span = document.createElement('span');
|
||
div.appendChild(span);
|
||
div.className = "mafe-grid-panel-empty";
|
||
div.style.height = gridUserListAD.dom.tableContainer.style.height;
|
||
div.style.width = gridUserListAD.dom.tableContainer.style.width;
|
||
span.innerHTML = 'Drag & Drop a User or a Group here'.translate();
|
||
return div;
|
||
},
|
||
onEmpty: function (grid, cell) {
|
||
gridUserListAD.dom.tableContainer.style.overflow = "hidden";
|
||
},
|
||
dynamicLoad: {
|
||
keys: {
|
||
server: HTTP_SERVER_HOSTNAME,
|
||
projectID: PMDesigner.project.projectId,
|
||
workspace: WORKSPACE,
|
||
accessToken: PMDesigner.project.tokens.access_token,
|
||
endPoint: 'project/' + PMDesigner.project.id + '/activity/' + activity.id + '/adhoc-assignee/paged'
|
||
}
|
||
},
|
||
customDataRest: function (data) {
|
||
var i;
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].ada_type == "group") {
|
||
data[i]["assignee"] = data[i].ada_name;
|
||
} else {
|
||
data[i]["assignee"] = data[i].ada_name + " " + data[i].ada_lastname + " (" + data[i].ada_username + ")";
|
||
}
|
||
}
|
||
return data;
|
||
},
|
||
columns: [
|
||
{
|
||
id: 'gridUserListADButtonLabel',
|
||
title: "",
|
||
width: "13%",
|
||
dataType: 'button',
|
||
buttonLabel: function (row, data) {
|
||
return data.lastName;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-grid-button'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var option, select;
|
||
select = document.createElement("span");
|
||
select.id = "list-usersIngroup";
|
||
option = document.createElement("span");
|
||
option.id = "list-usersIngroup-iem";
|
||
if (row.getData()["ada_type"] === "group") {
|
||
var i,
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var optionClone, i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (i == 10) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.innerHTML = "<b style='float: right'>. . .<b>";
|
||
select.appendChild(optionClone);
|
||
} else {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "- " + response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
optionClone.title = response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
select.appendChild(optionClone);
|
||
}
|
||
}
|
||
if (!optionClone) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "No users".translate();
|
||
select.appendChild(optionClone);
|
||
}
|
||
|
||
quickMessageWindow.show($(row.html).find('a')[0], select);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.setBaseEndPoint("group/" + row.getData()["ada_uid"] + "/users?start=0&limit=11");
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
title: '',
|
||
dataType: 'string',
|
||
columnData: "assignee",
|
||
alignmentCell: "left",
|
||
width: "330px"
|
||
},
|
||
{
|
||
id: 'gridUserListADButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: "10%",
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete-assign'
|
||
]
|
||
},
|
||
buttonLabel: function (row, data) {
|
||
var sw = row.getData()["ada_type"] === 'user';
|
||
row.getCells()[0].content.style.addClasses([sw ? 'button-icon-user' : 'button-icon-group']);
|
||
return '';
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var dataRow = {};
|
||
grid = (grid != null) ? grid : gridUserListAD;
|
||
removeAD(row);
|
||
grid.goToPage(grid.currentPage);
|
||
gridUsersAD.goToPage(gridUsersAD.currentPage);
|
||
flashMessage.setMessage("The user/group was successfully removed".translate());
|
||
flashMessage.setAppendTo(windowAssignmentRules.getHTML());
|
||
flashMessage.show();
|
||
}
|
||
}
|
||
],
|
||
onDropOut: function (item, origin, destiny) {
|
||
},
|
||
onDrop: function (a, row) {
|
||
grid = this;
|
||
assigneeAD(row);
|
||
gridUsersAD.goToPage(gridUsersAD.currentPage);
|
||
grid.goToPage(grid.currentPage);
|
||
flashMessage.setMessage("Assignee saved successfully".translate());
|
||
flashMessage.setAppendTo(windowAssignmentRules.getHTML());
|
||
flashMessage.show();
|
||
return false;
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-grid'
|
||
]
|
||
}
|
||
});
|
||
|
||
panelContainerRules = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH - 55,
|
||
height: "auto",
|
||
fieldset: true,
|
||
items: [
|
||
formAssignmentRules
|
||
]
|
||
});
|
||
panelContainerUsers = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: "auto",
|
||
fieldset: true,
|
||
items: [
|
||
assigmentPanelGlobal
|
||
]
|
||
});
|
||
panelContainerUsersAdHoc = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: "auto",
|
||
fieldset: true,
|
||
items: [
|
||
assigmentPanelGlobalAD
|
||
]
|
||
});
|
||
|
||
tabPanelAssignmentRules = new PMUI.panel.TabPanel({
|
||
id: 'tabPanelAssignmentRules',
|
||
width: "100%",
|
||
height: "auto",
|
||
items: [
|
||
{
|
||
id: 'tabUsers',
|
||
title: 'Users'.translate(),
|
||
panel: panelContainerUsers
|
||
},
|
||
{
|
||
id: 'tabUsersAdHoc',
|
||
title: 'Ad Hoc Users'.translate(),
|
||
panel: panelContainerUsersAdHoc
|
||
}
|
||
],
|
||
onTabClick: function (item) {
|
||
quickMessageWindow.close();
|
||
switch (item.id) {
|
||
case 'tabRules':
|
||
break;
|
||
case 'tabUsers':
|
||
applyStyles();
|
||
gridUsers.goToPage(0);
|
||
gridUserList.goToPage(0);
|
||
break;
|
||
case 'tabUsersAdHoc':
|
||
applyStylesAD();
|
||
gridUsersAD.goToPage(0);
|
||
gridUserListAD.goToPage(0);
|
||
break;
|
||
}
|
||
}
|
||
});
|
||
windowAssignmentRules = new PMUI.ui.Window({
|
||
id: 'windowAssignmentRules',
|
||
title: 'Assignment Rules'.translate() + ': ' + activity.act_name,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
footerItems: [
|
||
{
|
||
id: 'windowConnectionsButtonCancel',
|
||
text: 'Close'.translate(),
|
||
handler: function () {
|
||
if (formAssignmentRules.isDirty()) {
|
||
warningMessageWindowDirty.open();
|
||
warningMessageWindowDirty.showFooter();
|
||
} else {
|
||
windowAssignmentRules.close();
|
||
}
|
||
},
|
||
buttonType: 'error'
|
||
},
|
||
{
|
||
buttonType: 'success',
|
||
id: 'windowPropertiesButtonSave',
|
||
text: "Save".translate(),
|
||
handler: function () {
|
||
saveData();
|
||
}
|
||
}
|
||
],
|
||
visibleFooter: true,
|
||
buttonPanelPosition: 'bottom',
|
||
footerAlign: "right",
|
||
onBeforeClose: function () {
|
||
if (formAssignmentRules.isDirty()) {
|
||
warningMessageWindowDirty.open();
|
||
warningMessageWindowDirty.showFooter();
|
||
} else {
|
||
windowAssignmentRules.close();
|
||
}
|
||
}
|
||
});
|
||
|
||
loadTrigger = function (response) {
|
||
var field = formAssignmentRules.getField('tas_selfservice_trigger_uid'), i;
|
||
field.clearOptions();
|
||
field.addOption({
|
||
value: '',
|
||
label: '- Select Trigger -'.translate()
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
field.addOption({
|
||
value: response[i].tri_uid,
|
||
label: response[i].tri_title
|
||
});
|
||
}
|
||
};
|
||
loadFormData = function (response) {
|
||
dataProperties = response.properties;
|
||
formAssignmentRules.getField('tas_assign_type').setValue(dataProperties.tas_assign_type);
|
||
formAssignmentRules.getField('tas_assign_variable').setValue(dataProperties.tas_assign_variable);
|
||
formAssignmentRules.getField('tas_group_variable').setValue(dataProperties.tas_group_variable);
|
||
changeRadioButtons(formAssignmentRules.getField('tas_assign_type').getValue());
|
||
formAssignmentRules.getField('tas_selfservice_timeout').controls[0].deselect();
|
||
if (dataProperties.tas_selfservice_timeout === 1) {
|
||
formAssignmentRules.getField('tas_selfservice_timeout').controls[0].select();
|
||
}
|
||
formAssignmentRules.getField('tas_selfservice_time').setValue(dataProperties.tas_selfservice_time);
|
||
formAssignmentRules.getField('tas_selfservice_time_unit').setValue(dataProperties.tas_selfservice_time_unit);
|
||
formAssignmentRules.getField('tas_selfservice_trigger_uid').setValue(dataProperties.tas_selfservice_trigger_uid);
|
||
formAssignmentRules.getField('tas_selfservice_execution').setValue(dataProperties.tas_selfservice_execution);
|
||
visibleService(dataProperties.tas_selfservice_timeout === 1);
|
||
};
|
||
loadServerData = function () {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'project/' + PMDesigner.project.id + '/activity/' + activity.id,
|
||
method: 'GET'
|
||
}, {
|
||
url: 'project/' + PMDesigner.project.id + '/triggers',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
loadTrigger(response[1].response);
|
||
loadFormData(response[0].response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.setBaseEndPoint('');
|
||
restClient.executeRestClient();
|
||
};
|
||
loadFreeUsers = function (response) {
|
||
var i;
|
||
gridUsers.clearItems();
|
||
for (i = 0; i < response.length; i += 1) {
|
||
gridUsers.addDataItem({
|
||
fullName: response[i].aas_name + " " + response[i].aas_lastname,
|
||
ass_uid: response[i].aas_uid,
|
||
ass_type: response[i].aas_type
|
||
});
|
||
}
|
||
};
|
||
loadAssignmentUsers = function (response) {
|
||
var i;
|
||
gridUserList.clearItems();
|
||
for (i = 0; i < response.length; i += 1) {
|
||
gridUserList.addDataItem({
|
||
fullName: response[i].aas_name + " " + response[i].aas_lastname,
|
||
ass_uid: response[i].aas_uid,
|
||
ass_type: response[i].aas_type
|
||
});
|
||
}
|
||
};
|
||
loadAdHocFreeUsers = function (response) {
|
||
var i;
|
||
gridUsersAD.clearItems();
|
||
for (i = 0; i < response.length; i += 1) {
|
||
gridUsersAD.addDataItem({
|
||
fullName: response[i].ada_name + " " + response[i].ada_lastname,
|
||
ada_uid: response[i].ada_uid,
|
||
ass_type: response[i].ada_type
|
||
});
|
||
}
|
||
};
|
||
loadAdHocAssignmentUsers = function (response) {
|
||
var i;
|
||
gridUserListAD.clearItems();
|
||
for (i = 0; i < response.length; i += 1) {
|
||
gridUserListAD.addDataItem({
|
||
fullName: response[i].ada_name + " " + response[i].ada_lastname,
|
||
ada_uid: response[i].ada_uid,
|
||
ass_type: response[i].ada_type
|
||
});
|
||
}
|
||
};
|
||
updateRules = function () {
|
||
(new PMRestClient({
|
||
endpoint: 'activity/' + activity.id,
|
||
typeRequest: 'update',
|
||
messageError: ' ',
|
||
data: {
|
||
definition: {},
|
||
properties: dataProperties
|
||
},
|
||
messageSuccess: 'Assignment Rules saved successfully'.translate(),
|
||
flashContainer: document.body,
|
||
functionSuccess: function () {
|
||
formAssignmentRules.dirty = false;
|
||
windowAssignmentRules.close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
};
|
||
allHidden = function () {
|
||
formAssignmentRules.getField('tas_assign_variable').setVisible(false);
|
||
formAssignmentRules.getField('tas_group_variable').setVisible(false);
|
||
formAssignmentRules.getField('tas_selfservice_timeout').setVisible(false);
|
||
formAssignmentRules.getField('tas_selfservice_timeout').controls[0].deselect();
|
||
formAssignmentRules.getField('tas_selfservice_time').setVisible(false);
|
||
formAssignmentRules.getField('tas_selfservice_time_unit').setVisible(false);
|
||
formAssignmentRules.getField('tas_selfservice_trigger_uid').setVisible(false);
|
||
formAssignmentRules.getField('tas_selfservice_execution').setVisible(false);
|
||
};
|
||
changeRadioButtons = function (newVal) {
|
||
allHidden();
|
||
tabPanelAssignmentRules.setVisible(true);
|
||
switch (newVal) {
|
||
case 'EVALUATE':
|
||
formAssignmentRules.getField('tas_assign_variable').setVisible(true);
|
||
if (dataProperties.tas_assign_variable === "" || dataProperties.tas_assign_variable === null) {
|
||
formAssignmentRules.getField('tas_assign_variable').setValue('@@SYS_NEXT_USER_TO_BE_ASSIGNED');
|
||
} else {
|
||
formAssignmentRules.getField('tas_assign_variable').setValue(dataProperties.tas_assign_variable);
|
||
}
|
||
break;
|
||
case 'SELF_SERVICE':
|
||
formAssignmentRules.getField('tas_selfservice_timeout').setVisible(true);
|
||
break;
|
||
case 'SELF_SERVICE_EVALUATE':
|
||
formAssignmentRules.getField('tas_group_variable').setVisible(true);
|
||
if (dataProperties.tas_group_variable === "@@SYS_GROUP_TO_BE_ASSIGNED" || dataProperties.tas_group_variable === "" || dataProperties.tas_group_variable === null) {
|
||
formAssignmentRules.getField('tas_group_variable').setPlaceholder('@@ARRAY_OF_USERS or @@GROUP_UID');
|
||
} else {
|
||
formAssignmentRules.getField('tas_group_variable').setValue(dataProperties.tas_group_variable);
|
||
}
|
||
formAssignmentRules.getField('tas_selfservice_timeout').setVisible(true);
|
||
break;
|
||
case 'REPORT_TO':
|
||
break;
|
||
case 'MULTIPLE_INSTANCE_VALUE_BASED':
|
||
formAssignmentRules.getField('tas_assign_variable').setLabel("Array of users".translate());
|
||
if (formAssignmentRules.getField('tas_assign_variable').getValue() == "@@SYS_NEXT_USER_TO_BE_ASSIGNED" || formAssignmentRules.getField('tas_assign_variable').getValue() == "") {
|
||
formAssignmentRules.getField('tas_assign_variable').setValue('');
|
||
formAssignmentRules.getField('tas_assign_variable').setPlaceholder('@@ARRAY_OF_USERS');
|
||
}
|
||
formAssignmentRules.getField('tas_assign_variable').setVisible(true);
|
||
if (activity.act_loop_type == "PARALLEL") {
|
||
tabPanelAssignmentRules.setVisible(false);
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
};
|
||
visibleService = function (value) {
|
||
var a = formAssignmentRules.getField('tas_assign_type').getValue();
|
||
if (a === 'SELF_SERVICE' || a === 'SELF_SERVICE_EVALUATE') {
|
||
formAssignmentRules.getField('tas_selfservice_time').setVisible(value);
|
||
formAssignmentRules.getField('tas_selfservice_time_unit').setVisible(value);
|
||
formAssignmentRules.getField('tas_selfservice_trigger_uid').setVisible(value);
|
||
formAssignmentRules.getField('tas_selfservice_execution').setVisible(value);
|
||
}
|
||
};
|
||
hiddenTab = function (value) {
|
||
tabPanelAssignmentRules.showTab(2);
|
||
};
|
||
saveData = function () {
|
||
var a, b, c, d, tas_selfservice_timeout, data;
|
||
tas_selfservice_timeout = formAssignmentRules.getField('tas_selfservice_timeout').getValue() === '["1"]';
|
||
if (!tas_selfservice_timeout) {
|
||
//validation because getData method do not work in IE
|
||
if (navigator.userAgent.indexOf("MSIE") !== -1 || navigator.userAgent.indexOf("Trident") !== -1) {
|
||
data = getData2PMUI(formAssignmentRules.html);
|
||
b = data["tas_assign_variable"];
|
||
} else {
|
||
b = formAssignmentRules.getField('tas_assign_variable').getValue();
|
||
}
|
||
a = formAssignmentRules.getField('tas_assign_type').getValue();
|
||
c = formAssignmentRules.getField('tas_group_variable').getValue();
|
||
d = formAssignmentRules.getField('tas_group_variable').getValue();
|
||
formAssignmentRules.getField('tas_assign_type').setValue(a);
|
||
formAssignmentRules.getField('tas_assign_variable').setValue(b);
|
||
formAssignmentRules.getField('tas_group_variable').setValue(c);
|
||
formAssignmentRules.getField('tas_selfservice_timeout').setValue(d);
|
||
formAssignmentRules.getField('tas_selfservice_time').setValue('');
|
||
formAssignmentRules.getField('tas_selfservice_time_unit').setValue('');
|
||
formAssignmentRules.getField('tas_selfservice_trigger_uid').setValue('');
|
||
formAssignmentRules.getField('tas_selfservice_execution').setValue('');
|
||
} else {
|
||
if (!formAssignmentRules.isValid()) {
|
||
return;
|
||
}
|
||
}
|
||
dataProperties.tas_assign_type = formAssignmentRules.getField('tas_assign_type').getValue();
|
||
dataProperties.tas_assign_variable = formAssignmentRules.getField('tas_assign_variable').getValue() === '' ? '@@SYS_NEXT_USER_TO_BE_ASSIGNED' : formAssignmentRules.getField('tas_assign_variable').getValue();
|
||
dataProperties.tas_group_variable = formAssignmentRules.getField('tas_group_variable').getValue() === '' ? '@@SYS_GROUP_TO_BE_ASSIGNED' : formAssignmentRules.getField('tas_group_variable').getValue();
|
||
dataProperties.tas_selfservice_timeout = tas_selfservice_timeout ? 1 : 0;
|
||
dataProperties.tas_selfservice_time = formAssignmentRules.getField('tas_selfservice_time').getValue() !== "" ? parseInt(formAssignmentRules.getField('tas_selfservice_time').getValue(), 10) : 0;
|
||
dataProperties.tas_selfservice_time_unit = formAssignmentRules.getField('tas_selfservice_time_unit').getValue();
|
||
dataProperties.tas_selfservice_trigger_uid = formAssignmentRules.getField('tas_selfservice_trigger_uid').getValue();
|
||
dataProperties.tas_selfservice_execution = formAssignmentRules.getField('tas_selfservice_execution').getValue();
|
||
updateRules();
|
||
};
|
||
saveOrUpdateUserAndAdHocUsers = function () {
|
||
//Assigne and Remove (users)
|
||
var i, b;
|
||
if (gridUserList.getItems().length > 0) {
|
||
grid = gridUserList;
|
||
for (i = 0; i < arrayObjectUserList.length; i += 1) {
|
||
b = arrayObjectUserList[i];
|
||
if (arrayObjectUserList2.indexOf(b) == -1) {
|
||
assignee(b);
|
||
}
|
||
}
|
||
}
|
||
if (gridUsers.getItems().length > 0) {
|
||
for (i = 0; i < arrayObjectUsers.length; i += 1) {
|
||
b = arrayObjectUsers[i];
|
||
if (arrayObjectUsers2.indexOf(b) == -1) {
|
||
remove(arrayObjectUsers[i]);
|
||
}
|
||
}
|
||
}
|
||
//Assigne and Remove (AdHocUsers)
|
||
if (gridUserListAD.getItems().length > 0) {
|
||
grid = gridUserListAD;
|
||
for (i = 0; i < arrayObjectAdhocUserList.length; i += 1) {
|
||
b = arrayObjectAdhocUserList[i];
|
||
if (arrayObjectAdhocUserList2.indexOf(b) == -1) {
|
||
assigneeAD(b);
|
||
}
|
||
}
|
||
}
|
||
if (gridUsersAD.getItems().length > 0) {
|
||
for (i = 0; i < arrayObjectAdhocUser.length; i += 1) {
|
||
b = arrayObjectAdhocUser[i];
|
||
if (arrayObjectAdhocUser2.indexOf(b) == -1) {
|
||
removeAD(arrayObjectAdhocUser[i]);
|
||
}
|
||
}
|
||
}
|
||
};
|
||
applyStyles = function () {
|
||
gridUsers.dom.toolbar.appendChild(buttonsUsers.getHTML());
|
||
buttonsUsers.defineEvents();
|
||
gridUsers.dom.toolbar.style.height = "76px";
|
||
gridUserList.dom.toolbar.appendChild(buttonsUserList.getHTML());
|
||
buttonsUserList.defineEvents();
|
||
gridUserList.dom.toolbar.style.height = "76px";
|
||
buttonsUsers.dom.labelTextContainer.style.display = "none";
|
||
buttonsUserList.dom.labelTextContainer.style.display = "none";
|
||
gridUsers.hideHeaders();
|
||
gridUserList.hideHeaders();
|
||
assigmentPanelUserList.setHeight('100%');
|
||
gridUsers.filterControl.html.style.width = "300px";
|
||
gridUserList.filterControl.html.style.width = "300px";
|
||
};
|
||
applyStylesAD = function () {
|
||
gridUsersAD.dom.toolbar.appendChild(buttonsUsersAD.getHTML());
|
||
buttonsUsersAD.defineEvents();
|
||
gridUsersAD.dom.toolbar.style.height = "76px";
|
||
|
||
gridUserListAD.dom.toolbar.appendChild(buttonsUserListAD.getHTML());
|
||
buttonsUserListAD.defineEvents();
|
||
gridUserListAD.dom.toolbar.style.height = "76px";
|
||
buttonsUsersAD.dom.labelTextContainer.style.display = "none";
|
||
buttonsUserListAD.dom.labelTextContainer.style.display = "none";
|
||
gridUsersAD.hideHeaders();
|
||
gridUserListAD.hideHeaders();
|
||
assigmentPanelUserListAD.setHeight('100%');
|
||
gridUsersAD.filterControl.html.style.width = "300px";
|
||
gridUserListAD.filterControl.html.style.width = "300px";
|
||
};
|
||
assignee = function (row) {
|
||
restClient.setTypeRequest("post");
|
||
restClient.setEndpoint("activity/" + activity.id + "/assignee");
|
||
restClient.setData({aas_uid: row.getData()["aas_uid"], aas_type: row.getData()["aas_type"]});
|
||
restClient.functionSuccess = function (xhr, response) {
|
||
};
|
||
restClient.executeRestClient();
|
||
};
|
||
remove = function (row) {
|
||
restClient.setTypeRequest("remove");
|
||
restClient.setEndpoint("activity/" + activity.id + "/assignee/" + row.getData().aas_uid);
|
||
restClient.functionSuccess = function (xhr, response) {
|
||
};
|
||
restClient.executeRestClient();
|
||
};
|
||
assigneeAD = function (row) {
|
||
restClient.setTypeRequest("post");
|
||
restClient.setEndpoint("activity/" + activity.id + "/adhoc-assignee");
|
||
restClient.setData({ada_uid: row.getData()["ada_uid"], ada_type: row.getData()["ada_type"]});
|
||
restClient.functionSuccess = function (xhr, response) {
|
||
};
|
||
restClient.executeRestClient();
|
||
};
|
||
removeAD = function (row) {
|
||
restClient.setTypeRequest("remove");
|
||
restClient.setEndpoint("activity/" + activity.id + "/adhoc-assignee/" + row.getData()["ada_uid"]);
|
||
restClient.functionSuccess = function (xhr, response) {
|
||
};
|
||
restClient.executeRestClient();
|
||
};
|
||
groupRows = function (grid, value) {
|
||
var i, items;
|
||
if (grid.memorystack === undefined) {
|
||
grid.memorystack = [];
|
||
}
|
||
items = grid.getItems();
|
||
while (grid.memorystack.length > 0) {
|
||
grid.addItem(grid.memorystack.pop());
|
||
}
|
||
if (value !== 'all') {
|
||
for (i = 0; i < items.length; i += 1) {
|
||
if (items[i].getData().ass_type !== value) {
|
||
grid.memorystack.push(items[i]);
|
||
grid.removeItem(items[i]);
|
||
}
|
||
}
|
||
}
|
||
grid.sort('fullName', 'asc');
|
||
};
|
||
|
||
function onchangeRadio(grid, fieldName) {
|
||
var radioButTrat = document.getElementsByName(fieldName), i;
|
||
for (i = 0; i < radioButTrat.length; i += 1) {
|
||
if (radioButTrat[i].checked == true) {
|
||
quickMessageWindow.close();
|
||
groupRows(grid, radioButTrat[i].value);
|
||
}
|
||
}
|
||
}
|
||
|
||
function domSettings() {
|
||
if (activity.act_loop_type == "PARALLEL") {
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[0].html).parent().hide();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[1].html).parent().hide();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[2].html).parent().hide();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[3].html).parent().hide();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[4].html).parent().hide();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[5].html).parent().hide();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[6].html).parent().show();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[7].html).parent().show();
|
||
if (formAssignmentRules.getField('tas_assign_type').getValue() == "MULTIPLE_INSTANCE_VALUE_BASED") {
|
||
formAssignmentRules.getField('tas_assign_type').setValue("MULTIPLE_INSTANCE_VALUE_BASED");
|
||
} else {
|
||
formAssignmentRules.getField('tas_assign_type').setValue("MULTIPLE_INSTANCE");
|
||
}
|
||
} else {
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[0].html).parent().show();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[1].html).parent().show();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[2].html).parent().show();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[3].html).parent().show();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[4].html).parent().show();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[5].html).parent().show();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[6].html).parent().hide();
|
||
$(formAssignmentRules.getField("tas_assign_type").controls[7].html).parent().hide();
|
||
if (formAssignmentRules.getField('tas_assign_type').getValue() == "MULTIPLE_INSTANCE_VALUE_BASED") {
|
||
formAssignmentRules.getField('tas_assign_type').setValue("BALANCED");
|
||
formAssignmentRules.getField('tas_assign_variable').setVisible(false);
|
||
}
|
||
}
|
||
};
|
||
|
||
panelTitleUser.addItem(titleUser);
|
||
panelGridUser.addItem(gridUsers);
|
||
assigmentPanelUser.addItem(panelTitleUser);
|
||
assigmentPanelUser.addItem(panelGridUser);
|
||
assigmentPanelGlobal.addItem(assigmentPanelUser);
|
||
panelTitleUserList.addItem(titleUserList);
|
||
panelGridUserList.addItem(gridUserList);
|
||
assigmentPanelUserList.addItem(panelTitleUserList);
|
||
assigmentPanelUserList.addItem(panelGridUserList);
|
||
assigmentPanelGlobal.addItem(assigmentPanelUserList);
|
||
|
||
panelTitleUserAD.addItem(titleUserAD);
|
||
panelSearchUserAD.addItem(searchGridUserAD);
|
||
panelGridUserAD.addItem(gridUsersAD);
|
||
assigmentPanelUserAD.addItem(panelTitleUserAD);
|
||
assigmentPanelUserAD.addItem(panelGridUserAD);
|
||
assigmentPanelGlobalAD.addItem(assigmentPanelUserAD);
|
||
panelTitleUseListAD.addItem(titleUserListAD);
|
||
panelGridUserListAD.addItem(gridUserListAD);
|
||
assigmentPanelUserListAD.addItem(panelTitleUseListAD);
|
||
assigmentPanelUserListAD.addItem(panelGridUserListAD);
|
||
assigmentPanelGlobalAD.addItem(assigmentPanelUserListAD);
|
||
|
||
if (formAssignmentRules.dirty == null) {
|
||
formAssignmentRules.dirty = false;
|
||
}
|
||
windowAssignmentRules.addItem(formAssignmentRules);
|
||
windowAssignmentRules.addItem(tabPanelAssignmentRules);
|
||
windowAssignmentRules.open();
|
||
applyStyleWindowForm(windowAssignmentRules);
|
||
windowAssignmentRules.body.style.overflowY = 'auto';
|
||
windowAssignmentRules.body.style.overflowX = 'hidden';
|
||
windowAssignmentRules.defineEvents();
|
||
buttonsUsers.defineEvents();
|
||
tabPanelAssignmentRules.itemClick(0);
|
||
loadServerData();
|
||
domSettings();
|
||
//array for Users
|
||
usersgrid = gridUsers;
|
||
for (i = 0; i < usersgrid.getItems().length; i += 1) {
|
||
arrayObjectUsers2[i] = usersgrid.getItems()[i];
|
||
}
|
||
userslist = gridUserList;
|
||
for (i = 0; i < userslist.getItems().length; i += 1) {
|
||
arrayObjectUserList2[i] = userslist.getItems()[i];
|
||
}
|
||
//array for AdHocUsers
|
||
usersgrid = gridUsersAD;
|
||
for (i = 0; i < usersgrid.getItems().length; i += 1) {
|
||
arrayObjectAdhocUser2[i] = usersgrid.getItems()[i];
|
||
}
|
||
userslist = gridUserListAD;
|
||
for (i = 0; i < userslist.getItems().length; i += 1) {
|
||
arrayObjectAdhocUserList2[i] = userslist.getItems()[i];
|
||
}
|
||
formAssignmentRules.html.style.marginLeft = '30px';
|
||
formAssignmentRulesSetTimeoutOption;
|
||
document.getElementById("formAssignmentRulesSetTimeoutOption").childNodes[0].onchange = function () {
|
||
visibleService(this.checked);
|
||
};
|
||
$(".pmui-field-control-table").css("border", "0px");
|
||
$(".pmui-field-label").css("padding", "0px");
|
||
$(".mafe-designer-assigment-title").css("margin-top", "25px");
|
||
$("#formTasAssignType").append("<hr style=' border: 0; border-top: 1px solid #eee;'>");
|
||
$(".pmui-gridpanel-footer").addClass("pmui-gridpanel-footer-dinamic");
|
||
};
|
||
}());
|
||
(function () {
|
||
PMDesigner.assigmentSupervisors = function (event) {
|
||
var assigmentWindow = null,
|
||
pageSizeAssignment = 8,
|
||
restClient,
|
||
assigmentPanelUser,
|
||
assigmentPanelUserList,
|
||
assigmentPanelGlobal,
|
||
panelTitleUser,
|
||
titleUser,
|
||
panelSearchUser,
|
||
searchGridUser,
|
||
panelGridUser,
|
||
buttonsUsers,
|
||
gridUsers,
|
||
panelTitleUserList,
|
||
titleUserList,
|
||
panelSearchUserList,
|
||
searchGridUserList,
|
||
panelGridUserList,
|
||
buttonsUserList,
|
||
gridUserList,
|
||
applyStyles,
|
||
loadServerData,
|
||
loadUsers,
|
||
loadUsersList,
|
||
groupRows,
|
||
assignee,
|
||
remove,
|
||
quickMessageWindow = new QuickMessageWindow();
|
||
|
||
assigmentWindow = new PMUI.ui.Window({
|
||
id: 'assigmentUserWindow',
|
||
title: 'Assign Users and Groups as Supervisors'.translate(),
|
||
width: DEFAULT_WINDOW_WIDTH + 1,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerHeight: 'auto',
|
||
bodyHeight: 'auto',
|
||
modal: true
|
||
});
|
||
restClient = new PMRestClient({
|
||
endpoint: 'projects',
|
||
typeRequest: 'get',
|
||
messageError: 'There are problems, please try again.'.translate(),
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
assigmentPanelUser = new PMUI.core.Panel({
|
||
layout: "vbox",
|
||
width: "49%",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-panel-assignment-white'
|
||
]
|
||
}
|
||
});
|
||
assigmentPanelUserList = new PMUI.core.Panel({
|
||
layout: "vbox",
|
||
width: "50%",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-panel-assignment-smooth'
|
||
]
|
||
}
|
||
});
|
||
assigmentPanelGlobal = new PMUI.core.Panel({
|
||
layout: 'hbox',
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-assigment-panel-global'
|
||
]
|
||
}
|
||
});
|
||
|
||
panelTitleUser = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
titleUser = new PMUI.ui.TextLabel({
|
||
id: 'titleUser',
|
||
label: ' ',
|
||
textMode: 'plain',
|
||
text: 'Available Users List'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
panelSearchUser = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
searchGridUser = new PMUI.field.TextField({
|
||
id: 'searchGridUser',
|
||
label: ' ',
|
||
placeholder: 'Search ...'.translate()
|
||
});
|
||
panelGridUser = new PMUI.core.Panel({layout: 'hbox'});
|
||
buttonsUsers = new PMUI.field.OptionsSelectorField({
|
||
id: 'buttonsUsers',
|
||
orientation: 'horizontal',
|
||
items: [{
|
||
text: 'All'.translate(),
|
||
selected: true,
|
||
value: 'all',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-all'
|
||
]
|
||
}
|
||
}, {
|
||
text: 'Users'.translate(),
|
||
value: 'user',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-user'
|
||
]
|
||
}
|
||
}, {
|
||
text: 'Groups'.translate(),
|
||
value: 'group',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-group'
|
||
]
|
||
}
|
||
}
|
||
],
|
||
listeners: {
|
||
select: function (item, event) {
|
||
groupRows(gridUsers, item.value);
|
||
}
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-assigment-buttons'
|
||
]
|
||
}
|
||
});
|
||
gridUsers = new PMUI.grid.GridPanel({
|
||
id: 'gridUsers',
|
||
pageSize: pageSizeAssignment,
|
||
behavior: 'dragdropsort',
|
||
filterable: true,
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [{
|
||
id: 'gridUsersButtonLabel',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: '10%',
|
||
buttonLabel: function (row, data) {
|
||
return data.lastName;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-grid-button'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
if (row.data.customKeys.obj_type === 'group') {
|
||
restClient.setTypeRequest('get');
|
||
restClient.functionSuccess = function (xhr, response) {
|
||
var stringUsers = '', i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
stringUsers = stringUsers + response[i].usr_firstname + ' ' + response[i].usr_lastname + ', ';
|
||
}
|
||
stringUsers = stringUsers.substring(0, stringUsers.length - 2);
|
||
if (stringUsers === '') {
|
||
stringUsers = 'No users';
|
||
}
|
||
quickMessageWindow.show($(row.html).find('a')[0], stringUsers);
|
||
};
|
||
restClient.setBaseEndPoint('group/' + row.data.customKeys.sup_uid + '/users');
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'string',
|
||
columnData: 'sup_name',
|
||
alignmentCell: 'left',
|
||
width: '80%'
|
||
}, {
|
||
id: 'gridUsersButtonAssign',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: '19%',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit'
|
||
]
|
||
},
|
||
buttonLabel: function (row, data) {
|
||
row.getCells()[0].content.style.addClasses([row.data.customKeys.obj_type === 'user' ? 'button-icon-user' : 'button-icon-group']);
|
||
return 'Assign'.translate();
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
grid.removeItem(row);
|
||
grid.sort('sup_name', 'asc');
|
||
gridUserList.addItem(row);
|
||
buttonsUserList.setValue(buttonsUsers.getValue());
|
||
groupRows(gridUserList, buttonsUsers.getValue());
|
||
assignee(row);
|
||
}
|
||
}
|
||
],
|
||
onDropOut: function (item, origin, destiny) {
|
||
assignee(item);
|
||
},
|
||
onDrop: function (a, row) {
|
||
buttonsUsers.setValue(buttonsUserList.getValue());
|
||
groupRows(gridUsers, buttonsUserList.getValue());
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-grid'
|
||
]
|
||
}
|
||
});
|
||
|
||
panelTitleUserList = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
titleUserList = new PMUI.ui.TextLabel({
|
||
id: 'titleUserList',
|
||
textMode: 'plain',
|
||
text: 'Assigned Users List'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
panelSearchUserList = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
searchGridUserList = new PMUI.field.TextField({
|
||
id: 'searchGridUserList',
|
||
label: ' ',
|
||
placeholder: 'Search ...'.translate()
|
||
});
|
||
panelGridUserList = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
buttonsUserList = new PMUI.field.OptionsSelectorField({
|
||
id: 'buttonsUserList',
|
||
orientation: 'horizontal',
|
||
items: [{
|
||
text: 'All'.translate(),
|
||
value: 'all',
|
||
selected: true,
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-all'
|
||
]
|
||
}
|
||
}, {
|
||
text: 'Users'.translate(),
|
||
value: 'user',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-user'
|
||
]
|
||
}
|
||
}, {
|
||
text: 'Groups'.translate(),
|
||
value: 'group',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-group'
|
||
]
|
||
}
|
||
}
|
||
|
||
],
|
||
listeners: {
|
||
select: function (item, event) {
|
||
groupRows(gridUserList, item.value);
|
||
}
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-assigment-buttons'
|
||
]
|
||
}
|
||
});
|
||
gridUserList = new PMUI.grid.GridPanel({
|
||
id: 'gridUserList',
|
||
pageSize: pageSizeAssignment,
|
||
behavior: 'dragdropsort',
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
filterable: true,
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
emptyMessage: function () {
|
||
var div = document.createElement('div'),
|
||
span = document.createElement('span');
|
||
div.appendChild(span);
|
||
div.className = 'mafe-grid-panel-empty';
|
||
span.innerHTML = 'Drag & Drop a User or a Group here'.translate();
|
||
return div;
|
||
},
|
||
onEmpty: function (grid, cell) {
|
||
gridUserList.dom.tableContainer.style.overflow = 'hidden';
|
||
},
|
||
columns: [{
|
||
id: 'gridUserListButtonLabel',
|
||
title: '',
|
||
width: '10%',
|
||
dataType: 'button',
|
||
buttonLabel: function (row, data) {
|
||
return data.lastName;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-grid-button'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var stringUsers, i;
|
||
if (row.data.customKeys.obj_type === 'group') {
|
||
restClient.setTypeRequest('get');
|
||
restClient.functionSuccess = function (xhr, response) {
|
||
stringUsers = '';
|
||
for (i = 0; i < response.length; i += 1) {
|
||
stringUsers = stringUsers + response[i].usr_firstname + ' ' + response[i].usr_lastname + ', ';
|
||
}
|
||
stringUsers = stringUsers.substring(0, stringUsers.length - 2);
|
||
if (stringUsers === '') {
|
||
stringUsers = 'No users';
|
||
}
|
||
quickMessageWindow.show($(row.html).find('a')[0], stringUsers);
|
||
};
|
||
restClient.setBaseEndPoint('group/' + row.data.customKeys.sup_uid + '/users');
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'string',
|
||
columnData: 'sup_name',
|
||
width: '80%',
|
||
alignmentCell: 'left'
|
||
}, {
|
||
id: 'gridUserListButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: '10%',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
},
|
||
buttonLabel: function (row, data) {
|
||
row.getCells()[0].content.style.addClasses([row.data.customKeys.obj_type === 'user' ? 'button-icon-user' : 'button-icon-group']);
|
||
return 'Remove'.translate();
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
grid.removeItem(row);
|
||
grid.sort('sup_name', 'asc');
|
||
gridUsers.addItem(row);
|
||
buttonsUsers.setValue(buttonsUserList.getValue());
|
||
groupRows(gridUsers, buttonsUserList.getValue());
|
||
remove(row);
|
||
}
|
||
}
|
||
],
|
||
onDropOut: function (item, origin, destiny) {
|
||
remove(item);
|
||
},
|
||
onDrop: function (a, row) {
|
||
buttonsUserList.setValue(buttonsUsers.getValue());
|
||
groupRows(gridUserList, buttonsUsers.getValue());
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-grid'
|
||
]
|
||
}
|
||
});
|
||
|
||
applyStyles = function () {
|
||
gridUsers.dom.toolbar.appendChild(buttonsUsers.getHTML());
|
||
gridUsers.dom.toolbar.style.height = "76px";
|
||
gridUserList.dom.toolbar.appendChild(buttonsUserList.getHTML());
|
||
gridUserList.dom.toolbar.style.height = "76px";
|
||
buttonsUsers.dom.labelTextContainer.style.display = "none";
|
||
buttonsUserList.dom.labelTextContainer.style.display = "none";
|
||
gridUsers.hideHeaders();
|
||
gridUserList.hideHeaders();
|
||
assigmentPanelUserList.setHeight('100%');
|
||
gridUsers.filterControl.html.style.width = "300px";
|
||
gridUserList.filterControl.html.style.width = "300px";
|
||
};
|
||
loadServerData = function () {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'project/' + PMDesigner.project.id + '/available-process-supervisors',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'project/' + PMDesigner.project.id + '/process-supervisors',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
loadUsers(response[0].response);
|
||
loadUsersList(response[1].response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.setBaseEndPoint('');
|
||
restClient.executeRestClient();
|
||
};
|
||
loadUsers = function (response) {
|
||
var i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (response[i].obj_type === 'user') {
|
||
gridUsers.addDataItem({
|
||
sup_uid: response[i].usr_uid,
|
||
sup_name: response[i].usr_firstname + ' ' + response[i].usr_lastname,
|
||
obj_type: response[i].obj_type
|
||
});
|
||
}
|
||
if (response[i].obj_type === 'group') {
|
||
gridUsers.addDataItem({
|
||
sup_uid: response[i].grp_uid,
|
||
sup_name: response[i].grp_name,
|
||
obj_type: response[i].obj_type
|
||
});
|
||
}
|
||
}
|
||
gridUsers.sort('sup_name', 'asc');
|
||
};
|
||
loadUsersList = function (response) {
|
||
var i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (response[i].pu_type === 'SUPERVISOR') {
|
||
gridUserList.addDataItem({
|
||
sup_uid: response[i].usr_uid,
|
||
sup_name: response[i].usr_firstname + ' ' + response[i].usr_lastname,
|
||
obj_type: 'user',
|
||
pu_type: response[i].pu_type,
|
||
pu_uid: response[i].pu_uid
|
||
});
|
||
}
|
||
if (response[i].pu_type === 'GROUP_SUPERVISOR') {
|
||
gridUserList.addDataItem({
|
||
sup_uid: response[i].grp_uid,
|
||
sup_name: response[i].grp_name,
|
||
obj_type: 'group',
|
||
pu_type: response[i].pu_type,
|
||
pu_uid: response[i].pu_uid
|
||
});
|
||
}
|
||
}
|
||
gridUserList.sort('sup_name', 'asc');
|
||
};
|
||
groupRows = function (grid, value) {
|
||
var i, items;
|
||
if (grid.memorystack === undefined) {
|
||
grid.memorystack = [];
|
||
}
|
||
items = grid.getItems();
|
||
while (grid.memorystack.length > 0) {
|
||
grid.addItem(grid.memorystack.pop());
|
||
}
|
||
if (value !== 'all') {
|
||
for (i = 0; i < items.length; i += 1) {
|
||
if (items[i].getData().obj_type !== value) {
|
||
grid.memorystack.push(items[i]);
|
||
grid.removeItem(items[i]);
|
||
}
|
||
}
|
||
}
|
||
grid.sort('sup_name', 'asc');
|
||
};
|
||
assignee = function (row) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'process-supervisor',
|
||
typeRequest: 'post',
|
||
data: {
|
||
usr_uid: row.data.customKeys.sup_uid,
|
||
pu_type: row.data.customKeys.obj_type === 'group' ? 'GROUP_SUPERVISOR' : 'SUPERVISOR'
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
row.data.customKeys.pu_type = response.pu_type;
|
||
row.data.customKeys.pu_uid = response.pu_uid;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
remove = function (row) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'process-supervisor/' + row.data.customKeys.pu_uid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function () {
|
||
},
|
||
functionComplete: function () {
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
assigmentWindow.open();
|
||
panelTitleUser.addItem(titleUser);
|
||
panelTitleUserList.addItem(titleUserList);
|
||
assigmentWindow.body.style.overflow = "hidden";
|
||
panelGridUser.addItem(gridUsers);
|
||
panelGridUserList.addItem(gridUserList);
|
||
|
||
assigmentPanelGlobal.addItem(assigmentPanelUser);
|
||
assigmentPanelGlobal.addItem(assigmentPanelUserList);
|
||
assigmentWindow.addItem(assigmentPanelGlobal);
|
||
|
||
assigmentPanelUser.addItem(panelTitleUser);
|
||
assigmentPanelUser.addItem(panelSearchUser);
|
||
assigmentPanelUser.addItem(buttonsUsers);
|
||
assigmentPanelUser.addItem(panelGridUser);
|
||
|
||
assigmentPanelUserList.addItem(panelTitleUserList);
|
||
assigmentPanelUserList.addItem(panelSearchUserList);
|
||
assigmentPanelUserList.addItem(buttonsUserList);
|
||
assigmentPanelUserList.addItem(panelGridUserList);
|
||
|
||
assigmentWindow.defineEvents();
|
||
applyStyles();
|
||
|
||
loadServerData();
|
||
};
|
||
}());
|
||
(function () {
|
||
PMDesigner.assigmentSupervisors = function (event) {
|
||
var assigmentWindow = null,
|
||
pageSizeAssignment = 8,
|
||
flagEdit = 0,
|
||
i,
|
||
index = 0,
|
||
quickMessageWindow = new QuickMessageWindow(),
|
||
arrayObjectUserList = new Array(),
|
||
arrayObjectUsers = new Array(),
|
||
arrayObjectUserList2 = new Array(),
|
||
arrayObjectUsers2 = new Array(),
|
||
arrayDynaformInputDocumentID = new Array(),
|
||
arrayDynaformInputDocumentObject = new Array(),
|
||
arrayObjectRemovedSteps = new Array(),
|
||
message_window,
|
||
restClient,
|
||
assigmentPanelUser,
|
||
assigmentPanelUserList,
|
||
assigmentPanelGlobal,
|
||
panelTitleUser,
|
||
titleUser,
|
||
panelSearchUser,
|
||
searchGridUser,
|
||
panelGridUser,
|
||
buttonsUsers,
|
||
gridUsers,
|
||
panelTitleUserList,
|
||
titleUserList,
|
||
panelSearchUserList,
|
||
searchGridUserList,
|
||
panelGridUserList,
|
||
radioUsersList,
|
||
buttonsUserList,
|
||
gridUserList,
|
||
radioUsers,
|
||
applyStylesRadioButtonGroupField,
|
||
applyStylesForToolbar,
|
||
applyStyles,
|
||
loadUsers,
|
||
loadUsersList,
|
||
groupRows,
|
||
assignee,
|
||
remove,
|
||
loadGridCaseTacker,
|
||
orderDataTree,
|
||
titleTreeObjects,
|
||
titleGridObjects,
|
||
panelLabelObjects,
|
||
panelObjects,
|
||
treePanelObjects,
|
||
updateItem,
|
||
usersgrid,
|
||
saveItemDyanformInputDocuments,
|
||
getValuesAssignmentSteps,
|
||
gridPanelObjects,
|
||
panelContainerObjects,
|
||
userslist,
|
||
gridpanelobj,
|
||
flashMessage = new PMUI.ui.FlashMessage({
|
||
message: '',
|
||
appendTo: document.body,
|
||
duration: 1000,
|
||
severity: "success"
|
||
});
|
||
assigmentWindow = new PMUI.ui.Window({
|
||
id: 'assigmentUserWindow',
|
||
title: 'Supervisors'.translate(),
|
||
width: DEFAULT_WINDOW_WIDTH + 1,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerHeight: 'auto',
|
||
bodyHeight: 'auto',
|
||
modal: true,
|
||
onBeforeClose: function () {
|
||
if (flagEdit != 0) {
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
assigmentWindow.close();
|
||
}
|
||
},
|
||
footerItems: [
|
||
{
|
||
text: "Cancel",
|
||
handler: function () {
|
||
if (flagEdit != 0) {
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
assigmentWindow.close();
|
||
}
|
||
},
|
||
buttonType: 'error'
|
||
},
|
||
{
|
||
text: 'Save',
|
||
handler: function () {
|
||
var i, j, idObject, objType, baseEndPointID;
|
||
if (flagEdit != 0) {
|
||
//save Configuration Supervisors and Steps(Dyanform - Inputs Documents)
|
||
if (gridUserList.getItems().length > 0) {
|
||
grid = gridUserList;
|
||
for (i = 0; i < arrayObjectUserList.length; i += 1) {
|
||
b = arrayObjectUserList[i];
|
||
grid.removeItem(b);
|
||
grid.sort('sup_name', 'asc');
|
||
gridUserList.addItem(b);
|
||
radioUsersList.setValue(radioUsers.getValue());
|
||
groupRows(gridUserList, radioUsers.getValue());
|
||
if (arrayObjectUserList2.indexOf(b) == -1) {
|
||
assignee(b);
|
||
}
|
||
}
|
||
}
|
||
if (gridUsers.getItems().length > 0) {
|
||
for (i = 0; i < arrayObjectUsers.length; i += 1) {
|
||
b = arrayObjectUsers[i];
|
||
if (arrayObjectUsers2.indexOf(b) == -1) {
|
||
remove(arrayObjectUsers[i]);
|
||
}
|
||
}
|
||
}
|
||
|
||
index = 0;
|
||
for (i = 0; i < gridPanelObjects.getItems().length; i += 1) {
|
||
idObject = gridPanelObjects.getItems()[i].getData().obj_uid;
|
||
index = arrayDynaformInputDocumentID.indexOf(idObject);
|
||
if (index <= -1) {
|
||
saveItemDyanformInputDocuments(gridPanelObjects.getItems()[i]);
|
||
} else {
|
||
updateItem(gridPanelObjects.getItems()[i], i);
|
||
}
|
||
}
|
||
|
||
for (i = 0; i < arrayObjectRemovedSteps.length; i += 1) {
|
||
for (j = 0; j < arrayDynaformInputDocumentObject.length; j += 1) {
|
||
index = (arrayObjectRemovedSteps[i] == arrayDynaformInputDocumentObject[j].obj_uid) ? 0 : 1;
|
||
if (index == 0) {
|
||
objType = arrayDynaformInputDocumentObject[j].obj_type.toLowerCase();
|
||
baseEndPointID = (objType === "dynaform") ? arrayDynaformInputDocumentObject[j].pud_uid : arrayDynaformInputDocumentObject[j].pui_uid;
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
"calls": [
|
||
{
|
||
"url": 'process-supervisor/' + objType + '/' + baseEndPointID,
|
||
"method": 'DELETE'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
assigmentWindow.close();
|
||
}
|
||
else {
|
||
assigmentWindow.close();
|
||
}
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
],
|
||
visibleFooter: true,
|
||
buttonPanelPosition: "bottom",
|
||
footerAlign: "right"
|
||
});
|
||
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "messageWindowCancel",
|
||
width: 490,
|
||
title: "Supervisors".translate(),
|
||
windowMessageType: "warning",
|
||
bodyHeight: "auto",
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [{
|
||
id: "messageWindowNo",
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: "messageWindowYes",
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
assigmentWindow.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
restClient = new PMRestClient({
|
||
endpoint: 'projects',
|
||
typeRequest: 'get',
|
||
messageError: 'There are problems, please try again.'.translate(),
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
assigmentPanelUser = new PMUI.core.Panel({
|
||
layout: "vbox",
|
||
width: "49%",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-panel-assignment-white'
|
||
]
|
||
}
|
||
});
|
||
assigmentPanelUserList = new PMUI.core.Panel({
|
||
layout: "vbox",
|
||
width: "50%",
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-panel-assignment-smooth'
|
||
]
|
||
}
|
||
});
|
||
assigmentPanelGlobal = new PMUI.core.Panel({
|
||
layout: 'hbox',
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-assigment-panel-global'
|
||
]
|
||
}
|
||
});
|
||
|
||
panelTitleUser = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
titleUser = new PMUI.ui.TextLabel({
|
||
id: 'titleUser',
|
||
label: ' ',
|
||
textMode: 'plain',
|
||
text: 'Available Users List'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
panelSearchUser = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
searchGridUser = new PMUI.field.TextField({
|
||
id: 'searchGridUser',
|
||
label: ' ',
|
||
placeholder: 'Search ...'.translate()
|
||
});
|
||
panelGridUser = new PMUI.core.Panel({layout: 'hbox'});
|
||
buttonsUsers = new PMUI.field.OptionsSelectorField({
|
||
id: 'buttonsUsers',
|
||
orientation: 'horizontal',
|
||
items: [{
|
||
text: 'All'.translate(),
|
||
selected: true,
|
||
value: 'all',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-all'
|
||
]
|
||
}
|
||
}, {
|
||
text: 'Users'.translate(),
|
||
value: 'user',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-user'
|
||
]
|
||
}
|
||
}, {
|
||
text: 'Groups'.translate(),
|
||
value: 'group',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-group'
|
||
]
|
||
}
|
||
}
|
||
],
|
||
listeners: {
|
||
select: function (item, event) {
|
||
groupRows(gridUsers, item.value);
|
||
}
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-assigment-buttons'
|
||
]
|
||
}
|
||
});
|
||
gridUsers = new PMUI.grid.GridPanel({
|
||
id: 'gridUsers',
|
||
pageSize: pageSizeAssignment,
|
||
behavior: 'dragdropsort',
|
||
filterable: true,
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
dynamicLoad: {
|
||
keys: {
|
||
server: HTTP_SERVER_HOSTNAME,
|
||
projectID: PMDesigner.project.projectId,
|
||
workspace: WORKSPACE,
|
||
accessToken: PMDesigner.project.tokens.access_token,
|
||
endPoint: 'project/' + PMDesigner.project.id + '/available-process-supervisors/paged'
|
||
}
|
||
},
|
||
customDataRest: function (data) {
|
||
var i;
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].obj_type == "group") {
|
||
data[i].available = data[i].grp_name;
|
||
} else {
|
||
data[i].available = data[i]["usr_firstname"] + " " + data[i]["usr_lastname"] + " (" + data[i]["usr_username"] + ")";
|
||
}
|
||
}
|
||
return data;
|
||
},
|
||
columns: [{
|
||
id: 'gridUsersButtonLabel',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: '10%',
|
||
buttonLabel: function (row, data) {
|
||
return data.lastName;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-grid-button'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var option, select;
|
||
select = document.createElement("span");
|
||
select.id = "list-usersIngroup";
|
||
option = document.createElement("span");
|
||
option.id = "list-usersIngroup-iem"
|
||
if (row.getData()["obj_type"] === 'group') {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var optionClone, i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (i == 10) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.innerHTML = "<b style='float: right'>. . .<b>";
|
||
select.appendChild(optionClone);
|
||
} else {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "- " + response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
optionClone.title = response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
select.appendChild(optionClone);
|
||
}
|
||
}
|
||
if (!optionClone) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "No users".translate();
|
||
select.appendChild(optionClone);
|
||
}
|
||
|
||
quickMessageWindow.show($(row.html).find('a')[0], select);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.setBaseEndPoint('group/' + row.getData()["grp_uid"] + '/supervisor-users?start=0&limit=11');
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'string',
|
||
columnData: 'available',
|
||
alignmentCell: 'left',
|
||
width: '330px'
|
||
}, {
|
||
id: 'gridUsersButtonAssign',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: '19%',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit-assign'
|
||
]
|
||
},
|
||
buttonLabel: function (row, data) {
|
||
row.getCells()[0].content.style.addClasses([row.getData()["obj_type"] === 'user' ? 'button-icon-user' : 'button-icon-group']);
|
||
return '';
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
grid = (grid != null) ? grid : gridUsers;
|
||
assignee(row);
|
||
gridUserList.goToPage(gridUserList.currentPage);
|
||
grid.goToPage(grid.currentPage);
|
||
flashMessage.setMessage("The user/group was successfully removed".translate());
|
||
flashMessage.setAppendTo(assigmentWindow.getHTML());
|
||
flashMessage.show();
|
||
}
|
||
}
|
||
],
|
||
onDropOut: function (item, origin, destiny) {
|
||
},
|
||
onDrop: function (a, row) {
|
||
grid = this;
|
||
remove(row);
|
||
gridUserList.goToPage(gridUserList.currentPage);
|
||
grid.goToPage(grid.currentPage);
|
||
flashMessage.setMessage("The user/group was successfully removed".translate());
|
||
flashMessage.setAppendTo(assigmentWindow.getHTML());
|
||
flashMessage.show();
|
||
return false;
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-grid'
|
||
]
|
||
}
|
||
});
|
||
|
||
panelTitleUserList = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
titleUserList = new PMUI.ui.TextLabel({
|
||
id: 'titleUserList',
|
||
textMode: 'plain',
|
||
text: 'Assigned supervisors list'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
panelSearchUserList = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
searchGridUserList = new PMUI.field.TextField({
|
||
id: 'searchGridUserList',
|
||
label: ' ',
|
||
placeholder: 'Search ...'.translate()
|
||
});
|
||
panelGridUserList = new PMUI.core.Panel({
|
||
layout: 'hbox'
|
||
});
|
||
radioUsersList = new PMUI.field.RadioButtonGroupField({
|
||
id: 'idRadioUsersList',
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 3,
|
||
options: [
|
||
{
|
||
label: "View all".translate(),
|
||
value: "all"
|
||
},
|
||
{
|
||
label: "View users".translate(),
|
||
value: "user"
|
||
},
|
||
{
|
||
label: "View groups".translate(),
|
||
value: "group"
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
switch (newVal) {
|
||
case "user" :
|
||
gridUserList.typeList = "user".translate();
|
||
break;
|
||
case "group":
|
||
gridUserList.typeList = "group".translate();
|
||
break;
|
||
default:
|
||
gridUserList.typeList = "";
|
||
break;
|
||
}
|
||
gridUserList.goToPage(0);
|
||
},
|
||
required: true,
|
||
value: "all"
|
||
});
|
||
buttonsUserList = new PMUI.field.OptionsSelectorField({
|
||
id: 'buttonsUserList',
|
||
orientation: 'horizontal',
|
||
items: [{
|
||
text: 'All'.translate(),
|
||
value: 'all',
|
||
selected: true,
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-all'
|
||
]
|
||
}
|
||
}, {
|
||
text: 'Users'.translate(),
|
||
value: 'user',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-user'
|
||
]
|
||
}
|
||
}, {
|
||
text: 'Groups'.translate(),
|
||
value: 'group',
|
||
style: {
|
||
cssClasses: [
|
||
'pmui-switch-icon-group'
|
||
]
|
||
}
|
||
}
|
||
|
||
],
|
||
listeners: {
|
||
select: function (item, event) {
|
||
groupRows(gridUserList, item.value);
|
||
}
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-assigment-buttons'
|
||
]
|
||
}
|
||
});
|
||
gridUserList = new PMUI.grid.GridPanel({
|
||
id: 'gridUserList',
|
||
pageSize: pageSizeAssignment,
|
||
behavior: 'dragdropsort',
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
filterable: true,
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
emptyMessage: function () {
|
||
var div = document.createElement('div'),
|
||
span = document.createElement('span');
|
||
div.appendChild(span);
|
||
div.className = 'mafe-grid-panel-empty';
|
||
span.innerHTML = 'Drag & Drop a User or a Group here'.translate();
|
||
return div;
|
||
},
|
||
onEmpty: function (grid, cell) {
|
||
gridUserList.dom.tableContainer.style.overflow = 'hidden';
|
||
},
|
||
dynamicLoad: {
|
||
keys: {
|
||
server: HTTP_SERVER_HOSTNAME,
|
||
projectID: PMDesigner.project.projectId,
|
||
workspace: WORKSPACE,
|
||
accessToken: PMDesigner.project.tokens.access_token,
|
||
endPoint: 'project/' + PMDesigner.project.id + '/process-supervisors/paged'
|
||
}
|
||
},
|
||
customDataRest: function (data) {
|
||
var i;
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].pu_type == "GROUP_SUPERVISOR") {
|
||
data[i].assignee = data[i].grp_name;
|
||
} else {
|
||
data[i].assignee = data[i]["usr_firstname"] + " " + data[i]["usr_lastname"] + " (" + data[i]["usr_username"] + ")";
|
||
}
|
||
}
|
||
return data;
|
||
},
|
||
columns: [{
|
||
id: 'gridUserListButtonLabel',
|
||
title: '',
|
||
width: '10%',
|
||
dataType: 'button',
|
||
buttonLabel: function (row, data) {
|
||
return data.lastName;
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-grid-button'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var option, select;
|
||
select = document.createElement("span");
|
||
select.id = "list-usersIngroup";
|
||
option = document.createElement("span");
|
||
option.id = "list-usersIngroup-iem"
|
||
if (row.getData()["pu_type"] === "GROUP_SUPERVISOR") {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var optionClone, i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (i == 10) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.innerHTML = "<b style='float: right'>. . .<b>";
|
||
select.appendChild(optionClone);
|
||
} else {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "- " + response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
optionClone.title = response[i].usr_firstname + ' ' + response[i].usr_lastname;
|
||
select.appendChild(optionClone);
|
||
}
|
||
}
|
||
if (!optionClone) {
|
||
optionClone = option.cloneNode(false);
|
||
optionClone.textContent = "No users".translate();
|
||
select.appendChild(optionClone);
|
||
}
|
||
|
||
quickMessageWindow.show($(row.html).find('a')[0], select);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.setBaseEndPoint('group/' + row.getData()["grp_uid"] + '/supervisor-users?start=0&limit=11');
|
||
restClient.executeRestClient();
|
||
}
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'string',
|
||
columnData: 'assignee',
|
||
width: '330px',
|
||
alignmentCell: 'left'
|
||
}, {
|
||
id: 'gridUserListButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
width: '10%',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete-assign'
|
||
]
|
||
},
|
||
buttonLabel: function (row, data) {
|
||
row.getCells()[0].content.style.addClasses([row.getData()["pu_type"] === "SUPERVISOR" ? 'button-icon-user' : 'button-icon-group']);
|
||
return '';
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
grid = (grid != null) ? grid : gridUsers;
|
||
remove(row);
|
||
gridUsers.goToPage(gridUsers.currentPage);
|
||
grid.goToPage(grid.currentPage);
|
||
flashMessage.setMessage("Assignee saved successfully".translate());
|
||
flashMessage.setAppendTo(assigmentWindow.getHTML());
|
||
flashMessage.show();
|
||
}
|
||
}
|
||
],
|
||
onDropOut: function (item, origin, destiny) {
|
||
},
|
||
onDrop: function (grid, row) {
|
||
var dataRow = {};
|
||
grid = this;
|
||
assignee(row);
|
||
gridUsers.goToPage(gridUsers.currentPage);
|
||
grid.goToPage(grid.currentPage);
|
||
flashMessage.setMessage("Assignee saved successfully".translate());
|
||
flashMessage.setAppendTo(assigmentWindow.getHTML());
|
||
flashMessage.show();
|
||
return false;
|
||
},
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-grid'
|
||
]
|
||
}
|
||
});
|
||
radioUsers = new PMUI.field.RadioButtonGroupField({
|
||
id: 'idRadioUsers',
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 3,
|
||
options: [
|
||
{
|
||
label: "View all".translate(),
|
||
value: "all"
|
||
},
|
||
{
|
||
label: "View users".translate(),
|
||
value: "user"
|
||
},
|
||
{
|
||
label: "View groups".translate(),
|
||
value: "group"
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
switch (newVal) {
|
||
case "user" :
|
||
gridUsers.typeList = "user";
|
||
break;
|
||
case "group":
|
||
gridUsers.typeList = "group";
|
||
break;
|
||
default:
|
||
gridUsers.typeList = "";
|
||
break;
|
||
}
|
||
gridUsers.goToPage(0);
|
||
},
|
||
required: true,
|
||
value: "all",
|
||
style: {
|
||
cssProperties: {
|
||
'margin-top': '15px'
|
||
}
|
||
}
|
||
});
|
||
applyStylesRadioButtonGroupField = function () {
|
||
$('#idRadioUsers .pmui-field-control-table').css("border", "none");
|
||
$('#idRadioUsers').css("margin-top", "12px");
|
||
radioUsers.defineEvents();
|
||
|
||
$('#idRadioUsersList .pmui-field-control-table').css("border", "none");
|
||
$('#idRadioUsersList').css("margin-top", "12px");
|
||
radioUsersList.defineEvents();
|
||
};
|
||
|
||
applyStylesForToolbar = function () {
|
||
$('.pmui-gridpanel-toolbar')[0].childNodes[0].style.width = "300px";
|
||
$('.pmui-gridpanel-toolbar')[1].childNodes[0].style.width = "300px";
|
||
$('.pmui-gridpanel-toolbar')[0].childNodes[0].style.backgroundColor = "#f5f5f5";
|
||
$('.pmui-gridpanel-toolbar')[1].childNodes[0].style.backgroundColor = "#f5f5f5";
|
||
$('#assigmentUserWindow')[0].childNodes[1].childNodes[0].childNodes[1].style.backgroundColor = "white";
|
||
$('#gridUserList')[0].style.backgroundColor = "white";
|
||
$('#gridUserList').css("width", "452px");
|
||
$('#gridUsers').css({"width": "452px", "height": "175px"});
|
||
$('.pmui-window-body .pmui-panel:eq(9)').css({
|
||
'width': '1000px',
|
||
'border-top': '1px solid #cdd2d5',
|
||
'margin-top': '36px',
|
||
'height': '80px'
|
||
});
|
||
};
|
||
|
||
applyStyles = function () {
|
||
applyStylesRadioButtonGroupField();
|
||
gridUsers.dom.toolbar.appendChild(radioUsers.getHTML());
|
||
gridUsers.dom.toolbar.style.height = "76px";
|
||
gridUserList.dom.toolbar.appendChild(radioUsersList.getHTML());
|
||
gridUserList.dom.toolbar.style.height = "76px";
|
||
radioUsers.dom.labelTextContainer.style.display = "none";
|
||
radioUsersList.dom.labelTextContainer.style.display = "none";
|
||
gridUsers.hideHeaders();
|
||
gridUserList.hideHeaders();
|
||
assigmentPanelUserList.setHeight('100%');
|
||
gridUsers.filterControl.html.style.width = "300px";
|
||
gridUserList.filterControl.html.style.width = "300px";
|
||
assigmentWindow.getItems()[0].getItems()[0].html.style.borderRight = "1px solid #cdd2d5";
|
||
assigmentWindow.getItems()[0].getItems()[0].html.style.borderBottom = "1px solid #cdd2d5";
|
||
assigmentWindow.getItems()[0].getItems()[1].html.style.borderBottom = "1px solid #cdd2d5";
|
||
assigmentWindow.getItems()[0].getItems()[0].html.style.height = "415px";
|
||
assigmentWindow.getItems()[0].getItems()[1].html.style.height = "415px";
|
||
assigmentWindow.getItems()[0].getItems()[1].html.style.paddingLeft = "10px";
|
||
$('#gridPanelObjects .pmui-gridpanel-tableContainer').css({'height': '245px'});
|
||
$(".pmui-gridpanel-footer").addClass("pmui-gridpanel-footer-dinamic");
|
||
};
|
||
loadUsers = function (response) {
|
||
var i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (response[i].obj_type === 'user') {
|
||
gridUsers.addDataItem({
|
||
sup_uid: response[i].usr_uid,
|
||
sup_name: response[i].usr_firstname + ' ' + response[i].usr_lastname,
|
||
obj_type: response[i].obj_type
|
||
});
|
||
}
|
||
if (response[i].obj_type === 'group') {
|
||
gridUsers.addDataItem({
|
||
sup_uid: response[i].grp_uid,
|
||
sup_name: response[i].grp_name,
|
||
obj_type: response[i].obj_type
|
||
});
|
||
}
|
||
}
|
||
gridUsers.sort('sup_name', 'asc');
|
||
};
|
||
loadUsersList = function (response) {
|
||
var i;
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (response[i].pu_type === 'SUPERVISOR') {
|
||
gridUserList.addDataItem({
|
||
sup_uid: response[i].usr_uid,
|
||
sup_name: response[i].usr_firstname + ' ' + response[i].usr_lastname,
|
||
obj_type: 'user',
|
||
pu_type: response[i].pu_type,
|
||
pu_uid: response[i].pu_uid
|
||
});
|
||
}
|
||
if (response[i].pu_type === 'GROUP_SUPERVISOR') {
|
||
gridUserList.addDataItem({
|
||
sup_uid: response[i].grp_uid,
|
||
sup_name: response[i].grp_name,
|
||
obj_type: 'group',
|
||
pu_type: response[i].pu_type,
|
||
pu_uid: response[i].pu_uid
|
||
});
|
||
}
|
||
}
|
||
gridUserList.sort('sup_name', 'asc');
|
||
};
|
||
groupRows = function (grid, value) {
|
||
var i, items;
|
||
if (grid.memorystack === undefined) {
|
||
grid.memorystack = [];
|
||
}
|
||
items = grid.getItems();
|
||
while (grid.memorystack.length > 0) {
|
||
grid.addItem(grid.memorystack.pop());
|
||
}
|
||
if (value !== 'all') {
|
||
for (i = 0; i < items.length; i += 1) {
|
||
if (items[i].getData().obj_type !== value) {
|
||
grid.memorystack.push(items[i]);
|
||
grid.removeItem(items[i]);
|
||
}
|
||
}
|
||
}
|
||
grid.sort('sup_name', 'asc');
|
||
};
|
||
assignee = function (row) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'process-supervisor',
|
||
typeRequest: 'post',
|
||
data: {
|
||
usr_uid: row.getData()["obj_type"] == "group" ? row.getData()["grp_uid"] : row.getData()["usr_uid"],
|
||
pu_type: row.getData()["obj_type"] === 'group' ? 'GROUP_SUPERVISOR' : 'SUPERVISOR'
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
row.data.customKeys.pu_type = response.pu_type;
|
||
row.data.customKeys.pu_uid = response.pu_uid;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems saving the assigned user, please try again.'.translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
remove = function (row) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'process-supervisor/' + row.getData()["pu_uid"],
|
||
typeRequest: 'remove',
|
||
functionSuccess: function () {
|
||
},
|
||
functionComplete: function () {
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
//steps Dynaforms and InputDocuments
|
||
titleTreeObjects = new PMUI.ui.TextLabel({
|
||
id: "titleTreeObjects",
|
||
textMode: 'plain',
|
||
text: 'Available Objects'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
]
|
||
}
|
||
});
|
||
|
||
titleGridObjects = new PMUI.ui.TextLabel({
|
||
id: "titleGridObjects",
|
||
textMode: 'plain',
|
||
text: 'Assigned objects'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-assigment-title'
|
||
],
|
||
cssProperties: {
|
||
'left': 40
|
||
}
|
||
}
|
||
});
|
||
|
||
panelLabelObjects = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH * 0.94,
|
||
fieldset: true,
|
||
items: [
|
||
titleTreeObjects,
|
||
titleGridObjects
|
||
],
|
||
style: {
|
||
cssProperties: {
|
||
'margin-bottom': 2,
|
||
'margin-left': 50
|
||
}
|
||
},
|
||
layout: "hbox"
|
||
});
|
||
|
||
panelObjects = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH * 0.94,
|
||
height: 30,
|
||
fieldset: true,
|
||
items: [
|
||
panelLabelObjects
|
||
],
|
||
layout: "vbox"
|
||
});
|
||
|
||
//Objects
|
||
orderDataTree = function (data) {
|
||
var items = [], i,
|
||
type = ['DYNAFORM', 'INPUT-DOCUMENT'],
|
||
label = ['Dynaform', 'Input Document'];
|
||
for (i = 0; i < type.length; i += 1) {
|
||
items = [];
|
||
for (var j = 0; j < data.length; j += 1) {
|
||
if (type[i] === data[j].obj_type) {
|
||
if (data[j].obj_type == "DYNAFORM") {
|
||
items.push({
|
||
step_type_obj: label[i].translate(),
|
||
obj_label: label[i].translate(),
|
||
obj_title: data[j]['dyn_title'],
|
||
obj_type: data[j]['obj_type'],
|
||
obj_uid: data[j]['obj_uid'],
|
||
dyn_uid: data[j]['dyn_uid']
|
||
});
|
||
} else {
|
||
if (data[j].obj_type == "INPUT-DOCUMENT") {
|
||
items.push({
|
||
step_type_obj: label[i].translate(),
|
||
obj_label: label[i].translate(),
|
||
obj_title: data[j]['inp_doc_title'],
|
||
obj_type: data[j]['obj_type'],
|
||
obj_uid: data[j]['obj_uid'],
|
||
obj_uid: data[j]['obj_uid'],
|
||
inp_uid: data[j]['inp_doc_uid']
|
||
});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (items.length === 0) {
|
||
dataTree.push({
|
||
obj_title: label[i].translate(),
|
||
items: [{obj_title: 'N/A'.translate(), obj_uid: ''}]
|
||
});
|
||
} else {
|
||
dataTree.push({
|
||
obj_title: label[i].translate(),
|
||
items: items
|
||
});
|
||
}
|
||
}
|
||
};
|
||
|
||
loadGridCaseTacker = function (data) {
|
||
var dataOrder = new Array(), i, j;
|
||
for (i = 0; i < data.length; i += 1) {
|
||
for (j = 0; j < data.length; j += 1) {
|
||
positionIndex = (data[j]['obj_type'] == 'DYNAFORM') ? data[j].pud_position : data[j].pui_position;
|
||
if (positionIndex == (i + 1)) {
|
||
dataOrder.push(data[j]);
|
||
switch (dataOrder[i]['obj_type']) {
|
||
case 'DYNAFORM':
|
||
label = dataOrder[i]['dyn_title'].translate();
|
||
break;
|
||
case 'INPUT-DOCUMENT':
|
||
label = dataOrder[i]['input_doc_title'].translate();
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
dataOrder[i]['obj_title'] = label;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
gridPanelObjects.setDataItems(dataOrder);
|
||
};
|
||
|
||
getValuesAssignmentSteps = function () {
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
"calls": [
|
||
{
|
||
"url": "process-supervisor/available-assignmentsteps",
|
||
"method": 'GET'
|
||
},
|
||
{
|
||
"url": "process-supervisor/assignmentsteps",
|
||
"method": 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
dataTree = [];
|
||
orderDataTree(response[0].response);
|
||
treePanelObjects.setDataItems(dataTree);
|
||
loadGridCaseTacker(response[1].response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
treePanelObjects = new PMUI.panel.TreePanel({
|
||
id: 'treePanelObjects',
|
||
proportion: 0.5,
|
||
filterable: true,
|
||
filterPlaceholder: 'Text to search'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
style: {cssClasses: ['itemsSteps']},
|
||
nodeDefaultSettings: {
|
||
behavior: "drag",
|
||
labelDataBind: 'obj_title',
|
||
itemsDataBind: 'items',
|
||
collapsed: false,
|
||
childrenDefaultSettings: {
|
||
labelDataBind: 'obj_title',
|
||
autoBind: true
|
||
},
|
||
autoBind: true
|
||
}
|
||
});
|
||
|
||
//Save Item (Drop)
|
||
saveItemDyanformInputDocuments = function (rowStep) {
|
||
rowStep = rowStep.getData();
|
||
if (rowStep.obj_type === "DYNAFORM") {
|
||
data = {
|
||
"dyn_uid": rowStep.obj_uid,
|
||
"pud_position": rowStep.obj_position
|
||
};
|
||
} else {
|
||
data = {
|
||
"inp_doc_uid": rowStep.obj_uid,
|
||
"pui_position": rowStep.obj_position
|
||
};
|
||
}
|
||
|
||
restClient = new PMRestClient({
|
||
endpoint: 'process-supervisor/' + rowStep.obj_type.toLowerCase(),
|
||
typeRequest: 'post',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
return data;
|
||
};
|
||
|
||
//Update SORT tree
|
||
updateItem = function (rowStep, i) {
|
||
var objType,
|
||
baseEndPointType,
|
||
baseEndPointID;
|
||
rowStep = rowStep.getData();
|
||
rowStep.obj_position = i + 1;
|
||
objType = rowStep.obj_type.toLowerCase(),
|
||
baseEndPointType = (objType === "dynaform") ? 'dynaforms' : 'input-documents';
|
||
baseEndPointID = (objType === "dynaform") ? rowStep.pud_uid : rowStep.pui_uid;
|
||
if (objType === "dynaform") {
|
||
rowStep.pud_position = rowStep.obj_position;
|
||
} else {
|
||
rowStep.pui_position = rowStep.obj_position;
|
||
}
|
||
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
"calls": [
|
||
{
|
||
"url": 'process-supervisor/' + objType + "/" + baseEndPointID,
|
||
"method": 'PUT',
|
||
"data": rowStep
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
gridPanelObjects = new PMUI.grid.GridPanel({
|
||
id: 'gridPanelObjects',
|
||
proportion: 1.5,
|
||
visibleFooter: false,
|
||
filterable: false,
|
||
style: {
|
||
cssClasses: ['itemsSteps']
|
||
},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
behavior: 'dragdropsort',
|
||
columns: [
|
||
{
|
||
title: 'Title'.translate(),
|
||
dataType: 'string',
|
||
width: 330,
|
||
alignment: "left",
|
||
columnData: "obj_title",
|
||
sortable: false,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
title: 'Type'.translate(),
|
||
dataType: 'string',
|
||
width: 120,
|
||
alignment: "left",
|
||
columnData: "obj_type",
|
||
sortable: false,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
id: 'gridPanelObjectsButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: '',
|
||
buttonStyle: {cssClasses: ['mafe-button-delete-assign']},
|
||
buttonTooltip: 'Remove Object'.translate(),
|
||
onButtonClick: function (row, grid) {
|
||
var rowStep, treePanelItems;
|
||
flagEdit = 1;
|
||
index = arrayDynaformInputDocumentID.indexOf(row.getData().obj_uid);
|
||
rowStep = row.getData();
|
||
treePanelItems = treePanelObjects.getItems();
|
||
|
||
if (index > -1) {
|
||
arrayObjectRemovedSteps.push(row.getData().obj_uid);
|
||
arrayDynaformInputDocumentID.splice(index, 1);
|
||
}
|
||
function removeRowClass(treeNode) {
|
||
var childNodeEl = $(treeNode.html).find('.pmui-gridpanelrow');
|
||
childNodeEl.removeClass('pmui-gridpanelrow');
|
||
}
|
||
|
||
function removeEmptyNode(indexNode) {
|
||
var parentNode = treePanelItems[indexNode];
|
||
if (parentNode.getItems().length == 1 &&
|
||
parentNode.getItems()[0].getData()['obj_uid'] == "") {
|
||
parentNode.removeItem(0);
|
||
}
|
||
parentNode.addItem(row);
|
||
removeRowClass(parentNode);
|
||
}
|
||
|
||
if (rowStep.obj_type === "DYNAFORM") {
|
||
removeEmptyNode(0);
|
||
} else {
|
||
removeEmptyNode(1);
|
||
}
|
||
grid.removeItem(row);
|
||
}
|
||
}
|
||
],
|
||
onDrop: function (grid, item, index) {
|
||
var parentItems;
|
||
if (item.getData()['obj_uid'] == "") {
|
||
return false;
|
||
|
||
}
|
||
parentItems = item.parent.getItems();
|
||
if (parentItems.length == 1 && item.getData()['obj_uid'] != "") {
|
||
item.parent.addDataItem(
|
||
{obj_title: 'N/A'.translate(), obj_uid: ''}
|
||
);
|
||
item.parent.behaviorObject.draggedObject = item;
|
||
}
|
||
flagEdit = 1;
|
||
rowStep = item.getData();
|
||
rowStep.obj_position = index + 1;
|
||
item.setData(rowStep);
|
||
index = arrayObjectRemovedSteps.indexOf(item.getData().obj_uid);
|
||
|
||
if (index > -1) {
|
||
arrayDynaformInputDocumentID.push(item.getData().obj_uid);
|
||
arrayObjectRemovedSteps.splice(index, 1);
|
||
}
|
||
},
|
||
onSort: function (grid, item, index) {
|
||
flagEdit = 1;
|
||
rowStep = item.getData();
|
||
rowStep.obj_position = index + 1;
|
||
}
|
||
});
|
||
|
||
//principal Container Steps
|
||
panelContainerObjects = new PMUI.core.Panel({
|
||
id: "panelContainerObjects",
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: 250,
|
||
fieldset: true,
|
||
items: [treePanelObjects, gridPanelObjects],
|
||
layout: "hbox",
|
||
style: {
|
||
cssProperties: {
|
||
'margin-top': '-40px'
|
||
}
|
||
}
|
||
});
|
||
|
||
assigmentWindow.open();
|
||
panelTitleUser.addItem(titleUser);
|
||
panelTitleUserList.addItem(titleUserList);
|
||
assigmentWindow.body.style.overflowX = "hidden";
|
||
|
||
panelGridUser.addItem(gridUsers);
|
||
panelGridUserList.addItem(gridUserList);
|
||
|
||
assigmentPanelGlobal.addItem(assigmentPanelUser);
|
||
assigmentPanelGlobal.addItem(assigmentPanelUserList);
|
||
assigmentWindow.addItem(assigmentPanelGlobal);
|
||
|
||
assigmentWindow.addItem(panelObjects);
|
||
assigmentWindow.addItem(panelContainerObjects);
|
||
getValuesAssignmentSteps();
|
||
|
||
gridPanelObjects.style.addProperties({overflow: 'auto'});
|
||
gridPanelObjects.style.addProperties({float: 'right'});
|
||
gridPanelObjects.setWidth(630);
|
||
gridPanelObjects.setHeight(250);
|
||
$('#gridPanelObjects').css("margin-right", "32px");
|
||
$('#treePanelObjects').css("margin-left", "10px");
|
||
|
||
assigmentPanelUser.addItem(panelTitleUser);
|
||
assigmentPanelUser.addItem(panelSearchUser);
|
||
assigmentPanelUser.addItem(radioUsers);
|
||
assigmentPanelUser.addItem(panelGridUser);
|
||
|
||
assigmentPanelUserList.addItem(panelTitleUserList);
|
||
assigmentPanelUserList.addItem(panelSearchUserList);
|
||
assigmentPanelUserList.addItem(radioUsersList);
|
||
assigmentPanelUserList.addItem(panelGridUserList);
|
||
gridUsers.dom.tableContainer.style.height = "245px";
|
||
gridUserList.dom.tableContainer.style.height = "245px";
|
||
gridUsers.goToPage(0);
|
||
gridUserList.goToPage(0);
|
||
assigmentWindow.defineEvents();
|
||
applyStyles();
|
||
treePanelObjects.style.addProperties({overflow: 'auto'});
|
||
|
||
applyStylesForToolbar();
|
||
usersgrid = gridUsers;
|
||
for (i = 0; i < usersgrid.getItems().length; i += 1) {
|
||
arrayObjectUsers2[i] = usersgrid.getItems()[i];
|
||
}
|
||
userslist = gridUserList;
|
||
for (i = 0; i < userslist.getItems().length; i += 1) {
|
||
arrayObjectUserList2[i] = userslist.getItems()[i];
|
||
}
|
||
gridpanelobj = gridPanelObjects;
|
||
for (i = 0; i < gridpanelobj.getItems().length; i += 1) {
|
||
arrayDynaformInputDocumentID[i] = gridpanelobj.getItems()[i].getData().obj_uid;
|
||
arrayDynaformInputDocumentObject[i] = gridpanelobj.getItems()[i].getData();
|
||
}
|
||
};
|
||
}());
|
||
(
|
||
function () {
|
||
PMDesigner.propertiesProcess = function () {
|
||
var responseProperties = null,
|
||
getValuesProperties,
|
||
isDirtyFormProcess,
|
||
saveProperties,
|
||
propertiesWindow,
|
||
processUID,
|
||
textTitle,
|
||
textDescription,
|
||
processOwner,
|
||
dropCalendar,
|
||
dropProcessCat,
|
||
dropDynaform,
|
||
dropRouting,
|
||
checkDebug,
|
||
checkHideCase,
|
||
checkSubProcess,
|
||
dropCaseCreated,
|
||
dropCaseDeleted,
|
||
dropCaseCancelled,
|
||
dropCasePaused,
|
||
dropCaseUnpaused,
|
||
dropCaseReassigned,
|
||
dropCaseOpen,
|
||
dropTypeProcess,
|
||
proCost,
|
||
loadProperties,
|
||
proUnitCost,
|
||
formEditProcess,
|
||
loadDynaforms,
|
||
loadCalendar,
|
||
loadTemplate,
|
||
loadTriggers,
|
||
loadTypeProcess,
|
||
loadCategory,
|
||
notification,
|
||
notificationText = "Fields marked with an asterisk (%%ASTERISK%%) are required.".translate()
|
||
.replace(/%%ASTERISK%%/g, '<span style="color: #e84c3d">*</span>'),
|
||
clickedClose;
|
||
|
||
getValuesProperties = function () {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
"calls": [
|
||
{
|
||
"url": "project/" + PMDesigner.project.id + "/dynaforms",
|
||
"method": 'GET'
|
||
},
|
||
{
|
||
"url": "calendars",
|
||
"method": 'GET'
|
||
},
|
||
{
|
||
"url": "project/categories",
|
||
"method": 'GET'
|
||
},
|
||
{
|
||
"url": "project/" + PMDesigner.project.id + "/file-manager?path=templates",
|
||
"method": 'GET'
|
||
},
|
||
{
|
||
"url": "project/" + PMDesigner.project.id + "/triggers",
|
||
"method": 'GET'
|
||
},
|
||
{
|
||
"url": "project/" + PMDesigner.project.id + "/process",
|
||
"method": 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
loadDynaforms(response[0].response);
|
||
loadCalendar(response[1].response);
|
||
loadCategory(response[2].response);
|
||
loadTemplate(response[3].response);
|
||
loadTriggers(response[4].response);
|
||
loadTypeProcess(response[5].response);
|
||
loadProperties(response[5].response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.setBaseEndPoint('');
|
||
restClient.executeRestClient();
|
||
};
|
||
isDirtyFormProcess = function () {
|
||
var message_window
|
||
if (formEditProcess.isDirty()) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Edit process".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
propertiesWindow.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
propertiesWindow.close();
|
||
}
|
||
};
|
||
saveProperties = function (data) {
|
||
var restClient = new PMRestClient({
|
||
typeRequest: 'update',
|
||
data: data,
|
||
messageSuccess: "Properties saved successfully".translate(),
|
||
functionSuccess: function (xhr, response) {
|
||
propertiesWindow.close();
|
||
|
||
PMDesigner.project.setProjectName(data.pro_title);
|
||
PMDesigner.project.setDescription(data.pro_description);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
|
||
PMDesigner.project.dirty = false;
|
||
}
|
||
});
|
||
restClient.setEndpoint("process");
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
propertiesWindow = new PMUI.ui.Window({
|
||
id: "propertiesProcessWindow",
|
||
title: "Edit process".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerHeight: 'auto',
|
||
bodyHeight: "auto",
|
||
modal: true,
|
||
buttonPanelPosition: "bottom",
|
||
footerAlign: "right",
|
||
onBeforeClose: function () {
|
||
clickClose = true;
|
||
isDirtyFormProcess();
|
||
},
|
||
buttons: [
|
||
{
|
||
id: 'outputWindowDocButtonCancel',
|
||
text: "Cancel".translate(),
|
||
buttonType: "error",
|
||
handler: function () {
|
||
clickedClose = false;
|
||
isDirtyFormProcess();
|
||
}
|
||
},
|
||
{
|
||
id: 'outputWindowDocButtonSave',
|
||
text: "Save".translate(),
|
||
buttonType: "success",
|
||
handler: function () {
|
||
var dataForm;
|
||
if (formEditProcess.isValid() && processOwner.isValid()) {
|
||
if ((navigator.userAgent.indexOf("MSIE") != -1) || (navigator.userAgent.indexOf("Trident") != -1)) {
|
||
dataForm = getData2PMUI(formEditProcess.html);
|
||
} else {
|
||
dataForm = formEditProcess.getData();
|
||
dataForm.pro_process_owner = processOwner.get("value");
|
||
}
|
||
dataForm.pro_debug = checkDebug.controls[0].selected ? 1 : 0;
|
||
dataForm.pro_show_message = checkHideCase.controls[0].selected ? 1 : 0;
|
||
dataForm.pro_subprocess = checkSubProcess.controls[0].selected ? 1 : 0;
|
||
functionAssignmentUsers = function (xhr, response) {
|
||
};
|
||
saveProperties(dataForm);
|
||
} else {
|
||
if (!(processOwner.isValid()) && formEditProcess.isValid()) {
|
||
formEditProcess.addItem(notification);
|
||
} else {
|
||
formEditProcess.removeItem(notification);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
});
|
||
|
||
processUID = new PMUI.field.TextField({
|
||
label: "UID".translate(),
|
||
id: "process_uid",
|
||
name: "pro_uid",
|
||
labelWidth: "35%",
|
||
controlsWidth: "300px"
|
||
});
|
||
|
||
textTitle = new PMUI.field.TextField({
|
||
label: "Title".translate(),
|
||
id: 'textTitle',
|
||
name: 'pro_title',
|
||
labelWidth: "35%",
|
||
placeholder: 'a text here'.translate(),
|
||
controlsWidth: "300px",
|
||
required: true
|
||
});
|
||
|
||
textDescription = new PMUI.field.TextAreaField({
|
||
id: 'textDescription',
|
||
name: 'pro_description',
|
||
label: "Description".translate(),
|
||
labelWidth: "35%",
|
||
controlsWidth: "500px",
|
||
rows: 150,
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
});
|
||
|
||
processOwner = new SuggestField({
|
||
id: 'processOwner',
|
||
name: 'pro_owner',
|
||
label: "Process Owner".translate(),
|
||
required: true,
|
||
width: 500,
|
||
placeholder: "suggest users".translate(),
|
||
separatingText: ["Users".translate()],
|
||
dynamicLoad: {
|
||
data: [
|
||
{
|
||
key: "usr_uid",
|
||
label: ["usr_firstname", "usr_lastname", "(", "usr_username", ")"]
|
||
}
|
||
],
|
||
keys: {
|
||
url: HTTP_SERVER_HOSTNAME + "/api/1.0/" + WORKSPACE,
|
||
accessToken: PMDesigner.project.tokens.access_token,
|
||
endpoints: [
|
||
{
|
||
method: "GET",
|
||
url: 'users'
|
||
}
|
||
]
|
||
}
|
||
}
|
||
});
|
||
|
||
dropCalendar = new PMUI.field.DropDownListField({
|
||
id: "dropCalendar",
|
||
name: "pro_calendar",
|
||
labelWidth: "35%",
|
||
label: "Calendar".translate(),
|
||
controlsWidth: "300px",
|
||
valueType: 'string',
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropProcessCat = new PMUI.field.DropDownListField({
|
||
id: "dropProcessCat",
|
||
name: "pro_category",
|
||
controlsWidth: "300px",
|
||
labelWidth: "35%",
|
||
label: "Process Category".translate(),
|
||
valueType: 'string',
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropDynaform = new PMUI.field.DropDownListField({
|
||
id: "dropDynaform",
|
||
name: "pro_summary_dynaform",
|
||
controlsWidth: "300px",
|
||
labelWidth: "35%",
|
||
label: "Dynaform to show a case summary".translate(),
|
||
valueType: 'string',
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropRouting = new PMUI.field.DropDownListField({
|
||
id: "dropRouting",
|
||
name: "pro_derivation_screen_tpl",
|
||
controlsWidth: "300px",
|
||
labelWidth: "35%",
|
||
label: "Routing Screen Template".translate(),
|
||
valueType: 'string',
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
checkDebug = new PMUI.field.CheckBoxGroupField({
|
||
id: 'checkDebug',
|
||
labelWidth: "35%",
|
||
label: "Debug".translate(),
|
||
name: "pro_debug",
|
||
value: '1',
|
||
controlPositioning: 'vertical',
|
||
options: [
|
||
{
|
||
id: 'pro_debug',
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
}
|
||
});
|
||
|
||
checkHideCase = new PMUI.field.CheckBoxGroupField({
|
||
id: 'checkHideCase',
|
||
labelWidth: "35%",
|
||
label: "Hide the case number and the case title in the steps".translate(),
|
||
value: '1',
|
||
name: "pro_show_message",
|
||
controlPositioning: 'vertical',
|
||
options: [
|
||
{
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
}
|
||
});
|
||
|
||
checkSubProcess = new PMUI.field.CheckBoxGroupField({
|
||
id: 'checkSubProcess',
|
||
labelWidth: "35%",
|
||
label: "This a sub-process".translate(),
|
||
value: '1',
|
||
name: "pro_subprocess",
|
||
controlPositioning: 'vertical',
|
||
options: [
|
||
{
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
}
|
||
});
|
||
dropCaseCreated = new PMUI.field.DropDownListField({
|
||
id: "dropCaseCreated",
|
||
name: "pro_tri_create",
|
||
labelWidth: "35%",
|
||
label: "Execute a trigger when a case is created".translate(),
|
||
valueType: 'string',
|
||
controlsWidth: "300px",
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropCaseDeleted = new PMUI.field.DropDownListField({
|
||
id: "dropCaseDeleted",
|
||
name: "pro_tri_deleted",
|
||
labelWidth: "35%",
|
||
label: "Execute a trigger when a case is deleted".translate(),
|
||
valueType: 'string',
|
||
controlsWidth: "300px",
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropCaseCancelled = new PMUI.field.DropDownListField({
|
||
id: "dropCaseCancelled",
|
||
name: "pro_tri_canceled",
|
||
labelWidth: "35%",
|
||
label: "Execute a trigger when a case is cancelled".translate(),
|
||
valueType: 'string',
|
||
controlsWidth: "300px",
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropCasePaused = new PMUI.field.DropDownListField({
|
||
id: "dropCasePaused",
|
||
name: "pro_tri_paused",
|
||
labelWidth: "35%",
|
||
label: "Execute a trigger when a case is paused".translate(),
|
||
valueType: 'string',
|
||
controlsWidth: "300px",
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropCaseUnpaused = new PMUI.field.DropDownListField({
|
||
id: "dropCaseUnpaused",
|
||
name: "pro_tri_unpaused",
|
||
labelWidth: "35%",
|
||
label: "Execute a trigger when a case is unpaused".translate(),
|
||
valueType: "string",
|
||
controlsWidth: "300px"
|
||
});
|
||
|
||
dropCaseReassigned = new PMUI.field.DropDownListField({
|
||
id: "dropCaseReassigned",
|
||
name: "pro_tri_reassigned",
|
||
labelWidth: "35%",
|
||
label: "Execute a trigger when a case is reassigned".translate(),
|
||
valueType: 'string',
|
||
controlsWidth: "300px",
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropCaseOpen = new PMUI.field.DropDownListField({
|
||
id: "dropCaseOpen",
|
||
name: "pro_tri_open",
|
||
label: "Execute a trigger when a case is opened".translate(),
|
||
labelWidth: "35%",
|
||
valueType: "string",
|
||
controlsWidth: "300px",
|
||
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
dropTypeProcess = new PMUI.field.DropDownListField({
|
||
id: "dropTypeProcess",
|
||
name: "pro_type_process",
|
||
labelWidth: "35%",
|
||
label: "Process Design Access: Public / Private (Owner)".translate(),
|
||
valueType: 'string',
|
||
controlsWidth: "300px",
|
||
onChange: function (newValue, prevValue) {
|
||
}
|
||
});
|
||
|
||
proCost = new PMUI.field.TextField({
|
||
id: 'proCost',
|
||
name: 'pro_cost',
|
||
labelWidth: "35%",
|
||
value: 0,
|
||
placeholder: 'a cost here'.translate(),
|
||
label: "Cost".translate(),
|
||
valueType: 'integer',
|
||
controlsWidth: "300px",
|
||
required: window.enterprise === "1" ? true : false,
|
||
style: {
|
||
cssProperties: {
|
||
float: "left"
|
||
}
|
||
}
|
||
});
|
||
|
||
proUnitCost = new PMUI.field.TextField({
|
||
id: 'proUnitCost',
|
||
name: 'pro_unit_cost',
|
||
labelWidth: "35%",
|
||
value: '$',
|
||
placeholder: 'a unit cost here'.translate(),
|
||
controlsWidth: "300px",
|
||
label: "Units".translate(),
|
||
valueType: 'string',
|
||
required: window.enterprise === "1" ? true : false,
|
||
style: {
|
||
cssProperties: {
|
||
float: "left"
|
||
}
|
||
}
|
||
});
|
||
|
||
notification = new PMUI.field.TextAnnotationField({
|
||
id: "requiredMessage",
|
||
name: "Message",
|
||
textType: PMUI.field.TextAnnotationField.TEXT_TYPES.HTML,
|
||
text: notificationText,
|
||
text_Align: "center"
|
||
});
|
||
|
||
formEditProcess = new PMUI.form.Form({
|
||
id: 'formEditProcess',
|
||
fieldset: true,
|
||
title: "Process Information".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH - DEFAULT_WINDOW_WIDTH * 0.10,
|
||
items: [
|
||
processUID,
|
||
textTitle,
|
||
textDescription,
|
||
dropCalendar,
|
||
dropProcessCat,
|
||
dropDynaform,
|
||
dropRouting,
|
||
checkDebug,
|
||
checkHideCase,
|
||
checkSubProcess,
|
||
dropCaseCreated,
|
||
dropCaseDeleted,
|
||
dropCaseCancelled,
|
||
dropCasePaused,
|
||
dropCaseUnpaused,
|
||
dropCaseReassigned,
|
||
dropCaseOpen,
|
||
dropTypeProcess,
|
||
proCost,
|
||
proUnitCost
|
||
]
|
||
});
|
||
|
||
//Load Dynaforms
|
||
loadDynaforms = function (response) {
|
||
var i;
|
||
dropDynaform.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
dropDynaform.addOption({
|
||
label: response[i].dyn_title,
|
||
value: response[i].dyn_uid,
|
||
select: false
|
||
});
|
||
}
|
||
};
|
||
|
||
//Load calendar
|
||
loadCalendar = function (response) {
|
||
var i;
|
||
dropCalendar.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
dropCalendar.addOption({
|
||
label: response[i].cal_name,
|
||
value: response[i].cal_uid,
|
||
select: false
|
||
});
|
||
}
|
||
};
|
||
|
||
//Load category
|
||
loadCategory = function (response) {
|
||
var i;
|
||
dropProcessCat.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
dropProcessCat.addOption({
|
||
label: response[i].cat_name,
|
||
value: response[i].cat_uid,
|
||
select: false
|
||
});
|
||
}
|
||
};
|
||
|
||
//Load Templates
|
||
loadTemplate = function (response) {
|
||
var i;
|
||
dropRouting.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
for (i = 0; i < response.length; i += 1) {
|
||
if (response[i].prf_filename != "alert_message.html") {
|
||
dropRouting.addOption({
|
||
label: response[i].prf_filename,
|
||
value: response[i].prf_filename,
|
||
select: false
|
||
});
|
||
}
|
||
}
|
||
};
|
||
|
||
//Load triggers
|
||
loadTriggers = function (response) {
|
||
var i;
|
||
dropCaseCreated.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
dropCaseDeleted.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
dropCaseCancelled.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
dropCasePaused.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
dropCaseUnpaused.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
dropCaseReassigned.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
|
||
dropCaseOpen.addOption({
|
||
label: "None".translate(),
|
||
value: "",
|
||
select: false
|
||
});
|
||
|
||
for (i = 0; i < response.length; i += 1) {
|
||
dropCaseCreated.addOption({
|
||
label: response[i].tri_title,
|
||
value: response[i].tri_uid,
|
||
select: false
|
||
});
|
||
dropCaseDeleted.addOption({
|
||
label: response[i].tri_title,
|
||
value: response[i].tri_uid,
|
||
select: false
|
||
});
|
||
dropCaseCancelled.addOption({
|
||
label: response[i].tri_title,
|
||
value: response[i].tri_uid,
|
||
select: false
|
||
});
|
||
dropCasePaused.addOption({
|
||
label: response[i].tri_title,
|
||
value: response[i].tri_uid,
|
||
select: false
|
||
});
|
||
dropCaseUnpaused.addOption({
|
||
label: response[i].tri_title,
|
||
value: response[i].tri_uid,
|
||
select: false
|
||
});
|
||
dropCaseReassigned.addOption({
|
||
label: response[i].tri_title,
|
||
value: response[i].tri_uid,
|
||
select: false
|
||
});
|
||
|
||
dropCaseOpen.addOption({
|
||
label: response[i].tri_title,
|
||
value: response[i].tri_uid,
|
||
select: false
|
||
});
|
||
}
|
||
};
|
||
|
||
// Load type of process
|
||
loadTypeProcess = function (response) {
|
||
dropTypeProcess.addOption({
|
||
label: "Public".translate(),
|
||
value: "PUBLIC",
|
||
select: false
|
||
});
|
||
dropTypeProcess.addOption({
|
||
label: "Private".translate(),
|
||
value: "PRIVATE",
|
||
select: false
|
||
});
|
||
};
|
||
|
||
// Load properties of process
|
||
loadProperties = function (response) {
|
||
propertiesWindow.addItem(formEditProcess);
|
||
propertiesWindow.open();
|
||
$(processOwner.createHTML()).insertBefore(dropCalendar.html);
|
||
processOwner.html.find("input").blur(function () {
|
||
if (!(processOwner.isValid())) {
|
||
processOwner.showMessageRequiredExtended();
|
||
} else {
|
||
processOwner.repaint("1px solid #adafb2", "2px", "", "1px solid white");
|
||
}
|
||
});
|
||
processOwner.html.find("input").focusin(function () {
|
||
if (processOwner.isValid()) {
|
||
processOwner.repaint("1px solid #adafb2", "2px", "#000", "-webkit-focus-ring-color auto 1px");
|
||
}
|
||
});
|
||
processOwner.containerLabel.css({ width: "35%" });
|
||
processOwner.repaint("1px solid #adafb2", "2px", "", "");
|
||
formEditProcess.getField("pro_type_process").hideColon();
|
||
formEditProcess.reset();
|
||
responseProperties = response;
|
||
processUID.setValue(response.pro_uid);
|
||
processUID.setReadOnly(true);
|
||
textTitle.setValue(response.pro_title);
|
||
textDescription.setValue(response.pro_description);
|
||
processOwner.set("value", response.pro_create_user);
|
||
processOwner.html.find("input").val(response.pro_create_firstname + " " + response.pro_create_lastname + " " + "(" + response.pro_create_username + ")");
|
||
dropDynaform.setValue(response.pro_summary_dynaform);
|
||
dropCaseCancelled.setValue(response.pro_tri_canceled);
|
||
dropCaseCreated.setValue(response.pro_tri_create);
|
||
dropCaseDeleted.setValue(response.pro_tri_deleted);
|
||
dropCasePaused.setValue(response.pro_tri_paused);
|
||
dropCaseUnpaused.setValue(response.pro_tri_unpaused);
|
||
dropCaseReassigned.setValue(response.pro_tri_reassigned);
|
||
dropCaseOpen.setValue(response.pro_tri_open);
|
||
dropRouting.setValue(response.pro_derivation_screen_tpl);
|
||
dropCalendar.setValue(response.pro_calendar);
|
||
dropProcessCat.setValue(response.pro_category);
|
||
dropTypeProcess.setValue(response.pro_type_process);
|
||
checkHideCase.setHeight(57)
|
||
if (response.pro_debug == 1) {
|
||
checkDebug.getControls()[0].select();
|
||
}
|
||
if (response.pro_show_message == 1) {
|
||
checkHideCase.getControls()[0].select();
|
||
}
|
||
if (response.pro_subprocess == 1) {
|
||
checkSubProcess.getControls()[0].select();
|
||
}
|
||
proCost.setValue(response.pro_cost);
|
||
if (response.pro_unit_cost != null && response.pro_unit_cost != '') {
|
||
proUnitCost.setValue(response.pro_unit_cost);
|
||
}
|
||
};
|
||
|
||
getValuesProperties();
|
||
|
||
propertiesWindow.showFooter();
|
||
propertiesWindow.defineEvents();
|
||
applyStyleWindowForm(propertiesWindow);
|
||
formEditProcess.getField('pro_title').setFocus();
|
||
formEditProcess.getField("pro_type_process").html.style.float = "left";
|
||
|
||
dropCaseCancelled.style.addProperties({"float": "left"});
|
||
dropCasePaused.style.addProperties({"float": "left"});
|
||
dropCaseUnpaused.style.addProperties({"float": "left"});
|
||
dropCaseReassigned.style.addProperties({"float": "left"});
|
||
dropCaseOpen.style.addProperties({"float": "left"});
|
||
|
||
$("#dropCaseCancelled,#dropCasePaused,#dropCaseReassigned,#dropTypeProcess,#dropCaseOpen").find("select:eq(0)").css("z-index", 1);
|
||
|
||
if (window.enterprise === "1") {
|
||
proCost.setVisible(true);
|
||
proUnitCost.setVisible(true);
|
||
} else {
|
||
proCost.setVisible(false);
|
||
proUnitCost.setVisible(false);
|
||
}
|
||
};
|
||
|
||
}()
|
||
);
|
||
(function () {
|
||
PMDesigner.caseTracker = function () {
|
||
var caseTrackerForm,
|
||
index,
|
||
flagEdit = 0,
|
||
caseTrackerWindow,
|
||
dataCaseTracker,
|
||
dataTree,
|
||
conditionform,
|
||
conditionWindows,
|
||
disableAllItems,
|
||
formIsDirty,
|
||
conditionformIsDirty,
|
||
orderDataTree,
|
||
saveItem,
|
||
updateItem,
|
||
treePanelObjects,
|
||
loadGridCaseTacker,
|
||
editCondition,
|
||
gridPanelObjects,
|
||
titleTreeObjects,
|
||
getValuesCaseTrackerObjects,
|
||
updateCaseTrackerPropertiesAndObjects,
|
||
loadPropertiesCaseTracker,
|
||
titleGridObjects,
|
||
panelLabelObjects,
|
||
panelContainerObjects,
|
||
panelObjects,
|
||
applyStylesWindow,
|
||
showObjects,
|
||
arrayObjectDropAssignedObjects = new Array(),
|
||
arrayObjectAvailableObjects = new Array(),
|
||
arrayObjectStepsCaseTracker = new Array();
|
||
|
||
disableAllItems = function () {
|
||
caseTrackerWindow.getItems()[0].setVisible(false);
|
||
caseTrackerWindow.getItems()[1].setVisible(false);
|
||
caseTrackerWindow.hideFooter();
|
||
};
|
||
formIsDirty = function () {
|
||
if (caseTrackerForm.isDirty() || flagEdit == 1) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Case Tracker".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
caseTrackerWindow.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
caseTrackerWindow.close();
|
||
}
|
||
};
|
||
|
||
conditionformIsDirty = function () {
|
||
if (conditionform.isDirty()) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Case Tracker".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
conditionWindows.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
conditionWindows.close();
|
||
}
|
||
|
||
};
|
||
orderDataTree = function (data) {
|
||
var items = [];
|
||
var type = ['DYNAFORM', 'INPUT_DOCUMENT', 'OUTPUT_DOCUMENT', 'EXTERNAL_STEP'];
|
||
var label = ['Dynaform', 'Input Document', 'OutPut Document', 'External Step'];
|
||
for (var i = 0; i < type.length; i += 1) {
|
||
items = [];
|
||
for (var j = 0; j < data.length; j += 1) {
|
||
if (type[i] === data[j].obj_type) {
|
||
items.push({
|
||
step_type_obj: label[i].translate(),
|
||
obj_label: label[i].translate(),
|
||
obj_title: data[j]['obj_title'],
|
||
obj_type: data[j]['obj_type'],
|
||
obj_uid: data[j]['obj_uid']
|
||
});
|
||
}
|
||
}
|
||
if (items.length === 0) {
|
||
dataTree.push({
|
||
obj_title: label[i].translate(),
|
||
items: []
|
||
});
|
||
} else {
|
||
dataTree.push({
|
||
obj_title: label[i].translate(),
|
||
items: items
|
||
});
|
||
}
|
||
}
|
||
};
|
||
|
||
//Properties
|
||
loadPropertiesCaseTracker = function () {
|
||
dataCaseTracker = [];
|
||
restClient = new PMRestClient({
|
||
endpoint: 'case-tracker/property',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
dataCaseTracker = response;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
updateCaseTrackerPropertiesAndObjects = function (data) {
|
||
//save steps Objects Case Tracker
|
||
var i, j;
|
||
index = 0;
|
||
for (i = 0; i < gridPanelObjects.getItems().length; i += 1) {
|
||
idObject = (typeof gridPanelObjects.getItems()[i].getData().cto_uid_obj != 'undefined') ? gridPanelObjects.getItems()[i].getData().cto_uid_obj : gridPanelObjects.getItems()[i].getData().obj_uid;
|
||
index = arrayObjectStepsCaseTracker.indexOf(idObject);
|
||
if (index <= -1) {
|
||
saveItem(gridPanelObjects.getItems()[i]);
|
||
} else {
|
||
updateItem(gridPanelObjects.getItems()[i], i);
|
||
}
|
||
}
|
||
;
|
||
for (i = 0; i < arrayObjectAvailableObjects.length; i += 1) {
|
||
for (j = 0; j < arrayObjectDropAssignedObjects.length; j += 1) {
|
||
index = (arrayObjectAvailableObjects[i] == arrayObjectDropAssignedObjects[j].cto_uid_obj) ? 0 : 1;
|
||
if (index == 0) {
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
"calls": [
|
||
{
|
||
"url": 'case-tracker/object/' + arrayObjectDropAssignedObjects[j].cto_uid,
|
||
"method": 'DELETE'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
//save Properties Case Tracker
|
||
data ['map_type'] = data ['map_type'] == '["1"]' ? "PROCESSMAP" : "NONE";
|
||
data ['routing_history'] = data ['routing_history'] == '["1"]' ? 1 : 0;
|
||
data ['message_history'] = data ['message_history'] == '["1"]' ? 1 : 0;
|
||
restClient = new PMRestClient({
|
||
endpoint: 'case-tracker/property',
|
||
typeRequest: 'update',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
caseTrackerWindow.close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems updating the Case Tracker, please try again.".translate(),
|
||
messageSuccess: 'Case Tracker updated successfully'.translate(),
|
||
flashContainer: document.body
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
caseTrackerForm = new PMUI.form.Form({
|
||
id: 'caseTrackerForm',
|
||
fieldset: true,
|
||
title: "",
|
||
width: DEFAULT_WINDOW_WIDTH - 70,
|
||
height: 30,
|
||
layout: "hbox",
|
||
items: [
|
||
{
|
||
pmType: "annotation",
|
||
text: "Display :".translate(),
|
||
id: "DisplayMessage",
|
||
name: "DisplayMessage"
|
||
},
|
||
{
|
||
id: 'map_type',
|
||
pmType: 'checkbox',
|
||
labelVisible: false,
|
||
options: [
|
||
{
|
||
label: 'Processmap'.translate(),
|
||
value: '1'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'routing_history',
|
||
pmType: 'checkbox',
|
||
labelVisible: false,
|
||
options: [
|
||
{
|
||
label: 'Routing History'.translate(),
|
||
value: '1'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'message_history',
|
||
pmType: 'checkbox',
|
||
labelVisible: false,
|
||
options: [
|
||
{
|
||
id: 'message_history',
|
||
label: 'Messages'.translate(),
|
||
value: '1'
|
||
}
|
||
]
|
||
}
|
||
],
|
||
style: {
|
||
cssProperties: {
|
||
'margin-bottom': '70px'
|
||
}
|
||
}
|
||
});
|
||
|
||
//objects
|
||
loadGridCaseTacker = function (data) {
|
||
var i;
|
||
for (i = 0; i < data.length; i += 1) {
|
||
switch (data[i]['cto_type_obj']) {
|
||
case 'DYNAFORM':
|
||
label = 'Dynaform'.translate();
|
||
break;
|
||
case 'INPUT_DOCUMENT':
|
||
label = 'Input Document'.translate();
|
||
break;
|
||
case 'OUTPUT_DOCUMENT':
|
||
label = 'OutPut Document'.translate();
|
||
break;
|
||
case 'EXTERNAL_STEP':
|
||
label = 'External Step'.translate();
|
||
break;
|
||
default:
|
||
label = data[i]['tri_type'];
|
||
break;
|
||
}
|
||
data[i]['obj_label'] = label;
|
||
}
|
||
gridPanelObjects.setDataItems(data);
|
||
};
|
||
|
||
getValuesCaseTrackerObjects = function () {
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
"calls": [
|
||
{
|
||
"url": "case-tracker/available-objects",
|
||
"method": 'GET'
|
||
},
|
||
{
|
||
"url": "case-tracker/objects",
|
||
"method": 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
dataTree = [];
|
||
orderDataTree(response[0].response);
|
||
treePanelObjects.setDataItems(dataTree);
|
||
loadGridCaseTacker(response[1].response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
saveItem = function (rowStep) {
|
||
rowStep = rowStep.getData();
|
||
data = {
|
||
"cto_type_obj": rowStep.obj_type,
|
||
"cto_uid_obj": rowStep.obj_uid,
|
||
"cto_condition": (typeof rowStep.cto_condition != 'undefined') ? rowStep.cto_condition : '',
|
||
"cto_position": rowStep.cto_position
|
||
};
|
||
restClient = new PMRestClient({
|
||
endpoint: 'case-tracker/object',
|
||
typeRequest: 'post',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
data = response;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems saved, please try again.".translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
return data;
|
||
};
|
||
|
||
updateItem = function (rowStep, i) {
|
||
rowStep = rowStep.getData();
|
||
rowStep.cto_position = i + 1;
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
"calls": [
|
||
{
|
||
"url": 'case-tracker/object/' + rowStep.cto_uid,
|
||
"method": 'PUT',
|
||
"data": rowStep
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
treePanelObjects = new PMUI.panel.TreePanel({
|
||
id: 'treePanelObjects',
|
||
proportion: 0.5,
|
||
filterable: true,
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
style: {cssClasses: ['itemsSteps']},
|
||
nodeDefaultSettings: {
|
||
behavior: "drag",
|
||
labelDataBind: 'obj_title',
|
||
itemsDataBind: 'items',
|
||
collapsed: false,
|
||
childrenDefaultSettings: {
|
||
labelDataBind: 'obj_title',
|
||
autoBind: true
|
||
},
|
||
autoBind: true
|
||
}
|
||
});
|
||
|
||
editCondition = function () {
|
||
var visible, dataEdit;
|
||
|
||
conditionform = new PMUI.form.Form({
|
||
id: 'conditionform',
|
||
title: "",
|
||
fieldset: true,
|
||
visibleHeader: false,
|
||
width: 500,
|
||
items: [
|
||
new CriteriaField({
|
||
id: 'cto_condition',
|
||
pmType: 'textarea',
|
||
name: 'cto_condition',
|
||
valueType: 'string',
|
||
label: 'Condition'.translate(),
|
||
placeholder: 'Insert a condition'.translate(),
|
||
rows: 200,
|
||
width: 250,
|
||
controlsWidth: 285,
|
||
renderType: 'textarea'
|
||
})
|
||
]
|
||
});
|
||
|
||
if (rowStep != '' && rowStep != undefined) {
|
||
dataEdit = conditionform.getFields();
|
||
dataEdit[0].setValue(rowStep['cto_condition']);
|
||
}
|
||
|
||
conditionWindows = new PMUI.ui.Window({
|
||
id: 'conditionWindows',
|
||
title: 'Condition'.translate(),
|
||
width: 500,
|
||
height: 'auto',
|
||
footerHeight: 'auto',
|
||
bodyHeight: 'auto',
|
||
modal: true,
|
||
buttonPanelPosition: 'bottom',
|
||
footerAlign: "right",
|
||
onBeforeClose: conditionformIsDirty,
|
||
buttons: [
|
||
{
|
||
id: 'conditionObjectWindowButtonClose',
|
||
text: "Cancel".translate(),
|
||
handler: conditionformIsDirty,
|
||
buttonType: 'error'
|
||
},
|
||
{
|
||
id: 'conditionObjectWindowButtonSave',
|
||
text: "Save".translate(),
|
||
handler: function () {
|
||
var i, item;
|
||
if (conditionform.isValid()) {
|
||
idrowStep = (typeof rowStep.cto_uid_obj != 'undefined') ? rowStep.cto_uid_obj : rowStep.obj_uid;
|
||
for (i = 0; i < gridPanelObjects.getItems().length; i += 1) {
|
||
item = gridPanelObjects.getItems()[i].getData();
|
||
idObj = (typeof item.cto_uid_obj != 'undefined') ? item.cto_uid_obj : item.obj_uid;
|
||
if (idObj == idrowStep) {
|
||
rowStep.cto_condition = conditionform.getData()['cto_condition'];
|
||
gridPanelObjects.getItems()[i].setData(rowStep);
|
||
break;
|
||
}
|
||
}
|
||
conditionWindows.close();
|
||
}
|
||
},
|
||
buttonType: 'success'
|
||
}
|
||
]
|
||
});
|
||
conditionWindows.addItem(conditionform);
|
||
conditionWindows.open();
|
||
conditionWindows.showFooter();
|
||
applyStyleWindowForm(conditionWindows);
|
||
conditionWindows.defineEvents();
|
||
conditionWindows.footer.html.style.textAlign = 'right';
|
||
conditionform.setFocus();
|
||
style = $('#cto_condition .pmui-field-label').attr("style");
|
||
style = style + ' float: left;';
|
||
$('#cto_condition .pmui-field-label').attr("style", style);
|
||
};
|
||
|
||
gridPanelObjects = new PMUI.grid.GridPanel({
|
||
id: 'gridPanelObjects',
|
||
proportion: 1.5,
|
||
visibleFooter: false,
|
||
filterable: false,
|
||
width: '640px',
|
||
style: {cssClasses: ['itemsSteps']},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
behavior: 'dragdropsort',
|
||
columns: [
|
||
{
|
||
title: 'Title'.translate(),
|
||
dataType: 'string',
|
||
width: 330,
|
||
alignment: "left",
|
||
columnData: "obj_title",
|
||
sortable: false,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
title: 'Type'.translate(),
|
||
dataType: 'string',
|
||
width: 120,
|
||
alignment: "left",
|
||
columnData: "obj_label",
|
||
sortable: false,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
id: 'gridPanelObjectsButtonProperties',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: "Condition".translate(),
|
||
iconPosition: "center",
|
||
buttonStyle: {cssClasses: ['mafe-button-editstep']},
|
||
buttonTooltip: 'Edit Properties'.translate(),
|
||
onButtonClick: function (row, grid) {
|
||
rowStep = row.getData();
|
||
editCondition();
|
||
}
|
||
},
|
||
{
|
||
id: 'gridPanelObjectsButtonDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: '',
|
||
buttonStyle: {cssClasses: ['mafe-button-delete-assign']},
|
||
buttonTooltip: 'Remove Object'.translate(),
|
||
onButtonClick: function (row, grid) {
|
||
flagEdit = 1;
|
||
rowStep = row.getData();
|
||
index = (row.getData().cto_uid_obj != 'undefined') ? arrayObjectStepsCaseTracker.indexOf(row.getData().cto_uid_obj) : arrayObjectStepsCaseTracker.indexOf(row.getData().obj_uid);
|
||
if (index > -1) {
|
||
arrayObjectAvailableObjects.push(row.getData().cto_uid_obj);
|
||
arrayObjectStepsCaseTracker.splice(index, 1);
|
||
}
|
||
objType = (typeof row.getData().cto_type_obj != 'undefined') ? row.getData().cto_type_obj : row.getData().obj_type;
|
||
grid.removeItem(row);
|
||
switch (objType) {
|
||
case 'DYNAFORM':
|
||
treePanelObjects.getItems()[0].addItem(row);
|
||
break;
|
||
case 'INPUT_DOCUMENT':
|
||
treePanelObjects.getItems()[1].addItem(row);
|
||
break;
|
||
case 'OUTPUT_DOCUMENT':
|
||
treePanelObjects.getItems()[2].addItem(row);
|
||
break;
|
||
case 'EXTERNAL_STEP':
|
||
treePanelObjects.getItems()[3].addItem(row);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
],
|
||
onDrop: function (grid, item, index) {
|
||
flagEdit = 1;
|
||
if (item.data.customKeys.obj_uid === '') {
|
||
return false;
|
||
}
|
||
rowStep = item.getData();
|
||
rowStep.cto_position = index + 1;
|
||
item.setData(rowStep);
|
||
|
||
index = (typeof item.getData().cto_uid_obj != 'undefined') ? arrayObjectAvailableObjects.indexOf(item.getData().cto_uid_obj) : arrayObjectAvailableObjects.indexOf(item.getData().obj_uid);
|
||
|
||
if (index > -1) {
|
||
itemPush = (typeof item.getData().cto_uid_obj != 'undefined') ? item.getData().cto_uid_obj : item.getData().obj_uid;
|
||
arrayObjectStepsCaseTracker.push(itemPush);
|
||
arrayObjectAvailableObjects.splice(index, 1);
|
||
}
|
||
},
|
||
onSort: function (grid, item, index) {
|
||
rowStep = item.getData();
|
||
}
|
||
});
|
||
|
||
titleTreeObjects = new PMUI.ui.TextLabel({
|
||
id: "titleTreeObjects",
|
||
textMode: 'plain',
|
||
text: 'Available Objects'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-steps-tree'
|
||
]
|
||
}
|
||
});
|
||
|
||
titleGridObjects = new PMUI.ui.TextLabel({
|
||
id: "titleGridObjects",
|
||
textMode: 'plain',
|
||
text: 'Assigned objects'.translate(),
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-designer-stesp-grid'
|
||
]
|
||
}
|
||
});
|
||
|
||
panelLabelObjects = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH * 0.94,
|
||
fieldset: true,
|
||
items: [
|
||
titleTreeObjects,
|
||
titleGridObjects
|
||
],
|
||
style: {
|
||
cssProperties: {
|
||
'margin-bottom': 4,
|
||
'margin-top': 4,
|
||
'margin-left': 4
|
||
}
|
||
},
|
||
layout: "hbox"
|
||
});
|
||
|
||
panelContainerObjects = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH * 0.94,
|
||
height: 320,
|
||
fieldset: true,
|
||
items: [
|
||
treePanelObjects,
|
||
gridPanelObjects
|
||
],
|
||
layout: "hbox"
|
||
});
|
||
|
||
panelObjects = new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH * 0.94,
|
||
height: DEFAULT_WINDOW_HEIGHT * 0.70,
|
||
fieldset: true,
|
||
items: [
|
||
panelLabelObjects,
|
||
panelContainerObjects
|
||
],
|
||
layout: "vbox"
|
||
});
|
||
|
||
caseTrackerWindow = new PMUI.ui.Window({
|
||
id: 'caseTrackerWindow',
|
||
title: "Case Tracker".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerHeight: 'auto',
|
||
bodyHeight: 'auto',
|
||
modal: true,
|
||
buttonPanelPosition: "bottom",
|
||
onBeforeClose: formIsDirty,
|
||
visibleFooter: false,
|
||
footerAling: "right",
|
||
footerItems: [{
|
||
id: 'btnCloseCaseTracker',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: "error",
|
||
handler: formIsDirty
|
||
},
|
||
{
|
||
id: 'btnSaveCaseTracker',
|
||
text: "Save".translate(),
|
||
buttonType: "success",
|
||
handler: function () {
|
||
if (caseTrackerForm.isValid()) {
|
||
data = caseTrackerForm.getData();
|
||
updateCaseTrackerPropertiesAndObjects(data);
|
||
}
|
||
}
|
||
}
|
||
],
|
||
spaceButtons: 30
|
||
});
|
||
|
||
caseTrackerWindow.addItem(caseTrackerForm);
|
||
caseTrackerWindow.addItem(panelObjects);
|
||
caseTrackerWindow.open();
|
||
caseTrackerWindow.showFooter();
|
||
applyStyleWindowForm(caseTrackerWindow);
|
||
caseTrackerWindow.defineEvents();
|
||
caseTrackerWindow.footer.html.style.textAlign = 'right';
|
||
caseTrackerForm.setFocus();
|
||
|
||
applyStylesWindow = function () {
|
||
$('#gridPanelObjects .pmui-gridpanel-tableContainer').css({'height': 'auto'});
|
||
$('#caseTrackerForm :eq(2)').css({'padding': '0px 10px 0px 10px'});
|
||
$('#caseTrackerForm :eq(0)').remove();
|
||
items = caseTrackerWindow.getItems()[0].getItems();
|
||
$(items[1].getHTML()).find('table').css('border', 'none');
|
||
$(items[2].getHTML()).find('table').css('border', 'none');
|
||
$(items[3].getHTML()).find('table').css('border', 'none');
|
||
};
|
||
|
||
showObjects = function () {
|
||
disableAllItems();
|
||
|
||
loadPropertiesCaseTracker();
|
||
caseTrackerWindow.getItems()[0].setVisible(true);
|
||
caseTrackerWindow.showFooter();
|
||
caseTrackerWindow.setTitle("Case Tracker Properties".translate());
|
||
|
||
if (dataCaseTracker != '') {
|
||
var dataEdit = caseTrackerForm.getFields();
|
||
dataEdit[1].setValue((dataCaseTracker['map_type'] == 'PROCESSMAP') ? '["1"]' : '[]');
|
||
dataEdit[2].setValue((dataCaseTracker['routing_history'] == 1) ? '["1"]' : '[]');
|
||
dataEdit[3].setValue((dataCaseTracker['message_history'] == 1) ? '["1"]' : '[]');
|
||
}
|
||
|
||
|
||
getValuesCaseTrackerObjects();
|
||
caseTrackerWindow.getItems()[1].setVisible(true);
|
||
caseTrackerWindow.setTitle("Case Tracker".translate());
|
||
|
||
caseTrackerWindow.body.style.overflow = 'initial';
|
||
|
||
gridPanelObjects.style.addProperties({overflow: 'auto'});
|
||
gridPanelObjects.style.addProperties({float: 'right'});
|
||
gridPanelObjects.setWidth(640);
|
||
gridPanelObjects.setHeight(270);
|
||
applyStylesWindow();
|
||
treePanelObjects.style.addProperties({float: 'left'});
|
||
treePanelObjects.style.addProperties({overflow: 'auto'});
|
||
treePanelObjects.setWidth(200);
|
||
treePanelObjects.setHeight(270);
|
||
|
||
applyStyleTreePanel(treePanelObjects);
|
||
|
||
panelLabelObjects.setHeight(15);
|
||
caseTrackerWindow.defineEvents();
|
||
|
||
caseTrackerWindow.setBodyPadding(5);
|
||
|
||
panelObjects.style.addProperties({marginLeft: '15px'});
|
||
for (var i = 0; i < gridPanelObjects.getItems().length; i += 1) {
|
||
arrayObjectStepsCaseTracker[i] = gridPanelObjects.getItems()[i].getData().cto_uid_obj;
|
||
arrayObjectDropAssignedObjects[i] = gridPanelObjects.getItems()[i].getData();
|
||
}
|
||
};
|
||
showObjects();
|
||
};
|
||
|
||
PMDesigner.caseTracker.showObjects = function () {
|
||
PMDesigner.caseTracker();
|
||
};
|
||
|
||
}());
|
||
PMDesigner.gatewayProperties = function (gateway) {
|
||
if (gateway.getGatewayType() !== "PARALLEL") {
|
||
PMDesigner.RoutingRule(gateway);
|
||
}
|
||
};
|
||
|
||
PMDesigner.RoutingRule = function (shape) {
|
||
var formRoutingRule,
|
||
formPanelSelected,
|
||
arrayShapeIdRemoved = [],
|
||
buttonAdd,
|
||
windowConnections,
|
||
warningMessageWindowDelete,
|
||
warningMessageWindowDirty,
|
||
containerLabels,
|
||
deleteButton,
|
||
buttonSave,
|
||
buttonCancel,
|
||
labelNextTask,
|
||
labelCondition,
|
||
typeShapeValueText,
|
||
dataRouteGroup = [],
|
||
arrayElementName = [],
|
||
availableShapes = [];
|
||
|
||
warningMessageWindowDelete = new PMUI.ui.MessageWindow({
|
||
id: 'warningMessageWindowDelete',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: 'Routing Rule'.translate(),
|
||
message: 'Do you want to delete this routing rule?'.translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'warningMessageWindowDeleteButtonNo',
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDelete.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'warningMessageWindowDeleteButtonYes',
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
deleteRow();
|
||
warningMessageWindowDelete.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
warningMessageWindowDirty = new PMUI.ui.MessageWindow({
|
||
id: 'warningMessageWindowDirty',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: 'Routing Rule'.translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'warningMessageWindowDirtyButtonNo',
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDirty.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'warningMessageWindowDirtyButtonYes',
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDirty.close();
|
||
windowConnections.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
buttonAdd = new PMUI.ui.Button({
|
||
id: 'routingRuleButtonAdd',
|
||
text: 'Add Routing Rule'.translate(),
|
||
style: {
|
||
cssProperties: {
|
||
marginLeft: '50px',
|
||
marginTop: '10px',
|
||
marginBottom: '10px',
|
||
padding: "5px"
|
||
}
|
||
},
|
||
buttonType: 'success',
|
||
handler: function () {
|
||
// to add a new row
|
||
addRow();
|
||
enableSorting();
|
||
}
|
||
});
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'windowConnectionsButtonSave',
|
||
text: 'Save'.translate(),
|
||
handler: function () {
|
||
//validate routing rules form
|
||
if (isValidRoutingRules()) {
|
||
//remove all flows an get points
|
||
var allPoints = removeConnectionsIntoCanvas();
|
||
saveConnections(allPoints);
|
||
}
|
||
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'windowConnectionsButtonCancel',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
handler: function () {
|
||
if (formRoutingRule.isDirty()) {
|
||
warningMessageWindowDirty.open();
|
||
warningMessageWindowDirty.showFooter();
|
||
} else {
|
||
windowConnections.close();
|
||
}
|
||
}
|
||
});
|
||
|
||
labelNextTask = new PMUI.ui.TextLabel({
|
||
text: 'Next Task'.translate()
|
||
});
|
||
labelNextTask.setWidth(382);
|
||
labelNextTask.style.addProperties({padding: '5px 0px 0px 50px'});
|
||
|
||
labelCondition = new PMUI.ui.TextLabel({
|
||
text: 'Condition'.translate()
|
||
});
|
||
labelCondition.setWidth(410);
|
||
labelCondition.style.addProperties({padding: '5px 0px 0px 5px'});
|
||
labelCondition.style.addProperties({marginLeft: '31%'});
|
||
|
||
containerLabels = new PMUI.core.Panel({
|
||
layout: 'hbox',
|
||
width: 'auto',
|
||
height: 29,
|
||
style: {
|
||
cssProperties: {
|
||
'border-bottom': '1px solid #c0c0c0'
|
||
}
|
||
}
|
||
});
|
||
containerLabels.addItem(labelNextTask);
|
||
containerLabels.addItem(labelCondition);
|
||
containerLabels.style.addProperties({'border-bottom': '1px solid #e7e7e7'});
|
||
|
||
formRoutingRule = new PMUI.form.Form({
|
||
id: 'formRoutingRule',
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 60,
|
||
height: 'auto',
|
||
items: [],
|
||
style: {
|
||
cssProperties: {
|
||
'margin-left': '35px'
|
||
}
|
||
}
|
||
});
|
||
formRoutingRule.hideFooter();
|
||
|
||
windowConnections = new PMUI.ui.Window({
|
||
id: 'windowConnections',
|
||
title: 'Routing Rule'.translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
footerAlign: 'right',
|
||
buttonPanelPosition: 'bottom',
|
||
items: [
|
||
buttonAdd
|
||
],
|
||
buttons: [
|
||
buttonCancel,
|
||
buttonSave
|
||
]
|
||
});
|
||
|
||
typeShapeValueText = (shape.gat_type === 'EXCLUSIVE') ? 'EXCLUSIVE'.translate() : 'INCLUSIVE'.translate();
|
||
windowConnections.setTitle('Routing Rule'.translate() + ' - ' + typeShapeValueText);
|
||
windowConnections.showFooter();
|
||
windowConnections.addItem(containerLabels);
|
||
if (formRoutingRule.dirty === null) {
|
||
formRoutingRule.dirty = false;
|
||
}
|
||
windowConnections.addItem(formRoutingRule);
|
||
windowConnections.open();
|
||
|
||
loadConnections();
|
||
enableSorting();
|
||
/**
|
||
* add a new row
|
||
* @returns {PMUI.form.FormPanel|*}
|
||
*/
|
||
function addRow() {
|
||
var dropDownControl,
|
||
criteriaField,
|
||
deleteButton,
|
||
newRow,
|
||
max,
|
||
i;
|
||
newRow = new PMUI.form.FormPanel({
|
||
layout: 'hbox'
|
||
});
|
||
|
||
dropDownControl = new PMUI.field.DropDownListField({
|
||
id: 'dropdownNextTask',
|
||
name: 'act_name',
|
||
valueType: 'string',
|
||
label: 'Next Task'.translate(),
|
||
labelPosition: 'top',
|
||
labelVisible: false,
|
||
value: '',
|
||
readOnly: false,
|
||
controlsWidth: 360,
|
||
proportion: 0.9,
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top'
|
||
}
|
||
}
|
||
});
|
||
|
||
criteriaField = new CriteriaField({
|
||
id: 'textCondition',
|
||
pmType: 'text',
|
||
renderType: 'textarea',
|
||
name: 'flo_condition',
|
||
valueType: 'string',
|
||
label: 'Condition'.translate(),
|
||
labelPosition: 'top',
|
||
labelVisible: false,
|
||
controlsWidth: 345,
|
||
required: false,
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top'
|
||
}
|
||
}
|
||
});
|
||
deleteButton = new PMUI.field.ButtonField({
|
||
id: 'buttonDelete',
|
||
value: 'Delete'.translate(),
|
||
handler: function (e, a) {
|
||
formPanelSelected = this.getParent();
|
||
warningMessageWindowDelete.open();
|
||
warningMessageWindowDelete.dom.titleContainer.style.height = '17px';
|
||
warningMessageWindowDelete.showFooter();
|
||
enableSorting();
|
||
},
|
||
name: 'delete',
|
||
labelVisible: false,
|
||
buttonAling: 'left',
|
||
controlsWidth: 60,
|
||
proportion: 0.1,
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top'
|
||
}
|
||
}
|
||
});
|
||
|
||
newRow.addItem(dropDownControl);
|
||
newRow.addItem(criteriaField);
|
||
newRow.addItem(deleteButton);
|
||
loadOptions(dropDownControl);
|
||
//apply styles;
|
||
if (availableShapes && availableShapes.length > 0) {
|
||
deleteButton.controls[0].button.setButtonType('error');
|
||
$(deleteButton.getHTML()).find("a").css({
|
||
padding: "5px"
|
||
});
|
||
formRoutingRule.addItem(newRow);
|
||
for (i = 0, max = formRoutingRule.getItems().length; i < max; i += 1) {
|
||
formRoutingRule.getItems()[i].style.addProperties({'padding': 'initial'});
|
||
}
|
||
dropDownControl.dom.labelTextContainer.style.display = 'none';
|
||
criteriaField.dom.labelTextContainer.style.display = 'none';
|
||
criteriaField.setValue(true);
|
||
} else {
|
||
PMDesigner.msgFlash('There are no items.'.translate(), windowConnections.footer, 'error');
|
||
}
|
||
return newRow;
|
||
}
|
||
|
||
function loadOptions(dropdown) {
|
||
var i,
|
||
customShapes,
|
||
element,
|
||
nameGroup,
|
||
evnLabelMap;
|
||
//Important! Any changes to synchronize the assessment of the condition
|
||
//of the functions: countActivities and loadActivities
|
||
dropdown.clearOptions();
|
||
dropdown.setUID = function (uid) {
|
||
this.uid = uid;
|
||
};
|
||
dropdown.getUID = function () {
|
||
return this.uid;
|
||
};
|
||
dropdown.addOptionGroup({
|
||
label: 'Task'.translate(),
|
||
selected: true,
|
||
options: []
|
||
});
|
||
dropdown.addOptionGroup({
|
||
label: 'Sub-process'.translate(),
|
||
options: []
|
||
});
|
||
dropdown.addOptionGroup({
|
||
label: 'Event'.translate(),
|
||
options: []
|
||
});
|
||
dropdown.addOptionGroup({
|
||
label: 'Gateway'.translate(),
|
||
options: []
|
||
});
|
||
customShapes = PMUI.getActiveCanvas().getCustomShapes();
|
||
|
||
for (i = 0; i < customShapes.getSize(); i += 1) {
|
||
element = customShapes.get(i);
|
||
// verify pool and participant
|
||
if (element.getType() !== 'PMParticipant' && element.getType() !== 'PMPool') {
|
||
//itself verify and same parent
|
||
if (shape.getID() !== element.getID()
|
||
&& element.businessObject
|
||
&& shape.businessObject
|
||
&& shape.businessObject.elem.$parent
|
||
&& element.businessObject.elem.$parent
|
||
&& element.businessObject.elem.$parent.id === shape.businessObject.elem.$parent.id) {
|
||
switch (element.type) {
|
||
case 'PMActivity':
|
||
nameGroup = element.act_type === 'TASK' ? 'Task'.translate() : 'Sub-process'.translate();
|
||
dropdown.addOption({
|
||
value: element.act_uid,
|
||
label: element.act_name
|
||
}, nameGroup);
|
||
arrayElementName[element.act_uid] = element.act_name;
|
||
availableShapes.push(element);
|
||
break;
|
||
case 'PMEvent':
|
||
evnLabelMap = {
|
||
'END': 'End Event'.translate(),
|
||
'INTERMEDIATE': 'Intermediate Event'.translate()
|
||
};
|
||
|
||
if (element.evn_type !== 'START') {
|
||
dropdown.addOption({
|
||
value: element.evn_uid,
|
||
label: element.evn_name || evnLabelMap[element.evn_type]
|
||
}, 'Event'.translate());
|
||
|
||
arrayElementName[element.evn_uid] = element.evn_name || evnLabelMap[element.evn_type];
|
||
availableShapes.push(element);
|
||
}
|
||
break;
|
||
case 'PMGateway':
|
||
dropdown.addOption({
|
||
value: element.gat_uid,
|
||
label: element.gat_name || 'Gateway'.translate()
|
||
}, 'Gateway');
|
||
arrayElementName[element.gat_uid] = element.gat_name || 'Gateway'.translate();
|
||
availableShapes.push(element);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function removeConnectionsIntoCanvas() {
|
||
var shapeDest, connection, dt, allPoints = {}, i, j;
|
||
for (j = 0; j < arrayShapeIdRemoved.length; j += 1) {
|
||
shapeDest = PMUI.getActiveCanvas().getCustomShapes().find('id', arrayShapeIdRemoved[j]);
|
||
dt = shape.getPorts().asArray();
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
connection = dt[i].getConnection();
|
||
if (shape.getID() === connection.getSrcPort().getParent().getID() &&
|
||
shapeDest.getID() === connection.getDestPort().getParent().getID()) {
|
||
//caching points
|
||
allPoints[shapeDest.getID()] = getPoints(connection);
|
||
removeConnection(connection);
|
||
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
arrayShapeIdRemoved = [];
|
||
return allPoints;
|
||
}
|
||
|
||
/**
|
||
* to remove a individual connection and getting points
|
||
* @param connection
|
||
*/
|
||
function removeConnection(connection) {
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
PMUI.getActiveCanvas().setCurrentConnection(connection);
|
||
PMUI.getActiveCanvas().executeCommandDelete();
|
||
connection.saveAndDestroy();
|
||
PMUI.getActiveCanvas().removeConnection(connection);
|
||
}
|
||
|
||
/**
|
||
* gets conenctions inital and final points
|
||
* @param connection
|
||
*/
|
||
function getPoints(connection) {
|
||
var result = [];
|
||
result[0] = connection.points[0];
|
||
result[1] = connection.points[connection.points.length - 1];
|
||
return result;
|
||
}
|
||
|
||
|
||
function editAllConnections(connArray) {
|
||
var i,
|
||
elem,
|
||
canvas = PMUI.getActiveCanvas();
|
||
for(i = 0; i < connArray.length; i += 1) {
|
||
elem = connArray[i];
|
||
if (elem && elem.connection) {
|
||
elem.oldShapeDest.removePort(elem.connection.destPort);
|
||
elem.shapeDest.addPort(elem.connection.destPort, 100, 100,
|
||
false, elem.connection.srcPort);
|
||
|
||
elem.connection.lineSegments.clear();
|
||
canvas.commandStack.add(new PMUI.command.CommandConnect(elem.connection));
|
||
elem.connection.connect();
|
||
canvas.triggerPortChangeEvent(elem.connection.destPort);
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
function createEndShape() {
|
||
var customShape, canvas = PMUI.getActiveCanvas(), command, x, y;
|
||
customShape = canvas.shapeFactory('END');
|
||
|
||
x = shape.getX() + shape.getWidth();
|
||
y = shape.getY() + shape.getHeight() + 20;
|
||
|
||
canvas.addElement(customShape, x, y,
|
||
customShape.topLeftOnCreation);
|
||
|
||
//since it is a new element in the designer, we triggered the
|
||
//custom on create element event
|
||
canvas.updatedElement = customShape;
|
||
|
||
// create the command for this new shape
|
||
command = new PMUI.command.CommandCreate(customShape);
|
||
canvas.commandStack.add(command);
|
||
command.execute();
|
||
return customShape;
|
||
}
|
||
|
||
/**
|
||
* new method to validate routing rules
|
||
* @returns {boolean}
|
||
*/
|
||
function isValidRoutingRules() {
|
||
var result = true,
|
||
arrayAux = [],
|
||
i,
|
||
max,
|
||
id,
|
||
dt = formRoutingRule.getItems();
|
||
if (!formRoutingRule.isValid()) {
|
||
result = false;
|
||
return;
|
||
}
|
||
|
||
for (i = 0, max = dt.length; i < max; i += 1) {
|
||
id = dt[i].getField("act_name").getValue();
|
||
if (typeof(arrayAux[id]) === "undefined") {
|
||
arrayAux[id] = "1";
|
||
} else {
|
||
result = false;
|
||
PMDesigner.msgWinError("The routing rule to \"{0}\" already exists".translate([arrayElementName[id]]));
|
||
return;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
function saveConnections(allPoints) {
|
||
var dt = formRoutingRule.getItems(),
|
||
id,
|
||
i,
|
||
oldId,
|
||
shapeDest,
|
||
oldShapeDest,
|
||
connection,
|
||
newConnection,
|
||
dataRouteAll,
|
||
dataRoute,
|
||
restClient,
|
||
newPoints,
|
||
conectionsArray = [];
|
||
|
||
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
id = dt[i].getField('act_name').getValue();
|
||
oldId = dt[i].getField('act_name').getUID();
|
||
if (id !== '0') {
|
||
dataRouteGroup.push(id);
|
||
if (dt[i].getField('flo_condition').getValue() == "") {
|
||
dt[i].getField('flo_condition').setValue(true);
|
||
}
|
||
if (oldId === undefined) {
|
||
shapeDest = PMUI.getActiveCanvas().getCustomShapes().find('id', id);
|
||
//getting current connection
|
||
|
||
newPoints = allPoints[id];
|
||
|
||
newConnection = createConnection(shape, shapeDest, newPoints);
|
||
newConnection.setFlowCondition(dt[i].getField('flo_condition').getValue());
|
||
}
|
||
if (oldId !== undefined && id === oldId) {
|
||
shapeDest = PMUI.getActiveCanvas().getCustomShapes().find('id', id);
|
||
connection = isConnection(shape, shapeDest);
|
||
|
||
if (typeof(connection) != "object") {
|
||
connection = createConnection(shape, shapeDest);
|
||
}
|
||
|
||
connection.setFlowCondition(dt[i].getField('flo_condition').getValue());
|
||
}
|
||
if (oldId !== undefined && id !== oldId) {
|
||
shapeDest = PMUI.getActiveCanvas().getCustomShapes().find('id', id);
|
||
oldShapeDest = PMUI.getActiveCanvas().getCustomShapes().find('id', oldId);
|
||
connection = isConnection(shape, oldShapeDest);
|
||
|
||
if (typeof(connection) != "object") {
|
||
connection = createConnection(shape, shapeDest);
|
||
}
|
||
|
||
connection.setFlowCondition(dt[i].getField('flo_condition').getValue());
|
||
|
||
if (typeof(connection) != "object") {
|
||
connection = createConnection(shape, shapeDest);
|
||
}
|
||
|
||
connection.setFlowCondition(dt[i].getField('flo_condition').getValue());
|
||
|
||
conectionsArray.push({
|
||
"connection" : isConnection(shape, oldShapeDest) || null,
|
||
"shapeDest": shapeDest,
|
||
"oldShapeDest": oldShapeDest
|
||
});
|
||
}
|
||
} else {
|
||
var customShape = createEndShape();
|
||
createConnection(shape, customShape);
|
||
}
|
||
}
|
||
editAllConnections(conectionsArray);
|
||
|
||
/*update routing order*/
|
||
dataRouteAll = [];
|
||
for (i = 0; i < dataRouteGroup.length; i += 1) {
|
||
dataRoute = {
|
||
'rou_case': parseInt(i) + 1,
|
||
'rou_next_task': dataRouteGroup[i],
|
||
'pro_uid': PMDesigner.project.id
|
||
};
|
||
dataRouteAll.push(dataRoute);
|
||
}
|
||
restClient = new PMRestClient({
|
||
endpoint: 'update-route-order',
|
||
typeRequest: 'update',
|
||
data: dataRouteAll,
|
||
functionSuccess: function () {
|
||
PMDesigner.msgFlash('Saved correctly'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems updating the routing rule, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
/*end update routing order*/
|
||
|
||
windowConnections.close();
|
||
PMDesigner.msgFlash('Saved correctly'.translate(), document.body);
|
||
PMDesigner.project.dirty = true;
|
||
PMDesigner.project.setDirty(true);
|
||
}
|
||
|
||
function createConnection(sourceShape, shape, points) {
|
||
var sourcePort, endPort, connection, canvas = PMUI.getActiveCanvas(), points;
|
||
sourcePort = new PMUI.draw.Port({
|
||
width: 10,
|
||
height: 10
|
||
});
|
||
endPort = new PMUI.draw.Port({
|
||
width: 10,
|
||
height: 10
|
||
});
|
||
if (!points) {
|
||
points = findBestPorts(sourceShape, shape);
|
||
}
|
||
sourceShape.addPort(sourcePort, points[0].x - sourceShape.getZoomX(), points[0].y - sourceShape.getZoomY());
|
||
shape.addPort(endPort, points[1].x - shape.getZoomX(), points[1].y - shape.getZoomY(), false, sourcePort);
|
||
|
||
//add ports to the canvas array for regularShapes
|
||
//shape.canvas.regularShapes.insert(sourcePort).insert(endPort);
|
||
//create the connection
|
||
connection = new PMFlow({
|
||
srcPort: sourcePort,
|
||
destPort: endPort,
|
||
segmentColor: new PMUI.util.Color(0, 0, 0),
|
||
name: '',
|
||
canvas: shape.canvas,
|
||
segmentStyle: shape.connectionType.segmentStyle,
|
||
flo_type: shape.connectionType.type
|
||
});
|
||
connection.setSrcDecorator(new PMUI.draw.ConnectionDecorator({
|
||
width: 11,
|
||
height: 11,
|
||
canvas: canvas,
|
||
decoratorPrefix: (typeof shape.connectionType.srcDecorator !== 'undefined'
|
||
&& shape.connectionType.srcDecorator !== null) ?
|
||
shape.connectionType.srcDecorator : 'mafe-sequence',
|
||
decoratorType: 'source',
|
||
parent: connection
|
||
}));
|
||
connection.setDestDecorator(new PMUI.draw.ConnectionDecorator({
|
||
width: 11,
|
||
height: 11,
|
||
canvas: canvas,
|
||
decoratorPrefix: (typeof shape.connectionType.destDecorator !== 'undefined'
|
||
&& shape.connectionType.destDecorator !== null) ?
|
||
shape.connectionType.destDecorator : 'mafe-sequence',
|
||
decoratorType: 'target',
|
||
parent: connection
|
||
}));
|
||
connection.canvas.commandStack.add(new PMUI.command.CommandConnect(connection));
|
||
|
||
//connect the two ports
|
||
connection.connect();
|
||
connection.setSegmentMoveHandlers();
|
||
|
||
//add the connection to the canvas, that means insert its html to
|
||
// the DOM and adding it to the connections array
|
||
canvas.addConnection(connection);
|
||
|
||
// Filling PMFlow fields
|
||
connection.setTargetShape(endPort.parent);
|
||
connection.setOriginShape(sourcePort.parent);
|
||
connection.savePoints();
|
||
|
||
// now that the connection was drawn try to create the intersections
|
||
connection.checkAndCreateIntersectionsWithAll();
|
||
|
||
//attaching port listeners
|
||
sourcePort.attachListeners(sourcePort);
|
||
endPort.attachListeners(endPort);
|
||
|
||
// finally trigger createEvent
|
||
canvas.triggerCreateEvent(connection, []);
|
||
connection.flo_state = connection.points;
|
||
return connection;
|
||
}
|
||
|
||
function findBestPorts(sourceShape, shape) {
|
||
var result = [], i, j,
|
||
distance = 99999999,
|
||
initPoint,
|
||
secondPoint,
|
||
midPoints = getMiddlePoints(sourceShape),
|
||
midPoints2 = getMiddlePoints(shape);
|
||
for (i = 0; i < midPoints.length; i += 1) {
|
||
initPoint = midPoints[i];
|
||
for (j = 0; j < midPoints2.length; j += 1) {
|
||
secondPoint = midPoints2[j];
|
||
if (distance > initPoint.getManhattanDistance(secondPoint)) {
|
||
distance = initPoint.getManhattanDistance(midPoints2[j]);
|
||
result[0] = (initPoint);
|
||
result[1] = (midPoints2[j]);
|
||
}
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
function getMiddlePoints(shape) {
|
||
return [
|
||
new PMUI.util.Point(Math.round(shape.zoomWidth / 2) + shape.getZoomX(), 0 + shape.getZoomY()), // TOP
|
||
new PMUI.util.Point(shape.zoomWidth + shape.getZoomX(), Math.round(shape.zoomHeight / 2) + shape.getZoomY()), // RIGHT
|
||
new PMUI.util.Point(Math.round(shape.zoomWidth / 2) + shape.getZoomX(), shape.zoomHeight + shape.getZoomY()), // BOTTOM
|
||
new PMUI.util.Point(0 + shape.getZoomX(), Math.round(shape.zoomHeight / 2) + shape.getZoomY()) // LEFT
|
||
];
|
||
}
|
||
|
||
function loadConnections() {
|
||
var row, connection, dt = shape.getPorts().asArray(),
|
||
i, j;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
connection = dt[i].getConnection();
|
||
if (shape.getID() !== connection.getDestPort().getParent().getID() && shape.gat_default_flow !== connection.flo_uid) {
|
||
row = addRow();
|
||
row.getField('act_name').setValue(connection.getDestPort().getParent().getID());
|
||
row.getField('act_name').setUID(connection.getDestPort().getParent().getID());
|
||
row.getField('flo_condition').setValue(connection.getFlowCondition());
|
||
|
||
row.getItems()[2].style.addProperties({display: 'none'});
|
||
row.getItems()[2].controls[0].button.setButtonType('error');
|
||
$(row.getItems()[2].getHTML()).find("a").css({
|
||
padding: "5px"
|
||
});
|
||
formRoutingRule.addItem(row);
|
||
for (j = 0; j < formRoutingRule.getItems().length; j += 1) {
|
||
formRoutingRule.getItems()[j].style.addProperties({'padding': 'initial'});
|
||
}
|
||
row.getItems()[0].dom.labelTextContainer.style.display = 'none';
|
||
row.getItems()[1].dom.labelTextContainer.style.display = 'none';
|
||
}
|
||
}
|
||
}
|
||
|
||
function isConnection(sourceShape, shape) {
|
||
var connection,
|
||
i,
|
||
dt = sourceShape.getPorts().asArray();
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
connection = dt[i].getConnection();
|
||
if (sourceShape.getID() === connection.getSrcPort().getParent().getID() &&
|
||
shape.getID() === connection.getDestPort().getParent().getID()) {
|
||
return connection;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
function deleteRow() {
|
||
arrayShapeIdRemoved.push(formPanelSelected.getField('act_name').getValue());
|
||
formRoutingRule.removeItem(formPanelSelected);
|
||
PMDesigner.msgFlash('Routing rule removed correctly'.translate(), windowConnections.footer);
|
||
}
|
||
|
||
function enableSorting() {
|
||
var index = 0,
|
||
div = $(formRoutingRule.getHTML()).find(">div:nth-child(2)").css({"overflow": "initial"});
|
||
div.sortable({
|
||
items: '>div',
|
||
placeholder: 'steps-placeholder',
|
||
cursor: "move",
|
||
change: function (event, ui) {
|
||
index = ui.placeholder.index();
|
||
},
|
||
start: function (event, ui) {
|
||
},
|
||
stop: function (event, ui) {
|
||
var dt = [],
|
||
row,
|
||
formPanelSelected,
|
||
id,
|
||
i,
|
||
j,
|
||
shapeDest,
|
||
connection;
|
||
|
||
ui.item.parent().find(">div").each(function (i, e) {
|
||
dt.push(PMUI.getPMUIObject(e));
|
||
});
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
formPanelSelected = dt[i];
|
||
arrayShapeIdRemoved.push(formPanelSelected.getField('act_name').getValue());
|
||
formRoutingRule.removeItem(formPanelSelected);
|
||
}
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
row = addRow();
|
||
row.getItems()[2].style.addProperties({display: 'none'});
|
||
row.getItems()[2].controls[0].button.setButtonType('error');
|
||
$(row.getItems()[2].getHTML()).find("a").css({
|
||
padding: "5px"
|
||
});
|
||
formRoutingRule.addItem(row);
|
||
for (j = 0; j < formRoutingRule.getItems().length; j += 1) {
|
||
formRoutingRule.getItems()[j].style.addProperties({'padding': 'initial'});
|
||
}
|
||
row.getItems()[0].dom.labelTextContainer.style.display = 'none';
|
||
row.getItems()[1].dom.labelTextContainer.style.display = 'none';
|
||
row.getField('act_name').setValue(dt[i].getField('act_name').getValue());
|
||
row.getField('flo_condition').setValue(dt[i].getField('flo_condition').getValue());
|
||
id = dt[i].getField('act_name').getValue();
|
||
shapeDest = PMUI.getActiveCanvas().getCustomShapes().find('id', id);
|
||
connection = isConnection(shape, shapeDest);
|
||
}
|
||
enableSorting();
|
||
}
|
||
});
|
||
}
|
||
};
|
||
|
||
PMDesigner.RoutingRuleDeleteAllFlow = function (shape) {
|
||
var warningMessageWindowDelete = new PMUI.ui.MessageWindow({
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: 'Routing Rule'.translate(),
|
||
id: 'warningMessageWindowDelete',
|
||
message: 'Do you want to delete all routing rules?'.translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'warningMessageWindowDeleteButtonNo',
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDelete.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'warningMessageWindowDeleteButtonYes',
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
deleteAllConnection();
|
||
warningMessageWindowDelete.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
function deleteAllConnection() {
|
||
var connection, elements = [],
|
||
i,
|
||
sw,
|
||
msg,
|
||
ports;
|
||
PMUI.getActiveCanvas().emptyCurrentSelection();
|
||
//IMPORTANT: You must empty elements in another array due to the array reference indices managed.
|
||
//referer: PMDesigner.canvas.removeConnection & element.getPorts().asArray()
|
||
|
||
ports = shape.getPorts().asArray();
|
||
for (i = 0; i < ports.length; i += 1) {
|
||
elements.push(ports[i]);
|
||
}
|
||
sw = false;
|
||
for (i = 0; i < elements.length; i += 1) {
|
||
connection = elements[i].getConnection();
|
||
if (shape.getID() !== connection.getDestPort().getParent().getID()) {
|
||
PMUI.getActiveCanvas().setCurrentConnection(connection);
|
||
PMUI.getActiveCanvas().removeElements();
|
||
connection.saveAndDestroy();
|
||
PMUI.getActiveCanvas().removeConnection(connection);
|
||
sw = true;
|
||
}
|
||
}
|
||
msg = sw ? 'Routing rules deleted successfully' : 'There aren\'t routing rules';
|
||
PMDesigner.msgFlash(msg.translate(), document.body);
|
||
}
|
||
|
||
warningMessageWindowDelete.open();
|
||
warningMessageWindowDelete.showFooter();
|
||
warningMessageWindowDelete.dom.titleContainer.style.height = '17px';
|
||
};
|
||
|
||
PMDesigner.RoutingRuleSetOrder = function (diagram) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'update-route-order-from-project',
|
||
typeRequest: 'update',
|
||
data: {},
|
||
functionSuccess: function () {
|
||
PMDesigner.msgFlash('Saved correctly'.translate(), document.body, 'success', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
PMDesigner.dynaformDesigner = function (data) {
|
||
var old = PMUI.activeCanvas, a;
|
||
PMUI.activeCanvas = false;
|
||
a = new FormDesigner.main.Designer(data);
|
||
a.show();
|
||
a.onHide = function () {
|
||
PMUI.activeCanvas = old;
|
||
};
|
||
return a;
|
||
};
|
||
|
||
PMDesigner.complexRoutingRule = function (shape) {
|
||
var formRoutingRule,
|
||
formPanelSelected,
|
||
arrayShapeIdRemoved = [],
|
||
buttonAdd,
|
||
windowConnections,
|
||
warningMessageWindowDelete,
|
||
containerLabels,
|
||
buttonSave,
|
||
buttonCancel,
|
||
labelNextTask,
|
||
labelCondition,
|
||
warningMessageWindowDirty,
|
||
deleteButton;
|
||
|
||
//Window
|
||
//button add routing rule
|
||
buttonAdd = new PMUI.ui.Button({
|
||
id: 'routingRuleButtonAdd',
|
||
text: 'Add Routing Rule'.translate(),
|
||
style: {
|
||
cssProperties: {
|
||
marginLeft: '50px',
|
||
marginTop: '10px',
|
||
marginBottom: '10px',
|
||
fontSize: '16px'
|
||
}
|
||
},
|
||
buttonType: 'success',
|
||
height: 31,
|
||
handler: function () {
|
||
var item, btnDel;
|
||
if (countActivities() > 0) {
|
||
item = addRow();
|
||
item.getItems()[2].style.addProperties({display: 'none'});
|
||
item.getItems()[2].controls[0].button.setButtonType('error');
|
||
formRoutingRule.addItem(item);
|
||
for (var i = 0; i < formRoutingRule.getItems().length; i += 1) {
|
||
//formRoutingRule.getItems()[i].style.addProperties({'box-sizing': 'initial'});
|
||
//item.style.addProperties({padding : 'initial'});
|
||
formRoutingRule.getItems()[i].style.addProperties({'padding': 'initial'});
|
||
}
|
||
item.getItems()[0].dom.labelTextContainer.style.display = "none";
|
||
item.getItems()[1].dom.labelTextContainer.style.display = "none";
|
||
|
||
} else {
|
||
PMDesigner.msgFlash('There are no items.'.translate(), windowConnections.footer);
|
||
}
|
||
}
|
||
});
|
||
//button Save
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'windowConnectionsButtonSave',
|
||
text: 'Apply'.translate(),
|
||
handler: function () {
|
||
removeConnectionsIntoCanvas();
|
||
saveConnections();
|
||
},
|
||
buttonType: 'success',
|
||
height: 31
|
||
});
|
||
//Button cancel
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'windowConnectionsButtonCancel',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
handler: function () {
|
||
if (formRoutingRule.isDirty()) {
|
||
warningMessageWindowDirty.open();
|
||
warningMessageWindowDirty.showFooter();
|
||
} else {
|
||
windowConnections.close();
|
||
}
|
||
}
|
||
});
|
||
|
||
windowConnections = new PMUI.ui.Window({
|
||
id: 'windowConnections',
|
||
title: 'Routing Rule'.translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
footerAlign: 'right',
|
||
buttonPanelPosition: 'top',
|
||
items: [
|
||
buttonAdd
|
||
],
|
||
buttons: [
|
||
buttonCancel,
|
||
buttonSave
|
||
]
|
||
});
|
||
windowConnections.showFooter();
|
||
//END WINDOW
|
||
|
||
containerLabels = new PMUI.core.Panel({
|
||
layout: 'hbox',
|
||
width: 'auto',
|
||
height: 29,
|
||
style: {
|
||
cssProperties: {
|
||
'border-bottom': '1px solid #c0c0c0'
|
||
}
|
||
}
|
||
});
|
||
|
||
labelNextTask = new PMUI.ui.TextLabel({
|
||
text: 'Next Task'.translate(),
|
||
style: {
|
||
cssProperties: {
|
||
'font-weight': 'bold'
|
||
}
|
||
}
|
||
});
|
||
|
||
labelCondition = new PMUI.ui.TextLabel({
|
||
text: 'Description'.translate(),
|
||
style: {
|
||
cssProperties: {
|
||
'font-weight': 'bold'
|
||
}
|
||
}
|
||
});
|
||
|
||
containerLabels.addItem(labelNextTask);
|
||
containerLabels.addItem(labelCondition);
|
||
|
||
windowConnections.addItem(containerLabels);
|
||
|
||
formRoutingRule = new PMUI.form.Form({
|
||
id: 'formRoutingRule',
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 60,
|
||
height: 'auto',
|
||
items: [],
|
||
style: {
|
||
cssProperties: {
|
||
'margin-left': '35px'
|
||
}
|
||
}
|
||
});
|
||
|
||
warningMessageWindowDelete = new PMUI.ui.MessageWindow({
|
||
id: 'warningMessageWindowDelete',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Routing Rule".translate(),
|
||
bodyHeight: 'auto',
|
||
message: 'Do you want to delete this routing rule?'.translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'warningMessageWindowDeleteButtonNo',
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDelete.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
id: 'warningMessageWindowDeleteButtonYes',
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
deleteRow();
|
||
warningMessageWindowDelete.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
warningMessageWindowDirty = new PMUI.ui.MessageWindow({
|
||
id: 'warningMessageWindowDirty',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: "Routing Rule".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [{
|
||
id: 'warningMessageWindowDirtyButtonNo',
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDirty.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'warningMessageWindowDirtyButtonYes',
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
warningMessageWindowDirty.close();
|
||
windowConnections.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
//main
|
||
formRoutingRule.hideFooter();
|
||
windowConnections.addItem(formRoutingRule);
|
||
windowConnections.open();
|
||
labelNextTask.setWidth(382);
|
||
labelNextTask.style.addProperties({padding: '5px 0px 0px 50px'});
|
||
labelCondition.setWidth(410);
|
||
labelCondition.style.addProperties({padding: '5px 0px 0px 0px'});
|
||
containerLabels.style.addProperties({'border-bottom': '1px solid #e7e7e7'});
|
||
windowConnections.setTitle('Routing Rule'.translate() + ' - ' + ((shape.gat_type === 'COMPLEX') ? 'Exclusive (Manual)'.translate() : shape.gat_type));
|
||
loadConnections();
|
||
|
||
function countActivities() {
|
||
//Important! Any changes to synchronize the assessment of the condition
|
||
//of the functions: countActivities and loadActivities
|
||
var n = 0, i, dt;
|
||
dt = PMDesigner.project.getDirtyObject().diagrams[0].activities;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
n = n + 1;
|
||
}
|
||
|
||
dt = PMDesigner.project.getDirtyObject().diagrams[0].events;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
if (dt[i].evn_type !== 'START') {
|
||
n = n + 1;
|
||
}
|
||
}
|
||
return n;
|
||
}
|
||
|
||
function addRow() {
|
||
|
||
var dropDownControl, description, deleteButton, newRow;
|
||
|
||
newRow = new PMUI.form.FormPanel({
|
||
layout: 'hbox'
|
||
});
|
||
|
||
dropDownControl = new PMUI.field.DropDownListField({
|
||
id: 'dropdownNextTask',
|
||
name: 'act_name',
|
||
valueType: 'string',
|
||
label: 'Next Task'.translate(),
|
||
labelPosition: 'top',
|
||
labelVisible: false,
|
||
value: '',
|
||
readOnly: true,
|
||
controlsWidth: 360,
|
||
proportion: 1.1,
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top'
|
||
}
|
||
}
|
||
});
|
||
|
||
description = new PMUI.field.TextField({
|
||
id: 'textCondition',
|
||
pmType: 'text',
|
||
name: 'flo_description',
|
||
valueType: 'string',
|
||
label: 'Description'.translate(),
|
||
labelPosition: 'top',
|
||
labelVisible: false,
|
||
controlsWidth: 320,
|
||
required: true,
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top'
|
||
}
|
||
}
|
||
});
|
||
|
||
deleteButton = new PMUI.field.ButtonField({
|
||
id: 'buttonDelete',
|
||
value: 'Delete'.translate(),
|
||
handler: function (e, a) {
|
||
var i;
|
||
for (i = 0; i < formRoutingRule.getItems().length; i += 1) {
|
||
if (formRoutingRule.getItems()[i].getItems()[2].controls[0].button.id == this.id) {
|
||
formPanelSelected = formRoutingRule.getItems()[i];
|
||
warningMessageWindowDelete.open();
|
||
warningMessageWindowDelete.dom.titleContainer.style.height = "17px";
|
||
warningMessageWindowDelete.showFooter();
|
||
}
|
||
}
|
||
|
||
},
|
||
name: 'delete',
|
||
labelVisible: false,
|
||
buttonAling: 'left',
|
||
controlsWidth: 100,
|
||
proportion: 0.3,
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top'
|
||
}
|
||
}
|
||
});
|
||
|
||
newRow.addItem(dropDownControl);
|
||
newRow.addItem(description);
|
||
newRow.addItem(deleteButton);
|
||
loadActivities(dropDownControl);
|
||
return newRow;
|
||
}
|
||
|
||
function loadActivities(dropdown) {
|
||
var i, dt;
|
||
//Important! Any changes to synchronize the assessment of the condition
|
||
//of the functions: countActivities and loadActivities
|
||
dropdown.clearOptions();
|
||
dropdown.setUID = function (uid) {
|
||
this.uid = uid;
|
||
};
|
||
dropdown.getUID = function () {
|
||
return this.uid;
|
||
};
|
||
dropdown.addOptionGroup({
|
||
label: 'Task'.translate(),
|
||
selected: true,
|
||
options: []
|
||
});
|
||
dropdown.addOptionGroup({
|
||
label: 'Sub-process'.translate(),
|
||
options: []
|
||
});
|
||
dt = PMDesigner.project.getDirtyObject().diagrams[0].activities, nameGroup;
|
||
dt = dt.sort(function (a, b) {
|
||
return a.act_name.toString().toLowerCase() > b.act_name.toString().toLowerCase();
|
||
});
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
nameGroup = dt[i].act_type === 'TASK' ? 'Task'.translate() : 'Sub-process'.translate();
|
||
dropdown.addOption({
|
||
value: dt[i].act_uid,
|
||
label: dt[i].act_name
|
||
}, nameGroup);
|
||
}
|
||
|
||
dropdown.addOptionGroup({
|
||
label: 'End of process'.translate(),
|
||
options: []
|
||
});
|
||
dt = PMDesigner.project.getDirtyObject().diagrams[0].events;
|
||
dt = dt.sort(function (a, b) {
|
||
return a.evn_name.toString().toLowerCase() > b.evn_name.toString().toLowerCase();
|
||
});
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
if (dt[i].evn_type !== 'START') {
|
||
dropdown.addOption({
|
||
value: dt[i].evn_uid,
|
||
label: dt[i].evn_name
|
||
}, 'End of process'.translate());
|
||
}
|
||
}
|
||
}
|
||
|
||
function removeConnectionsIntoCanvas() {
|
||
var shapeDest, connection, dt, i, j;
|
||
for (j = 0; j < arrayShapeIdRemoved.length; j += 1) {
|
||
shapeDest = getShapeForId(arrayShapeIdRemoved[j]);
|
||
dt = shape.getPorts().asArray();
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
connection = dt[i].getConnection();
|
||
if (shape.getID() === connection.getSrcPort().getParent().getID() &&
|
||
shapeDest.getID() === connection.getDestPort().getParent().getID()) {
|
||
PMDesigner.canvas.emptyCurrentSelection();
|
||
PMDesigner.canvas.setCurrentConnection(connection);
|
||
PMDesigner.canvas.removeElements();
|
||
connection.saveAndDestroy();
|
||
PMDesigner.canvas.removeConnection(connection);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
arrayShapeIdRemoved = [];
|
||
}
|
||
|
||
function editShapeDestConnection(shapeDest, oldShape) {
|
||
var connection, canvas = PMDesigner.canvas;
|
||
connection = isConnection(shape, oldShape);
|
||
oldShape.removePort(connection.destPort);
|
||
shapeDest.addPort(connection.destPort, 100, 100,
|
||
false, connection.srcPort);
|
||
|
||
connection.canvas.commandStack.add(new PMUI.command.CommandConnect(connection));
|
||
connection.connect();
|
||
canvas.triggerPortChangeEvent(connection.destPort);
|
||
}
|
||
|
||
function createEndShape() {
|
||
var customShape, canvas = PMDesigner.canvas, command, x, y;
|
||
customShape = canvas.shapeFactory('END');
|
||
|
||
x = shape.getX() + shape.getWidth();
|
||
y = shape.getY() + shape.getHeight() + 20;
|
||
|
||
canvas.addElement(customShape, x, y,
|
||
customShape.topLeftOnCreation);
|
||
|
||
//since it is a new element in the designer, we triggered the
|
||
//custom on create element event
|
||
canvas.updatedElement = customShape;
|
||
|
||
// create the command for this new shape
|
||
command = new PMUI.command.CommandCreate(customShape);
|
||
canvas.commandStack.add(command);
|
||
command.execute();
|
||
return customShape;
|
||
}
|
||
|
||
function saveConnections() {
|
||
var dt, i;
|
||
if (!formRoutingRule.isValid()) {
|
||
return;
|
||
}
|
||
dt = formRoutingRule.getItems(), id, oldId, shapeDest, oldShapeDest, connection;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
id = dt[i].getField('act_name').getValue();
|
||
oldId = dt[i].getField('act_name').getUID();
|
||
if (id !== '0') {
|
||
if (oldId === undefined) {
|
||
shapeDest = getShapeForId(id);
|
||
createConnection(shape, shapeDest).setFlowCondition(dt[i].getField('flo_description').getValue());
|
||
}
|
||
if (oldId !== undefined && id === oldId) {
|
||
shapeDest = getShapeForId(id);
|
||
connection = isConnection(shape, shapeDest);
|
||
$a = connection;
|
||
connection.setFlowCondition(dt[i].getField('flo_description').getValue());
|
||
}
|
||
if (oldId !== undefined && id !== oldId) {
|
||
shapeDest = getShapeForId(id);
|
||
oldShapeDest = getShapeForId(oldId);
|
||
connection = isConnection(shape, oldShapeDest);
|
||
connection.setFlowCondition(dt[i].getField('flo_description').getValue());
|
||
editShapeDestConnection(shapeDest, oldShapeDest);
|
||
}
|
||
} else {
|
||
var customShape = createEndShape();
|
||
createConnection(shape, customShape);
|
||
}
|
||
}
|
||
windowConnections.close();
|
||
PMDesigner.msgFlash('Saved correctly'.translate(), document.body);
|
||
PMDesigner.project.dirty = true;
|
||
}
|
||
|
||
function getShapeForId(id) {
|
||
var dt = PMDesigner.canvas.getChildren().asArray(), i;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
if (dt[i].act_uid === id || dt[i].evn_uid === id) {
|
||
return dt[i];
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
function createConnection(sourceShape, shape) {
|
||
//referer to /processmaker/vendor/colosa/MichelangeloFE/src/connectiondrop.js
|
||
//method PMConnectionDropBehavior.prototype.onDrop
|
||
var sourcePort, endPort, connection, canvas = PMDesigner.canvas;
|
||
sourcePort = new PMUI.draw.Port({
|
||
width: 10,
|
||
height: 10
|
||
});
|
||
endPort = new PMUI.draw.Port({
|
||
width: 10,
|
||
height: 10
|
||
});
|
||
|
||
sourceShape.addPort(sourcePort, 100, 100);
|
||
shape.addPort(endPort, 100, 100,
|
||
false, sourcePort);
|
||
|
||
//add ports to the canvas array for regularShapes
|
||
//shape.canvas.regularShapes.insert(sourcePort).insert(endPort);
|
||
//create the connection
|
||
connection = new PMFlow({
|
||
srcPort: sourcePort,
|
||
destPort: endPort,
|
||
segmentColor: new PMUI.util.Color(92, 156, 204),
|
||
name: "",
|
||
canvas: shape.canvas,
|
||
segmentStyle: shape.connectionType.segmentStyle,
|
||
flo_type: shape.connectionType.type
|
||
});
|
||
connection.setSrcDecorator(new PMUI.draw.ConnectionDecorator({
|
||
width: 11,
|
||
height: 11,
|
||
canvas: canvas,
|
||
decoratorPrefix: (typeof shape.connectionType.srcDecorator !== 'undefined'
|
||
&& shape.connectionType.srcDecorator !== null) ?
|
||
shape.connectionType.srcDecorator : "mafe-sequence",
|
||
decoratorType: "source",
|
||
parent: connection
|
||
}));
|
||
connection.setDestDecorator(new PMUI.draw.ConnectionDecorator({
|
||
width: 11,
|
||
height: 11,
|
||
canvas: canvas,
|
||
decoratorPrefix: (typeof shape.connectionType.destDecorator !== 'undefined'
|
||
&& shape.connectionType.destDecorator !== null) ?
|
||
shape.connectionType.destDecorator : "mafe-sequence",
|
||
decoratorType: "target",
|
||
parent: connection
|
||
}));
|
||
connection.canvas.commandStack.add(new PMUI.command.CommandConnect(connection));
|
||
|
||
//connect the two ports
|
||
connection.connect();
|
||
connection.setSegmentMoveHandlers();
|
||
|
||
//add the connection to the canvas, that means insert its html to
|
||
// the DOM and adding it to the connections array
|
||
canvas.addConnection(connection);
|
||
|
||
// Filling PMFlow fields
|
||
connection.setTargetShape(endPort.parent);
|
||
connection.setOriginShape(sourcePort.parent);
|
||
connection.savePoints();
|
||
|
||
// now that the connection was drawn try to create the intersections
|
||
connection.checkAndCreateIntersectionsWithAll();
|
||
|
||
//attaching port listeners
|
||
sourcePort.attachListeners(sourcePort);
|
||
endPort.attachListeners(endPort);
|
||
|
||
// finally trigger createEvent
|
||
canvas.triggerCreateEvent(connection, []);
|
||
return connection;
|
||
}
|
||
|
||
function loadConnections() {
|
||
var row, connection, dt = shape.getPorts().asArray(), i, j;
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
connection = dt[i].getConnection();
|
||
if (shape.getID() !== connection.getDestPort().getParent().getID()) {
|
||
row = addRow();
|
||
row.getField('act_name').setValue(connection.getDestPort().getParent().getID());
|
||
row.getField('act_name').setUID(connection.getDestPort().getParent().getID());
|
||
row.getField('flo_description').setValue(connection.getFlowCondition());
|
||
|
||
row.getItems()[2].style.addProperties({display: 'none'});
|
||
row.getItems()[2].controls[0].button.setButtonType('error');
|
||
formRoutingRule.addItem(row);
|
||
for (j = 0; j < formRoutingRule.getItems().length; j += 1) {
|
||
formRoutingRule.getItems()[j].style.addProperties({'padding': 'initial'});
|
||
}
|
||
row.getItems()[0].dom.labelTextContainer.style.display = "none";
|
||
row.getItems()[1].dom.labelTextContainer.style.display = "none";
|
||
}
|
||
}
|
||
}
|
||
|
||
function isConnection(sourceShape, shape) {
|
||
var connection, dt, i;
|
||
dt = sourceShape.getPorts().asArray();
|
||
for (i = 0; i < dt.length; i += 1) {
|
||
connection = dt[i].getConnection();
|
||
if (sourceShape.getID() === connection.getSrcPort().getParent().getID() &&
|
||
shape.getID() === connection.getDestPort().getParent().getID()) {
|
||
return connection;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
function deleteRow() {
|
||
arrayShapeIdRemoved.push(formPanelSelected.getField('act_name').getValue());
|
||
formRoutingRule.removeItem(formPanelSelected);
|
||
PMDesigner.msgFlash('Routing rule removed correctly'.translate(), windowConnections.footer);
|
||
}
|
||
|
||
};
|
||
|
||
var PMVariables = function (options) {
|
||
var that = this;
|
||
this.initialFormAcceptedValuesKeyValue = null;
|
||
this.initialFormAcceptedValuesValue = null;
|
||
this.initialGridAcceptedValuesOrder = [];
|
||
this.validateAcceptedValuesFlag = false;
|
||
this.var_uid = null;
|
||
this.var_name = null;
|
||
this.edit = false;
|
||
this.editRow = null;
|
||
this.dirtyAcceptedValue = false;
|
||
this.fieldInfo = null;
|
||
this.onSave = new Function();
|
||
this.onEdit = new Function();
|
||
this.clickedClose = true;
|
||
this.editingOptions = false;
|
||
this.editRow = null;
|
||
this.currentVariable = null;
|
||
this.onWindowClose = new Function();
|
||
this.buttonCreate = new PMUI.ui.Button({
|
||
id: 'buttonCreate',
|
||
text: 'Create'.translate(),
|
||
height: '36px',
|
||
width: 100,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-button-create'
|
||
]
|
||
|
||
},
|
||
handler: function () {
|
||
that.showForm();
|
||
}
|
||
});
|
||
|
||
this.buttonCreateInputDocument = new PMUI.field.ButtonField({
|
||
id: 'buttonCreateInputDocument',
|
||
value: 'Create'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
proportion: 0.8,
|
||
handler: function (field) {
|
||
var inputDocument = new InputDocument();
|
||
inputDocument.build();
|
||
inputDocument.openFormInMainWindow();
|
||
inputDocument.method = "POST";
|
||
}
|
||
});
|
||
|
||
this.buttonEditInputDocument = new PMUI.field.ButtonField({
|
||
id: 'buttonEditInputDocument',
|
||
value: 'Edit'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
proportion: 0.8,
|
||
handler: function (field) {
|
||
var form = that.formVariables,
|
||
fieldInpDoc = form.getField('inp_doc_uid'),
|
||
inp_doc_uid = fieldInpDoc.getValue(),
|
||
defaultText = "- Select an input document -".translate(),
|
||
inputDocument;
|
||
if (inp_doc_uid && inp_doc_uid !== defaultText) {
|
||
inputDocument = new InputDocument();
|
||
inputDocument.build();
|
||
inputDocument.inputDocumentOriginDataForUpdate = {};
|
||
inputDocument.openFormInMainWindow();
|
||
inputDocument.inputDocumentFormGetProxy(inp_doc_uid);
|
||
} else {
|
||
fieldInpDoc.setValue("");
|
||
form.isValid();
|
||
}
|
||
}
|
||
});
|
||
|
||
that.buttonCreateInputDocument.controls[0].button.setButtonType("success");
|
||
that.buttonCreateInputDocument.controls[0].button.setStyle({
|
||
cssClasses: ["mafe-button-create-variable", "pmui-success"],
|
||
cssProperties: {padding: "8px 15px", border: "0px"}
|
||
});
|
||
that.buttonEditInputDocument.controls[0].button.setButtonType("success");
|
||
that.buttonEditInputDocument.controls[0].button.setStyle({
|
||
cssClasses: ["mafe-button-edit-variable", "pmui-success"],
|
||
cssProperties: {padding: "8px 15px", border: "0px"}
|
||
});
|
||
|
||
var inp_doc_uid = new PMUI.field.DropDownListField({
|
||
id: "inp_doc_uid",
|
||
name: "inp_doc_uid",
|
||
value: "",
|
||
required: true,
|
||
label: "Related Input Document".translate(),
|
||
controlsWidth: 460,
|
||
valueType: "string",
|
||
labelPosition: "top",
|
||
onChange: function () {
|
||
that.validateInputDoc();
|
||
}
|
||
});
|
||
|
||
this.buttonFieldAdd = new PMUI.field.ButtonField({
|
||
id: 'buttonFieldAdd',
|
||
pmType: 'buttonField',
|
||
value: 'Create'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
controlsWidth: 50,
|
||
proportion: 0.8,
|
||
handler: function (field) {
|
||
that.addAcceptedValue();
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
"margin-left": "10px"
|
||
}
|
||
}
|
||
});
|
||
this.buttonFieldAdd.getControl().button.setButtonType("success");
|
||
this.buttonFieldCancel = new PMUI.field.ButtonField({
|
||
id: 'buttonFieldCancel',
|
||
pmType: 'buttonField',
|
||
value: 'Cancel'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
controlsWidth: 55,
|
||
proportion: 0.6,
|
||
handler: function (field) {
|
||
that.clickedClose = false;
|
||
that.cancelAcceptedValue();
|
||
that.editingOptions = false;
|
||
}
|
||
});
|
||
this.buttonFieldCancel.getControl().button.setButtonType("error");
|
||
|
||
this.formVariables = new PMUI.form.Form({
|
||
id: 'formVariables',
|
||
width: 'auto',
|
||
title: '',
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
pmType: 'text',
|
||
label: 'Variable Name'.translate(),
|
||
placeholder: "Name".translate(),
|
||
id: 'variableName',
|
||
value: '',
|
||
name: 'var_name',
|
||
required: true,
|
||
valueType: 'string',
|
||
maxLength: 60,
|
||
controlsWidth: 460,
|
||
validators: [
|
||
{
|
||
pmType: "regexp",
|
||
criteria: /^[a-zA-Z\_]{1}\w+$/,
|
||
errorMessage: "A valid variable starts with a letter or underscore, followed by any number of letters, numbers, or underscores.".translate()
|
||
}
|
||
]
|
||
}, {
|
||
pmType: 'text',
|
||
label: 'Label'.translate(),
|
||
placeholder: 'Label'.translate(),
|
||
id: 'variableLabel',
|
||
value: 'label',
|
||
name: 'var_label',
|
||
valueType: 'string',
|
||
maxLength: 60,
|
||
controlsWidth: 460,
|
||
visible: false
|
||
}, {
|
||
pmType: 'dropdown',
|
||
label: 'Variable Type'.translate(),
|
||
placeholder: 'Variable type'.translate(),
|
||
id: 'varType',
|
||
value: 'string',
|
||
name: 'var_field_type',
|
||
required: true,
|
||
valueType: 'string',
|
||
controlsWidth: 460,
|
||
options: [
|
||
{
|
||
label: 'String',
|
||
value: 'string'
|
||
}, {
|
||
label: 'Integer',
|
||
value: 'integer'
|
||
}, {
|
||
label: 'Float',
|
||
value: 'float'
|
||
}, {
|
||
label: 'Boolean',
|
||
value: 'boolean'
|
||
}, {
|
||
label: 'Datetime',
|
||
value: 'datetime'
|
||
}, {
|
||
label: 'Grid',
|
||
value: 'grid'
|
||
}, {
|
||
label: 'Array',
|
||
value: 'array'
|
||
}, {
|
||
label: "File",
|
||
value: "file"
|
||
}, {
|
||
label: "Multiple File",
|
||
value: "multiplefile"
|
||
}, {
|
||
label: "Object",
|
||
value: "object"
|
||
}
|
||
|
||
],
|
||
onChange: function (newValue, oldValue) {
|
||
var sw = that.gridAcceptedValues.visible === false ? true : (that.gridAcceptedValues.getData().length === 0);
|
||
var sw2 = that.formBooleanOptions.visible === false ? true : (that.formBooleanOptions.getField('trueOption').getValue() + that.formBooleanOptions.getField('falseOption').getValue()) === '';
|
||
if (sw && sw2) {
|
||
that.changeViewFieldType(newValue, oldValue);
|
||
that.resetAcceptedValuesPanel();
|
||
that.gridAcceptedValues.clearItems();
|
||
that.resetBooleanPanel();
|
||
return;
|
||
}
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: 'messageWindowCancel',
|
||
width: 490,
|
||
title: 'Variables'.translate(),
|
||
windowMessageType: 'warning',
|
||
bodyHeight: 'auto',
|
||
message: "This action will delete all options. Do you want to continue?".translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'messageWindowNo',
|
||
text: 'No'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
that.formVariables.getField('var_field_type').setValue(oldValue);
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'messageWindowYes',
|
||
text: 'Yes'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
that.changeViewFieldType(newValue, oldValue);
|
||
that.resetAcceptedValuesPanel();
|
||
that.gridAcceptedValues.clearItems();
|
||
that.resetBooleanPanel();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
],
|
||
onClose: function () {
|
||
}
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
}
|
||
}, {
|
||
pmType: "panel",
|
||
id: "inp_doc_uidPanel",
|
||
fieldset: false,
|
||
layout: "hbox",
|
||
items: [
|
||
inp_doc_uid,
|
||
that.buttonCreateInputDocument,
|
||
that.buttonEditInputDocument
|
||
]
|
||
},
|
||
{
|
||
id: 'booleanPanel',
|
||
pmType: 'panel',
|
||
legend: 'Options'.translate(),
|
||
fieldset: true,
|
||
layout: 'vbox',
|
||
items: [
|
||
{
|
||
pmType: 'panel',
|
||
layout: 'hbox',
|
||
items: [
|
||
new PMLabelField({
|
||
text: 'Key'.translate(),
|
||
textMode: 'plain',
|
||
style: {
|
||
cssProperties: {
|
||
color: '#AEAEAE',
|
||
'font-weight': 'bold'
|
||
}
|
||
},
|
||
proportion: 0.3
|
||
}),
|
||
new PMLabelField({
|
||
text: 'Label'.translate(),
|
||
textMode: 'plain',
|
||
style: {
|
||
cssProperties: {
|
||
color: '#AEAEAE',
|
||
'font-weight': 'bold'
|
||
}
|
||
}
|
||
})
|
||
]
|
||
},
|
||
{
|
||
pmType: 'text',
|
||
name: 'trueOption',
|
||
label: 'True'.translate(),
|
||
controlsWidth: 460,
|
||
valueType: 'string',
|
||
maxLength: 100,
|
||
required: true
|
||
}, {
|
||
pmType: 'text',
|
||
name: 'falseOption',
|
||
label: 'False'.translate(),
|
||
controlsWidth: 460,
|
||
valueType: 'string',
|
||
maxLength: 100,
|
||
required: true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
pmType: 'dropdown',
|
||
label: 'Database Connection'.translate(),
|
||
placeholder: 'Database Connection'.translate(),
|
||
id: 'varConnection',
|
||
value: 'none',
|
||
name: 'var_dbconnection',
|
||
controlsWidth: 460,
|
||
options: [{
|
||
label: 'PM Database',
|
||
value: 'workflow'
|
||
}
|
||
],
|
||
onChange: function (newValue, oldValue) {
|
||
}
|
||
}, {
|
||
pmType: 'textarea',
|
||
label: 'SQL'.translate(),
|
||
placeholder: "Insert a SQL query like: SELECT [Key field], [Label field] FROM [Table name]".translate(),
|
||
id: 'varSql',
|
||
value: '',
|
||
name: 'var_sql',
|
||
valueType: 'string',
|
||
controlsWidth: 460,
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
}, {
|
||
pmType: 'checkbox',
|
||
label: 'Define accepted variable values'.translate(),
|
||
id: "chckboxOption",
|
||
name: 'var_options_control',
|
||
controlsWidth: 460,
|
||
options: [{value: '1', label: ''}],
|
||
onChange: function (newValue, oldValue) {
|
||
that.changeViewFieldType(that.formVariables.getField('var_field_type').getValue());
|
||
}
|
||
},
|
||
{
|
||
id: 'formAcceptedValues',
|
||
pmType: 'panel',
|
||
fieldset: false,
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
pmType: 'text',
|
||
name: 'keyValue',
|
||
id: "variable-keyvalue",
|
||
label: 'Key'.translate(),
|
||
labelWidth: '100%',
|
||
controlsWidth: 210,
|
||
proportion: 2.5,
|
||
valueType: 'string',
|
||
maxLength: 255,
|
||
labelPosition: "top"
|
||
},
|
||
{
|
||
pmType: 'text',
|
||
name: 'value',
|
||
id: "variable-value",
|
||
label: 'Label'.translate(),
|
||
labelWidth: '100%',
|
||
controlsWidth: 300,
|
||
valueType: 'string',
|
||
maxLength: 255,
|
||
proportion: 3.4,
|
||
labelPosition: "top"
|
||
},
|
||
that.buttonFieldCancel,
|
||
that.buttonFieldAdd
|
||
]
|
||
}
|
||
]
|
||
});
|
||
this.formVariables.getData = function () {
|
||
var data = getData2PMUI(that.formVariables.html);
|
||
return data;
|
||
};
|
||
this.gridVariables = new PMUI.grid.GridPanel({
|
||
id: 'gridVariables',
|
||
pageSize: 10,
|
||
width: '96%',
|
||
style: {
|
||
cssClasses: ['mafe-gridPanel']
|
||
},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 374,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return '';
|
||
},
|
||
columns: [{
|
||
id: 'varName',
|
||
title: 'Name'.translate(),
|
||
dataType: 'string',
|
||
columnData: 'var_name',
|
||
alignmentCell: 'left',
|
||
width: '300px',
|
||
sortable: true
|
||
}, {
|
||
id: 'varType',
|
||
title: 'Type'.translate(),
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
columnData: 'var_field_type',
|
||
sortable: true
|
||
}, {
|
||
id: 'varEdit',
|
||
dataType: 'button',
|
||
title: '',
|
||
buttonLabel: 'Edit'.translate(),
|
||
width: '60px',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.showFormEdit(row.getData());
|
||
}
|
||
}, {
|
||
id: 'varDelete',
|
||
dataType: 'button',
|
||
title: '',
|
||
buttonLabel: function (row, data) {
|
||
return 'Delete'.translate();
|
||
},
|
||
width: '70px',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.del(row.getData(), row, grid);
|
||
}
|
||
}
|
||
],
|
||
dataItems: null
|
||
});
|
||
this.gridAcceptedValues = new PMUI.grid.GridPanel({
|
||
id: 'gridAcceptedValues',
|
||
pageSize: 5,
|
||
style: {cssClasses: ['mafe-gridPanel']},
|
||
filterPlaceholder: 'Text to Search'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
filterable: false,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return '';
|
||
},
|
||
columns: [{
|
||
id: 'keyvalue',
|
||
title: 'Key'.translate(),
|
||
columnData: 'keyValue',
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
width: 180
|
||
}, {
|
||
id: 'label',
|
||
title: 'Label'.translate(),
|
||
columnData: 'value',
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
width: 300
|
||
}, {
|
||
id: 'buttonEdit',
|
||
dataType: 'button',
|
||
title: '',
|
||
buttonLabel: 'Edit'.translate(),
|
||
width: 60,
|
||
buttonStyle: {cssClasses: ['mafe-button-edit']},
|
||
onButtonClick: function (row, grid) {
|
||
that.editRow = row;
|
||
that.editAcceptedValue(row);
|
||
}
|
||
}, {
|
||
id: 'buttonDelete',
|
||
dataType: 'button',
|
||
title: '',
|
||
buttonLabel: function (row, data) {
|
||
return 'Delete'.translate();
|
||
},
|
||
width: 75,
|
||
buttonStyle: {cssClasses: ['mafe-button-delete']},
|
||
onButtonClick: function (row, grid) {
|
||
if (row !== that.editRow) {
|
||
that.deleteAcceptedValue(row);
|
||
} else {
|
||
PMDesigner.msgFlash('The row can not be removed, because is being edited.'.translate(), document.getElementById('windowVariables'), 'error', 1000, 5);
|
||
}
|
||
}
|
||
}
|
||
],
|
||
dataItems: null,
|
||
behavior: 'dragdropsort'
|
||
});
|
||
this.isDirtyFormVariables = function () {
|
||
$("input,select,textarea").blur();
|
||
if (this.formVariables.isVisible()) {
|
||
this.validateAcceptedValues();
|
||
if (this.formVariables.isDirty() || this.dirtyAcceptedValue || this.validateAcceptedValuesFlag) {
|
||
//if (this.formVariables.getField("var_options_control").controls[0].selected) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "messageWindowCancel",
|
||
width: 490,
|
||
title: "Variables".translate(),
|
||
windowMessageType: "warning",
|
||
bodyHeight: "auto",
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [{
|
||
id: "messageWindowNo",
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: "messageWindowYes",
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
if (that.clickedClose) {
|
||
that.windowVariables.close();
|
||
}
|
||
message_window.close();
|
||
that.showGrid();
|
||
that.windowVariables.hideFooter();
|
||
},
|
||
buttonType: "success"
|
||
},
|
||
]
|
||
});
|
||
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
/*} else {
|
||
that.showGrid();
|
||
}*/
|
||
} else {
|
||
if (that.clickedClose) {
|
||
that.windowVariables.close();
|
||
} else {
|
||
that.showGrid();
|
||
}
|
||
this.initialFormAcceptedValuesKeyValue = null;
|
||
this.initialFormAcceptedValuesValue = null;
|
||
this.initialGridAcceptedValuesOrder = [];
|
||
that.windowVariables.hideFooter();
|
||
}
|
||
} else {
|
||
this.windowVariables.close();
|
||
}
|
||
};
|
||
this.windowVariables = new PMUI.ui.Window({
|
||
id: 'windowVariables',
|
||
title: 'Variables'.translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
onBeforeClose: function () {
|
||
that.clickedClose = true;
|
||
that.isDirtyFormVariables();
|
||
},
|
||
footerItems: [
|
||
new PMUI.ui.Button({
|
||
id: "windowVariablesCancel",
|
||
text: "Cancel".translate(),
|
||
|
||
handler: function () {
|
||
that.clickedClose = false;
|
||
that.isDirtyFormVariables();
|
||
},
|
||
|
||
buttonType: "error"
|
||
}),
|
||
|
||
new PMUI.ui.Button({
|
||
id: "windowVariablesSave",
|
||
text: "Save".translate(),
|
||
|
||
handler: function () {
|
||
if (that.edit) {
|
||
that.updateVariables();
|
||
} else {
|
||
that.saveVariables();
|
||
}
|
||
},
|
||
|
||
buttonType: "success"
|
||
})
|
||
],
|
||
onClose: function () {
|
||
that.onWindowClose(that.currentVariable);
|
||
},
|
||
visibleFooter: true,
|
||
buttonPanelPosition: "bottom"
|
||
});
|
||
PMVariables.prototype.init.call(this);
|
||
that.setInputDocuments(inp_doc_uid);
|
||
};
|
||
PMVariables.prototype.init = function () {
|
||
var that = this,
|
||
acceptedValuesForm,
|
||
label;
|
||
|
||
that.buttonCreate.defineEvents();
|
||
|
||
that.windowVariables.addItem(that.gridVariables);
|
||
that.windowVariables.addItem(that.formVariables);
|
||
that.windowVariables.addItem(that.gridAcceptedValues);
|
||
that.windowVariables.hideFooter();
|
||
that.windowVariables.open();
|
||
label = $('#booleanPanel');
|
||
acceptedValuesForm = $('#formAcceptedValues');
|
||
that.customCss();
|
||
acceptedValuesForm.find(".pmui-field-message").css("marginLeft", 10);
|
||
$("#gridAcceptedValues").css({"height": "254px", "margin": "0 10px"});
|
||
$("#requiredMessage").css({"margin-top": "10px"});
|
||
$("#inp_doc_uid").find(".pmui-field-message:eq(0)").css("left", "226px");
|
||
this.formAcceptedValues = PMUI.getPMUIObject(acceptedValuesForm.get(0));
|
||
|
||
this.buttonFieldAdd.controls[0].button.setStyle({cssProperties: {padding: "6px 15px"}});
|
||
this.buttonFieldCancel.controls[0].button.setStyle({cssProperties: {padding: "6px 15px"}});
|
||
$('#gridVariables .pmui-textcontrol').css({'margin-top': '5px', width: '250px'});
|
||
that.gridVariables.dom.toolbar.appendChild(that.buttonCreate.getHTML());
|
||
|
||
this.formBooleanOptions = PMUI.getPMUIObject(label.get(0));
|
||
that.showGrid();
|
||
that.loadDataBaseConnections();
|
||
|
||
validateKeysField(that.formVariables.getField('var_name').getControls()[0].getHTML(), ['isbackspace', 'isnumber', 'isletter', 'isunderscore']);
|
||
|
||
that.resetAcceptedValuesPanel();
|
||
label = $('#booleanPanel').css({'width': '675px', margin: '10px'}).find(".pmui-pmlabelfield");
|
||
$(label[0]).replaceWith($(label[0]).find(".pmui-pmlabelcontrol").css({
|
||
"font-size": "14px",
|
||
"margin-right": "127px"
|
||
}));
|
||
$(label[1]).replaceWith($(label[1]).find(".pmui-pmlabelcontrol").css({
|
||
"font-size": "14px",
|
||
"margin-right": "127px"
|
||
}));
|
||
this.formVariables.panel.html.style.overflow = "scroll !important";
|
||
$(this.formVariables.panel.html).removeClass("pmui-formpanel");
|
||
$(this.formVariables.panel.html).append(that.formAcceptedValues.html);
|
||
$(this.formVariables.panel.html).append(that.gridAcceptedValues.html);
|
||
$(that.formAcceptedValues.html).find(".pmui-formpanel").css({"display": "inline-block"});
|
||
that.windowVariables.footer.html.style.textAlign = "right";
|
||
};
|
||
PMVariables.prototype.saveVariables = function () {
|
||
var that = this,
|
||
data,
|
||
inp_doc_uid_value = this.formVariables.getField("inp_doc_uid").controls[0].value;
|
||
this.formVariables.getField("inp_doc_uid").setValue(inp_doc_uid_value);
|
||
if (!this.formVariables.isValid()) {
|
||
return;
|
||
}
|
||
if (this.formBooleanOptions.visible && !this.formBooleanOptions.isValid()) {
|
||
return;
|
||
}
|
||
data = this.formVariables.getData();
|
||
data.var_label = data.var_field_type;
|
||
|
||
data.var_default = '';
|
||
data.var_accepted_values = that.getDataAcceptedValues();
|
||
data.var_field_size = 10;
|
||
if (!this.formVariables.getField('var_sql').visible)
|
||
data.var_sql = "";
|
||
(new PMRestClient({
|
||
endpoint: 'process-variable',
|
||
typeRequest: 'post',
|
||
functionSuccess: function (xhr, response) {
|
||
if (that.onSave(xhr, response) === false) {
|
||
that.var_uid = null;
|
||
return;
|
||
}
|
||
that.showGrid();
|
||
that.load();
|
||
that.var_uid = null;
|
||
that.windowVariables.hideFooter();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: ' ',
|
||
data: data,
|
||
messageSuccess: 'Variable saved successfully'.translate(),
|
||
flashContainer: that.panel
|
||
})).executeRestClient();
|
||
};
|
||
PMVariables.prototype.updateVariables = function () {
|
||
var that = this,
|
||
data,
|
||
inp_doc_uid_value = this.formVariables.getField("inp_doc_uid").controls[0].value;
|
||
this.formVariables.getField("inp_doc_uid").setValue(inp_doc_uid_value);
|
||
if (!this.formVariables.isValid()) {
|
||
return;
|
||
}
|
||
if (this.formBooleanOptions.visible && !this.formBooleanOptions.isValid()) {
|
||
return;
|
||
}
|
||
data = this.formVariables.getData();
|
||
data.var_label = data.var_field_type;
|
||
data.var_field_size = 10;
|
||
if (that.formVariables.getField('var_name').getValue().trim() === that.var_name.trim()) {
|
||
delete data['var_name'];
|
||
}
|
||
data.var_default = '';
|
||
data.var_accepted_values = that.getDataAcceptedValues();
|
||
if (!this.formVariables.getField('var_sql').visible)
|
||
data.var_sql = "";
|
||
(new PMRestClient({
|
||
endpoint: 'process-variable/' + that.var_uid,
|
||
typeRequest: 'update',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
if (that.onEdit(xhr, response, data) === false) {
|
||
that.var_uid = null;
|
||
return;
|
||
}
|
||
var var_name_old = that.currentVariable.var_name;
|
||
that.currentVariable = data;
|
||
that.currentVariable.var_uid = that.var_uid;
|
||
that.currentVariable.var_name_old = var_name_old;
|
||
that.showGrid();
|
||
that.load();
|
||
that.var_uid = null;
|
||
that.windowVariables.hideFooter();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: ' ',
|
||
messageSuccess: 'Variable edited successfully'.translate(),
|
||
flashContainer: that.panel
|
||
})).executeRestClient();
|
||
};
|
||
PMVariables.prototype.deleteVariable = function (var_uid) {
|
||
var that = this;
|
||
(new PMRestClient({
|
||
endpoint: 'process-variable/' + var_uid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
that.load();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'working...'.translate(),
|
||
messageSuccess: 'Variable deleted successfully'.translate(),
|
||
flashContainer: that.panel
|
||
})).executeRestClient();
|
||
};
|
||
PMVariables.prototype.load = function () {
|
||
var that = this;
|
||
var restProxy = new PMRestClient({
|
||
endpoint: 'process-variables',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var listInputDocs = response;
|
||
that.gridVariables.setDataItems(listInputDocs);
|
||
that.gridVariables.sort('var_name', 'asc');
|
||
$(that.gridVariables.dom.toolbar).find("input").val("");
|
||
that.gridVariables.clearFilter();
|
||
if (that.currentVariable !== null) {
|
||
var var_name_old = that.currentVariable.var_name_old;
|
||
for (var i = 0; i < response.length; i++) {
|
||
if (that.currentVariable.var_uid === response[i].var_uid) {
|
||
that.currentVariable = response[i];
|
||
}
|
||
}
|
||
that.currentVariable.var_name_old = var_name_old;
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
PMVariables.prototype.del = function (data, row, grid) {
|
||
var that = this;
|
||
var confirmWindow = new PMUI.ui.MessageWindow({
|
||
id: 'confirmWindowDel',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: "Variables".translate(),
|
||
message: 'Do you want to delete this variable?'.translate(),
|
||
footerItems: [{
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
that.deleteVariable(data.var_uid, row);
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
confirmWindow.open();
|
||
confirmWindow.dom.titleContainer.style.height = '17px';
|
||
confirmWindow.showFooter();
|
||
};
|
||
|
||
PMVariables.prototype.customCss = function () {
|
||
$("#inp_doc_uidPanel").css({padding: ""});
|
||
$("#inp_doc_uid").css({width: "75%"}).find("label:eq(0)").css({float: "left", width: "31.5%"});
|
||
|
||
var td = $("#chckboxOption .pmui-field-control-table td")[0];
|
||
|
||
if (typeof(td) != "undefined") {
|
||
td.setAttribute("style", "padding:0px !important");
|
||
}
|
||
|
||
this.formVariables.panel.getHTML().setAttribute("style", "overflow: initial");
|
||
};
|
||
|
||
PMVariables.prototype.showGrid = function () {
|
||
var that = this;
|
||
that.formVariables.setVisible(false);
|
||
that.disableAcceptedValuesPanel();
|
||
that.gridAcceptedValues.setVisible(false);
|
||
that.disableBooleanPanel();
|
||
$(that.gridVariables.dom.toolbar).find("input").val("");
|
||
that.gridVariables.clearFilter();
|
||
that.gridVariables.setVisible(true);
|
||
that.windowVariables.setTitle('Variables'.translate());
|
||
};
|
||
PMVariables.prototype.showForm = function () {
|
||
var that = this;
|
||
that.edit = false;
|
||
that.dirtyAcceptedValue = false;
|
||
that.formVariables.setVisible(true);
|
||
that.enableAcceptedValuesPanel();
|
||
that.gridAcceptedValues.setVisible(true);
|
||
that.enableBooleanPanel();
|
||
that.gridVariables.setVisible(false);
|
||
that.windowVariables.setTitle('Create Variable'.translate());
|
||
that.formVariables.reset();
|
||
that.formVariables.setFocus();
|
||
that.changeViewFieldType('string');
|
||
that.resetAcceptedValuesPanel();
|
||
that.gridAcceptedValues.clearItems();
|
||
that.resetBooleanPanel();
|
||
that.buttonFieldCancel.setVisible(false);
|
||
that.windowVariables.showFooter();
|
||
that.buttonCreateInputDocument.setVisible(false);
|
||
that.buttonEditInputDocument.setVisible(false);
|
||
};
|
||
PMVariables.prototype.showFormEdit = function (data) {
|
||
var that = this;
|
||
that.showForm();
|
||
that.var_uid = data.var_uid;
|
||
that.edit = true;
|
||
that.var_name = data.var_name;
|
||
that.windowVariables.setTitle('Edit Variable'.translate());
|
||
that.formVariables.getField('var_dbconnection').setValue(data.var_dbconnection);
|
||
that.formVariables.getField('var_field_type').setValue(data.var_field_type);
|
||
that.formVariables.getField('var_label').setValue(data.var_label);
|
||
that.formVariables.getField('var_name').setValue(data.var_name);
|
||
that.formVariables.getField('var_sql').setValue(data.var_sql);
|
||
that.formVariables.getField('inp_doc_uid').setValue(data.inp_doc_uid);
|
||
|
||
that.setVarOptionsControl(data.var_accepted_values);
|
||
that.changeViewFieldType(data.var_field_type);
|
||
that.setDataAcceptedValues(data.var_accepted_values);
|
||
that.currentVariable = data;
|
||
that.currentVariable.var_name_old = that.currentVariable.var_name;
|
||
};
|
||
PMVariables.prototype.loadDataBaseConnections = function () {
|
||
var that = this;
|
||
var restProxy = new PMRestClient({
|
||
endpoint: 'database-connections',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var dropdown = that.formVariables.getField('var_dbconnection');
|
||
for (var i = 0; i < response.length; i++) {
|
||
if (response[i].dbs_connection_type == "TNS") {
|
||
dropdown.addOption({
|
||
label: "[" + response[i].dbs_tns + "] " + response[i].dbs_type + " : " + response[i].dbs_database_description,
|
||
value: response[i].dbs_uid
|
||
});
|
||
} else {
|
||
dropdown.addOption({
|
||
label: "[" + response[i].dbs_server + ":" + response[i].dbs_port + "] " + response[i].dbs_type + ": " + response[i].dbs_database_name + response[i].dbs_database_description,
|
||
value: response[i].dbs_uid
|
||
});
|
||
}
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
};
|
||
PMVariables.prototype.changeViewFieldType = function (newValue) {
|
||
var that = this;
|
||
var sw = that.formVariables.getField('var_options_control').controls[0].selected;
|
||
|
||
that.formVariables.getField('var_dbconnection').setVisible(false);
|
||
that.formVariables.getField('var_sql').setVisible(false);
|
||
that.formVariables.getField('var_options_control').setVisible(false);
|
||
that.formVariables.getField('inp_doc_uid').setVisible(false);
|
||
that.formVariables.getField('inp_doc_uid').setRequired(false);
|
||
that.disableAcceptedValuesPanel();
|
||
that.gridAcceptedValues.setVisible(false);
|
||
that.disableBooleanPanel();
|
||
that.buttonCreateInputDocument.setVisible(false);
|
||
that.buttonEditInputDocument.setVisible(false);
|
||
|
||
validateKeysField(that.formAcceptedValues.getField('keyValue').getControls()[0].getHTML(), []);
|
||
|
||
if (this.fieldInfo === null) {
|
||
this.fieldInfo = document.createTextNode('');
|
||
var a = that.formVariables.getField('var_field_type').getControls()[0];
|
||
a.html.parentNode.appendChild(document.createElement('br'));
|
||
a.html.parentNode.appendChild(this.fieldInfo);
|
||
}
|
||
|
||
switch (newValue) {
|
||
case 'string':
|
||
that.formVariables.getField('var_dbconnection').setVisible(true);
|
||
that.formVariables.getField('var_sql').setVisible(true);
|
||
that.formVariables.getField('var_options_control').setVisible(true);
|
||
sw ? that.enableAcceptedValuesPanel() : that.disableAcceptedValuesPanel();
|
||
that.gridAcceptedValues.setVisible(true && sw);
|
||
this.fieldInfo.data = "Supported Controls: text, textarea, dropdown, radio, suggest, hidden.".translate();
|
||
|
||
/*----------------------------------********---------------------------------*/
|
||
/**features-begins**/
|
||
this.fieldInfo.data = "Supported Controls: text, textarea, dropdown, radio, suggest, hidden, geo map, qr code.".translate();
|
||
/**features-ends**/
|
||
/*----------------------------------********---------------------------------*/
|
||
|
||
break;
|
||
case 'integer':
|
||
that.formVariables.getField('var_dbconnection').setVisible(true);
|
||
that.formVariables.getField('var_sql').setVisible(true);
|
||
that.formVariables.getField('var_options_control').setVisible(true);
|
||
sw ? that.enableAcceptedValuesPanel() : that.disableAcceptedValuesPanel();
|
||
that.gridAcceptedValues.setVisible(true && sw);
|
||
|
||
validateKeysField(that.formAcceptedValues.getField('keyValue').getControls()[0].getHTML(), ['isbackspace', 'isnumber', 'ishyphen']);
|
||
this.fieldInfo.data = "Supported Controls: text, textarea, dropdown, radio, suggest, hidden.".translate();
|
||
break;
|
||
case 'float':
|
||
that.formVariables.getField('var_dbconnection').setVisible(true);
|
||
that.formVariables.getField('var_sql').setVisible(true);
|
||
that.formVariables.getField('var_options_control').setVisible(true);
|
||
sw ? that.enableAcceptedValuesPanel() : that.disableAcceptedValuesPanel();
|
||
that.gridAcceptedValues.setVisible(true && sw);
|
||
|
||
validateKeysField(that.formAcceptedValues.getField('keyValue').getControls()[0].getHTML(), ['isbackspace', 'isnumber', 'isperiod', 'ishyphen']);
|
||
this.fieldInfo.data = "Supported Controls: text, textarea, dropdown, radio, suggest, hidden.".translate();
|
||
break;
|
||
case 'boolean':
|
||
that.enableBooleanPanel();
|
||
this.fieldInfo.data = "Supported Controls: checkbox, radio, hidden.".translate();
|
||
break;
|
||
case 'datetime':
|
||
this.fieldInfo.data = "Supported Controls: datetime, hidden.".translate();
|
||
break;
|
||
case "grid":
|
||
this.fieldInfo.data = "Supported Controls: grid.".translate();
|
||
break;
|
||
case "array":
|
||
that.formVariables.getField('var_dbconnection').setVisible(true);
|
||
that.formVariables.getField('var_sql').setVisible(true);
|
||
that.formVariables.getField('var_options_control').setVisible(true);
|
||
sw ? that.enableAcceptedValuesPanel() : that.disableAcceptedValuesPanel();
|
||
that.gridAcceptedValues.setVisible(true && sw);
|
||
this.fieldInfo.data = "Supported Controls: checkgroup.".translate();
|
||
break;
|
||
case 'file':
|
||
that.formVariables.getField('inp_doc_uid').setVisible(true);
|
||
that.buttonCreateInputDocument.setVisible(true);
|
||
that.buttonEditInputDocument.setVisible(true);
|
||
that.formVariables.getField('inp_doc_uid').setRequired(true);
|
||
this.fieldInfo.data = "Supported Controls: file.".translate();
|
||
that.validateInputDoc();
|
||
break;
|
||
case 'multiplefile':
|
||
this.fieldInfo.data = "Supported Controls: Multiple File.".translate();
|
||
break;
|
||
case 'object':
|
||
this.fieldInfo.data = "Supported Controls:".translate();
|
||
break;
|
||
}
|
||
};
|
||
/**
|
||
* Enable or disable edit button of input document
|
||
*/
|
||
PMVariables.prototype.validateInputDoc = function () {
|
||
var form = this.formVariables,
|
||
fieldInpDoc = form.getField("inp_doc_uid"),
|
||
defaultText = "- Select an input document -".translate();
|
||
if (fieldInpDoc && fieldInpDoc.getValue() && fieldInpDoc.getValue() !== defaultText) {
|
||
this.buttonEditInputDocument.enable();
|
||
} else {
|
||
this.buttonEditInputDocument.disable();
|
||
}
|
||
};
|
||
PMVariables.prototype.addAcceptedValue = function () {
|
||
var that = this,
|
||
key = jQuery.trim(that.formAcceptedValues.getField('keyValue').getValue()),
|
||
value = jQuery.trim(that.formAcceptedValues.getField('value').getValue());
|
||
|
||
if (that.isAcceptedValueAdded()) {
|
||
return PMDesigner.msgFlash('The key value already exists.'.translate(),
|
||
document.getElementById('windowVariables'), 'error', 1000, 5);
|
||
}
|
||
if (!(key && value)) {
|
||
return PMDesigner.msgFlash('The key and label must be supplied.'.translate(),
|
||
document.getElementById('windowVariables'), 'error', 1000, 5);
|
||
}
|
||
if (that.editRow === null) {
|
||
that.gridAcceptedValues.addItem(new PMUI.grid.GridPanelRow({
|
||
data: {
|
||
keyValue: key,
|
||
value: value
|
||
}
|
||
}));
|
||
} else {
|
||
this.editingOptions = false;
|
||
that.editRow.setData({
|
||
keyValue: key,
|
||
value: value
|
||
});
|
||
}
|
||
that.dirtyAcceptedValue = true;
|
||
that.cancelAcceptedValue();
|
||
};
|
||
PMVariables.prototype.editAcceptedValue = function (row) {
|
||
var that = this;
|
||
this.editingOptions = true;
|
||
that.editRow = row;
|
||
var data = row.getData();
|
||
that.formAcceptedValues.getField('keyValue').setValue(data.keyValue);
|
||
that.formAcceptedValues.getField('value').setValue(data.value);
|
||
that.buttonFieldAdd.setValue('Save'.translate());
|
||
that.buttonFieldCancel.setVisible(true);
|
||
|
||
that.initialFormAcceptedValuesKeyValue = data.keyValue;
|
||
that.initialFormAcceptedValuesValue = data.value;
|
||
};
|
||
PMVariables.prototype.deleteAcceptedValue = function (row) {
|
||
var that = this;
|
||
var confirmWindow = new PMUI.ui.MessageWindow({
|
||
id: 'confirmWindowDeleteAcceptedValue',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: "Variables".translate(),
|
||
message: 'Do you want to delete this Key Value?'.translate(),
|
||
footerItems: [{
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
that.gridAcceptedValues.removeItem(row);
|
||
that.dirtyAcceptedValue = true;
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
confirmWindow.open();
|
||
confirmWindow.dom.titleContainer.style.height = '17px';
|
||
confirmWindow.showFooter();
|
||
};
|
||
PMVariables.prototype.getDataAcceptedValues = function () {
|
||
var that = this, data = [], i, dt = [];
|
||
if (that.gridAcceptedValues.visible) {
|
||
dt = that.gridAcceptedValues.getData();
|
||
for (i = 0; i < dt.length; i++) {
|
||
delete dt[i].key;
|
||
delete dt[i].type;
|
||
data.push({
|
||
value: dt[i].keyValue,
|
||
label: dt[i].value
|
||
});
|
||
}
|
||
}
|
||
if (that.formBooleanOptions.visible) {
|
||
var a = that.formBooleanOptions.getItems("fields").reduce(function (prev, curr) {
|
||
prev[curr.getName()] = curr.getValue();
|
||
return prev;
|
||
}, {});
|
||
|
||
data = [
|
||
{value: '1', label: a.trueOption},
|
||
{value: '0', label: a.falseOption}
|
||
];
|
||
}
|
||
return data;
|
||
};
|
||
PMVariables.prototype.setDataAcceptedValues = function (stringJsonData) {
|
||
if (!stringJsonData) {
|
||
return;
|
||
}
|
||
var that = this, i, data = stringJsonData;
|
||
if (typeof stringJsonData === 'string') {
|
||
data = JSON.parse(stringJsonData);
|
||
}
|
||
if (that.gridAcceptedValues.visible) {
|
||
for (i = 0; i < data.length; i++) {
|
||
that.gridAcceptedValues.addItem(new PMUI.grid.GridPanelRow({
|
||
data: {
|
||
keyValue: data[i].keyValue ? data[i].keyValue : data[i].value,
|
||
value: data[i].keyValue ? data[i].value : data[i].label
|
||
}
|
||
}));
|
||
that.initialGridAcceptedValuesOrder.push(data[i].keyValue ? data[i].keyValue : data[i].value);
|
||
}
|
||
}
|
||
if (that.formBooleanOptions.visible) {
|
||
that.formBooleanOptions.getField('trueOption').setValue(data[0].label);
|
||
that.formBooleanOptions.getField('falseOption').setValue(data[1].label);
|
||
}
|
||
};
|
||
PMVariables.prototype.validateAcceptedValues = function () {
|
||
var that = this,
|
||
dirty = false,
|
||
finalVal1,
|
||
finalVal2,
|
||
initVal1,
|
||
initVal2,
|
||
gridAcceptedValues,
|
||
finalGridAcceptedValuesOrder = [],
|
||
key;
|
||
if (that.initialFormAcceptedValuesValue && that.formAcceptedValues.getField('value').getValue() != '') {
|
||
finalVal1 = that.formAcceptedValues.getField('value').getValue();
|
||
finalVal2 = that.formAcceptedValues.getField('keyValue').getValue();
|
||
initVal1 = that.initialFormAcceptedValuesValue;
|
||
initVal2 = that.initialFormAcceptedValuesKeyValue;
|
||
if (finalVal1 !== initVal1 || finalVal2 !== initVal2) {
|
||
dirty = true;
|
||
}
|
||
} else if (that.formAcceptedValues.getField('value').getValue() !== '' || that.formAcceptedValues.getField('keyValue').getValue()) {
|
||
dirty = true;
|
||
}
|
||
|
||
if (that.initialGridAcceptedValuesOrder.length) {
|
||
gridAcceptedValues = that.gridAcceptedValues.getData();
|
||
for (key in gridAcceptedValues) {
|
||
if (gridAcceptedValues.hasOwnProperty(key)) {
|
||
finalGridAcceptedValuesOrder.push(gridAcceptedValues[key].keyValue);
|
||
}
|
||
}
|
||
if (JSON.stringify(finalGridAcceptedValuesOrder) !== JSON.stringify(that.initialGridAcceptedValuesOrder)) {
|
||
dirty = true;
|
||
}
|
||
}
|
||
this.validateAcceptedValuesFlag = dirty;
|
||
};
|
||
PMVariables.prototype.setVarOptionsControl = function (stringJsonData) {
|
||
if (!stringJsonData) {
|
||
return;
|
||
}
|
||
var that = this, i, data = stringJsonData;
|
||
if (typeof stringJsonData === 'string') {
|
||
data = JSON.parse(stringJsonData);
|
||
}
|
||
if (data.length > 0) {
|
||
that.formVariables.getField('var_options_control').setValue("['1']");
|
||
}
|
||
};
|
||
PMVariables.prototype.cancelAcceptedValue = function () {
|
||
var that = this;
|
||
that.editRow = null;
|
||
that.buttonFieldAdd.setValue('Add'.translate());
|
||
that.buttonFieldCancel.setVisible(false);
|
||
that.resetAcceptedValuesPanel();
|
||
};
|
||
PMVariables.prototype.isAcceptedValueAdded = function () {
|
||
var that = this, i, keyValue, data, exist, i, index, rowEditValue;
|
||
data = that.gridAcceptedValues.getData();
|
||
keyValue = that.formAcceptedValues.getField('keyValue').getValue() || "";
|
||
if (this.editingOptions) {
|
||
rowEditValue = this.editRow.getData()["keyValue"];
|
||
for (i = 0; i < data.length; i++) {
|
||
if (rowEditValue === data[i].keyValue) {
|
||
index = i;
|
||
break;
|
||
}
|
||
}
|
||
for (i = 0; i < data.length; i++) {
|
||
if (i !== index) {
|
||
if (keyValue === data[i].keyValue) {
|
||
exist = true;
|
||
}
|
||
}
|
||
}
|
||
if (exist) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
} else {
|
||
for (i = 0; i < data.length; i++) {
|
||
if (data[i].keyValue === keyValue) {
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
};
|
||
PMVariables.prototype.setInputDocuments = function (inp_doc_uid) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'input-documents',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
inputDocumentsData = response;
|
||
var arrayOptions = [];
|
||
arrayOptions[0] = {
|
||
label: "- Select an input document -".translate(),
|
||
value: "",
|
||
disabled: true,
|
||
selected: true
|
||
};
|
||
for (var i = 0; i <= inputDocumentsData.length - 1; i++) {
|
||
arrayOptions.push(
|
||
{
|
||
value: inputDocumentsData[i].inp_doc_uid,
|
||
label: inputDocumentsData[i].inp_doc_title
|
||
}
|
||
);
|
||
}
|
||
inp_doc_uid.setOptions(arrayOptions);
|
||
inp_doc_uid.setValue(arrayOptions[0].value);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
PMVariables.prototype.setInputDocumentsFromIDModule = function (inp_doc_uid, response) {
|
||
var inp_doc_uid_val = $("#inp_doc_uid").find("select:eq(0) option:selected").val();
|
||
var arrayOptions = [];
|
||
inputDocumentsData = response;
|
||
arrayOptions[0] = {
|
||
label: "- Select an input document -".translate(),
|
||
value: "",
|
||
disabled: true,
|
||
selected: true
|
||
};
|
||
for (var i = 0; i <= inputDocumentsData.length - 1; i++) {
|
||
arrayOptions.push(
|
||
{
|
||
value: inputDocumentsData[i].inp_doc_uid,
|
||
label: inputDocumentsData[i].inp_doc_title
|
||
}
|
||
);
|
||
}
|
||
inp_doc_uid.setOptions(arrayOptions);
|
||
inp_doc_uid.setValue(arrayOptions[0].value);
|
||
if (inp_doc_uid_val) {
|
||
inp_doc_uid.setValue(inp_doc_uid_val);
|
||
}
|
||
};
|
||
PMVariables.prototype.isWindowActive = function () {
|
||
if ($("#formVariables").is(":visible")) {
|
||
return true;
|
||
}
|
||
return false;
|
||
};
|
||
/**
|
||
* Reset the fields from the form's boolean panel.
|
||
* @returns {PMVariables}
|
||
*/
|
||
PMVariables.prototype.resetBooleanPanel = function () {
|
||
if (this.formBooleanOptions) {
|
||
this.formBooleanOptions.getItems("fields").forEach(function (i) {
|
||
i.setValue("");
|
||
});
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* Disable the fields from the form's boolean panel.
|
||
* @returns {PMVariables}
|
||
*/
|
||
PMVariables.prototype.disableBooleanPanel = function () {
|
||
if (this.formBooleanOptions) {
|
||
this.formBooleanOptions.setVisible(false)
|
||
.getItems("fields").forEach(function (i) {
|
||
i.disable();
|
||
});
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* Enable the fields from the form's boolean panel.
|
||
* @returns {PMVariables}
|
||
*/
|
||
PMVariables.prototype.enableBooleanPanel = function () {
|
||
if (this.formBooleanOptions) {
|
||
this.formBooleanOptions.setVisible(true)
|
||
.getItems("fields").forEach(function (i) {
|
||
i.enable();
|
||
});
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* Reset the fields from the form's Accepted Values panel.
|
||
* @returns {PMVariables}
|
||
*/
|
||
PMVariables.prototype.resetAcceptedValuesPanel = function () {
|
||
if (this.formAcceptedValues) {
|
||
this.formAcceptedValues.getItems().forEach(function (i) {
|
||
i.setValue("");
|
||
});
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* Enable the fields from the form's Accepted Values panel.
|
||
* @returns {PMVariables}
|
||
*/
|
||
PMVariables.prototype.enableAcceptedValuesPanel = function () {
|
||
if (this.formAcceptedValues) {
|
||
this.formAcceptedValues.setVisible(true)
|
||
.getItems('fields').forEach(function (i) {
|
||
i.enable("");
|
||
});
|
||
}
|
||
return this;
|
||
};
|
||
/**
|
||
* Disable the fields from the form's Accepted Values panel.
|
||
* @returns {PMVariables}
|
||
*/
|
||
PMVariables.prototype.disableAcceptedValuesPanel = function () {
|
||
if (this.formAcceptedValues) {
|
||
this.formAcceptedValues.setVisible(false)
|
||
.getItems('fields').forEach(function (i) {
|
||
i.disable("");
|
||
});
|
||
}
|
||
return this;
|
||
};
|
||
PMDesigner.variables = function () {
|
||
var pmvariables = new PMVariables();
|
||
pmvariables.load();
|
||
};
|
||
PMDesigner.variables.create = function () {
|
||
var pmvariables = new PMVariables();
|
||
pmvariables.showForm();
|
||
pmvariables.load();
|
||
};
|
||
|
||
RowVariableCondition = function () {
|
||
PMUI.form.FormPanel.call(this, {
|
||
layout: 'hbox'
|
||
});
|
||
RowVariableCondition.prototype.init.call(this);
|
||
};
|
||
RowVariableCondition.prototype = new PMUI.form.FormPanel();
|
||
RowVariableCondition.prototype.createHTML = function () {
|
||
var items;
|
||
PMUI.form.FormPanel.prototype.createHTML.call(this);
|
||
items = this.getItems();
|
||
items[0].dom.labelTextContainer.style.display = 'none';
|
||
items[1].dom.labelTextContainer.style.display = 'none';
|
||
items[2].dom.labelTextContainer.style.display = 'none';
|
||
items[2].style.addProperties({display: 'none'});
|
||
items[2].controls[0].button.setButtonType('error');
|
||
return this.html;
|
||
};
|
||
RowVariableCondition.prototype.init = function () {
|
||
var that = this,
|
||
typeData,
|
||
field,
|
||
remove;
|
||
field = new PMUI.field.TextField({
|
||
id: 'idField',
|
||
name: '',
|
||
required: true,
|
||
controlsWidth: 425,
|
||
proportion: 2.1,
|
||
labelVisible: false
|
||
});
|
||
typeData = new PMUI.field.DropDownListField({
|
||
id: 'idTypeData',
|
||
name: '',
|
||
valueType: 'string',
|
||
value: '',
|
||
readOnly: true,
|
||
controlsWidth: 200,
|
||
labelVisible: false,
|
||
options: [{
|
||
value: 'integer',
|
||
label: 'Integer'.translate()
|
||
}, {
|
||
value: 'string',
|
||
label: 'String'.translate()
|
||
}, {
|
||
value: 'float',
|
||
label: 'Float'.translate()
|
||
}, {
|
||
value: 'boolean',
|
||
label: 'Boolean'.translate()
|
||
}, {
|
||
value: 'date',
|
||
label: 'Date'.translate()
|
||
}, {
|
||
value: 'datetime',
|
||
label: 'Datetime'.translate()
|
||
}
|
||
]
|
||
});
|
||
remove = new PMUI.field.ButtonField({
|
||
id: 'idRemove',
|
||
value: 'Delete'.translate(),
|
||
labelVisible: false,
|
||
handler: function (e, a) {
|
||
that.getParent().removeItem(that);
|
||
},
|
||
name: 'delete',
|
||
controlsWidth: 60
|
||
});
|
||
that.addItem(field);
|
||
that.addItem(typeData);
|
||
that.addItem(remove);
|
||
};
|
||
|
||
PropertiesReceiveMessage = function (menuOption) {
|
||
this.variables = [];
|
||
this.onApply = new Function();
|
||
this.onCancel = new Function();
|
||
this.menuOption = menuOption;
|
||
Mafe.Window.call(this);
|
||
PropertiesReceiveMessage.prototype.init.call(this);
|
||
};
|
||
PropertiesReceiveMessage.prototype = new Mafe.Window();
|
||
PropertiesReceiveMessage.prototype.init = function () {
|
||
var that = this;
|
||
that.setTitle(that.menuOption.getMenuTargetElement().evn_name);
|
||
that.setButtons([
|
||
new PMUI.ui.Button({
|
||
id: 'btnClose',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
height: 31,
|
||
handler: function () {
|
||
that.close();
|
||
that.onCancel();
|
||
}
|
||
}),
|
||
new PMUI.ui.Button({
|
||
id: 'windowDynaformInformationSaveOpen',
|
||
text: 'Apply'.translate(),
|
||
buttonType: 'success',
|
||
height: 31,
|
||
handler: function () {
|
||
that.onApply();
|
||
}
|
||
})
|
||
]);
|
||
that.buttonAdd = new PMUI.ui.Button({
|
||
text: 'Add Variable'.translate(),
|
||
buttonType: 'success',
|
||
height: 31,
|
||
style: {cssProperties: {marginLeft: '50px', marginTop: '10px'}},
|
||
handler: function () {
|
||
that.addVariable();
|
||
}
|
||
});
|
||
that.form = new Mafe.Form({
|
||
title: that.menuOption.getMenuTargetElement().evn_name,
|
||
width: DEFAULT_WINDOW_WIDTH - 60,
|
||
style: {cssProperties: {'margin-left': '35px'}}
|
||
});
|
||
that.conditionForm = new Mafe.Form({
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 60,
|
||
style: {cssProperties: {'margin-left': '35px'}},
|
||
items: [{
|
||
label: 'Condition',
|
||
labelPosition: 'top',
|
||
pmType: 'textarea',
|
||
rows: 100,
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
}
|
||
]
|
||
});
|
||
|
||
that.addItem(that.buttonAdd);
|
||
that.addItem(that.form);
|
||
that.addItem(that.conditionForm);
|
||
|
||
that.addVariable();
|
||
};
|
||
PropertiesReceiveMessage.prototype.addVariable = function () {
|
||
var that = this, a, i;
|
||
a = new RowVariableCondition(this.variables);
|
||
that.form.addItem(a);
|
||
//force padding
|
||
for (i = 0; i < that.form.getItems().length; i += 1) {
|
||
that.form.getItems()[i].style.addProperties({'padding': 'initial'});
|
||
}
|
||
};
|
||
|
||
EventMessagesGrid = function () {
|
||
this.onCreate = new Function();
|
||
this.onEdit = new Function();
|
||
this.onDel = new Function();
|
||
Mafe.Grid.call(this);
|
||
EventMessagesGrid.prototype.init.call(this);
|
||
};
|
||
EventMessagesGrid.prototype = new Mafe.Grid();
|
||
EventMessagesGrid.prototype.createHTML = function () {
|
||
Mafe.Grid.prototype.createHTML.call(this);
|
||
this.dom.toolbar.appendChild(this.buttonCreate.getHTML());
|
||
return this.html;
|
||
};
|
||
EventMessagesGrid.prototype.init = function () {
|
||
var that = this;
|
||
that.buttonCreate = new PMUI.ui.Button({
|
||
id: 'idButtonEventMessagesGrid',
|
||
text: 'Create'.translate(),
|
||
height: '36px',
|
||
width: 100,
|
||
style: {cssClasses: ['mafe-button-create']},
|
||
handler: function (event) {
|
||
that.onCreate(event);
|
||
}
|
||
});
|
||
that.buttonCreate.defineEvents();
|
||
that.setID('idEventMessagesGrid');
|
||
that.setColumns([{
|
||
id: '',
|
||
title: 'Nombre',
|
||
sortable: true,
|
||
width: '460px',
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
columnData: 'mes_title'
|
||
}, {
|
||
id: 'dynaformGridPanelEdit',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonStyle: {cssClasses: ['mafe-button-edit']},
|
||
buttonLabel: function (row, data) {
|
||
return 'Edit'.translate();
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.onEdit(row, grid);
|
||
}
|
||
}, {
|
||
id: 'dynaformGridPanelDelete',
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonStyle: {cssClasses: ['mafe-button-delete']},
|
||
buttonLabel: function (row, data) {
|
||
return 'Delete'.translate();
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.onDel(row, grid);
|
||
}
|
||
}
|
||
]);
|
||
that.load();
|
||
};
|
||
EventMessagesGrid.prototype.show = function () {
|
||
|
||
};
|
||
EventMessagesGrid.prototype.create = function () {
|
||
|
||
};
|
||
EventMessagesGrid.prototype.load = function () {
|
||
var that = this,
|
||
dt = [
|
||
{mes_title: 'message1-1'},
|
||
{mes_title: 'message1-2'},
|
||
{mes_title: 'message1-3'},
|
||
{mes_title: 'message1-4'}
|
||
];
|
||
that.setDataItems(dt);
|
||
};
|
||
|
||
EventMessagesForm = function () {
|
||
Mafe.Form.call(this);
|
||
EventMessagesForm.prototype.init.call(this);
|
||
};
|
||
EventMessagesForm.prototype = new Mafe.Form();
|
||
EventMessagesForm.prototype.init = function () {
|
||
var that = this;
|
||
that.setID('idEventMessagesForm');
|
||
that.setItems({
|
||
id: '',
|
||
pmType: 'text',
|
||
label: 'Name'.translate(),
|
||
value: '',
|
||
maxLength: 100,
|
||
placeholder: '',
|
||
name: '',
|
||
required: true,
|
||
controlsWidth: 300
|
||
});
|
||
that.buttons = [
|
||
new PMUI.ui.Button({
|
||
id: 'btnClose',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
height: 31,
|
||
handler: function () {
|
||
that.onCancel();
|
||
}
|
||
}),
|
||
new PMUI.ui.Button({
|
||
id: 'windowDynaformPmtableSave',
|
||
text: 'Save'.translate(),
|
||
buttonType: 'success',
|
||
height: 31,
|
||
handler: function () {
|
||
that.onSave();
|
||
}
|
||
})
|
||
];
|
||
};
|
||
EventMessagesForm.prototype.getButtons = function () {
|
||
return this.buttons;
|
||
};
|
||
|
||
EventMessages = function () {
|
||
Mafe.Window.call(this);
|
||
|
||
this.list = new EventMessagesGrid();
|
||
this.form = new EventMessagesForm();
|
||
|
||
EventMessages.prototype.init.call(this);
|
||
};
|
||
EventMessages.prototype = new Mafe.Window();
|
||
EventMessages.prototype.init = function () {
|
||
var that = this;
|
||
that.list.onCreate = function () {
|
||
that.resetView();
|
||
that.form.setVisible(true);
|
||
};
|
||
that.setTitle("Event Messages");
|
||
that.addItem(that.list);
|
||
};
|
||
EventMessages.prototype.showForm = function () {
|
||
this.list.show();
|
||
};
|
||
|
||
PMDesigner.eventMessages = function () {
|
||
var a = new EventMessages();
|
||
a.open();
|
||
};
|
||
PMDesigner.eventMessages.create = function () {
|
||
};
|
||
|
||
var UserPicker = function (options) {
|
||
this.relatedField = null;
|
||
this.processId = null;
|
||
this.workspace = null;
|
||
this.window = null;
|
||
this.currentVariable = {};
|
||
this.pageSize = 10;
|
||
UserPicker.prototype.init.call(this, options);
|
||
};
|
||
|
||
UserPicker.prototype.type = 'UserPicker';
|
||
|
||
UserPicker.prototype.family = 'UserPicker';
|
||
|
||
UserPicker.prototype.init = function (options) {
|
||
var defaults = {
|
||
relatedField: null,
|
||
processId: PMDesigner.project.projectId,
|
||
workspace: WORKSPACE
|
||
};
|
||
|
||
jQuery.extend(true, defaults, options);
|
||
|
||
this.setRelatedField(defaults.relatedField)
|
||
.setProcessId(defaults.processId)
|
||
.setWorkspace(defaults.workspace);
|
||
};
|
||
|
||
UserPicker.prototype.setRelatedField = function (field) {
|
||
if (field instanceof PMUI.form.Field) {
|
||
this.relatedField = field;
|
||
}
|
||
return this;
|
||
};
|
||
|
||
UserPicker.prototype.setProcessId = function (process) {
|
||
this.processId = process;
|
||
return this;
|
||
};
|
||
|
||
UserPicker.prototype.setWorkspace = function (workspace) {
|
||
this.workspace = workspace;
|
||
return this;
|
||
};
|
||
|
||
UserPicker.prototype.open = function (callback) {
|
||
var w, rc, fieldC, dataGrid, panel, textField, that = this, button, panelFilter;
|
||
button = new PMUI.ui.Button({
|
||
id: 'insertUser',
|
||
text: 'Insert User'.translate(),
|
||
handler: function () {
|
||
if (callback && callback.success && typeof callback.success === 'function') {
|
||
callback.success.call(that, that.currentVariable);
|
||
}
|
||
that.close();
|
||
},
|
||
disabled: true
|
||
});
|
||
|
||
textField = new PMUI.field.TextField({
|
||
id: 'textFieldSearch',
|
||
label: '',
|
||
placeholder: 'Search ...'.translate()
|
||
});
|
||
|
||
w = new PMUI.ui.Window({
|
||
id: 'processVariables',
|
||
title: 'Process Users'.translate(),
|
||
width: 480,
|
||
height: 420,
|
||
closable: true,
|
||
modal: true,
|
||
buttons: [
|
||
button
|
||
],
|
||
buttonsPosition: 'center'
|
||
});
|
||
|
||
textField = new PMUI.field.TextField({
|
||
id: 'textFieldSearch',
|
||
label: '',
|
||
placeholder: 'Search ...'.translate(),
|
||
width: 150
|
||
});
|
||
|
||
dataGrid = new PMUI.grid.GridPanel({
|
||
id: 'gridPanel',
|
||
selectable: true,
|
||
pageSize: this.pageSize,
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [
|
||
{
|
||
id: 'gridPanelUserName',
|
||
title: 'User Name'.translate(),
|
||
columnData: 'usr_username',
|
||
width: 150,
|
||
sortable: true,
|
||
alignmentCell: 'left'
|
||
},
|
||
{
|
||
id: 'gridPanelRole',
|
||
title: 'Role'.translate(),
|
||
columnData: 'usr_role',
|
||
width: 230,
|
||
sortable: false,
|
||
alignmentCell: 'left'
|
||
}
|
||
],
|
||
onRowClick: function (row, data) {
|
||
button.enable();
|
||
that.currentVariable.username = data.usr_username;
|
||
that.currentVariable.uid = data.usr_uid;
|
||
}
|
||
|
||
});
|
||
|
||
panelFilter = new PMUI.core.Panel({
|
||
id: 'panelFilter',
|
||
layout: 'vbox',
|
||
items: [/*fieldC,*/ textField]
|
||
});
|
||
|
||
panel = new PMUI.core.Panel({
|
||
id: 'paneldataGrid',
|
||
layout: 'vbox',
|
||
items: [panelFilter, dataGrid]
|
||
});
|
||
|
||
rc = new PMRestClient({
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
console.log(response);
|
||
that.window = w;
|
||
dataGrid.setDataItems(response);
|
||
w.open();
|
||
w.showFooter();
|
||
w.addItem(panel);
|
||
panelFilter.setWidth(430);
|
||
textField.controls[0].onKeyUp = function () {
|
||
console.log(textField.controls[0].html.value);
|
||
dataGrid.filter(textField.controls[0].html.value);
|
||
};
|
||
dataGrid.dom.toolbar.style.display = 'none';
|
||
textField.dom.labelTextContainer.innerHTML = '';
|
||
textField.dom.labelTextContainer.style.marginTop = 5;
|
||
panel.style.addProperties({'padding-left': 20});
|
||
textField.dom.labelTextContainer.style.display = 'none';
|
||
textField.controls[0].setWidth(200);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
rc.setBaseEndPoint('users').executeRestClient();
|
||
};
|
||
|
||
UserPicker.prototype.close = function () {
|
||
if (this.window) {
|
||
this.window.close();
|
||
this.window = null;
|
||
}
|
||
};
|
||
|
||
var CriteriaUserField = function (options) {
|
||
this.renderType = (options && options.renderType) || "text";
|
||
PMUI.field.TextField.call(this, options);
|
||
this.process = null;
|
||
this.workspace = null;
|
||
this.buttonHTML = null;
|
||
this.rows = options.rows;
|
||
this.user_uid = null;
|
||
CriteriaUserField.prototype.init.call(this, options);
|
||
};
|
||
|
||
CriteriaUserField.prototype = new PMUI.field.TextField();
|
||
|
||
CriteriaUserField.prototype.setProcess = function (process) {
|
||
this.process = process;
|
||
return this;
|
||
};
|
||
|
||
CriteriaUserField.prototype.setWorkspace = function (workspace) {
|
||
this.workspace = workspace;
|
||
return this;
|
||
};
|
||
|
||
CriteriaUserField.prototype.init = function (options) {
|
||
var defaults = {
|
||
process: PMDesigner.project.projectId,
|
||
workspace: WORKSPACE
|
||
};
|
||
jQuery.extend(true, defaults, options);
|
||
this.setProcess(defaults.process)
|
||
.setWorkspace(defaults.workspace);
|
||
};
|
||
|
||
CriteriaUserField.prototype.createVariablePicker = function () {
|
||
var vp = new UserPicker({
|
||
relatedField: this,
|
||
processId: this.process
|
||
});
|
||
return vp;
|
||
};
|
||
|
||
CriteriaUserField.prototype.setControls = function () {
|
||
if (this.controls.length) {
|
||
return this;
|
||
}
|
||
if (this.renderType === 'text') {
|
||
this.controls.push(new PMUI.control.TextControl());
|
||
} else {
|
||
this.controls.push(new PMUI.control.TextAreaControl({style: {cssProperties: {resize: 'vertical'}}}));
|
||
}
|
||
return this;
|
||
};
|
||
|
||
CriteriaUserField.prototype.createCallBack = function () {
|
||
var that = this, oldValue, newValue, init = 0;
|
||
return {
|
||
success: function (variable) {
|
||
init = that.controls[0].html.selectionStart;
|
||
prevText = that.controls[0].html.value.substr(0, init);
|
||
lastText = that.controls[0].html.value.substr(that.controls[0].html.selectionEnd, that.controls[0].html.value.length);
|
||
newValue = variable.username;
|
||
|
||
that.setValue(newValue);
|
||
that.user_uid = variable.uid;
|
||
that.controls[0].html.selectionEnd = init + variable.username.length;
|
||
}
|
||
};
|
||
};
|
||
|
||
CriteriaUserField.prototype.createHTML = function () {
|
||
var button, that = this;
|
||
PMUI.field.TextField.prototype.createHTML.call(this);
|
||
|
||
button = new PMUI.ui.Button({
|
||
id: 'buttonCriteriaUserField',
|
||
text: '...',
|
||
handler: function () {
|
||
that.createVariablePicker().open(that.createCallBack());
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
background: '#2d3e50',
|
||
fontSize: 18,
|
||
paddingLeft: '15px',
|
||
paddingRight: '15px',
|
||
borderRadius: '4px',
|
||
verticalAlign: 'top'
|
||
}
|
||
}
|
||
});
|
||
|
||
this.buttonHTML = button;
|
||
$(this.helper.html).before(button.getHTML())
|
||
this.buttonHTML.style.addProperties({"margin-left": "10px"});
|
||
this.buttonHTML.html.tabIndex = -1;
|
||
|
||
if (this.rows != null)
|
||
this.controls[0].setHeight(this.rows);
|
||
button.defineEvents();
|
||
|
||
return this.html;
|
||
};
|
||
|
||
// Overwrite original init function for FormItemFactory
|
||
PMUI.form.FormItemFactory.prototype.init = function () {
|
||
var defaults = {
|
||
products: {
|
||
"criteria": CriteriaUserField,
|
||
"field": PMUI.form.Field,
|
||
"panel": PMUI.form.FormPanel,
|
||
"text": PMUI.field.TextField,
|
||
"password": PMUI.field.PasswordField,
|
||
"dropdown": PMUI.field.DropDownListField,
|
||
"radio": PMUI.field.RadioButtonGroupField,
|
||
"checkbox": PMUI.field.CheckBoxGroupField,
|
||
"textarea": PMUI.field.TextAreaField,
|
||
"datetime": PMUI.field.DateTimeField,
|
||
"optionsSelector": PMUI.field.OptionsSelectorField,
|
||
"buttonField": PMUI.field.ButtonField,
|
||
"annotation": PMUI.field.TextAnnotationField
|
||
},
|
||
defaultProduct: "panel"
|
||
};
|
||
this.setProducts(defaults.products)
|
||
.setDefaultProduct(defaults.defaultProduct);
|
||
};
|
||
|
||
/**
|
||
* Class representing a Web Entry
|
||
* @param relatedShape
|
||
* @constructor
|
||
*/
|
||
var WebEntry = function (relatedShape) {
|
||
this.relatedShape = null;
|
||
this.groupType = null;
|
||
this.groupLabel = null;
|
||
this.stepsType = null;
|
||
this.actUid = null;
|
||
this.evenUid = null;
|
||
this.weeUid = null;
|
||
this.stepsAssigned = null;
|
||
this.elementAccordionOpen = null;
|
||
this.configWebEntry = null;
|
||
this.isNewWebEntry = null;
|
||
this.windowWebEntry = null;
|
||
this.windowAlternative = null;
|
||
this.tabForm = null;
|
||
this.tabProperties = null;
|
||
this.tabLink = null;
|
||
this.confirmWindow = null;
|
||
this.tabPanelWindow = null;
|
||
this.suggestUser = null;
|
||
this.stepsAssignTree = null;
|
||
this.stepsAssignAccordion = null;
|
||
this.labelsPanel = null;
|
||
this.userGuest = {};
|
||
WebEntry.prototype.initialize.call(this, relatedShape);
|
||
};
|
||
/**
|
||
* A module representing a Web Entry
|
||
**/
|
||
WebEntry.prototype = {
|
||
/**
|
||
* Sets the actUid
|
||
* @param {string} actUid
|
||
*/
|
||
setActUid: function (actUid) {
|
||
this.actUid = actUid;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the evenUid
|
||
* @param {string} evenUid
|
||
*/
|
||
setEvnUid: function (evenUid) {
|
||
this.evenUid = evenUid;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the weeUid
|
||
* @param {string} weeUid
|
||
*/
|
||
setWeeUid: function (weeUid) {
|
||
this.weeUid = weeUid;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the configWebEntry
|
||
* @param {object} configWebEntry
|
||
*/
|
||
setConfigWebEntry: function (configWebEntry) {
|
||
this.configWebEntry = configWebEntry;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the isNewWebEntry
|
||
* @param {boolean} isNewWebEntry
|
||
*/
|
||
setIsNewWebEntry: function (isNewWebEntry) {
|
||
this.isNewWebEntry = isNewWebEntry;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the windowWebEntry
|
||
* @param {object} windowWebEntry
|
||
*/
|
||
setWindowWebEntry: function (windowWebEntry) {
|
||
this.windowWebEntry = windowWebEntry;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the windowAlternative
|
||
* @param {object} windowAlternative
|
||
*/
|
||
setWindowAlternative: function (windowAlternative) {
|
||
this.windowAlternative = windowAlternative;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the relatedShape
|
||
* @param {object} relatedShape
|
||
*/
|
||
setRelatedShape: function (relatedShape) {
|
||
this.relatedShape = relatedShape;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the tabForm
|
||
* @param {object} tabForm
|
||
*/
|
||
setTabForm: function (tabForm) {
|
||
this.tabForm = tabForm;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the tabProperties
|
||
* @param {object} tabProperties
|
||
*/
|
||
setTabProperty: function (tabProperties) {
|
||
this.tabProperties = tabProperties;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the tabLink
|
||
* @param {object} tabLink
|
||
*/
|
||
setTabLink: function (tabLink) {
|
||
this.tabLink = tabLink;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the confirmWindow
|
||
* @param {object} confirmWindow
|
||
*/
|
||
setConfirmWin: function (confirmWindow) {
|
||
this.confirmWindow = confirmWindow;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the tabPanelWindow
|
||
* @param {object} tabPanelWindow
|
||
*/
|
||
setTabPanelWindow: function (tabPanelWindow) {
|
||
this.tabPanelWindow = tabPanelWindow;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the suggestUser
|
||
* @param {object} suggestUser
|
||
*/
|
||
setSuggestUser: function (suggestUser) {
|
||
this.suggestUser = suggestUser;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the stepsAssignTree
|
||
* @param {object} stepsAssignTree
|
||
*/
|
||
setStepsTree: function (stepsAssignTree) {
|
||
this.stepsAssignTree = stepsAssignTree;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the stepsAssignAccordion
|
||
* @param {object} stepsAssignAccordion
|
||
*/
|
||
setStepsAccordion: function (stepsAssignAccordion) {
|
||
this.stepsAssignAccordion = stepsAssignAccordion;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the labelsPanel
|
||
* @param {object} labelsPanel
|
||
*/
|
||
setLabelPanel: function (labelsPanel) {
|
||
this.labelsPanel = labelsPanel;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Sets the userGuest
|
||
* @param userGuest
|
||
*/
|
||
setUserGuest: function (userGuest) {
|
||
this.userGuest = userGuest;
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Get the userGuest
|
||
* @returns {Object} userGuest
|
||
*/
|
||
getUserGuest: function () {
|
||
return this.userGuest || {};
|
||
},
|
||
|
||
/**
|
||
* Get the actUid value
|
||
* @returns {null|*|string} The actUid value
|
||
*/
|
||
getActUid: function () {
|
||
return this.actUid || "";
|
||
},
|
||
|
||
/**
|
||
* Get the isNewWebEntry value
|
||
* @returns {null|*|boolean} The isNewWebEntry value
|
||
*/
|
||
getRelatedShape: function () {
|
||
return this.relatedShape || [];
|
||
},
|
||
|
||
/**
|
||
* Get the evenUid value
|
||
* @returns {null|*|string} The evenUid value
|
||
*/
|
||
getEvnUid: function () {
|
||
return this.evenUid || "";
|
||
},
|
||
|
||
/**
|
||
* Get the weeUid value
|
||
* @returns {null|*|string} The weeUid value
|
||
*/
|
||
getWeeUid: function () {
|
||
return this.weeUid || "";
|
||
},
|
||
|
||
/**
|
||
* Get the configWebEntry value
|
||
* @returns {*|null|Array} The configWebEntry value
|
||
*/
|
||
getConfigWebEntry: function () {
|
||
return this.configWebEntry || [];
|
||
},
|
||
|
||
/**
|
||
* Get the isNewWebEntry value
|
||
* @returns {null|*|boolean} The isNewWebEntry value
|
||
*/
|
||
getIsNewWebEntry: function () {
|
||
return this.isNewWebEntry || false;
|
||
},
|
||
|
||
/**
|
||
* Get the windowWebEntry value
|
||
* @returns {null|*} The windowWebEntry value
|
||
*/
|
||
getWindowWebEntry: function () {
|
||
return this.windowWebEntry || null;
|
||
},
|
||
|
||
/**
|
||
* Get the windowAlternative value
|
||
* @returns {*|null} The windowAlternative value
|
||
*/
|
||
getWindowAlternative: function () {
|
||
return this.windowAlternative || null;
|
||
},
|
||
|
||
/**
|
||
* Get the tabForm value
|
||
* @returns {*|null} The tabForm value
|
||
*/
|
||
getTabForm: function () {
|
||
return this.tabForm || null;
|
||
},
|
||
|
||
/**
|
||
* Get the tabProperties value
|
||
* @returns {null|*} The tabProperties value
|
||
*/
|
||
getTabProperty: function () {
|
||
return this.tabProperties || null;
|
||
},
|
||
|
||
/**
|
||
* Get the tablink value
|
||
* @returns {null|*} The tablink value
|
||
*/
|
||
getTabLink: function () {
|
||
return this.tabLink || null;
|
||
},
|
||
|
||
/**
|
||
* Get the confirmWindow value
|
||
* @returns {null|*} The confirmWindow value
|
||
*/
|
||
getConfirmWin: function () {
|
||
return this.confirmWindow || null;
|
||
},
|
||
|
||
/**
|
||
* Get the tabPanelWindow
|
||
* @returns {*|null}
|
||
*/
|
||
getTabPanelWindow: function () {
|
||
return this.tabPanelWindow || null;
|
||
},
|
||
|
||
/**
|
||
* get the suggestUser value
|
||
* @returns {*|null} The suggestUser value
|
||
*/
|
||
getSuggestUser: function () {
|
||
return this.suggestUser || null;
|
||
},
|
||
|
||
/**
|
||
* Sets the stepsAssignTree
|
||
* @returns {*|null}
|
||
*/
|
||
getStepsTree: function () {
|
||
return this.stepsAssignTree || null;
|
||
},
|
||
|
||
/**
|
||
* Get the stepsAssignAccordion value
|
||
* @returns {*|null} The stepsAssignAccordion value
|
||
*/
|
||
getStepsAccordion: function () {
|
||
return this.stepsAssignAccordion || null;
|
||
},
|
||
|
||
/**
|
||
* get the labelsPanel value
|
||
* @returns {null|*} The labelsPanel value
|
||
*/
|
||
getLabelPanel: function () {
|
||
return this.labelsPanel || null;
|
||
},
|
||
|
||
/**
|
||
* initialize App
|
||
* @param relatedShape
|
||
*/
|
||
initialize: function (relatedShape) {
|
||
this.groupType = [
|
||
'DYNAFORM', 'INPUT_DOCUMENT',
|
||
'OUTPUT_DOCUMENT', 'EXTERNAL'
|
||
];
|
||
this.groupLabel = [
|
||
'Dynaform (s)'.translate(), 'Input Document (s)'.translate(),
|
||
'OutPut Document (s)'.translate(), 'External (s)'.translate()
|
||
];
|
||
this.stepsType = {
|
||
'DYNAFORM': 'Dynaform'.translate(),
|
||
'INPUT_DOCUMENT': 'Input Document'.translate(),
|
||
'OUTPUT_DOCUMENT': 'Output Document'.translate(),
|
||
'EXTERNAL': 'External'.translate()
|
||
};
|
||
|
||
this.setRelatedShape(relatedShape)
|
||
.setEvnUid(relatedShape.evn_uid);
|
||
|
||
if (this.getRelatedShape().getPorts().getFirst()) {
|
||
this.setActUid(this.getRelatedShape().getPorts().getFirst().getConnection().getDestPort().getParent()
|
||
.act_uid);
|
||
}
|
||
if (__env.USER_GUEST) {
|
||
$.extend(true, this.userGuest, __env.USER_GUEST);
|
||
}
|
||
this.stepsAssigned = new PMUI.util.ArrayList();
|
||
this.elementAccordionOpen = new PMUI.util.ArrayList();
|
||
},
|
||
|
||
/**
|
||
* Render form
|
||
* @returns {WebEntry}
|
||
*/
|
||
render: function () {
|
||
this.getWindow().addItem(this.getTabPanel());
|
||
this.getWindow().open();
|
||
this.getWindow().showFooter();
|
||
this.initializeData();
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Populate Web Entry data
|
||
*/
|
||
initializeData: function () {
|
||
//Pupulate web entry data
|
||
this.getInstanceWebEntryData();
|
||
this.setWebEntryConfiguration();
|
||
this.initializeAccordionAndTreepanelData();
|
||
},
|
||
|
||
/**
|
||
* Populate accordion and treepanel data
|
||
*/
|
||
initializeAccordionAndTreepanelData: function () {
|
||
var that = this;
|
||
//clear global array stepsAssigned
|
||
this.stepsAssigned.clear();
|
||
//get accordion data
|
||
this.getAccordionData(
|
||
function (xhr, response) {
|
||
//populate data accordion tabForms
|
||
that.loadAccordionItems(response);
|
||
}, function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
//get getTreePanelData data
|
||
this.getTreePanelData(
|
||
function (xhr, response) {
|
||
//populate data treePanel tabForms
|
||
that.loadTreePanelData(response);
|
||
}, function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
this.addEventSortableInAccordionElements();
|
||
this.addEventSortableInTreePanelElements();
|
||
},
|
||
|
||
/**
|
||
* Get all dynaforms
|
||
* Execute restClient(GET/project/dynaforms)
|
||
* @param successCallback
|
||
* @param failureCallback
|
||
*/
|
||
getDynaforms: function (successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'dynaforms',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
}
|
||
}).executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Get users
|
||
* Execute restClient(GET/users/uid_usr)
|
||
* @param uidUser
|
||
* @param successCallback
|
||
* @param failureCallback
|
||
*/
|
||
getUserData: function (uidUser, successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'users/' + uidUser,
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
},
|
||
messageError: 'There are problems getting the Steps, please try again.'.translate()
|
||
}).setBaseEndPoint("").executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Get WebEntry Configuration
|
||
* Execute restClient(GET/web-entry-event/event/)
|
||
* Execute restClient(POST/web-entry-event/)
|
||
* @param successCallback
|
||
* @returns {Array}
|
||
*/
|
||
getWebEntryConfiguration: function (successCallback) {
|
||
var that = this,
|
||
restProxy = new PMRestClient({
|
||
endpoint: 'web-entry-event/event/' + that.getEvnUid(),
|
||
typeRequest: "get",
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(response, false);
|
||
that.initializeSomeVariables(response, false);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
restProxy = new PMRestClient({
|
||
endpoint: 'web-entry-event',
|
||
typeRequest: "post",
|
||
data: {
|
||
act_uid: that.getActUid(),
|
||
evn_uid: that.getEvnUid(),
|
||
wee_title: that.getEvnUid(),
|
||
we_type: "MULTIPLE",
|
||
we_authentication: "LOGIN_REQUIRED",
|
||
we_callback: "PROCESSMAKER",
|
||
we_callback_url: "",
|
||
we_show_in_new_case: "0",
|
||
usr_uid: that.getUserGuest().uid || ''
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(response, true);
|
||
that.initializeSomeVariables(response, true);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Update data Web Entry Configuration
|
||
* Execute restClient(PUT/web-entry-event/weeuid)
|
||
* @param data
|
||
* @param successCallback
|
||
* @param failureCallback
|
||
* @returns {PMRestClient}
|
||
*/
|
||
updateWebEntryConfiguration: function (data, successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
endpoint: 'web-entry-event/' + this.weeUid,
|
||
typeRequest: 'update',
|
||
data: data,
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
}
|
||
}).executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Get Accordion Data (Tab Forms)
|
||
* Execute restClient(GET/steps, GET/step/triggers)
|
||
* @returns {Array}
|
||
*/
|
||
getAccordionData: function (successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'activity/' + this.getConfigWebEntry().tas_uid + '/steps',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'activity/' + this.getConfigWebEntry().tas_uid + '/step/triggers',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
},
|
||
messageError: 'There are problems getting the Steps, please try again.'.translate()
|
||
}).executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Get TreePanel Data (TabForm)
|
||
* Execute restClient(GET/available-steps GET/triggers)
|
||
* @returns {Array}
|
||
*/
|
||
getTreePanelData: function (successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'activity/' + this.getConfigWebEntry().tas_uid + '/available-steps',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'triggers',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
}
|
||
}).executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Get steps Availables (TreePanel)
|
||
* Execute restClient(GET/available-steps)
|
||
* @param successCallback
|
||
* @param failureCallback
|
||
* @returns {Array}
|
||
*/
|
||
getStepAvailables: function (successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'activity/' + this.getConfigWebEntry().tas_uid + '/available-steps',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
}
|
||
}).executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Load Skin and Languages
|
||
* Execute restClient(GET/system/languages GET/system/skins)
|
||
* @returns {Array}
|
||
*/
|
||
getSkinLanguage: function (successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [
|
||
{
|
||
url: 'system/languages',
|
||
method: 'GET'
|
||
}, {
|
||
url: 'system/skins',
|
||
method: 'GET'
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
},
|
||
messageError: 'There are problems getting the Steps, please try again.'.translate()
|
||
}).setBaseEndPoint("").executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Delete the WebEntry configuration.
|
||
* @param successCallback
|
||
* @param failureCallback
|
||
*/
|
||
deleteWebEntryConfiguration: function (successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
endpoint: 'web-entry-event/' + this.weeUid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
}
|
||
}).executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Generate webEntry Link
|
||
* @param weeUid
|
||
* @param successCallback
|
||
* @param failureCallback
|
||
*/
|
||
generateLink: function (weeUid, successCallback, failureCallback) {
|
||
return new PMRestClient({
|
||
endpoint: 'web-entry-event/' + weeUid + '/generate-link',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
successCallback(xhr, response);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
failureCallback(xhr, response);
|
||
}
|
||
}).executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Creates an instance of the WebEntry class
|
||
* @returns {null}
|
||
*/
|
||
getInstanceWebEntryData: function () {
|
||
this.getWebEntryConfiguration(
|
||
function (webEntryEvent, isNew) {
|
||
if (isNew) {
|
||
webEntryEvent.we_type = 'MULTIPLE';
|
||
webEntryEvent.we_authentication = 'ANONYMOUS';
|
||
webEntryEvent.wee_url = '';
|
||
webEntryEvent.wee_title = '';
|
||
}
|
||
}
|
||
);
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Get Main Container Window
|
||
* @returns {PMUI.ui.Window}
|
||
*/
|
||
getWindow: function () {
|
||
if (this.getWindowWebEntry() === null) {
|
||
this.setWindowWebEntry(this.buildWindow());
|
||
}
|
||
return this.getWindowWebEntry();
|
||
},
|
||
|
||
/**
|
||
* Build Window Container
|
||
* @returns {PMUI.ui.Window}
|
||
*/
|
||
buildWindow: function () {
|
||
var that = this;
|
||
return new PMUI.ui.Window({
|
||
id: 'windowWebEntry',
|
||
title: 'Web Entry'.translate(),
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
footerAlign: 'right',
|
||
onBeforeClose: function () {
|
||
if (that.isNewWebEntry) {
|
||
that.deleteWebEntryConfiguration(
|
||
function () {
|
||
that.getWindow().close();
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
} else {
|
||
that.getWindow().close();
|
||
}
|
||
that.getWindow().close();
|
||
},
|
||
buttonPanelPosition: 'bottom',
|
||
buttonsPosition: 'right',
|
||
buttons: [
|
||
{
|
||
id: 'windowWebEntryButtonDelete',
|
||
text: 'Delete'.translate(),
|
||
handler: function () {
|
||
that.handlerDeleteWebEntry();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'windowWebEntryButtonCancel',
|
||
text: 'Cancel'.translate(),
|
||
handler: function () {
|
||
if (that.isNewWebEntry) {
|
||
that.deleteWebEntryConfiguration(
|
||
function () {
|
||
that.getWindow().close();
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
} else {
|
||
that.getWindow().close();
|
||
}
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'windowWebEntryButtonSave',
|
||
text: 'Save'.translate(),
|
||
handler: function (e) {
|
||
that.checkUserGuest('saveConfig');
|
||
},
|
||
buttonType: 'success'
|
||
}
|
||
]
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Return Second Window Container
|
||
* @returns {PMUI.ui.Window}
|
||
*/
|
||
getWindowAlternativeForm: function () {
|
||
if (this.getWindowAlternative() === null) {
|
||
this.setWindowAlternative(this.buildWindowAlternative());
|
||
}
|
||
return this.getWindowAlternative();
|
||
},
|
||
|
||
/**
|
||
* Build Second Window Container
|
||
* @returns {PMUI.ui.Window}
|
||
*/
|
||
buildWindowAlternative: function () {
|
||
return new PMUI.ui.Window({
|
||
visibleFooter: true,
|
||
title: 'Trigger'.translate(),
|
||
footerAlign: 'right',
|
||
footerItems: [{
|
||
text: "@@",
|
||
id: "secondaryWindow-criteria",
|
||
style: {
|
||
cssProperties: {
|
||
"background": "rgb(45, 62, 80)",
|
||
"border": "1px solid rgb(45, 62, 80)"
|
||
},
|
||
cssClasses: ["mafe-button-condition-trigger"]
|
||
}
|
||
}, {
|
||
id: 'secondaryWindow-cancel',
|
||
text: 'Cancel'.translate(),
|
||
buttonType: 'error',
|
||
height: 31,
|
||
style: {
|
||
cssClasses: ["mafe-button-condition-trigger"]
|
||
}
|
||
}, {
|
||
id: 'secondaryWindow-save',
|
||
text: 'Save'.translate(),
|
||
buttonType: 'success',
|
||
height: 31,
|
||
style: {
|
||
cssClasses: ["mafe-button-condition-trigger"]
|
||
}
|
||
}]
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Get TabPanel Container
|
||
* @returns {TabPanel}
|
||
*/
|
||
getTabPanel: function () {
|
||
if (this.getTabPanelWindow() === null) {
|
||
this.setTabPanelWindow(this.buildPanelWindow());
|
||
}
|
||
return this.getTabPanelWindow();
|
||
},
|
||
|
||
/**
|
||
* Build TabPanel (TabForms, TabProperties, TabLink)
|
||
* @returns {PMUI.panel.TabPanel}
|
||
*/
|
||
buildPanelWindow: function () {
|
||
return new PMUI.panel.TabPanel({
|
||
id: 'windowWebEntryTabPanel',
|
||
width: DEFAULT_WINDOW_WIDTH - 50,
|
||
items: [
|
||
{
|
||
id: 'tabForms',
|
||
title: 'Forms'.translate(),
|
||
panel: this.getTabForms()
|
||
},
|
||
{
|
||
id: 'tabProperties',
|
||
title: 'Properties'.translate(),
|
||
panel: this.getTabProperties()
|
||
},
|
||
{
|
||
id: 'tabLink',
|
||
title: 'Link'.translate(),
|
||
panel: this.getTabLinkForm()
|
||
}
|
||
],
|
||
style: {
|
||
cssProperties: {
|
||
'margin-left': '10px'
|
||
}
|
||
},
|
||
itemsPosition: {
|
||
position: 'left'
|
||
}
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Get Panel TabForms
|
||
* @returns {Panel}
|
||
*/
|
||
getTabForms: function () {
|
||
if (this.getTabForm() === null) {
|
||
this.setTabForm(this.buildTabForms());
|
||
}
|
||
return this.getTabForm();
|
||
},
|
||
|
||
/**
|
||
* Build Tab Forms
|
||
* @returns {PMUI.core.Panel}
|
||
*/
|
||
buildTabForms: function () {
|
||
var that = this,
|
||
singleDynaform,
|
||
stepsMainContainer;
|
||
|
||
singleDynaform = new PMUI.form.Form({
|
||
id: 'singleDynaform',
|
||
width: DEFAULT_WINDOW_WIDTH - 220,
|
||
height: 180,
|
||
name: 'singleDynaform',
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
id: 'multipleStepsRadio',
|
||
pmType: 'radio',
|
||
labelVisible: false,
|
||
value: '',
|
||
name: 'options',
|
||
required: false,
|
||
controlPositioning: 'vertical',
|
||
maxDirectionOptions: 4,
|
||
options: [
|
||
{
|
||
id: 'multipleSteps',
|
||
label: 'Multiple Steps'.translate(),
|
||
value: 'MULTIPLE'
|
||
}
|
||
],
|
||
labelWidth: '0%',
|
||
visible: false
|
||
}
|
||
]
|
||
});
|
||
|
||
stepsMainContainer = new PMUI.core.Panel({
|
||
id: 'stepsMainContainer',
|
||
layout: 'hbox',
|
||
width: DEFAULT_WINDOW_WIDTH - 220,
|
||
items: [
|
||
that.getStepsAssignTree(),
|
||
that.getStepsAssignAccordion()
|
||
]
|
||
});
|
||
|
||
return new PMUI.core.Panel({
|
||
id: 'mainContainer',
|
||
layout: 'vbox',
|
||
width: DEFAULT_WINDOW_WIDTH - 220,
|
||
items: [
|
||
singleDynaform,
|
||
that.getLabelsPanel(),
|
||
stepsMainContainer
|
||
]
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Get Panel TabProperties
|
||
* @returns {Panel}
|
||
*/
|
||
getTabProperties: function () {
|
||
if (this.getTabProperty() === null) {
|
||
this.setTabProperty(this.buildTabProperties());
|
||
}
|
||
return this.getTabProperty();
|
||
},
|
||
|
||
/**
|
||
* Build TabProperties
|
||
* @returns {PMUI.core.Panel}
|
||
*/
|
||
buildTabProperties: function () {
|
||
var that = this,
|
||
propertiesForm;
|
||
|
||
propertiesForm = new PMUI.form.Form({
|
||
id: 'idTabFormProperties',
|
||
width: DEFAULT_WINDOW_WIDTH - 220,
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
id: 'tabPropertiesWebEntryTitle',
|
||
pmType: 'text',
|
||
name: 'tabPropertiesWebEntryTitle',
|
||
valueType: 'string',
|
||
label: 'Web Entry Title'.translate(),
|
||
placeholder: 'Enter a title displayed on web entry window (if applies)'.translate(),
|
||
helper: 'Enter a title displayed on web entry window (if applies).'.translate(),
|
||
required: false,
|
||
controlsWidth: 458,
|
||
labelWidth: '23%'
|
||
},
|
||
{
|
||
id: 'tabPropRadioAuthentication',
|
||
pmType: 'radio',
|
||
labelVisible: true,
|
||
label: 'Authentication'.translate(),
|
||
value: 'ANONYMOUS',
|
||
name: 'authentication',
|
||
required: true,
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 4,
|
||
options: [
|
||
{
|
||
id: 'tabPropertiesOptionRadioAnonymous',
|
||
label: 'Anonymous'.translate(),
|
||
value: 'ANONYMOUS',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
that.anonimusProcedure(newVal, oldVal);
|
||
},
|
||
labelWidth: '23%'
|
||
},
|
||
{
|
||
id: 'tabPropertiesRequireUserLogin',
|
||
pmType: 'radio',
|
||
labelVisible: false,
|
||
value: 'LOGIN_REQUIRED',
|
||
required: false,
|
||
name: 'authentication',
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 4,
|
||
options: [
|
||
{
|
||
id: 'tabPropertiesRadioRequireUserLogin',
|
||
label: 'Require user login'.translate(),
|
||
value: 'LOGIN_REQUIRED',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
that.loginRequired(newVal, oldVal);
|
||
},
|
||
labelWidth: '23%'
|
||
},
|
||
{
|
||
id: 'tabPropertiesHideLoogedInformationBar',
|
||
pmType: 'checkbox',
|
||
name: 'tabPropertiesHideLoogedInformationBar',
|
||
labelVisible: false,
|
||
disabled: true,
|
||
options: [
|
||
{
|
||
id: 'hideLoogedInformationBar',
|
||
label: 'Hide Logged Information Bar'.translate(),
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
style: {
|
||
cssProperties: {
|
||
'padding-left': '50px'
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: 'tabPropertiesHideActiveSessionWarning',
|
||
pmType: 'checkbox',
|
||
name: 'tabPropertiesHideActiveSessionWarning',
|
||
labelVisible: false,
|
||
disabled: true,
|
||
helper: "By disabling this option, there's a security vulnerability if any other user has access to your web browser. It might impersonate your current session.".translate(),
|
||
options: [
|
||
{
|
||
id: 'hideActiveSessionWarning',
|
||
label: 'Hide Active Session Warning'.translate(),
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
style: {
|
||
cssProperties: {
|
||
'padding-top': '-10px',
|
||
'padding-left': '50px'
|
||
}
|
||
}
|
||
},
|
||
{
|
||
id: 'tabPropertiesRadioCallback',
|
||
pmType: 'radio',
|
||
labelVisible: true,
|
||
label: 'Callback Action'.translate(),
|
||
value: 'PROCESSMAKER',
|
||
required: true,
|
||
disabled: false,
|
||
controlPositioning: 'vertical',
|
||
labelPosition: 'left',
|
||
helper: 'Callback Action...'.translate(),
|
||
maxDirectionOptions: 4,
|
||
options: [
|
||
{
|
||
id: 'redirectPM',
|
||
label: 'Redirect to ProcessMaker predefined response page'.translate(),
|
||
value: 'PROCESSMAKER',
|
||
selected: true
|
||
},
|
||
{
|
||
id: 'redirectURL',
|
||
label: 'Redirect to custom URL'.translate(),
|
||
value: 'CUSTOM'
|
||
},
|
||
{
|
||
id: 'redirectCustom',
|
||
label: 'Redirect to custom URL and clear login info'.translate(),
|
||
value: 'CUSTOM_CLEAR'
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
that.callbackActionChange(newVal, oldVal);
|
||
|
||
},
|
||
labelWidth: '23%'
|
||
},
|
||
new CriteriaField({
|
||
id: 'criteriaFieldCustomUrl',
|
||
pmType: 'text',
|
||
name: 'criteriaFieldCustomUrl',
|
||
label: 'Custom URL'.translate(),
|
||
placeholder: 'Enter a valid URL to be redirected when entry will be completed'.translate(),
|
||
labelWidth: '23%',
|
||
controlsWidth: 455,
|
||
required: true,
|
||
disabled: true
|
||
}),
|
||
{
|
||
id: 'showInNewCase',
|
||
pmType: 'checkbox',
|
||
name: 'showInNewCase',
|
||
label: 'Show task in New Case'.translate(),
|
||
labelVisible: true,
|
||
options: [
|
||
{
|
||
id: 'showTaskInNewCase',
|
||
value: 'showCase',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newValue, oldValue) {
|
||
this.setValue(newValue);
|
||
}
|
||
}
|
||
]
|
||
});
|
||
|
||
$(propertiesForm.getItem('tabPropRadioAuthentication').getHTML())
|
||
.append($(that.getSuggestField().createHTML()));
|
||
|
||
return propertiesForm;
|
||
},
|
||
|
||
/**
|
||
* Get Panel TabLink
|
||
* @returns {Panel}
|
||
*/
|
||
getTabLinkForm: function () {
|
||
if (this.getTabLink() === null) {
|
||
this.setTabLink(this.buildTabLink());
|
||
}
|
||
return this.getTabLink();
|
||
},
|
||
|
||
/**
|
||
* Build TabLink
|
||
* @returns {PMUI.core.Panel}
|
||
*/
|
||
buildTabLink: function () {
|
||
var that = this,
|
||
tfromLink;
|
||
|
||
tfromLink = new PMUI.form.Form({
|
||
id: 'idTabFormLink',
|
||
width: DEFAULT_WINDOW_WIDTH - 220,
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
id: 'tabLinkRadioGeneration',
|
||
pmType: 'radio',
|
||
labelVisible: true,
|
||
label: 'Link Generation'.translate(),
|
||
value: 'DEFAULT',
|
||
name: 'options',
|
||
required: true,
|
||
controlPositioning: 'vertical',
|
||
labelPosition: 'left',
|
||
helper: 'Link Generation'.translate(),
|
||
controlsWidth: 485,
|
||
labelWidth: '24.5%',
|
||
maxDirectionOptions: 3,
|
||
options: [
|
||
{
|
||
id: 'generateLinkDefaultValues',
|
||
label: 'Generate link using workspace default values (skin, language)'.translate(),
|
||
value: 'DEFAULT',
|
||
selected: 'true'
|
||
},
|
||
{
|
||
id: 'advancedLinkGeneration',
|
||
label: 'Advanced link generation'.translate(),
|
||
value: 'ADVANCED'
|
||
}
|
||
],
|
||
onChange: function (newVal) {
|
||
that.linkGenerationOnChange(newVal);
|
||
},
|
||
labelWidth: '18%'
|
||
},
|
||
{
|
||
id: 'tabLinkDropdownSkin',
|
||
name: 'tabLinkDropdownSkin',
|
||
pmType: 'dropdown',
|
||
label: 'Skin'.translate(),
|
||
helper: 'Select a Skin.'.translate(),
|
||
required: true,
|
||
controlsWidth: 485,
|
||
labelWidth: '24.5%',
|
||
onChange: function () {
|
||
that.setLinkText(tfromLink, '');
|
||
},
|
||
options: [
|
||
{
|
||
label: 'Select a Skin'.translate(),
|
||
value: ''
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'tabLinkDropdownLanguage',
|
||
name: 'tabLinkDropdownLanguage',
|
||
pmType: 'dropdown',
|
||
label: 'Language'.translate(),
|
||
helper: 'Select a language.'.translate(),
|
||
required: true,
|
||
controlsWidth: 485,
|
||
labelWidth: '24.5%',
|
||
onChange: function () {
|
||
that.setLinkText(tfromLink, '');
|
||
},
|
||
options: [
|
||
{
|
||
label: 'Select a language'.translate(),
|
||
value: ''
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 'tablinkTextCustomDomain',
|
||
pmType: 'text',
|
||
name: 'tablinkTextCustomDomain',
|
||
valueType: 'string',
|
||
label: 'Custom Hostname'.translate(),
|
||
placeholder: 'https://example.com:8080'.translate(),
|
||
helper: 'Protocol and Hostname, port is optional.'.translate(),
|
||
required: true,
|
||
controlsWidth: 485,
|
||
labelWidth: "24.5%",
|
||
validators: [
|
||
{
|
||
pmType: "regexp",
|
||
criteria: /^(https?:\/\/)?(((\d{1,3}\.){3}\d{1,3})|(([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?))(:\d+)?$/i,
|
||
errorMessage: 'Enter a Protocol and Hostname valid value.'.translate()
|
||
}
|
||
],
|
||
onChange: function () {
|
||
that.setLinkText(tfromLink, '');
|
||
}
|
||
},
|
||
{
|
||
id: 'panelLinkForm',
|
||
pmType: 'panel',
|
||
layout: 'hbox',
|
||
required: true,
|
||
width: '155px',
|
||
style: {
|
||
cssProperties: {
|
||
'margin-left': '-10px',
|
||
'margin-top': '-10px'
|
||
}
|
||
},
|
||
items: [
|
||
{
|
||
pmType: 'annotation',
|
||
text: 'Web Entry URL:'.translate(),
|
||
id: 'webEntryLinkLabel',
|
||
required: true,
|
||
name: 'webEntryLinkLabel'
|
||
},
|
||
{
|
||
pmType: 'annotation',
|
||
id: 'webEntryLink',
|
||
name: 'webEntryLink',
|
||
text: '',
|
||
required: true,
|
||
textType: 1,
|
||
style: {
|
||
cssProperties: {
|
||
'margin-left': '-173px'
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
new PMUI.field.ButtonField({
|
||
id: 'buttonFieldGenerateLink',
|
||
pmType: 'buttonField',
|
||
value: 'Generate Link'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
controlsWidth: 180,
|
||
proportion: 0.6,
|
||
handler: function (field) {
|
||
that.checkUserGuest('generateLink');
|
||
},
|
||
buttonType: 'success',
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top',
|
||
'padding-top': '10px',
|
||
'padding-right': '0px',
|
||
'padding-bottom': '1px',
|
||
'padding-left': '130px'
|
||
}
|
||
}
|
||
})
|
||
]
|
||
});
|
||
|
||
tfromLink.getItem('buttonFieldGenerateLink').getControl(0).button.setButtonType('success');
|
||
|
||
return tfromLink;
|
||
},
|
||
|
||
/**
|
||
* Get MessageWindow Container
|
||
* @returns {PMUI.ui.MessageWindow}
|
||
*/
|
||
getConfirmWindow: function () {
|
||
if (this.getConfirmWin() === null) {
|
||
this.setConfirmWin(this.buildConfirmWindow());
|
||
}
|
||
return this.getConfirmWin();
|
||
},
|
||
|
||
/**
|
||
* Build MessageWindow
|
||
* @returns {PMUI.ui.MessageWindow}
|
||
*/
|
||
buildConfirmWindow: function () {
|
||
return new PMUI.ui.MessageWindow({
|
||
id: 'confirmWindowDeleteAcceptedValue',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: '',
|
||
message: '',
|
||
footerItems: [
|
||
{
|
||
id: 'confirmWindow-footer-no',
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
buttonType: 'error'
|
||
}, {
|
||
id: 'confirmWindow-footer-yes',
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
buttonType: 'success'
|
||
}
|
||
],
|
||
visibleFooter: true
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Handler button for delete web entry config
|
||
*/
|
||
handlerDeleteWebEntry: function () {
|
||
var that = this,
|
||
confirmWindow,
|
||
yesButton,
|
||
noButton;
|
||
confirmWindow = that.getConfirmWindow()
|
||
.setMessage('Are you sure you want to delete the Web Entry configuration?'.translate());
|
||
yesButton = that.getConfirmWindow().footer.getItem('confirmWindow-footer-yes');
|
||
yesButton.setHandler(function () {
|
||
confirmWindow.close();
|
||
that.deleteWebEntryConfiguration(
|
||
function () {
|
||
that.getWindow().close();
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
});
|
||
noButton = that.getConfirmWindow().footer.getItem('confirmWindow-footer-no');
|
||
noButton.setHandler(function () {
|
||
that.getConfirmWindow().close();
|
||
});
|
||
that.getConfirmWindow().open();
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Handler button for save web entry config
|
||
* @param method
|
||
*/
|
||
checkUserGuest: function (method) {
|
||
var title = 'Web Entry Anonymous Authentication'.translate(),
|
||
message = ('Current selected user to act as anonymous will be replaced by the Guest user. ' +
|
||
'This action cannot be undone. Do you want to proceed?').translate();
|
||
|
||
//Validate the data before saving the configuration or generate the link
|
||
if (this.isValidWebEntryData(method)) {
|
||
(method === 'saveConfig') ? this.handlerSaveButton(message, title) : this.handlerGenerateLinkButton(message, title);
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Check userGuestUID and save Config
|
||
* @param message
|
||
* @param title
|
||
* @returns {WebEntry}
|
||
*/
|
||
handlerSaveButton: function (message, title) {
|
||
var that = this,
|
||
messageWindow = this.getConfirmWindow();
|
||
//Validation is done to be compatible with older versions of webEntry (Now exist guest-type user).
|
||
if (this.getUserGuest().uid && this.getSuggestField().value !== this.getUserGuest().uid) {
|
||
messageWindow.setMessage(message);
|
||
messageWindow.setTitle(title);
|
||
|
||
//handler for cancel button
|
||
messageWindow.footer.getItem('confirmWindow-footer-no').setHandler(function () {
|
||
messageWindow.close();
|
||
});
|
||
|
||
//handler for yes button
|
||
messageWindow.footer.getItem('confirmWindow-footer-yes').setHandler(function () {
|
||
messageWindow.close();
|
||
that.getSuggestField().set('value', that.getUserGuest().uid);
|
||
that.saveWebEntryConfiguration(
|
||
function () {
|
||
that.getWindow().close();
|
||
}, function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
});
|
||
messageWindow.open();
|
||
} else {
|
||
//For new configurations we save the configuration without any GUEST user validation.
|
||
this.saveWebEntryConfiguration(
|
||
function () {
|
||
that.getWindow().close();
|
||
}, function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Check userGuestUID and generate webEntry Link
|
||
* @param message
|
||
* @param title
|
||
* @returns {WebEntry}
|
||
*/
|
||
handlerGenerateLinkButton: function (message, title) {
|
||
var that = this,
|
||
formLink = this.getTabLinkForm(),
|
||
messageWindow = this.getConfirmWindow();
|
||
//Validation is done to be compatible with older versions of webEntry (Now exist guest-type user).
|
||
if (this.getUserGuest().uid && this.getSuggestField().value !== this.getUserGuest().uid) {
|
||
messageWindow.setMessage(message);
|
||
messageWindow.setTitle(title);
|
||
|
||
//handler for cancel button
|
||
messageWindow.footer.getItem('confirmWindow-footer-no').setHandler(function () {
|
||
messageWindow.close();
|
||
});
|
||
//handler for yes button
|
||
|
||
messageWindow.footer.getItem('confirmWindow-footer-yes').setHandler(function () {
|
||
messageWindow.close();
|
||
that.getSuggestField().set('value', that.getUserGuest().uid);
|
||
that.setLinkText(formLink, '');
|
||
//save Web Entry Configuration
|
||
that.saveWebEntryConfiguration(
|
||
function (xhr, response) {
|
||
that.getConfigWebEntry().usr_uid = response.usr_uid || that.getConfigWebEntry().usr_uid;
|
||
//generate webEntry Link
|
||
that.generateLink(
|
||
that.getWeeUid(),
|
||
function (xhr, response) {
|
||
that.setLinkText(formLink, (response.link) ? response.link : '');
|
||
that.initializeAccordionAndTreepanelData();
|
||
that.getSuggestField().html.find("input")
|
||
.val(that.getUserGuest().firstname + " " + "(" + that.getUserGuest().username + ")");
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
});
|
||
messageWindow.open();
|
||
} else {
|
||
//For new configurations we generate the webEntry Link without any GUEST user validation.
|
||
this.saveWebEntryConfiguration(
|
||
function () {
|
||
that.generateLink(
|
||
that.getWeeUid(),
|
||
function (xhr, response) {
|
||
that.setLinkText(formLink, (response.link) ? response.link : '');
|
||
that.initializeAccordionAndTreepanelData();
|
||
},
|
||
function (xhr, response) {
|
||
that.setLinkText(formLink, '');
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
},
|
||
function (xhr, response) {
|
||
that.setLinkText(formLink, '');
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
{generateLink: true}
|
||
);
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Get Steps AssignAccordion
|
||
* @returns {PMUI.panel.AccordionPanel}
|
||
*/
|
||
getStepsAssignAccordion: function () {
|
||
if (this.getStepsAccordion() === null) {
|
||
this.setStepsAccordion(this.buildStepsAssignAccordion());
|
||
}
|
||
return this.getStepsAccordion();
|
||
},
|
||
|
||
/**
|
||
* Build Steps Assign Accordion
|
||
* @returns {PMUI.panel.AccordionPanel}
|
||
*/
|
||
buildStepsAssignAccordion: function () {
|
||
var that = this;
|
||
return new PMUI.panel.AccordionPanel({
|
||
id: 'stepsAssignAccordion',
|
||
multipleSelection: true,
|
||
hiddenTitle: true,
|
||
proportion: 1.5,
|
||
style: {
|
||
cssProperties: {
|
||
margin: '0px 0px 0px 0px'
|
||
},
|
||
cssClasses: ['mafe-border-panel']
|
||
},
|
||
listeners: {
|
||
select: function (accordionItem, event) {
|
||
var buttonExpand, buttonCollapse, itemsAccod;
|
||
itemsAccod = that.getStepsAssignAccordion().items;
|
||
if (accordionItem.collapsed) {
|
||
if (that.elementAccordionOpen.indexOf(accordionItem) > -1) {
|
||
that.elementAccordionOpen.remove(accordionItem);
|
||
}
|
||
} else {
|
||
if (that.elementAccordionOpen.indexOf(accordionItem) === -1) {
|
||
that.elementAccordionOpen.insert(accordionItem);
|
||
}
|
||
}
|
||
buttonCollapse = that.getLabelsPanel().getItem('collapse-button');
|
||
buttonExpand = that.getLabelsPanel().getItem('expand-button');
|
||
if (that.elementAccordionOpen.getSize() === 0) {
|
||
buttonExpand.setDisabled(false);
|
||
buttonCollapse.setDisabled(true);
|
||
} else if (that.elementAccordionOpen.getSize() === itemsAccod.getSize()) {
|
||
buttonExpand.setDisabled(true);
|
||
buttonCollapse.setDisabled(false);
|
||
} else {
|
||
buttonExpand.setDisabled(false);
|
||
buttonCollapse.setDisabled(false);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Get steps AssignTree
|
||
* @returns {PMUI.core.Panel}
|
||
*/
|
||
getStepsAssignTree: function () {
|
||
if (this.getStepsTree() === null) {
|
||
this.setStepsTree(this.buildStepsAssignTree());
|
||
}
|
||
return this.getStepsTree();
|
||
},
|
||
|
||
/**
|
||
* Build steps AssignTree
|
||
* @returns {PMUI.panel.TreePanel}
|
||
*/
|
||
buildStepsAssignTree: function () {
|
||
return new PMUI.panel.TreePanel({
|
||
id: 'stepsAssignTree',
|
||
proportion: 0.5,
|
||
height: 475,
|
||
filterable: true,
|
||
autoBind: true,
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nodeDefaultSettings: {
|
||
labelDataBind: 'obj_title',
|
||
autoBind: true,
|
||
collapsed: false,
|
||
itemsDataBind: 'items',
|
||
childrenDefaultSettings: {
|
||
labelDataBind: 'obj_title',
|
||
autoBind: true
|
||
},
|
||
behavior: 'drag'
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
margin: '0px 0px 0px 0px',
|
||
float: 'left',
|
||
overflow: 'auto'
|
||
},
|
||
cssClasses: ['mafe-border-panel']
|
||
}
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Get Label Panel
|
||
* @returns {PMUI.core.Panel}
|
||
*/
|
||
getLabelsPanel: function () {
|
||
if (this.getLabelPanel() === null) {
|
||
this.setLabelPanel(this.buildLabelPanel());
|
||
}
|
||
return this.getLabelPanel();
|
||
},
|
||
|
||
/**
|
||
* Build Label Panel
|
||
* @returns {PMUI.core.Panel}
|
||
*/
|
||
buildLabelPanel: function () {
|
||
var that = this;
|
||
return new PMUI.core.Panel({
|
||
width: DEFAULT_WINDOW_WIDTH - 220,
|
||
layout: "hbox",
|
||
items: [
|
||
new PMUI.field.TextAnnotationField({
|
||
text: 'Available Elements'.translate(),
|
||
proportion: 1.12,
|
||
text_Align: 'center'
|
||
}),
|
||
new PMUI.field.TextAnnotationField({
|
||
text: 'Assigned Elements (Drop here)'.translate(),
|
||
proportion: 1.3,
|
||
text_Align: 'center'
|
||
}),
|
||
new PMUI.ui.Button({
|
||
buttonType: 'link',
|
||
text: 'Expand all'.translate(),
|
||
id: 'expand-button',
|
||
proportion: 1.2,
|
||
handler: function () {
|
||
that.expandAndCollapseHandler('collapse-button', 'expand-button');
|
||
}
|
||
}),
|
||
new PMUI.ui.Button({
|
||
buttonType: 'link',
|
||
text: 'Collapse all'.translate(),
|
||
id: 'collapse-button',
|
||
proportion: 1.1,
|
||
disabled: true,
|
||
handler: function () {
|
||
that.expandAndCollapseHandler('expand-button', 'collapse-button');
|
||
}
|
||
})
|
||
]
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Get SuggestField Control
|
||
* @returns {SuggestField}
|
||
*/
|
||
getSuggestField: function () {
|
||
if (this.getSuggestUser() === null) {
|
||
this.setSuggestUser(this.createSugesstField());
|
||
}
|
||
return this.getSuggestUser();
|
||
},
|
||
|
||
/**
|
||
* Create Field Suggest (User)
|
||
* @returns {SuggestField}
|
||
*/
|
||
createSugesstField: function () {
|
||
return new SuggestField({
|
||
id: 'idSuggestUser',
|
||
label: 'Users'.translate(),
|
||
width: 450,
|
||
placeholder: 'Suggest users'.translate(),
|
||
required: true,
|
||
disabled: true,
|
||
helper: 'When the form is submitted a new case is created with this user account.'.translate(),
|
||
dynamicLoad: {
|
||
data: [{
|
||
key: 'usr_uid',
|
||
label: ['usr_firstname', 'usr_lastname', '(', 'usr_username', ')']
|
||
}],
|
||
keys: {
|
||
url: HTTP_SERVER_HOSTNAME + '/api/1.0/' + WORKSPACE,
|
||
accessToken: credentials.access_token,
|
||
endpoints: [{
|
||
method: 'GET',
|
||
url: 'users'
|
||
}]
|
||
}
|
||
}
|
||
});
|
||
},
|
||
|
||
/**
|
||
* Generate Web Entry Link
|
||
* @param formLink
|
||
* @param linkText
|
||
*/
|
||
setLinkText: function (formLink, linkText) {
|
||
formLink.getItem('panelLinkForm').getItem('webEntryLink')
|
||
.setText('<a href="' + linkText + '" target="_blank" ' + 'class="mafe-webentry-link">' + linkText + '</a>');
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Initialize Some Variables for web Entry (weeUId, actUid, evnUid, response, isNewWebEntry)
|
||
* @param response
|
||
* @param newWebEntry
|
||
*/
|
||
initializeSomeVariables: function (response, newWebEntry) {
|
||
this.setWeeUid(response.wee_uid)
|
||
.setActUid(response.act_uid)
|
||
.setEvnUid(response.evn_uid)
|
||
.setConfigWebEntry(response)
|
||
.setIsNewWebEntry(newWebEntry);
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Collapse and Expand Accordion Handler
|
||
* @param enableItem
|
||
* @param disableItem
|
||
*/
|
||
expandAndCollapseHandler: function (enableItem, disableItem) {
|
||
var items,
|
||
i,
|
||
item;
|
||
items = this.getStepsAssignAccordion().getItems();
|
||
this.getLabelsPanel().getItem(enableItem).setDisabled(false);
|
||
this.getLabelsPanel().getItem(disableItem).setDisabled(true);
|
||
if (enableItem === 'collapse-button') {
|
||
this.elementAccordionOpen.clear();
|
||
for (i = 0; i < items.length; i += 1) {
|
||
item = items[i];
|
||
item.expand();
|
||
this.elementAccordionOpen.insert(item);
|
||
}
|
||
} else {
|
||
for (i = 0; i < items.length; i += 1) {
|
||
item = items[i];
|
||
this.elementAccordionOpen.remove(item);
|
||
item.collapse();
|
||
}
|
||
}
|
||
},
|
||
|
||
/**
|
||
* Disable MultipleSteps (tabForms)
|
||
* @param singleMultiple
|
||
* @returns {WebEntry}
|
||
*/
|
||
disableMultipleSteps: function (singleMultiple) {
|
||
var singleDyna = this.getTabForms().getItem('singleDynaform');
|
||
singleDyna.getItem('multipleStepsRadio').setValue('');
|
||
//Hide step panel
|
||
this.getLabelsPanel().setVisible(false);
|
||
this.getTabForms().getItem('stepsMainContainer').setVisible(false);
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Disable Form SingleDynaform (tabForms)
|
||
* @param singleMultiple
|
||
* @returns {WebEntry}
|
||
*/
|
||
disableSingleDynaform: function (singleMultiple) {
|
||
var singleDyna = this.getTabForms().getItem('singleDynaform');
|
||
singleDyna.getItem('multipleStepsRadio').setValue(singleMultiple);
|
||
singleDyna.getItem('multipleStepsRadio').getControl(0).select();
|
||
//Show step panel
|
||
this.getLabelsPanel().setVisible(true);
|
||
this.getTabForms().getItem('stepsMainContainer').setVisible(true);
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Change handler
|
||
* @param newValue
|
||
* @param oldValue
|
||
* @returns {loginRequired}
|
||
*/
|
||
anonimusProcedure: function (newValue, oldValue) {
|
||
var propertiesForm = this.getTabProperties(),
|
||
//The Callback Actions (PROCESSMAKER is 0, CUSTOM is 1, and CUSTOM_CLEAR is 2)
|
||
callbackAction = 2;
|
||
propertiesForm.getItem('tabPropertiesRequireUserLogin').setValue('[]');
|
||
propertiesForm.getItem('tabPropertiesHideLoogedInformationBar').disable();
|
||
propertiesForm.getItem('tabPropertiesHideActiveSessionWarning').disable();
|
||
propertiesForm.getItem('tabPropRadioAuthentication').setRequired(true);
|
||
this.getSuggestField().setRequired(true);
|
||
this.getSuggestField().hideMessageRequired();
|
||
propertiesForm.getItem('tabPropertiesRadioCallback').disableOption(callbackAction);
|
||
if (propertiesForm.getItem('tabPropertiesRadioCallback').getValue() === 'CUSTOM_CLEAR') {
|
||
propertiesForm.getItem('tabPropertiesRadioCallback').getControl(callbackAction).deselect();
|
||
propertiesForm.getItem('tabPropertiesRadioCallback').setValue('');
|
||
}
|
||
propertiesForm.getItem('criteriaFieldCustomUrl').disable();
|
||
propertiesForm.getItem('criteriaFieldCustomUrl').buttonHTML.disable();
|
||
this.setLinkText(this.getTabLinkForm(), '');
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Change chandler
|
||
* @param newValue
|
||
* @param oldValue
|
||
* @returns {loginRequired}
|
||
*/
|
||
loginRequired: function (newValue, oldValue) {
|
||
var propertiesForm = this.getTabProperties(),
|
||
//The Callback Actions (PROCESSMAKER is 0, CUSTOM is 1, and CUSTOM_CLEAR is 2)
|
||
callbackAction = 2;
|
||
propertiesForm.getItem('tabPropRadioAuthentication').setValue('[]');
|
||
propertiesForm.getItem('tabPropRadioAuthentication').setRequired(false);
|
||
|
||
this.getSuggestField().setRequired(false);
|
||
this.getSuggestField().hideMessageRequired();
|
||
propertiesForm.getItem('tabPropertiesHideLoogedInformationBar').enable();
|
||
propertiesForm.getItem('tabPropertiesHideActiveSessionWarning').enable();
|
||
propertiesForm.getItem('tabPropertiesRadioCallback').enableOption(callbackAction);
|
||
this.callbackActionChange(propertiesForm.getItem('tabPropertiesRadioCallback').getValue(), '');
|
||
this.setLinkText(this.getTabLinkForm(), '');
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Change handler
|
||
* @param newValue
|
||
* @param oldValue
|
||
* @returns {callbackActionChange}
|
||
*/
|
||
callbackActionChange: function (newValue, oldValue) {
|
||
var propertiesForm = this.getTabProperties();
|
||
propertiesForm.getItem("tabPropertiesRadioCallback").setValue(newValue);
|
||
switch (newValue) {
|
||
case 'PROCESSMAKER':
|
||
propertiesForm.getItem('criteriaFieldCustomUrl').disable();
|
||
propertiesForm.getItem('criteriaFieldCustomUrl').setRequired(false);
|
||
propertiesForm.getItem('criteriaFieldCustomUrl').buttonHTML.disable();
|
||
break;
|
||
case 'CUSTOM':
|
||
case 'CUSTOM_CLEAR':
|
||
propertiesForm.getItem('criteriaFieldCustomUrl').enable();
|
||
propertiesForm.getItem('criteriaFieldCustomUrl').setRequired(true);
|
||
propertiesForm.getItem('criteriaFieldCustomUrl').buttonHTML.enable();
|
||
break;
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Change handler
|
||
* @param newValue
|
||
* @returns {linkGenerationOnChange}
|
||
*/
|
||
linkGenerationOnChange: function (newValue) {
|
||
var required,
|
||
skin,
|
||
language,
|
||
domain,
|
||
tfromLink;
|
||
tfromLink = this.getTabLinkForm();
|
||
required = newValue === 'ADVANCED';
|
||
skin = tfromLink.getItem('tabLinkDropdownSkin');
|
||
language = tfromLink.getItem('tabLinkDropdownLanguage');
|
||
domain = tfromLink.getItem('tablinkTextCustomDomain');
|
||
this.setLinkText(tfromLink, '');
|
||
skin.setRequired(required);
|
||
language.setRequired(required);
|
||
domain.setRequired(required);
|
||
if (required) {
|
||
skin.enable();
|
||
language.enable();
|
||
domain.enable();
|
||
} else {
|
||
skin.disable();
|
||
domain.hideMessage();
|
||
language.disable();
|
||
domain.disable();
|
||
domain.getControl(0).style.removeClasses(['error']);
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Save webEntry Configuration
|
||
* @param successCallback
|
||
* @param failureCallback
|
||
*/
|
||
saveWebEntryConfiguration: function (successCallback, failureCallback, extra) {
|
||
var data,
|
||
//tabs window web entry
|
||
tabProperties = this.getTabPanel().getItem('tabProperties'),
|
||
tabLink = this.getTabPanel().getItem('tabLink'),
|
||
//form tabs
|
||
dataTabSingleDyn = this.getTabForms().getItem('singleDynaform'),
|
||
dataTabProperties = tabProperties.getPanel('idTabProperties'),
|
||
dataTabLink = tabLink.getPanel('idTabLink');
|
||
|
||
//Prepare Data
|
||
data = this.prepareData(dataTabSingleDyn, dataTabProperties, dataTabLink);
|
||
data['extra'] = extra || {};
|
||
//Save web Entry configuration
|
||
this.updateWebEntryConfiguration(data, successCallback, failureCallback);
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Validate Web Entry Data
|
||
* @param method
|
||
*/
|
||
isValidWebEntryData: function (method) {
|
||
var valid = true,
|
||
//tabs window web entry
|
||
tabForm = this.getTabPanel().getItem('tabForms'),
|
||
tabProperties = this.getTabPanel().getItem('tabProperties'),
|
||
tabLink = this.getTabPanel().getItem('tabLink'),
|
||
//form tabs
|
||
dataTabSingleDyn = this.getTabForms().getItem('singleDynaform'),
|
||
dataTabProperties = tabProperties.getPanel('idTabProperties'),
|
||
dataTabLink = tabLink.getPanel('idTabLink'),
|
||
//selected tab
|
||
selectedTab = null;
|
||
|
||
// validate form tab
|
||
if (dataTabSingleDyn instanceof PMUI.form.Form) {
|
||
valid = valid && dataTabSingleDyn.isValid();
|
||
selectedTab = !valid && !selectedTab ? tabForm : selectedTab;
|
||
}
|
||
//validate property tab
|
||
if (dataTabProperties instanceof PMUI.form.Form) {
|
||
valid = valid && dataTabProperties.isValid();
|
||
selectedTab = !valid && !selectedTab ? tabProperties : selectedTab;
|
||
}
|
||
//validate suggestField
|
||
if (!this.getSuggestField().isValid()) {
|
||
this.getSuggestField().showMessageRequired();
|
||
valid = valid && this.getSuggestField().isValid();
|
||
selectedTab = !valid && !selectedTab ? tabProperties : selectedTab;
|
||
}
|
||
//validate link Tab
|
||
if (dataTabLink instanceof PMUI.form.Form) {
|
||
valid = valid && dataTabLink.isValid();
|
||
selectedTab = !valid && !selectedTab ? tabLink : selectedTab;
|
||
}
|
||
if (!valid) {
|
||
selectedTab.select();
|
||
}
|
||
//validate Link Generate Button
|
||
if (!$(dataTabLink.getItem('panelLinkForm').getItem('webEntryLink').text).attr('href') &&
|
||
method !== 'generateLink') {
|
||
PMDesigner.msgFlash('Please press the \"Generate Link\" button.'.translate(),
|
||
this.getWindow(), 'error', 3000, 5);
|
||
valid = false;
|
||
tabLink.select();
|
||
}
|
||
return valid;
|
||
},
|
||
|
||
/**
|
||
* Prepare Data
|
||
* @param dataTabSingleDyn
|
||
* @param dataTabProperties
|
||
* @param dataTabLink
|
||
*/
|
||
prepareData : function (dataTabSingleDyn, dataTabProperties, dataTabLink) {
|
||
var data = {};
|
||
data['act_uid'] = this.getActUid();
|
||
data['evn_uid'] = this.getEvnUid();
|
||
data['wee_title'] = this.getEvnUid();
|
||
data['we_type'] = 'MULTIPLE';
|
||
data['dyn_uid'] = '';
|
||
data['we_custom_title'] = dataTabProperties.getItem('tabPropertiesWebEntryTitle').getValue();
|
||
data['we_authentication'] = dataTabProperties.getItem('tabPropRadioAuthentication').getValue() === '[]' ?
|
||
'LOGIN_REQUIRED' : 'ANONYMOUS';
|
||
data['usr_uid'] = this.getSuggestField().value;
|
||
data['we_hide_information_bar'] = dataTabProperties.getItem('tabPropertiesHideLoogedInformationBar')
|
||
.getValue() === '[]' ? '0' : '1';
|
||
data['we_hide_active_session_warning'] = dataTabProperties.getItem('tabPropertiesHideActiveSessionWarning')
|
||
.getValue() === '[]' ? '0' : '1';
|
||
data['we_callback'] = dataTabProperties.getItem('tabPropertiesRadioCallback').getValue();
|
||
data['we_callback_url'] = (data['we_callback'] !== 'PROCESSMAKER') ?
|
||
dataTabProperties.getItem('criteriaFieldCustomUrl').getValue() : '';
|
||
data['we_link_generation'] = dataTabLink.getItem('tabLinkRadioGeneration').getValue();
|
||
data['we_link_skin'] = dataTabLink.getItem('tabLinkDropdownSkin').getValue();
|
||
data['we_link_language'] = dataTabLink.getItem('tabLinkDropdownLanguage').getValue();
|
||
data['we_link_domain'] = (data['we_link_generation'] === 'ADVANCED') ?
|
||
dataTabLink.getItem('tablinkTextCustomDomain').getValue() : '';
|
||
data['we_show_in_new_case'] = (dataTabProperties.getItem('showInNewCase').getValue() === '["showCase"]') ? 1 : 0;
|
||
return data;
|
||
},
|
||
|
||
/**
|
||
* Populate all tabPanels (TabForms, TabProperties, TabLink) with data config
|
||
* return void
|
||
*/
|
||
setWebEntryConfiguration: function () {
|
||
this.setConfigDataTabForms();
|
||
this.setConfigDataTabProperties();
|
||
this.setConfigDataTabLink();
|
||
this.getWindow().getItem('windowWebEntryTabPanel').getItem('tabForms').select();
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Load and populate Dynaforms Items
|
||
* @returns {*}
|
||
*/
|
||
setConfigDataTabForms: function () {
|
||
var that = this,
|
||
i,
|
||
data,
|
||
options = [],
|
||
dynaforms = [];
|
||
|
||
//execute Rest (get Dynaforms)
|
||
this.getDynaforms(
|
||
function (xhr, response) {
|
||
dynaforms = response[0].response;
|
||
|
||
//Set data Dropdown Single Dynaform
|
||
for (i = 0; i < dynaforms.length; i += 1) {
|
||
data = {};
|
||
data.label = dynaforms[i]['dyn_title'];
|
||
data.value = dynaforms[i]['dyn_uid'];
|
||
if (that.getConfigWebEntry().dyn_uid === data.value &&
|
||
that.getConfigWebEntry().evn_uid === that.getRelatedShape()['evn_uid']) {
|
||
data.selected = true;
|
||
}
|
||
options.push(data);
|
||
}
|
||
|
||
//set Disable/Enable single or multiple steps
|
||
(that.getConfigWebEntry().we_type === 'SINGLE') ?
|
||
that.disableMultipleSteps(that.getConfigWebEntry().we_type) :
|
||
that.disableSingleDynaform(that.getConfigWebEntry().we_type);
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
},
|
||
|
||
/**
|
||
* TabProperties Panel
|
||
* Assigns values to tabProperties fields
|
||
*/
|
||
setConfigDataTabProperties: function () {
|
||
var that = this,
|
||
webEntryTitle,
|
||
radioAuthentication,
|
||
radioRequiredLogin,
|
||
informationBar,
|
||
activeSessionWarning,
|
||
radioCollback,
|
||
customUrl,
|
||
user,
|
||
showInNewCase;
|
||
|
||
//get Controls Tab-Properties
|
||
this.getTabPanel().getItem('tabProperties').select();
|
||
webEntryTitle = this.getTabProperties().getItem('tabPropertiesWebEntryTitle');
|
||
radioAuthentication = this.getTabProperties().getItem('tabPropRadioAuthentication');
|
||
radioRequiredLogin = this.getTabProperties().getItem('tabPropertiesRequireUserLogin');
|
||
radioCollback = this.getTabProperties().getItem('tabPropertiesRadioCallback');
|
||
customUrl = this.getTabProperties().getItem('criteriaFieldCustomUrl');
|
||
informationBar = this.getTabProperties().getItem('tabPropertiesHideLoogedInformationBar');
|
||
activeSessionWarning = this.getTabProperties().getItem('tabPropertiesHideActiveSessionWarning');
|
||
showInNewCase = this.getTabProperties().getItem('showInNewCase');
|
||
|
||
//set webentry Title
|
||
webEntryTitle.setValue(this.getConfigWebEntry().we_custom_title);
|
||
|
||
//Loggin required or Anonymous
|
||
radioCollback.setValue(this.getConfigWebEntry().we_callback);
|
||
if (this.getConfigWebEntry().we_authentication === 'LOGIN_REQUIRED') {
|
||
radioRequiredLogin.getControl(0).select();
|
||
radioRequiredLogin.setValue(this.getConfigWebEntry().we_authentication);
|
||
this.loginRequired();
|
||
} else {
|
||
radioAuthentication.getControl(0).select();
|
||
radioAuthentication.setValue(this.getConfigWebEntry().we_authentication);
|
||
this.anonimusProcedure();
|
||
}
|
||
|
||
//set value suggest user
|
||
this.getSuggestField().html.find('input').val('');
|
||
this.getConfigWebEntry().usr_uid = this.getConfigWebEntry().usr_uid || this.getUserGuest().uid;
|
||
if (this.getConfigWebEntry().usr_uid) {
|
||
this.getUserData(
|
||
this.getConfigWebEntry().usr_uid,
|
||
function (xhr, response) {
|
||
user = response[0].response;
|
||
that.getSuggestField().html.find("input").val(user.usr_firstname + " "
|
||
+ user.usr_lastname + " " + "(" + user.usr_username + ")");
|
||
that.getSuggestField().set("value", user.usr_uid);
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
}
|
||
|
||
//set Hide Logged Information Bar
|
||
if (this.getConfigWebEntry().we_hide_information_bar === '1') {
|
||
informationBar.setValue('["1"]');
|
||
informationBar.getControl(0).select();
|
||
} else {
|
||
informationBar.setValue('[]');
|
||
informationBar.getControl(0).deselect();
|
||
}
|
||
|
||
//set Hide Active Session Warning
|
||
if (this.getConfigWebEntry().we_hide_active_session_warning === '1') {
|
||
activeSessionWarning.setValue('["1"]');
|
||
activeSessionWarning.getControl(0).select();
|
||
} else {
|
||
activeSessionWarning.setValue('[]');
|
||
activeSessionWarning.getControl(0).deselect();
|
||
}
|
||
|
||
//set Callback Action
|
||
switch (this.getConfigWebEntry().we_callback) {
|
||
case 'PROCESSMAKER':
|
||
radioCollback.getControl(0).select();
|
||
break;
|
||
case 'CUSTOM':
|
||
radioCollback.getControl(1).select();
|
||
break;
|
||
case 'CUSTOM_CLEAR':
|
||
radioCollback.getControl(2).select();
|
||
break;
|
||
}
|
||
|
||
//set custom URL
|
||
customUrl.setValue(this.getConfigWebEntry().we_callback_url);
|
||
|
||
//set show task in new case
|
||
if (this.getConfigWebEntry().we_show_in_new_case === '1'){
|
||
showInNewCase.setValue('["showCase"]');
|
||
}else{
|
||
showInNewCase.setValue('[]');
|
||
}
|
||
|
||
//customize suggest styles
|
||
this.getSuggestField().inputField[0].style.width = '280px';
|
||
this.getSuggestField().inputLabel[0].parentElement.style.width = '120px';
|
||
this.getSuggestField().inputLabel[0].parentElement.style.marginLeft = '220px';
|
||
},
|
||
|
||
/**
|
||
* TabLink Panel
|
||
* Assigns values to tabLink fields
|
||
*/
|
||
setConfigDataTabLink: function () {
|
||
var that = this,
|
||
options = [],
|
||
customDomain,
|
||
radioGeneration,
|
||
languages = [],
|
||
skins = [],
|
||
dropDownLanguages,
|
||
dropDownSkins,
|
||
data,
|
||
i;
|
||
|
||
//execute Rest (Get languages and Skins)
|
||
this.getSkinLanguage(
|
||
function (xhr, response) {
|
||
languages = response[0].response.data;
|
||
skins = response[1].response.data;
|
||
//get controls Tab-link
|
||
that.getTabPanel().getItem('tabLink').select();
|
||
radioGeneration = that.getTabLinkForm().getItem('tabLinkRadioGeneration');
|
||
dropDownSkins = that.getTabLinkForm().getItem('tabLinkDropdownSkin');
|
||
dropDownLanguages = that.getTabLinkForm().getItem('tabLinkDropdownLanguage');
|
||
customDomain = that.getTabLinkForm().getItem('tablinkTextCustomDomain');
|
||
|
||
//set Link generation (Default or Advanced)
|
||
radioGeneration.setValue(that.getConfigWebEntry().we_link_generation);
|
||
(that.getConfigWebEntry().we_link_generation === 'DEFAULT') ? radioGeneration.getControl(0).select() :
|
||
radioGeneration.getControl(1).select();
|
||
|
||
//set Languages Dropdown
|
||
if (jQuery.isArray(languages)) {
|
||
for (i = 0; i < languages.length; i += 1) {
|
||
data = {};
|
||
data.label = languages[i].LANG_NAME;
|
||
data.value = languages[i].LANG_ID;
|
||
if (languages[i].LANG_ID === that.getConfigWebEntry().we_link_language) {
|
||
data.selected = true;
|
||
}
|
||
options.push(data);
|
||
}
|
||
dropDownLanguages.setOptions(options);
|
||
}
|
||
//set Skins Dropdown
|
||
if (jQuery.isArray(skins)) {
|
||
options = [];
|
||
for (i = 0; i < skins.length; i += 1) {
|
||
data = {};
|
||
data.label = skins[i].SKIN_NAME;
|
||
data.value = skins[i].SKIN_FOLDER_ID;
|
||
if (that.getConfigWebEntry().we_link_skin === skins[i].SKIN_FOLDER_ID) {
|
||
data.selected = true;
|
||
}
|
||
options.push(data);
|
||
}
|
||
dropDownSkins.setOptions(options);
|
||
}
|
||
|
||
//set Custom Domain
|
||
customDomain.setValue(that.getConfigWebEntry().we_link_domain);
|
||
//Enable or Disable (Skin, Language, CustomDomain)
|
||
that.linkGenerationOnChange(that.getConfigWebEntry().we_link_generation);
|
||
//set Link text
|
||
that.setLinkText(that.getTabLinkForm(), that.getConfigWebEntry().wee_url);
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
},
|
||
|
||
/**
|
||
* Load and populate Accordion Data Items
|
||
* @param response
|
||
*/
|
||
loadAccordionItems: function (response) {
|
||
var firstResp = [],
|
||
secondResp = [],
|
||
i,
|
||
item,
|
||
assigmentConfig,
|
||
firstRes = 0,
|
||
secondRes = 1;
|
||
this.getStepsAssignAccordion().clearItems();
|
||
if (jQuery.isArray(response) && response.length) {
|
||
if (typeof response[firstRes] === "object") {
|
||
firstResp = response[firstRes].response ? response[firstRes].response : [];
|
||
}
|
||
if (typeof response[secondRes] === "object") {
|
||
secondResp = response[secondRes].response ? response[secondRes].response : [];
|
||
}
|
||
}
|
||
if (firstResp.length) {
|
||
for (i = 0; i < firstResp.length; i += 1) {
|
||
item = this.createAccordionItem(firstResp[i], true, true);
|
||
this.getStepsAssignAccordion().addItem(item);
|
||
item.dataItem = firstResp[i];
|
||
this.customAccordionItemButtons(item.html, firstResp[i], item);
|
||
}
|
||
}
|
||
assigmentConfig = {
|
||
step_type_obj: "Assignment".translate(),
|
||
triggers: secondResp,
|
||
st_type: "ASSIGNMENT",
|
||
obj_title: "Assignment".translate(),
|
||
step_uid_obj: "Assignment"
|
||
};
|
||
item = this.createAccordionItem(assigmentConfig);
|
||
this.getStepsAssignAccordion().addItem(item);
|
||
item.dataItem = assigmentConfig;
|
||
assigmentConfig = {
|
||
step_type_obj: "Routing".translate(),
|
||
triggers: secondResp,
|
||
obj_title: "Routing".translate(),
|
||
st_type: 'ROUTING',
|
||
step_uid_obj: "Routing"
|
||
};
|
||
item = this.createAccordionItem(assigmentConfig);
|
||
this.getStepsAssignAccordion().addItem(item);
|
||
item.dataItem = assigmentConfig;
|
||
this.getStepsAssignAccordion().defineEvents();
|
||
},
|
||
|
||
/**
|
||
* Create Accordion
|
||
* @param data
|
||
* @returns {PMUI.item.AccordionItem}
|
||
*/
|
||
createAccordionItem: function (data) {
|
||
var that = this,
|
||
gridBefore,
|
||
gridAfter,
|
||
beforeTitle,
|
||
afterTitle,
|
||
i,
|
||
textLabel;
|
||
if (this.stepsType[data.step_type_obj]) {
|
||
textLabel = this.stepsType[data.step_type_obj];
|
||
} else {
|
||
textLabel = data.step_type_obj;
|
||
}
|
||
beforeTitle = new PMUI.field.TextAnnotationField({
|
||
text: 'Before'.translate() + ' ' + textLabel,
|
||
proportion: 0.5,
|
||
text_Align: 'left'
|
||
});
|
||
afterTitle = new PMUI.field.TextAnnotationField({
|
||
text: 'After'.translate() + ' ' + textLabel,
|
||
proportion: 0.5,
|
||
text_Align: 'left',
|
||
visible: data.st_type === "ASSIGNMENT" ? false : true
|
||
});
|
||
|
||
gridBefore = new PMUI.grid.GridPanel({
|
||
behavior: 'dragdropsort',
|
||
filterable: false,
|
||
visibleHeaders: false,
|
||
data: data.triggers,
|
||
st_type: 'BEFORE',
|
||
step_uid: data.step_uid,
|
||
visibleFooter: false,
|
||
width: '96%',
|
||
emptyMessage: 'No records found'.translate(),
|
||
style: {
|
||
cssClasses: ['mafe-gridPanel']
|
||
},
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [{
|
||
title: '',
|
||
dataType: 'string',
|
||
alignmentCell: 'center',
|
||
columnData: "st_position",
|
||
width: 20
|
||
}, {
|
||
title: 'Before Output Document'.translate(),
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
columnData: 'tri_title',
|
||
width: 210
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: function (row, data) {
|
||
return data.st_condition === '' ? 'Condition'.translate() : 'Condition *'.translate();
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: ['mafe-button-edit']
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData();
|
||
that.editCondition(grid.step_uid, data.tri_uid, data.st_type, row);
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Edit'.translate(),
|
||
buttonStyle: {
|
||
cssClasses: ['mafe-button-edit']
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData(),
|
||
restClient;
|
||
restClient = new PMRestClient({
|
||
endpoint: 'trigger/' + data.tri_uid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
that.editTrigger(response.tri_webbot, response.tri_uid);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Remove'.translate(),
|
||
buttonStyle: {
|
||
cssClasses: ['mafe-button-delete']
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.removeTrigger(row, grid);
|
||
}
|
||
}],
|
||
onDrop: function (container, draggableItem, index) {
|
||
var receiveData = draggableItem.getData();
|
||
if (draggableItem instanceof PMUI.item.TreeNode) {
|
||
that.receiveTreeNodeItem(receiveData, this, index);
|
||
} else {
|
||
that.receiveRowItem(receiveData, this, index, draggableItem);
|
||
}
|
||
that.updateIndexToGrid(this);
|
||
return false;
|
||
},
|
||
onSort: function (container, item, index) {
|
||
var receiveData = item.getData();
|
||
that.sortableRowHandler(receiveData, this, index);
|
||
that.updateIndexToGrid(this);
|
||
},
|
||
onDragStart: function (grid, row) {
|
||
var items;
|
||
items = grid.getItems();
|
||
if (jQuery.isArray(items)) {
|
||
if (items.length === 1) {
|
||
grid.showEmptyCell();
|
||
}
|
||
}
|
||
}
|
||
});
|
||
if (data.st_type !== "ROUTING" && data.st_type !== "ASSIGNMENT") {
|
||
gridBefore.st_type = 'BEFORE';
|
||
} else if (data.st_type === "ROUTING") {
|
||
gridBefore.st_type = "BEFORE_ROUTING";
|
||
} else {
|
||
gridBefore.st_type = "BEFORE_ASSIGNMENT";
|
||
}
|
||
gridBefore.step_uid = data.step_uid;
|
||
gridBefore.clearItems();
|
||
if (jQuery.isArray(data.triggers)) {
|
||
for (i = 0; i < data.triggers.length; i += 1) {
|
||
if (gridBefore.st_type === data.triggers[i].st_type) {
|
||
gridBefore.addDataItem({
|
||
st_condition: data.triggers[i].st_condition,
|
||
st_position: data.triggers[i].st_position,
|
||
st_type: data.triggers[i].st_type,
|
||
tri_description: data.triggers[i].tri_description,
|
||
tri_title: data.triggers[i].tri_title,
|
||
tri_uid: data.triggers[i].tri_uid,
|
||
obj_title: data.triggers[i].tri_title,
|
||
obj_uid: data.triggers[i].tri_uid
|
||
});
|
||
}
|
||
}
|
||
}
|
||
gridAfter = new PMUI.grid.GridPanel({
|
||
behavior: 'dragdropsort',
|
||
filterable: false,
|
||
visibleHeaders: false,
|
||
data: data.triggers,
|
||
visibleFooter: false,
|
||
width: '96%',
|
||
visible: data.st_type === "ASSIGNMENT" ? false : true,
|
||
emptyMessage: 'No records found'.translate(),
|
||
style: {
|
||
cssClasses: ['mafe-gridPanel']
|
||
},
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return messagePageGrid(currentPage, pageSize, numberItems, criteria, filter);
|
||
},
|
||
columns: [{
|
||
title: '',
|
||
dataType: 'string',
|
||
alignmentCell: 'center',
|
||
columnData: 'st_position',
|
||
width: 20
|
||
}, {
|
||
title: 'Before Output Document'.translate(),
|
||
dataType: 'string',
|
||
alignmentCell: 'left',
|
||
columnData: 'tri_title',
|
||
width: 210
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: function (row, data) {
|
||
return data.st_condition === '' ? 'Condition'.translate() : 'Condition *'.translate();
|
||
},
|
||
buttonStyle: {
|
||
cssClasses: ['mafe-button-edit']
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData();
|
||
that.editCondition(grid.step_uid, data.tri_uid, data.st_type, row);
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Edit'.translate(),
|
||
buttonStyle: {
|
||
cssClasses: ['mafe-button-edit']
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
var data = row.getData(),
|
||
restClient;
|
||
restClient = new PMRestClient({
|
||
endpoint: 'trigger/' + data.tri_uid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
that.editTrigger(response.tri_webbot, response.tri_uid);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
}, {
|
||
title: '',
|
||
dataType: 'button',
|
||
buttonLabel: 'Remove'.translate(),
|
||
buttonStyle: {
|
||
cssClasses: ['mafe-button-delete']
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.removeTrigger(row, grid);
|
||
}
|
||
}],
|
||
onDrop: function (container, draggableItem, index) {
|
||
var receiveData = draggableItem.getData();
|
||
if (draggableItem instanceof PMUI.item.TreeNode) {
|
||
that.receiveTreeNodeItem(receiveData, this, index);
|
||
} else {
|
||
that.receiveRowItem(receiveData, this, index, draggableItem);
|
||
}
|
||
that.updateIndexToGrid(this);
|
||
return false;
|
||
},
|
||
onSort: function (container, item, index) {
|
||
var receiveData = item.getData();
|
||
that.sortableRowHandler(receiveData, this, index);
|
||
that.updateIndexToGrid(this);
|
||
},
|
||
onDragStart: function (grid, row) {
|
||
var items;
|
||
items = grid.getItems();
|
||
if (jQuery.isArray(items)) {
|
||
if (items.length === 1) {
|
||
grid.showEmptyCell();
|
||
}
|
||
}
|
||
}
|
||
});
|
||
if (data.st_type !== "ROUTING" && data.st_type !== "ASSIGNMENT") {
|
||
gridAfter.st_type = 'AFTER';
|
||
} else if (data.st_type == "ROUTING") {
|
||
gridAfter.st_type = "AFTER_ROUTING";
|
||
} else {
|
||
gridAfter.st_type = "AFTER_ASSIGNMENT";
|
||
}
|
||
gridAfter.step_uid = data.step_uid;
|
||
if (jQuery.isArray(data.triggers)) {
|
||
for (i = 0; i < data.triggers.length; i += 1) {
|
||
if (gridAfter.st_type === data.triggers[i].st_type) {
|
||
gridAfter.addDataItem({
|
||
st_condition: data.triggers[i].st_condition,
|
||
st_position: data.triggers[i].st_position,
|
||
st_type: data.triggers[i].st_type,
|
||
tri_description: data.triggers[i].tri_description,
|
||
tri_title: data.triggers[i].tri_title,
|
||
tri_uid: data.triggers[i].tri_uid,
|
||
obj_title: data.triggers[i].tri_title,
|
||
obj_uid: data.triggers[i].tri_uid
|
||
});
|
||
}
|
||
}
|
||
}
|
||
var accordionItem = new PMUI.item.AccordionItem({
|
||
id: 'id' + data.step_uid_obj,
|
||
dataStep: data,
|
||
closeable: true,
|
||
body: new PMUI.core.Panel({
|
||
layout: 'vbox',
|
||
items: [
|
||
beforeTitle,
|
||
gridBefore,
|
||
afterTitle,
|
||
gridAfter
|
||
]
|
||
})
|
||
});
|
||
if (this.stepsType[data.step_type_obj]) {
|
||
accordionItem.setTitle(data.step_position + ". " + data.obj_title + ' ('
|
||
+ this.stepsType[data.step_type_obj] + ')');
|
||
this.stepsAssigned.insert(accordionItem);
|
||
} else {
|
||
accordionItem.setTitle((this.getStepsAssignAccordion().items.getSize() + 1) + ". " + data.obj_title);
|
||
}
|
||
return accordionItem;
|
||
},
|
||
|
||
/**
|
||
* This method is executed when a row is drop in another grid
|
||
* @param receiveData, data of the droppable item
|
||
* @param grid, the affected grid
|
||
* @param index, the index position row
|
||
* @param draggableItem
|
||
* @returns {*}
|
||
*/
|
||
receiveRowItem: function (receiveData, grid, index, draggableItem) {
|
||
var receiveParent = draggableItem.getParent(),
|
||
message,
|
||
restClient,
|
||
that = this;
|
||
if (this.isTriggerAssigned(grid, receiveData.obj_uid)) {
|
||
message = new PMUI.ui.FlashMessage({
|
||
message: 'Trigger is assigned.'.translate(),
|
||
duration: 3000,
|
||
severity: 'error',
|
||
appendTo: this.getWindow()
|
||
});
|
||
index = receiveParent.items.indexOf(draggableItem);
|
||
receiveParent.items.remove(draggableItem);
|
||
receiveParent.addItem(draggableItem, index);
|
||
message.show();
|
||
return false;
|
||
}
|
||
restClient = new PMRestClient({
|
||
typeRequest: 'post',
|
||
multipart: true,
|
||
data: {
|
||
calls: [{
|
||
url: grid.step_uid === undefined ?
|
||
'activity/' + that.getConfigWebEntry().tas_uid + '/step/trigger' : 'activity/'
|
||
+ that.getConfigWebEntry().tas_uid + '/step/' + grid.step_uid + '/trigger',
|
||
method: 'POST',
|
||
data: {
|
||
tri_uid: receiveData.obj_uid,
|
||
st_type: grid.st_type,
|
||
st_condition: receiveData.st_condition,
|
||
st_position: index + 1
|
||
}
|
||
}, {
|
||
url: receiveParent.step_uid === undefined ?
|
||
'activity/' + that.getConfigWebEntry().tas_uid + '/step/trigger/' + receiveData.obj_uid
|
||
+ '/' + that.getStepType(receiveParent.st_type) :
|
||
'activity/' + that.getConfigWebEntry().tas_uid + '/step/' + receiveParent.step_uid
|
||
+ '/trigger/' + receiveData.obj_uid + '/' + receiveParent.st_type.toLowerCase(),
|
||
method: 'DELETE'
|
||
}]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var data;
|
||
data = receiveData;
|
||
if (data.hasOwnProperty("st_type")) {
|
||
data.st_type = grid.st_type;
|
||
grid.addDataItem(receiveData, index);
|
||
}
|
||
receiveParent.removeItem(draggableItem);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
flashContainer: that.getWindow(),
|
||
messageError: [
|
||
'An unexpected error while assigning the trigger, please try again later.'.translate()
|
||
],
|
||
messageSuccess: [
|
||
'Trigger assigned successfully.'.translate()
|
||
]
|
||
});
|
||
restClient.executeRestClient();
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* This method is executed when a row is sorted in the grid
|
||
* @param receiveData, data of the droppable item
|
||
* @param grid, the affected grid
|
||
* @param index, the new index position row
|
||
* @returns {stepsTask}
|
||
*/
|
||
sortableRowHandler: function (receiveData, grid, index) {
|
||
return new PMRestClient({
|
||
endpoint: grid.step_uid === undefined ?
|
||
'activity/' + this.getConfigWebEntry().tas_uid + "/step/trigger/" + receiveData.tri_uid : 'activity/' +
|
||
this.getConfigWebEntry().tas_uid + "/step/" + grid.step_uid + "/trigger/" + receiveData.tri_uid,
|
||
typeRequest: 'update',
|
||
data: {
|
||
st_type: receiveData.st_type,
|
||
st_condition: receiveData.st_condition,
|
||
st_position: index + 1
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
flashContainer: this.getWindow(),
|
||
messageError: 'An unexpected error while assigning the trigger, please try again later.'.translate(),
|
||
messageSuccess: 'Trigger assigned successfully.'.translate()
|
||
}).executeRestClient();
|
||
},
|
||
|
||
/**
|
||
* Return the not items config.
|
||
* @returns {{obj_title: *, obj_uid: string, id: string}}
|
||
*/
|
||
notItemConfig: function () {
|
||
var config = {
|
||
obj_title: 'N/A'.translate(),
|
||
obj_uid: '',
|
||
id: "notItem"
|
||
};
|
||
return config;
|
||
},
|
||
|
||
/**
|
||
* Get the steps assigned by a search criterion
|
||
* @param criteria, search filter, after running the endpoint getAccordionData method
|
||
* @returns {Array}, response with criteria
|
||
*/
|
||
getStepsAssignedByCriteria: function (criteria) {
|
||
var allAssigned = [],
|
||
i,
|
||
elements,
|
||
j,
|
||
resp,
|
||
data,
|
||
respon = [];
|
||
|
||
this.getAccordionData(
|
||
function (xhr, response) {
|
||
allAssigned = response;
|
||
if (jQuery.isArray(allAssigned)) {
|
||
for (i = 0; i < allAssigned.length; i += 1) {
|
||
resp = allAssigned[i];
|
||
if (typeof resp === "object") {
|
||
elements = resp.response ? resp.response : [];
|
||
for (j = 0; j < elements.length; j += 1) {
|
||
data = elements[j];
|
||
if (typeof data === "object") {
|
||
if (data.step_type_obj && data.step_type_obj === criteria) {
|
||
respon.push(data);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
return respon;
|
||
},
|
||
|
||
/**
|
||
* Opens the properties of the selected step with the current settings
|
||
* @param step, is the data of selected step
|
||
* @chainable
|
||
*/
|
||
propertiesStepShow: function (step) {
|
||
var that = this,
|
||
form,
|
||
saveButton,
|
||
cancelButton,
|
||
restClient,
|
||
criteriaButton;
|
||
this.setWindowAlternative(null);
|
||
this.getWindowAlternativeForm().setWidth(520);
|
||
this.getWindowAlternativeForm().setHeight(370);
|
||
this.getWindowAlternativeForm().setTitle('Step Properties'.translate());
|
||
form = new PMUI.form.Form({
|
||
id: 'stepsEditCondition',
|
||
width: 500,
|
||
title: 'Condition Trigger'.translate(),
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
id: 'step_mode',
|
||
pmType: 'radio',
|
||
label: 'Mode'.translate(),
|
||
value: '',
|
||
visible: step.step_type_obj === "DYNAFORM" ? true : false,
|
||
name: 'step_mode',
|
||
options: [{
|
||
id: 'modeEdit',
|
||
label: 'Edit'.translate(),
|
||
value: 'EDIT',
|
||
selected: true
|
||
}, {
|
||
id: 'modeView',
|
||
label: 'View'.translate(),
|
||
value: 'VIEW'
|
||
}]
|
||
},
|
||
new CriteriaField({
|
||
id: 'step_condition',
|
||
pmType: 'textarea',
|
||
name: 'step_condition',
|
||
valueType: 'string',
|
||
label: 'Condition'.translate(),
|
||
placeholder: 'Insert a condition'.translate(),
|
||
rows: 150,
|
||
controlsWidth: 250,
|
||
renderType: 'textarea'
|
||
})
|
||
]
|
||
});
|
||
this.getWindowAlternativeForm().addItem(form);
|
||
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + that.getConfigWebEntry().tas_uid + '/step/' + step.step_uid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
form.getField('step_mode').setValue(response.step_mode);
|
||
form.getField('step_condition').setValue(response.step_condition);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
saveButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-save");
|
||
cancelButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-cancel");
|
||
criteriaButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-criteria");
|
||
if (saveButton) {
|
||
saveButton.setHandler(function () {
|
||
var restClient;
|
||
if (form.isValid()) {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + that.getConfigWebEntry().tas_uid + '/step/' + step.step_uid,
|
||
typeRequest: 'update',
|
||
data: form.getData(),
|
||
functionSuccess: function () {
|
||
that.getWindowAlternativeForm().close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'There are problems update the Step Trigger, please try again.'.translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
});
|
||
}
|
||
if (cancelButton) {
|
||
cancelButton.setHandler(function () {
|
||
that.getWindowAlternativeForm().close();
|
||
});
|
||
}
|
||
if (criteriaButton) {
|
||
criteriaButton.handler = null;
|
||
criteriaButton.setVisible(false);
|
||
}
|
||
this.getWindowAlternativeForm().open();
|
||
},
|
||
|
||
/**
|
||
* Opens the step of the selected step with the current settings
|
||
* @param step, is the data of selected step
|
||
* @param accordioItem
|
||
* @chainable
|
||
*/
|
||
editStepShow: function (step, accordioItem) {
|
||
var that = this,
|
||
inputDocument;
|
||
switch (step.step_type_obj) {
|
||
case 'DYNAFORM':
|
||
var restProxy = new PMRestClient({
|
||
endpoint: 'dynaform/' + step.step_uid_obj,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var old = PMUI.activeCanvas,
|
||
formDesigner;
|
||
PMUI.activeCanvas = false;
|
||
formDesigner = PMDesigner.dynaformDesigner(response);
|
||
formDesigner.onHide = function () {
|
||
var assignedDynaform,
|
||
i,
|
||
data,
|
||
title;
|
||
assignedDynaform = that.getStepsAssignedByCriteria("DYNAFORM");
|
||
if (jQuery.isArray(assignedDynaform)) {
|
||
for (i = 0; i < assignedDynaform.length; i += 1) {
|
||
data = assignedDynaform[i];
|
||
if (typeof data === "object") {
|
||
if (data.step_uid === step.step_uid) {
|
||
title = data.step_position + ". " + data.obj_title;
|
||
title = title + ' (' + that.stepsType["DYNAFORM"] + ')';
|
||
accordioItem.setTitle(title);
|
||
accordioItem.dataItem = data;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
PMUI.activeCanvas = old;
|
||
};
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restProxy.executeRestClient();
|
||
break;
|
||
case 'OUTPUT_DOCUMENT':
|
||
PMDesigner.output();
|
||
PMDesigner.output.showTiny(step.step_uid_obj);
|
||
break;
|
||
case 'INPUT_DOCUMENT':
|
||
inputDocument = new InputDocument({
|
||
onUpdateInputDocumentHandler: function (data, inputDoc) {
|
||
var position, title;
|
||
position = accordioItem.dataItem.step_position;
|
||
title = position + ". " + data.inp_doc_title;
|
||
title = title + ' (' + this.stepsType["INPUT_DOCUMENT"] + ')';
|
||
accordioItem.dataItem.obj_title = data.inp_doc_title;
|
||
accordioItem.setTitle(title);
|
||
inputDoc.winMainInputDocument.close();
|
||
}
|
||
});
|
||
inputDocument.build();
|
||
inputDocument.openFormInMainWindow();
|
||
inputDocument.inputDocumentFormGetProxy(step.step_uid_obj);
|
||
break;
|
||
}
|
||
},
|
||
|
||
/**
|
||
* Edit the selected trigger condition
|
||
* @param stepID, It is the id of the step to upgrade
|
||
* @param triggerID, is the id of the trigger to update
|
||
* @param stepType, It is the kind of step to update
|
||
* @param row, PMUI.grid.GridPanelRow, is the row affected
|
||
*/
|
||
editCondition: function (stepID, triggerID, stepType, row) {
|
||
var that = this,
|
||
saveButton,
|
||
cancelButton,
|
||
criteriaButton,
|
||
form,
|
||
dataRow;
|
||
dataRow = row.getData();
|
||
this.setWindowAlternative(null);
|
||
this.getWindowAlternativeForm().setWidth(500);
|
||
this.getWindowAlternativeForm().setHeight(350);
|
||
this.getWindowAlternativeForm().setTitle('Condition Trigger'.translate());
|
||
this.getWindowAlternativeForm().setTitle("Trigger".translate());
|
||
form = new PMUI.form.Form({
|
||
id: 'idFormEditCondition',
|
||
width: 500,
|
||
title: 'Condition Trigger'.translate(),
|
||
visibleHeader: false,
|
||
items: [
|
||
new CriteriaField({
|
||
id: 'st_condition',
|
||
pmType: 'textarea',
|
||
name: 'st_condition',
|
||
valueType: 'string',
|
||
label: 'Condition'.translate(),
|
||
placeholder: 'Insert a condition'.translate(),
|
||
rows: 150,
|
||
controlsWidth: 250,
|
||
renderType: 'textarea',
|
||
value: dataRow.st_condition
|
||
})
|
||
]
|
||
});
|
||
this.getWindowAlternativeForm().addItem(form);
|
||
saveButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-save");
|
||
cancelButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-cancel");
|
||
criteriaButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-criteria");
|
||
if (saveButton) {
|
||
saveButton.setHandler(function () {
|
||
var data,
|
||
restClient;
|
||
data = form.getData();
|
||
data.st_type = stepType;
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + that.getConfigWebEntry().tas_uid + '/step/'
|
||
+ ((typeof (stepID) != "undefined") ? stepID + "/" : "") + 'trigger/' + triggerID,
|
||
typeRequest: 'update',
|
||
data: data,
|
||
messageError: 'There are problems update the Step Trigger, please try again.'.translate(),
|
||
functionSuccess: function (xhr, response) {
|
||
dataRow.st_condition = data.st_condition;
|
||
row.setData(dataRow);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
that.getWindowAlternativeForm().close();
|
||
});
|
||
}
|
||
if (cancelButton) {
|
||
cancelButton.setHandler(function () {
|
||
that.getWindowAlternativeForm().close();
|
||
});
|
||
}
|
||
if (criteriaButton) {
|
||
criteriaButton.setVisible(false);
|
||
criteriaButton.handler = null;
|
||
}
|
||
this.getWindowAlternativeForm().open();
|
||
},
|
||
|
||
/**
|
||
* This method is executed when editing a "trigger" in a row of the grid.
|
||
* secondary window opens with the current configuration of the trigger
|
||
* @param trigger, is the return value when is update 'trigger' action in the enpoint
|
||
* @param triggerID, is the id of the trigger to update
|
||
* @chainable
|
||
*/
|
||
editTrigger: function (trigger, triggerID) {
|
||
var that = this,
|
||
codeMirror,
|
||
saveButton,
|
||
cancelButton,
|
||
criteriaButton;
|
||
this.setWindowAlternative(null);
|
||
codeMirror = new PMCodeMirror({
|
||
id: "codeMirror"
|
||
});
|
||
CodeMirror.commands.autocomplete = function (cm) {
|
||
CodeMirror.showHint(cm, CodeMirror.phpHint);
|
||
};
|
||
codeMirror.setValue(trigger);
|
||
this.getWindowAlternativeForm().setWidth(DEFAULT_WINDOW_WIDTH);
|
||
this.getWindowAlternativeForm().setHeight(DEFAULT_WINDOW_HEIGHT);
|
||
this.getWindowAlternativeForm().setTitle("Trigger".translate());
|
||
saveButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-save");
|
||
cancelButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-cancel");
|
||
criteriaButton = this.getWindowAlternativeForm().footer.getItem("secondaryWindow-criteria");
|
||
if (saveButton) {
|
||
saveButton.setHandler(function () {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'trigger/' + triggerID,
|
||
typeRequest: 'update',
|
||
data: {
|
||
tri_param: '',
|
||
tri_webbot: codeMirror.getValue()
|
||
},
|
||
messageError: 'There are problems updating the trigger, please try again.'.translate(),
|
||
messageSuccess: 'Trigger updated correctly'.translate(),
|
||
flashContainer: that.getWindow(),
|
||
functionSuccess: function () {
|
||
that.getWindowAlternativeForm().close();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
});
|
||
}
|
||
if (cancelButton) {
|
||
cancelButton.setHandler(function () {
|
||
that.getWindowAlternativeForm().close();
|
||
});
|
||
}
|
||
if (criteriaButton) {
|
||
criteriaButton.setVisible(true);
|
||
criteriaButton.setHandler(function () {
|
||
var picker = new VariablePicker();
|
||
picker.open({
|
||
success: function (variable) {
|
||
var cursorPos,
|
||
codemirror;
|
||
codemirror = codeMirror.cm;
|
||
cursorPos = codemirror.getCursor();
|
||
codemirror.replaceSelection(variable);
|
||
codemirror.setCursor(cursorPos.line, cursorPos.ch);
|
||
}
|
||
});
|
||
});
|
||
}
|
||
this.getWindowAlternativeForm().open();
|
||
this.getWindowAlternativeForm().addItem(codeMirror);
|
||
codeMirror.cm.setSize(this.getWindowAlternativeForm().getWidth(), 380);
|
||
$(".CodeMirror.cm-s-default.CodeMirror-wrap").after($ctrlSpaceMessage.css({
|
||
"padding-left": "10px",
|
||
"margin": "3px 0px 0px 0px"
|
||
}));
|
||
codeMirror.cm.refresh();
|
||
},
|
||
|
||
/**
|
||
* Returns the type of step, for the execution of "endpoint"
|
||
* @param st_type, this a step type, the accepted parameters are:
|
||
* - BEFORE_ASSIGNMENT
|
||
* - BEFORE_ROUTING
|
||
* - AFTER_ROUTING
|
||
* - BEFORE
|
||
* - AFTER
|
||
* @returns {string}
|
||
*/
|
||
getStepType: function (st_type) {
|
||
var value;
|
||
switch (st_type) {
|
||
case 'BEFORE_ASSIGNMENT':
|
||
value = 'before-assignment';
|
||
break;
|
||
case 'BEFORE_ROUTING':
|
||
value = 'before-routing';
|
||
break;
|
||
case 'AFTER_ROUTING':
|
||
value = 'after-routing';
|
||
break;
|
||
case 'BEFORE':
|
||
value = 'before';
|
||
break;
|
||
case 'AFTER':
|
||
value = 'after';
|
||
break;
|
||
default:
|
||
value = '';
|
||
break;
|
||
}
|
||
return value;
|
||
},
|
||
|
||
/**
|
||
* Checks whether a trigger is already assigned in a grid
|
||
* @param grid, is instanceof PMUI.grid.Grid, in conducting the search
|
||
* @param tri_uid, search parameter in the rows of the grid
|
||
* @returns {boolean}
|
||
*/
|
||
isTriggerAssigned: function (grid, tri_uid) {
|
||
var data, i, exist = false;
|
||
data = grid.getData();
|
||
if (grid && jQuery.isArray(data)) {
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].tri_uid === tri_uid) {
|
||
exist = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return exist;
|
||
},
|
||
|
||
/**
|
||
* This method eliminates the list of triggers trigger an assigned step
|
||
* @param row, the row affected or selected
|
||
* @param grid, It is affected or grid to remove selected row
|
||
*/
|
||
removeTrigger: function (row, grid) {
|
||
var that = this,
|
||
message = 'Do you want to remove the trigger "',
|
||
messageData = row.getData().tri_title ? row.getData().tri_title : "",
|
||
yesButton,
|
||
noButton,
|
||
restClient;
|
||
message = message + messageData + '"?';
|
||
this.getConfirmWindow().setMessage(message.translate());
|
||
yesButton = this.getConfirmWindow().footer.getItem("confirmWindow-footer-yes");
|
||
if (yesButton) {
|
||
yesButton.setHandler(function () {
|
||
restClient = new PMRestClient({
|
||
endpoint: grid.step_uid === undefined ?
|
||
'activity/' + that.getConfigWebEntry().tas_uid + '/step/trigger/' + row.getData().tri_uid + '/'
|
||
+ that.getStepType(row.getData().st_type) : 'activity/' + that.getConfigWebEntry().tas_uid
|
||
+ '/step/' + grid.step_uid + '/trigger/' + row.getData().tri_uid
|
||
+ '/' + that.getStepType(row.getData().st_type),
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
grid.removeItem(row);
|
||
that.getConfirmWindow().close();
|
||
that.updateIndexToGrid(grid);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
flashContainer: that.getWindow(),
|
||
messageError: 'An unexpected error while deleting the trigger, please try again later.'.translate(),
|
||
messageSuccess: 'Trigger removed successfully'.translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
});
|
||
}
|
||
noButton = this.getConfirmWindow().footer.getItem("confirmWindow-footer-no");
|
||
if (noButton) {
|
||
noButton.setHandler(function () {
|
||
that.getConfirmWindow().close();
|
||
});
|
||
}
|
||
this.getConfirmWindow().open();
|
||
},
|
||
|
||
/**
|
||
* Updates indexes of elements selected grid
|
||
* @param grid, It is affected or grid to remove selected row
|
||
* @returns {stepsTask}
|
||
*/
|
||
updateIndexToGrid: function (grid) {
|
||
var cell, rows, i, row;
|
||
if (grid) {
|
||
rows = grid.getItems();
|
||
if (jQuery.isArray(rows)) {
|
||
for (i = 0; i < rows.length; i += 1) {
|
||
row = rows[i];
|
||
cell = row.cells.find("columnData");
|
||
if (cell) {
|
||
cell.setContent(i + 1);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* Add custom buttons on the head of an element of stepsAssignAccordion
|
||
* are three buttons
|
||
* properties
|
||
* edit
|
||
* remove
|
||
* @param html, is the html of the header accordion item
|
||
* @param step, the data of the step selected
|
||
* @param accordionItem
|
||
*/
|
||
customAccordionItemButtons: function (html, step, accordionItem) {
|
||
var that = this,
|
||
propertiesStep,
|
||
editStep,
|
||
removeStep,
|
||
$html,
|
||
containerButtons,
|
||
title;
|
||
if (html) {
|
||
$html = jQuery(html.getElementsByClassName("pmui-accordion-item-header"));
|
||
title = step.obj_title + ' (' + step.step_type_obj + ')';
|
||
$html.find(".pmui-accordion-item-title").get(0).title = title;
|
||
containerButtons = $('<div></div>');
|
||
containerButtons.addClass("propertiesTask-accordionItem");
|
||
propertiesStep = $('<a>' + 'Properties'.translate() + '</a>');
|
||
propertiesStep.addClass("mafe-button-edit propertiesTask-accordionButton");
|
||
editStep = $('<a>' + 'Edit'.translate() + '</a>');
|
||
editStep.addClass("mafe-button-edit propertiesTask-accordionButton");
|
||
removeStep = $('<a>' + 'Remove'.translate() + '</a>');
|
||
removeStep.addClass("mafe-button-delete propertiesTask-accordionButton");
|
||
|
||
propertiesStep.click(function (e) {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
that.propertiesStepShow(step);
|
||
return false;
|
||
});
|
||
|
||
editStep.click(function (e) {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
that.editStepShow(step, accordionItem);
|
||
return false;
|
||
});
|
||
|
||
removeStep.click(function (e) {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
that.removeStepShow(step);
|
||
return false;
|
||
});
|
||
containerButtons.append(propertiesStep);
|
||
containerButtons.append(editStep);
|
||
containerButtons.append(removeStep);
|
||
$html.append(containerButtons);
|
||
}
|
||
},
|
||
|
||
/**
|
||
* Add tooltip in treeNode elements
|
||
* @returns {stepsTask}
|
||
*/
|
||
updateIndexPosition: function (treeNode) {
|
||
var items,
|
||
i,
|
||
item,
|
||
$item,
|
||
text,
|
||
data;
|
||
if (treeNode && treeNode.html) {
|
||
items = treeNode.getItems();
|
||
if (jQuery.isArray(items)) {
|
||
for (i = 0; i < items.length; i += 1) {
|
||
item = items[i];
|
||
if (item.html) {
|
||
$item = $(item.html);
|
||
data = item.getData();
|
||
text = $item.find("a").get(0);
|
||
text.title = data.obj_title;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* This method loads the data to stepsAssignTree
|
||
* @param response, the answer is an array containing all the elements
|
||
* that will be loaded into the step stepsAssignTree
|
||
* @chainable
|
||
*/
|
||
loadTreePanelData: function (response) {
|
||
var data,
|
||
i,
|
||
j,
|
||
type,
|
||
label,
|
||
items = [],
|
||
dataTree = [],
|
||
treeNode;
|
||
data = response[1].response;
|
||
|
||
dataTree.push({
|
||
obj_title: 'Trigger (s)'.translate(),
|
||
items: [this.notItemConfig()]
|
||
});
|
||
|
||
for (i = 0; i < data.length; i += 1) {
|
||
items.push({
|
||
obj_title: data[i]['tri_title'],
|
||
obj_type: data[i]['tri_type'],
|
||
obj_uid: data[i]['tri_uid']
|
||
});
|
||
}
|
||
|
||
if (items.length) {
|
||
dataTree.shift();
|
||
dataTree.push({
|
||
obj_title: 'Trigger (s)'.translate(),
|
||
items: items,
|
||
id: "TRIGGER"
|
||
});
|
||
}
|
||
|
||
data = response[0].response;
|
||
type = this.groupType;
|
||
label = this.groupLabel;
|
||
items = [];
|
||
for (i = 0; i < type.length; i += 1) {
|
||
items = [];
|
||
for (j = 0; j < data.length; j += 1) {
|
||
if (type[i] === data[j].obj_type) {
|
||
items.push({
|
||
obj_title: data[j]['obj_title'],
|
||
obj_type: data[j]['obj_type'],
|
||
obj_uid: data[j]['obj_uid']
|
||
});
|
||
}
|
||
}
|
||
if (items.length === 0) {
|
||
dataTree.push({
|
||
obj_title: label[i].translate(),
|
||
items: [this.notItemConfig()],
|
||
behavior: '',
|
||
id: type[i]
|
||
});
|
||
} else {
|
||
dataTree.push({
|
||
obj_title: label[i].translate(),
|
||
items: items,
|
||
behavior: 'drag',
|
||
id: type[i]
|
||
});
|
||
}
|
||
}
|
||
this.getStepsAssignTree().clearItems();
|
||
for (i = 0; i < dataTree.length; i += 1) {
|
||
this.getStepsAssignTree().addDataItem(dataTree[i]);
|
||
treeNode = this.getStepsAssignTree().getItem(i);
|
||
treeNode.setID(dataTree[i].id);
|
||
this.updateIndexPosition(treeNode);
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* It is an extension to add the "sortable" event "stepsAssignTree".
|
||
* when choosing a node treePanel and you want to add to the accordion or the grid
|
||
* @chainable
|
||
*/
|
||
addEventSortableInTreePanelElements: function () {
|
||
var that = this,
|
||
items = this.getStepsAssignTree().getItems(),
|
||
connect,
|
||
i,
|
||
sw,
|
||
nodeItems;
|
||
for (i = 0; i < items.length; i += 1) {
|
||
nodeItems = items[i].getItems();
|
||
if (nodeItems.length && nodeItems[0].getData().obj_type) {
|
||
sw = items[i].getItems()[0].getData().obj_type === "SCRIPT";
|
||
connect = sw ? ".pmui-gridpanel-tbody" : ".pmui-accordion-panel-body";
|
||
$(items[i].html).find('ul').find('>li').draggable({
|
||
appendTo: document.body,
|
||
revert: "invalid",
|
||
helper: "clone".translate(),
|
||
cursor: "move",
|
||
zIndex: 1000,
|
||
connectToSortable: connect,
|
||
start: function (e) {
|
||
var i, nodeTag, node, nodeData, accordionItems, item;
|
||
nodeTag = e.target;
|
||
node = PMUI.getPMUIObject(nodeTag);
|
||
nodeData = node.getData();
|
||
accordionItems = that.getStepsAssignAccordion().getItems();
|
||
$(that.getStepsAssignAccordion().body).hide();
|
||
if (nodeData.obj_type !== "SCRIPT") {
|
||
for (i = 0; i < accordionItems.length; i += 1) {
|
||
item = accordionItems[i];
|
||
item.collapse();
|
||
}
|
||
}
|
||
$(that.getStepsAssignAccordion().body).show();
|
||
},
|
||
stop: function () {
|
||
var i = 0,
|
||
max;
|
||
if (that.elementAccordionOpen) {
|
||
max = that.elementAccordionOpen.getSize();
|
||
for (i = 0; i < max; i += 1) {
|
||
that.elementAccordionOpen.get(i).expand();
|
||
}
|
||
}
|
||
}
|
||
});
|
||
} else {
|
||
$(nodeItems[0].html).draggable("disable");
|
||
}
|
||
}
|
||
},
|
||
|
||
/**
|
||
* It is an extension to add the "sortable" event "stepAssignAccordion".
|
||
* when a node "treePanel" is added to stop runs and is where you choose if it's a sort or aggregation.
|
||
* @chainable
|
||
*/
|
||
addEventSortableInAccordionElements: function () {
|
||
var that = this,
|
||
tagContainer,
|
||
newIndex,
|
||
index,
|
||
treeNodeObject,
|
||
treeNodeData;
|
||
if (this.getStepsAssignAccordion() && this.getStepsAssignAccordion().html) {
|
||
tagContainer = this.getStepsAssignAccordion().body;
|
||
$(tagContainer).sortable({
|
||
items: '>div:not(#idAssignment,#idRouting)',
|
||
placeholder: 'steps-placeholder',
|
||
receive: function (event, ui) {
|
||
var item = ui ? ui.item : null;
|
||
if (item && item instanceof jQuery && item.length) {
|
||
treeNodeObject = PMUI.getPMUIObject(item.get(0));
|
||
treeNodeData = treeNodeObject.getData();
|
||
}
|
||
},
|
||
stop: function (event, ui) {
|
||
var itemClone = ui ? ui.item : null,
|
||
accordionItems,
|
||
accordionItem,
|
||
dataEdited,
|
||
restClientMultipart,
|
||
restClient;
|
||
var newIndex = ui.item.index();
|
||
accordionItems = that.getStepsAssignAccordion().getItems();
|
||
if (itemClone && itemClone instanceof jQuery && itemClone.length) {
|
||
if (treeNodeObject) {
|
||
itemClone.remove();
|
||
if (newIndex + 1 > accordionItems.length) {
|
||
newIndex = that.stepsAssigned.getSize();
|
||
}
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + that.getConfigWebEntry().tas_uid + '/step',
|
||
typeRequest: 'post',
|
||
data: {
|
||
step_type_obj: treeNodeData.obj_type,
|
||
step_uid_obj: treeNodeData.obj_uid,
|
||
step_condition: '',
|
||
step_position: newIndex + 1,
|
||
step_mode: 'EDIT'
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var item, buttonAfected, treeNode;
|
||
that.getStepsAssignTree().removeItem(treeNodeObject);
|
||
treeNode = that.getStepsAssignTree().items.find("id", response.step_type_obj);
|
||
if (treeNode.items.getSize() === 0) {
|
||
treeNode.addDataItem(that.notItemConfig());
|
||
}
|
||
response.obj_description = '';
|
||
response.obj_title = treeNodeData.obj_title;
|
||
response.triggers = [];
|
||
item = that.createAccordionItem(response, true, true);
|
||
item.dataItem = response;
|
||
if (that.getStepsAssignAccordion().items.getSize() === 2) {
|
||
that.getStepsAssignAccordion().addItem(item, 0);
|
||
} else {
|
||
that.getStepsAssignAccordion().addItem(item, newIndex);
|
||
}
|
||
that.getStepsAssignAccordion().defineEvents();
|
||
that.customAccordionItemButtons(item.html, response, item);
|
||
that.updateItemIndexToAccordion();
|
||
that.addEventSortableInAccordionElements();
|
||
that.addEventSortableInTreePanelElements();
|
||
buttonAfected = that.getLabelsPanel().getItem("expand-button");
|
||
buttonAfected.setDisabled(false);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'An unexpected error while assigning the step, please try again later.'
|
||
.translate(),
|
||
messageSuccess: 'Step assigned successfully.'.translate(),
|
||
flashContainer: that.getStepsAssignAccordion().getParent()
|
||
});
|
||
restClient.executeRestClient();
|
||
} else {
|
||
accordionItem = PMUI.getPMUIObject(ui.item.get(0));
|
||
index = that.getStepsAssignAccordion().items.indexOf(accordionItem);
|
||
if (newIndex !== index) {
|
||
that.getStepsAssignAccordion().items.remove(accordionItem);
|
||
that.getStepsAssignAccordion().items.insertAt(accordionItem, newIndex);
|
||
dataEdited = {
|
||
step_position: newIndex + 1,
|
||
step_uid: accordionItem.dataItem.step_uid,
|
||
step_type_obj: accordionItem.dataItem.step_type_obj,
|
||
step_uid_obj: accordionItem.dataItem.step_uid_obj
|
||
};
|
||
restClientMultipart = new PMRestClient({
|
||
endpoint: 'activity/' + that.getConfigWebEntry().tas_uid + '/step/'
|
||
+ accordionItem.dataItem.step_uid,
|
||
typeRequest: 'update',
|
||
data: dataEdited,
|
||
functionSuccess: function (xhr, response) {
|
||
that.updateItemIndexToAccordion();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'An unexpected error while editing the step, please try again later.'
|
||
.translate(),
|
||
messageSuccess: 'Step editing successfully.'.translate(),
|
||
flashContainer: that.getWindow()
|
||
});
|
||
restClientMultipart.executeRestClient();
|
||
}
|
||
}
|
||
}
|
||
},
|
||
start: function (e, ui) {
|
||
newIndex = ui.item.index();
|
||
}
|
||
});
|
||
}
|
||
},
|
||
|
||
/**
|
||
* Updates indexes of elements assigned
|
||
* @returns {stepsTask}
|
||
*/
|
||
updateItemIndexToAccordion: function () {
|
||
var title,
|
||
i,
|
||
item,
|
||
dataItem,
|
||
items = this.getStepsAssignAccordion().items,
|
||
position,
|
||
max;
|
||
max = items.getSize();
|
||
for (i = 0; i < max; i += 1) {
|
||
item = items.get(i);
|
||
position = items.indexOf(item);
|
||
dataItem = item.dataItem;
|
||
title = (position + 1) + ". " + dataItem.obj_title;
|
||
if (this.stepsType[dataItem.step_type_obj]) {
|
||
title = title + ' (' + this.stepsType[dataItem.step_type_obj] + ')';
|
||
}
|
||
item.dataItem.step_position = i + 1;
|
||
item.setTitle(title);
|
||
}
|
||
return this;
|
||
},
|
||
|
||
/**
|
||
* The window opens for confirmation of the removal step
|
||
* @param step, the current step to remove
|
||
* @chainable
|
||
*/
|
||
removeStepShow: function (step) {
|
||
var that = this,
|
||
title,
|
||
yesButton,
|
||
noButton,
|
||
restClient;
|
||
if (this.stepsType[step.step_type_obj] !== undefined) {
|
||
title = "Step {0} ( {1} )".translate([step.obj_title, this.stepsType[step.step_type_obj]]);
|
||
this.getConfirmWindow().setTitle(title);
|
||
} else {
|
||
this.getConfirmWindow().setTitle("Step " + step.step_type_obj.capitalize());
|
||
}
|
||
this.getConfirmWindow().setMessage("Do you want to remove the step '{0}'?".translate([step.obj_title]));
|
||
yesButton = this.getConfirmWindow().footer.getItem("confirmWindow-footer-yes");
|
||
noButton = this.getConfirmWindow().footer.getItem("confirmWindow-footer-no");
|
||
if (yesButton) {
|
||
yesButton.setHandler(function () {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'activity/' + that.getConfigWebEntry().tas_uid + '/step/' + step.step_uid,
|
||
typeRequest: 'remove',
|
||
functionSuccess: function (xhr, response) {
|
||
that.removingStepTask(step, response);
|
||
that.getConfirmWindow().close();
|
||
that.updateItemIndexToAccordion();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: 'An unexpected error while deleting the step, please try again later.'.translate(),
|
||
messageSuccess: 'Step removed successfully'.translate(),
|
||
flashContainer: that.getWindow().getParent()
|
||
});
|
||
restClient.executeRestClient();
|
||
});
|
||
}
|
||
if (noButton) {
|
||
noButton.setHandler(function () {
|
||
that.getConfirmWindow().close();
|
||
});
|
||
}
|
||
this.getConfirmWindow().open();
|
||
},
|
||
|
||
/**
|
||
* Get the steps is not assigned by a criterion
|
||
* @param criteria, It is the filter criteria search
|
||
* @param stepAvailable, all steps Unassigned
|
||
* @returns {Array}, filtered items
|
||
*/
|
||
getAvailablesStepsByCriteria: function (criteria, stepAvailable) {
|
||
var items = [],
|
||
i;
|
||
if (jQuery.isArray(stepAvailable)) {
|
||
for (i = 0; i < stepAvailable.length; i += 1) {
|
||
if (stepAvailable[i].obj_type === criteria) {
|
||
items.push(stepAvailable[i]);
|
||
}
|
||
}
|
||
}
|
||
return items;
|
||
},
|
||
|
||
/**
|
||
* Eliminates the step of step Assign Accordion
|
||
* @param step, the current step to remove
|
||
* @param response, data from the endpoint
|
||
*/
|
||
removingStepTask: function (step, response) {
|
||
var stepObject,
|
||
stepAvailable,
|
||
treeNodeObject,
|
||
stepAvailables,
|
||
i,
|
||
itemsTreeNode = [],
|
||
items = [];
|
||
stepObject = this.getStepsAssignAccordion().getItem("id" + step.step_uid_obj);
|
||
this.elementAccordionOpen.remove(stepObject);
|
||
this.stepsAssigned.remove(stepObject);
|
||
this.getStepsAssignAccordion().removeItem(stepObject);
|
||
if (stepObject) {
|
||
this.getStepAvailables(
|
||
function (xhr, response) {
|
||
stepAvailable = response[0] ? response[0].response : [];
|
||
},
|
||
function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
);
|
||
stepAvailables = this.getAvailablesStepsByCriteria(step.step_type_obj, stepAvailable);
|
||
for (i = 0; i < stepAvailables.length; i += 1) {
|
||
items.push({
|
||
obj_title: stepAvailables[i]['obj_title'],
|
||
obj_type: stepAvailables[i]['obj_type'],
|
||
obj_uid: stepAvailables[i]['obj_uid']
|
||
});
|
||
}
|
||
treeNodeObject = this.getStepsAssignTree().getItem(step.step_type_obj);
|
||
itemsTreeNode = treeNodeObject.getItems();
|
||
for (i = 0; i < itemsTreeNode.length; i += 1) {
|
||
treeNodeObject.removeItem(itemsTreeNode[i]);
|
||
}
|
||
treeNodeObject.clearItems();
|
||
treeNodeObject.setDataItems(items);
|
||
this.updateIndexPosition(treeNodeObject);
|
||
this.addEventSortableInTreePanelElements();
|
||
this.addEventSortableInAccordionElements();
|
||
}
|
||
},
|
||
|
||
/**
|
||
* This method is executed when an element stepsAssignTree, is assigned in a grid
|
||
* @param receiveData, data of the droppable item
|
||
* @param grid, the affected grid
|
||
* @param index, the index position row
|
||
* @returns {stepsTask}
|
||
*/
|
||
receiveTreeNodeItem: function (receiveData, grid, index) {
|
||
var restClient,
|
||
message,
|
||
that = this;
|
||
if (this.isTriggerAssigned(grid, receiveData.obj_uid)) {
|
||
message = new PMUI.ui.FlashMessage({
|
||
message: 'Trigger is assigned.'.translate(),
|
||
duration: 3000,
|
||
severity: 'error',
|
||
appendTo: this.getWindow()
|
||
});
|
||
message.show();
|
||
return;
|
||
}
|
||
restClient = new PMRestClient({
|
||
endpoint: grid.step_uid === undefined ?
|
||
'activity/' + that.getConfigWebEntry().tas_uid + '/step/trigger' : 'activity/'
|
||
+ that.getConfigWebEntry().tas_uid + '/step/' + grid.step_uid + '/trigger',
|
||
typeRequest: 'post',
|
||
data: {
|
||
tri_uid: receiveData.obj_uid,
|
||
st_type: grid.st_type,
|
||
st_condition: '',
|
||
st_position: index + 1
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
grid.addDataItem({
|
||
st_condition: '',
|
||
st_position: index + 1,
|
||
st_type: grid.st_type,
|
||
tri_description: '',
|
||
tri_title: receiveData.obj_title,
|
||
tri_uid: receiveData.obj_uid,
|
||
obj_title: receiveData.obj_title,
|
||
obj_uid: receiveData.obj_uid
|
||
}, index);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
return this;
|
||
}
|
||
};
|
||
var PMMessageType = function (options) {
|
||
var that = this;
|
||
this.msgt_uid = null;
|
||
this.edit = false;
|
||
this.editRow = null;
|
||
this.dirtyAcceptedValue = false;
|
||
this.fieldInfo = null;
|
||
this.onSave = new Function();
|
||
this.onEdit = new Function();
|
||
this.requiredMessage = null;
|
||
this.clickedClose = true;
|
||
this.previousMessageValue = null;
|
||
this.buttonCreate = new PMUI.ui.Button({
|
||
id: 'buttonCreate',
|
||
text: "Create".translate(),
|
||
height: '36px',
|
||
width: 100,
|
||
style: {
|
||
cssClasses: [
|
||
'mafe-button-create'
|
||
]
|
||
},
|
||
handler: function () {
|
||
that.showForm();
|
||
}
|
||
});
|
||
|
||
this.buttonFieldAdd = new PMUI.field.ButtonField({
|
||
id: 'buttonFieldAdd',
|
||
pmType: 'buttonField',
|
||
value: 'Create'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
controlsWidth: 50,
|
||
proportion: 0.6,
|
||
handler: function (field) {
|
||
that.addAcceptedValue();
|
||
},
|
||
buttonType: "success",
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top',
|
||
'padding-top': '37px',
|
||
'padding-right': '1px',
|
||
'padding-bottom': '1px',
|
||
'padding-left': '1px'
|
||
}
|
||
}
|
||
});
|
||
this.buttonFieldAdd.getControl().button.setButtonType("success");
|
||
|
||
this.buttonFieldCancel = new PMUI.field.ButtonField({
|
||
id: 'buttonFieldCancel',
|
||
pmType: 'buttonField',
|
||
value: 'Cancel'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
controlsWidth: 50,
|
||
proportion: 0.6,
|
||
handler: function (field) {
|
||
that.cancelAcceptedValue();
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
'vertical-align': 'top',
|
||
'padding-top': '37px',
|
||
'padding-right': '1px',
|
||
'padding-bottom': '1px',
|
||
'padding-left': '1px'
|
||
}
|
||
}
|
||
});
|
||
this.buttonFieldCancel.getControl().button.setButtonType("error");
|
||
|
||
this.frmMessageType = new PMUI.form.Form({
|
||
id: 'frmMessageType',
|
||
width: 'auto',
|
||
title: '',
|
||
visibleHeader: false,
|
||
items: [
|
||
{
|
||
id: 'txtMessageTypeName',
|
||
name: 'txtMessageTypeName',
|
||
pmType: 'text',
|
||
label: "Name".translate(),
|
||
placeholder: "Name".translate(),
|
||
value: '',
|
||
required: true,
|
||
valueType: 'string',
|
||
maxLength: 60,
|
||
controlsWidth: 460
|
||
},
|
||
{
|
||
id: "frmAcceptedValues",
|
||
pmType: 'panel',
|
||
legend: "Message Field".translate(),
|
||
fieldset: true,
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
pmType: "text",
|
||
name: "txtMessageTypeVariableName",
|
||
label: "Message Field Name".translate(),
|
||
labelWidth: "100%",
|
||
controlsWidth: "400px",
|
||
proportion: 2.5,
|
||
valueType: "string",
|
||
maxLength: 255,
|
||
required: true,
|
||
labelPosition: "top",
|
||
validators: [
|
||
{
|
||
pmType: "regexp",
|
||
criteria: /^[a-zA-Z_]+[0-9a-zA-Z_]+$/,
|
||
errorMessage: "A valid variable starts with a letter or underscore, followed by any number of letters, numbers, or underscores.".translate()
|
||
}
|
||
]
|
||
},
|
||
that.buttonFieldCancel,
|
||
that.buttonFieldAdd
|
||
]
|
||
}
|
||
]
|
||
});
|
||
|
||
this.frmMessageType.getData = function () {
|
||
var data = getData2PMUI(that.frmMessageType.html);
|
||
return data;
|
||
};
|
||
|
||
this.gridMessages = new PMUI.grid.GridPanel({
|
||
id: 'gridMessages',
|
||
pageSize: 10,
|
||
width: '96%',
|
||
style: {
|
||
cssClasses: ['mafe-gridPanel']
|
||
},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
tableContainerHeight: 374,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return '';
|
||
},
|
||
columns: [{
|
||
id: "msgtName",
|
||
title: "Name".translate(),
|
||
dataType: "string",
|
||
columnData: "msgt_name",
|
||
alignmentCell: "left",
|
||
width: "330px",
|
||
sortable: true
|
||
}, {
|
||
id: 'msgtEdit',
|
||
dataType: 'button',
|
||
title: '',
|
||
buttonLabel: 'Edit'.translate(),
|
||
width: '60px',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-edit'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.showFormEdit(row.getData());
|
||
}
|
||
}, {
|
||
id: 'msgtDelete',
|
||
dataType: 'button',
|
||
title: '',
|
||
buttonLabel: function (row, data) {
|
||
return 'Delete'.translate();
|
||
},
|
||
width: '70px',
|
||
buttonStyle: {
|
||
cssClasses: [
|
||
'mafe-button-delete'
|
||
]
|
||
},
|
||
onButtonClick: function (row, grid) {
|
||
that.del(row.getData(), row, grid);
|
||
}
|
||
}
|
||
],
|
||
dataItems: null
|
||
});
|
||
|
||
this.gridAcceptedValues = new PMUI.grid.GridPanel({
|
||
id: 'gridAcceptedValues',
|
||
pageSize: 5,
|
||
height: 240,
|
||
style: {cssClasses: ['mafe-gridPanel']},
|
||
filterPlaceholder: 'Search ...'.translate(),
|
||
emptyMessage: 'No records found'.translate(),
|
||
nextLabel: 'Next'.translate(),
|
||
previousLabel: 'Previous'.translate(),
|
||
filterable: false,
|
||
tableContainerHeight: 200,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return '';
|
||
},
|
||
columns: [
|
||
{
|
||
id: "msgtv_name",
|
||
title: "Message Field Name".translate(),
|
||
columnData: "msgtv_name",
|
||
dataType: "string",
|
||
alignmentCell: "left",
|
||
width: 180,
|
||
sortable: true
|
||
},
|
||
{
|
||
id: "btnEdit",
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Edit".translate(),
|
||
width: 60,
|
||
buttonStyle: {cssClasses: ["mafe-button-edit"]},
|
||
|
||
onButtonClick: function (row, grid) {
|
||
that.editAcceptedValue(row);
|
||
}
|
||
},
|
||
{
|
||
id: "btnDelete",
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: function (row, data) {
|
||
return "Delete".translate();
|
||
},
|
||
width: 75,
|
||
buttonStyle: {cssClasses: ["mafe-button-delete"]},
|
||
onButtonClick: function (row, grid) {
|
||
that.deleteAcceptedValue(row);
|
||
}
|
||
}
|
||
],
|
||
dataItems: null
|
||
});
|
||
|
||
this.isDirtyFrmMessageType = function () {
|
||
$("input,select,textarea").blur();
|
||
if (this.frmMessageType.isVisible()) {
|
||
if (this.frmMessageType.isDirty() || this.dirtyAcceptedValue) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: 'messageWindowCancel',
|
||
width: 490,
|
||
title: "Message Types".translate(),
|
||
windowMessageType: 'warning',
|
||
bodyHeight: 'auto',
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
id: 'messageWindowNo',
|
||
text: 'No'.translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
id: 'messageWindowYes',
|
||
text: 'Yes'.translate(),
|
||
handler: function () {
|
||
that.requiredMessage.hide();
|
||
if (that.clickedClose) {
|
||
that.winMessageType.close();
|
||
}
|
||
message_window.close();
|
||
that.showGrid();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
if (this.clickedClose) {
|
||
this.winMessageType.close();
|
||
} else {
|
||
this.showGrid();
|
||
this.requiredMessage.hide();
|
||
}
|
||
}
|
||
} else {
|
||
this.winMessageType.close();
|
||
}
|
||
};
|
||
this.winMessageType = new PMUI.ui.Window({
|
||
id: 'winMessageType',
|
||
title: '',
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
buttonsPosition: 'right',
|
||
onBeforeClose: function () {
|
||
that.clickedClose = true;
|
||
that.isDirtyFrmMessageType();
|
||
},
|
||
footerItems: [
|
||
new PMUI.ui.Button({
|
||
id: 'winMessageTypeCancel',
|
||
text: 'Cancel'.translate(),
|
||
handler: function () {
|
||
that.clickedClose = false;
|
||
that.isDirtyFrmMessageType();
|
||
},
|
||
buttonType: 'error'
|
||
}),
|
||
new PMUI.ui.Button({
|
||
id: 'winMessageTypeSave',
|
||
text: "Save".translate(),
|
||
handler: function () {
|
||
that.frmAcceptedValues.getItems("fields").forEach(function (i) {
|
||
i.disable();
|
||
});
|
||
if (that.edit) {
|
||
that.updateMessageType();
|
||
} else {
|
||
that.createMessageType();
|
||
}
|
||
that.frmAcceptedValues.getItems("fields").forEach(function (i) {
|
||
i.enable();
|
||
});
|
||
},
|
||
buttonType: 'success'
|
||
})
|
||
],
|
||
buttonPanelPosition: 'bottom'
|
||
});
|
||
PMMessageType.prototype.init.call(this);
|
||
};
|
||
|
||
PMMessageType.prototype.init = function () {
|
||
var that = this;
|
||
|
||
that.buttonCreate.defineEvents();
|
||
that.winMessageType.addItem(that.gridMessages);
|
||
that.winMessageType.addItem(that.frmMessageType);
|
||
that.winMessageType.addItem(that.gridAcceptedValues);
|
||
that.winMessageType.hideFooter();
|
||
that.winMessageType.open();
|
||
that.requiredMessage = $(document.getElementById("requiredMessage"));
|
||
|
||
this.buttonFieldAdd.controls[0].button.setStyle({cssProperties: {padding: "6px 15px"}});
|
||
this.buttonFieldCancel.controls[0].button.setStyle({cssProperties: {padding: "6px 15px"}});
|
||
that.requiredMessage.css({float: "none"});
|
||
that.winMessageType.footer.html.style.textAlign = 'right';
|
||
|
||
that.frmAcceptedValues = PMUI.getPMUIObject($('#frmAcceptedValues').css({'width': '690px'}).get(0));
|
||
$('#gridMessages .pmui-textcontrol').css({'margin-top': '5px', width: '250px'});
|
||
|
||
//$(that.frmAcceptedValues.getHTML()).find("#requiredMessage").empty();
|
||
that.requiredMessage.hide();
|
||
//that.winMessageType.body.appendChild(that.requiredMessage[0]);
|
||
that.gridMessages.dom.toolbar.appendChild(that.buttonCreate.getHTML());
|
||
that.showGrid();
|
||
|
||
validateKeysField(that.frmMessageType.getField('txtMessageTypeName').getControls()[0].getHTML(), ['isbackspace', 'isnumber', 'isletter', 'isunderscore']);
|
||
that.resetFrmAcceptedValues();
|
||
};
|
||
|
||
PMMessageType.prototype.createMessageType = function () {
|
||
var that = this,
|
||
data;
|
||
|
||
if (!this.frmMessageType.isValid()) {
|
||
return;
|
||
}
|
||
if (that.gridAcceptedValues.getData().length == 0) {
|
||
PMDesigner.msgFlash('Add at least one variable.'.translate(), winMessageType, 'error', 3000, 5);
|
||
return;
|
||
}
|
||
|
||
data = this.frmMessageType.getData();
|
||
data.msgt_name = data.txtMessageTypeName;
|
||
data.msgt_variables = that.getDataAcceptedValues();
|
||
|
||
// This returned data is not necessary at sendind, so it is deleted
|
||
delete data.txtMessageTypeVariableName;
|
||
delete data.buttonFieldCancel;
|
||
delete data.buttonFieldAdd;
|
||
|
||
(new PMRestClient({
|
||
endpoint: 'message-type',
|
||
typeRequest: 'post',
|
||
functionSuccess: function (xhr, response) {
|
||
if (that.onSave(xhr, response) === false) {
|
||
that.msgt_uid = null;
|
||
return;
|
||
}
|
||
that.showGrid();
|
||
that.load();
|
||
that.msgt_uid = null;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
|
||
messageError: ' ',
|
||
data: data,
|
||
messageSuccess: "Message Type Saved successfully.".translate(),
|
||
flashContainer: that.panel
|
||
|
||
})).executeRestClient();
|
||
};
|
||
|
||
PMMessageType.prototype.updateMessageType = function () {
|
||
var that = this,
|
||
data;
|
||
if (!this.frmMessageType.isValid()) {
|
||
return;
|
||
}
|
||
if (that.gridAcceptedValues.getData().length == 0) {
|
||
if (!this.frmAcceptedValues.isValid()) {
|
||
return;
|
||
} else {
|
||
PMDesigner.msgFlash('Add at least one variable.'.translate(), winMessageType, 'error', 3000, 5);
|
||
return;
|
||
}
|
||
}
|
||
|
||
data = this.frmMessageType.getData();
|
||
data.msgt_name = data.txtMessageTypeName;
|
||
data.msgt_variables = that.getDataAcceptedValues();
|
||
|
||
(new PMRestClient({
|
||
endpoint: "message-type/" + that.msgt_uid,
|
||
typeRequest: "update",
|
||
data: data,
|
||
|
||
functionSuccess: function (xhr, response) {
|
||
if (that.onEdit(xhr, response, data) === false) {
|
||
that.msgt_uid = null;
|
||
return;
|
||
}
|
||
|
||
that.showGrid();
|
||
that.load();
|
||
that.msgt_uid = null;
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
|
||
messageError: ' ',
|
||
messageSuccess: "Message Type edited successfully.".translate(),
|
||
flashContainer: that.panel
|
||
})).executeRestClient();
|
||
};
|
||
|
||
PMMessageType.prototype.deleteMessage = function (msgt_uid) {
|
||
var that = this;
|
||
|
||
(new PMRestClient({
|
||
endpoint: 'message-type/' + msgt_uid,
|
||
typeRequest: 'remove',
|
||
|
||
functionSuccess: function (xhr, response) {
|
||
that.load();
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
|
||
messageError: 'Working...'.translate(),
|
||
messageSuccess: 'Message Type Deleted successfully'.translate(),
|
||
flashContainer: that.panel
|
||
})).executeRestClient();
|
||
};
|
||
|
||
PMMessageType.prototype.load = function () {
|
||
var that = this, restProxy;
|
||
|
||
restProxy = new PMRestClient({
|
||
endpoint: 'message-types',
|
||
typeRequest: 'get',
|
||
|
||
functionSuccess: function (xhr, response) {
|
||
that.gridMessages.setDataItems(response);
|
||
that.gridMessages.sort('msgt_name', 'asc');
|
||
|
||
$(that.gridMessages.dom.toolbar).find("input").val("");
|
||
that.gridMessages.clearFilter();
|
||
document.getElementById("requiredMessage").style.marginTop = "16px";
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
PMMessageType.prototype.del = function (data, row, grid) {
|
||
var that = this,
|
||
confirmWindow = new PMUI.ui.MessageWindow({
|
||
id: 'confirmWindowDel',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: "Message Types".translate(),
|
||
message: "Do you want to delete this Message Type?".translate(),
|
||
footerItems: [
|
||
{
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
that.deleteMessage(data.msgt_uid, row);
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
confirmWindow.open();
|
||
confirmWindow.dom.titleContainer.style.height = '17px';
|
||
confirmWindow.showFooter();
|
||
};
|
||
|
||
PMMessageType.prototype.showGrid = function () {
|
||
var that = this;
|
||
that.frmMessageType.setVisible(false);
|
||
that.frmAcceptedValues.setVisible(false);
|
||
that.gridAcceptedValues.setVisible(false);
|
||
$(that.gridMessages.dom.toolbar).find("input").val("");
|
||
that.gridMessages.clearFilter();
|
||
that.gridMessages.setVisible(true);
|
||
that.winMessageType.setTitle("Message Types".translate());
|
||
that.winMessageType.hideFooter();
|
||
};
|
||
|
||
PMMessageType.prototype.showForm = function () {
|
||
var that = this;
|
||
this.requiredMessage.show();
|
||
that.edit = false;
|
||
that.dirtyAcceptedValue = false;
|
||
that.frmMessageType.setVisible(true);
|
||
that.frmAcceptedValues.setVisible(true);
|
||
that.gridAcceptedValues.setVisible(true);
|
||
that.gridMessages.setVisible(false);
|
||
that.winMessageType.setTitle("Create Message Type".translate());
|
||
that.winMessageType.showFooter();
|
||
that.frmMessageType.reset();
|
||
that.frmMessageType.setFocus();
|
||
that.changeViewFieldType();
|
||
that.resetFrmAcceptedValues();
|
||
that.gridAcceptedValues.clearItems();
|
||
that.buttonFieldCancel.setVisible(false);
|
||
};
|
||
|
||
PMMessageType.prototype.showFormEdit = function (data) {
|
||
var that = this;
|
||
that.showForm();
|
||
that.msgt_uid = data.msgt_uid;
|
||
that.edit = true;
|
||
|
||
that.winMessageType.setTitle('Edit Message Type'.translate());
|
||
that.frmMessageType.getField('txtMessageTypeName').setValue(data.msgt_name);
|
||
|
||
that.setDataAcceptedValues(data.msgt_variables);
|
||
document.getElementById("requiredMessage").style.marginTop = "16px";
|
||
};
|
||
|
||
PMMessageType.prototype.changeViewFieldType = function () {
|
||
var that = this, sw = true;
|
||
|
||
that.frmAcceptedValues.setVisible(true);
|
||
that.gridAcceptedValues.setVisible(true);
|
||
|
||
validateKeysField(that.frmAcceptedValues.getField('txtMessageTypeVariableName').getControls()[0].getHTML(), ['isbackspace', 'isnumber', 'isletter', 'isunderscore']);
|
||
|
||
if (this.fieldInfo === null) {
|
||
this.fieldInfo = document.createTextNode('');
|
||
}
|
||
};
|
||
|
||
PMMessageType.prototype.addAcceptedValue = function () {
|
||
var that = this,
|
||
value = $.trim(that.frmAcceptedValues.getField('txtMessageTypeVariableName').getValue()),
|
||
message;
|
||
|
||
// if the form (form field's RegEx) is invalid, add a Message Field will not be allowed.
|
||
if (!that.frmAcceptedValues.isValid()) {
|
||
return;
|
||
}
|
||
|
||
if (that.previousMessageValue !== value && that.isAcceptedValueAdded(value)) {
|
||
message = new PMUI.ui.FlashMessage({
|
||
message: "The variable Name already exists.".translate(),
|
||
duration: 3000,
|
||
severity: 'error',
|
||
appendTo: that.winMessageType.footer
|
||
});
|
||
message.show();
|
||
return;
|
||
} else if (!value) {
|
||
message = new PMUI.ui.FlashMessage({
|
||
message: "Please, specify a name for the Message Field.".translate(),
|
||
duration: 3000,
|
||
severity: 'error',
|
||
appendTo: that.winMessageType.footer
|
||
});
|
||
return message.show();
|
||
}
|
||
that.previousMessageValue = null;
|
||
if (that.editRow === null) {
|
||
that.gridAcceptedValues.addItem(new PMUI.grid.GridPanelRow({
|
||
data: {
|
||
msgtv_name: value
|
||
}
|
||
}));
|
||
} else {
|
||
that.editRow.setData({
|
||
msgtv_name: value
|
||
});
|
||
}
|
||
|
||
that.dirtyAcceptedValue = true;
|
||
that.cancelAcceptedValue();
|
||
};
|
||
|
||
PMMessageType.prototype.editAcceptedValue = function (row) {
|
||
var that = this, data;
|
||
that.editRow = row;
|
||
data = row.getData();
|
||
|
||
that.previousMessageValue = data.msgtv_name;
|
||
that.frmAcceptedValues.getField('txtMessageTypeVariableName').setValue(data.msgtv_name);
|
||
that.buttonFieldAdd.setValue('Save'.translate());
|
||
that.buttonFieldCancel.setVisible(true);
|
||
};
|
||
|
||
PMMessageType.prototype.deleteAcceptedValue = function (row) {
|
||
var that = this,
|
||
confirmWindow = new PMUI.ui.MessageWindow({
|
||
id: 'confirmWindowDeleteAcceptedValue',
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
bodyHeight: 'auto',
|
||
title: "Message Type".translate(),
|
||
message: "Are you sure you want to delete the \"variable\"?".translate(),
|
||
footerItems: [
|
||
{
|
||
text: 'No'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
},
|
||
buttonType: "error"
|
||
}, {
|
||
text: 'Yes'.translate(),
|
||
visible: true,
|
||
handler: function () {
|
||
confirmWindow.close();
|
||
that.gridAcceptedValues.removeItem(row);
|
||
that.dirtyAcceptedValue = true;
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
|
||
confirmWindow.open();
|
||
confirmWindow.dom.titleContainer.style.height = '17px';
|
||
confirmWindow.showFooter();
|
||
};
|
||
|
||
PMMessageType.prototype.getDataAcceptedValues = function () {
|
||
var that = this, data = [], i;
|
||
|
||
if (that.gridAcceptedValues.visible) {
|
||
data = that.gridAcceptedValues.getData();
|
||
|
||
for (i = 0; i < data.length; i += 1) {
|
||
delete data[i].key;
|
||
delete data[i].type;
|
||
}
|
||
}
|
||
return data;
|
||
};
|
||
|
||
PMMessageType.prototype.setDataAcceptedValues = function (stringJsonData) {
|
||
var that = this, i, data;
|
||
if (!stringJsonData) {
|
||
return;
|
||
}
|
||
|
||
data = stringJsonData;
|
||
if (typeof stringJsonData === 'string') {
|
||
data = JSON.parse(stringJsonData);
|
||
}
|
||
|
||
if (that.gridAcceptedValues.visible) {
|
||
for (i = 0; i < data.length; i += 1) {
|
||
that.gridAcceptedValues.addItem(new PMUI.grid.GridPanelRow({
|
||
data: {
|
||
msgtv_name: data[i].msgtv_name,
|
||
msgtv_default_value: data[i].msgtv_default_value
|
||
}
|
||
}));
|
||
}
|
||
}
|
||
};
|
||
|
||
PMMessageType.prototype.cancelAcceptedValue = function () {
|
||
var that = this;
|
||
that.editRow = null;
|
||
that.buttonFieldAdd.setValue("Create".translate());
|
||
that.buttonFieldCancel.setVisible(false);
|
||
that.resetFrmAcceptedValues();
|
||
};
|
||
/**
|
||
* Validate if the value is present in the data collection.
|
||
* @param value
|
||
* @returns {boolean}
|
||
*/
|
||
PMMessageType.prototype.isAcceptedValueAdded = function (value) {
|
||
var that = this, i,
|
||
data = that.gridAcceptedValues.getData();
|
||
|
||
for (i = 0; i < data.length; i += 1) {
|
||
if (data[i].msgtv_name === value) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
};
|
||
/**
|
||
* Resets the fields from the form's panel for accepted values.
|
||
*/
|
||
PMMessageType.prototype.resetFrmAcceptedValues = function () {
|
||
this.frmAcceptedValues.getItems('fields').forEach(function (i) {
|
||
i.setValue("");
|
||
});
|
||
};
|
||
|
||
PMDesigner.messageType = function () {
|
||
var pmvariables = new PMMessageType();
|
||
pmvariables.load();
|
||
};
|
||
|
||
PMDesigner.messageType.create = function () {
|
||
var pmvariables = new PMMessageType();
|
||
pmvariables.showForm();
|
||
pmvariables.load();
|
||
};
|
||
|
||
var MessageEventDefinition = function (bpmnEvent) {
|
||
var that = this,
|
||
msgNameField,
|
||
variableSelector;
|
||
|
||
this.bpmnEvent = bpmnEvent;
|
||
this.arrayMessageType = [];
|
||
this.messageEventDefinitionOption = "";
|
||
this.messageEventDefinitionUid = "";
|
||
this.editRow = null;
|
||
this.eventType = bpmnEvent.evn_behavior;
|
||
this.gridCurrent = null;
|
||
this.editMessageForm = null;
|
||
this.dirtyGrid = false;
|
||
this.myTitle = "";
|
||
|
||
variableSelector = new CriteriaField({
|
||
id: "txtMessageTypeVariableDefaultValue",
|
||
name: "txtMessageTypeVariableDefaultValue",
|
||
valueType: "string",
|
||
label: that.bpmnEvent.evn_marker == "MESSAGECATCH" ? "Store value in".translate() : "Get value from".translate(),
|
||
maxLength: 200,
|
||
labelWidth: "50%",
|
||
controlsWidth: 300,
|
||
proportion: 3.4,
|
||
required: false
|
||
});
|
||
|
||
msgNameField = {
|
||
pmType: "text",
|
||
id: "txtMessageTypeVariableName",
|
||
name: "txtMessageTypeVariableName",
|
||
label: (that.bpmnEvent.evn_marker === "MESSAGECATCH" ? "Value" : "Name").translate(),
|
||
labelWidth: "40%",
|
||
controlsWidth: 200,
|
||
proportion: 2.5,
|
||
valueType: "string",
|
||
maxLength: 255,
|
||
readOnly: true,
|
||
required: false
|
||
};
|
||
|
||
this.cboMessageType = new PMUI.field.DropDownListField({
|
||
id: "cboMessageType",
|
||
name: "cboMessageType",
|
||
label: "Message Type".translate(),
|
||
options: [],
|
||
required: true,
|
||
controlsWidth: 150,
|
||
onChange: function (newValue, prevValue) {
|
||
var messageTypeData = that.getMessageTypeByIndex(that.cboMessageType.getValue());
|
||
if (messageTypeData != null) {
|
||
that.gridCurrent.setDataItems(messageTypeData.msgt_variables);
|
||
|
||
that._resetEditMessageForm();
|
||
}
|
||
}
|
||
});
|
||
|
||
this.isDirtyFormMessageEvent = function () {
|
||
if (that.frmMessageEventDefinition1.isDirty() || that.dirtyGrid) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageType",
|
||
width: 490,
|
||
title: that.myTitle.translate(),
|
||
windowMessageType: "warning",
|
||
bodyHeight: 'auto',
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
that.winMessageEventDefinition.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
that.winMessageEventDefinition.close();
|
||
}
|
||
};
|
||
|
||
this.txtCaseTitle = new CriteriaField({
|
||
id: "txtCaseTitle",
|
||
name: "txtCaseTitle",
|
||
valueType: "string",
|
||
label: "Case Title".translate(),
|
||
maxLength: 200,
|
||
value: "",
|
||
controlsWidth: 380
|
||
});
|
||
|
||
this.txtCorrelationValue = new CriteriaField({
|
||
id: "txtCorrelationValue",
|
||
name: "txtCorrelationValue",
|
||
valueType: "string",
|
||
label: "Correlation Value".translate(),
|
||
maxLength: 200,
|
||
value: "",
|
||
controlsWidth: 380
|
||
});
|
||
|
||
this.btnSaveVariable = new PMUI.field.ButtonField({
|
||
id: "btnSaveVariable",
|
||
pmType: "buttonField",
|
||
value: 'Save'.translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
controlsWidth: 50,
|
||
proportion: 0.8,
|
||
handler: function (field) {
|
||
that.addVariableInGrdPnlVariable3();
|
||
that.dirtyGrid = true;
|
||
},
|
||
buttonType: "success"
|
||
});
|
||
|
||
this.btnCancelVariable = new PMUI.field.ButtonField({
|
||
id: "btnCancelVariable",
|
||
pmType: "buttonField",
|
||
value: "Cancel".translate(),
|
||
labelVisible: false,
|
||
buttonAlign: 'center',
|
||
controlsWidth: 55,
|
||
proportion: 0.6,
|
||
|
||
handler: function (field) {
|
||
that.cancelAcceptedValue();
|
||
},
|
||
buttonType: "error"
|
||
});
|
||
|
||
this.frmMessageEventDefinition1 = new PMUI.form.Form({
|
||
id: "frmMessageEventDefinition1",
|
||
title: "",
|
||
width: DEFAULT_WINDOW_WIDTH - 70,
|
||
visibleHeader: false,
|
||
items: [
|
||
that.txtCaseTitle,
|
||
that.cboMessageType,
|
||
that.txtCorrelationValue,
|
||
{
|
||
id: "edit-panel",
|
||
pmType: "panel",
|
||
legend: "Message content".translate(),
|
||
fieldset: true,
|
||
layout: "hbox",
|
||
items: [
|
||
that.bpmnEvent.evn_marker === "MESSAGECATCH" ? variableSelector : msgNameField,
|
||
that.bpmnEvent.evn_marker === "MESSAGECATCH" ? msgNameField : variableSelector,
|
||
that.btnCancelVariable,
|
||
that.btnSaveVariable
|
||
]
|
||
}
|
||
],
|
||
style: {
|
||
cssProperties: {
|
||
marginBottom: '15px'
|
||
}
|
||
}
|
||
});
|
||
|
||
this.editMessageForm = this.frmMessageEventDefinition1.getItem("edit-panel");
|
||
|
||
this.grdPnlVariable3 = new PMUI.grid.GridPanel({
|
||
id: "grdPnlVariable3",
|
||
pageSize: 5,
|
||
style: {cssClasses: ["mafe-gridPanel"]},
|
||
emptyMessage: "No records found".translate(),
|
||
filterable: false,
|
||
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return "";
|
||
},
|
||
columns: [
|
||
{
|
||
id: "msgtv_name",
|
||
title: "Name".translate(),
|
||
columnData: "msgtv_name",
|
||
dataType: "string",
|
||
alignmentCell: "left",
|
||
width: 180
|
||
},
|
||
{
|
||
id: "msgtv_default_value",
|
||
title: "Get value from".translate(),
|
||
columnData: "msgtv_default_value",
|
||
dataType: "string",
|
||
alignmentCell: "left",
|
||
width: 300
|
||
},
|
||
{
|
||
id: "btnEdit",
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Edit".translate(),
|
||
width: 60,
|
||
buttonStyle: {cssClasses: ["mafe-button-edit"]},
|
||
|
||
onButtonClick: function (row, grid) {
|
||
that.setValueMessageEventDefinition(row);
|
||
}
|
||
}
|
||
],
|
||
|
||
dataItems: null
|
||
});
|
||
|
||
this.grdPnlReceive = new PMUI.grid.GridPanel({
|
||
id: "grdPnlVariable3",
|
||
pageSize: 5,
|
||
style: {cssClasses: ["mafe-gridPanel"]},
|
||
emptyMessage: "No records found".translate(),
|
||
filterable: false,
|
||
tableContainerHeight: 204,
|
||
customStatusBar: function (currentPage, pageSize, numberItems, criteria, filter) {
|
||
return "";
|
||
},
|
||
|
||
columns: [
|
||
{
|
||
id: "msgtv_default_value",
|
||
title: "Store value in".translate(),
|
||
columnData: "msgtv_default_value",
|
||
dataType: "string",
|
||
alignmentCell: "left",
|
||
width: 200
|
||
},
|
||
{
|
||
id: "msgtv_name",
|
||
title: "Name Value".translate(),
|
||
columnData: "msgtv_name",
|
||
dataType: "string",
|
||
alignmentCell: "left",
|
||
width: 280
|
||
},
|
||
{
|
||
id: "btnEdit",
|
||
dataType: "button",
|
||
title: "",
|
||
buttonLabel: "Edit".translate(),
|
||
width: 60,
|
||
buttonStyle: {cssClasses: ["mafe-button-edit"]},
|
||
|
||
onButtonClick: function (row, grid) {
|
||
that.setValueMessageEventDefinition(row);
|
||
}
|
||
}
|
||
],
|
||
dataItems: null
|
||
});
|
||
|
||
this.gridCurrent = this.grdPnlVariable3;
|
||
|
||
MessageEventDefinition.prototype.init.call(this);
|
||
};
|
||
|
||
MessageEventDefinition.prototype.init = function () {
|
||
var that = this;
|
||
|
||
that.createWindow();
|
||
that.winMessageEventDefinition.addItem(that.frmMessageEventDefinition1);
|
||
that.winMessageEventDefinition.addItem(that.gridCurrent);
|
||
|
||
that.winMessageEventDefinition.open();
|
||
this.editMessageForm.setVisible(false);
|
||
this.applyStylesPost();
|
||
|
||
that.load();
|
||
document.getElementById("requiredMessage").style.marginTop = "15px";
|
||
};
|
||
|
||
MessageEventDefinition.prototype.applyStylesPost = function () {
|
||
var that = this;
|
||
that.btnSaveVariable.controls[0].addCSSClasses(["pmui pmui-button pmui-success"]);
|
||
that.btnCancelVariable.controls[0].addCSSClasses(["pmui pmui-button pmui-error"]);
|
||
that.btnSaveVariable.controls[0].html.style.padding = "5px";
|
||
$(that.btnCancelVariable.controls[0].html).css({
|
||
padding: "5px",
|
||
width: "auto"
|
||
});
|
||
};
|
||
|
||
MessageEventDefinition.prototype.createWindow = function () {
|
||
var that = this;
|
||
|
||
if (that.bpmnEvent.evn_marker === "MESSAGECATCH") {
|
||
that.myTitle = (that.bpmnEvent.evn_type === "START" ? "Start Message Event" : "Intermediate Receive Message Event").translate();
|
||
that.gridCurrent = this.grdPnlReceive;
|
||
} else if (that.bpmnEvent.evn_marker === "MESSAGETHROW") {
|
||
that.myTitle = (that.bpmnEvent.evn_type == "END" ? "End Message Event" : "Intermediate Send Message Event").translate();
|
||
that.gridCurrent = this.grdPnlVariable3;
|
||
}
|
||
|
||
that.winMessageEventDefinition = new PMUI.ui.Window({
|
||
id: "winMessageEventDefinition",
|
||
title: that.myTitle.translate(),
|
||
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
modal: true,
|
||
onBeforeClose: function () {
|
||
that.isDirtyFormMessageEvent();
|
||
},
|
||
footerItems: [
|
||
{
|
||
pmType: "button",
|
||
buttonType: "error",
|
||
text: "Cancel".translate(),
|
||
handler: function () {
|
||
that.isDirtyFormMessageEvent();
|
||
}
|
||
},
|
||
{
|
||
pmType: "button",
|
||
buttonType: "success",
|
||
text: "Save".translate(),
|
||
|
||
handler: function () {
|
||
var correlationValueAux, data;
|
||
if (!that.frmMessageEventDefinition1.isValid()) {
|
||
return;
|
||
}
|
||
correlationValueAux = that.frmMessageEventDefinition1.getData();
|
||
data = {
|
||
evn_uid: that.bpmnEvent.evn_uid,
|
||
msgt_uid: that.cboMessageType.getValue(),
|
||
msged_variables: that.getVariablesByArray(that.grdPnlVariable3GetData()),
|
||
msged_correlation: correlationValueAux.txtCorrelationValue
|
||
};
|
||
|
||
data.case_title = that.txtCaseTitle.value;
|
||
switch (that.messageEventDefinitionOption) {
|
||
case "POST":
|
||
that.messageEventDefintionPostRestProxy(data);
|
||
|
||
that.gridCurrent.clearItems();
|
||
that.winMessageEventDefinition.close();
|
||
break;
|
||
case "PUT":
|
||
that.messageEventDefintionPutRestProxy(data, that.messageEventDefinitionUid);
|
||
that.gridCurrent.clearItems();
|
||
that.winMessageEventDefinition.close();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
],
|
||
|
||
footerAlign: "right",
|
||
visibleFooter: true,
|
||
closable: true,
|
||
buttonPanelPosition: "bottom"
|
||
});
|
||
};
|
||
|
||
MessageEventDefinition.prototype.getMessageTypeByIndex = function (messageTypeUid) {
|
||
var that = this,
|
||
i,
|
||
messageTypeData = null;
|
||
|
||
if (that.arrayMessageType.length > 0) {
|
||
for (i = 0; i <= that.arrayMessageType.length - 1; i += 1) {
|
||
if (that.arrayMessageType[i].msgt_uid == messageTypeUid) {
|
||
messageTypeData = that.arrayMessageType[i];
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return messageTypeData;
|
||
};
|
||
|
||
MessageEventDefinition.prototype.getVariablesByArray = function (arrayVariables) {
|
||
var variables = {}, i;
|
||
|
||
for (i = 0; i <= arrayVariables.length - 1; i += 1) {
|
||
variables[arrayVariables[i].msgtv_name] = arrayVariables[i].msgtv_default_value;
|
||
}
|
||
|
||
return variables;
|
||
};
|
||
|
||
MessageEventDefinition.prototype.getVariablesByObject = function (objectVariable) {
|
||
var that = this,
|
||
key, aux,
|
||
arrayData = [];
|
||
|
||
for (key in objectVariable) {
|
||
aux = {};
|
||
aux["msgtv_name"] = key;
|
||
aux["msgtv_default_value"] = objectVariable[key];
|
||
arrayData.push(aux);
|
||
}
|
||
return arrayData;
|
||
};
|
||
|
||
MessageEventDefinition.prototype.load = function () {
|
||
var that = this, restProxy;
|
||
|
||
that.messageEventDefinitionUid = "";
|
||
that.messageEventDefinitionOption = "";
|
||
|
||
restProxy = new PMRestClient({
|
||
typeRequest: "get",
|
||
endpoint: "message-event-definitions",
|
||
|
||
functionSuccess: function (xhr, response) {
|
||
var dataResponse = response,
|
||
i,
|
||
arrayMessageEventDefinition = dataResponse,
|
||
arrayMessageEventDefinitionData = {};
|
||
|
||
for (i = 0; i <= arrayMessageEventDefinition.length - 1; i += 1) {
|
||
if (arrayMessageEventDefinition[i].evn_uid == that.bpmnEvent.evn_uid) {
|
||
that.messageEventDefinitionUid = arrayMessageEventDefinition[i].msged_uid
|
||
arrayMessageEventDefinitionData = arrayMessageEventDefinition[i];
|
||
break;
|
||
}
|
||
}
|
||
|
||
that.cboMessageTypeSetOptionsRestProxy(that.cboMessageType, (typeof(arrayMessageEventDefinitionData.msgt_uid) != "undefined") ? arrayMessageEventDefinitionData.msgt_uid : "");
|
||
|
||
if (that.messageEventDefinitionUid == "") {
|
||
//POST
|
||
that.messageEventDefinitionOption = "POST";
|
||
|
||
that.editMessageForm.getField("txtMessageTypeVariableName").setValue("");
|
||
that.editMessageForm.getField("txtMessageTypeVariableDefaultValue").setValue("");
|
||
} else {
|
||
//PUT
|
||
that.messageEventDefinitionOption = "PUT";
|
||
|
||
that.gridCurrent.setDataItems(that.getVariablesByObject(arrayMessageEventDefinitionData.msged_variables));
|
||
that.frmMessageEventDefinition1.getField("txtCorrelationValue").setValue(arrayMessageEventDefinitionData.msged_correlation);
|
||
that.frmMessageEventDefinition1.getField("txtCaseTitle").setValue(arrayMessageEventDefinitionData.tas_def_title);
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
MessageEventDefinition.prototype.setValueMessageEventDefinition = function (row) {
|
||
var that = this, data;
|
||
|
||
that.editRow = row;
|
||
data = row.getData();
|
||
|
||
that.editMessageForm.getField("txtMessageTypeVariableName").setValue(data.msgtv_name);
|
||
that.editMessageForm.getField("txtMessageTypeVariableDefaultValue").setValue(data.msgtv_default_value);
|
||
|
||
that.editMessageForm.setVisible(true);
|
||
};
|
||
|
||
MessageEventDefinition.prototype.addVariableInGrdPnlVariable3 = function () {
|
||
var that = this,
|
||
data = {
|
||
msgtv_name: that.editMessageForm.getField("txtMessageTypeVariableName").getValue(),
|
||
msgtv_default_value: that.editMessageForm.getField("txtMessageTypeVariableDefaultValue").getValue()
|
||
};
|
||
|
||
if (that.editRow == null) {
|
||
that.gridCurrent.addItem(new PMUI.grid.GridPanelRow({
|
||
data: data
|
||
}));
|
||
} else {
|
||
that.editRow.setData(data);
|
||
}
|
||
|
||
that.cancelAcceptedValue();
|
||
};
|
||
|
||
MessageEventDefinition.prototype.cancelAcceptedValue = function () {
|
||
var that = this;
|
||
that.editRow = null;
|
||
that._resetEditMessageForm();
|
||
that.editMessageForm.setVisible(false);
|
||
};
|
||
|
||
MessageEventDefinition.prototype.grdPnlVariable3GetData = function () {
|
||
var that = this,
|
||
i,
|
||
data = [];
|
||
|
||
if (that.gridCurrent.visible) {
|
||
data = that.gridCurrent.getData();
|
||
|
||
for (i = 0; i <= data.length - 1; i += 1) {
|
||
delete data[i].key;
|
||
delete data[i].type;
|
||
}
|
||
}
|
||
return data;
|
||
};
|
||
|
||
MessageEventDefinition.prototype.cboMessageTypeSetOptionsRestProxy = function (cboMessageType, messageTypeUidSelected) {
|
||
var that = this, restProxy, iAux;
|
||
|
||
cboMessageType.clearOptions();
|
||
iAux = 0;
|
||
restProxy = new PMRestClient({
|
||
typeRequest: "get",
|
||
endpoint: "message-types",
|
||
|
||
functionSuccess: function (xhr, response) {
|
||
var dataResponse = response, messageTypeData, i, arrayOptions, iAux;
|
||
that.arrayMessageType = dataResponse;
|
||
arrayOptions = [];
|
||
for (i = 0; i <= dataResponse.length - 1; i += 1) {
|
||
if (dataResponse[i].msgt_uid == messageTypeUidSelected) {
|
||
iAux = i;
|
||
}
|
||
|
||
arrayOptions.push(
|
||
{
|
||
value: dataResponse[i].msgt_uid,
|
||
label: dataResponse[i].msgt_name
|
||
}
|
||
);
|
||
}
|
||
|
||
if (arrayOptions.length > 0) {
|
||
cboMessageType.setOptions(arrayOptions);
|
||
|
||
if (messageTypeUidSelected == "") {
|
||
//POST
|
||
cboMessageType.setValue(arrayOptions[0].value);
|
||
messageTypeData = that.getMessageTypeByIndex(arrayOptions[0].value);
|
||
|
||
if (messageTypeData != null) {
|
||
that.gridCurrent.setDataItems(messageTypeData.msgt_variables);
|
||
}
|
||
} else {
|
||
//PUT
|
||
cboMessageType.setValue(arrayOptions[iAux].value);
|
||
}
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
MessageEventDefinition.prototype.messageEventDefintionPostRestProxy = function (data) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "message-event-definition",
|
||
typeRequest: "post",
|
||
data: data,
|
||
|
||
functionSuccess: function (xhr, response) {
|
||
var dataResponse = response;
|
||
PMDesigner.msgFlash('The property event was saved successfully.'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
|
||
MessageEventDefinition.prototype.messageEventDefintionPutRestProxy = function (data, messageEventDefinitionUid) {
|
||
var restProxy = new PMRestClient({
|
||
endpoint: "message-event-definition/" + messageEventDefinitionUid,
|
||
typeRequest: "update",
|
||
data: data,
|
||
|
||
functionSuccess: function (xhr, response) {
|
||
var dataResponse = response;
|
||
PMDesigner.msgFlash('The property event was saved successfully.'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
|
||
restProxy.executeRestClient();
|
||
};
|
||
/**
|
||
* Reset the fields from the form's Edit panel.
|
||
* @returns {MessageEventDefinition}
|
||
* @private
|
||
*/
|
||
MessageEventDefinition.prototype._resetEditMessageForm = function () {
|
||
if (this.editMessageForm) {
|
||
this.editMessageForm.getItems().map(function (i) {
|
||
i.setValue("");
|
||
});
|
||
}
|
||
return this;
|
||
};
|
||
|
||
/*----------------------------------********---------------------------------*/
|
||
var FeatureUtils = function () {
|
||
|
||
};
|
||
|
||
FeatureUtils.prototype.generateUId = function () {
|
||
var text = "",
|
||
i,
|
||
possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||
for (i = 0; i < 16; i += 1) {
|
||
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
||
}
|
||
return text;
|
||
};
|
||
|
||
var ElementFactory = function () {
|
||
this.utils = new FeatureUtils();
|
||
};
|
||
|
||
ElementFactory.prototype.getElement = function (data) {
|
||
var element = {};
|
||
element.id = this.utils.generateUId();
|
||
element.name = data.name;
|
||
element.label = data.label;
|
||
element.valueType = data.valueType;
|
||
element.controlsWidth = data.controlsWidth;
|
||
element.required = data.required;
|
||
element.events = data.events;
|
||
element.listeners = data.listeners;
|
||
|
||
switch (data.type) {
|
||
case 'text':
|
||
element.pmType = data.type;
|
||
element.maxLength = 3;
|
||
break;
|
||
case 'hidden':
|
||
element.pmType = data.type;
|
||
break;
|
||
case 'textarea':
|
||
element.pmType = data.type;
|
||
element.rows = data.rows;
|
||
break;
|
||
case 'dropdown':
|
||
element.pmType = data.type;
|
||
element.options = data.options;
|
||
break;
|
||
case 'checkbox':
|
||
element.pmType = data.type;
|
||
break;
|
||
case 'link':
|
||
element.pmType = data.type;
|
||
break;
|
||
case 'button':
|
||
element.pmType = data.type;
|
||
break;
|
||
case 'criteria':
|
||
element.pmType = data.type;
|
||
element.rows = data.rows;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
return element;
|
||
};
|
||
|
||
var FeaturesHandler = function () {
|
||
this.elementFactory = new ElementFactory();
|
||
this.utils = new FeatureUtils();
|
||
this.forms = [];
|
||
};
|
||
|
||
FeaturesHandler.prototype.registerEvents = function (items) {
|
||
|
||
};
|
||
|
||
FeaturesHandler.prototype.registerListeners = function (items) {
|
||
|
||
};
|
||
|
||
FeaturesHandler.prototype.wireEvents = function (items) {
|
||
this.registerEvents(items);
|
||
this.registerListeners(items);
|
||
};
|
||
|
||
FeaturesHandler.prototype.parseForm = function (formData) {
|
||
var form = {};
|
||
form.id = this.utils.generateUId();
|
||
form.title = formData.title;
|
||
form.icon = (formData.icon || '');
|
||
form.action = formData.action;
|
||
form.panel = new PMUI.form.Form({
|
||
id: this.utils.generateUId(),
|
||
visibleHeader: false,
|
||
width: DEFAULT_WINDOW_WIDTH - 250,
|
||
items: this.parseItems(formData)
|
||
});
|
||
return form;
|
||
};
|
||
|
||
FeaturesHandler.prototype.parseItems = function (formData) {
|
||
var items = [];
|
||
if (this.validateData(formData)) {
|
||
for (var i in formData.fields) {
|
||
items.push(
|
||
this.elementFactory.getElement(formData.fields[i])
|
||
);
|
||
}
|
||
}
|
||
this.wireEvents(items);
|
||
return items;
|
||
};
|
||
|
||
FeaturesHandler.prototype.validateData = function (formData) {
|
||
switch (true) {
|
||
case !(formData.type == 'form'):
|
||
return false;
|
||
break;
|
||
case formData.language == undefined:
|
||
return false;
|
||
break;
|
||
default:
|
||
return true;
|
||
break;
|
||
}
|
||
};
|
||
|
||
FeaturesHandler.prototype.getForms = function () {
|
||
return [];
|
||
};
|
||
|
||
PMDesigner.featuresHandler = new FeaturesHandler();
|
||
/*----------------------------------********---------------------------------*/
|
||
/**
|
||
* @class IntroHelper
|
||
* Handle Intro helper
|
||
*
|
||
* @constructor
|
||
* Creates a new instance of the class
|
||
* @param {Object} options
|
||
*/
|
||
var IntroHelper = function (options) {
|
||
this.steps = [];
|
||
this.onExit = null;
|
||
this.introjs = null;
|
||
IntroHelper.prototype.initObject.call(this, options);
|
||
};
|
||
IntroHelper.prototype.type = 'IntroHelper';
|
||
|
||
IntroHelper.prototype.initObject = function (options) {
|
||
var defaults = {
|
||
steps: [],
|
||
skipLabel: "Skip",
|
||
onExit : new Function()
|
||
};
|
||
$.extend(true, defaults, options);
|
||
this.setSteps(defaults.steps);
|
||
|
||
this.setSkipLabel(defaults.skipLabel);
|
||
this.setNextLabel(defaults.nextLabel);
|
||
this.setPrevLabel(defaults.prevLabel);
|
||
this.setDoneLabel(defaults.doneLabel);
|
||
this.setOnExit(defaults.onExit);
|
||
};
|
||
|
||
IntroHelper.prototype.setSteps = function (steps) {
|
||
this.steps = steps;
|
||
return this;
|
||
};
|
||
|
||
IntroHelper.prototype.setSkipLabel = function (label) {
|
||
this.skipLabel = label;
|
||
return this;
|
||
};
|
||
IntroHelper.prototype.setNextLabel = function (label) {
|
||
this.nextLabel = label;
|
||
return this;
|
||
};
|
||
|
||
IntroHelper.prototype.setPrevLabel = function (label) {
|
||
this.prevLabel = label;
|
||
return this;
|
||
};
|
||
|
||
IntroHelper.prototype.setDoneLabel = function (label) {
|
||
this.doneLabel = label;
|
||
return this;
|
||
};
|
||
|
||
IntroHelper.prototype.setSkipLabel = function (label) {
|
||
this.skipLabel = label;
|
||
return this;
|
||
};
|
||
|
||
IntroHelper.prototype.setOnExit = function (callback) {
|
||
if (callback && typeof callback == "function") {
|
||
this.onExit = callback;
|
||
}
|
||
return this;
|
||
};
|
||
|
||
IntroHelper.prototype.startIntro = function () {
|
||
var that = this;
|
||
this.introjs = introJs();
|
||
this.introjs.setOptions({
|
||
steps: this.steps,
|
||
skipLabel: this.skipLabel,
|
||
nextLabel: this.nextLabel,
|
||
prevLabel: this.prevLabel,
|
||
doneLabel: this.doneLabel
|
||
});
|
||
this.introjs.onexit(function () {
|
||
that.onExit();
|
||
});
|
||
|
||
this.introjs.start();
|
||
};
|
||
(function () {
|
||
PMDesigner.scriptTaskProperties = function (activity) {
|
||
var that = this,
|
||
taskUid,
|
||
taskType,
|
||
triggerSelectedData,
|
||
oldValue,
|
||
uidProj,
|
||
scrtas_uid,
|
||
buttonCancel,
|
||
restClientNewScriptTask,
|
||
restClientUpdateScriptTask,
|
||
restClientNewTrigger,
|
||
restClientUpdateTrigger,
|
||
$ctrlSpaceMessage,
|
||
triggerEngine,
|
||
getListTrigger,
|
||
getScriptTask,
|
||
formScriptTask,
|
||
buttonSave,
|
||
domSettings,
|
||
scriptTaskPropertiesWindow,
|
||
triggerUid;
|
||
|
||
taskUid = activity.getID();
|
||
taskType = activity.getTaskType();
|
||
taskType = "TRIGGER";
|
||
oldValue = "";
|
||
uidProj = PMDesigner.project.id;
|
||
scrtas_uid = "";
|
||
triggerUid = "";
|
||
$ctrlSpaceMessage = $("<p class='ctrlSpaceMessage'>" + "Press".translate() + " <strong>ctrl+space</strong> " + "to get the function list".translate() + ".</p>");
|
||
|
||
/*window*/
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'cancelScriptButton',
|
||
text: "Cancel".translate(),
|
||
buttonType: 'error',
|
||
handler: function (event) {
|
||
clickedClose = false;
|
||
scriptTaskPropertiesWindow.isDirtyFormScript();
|
||
}
|
||
});
|
||
|
||
restClientNewScriptTask = function (triggerUid) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'script-task',
|
||
typeRequest: 'post',
|
||
data: {
|
||
scrtas_obj_uid: triggerUid,
|
||
act_uid: taskUid,
|
||
scrtas_obj_type: taskType
|
||
},
|
||
functionSuccess: function () {
|
||
scriptTaskPropertiesWindow.close();
|
||
PMDesigner.msgFlash('Script Task saved correctly'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems updating the Script Task, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
restClientUpdateScriptTask = function (triggerUid) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'script-task/' + formScriptTask.getItems()[0].items.get(4).getValue(),
|
||
typeRequest: 'update',
|
||
data: {
|
||
scrtas_obj_uid: triggerUid, /*trigger uid*/
|
||
act_uid: taskUid,
|
||
scrtas_obj_type: taskType
|
||
},
|
||
functionSuccess: function () {
|
||
scriptTaskPropertiesWindow.close();
|
||
PMDesigner.msgFlash('Script Task saved correctly'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems updating the Script Task, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
restClientNewTrigger = function (dataToSend, newScriptTask) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'trigger',
|
||
typeRequest: 'post',
|
||
data: dataToSend,
|
||
functionSuccess: function (xhr, response) {
|
||
triggerUid = response.tri_uid;
|
||
if (triggerUid != "" && typeof triggerUid != "undefinied") {
|
||
if (newScriptTask) {
|
||
restClientNewScriptTask(triggerUid);
|
||
} else {
|
||
restClientUpdateScriptTask(triggerUid);
|
||
}
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
var msg = response.error.message,
|
||
arrayMatch = [];
|
||
|
||
if ((arrayMatch = /^[\w\s]+\:\s*(.*)$/i.exec(msg))) {
|
||
msg = arrayMatch[1];
|
||
}
|
||
|
||
PMDesigner.msgWinError(msg);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
restClientUpdateTrigger = function (newScriptTask) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'trigger/' + formScriptTask.getItems()[0].items.get(1).getValue(),
|
||
typeRequest: 'update',
|
||
data: {
|
||
scrtas_obj_uid: formScriptTask.getItems()[0].items.get(1).getValue(),
|
||
tri_webbot: formScriptTask.getItems()[1].controls[0].cm.getValue(),
|
||
act_uid: taskUid,
|
||
scrtas_obj_type: taskType
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
triggerUid = response.tri_uid;
|
||
if (newScriptTask) {
|
||
restClientNewScriptTask(formScriptTask.getItems()[0].items.get(1).getValue());
|
||
} else {
|
||
restClientUpdateScriptTask(formScriptTask.getItems()[0].items.get(1).getValue());
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems updating the Script Task, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'saveScriptButton',
|
||
text: "Save".translate(),
|
||
handler: function (event) {
|
||
var newScriptTask, dataToSend;
|
||
if (formScriptTask.isValid()) {
|
||
if (formScriptTask.getItems()[0].items.get(4).getValue() === "") { /*new*/
|
||
newScriptTask = true;
|
||
if (formScriptTask.getItems()[0].items.get(1).getValue() != "") {
|
||
restClientUpdateTrigger(newScriptTask);
|
||
} else {
|
||
dataToSend = {
|
||
tri_title: formScriptTask.getItems()[0].items.get(2).getValue(),
|
||
tri_description: "",
|
||
tri_webbot: formScriptTask.getItems()[1].controls[0].cm.getValue(),
|
||
tri_param: ""
|
||
};
|
||
restClientNewTrigger(dataToSend, newScriptTask);
|
||
}
|
||
} else {
|
||
newScriptTask = false;
|
||
if (formScriptTask.getItems()[0].items.get(1).getValue() !== "") {
|
||
restClientUpdateTrigger(newScriptTask);
|
||
} else {
|
||
dataToSend = {
|
||
tri_title: formScriptTask.getItems()[0].items.get(2).getValue(),
|
||
tri_description: "",
|
||
tri_webbot: formScriptTask.getItems()[1].controls[0].cm.getValue(),
|
||
tri_param: ""
|
||
};
|
||
restClientNewTrigger(dataToSend, newScriptTask);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
|
||
scriptTaskPropertiesWindow = new PMUI.ui.Window({
|
||
id: "scriptTaskPropertiesWindow",
|
||
title: "Script Task Properties".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerItems: [
|
||
{
|
||
text: "@@",
|
||
id: "selectPickerButton",
|
||
handler: function () {
|
||
var picker = new VariablePicker();
|
||
picker.open({
|
||
success: function (variable) {
|
||
var codeMirror = formScriptTask.getItems()[1].controls[0].cm;
|
||
var cursorPos = codeMirror.getCursor();
|
||
codeMirror.replaceSelection(variable);
|
||
codeMirror.setCursor(cursorPos.line, cursorPos.ch);
|
||
}
|
||
});
|
||
},
|
||
style: {
|
||
cssProperties: {
|
||
"margin-left": '208px',
|
||
"background": "rgb(45, 62, 80)",
|
||
"border": "1px solid rgb(45, 62, 80)"
|
||
}
|
||
}
|
||
},
|
||
buttonCancel,
|
||
buttonSave
|
||
],
|
||
buttonPanelPosition: "bottom",
|
||
footerAling: "right",
|
||
onBeforeClose: function () {
|
||
clickedClose = true;
|
||
scriptTaskPropertiesWindow.isDirtyFormScript();
|
||
}
|
||
});
|
||
|
||
scriptTaskPropertiesWindow.isDirtyFormScript = function () {
|
||
var that = this,
|
||
message_window,
|
||
title = "Script Task".translate();
|
||
if (oldValue !== formScriptTask.getItems()[1].controls[0].cm.getValue()) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: title,
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
that.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
that.close();
|
||
}
|
||
};
|
||
/*end window*/
|
||
|
||
/*form*/
|
||
|
||
triggerEngine = new PMUI.field.DropDownListField({
|
||
id: "triggerEngine",
|
||
name: "triggerEngine",
|
||
label: "Title".translate(),
|
||
options: null,
|
||
controlsWidth: 400,
|
||
required: true,
|
||
onChange: function (newValue, prevValue) {
|
||
var uidTri = newValue, i;
|
||
for (i = 0; i < triggerSelectedData.length; i += 1) {
|
||
if (triggerSelectedData[i].tri_uid == uidTri) {
|
||
formScriptTask.getItems()[1].controls[0].cm.setValue(triggerSelectedData[i].tri_webbot);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
|
||
getListTrigger = function (triggerEngine) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'triggers',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var arrayOptions = [], i;
|
||
triggerSelectedData = response;
|
||
arrayOptions[0] = {
|
||
label: "- Select a trigger -".translate(),
|
||
value: "",
|
||
disabled: true,
|
||
selected: true
|
||
};
|
||
for (i = 0; i <= triggerSelectedData.length - 1; i += 1) {
|
||
arrayOptions.push(
|
||
{
|
||
value: triggerSelectedData[i].tri_uid,
|
||
label: triggerSelectedData[i].tri_title
|
||
}
|
||
);
|
||
}
|
||
triggerEngine.setOptions(arrayOptions);
|
||
triggerEngine.setValue(arrayOptions[0].value);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the Triggers list, please try again.".translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
getScriptTask = function () {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'script-task/activity/' + taskUid,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var i;
|
||
if (typeof response == "object") {
|
||
triggerUid = response.scrtas_obj_uid;
|
||
if (triggerUid != "" && typeof triggerUid != "undefinied") {
|
||
for (i = 0; i < triggerSelectedData.length; i += 1) {
|
||
if (triggerSelectedData[i].tri_uid == triggerUid) {
|
||
formScriptTask.getItems()[1].controls[0].setValue(triggerSelectedData[i].tri_webbot);
|
||
oldValue = triggerSelectedData[i].tri_webbot;
|
||
formScriptTask.getItems()[0].items.get(4).setValue(response.scrtas_uid);
|
||
formScriptTask.getItems()[0].items.get(1).setValue(triggerUid);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
formScriptTask = new PMUI.form.Form({
|
||
id: "formScriptTask",
|
||
border: true,
|
||
visibleHeader: false,
|
||
width: '900px',
|
||
height: "300px",
|
||
name: "formScriptTask",
|
||
title: '',
|
||
items: [
|
||
{
|
||
id: "panelDetailsCustom",
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
height: '380px',
|
||
legend: "DETAILS".translate(),
|
||
items: [
|
||
{
|
||
id: "taskUid",
|
||
pmType: "text",
|
||
label: "ID".translate(),
|
||
value: taskUid,
|
||
name: "taskUid",
|
||
readOnly: true,
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
triggerEngine,
|
||
{
|
||
id: "newScript",
|
||
pmType: "text",
|
||
label: "Title".translate(),
|
||
controlsWidth: 400,
|
||
value: "",
|
||
name: "newScript",
|
||
required: false,
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "taskType",
|
||
pmType: "text",
|
||
value: taskType,
|
||
name: "taskType",
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "scrtas_uid",
|
||
pmType: "text",
|
||
value: scrtas_uid,
|
||
name: "scrtas_uid",
|
||
visible: false,
|
||
valueType: 'string'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
});
|
||
|
||
that.cd = new PMCodeMirrorField({
|
||
labelWidth: '23.8%'
|
||
});
|
||
that.cd.setLabel("Code".translate());
|
||
formScriptTask.addItem(that.cd);
|
||
formScriptTask.getItems()[1].setName('code');
|
||
formScriptTask.getItems()[1].setID('code');
|
||
formScriptTask.getItems()[1].setHeight(300);
|
||
CodeMirror.commands.autocomplete = function (cm) {
|
||
CodeMirror.showHint(cm, CodeMirror.phpHint);
|
||
};
|
||
|
||
getListTrigger(triggerEngine);
|
||
getScriptTask();
|
||
/*end form*/
|
||
|
||
domSettings = function () {
|
||
var codeMirrorControl, requiredMessage, titleAdd, titleBack;
|
||
codeMirrorControl = formScriptTask.getItems()[1].controls[0].cm;
|
||
formScriptTask.getItems()[1].html.style.padding = "10px";
|
||
if (codeMirrorControl != undefined) {
|
||
codeMirrorControl.setSize(650, 255); //CodeMirror Size
|
||
$("#code").find(".CodeMirror-wrap").css({'border': '1px solid #c0c0c0'});
|
||
codeMirrorControl.refresh();
|
||
}
|
||
requiredMessage = $(document.getElementById("requiredMessage"));
|
||
scriptTaskPropertiesWindow.body.appendChild(requiredMessage[0]);
|
||
requiredMessage[0].style['marginTop'] = '65px';
|
||
|
||
scriptTaskPropertiesWindow.footer.html.style.textAlign = 'right';
|
||
$(".CodeMirror.cm-s-default.CodeMirror-wrap").after($ctrlSpaceMessage.css({
|
||
"padding-left": "10px",
|
||
"margin": "3px 0px 0px 0px"
|
||
}));
|
||
|
||
titleAdd = "Add new".translate();
|
||
titleBack = "Back to list".translate();
|
||
|
||
$("#triggerEngine").find("select").after(' <a id="titleAdd" title="' + titleAdd + '" class="showHideScript pmui pmui-button mafe-button-edit-assign-no-hover" href="#" style="left: 0px; top: 0px; width: auto; line-height: normal; position: relative; height: auto; z-index: auto;"><span class="button-label"></span><span class="button-icon " style="display: inline-block;"></span></a>');
|
||
$("#newScript").find("input").after(' <a id="titleBack" title="' + titleBack + '" class="showHideScript pmui pmui-button mafe-button-delete-assign-no-hover" href="#" style="left: 0px; top: 0px; width: auto; line-height: normal; position: relative; height: auto; z-index: auto;"><span class="button-label"></span><span class="button-icon " style="display: inline-block;"></span></a>');
|
||
$("#titleAdd, #titleBack").tooltip();
|
||
};
|
||
|
||
scriptTaskPropertiesWindow.addItem(formScriptTask);
|
||
scriptTaskPropertiesWindow.open();
|
||
scriptTaskPropertiesWindow.showFooter();
|
||
domSettings();
|
||
|
||
$(".showHideScript").on("click", function () {
|
||
if (formScriptTask.getItems()[0].items.get(1).isVisible()) {
|
||
formScriptTask.getItems()[0].items.get(1).setVisible(false);
|
||
} else {
|
||
formScriptTask.getItems()[0].items.get(1).setVisible(true);
|
||
formScriptTask.getItems()[0].items.get(1).setValue("");
|
||
formScriptTask.getItems()[0].items.get(2).setRequired(false);
|
||
formScriptTask.getItems()[0].items.get(1).setRequired(true);
|
||
$(formScriptTask.getItems()[0].items.get(1).html).find("select").focus();
|
||
}
|
||
|
||
if (!formScriptTask.getItems()[0].items.get(2).isVisible()) {
|
||
formScriptTask.getItems()[0].items.get(2).setVisible(true);
|
||
formScriptTask.getItems()[0].items.get(1).setRequired(false);
|
||
formScriptTask.getItems()[0].items.get(1).setValue("");
|
||
formScriptTask.getItems()[0].items.get(2).setRequired(true);
|
||
formScriptTask.getItems()[0].items.get(2).setValue("");
|
||
$(formScriptTask.getItems()[0].items.get(2).html).find("input").focus();
|
||
} else {
|
||
formScriptTask.getItems()[0].items.get(2).setVisible(false);
|
||
}
|
||
formScriptTask.getItems()[1].controls[0].cm.setValue("");
|
||
oldValue = "";
|
||
|
||
});
|
||
|
||
};
|
||
}());
|
||
|
||
(function () {
|
||
PMDesigner.timerEventProperties = function (activity) {
|
||
var that = this,
|
||
evnUid = activity.getID(),
|
||
activityType = activity.getEventMarker(),
|
||
uidProj = PMDesigner.project.id,
|
||
oldValues,
|
||
tmrevn_uid = "",
|
||
dataTimer = "",
|
||
buttonCancel,
|
||
restClientNewTimerEvent,
|
||
buttonSave,
|
||
restClientUpdateTimerEvent,
|
||
timerEventPropertiesWindow,
|
||
showHourlyItems,
|
||
showDailyItems,
|
||
showMonthlyItems,
|
||
showOneDateTimeItems,
|
||
showEveryItems,
|
||
showWaitForItems,
|
||
showWaitUntilItems,
|
||
varshowHourlyItems,
|
||
endDate,
|
||
oneDateTime,
|
||
daysGroup,
|
||
monthsGroup,
|
||
radioGroup,
|
||
dateTimeVariablePicker,
|
||
formTimerEvent,
|
||
getFormData,
|
||
getTimerEventData,
|
||
validateItems,
|
||
domSettings,
|
||
eventType = activity.getEventType(),
|
||
regexDay = new RegExp(/^(((0|1|2)?[0-9])|(3[01]))$/),
|
||
regexHour = new RegExp(/^(((0|1)?[0-9])|(2[0-4]))$/),
|
||
regexMinute = new RegExp(/^([0-5]?[0-9])$/);
|
||
|
||
/*window*/
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'cancelTimmerButton',
|
||
text: "Cancel".translate(),
|
||
buttonType: 'error',
|
||
handler: function (event) {
|
||
clickedClose = false;
|
||
formTimerEvent.getField('startDate').controls[0].hideCalendar();
|
||
formTimerEvent.getField('endDate').controls[0].hideCalendar();
|
||
formTimerEvent.getField('oneDateTime').controls[0].hideCalendar();
|
||
formTimerEvent.getField('dateTimeVariablePicker').controls[0].hideCalendar();
|
||
timerEventPropertiesWindow.isDirtyFormScript();
|
||
}
|
||
});
|
||
|
||
restClientNewTimerEvent = function (dataToSave) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'timer-event',
|
||
typeRequest: 'post',
|
||
data: dataToSave,
|
||
functionSuccess: function (xhr, response) {
|
||
timerEventPropertiesWindow.close();
|
||
PMDesigner.msgFlash('Timer Event saved correctly'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems updating the Timer Event, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
restClientUpdateTimerEvent = function (dataToSave) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'timer-event/' + formTimerEvent.getField("tmrevn_uid").getValue(),
|
||
typeRequest: 'update',
|
||
data: dataToSave,
|
||
functionSuccess: function (xhr, response) {
|
||
timerEventPropertiesWindow.close();
|
||
PMDesigner.msgFlash('Timer Event saved correctly'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems updating the Timer Event, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'saveTimmerButton',
|
||
text: "Save".translate(),
|
||
handler: function (event) {
|
||
var i,
|
||
opt,
|
||
formData;
|
||
|
||
formTimerEvent.getField("hourType").setValue(getData2PMUI(formTimerEvent.html).hourType);
|
||
formTimerEvent.getField("minuteType").setValue(getData2PMUI(formTimerEvent.html).minuteType);
|
||
formTimerEvent.getField("dayType").setValue(getData2PMUI(formTimerEvent.html).dayType);
|
||
if (formTimerEvent.isValid()) {
|
||
opt = formTimerEvent.getField("radioGroup").getValue();
|
||
formData = formTimerEvent.getData();
|
||
switch (opt) {
|
||
case "1": /*hourly*/
|
||
dataTimer = {
|
||
evn_uid: evnUid,
|
||
tmrevn_option: "HOURLY",
|
||
tmrevn_start_date: formData.startDate.substring(0, 10),
|
||
tmrevn_end_date: formTimerEvent.getField("endDate").getValue().substring(0, 10),
|
||
tmrevn_minute: formData.minuteType.length == 1 ? "0" + formData.minuteType : (formData.minuteType.length == 0 ? "00" : formData.minuteType )
|
||
};
|
||
break;
|
||
case "2": /*daily*/
|
||
dataTimer = {
|
||
evn_uid: evnUid,
|
||
tmrevn_option: "DAILY",
|
||
tmrevn_start_date: formData.startDate.substring(0, 10),
|
||
tmrevn_end_date: formTimerEvent.getField("endDate").getValue().substring(0, 10),
|
||
tmrevn_hour: formData.hourType.length == 1 ? "0" + formData.hourType : (formData.hourType.length == 0 ? "00" : formData.hourType ),
|
||
tmrevn_minute: formData.minuteType.length == 1 ? "0" + formData.minuteType : (formData.minuteType.length == 0 ? "00" : formData.minuteType ),
|
||
tmrevn_configuration_data: JSON.parse(formData.daysGroup).map(function (n) {
|
||
return Number(n);
|
||
})
|
||
};
|
||
break;
|
||
case "3": /*monthly*/
|
||
dataTimer = {
|
||
evn_uid: evnUid,
|
||
tmrevn_option: "MONTHLY",
|
||
tmrevn_start_date: formData.startDate.substring(0, 10),
|
||
tmrevn_end_date: formTimerEvent.getField("endDate").getValue().substring(0, 10),
|
||
tmrevn_day: formData.dayType.length == 1 ? "0" + formData.dayType : (formData.dayType.length == 0 ? "00" : formData.dayType ),
|
||
tmrevn_hour: formData.hourType.length == 1 ? "0" + formData.hourType : (formData.hourType.length == 0 ? "00" : formData.hourType ),
|
||
tmrevn_minute: formData.minuteType.length == 1 ? "0" + formData.minuteType : (formData.minuteType.length == 0 ? "00" : formData.minuteType ),
|
||
tmrevn_configuration_data: JSON.parse(formData.monthsGroup).map(function (n) {
|
||
return Number(n);
|
||
})
|
||
};
|
||
break;
|
||
case "4": /*one-date-time*/
|
||
dataTimer = {
|
||
evn_uid: evnUid,
|
||
tmrevn_option: "ONE-DATE-TIME",
|
||
tmrevn_next_run_date: $("#oneDateTime").find("input:eq(0)").val()
|
||
};
|
||
break;
|
||
case "5": /*every*/
|
||
dataTimer = {
|
||
evn_uid: evnUid,
|
||
tmrevn_option: "EVERY",
|
||
tmrevn_hour: formData.hourType.length == 1 ? "0" + formData.hourType : (formData.hourType.length == 0 ? "00" : formData.hourType ),
|
||
tmrevn_minute: formData.minuteType.length == 1 ? "0" + formData.minuteType : (formData.minuteType.length == 0 ? "00" : formData.minuteType )
|
||
};
|
||
break;
|
||
case "6": /*wait for*/
|
||
if ((formData.dayType === '' || formData.dayType === '00' || formData.dayType === '0') &&
|
||
(formData.hourType === '' || formData.hourType === '00' || formData.hourType === '0') &&
|
||
(formData.minuteType === '' || formData.minuteType === '00' || formData.minuteType === '0')) {
|
||
PMDesigner.msgWinError("The amount of time entered is not valid. Please fill in at least one of the fields (day, hour, or minute)".translate());
|
||
return;
|
||
} else {
|
||
if (!regexDay.test(formData.dayType) || !regexHour.test(formData.hourType) || !regexMinute.test(formData.minuteType)) {
|
||
PMDesigner.msgWinError("The amount of time entered is not valid. Please fill in at least one of the fields (day, hour, or minute)".translate());
|
||
return;
|
||
}
|
||
}
|
||
dataTimer = {
|
||
evn_uid: evnUid,
|
||
tmrevn_option: "WAIT-FOR",
|
||
tmrevn_day: formData.dayType.length == 1 ? "0" + formData.dayType : (formData.dayType.length == 0 ? "00" : formData.dayType ),
|
||
tmrevn_hour: formData.hourType.length == 1 ? "0" + formData.hourType : (formData.hourType.length == 0 ? "00" : formData.hourType ),
|
||
tmrevn_minute: formData.minuteType.length == 1 ? "0" + formData.minuteType : (formData.minuteType.length == 0 ? "00" : formData.minuteType )
|
||
};
|
||
break;
|
||
case "7": /*wait until specified date time*/
|
||
dataTimer = {
|
||
evn_uid: evnUid,
|
||
tmrevn_option: "WAIT-UNTIL-SPECIFIED-DATE-TIME",
|
||
tmrevn_configuration_data: $("#dateTimeVariablePicker").find("input:eq(0)").val()
|
||
};
|
||
break;
|
||
}
|
||
dataTimer.caseTitle = formData.txtCaseTitle;
|
||
if (formTimerEvent.getField("tmrevn_uid").getValue() == "") {
|
||
restClientNewTimerEvent(dataTimer);
|
||
} else {
|
||
restClientUpdateTimerEvent(dataTimer);
|
||
}
|
||
}
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
|
||
timerEventPropertiesWindow = new PMUI.ui.Window({
|
||
id: "timerEventPropertiesWindow",
|
||
title: "Timer Event Properties".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerItems: [
|
||
buttonCancel,
|
||
buttonSave
|
||
],
|
||
buttonPanelPosition: "bottom",
|
||
footerAling: "right",
|
||
onBeforeClose: function () {
|
||
clickedClose = true;
|
||
formTimerEvent.getField('startDate').controls[0].hideCalendar();
|
||
formTimerEvent.getField('endDate').controls[0].hideCalendar();
|
||
formTimerEvent.getField('oneDateTime').controls[0].hideCalendar();
|
||
formTimerEvent.getField('dateTimeVariablePicker').controls[0].hideCalendar();
|
||
timerEventPropertiesWindow.isDirtyFormScript();
|
||
}
|
||
});
|
||
|
||
timerEventPropertiesWindow.isDirtyFormScript = function () {
|
||
var that = this,
|
||
title = "Timer Event".translate(),
|
||
newValues = getFormData($("#formTimerEvent"));
|
||
if (JSON.stringify(oldValues) !== JSON.stringify(newValues)) {
|
||
var message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: title,
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
that.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
that.close();
|
||
}
|
||
};
|
||
/*end window*/
|
||
|
||
/*form*/
|
||
showHourlyItems = function () {
|
||
formTimerEvent.getField('startDate').setVisible(true);
|
||
formTimerEvent.getField('startDate').setRequired(true);
|
||
formTimerEvent.getField('endDateCheckbox').setVisible(true);
|
||
formTimerEvent.getField('endDate').setVisible(true);
|
||
formTimerEvent.getField('oneDateTime').setVisible(false);
|
||
formTimerEvent.getField('oneDateTime').setRequired(false);
|
||
formTimerEvent.getField('daysGroup').setVisible(false);
|
||
formTimerEvent.getField('daysGroup').setRequired(false);
|
||
formTimerEvent.getField('monthsGroup').setVisible(false);
|
||
formTimerEvent.getField('monthsGroup').setRequired(false);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setVisible(false);
|
||
if (formTimerEvent.getItems()[0].items !== undefined) {
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setVisible(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setRequired(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setVisible(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setRequired(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setVisible(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setRequired(true);
|
||
}
|
||
};
|
||
|
||
showDailyItems = function () {
|
||
formTimerEvent.getField('startDate').setVisible(true);
|
||
formTimerEvent.getField('startDate').setRequired(true);
|
||
formTimerEvent.getField('endDateCheckbox').setVisible(true);
|
||
formTimerEvent.getField('endDate').setVisible(true);
|
||
formTimerEvent.getField('oneDateTime').setVisible(false);
|
||
formTimerEvent.getField('oneDateTime').setRequired(false);
|
||
formTimerEvent.getField('daysGroup').setVisible(true);
|
||
formTimerEvent.getField('daysGroup').setRequired(true);
|
||
formTimerEvent.getField('oneDateTime').setRequired(false);
|
||
formTimerEvent.getField('monthsGroup').setVisible(false);
|
||
formTimerEvent.getField('monthsGroup').setRequired(false);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setVisible(false);
|
||
if (formTimerEvent.getItems()[0].items !== undefined) {
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setVisible(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setRequired(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setVisible(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setRequired(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setVisible(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setRequired(true);
|
||
}
|
||
};
|
||
|
||
showMonthlyItems = function () {
|
||
formTimerEvent.getField('startDate').setVisible(true);
|
||
formTimerEvent.getField('startDate').setRequired(true);
|
||
formTimerEvent.getField('endDateCheckbox').setVisible(true);
|
||
formTimerEvent.getField('endDate').setVisible(true);
|
||
formTimerEvent.getField('oneDateTime').setVisible(false);
|
||
formTimerEvent.getField('oneDateTime').setRequired(false);
|
||
formTimerEvent.getField('daysGroup').setVisible(false);
|
||
formTimerEvent.getField('daysGroup').setRequired(false);
|
||
formTimerEvent.getField('monthsGroup').setVisible(true);
|
||
formTimerEvent.getField('monthsGroup').setRequired(true);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setVisible(false);
|
||
if (formTimerEvent.getItems()[0].items !== undefined) {
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setVisible(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setRequired(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setVisible(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setRequired(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setVisible(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setRequired(true);
|
||
}
|
||
};
|
||
|
||
showOneDateTimeItems = function () {
|
||
formTimerEvent.getField('startDate').setVisible(false);
|
||
formTimerEvent.getField('startDate').setRequired(false);
|
||
formTimerEvent.getField('endDateCheckbox').setVisible(false);
|
||
formTimerEvent.getField('endDate').setVisible(false);
|
||
formTimerEvent.getField('oneDateTime').setVisible(true);
|
||
formTimerEvent.getField('oneDateTime').setRequired(true);
|
||
formTimerEvent.getField('daysGroup').setVisible(false);
|
||
formTimerEvent.getField('daysGroup').setRequired(false);
|
||
formTimerEvent.getField('monthsGroup').setVisible(false);
|
||
formTimerEvent.getField('monthsGroup').setRequired(false);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setVisible(false);
|
||
if (formTimerEvent.getItems()[0].items !== undefined) {
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setVisible(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setRequired(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setVisible(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setRequired(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setVisible(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setRequired(false);
|
||
}
|
||
};
|
||
|
||
showEveryItems = function () {
|
||
formTimerEvent.getField('startDate').setVisible(false);
|
||
formTimerEvent.getField('startDate').setRequired(false);
|
||
formTimerEvent.getField('endDateCheckbox').setVisible(false);
|
||
formTimerEvent.getField('endDate').setVisible(false);
|
||
formTimerEvent.getField('oneDateTime').setVisible(false);
|
||
formTimerEvent.getField('oneDateTime').setRequired(false);
|
||
formTimerEvent.getField('daysGroup').setVisible(false);
|
||
formTimerEvent.getField('daysGroup').setRequired(false);
|
||
formTimerEvent.getField('monthsGroup').setVisible(false);
|
||
formTimerEvent.getField('monthsGroup').setRequired(false);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setVisible(false);
|
||
if (formTimerEvent.getItems()[0].items !== undefined) {
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setVisible(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('dayType').setRequired(false);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setVisible(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('hourType').setRequired(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setVisible(true);
|
||
formTimerEvent.getItems()[0].items.get(4).getField('minuteType').setRequired(true);
|
||
}
|
||
};
|
||
/*intermediate*/
|
||
showWaitForItems = function () {
|
||
formTimerEvent.getField('startDate').setVisible(false);
|
||
formTimerEvent.getField('endDateCheckbox').setVisible(false);
|
||
formTimerEvent.getField('endDate').setVisible(false);
|
||
formTimerEvent.getField('oneDateTime').setVisible(false);
|
||
formTimerEvent.getField('daysGroup').setVisible(false);
|
||
formTimerEvent.getField('daysGroup').setRequired(false);
|
||
formTimerEvent.getField('monthsGroup').setVisible(false);
|
||
formTimerEvent.getField('monthsGroup').setRequired(false);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setVisible(false);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setRequired(false);
|
||
if (formTimerEvent.getItems()[0].items !== undefined) {
|
||
formTimerEvent.getItems()[1].items.get(4).getField('dayType').setVisible(true);
|
||
formTimerEvent.getItems()[1].items.get(4).getField('hourType').setVisible(true);
|
||
formTimerEvent.getItems()[1].items.get(4).getField('minuteType').setVisible(true);
|
||
}
|
||
};
|
||
|
||
showWaitUntilItems = function () {
|
||
formTimerEvent.getField('startDate').setVisible(false);
|
||
formTimerEvent.getField('endDateCheckbox').setVisible(false);
|
||
formTimerEvent.getField('endDate').setVisible(false);
|
||
formTimerEvent.getField('oneDateTime').setVisible(false);
|
||
formTimerEvent.getField('daysGroup').setVisible(false);
|
||
formTimerEvent.getField('daysGroup').setRequired(false);
|
||
formTimerEvent.getField('monthsGroup').setVisible(false);
|
||
formTimerEvent.getField('monthsGroup').setRequired(false);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setVisible(true);
|
||
formTimerEvent.getField('dateTimeVariablePicker').setRequired(true);
|
||
if (formTimerEvent.getItems()[0].items !== undefined) {
|
||
formTimerEvent.getItems()[1].items.get(4).getField('dayType').setVisible(false);
|
||
formTimerEvent.getItems()[1].items.get(4).getField('hourType').setVisible(false);
|
||
formTimerEvent.getItems()[1].items.get(4).getField('minuteType').setVisible(false);
|
||
}
|
||
};
|
||
|
||
this.txtCaseTitle = new CriteriaField({
|
||
id: "txtCaseTitle",
|
||
name: "txtCaseTitle",
|
||
valueType: "string",
|
||
label: "Case Title".translate(),
|
||
maxLength: 200,
|
||
value: "",
|
||
controlsWidth: 500
|
||
});
|
||
|
||
radioGroup = new PMUI.field.RadioButtonGroupField({
|
||
id: 'radioGroup',
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 7,
|
||
options: [
|
||
{
|
||
label: "Hourly".translate(),
|
||
value: "1"
|
||
},
|
||
{
|
||
label: "Daily".translate(),
|
||
value: "2"
|
||
},
|
||
{
|
||
label: "Monthly".translate(),
|
||
value: "3"
|
||
},
|
||
{
|
||
label: "One date/time".translate(),
|
||
value: "4"
|
||
},
|
||
{
|
||
label: "Every".translate(),
|
||
value: "5"
|
||
},
|
||
{
|
||
label: "Wait for".translate(),
|
||
value: "6"
|
||
},
|
||
{
|
||
label: "Wait until specified date/time".translate(),
|
||
value: "7"
|
||
}
|
||
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
switch (newVal) {
|
||
case "1":
|
||
showHourlyItems();
|
||
break;
|
||
case "2":
|
||
showDailyItems();
|
||
break;
|
||
case "3":
|
||
showMonthlyItems();
|
||
break;
|
||
case "4":
|
||
showOneDateTimeItems();
|
||
break;
|
||
case "5":
|
||
showEveryItems();
|
||
break;
|
||
case "6":
|
||
showWaitForItems();
|
||
break;
|
||
case "7":
|
||
showWaitUntilItems();
|
||
break;
|
||
}
|
||
},
|
||
value: "1"
|
||
});
|
||
|
||
startDate = new PMUI.field.DateTimeField({
|
||
id: 'startDate',
|
||
label: 'Start date'.translate(),
|
||
datetime: false,
|
||
dateFormat: 'yy-mm-dd',
|
||
firstDay: 1,
|
||
controlsWidth: 100,
|
||
required: false,
|
||
readOnly: true,
|
||
minDate: 0,
|
||
maxDate: 1460
|
||
});
|
||
|
||
endDate = new PMUI.field.DateTimeField({
|
||
id: 'endDate',
|
||
label: "End date".translate(),
|
||
value: '',
|
||
disabled: true,
|
||
datetime: false,
|
||
dateFormat: 'yy-mm-dd',
|
||
firstDay: 1,
|
||
controlsWidth: 100,
|
||
required: false,
|
||
readOnly: true,
|
||
minDate: 0,
|
||
maxDate: 1460
|
||
});
|
||
|
||
oneDateTime = new PMUI.field.DateTimeField({
|
||
id: 'oneDateTime',
|
||
label: 'Date time'.translate(),
|
||
datetime: true,
|
||
dateFormat: 'yy-mm-dd HH:ii:ss',
|
||
firstDay: 1,
|
||
controlsWidth: 150,
|
||
required: false,
|
||
readOnly: true,
|
||
minDate: 0,
|
||
maxDate: 1460
|
||
});
|
||
|
||
daysGroup = new PMUI.field.CheckBoxGroupField({
|
||
label: "Days".translate(),
|
||
id: 'daysGroup',
|
||
controlPositioning: 'vertical',
|
||
maxDirectionOptions: 3,
|
||
required: true,
|
||
options: [
|
||
{
|
||
label: 'Monday'.translate(),
|
||
value: 1,
|
||
name: 'monday',
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'Tuesday'.translate(),
|
||
value: 2,
|
||
name: 'tuesday',
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'Wednesday'.translate(),
|
||
value: 3,
|
||
name: 'wednesday',
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'Thursday'.translate(),
|
||
value: 4,
|
||
name: 'thursday',
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'Friday'.translate(),
|
||
value: 5,
|
||
name: 'friday',
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'Saturday'.translate(),
|
||
value: 6,
|
||
name: 'saturday',
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'Sunday'.translate(),
|
||
value: 7,
|
||
name: 'sunday',
|
||
selected: true
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
|
||
}
|
||
});
|
||
|
||
monthsGroup = new PMUI.field.CheckBoxGroupField({
|
||
label: "Months".translate(),
|
||
id: 'monthsGroup',
|
||
controlPositioning: 'vertical',
|
||
maxDirectionOptions: 3,
|
||
required: true,
|
||
options: [
|
||
{
|
||
label: 'January'.translate(),
|
||
value: 1,
|
||
name: 'january',
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'February'.translate(),
|
||
value: 2,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'March'.translate(),
|
||
value: 3,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'April'.translate(),
|
||
value: 4,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'May'.translate(),
|
||
value: 5,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'June'.translate(),
|
||
value: 6,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'July'.translate(),
|
||
value: 7,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'August'.translate(),
|
||
value: 8,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'September'.translate(),
|
||
value: 9,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'October'.translate(),
|
||
value: 10,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'November'.translate(),
|
||
value: 11,
|
||
selected: true
|
||
},
|
||
{
|
||
label: 'December'.translate(),
|
||
value: 12,
|
||
selected: true
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
|
||
}
|
||
});
|
||
|
||
dateTimeVariablePicker = new PMUI.field.DateTimeField({
|
||
id: 'dateTimeVariablePicker',
|
||
label: 'Date time'.translate(),
|
||
datetime: true,
|
||
dateFormat: 'yy-mm-dd HH:ii:ss',
|
||
firstDay: 1,
|
||
controlsWidth: 150,
|
||
required: false,
|
||
readOnly: true,
|
||
minDate: 0,
|
||
maxDate: 1460
|
||
});
|
||
|
||
formTimerEvent = new PMUI.form.Form({
|
||
id: "formTimerEvent",
|
||
border: true,
|
||
visibleHeader: false,
|
||
width: '900px',
|
||
height: "300px",
|
||
name: "formTimerEvent",
|
||
title: '',
|
||
items: [
|
||
this.txtCaseTitle,
|
||
{
|
||
id: "panelDetailsCustom",
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
height: '380px',
|
||
legend: "DETAILS".translate(),
|
||
items: [
|
||
{
|
||
id: "evnUid",
|
||
pmType: "text",
|
||
value: evnUid,
|
||
name: "evnUid",
|
||
readOnly: true,
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "activityType",
|
||
pmType: "text",
|
||
value: activityType,
|
||
name: "activityType",
|
||
readOnly: true,
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
radioGroup,
|
||
{
|
||
pmType: "panel",
|
||
id: "datesPanel",
|
||
layout: 'hbox',
|
||
items: [
|
||
startDate,
|
||
{
|
||
pmType: "checkbox",
|
||
id: "endDateCheckbox",
|
||
label: "End date".translate(),
|
||
controlPositioning: 'vertical',
|
||
maxDirectionOptions: 2,
|
||
value: '',
|
||
options: [
|
||
{
|
||
label: "End date:".translate(),
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
if (newVal[2] == "1") {
|
||
$('#endDate').find('input:eq(0)').removeProp("disabled");
|
||
} else {
|
||
$('#endDate').find('input:eq(0)').val('').attr("disabled", "disabled");
|
||
formTimerEvent.getField('endDate').setValue('');
|
||
}
|
||
}
|
||
},
|
||
endDate,
|
||
oneDateTime,
|
||
dateTimeVariablePicker
|
||
]
|
||
},
|
||
{
|
||
pmType: "panel",
|
||
id: "dayHourMonthPanel",
|
||
layout: 'hbox',
|
||
items: [
|
||
{
|
||
id: "dayType",
|
||
label: "Day".translate(),
|
||
pmType: "text",
|
||
value: "",
|
||
name: "dayType",
|
||
visible: true,
|
||
valueType: 'integer',
|
||
controlsWidth: 50,
|
||
maxLength: 2
|
||
},
|
||
{
|
||
id: "hourType",
|
||
label: "Hour".translate(),
|
||
pmType: "text",
|
||
value: "",
|
||
name: "hourType",
|
||
visible: true,
|
||
valueType: 'integer',
|
||
controlsWidth: 50,
|
||
maxLength: 2
|
||
},
|
||
{
|
||
id: "minuteType",
|
||
label: "Minute".translate(),
|
||
pmType: "text",
|
||
value: "",
|
||
name: "minuteType",
|
||
visible: true,
|
||
valueType: 'integer',
|
||
controlsWidth: 50,
|
||
maxLength: 2
|
||
}
|
||
]
|
||
},
|
||
daysGroup,
|
||
monthsGroup,
|
||
{
|
||
id: "tmrevn_uid",
|
||
pmType: "text",
|
||
value: tmrevn_uid,
|
||
name: "tmrevn_uid",
|
||
visible: false,
|
||
valueType: 'string'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
});
|
||
|
||
formTimerEvent.initialData = function () {
|
||
var formElements = this.getItems()[0],
|
||
datesPanelElements,
|
||
radioGroupValues = {'radioGroup': formElements.items.get(2).getValue()};
|
||
oldValues.push(radioGroupValues);
|
||
datesPanelElements = formElements.items.get(3).getItems();
|
||
|
||
};
|
||
|
||
getFormData = function ($form) {
|
||
var unindexed_array = $form.serializeArray(),
|
||
indexed_array = {};
|
||
|
||
$.map(unindexed_array, function (n, i) {
|
||
indexed_array[n['name']] = n['value'];
|
||
});
|
||
return indexed_array;
|
||
};
|
||
|
||
getTimerEventData = function () {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'timer-event/event/' + formTimerEvent.getField("evnUid").getValue(),
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
if (typeof response === "object" && JSON.stringify(response).length > 2) {
|
||
var opt = "";
|
||
if (typeof response.tmrevn_option !== 'undefined') {
|
||
opt = response.tmrevn_option.toUpperCase();
|
||
}
|
||
formTimerEvent.getField("txtCaseTitle").setValue(response.tas_def_title);
|
||
switch (opt) {
|
||
case "HOURLY":
|
||
$("#radioGroup").find("input:eq(0)").trigger("click");
|
||
formTimerEvent.getField("tmrevn_uid").setValue(response.tmrevn_uid);
|
||
formTimerEvent.getField("startDate").setValue(response.tmrevn_start_date);
|
||
if (response.tmrevn_end_date != "") {
|
||
formTimerEvent.getField("endDateCheckbox").setValue('["1"]');
|
||
formTimerEvent.getField("endDate").setValue(response.tmrevn_end_date);
|
||
formTimerEvent.getField("endDate").enable();
|
||
}
|
||
formTimerEvent.getField("minuteType").setValue(response.tmrevn_minute);
|
||
break;
|
||
case "DAILY":
|
||
$("#radioGroup").find("input:eq(1)").trigger("click");
|
||
formTimerEvent.getField("tmrevn_uid").setValue(response.tmrevn_uid);
|
||
formTimerEvent.getField("startDate").setValue(response.tmrevn_start_date);
|
||
if (response.tmrevn_end_date != "") {
|
||
formTimerEvent.getField("endDateCheckbox").setValue('["1"]');
|
||
formTimerEvent.getField("endDate").setValue(response.tmrevn_end_date);
|
||
formTimerEvent.getField("endDate").enable();
|
||
}
|
||
formTimerEvent.getField("hourType").setValue(response.tmrevn_hour);
|
||
formTimerEvent.getField("minuteType").setValue(response.tmrevn_minute);
|
||
formTimerEvent.getField("daysGroup").setValue("");
|
||
formTimerEvent.getField("daysGroup").setValue(JSON.stringify(response.tmrevn_configuration_data.map(function (n) {
|
||
return n.toString();
|
||
})));
|
||
break;
|
||
case "MONTHLY":
|
||
$("#radioGroup").find("input:eq(2)").trigger("click");
|
||
formTimerEvent.getField("tmrevn_uid").setValue(response.tmrevn_uid);
|
||
formTimerEvent.getField("startDate").setValue(response.tmrevn_start_date);
|
||
if (response.tmrevn_end_date != "") {
|
||
formTimerEvent.getField("endDateCheckbox").setValue('["1"]');
|
||
formTimerEvent.getField("endDate").setValue(response.tmrevn_end_date);
|
||
formTimerEvent.getField("endDate").enable();
|
||
}
|
||
formTimerEvent.getField("dayType").setValue(response.tmrevn_day);
|
||
formTimerEvent.getField("hourType").setValue(response.tmrevn_hour);
|
||
formTimerEvent.getField("minuteType").setValue(response.tmrevn_minute);
|
||
formTimerEvent.getField("monthsGroup").setValue("");
|
||
formTimerEvent.getField("monthsGroup").setValue(JSON.stringify(response.tmrevn_configuration_data.map(function (n) {
|
||
return n.toString();
|
||
})));
|
||
break;
|
||
case "ONE-DATE-TIME":
|
||
$("#radioGroup").find("input:eq(3)").trigger("click");
|
||
formTimerEvent.getField("tmrevn_uid").setValue(response.tmrevn_uid);
|
||
var d = response.tmrevn_next_run_date.replace(/-/g, "/");
|
||
for (var i in ENABLED_FEATURES) {
|
||
if (ENABLED_FEATURES[i] == 'oq3S29xemxEZXJpZEIzN01qenJUaStSekY4cTdJVm5vbWtVM0d4S2lJSS9qUT0=') {
|
||
d = response.tmrevn_next_run_date;
|
||
}
|
||
}
|
||
d = new Date(d);
|
||
formTimerEvent.getField("oneDateTime").setValue(d);
|
||
break;
|
||
case "EVERY":
|
||
$("#radioGroup").find("input:eq(4)").trigger("click");
|
||
formTimerEvent.getField("tmrevn_uid").setValue(response.tmrevn_uid);
|
||
formTimerEvent.getField("hourType").setValue(response.tmrevn_hour);
|
||
formTimerEvent.getField("minuteType").setValue(response.tmrevn_minute);
|
||
break;
|
||
case "WAIT-FOR":
|
||
$("#radioGroup").find("input:eq(5)").trigger("click");
|
||
formTimerEvent.getField("tmrevn_uid").setValue(response.tmrevn_uid);
|
||
formTimerEvent.getField("dayType").setValue(response.tmrevn_day);
|
||
formTimerEvent.getField("hourType").setValue(response.tmrevn_hour);
|
||
formTimerEvent.getField("minuteType").setValue(response.tmrevn_minute);
|
||
break;
|
||
case "WAIT-UNTIL-SPECIFIED-DATE-TIME":
|
||
$("#radioGroup").find("input:eq(6)").trigger("click");
|
||
formTimerEvent.getField("tmrevn_uid").setValue(response.tmrevn_uid);
|
||
var d = response.tmrevn_configuration_data.replace(/-/g, "/");
|
||
d = new Date(d);
|
||
formTimerEvent.getField("dateTimeVariablePicker").setValue(d);
|
||
break;
|
||
}
|
||
} else {
|
||
if (eventType == "START") {
|
||
$("#radioGroup").find("input:eq(1)").trigger("click");
|
||
} else {
|
||
$("#radioGroup").find("input:eq(5)").trigger("click");
|
||
}
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems updating the Timer Event, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
/*end form*/
|
||
|
||
validateItems = function (itemId) {
|
||
var regexTest,
|
||
message,
|
||
valueItem,
|
||
regexTest;
|
||
|
||
if (itemId === 'dayType') {
|
||
regexTest = regexDay;
|
||
message = "Error value: Day: 0 - 31".translate();
|
||
} else if (itemId === 'hourType') {
|
||
regexTest = regexHour;
|
||
message = "Error value: Hour: 0 - 23".translate();
|
||
} else if (itemId === 'minuteType') {
|
||
regexTest = regexMinute;
|
||
message = "Error value: Minute: 0 - 59".translate();
|
||
}
|
||
|
||
valueItem = $('#' + itemId).find('span input:eq(0)').val();
|
||
|
||
if (!regexTest.test(valueItem)) {
|
||
PMDesigner.msgFlash(message, timerEventPropertiesWindow, 'error', 3000, 5);
|
||
$('#' + itemId).find('span input:eq(0)').val('');
|
||
return false;
|
||
}
|
||
};
|
||
|
||
domSettings = function () {
|
||
var requiredMessage = $(document.getElementById("requiredMessage"));
|
||
timerEventPropertiesWindow.body.appendChild(requiredMessage[0]);
|
||
requiredMessage[0].style['marginTop'] = '70px';
|
||
|
||
timerEventPropertiesWindow.footer.html.style.textAlign = 'right';
|
||
|
||
$('#hourType, #dayType, #minuteType').find('span input:eq(0)').bind('blur change', function () {
|
||
validateItems($(this).closest('div').attr('id'));
|
||
});
|
||
|
||
$("#dayType").find("input").attr({"type": "number", "maxlength": "2", "min": "0", "max": "31"});
|
||
$("#hourType").find("input").attr({"type": "number", "maxlength": "2", "min": "0", "max": "23"});
|
||
$("#minuteType").find("input").attr({"type": "number", "maxlength": "2", "min": "0", "max": "59"});
|
||
|
||
$("#radioGroup").css({"text-align": "center", "margin-bottom": "20px"}).find("label:eq(0)").remove();
|
||
$("#endDateCheckbox").css({"width": "170px", "top": "6px", "left": "28px"}).find("label:eq(0)").remove();
|
||
$("#endDateCheckbox").find("table:eq(0)").css("border", "0px");
|
||
$("#startDate").css("width", "");
|
||
$("#endDate").css("width", "104px").find("label:eq(0)").remove();
|
||
$("#oneDateTime").css("width", "");
|
||
$("#datesPanel").css("text-align", "center").find("label").css({
|
||
"width": "",
|
||
"float": "",
|
||
"text-align": "right"
|
||
});
|
||
$("#dayHourMonthPanel").css("text-align", "center").find("label").css({"float": "", "width": "34.5%"});
|
||
|
||
$("#daysGroup").css("text-align", "center").find("label:eq(0)").remove();
|
||
$("#monthsGroup").css("text-align", "center").find("label:eq(0)").remove();
|
||
$("#daysGroup").find("input").each(function () {
|
||
$(this).attr("name", $(this).val());
|
||
});
|
||
|
||
$("#dateTimeVariablePicker").css("width", "");
|
||
|
||
|
||
if (eventType == "START") {
|
||
$(formTimerEvent.getField("radioGroup").controls[0].html).parent().show();
|
||
$(formTimerEvent.getField("radioGroup").controls[1].html).parent().show();
|
||
$(formTimerEvent.getField("radioGroup").controls[2].html).parent().show();
|
||
$(formTimerEvent.getField("radioGroup").controls[3].html).parent().show();
|
||
$(formTimerEvent.getField("radioGroup").controls[4].html).parent().show();
|
||
$(formTimerEvent.getField("radioGroup").controls[5].html).parent().hide();
|
||
$(formTimerEvent.getField("radioGroup").controls[6].html).parent().hide();
|
||
$("#radioGroup").find("input:eq(1)").trigger("click");
|
||
} else {
|
||
$(formTimerEvent.getField("radioGroup").controls[0].html).parent().hide();
|
||
$(formTimerEvent.getField("radioGroup").controls[1].html).parent().hide();
|
||
$(formTimerEvent.getField("radioGroup").controls[2].html).parent().hide();
|
||
$(formTimerEvent.getField("radioGroup").controls[3].html).parent().hide();
|
||
$(formTimerEvent.getField("radioGroup").controls[4].html).parent().hide();
|
||
$(formTimerEvent.getField("radioGroup").controls[5].html).parent().show();
|
||
$(formTimerEvent.getField("radioGroup").controls[6].html).parent().show();
|
||
$("#radioGroup").find("input:eq(5)").trigger("click");
|
||
}
|
||
};
|
||
|
||
timerEventPropertiesWindow.addItem(formTimerEvent);
|
||
timerEventPropertiesWindow.open();
|
||
formTimerEvent.eventsDefined = false;
|
||
formTimerEvent.defineEvents();
|
||
timerEventPropertiesWindow.showFooter();
|
||
domSettings();
|
||
getTimerEventData();
|
||
oldValues = getFormData($("#formTimerEvent"));
|
||
};
|
||
}());
|
||
|
||
|
||
(function () {
|
||
PMDesigner.emailEventProperties = function (activity) {
|
||
var that = this,
|
||
buttonCancel,
|
||
buttonSave,
|
||
emailEventPropertiesWindow,
|
||
emailAcounts,
|
||
emailContent,
|
||
getEmailAccounts,
|
||
formEmailEvent,
|
||
emailWindowTinyMCE,
|
||
getFormData,
|
||
getEmailEventData,
|
||
domSettings,
|
||
activityId = activity.getID(),
|
||
activityType = activity.getEventMarker(),
|
||
uidProj = PMDesigner.project.id,
|
||
initTinyMCE = null,
|
||
oldValues,
|
||
emailEventId = "",
|
||
prf_uid = "",
|
||
ddSize = 21,
|
||
auxFromMail = {},
|
||
defaultServerlabel = "Mail (PHP)".translate(),
|
||
triggerSelectedData;
|
||
/*options to display in drop down*/
|
||
|
||
/*window*/
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'cancelEmailEventsButton',
|
||
text: "Cancel".translate(),
|
||
buttonType: 'error',
|
||
handler: function (event) {
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
clickedClose = false;
|
||
emailEventPropertiesWindow.isDirtyFormScript();
|
||
}
|
||
});
|
||
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'saveEmailEventsButton',
|
||
text: "Save".translate(),
|
||
handler: function (event) {
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
var dataForm = formEmailEvent.getData(),
|
||
selectedAccount = formEmailEvent.getField('emailAcounts').getValue();
|
||
if (formEmailEvent.isValid()) {
|
||
if (dataForm.emailEventId == "") { /*insert*/
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager',
|
||
typeRequest: 'post',
|
||
messageError: '',
|
||
data: {
|
||
prf_filename: "emailEvent_" + new Date().getTime() + ".html",
|
||
prf_path: "templates",
|
||
prf_content: dataForm.filecontent
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var restClient;
|
||
prf_uid = response.prf_uid;
|
||
if (prf_uid != "" && typeof prf_uid != "undefined") {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'email-event',
|
||
typeRequest: 'post',
|
||
data: {
|
||
evn_uid: activityId,
|
||
email_event_from: auxFromMail[selectedAccount] || '',
|
||
email_event_to: dataForm.ToEmail,
|
||
email_event_subject: dataForm.subjectEmail,
|
||
email_server_uid: dataForm.emailAcounts,
|
||
prf_uid: prf_uid
|
||
},
|
||
functionSuccess: function () {
|
||
emailEventPropertiesWindow.close();
|
||
PMDesigner.msgFlash('Email Event saved correctly'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems updating the Email Event, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
|
||
|
||
} else {
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager/' + dataForm.prf_uid,
|
||
typeRequest: 'update',
|
||
messageError: '',
|
||
data: {
|
||
prf_content: tinyMCE.activeEditor.getContent()
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var restClient;
|
||
prf_uid = response.prf_uid;
|
||
if (prf_uid != "" && typeof prf_uid != "undefined") {
|
||
restClient = new PMRestClient({
|
||
endpoint: 'email-event/' + dataForm.emailEventId,
|
||
typeRequest: 'update',
|
||
data: {
|
||
evn_uid: activityId,
|
||
email_event_from: auxFromMail[selectedAccount] || '',
|
||
email_event_to: dataForm.ToEmail,
|
||
email_event_subject: dataForm.subjectEmail,
|
||
email_server_uid: dataForm.emailAcounts,
|
||
prf_uid: prf_uid
|
||
},
|
||
functionSuccess: function () {
|
||
emailEventPropertiesWindow.close();
|
||
PMDesigner.msgFlash('Email Event Edited correctly'.translate(), document.body, 'success', 3000, 5);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems Edited the Email Event, please try again.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
}
|
||
}
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
|
||
emailEventPropertiesWindow = new PMUI.ui.Window({
|
||
id: "emailEventPropertiesWindow",
|
||
title: "Email Event Properties".translate(),
|
||
width: DEFAULT_WINDOW_WIDTH,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerItems: [
|
||
buttonCancel,
|
||
buttonSave
|
||
],
|
||
buttonPanelPosition: "bottom",
|
||
footerAling: "right",
|
||
onBeforeClose: function () {
|
||
PMDesigner.hideAllTinyEditorControls();
|
||
clickedClose = true;
|
||
emailEventPropertiesWindow.isDirtyFormScript();
|
||
}
|
||
});
|
||
|
||
emailEventPropertiesWindow.isDirtyFormScript = function () {
|
||
var that = this,
|
||
newValues,
|
||
message_window,
|
||
formData = formEmailEvent.getData();
|
||
formData.filecontent = $(tinyMCE.activeEditor.getContent()).text().trim().length ? tinyMCE.activeEditor.getContent() : "";
|
||
newValues = formData;
|
||
if (JSON.stringify(oldValues) !== JSON.stringify(newValues)) {
|
||
message_window = new PMUI.ui.MessageWindow({
|
||
id: "cancelMessageTriggers",
|
||
windowMessageType: 'warning',
|
||
width: 490,
|
||
title: "Email Event".translate(),
|
||
message: 'Are you sure you want to discard your changes?'.translate(),
|
||
footerItems: [
|
||
{
|
||
text: "No".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
},
|
||
buttonType: "error"
|
||
},
|
||
{
|
||
text: "Yes".translate(),
|
||
handler: function () {
|
||
message_window.close();
|
||
that.close();
|
||
},
|
||
buttonType: "success"
|
||
}
|
||
]
|
||
});
|
||
message_window.open();
|
||
message_window.showFooter();
|
||
} else {
|
||
that.close();
|
||
}
|
||
};
|
||
/*end window*/
|
||
|
||
/*form*/
|
||
emailAcounts = new PMUI.field.DropDownListField({
|
||
id: "emailAcounts",
|
||
name: "emailAcounts",
|
||
label: "From".translate(),
|
||
options: null,
|
||
controlsWidth: 400,
|
||
required: false,
|
||
labelWidth: "15%",
|
||
onChange: function (newValue, prevValue) {
|
||
var uidTri = newValue,
|
||
oldValue,
|
||
i;
|
||
for (i = 0; i < triggerSelectedData.length; i += 1) {
|
||
if (triggerSelectedData[i].tri_uid === uidTri) {
|
||
formScriptTask.getItems()[1].controls[0].cm.setValue(triggerSelectedData[i].tri_webbot);
|
||
oldValue = triggerSelectedData[i].tri_webbot;
|
||
}
|
||
}
|
||
}
|
||
});
|
||
emailContent = new PMUI.field.TextAreaField({
|
||
id: 'filecontent',
|
||
name: 'filecontent',
|
||
label: 'Content'.translate(),
|
||
required: true,
|
||
value: '',
|
||
rows: 210,
|
||
labelWidth: "15%",
|
||
controlsWidth: 720,
|
||
onChange: function (currentValue, previousValue) {
|
||
},
|
||
style: {cssClasses: ['mafe-textarea-resize']}
|
||
});
|
||
getEmailAccounts = function (emailAcounts) {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'email-event/accounts/emailServer',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var i,
|
||
arrayOptions;
|
||
triggerSelectedData = response;
|
||
arrayOptions = [];
|
||
arrayOptions[0] = {
|
||
label: "Default email account".translate(),
|
||
value: "",
|
||
disabled: false,
|
||
selected: true
|
||
};
|
||
for (i = 0; i < triggerSelectedData.length ; i += 1) {
|
||
arrayOptions.push({
|
||
value: triggerSelectedData[i].uid,
|
||
label: response[i].mess_engine === "MAIL" ?
|
||
triggerSelectedData[i].mess_from_name && triggerSelectedData[i].mess_from_name !== "" ?
|
||
triggerSelectedData[i].mess_from_name : defaultServerlabel : triggerSelectedData[i].mess_from_name && triggerSelectedData[i].mess_from_name !== "" ?
|
||
triggerSelectedData[i].mess_from_name + ' <' + triggerSelectedData[i].mess_account + '>' : ' <' + triggerSelectedData[i].mess_account + '>'
|
||
});
|
||
auxFromMail[triggerSelectedData[i].uid] = triggerSelectedData[i].email;
|
||
}
|
||
emailAcounts.setOptions(arrayOptions);
|
||
emailAcounts.setValue(arrayOptions[0].value);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
},
|
||
messageError: "There are problems getting the Triggers list, please try again.".translate()
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
formEmailEvent = new PMUI.form.Form({
|
||
id: "formEmailEvent",
|
||
border: true,
|
||
visibleHeader: false,
|
||
width: '900px',
|
||
height: "300px",
|
||
name: "formEmailEvent",
|
||
title: '',
|
||
items: [
|
||
{
|
||
id: "panelDetailsCustom",
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
height: '380px',
|
||
legend: "DETAILS".translate(),
|
||
items: [
|
||
{
|
||
id: "activityId",
|
||
pmType: "text",
|
||
value: activityId,
|
||
name: "activityId",
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "activityType",
|
||
pmType: "text",
|
||
value: activityType,
|
||
name: "activityType",
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
emailAcounts,
|
||
new CriteriaField({
|
||
id: "ToEmail",
|
||
pmType: "text",
|
||
helper: "The email can be a string or a variable (@@myEmail), comma separated list of emails".translate(),
|
||
label: "To".translate(),
|
||
controlsWidth: 400,
|
||
value: "",
|
||
name: "ToEmail",
|
||
required: true,
|
||
visible: true,
|
||
labelWidth: "15%",
|
||
valueType: 'string'
|
||
}),
|
||
new CriteriaField({
|
||
id: 'subjectEmail',
|
||
pmType: 'text',
|
||
label: "Subject".translate(),
|
||
controlsWidth: 400,
|
||
value: "",
|
||
name: "subjectEmail",
|
||
required: false,
|
||
visible: true,
|
||
labelWidth: "15%",
|
||
valueType: 'string'
|
||
}),
|
||
emailContent,
|
||
{
|
||
id: "emailEventId",
|
||
pmType: "text",
|
||
value: emailEventId,
|
||
name: "emailEventId",
|
||
visible: false,
|
||
valueType: 'string'
|
||
},
|
||
{
|
||
id: "prf_uid",
|
||
pmType: "text",
|
||
value: prf_uid,
|
||
name: "prf_uid",
|
||
visible: false,
|
||
valueType: 'string'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
});
|
||
emailWindowTinyMCE = function () {
|
||
initTinyMCE = function () {
|
||
tinyMCE.activeEditor.domainURL = "/sys" + WORKSPACE + "/" + LANG + "/" + SKIN + "/";
|
||
tinyMCE.activeEditor.processID = PMDesigner.project.id;
|
||
};
|
||
formEmailEvent.getField('filecontent').getControls()[0].getHTML().className = 'tmceEditor';
|
||
applyStyleWindowForm(emailEventPropertiesWindow);
|
||
tinyMCE.init({
|
||
editor_selector: 'tmceEditor',
|
||
mode: 'specific_textareas',
|
||
directionality: 'ltr',
|
||
verify_html: false,
|
||
skin: 'o2k7',
|
||
theme: 'advanced',
|
||
skin_variant: 'silver',
|
||
relative_urls : false,
|
||
remove_script_host : false,
|
||
convert_urls: false,
|
||
plugins: 'advhr,advimage,advlink,advlist,autolink,autoresize,contextmenu,directionality,emotions,example,example_dependency,fullpage,fullscreen,iespell,inlinepopups,insertdatetime,layer,legacyoutput,lists,media,nonbreaking,noneditable,pagebreak,paste,preview,print,save,searchreplace,style,tabfocus,table,template,visualblocks,visualchars,wordcount,xhtmlxtras,pmSimpleUploader,pmVariablePicker,style',
|
||
theme_advanced_buttons1: 'pmSimpleUploader,|,pmVariablePicker,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontselect,fontsizeselect,|,cut,copy,paste',
|
||
theme_advanced_buttons2: 'bullist,numlist,|,outdent,indent,blockquote,|,tablecontrols,|,undo,redo,|,link,unlink,image,|,forecolor,backcolor,styleprops',
|
||
theme_advanced_buttons3: 'hr,removeformat,visualaid,|,sub,sup,|,ltr,rtl,|,code',
|
||
popup_css: "/js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialogTinyBpmn.css",
|
||
oninit: initTinyMCE,
|
||
onchange_callback: function (inst) {
|
||
formEmailEvent.getField('filecontent').setValue(tinyMCE.activeEditor.getContent({format: 'raw'}));
|
||
},
|
||
handle_event_callback: function (e) {
|
||
},
|
||
setup: function (ed) {
|
||
ed.onSetContent.add(function (ed, l) {
|
||
formEmailEvent.getField('filecontent').setValue(tinyMCE.activeEditor.getContent({format: 'raw'}));
|
||
});
|
||
}
|
||
});
|
||
};
|
||
getFormData = function ($form) {
|
||
var unindexed_array = $form.serializeArray(),
|
||
indexed_array = {};
|
||
|
||
$.map(unindexed_array, function (n, i) {
|
||
indexed_array[n['name']] = n['value'];
|
||
});
|
||
return indexed_array;
|
||
};
|
||
getEmailEventData = function () {
|
||
var restClient = new PMRestClient({
|
||
endpoint: 'email-event/' + activityId,
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var valFrom;
|
||
if (typeof response === "object") {
|
||
emailEventId = response.email_event_uid;
|
||
if (emailEventId !== "" && typeof emailEventId !== "undefined") {
|
||
formEmailEvent.getField('emailEventId').setValue(response.email_event_uid);
|
||
// Set as selected the email server by uid
|
||
if (response.email_server_uid !== "" && typeof response.email_server_uid !== "undefined") {
|
||
formEmailEvent.getField('emailAcounts').setValue(response.email_server_uid);
|
||
}
|
||
formEmailEvent.getField('subjectEmail').setValue(response.email_event_subject);
|
||
formEmailEvent.getField('ToEmail').setValue(response.email_event_to);
|
||
|
||
formEmailEvent.getField('prf_uid').setValue(response.prf_uid);
|
||
|
||
(new PMRestClient({
|
||
endpoint: 'file-manager',
|
||
typeRequest: 'get',
|
||
messageError: '',
|
||
data: {
|
||
path: "templates"
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
for (var i = 0; i < response.length; i += 1) {
|
||
if (response[i].prf_uid == formEmailEvent.getField('prf_uid').getValue()) {
|
||
formEmailEvent.getField('filecontent').setValue(response[i].prf_content);
|
||
if (tinyMCE.activeEditor && !$(tinyMCE.activeEditor.getContent()).text().trim().length) {
|
||
tinyMCE.activeEditor.setContent(response[i].prf_content);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
})).executeRestClient();
|
||
}
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
|
||
getEmailAccounts(emailAcounts);
|
||
|
||
/*end form*/
|
||
|
||
this.deleteEmailEventByEventUid = function () {
|
||
(new PMRestClient({
|
||
endpoint: 'email-event/by-event/' + activityId,
|
||
typeRequest: 'remove',
|
||
messageError: '',
|
||
functionSuccess: function (xhr, response) {
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
}
|
||
})).executeRestClient();
|
||
return this;
|
||
};
|
||
|
||
domSettings = function () {
|
||
emailEventPropertiesWindow.footer.html.style.textAlign = 'right';
|
||
$("#emailAcounts").find("select:eq(0)").css("height", "auto").attr({
|
||
"onmousedown": "if(this.options.length>" + ddSize + "){this.size=" + ddSize + ";}",
|
||
"onchange": "this.size=0;",
|
||
"onblur": "this.size=0;"
|
||
});
|
||
};
|
||
emailEventPropertiesWindow.addItem(formEmailEvent);
|
||
emailEventPropertiesWindow.open();
|
||
emailEventPropertiesWindow.showFooter();
|
||
emailWindowTinyMCE();
|
||
domSettings();
|
||
getEmailEventData();
|
||
oldValues = formEmailEvent.getData();
|
||
};
|
||
}());
|
||
|
||
|
||
SaveAsForm = function (settings) {
|
||
Mafe.Form.call(this, settings);
|
||
SaveAsForm.prototype.init.call(this, settings);
|
||
};
|
||
SaveAsForm.prototype = new Mafe.Form();
|
||
SaveAsForm.prototype.init = function () {
|
||
var that = this;
|
||
that.onSave = new Function();
|
||
that.onCancel = new Function();
|
||
that.setID("SaveAsForm");
|
||
that.setTitle("Save as".translate());
|
||
that.setItems([{
|
||
id: "prj_name",
|
||
name: "pro_title",
|
||
pmType: "text",
|
||
label: "Title".translate(),
|
||
placeholder: "Title".translate(),
|
||
maxLength: 100,
|
||
required: true
|
||
}, {
|
||
id: "prj_description",
|
||
pmType: "textarea",
|
||
name: "pro_description",
|
||
label: "Description".translate(),
|
||
placeholder: "Description".translate(),
|
||
rows: 200
|
||
}, {
|
||
id: "pro_category",
|
||
name: "pro_category",
|
||
pmType: "dropdown",
|
||
label: "Category".translate(),
|
||
options: [
|
||
{value: "", label: "No Category".translate()}
|
||
]
|
||
}
|
||
]);
|
||
that.setButtons([{
|
||
id: "idCancel",
|
||
text: "Cancel".translate(),
|
||
buttonType: "error",
|
||
handler: function () {
|
||
that.onCancel();
|
||
}
|
||
}, {
|
||
id: "idSave",
|
||
text: "Save".translate(),
|
||
buttonType: "success",
|
||
handler: function () {
|
||
that.onSave();
|
||
}
|
||
}
|
||
]);
|
||
that.loadCategory();
|
||
};
|
||
SaveAsForm.prototype.loadCategory = function () {
|
||
var that = this,
|
||
titleProcess;
|
||
var a = new PMRestClient({
|
||
typeRequest: "post",
|
||
multipart: true,
|
||
data: {
|
||
calls: [{
|
||
url: "project/categories",
|
||
method: "GET"
|
||
}, {
|
||
url: "project/" + PMDesigner.project.projectId + "/process",
|
||
method: "GET"
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
var i, dt, category = that.getField("pro_category");
|
||
dt = response[0].response;
|
||
for (i = 0; i < dt.length; i++) {
|
||
category.addOption({
|
||
value: dt[i].cat_uid,
|
||
label: dt[i].cat_name
|
||
});
|
||
}
|
||
//load data
|
||
dt = response[1].response;
|
||
titleProcess = "Copy of".translate() + " [" + dt.pro_title + "]";
|
||
that.getField("pro_title").setValue(titleProcess.substring(0, 100));
|
||
that.getField("pro_description").setValue(dt.pro_description);
|
||
that.getField("pro_category").setValue(dt.pro_category);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
}
|
||
});
|
||
a.setBaseEndPoint("");
|
||
a.executeRestClient();
|
||
};
|
||
|
||
SaveAs = function (settings) {
|
||
Mafe.Window.call(this, settings);
|
||
SaveAs.prototype.init.call(this, settings);
|
||
};
|
||
SaveAs.prototype = new Mafe.Window();
|
||
SaveAs.prototype.init = function () {
|
||
var that = this;
|
||
that.saveAsForm = new SaveAsForm();
|
||
that.saveAsForm.onYesConfirmCancellation = function () {
|
||
that.close();
|
||
};
|
||
that.saveAsForm.onCancel = function () {
|
||
that.saveAsForm.loseChanges({title: that.title});
|
||
};
|
||
that.saveAsForm.onSave = function () {
|
||
that.saveAsForm.getField("pro_title").setReadOnly(true);
|
||
that.saveAsForm.getField("pro_description").setReadOnly(true);
|
||
PMUI.getPMUIObject($(that.saveAsForm.html).find("#idSave")[0]).setDisabled(true);
|
||
var a = new PMRestClient({
|
||
typeRequest: "post",
|
||
multipart: true,
|
||
data: {
|
||
calls: [{
|
||
url: "project/save-as",
|
||
method: "POST",
|
||
data: {
|
||
prj_uid: PMDesigner.project.projectId,
|
||
prj_name: that.saveAsForm.getField("pro_title").getValue(),
|
||
prj_description: that.saveAsForm.getField("pro_description").getValue(),
|
||
prj_category: that.saveAsForm.getField("pro_category").getValue()
|
||
}
|
||
}
|
||
]
|
||
},
|
||
functionSuccess: function (xhr, response) {
|
||
if (response[0].response.prj_uid) {
|
||
that.close();
|
||
window.location.href = "designer?prj_uid=" + response[0].response.prj_uid;
|
||
} else {
|
||
that.saveAsForm.getField("pro_title").setReadOnly(false);
|
||
that.saveAsForm.getField("pro_description").setReadOnly(false);
|
||
PMUI.getPMUIObject($(that.saveAsForm.html).find("#idSave")[0]).setDisabled(false);
|
||
var field = that.saveAsForm.getField("pro_title");
|
||
$(field.html).find(".pmui-textlabel").text(response[0].response);
|
||
field.showMessage();
|
||
}
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
}
|
||
});
|
||
a.setBaseEndPoint("");
|
||
a.executeRestClient();
|
||
};
|
||
|
||
that.setTitle("Save as".translate());
|
||
that.addItem(that.saveAsForm);
|
||
};
|
||
(function () {
|
||
PMDesigner.granularProcessExport = function () {
|
||
var totalObjects = 0,
|
||
objectValues,
|
||
buttonSave,
|
||
objectsGroup,
|
||
loadObjects,
|
||
domSettings,
|
||
granularProcessExportForm,
|
||
granularProcessExportWindow,
|
||
buttonCancel = new PMUI.ui.Button({
|
||
id: 'cancelButton',
|
||
text: "Cancel".translate(),
|
||
buttonType: 'error',
|
||
handler: function (event) {
|
||
granularProcessExportWindow.close();
|
||
}
|
||
});
|
||
|
||
buttonSave = new PMUI.ui.Button({
|
||
id: 'saveButton',
|
||
text: "Export".translate(),
|
||
handler: function (event) {
|
||
var selectedObjects,
|
||
locationOrigin,
|
||
ws = enviromentVariables('WORKSPACE'),
|
||
formData = granularProcessExportForm.getData();
|
||
selectedObjects = JSON.parse(formData.objectsGroup).map(function (n) {
|
||
return n;
|
||
});
|
||
if (selectedObjects.length === 0) {
|
||
PMDesigner.msgFlash('At least one object should be selected in order to execute the action.'.translate(), document.body, 'error', 3000, 5);
|
||
return;
|
||
}
|
||
if (!window.location.origin) {
|
||
locationOrigin = window.location.protocol + "//" + window.location.hostname +
|
||
(window.location.port ? ':' + window.location.port : '');
|
||
} else if (typeof HTTP_SERVER_HOSTNAME !== 'undefined') {
|
||
locationOrigin = HTTP_SERVER_HOSTNAME;
|
||
} else {
|
||
locationOrigin = window.location.origin;
|
||
}
|
||
location.href = locationOrigin + "/api/1.0/" + ws + "/project/" + PMDesigner.project.id +
|
||
"/export-granular?access_token=" + PMDesigner.project.keys.access_token + '&objects=' +
|
||
encodeURIComponent(JSON.stringify(selectedObjects));
|
||
granularProcessExportWindow.close();
|
||
},
|
||
buttonType: 'success'
|
||
});
|
||
|
||
granularProcessExportWindow = new PMUI.ui.Window({
|
||
id: "granularProcessExportWindow",
|
||
title: "Export Process Objects".translate(),
|
||
width: 350,
|
||
height: DEFAULT_WINDOW_HEIGHT,
|
||
footerItems: [
|
||
buttonCancel,
|
||
buttonSave
|
||
],
|
||
buttonPanelPosition: "bottom",
|
||
footerAling: "right",
|
||
onBeforeClose: function () {
|
||
granularProcessExportWindow.close();
|
||
}
|
||
});
|
||
|
||
objectsGroup = new PMUI.field.CheckBoxGroupField({
|
||
labelVisible: false,
|
||
id: 'objectsGroup',
|
||
controlPositioning: 'horizontal',
|
||
maxDirectionOptions: 1,
|
||
required: true,
|
||
options: [],
|
||
onChange: function (newVal, oldVal) {
|
||
if (totalObjects > JSON.parse(newVal).length) {
|
||
granularProcessExportForm.getField('checkAllId').setValue(0);
|
||
}
|
||
}
|
||
});
|
||
|
||
loadObjects = function () {
|
||
var objectsList,
|
||
restClient,
|
||
i;
|
||
restClient = new PMRestClient({
|
||
endpoint: 'export/listObjects',
|
||
typeRequest: 'get',
|
||
functionSuccess: function (xhr, response) {
|
||
var arrayIds = [],
|
||
i;
|
||
objectsList = JSON.parse(response);
|
||
for (i in objectsList.data) {
|
||
objectsGroup.addOption({
|
||
label: objectsList.data[i].OBJECT_NAME,
|
||
name: objectsList.data[i].OBJECT_NAME,
|
||
selected: false,
|
||
value: objectsList.data[i].OBJECT_ID
|
||
});
|
||
arrayIds.push(objectsList.data[i].OBJECT_ID.toString());
|
||
}
|
||
totalObjects = objectsList.data.length;
|
||
objectValues = objectsGroup.getValueFromControls();
|
||
objectValues = JSON.parse(objectValues).length ? objectValues : JSON.stringify(arrayIds);
|
||
},
|
||
functionFailure: function (xhr, response) {
|
||
PMDesigner.msgWinError(response.error.message);
|
||
PMDesigner.msgFlash('There are problems loading the process objects.'.translate(), document.body, 'error', 3000, 5);
|
||
}
|
||
});
|
||
restClient.executeRestClient();
|
||
};
|
||
loadObjects();
|
||
|
||
granularProcessExportForm = new PMUI.form.Form({
|
||
id: "granularProcessExportForm",
|
||
border: true,
|
||
visibleHeader: false,
|
||
width: '340px',
|
||
name: "granularProcessExportForm",
|
||
title: "",
|
||
items: [
|
||
{
|
||
id: "panelDetailsCustom",
|
||
pmType: "panel",
|
||
layout: 'vbox',
|
||
fieldset: false,
|
||
height: '380px',
|
||
legend: "DETAILS".translate(),
|
||
items: [
|
||
{
|
||
pmType: "checkbox",
|
||
id: "checkAllId",
|
||
labelVisible: false,
|
||
controlPositioning: 'vertical',
|
||
maxDirectionOptions: 2,
|
||
value: '',
|
||
options: [
|
||
{
|
||
label: "Check All".translate(),
|
||
disabled: false,
|
||
value: '1',
|
||
selected: false
|
||
}
|
||
],
|
||
onChange: function (newVal, oldVal) {
|
||
if (newVal[2] === "1") {
|
||
objectsGroup.setValueToControls(objectValues);
|
||
} else {
|
||
objectsGroup.setValueToControls();
|
||
}
|
||
}
|
||
},
|
||
objectsGroup
|
||
]
|
||
}
|
||
]
|
||
});
|
||
|
||
domSettings = function () {
|
||
$('#objectsGroup').find('label:eq(0)').remove();
|
||
};
|
||
|
||
granularProcessExportWindow.addItem(granularProcessExportForm);
|
||
granularProcessExportWindow.open();
|
||
granularProcessExportWindow.showFooter();
|
||
domSettings();
|
||
};
|
||
}());
|
||
|
||
|