UNPKG

processmaker-builder

Version:

The gulp task runner for ProcessMaker building

1,008 lines (991 loc) 87.7 kB
(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(PM