PM-3193 "Prepare integration of new Valeo simplified designer in process list" SOLVED
Issue:
Prepare integration of new Valeo simplified designer in process list
Cause:
Nuevo requerimiento de funciones
Solution:
> Se a implementado "DESIGNER: New options in menu" para los plugins; para lo cual se define
en el archivo principal del plugin, lo siguiente (ejemplo):
public function setup()
{ ...
$this->registerDesignerMenu(PATH_PLUGINS . "DemoDesignerMenu/classes/DesignerMenuDemoDesignerMenu.php");
...
}
El archivo "DesignerMenuDemoDesignerMenu.php" es una clase donde se define las nuevas opciones
para el "Menu New" y "Context Menu"
> Se a implementado "DESIGNER: Edit process" para los plugins; en el listado de procesos (esto en DESIGNER)
al hacer doble-click en un proceso, se inicia el modulo para la edicion del proceso, esto tambien
puede ser customizado en el plugin, para lo cual se debera realizar lo siguiente:
- Cambiar en la Base de Datos el valor del campo PROCESS.PRO_TYPE por un nuevo tipo:
* Ejemplo: PRO_TYPE = 'CPF_STANDARD_TPL'
- Registrar un archivo JavaScript para el plugin, esto se define en el archivo principal del
plugin (ejemplo):
public function setup()
{ ...
$this->registerJavascript("processes/main", "DemoDesignerMenu/MyJavaScript.js");
...
}
- En el archivo "MyJavaScript.js" se debe definir la siguiente funcion:
function CPF_STANDARD_TPLDesignerGridRowDblClick(...)
{ ...
}
- Ejemplos de "PROCESS.PRO_TYPE" y la funcion "DesignerGridRowDblClick":
* Ejemplo: PRO_TYPE = 'CPF-STANDARD-TPL' => function CPF_STANDARD_TPLDesignerGridRowDblClick(...)
* Ejemplo: PRO_TYPE = 'CPF STANDARD TPL' => function CPF_STANDARD_TPLDesignerGridRowDblClick(...)
> Se adjunta el plugin "DemoDesignerMenu-1.tar" como ejmplo
This commit is contained in:
@@ -381,14 +381,20 @@ class PMPlugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* With this function we can register new options to designer menu
|
* Register designer menu file
|
||||||
* param string $menuOptionsFile
|
*
|
||||||
|
* @param string $file Designer menu file
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function registerDesignerNewOption($menuOptionsFile)
|
public function registerDesignerMenu($file)
|
||||||
{
|
{
|
||||||
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
try {
|
||||||
$oPluginRegistry->registerDesignerNewOption($this->sNamespace, $menuOptionsFile);
|
$pluginRegistry = &PMPluginRegistry::getSingleton();
|
||||||
|
$pluginRegistry->registerDesignerMenu($this->sNamespace, $file);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -730,20 +736,3 @@ class cronFile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class menuOptionFile
|
|
||||||
{
|
|
||||||
public $namespace;
|
|
||||||
public $menuOptionFile;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function is the constructor of the cronFile class
|
|
||||||
* param string $namespace
|
|
||||||
* param string $menuOptionFile
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct($namespace, $menuOptionFile)
|
|
||||||
{
|
|
||||||
$this->namespace = $namespace;
|
|
||||||
$this->menuOptionFile = $menuOptionFile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ class PMPluginRegistry
|
|||||||
private $_aTaskExtendedProperties = array ();
|
private $_aTaskExtendedProperties = array ();
|
||||||
private $_aDashboardPages = array ();
|
private $_aDashboardPages = array ();
|
||||||
private $_aCronFiles = array ();
|
private $_aCronFiles = array ();
|
||||||
private $_aDesignerMenuFiles = array ();
|
private $_arrayDesignerMenu = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registry a plugin javascript to include with js core at same runtime
|
* Registry a plugin javascript to include with js core at same runtime
|
||||||
@@ -392,9 +392,10 @@ class PMPluginRegistry
|
|||||||
unset( $this->_aDashboardPages[$key] );
|
unset( $this->_aDashboardPages[$key] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach ($this->_aDesignerMenuFiles as $key => $detail) {
|
|
||||||
if ($detail->namespace == $sNamespace) {
|
foreach ($this->_arrayDesignerMenu as $key => $detail) {
|
||||||
unset( $this->_aDesignerMenuFiles[$key] );
|
if ($detail->pluginName == $sNamespace) {
|
||||||
|
unset($this->_arrayDesignerMenu[$key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1609,33 +1610,49 @@ class PMPluginRegistry
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register new options to designer menu
|
* Register designer menu file
|
||||||
*
|
*
|
||||||
* @param unknown_type $namespace
|
* @param string $pluginName Plugin name
|
||||||
* @param unknown_type $cronFile
|
* @param string $file Designer menu file
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function registerDesignerNewOption ($namespace, $menuOptionFile)
|
public function registerDesignerMenu($pluginName, $file)
|
||||||
{
|
{
|
||||||
$found = false;
|
try {
|
||||||
foreach ($this->_aDesignerMenuFiles as $row => $detail) {
|
$flagFound = false;
|
||||||
if ($menuOptionFile == $detail->menuOptionFile && $namespace == $detail->namespace) {
|
|
||||||
$detail->menuOptionFile = $menuOptionFile;
|
foreach ($this->_arrayDesignerMenu as $value) {
|
||||||
$found = true;
|
if ($value->pluginName == $pluginName && $value->file == $file) {
|
||||||
|
$flagFound = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (!$found) {
|
if (!$flagFound) {
|
||||||
$menuOptionFile = new menuOptionFile( $namespace, $menuOptionFile );
|
$obj = new stdClass();
|
||||||
$this->_aDesignerMenuFiles[] = $menuOptionFile;
|
$obj->pluginName = $pluginName;
|
||||||
|
$obj->file = $file;
|
||||||
|
|
||||||
|
$this->_arrayDesignerMenu[] = $obj;
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw $e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return all designer menu Option files registered
|
* Return all designer menu files registered
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getDesignerNewOption()
|
public function getDesignerMenu()
|
||||||
{
|
{
|
||||||
return $this->_aDesignerMenuFiles;
|
try {
|
||||||
|
return $this->_arrayDesignerMenu;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -663,6 +663,7 @@ class Process extends BaseProcess
|
|||||||
$oCriteria->addSelectColumn( ProcessPeer::PRO_UID );
|
$oCriteria->addSelectColumn( ProcessPeer::PRO_UID );
|
||||||
$oCriteria->addSelectColumn( ProcessPeer::PRO_PARENT );
|
$oCriteria->addSelectColumn( ProcessPeer::PRO_PARENT );
|
||||||
$oCriteria->addSelectColumn( ProcessPeer::PRO_STATUS );
|
$oCriteria->addSelectColumn( ProcessPeer::PRO_STATUS );
|
||||||
|
$oCriteria->addSelectColumn(ProcessPeer::PRO_TYPE);
|
||||||
$oCriteria->addSelectColumn( ProcessPeer::PRO_CATEGORY );
|
$oCriteria->addSelectColumn( ProcessPeer::PRO_CATEGORY );
|
||||||
$oCriteria->addSelectColumn( ProcessPeer::PRO_UPDATE_DATE );
|
$oCriteria->addSelectColumn( ProcessPeer::PRO_UPDATE_DATE );
|
||||||
$oCriteria->addSelectColumn( ProcessPeer::PRO_CREATE_DATE );
|
$oCriteria->addSelectColumn( ProcessPeer::PRO_CREATE_DATE );
|
||||||
@@ -732,7 +733,9 @@ class Process extends BaseProcess
|
|||||||
$uids = array ();
|
$uids = array ();
|
||||||
while ($oDataset->next()) {
|
while ($oDataset->next()) {
|
||||||
$row = $oDataset->getRow();
|
$row = $oDataset->getRow();
|
||||||
$row['PROJECT_TYPE'] = in_array($row['PRO_UID'], $bpmnProjects) ? 'bpmn' : 'classic';
|
|
||||||
|
$row["PROJECT_TYPE"] = ($row["PRO_TYPE"] == "NORMAL")? ((in_array($row["PRO_UID"], $bpmnProjects))? "bpmn" : "classic") : $row["PRO_TYPE"];
|
||||||
|
|
||||||
$processes[] = $row;
|
$processes[] = $row;
|
||||||
$uids[] = $processes[sizeof( $processes ) - 1]['PRO_UID'];
|
$uids[] = $processes[sizeof( $processes ) - 1]['PRO_UID'];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,103 +29,44 @@ $RBAC->requirePermissions( 'PM_FACTORY' );
|
|||||||
G::loadClass( 'configuration' );
|
G::loadClass( 'configuration' );
|
||||||
$conf = new Configurations();
|
$conf = new Configurations();
|
||||||
|
|
||||||
if (preg_match("/^([\d\.]+).*$/", System::getVersion(), $arrayMatch)) {
|
$pmVersion = (preg_match("/^([\d\.]+).*$/", System::getVersion(), $arrayMatch))? $arrayMatch[1] : ""; //Otherwise: Branch master
|
||||||
$pmVersion = $arrayMatch[1];
|
|
||||||
} else {
|
$arrayFlagImportFileExtension = array("pm", "pmx", "bpmn");
|
||||||
$pmVersion = ""; //Branch master
|
$arrayFlagMenuNewOption = array("pm" => true, "bpmn" => true);
|
||||||
|
|
||||||
|
if ($pmVersion != "") {
|
||||||
|
$arrayFlagImportFileExtension = (version_compare($pmVersion . "", "3", ">="))? $arrayFlagImportFileExtension : array("pm");
|
||||||
|
$arrayFlagMenuNewOption = (version_compare($pmVersion . "", "3", ">="))? array("bpmn" => true) : array("pm" => true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$arrayImportFileExtension = array("pm", "pmx", "bpmn");
|
$pluginRegistry = &PMPluginRegistry::getSingleton();
|
||||||
$arrayMenuNewOption = array("pm" => true, "bpmn" => true);
|
|
||||||
|
|
||||||
/*options menu*/
|
$arrayMenuNewOptionPlugin = array();
|
||||||
$arrayMenuNew = array();
|
$arrayContextMenuOptionPlugin = array();
|
||||||
|
|
||||||
$mnuNewBpmnProject = new stdClass();
|
foreach ($pluginRegistry->getDesignerMenu() as $value) {
|
||||||
$mnuNewBpmnProject->text = G::LoadTranslation("ID_NEW_BPMN_PROJECT");
|
if (file_exists($value->file)) {
|
||||||
$mnuNewBpmnProject->iconCls = "silk-add";
|
require_once($value->file);
|
||||||
$mnuNewBpmnProject->icon = "";
|
|
||||||
$mnuNewBpmnProject->newProcessType = 'newProcess({type:"bpmnProject",title:"'.$mnuNewBpmnProject->text.'"})';
|
|
||||||
|
|
||||||
$mnuNewProject = new stdClass();
|
$className = "DesignerMenu" . $value->pluginName;
|
||||||
$mnuNewProject->text = G::LoadTranslation("ID_NEW_PROJECT");
|
|
||||||
$mnuNewProject->iconCls = "silk-add";
|
|
||||||
$mnuNewProject->icon = "";
|
|
||||||
$mnuNewProject->newProcessType = 'newProcess({type:"classicProject",title:"'.$mnuNewProject->text.'"})';
|
|
||||||
|
|
||||||
$menuOption = array("pm" => $mnuNewProject, "bpmn" => $mnuNewBpmnProject);
|
if (class_exists($className)) {
|
||||||
|
$obj = new $className();
|
||||||
|
|
||||||
foreach($arrayMenuNewOption as $type => $val) {
|
if (method_exists($obj, "getDesignerMenu")) {
|
||||||
if($val) {
|
$arrayDesignerMenuData = $obj->getDesignerMenu();
|
||||||
array_push($arrayMenuNew, $menuOption[$type]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*right click menu*/
|
|
||||||
$contexMenuRightClick = array(
|
|
||||||
(object)array(
|
|
||||||
"text" => G::LoadTranslation("ID_EDIT"),
|
|
||||||
"iconCls" => "button_menu_ext ss_sprite ss_pencil",
|
|
||||||
"handler" => "editProcess()"
|
|
||||||
),
|
|
||||||
(object)array(
|
|
||||||
"id" => "activator2",
|
|
||||||
"text" => "",
|
|
||||||
"icon" => "",
|
|
||||||
"handler" => "activeDeactive()"
|
|
||||||
),
|
|
||||||
(object)array(
|
|
||||||
"id" => "debug",
|
|
||||||
"text" => "",
|
|
||||||
"handler" => "enableDisableDebug()"
|
|
||||||
),
|
|
||||||
(object)array(
|
|
||||||
"text" => G::LoadTranslation("ID_DELETE"),
|
|
||||||
"iconCls" => "button_menu_ext ss_sprite ss_cross",
|
|
||||||
"handler" => "deleteProcess()"
|
|
||||||
),
|
|
||||||
(object)array(
|
|
||||||
"text" => G::LoadTranslation("ID_EXPORT"),
|
|
||||||
"icon" => "/images/export.png",
|
|
||||||
"handler" => "exportProcess()"
|
|
||||||
),
|
|
||||||
(object)array(
|
|
||||||
"id" => "mnuGenerateBpmn",
|
|
||||||
"text" => G::LoadTranslation("ID_GENERATE_BPMN_PROJECT"),
|
|
||||||
"iconCls" => "button_menu_ext ss_sprite ss_page_white_go",
|
|
||||||
"hidden" => true,
|
|
||||||
"handler" => "generateBpmn()"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
/*end right click menu*/
|
|
||||||
/*get registered options from plugin*/
|
|
||||||
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
|
||||||
$fromPlugin = $oPluginRegistry->getDesignerNewOption();
|
|
||||||
|
|
||||||
$jsFromPlugin = false;
|
if (isset($arrayDesignerMenuData["MENU_NEW_OPTION"]) && is_array($arrayDesignerMenuData["MENU_NEW_OPTION"])) {
|
||||||
foreach($fromPlugin as $menuOptionFile) {
|
$arrayMenuNewOptionPlugin = array_merge($arrayMenuNewOptionPlugin, $arrayDesignerMenuData["MENU_NEW_OPTION"]);
|
||||||
$menuOptionsFromPlugin = include_once($menuOptionFile->menuOptionFile);
|
}
|
||||||
if(isset($menuOptionsFromPlugin)) {
|
|
||||||
if(is_array($menuOptionsFromPlugin) && sizeof($menuOptionsFromPlugin)) {
|
if (isset($arrayDesignerMenuData["CONTEXT_MENU_OPTION"]) && is_array($arrayDesignerMenuData["CONTEXT_MENU_OPTION"])) {
|
||||||
if(is_array($menuOptionsFromPlugin[0]) && sizeof($menuOptionsFromPlugin[0])) {
|
$arrayContextMenuOptionPlugin = array_merge($arrayContextMenuOptionPlugin, $arrayDesignerMenuData["CONTEXT_MENU_OPTION"]);
|
||||||
$arrayMenuNew = array_merge($arrayMenuNew,$menuOptionsFromPlugin[0]);
|
|
||||||
}
|
|
||||||
if(is_array($menuOptionsFromPlugin[1]) && sizeof($menuOptionsFromPlugin[1])) {
|
|
||||||
$contexMenuRightClick = array_merge($contexMenuRightClick,$menuOptionsFromPlugin[1]);
|
|
||||||
}
|
|
||||||
if(isset($menuOptionsFromPlugin[2])) {
|
|
||||||
if(file_exists(PATH_PLUGINS.implode("/",array_slice(explode("/",$menuOptionsFromPlugin[2]),2)))) {
|
|
||||||
$jsFromPlugin = $menuOptionsFromPlugin[2];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*end get registered options from plugin*/
|
|
||||||
/*end options menu*/
|
|
||||||
if ($pmVersion != "") {
|
|
||||||
$arrayImportFileExtension = (version_compare($pmVersion . "", "3", ">="))? $arrayImportFileExtension : array("pm");
|
|
||||||
$arrayMenuNewOption = (version_compare($pmVersion . "", "3", ">="))? array("bpmn" => true) : array("pm" => true);
|
|
||||||
}
|
|
||||||
|
|
||||||
$oHeadPublisher->addExtJsScript( 'processes/main', true ); //adding a javascript file .js
|
$oHeadPublisher->addExtJsScript( 'processes/main', true ); //adding a javascript file .js
|
||||||
$oHeadPublisher->addContent( 'processes/main' ); //adding a html file .html.
|
$oHeadPublisher->addContent( 'processes/main' ); //adding a html file .html.
|
||||||
@@ -133,11 +74,10 @@ $oHeadPublisher->addContent( 'processes/main' ); //adding a html file .html.
|
|||||||
$partnerFlag = (defined('PARTNER_FLAG')) ? PARTNER_FLAG : false;
|
$partnerFlag = (defined('PARTNER_FLAG')) ? PARTNER_FLAG : false;
|
||||||
$oHeadPublisher->assign( 'PARTNER_FLAG', $partnerFlag );
|
$oHeadPublisher->assign( 'PARTNER_FLAG', $partnerFlag );
|
||||||
$oHeadPublisher->assign( 'pageSize', $conf->getEnvSetting( 'casesListRowNumber' ) );
|
$oHeadPublisher->assign( 'pageSize', $conf->getEnvSetting( 'casesListRowNumber' ) );
|
||||||
$oHeadPublisher->assign("arrayImportFileExtension", $arrayImportFileExtension);
|
$oHeadPublisher->assign("arrayFlagImportFileExtension", $arrayFlagImportFileExtension);
|
||||||
$oHeadPublisher->assign("arrayMenuNewOption", $arrayMenuNewOption);
|
$oHeadPublisher->assign("arrayFlagMenuNewOption", $arrayFlagMenuNewOption);
|
||||||
|
$oHeadPublisher->assign("arrayMenuNewOptionPlugin", $arrayMenuNewOptionPlugin);
|
||||||
$oHeadPublisher->assign("arrayMenuNew", $arrayMenuNew);
|
$oHeadPublisher->assign("arrayContextMenuOptionPlugin", $arrayContextMenuOptionPlugin);
|
||||||
$oHeadPublisher->assign("contexMenu", $contexMenuRightClick);
|
|
||||||
$oHeadPublisher->assign("jsFromPlugin", $jsFromPlugin);
|
|
||||||
|
|
||||||
G::RenderPage( 'publish', 'extJs' );
|
G::RenderPage( 'publish', 'extJs' );
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ var processesGrid;
|
|||||||
var store;
|
var store;
|
||||||
var comboCategory;
|
var comboCategory;
|
||||||
var winDesigner;
|
var winDesigner;
|
||||||
var typeMnuNew;
|
|
||||||
var newTypeProcess;
|
var newTypeProcess;
|
||||||
|
|
||||||
|
|
||||||
@@ -178,39 +177,71 @@ Ext.onReady(function(){
|
|||||||
items:[_('ID_PAGE_SIZE')+':',comboPageSize]
|
items:[_('ID_PAGE_SIZE')+':',comboPageSize]
|
||||||
}) */
|
}) */
|
||||||
|
|
||||||
for(var k=0;k<arrayMenuNew.length;k++) {
|
var mnuNewBpmnProject = {
|
||||||
var handlerMenu = arrayMenuNew[k].handler;
|
text: _("ID_NEW_BPMN_PROJECT"),
|
||||||
arrayMenuNew[k].handler = new Function(handlerMenu)
|
iconCls: "silk-add",
|
||||||
}
|
icon: "",
|
||||||
for(var j=0;j<contexMenu.length;j++) {
|
pmTypeProject: "bpmnProject",
|
||||||
var handlerMenu = contexMenu[j].handler;
|
handler: function ()
|
||||||
contexMenu[j].handler = new Function(handlerMenu)
|
{
|
||||||
|
newProcess({type:"bpmnProject"});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var mnuNewProject = {
|
||||||
|
text: _("ID_NEW_PROJECT"),
|
||||||
|
iconCls: "silk-add",
|
||||||
|
icon: "",
|
||||||
|
pmTypeProject: "classicProject",
|
||||||
|
handler: function ()
|
||||||
|
{
|
||||||
|
newProcess({type: "classicProject"});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var arrayMenuNewOption = [];
|
||||||
|
|
||||||
|
if (typeof(arrayFlagMenuNewOption["bpmn"]) != "undefined") {
|
||||||
|
arrayMenuNewOption.push(mnuNewBpmnProject);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(jsFromPlugin) {
|
if (typeof(arrayFlagMenuNewOption["pm"]) != "undefined") {
|
||||||
injectScriptElement(jsFromPlugin);
|
arrayMenuNewOption.push(mnuNewProject);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(typeof(arrayMenuNewOption["bpmn"]) != "undefined" && typeof(arrayMenuNewOption["pm"]) != "undefined"){
|
for (var i = 0; i <= arrayMenuNewOptionPlugin.length - 1; i++) {
|
||||||
newTypeProcess = {
|
try {
|
||||||
xtype: 'tbsplit',
|
if (typeof(arrayMenuNewOptionPlugin[i].handler) != "undefined") {
|
||||||
text: _('ID_NEW'),
|
eval("arrayMenuNewOptionPlugin[i].handler = " + arrayMenuNewOptionPlugin[i].handler + ";");
|
||||||
iconCls: 'button_menu_ext ss_sprite ss_add',
|
}
|
||||||
menu: arrayMenuNew,
|
|
||||||
listeners: {
|
arrayMenuNewOption.push(arrayMenuNewOptionPlugin[i]);
|
||||||
"click": function (obj, e) {
|
} catch (e) {
|
||||||
obj.showMenu();
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
};
|
if (arrayMenuNewOption.length > 1) {
|
||||||
|
newTypeProcess = {
|
||||||
|
xtype: "tbsplit",
|
||||||
|
text: _("ID_NEW"),
|
||||||
|
iconCls: "button_menu_ext ss_sprite ss_add",
|
||||||
|
menu: arrayMenuNewOption,
|
||||||
|
listeners: {
|
||||||
|
"click": function (obj, e)
|
||||||
|
{
|
||||||
|
obj.showMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
newTypeProcess = {
|
newTypeProcess = {
|
||||||
text: _('ID_NEW'),
|
text: _("ID_NEW"),
|
||||||
iconCls: 'button_menu_ext ss_sprite ss_add',
|
iconCls: "button_menu_ext ss_sprite ss_add",
|
||||||
handler: function (){
|
handler: function ()
|
||||||
newProcess({type: typeMnuNew});
|
{
|
||||||
}
|
newProcess({type: arrayMenuNewOption[0].pmTypeProject});
|
||||||
};
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
processesGrid = new Ext.grid.GridPanel( {
|
processesGrid = new Ext.grid.GridPanel( {
|
||||||
@@ -439,9 +470,62 @@ Ext.onReady(function(){
|
|||||||
messageContextMenu.showAt([coords[0], coords[1]]);
|
messageContextMenu.showAt([coords[0], coords[1]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var arrayContextMenuOption = [
|
||||||
|
{
|
||||||
|
text: _("ID_EDIT"),
|
||||||
|
iconCls: "button_menu_ext ss_sprite ss_pencil",
|
||||||
|
handler: editProcess
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "activator2",
|
||||||
|
text: "",
|
||||||
|
icon: "",
|
||||||
|
handler: activeDeactive
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "debug",
|
||||||
|
text: "",
|
||||||
|
handler: enableDisableDebug
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: _("ID_DELETE"),
|
||||||
|
iconCls: "button_menu_ext ss_sprite ss_cross",
|
||||||
|
handler: deleteProcess
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: _("ID_EXPORT"),
|
||||||
|
icon: "/images/export.png",
|
||||||
|
handler: function ()
|
||||||
|
{
|
||||||
|
exportProcess();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "mnuGenerateBpmn",
|
||||||
|
text: _("ID_GENERATE_BPMN_PROJECT"),
|
||||||
|
iconCls: "button_menu_ext ss_sprite ss_page_white_go",
|
||||||
|
hidden: true,
|
||||||
|
handler: function ()
|
||||||
|
{
|
||||||
|
generateBpmn();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
for (var i = 0; i <= arrayContextMenuOptionPlugin.length - 1; i++) {
|
||||||
|
try {
|
||||||
|
if (typeof(arrayContextMenuOptionPlugin[i].handler) != "undefined") {
|
||||||
|
eval("arrayContextMenuOptionPlugin[i].handler = " + arrayContextMenuOptionPlugin[i].handler + ";");
|
||||||
|
}
|
||||||
|
|
||||||
|
arrayContextMenuOption.push(arrayContextMenuOptionPlugin[i]);
|
||||||
|
} catch (e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var messageContextMenu = new Ext.menu.Menu({
|
var messageContextMenu = new Ext.menu.Menu({
|
||||||
id: 'messageContextMenu',
|
id: "messageContextMenu",
|
||||||
items: contexMenu
|
items: arrayContextMenuOption
|
||||||
});
|
});
|
||||||
|
|
||||||
var viewport = new Ext.Viewport({
|
var viewport = new Ext.Viewport({
|
||||||
@@ -459,10 +543,7 @@ function newProcess(params)
|
|||||||
params = typeof params == 'undefined' ? {type:'classicProject'} : params;
|
params = typeof params == 'undefined' ? {type:'classicProject'} : params;
|
||||||
|
|
||||||
// TODO this variable have hardcoded labels, it must be changed on the future
|
// TODO this variable have hardcoded labels, it must be changed on the future
|
||||||
var formTitle = params.title;
|
var formTitle = (params.type == "classicProject")? _("ID_NEW_PROJECT") : _("ID_NEW_BPMN_PROJECT");
|
||||||
if(typeof formTitle === "undefined") {
|
|
||||||
formTitle = params.type == "classicProject" ? _('ID_NEW_PROJECT') : _('ID_NEW_BPMN_PROJECT');
|
|
||||||
}
|
|
||||||
|
|
||||||
// window.location = 'processes_New';
|
// window.location = 'processes_New';
|
||||||
var ProcessCategories = new Ext.form.ComboBox({
|
var ProcessCategories = new Ext.form.ComboBox({
|
||||||
@@ -597,10 +678,6 @@ function doSearch(){
|
|||||||
|
|
||||||
editProcess = function(typeParam)
|
editProcess = function(typeParam)
|
||||||
{
|
{
|
||||||
if(jsFromPlugin) {
|
|
||||||
pluginFunctions.onRowdblclick();
|
|
||||||
}
|
|
||||||
|
|
||||||
var rowSelected = processesGrid.getSelectionModel().getSelected();
|
var rowSelected = processesGrid.getSelectionModel().getSelected();
|
||||||
if (!rowSelected) {
|
if (!rowSelected) {
|
||||||
Ext.Msg.show({
|
Ext.Msg.show({
|
||||||
@@ -615,20 +692,34 @@ editProcess = function(typeParam)
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var url, pro_uid = rowSelected.data.PRO_UID;
|
|
||||||
var type = rowSelected.data.PROJECT_TYPE;
|
|
||||||
|
|
||||||
if (typeParam == "bpmn" || typeParam == "classic") {
|
switch (rowSelected.data.PROJECT_TYPE) {
|
||||||
type = typeParam;
|
case "bpmn":
|
||||||
}
|
openWindowIfIE("../designer?prj_uid=" + rowSelected.data.PRO_UID);
|
||||||
|
break;
|
||||||
|
case "classic":
|
||||||
|
location.assign("processes_Map?PRO_UID=" + rowSelected.data.PRO_UID);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
var fn = rowSelected.data.PROJECT_TYPE;
|
||||||
|
fn = fn.replace(/\s/g, "_");
|
||||||
|
fn = fn.replace(/\-/g, "_");
|
||||||
|
fn = fn + "DesignerGridRowDblClick";
|
||||||
|
|
||||||
if (type == "bpmn") {
|
eval("var flag = typeof(" + fn + ") == \"function\";");
|
||||||
url = '../designer?prj_uid=' + pro_uid;
|
|
||||||
openWindowIfIE(url);
|
if (flag) {
|
||||||
} else {
|
eval(fn + "(rowSelected.data);");
|
||||||
url = 'processes_Map?PRO_UID=' + pro_uid;
|
} else {
|
||||||
location.href = url;
|
Ext.MessageBox.show({
|
||||||
}
|
title: _("ID_ERROR"),
|
||||||
|
msg: _("ID_DESIGNER_PROCESS_DESIGNER_IS_DISABLED"),
|
||||||
|
icon: Ext.MessageBox.ERROR,
|
||||||
|
buttons: Ext.MessageBox.OK
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
editNewProcess = function(){
|
editNewProcess = function(){
|
||||||
@@ -1183,7 +1274,7 @@ importProcess = function()
|
|||||||
handler : function(){
|
handler : function(){
|
||||||
var arrayMatch = [];
|
var arrayMatch = [];
|
||||||
|
|
||||||
if ((arrayMatch = eval("/^.+\.(" + arrayImportFileExtension.join("|") + ")$/i").exec(Ext.getCmp("form-file").getValue()))) {
|
if ((arrayMatch = eval("/^.+\.(" + arrayFlagImportFileExtension.join("|") + ")$/i").exec(Ext.getCmp("form-file").getValue()))) {
|
||||||
var fileExtension = arrayMatch[1];
|
var fileExtension = arrayMatch[1];
|
||||||
|
|
||||||
switch (fileExtension) {
|
switch (fileExtension) {
|
||||||
@@ -1493,10 +1584,3 @@ function openWindowIfIE(pathDesigner) {
|
|||||||
location.href = pathDesigner;
|
location.href = pathDesigner;
|
||||||
}
|
}
|
||||||
|
|
||||||
function injectScriptElement(url, onLoad, onError, scope) {
|
|
||||||
var script = document.createElement('script');
|
|
||||||
script.type = 'text/javascript';
|
|
||||||
script.src = url;
|
|
||||||
document.getElementsByTagName('head')[0].appendChild(script);
|
|
||||||
return script;
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user