diff --git a/gulliver/js/form/core/form.js b/gulliver/js/form/core/form.js index 3467b5e03..1155678c3 100755 --- a/gulliver/js/form/core/form.js +++ b/gulliver/js/form/core/form.js @@ -1127,7 +1127,7 @@ function G_Text( form, element, name) me.applyMask(pressKey); if ((pressKey == 8 || pressKey == 46) && (me.validate != 'Login' && me.validate != 'NodeName')) me.sendOnChange(); me.checkBrowser(); - if (me.browser.name == 'Chrome'){ + if (me.browser.name == 'Chrome' || me.browser.name == 'Safari'){ event.returnValue = false; } else{ @@ -1158,7 +1158,7 @@ function G_Text( form, element, name) if (event.shiftKey) return true; me.checkBrowser(); if ((me.browser.name == 'Firefox') && (keyCode == 8 || keyCode == 46)){ - if (me.browser.name == 'Chrome'){ + if (me.browser.name == 'Chrome' || me.browser.name == 'Safari'){ event.returnValue = false; } else{ @@ -1248,14 +1248,14 @@ function G_Text( form, element, name) me.applyMask(pressKey); } if (updateOnChange) me.sendOnChange(); - if (me.browser.name == 'Chrome'){ + if (me.browser.name == 'Chrome' || me.browser.name == 'Safari'){ event.returnValue = false; } else{ return false; } }else{ - if (me.browser.name == 'Chrome'){ + if (me.browser.name == 'Chrome' || me.browser.name == 'Safari'){ event.returnValue = false; } else{ diff --git a/gulliver/js/jquery/xbreadcrumbs.js b/gulliver/js/jquery/xbreadcrumbs.js index 0325af641..317cb19d0 100644 --- a/gulliver/js/jquery/xbreadcrumbs.js +++ b/gulliver/js/jquery/xbreadcrumbs.js @@ -32,11 +32,17 @@ } element.children('LI').click(function(){ - + if(settings.collapsible && !$(this).hasClass('current')){ + var initWidth = $(this).children('A').attr('init-width'); + $(this).children('A').animate({width: initWidth}, 'normal'); + } + $('.xbreadcrumbs').children('LI').attr('class', ''); $(this).attr('class', 'current'); - $('.xbreadcrumbs').children('LI[class!=current]').children('A').animate({width: settings.collapsedWidth}, 'fast'); + if(settings.collapsible) { + $('.xbreadcrumbs').children('LI[class!=current]').children('A').animate({width: settings.collapsedWidth}, 'fast'); + } }); element.children('LI').mouseenter(function(){ @@ -62,7 +68,7 @@ _showHideSubLevel(subLevel, false); if(settings.collapsible && !$(this).hasClass('current')){ - $(this).children('A').animate({width: settings.collapsedWidth}, 'fast'); + $(this).children('A').animate({width: settings.collapsedWidth}, 800); } }); }; @@ -96,12 +102,6 @@ // Entry point _build(); - - - //$('.xbreadcrumbs').children('LI[class=current]').click(); - //var initWidth = $('.xbreadcrumbs').children('LI[class=current]').width(); - //alert(initWidth); - //$('.xbreadcrumbs').children('LI[class=current]').animate({width: initWidth}, 'normal'); }; /* Default Settings */ diff --git a/gulliver/js/maborak/core/maborak.js b/gulliver/js/maborak/core/maborak.js index c06fee56d..59ef4dcee 100755 --- a/gulliver/js/maborak/core/maborak.js +++ b/gulliver/js/maborak/core/maborak.js @@ -68,11 +68,14 @@ var maborak = function(){ this.exec(this.fix.memoryLeak); /* create Stylesheet BEGIN */ + /* erik: DEPRECATED! css should be separated accordind MVC pattern, all those css are moved on style.css to current skin*/ + /* var st =$dce('link'); st.rel ='stylesheet'; st.type ='text/css'; st.href =this.info.base+'stylesheet/default.css'; this.dom.capture("tag.head 0").appendChild(st); + */ /* create Stylesheet END */ this.expand(this); return this; diff --git a/gulliver/js/maborak/core/module.panel.js b/gulliver/js/maborak/core/module.panel.js index ce8788988..1a0991a12 100755 --- a/gulliver/js/maborak/core/module.panel.js +++ b/gulliver/js/maborak/core/module.panel.js @@ -1253,7 +1253,7 @@ leimnud.Package.Public({ { this.parent.dom.setStyle(this.elements.loader,{ //display:"none", - background:"url('"+this.parent.path_root+"maborak/core/images/loader_B.gif')", + background:"url('/images/classic/loader_B.gif')", backgroundRepeat:"no-repeat", width:32, height:32, diff --git a/gulliver/system/class.controller.php b/gulliver/system/class.controller.php index 2ca335d78..2d9731a61 100755 --- a/gulliver/system/class.controller.php +++ b/gulliver/system/class.controller.php @@ -237,4 +237,19 @@ class Controller return $this->headPublisher; } + + public function render($type='mvc') + { + G::RenderPage('publish', $type); + } + + public function header($header) + { + G::header($header); + } + + public function redirect($url) + { + G::header("Location: $url"); + } } diff --git a/gulliver/system/class.g.php b/gulliver/system/class.g.php index 6eb6fff6d..87999c1f0 100755 --- a/gulliver/system/class.g.php +++ b/gulliver/system/class.g.php @@ -486,7 +486,7 @@ class G * @param string $key * @return string */ - /*public static*/ function decrypt($string, $key) { + function decrypt($string, $key) { // if ( defined ( 'ENABLE_ENCRYPT' ) && ENABLE_ENCRYPT == 'yes' ) { @@ -990,19 +990,19 @@ class G function streamCSSBigFile( $filename ) { header('Content-Type: text/css'); - + //First get Skin info $filenameParts = explode("-",$filename); $skinName = $filenameParts[0]; $skinVariant = "skin"; - if(isset($filenameParts[1])){ - $skinVariant=strtolower($filenameParts[1]); + if(isset($filenameParts[1])) { + $skinVariant = strtolower($filenameParts[1]); } - if($skinName == "jscolors") $skinName = "classic"; - if($skinName == "xmlcolors") $skinName = "classic"; - if($skinName=="classic"){ + if ($skinName == "jscolors") $skinName = "classic"; + if ($skinName == "xmlcolors") $skinName = "classic"; + if ($skinName=="classic") { $configurationFile = G::ExpandPath( "skinEngine" ).'base'.PATH_SEP.'config.xml'; } else { @@ -4402,6 +4402,95 @@ function get_mobile_data( $pv_browser_user_agent ) return $a_mobile_data; } + function getBrowser() + { + $u_agent = $_SERVER['HTTP_USER_AGENT']; + $bname = 'Unknown'; + $platform = 'Unknown'; + $version= ""; + + //First get the platform? + if (preg_match('/linux/i', $u_agent)) { + $platform = 'linux'; + } + elseif (preg_match('/macintosh|mac os x/i', $u_agent)) { + $platform = 'mac'; + } + elseif (preg_match('/windows|win32/i', $u_agent)) { + $platform = 'windows'; + } + + // Next get the name of the useragent yes seperately and for good reason + if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) + { + $bname = 'Internet Explorer'; + $ub = "MSIE"; + } + elseif(preg_match('/Firefox/i',$u_agent)) + { + $bname = 'Mozilla Firefox'; + $ub = "Firefox"; + } + elseif(preg_match('/Chrome/i',$u_agent)) + { + $bname = 'Google Chrome'; + $ub = "Chrome"; + } + elseif(preg_match('/Safari/i',$u_agent)) + { + $bname = 'Apple Safari'; + $ub = "Safari"; + } + elseif(preg_match('/Opera/i',$u_agent)) + { + $bname = 'Opera'; + $ub = "Opera"; + } + elseif(preg_match('/Netscape/i',$u_agent)) + { + $bname = 'Netscape'; + $ub = "Netscape"; + } + + // finally get the correct version number + $known = array('Version', $ub, 'other'); + $pattern = '#(?' . join('|', $known) . + ')[/ ]+(?[0-9.|a-zA-Z.]*)#'; + if (!preg_match_all($pattern, $u_agent, $matches)) { + // we have no matching number just continue + } + + // see how many we have + $i = count($matches['browser']); + if ($i != 1) { + //we will have two since we are not using 'other' argument yet + //see if version is before or after the name + if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){ + $version= $matches['version'][0]; + } + else { + $version= $matches['version'][1]; + } + } + else { + $version= $matches['version'][0]; + } + + // check if we have a number + if ($version==null || $version=="") {$version="?";} + + return array( + 'userAgent' => $u_agent, + 'name' => strtolower($ub), + 'longName' => $bname, + 'version' => $version, + 'platform' => $platform, + 'pattern' => $pattern + ); + } + + + // track total script execution time function script_time() { diff --git a/gulliver/system/class.publisher.php b/gulliver/system/class.publisher.php index e7376ba96..d6aafd3a6 100755 --- a/gulliver/system/class.publisher.php +++ b/gulliver/system/class.publisher.php @@ -252,15 +252,32 @@ class Publisher } } if (isset($_SESSION)) $_SESSION[$G_FORM->id]=$G_FORM->values; + // by default load the core template + if ($Part['Template'] == 'xmlform_preview') + $Part['Template'] = 'xmlform'; + $template = PATH_CORE . 'templates/' . $Part['Template'] . '.html'; + + //erik: new feature, now templates such as xmlform.html can be personalized via skins + if (defined('SYS_SKIN') && strtolower(SYS_SKIN) != 'classic') { + // first, verify if the template exists on base skins path + if (is_file(G::ExpandPath("skinEngine") . SYS_SKIN . PATH_SEP . $Part['Template'] . '.html')) { + $template = G::ExpandPath("skinEngine") . SYS_SKIN . PATH_SEP . $Part['Template'] . '.html'; + } + // second, verify if the template exists on user skins path + else if (is_file(PATH_CUSTOM_SKINS . SYS_SKIN . PATH_SEP . $Part['Template'] . '.html')) { + $template = PATH_CUSTOM_SKINS . SYS_SKIN . PATH_SEP . $Part['Template'] . '.html'; + } + } + //end new feature + if ($Part['Template'] == 'grid') print ('
'); $scriptCode=''; if($this->localMode != '') { // @# las modification by erik in 09/06/2008 $G_FORM->mode = $this->localMode; } - print $G_FORM->render( $template , $scriptCode ); if ($Part['Template'] == 'grid') print ('
'); $oHeadPublisher =& headPublisher::getSingleton(); @@ -602,6 +619,11 @@ class Publisher else $template->templateFile = PATH_TPL . $Part['Template'] . '.html'; + // last change to load the template, maybe absolute path was given + if (!is_file($template->templateFile)) { + $template->templateFile = strpos($Part['Template'], '.html') !== false? $Part['Template']: $Part['Template'].'.html'; + } + //assign the variables and use the template $template $template->assign( $dataArray); print $template->fetch($template->templateFile); diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php index d96c14a2e..ee6b3b52f 100755 --- a/gulliver/system/class.xmlform.php +++ b/gulliver/system/class.xmlform.php @@ -3150,12 +3150,6 @@ class XmlForm_Field_Grid extends XmlForm_Field $this->id = $this->owner->id . $this->name; $using_template = "grid"; - ### added by Erik - ### For throw the preview view - if( isset($this->owner->visual_frontend) ){ - $using_template = "grid_{$this->owner->visual_frontend}"; - } - if( $this->mode == 'view' || $this->modeGrid === 'view' ){ $using_template = "grid_view"; } @@ -4433,6 +4427,7 @@ class xmlformTemplate extends Smarty $ft->action = '{$form_action}'; } $hasRequiredFields = false; + foreach ( $form->fields as $k => $v ) { $ft->fields [$k] = $v->cloneObject (); $ft->fields [$k]->label = '{' . $varPrefix . $k . '}'; @@ -4442,7 +4437,8 @@ class xmlformTemplate extends Smarty $ft->fields [$k]->field = '{' . $varPrefix . 'form.' . $k . '[row]}'; if (strcasecmp ( $target, 'templatePower' ) === 0) $ft->fields [$k]->field = '{' . $varPrefix . 'form[' . $k . '][row]}'; - } else { + } + else { if (strcasecmp ( $target, 'smarty' ) === 0) $ft->fields [$k]->field = '{' . $varPrefix . 'form.' . $k . '}'; if (strcasecmp ( $target, 'templatePower' ) === 0) @@ -4450,13 +4446,27 @@ class xmlformTemplate extends Smarty } $hasRequiredFields = $hasRequiredFields | (isset ( $v->required ) && ($v->required == '1') && ($v->mode == 'edit')); + + if ($v->type == 'xmlmenu') { + $menu = $v; + } } + + if (isset($menu)) { + if (isset($menu->owner->values['__DYNAFORM_OPTIONS']['PREVIOUS_STEP'])) { + $prevStep_url = $menu->owner->values['__DYNAFORM_OPTIONS']['PREVIOUS_STEP']; + + $this->assign('prevStep_url', $prevStep_url); + $this->assign('prevStep_label', G::loadTranslation('ID_BACK')); + } + } + $this->assign ( 'hasRequiredFields', $hasRequiredFields ); $this->assign ( 'form', $ft ); $this->assign ( 'printTemplate', true ); $this->assign ( 'printJSFile', false ); $this->assign ( 'printJavaScript', false ); - $this->assign ( 'dynaformSetFocus', "try {literal}{{/literal} dynaformSetFocus();}catch(e){literal}{{/literal}}" ); + //$this->assign ( 'dynaformSetFocus', "try {literal}{{/literal} dynaformSetFocus();}catch(e){literal}{{/literal}}" ); return $this->fetch ( $this->templateFile ); } diff --git a/workflow/engine/classes/class.applications.php b/workflow/engine/classes/class.applications.php index 416168914..b44a0cfef 100644 --- a/workflow/engine/classes/class.applications.php +++ b/workflow/engine/classes/class.applications.php @@ -3,7 +3,7 @@ class Applications { - public function getAll($start=null, $limit=null, $action=null, $filter=null, $search=null, $process=null, $user=null, $status=null, $type=null, $dateFrom=null, $dateTo=null, $callback=null, $dir=null, $sort='APP_CACHE_VIEW.APP_NUMBER') + public function getAll($userUid, $start=null, $limit=null, $action=null, $filter=null, $search=null, $process=null, $user=null, $status=null, $type=null, $dateFrom=null, $dateTo=null, $callback=null, $dir=null, $sort='APP_CACHE_VIEW.APP_NUMBER') { $callback = isset($callback) ? $callback : 'stcCallback1001'; $dir = isset($dir) ? $dir : 'DESC'; @@ -28,7 +28,7 @@ class Applications require_once ( "classes/model/AppDelay.php" ); require_once ( "classes/model/Fields.php" ); - $userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? $_SESSION['USER_LOGGED'] : null; + //$userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? $_SESSION['USER_LOGGED'] : null; <-- passed by param $oAppCache = new AppCacheView(); //get data configuration @@ -350,11 +350,11 @@ class Applications if (!isset($aRow['APP_CURRENT_USER'])) $aRow['APP_CURRENT_USER'] = "[Unassigned]"; - // replacing the status data with their respective translation if( isset($aRow['APP_STATUS']) ){ $aRow['APP_STATUS'] = G::LoadTranslation("ID_{$aRow['APP_STATUS']}"); } + // replacing the priority data with their respective translation if( isset($aRow['DEL_PRIORITY']) ){ $aRow['DEL_PRIORITY'] = G::LoadTranslation("ID_PRIORITY_{$aPriorities[$aRow['DEL_PRIORITY']]}"); @@ -610,36 +610,114 @@ class Applications return $result; } - /** - * - * @param String $itemKey - * @param array $fields - * @return Boolean - */ - function removeItem($itemKey,$fields) { - $removedField = false; - for ($i=0;$igetAllCaseSteps($proUid, $tasUid, $appUid); + + //getting externals steps + $oPluginRegistry = &PMPluginRegistry::getSingleton(); + $eSteps = $oPluginRegistry->getSteps(); + $externalSteps = array(); + + foreach ($eSteps as $externalStep) { + $externalSteps[$externalStep->sStepId] = $externalStep; + } + + //getting the case record + if ($appUid) { + $caseData = $case->loadCase($appUid); + $pmScript = new PMScript(); + $pmScript->setFields($caseData['APP_DATA']); + } + + $externalStepCount = 0; + + foreach ($caseSteps as $caseStep) { + + if (trim($caseStep->getStepCondition()) != '') { // if it has a condition + $pmScript->setScript($caseStep->getStepCondition()); + + if (!$pmScript->evaluate()) { //evaluate + //evaluated false, jump & continue with the others steps + continue; + } } - } - $fields = array_values($fields); - //$fields = $this->calculateGridIndex( $fields ); - return ( $fields ); - } - /** - * - * @param Array $fields - * @return Array - * - */ - function calculateGridIndex( $fields ) { - for ( $i=0;$igetStepUidObj(); + $stepType = $caseStep->getStepTypeObj(); + $stepPosition = $caseStep->getStepPosition(); + $stepItem = array(); + $stepItem['id'] = $stepUid; + $stepItem['type'] = $stepType; + + switch ($stepType) { + case 'DYNAFORM': + $oDocument = DynaformPeer::retrieveByPK($stepUid); + + $stepItem['title'] = $oDocument->getDynTitle(); + $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=EDIT"; + break; + + case 'OUTPUT_DOCUMENT': + $oDocument = OutputDocumentPeer::retrieveByPK($caseStep->getStepUidObj()); + $outputDoc = $appDocument->getObject($appUid, $index, $caseStep->getStepUidObj(), 'OUTPUT'); + + $stepItem['title'] = $oDocument->getOutDocTitle(); + + if ($outputDoc['APP_DOC_UID']) { + $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=VIEW&DOC={$outputDoc['APP_DOC_UID']}"; + } + else { + $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=GENERATE"; + } + break; + + case 'INPUT_DOCUMENT': + $oDocument = InputDocumentPeer::retrieveByPK($stepUid); + + $stepItem['title'] = $oDocument->getInpDocTitle(); + $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=ATTACH"; + break; + + case 'EXTERNAL': + $stepTitle = 'unknown ' . $caseStep->getStepUidObj(); + $oPluginRegistry = PMPluginRegistry::getSingleton(); + + $externalStep = $externalSteps[$caseStep->getStepUidObj()]; + $stepItem['id'] = $externalStep->sStepId; + $stepItem['title'] = $externalStep->sStepTitle; + $stepItem['url'] = "cases/cases_Step?UID={$externalStep->sStepId}&TYPE=EXTERNAL&POSITION=$stepPosition&ACTION=EDIT"; + break; + } + + $steps[] = $stepItem; + } + + //last, assign task + $stepItem = array(); + $stepItem['id'] = '-1'; + $stepItem['type'] = ''; + $stepItem['title'] = G::LoadTranslation('ID_ASSIGN_TASK'); + $stepItem['url'] = "cases/cases_Step?TYPE=ASSIGN_TASK&UID=-1&POSITION=10000&ACTION=ASSIGN"; + + $steps[] = $stepItem; + + return $steps; + } } \ No newline at end of file diff --git a/workflow/engine/classes/class.plugin.php b/workflow/engine/classes/class.plugin.php index c6ec1c594..3cc2e9d72 100755 --- a/workflow/engine/classes/class.plugin.php +++ b/workflow/engine/classes/class.plugin.php @@ -600,4 +600,10 @@ class PMPlugin { function registerDashboard() { // Dummy function for backwards compatibility } + + function getExternalStepAction() { + $oPluginRegistry =& PMPluginRegistry::getSingleton(); + g::pr($oPluginRegistry->getSteps()); + return $oPluginRegistry->getSteps(); + } } \ No newline at end of file diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index 6c6a3c336..dc1c12052 100755 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -415,33 +415,47 @@ class processMap { function editProcess($sProcessUID) { try { - $oProcess = new Process ( ); - if (!is_null($oProcess)) { + $oProcess = new Process (); - $calendar = new Calendar ( ); + if (!is_null($oProcess)) { + G::loadClass('processes'); + $calendar = new Calendar(); + $files = Processes::getProcessFiles($sProcessUID, 'mail'); + + $templates = array(); + $templates[] = 'dummy'; + + foreach ($files as $file) { + $templates[] = array('FILE' => $file['filename'], 'NAME' => $file['filename']); + } + $calendarObj = $calendar->getCalendarList(true, true); global $_DBArray; - - $_DBArray ['availableCalendars'] = $calendarObj ['array']; - + $_DBArray['_TEMPLATES1'] = $templates; + $_DBArray['availableCalendars'] = $calendarObj['array']; $_SESSION ['_DBArray'] = $_DBArray; + $aFields = $oProcess->load($sProcessUID); $aFields['PRO_SUMMARY_DYNAFORM'] = (isset($aFields['PRO_DYNAFORMS']['PROCESS']) ? $aFields['PRO_DYNAFORMS']['PROCESS'] : ''); - $aFields ['THETYPE'] = 'UPDATE'; + $aFields['THETYPE'] = 'UPDATE'; $calendarInfo = $calendar->getCalendarFor($sProcessUID, $sProcessUID, $sProcessUID); + //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar - $aFields ['PRO_CALENDAR'] = $calendarInfo ['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo ['CALENDAR_UID'] : ""; + $aFields['PRO_CALENDAR'] = $calendarInfo ['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo ['CALENDAR_UID'] : ""; global $G_PUBLISH; $G_PUBLISH = new Publisher ( ); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_Edit', '', $aFields, 'processes_Save'); G::RenderPage('publish', 'raw'); + return true; - } else { + } + else { throw (new Exception('This row doesn\'t exist!')); } - } catch (Exception $oError) { + } + catch (Exception $oError) { throw ($oError); } } @@ -1353,24 +1367,23 @@ class processMap { $aFields ['IFORM'] = $iForm; $aFields ['LANG'] = SYS_LANG; - if($iForm == 7) { - $aTemplates = array(); - $aTemplates[] = 'dummy'; - $sDirectory = PATH_DATA_MAILTEMPLATES . $aFields['PRO_UID'] . PATH_SEP; - G::verifyPath($sDirectory, true); - if (!file_exists($sDirectory . 'alert_message.html')) { - @copy(PATH_TPL . 'mails' . PATH_SEP . 'alert_message.html', $sDirectory . 'alert_message.html'); - } - $oDirectory = dir($sDirectory); - while ($sObject = $oDirectory->read()) { - if (($sObject !== '.') && ($sObject !== '..') && ($sObject !== 'alert_message.html')) { - $aTemplates[] = array('FILE' => $sObject, 'NAME' => $sObject); - } - } - global $_DBArray; - $_DBArray['_TEMPLATES1'] = $aTemplates; - $_SESSION ['_DBArray'] = $_DBArray; + /** Task Notifications **/ + if($iForm == 7 || $iForm == 1 ) { + G::loadClass('processes'); + $files = Processes::getProcessFiles($aFields['PRO_UID'], 'mail'); + $templates = array(); + $templates[] = 'dummy'; + + foreach ($files as $file) { + $templates[] = array('FILE' => $file['filename'], 'NAME' => $file['filename']); + } + + global $_DBArray; + $_DBArray['_TEMPLATES1'] = $templates; + $_SESSION['_DBArray'] = $_DBArray; + + if ($iForm == 7) { // Additional configuration G::loadClass('configuration'); $oConf = new Configurations; @@ -1380,6 +1393,7 @@ class processMap { $aFields['TAS_DEF_MESSAGE_TYPE'] = $conf['TAS_DEF_MESSAGE_TYPE']; $aFields['TAS_DEF_MESSAGE_TEMPLATE'] = $conf['TAS_DEF_MESSAGE_TEMPLATE']; } + } } if ($iForm == 3) { //Load Calendar Information @@ -4021,19 +4035,24 @@ class processMap { * @return void */ function processFilesManager($sProcessUID) { - $aDirectories = array(); - $aDirectories [] = array('DIRECTORY' => 'char'); - $aDirectories [] = array('DIRECTORY' => 'mailTemplates'); - $aDirectories [] = array('DIRECTORY' => 'public'); - global $_DBArray; - $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : ''); - $_DBArray ['directories'] = $aDirectories; - $_SESSION ['_DBArray'] = $_DBArray; G::LoadClass('ArrayPeer'); - $oCriteria = new Criteria('dbarray'); - $oCriteria->setDBArrayTable('directories'); + global $_DBArray; global $G_PUBLISH; - $G_PUBLISH = new Publisher ( ); + + $oCriteria = new Criteria('dbarray'); + $G_PUBLISH = new Publisher(); + + $aDirectories = array(); + $aDirectories[] = array('DIRECTORY' => 'char'); + $aDirectories[] = array('DIRECTORY' => ''.G::loadTranslation('ID_TEMPLATES').''); + $aDirectories[] = array('DIRECTORY' => ''.G::loadTranslation('ID_PUBLIC').''); + + $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : ''); + $_DBArray['directories'] = $aDirectories; + $_SESSION['_DBArray'] = $_DBArray; + + $oCriteria->setDBArrayTable('directories'); + $G_PUBLISH->AddContent('propeltable', 'paged-table', 'processes/processes_DirectoriesList', $oCriteria); G::RenderPage('publish', 'raw'); } @@ -4238,11 +4257,8 @@ class processMap { * @param string $sTaskUID * @param string $sIndex * @return void -<<<<<<< HEAD * throw Exception $oError -======= * @throw Exception $oError ->>>>>>> 4cdf80a... BUG 6639 When importing a process it is displaying an error */ function subProcess_Properties($sProcessUID = '', $sTaskUID = '', $sIndex = '') { try { //echo "$sProcessUID = '', $sTaskUID = '', $sIndex = ''"; diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 1d76884a7..0e7574ff3 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -3464,8 +3464,46 @@ class Processes { return $result; } + function getProcessFiles($proUid, $type) + { + $filesList = array(); - }//end class processes + switch ($type) { + case 'mail': case 'email': + $basePath = PATH_DATA_MAILTEMPLATES; + break; + + case 'public': + $basePath = PATH_DATA_PUBLIC; + break; + + default: + throw new Exception("Unknow Process Files Type '$type'."); + } + + $dir = $basePath . $proUid . PATH_SEP; + + G::verifyPath($dir, true); // create if it does not exist. + + // creating the default template (if not exists) + if (!file_exists($dir . 'alert_message.html')) { + @copy(PATH_TPL . 'mails' . PATH_SEP . 'alert_message.html', $dir . 'alert_message.html'); + } + + $files = glob($dir . '*.*'); + + foreach ($files as $file) { + $fileName = basename($file); + + if ($fileName !== 'alert_message.html') { + $filesList[] = array('filepath' => $file, 'filename' => $fileName); + } + } + + return $filesList; + } + +}//end class processes /** * Object Document class diff --git a/workflow/engine/classes/model/AppDocument.php b/workflow/engine/classes/model/AppDocument.php index df0fb5653..15b1fcfa6 100755 --- a/workflow/engine/classes/model/AppDocument.php +++ b/workflow/engine/classes/model/AppDocument.php @@ -585,37 +585,27 @@ class AppDocument extends BaseAppDocument { return $oDataset->getRow(); } - - //////////////////////////////////////////////////////////////////////////////// /** - * get all docuemnts for a folder - * created by carlos pacha carlos@colosa.com, pckrlos@gmail.com + * Get all docuemnts for a folder * @param array $sFolderUid * @return array - **/ + */ public function getDocumentsinFolders($sFolderUid) { - try { - $arrayDocumentsToDelete=array(); + $documents = array(); - $oCriteria = new Criteria('workflow'); - $oCriteria->add(AppDocumentPeer::FOLDER_UID, $sFolderUid); - $oDataset = AppDocumentPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $oDataset->next(); - while ($aRow = $oDataset->getRow()) { - $arrayDocumentsToDelete[]=array('sAppDocUid'=>$aRow['APP_DOC_UID'],'iVersion'=>$aRow['DOC_VERSION']); - $oDataset->next(); - } + $oCriteria = new Criteria('workflow'); + $oCriteria->add(AppDocumentPeer::FOLDER_UID, $sFolderUid); + $oDataset = AppDocumentPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); - return ($arrayDocumentsToDelete); - } - catch (Exception $oError) { - throw($oError); + while ($aRow = $oDataset->getRow()) { + $documents[] = array('sAppDocUid' => $aRow['APP_DOC_UID'], 'iVersion' => $aRow['DOC_VERSION']); + $oDataset->next(); } + + return $documents; } - - - } // AppDocument diff --git a/workflow/engine/classes/model/UsersProperties.php b/workflow/engine/classes/model/UsersProperties.php index 049763458..193efbd95 100755 --- a/workflow/engine/classes/model/UsersProperties.php +++ b/workflow/engine/classes/model/UsersProperties.php @@ -247,7 +247,8 @@ class UsersProperties extends BaseUsersProperties case 'SWITCHABLE': case 'SINGLE': $_SESSION['user_experience'] = $uxType; - return '/sys' . SYS_SYS . '/' . $sLanguage . '/' . SYS_SKIN . '/' . 'home'; + $_SESSION['user_last_skin'] = SYS_SKIN; + return '/sys' . SYS_SYS . '/' . $sLanguage . '/uxs/' . 'home'; break; } // end user experience redirection diff --git a/workflow/engine/classes/model/map/ProcessMapBuilder.php b/workflow/engine/classes/model/map/ProcessMapBuilder.php index 1cbd586f9..976b76e45 100755 --- a/workflow/engine/classes/model/map/ProcessMapBuilder.php +++ b/workflow/engine/classes/model/map/ProcessMapBuilder.php @@ -112,6 +112,8 @@ class ProcessMapBuilder { $tMap->addColumn('PRO_DYNAFORMS', 'ProDynaforms', 'string', CreoleTypes::LONGVARCHAR, false, null); + $tMap->addColumn('PRO_DERIVATION_SCREEN_TPL', 'ProDerivationScreenTpl', 'string', CreoleTypes::VARCHAR, false, 128); + $tMap->addValidator('PRO_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'WEEKS|MONTHS|DAYS|HOURS|MINUTES', 'Please select a valid Time Unit.'); $tMap->addValidator('PRO_STATUS', 'validValues', 'propel.validator.ValidValuesValidator', 'ACTIVE|INACTIVE|DISABLED', 'Please select a valid Process Status.'); diff --git a/workflow/engine/classes/model/map/TaskMapBuilder.php b/workflow/engine/classes/model/map/TaskMapBuilder.php index b8e6daeaf..0fa178d7b 100755 --- a/workflow/engine/classes/model/map/TaskMapBuilder.php +++ b/workflow/engine/classes/model/map/TaskMapBuilder.php @@ -144,6 +144,8 @@ class TaskMapBuilder { $tMap->addColumn('TAS_BOUNDARY', 'TasBoundary', 'string', CreoleTypes::VARCHAR, true, 32); + $tMap->addColumn('TAS_DERIVATION_SCREEN_TPL', 'TasDerivationScreenTpl', 'string', CreoleTypes::VARCHAR, false, 128); + $tMap->addValidator('TAS_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'NORMAL|ADHOC|SUBPROCESS|HIDDEN', 'Please select a valid value for TAS_TYPE.'); $tMap->addValidator('TAS_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'MINUTES|HOURS|DAYS|WEEKS|MONTHS', 'Please select a valid value for TAS_TIMEUNIT.'); diff --git a/workflow/engine/classes/model/om/BaseProcess.php b/workflow/engine/classes/model/om/BaseProcess.php index e9b5c1200..b143a31d0 100755 --- a/workflow/engine/classes/model/om/BaseProcess.php +++ b/workflow/engine/classes/model/om/BaseProcess.php @@ -195,6 +195,13 @@ abstract class BaseProcess extends BaseObject implements Persistent { */ protected $pro_dynaforms; + + /** + * The value for the pro_derivation_screen_tpl field. + * @var string + */ + protected $pro_derivation_screen_tpl = ''; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -513,6 +520,17 @@ abstract class BaseProcess extends BaseObject implements Persistent { return $this->pro_dynaforms; } + /** + * Get the [pro_derivation_screen_tpl] column value. + * + * @return string + */ + public function getProDerivationScreenTpl() + { + + return $this->pro_derivation_screen_tpl; + } + /** * Set the value of [pro_uid] column. * @@ -1039,6 +1057,28 @@ abstract class BaseProcess extends BaseObject implements Persistent { } // setProDynaforms() + /** + * Set the value of [pro_derivation_screen_tpl] column. + * + * @param string $v new value + * @return void + */ + public function setProDerivationScreenTpl($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->pro_derivation_screen_tpl !== $v || $v === '') { + $this->pro_derivation_screen_tpl = $v; + $this->modifiedColumns[] = ProcessPeer::PRO_DERIVATION_SCREEN_TPL; + } + + } // setProDerivationScreenTpl() + /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -1104,12 +1144,14 @@ abstract class BaseProcess extends BaseObject implements Persistent { $this->pro_dynaforms = $rs->getString($startcol + 23); + $this->pro_derivation_screen_tpl = $rs->getString($startcol + 24); + $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 24; // 24 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 25; // 25 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Process object", $e); @@ -1384,6 +1426,9 @@ abstract class BaseProcess extends BaseObject implements Persistent { case 23: return $this->getProDynaforms(); break; + case 24: + return $this->getProDerivationScreenTpl(); + break; default: return null; break; @@ -1428,6 +1473,7 @@ abstract class BaseProcess extends BaseObject implements Persistent { $keys[21] => $this->getProTitleY(), $keys[22] => $this->getProDebug(), $keys[23] => $this->getProDynaforms(), + $keys[24] => $this->getProDerivationScreenTpl(), ); return $result; } @@ -1531,6 +1577,9 @@ abstract class BaseProcess extends BaseObject implements Persistent { case 23: $this->setProDynaforms($value); break; + case 24: + $this->setProDerivationScreenTpl($value); + break; } // switch() } @@ -1578,6 +1627,7 @@ abstract class BaseProcess extends BaseObject implements Persistent { if (array_key_exists($keys[21], $arr)) $this->setProTitleY($arr[$keys[21]]); if (array_key_exists($keys[22], $arr)) $this->setProDebug($arr[$keys[22]]); if (array_key_exists($keys[23], $arr)) $this->setProDynaforms($arr[$keys[23]]); + if (array_key_exists($keys[24], $arr)) $this->setProDerivationScreenTpl($arr[$keys[24]]); } /** @@ -1613,6 +1663,7 @@ abstract class BaseProcess extends BaseObject implements Persistent { if ($this->isColumnModified(ProcessPeer::PRO_TITLE_Y)) $criteria->add(ProcessPeer::PRO_TITLE_Y, $this->pro_title_y); if ($this->isColumnModified(ProcessPeer::PRO_DEBUG)) $criteria->add(ProcessPeer::PRO_DEBUG, $this->pro_debug); if ($this->isColumnModified(ProcessPeer::PRO_DYNAFORMS)) $criteria->add(ProcessPeer::PRO_DYNAFORMS, $this->pro_dynaforms); + if ($this->isColumnModified(ProcessPeer::PRO_DERIVATION_SCREEN_TPL)) $criteria->add(ProcessPeer::PRO_DERIVATION_SCREEN_TPL, $this->pro_derivation_screen_tpl); return $criteria; } @@ -1713,6 +1764,8 @@ abstract class BaseProcess extends BaseObject implements Persistent { $copyObj->setProDynaforms($this->pro_dynaforms); + $copyObj->setProDerivationScreenTpl($this->pro_derivation_screen_tpl); + $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseProcessPeer.php b/workflow/engine/classes/model/om/BaseProcessPeer.php index 7c7f47afa..90fb60872 100755 --- a/workflow/engine/classes/model/om/BaseProcessPeer.php +++ b/workflow/engine/classes/model/om/BaseProcessPeer.php @@ -24,7 +24,7 @@ abstract class BaseProcessPeer { const CLASS_DEFAULT = 'classes.model.Process'; /** The total number of columns. */ - const NUM_COLUMNS = 24; + const NUM_COLUMNS = 25; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -102,6 +102,9 @@ abstract class BaseProcessPeer { /** the column name for the PRO_DYNAFORMS field */ const PRO_DYNAFORMS = 'PROCESS.PRO_DYNAFORMS'; + /** the column name for the PRO_DERIVATION_SCREEN_TPL field */ + const PRO_DERIVATION_SCREEN_TPL = 'PROCESS.PRO_DERIVATION_SCREEN_TPL'; + /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -113,10 +116,10 @@ abstract class BaseProcessPeer { * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', ), - BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, ) + BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', ), + BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, ) ); /** @@ -126,10 +129,10 @@ abstract class BaseProcessPeer { * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProParent' => 1, 'ProTime' => 2, 'ProTimeunit' => 3, 'ProStatus' => 4, 'ProTypeDay' => 5, 'ProType' => 6, 'ProAssignment' => 7, 'ProShowMap' => 8, 'ProShowMessage' => 9, 'ProShowDelegate' => 10, 'ProShowDynaform' => 11, 'ProCategory' => 12, 'ProSubCategory' => 13, 'ProIndustry' => 14, 'ProUpdateDate' => 15, 'ProCreateDate' => 16, 'ProCreateUser' => 17, 'ProHeight' => 18, 'ProWidth' => 19, 'ProTitleX' => 20, 'ProTitleY' => 21, 'ProDebug' => 22, 'ProDynaforms' => 23, ), - BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_PARENT => 1, ProcessPeer::PRO_TIME => 2, ProcessPeer::PRO_TIMEUNIT => 3, ProcessPeer::PRO_STATUS => 4, ProcessPeer::PRO_TYPE_DAY => 5, ProcessPeer::PRO_TYPE => 6, ProcessPeer::PRO_ASSIGNMENT => 7, ProcessPeer::PRO_SHOW_MAP => 8, ProcessPeer::PRO_SHOW_MESSAGE => 9, ProcessPeer::PRO_SHOW_DELEGATE => 10, ProcessPeer::PRO_SHOW_DYNAFORM => 11, ProcessPeer::PRO_CATEGORY => 12, ProcessPeer::PRO_SUB_CATEGORY => 13, ProcessPeer::PRO_INDUSTRY => 14, ProcessPeer::PRO_UPDATE_DATE => 15, ProcessPeer::PRO_CREATE_DATE => 16, ProcessPeer::PRO_CREATE_USER => 17, ProcessPeer::PRO_HEIGHT => 18, ProcessPeer::PRO_WIDTH => 19, ProcessPeer::PRO_TITLE_X => 20, ProcessPeer::PRO_TITLE_Y => 21, ProcessPeer::PRO_DEBUG => 22, ProcessPeer::PRO_DYNAFORMS => 23, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_PARENT' => 1, 'PRO_TIME' => 2, 'PRO_TIMEUNIT' => 3, 'PRO_STATUS' => 4, 'PRO_TYPE_DAY' => 5, 'PRO_TYPE' => 6, 'PRO_ASSIGNMENT' => 7, 'PRO_SHOW_MAP' => 8, 'PRO_SHOW_MESSAGE' => 9, 'PRO_SHOW_DELEGATE' => 10, 'PRO_SHOW_DYNAFORM' => 11, 'PRO_CATEGORY' => 12, 'PRO_SUB_CATEGORY' => 13, 'PRO_INDUSTRY' => 14, 'PRO_UPDATE_DATE' => 15, 'PRO_CREATE_DATE' => 16, 'PRO_CREATE_USER' => 17, 'PRO_HEIGHT' => 18, 'PRO_WIDTH' => 19, 'PRO_TITLE_X' => 20, 'PRO_TITLE_Y' => 21, 'PRO_DEBUG' => 22, 'PRO_DYNAFORMS' => 23, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, ) + BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProParent' => 1, 'ProTime' => 2, 'ProTimeunit' => 3, 'ProStatus' => 4, 'ProTypeDay' => 5, 'ProType' => 6, 'ProAssignment' => 7, 'ProShowMap' => 8, 'ProShowMessage' => 9, 'ProShowDelegate' => 10, 'ProShowDynaform' => 11, 'ProCategory' => 12, 'ProSubCategory' => 13, 'ProIndustry' => 14, 'ProUpdateDate' => 15, 'ProCreateDate' => 16, 'ProCreateUser' => 17, 'ProHeight' => 18, 'ProWidth' => 19, 'ProTitleX' => 20, 'ProTitleY' => 21, 'ProDebug' => 22, 'ProDynaforms' => 23, 'ProDerivationScreenTpl' => 24, ), + BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_PARENT => 1, ProcessPeer::PRO_TIME => 2, ProcessPeer::PRO_TIMEUNIT => 3, ProcessPeer::PRO_STATUS => 4, ProcessPeer::PRO_TYPE_DAY => 5, ProcessPeer::PRO_TYPE => 6, ProcessPeer::PRO_ASSIGNMENT => 7, ProcessPeer::PRO_SHOW_MAP => 8, ProcessPeer::PRO_SHOW_MESSAGE => 9, ProcessPeer::PRO_SHOW_DELEGATE => 10, ProcessPeer::PRO_SHOW_DYNAFORM => 11, ProcessPeer::PRO_CATEGORY => 12, ProcessPeer::PRO_SUB_CATEGORY => 13, ProcessPeer::PRO_INDUSTRY => 14, ProcessPeer::PRO_UPDATE_DATE => 15, ProcessPeer::PRO_CREATE_DATE => 16, ProcessPeer::PRO_CREATE_USER => 17, ProcessPeer::PRO_HEIGHT => 18, ProcessPeer::PRO_WIDTH => 19, ProcessPeer::PRO_TITLE_X => 20, ProcessPeer::PRO_TITLE_Y => 21, ProcessPeer::PRO_DEBUG => 22, ProcessPeer::PRO_DYNAFORMS => 23, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 24, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_PARENT' => 1, 'PRO_TIME' => 2, 'PRO_TIMEUNIT' => 3, 'PRO_STATUS' => 4, 'PRO_TYPE_DAY' => 5, 'PRO_TYPE' => 6, 'PRO_ASSIGNMENT' => 7, 'PRO_SHOW_MAP' => 8, 'PRO_SHOW_MESSAGE' => 9, 'PRO_SHOW_DELEGATE' => 10, 'PRO_SHOW_DYNAFORM' => 11, 'PRO_CATEGORY' => 12, 'PRO_SUB_CATEGORY' => 13, 'PRO_INDUSTRY' => 14, 'PRO_UPDATE_DATE' => 15, 'PRO_CREATE_DATE' => 16, 'PRO_CREATE_USER' => 17, 'PRO_HEIGHT' => 18, 'PRO_WIDTH' => 19, 'PRO_TITLE_X' => 20, 'PRO_TITLE_Y' => 21, 'PRO_DEBUG' => 22, 'PRO_DYNAFORMS' => 23, 'PRO_DERIVATION_SCREEN_TPL' => 24, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, ) ); /** @@ -278,6 +281,8 @@ abstract class BaseProcessPeer { $criteria->addSelectColumn(ProcessPeer::PRO_DYNAFORMS); + $criteria->addSelectColumn(ProcessPeer::PRO_DERIVATION_SCREEN_TPL); + } const COUNT = 'COUNT(PROCESS.PRO_UID)'; diff --git a/workflow/engine/classes/model/om/BaseTask.php b/workflow/engine/classes/model/om/BaseTask.php index b16fa6b97..b7e523f27 100755 --- a/workflow/engine/classes/model/om/BaseTask.php +++ b/workflow/engine/classes/model/om/BaseTask.php @@ -307,6 +307,13 @@ abstract class BaseTask extends BaseObject implements Persistent { */ protected $tas_boundary = ''; + + /** + * The value for the tas_derivation_screen_tpl field. + * @var string + */ + protected $tas_derivation_screen_tpl = ''; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -761,6 +768,17 @@ abstract class BaseTask extends BaseObject implements Persistent { return $this->tas_boundary; } + /** + * Get the [tas_derivation_screen_tpl] column value. + * + * @return string + */ + public function getTasDerivationScreenTpl() + { + + return $this->tas_derivation_screen_tpl; + } + /** * Set the value of [pro_uid] column. * @@ -1629,6 +1647,28 @@ abstract class BaseTask extends BaseObject implements Persistent { } // setTasBoundary() + /** + * Set the value of [tas_derivation_screen_tpl] column. + * + * @param string $v new value + * @return void + */ + public function setTasDerivationScreenTpl($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->tas_derivation_screen_tpl !== $v || $v === '') { + $this->tas_derivation_screen_tpl = $v; + $this->modifiedColumns[] = TaskPeer::TAS_DERIVATION_SCREEN_TPL; + } + + } // setTasDerivationScreenTpl() + /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -1726,12 +1766,14 @@ abstract class BaseTask extends BaseObject implements Persistent { $this->tas_boundary = $rs->getString($startcol + 39); + $this->tas_derivation_screen_tpl = $rs->getString($startcol + 40); + $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 40; // 40 = TaskPeer::NUM_COLUMNS - TaskPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 41; // 41 = TaskPeer::NUM_COLUMNS - TaskPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Task object", $e); @@ -2054,6 +2096,9 @@ abstract class BaseTask extends BaseObject implements Persistent { case 39: return $this->getTasBoundary(); break; + case 40: + return $this->getTasDerivationScreenTpl(); + break; default: return null; break; @@ -2114,6 +2159,7 @@ abstract class BaseTask extends BaseObject implements Persistent { $keys[37] => $this->getTasColor(), $keys[38] => $this->getTasEvnUid(), $keys[39] => $this->getTasBoundary(), + $keys[40] => $this->getTasDerivationScreenTpl(), ); return $result; } @@ -2265,6 +2311,9 @@ abstract class BaseTask extends BaseObject implements Persistent { case 39: $this->setTasBoundary($value); break; + case 40: + $this->setTasDerivationScreenTpl($value); + break; } // switch() } @@ -2328,6 +2377,7 @@ abstract class BaseTask extends BaseObject implements Persistent { if (array_key_exists($keys[37], $arr)) $this->setTasColor($arr[$keys[37]]); if (array_key_exists($keys[38], $arr)) $this->setTasEvnUid($arr[$keys[38]]); if (array_key_exists($keys[39], $arr)) $this->setTasBoundary($arr[$keys[39]]); + if (array_key_exists($keys[40], $arr)) $this->setTasDerivationScreenTpl($arr[$keys[40]]); } /** @@ -2379,6 +2429,7 @@ abstract class BaseTask extends BaseObject implements Persistent { if ($this->isColumnModified(TaskPeer::TAS_COLOR)) $criteria->add(TaskPeer::TAS_COLOR, $this->tas_color); if ($this->isColumnModified(TaskPeer::TAS_EVN_UID)) $criteria->add(TaskPeer::TAS_EVN_UID, $this->tas_evn_uid); if ($this->isColumnModified(TaskPeer::TAS_BOUNDARY)) $criteria->add(TaskPeer::TAS_BOUNDARY, $this->tas_boundary); + if ($this->isColumnModified(TaskPeer::TAS_DERIVATION_SCREEN_TPL)) $criteria->add(TaskPeer::TAS_DERIVATION_SCREEN_TPL, $this->tas_derivation_screen_tpl); return $criteria; } @@ -2511,6 +2562,8 @@ abstract class BaseTask extends BaseObject implements Persistent { $copyObj->setTasBoundary($this->tas_boundary); + $copyObj->setTasDerivationScreenTpl($this->tas_derivation_screen_tpl); + $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseTaskPeer.php b/workflow/engine/classes/model/om/BaseTaskPeer.php index 1eae30d9d..38c20fe0d 100755 --- a/workflow/engine/classes/model/om/BaseTaskPeer.php +++ b/workflow/engine/classes/model/om/BaseTaskPeer.php @@ -24,7 +24,7 @@ abstract class BaseTaskPeer { const CLASS_DEFAULT = 'classes.model.Task'; /** The total number of columns. */ - const NUM_COLUMNS = 40; + const NUM_COLUMNS = 41; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -150,6 +150,9 @@ abstract class BaseTaskPeer { /** the column name for the TAS_BOUNDARY field */ const TAS_BOUNDARY = 'TASK.TAS_BOUNDARY'; + /** the column name for the TAS_DERIVATION_SCREEN_TPL field */ + const TAS_DERIVATION_SCREEN_TPL = 'TASK.TAS_DERIVATION_SCREEN_TPL'; + /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -161,10 +164,10 @@ abstract class BaseTaskPeer { * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid', 'TasUid', 'TasType', 'TasDuration', 'TasDelayType', 'TasTemporizer', 'TasTypeDay', 'TasTimeunit', 'TasAlert', 'TasPriorityVariable', 'TasAssignType', 'TasAssignVariable', 'TasMiInstanceVariable', 'TasMiCompleteVariable', 'TasAssignLocation', 'TasAssignLocationAdhoc', 'TasTransferFly', 'TasLastAssigned', 'TasUser', 'TasCanUpload', 'TasViewUpload', 'TasViewAdditionalDocumentation', 'TasCanCancel', 'TasOwnerApp', 'StgUid', 'TasCanPause', 'TasCanSendMessage', 'TasCanDeleteDocs', 'TasSelfService', 'TasStart', 'TasToLastUser', 'TasSendLastEmail', 'TasDerivation', 'TasPosx', 'TasPosy', 'TasWidth', 'TasHeight', 'TasColor', 'TasEvnUid', 'TasBoundary', ), - BasePeer::TYPE_COLNAME => array (TaskPeer::PRO_UID, TaskPeer::TAS_UID, TaskPeer::TAS_TYPE, TaskPeer::TAS_DURATION, TaskPeer::TAS_DELAY_TYPE, TaskPeer::TAS_TEMPORIZER, TaskPeer::TAS_TYPE_DAY, TaskPeer::TAS_TIMEUNIT, TaskPeer::TAS_ALERT, TaskPeer::TAS_PRIORITY_VARIABLE, TaskPeer::TAS_ASSIGN_TYPE, TaskPeer::TAS_ASSIGN_VARIABLE, TaskPeer::TAS_MI_INSTANCE_VARIABLE, TaskPeer::TAS_MI_COMPLETE_VARIABLE, TaskPeer::TAS_ASSIGN_LOCATION, TaskPeer::TAS_ASSIGN_LOCATION_ADHOC, TaskPeer::TAS_TRANSFER_FLY, TaskPeer::TAS_LAST_ASSIGNED, TaskPeer::TAS_USER, TaskPeer::TAS_CAN_UPLOAD, TaskPeer::TAS_VIEW_UPLOAD, TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION, TaskPeer::TAS_CAN_CANCEL, TaskPeer::TAS_OWNER_APP, TaskPeer::STG_UID, TaskPeer::TAS_CAN_PAUSE, TaskPeer::TAS_CAN_SEND_MESSAGE, TaskPeer::TAS_CAN_DELETE_DOCS, TaskPeer::TAS_SELF_SERVICE, TaskPeer::TAS_START, TaskPeer::TAS_TO_LAST_USER, TaskPeer::TAS_SEND_LAST_EMAIL, TaskPeer::TAS_DERIVATION, TaskPeer::TAS_POSX, TaskPeer::TAS_POSY, TaskPeer::TAS_WIDTH, TaskPeer::TAS_HEIGHT, TaskPeer::TAS_COLOR, TaskPeer::TAS_EVN_UID, TaskPeer::TAS_BOUNDARY, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'TAS_UID', 'TAS_TYPE', 'TAS_DURATION', 'TAS_DELAY_TYPE', 'TAS_TEMPORIZER', 'TAS_TYPE_DAY', 'TAS_TIMEUNIT', 'TAS_ALERT', 'TAS_PRIORITY_VARIABLE', 'TAS_ASSIGN_TYPE', 'TAS_ASSIGN_VARIABLE', 'TAS_MI_INSTANCE_VARIABLE', 'TAS_MI_COMPLETE_VARIABLE', 'TAS_ASSIGN_LOCATION', 'TAS_ASSIGN_LOCATION_ADHOC', 'TAS_TRANSFER_FLY', 'TAS_LAST_ASSIGNED', 'TAS_USER', 'TAS_CAN_UPLOAD', 'TAS_VIEW_UPLOAD', 'TAS_VIEW_ADDITIONAL_DOCUMENTATION', 'TAS_CAN_CANCEL', 'TAS_OWNER_APP', 'STG_UID', 'TAS_CAN_PAUSE', 'TAS_CAN_SEND_MESSAGE', 'TAS_CAN_DELETE_DOCS', 'TAS_SELF_SERVICE', 'TAS_START', 'TAS_TO_LAST_USER', 'TAS_SEND_LAST_EMAIL', 'TAS_DERIVATION', 'TAS_POSX', 'TAS_POSY', 'TAS_WIDTH', 'TAS_HEIGHT', 'TAS_COLOR', 'TAS_EVN_UID', 'TAS_BOUNDARY', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, ) + BasePeer::TYPE_PHPNAME => array ('ProUid', 'TasUid', 'TasType', 'TasDuration', 'TasDelayType', 'TasTemporizer', 'TasTypeDay', 'TasTimeunit', 'TasAlert', 'TasPriorityVariable', 'TasAssignType', 'TasAssignVariable', 'TasMiInstanceVariable', 'TasMiCompleteVariable', 'TasAssignLocation', 'TasAssignLocationAdhoc', 'TasTransferFly', 'TasLastAssigned', 'TasUser', 'TasCanUpload', 'TasViewUpload', 'TasViewAdditionalDocumentation', 'TasCanCancel', 'TasOwnerApp', 'StgUid', 'TasCanPause', 'TasCanSendMessage', 'TasCanDeleteDocs', 'TasSelfService', 'TasStart', 'TasToLastUser', 'TasSendLastEmail', 'TasDerivation', 'TasPosx', 'TasPosy', 'TasWidth', 'TasHeight', 'TasColor', 'TasEvnUid', 'TasBoundary', 'TasDerivationScreenTpl', ), + BasePeer::TYPE_COLNAME => array (TaskPeer::PRO_UID, TaskPeer::TAS_UID, TaskPeer::TAS_TYPE, TaskPeer::TAS_DURATION, TaskPeer::TAS_DELAY_TYPE, TaskPeer::TAS_TEMPORIZER, TaskPeer::TAS_TYPE_DAY, TaskPeer::TAS_TIMEUNIT, TaskPeer::TAS_ALERT, TaskPeer::TAS_PRIORITY_VARIABLE, TaskPeer::TAS_ASSIGN_TYPE, TaskPeer::TAS_ASSIGN_VARIABLE, TaskPeer::TAS_MI_INSTANCE_VARIABLE, TaskPeer::TAS_MI_COMPLETE_VARIABLE, TaskPeer::TAS_ASSIGN_LOCATION, TaskPeer::TAS_ASSIGN_LOCATION_ADHOC, TaskPeer::TAS_TRANSFER_FLY, TaskPeer::TAS_LAST_ASSIGNED, TaskPeer::TAS_USER, TaskPeer::TAS_CAN_UPLOAD, TaskPeer::TAS_VIEW_UPLOAD, TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION, TaskPeer::TAS_CAN_CANCEL, TaskPeer::TAS_OWNER_APP, TaskPeer::STG_UID, TaskPeer::TAS_CAN_PAUSE, TaskPeer::TAS_CAN_SEND_MESSAGE, TaskPeer::TAS_CAN_DELETE_DOCS, TaskPeer::TAS_SELF_SERVICE, TaskPeer::TAS_START, TaskPeer::TAS_TO_LAST_USER, TaskPeer::TAS_SEND_LAST_EMAIL, TaskPeer::TAS_DERIVATION, TaskPeer::TAS_POSX, TaskPeer::TAS_POSY, TaskPeer::TAS_WIDTH, TaskPeer::TAS_HEIGHT, TaskPeer::TAS_COLOR, TaskPeer::TAS_EVN_UID, TaskPeer::TAS_BOUNDARY, TaskPeer::TAS_DERIVATION_SCREEN_TPL, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'TAS_UID', 'TAS_TYPE', 'TAS_DURATION', 'TAS_DELAY_TYPE', 'TAS_TEMPORIZER', 'TAS_TYPE_DAY', 'TAS_TIMEUNIT', 'TAS_ALERT', 'TAS_PRIORITY_VARIABLE', 'TAS_ASSIGN_TYPE', 'TAS_ASSIGN_VARIABLE', 'TAS_MI_INSTANCE_VARIABLE', 'TAS_MI_COMPLETE_VARIABLE', 'TAS_ASSIGN_LOCATION', 'TAS_ASSIGN_LOCATION_ADHOC', 'TAS_TRANSFER_FLY', 'TAS_LAST_ASSIGNED', 'TAS_USER', 'TAS_CAN_UPLOAD', 'TAS_VIEW_UPLOAD', 'TAS_VIEW_ADDITIONAL_DOCUMENTATION', 'TAS_CAN_CANCEL', 'TAS_OWNER_APP', 'STG_UID', 'TAS_CAN_PAUSE', 'TAS_CAN_SEND_MESSAGE', 'TAS_CAN_DELETE_DOCS', 'TAS_SELF_SERVICE', 'TAS_START', 'TAS_TO_LAST_USER', 'TAS_SEND_LAST_EMAIL', 'TAS_DERIVATION', 'TAS_POSX', 'TAS_POSY', 'TAS_WIDTH', 'TAS_HEIGHT', 'TAS_COLOR', 'TAS_EVN_UID', 'TAS_BOUNDARY', 'TAS_DERIVATION_SCREEN_TPL', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, ) ); /** @@ -174,10 +177,10 @@ abstract class BaseTaskPeer { * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'TasUid' => 1, 'TasType' => 2, 'TasDuration' => 3, 'TasDelayType' => 4, 'TasTemporizer' => 5, 'TasTypeDay' => 6, 'TasTimeunit' => 7, 'TasAlert' => 8, 'TasPriorityVariable' => 9, 'TasAssignType' => 10, 'TasAssignVariable' => 11, 'TasMiInstanceVariable' => 12, 'TasMiCompleteVariable' => 13, 'TasAssignLocation' => 14, 'TasAssignLocationAdhoc' => 15, 'TasTransferFly' => 16, 'TasLastAssigned' => 17, 'TasUser' => 18, 'TasCanUpload' => 19, 'TasViewUpload' => 20, 'TasViewAdditionalDocumentation' => 21, 'TasCanCancel' => 22, 'TasOwnerApp' => 23, 'StgUid' => 24, 'TasCanPause' => 25, 'TasCanSendMessage' => 26, 'TasCanDeleteDocs' => 27, 'TasSelfService' => 28, 'TasStart' => 29, 'TasToLastUser' => 30, 'TasSendLastEmail' => 31, 'TasDerivation' => 32, 'TasPosx' => 33, 'TasPosy' => 34, 'TasWidth' => 35, 'TasHeight' => 36, 'TasColor' => 37, 'TasEvnUid' => 38, 'TasBoundary' => 39, ), - BasePeer::TYPE_COLNAME => array (TaskPeer::PRO_UID => 0, TaskPeer::TAS_UID => 1, TaskPeer::TAS_TYPE => 2, TaskPeer::TAS_DURATION => 3, TaskPeer::TAS_DELAY_TYPE => 4, TaskPeer::TAS_TEMPORIZER => 5, TaskPeer::TAS_TYPE_DAY => 6, TaskPeer::TAS_TIMEUNIT => 7, TaskPeer::TAS_ALERT => 8, TaskPeer::TAS_PRIORITY_VARIABLE => 9, TaskPeer::TAS_ASSIGN_TYPE => 10, TaskPeer::TAS_ASSIGN_VARIABLE => 11, TaskPeer::TAS_MI_INSTANCE_VARIABLE => 12, TaskPeer::TAS_MI_COMPLETE_VARIABLE => 13, TaskPeer::TAS_ASSIGN_LOCATION => 14, TaskPeer::TAS_ASSIGN_LOCATION_ADHOC => 15, TaskPeer::TAS_TRANSFER_FLY => 16, TaskPeer::TAS_LAST_ASSIGNED => 17, TaskPeer::TAS_USER => 18, TaskPeer::TAS_CAN_UPLOAD => 19, TaskPeer::TAS_VIEW_UPLOAD => 20, TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION => 21, TaskPeer::TAS_CAN_CANCEL => 22, TaskPeer::TAS_OWNER_APP => 23, TaskPeer::STG_UID => 24, TaskPeer::TAS_CAN_PAUSE => 25, TaskPeer::TAS_CAN_SEND_MESSAGE => 26, TaskPeer::TAS_CAN_DELETE_DOCS => 27, TaskPeer::TAS_SELF_SERVICE => 28, TaskPeer::TAS_START => 29, TaskPeer::TAS_TO_LAST_USER => 30, TaskPeer::TAS_SEND_LAST_EMAIL => 31, TaskPeer::TAS_DERIVATION => 32, TaskPeer::TAS_POSX => 33, TaskPeer::TAS_POSY => 34, TaskPeer::TAS_WIDTH => 35, TaskPeer::TAS_HEIGHT => 36, TaskPeer::TAS_COLOR => 37, TaskPeer::TAS_EVN_UID => 38, TaskPeer::TAS_BOUNDARY => 39, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'TAS_UID' => 1, 'TAS_TYPE' => 2, 'TAS_DURATION' => 3, 'TAS_DELAY_TYPE' => 4, 'TAS_TEMPORIZER' => 5, 'TAS_TYPE_DAY' => 6, 'TAS_TIMEUNIT' => 7, 'TAS_ALERT' => 8, 'TAS_PRIORITY_VARIABLE' => 9, 'TAS_ASSIGN_TYPE' => 10, 'TAS_ASSIGN_VARIABLE' => 11, 'TAS_MI_INSTANCE_VARIABLE' => 12, 'TAS_MI_COMPLETE_VARIABLE' => 13, 'TAS_ASSIGN_LOCATION' => 14, 'TAS_ASSIGN_LOCATION_ADHOC' => 15, 'TAS_TRANSFER_FLY' => 16, 'TAS_LAST_ASSIGNED' => 17, 'TAS_USER' => 18, 'TAS_CAN_UPLOAD' => 19, 'TAS_VIEW_UPLOAD' => 20, 'TAS_VIEW_ADDITIONAL_DOCUMENTATION' => 21, 'TAS_CAN_CANCEL' => 22, 'TAS_OWNER_APP' => 23, 'STG_UID' => 24, 'TAS_CAN_PAUSE' => 25, 'TAS_CAN_SEND_MESSAGE' => 26, 'TAS_CAN_DELETE_DOCS' => 27, 'TAS_SELF_SERVICE' => 28, 'TAS_START' => 29, 'TAS_TO_LAST_USER' => 30, 'TAS_SEND_LAST_EMAIL' => 31, 'TAS_DERIVATION' => 32, 'TAS_POSX' => 33, 'TAS_POSY' => 34, 'TAS_WIDTH' => 35, 'TAS_HEIGHT' => 36, 'TAS_COLOR' => 37, 'TAS_EVN_UID' => 38, 'TAS_BOUNDARY' => 39, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, ) + BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'TasUid' => 1, 'TasType' => 2, 'TasDuration' => 3, 'TasDelayType' => 4, 'TasTemporizer' => 5, 'TasTypeDay' => 6, 'TasTimeunit' => 7, 'TasAlert' => 8, 'TasPriorityVariable' => 9, 'TasAssignType' => 10, 'TasAssignVariable' => 11, 'TasMiInstanceVariable' => 12, 'TasMiCompleteVariable' => 13, 'TasAssignLocation' => 14, 'TasAssignLocationAdhoc' => 15, 'TasTransferFly' => 16, 'TasLastAssigned' => 17, 'TasUser' => 18, 'TasCanUpload' => 19, 'TasViewUpload' => 20, 'TasViewAdditionalDocumentation' => 21, 'TasCanCancel' => 22, 'TasOwnerApp' => 23, 'StgUid' => 24, 'TasCanPause' => 25, 'TasCanSendMessage' => 26, 'TasCanDeleteDocs' => 27, 'TasSelfService' => 28, 'TasStart' => 29, 'TasToLastUser' => 30, 'TasSendLastEmail' => 31, 'TasDerivation' => 32, 'TasPosx' => 33, 'TasPosy' => 34, 'TasWidth' => 35, 'TasHeight' => 36, 'TasColor' => 37, 'TasEvnUid' => 38, 'TasBoundary' => 39, 'TasDerivationScreenTpl' => 40, ), + BasePeer::TYPE_COLNAME => array (TaskPeer::PRO_UID => 0, TaskPeer::TAS_UID => 1, TaskPeer::TAS_TYPE => 2, TaskPeer::TAS_DURATION => 3, TaskPeer::TAS_DELAY_TYPE => 4, TaskPeer::TAS_TEMPORIZER => 5, TaskPeer::TAS_TYPE_DAY => 6, TaskPeer::TAS_TIMEUNIT => 7, TaskPeer::TAS_ALERT => 8, TaskPeer::TAS_PRIORITY_VARIABLE => 9, TaskPeer::TAS_ASSIGN_TYPE => 10, TaskPeer::TAS_ASSIGN_VARIABLE => 11, TaskPeer::TAS_MI_INSTANCE_VARIABLE => 12, TaskPeer::TAS_MI_COMPLETE_VARIABLE => 13, TaskPeer::TAS_ASSIGN_LOCATION => 14, TaskPeer::TAS_ASSIGN_LOCATION_ADHOC => 15, TaskPeer::TAS_TRANSFER_FLY => 16, TaskPeer::TAS_LAST_ASSIGNED => 17, TaskPeer::TAS_USER => 18, TaskPeer::TAS_CAN_UPLOAD => 19, TaskPeer::TAS_VIEW_UPLOAD => 20, TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION => 21, TaskPeer::TAS_CAN_CANCEL => 22, TaskPeer::TAS_OWNER_APP => 23, TaskPeer::STG_UID => 24, TaskPeer::TAS_CAN_PAUSE => 25, TaskPeer::TAS_CAN_SEND_MESSAGE => 26, TaskPeer::TAS_CAN_DELETE_DOCS => 27, TaskPeer::TAS_SELF_SERVICE => 28, TaskPeer::TAS_START => 29, TaskPeer::TAS_TO_LAST_USER => 30, TaskPeer::TAS_SEND_LAST_EMAIL => 31, TaskPeer::TAS_DERIVATION => 32, TaskPeer::TAS_POSX => 33, TaskPeer::TAS_POSY => 34, TaskPeer::TAS_WIDTH => 35, TaskPeer::TAS_HEIGHT => 36, TaskPeer::TAS_COLOR => 37, TaskPeer::TAS_EVN_UID => 38, TaskPeer::TAS_BOUNDARY => 39, TaskPeer::TAS_DERIVATION_SCREEN_TPL => 40, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'TAS_UID' => 1, 'TAS_TYPE' => 2, 'TAS_DURATION' => 3, 'TAS_DELAY_TYPE' => 4, 'TAS_TEMPORIZER' => 5, 'TAS_TYPE_DAY' => 6, 'TAS_TIMEUNIT' => 7, 'TAS_ALERT' => 8, 'TAS_PRIORITY_VARIABLE' => 9, 'TAS_ASSIGN_TYPE' => 10, 'TAS_ASSIGN_VARIABLE' => 11, 'TAS_MI_INSTANCE_VARIABLE' => 12, 'TAS_MI_COMPLETE_VARIABLE' => 13, 'TAS_ASSIGN_LOCATION' => 14, 'TAS_ASSIGN_LOCATION_ADHOC' => 15, 'TAS_TRANSFER_FLY' => 16, 'TAS_LAST_ASSIGNED' => 17, 'TAS_USER' => 18, 'TAS_CAN_UPLOAD' => 19, 'TAS_VIEW_UPLOAD' => 20, 'TAS_VIEW_ADDITIONAL_DOCUMENTATION' => 21, 'TAS_CAN_CANCEL' => 22, 'TAS_OWNER_APP' => 23, 'STG_UID' => 24, 'TAS_CAN_PAUSE' => 25, 'TAS_CAN_SEND_MESSAGE' => 26, 'TAS_CAN_DELETE_DOCS' => 27, 'TAS_SELF_SERVICE' => 28, 'TAS_START' => 29, 'TAS_TO_LAST_USER' => 30, 'TAS_SEND_LAST_EMAIL' => 31, 'TAS_DERIVATION' => 32, 'TAS_POSX' => 33, 'TAS_POSY' => 34, 'TAS_WIDTH' => 35, 'TAS_HEIGHT' => 36, 'TAS_COLOR' => 37, 'TAS_EVN_UID' => 38, 'TAS_BOUNDARY' => 39, 'TAS_DERIVATION_SCREEN_TPL' => 40, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, ) ); /** @@ -358,6 +361,8 @@ abstract class BaseTaskPeer { $criteria->addSelectColumn(TaskPeer::TAS_BOUNDARY); + $criteria->addSelectColumn(TaskPeer::TAS_DERIVATION_SCREEN_TPL); + } const COUNT = 'COUNT(TASK.TAS_UID)'; diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index c17d62e77..8bd6bb065 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -790,6 +790,7 @@ + @@ -1170,6 +1171,8 @@ + + diff --git a/workflow/engine/controllers/adminProxy.php b/workflow/engine/controllers/adminProxy.php index 897b44f39..15bb25ef9 100644 --- a/workflow/engine/controllers/adminProxy.php +++ b/workflow/engine/controllers/adminProxy.php @@ -69,16 +69,16 @@ class adminProxy extends HttpProxyController $list = array( 'NORMAL' => 'Normal', 'SIMPLIFIED' => 'Simplified', - 'SWITCHABLE' => 'Switchable'/*, - 'SINGLE' => 'Single Application'*/ + 'SWITCHABLE' => 'Switchable', + 'SINGLE' => 'Single Application' ); } else { $list = array( array('NORMAL', 'Normal'), array('SIMPLIFIED', 'Simplified'), - array('SWITCHABLE', 'Switchable')/*, - array('SINGLE', 'Single Application')*/ + array('SWITCHABLE', 'Switchable'), + array('SINGLE', 'Single Application') ); } diff --git a/workflow/engine/controllers/home.php b/workflow/engine/controllers/home.php index 52304d3ad..f54697d46 100644 --- a/workflow/engine/controllers/home.php +++ b/workflow/engine/controllers/home.php @@ -18,13 +18,18 @@ class Home extends Controller private $appListStart = 0; private $appListLimit = 15; + private $clientBrowser; + private $lastSkin; + public function __construct() { - // setting as using simplified. - $_SESSION['current_ux'] = 'SIMPLIFIED'; + //die($_SESSION['user_experience']); + // setting client browser information + $this->clientBrowser = G::getBrowser(); // getting the ux type from user o group conf. - $this->userUxType = isset($_SESSION['user_experience'])? $_SESSION['user_experience']: $_SESSION['current_ux']; + $this->userUxType = isset($_SESSION['user_experience'])? $_SESSION['user_experience']: 'SIMPLIFIED'; + $this->lastSkin = isset($_SESSION['user_last_skin']) ? $_SESSION['user_last_skin'] : 'classic'; if (isset($_SESSION['USER_LOGGED']) && !empty($_SESSION['USER_LOGGED'])) { $this->userID = isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : null; @@ -32,7 +37,31 @@ class Home extends Controller $this->userFullName = isset($_SESSION['USR_FULLNAME']) ? $_SESSION['USR_FULLNAME'] : ''; $this->userRolName = isset($_SESSION['USR_ROLENAME']) ? $_SESSION['USR_ROLENAME'] : ''; } - //g::pr($_SESSION); die; + } + + public function login($httpData) + { + //start new session + @session_destroy (); + session_start (); + session_regenerate_id (); + + $data = isset($httpData->d) ? unserialize(base64_decode($httpData->d)) : ''; + $template = $this->clientBrowser['name'] == 'msie' ? 'login_ie' : 'login_standard'; + $skin = $this->clientBrowser['name'] == 'msie' ? $this->lastSkin : 'simplified'; + + if (!is_array($data)) { + $data = array('u'=>'', 'p'=>'', 'm'=>''); + } + + $this->setVar('msg', $data['m']); + $this->setVar('usr', $data['u']); + $this->setVar('pwd', $data['p']); + $this->setVar('skin', $skin); + + $this->setView("home/$template"); + + $this->render(); } /** @@ -42,6 +71,11 @@ class Home extends Controller public function index($httpData) { + if ($this->userUxType == 'SINGLE') { + $this->indexSingle($httpData); + return; + } + G::LoadClass('process'); G::LoadClass('case'); @@ -52,56 +86,84 @@ class Home extends Controller $start = 0; $limit = ''; - $proData = $process->getAllProcesses($start, $limit); - $processList = $case->getStartCasesPerType ( $_SESSION ['USER_LOGGED'], 'category' ); + $proData = $process->getAllProcesses($start, $limit); + $processList = $case->getStartCasesPerType ( $_SESSION ['USER_LOGGED'], 'category'); + $switchLink = '../classic/cases/main'; //'../' . $this->lastSkin . '/cases/main'; + unset($processList[0]); - if ($this->userUxType == 'SINGLE') { - $this->setView('home/index2'); - } - else { - $this->setView('home/index'); - } - + $this->setView('home/index'); $this->setVar('usrUid', $this->userID); $this->setVar('userName', $this->userName); $this->setVar('processList', $processList); $this->setVar('canStartCase', $case->canStartCase($_SESSION ['USER_LOGGED'])); $this->setVar('userUxType', $this->userUxType); + $this->setVar('clientBrowser', $this->clientBrowser['name']); + $this->setVar('switchLink', $switchLink); - G::RenderPage('publish', 'mvc'); + $this->render(); + } + + public function indexSingle($httpData) + { + require_once 'classes/model/Step.php'; + G::LoadClass('applications'); + + $apps = new Applications(); + $step = new Step; + + $cases = $apps->getAll($this->userID, 0, 1, 'todo'); + + + if (!isset($cases['data'][0])) { + //the current user has not any aplication to do + $this->setView('home/indexSingle'); + $this->setVar('default_url', 'home/error?no=2'); + $this->render(); + exit(); + } + + $lastApp = $cases['data'][0]; + $_SESSION['INDEX'] = $lastApp['DEL_INDEX']; + $_SESSION['APPLICATION'] = $lastApp['APP_UID']; + $_SESSION['PROCESS'] = $lastApp['PRO_UID']; + $_SESSION['TASK'] = $lastApp['TAS_UID']; + + + $steps = $apps->getSteps($lastApp['APP_UID'], $lastApp['DEL_INDEX'], $lastApp['TAS_UID'], $lastApp['PRO_UID']); + $lastStep = array_pop($steps); + $lastStep['title'] = 'Finish'; + $steps[] = $lastStep; + + $this->setView('home/indexSingle'); + + $this->setVar('usrUid', $this->userID); + $this->setVar('userName', $this->userName); + $this->setVar('steps', $steps); + $this->setVar('default_url', "cases/cases_Open?APP_UID={$lastApp['APP_UID']}&DEL_INDEX={$lastApp['DEL_INDEX']}&action=todo"); + + $this->render(); } public function appList($httpData) { - require_once ( "classes/model/AppNotes.php" ); - $appNotes = new AppNotes(); + // setting default list applications types [default: todo] + $httpData->t = isset($httpData->t)? $httpData->t : 'todo'; - $httpData->t = isset($httpData->t)? $httpData->t : 'in'; - $title = $httpData->t != 'draft' ? 'My Inbox' : 'My Drafts'; - $action = $httpData->t != 'draft' ? 'todo' : 'draft'; - - $notesStart = 0; - $notesLimit = 4; - - //$cases = self::getAppList($httpData->t, $this->appListStart, $this->appListLimit); - - G::LoadClass('applications'); - $apps = new Applications(); - $cases = $apps->getAll($this->appListStart, $this->appListLimit, $action); - - foreach ($cases['data'] as $i => $row) { - $notes = $appNotes->getNotesList($row['APP_UID'], $this->userID, $notesStart, $notesLimit); - $notes = $notes['array']; - - $cases['data'][$i]['NOTES_COUNT'] = $notes['totalCount']; - $cases['data'][$i]['NOTES_LIST'] = $notes['notes']; + // setting main list title + switch ($httpData->t) { + case 'todo' : $title = 'My Inbox'; break; + case 'draft' : $title = 'My Drafts'; break; + default: $title = ucwords($httpData->t); } + // getting apps data + $cases = $this->getAppsData($httpData->t); + // settings html template $this->setView('home/appList'); - + // settings vars and rendering $this->setVar('cases', $cases['data']); $this->setVar('cases_count', $cases['totalCount']); @@ -110,25 +172,48 @@ class Home extends Controller $this->setVar('appListLimit', 10); $this->setVar('listType', $httpData->t); - G::RenderPage('publish', 'mvc'); + $this->render(); } public function getApps($httpData) { - G::LoadClass('applications'); - $apps = new Applications(); + $cases = $this->getAppsData($httpData->t, $httpData->start, $httpData->limit); + $this->setView('home/applications'); + $this->setVar('cases', $cases['data']); + $this->render(); + } + + public function getAppsData($type, $start=null, $limit=null) + { require_once ( "classes/model/AppNotes.php" ); + G::LoadClass('applications'); + + $apps = new Applications(); $appNotes = new AppNotes(); + $start = empty($start) ? $this->appListStart : $start; + $limit = empty($limit) ? $this->appListLimit : $limit; + $notesStart = 0; $notesLimit = 4; - $action = $httpData->t != 'draft' ? 'todo' : 'draft'; - - $cases = $apps->getAll($httpData->start, $httpData->limit, $action); + $cases = $apps->getAll($this->userID, $start, $limit, $type); + //g::pr($cases['data']); die; + // formating & complitting apps data with 'Notes' foreach ($cases['data'] as $i => $row) { + // Formatting + $appTitle = str_replace('#', '', $row['APP_TITLE']); + + if (is_numeric($appTitle)) { + $cases['data'][$i]['APP_TITLE'] = G::LoadTranslation('ID_CASE'). ' ' . $appTitle; + } + + $cases['data'][$i]['DEL_DELEGATE_DATE'] = G::getformatedDate($row['DEL_DELEGATE_DATE'], 'M d, yyyy - h:i:s'); + $cases['data'][$i]['APP_DEL_PREVIOUS_USER'] = ucwords($row['APP_DEL_PREVIOUS_USER']); + + // Completting with Notes $notes = $appNotes->getNotesList($row['APP_UID'], $this->userID, $notesStart, $notesLimit); $notes = $notes['array']; @@ -136,12 +221,7 @@ class Home extends Controller $cases['data'][$i]['NOTES_LIST'] = $notes['notes']; } - $this->setView('home/applications'); - - // settings vars and rendering - $this->setVar('cases', $cases['data']); - - G::RenderPage('publish', 'mvc'); + return $cases; } public function startCase($httpData) @@ -163,79 +243,19 @@ class Home extends Controller $aNextStep['PAGE'] = '../cases/cases_Open?APP_UID='.$aData['APPLICATION'].'&DEL_INDEX='.$aData['INDEX'].'&action=draft'; $_SESSION ['BREAKSTEP'] ['NEXT_STEP'] = $aNextStep; - G::header('Location: ' . $aNextStep['PAGE']); + $this->redirect($aNextStep['PAGE']); } - private function getAppList($type, $start=null, $limit=null) + public function error($httpData) { - require_once ( "classes/model/AppCacheView.php" ); - require_once ( "classes/model/Application.php" ); - require_once ( "classes/model/AppNotes.php" ); + $httpData->no = isset($httpData->no) ? $httpData->no : 0; - $appCache = new AppCacheView(); - $appNotes = new AppNotes(); - - $notesStart = 0; - $notesLimit = 4; - - // getting user's cases on inbox - switch ($type) { - case 'inbox': case 'in': - $criteria = $appCache->getToDoListCriteria($this->userID); - break; - - case 'draft': - default: - $criteria = $appCache->getDraftListCriteria($this->userID); //fast enough - break; - } - - $distinct = $type == 'draft' ? true : false; - $criteriac = $appCache->getToDoCountCriteria($this->userID); - $totalCount = AppCacheViewPeer::doCount( $criteriac, $distinct ); - - if (isset($start)) - $criteria->setOffset($start); - - if (isset($limit)) - $criteria->setLimit($limit); - - $criteria->addDescendingOrderByColumn(AppCacheViewPeer::APP_NUMBER); - $dataset = AppCacheViewPeer::doSelectRS($criteria); - $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - - $cases = array(); - //$data['totalCount'] = $totalCount; - $rows = array(); - $priorities = array('1'=>'VL', '2'=>'L', '3'=>'N', '4'=>'H', '5'=>'VH'); - $index = $start; - - while ($dataset->next()) { - $row = $dataset->getRow(); - if (is_numeric(str_replace('#', '', $row['APP_TITLE']))) { - $row['APP_TITLE'] = 'Case ' . str_replace('#', '', $row['APP_TITLE']); - } - // replacing the status data with their respective translation - if (isset($row['APP_STATUS'])) { - $row['APP_STATUS'] = G::LoadTranslation("ID_{$row['APP_STATUS']}"); - } - // replacing the priority data with their respective translation - if (isset($row['DEL_PRIORITY'])) { - $row['DEL_PRIORITY'] = G::LoadTranslation("ID_PRIORITY_{$priorities[$row['DEL_PRIORITY']]}"); - } - - $row['DEL_DELEGATE_DATE'] = G::getformatedDate($row['DEL_DELEGATE_DATE'], 'M d, yyyy at h:i:s'); - - - $notes = $appNotes->getNotesList($row['APP_UID'], $this->userID, $notesStart, $notesLimit); - $notes = $notes['array']; - - $row['NOTES_COUNT'] = $notes['totalCount']; - $row['NOTES_LIST'] = $notes['notes']; - - $cases[] = $row; + switch ($httpData->no) { + case 2: $tpl = 'home/noAppsMsg'; break; + default: $tpl = 'home/error'; } - return array('data' => $cases, 'totalCount' => $totalCount); + $this->setView($tpl); + $this->render(); } } \ No newline at end of file diff --git a/workflow/engine/data/mssql/schema.sql b/workflow/engine/data/mssql/schema.sql index 44d0ef919..1a5b7f1b7 100755 --- a/workflow/engine/data/mssql/schema.sql +++ b/workflow/engine/data/mssql/schema.sql @@ -460,6 +460,7 @@ CREATE TABLE [GROUPWF] [GRP_UID] VARCHAR(32) default '' NOT NULL, [GRP_STATUS] CHAR(8) default 'ACTIVE' NOT NULL, [GRP_LDAP_DN] VARCHAR(255) default '' NOT NULL, + [GRP_UX] VARCHAR(128) default 'NORMAL' NULL, CONSTRAINT GROUPWF_PK PRIMARY KEY ([GRP_UID]) ); @@ -898,6 +899,7 @@ CREATE TABLE [PROCESS] [PRO_TITLE_Y] INT default 6 NOT NULL, [PRO_DEBUG] INT default 0 NOT NULL, [PRO_DYNAFORMS] NVARCHAR(MAX) NULL, + [PRO_DERIVATION_SCREEN_TPL] VARCHAR(128) default '' NULL, CONSTRAINT PROCESS_PK PRIMARY KEY ([PRO_UID]) ); @@ -1280,6 +1282,7 @@ CREATE TABLE [TASK] [TAS_COLOR] VARCHAR(32) default '' NOT NULL, [TAS_EVN_UID] VARCHAR(32) default '' NOT NULL, [TAS_BOUNDARY] VARCHAR(32) default '' NOT NULL, + [TAS_DERIVATION_SCREEN_TPL] VARCHAR(128) default '' NULL, CONSTRAINT TASK_PK PRIMARY KEY ([TAS_UID]) ); @@ -1463,6 +1466,7 @@ CREATE TABLE [USERS] [USR_ROLE] VARCHAR(32) default 'PROCESSMAKER_ADMIN' NULL, [USR_REPORTS_TO] VARCHAR(32) default '' NULL, [USR_REPLACED_BY] VARCHAR(32) default '' NULL, + [USR_UX] VARCHAR(128) default 'NORMAL' NULL, CONSTRAINT USERS_PK PRIMARY KEY ([USR_UID]) ); @@ -3024,3 +3028,91 @@ CREATE TABLE [APP_NOTES] CREATE INDEX [indexAppNotesDate] ON [APP_NOTES] ([APP_UID],[NOTE_DATE]); CREATE INDEX [indexAppNotesUser] ON [APP_NOTES] ([APP_UID],[USR_UID]); + +/* ---------------------------------------------------------------------- */ +/* DASHLET */ +/* ---------------------------------------------------------------------- */ + + +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'DASHLET') +BEGIN + DECLARE @reftable_67 nvarchar(60), @constraintname_67 nvarchar(60) + DECLARE refcursor CURSOR FOR + select reftables.name tablename, cons.name constraintname + from sysobjects tables, + sysobjects reftables, + sysobjects cons, + sysreferences ref + where tables.id = ref.rkeyid + and cons.id = ref.constid + and reftables.id = ref.fkeyid + and tables.name = 'DASHLET' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_67, @constraintname_67 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_67+' drop constraint '+@constraintname_67) + FETCH NEXT from refcursor into @reftable_67, @constraintname_67 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE [DASHLET] +END + + +CREATE TABLE [DASHLET] +( + [DAS_UID] VARCHAR(32) default '' NOT NULL, + [DAS_CLASS] VARCHAR(50) default '' NOT NULL, + [DAS_TITLE] VARCHAR(255) default '' NOT NULL, + [DAS_DESCRIPTION] NVARCHAR(MAX) NULL, + [DAS_VERSION] VARCHAR(10) default '1.0' NOT NULL, + [DAS_CREATE_DATE] CHAR(19) NOT NULL, + [DAS_UPDATE_DATE] CHAR(19) NULL, + [DAS_STATUS] TINYINT default 1 NOT NULL, + CONSTRAINT DASHLET_PK PRIMARY KEY ([DAS_UID]) +); + +/* ---------------------------------------------------------------------- */ +/* DASHLET_INSTANCE */ +/* ---------------------------------------------------------------------- */ + + +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'DASHLET_INSTANCE') +BEGIN + DECLARE @reftable_68 nvarchar(60), @constraintname_68 nvarchar(60) + DECLARE refcursor CURSOR FOR + select reftables.name tablename, cons.name constraintname + from sysobjects tables, + sysobjects reftables, + sysobjects cons, + sysreferences ref + where tables.id = ref.rkeyid + and cons.id = ref.constid + and reftables.id = ref.fkeyid + and tables.name = 'DASHLET_INSTANCE' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_68, @constraintname_68 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_68+' drop constraint '+@constraintname_68) + FETCH NEXT from refcursor into @reftable_68, @constraintname_68 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE [DASHLET_INSTANCE] +END + + +CREATE TABLE [DASHLET_INSTANCE] +( + [DAS_INS_UID] VARCHAR(32) default '' NOT NULL, + [DAS_UID] VARCHAR(32) default '' NOT NULL, + [DAS_INS_OWNER_TYPE] VARCHAR(20) default '' NOT NULL, + [DAS_INS_OWNER_UID] VARCHAR(32) default '' NULL, + [DAS_INS_ADDITIONAL_PROPERTIES] NVARCHAR(MAX) NULL, + [DAS_INS_CREATE_DATE] CHAR(19) NOT NULL, + [DAS_INS_UPDATE_DATE] CHAR(19) NULL, + [DAS_INS_STATUS] TINYINT default 1 NOT NULL, + CONSTRAINT DASHLET_INSTANCE_PK PRIMARY KEY ([DAS_INS_UID]) +); diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 30218c2b0..8f7753322 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -400,6 +400,7 @@ CREATE TABLE `PROCESS` `PRO_TITLE_Y` INTEGER default 6 NOT NULL, `PRO_DEBUG` INTEGER default 0 NOT NULL, `PRO_DYNAFORMS` MEDIUMTEXT, + `PRO_DERIVATION_SCREEN_TPL` VARCHAR(128) default '', PRIMARY KEY (`PRO_UID`) )ENGINE=MyISAM DEFAULT CHARSET='utf8' COMMENT='Store process Information'; #----------------------------------------------------------------------------- @@ -582,6 +583,7 @@ CREATE TABLE `TASK` `TAS_COLOR` VARCHAR(32) default '' NOT NULL, `TAS_EVN_UID` VARCHAR(32) default '' NOT NULL, `TAS_BOUNDARY` VARCHAR(32) default '' NOT NULL, + `TAS_DERIVATION_SCREEN_TPL` VARCHAR(128) default '', PRIMARY KEY (`TAS_UID`) )ENGINE=MyISAM DEFAULT CHARSET='utf8' COMMENT='Task of workflow'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/js/appFolder/core/appFolderList.js b/workflow/engine/js/appFolder/core/appFolderList.js index 9a5182485..c1dee6d2c 100755 --- a/workflow/engine/js/appFolder/core/appFolderList.js +++ b/workflow/engine/js/appFolder/core/appFolderList.js @@ -6,7 +6,7 @@ function openPMFolder( uid, rootfolder ){ getPMFolderContent(uid); return; } - document.getElementById('child_'+uid).innerHTML = "";//
'; + document.getElementById('child_'+uid).innerHTML = ""; var oRPC = new leimnud.module.rpc.xmlhttp({ @@ -30,7 +30,7 @@ function openPMFolder( uid, rootfolder ){ } function getPMFolderContent(uid){ - document.getElementById('spanFolderContent').innerHTML = "";//"Loading.."; + document.getElementById('spanFolderContent').innerHTML = "";//"Loading.."; var oRPC = new leimnud.module.rpc.xmlhttp({ url : 'appFolderAjax', async : true, @@ -51,7 +51,7 @@ function getPMFolderContent(uid){ } function getPMFolderSearchResult(searchKeyword,type){ - document.getElementById('spanFolderContent').innerHTML = "";//"Loading.."; + document.getElementById('spanFolderContent').innerHTML = "";//"Loading.."; var oRPC = new leimnud.module.rpc.xmlhttp({ url : 'appFolderAjax', async : true, @@ -72,7 +72,7 @@ function getPMFolderSearchResult(searchKeyword,type){ } function getPMFolderTags(rootfolder){ - document.getElementById('tags_cloud').innerHTML = "";//"Loading.."; + document.getElementById('tags_cloud').innerHTML = "";//"Loading.."; var oRPC = new leimnud.module.rpc.xmlhttp({ url : 'appFolderAjax', async : false, @@ -251,21 +251,21 @@ var documentInfo = function(docID,appDocId,docVersion,actionType,appId,docType,u }; var documentdelete = function(docID,appDocId,docVersion,actionType,appId,docType,usrUid){ - new leimnud.module.app.confirm().make({ - label : G_STRINGS.ID_MSG_CONFIRM_DELETE_FILE, - action: function() { - var oRPC = new leimnud.module.rpc.xmlhttp({ + new leimnud.module.app.confirm().make({ + label : G_STRINGS.ID_MSG_CONFIRM_DELETE_FILE, + action: function() { + var oRPC = new leimnud.module.rpc.xmlhttp({ url : 'appFolderAjax', async : true, - method:'POST', + method:'POST', args: 'action=documentdelete&sFileUID='+appDocId+'&docVersion='+docVersion - - }); - oRPC.callback = function(oRPC) { - window.location = 'appFolderList'; - }.extend(this); - oRPC.make(); - }.extend(this) + + }); + oRPC.callback = function(oRPC) { + window.location = 'appFolderList'; + }.extend(this); + oRPC.make(); + }.extend(this) }); @@ -277,21 +277,21 @@ var documentdelete = function(docID,appDocId,docVersion,actionType,appId,docType function deletePMFolder( uid, rootfolder ){ - new leimnud.module.app.confirm().make({ - label : G_STRINGS.ID_MSG_CONFIRM_DELETE_FILE, - action: function() { - var oRPC = new leimnud.module.rpc.xmlhttp({ + new leimnud.module.app.confirm().make({ + label : G_STRINGS.ID_MSG_CONFIRM_DELETE_FILE, + action: function() { + var oRPC = new leimnud.module.rpc.xmlhttp({ url : 'appFolderAjax', async : true, - method:'POST', + method:'POST', args: 'action=deletePMFolder&sFileUID='+uid+'&rootfolder='+rootfolder - - }); - oRPC.callback = function(oRPC) { - window.location = 'appFolderList'; - }.extend(this); - oRPC.make(); - }.extend(this) + + }); + oRPC.callback = function(oRPC) { + window.location = 'appFolderList'; + }.extend(this); + oRPC.make(); + }.extend(this) }); } \ No newline at end of file diff --git a/workflow/engine/js/cases/core/cases_Step.js b/workflow/engine/js/cases/core/cases_Step.js index 0b4fe9e0b..282672044 100755 --- a/workflow/engine/js/cases/core/cases_Step.js +++ b/workflow/engine/js/cases/core/cases_Step.js @@ -915,9 +915,9 @@ var resendMessage = function(APP_UID, APP_MSG_UID) function showdebug() { - if ( typeof(parent) != 'undefined' ) { - if ( typeof(parent.parent) != 'undefined' ) { - if ( ! parent.parent.PANEL_EAST_OPEN ) { + if ( typeof parent != 'undefined' && typeof parent.parent != 'undefined') { + if ( typeof parent.parent.Ext != 'undefined') { + if (!parent.parent.PANEL_EAST_OPEN ) { var debugPanel = parent.parent.Ext.getCmp('debugPanel'); parent.parent.PANEL_EAST_OPEN = true; diff --git a/workflow/engine/js/processmap/core/processes_Map.js b/workflow/engine/js/processmap/core/processes_Map.js index f7513e6da..c3c86270e 100755 --- a/workflow/engine/js/processmap/core/processes_Map.js +++ b/workflow/engine/js/processmap/core/processes_Map.js @@ -20,6 +20,7 @@ var saveDataTaskTemporal = function(iForm) oTaskData.TAS_DESCRIPTION = getField('TAS_DESCRIPTION').value.replace(re, "@amp@"); oTaskData.TAS_START = (getField('TAS_START').checked ? 'TRUE' : 'FALSE'); oTaskData.TAS_PRIORITY_VARIABLE = getField('TAS_PRIORITY_VARIABLE').value; + oTaskData.TAS_DERIVATION_SCREEN_TPL = getField('TAS_DERIVATION_SCREEN_TPL').value; break; case 2: case '2': diff --git a/workflow/engine/methods/cases/ajaxListener.php b/workflow/engine/methods/cases/ajaxListener.php index 17b766aeb..6d4cda767 100755 --- a/workflow/engine/methods/cases/ajaxListener.php +++ b/workflow/engine/methods/cases/ajaxListener.php @@ -84,151 +84,45 @@ class Ajax function steps() { - require_once 'classes/model/Step.php'; - require_once ( "classes/model/Content.php" ); - require_once ( "classes/model/AppDocument.php" ); - require_once ( "classes/model/InputDocumentPeer.php" ); - require_once ( "classes/model/OutputDocument.php" ); - require_once ( "classes/model/Dynaform.php" ); + G::LoadClass('applications'); + $applications = new Applications(); - G::LoadClass('pmScript'); - G::LoadClass('case'); + $proUid = isset($_SESSION['PROCESS']) ? $_SESSION['PROCESS'] : ''; + $tasUid = isset($_SESSION['TASK']) ? $_SESSION['TASK'] : ''; + $appUid = isset($_SESSION['APPLICATION']) ? $_SESSION['APPLICATION'] : ''; + $index = isset($_SESSION['INDEX']) ? $_SESSION['INDEX'] : ''; + $steps = $applications->getSteps($appUid, $index, $tasUid, $proUid); + $list = array(); + + foreach ($steps as $step) { + $item['id'] = $item['idtodraw'] = $step['id']; + $item['draggable'] = false; + $item['leaf'] = true; + $item['hrefTarget'] = 'casesSubFrame'; + $item['text'] = $step['title']; + $item['url'] = '../' . $step['url']; - $PRO_UID = isset($_SESSION['PROCESS'])?$_SESSION['PROCESS']:''; - $TAS_UID = isset($_SESSION['TASK'])?$_SESSION['TASK']:''; - $APP_UID = isset($_SESSION['APPLICATION'])?$_SESSION['APPLICATION']:''; - $tree = Array(); - $case = new Cases; - $step = new Step; - $appDocument = new AppDocument; - - $caseSteps = $step->getAllCaseSteps($PRO_UID, $TAS_UID, $APP_UID); - - //g::pr($caseSteps); - //getting externals steps - $oPluginRegistry = &PMPluginRegistry::getSingleton(); - $externalSteps = $oPluginRegistry->getSteps(); - //getting the case record - if($APP_UID){ - $caseData = $case->loadCase($APP_UID); - $pmScript = new PMScript(); - $pmScript->setFields($caseData['APP_DATA']); - } - - $externalStepCount = 0; - - foreach ($caseSteps as $caseStep) { - - if( trim($caseStep->getStepCondition()) != '' ) { - $pmScript->setScript($caseStep->getStepCondition()); - if( ! $pmScript->evaluate() ) - continue; - } - $stepUidObj = $caseStep->getStepUidObj(); - $stepTypeObj = $caseStep->getStepTypeObj(); - $stepPosition = $caseStep->getStepPosition(); - - $node = new stdClass; - $node->id = $stepUidObj; - $node->draggable = false; - $node->hrefTarget = 'casesSubFrame'; - - switch( $caseStep->getStepTypeObj() ) { + switch ($step['type']) { case 'DYNAFORM': - $oDocument = DynaformPeer::retrieveByPK($caseStep->getStepUidObj()); - - $node->text = $oDocument->getDynTitle(); - $node->iconCls = 'ss_sprite ss_application_form'; - $node->leaf = true; - $node->url = "cases_Step?UID=$stepUidObj&TYPE=$stepTypeObj&POSITION=$stepPosition&ACTION=EDIT"; - $node->idtodraw= $stepUidObj; + $item['iconCls'] = 'ss_sprite ss_application_form'; break; - - case 'OUTPUT_DOCUMENT': - $oDocument = OutputDocumentPeer::retrieveByPK($caseStep->getStepUidObj()); - $outputDoc = $appDocument->getObject($_SESSION['APPLICATION'], $_SESSION['INDEX'], $caseStep->getStepUidObj(), 'OUTPUT'); - - $node->text = $oDocument->getOutDocTitle(); - $node->iconCls = 'ss_sprite ss_application_put'; - $node->leaf = true; - if($outputDoc['APP_DOC_UID']) - $node->url = "cases_Step?UID=$stepUidObj&TYPE=$stepTypeObj&POSITION=$stepPosition&ACTION=VIEW&DOC={$outputDoc['APP_DOC_UID']}"; - else - $node->url = "cases_Step?UID=$stepUidObj&TYPE=$stepTypeObj&POSITION=$stepPosition&ACTION=GENERATE"; - + case 'OUTPUT_DOCUMENT': + $item['iconCls'] = 'ss_sprite ss_application_put'; break; - case 'INPUT_DOCUMENT': - $oDocument = InputDocumentPeer::retrieveByPK($caseStep->getStepUidObj()); - //$sType = $oDocument->getInpDocFormNeeded(); - $node->text = $oDocument->getInpDocTitle(); - $node->iconCls = 'ss_sprite ss_application_get'; - $node->leaf = true; - $node->url = "cases_Step?UID=$stepUidObj&TYPE=$stepTypeObj&POSITION=$stepPosition&ACTION=ATTACH"; + $item['iconCls'] = 'ss_sprite ss_application_get'; break; - case 'EXTERNAL': - $stepTitle = 'unknown ' . $caseStep->getStepUidObj(); - $oPluginRegistry = PMPluginRegistry::getSingleton(); - - foreach ( $externalSteps as $externalStep ) { - if ( $externalStep->sStepId == $caseStep->getStepUidObj() ) { - $stepTitle = $externalStep->sStepTitle; //default title - $sNamespace = $externalStep->sNamespace; - $oPlugin =& $oPluginRegistry->getPlugin($sNamespace); - $classFile = PATH_PLUGINS . $oPlugin->sNamespace . PATH_SEP . 'class.' . $oPlugin->sNamespace .'.php'; - if ( file_exists ( $classFile ) ) { - require_once ( $classFile ); - $sClassName = $sNamespace . 'class'; - $obj = new $sClassName( ); - if (method_exists($obj, 'getExternalStepTitle')) { - $stepTitle = $obj->getExternalStepTitle( $caseStep->getStepUidObj(), $TAS_UID, $caseStep->getStepPosition()); - } - if (method_exists($obj, 'getExternalStepAction')) { - $externalStepActions = $obj->getExternalStepAction( $caseStep->getStepUidObj(), -$caseStep->getStepPosition()); - } - } - break; - } - } - $node->id = md5($stepTitle.rand()); - $node->text = $stepTitle; - $node->leaf = false; - $node->url = ""; - $node->children = Array(); - - if( isset($externalStepActions) ) { - foreach ( $externalStepActions as $action => $label ) { - $childNode = new stdClass; - $childNode->id = md5($externalStepCount++); - $childNode->text = $label; - $childNode->iconCls = 'ICON_EXTERNAL_STEP'; - $childNode->leaf = true; - $childNode->url = "../cases/cases_Step?TYPE=$stepTypeObj&UID=$stepUidObj&POSITION=$stepPosition&ACTION=$action"; - - $node->children[] = $childNode; - } - } - break; + $item['iconCls'] = 'ss_sprite ss_application_view_detail'; + break; + default: + $item['iconCls'] = 'ICON_ASSIGN_TASK'; } - $tree[] = $node; - + $list[] = $item; } - //assign task - $node = new stdClass; - $node->id = 'ID_ASSIGN_TASK'; - $node->draggable = false; - $node->hrefTarget = 'casesSubFrame'; - $node->text = G::LoadTranslation('ID_ASSIGN_TASK'); - $node->iconCls = 'ICON_ASSIGN_TASK'; - $node->leaf = true; - $node->url = "../cases/cases_Step?TYPE=ASSIGN_TASK&UID=-1&POSITION=10000&ACTION=ASSIGN"; - $tree[] = $node; - - echo G::json_encode($tree); + echo G::json_encode($list); } function getInformationOptions() diff --git a/workflow/engine/methods/cases/casesListExtJsRedirector.php b/workflow/engine/methods/cases/casesListExtJsRedirector.php index f8f0ac214..56967121e 100755 --- a/workflow/engine/methods/cases/casesListExtJsRedirector.php +++ b/workflow/engine/methods/cases/casesListExtJsRedirector.php @@ -1,4 +1,31 @@ \ No newline at end of file diff --git a/workflow/engine/methods/cases/cases_Derivate.php b/workflow/engine/methods/cases/cases_Derivate.php index 599f4bfaa..69e6ef423 100755 --- a/workflow/engine/methods/cases/cases_Derivate.php +++ b/workflow/engine/methods/cases/cases_Derivate.php @@ -146,8 +146,8 @@ try { //Events - End $debuggerAvailable = true; - if (isset($_SESSION['current_ux']) && $_SESSION['current_ux'] == 'SIMPLIFIED') { - $aNextStep['PAGE'] = '../home/appList'; + if (isset($_SESSION['user_experience'])) { + $aNextStep['PAGE'] = 'casesListExtJsRedirector?ux=' . $_SESSION['user_experience']; $debuggerAvailable = false; } else { diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index 8d3efc272..d4e6f52b5 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -55,12 +55,13 @@ /* GET , POST & $_SESSION Vars */ - if(isset($_GET['POSITION'])) { + if (isset($_GET['POSITION'])) { $_SESSION['STEP_POSITION'] = (int)$_GET['POSITION']; } - if(isset($_SESSION['CASES_REFRESH'])){ - unset($_SESSION['CASES_REFRESH']); - echo ""; + + if (isset($_SESSION['CASES_REFRESH'])) { + unset($_SESSION['CASES_REFRESH']); + G::evalJScript("if(typeof parent != 'undefined' && parent.refreshCountFolders) parent.refreshCountFolders();"); } /* Menues */ @@ -184,13 +185,13 @@ $array['APP_TITLE'] = $sTitleCase; $array['CASE'] = G::LoadTranslation('ID_CASE'); $array['TITLE'] = G::LoadTranslation('ID_TITLE'); - $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $array); - -$uidf=$_GET['UID']; + switch ($_GET['TYPE']) { case 'DYNAFORM': + $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $array); + if (!$aPreviousStep) { $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = ''; } @@ -205,13 +206,10 @@ $uidf=$_GET['UID']; $oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher->addScriptCode(" if (typeof parent != 'undefined') { - try { - parent.setNode('$uidf'); + if (parent.setNode) { + parent.setNode('".$_GET['UID']."'); } - catch(e) { - } - } - "); + }"); $oStep = new Step(); $oStep = $oStep->loadByProcessTaskPosition($_SESSION['PROCESS'], $_SESSION['TASK'], $_GET['POSITION']); @@ -227,6 +225,8 @@ $uidf=$_GET['UID']; break; case 'INPUT_DOCUMENT': + $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $array); + $oInputDocument = new InputDocument(); $Fields = $oInputDocument->load($_GET['UID']); if (!$aPreviousStep) { @@ -316,6 +316,8 @@ $uidf=$_GET['UID']; break; case 'OUTPUT_DOCUMENT': + $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $array); + require_once 'classes/model/OutputDocument.php'; $oOutputDocument = new OutputDocument(); $aOD = $oOutputDocument->load( $_GET['UID'] ); @@ -615,6 +617,8 @@ $uidf=$_GET['UID']; die; break; case 'VIEW': + $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $array); + require_once 'classes/model/AppDocument.php'; $oAppDocument = new AppDocument(); $lastVersion=$oAppDocument->getLastAppDocVersion($_GET['DOC'],$_SESSION['APPLICATION']); @@ -680,6 +684,7 @@ $uidf=$_GET['UID']; $oDerivation = new Derivation(); $oProcess = new Process(); $aData = $oCase->loadCase($_SESSION['APPLICATION']); + $aFields['PROCESS'] = $oProcess->load($_SESSION['PROCESS']); $aFields['PREVIOUS_PAGE'] = $aPreviousStep['PAGE']; $aFields['PREVIOUS_PAGE_LABEL'] = G::LoadTranslation('ID_PREVIOUS_STEP'); @@ -698,15 +703,17 @@ $uidf=$_GET['UID']; $aFields['TAS_TIMEUNIT'] = 'Task Unit'; $aFields['TAS_TYPE_DAY'] = 'Count Days By'; $aFields['TAS_CALENDAR'] = 'Calendar'; - $aFields['TASK'] = $oDerivation->prepareInformation( - array( 'USER_UID' => $_SESSION['USER_LOGGED'], - 'APP_UID' => $_SESSION['APPLICATION'], - 'DEL_INDEX' => $_SESSION['INDEX']) - ); + + $aFields['TASK'] = $oDerivation->prepareInformation(array( + 'USER_UID' => $_SESSION['USER_LOGGED'], + 'APP_UID' => $_SESSION['APPLICATION'], + 'DEL_INDEX' => $_SESSION['INDEX'] + )); if ( empty($aFields['TASK']) ) { throw ( new Exception ( G::LoadTranslation( 'ID_NO_DERIVATION_RULE') ) ); } + //take the first derivation rule as the task derivation rule type. $aFields['PROCESS']['ROU_TYPE'] = $aFields['TASK'][1]['ROU_TYPE']; $aFields['PROCESS']['ROU_FINISH_FLAG'] = false; @@ -928,7 +935,27 @@ $uidf=$_GET['UID']; } $aFields['PROCESSING_MESSAGE'] = G::loadTranslation('ID_PROCESSING'); - $G_PUBLISH->AddContent('smarty', 'cases/cases_ScreenDerivation', '', '', $aFields); + /** + * New Feature: Derivation Screen can be personalized + * @author Erik Amaru Ortiz + */ + $tplFile = 'cases/cases_ScreenDerivation'; + $task = TaskPeer::retrieveByPk($_SESSION['TASK']); + + $tasDerivationScreenTpl = $task->getTasDerivationScreenTpl(); + + if (!empty($tasDerivationScreenTpl)) { //erik: first, verify if the task has a personalized template (for derivation screen) + $tplFile = $tasDerivationScreenTpl; + $tplFile = PATH_DATA_MAILTEMPLATES . $aFields['PROCESS']['PRO_UID'] . PATH_SEP . $tplFile; + } + else { //erik: verify if the process has a personalized template (for derivation screen) + if (!empty($aFields['PROCESS']['PRO_DERIVATION_SCREEN_TPL'])) { + $tplFile = $aFields['PROCESS']['PRO_DERIVATION_SCREEN_TPL']; + $tplFile = PATH_DATA_MAILTEMPLATES . $aFields['PROCESS']['PRO_UID'] . PATH_SEP . $tplFile; + } + } + + $G_PUBLISH->AddContent('smarty', $tplFile, '', '', $aFields); /* if (isset( $aFields['TASK'][1]['NEXT_TASK']['USER_ASSIGNED'])){ if($aFields['TASK'][1]['NEXT_TASK']['USER_ASSIGNED']!="ERROR" && is_array($aFields['TASK'][1]['NEXT_TASK']['USER_ASSIGNED'])){ @@ -947,7 +974,9 @@ $uidf=$_GET['UID']; } */ break; - case 'EXTERNAL': + case 'EXTERNAL': + $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $array); + $oPluginRegistry = &PMPluginRegistry::getSingleton(); $externalSteps = $oPluginRegistry->getSteps(); @@ -975,6 +1004,11 @@ $uidf=$_GET['UID']; $oDbConnections = new dbConnections($_SESSION['PROCESS']); $oDbConnections->loadAdditionalConnections(); $stepFilename = "$sNamespace/$sStepName"; + G::evalJScript(" + if (parent.setCurrent) { + parent.setCurrent('".$_GET['UID']."'); + }"); + $G_PUBLISH->AddContent('content', $stepFilename); break; @@ -993,19 +1027,20 @@ $uidf=$_GET['UID']; $oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher->addScriptCode(" - if (typeof parent != 'undefined') { - try { - parent.showCaseNavigatorPanel('$sStatus'); - } - catch(e) { - } + if (typeof parent != 'undefined') { + if (parent.showCaseNavigatorPanel) { + parent.showCaseNavigatorPanel('$sStatus'); } - "); + + if (parent.setCurrent) { + parent.setCurrent('".$_GET['UID']."'); + } + }"); G::RenderPage('publish', 'blank'); if( $_SESSION['TRIGGER_DEBUG']['ISSET'] ){ - G::evalJScript('showdebug();'); + G::evalJScript('if (typeof showdebug != \'undefined\') showdebug();'); } diff --git a/workflow/engine/methods/cases/proxyCasesList.php b/workflow/engine/methods/cases/proxyCasesList.php index b4c3d5343..db6a959b6 100755 --- a/workflow/engine/methods/cases/proxyCasesList.php +++ b/workflow/engine/methods/cases/proxyCasesList.php @@ -20,8 +20,9 @@ try { // G::LoadClass('applications'); - $apps = new Applications(); - $data = $apps->getAll($start, $limit, $action, $filter, $search, $process, $user, $status, $type, $dateFrom, $dateTo, $callback, $dir, $sort); + $apps = new Applications(); + $userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? $_SESSION['USER_LOGGED'] : null; + $data = $apps->getAll($userUid, $start, $limit, $action, $filter, $search, $process, $user, $status, $type, $dateFrom, $dateTo, $callback, $dir, $sort); echo G::json_encode($data); } diff --git a/workflow/engine/methods/login/authentication.php b/workflow/engine/methods/login/authentication.php index e751c41b4..65522cdaa 100755 --- a/workflow/engine/methods/login/authentication.php +++ b/workflow/engine/methods/login/authentication.php @@ -36,22 +36,26 @@ try { $frm = $_POST['form']; $usr = ''; $pwd = ''; + if (isset($frm['USR_USERNAME'])) { $usr = strtolower(trim($frm['USR_USERNAME'])); $pwd = trim($frm['USR_PASSWORD']); } + $uid = $RBAC->VerifyLogin($usr , $pwd); - //cleaning session files older than 72 hours - $RBAC->cleanSessionFiles(72); + + $RBAC->cleanSessionFiles(72); //cleaning session files older than 72 hours $sPwd = 'currentPwd'; + switch ($uid) { //The user does doesn't exist case -1: - G::SendTemporalMessage ('ID_USER_NOT_REGISTERED', "warning"); + $errLabel = 'ID_USER_NOT_REGISTERED'; break; //The password is incorrect case -2: - G::SendTemporalMessage ('ID_WRONG_PASS', "warning"); + $errLabel = 'ID_WRONG_PASS'; + if(isset($_SESSION['__AUTH_ERROR__'])){ G::SendMessageText($_SESSION['__AUTH_ERROR__'], "warning"); unset($_SESSION['__AUTH_ERROR__']); @@ -62,29 +66,31 @@ try { require_once 'classes/model/Users.php'; $user = new Users; $aUser = $user->loadByUsernameInArray($usr); + switch($aUser['USR_STATUS']){ case 'VACATION': - G::SendTemporalMessage ('ID_USER_ONVACATION', "warning"); + $errLabel = 'ID_USER_ONVACATION'; break; - CASE 'INACTIVE': - G::SendTemporalMessage ('ID_USER_INACTIVE', "warning"); + case 'INACTIVE': + $errLabel = 'ID_USER_INACTIVE'; break; } break; //The Due date is finished case -4: - G::SendTemporalMessage ('ID_USER_INACTIVE_BY_DATE', "warning"); + $errLabel = 'ID_USER_INACTIVE_BY_DATE'; break; case -5: - G::SendTemporalMessage ('ID_AUTHENTICATION_SOURCE_INVALID', "warning"); + $errLabel = 'ID_AUTHENTICATION_SOURCE_INVALID'; break; - } - $$sPwd= $pwd; + } + + $$sPwd = $pwd; //to avoid empty string in user field. This will avoid a weird message "this row doesn't exist" if ( !isset($uid) ) { $uid = -1; - G::SendTemporalMessage ('ID_USER_NOT_REGISTERED', "warning"); + $errLabel = 'ID_USER_NOT_REGISTERED'; } if ( !isset($uid) || $uid < 0 ) { @@ -109,12 +115,19 @@ try { unset($_SESSION['FAILED_LOGINS']); G::SendMessageText(G::LoadTranslation('ID_ACCOUNT') . ' "' . $usr . '" ' . G::LoadTranslation('ID_ACCOUNT_DISABLED_CONTACT_ADMIN'), 'warning'); } - else { - //Nothing - } } } - G::header ("location: login.html"); + + if (strpos($_SERVER['HTTP_REFERER'], 'home/login') !== false) { + $d = serialize(array('u'=>$usr, 'p'=>$pwd, 'm'=>G::LoadTranslation($errLabel))); + $loginUrl = '../home/login?d='.base64_encode($d); + } + else { + G::SendTemporalMessage($errLabel, "warning"); + $loginUrl = 'login'; + } + + G::header("location: $loginUrl"); die; } if(!isset( $_SESSION['WORKSPACE'] ) ) $_SESSION['WORKSPACE'] = SYS_SYS; diff --git a/workflow/engine/methods/processes/processes_Save.php b/workflow/engine/methods/processes/processes_Save.php index 2b7698e7e..1fcfc51b1 100755 --- a/workflow/engine/methods/processes/processes_Save.php +++ b/workflow/engine/methods/processes/processes_Save.php @@ -47,6 +47,7 @@ switch($function){ $aRow = $oDataset->getRow(); print($aRow['PROCESS'] ? true : false); break; + default: if ( isset($_GET['PRO_UID'])) { $_POST['form']['PRO_UID'] = $_GET['PRO_UID']; diff --git a/workflow/engine/skinEngine/base/config.xml b/workflow/engine/skinEngine/base/config.xml index 8b6e19b06..0c5ccfe87 100755 --- a/workflow/engine/skinEngine/base/config.xml +++ b/workflow/engine/skinEngine/base/config.xml @@ -11,56 +11,40 @@ - - - - - + + + + + + - - - + + + + - - - + + + + - - - + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/workflow/engine/skinEngine/base/css/form.css b/workflow/engine/skinEngine/base/css/form.css new file mode 100644 index 000000000..e9b7b46c2 --- /dev/null +++ b/workflow/engine/skinEngine/base/css/form.css @@ -0,0 +1,896 @@ +/** form controls styles form.css */ + +body +{ + color:black; +} +.pm_separator{ + height: -1px; +} +form{ + margin: 0px; +} +INPUT { + font-family: Tahoma, Verdana, Arial, sans-serif ; + font-size: 10pt; +} + +/* Theme processmaker */ +.app_menuRight_container___processmaker +{ + position:absolute; + border:1px solid #868686; + background-color:#FAFAFA; + overflow:hidden; + z-index:10000; +} +.app_menuRight_shadow___processmaker +{ + position:absolute; + border:1px solid black; + background-color:black; + overflow:hidden; + z-index:9999; + opacity:0.2; + filter:alpha(opacity=20); +} +.app_menuRight_separator___processmaker +{ + padding:0; + margin-left:30px; + margin-right:5px; + position:relative; + cursor:default; + border-top:1px solid #C5C5C5; + border-bottom:0px solid red; + overflow:hidden; +} +.app_menuRight_option___processmaker, .app_menuRight_option_over___processmaker, .app_menuRight_optionNull___processmaker + +{ + padding:0px; + margin:0px; + position:relative; + cursor:default; + color:black; + background-color:""; + height:29px; + overflow:hidden; + border:0px solid #FBFFF2; +} +.app_menuRight_option_over___processmaker +{ + //background-image:url(/images/onmouseSilver.jpg); + background-color:#DCF1FC; + background-repeat:repeat-x; +} +.app_menuRight_option_image___processmaker, .app_menuRight_option_image_over___processmaker, .app_menuRight_option_imageNull___processmaker +{ + width :26px; + height :31px; + padding :0px; + position:absolute; + overflow:hidden; + cursor :default; + left :0; + top :0; + background-color:#E9EEEE; + border-right:1px solid #C5C5C5; +} +.app_menuRight_option_image_over___processmaker +{ + background-color:#E9EEEE; + border-right-width:1px; +} +.app_menuRight_option_image_element___processmaker +{ + position:absolute; + top:2; +} +.app_menuRight_option_text___processmaker +{ + padding :0px; + font :normal 8pt Tahoma,MiscFixed; + color :#003366; + position:absolute; + cursor :default; + left :30px; + top :8px; + overflow:hidden; +} +.app_menuRight_optionNull___processmaker +{ + +} +.app_menuRight_option_imageNull___processmaker +{ + width :26px; +} + +/* leimnud.app.menuRight CSS end */ + +/* processmap Theme.Panels begin */ +.panel_containerWindow___processmaker{ + border: 1px solid #C0C0C0; + border: 1px solid #1983BD; + border: 1px solid #66667E; + border:1px solid #AAA; + overflow: hidden; + /*border: 1px solid #5394BF; + border-left:1px solid #8BBDDF; + border-top:1px solid #8BBDDF;*/ +} +.panel_modal___processmaker{ + position:absolute; + background-color:black; + left:0px; + top:0px; +} +.panel_iframe___processmaker{ + width:100%; + height:100%; + position:absolute; + background-color:white; + overflow:hidden; + z-index:1; + top:0px; + left:0px; +} +.panel_backend___processmaker{ + /*width:100%;*/ + height:100%; + position:absolute; + background-color:white; + overflow:hidden; + z-index:1; + top:0px; + left:0px; +} +.panel_frontend___processmaker{ + /*width: 100%;*/ + height: 100%; + position: absolute; + background-color: #E8F2F7; + background-color:#E0DFE3; + /*background-color:#59A5D9;*/ + overflow: hidden; + z-index: 2; + top: 0px; + left: 0px; +} +.panel_titleBar___processmaker{ + position:relative; + height:23px; + overflow:hidden; + background-color:white; + background-image:url("/images/ext/gray/window/top-bottom.png"); + background-repeat:repeat-x; + background-position:0px -1px; + border-bottom:0px solid #DBE0E5; + width:100%; +} +.panel_title___processmaker{ + text-align: center; + width: 100%; + height: 23px; + color: #000; + /*color:#FFF;*/ + font: bold 8pt tahoma, MiscFixed; + padding-left: 5px; + padding-top: 5px; + z-index: 1; + text-shadow:#fff 0px 1px 1px; + color:#444; +} +.panel_close___processmaker{ + position:absolute; + top:4px; + font:normal 0pt tahoma; + padding:0px; + border:0px solid red; + z-index:2; + cursor:pointer; + background:url("/images/ext/gray/panel/tool-sprites.gif") 0 0 no-repeat; +} +.panel_roll___processmaker{ + position:absolute; + top:4; + font:normal 0pt tahoma; + padding:0px; + border:0px solid red; + z-index:2; + cursor:pointer; + background:url(/images/classic/roll.static.gif); + background-repeat:no-repeat; +} +.panel_resize___processmaker{ + position:absolute; + right:1px; + width:11px; + height:11px; + overflow:hidden; + z-index:333333; + bottom:1px; + background:url(/images/classic/panel.resize.11x11.png?rand=234); + background-repeat:no-repeat; +} +.panel_headerBar___processmaker{ + position:relative; + height:25px; + overflow:hidden; + background-color:transparent; +} +.panel_shadow___processmaker{ + position:absolute; + background-color:#000; +} +.panel_tab___processmaker{ + position:absolute; + z-index:3; + padding-bottom: 14px; + overflow-x: scroll; + /*overflow-y: visible;*/ + + +} + + +.panel_tabH___processmaker{ + position:absolute; +} +.panel_tabOptionH___processmaker{ + text-align:center; + font:normal 8pt Tahoma,MiscFixed; + position:absolute; + cursor:pointer; + border:1px solid #919B9C; + background-color:#F9F9F9; + color:black; + height:20px; + max-height:9px; + overflow:hidden; + -moz-border-radius-topleft:5px; + -moz-border-radius-topright:5px; +} +.panel_tabOptionOverH___processmaker{ + cursor:pointer; +} +.panel_tabOptionSelectedH___processmaker, .panel_tabOptionOverH___processmaker, .panel_tabOptionSelectedOverH___processmaker{ + font:normal 8pt Tahoma,MiscFixed; + border: 1px solid #FF9900; + border: 1px solid #919B9C; + border-bottom:1px solid #F9F9F9; + border-top-color:#E68B2C; + background-color: #FBFFF2; + background-color: #F9F9F9; + color:#000000; + text-align: center; + position: absolute; + background-image: url('/images/classic/panel.tabSelected.1x3.gif'); + background-repeat:repeat-x; + background-position:0px -1px; + height:22px; + max-height:10px; + overflow:hidden; +/* -moz-border-radius-topleft:4px; + -moz-border-radius-topright:4px;*/ + +} +.panel_tabOptionSelectedOverH___processmaker{ +} + + + + +.panel_tabOption___processmaker{ + text-align:left; + font:normal 8pt Tahoma,MiscFixed; + border:1px solid #A3A2BC; + border: 1px solid #FF9900; + position:absolute; + background-color:#FFE6BF; + cursor:pointer; + color:black; +} +.panel_tabOptionOver___processmaker{ + font:normal 8pt Tahoma,MiscFixed; + cursor:pointer; + text-align:left; + border:1px solid #FF9900; + color:#666666; + background-color:white; +} +.panel_tabOptionSelected___processmaker, .panel_tabOptionSelectedOver___processmaker{ + font:bold 8pt Tahoma,MiscFixed; + border: 1px solid #FF9900; + border-right:1px solid #FFF; + background-color: #FBFFF2; + color:#000000; + text-align: left; + position: absolute; +} +.panel_tabOptionSelectedOver___processmaker{ + color:#EA560F; + + +} +.panel_content___processmaker{ + position: relative; + color: black; + font: normal 8pt Tahoma,MiscFixed; + text-align: justify; + border: 1px solid #A3A2BC; + border: 1px solid #FF9900; + border: 1px solid #919B9C; + /*border-left:1px solid #1983BD; + border-top:1px solid #1983BD; + border-right:1px solid #59A5D9; + border-bottom:1px solid #59A5D9;*/ + background-color: #E8F2F7; + background-color: #FFFFFF; + background-color: #F9F9F9; + background-color: #FFF; + overflow: auto; + padding:0px; +} +.panel_statusBar___processmaker{ + position:relative; + overflow:hidden; + font:normal 8pt Tahoma,MiscFixed; + padding:0px; + margin:0px; + /*background-color:white;*/ + background-color:transparent; + min-height:25px; +} +.panel_status___processmaker +{ + text-align:center; + padding:2; + padding-left:5px; + color:#666666; +} +/* processmap Theme.Panels end */ + + + +/* Theme leimnud.module.grid BEGIN */ +/* gray BEGIN */ +.app_grid_headerBar___gray +{ + font:normal 8pt Tahoma,sans-serif,MiscFixed; + padding:3px; + text-align:center; + border:1px solid #AAA; + /*border:1px solid #FF9D3F;*/ + border-bottom:0px solid red; + background-color:#E8E8E8; + background :url(/images/classic/grid.title.gray.gif); + background-position:0px -10px; +} +.app_grid_table___gray +{ + font :normal 8pt Tahoma,sans-serif; + width :100%; + border-collapse:collapse; + margin :0px; +} +.app_grid_title___gray +{ + font:normal 8pt tahoma,helvetica,sans-serif; + border :1px solid #cbcbcb; + border :1px solid #aaa; + background-color:#D0DEF0; + background :url(/images/classic/grid.title.gray.gif); + text-align :center; + padding :4px; + height :25px; + color :#000; + cursor :default; + background-position:0px 0px; +} +.app_grid_data___gray +{ + padding : 5px; + border : 1px solid #dfdfdf; + color : #333; + overflow: auto; + background-color:#FFF; +} +.app_grid_data___gray select +{ + font:normal 8pt Tahoma,MiscFixed; + width:100%; +} +.app_grid_bg1___gray +{ + background-color:#e0e0e0; + border-color :#cbcbcb; + border-color :#aaa; + text-align:center; + font-size:7pt; + color :#000; + cursor :default; +} +.app_grid_bg2___gray +{ + background-color:#e0e0e0; + border:1px solid #e0e0e0; + text-align:center; + color :#000; +} + +.app_grid_pDf___gray, .app_grid_pDp___gray, .app_grid_pDn___gray, .app_grid_pDl___gray, .app_grid_pDfDisabled___gray, .app_grid_pDpDisabled___gray, .app_grid_pDnDisabled___gray, .app_grid_pDlDisabled___gray +{ + width:16px; + height:16px; + text-decoration:none; + padding-left:7px; + padding-right:7px; + margin-left:3px; + margin-right:3px; + overflow:none; + background-repeat: no-repeat; + font:normal 11px sans-serif; +} +.app_grid_pDf___gray +{ + background:url(/images/classic/module.grid/page-first.gif); +} +.app_grid_pDf___gray:hover +{ + background:url(/images/classic/module.grid/page-first-disabled.gif); +} +.app_grid_pDfDisabled___gray +{ + background:url(/images/classic/module.grid/page-first-disabled.gif); + cursor:default; +} + +.app_grid_pDp___gray +{ + background:url(/images/classic/module.grid/page-prev.gif); +} +.app_grid_pDp___gray:hover +{ + background:url(/images/classic/module.grid/page-prev-disabled.gif); +} +.app_grid_pDpDisabled___gray +{ + background:url(/images/classic/module.grid/page-prev-disabled.gif); + cursor:default; +} + +.app_grid_pDn___gray +{ + background:url(/images/classic/module.grid/page-next.gif); +} +.app_grid_pDn___gray:hover +{ + background:url(/images/classic/module.grid/page-next-disabled.gif); +} +.app_grid_pDnDisabled___gray +{ + background:url(/images/classic/module.grid/page-next-disabled.gif); + cursor:default; +} + +.app_grid_pDl___gray +{ + background:url(/images/classic/module.grid/page-last.gif); +} +.app_grid_pDl___gray:hover +{ + background:url(/images/classic/module.grid/page-last-disabled.gif); +} +.app_grid_pDlDisabled___gray +{ + background:url(/images/classic/module.grid/page-last-disabled.gif); + cursor:default; +} +.app_grid_pDC___gray +{ + width :35px; + height :18px; + margin-left :5px; + margin-right :5px; + border :1px solid #919B9C; + text-align :center; +} +/* gray END */ + + +/* Theme leimnud.module.grid.paginator BEGIN */ +.app_grid_paginatorHeader___gray +{ + font:normal 8pt Tahoma,MiscFixed; + color:black; + padding:10px; + text-align:center; +} +.app_grid_paginatorLink___gray +{ + background-color:#E0E0E0; + padding-left:3px; + padding-right:3px; + margin:2px; + border:1px solid #CBCBCB; + color:black; + cursor:hand; + text-decoration:none; + background :url(/images/classic/grid.title.gray.gif); + background-position:0px -10px; +} +.app_grid_paginatorLink___gray:hover +{ + background-color:#FFF; + border:1px solid #66667E; + color:#66667E; +} +.app_grid_paginatorLinkSelected___gray +{ + background-color:#fff; + padding-left:3px; + padding-right:3px; + margin:2px; + border:1px solid #CBCBCB; + color:black; + cursor:hand; + text-decoration:none; + cursor:default; +} + +/* Theme leimnud.module.app.button BEGIN */ +.module_app_button___gray, .module_app_buttonjs___gray +{ + border:1px solid #afafaf; + margin-left:2px; + cursor:pointer; + background :url(/images/classic/grid.title.gray.gif); + background-position:0px 0px; +} +.module_app_button___gray:hover, .module_app_buttonHover___gray +{ + border:1px solid #AAA; + background-position:0px -8px; +} +.module_app_buttonDisabled___gray +{ + font:normal 8pt Tahoma,sans-serif; + border:1px solid #9f9f9f; + background-position:0px -10px; + color:#9f9f9f; + cursor:default; +} + +/* Theme leimnud.module.app.button END */ +/* Theme leimnud.module.app.input BEGIN */ +.module_app_input___gray +{ + padding:1px; + border:1px solid #AAA; + padding-left:3px; + background: #FFFFFF url(/images/classic/input_back.gif) repeat-x; + background-position:0px 0px; + color :#333333; + font :normal 8pt sans-serif; +} +.module_app_input___gray_readOnly +{ + padding:1px; + border:1px solid #AAA; + padding-left:3px; + background: #EBEBE4;/*#FFFFFF url(/images/classic/input_back.gif) repeat-x;*/ + background-position:0px 0px; + color :#333333; + font :normal 8pt sans-serif; +} +.module_ListBoxView +{ + + color: white; + background:#CCDDFF; + padding:1px; + border:1px solid #AAA; + padding-left:3px; + background-position:0px 0px; + font :normal 8pt sans-serif; +} +.module_app_inputHover___gray +{ + border:1px solid #AAA; +} +.module_app_inputPassed___gray +{ + padding:1px; + border:1px solid green; + padding-left:2px; + padding-right:20px; + background: #FFFFFF url(/images/classic/ok.png) no-repeat; + background-position:99% 50%; + color :#000000; + font :normal 8pt sans-serif; +} +.module_app_inputFailed___gray +{ + border:1px solid red; + padding:1px; + padding-left:2px; + padding-right:20px; + background: #FFFFFF url(/images/classic/failed.png) no-repeat; + background-position:99% 50%; + color :#000000; + font :normal 8pt sans-serif; +} +.module_app_inputFailed_ie___gray +{ + filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=-1, OffY=-1,color=red) progid:DXImageTransform.Microsoft.dropshadow(OffX=1, OffY=1,color=red); +} +.module_app_inputPassed_ie___gray +{ + filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=-1, OffY=-1,color=green) progid:DXImageTransform.Microsoft.dropshadow(OffX=1, OffY=1,color=green); +} +.module_app_inputDisabled___gray +{ + background-color:#f0f0f0; + color:#9f9f9f; +} + +/* Theme leimnud.module.app.input END */ +.module_app_select___gray +{ + font:normal 8pt Tahoma,Sans-serif,MiscFi + border-top-style: double; +xed; + width:100%; +} + +/* Theme leimnud.module.rss BEGIN */ + + +.module_rss_container___gray, .module_rss_title___gray, .module_rss_header___gray, .module_rss_separator___gray, .module_rss_item___gray +{ + border:1px solid #AAA; + text-align:justify; +} + +.module_rss_title___gray, .module_rss_header___gray, .module_rss_itemHeader___gray +{ + background :url(/images/classic/grid.title.gray.gif); +} +.module_rss_itemContainer___gray +{ + border-top:1px solid #cbcbcb; + overflow:hidden; + padding:2px; + background-color:#EEE; + height:1px; +} +.module_rss_container___gray, .module_rss_separator_gray +{ + background-color:#DFDFDF; +} +.module_rss_container___gray +{ + padding:3px; + font:normal 8pt Tahoma,sans-serif,MiscFixed; + width:200px; +} +.module_rss_title___gray +{ + border-bottom-width:0px; + text-align :center; + padding :4px; + color :#000; + cursor :default; + background-position:0px 0px; +} +.module_rss_header___gray +{ + padding:1px; + text-align:right; + border-bottom-width:0px; + background-position:0px -10px; +} +.module_rss_separator___gray +{ + border-bottom-width:0px; + padding:1px; + padding-left:5px; + padding-right:5px; + overflow:hidden; +} +.module_rss_item___gray +{ + border-bottom-width:0px; + overflow:hidden; +} +.module_rss_itemLast___gray +{ + border-bottom-width:1px; +} +.module_rss_itemHeader___gray +{ + padding:5px; + background-position:0px -10px; + position:relative; + cursor:pointer; +} +.module_rss_itemPubDate___gray +{ + color : #808080; + font : normal 7pt Tahoma,sans-serif,MiscFixed; + padding : 5px; +} +.module_rss_itemHr___gray +{ + border-color : #808080; +} +.module_rss_itemTitle___gray +{ + color:#000; +} +.module_rss_itemReaded___gray +{ + color:#7f7f7f; +} +.module_rss_itemOver +{ + background-position:0px -50px; +} +.module_rss_itemButtons___gray +{ + position:absolute; + top:1px; + right:1px; +} +.module_rss_itemDescription___gray +{ + +} +.module_rss_itemLink___gray +{ + text-align:right; + padding-top:10px; +} +/* Theme leimnud.module.rss END */ + +/* toolbar estilo facebook */ + +div#toolbar +{ + position:absolute; + bottom:0px; + width:100%; + height:20px; + z-index:9999999; +} +.toolbar_container +{ + width:100%; + text-align:center; + height:25px; +} +.toolbar_wrapper{ + background-image:url(/images/bar_bg_bw.gif); + background-position:0 -1px; + border:1px solid #B5B5B5; + height:30px; + margin-left:5%; + margin-right:5%; + text-align:left; + padding-top:2px; + padding-bottom:2px; +} +.toolbar_item{ + border-right:1px solid #B5B5B5; + padding-top:3px; + padding-bottom:6px; + padding-right:15px; + padding-left:25px; + position:relative; + display:inline; + text-align:center; +} +.toolbar_item_section{ + position:absolute; + border:1px solid #B5B5B5; + width:150px; + height:300px; + background-color:white; + bottom:21px; + left:-1px; + color:black; + display:none; +} +@media screen + { + div#toolbar + { + position: fixed; + } + /* Don't do this at home */ + * html + { + overflow-y: hidden; + } + * html body + { + overflow-y: auto; + } + * html div#toolbar + { + position: absolute; + } + /* All done. */ + } + + #toolbar a:link,#toolbar a:visited + { + color:#666; + text-decoration:none; + } + #toolbar a:hover{ + color: #000; + } + #toolbar img + { + position:absolute; + left:5px; + top:3px; + } + +/*Botones*/ +.pagedTableDefault .pagedTable .RowLink a,.module_app_button___gray,.button_pm,.module_app_buttonjs___gray,.module_app_buttonDisabled___gray{ + -moz-border-radius:4px;border-radius:4px; + -moz-box-shadow:0 1px 2px rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.2); + background-color:#EEE; + background-image: none; + font-size:10px; + font-weight:400; + text-transform: capitalize; + margin:2px 0; + padding:2px 7px; + text-decoration:none; + line-height: 14px; + font-family: Arial,serif; + border:1px solid #aaa; + background:url("/images/ext/gray/button/btn.gif") repeat-x scroll 0 -1096px transparent; +} +.pagedTableDefault .pagedTable .RowLink a{ + color:#333; + /*cursor:pointer;*/ +} +/*HOVER*/ +.pagedTableDefault .pagedTable .RowLink a:hover,.module_app_button___gray:hover,.button_pm:hover,.module_app_buttonHover___gray, +.module_app_buttonjs___gray.module_app_buttonHover___gray +{ + background-color:#AAA; + border:1px solid #666; + background:url("/images/ext/gray/button/btn.gif") repeat-x scroll 0 -2168px transparent; +} +/*FOCUS*/ +.pagedTableDefault .pagedTable .RowLink a:focus,.module_app_button___gray:focus,.button_pm:focus{ + border:1px solid #45626F; + background:url("/images/ext/gray/button/btn.gif") repeat-x scroll 0 -3240px transparent; +} +/*NO BUTTON*/ +.pagedTableDefault .pagedTable .RowLink a:empty{ + display:none; + margin:0; +} +/*DISABLED*/ +.pagedTableDefault .pagedTable .RowLink a.module_app_buttonDisabled___gray, +.module_app_buttonDisabled___gray +{ + border:1px solid #bbb; + background-position:0 -3240px; + color:#9f9f9f; + cursor:default; +} +.pagedTableDefault .pagedTable .RowLink a.module_app_buttonDisabled___gray:hover, +.module_app_buttonDisabled___gray:hover +{ + background:url("/images/ext/gray/button/btn.gif") repeat-x scroll 0 -3240px transparent; +} + diff --git a/workflow/engine/skinEngine/base/css/style.css b/workflow/engine/skinEngine/base/css/style.css index b4848aa24..2065b751a 100755 --- a/workflow/engine/skinEngine/base/css/style.css +++ b/workflow/engine/skinEngine/base/css/style.css @@ -3149,3 +3149,133 @@ button.x-btn-text:focus,.x-combo-selected{ line-height: normal; } +/** erik: Simplified Stylesheet exteded */ +.ux { + background-color: #FFFFFF; + border-bottom: 1px solid #E8E8E8; + border-radius: 5px 5px 5px 5px; + -webkit-border-bottom-left-radius: 5px; + -webkit-border-bottom-right-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + /*-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.6);*/ + /*-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.6);*/ + min-height: 20px; + padding: 12px; +} + +.ux form button { + -moz-border-bottom-colors: none; + -moz-border-image: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + + background: -moz-linear-gradient(white, #E1E1E1) repeat scroll 0 0 transparent; + background: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#E1E1E1)); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#E1E1E1'); /* IE6,IE7 */ + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#E1E1E1')"; /* IE8 */ + + border-color: -moz-use-text-color -moz-use-text-color #EBEBEB; + border-radius: 4px 4px 4px 4px; + border-style: none none solid; + border-width: medium medium 1px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + color: #333333; + cursor: pointer; + display: inline-block; + font-family: helvetica,arial,freesans,clean,sans-serif; + font-size: 12px; + font-weight: bold; + height: 34px; + margin-left: 1px; + overflow: visible; + padding: 0 13px; + position: relative; + text-shadow: 1px 1px 0 #FFFFFF; + top: 1px; + white-space: nowrap; +} +.ux form button:hover { + background: -moz-linear-gradient(#0CA6DD, #0770A0) repeat scroll 0 0 transparent; + background: -webkit-gradient(linear, 0 0, 0 100%, from(#0CA6DD), to(#0770A0)); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0CA6DD', endColorstr='#0770A0'); /* IE6,IE7 */ + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#0CA6DD', endColorstr='#0770A0')"; /* IE8 */ + + border-bottom-color: #0770A0; + color: #FFFFFF; + text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3); +} + +.ux form input[type="submit"] { + -moz-border-bottom-colors: none; + -moz-border-image: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + + background: -moz-linear-gradient(white, #E1E1E1) repeat scroll 0 0 transparent; + background: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#E1E1E1)); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#E1E1E1'); /* IE6,IE7 */ + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#E1E1E1')"; /* IE8 */ + + border-color: -moz-use-text-color -moz-use-text-color #EBEBEB; + border-radius: 4px 4px 4px 4px; + border-style: none none solid; + border-width: medium medium 1px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + color: #333333; + cursor: pointer; + display: inline-block; + font-family: helvetica,arial,freesans,clean,sans-serif; + font-size: 12px; + font-weight: bold; + height: 34px; + margin-left: 1px; + overflow: visible; + padding: 0 13px; + position: relative; + text-shadow: 1px 1px 0 #FFFFFF; + top: 1px; + white-space: nowrap; +} +.ux form input[type="submit"]:hover { + background: -moz-linear-gradient(#0CA6DD, #0770A0) repeat scroll 0 0 transparent; + background: -webkit-gradient(linear, 0 0, 0 100%, from(#0CA6DD), to(#0770A0)); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0CA6DD', endColorstr='#0770A0'); /* IE6,IE7 */ + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#0CA6DD', endColorstr='#0770A0')"; /* IE8 */ + + border-bottom-color: #0770A0; + color: #FFFFFF; + text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3); +} + +.ux h1 { + -moz-border-bottom-colors: none; + -moz-border-image: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + + background: -moz-linear-gradient(#829AA8, #405A6A) repeat scroll 0 0 transparent; + background: -webkit-gradient(linear, 0 0, 0 100%, from(#829AA8), to(#405A6A)); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#829AA8', endColorstr='#405A6A'); /* IE6,IE7 */ + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#829AA8', endColorstr='#405A6A')"; /* IE8 */ + + border-color: #677C89 #677C89 #6B808D; + border-radius: 3px 3px 0 0; + border-style: solid; + border-width: 1px; + color: #FFFFFF; + font-size: 16px; + font-weight: bold; + margin: 0; + padding: 8px 18px; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.698); + + border-radius: 5px 5px 0px 0px; + -moz-border-radius: 5px 5px 0px 0px; /* Firefox */ + -webkit-border-radius: 5px 5px 0px 0px; /* Safari, Chrome */ +} + + diff --git a/workflow/engine/skinEngine/base/layout.html b/workflow/engine/skinEngine/base/layout.html index e66d2e3df..86dfa14ed 100644 --- a/workflow/engine/skinEngine/base/layout.html +++ b/workflow/engine/skinEngine/base/layout.html @@ -19,7 +19,7 @@ {if $user_logged neq ''} {$msgVer} {if $switch_interface} - + {/if} {$logout}  
diff --git a/workflow/engine/templates/cases/showDebugFrameLoader.php b/workflow/engine/templates/cases/showDebugFrameLoader.php index 9afb60087..1b8bf1a40 100755 --- a/workflow/engine/templates/cases/showDebugFrameLoader.php +++ b/workflow/engine/templates/cases/showDebugFrameLoader.php @@ -1,6 +1,6 @@ diff --git a/workflow/engine/templates/home/applications.html b/workflow/engine/templates/home/applications.html index addac5870..b91250456 100644 --- a/workflow/engine/templates/home/applications.html +++ b/workflow/engine/templates/home/applications.html @@ -1,48 +1,47 @@ - {foreach from=$cases key=id item=APP} -
  • - - - #{$APP.APP_NUMBER} - - - - - - - - - - -

    - - {$APP.APP_TITLE} - -

    -

    {$APP.DEL_DELEGATE_DATE}

    -

    {$APP.APP_PRO_TITLE} -
    {$APP.APP_TAS_TITLE}

    - -
    - {if $APP.NOTES_COUNT neq 0} - {foreach from=$APP.NOTES_LIST key=k item=NOTE} -
    - - - - - -
    - - -

    {$NOTE.USR_FIRSTNAME} {$NOTE.USR_LASTNAME} ({$NOTE.USR_USERNAME})

    -

    {$NOTE.NOTE_CONTENT}
    +{foreach from=$cases key=id item=APP} +
  • + + + #{$APP.APP_NUMBER} + + + + + + + + + + +

    + + {$APP.APP_TITLE} + +

    +

    From {$APP.APP_DEL_PREVIOUS_USER}, send at {$APP.DEL_DELEGATE_DATE}

    +

    {$APP.APP_PRO_TITLE} +
    {$APP.APP_TAS_TITLE}

    + +
    + {if $APP.NOTES_COUNT neq 0} + {foreach from=$APP.NOTES_LIST key=k item=NOTE} +
    + + + + + +
    + + +

    {$NOTE.USR_FIRSTNAME} {$NOTE.USR_LASTNAME} ({$NOTE.USR_USERNAME})

    +

    {$NOTE.NOTE_CONTENT}
    +
    Posted at {$NOTE.NOTE_DATE}
    +
    +
    + {/foreach} + {/if} +
    -
    Posted at {$NOTE.NOTE_DATE}
    -
  • -
    - {/foreach} - {/if} -
    - -
  • - {/foreach} \ No newline at end of file + +{/foreach} \ No newline at end of file diff --git a/workflow/engine/templates/home/index.html b/workflow/engine/templates/home/index.html index 95f55bc68..e16603b02 100644 --- a/workflow/engine/templates/home/index.html +++ b/workflow/engine/templates/home/index.html @@ -4,22 +4,29 @@ + - {literal} + {if $clientBrowser neq 'msie'} - - - - - - {literal} - - - {/literal} - - - - - - - - - - {literal} - - {/literal} - - - \ No newline at end of file diff --git a/workflow/engine/templates/home/indexSingle.html b/workflow/engine/templates/home/indexSingle.html new file mode 100644 index 000000000..b9e78960f --- /dev/null +++ b/workflow/engine/templates/home/indexSingle.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + {literal} + + + + + + {/literal} + + + +
    + + + + + + + {literal} + + {/literal} + + + \ No newline at end of file diff --git a/workflow/engine/templates/home/login_ie.html b/workflow/engine/templates/home/login_ie.html new file mode 100644 index 000000000..5d9ea97a5 --- /dev/null +++ b/workflow/engine/templates/home/login_ie.html @@ -0,0 +1,77 @@ + + + + + + + {literal} + + {/literal} + + + +
    +
    +
    +
    +
    + + + + +
    + + + + + + + + + + + + + + + + +
    Login
    User + +
    Password + +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + + + + diff --git a/workflow/engine/templates/home/login_standard.html b/workflow/engine/templates/home/login_standard.html new file mode 100644 index 000000000..34b6268da --- /dev/null +++ b/workflow/engine/templates/home/login_standard.html @@ -0,0 +1,102 @@ + + + + + + + + {literal} + + {/literal} + + + +
    +
    + +
    +
    + + + + + + diff --git a/workflow/engine/templates/home/noAppsMsg.html b/workflow/engine/templates/home/noAppsMsg.html new file mode 100644 index 000000000..81dd41d07 --- /dev/null +++ b/workflow/engine/templates/home/noAppsMsg.html @@ -0,0 +1,39 @@ + + + + + + + {literal} + + + {/literal} + + + +
    +
    +

    Information

    +

    Thank you for enter to see you Apps.

    +

    You have not pending applications for this time, come back soon.

    +
    + +
    +
    +
    + + + diff --git a/workflow/engine/xmlform/login/newSite.xml b/workflow/engine/xmlform/login/newSite.xml index 86e1f3295..d4e88b6d3 100755 --- a/workflow/engine/xmlform/login/newSite.xml +++ b/workflow/engine/xmlform/login/newSite.xml @@ -70,7 +70,7 @@ */ - data.loader= data.submit.parentNode.appendChild(new DOM('img',{src:'/js/maborak/core/images/loader_B.gif'},{width:22,height:22,position:'relative',display:'block'})); + data.loader= data.submit.parentNode.appendChild(new DOM('img',{src:'/images/classic/loader_B.gif'},{width:22,height:22,position:'relative',display:'block'})); data.loader.setStyle({visibility:'hidden'}); ed = function(mod) diff --git a/workflow/engine/xmlform/login/newSiteAdd.xml b/workflow/engine/xmlform/login/newSiteAdd.xml index fa5097da6..3e2c35862 100755 --- a/workflow/engine/xmlform/login/newSiteAdd.xml +++ b/workflow/engine/xmlform/login/newSiteAdd.xml @@ -88,7 +88,7 @@ */ - data.loader= data.submit.parentNode.appendChild(new DOM('img',{src:'/js/maborak/core/images/loader_B.gif'},{width:22,height:22,position:'relative',display:'block'})); + data.loader= data.submit.parentNode.appendChild(new DOM('img',{src:'/images/classic/loader_B.gif'},{width:22,height:22,position:'relative',display:'block'})); data.loader.setStyle({visibility:'hidden'}); var ed = function(mod) diff --git a/workflow/engine/xmlform/processes/processes_DirectoriesList.xml b/workflow/engine/xmlform/processes/processes_DirectoriesList.xml index 355744e73..8affbb160 100755 --- a/workflow/engine/xmlform/processes/processes_DirectoriesList.xml +++ b/workflow/engine/xmlform/processes/processes_DirectoriesList.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/workflow/engine/xmlform/processes/processes_Edit.html b/workflow/engine/xmlform/processes/processes_Edit.html index c33ed9203..387e1be76 100755 --- a/workflow/engine/xmlform/processes/processes_Edit.html +++ b/workflow/engine/xmlform/processes/processes_Edit.html @@ -39,6 +39,10 @@ {$PRO_SUMMARY_DYNAFORM} {$form.PRO_SUMMARY_DYNAFORM} + + {$PRO_DERIVATION_SCREEN_TPL} + {$form.PRO_DERIVATION_SCREEN_TPL} + {$PRO_DEBUG} {$form.PRO_DEBUG} diff --git a/workflow/engine/xmlform/processes/processes_Edit.xml b/workflow/engine/xmlform/processes/processes_Edit.xml index db6b4afc9..d9e953806 100755 --- a/workflow/engine/xmlform/processes/processes_Edit.xml +++ b/workflow/engine/xmlform/processes/processes_Edit.xml @@ -38,6 +38,14 @@ + + SELECT FILE,NAME FROM _TEMPLATES1 + Derivation Screen Template + + + + + Debug diff --git a/workflow/engine/xmlform/processes/processes_FilesOptions.xml b/workflow/engine/xmlform/processes/processes_FilesOptions.xml index 2603427a0..00bb33469 100755 --- a/workflow/engine/xmlform/processes/processes_FilesOptions.xml +++ b/workflow/engine/xmlform/processes/processes_FilesOptions.xml @@ -1,7 +1,7 @@ - + New diff --git a/workflow/engine/xmlform/tasks/tasks_Definition.xml b/workflow/engine/xmlform/tasks/tasks_Definition.xml index 84f6aa7a2..246154711 100755 --- a/workflow/engine/xmlform/tasks/tasks_Definition.xml +++ b/workflow/engine/xmlform/tasks/tasks_Definition.xml @@ -21,6 +21,13 @@ Variable for Case priority + + SELECT FILE,NAME FROM _TEMPLATES1 + Derivation Screen Template + + + + Starting task diff --git a/workflow/public_html/images/classic/arrowB.gif b/workflow/public_html/images/classic/arrowB.gif new file mode 100644 index 000000000..df4833955 Binary files /dev/null and b/workflow/public_html/images/classic/arrowB.gif differ diff --git a/workflow/public_html/images/classic/failed.png b/workflow/public_html/images/classic/failed.png new file mode 100644 index 000000000..9f9ea2140 Binary files /dev/null and b/workflow/public_html/images/classic/failed.png differ diff --git a/workflow/public_html/images/classic/grid.png b/workflow/public_html/images/classic/grid.png new file mode 100644 index 000000000..ea2f7e31b Binary files /dev/null and b/workflow/public_html/images/classic/grid.png differ diff --git a/workflow/public_html/images/classic/grid.title.gray.gif b/workflow/public_html/images/classic/grid.title.gray.gif new file mode 100644 index 000000000..57bf0477c Binary files /dev/null and b/workflow/public_html/images/classic/grid.title.gray.gif differ diff --git a/workflow/public_html/images/classic/grid.title.green.gif b/workflow/public_html/images/classic/grid.title.green.gif new file mode 100644 index 000000000..cf64b899e Binary files /dev/null and b/workflow/public_html/images/classic/grid.title.green.gif differ diff --git a/workflow/public_html/images/classic/grid.title.greenLight.gif b/workflow/public_html/images/classic/grid.title.greenLight.gif new file mode 100644 index 000000000..08f6d3a3d Binary files /dev/null and b/workflow/public_html/images/classic/grid.title.greenLight.gif differ diff --git a/workflow/public_html/images/classic/grid.title.orange.gif b/workflow/public_html/images/classic/grid.title.orange.gif new file mode 100644 index 000000000..331453529 Binary files /dev/null and b/workflow/public_html/images/classic/grid.title.orange.gif differ diff --git a/workflow/public_html/images/classic/grid.title.violet.gif b/workflow/public_html/images/classic/grid.title.violet.gif new file mode 100644 index 000000000..a4ffb1ba5 Binary files /dev/null and b/workflow/public_html/images/classic/grid.title.violet.gif differ diff --git a/workflow/public_html/images/classic/grid.titlebar.bg1.gif b/workflow/public_html/images/classic/grid.titlebar.bg1.gif new file mode 100644 index 000000000..919a84fec Binary files /dev/null and b/workflow/public_html/images/classic/grid.titlebar.bg1.gif differ diff --git a/workflow/public_html/images/classic/grid.titlebar.bg1.png b/workflow/public_html/images/classic/grid.titlebar.bg1.png new file mode 100644 index 000000000..4583ad160 Binary files /dev/null and b/workflow/public_html/images/classic/grid.titlebar.bg1.png differ diff --git a/workflow/public_html/images/classic/icons.gif b/workflow/public_html/images/classic/icons.gif new file mode 100644 index 000000000..01b1b22c0 Binary files /dev/null and b/workflow/public_html/images/classic/icons.gif differ diff --git a/workflow/public_html/images/classic/info.png b/workflow/public_html/images/classic/info.png new file mode 100644 index 000000000..20ec0be51 Binary files /dev/null and b/workflow/public_html/images/classic/info.png differ diff --git a/workflow/public_html/images/classic/loader_B.gif b/workflow/public_html/images/classic/loader_B.gif new file mode 100644 index 000000000..b36b555b4 Binary files /dev/null and b/workflow/public_html/images/classic/loader_B.gif differ diff --git a/workflow/public_html/images/classic/loader_B_blank.gif b/workflow/public_html/images/classic/loader_B_blank.gif new file mode 100644 index 000000000..e0e6e9760 Binary files /dev/null and b/workflow/public_html/images/classic/loader_B_blank.gif differ diff --git a/workflow/public_html/images/classic/maximizar.gif b/workflow/public_html/images/classic/maximizar.gif new file mode 100644 index 000000000..3f27c677a Binary files /dev/null and b/workflow/public_html/images/classic/maximizar.gif differ diff --git a/workflow/public_html/images/classic/maximizar1.gif b/workflow/public_html/images/classic/maximizar1.gif new file mode 100644 index 000000000..30bc5ecab Binary files /dev/null and b/workflow/public_html/images/classic/maximizar1.gif differ diff --git a/workflow/public_html/images/classic/module.grid/page-first-disabled.gif b/workflow/public_html/images/classic/module.grid/page-first-disabled.gif new file mode 100644 index 000000000..1e02c419f Binary files /dev/null and b/workflow/public_html/images/classic/module.grid/page-first-disabled.gif differ diff --git a/workflow/public_html/images/classic/module.grid/page-first.gif b/workflow/public_html/images/classic/module.grid/page-first.gif new file mode 100644 index 000000000..d84f41a91 Binary files /dev/null and b/workflow/public_html/images/classic/module.grid/page-first.gif differ diff --git a/workflow/public_html/images/classic/module.grid/page-last-disabled.gif b/workflow/public_html/images/classic/module.grid/page-last-disabled.gif new file mode 100644 index 000000000..869706777 Binary files /dev/null and b/workflow/public_html/images/classic/module.grid/page-last-disabled.gif differ diff --git a/workflow/public_html/images/classic/module.grid/page-last.gif b/workflow/public_html/images/classic/module.grid/page-last.gif new file mode 100644 index 000000000..3df5c2ba5 Binary files /dev/null and b/workflow/public_html/images/classic/module.grid/page-last.gif differ diff --git a/workflow/public_html/images/classic/module.grid/page-next-disabled.gif b/workflow/public_html/images/classic/module.grid/page-next-disabled.gif new file mode 100644 index 000000000..90a7756f6 Binary files /dev/null and b/workflow/public_html/images/classic/module.grid/page-next-disabled.gif differ diff --git a/workflow/public_html/images/classic/module.grid/page-next.gif b/workflow/public_html/images/classic/module.grid/page-next.gif new file mode 100644 index 000000000..960163530 Binary files /dev/null and b/workflow/public_html/images/classic/module.grid/page-next.gif differ diff --git a/workflow/public_html/images/classic/module.grid/page-prev-disabled.gif b/workflow/public_html/images/classic/module.grid/page-prev-disabled.gif new file mode 100644 index 000000000..37154d624 Binary files /dev/null and b/workflow/public_html/images/classic/module.grid/page-prev-disabled.gif differ diff --git a/workflow/public_html/images/classic/module.grid/page-prev.gif b/workflow/public_html/images/classic/module.grid/page-prev.gif new file mode 100644 index 000000000..eb70cf8f6 Binary files /dev/null and b/workflow/public_html/images/classic/module.grid/page-prev.gif differ diff --git a/workflow/public_html/images/classic/nc.gif b/workflow/public_html/images/classic/nc.gif new file mode 100644 index 000000000..44ef04f45 Binary files /dev/null and b/workflow/public_html/images/classic/nc.gif differ diff --git a/workflow/public_html/images/classic/nr.gif b/workflow/public_html/images/classic/nr.gif new file mode 100644 index 000000000..cb650024e Binary files /dev/null and b/workflow/public_html/images/classic/nr.gif differ diff --git a/workflow/public_html/images/classic/nr.png b/workflow/public_html/images/classic/nr.png new file mode 100644 index 000000000..287e68f71 Binary files /dev/null and b/workflow/public_html/images/classic/nr.png differ diff --git a/workflow/public_html/images/classic/ok.png b/workflow/public_html/images/classic/ok.png new file mode 100644 index 000000000..4649a2b32 Binary files /dev/null and b/workflow/public_html/images/classic/ok.png differ diff --git a/workflow/public_html/images/classic/panel.bg.title.1x20.gif b/workflow/public_html/images/classic/panel.bg.title.1x20.gif new file mode 100644 index 000000000..5c64ecd53 Binary files /dev/null and b/workflow/public_html/images/classic/panel.bg.title.1x20.gif differ diff --git a/workflow/public_html/images/classic/panel.bg.title.1x23.gif b/workflow/public_html/images/classic/panel.bg.title.1x23.gif new file mode 100644 index 000000000..0f7aa594c Binary files /dev/null and b/workflow/public_html/images/classic/panel.bg.title.1x23.gif differ diff --git a/workflow/public_html/images/classic/panel.bg.title.1x29.gif b/workflow/public_html/images/classic/panel.bg.title.1x29.gif new file mode 100644 index 000000000..7e33d6c3c Binary files /dev/null and b/workflow/public_html/images/classic/panel.bg.title.1x29.gif differ diff --git a/workflow/public_html/images/classic/panel.bg.title.gif b/workflow/public_html/images/classic/panel.bg.title.gif new file mode 100644 index 000000000..4f29de61f Binary files /dev/null and b/workflow/public_html/images/classic/panel.bg.title.gif differ diff --git a/workflow/public_html/images/classic/panel.bg.title.png b/workflow/public_html/images/classic/panel.bg.title.png new file mode 100644 index 000000000..179e2be08 Binary files /dev/null and b/workflow/public_html/images/classic/panel.bg.title.png differ diff --git a/workflow/public_html/images/classic/panel.close.static.gif b/workflow/public_html/images/classic/panel.close.static.gif new file mode 100644 index 000000000..e221ef4d9 Binary files /dev/null and b/workflow/public_html/images/classic/panel.close.static.gif differ diff --git a/workflow/public_html/images/classic/panel.resize.11x11.png b/workflow/public_html/images/classic/panel.resize.11x11.png new file mode 100644 index 000000000..b525ead5e Binary files /dev/null and b/workflow/public_html/images/classic/panel.resize.11x11.png differ diff --git a/workflow/public_html/images/classic/panel.tabSelected.1x25.gif b/workflow/public_html/images/classic/panel.tabSelected.1x25.gif new file mode 100644 index 000000000..db6c4765b Binary files /dev/null and b/workflow/public_html/images/classic/panel.tabSelected.1x25.gif differ diff --git a/workflow/public_html/images/classic/panel.tabSelected.1x3.gif b/workflow/public_html/images/classic/panel.tabSelected.1x3.gif new file mode 100644 index 000000000..ec327a660 Binary files /dev/null and b/workflow/public_html/images/classic/panel.tabSelected.1x3.gif differ diff --git a/workflow/public_html/images/classic/question.png b/workflow/public_html/images/classic/question.png new file mode 100644 index 000000000..8e6762fa4 Binary files /dev/null and b/workflow/public_html/images/classic/question.png differ diff --git a/workflow/public_html/images/classic/roll.static.gif b/workflow/public_html/images/classic/roll.static.gif new file mode 100644 index 000000000..4588306f6 Binary files /dev/null and b/workflow/public_html/images/classic/roll.static.gif differ diff --git a/workflow/public_html/images/classic/separator.down.gif b/workflow/public_html/images/classic/separator.down.gif new file mode 100644 index 000000000..9358f51a7 Binary files /dev/null and b/workflow/public_html/images/classic/separator.down.gif differ diff --git a/workflow/public_html/images/classic/separator.up.gif b/workflow/public_html/images/classic/separator.up.gif new file mode 100644 index 000000000..4e1727f85 Binary files /dev/null and b/workflow/public_html/images/classic/separator.up.gif differ diff --git a/workflow/public_html/images/classic/separatorTable.gif b/workflow/public_html/images/classic/separatorTable.gif new file mode 100644 index 000000000..f5724af18 Binary files /dev/null and b/workflow/public_html/images/classic/separatorTable.gif differ diff --git a/workflow/public_html/images/classic/silverBackgroundMenuSelected.jpg b/workflow/public_html/images/classic/silverBackgroundMenuSelected.jpg new file mode 100644 index 000000000..530884228 Binary files /dev/null and b/workflow/public_html/images/classic/silverBackgroundMenuSelected.jpg differ diff --git a/workflow/public_html/images/classic/silverBackgroundSubMenu.jpg b/workflow/public_html/images/classic/silverBackgroundSubMenu.jpg new file mode 100644 index 000000000..ff2c58d45 Binary files /dev/null and b/workflow/public_html/images/classic/silverBackgroundSubMenu.jpg differ diff --git a/workflow/public_html/images/classic/silverBackgroundTableTitle.jpg b/workflow/public_html/images/classic/silverBackgroundTableTitle.jpg new file mode 100644 index 000000000..e8357f9b5 Binary files /dev/null and b/workflow/public_html/images/classic/silverBackgroundTableTitle.jpg differ diff --git a/workflow/public_html/images/classic/star.gif b/workflow/public_html/images/classic/star.gif new file mode 100644 index 000000000..32633e30d Binary files /dev/null and b/workflow/public_html/images/classic/star.gif differ diff --git a/workflow/public_html/images/classic/star_s.gif b/workflow/public_html/images/classic/star_s.gif new file mode 100644 index 000000000..084299864 Binary files /dev/null and b/workflow/public_html/images/classic/star_s.gif differ diff --git a/workflow/public_html/images/classic/star_u.gif b/workflow/public_html/images/classic/star_u.gif new file mode 100644 index 000000000..71e901135 Binary files /dev/null and b/workflow/public_html/images/classic/star_u.gif differ diff --git a/workflow/public_html/images/classic/tabs_li_bg.gif b/workflow/public_html/images/classic/tabs_li_bg.gif new file mode 100644 index 000000000..79be4504b Binary files /dev/null and b/workflow/public_html/images/classic/tabs_li_bg.gif differ diff --git a/workflow/public_html/images/simplified/logout-grey.png b/workflow/public_html/images/simplified/logout-grey.png new file mode 100644 index 000000000..9c80c64c6 Binary files /dev/null and b/workflow/public_html/images/simplified/logout-grey.png differ diff --git a/workflow/public_html/images/simplified/titlebar.png b/workflow/public_html/images/simplified/titlebar.png new file mode 100644 index 000000000..e07070b50 Binary files /dev/null and b/workflow/public_html/images/simplified/titlebar.png differ diff --git a/workflow/public_html/sysGeneric.php b/workflow/public_html/sysGeneric.php index 795ae6749..c752d0766 100755 --- a/workflow/public_html/sysGeneric.php +++ b/workflow/public_html/sysGeneric.php @@ -517,19 +517,31 @@ $RBAC->loadUserRolePermission( $RBAC->sSystem, $_SESSION['USER_LOGGED'] , PATH_DATA, session_id()); } else { + // this is the blank list to allow execute scripts with no login (without session started) + $noLoginFiles = array(); + $noLoginFiles[] = 'login'; + $noLoginFiles[] = 'authentication'; + $noLoginFiles[] = 'login_Ajax'; + $noLoginFiles[] = 'dbInfo'; + $noLoginFiles[] = 'sysLoginVerify'; + $noLoginFiles[] = 'processes_Ajax'; + $noLoginFiles[] = 'updateTranslation'; + $noLoginFiles[] = 'autoinstallProcesses'; + $noLoginFiles[] = 'autoinstallPlugins'; + $noLoginFiles[] = 'heartbeatStatus'; + $noLoginFiles[] = 'showLogoFile'; + $noLoginFiles[] = 'forgotPassword'; + $noLoginFiles[] = 'retrivePassword'; + $noLoginFiles[] = 'services'; + $noLoginFiles[] = 'tracker'; + $noLoginFiles[] = 'defaultAjaxDynaform'; + $noLoginFiles[] = 'dynaforms_checkDependentFields'; + $noLoginFiles[] = 'cases_ShowDocument'; + //This sentence is used when you lost the Session - if ( SYS_TARGET != 'authentication' and SYS_TARGET != 'login' and SYS_TARGET != 'login_Ajax' - and SYS_TARGET != 'dbInfo' and SYS_TARGET != 'sysLoginVerify' and SYS_TARGET != 'processes_Ajax' - and SYS_TARGET != 'updateTranslation' - and SYS_TARGET != 'autoinstallProcesses' - and SYS_TARGET != 'autoinstallPlugins' - and SYS_TARGET != 'heartbeatStatus' - and SYS_TARGET != 'showLogoFile' - and SYS_TARGET != 'forgotPassword' - and SYS_TARGET != 'retrivePassword' - and SYS_COLLECTION != 'services' and SYS_COLLECTION != 'tracker' and $collectionPlugin != 'services' - and $bWE != true and SYS_TARGET != 'defaultAjaxDynaform' and SYS_TARGET != 'dynaforms_checkDependentFields' and SYS_TARGET != 'cases_ShowDocument') { + if ( !in_array(SYS_TARGET, $noLoginFiles) && $bWE != true && $collectionPlugin != 'services') { $bRedirect = true; + if (isset($_GET['sid'])) { G::LoadClass('sessions'); $oSessions = new Sessions(); @@ -545,11 +557,19 @@ } } if ($bRedirect) { - if (empty($_POST)) { - header('location: ' . SYS_URI . 'login/login?u=' . urlencode($_SERVER['REQUEST_URI'])); + //g::pr($_SERVER); die; + if (strpos($_SERVER['REQUEST_URI'], '/home') !== false) { + $loginUrl = 'home/login'; } else { - header('location: ' . SYS_URI . 'login/login'); + $loginUrl = 'login/login'; + } + + if (empty($_POST)) { + header('location: ' . SYS_URI . $loginUrl . '?u=' . urlencode($_SERVER['REQUEST_URI'])); + } + else { + header('location: ' . SYS_URI . $loginUrl); } die(); }