diff --git a/workflow/engine/classes/class.configuration.php b/workflow/engine/classes/class.configuration.php index 0d4b7bdf1..1bec05267 100755 --- a/workflow/engine/classes/class.configuration.php +++ b/workflow/engine/classes/class.configuration.php @@ -2,10 +2,10 @@ /** * class.configuration.php * @package workflow.engine.ProcessMaker - * + * * ProcessMaker Open Source Edition * Copyright (C) 2004 - 2011 Colosa Inc. - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the @@ -15,13 +15,13 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * + * */ // // It works with the table CONFIGURATION in a WF dataBase @@ -47,29 +47,29 @@ require_once 'classes/model/Configuration.php'; * @copyright 2007 COLOSA * @version Release: @package_version@ * @package workflow.engine.ProcessMaker - */ + */ class Configurations // extends Configuration { var $aConfig = array(); private $Configuration = null; private $UserConfig = null; - + /** * Set Configurations * @return void - */ + */ function Configurations() { $this->Configuration = new Configuration(); } - + /** * arrayClone * * @param array &$object Source array * @param array &$cloneObject Array duplicate * @return void - */ + */ function arrayClone( &$object, &$cloneObject ) { if (is_array($object)) { @@ -84,56 +84,56 @@ class Configurations // extends Configuration } } } - + /** * configObject * - * @param object &$object + * @param object &$object * @param array &$from * @return void - */ + */ function configObject( &$object, &$from ) { - if (!(is_object($object) || is_array($object))) + if (!(is_object($object) || is_array($object))) return; - if (!isset($from)) + if (!isset($from)) $from = &$this->aConfig; foreach($from as $k => $v ) { if (isset($v) && array_key_exists($k,$object)) { - if (is_object($v)) + if (is_object($v)) throw new Exception( 'Object is not permited inside configuration array.' ); - + if (is_object($object)) { - if (is_array($v)) + if (is_array($v)) $this->configObject($object->{$k}, $v); - else + else $object->{$k} = $v; - } - else { + } + else { if (is_array($object)) { - if (is_array($v)) + if (is_array($v)) $this->configObject($object[$k], $v); - else + else $object[$k] = $v; } } } } } - + /** * loadConfig * - * @param object &$object - * @param string $cfg - * @param object $obj - * @param string $pro - * @param string $usr - * @param string $app + * @param object &$object + * @param string $cfg + * @param object $obj + * @param string $pro + * @param string $usr + * @param string $app * @return void - */ + */ function loadConfig(&$object, $cfg, $obj='', $pro = '', $usr = '', $app = '') { $this->load($cfg, $obj, $pro, $usr, $app); @@ -143,13 +143,13 @@ class Configurations // extends Configuration /** * loadConf * - * @param string $cfg - * @param object $obj - * @param string $pro - * @param string $usr - * @param string $app + * @param string $cfg + * @param object $obj + * @param string $pro + * @param string $usr + * @param string $app * @return void - */ + */ function load($cfg, $obj='', $pro = '', $usr = '', $app = '') { $this->Fields = array(); @@ -158,23 +158,23 @@ class Configurations // extends Configuration $this->Fields = $this->Configuration->load($cfg, $obj, $pro, $usr, $app); } catch(Exception $e) {} // the configuration does not exist - + if (isset($this->Fields['CFG_VALUE'])) $this->aConfig = unserialize($this->Fields['CFG_VALUE']); - - if (!is_array($this->aConfig)) + + if (!is_array($this->aConfig)) $this->aConfig = Array(); - + return $this->aConfig; } - + /** * saveConfig * - * @param object &$object + * @param object &$object * @param array &$from * @return void - */ + */ function saveConfig($cfg,$obj,$pro='',$usr='',$app='') { $aFields = array( @@ -192,14 +192,14 @@ class Configurations // extends Configuration $this->Configuration->update($aFields); } } - + /** * saveObject * - * @param object &$object + * @param object &$object * @param array &$from * @return void - */ + */ function saveObject(&$object,$cfg,$obj,$pro='',$usr='',$app='') { $aFields = array( @@ -222,13 +222,13 @@ class Configurations // extends Configuration * loadObject * this function is deprecated, we dont know why return an object, use the function getConfiguration below * - * @param string $cfg + * @param string $cfg * @param object $obj * @param string $pro * @param string $usr * @param string $app * @return void - */ + */ function loadObject($cfg, $obj, $pro = '', $usr = '', $app = '') { $objectContainer=array((object) array()); @@ -236,26 +236,26 @@ class Configurations // extends Configuration if ($this->Configuration->exists( $cfg, $obj, $pro, $usr, $app )) $this->Fields = $this->Configuration->load( $cfg, $obj, $pro, $usr, $app ); else - return $objectContainer[0]; - + return $objectContainer[0]; + if (isset($this->Fields['CFG_VALUE'])) $objectContainer = unserialize($this->Fields['CFG_VALUE']); - if (!is_array($objectContainer)||sizeof($objectContainer)!=1) + if (!is_array($objectContainer)||sizeof($objectContainer)!=1) return (object) array(); else return $objectContainer[0]; } - + /** * getConfiguration * - * @param string $cfg + * @param string $cfg * @param object $obj * @param string $pro * @param string $usr * @param string $app * @return void - */ + */ function getConfiguration($cfg, $obj, $pro = '', $usr = '', $app = '') { try { @@ -266,7 +266,7 @@ class Configurations // extends Configuration if ( is_array($result) && sizeof($result)==1 ) { $arrayKeys = Array_keys( $result ); return $result[ $arrayKeys[0]]; - } + } else { return $result; } @@ -279,16 +279,16 @@ class Configurations // extends Configuration return null; } } - + /** * usersNameFormat * @author Enrique Ponce de Leon enrique@colosa.com * @param string $username - * @param string $firstname + * @param string $firstname * @param string $lastname * @return string User Name Well-Formatted */ - + function usersNameFormat($username, $firstname, $lastname){ try{ if (!isset($this->UserConfig)) $this->UserConfig = $this->getConfiguration('ENVIRONMENT_SETTINGS', ''); @@ -297,59 +297,69 @@ class Configurations // extends Configuration $aux = str_replace('@userName', $username, $this->UserConfig['format']); $aux = str_replace('@firstName', $firstname, $aux); $aux = str_replace('@lastName', $lastname, $aux); - return $aux; + return $aux; }else{ - return $username; + return $username; } }catch(Exception $oError){ return null; } } - - /** - * getFormats - * @author Enrique Ponce de Leon enrique@colosa.com - * @return FORMATS array - */ - - function getFormats(){ - if (!isset($this->UserConfig)) { - $this->UserConfig = $this->getConfiguration('ENVIRONMENT_SETTINGS', ''); + + /** + * getFormats + * @author Enrique Ponce de Leon enrique@colosa.com + * @return FORMATS array + */ + public function getFormats() + { + if (!isset($this->UserConfig)) { + $this->UserConfig = $this->getConfiguration("ENVIRONMENT_SETTINGS", ""); + } + + //Setting defaults + if (!isset($this->UserConfig["format"])) { + $this->UserConfig["format"] = "@lastName, @firstName (@userName)"; + } + + if (!isset($this->UserConfig["dateFormat"])) { + $this->UserConfig["dateFormat"] = "Y-m-d H:i:s"; + } + + if (!isset($this->UserConfig["startCaseHideProcessInf"])) { + $this->UserConfig["startCaseHideProcessInf"] = false; + } + + if (!isset($this->UserConfig["casesListDateFormat"])) { + $this->UserConfig["casesListDateFormat"] = "Y-m-d H:i:s"; + } + + if (!isset($this->UserConfig["casesListRowNumber"])) { + $this->UserConfig["casesListRowNumber"] = 25; + } + + if (!isset($this->UserConfig["casesListRefreshTime"]) || + (isset($this->UserConfig["casesListRefreshTime"]) && empty($this->UserConfig["casesListRefreshTime"])) + ) { + $this->UserConfig["casesListRefreshTime"] = 120; //2 minutes + } + + $this->UserConfig["TimeZone"] = date("T"); + + return $this->UserConfig; } - // setting defaults - if (!isset($this->UserConfig['format'])) { - $this->UserConfig['format'] = '@lastName, @firstName (@userName)'; - } - if (!isset($this->UserConfig['dateFormat'])) { - $this->UserConfig['dateFormat'] = 'Y-m-d H:i:s'; - } - if (!isset($this->UserConfig['casesListDateFormat'])) { - $this->UserConfig['casesListDateFormat'] = 'Y-m-d H:i:s'; - } - if (!isset($this->UserConfig['casesListRowNumber'])) { - $this->UserConfig['CasesListRowNumber'] = '25'; - } - if (!isset($this->UserConfig['startCaseHideProcessInf'])) { - $this->UserConfig['startCaseHideProcessInf'] = false; - } - $this->UserConfig['TimeZone'] = date('T'); - - return $this->UserConfig; - } - - /** * setConfig * - * @param string $route + * @param string $route * @param object &$object * @param object &$to * @return void - */ + */ function setConfig( $route , &$object , &$to ) { - if (!isset($to)) + if (!isset($to)) $to = &$this->aConfig; $routes = explode(',',$route); foreach($routes as $r) { @@ -373,18 +383,18 @@ class Configurations // extends Configuration } } else { if (is_object($object)) { - if (!isset($to[$ro[0]])) + if (!isset($to[$ro[0]])) $to[$ro[0]] = array(); $this->setConfig(implode('/',$rou),$object->{$ro[0]},$to[$ro[0]]); } else { if (is_array($object)) { - if (!isset($to[$ro[0]])) + if (!isset($to[$ro[0]])) $to[$ro[0]] = array(); $this->setConfig(implode('/',$rou),$object[$ro[0]],$to[$ro[0]]); } else { $to = $object; } - } + } } } else { @@ -416,7 +426,7 @@ class Configurations // extends Configuration } } } - + function getDateFormats(){ $formats[] = Array( 'id'=>'Y-m-d H:i:s', //the id , don't translate @@ -470,7 +480,7 @@ class Configurations // extends Configuration 'id'=>'d m, Y', 'name'=>G::loadTranslation('ID_DATE_FORMAT_13')//'d m, Y' i.e:'17 11, 2010' ); - + return $formats; } @@ -506,13 +516,13 @@ class Configurations // extends Configuration return $formats; } - + function getSystemDate($dateTime) { $oConf = new Configurations; $oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS',''); $creationDateMask = isset($oConf->aConfig['dateFormat'])? $oConf->aConfig['dateFormat']: ''; - + if( $creationDateMask != '' ) { if( strpos($dateTime, ' ') !== false ) { list($date, $time) = explode(' ', $dateTime); @@ -522,22 +532,22 @@ class Configurations // extends Configuration } else { list($y, $m, $d) = explode('-', $dateTime); $dateTime = date($creationDateMask, mktime(0, 0, 0, $m, $d, $y)); - } - } - + } + } + return $dateTime; } - + function getEnvSetting($key=null, $data=null) { $this->loadConfig($obj, 'ENVIRONMENT_SETTINGS',''); - + if( isset($key) ) { if( isset($this->aConfig[$key]) ) { if( isset($data) && is_array($data) ) foreach($data as $k=>$v) $this->aConfig[$key] = str_replace('@'.$k, $v, $this->aConfig[$key]); - + return $this->aConfig[$key]; } else return ''; @@ -545,4 +555,4 @@ class Configurations // extends Configuration return $this->aConfig; } } -?> \ No newline at end of file + diff --git a/workflow/engine/methods/cases/main_init.php b/workflow/engine/methods/cases/main_init.php index 4fcdd7640..158be7e1b 100755 --- a/workflow/engine/methods/cases/main_init.php +++ b/workflow/engine/methods/cases/main_init.php @@ -23,53 +23,64 @@ * */ - $oHeadPublisher =& headPublisher::getSingleton(); - $oHeadPublisher->addExtJsScript('cases/main', false ); //adding a javascript file .js - $oHeadPublisher->addContent( 'cases/main'); //adding a html file .html. - - $keyMem = 'USER_PREFERENCES'.$_SESSION['USER_LOGGED']; - $memcache = & PMmemcached::getSingleton(SYS_SYS); - if ( ($arrayConfig = $memcache->get($keyMem)) === false ) { - G::loadClass('configuration'); - $oConf = new Configurations; - $oConf->loadConfig($x, 'USER_PREFERENCES','','',$_SESSION['USER_LOGGED'],''); - $arrayConfig = $oConf->aConfig; - $memcache->set( $keyMem, $arrayConfig, PMmemcached::ONE_HOUR); - } +G::LoadClass("configuration"); + + + + + +$conf = new Configurations(); + +$oHeadPublisher = &headPublisher::getSingleton(); +$oHeadPublisher->addExtJsScript("cases/main", false); //Adding a javascript file .js +$oHeadPublisher->addContent("cases/main"); //Adding a html file .html. + +$keyMem = "USER_PREFERENCES" . $_SESSION["USER_LOGGED"]; +$memcache = &PMmemcached::getSingleton(SYS_SYS); + +if (($arrayConfig = $memcache->get($keyMem)) === false) { + $conf->loadConfig($x, "USER_PREFERENCES", "", "", $_SESSION["USER_LOGGED"], ""); + $arrayConfig = $conf->aConfig; + $memcache->set($keyMem, $arrayConfig, PMmemcached::ONE_HOUR); +} + +$confDefaultOption = ""; + +if (isset($arrayConfig["DEFAULT_CASES_MENU"])) { //this user has a configuration record + $confDefaultOption = $arrayConfig["DEFAULT_CASES_MENU"]; - $confDefaultOption=''; - if( isset($arrayConfig['DEFAULT_CASES_MENU']) ){ #this user has a configuration record - $confDefaultOption = $arrayConfig['DEFAULT_CASES_MENU']; global $G_TMP_MENU; + $oMenu = new Menu(); - $oMenu->load('cases'); - $defaultOption = ''; - foreach($oMenu->Id as $i=>$id){ - if( $id == $confDefaultOption ){ - $defaultOption = $oMenu->Options[$i]; - break; - } + $oMenu->load("cases"); + $defaultOption = ""; + + foreach ($oMenu->Id as $i => $id) { + if ($id == $confDefaultOption) { + $defaultOption = $oMenu->Options[$i]; + break; + } } - $defaultOption = $defaultOption != '' ? $defaultOption : 'casesListExtJs'; - - } - else { - $defaultOption = 'casesListExtJs'; - $confDefaultOption = 'CASES_INBOX'; - } - if (isset($_GET['id']) && isset($_GET['id'])) { - $defaultOption = '../cases/open?APP_UID=' . $_GET['id'] . '&DEL_INDEX=' . $_GET['i']; + $defaultOption = ($defaultOption != "")? $defaultOption : "casesListExtJs"; +} else { + $defaultOption = "casesListExtJs"; + $confDefaultOption = "CASES_INBOX"; +} - if (isset($_GET['a'])) { - $defaultOption .= '&action=' . $_GET['a']; +if (isset($_GET["id"]) && isset($_GET["id"])) { + $defaultOption = "../cases/open?APP_UID=" . $_GET["id"] . "&DEL_INDEX=" . $_GET["i"]; + + if (isset($_GET["a"])) { + $defaultOption .= "&action=" . $_GET["a"]; } - } - - $oHeadPublisher->assign( 'defaultOption', $defaultOption); // user menu permissions - $oHeadPublisher->assign( '_nodeId', isset($confDefaultOption)?$confDefaultOption:'PM_USERS'); // user menu permissions +} + +$oHeadPublisher->assign("defaultOption", $defaultOption); //User menu permissions +$oHeadPublisher->assign("_nodeId", isset($confDefaultOption)? $confDefaultOption : "PM_USERS"); //User menu permissions +$oHeadPublisher->assign("FORMATS", $conf->getFormats()); + +$_SESSION["current_ux"] = "NORMAL"; + +G::RenderPage("publish", "extJs"); - $_SESSION['current_ux'] = 'NORMAL'; - - G::RenderPage('publish', 'extJs'); - \ No newline at end of file diff --git a/workflow/engine/methods/setup/environmentSettingsAjax.php b/workflow/engine/methods/setup/environmentSettingsAjax.php index 0ae801352..df906ef8c 100755 --- a/workflow/engine/methods/setup/environmentSettingsAjax.php +++ b/workflow/engine/methods/setup/environmentSettingsAjax.php @@ -1,58 +1,62 @@ - * @date Sept 13th, 2010 - */ - - $request = isset($_POST['request'])? $_POST['request']: (isset($_GET['request'])? $_GET['request']: null); - - switch($request){ - case 'getUserMaskList': - G::loadClass('configuration'); - $result->rows = Configurations::getUserNameFormats(); - print(G::json_encode($result)); - break; +/** + * @author Erik A.O. + * @date Sept 13th, 2010 + * + */ - case 'getDateFormats': - G::loadClass('configuration'); - $result->rows = Configurations::getDateFormats(); - print(G::json_encode($result)); - break; +G::LoadClass("configuration"); - case 'getCasesListDateFormat': - G::loadClass('configuration'); - $result->rows = Configurations::getDateFormats();; - print(G::json_encode($result)); - break; - - case 'getCasesListRowNumber': - for($i=10; $i<=50; $i+=5){ - $formats[] = Array('id'=>"$i", 'name'=>"$i"); - } - $result->rows = $formats; - print(G::json_encode($result)); - break; - case 'save': - - G::LoadClass('configuration'); - $conf = new Configurations; - $conf->aConfig = Array( - 'format'=>$_POST['userFormat'], - 'dateFormat'=>$_POST['dateFormat'], - 'casesListDateFormat' =>$_POST['casesListDateFormat'], - 'casesListRowNumber' =>$_POST['casesListRowNumber'] - ); - $conf->aConfig['startCaseHideProcessInf'] = isset($_POST['hideProcessInf']) ? true : false; - $conf->saveConfig('ENVIRONMENT_SETTINGS', ''); - $response = new StdClass(); - $response->success = true; - $response->msg = G::LoadTranslation('ID_SAVED_SUCCESSFULLY'); - - echo G::json_encode($response); - break; - } - \ No newline at end of file +$request = isset($_POST["request"])? $_POST["request"] : (isset($_GET["request"])? $_GET["request"] : null); + +switch ($request) { + case "getUserMaskList": + $result->rows = Configurations::getUserNameFormats(); + print(G::json_encode($result)); + break; + + case "getDateFormats": + $result->rows = Configurations::getDateFormats(); + print(G::json_encode($result)); + break; + + case "getCasesListDateFormat": + $result->rows = Configurations::getDateFormats();; + print(G::json_encode($result)); + break; + + case "getCasesListRowNumber": + for ($i = 10; $i <= 50; $i+=5) { + $formats[] = array("id" => "$i", "name" => "$i"); + } + + $result->rows = $formats; + print(G::json_encode($result)); + break; + + case "save": + $conf = new Configurations(); + + $conf->aConfig = array( + "format" => $_POST["userFormat"], + "dateFormat" => $_POST["dateFormat"], + "startCaseHideProcessInf" => ((isset($_POST["hideProcessInf"]))? true : false), + "casesListDateFormat" => $_POST["casesListDateFormat"], + "casesListRowNumber" => intval($_POST["casesListRowNumber"]), + "casesListRefreshTime" => intval($_POST["txtCasesRefreshTime"]) + ); + + $conf->saveConfig("ENVIRONMENT_SETTINGS", ""); + + $response = new stdclass(); + $response->success = true; + $response->msg = G::LoadTranslation("ID_SAVED_SUCCESSFULLY"); + + echo G::json_encode($response); + break; +} + diff --git a/workflow/engine/templates/cases/main.js b/workflow/engine/templates/cases/main.js index 717e25f1a..a46cb6732 100755 --- a/workflow/engine/templates/cases/main.js +++ b/workflow/engine/templates/cases/main.js @@ -1,5 +1,4 @@ var PANEL_EAST_OPEN = false; -var timerMinutes = 2*60*1000; //every 2 minutes, this should be customized also, var currentSelectedTreeMenuItem = null; var centerPanel; var menuTree; @@ -11,7 +10,7 @@ var detailsText = ''; var debugTriggersDetailTpl = new Ext.Template('
{code}
'); debugTriggersDetailTpl.compile(); - + var propStore; var triggerStore; @@ -21,7 +20,7 @@ var NOTIFIER_FLAG = false; var result; var _action = ''; var _CASE_TITLE; - + Ext.onReady(function(){ new Ext.KeyMap(document, { key: Ext.EventObject.F5, @@ -32,8 +31,8 @@ Ext.onReady(function(){ } e.stopEvent(); updateCasesTree(); - } - else + } + else Ext.Msg.alert('Refresh', 'You clicked: CTRL-F5'); } }); @@ -41,7 +40,7 @@ Ext.onReady(function(){ Ext.QuickTips.init(); Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); - var resetGrid = function() { + var resetGrid = function() { propStore.load(); }; @@ -52,16 +51,16 @@ Ext.onReady(function(){ var debugVariablesFilterSystem = function(){ propStore.load({params:{filter:'sys'}}); } - + var resetTriggers = function(){ triggerStore.load(); } - + propStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url: 'debug_vars'}), reader: new Ext.data.DynamicJsonReader({root: 'data'}) }); - + propStore.on('load', function(){ propStore.fields = propStore.recordType.prototype.fields; debugVariables.setSource(propStore.getAt(0).data); @@ -76,14 +75,14 @@ Ext.onReady(function(){ width: 400, region: 'center', margins: '2 2 0 2', - + border: true, stripeRows: true, listeners: { beforeedit: function(event) { //Cancel editing - read only event.cancel = true; } - }, + }, tbar: [ {text: TRANSLATIONS.ID_ALL, handler: resetGrid}, {text: TRANSLATIONS.ID_DYNAFORM, handler: debugVariablesFilterDynaform}, @@ -95,18 +94,18 @@ Ext.onReady(function(){ } }); - + //set debug variable details debugVariables.getSelectionModel().on('rowselect', function(sm, rowIdx, r) { var detailPanel = Ext.getCmp('debug-details-panel'); var d = {} - + d.name = r.data.name; d.value = parent.parent.htmlentities ? parent.parent.htmlentities(r.data.value) : r.data.value; debugVarTpl.overwrite(detailPanel.body, d); detailPanel.setTitle(r.data.name); - + if(r.data.value == '' || r.data.value == '' ){ Ext.getCmp('deatachAction').setDisabled(false); Ext.Ajax.request({ @@ -114,11 +113,11 @@ Ext.onReady(function(){ success: function(response){ try{ result = eval('('+response.responseText+')'); - + var store1a = new Ext.data.ArrayStore({fields: result.headers}); // manually load local data store1a.loadData(result.rows); - + var myGridPanel = new Ext.grid.GridPanel({ store: store1a, height: 200, @@ -129,7 +128,7 @@ Ext.onReady(function(){ viewConfig:{forceFit:true, scrollOffset:0}, listeners: { rowdblclick: function(grid, n,e){ - + }, render: function(){ this.loadMask = new Ext.LoadMask(this.body, { msg:'Loading...' }); @@ -152,12 +151,12 @@ Ext.onReady(function(){ params: {request: 'getRows', fieldname:r.data.name} }); - + } else Ext.getCmp('deatachAction').setDisabled(true); }); - + //center iframe panel centerPanel = { region : 'center', @@ -217,13 +216,13 @@ Ext.onReady(function(){ ReloadTreeMenuItemDetail({item:''}); } })*/ - + }/*, 'afterrender': { fn: setNode, scope: this }*/ - + } }); @@ -236,7 +235,7 @@ Ext.onReady(function(){ //if it is, then update cases tree updateCasesTree(); } - + if( _nodeId != '' ){ treePanel1 = Ext.getCmp('tree-panel') if(treePanel1) @@ -291,7 +290,7 @@ Ext.onReady(function(){ loaded:false, expanded:true }); - + treeMenuItemDetail.setRootNode(root); mainMenu = new Ext.Panel({ @@ -313,19 +312,19 @@ Ext.onReady(function(){ treeMenuItemDetail ] }); - mainMenu.setTitle(''); + mainMenu.setTitle("
"); /** * Triggers Panel */ var xg = Ext.grid; - + var reader = new Ext.data.JsonReader( { root: 'data', totalProperty: 'total', id: 'name' - }, + }, [ {name: 'name'}, {name: 'execution_time'}, @@ -350,7 +349,7 @@ Ext.onReady(function(){ var debugTriggers = new xg.GridPanel({ store: triggerStore, - + columns: [ {id:'name',header: "Name", width: 60, sortable: true, dataIndex: 'name'}, {header: "Execution", width: 30, sortable: true, dataIndex: 'execution_time'}, @@ -378,14 +377,14 @@ Ext.onReady(function(){ } } }); - + debugTriggers.getSelectionModel().on('rowselect', function(sm, rowIdx, r) { Ext.getCmp('deatachAction').setDisabled(false); var detailPanel = Ext.getCmp('debug-details-panel'); detailPanel.setTitle(r.data.name); debugTriggersDetailTpl.overwrite(detailPanel.body, r.data); }); - + function triggerWindow() { var r = debugTriggers.getSelectionModel().getSelected(); if(r){ @@ -435,7 +434,7 @@ Ext.onReady(function(){ items: [ debugVariables, debugTriggers - ], + ], listeners: { beforetabchange: function(){ Ext.getCmp('deatachAction').setDisabled(true); @@ -503,34 +502,34 @@ Ext.onReady(function(){ } } ] - }] + }] }); - + var viewport = new Ext.Viewport({ layout: 'border', items: [ mainMenu, centerPanel, debugPanel] }); - - /** after panel creation routines */ + + /** after panel creation routines */ var menuPanelC = Ext.getCmp('debugPanel'); //w.collapse(); - + /**hide*/ - menuPanelC.hide(); - menuPanelC.ownerCt.doLayout(); - + menuPanelC.hide(); + menuPanelC.ownerCt.doLayout(); + /**show*/ //w.show(); //w.ownerCt.doLayout(); //w.expand(); var menuPanelDetail = Ext.getCmp('tree_menuItem_detail'); - menuPanelDetail.hide(); + menuPanelDetail.hide(); menuPanelDetail.ownerCt.doLayout(); - //the starting timer will be triggered after timerMinutes - setTimeout('Timer()', timerMinutes ); + //FORMATS.casesListRefreshTime is in seconds + setTimeout("timer()", parseInt(FORMATS.casesListRefreshTime) * 1000); }); function updateCasesView() { @@ -538,7 +537,7 @@ function updateCasesView() { if (document.getElementById('casesSubFrame').contentWindow.storeCases) { document.getElementById('casesSubFrame').contentWindow.storeCases.reload(); } - } + } catch(e){}; } @@ -580,13 +579,16 @@ function updateCasesTree() { failure: function(){}, params: {'updateCasesTree': true} }); - + } -//the timer function will be called after 2 minutes; -function Timer(){ - updateCasesView(); - setTimeout('Timer()', timerMinutes); +function timer() +{ + //FORMATS.casesListRefreshTime is in seconds + updateCasesTree(); + updateCasesView(); + + setTimeout("timer()", parseInt(FORMATS.casesListRefreshTime) * 1000); } Ext.data.DynamicJsonReader = function(config){ @@ -620,7 +622,7 @@ Ext.extend(Ext.data.DynamicJsonReader, Ext.data.JsonReader, { var recordType = this.getRecordType(root); var fields = recordType.prototype.fields; var records = []; - + for(var i = 0; i < root.length; i++){ var n = root[i]; var values = {}; @@ -683,8 +685,8 @@ Ext.app.menuLoader = Ext.extend(Ext.ux.tree.XmlTreeLoader, { //attr.disabled=true; attr.expandable=true; attr.qtip=attr.blockTitle; - - + + }else if(attr.blockTitle){ attr.text = attr.blockTitle; attr.iconCls = 'ICON_' + attr.id; @@ -694,11 +696,11 @@ Ext.app.menuLoader = Ext.extend(Ext.ux.tree.XmlTreeLoader, { //}else{ attr.expanded = true; //} - }else if(attr.title){ + }else if(attr.title){ attr.text = attr.title; if( attr.cases_count ) attr.text += ' ()'; - + attr.iconCls = 'ICON_' + attr.id; attr.loaded = true; attr.expanded = false; diff --git a/workflow/engine/templates/setup/environmentSettings.js b/workflow/engine/templates/setup/environmentSettings.js index bcaf0152b..24fb4cc72 100755 --- a/workflow/engine/templates/setup/environmentSettings.js +++ b/workflow/engine/templates/setup/environmentSettings.js @@ -5,6 +5,8 @@ var fsDates; var fsCases; var _firstName, _lastName, _userName, _dateSample; +var txtCasesRefreshTime; + Ext.onReady(function() { Ext.QuickTips.init(); @@ -21,8 +23,10 @@ Ext.onReady(function() { items: [ {xtype: 'label', fieldLabel: _('IS_USER_NAME_DISPLAY_FORMAT'), id: 'lblFullName', width: 400}, {xtype: 'label', fieldLabel: _('ID_GLOBAL_DATE_FORMAT'), id: 'lblDateFormat', width: 400}, - {xtype: 'label', fieldLabel: _('ID_CASE_LIST') +': '+_('ID_CASES_DATE_MASK'), id: 'lblCasesDateFormat', width: 400}, - {xtype: 'label', fieldLabel: _('ID_CASE_LIST') +': '+_('ID_CASES_ROW_NUMBER'), id: 'lblCasesRowsList', width: 400} + {xtype: 'label', fieldLabel: _('ID_CASE_LIST') +': '+_('ID_CASES_DATE_MASK'), id: 'lblCasesDateFormat', width: 400} + //, + //{xtype: "label", fieldLabel: _("ID_CASE_LIST") + ": " +_("ID_CASES_ROW_NUMBER"), id: "lblCasesRowsList", width: 400}, + //{xtype: "label", fieldLabel: _("ID_CASE_LIST") + ": " + _("ID_REFRESH_TIME_SECONDS"), id: "lblCasesRefreshTime", width: 400} ] }); @@ -37,14 +41,14 @@ Ext.onReady(function() { listeners:{ load: function(){ default_format = FORMATS.format; - i = cmbUsernameFormats.store.findExact('id', default_format, 0); - cmbUsernameFormats.setValue(cmbUsernameFormats.store.getAt(i).data.id); - cmbUsernameFormats.setRawValue(cmbUsernameFormats.store.getAt(i).data.name); + i = cmbUsernameFormat.store.findExact('id', default_format, 0); + cmbUsernameFormat.setValue(cmbUsernameFormat.store.getAt(i).data.id); + cmbUsernameFormat.setRawValue(cmbUsernameFormat.store.getAt(i).data.name); } } }); - cmbUsernameFormats = new Ext.form.ComboBox({ + cmbUsernameFormat = new Ext.form.ComboBox({ fieldLabel : _('IS_USER_NAME_DISPLAY_FORMAT'), hiddenName : 'userFormat', store : storeUsernameFormat, @@ -59,9 +63,12 @@ Ext.onReady(function() { mode:'local', listeners:{ afterrender:function(){ - cmbUsernameFormats.store.load(); + cmbUsernameFormat.store.load(); }, - select: function(){ChangeSettings('1');} + select: function () + { + changeSettings(1); + } } }); @@ -80,14 +87,14 @@ Ext.onReady(function() { listeners:{ load: function(){ default_date_format = FORMATS.dateFormat, - i = cmbDateFormats.store.findExact('id', default_date_format, 0); - cmbDateFormats.setValue(cmbDateFormats.store.getAt(i).data.id); - cmbDateFormats.setRawValue(cmbDateFormats.store.getAt(i).data.name); + i = cmbDateFormat.store.findExact('id', default_date_format, 0); + cmbDateFormat.setValue(cmbDateFormat.store.getAt(i).data.id); + cmbDateFormat.setRawValue(cmbDateFormat.store.getAt(i).data.name); } } }); - cmbDateFormats = new Ext.form.ComboBox({ + cmbDateFormat = new Ext.form.ComboBox({ fieldLabel : _('ID_GLOBAL_DATE_FORMAT'), hiddenName : 'dateFormat', store : storeDateFormat, @@ -102,13 +109,16 @@ Ext.onReady(function() { mode:'local', listeners:{ afterrender:function(){ - cmbDateFormats.store.load(); + cmbDateFormat.store.load(); }, - select: function(){ChangeSettings('2');} + select: function () + { + changeSettings(2); + } } }); - storeCaseUserNameFormat = new Ext.data.Store({ + storeCasesDateFormat = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : 'environmentSettingsAjax?request=getCasesListDateFormat', method : 'POST' @@ -123,17 +133,17 @@ Ext.onReady(function() { listeners:{ load: function(){ default_caseslist_date_format = FORMATS.casesListDateFormat; - i = cmbCasesDateFormats.store.findExact('id', default_caseslist_date_format, 0); - cmbCasesDateFormats.setValue(cmbCasesDateFormats.store.getAt(i).data.id); - cmbCasesDateFormats.setRawValue(cmbCasesDateFormats.store.getAt(i).data.name); + i = cmbCasesDateFormat.store.findExact('id', default_caseslist_date_format, 0); + cmbCasesDateFormat.setValue(cmbCasesDateFormat.store.getAt(i).data.id); + cmbCasesDateFormat.setRawValue(cmbCasesDateFormat.store.getAt(i).data.name); } } }); - cmbCasesDateFormats = new Ext.form.ComboBox({ + cmbCasesDateFormat = new Ext.form.ComboBox({ fieldLabel : _('ID_CASES_DATE_MASK'), hiddenName : 'casesListDateFormat', - store : storeCaseUserNameFormat, + store : storeCasesDateFormat, valueField : 'id', displayField : 'name', triggerAction : 'all', @@ -144,13 +154,16 @@ Ext.onReady(function() { mode:'local', listeners:{ afterrender:function(){ - cmbCasesDateFormats.store.load(); + cmbCasesDateFormat.store.load(); }, - select: function(){ChangeSettings('3');} + select: function () + { + changeSettings(4); + } } }); - storeCaseListNumber = new Ext.data.Store({ + storeCasesRowNumber = new Ext.data.Store({ proxy : new Ext.data.HttpProxy( { url : 'environmentSettingsAjax?request=getCasesListRowNumber', method : 'POST' @@ -163,21 +176,17 @@ Ext.onReady(function() { ] }), listeners:{ - load: function(){ - default_caseslist_row_number = FORMATS.casesListRowNumber; - i = cmbCasesRowsPerPage.store.findExact('id', default_caseslist_row_number, 0); - if( i != -1 ){ - cmbCasesRowsPerPage.setValue(cmbCasesRowsPerPage.store.getAt(i).data.id); - cmbCasesRowsPerPage.setRawValue(cmbCasesRowsPerPage.store.getAt(i).data.name); + load: function () + { + cmbCasesRowNumber.setValue(FORMATS.casesListRowNumber + ""); } - } } }); - cmbCasesRowsPerPage = new Ext.form.ComboBox({ + cmbCasesRowNumber = new Ext.form.ComboBox({ fieldLabel : _('ID_CASES_ROW_NUMBER'), hiddenName : 'casesListRowNumber', - store : storeCaseListNumber, + store : storeCasesRowNumber, valueField : 'id', displayField : 'name', triggerAction : 'all', @@ -188,22 +197,42 @@ Ext.onReady(function() { mode:'local', listeners:{ afterrender:function(){ - cmbCasesRowsPerPage.store.load(); + cmbCasesRowNumber.store.load(); }, - select: function(){ChangeSettings('4');} + select: function () + { + changeSettings(5); + } } }); + txtCasesRefreshTime = new Ext.form.TextField({ + id: "txtCasesRefreshTime", + name: "txtCasesRefreshTime", + + value: FORMATS.casesListRefreshTime, + fieldLabel: _("ID_REFRESH_TIME_SECONDS"), + maskRe: /^\d*$/, + enableKeyEvents: true, + + listeners: { + keyup: function (txt, e) + { + changeSettings(6); + } + } + }); + fsNames = new Ext.form.FieldSet({ title: _('ID_PM_ENV_SETTINGS_USERFIELDSET_TITLE'), labelAlign: 'right', - items: [cmbUsernameFormats] + items: [cmbUsernameFormat] }); fsDates = new Ext.form.FieldSet({ title: _('ID_PM_ENV_SETTINGS_REGIONFIELDSET_TITLE'), labelAlign: 'right', - items: [cmbDateFormats] + items: [cmbDateFormat] }); fsCases = new Ext.form.FieldSet({ @@ -228,9 +257,9 @@ Ext.onReady(function() { ] }), new Ext.form.FieldSet({ - title: _('ID_CASES_LIST_SETUP'), - labelAlign: 'right', - items: [cmbCasesDateFormats,cmbCasesRowsPerPage] + title: _("ID_CASES_LIST_SETUP"), + labelAlign: "right", + items: [cmbCasesDateFormat, cmbCasesRowNumber, txtCasesRefreshTime] }) ] }); @@ -265,7 +294,7 @@ Ext.onReady(function() { buttons : [saveButton] }); - LoadSamples(); + loadSamples(); /*viewport = new Ext.Viewport({ layout: 'fit', @@ -279,32 +308,41 @@ Ext.onReady(function() { }); //Load Samples Label -LoadSamples = function(){ - Ext.getCmp('lblFullName').setText(_FNF(_userName, _firstName, _lastName, FORMATS.format)); - Ext.getCmp('lblDateFormat').setText(_DF(_dateSample, FORMATS.dateFormat)); - Ext.getCmp('lblCasesDateFormat').setText(_DF(_dateSample, FORMATS.casesListDateFormat, FORMATS.casesListDateFormat)); - Ext.getCmp('lblCasesRowsList').setText(FORMATS.casesListRowNumber); +loadSamples = function () +{ + Ext.getCmp("lblFullName").setText(_FNF(_userName, _firstName, _lastName, FORMATS.format)); + Ext.getCmp("lblDateFormat").setText(_DF(_dateSample, FORMATS.dateFormat)); + Ext.getCmp("lblCasesDateFormat").setText(_DF(_dateSample, FORMATS.casesListDateFormat, FORMATS.casesListDateFormat)); + //Ext.getCmp("lblCasesRowsList").setText(FORMATS.casesListRowNumber); + //Ext.getCmp("lblCasesRefreshTime").setText(FORMATS.casesListRefreshTime); }; //Change Some Setting -ChangeSettings = function(iType){ - saveButton.enable(); - switch (iType){ - case '1': - _format = cmbUsernameFormats.getValue(); - Ext.getCmp('lblFullName').setText(_FNF(_userName,_firstName,_lastName, _format)); - break; - case '2': - _format = cmbDateFormats.getValue(); - Ext.getCmp('lblDateFormat').setText(_DF(_dateSample,_format)); - break; - case '3': - _format = cmbCasesDateFormats.getValue(); - Ext.getCmp('lblCasesDateFormat').setText(_DF(_dateSample,_format)); - break; - case '4': - _format = cmbCasesRowsPerPage.getValue(); - Ext.getCmp('lblCasesRowsList').setText(_format); - break; - } +changeSettings = function (iType) +{ + saveButton.enable(); + + switch (iType) { + case 1: + var f = FORMATS.format; + + FORMATS.format = cmbUsernameFormat.getValue(); + Ext.getCmp("lblFullName").setText(_FNF(_userName, _firstName, _lastName, cmbUsernameFormat.getValue())); + FORMATS.format = f; + break; + case 2: + Ext.getCmp("lblDateFormat").setText(_DF(_dateSample, cmbDateFormat.getValue())); + break; + case 3: + break; + case 4: + Ext.getCmp("lblCasesDateFormat").setText(_DF(_dateSample, cmbCasesDateFormat.getValue())); + break; + case 5: + //Ext.getCmp("lblCasesRowsList").setText(cmbCasesRowNumber.getValue()); + break; + case 6: + //Ext.getCmp("lblCasesRefreshTime").setText(txtCasesRefreshTime.getValue()); + break; + } };