echo $flag;
} else {
    G::LoadClass("processMap");
    $response = array();
    try {
        $oTrigger = new Triggers();
        $oProcessMap = new processMap(new DBConnection());
        if (isset($_POST['form'])) {
            $value = $_POST['form'];
        } else {
            $value = $_POST;
        }
        /*----------------------------------********---------------------------------*/
        $swCreate = true;
        if ($value['TRI_UID'] != '') {
            $oTrigger->load($value['TRI_UID']);
        } else {
            $oTrigger->create($value);
            $value['TRI_UID'] = $oTrigger->getTriUid();
            $swCreate = false;
        }
        $oTrigger->update($value);
        if ($swCreate) {
            //Add Audit Log
            $fields = $oTrigger->load($value['TRI_UID']);
            $description = "Trigger Name: " . $fields['TRI_TITLE'] . ", Trigger Uid: " . $value['TRI_UID'];
            if (isset($fields['TRI_DESCRIPTION'])) {
                $description .= ", Description: " . $fields['TRI_DESCRIPTION'];
            }
            if (isset($value["TRI_WEBBOT"])) {
                $description .= ", [EDIT CODE]";
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 */
if (($RBAC_Response = $RBAC->userCanAccess("PM_FACTORY")) != 1) {
    return $RBAC_Response;
}
require_once 'classes/model/Triggers.php';
if (isset($_GET['TRI_UID'])) {
    $oTrigger = new Triggers();
    // check if its necessary bypass the wizard editor
    if (isset($_GET['BYPASS']) && $_GET['BYPASS'] == '1') {
        $editWizardSource = true;
    } else {
        $editWizardSource = false;
    }
    $aFields = $oTrigger->load($_GET['TRI_UID']);
    $aTriggerData = unserialize($aFields['TRI_PARAM']);
    // if trigger has been created with the wizard the TRI_PARAM field cant be empty
    if ($aFields['TRI_PARAM'] != '' && !$editWizardSource) {
        $aTriggerData = unserialize($aFields['TRI_PARAM']);
        // if the trigger has been modified manually, it cant be edited with the wizard.
        if (G::encryptOld($aFields['TRI_WEBBOT']) == $aTriggerData['hash']) {
            $triUid = $_GET['TRI_UID'];
            $STEP_UID = isset($_GET['STEP_UID']) ? $_GET['STEP_UID'] : '';
            $ST_TYPE = isset($_GET['ST_TYPE']) ? $_GET['ST_TYPE'] : '';
            $_GET = $aTriggerData['params'];
            $_GET['TRI_UID'] = $triUid;
            $_GET['PRO_UID'] = $aFields['PRO_UID'];
            $_GET['STEP_UID'] = $STEP_UID;
            $_GET['ST_TYPE'] = $ST_TYPE;
            require_once 'triggers_EditWizard.php';
Beispiel #3
0
     // unescape the slashes
     $result = $tmpData;
     echo $result;
     break;
 case 'getTriggersList':
     $rows = $oProcessMap->getExtTriggersList($start, $limit, $_GET['pid']);
     $result['totalCount'] = $oProcessMap->getAllTriggersCount();
     array_shift($rows);
     $result['data'] = $rows;
     print G::json_encode($result);
     break;
 case 'editTriggers':
     require_once 'classes/model/Triggers.php';
     if (isset($_GET['TRI_UID'])) {
         $oTrigger = new Triggers();
         $rows = $oTrigger->load($_GET['TRI_UID']);
     }
     $tmpData = G::json_encode($rows);
     $tmpData = str_replace("\\/", "/", '{success:true,data:' . $tmpData . '}');
     // unescape the slashes
     $result = $tmpData;
     echo $result;
     break;
 case 'getCaseTracker':
     //$rows = $oProcessMap->caseTracker($_GET['pid']);
     $oCaseTracker = new CaseTracker();
     $rows = $oCaseTracker->load($_GET['pid']);
     $tmpData = G::json_encode($rows);
     $tmpData = str_replace("\\/", "/", '{success:true,data:' . $tmpData . '}');
     // unescape the slashes
     $result = $tmpData;
Beispiel #4
0
 * ProcessMaker Open Source Edition
 * Copyright (C) 2004 - 2008 Colosa Inc.23
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 */
if (($RBAC_Response = $RBAC->userCanAccess("PM_FACTORY")) != 1) {
    return $RBAC_Response;
}
require_once 'classes/model/Triggers.php';
$oTrigger = new Triggers();
if ($_POST['form']['TRI_UID'] != '') {
    $oTrigger->load($_POST['form']['TRI_UID']);
} else {
    $oTrigger->create($_POST['form']);
    $_POST['form']['TRI_UID'] = $oTrigger->getTriUid();
}
$oTrigger->update($_POST['form']);
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 */
if (($RBAC_Response = $RBAC->userCanAccess("PM_FACTORY")) != 1) {
    return $RBAC_Response;
}
require_once 'classes/model/Triggers.php';
$oTrigger = new Triggers();
if ($_POST['form']['TRI_UID'] != '') {
    $oTrigger->load($_POST['form']['TRI_UID']);
} else {
    $oTrigger->create($_POST['form']);
    $_POST['form']['TRI_UID'] = $oTrigger->getTriUid();
}
$oTrigger->update($_POST['form']);
$triggerFields = $oTrigger->load($_POST['form']['TRI_UID']);
$proUid = $triggerFields['PRO_UID'];
$infoProcess = new Process();
$resultProcess = $infoProcess->load($proUid);
G::auditLog('EditEvent', 'Save trigger from event (' . $_POST['form']['TRI_UID'] . ') in process "' . $resultProcess['PRO_TITLE'] . '"');
 public function getExtTriggersList($start, $limit, $sProcessUID = '')
 {
     $sDelimiter = DBAdapter::getStringDelimiter();
     $oCriteria = new Criteria('workflow');
     $oCriteria->addSelectColumn(TriggersPeer::TRI_UID);
     $oCriteria->addSelectColumn(TriggersPeer::PRO_UID);
     $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID);
     $this->tmpCriteria = clone $oCriteria;
     $oCriteria->addAsColumn('TRI_TITLE', 'C1.CON_VALUE');
     $oCriteria->addAsColumn('TRI_DESCRIPTION', 'C2.CON_VALUE');
     $oCriteria->addAlias('C1', 'CONTENT');
     $oCriteria->addAlias('C2', 'CONTENT');
     $aConditions = array();
     $aConditions[] = array(TriggersPeer::TRI_UID, 'C1.CON_ID');
     $aConditions[] = array('C1.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
     $aConditions[] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
     $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
     $aConditions = array();
     $aConditions[] = array(TriggersPeer::TRI_UID, 'C2.CON_ID');
     $aConditions[] = array('C2.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
     $aConditions[] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
     $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
     $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID);
     $oCriteria->addAscendingOrderByColumn('TRI_TITLE');
     if ($start != '') {
         $oCriteria->setOffset($start);
     }
     if ($limit != '') {
         $oCriteria->setLimit($limit);
     }
     $oDataset = TriggersPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $triggersArray = "";
     $triggersArray[] = array('TRI_UID' => 'char', 'PRO_UID' => 'char', 'TRI_TITLE' => 'char', 'TRI_DESCRIPTION' => 'char');
     while ($aRow = $oDataset->getRow()) {
         if ($aRow['TRI_TITLE'] == null || $aRow['TRI_TITLE'] == "") {
             // There is no translation for this Trigger name, try to get/regenerate the label
             $triggerO = new Triggers();
             $triggerObj = $triggerO->load($aRow['TRI_UID']);
             $aRow['TRI_TITLE'] = $triggerObj['TRI_TITLE'];
             $aRow['TRI_DESCRIPTION'] = $triggerObj['TRI_DESCRIPTION'];
         }
         $triggersArray[] = $aRow;
         $oDataset->next();
     }
     return $triggersArray;
 }
Beispiel #7
0
        }
    }
    print $flag;
    //print'krlos';return ;
} else {
    try {
        $oTrigger = new Triggers();
        G::LoadClass('processMap');
        $oProcessMap = new processMap(new DBConnection());
        if (isset($_POST['form'])) {
            $value = $_POST['form'];
        } else {
            $value = $_POST;
        }
        if ($value['TRI_UID'] != '') {
            $oTrigger->load($value['TRI_UID']);
        } else {
            $oTrigger->create($value);
            $value['TRI_UID'] = $oTrigger->getTriUid();
        }
        //print_r($_POST['form']);die;
        $oTrigger->update($value);
        if (!isset($_POST['mode'])) {
            $oProcessMap->triggersList($value['PRO_UID']);
        }
        $result->success = true;
        $result->msg = G::LoadTranslation('ID_TRIGGERS_SAVED');
    } catch (Exception $e) {
        $result->success = false;
        $result->msg = $e->getMessage();
    }
Beispiel #8
0
     $cont = Content::addContent('TAS_TITLE', '', $_POST['TAS_PARENT'], $lang, $_POST['SPROCESS_NAME']);
     break;
 case 'subprocessProperties':
     require_once 'classes/model/Content.php';
     $lang = defined('SYS_LANG') ? SYS_LANG : 'en';
     //$cont = Content::addContent( 'SP_TITLE', '', $_POST['form']['SP_UID'], $lang, $_POST['form']['SPROCESS_NAME'] );
     $cont = Content::addContent('TAS_TITLE', '', $_POST['TAS_PARENT'], $lang, $_POST['SPROCESS_NAME']);
     break;
 case 'deleteTriggers':
     try {
         require_once 'classes/model/Triggers.php';
         require_once 'classes/model/StepTrigger.php';
         $TRI_UIDS = explode(',', $_POST['TRI_UID']);
         foreach ($TRI_UIDS as $i => $TRI_UID) {
             $oTrigger = new Triggers();
             $triggerObj = $oTrigger->load($TRI_UID);
             $oTrigger->remove($TRI_UID);
             $oStepTrigger = new StepTrigger();
             $oStepTrigger->removeTrigger($TRI_UID);
         }
         $result->success = true;
         $result->message = G::LoadTranslation('ID_TRIGGERS_REMOVED');
     } catch (Exception $e) {
         $result->success = false;
         $result->message = $e->getMessage();
     }
     print G::json_encode($result);
     break;
 case 'getOutputDocsTemplates':
     require_once 'classes/model/OutputDocument.php';
     $ooutputDocument = new OutputDocument();
 function LoadTrigger($data, $fields)
 {
     try {
         $Trigger = new Triggers();
         $result = $Trigger->load($fields['TRI_UID']);
         return $result;
     } catch (Exception $e) {
         return array('Exception!! ' => $e->getMessage());
     }
 }
Beispiel #10
0
 /**
  * Save Data for Trigger
  * @var string $sProcessUID. Uid for Process
  * @var string $dataTrigger. Data for Trigger
  * @var string $create. Create o Update Trigger
  * @var string $sTriggerUid. Uid for Trigger
  *
  * @author Brayan Pereyra (Cochalo) <*****@*****.**>
  * @copyright Colosa - Bolivia
  *
  * @return array
  */
 public function saveTrigger($sProcessUID = '', $dataTrigger = array(), $create = false, $sTriggerUid = '')
 {
     if ($sProcessUID == '' || count($dataTrigger) == 0) {
         return false;
     }
     $dataTrigger = array_change_key_case($dataTrigger, CASE_UPPER);
     if ($create && isset($dataTrigger['TRI_UID'])) {
         unset($dataTrigger['TRI_UID']);
     }
     $dataTrigger = (array) $dataTrigger;
     $dataTrigger['TRI_TYPE'] = 'SCRIPT';
     if (isset($dataTrigger['TRI_TITLE'])) {
         if (!$this->verifyNameTrigger($sProcessUID, $dataTrigger['TRI_TITLE'], $sTriggerUid)) {
             throw new \Exception(\G::LoadTranslation("ID_CANT_SAVE_TRIGGER"));
         }
     }
     /*----------------------------------********---------------------------------*/
     $dataTrigger['PRO_UID'] = $sProcessUID;
     $oTrigger = new \Triggers();
     if ($create) {
         $oTrigger->create($dataTrigger);
         $dataTrigger['TRI_UID'] = $oTrigger->getTriUid();
     }
     $oTrigger->update($dataTrigger);
     if ($create) {
         $dataResp = $oTrigger->load($dataTrigger['TRI_UID']);
         $dataResp = array_change_key_case($dataResp, CASE_LOWER);
         if (isset($dataResp['pro_uid'])) {
             unset($dataResp['pro_uid']);
         }
         return $dataResp;
     }
     return array();
 }
                        $option = floatval($aDataTriggers[$sOptionTrigger]);
                        break;
                    default:
                        $option = is_numeric($aDataTriggers[$sOptionTrigger]) || is_bool($aDataTriggers[$sOptionTrigger]) ? trim($aDataTriggers[$sOptionTrigger]) : strstr($aDataTriggers[$sOptionTrigger], "array") ? trim($aDataTriggers[$sOptionTrigger]) : '"' . trim($aDataTriggers[$sOptionTrigger]) . '"';
                        break;
                }
            }
        } else {
            $option = "' '";
        }
        $methodParamsFinal[] = $option;
    }
    $i++;
}
$sPMfunction .= isset($aDataTriggers['TRI_ANSWER']) && $aDataTriggers['TRI_ANSWER'] != '' ? $aDataTriggers['TRI_ANSWER'] . " = " : "";
$sPMfunction .= $aDataTriggers['PMFUNTION_NAME'] . " (" . implode(",", $methodParamsFinal) . ");";
//Create Trigger
$aDataTriggers['TRI_WEBBOT'] = $sPMfunction;
$aDataTriggersParams = array();
$aDataTriggersParams['hash'] = G::encryptOld($sPMfunction);
$aDataTriggersParams['params'] = $aDataTriggers;
$aDataTriggers['TRI_PARAM'] = serialize($aDataTriggersParams);
//$oTrigger->create ( $aDataTriggers );
$aDataTriggerLoaded = $oTrigger->load($triUid);
//var_dump($aDataTriggerLoaded);
//die;
//Update Info
$aDataTriggers['TRI_UID'] = $oTrigger->getTriUid();
$oTrigger->update($aDataTriggers);
//Update Trigger Array
$oProcessMap->triggersList($aDataTriggers['PRO_UID']);
Beispiel #12
0
<?php

if (($RBAC_Response = $RBAC->userCanAccess("PM_FACTORY")) != 1) {
    return $RBAC_Response;
}
require_once "classes/model/Triggers.php";
$arrayField = array();
$arrayField["LANG"] = SYS_LANG;
$arrayField["PRO_UID"] = $_GET["PRO_UID"];
$arrayField["TRI_TYPE"] = "SCRIPT";
if (isset($_GET["TRI_UID"]) && !empty($_GET["TRI_UID"])) {
    $oTrigger = new Triggers();
    $arrayField = $oTrigger->load($_GET["TRI_UID"]);
}
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent("xmlform", "xmlform", "triggers/triggerCopy", "", $arrayField, "../triggers/triggers_Save");
$oHeadPublisher =& headPublisher::getSingleton();
//$oHeadPublisher->addScriptFile('/js/codemirror/js/codemirror.js', 1);
$oHeadPublisher->addScriptFile('/js/codemirror/lib/codemirror.js', 1);
$oHeadPublisher->addScriptFile("/js/codemirror/addon/edit/matchbrackets.js", 1);
$oHeadPublisher->addScriptFile("/js/codemirror/mode/htmlmixed/htmlmixed.js", 1);
$oHeadPublisher->addScriptFile("/js/codemirror/mode/xml/xml.js", 1);
$oHeadPublisher->addScriptFile("/js/codemirror/mode/javascript/javascript.js", 1);
$oHeadPublisher->addScriptFile("/js/codemirror/mode/css/css.js", 1);
$oHeadPublisher->addScriptFile("/js/codemirror/mode/clike/clike.js", 1);
$oHeadPublisher->addScriptFile("/js/codemirror/mode/php/php.js", 1);
G::RenderPage("publish", "raw");
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 */
if (($RBAC_Response = $RBAC->userCanAccess("PM_FACTORY")) != 1) {
    return $RBAC_Response;
}
try {
    require_once 'classes/model/Triggers.php';
    $oTrigger = new Triggers();
    $triggerObj = $oTrigger->load($_POST['TRI_UID']);
    $oTrigger->remove($_POST['TRI_UID']);
    require_once 'classes/model/StepTrigger.php';
    $oStepTrigger = new StepTrigger();
    $oStepTrigger->removeTrigger($_POST['TRI_UID']);
    $result->success = true;
    $result->msg = G::LoadTranslation('ID_TRIGGERS_REMOVED');
} catch (Exception $e) {
    $result->success = false;
    $result->msg = $e->getMessage();
}
print G::json_encode($result);
Beispiel #14
0
 function update($aData)
 {
     $oConnection = Propel::getConnection(EventPeer::DATABASE_NAME);
     try {
         $oEvent = EventPeer::retrieveByPK($aData['EVN_UID']);
         if (!is_null($oEvent)) {
             //$oEvent->setProUid( $aData['PRO_UID'] );
             if (isset($aData['EVN_RELATED_TO'])) {
                 $oEvent->setEvnRelatedTo($aData['EVN_RELATED_TO']);
                 if ($aData['EVN_RELATED_TO'] == 'SINGLE') {
                     if (isset($aData['TAS_UID']) && $aData['TAS_UID'] != '') {
                         $oEvent->setTasUid($aData['TAS_UID']);
                     }
                     $oEvent->setEvnTasUidTo('');
                     $oEvent->setEvnTasUidFrom('');
                 } else {
                     $oEvent->setTasUid('');
                     if (isset($aData['EVN_TAS_UID_TO'])) {
                         $oEvent->setEvnTasUidTo($aData['EVN_TAS_UID_TO']);
                     }
                     if (isset($aData['EVN_TAS_UID_FROM'])) {
                         $oEvent->setEvnTasUidFrom($aData['EVN_TAS_UID_FROM']);
                     }
                 }
             }
             if (isset($aData['EVN_POSX'])) {
                 $oEvent->setEvnPosx($aData['EVN_POSX']);
             }
             if (isset($aData['EVN_POSY'])) {
                 $oEvent->setEvnPosy($aData['EVN_POSY']);
             }
             if (isset($aData['EVN_TAS_ESTIMATED_DURATION'])) {
                 $oEvent->setEvnTasEstimatedDuration($aData['EVN_TAS_ESTIMATED_DURATION']);
             }
             if (isset($aData['EVN_WHEN_OCCURS'])) {
                 $oEvent->setEvnWhenOccurs($aData['EVN_WHEN_OCCURS']);
             }
             if (isset($aData['EVN_STATUS'])) {
                 $oEvent->setEvnStatus($aData['EVN_STATUS']);
             }
             if (isset($aData['EVN_WHEN'])) {
                 $oEvent->setEvnWhen($aData['EVN_WHEN']);
             }
             if (isset($aData['TRI_UID'])) {
                 $oEvent->setTriUid($aData['TRI_UID']);
             }
             if (isset($aData['EVN_TYPE'])) {
                 $oEvent->setEvnType($aData['EVN_TYPE']);
             }
             if (isset($aData['EVN_CONDITIONS'])) {
                 $oEvent->setEvnConditions($aData['EVN_CONDITIONS']);
             }
             if (isset($aData['EVN_ACTION'])) {
                 $oEvent->setEvnAction($aData['EVN_ACTION']);
             }
             //if ( isset ($aData['ENV_MAX_ATTEMPTS'] )) $oEvent->setEvnMaxAttempts( 3 );
             if (isset($aData['EVN_ACTION_PARAMETERS']) && $aData['EVN_ACTION_PARAMETERS'] != 0) {
                 $oTP = new TemplatePower(PATH_TPL . 'events' . PATH_SEP . 'sendMessage.tpl');
                 $oTP->prepare();
                 $oTP->assign('from', '*****@*****.**');
                 $oTP->assign('subject', addslashes($aData['EVN_ACTION_PARAMETERS']['SUBJECT']));
                 $oTP->assign('template', $aData['EVN_ACTION_PARAMETERS']['TEMPLATE']);
                 $oTP->assign('timestamp', date("l jS \\of F Y h:i:s A"));
                 $recipientTO = implode(',', $aData['EVN_ACTION_PARAMETERS']['TO']);
                 $recipientCC = implode(',', $aData['EVN_ACTION_PARAMETERS']['CC']);
                 $recipientBCC = implode(',', $aData['EVN_ACTION_PARAMETERS']['BCC']);
                 $oTP->assign('TO', addslashes($recipientTO));
                 $oTP->assign('CC', addslashes($recipientCC));
                 $oTP->assign('BCC', addslashes($recipientBCC));
                 $sTrigger = $oTP->getOutputContent();
                 $oTrigger = new Triggers();
                 $aTrigger = $oTrigger->load($oEvent->getTriUid());
                 $aTrigger['TRI_WEBBOT'] = $sTrigger;
                 $oTrigger->update($aTrigger);
                 $oParameters = new StdClass();
                 $oParameters->hash = md5($sTrigger);
                 $oParameters->SUBJECT = $aData['EVN_ACTION_PARAMETERS']['SUBJECT'];
                 $oParameters->TO = $aData['EVN_ACTION_PARAMETERS']['TO'];
                 $oParameters->CC = $aData['EVN_ACTION_PARAMETERS']['CC'];
                 $oParameters->BCC = $aData['EVN_ACTION_PARAMETERS']['BCC'];
                 $oParameters->TEMPLATE = $aData['EVN_ACTION_PARAMETERS']['TEMPLATE'];
                 //$oParameters->TRI_UID  = $sTrigger->getTriUid();
                 $oEvent->setEvnActionParameters(serialize($oParameters));
             }
             if ($oEvent->validate()) {
                 //start the transaction
                 $oConnection->begin();
                 if (array_key_exists('EVN_DESCRIPTION', $aData)) {
                     $oEvent->setEvnDescription($aData['EVN_DESCRIPTION']);
                 }
                 $iResult = $oEvent->save();
                 $oConnection->commit();
                 return $iResult;
             } else {
                 $sMessage = '';
                 $aValidationFailures = $oEvent->getValidationFailures();
                 foreach ($aValidationFailures as $oValidationFailure) {
                     $sMessage .= $oValidationFailure->getMessage() . '<br />';
                 }
                 throw new Exception('The registry cannot be updated!<br />' . $sMessage);
             }
         } else {
             throw new Exception('This row doesn\'t exist!');
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
    die;
}
if (isset($_SESSION['EVN_UID'])) {
    $evnUid = $_SESSION['EVN_UID'];
    unset($_SESSION['EVN_UID']);
} else {
    $evnUid = $_GET['EVN_UID'];
}
require_once 'classes/model/Event.php';
require_once 'classes/model/Triggers.php';
$oEvent = new Event();
$oTrigger = new Triggers();
$aFields = $oEvent->load($evnUid);
$parameters = unserialize($oEvent->getEvnActionParameters());
//g::pr($parameters); die;
$aTrigger = $oTrigger->load($aFields['TRI_UID']);
$hash = md5($oTrigger->getTriWebbot());
//var_dump($hash,$parameters->hash);die;
//if the hash is different, the script was edited , so we will show the trigger editor.
if (isset($parameters->hash) && $hash != $parameters->hash || $aFields['EVN_ACTION'] == 'EXECUTE_TRIGGER' || $aFields['EVN_ACTION'] == 'EXECUTE_CONDITIONAL_TRIGGER') {
    $oTriggerParams = unserialize($aTrigger['TRI_PARAM']);
    // check again a hash, this time to check the trigger itself integrity
    if ($oTriggerParams['hash'] != $hash) {
        // if has changed edit manually
        G::LoadClass('xmlfield_InputPM');
        $G_PUBLISH = new Publisher();
        $G_PUBLISH->AddContent('xmlform', 'xmlform', 'triggers/triggersNarrowEdit', '', $aTrigger, '../events/triggersSave');
        G::RenderPage('publish', 'raw');
        die;
    } else {
        // if not launch the wizard view.
Beispiel #16
0
     $aFields = array('STEP_UID' => $aData['STEP_UID'], 'TAS_UID' => $_SESSION['TASK'], 'TRI_UID' => $aData['TRI_UID'], 'ST_TYPE' => $aData['ST_TYPE']);
     $oStepTrigger = new StepTrigger();
     $oStepTrigger->create($aFields);
     $aFields['ST_CONDITION'] = $aData['ST_CONDITION'];
     $aFields['ST_POSITION'] = $oStepTrigger->getNextPosition($aData['STEP_UID'], $aData['ST_TYPE']) - 1;
     $oStepTrigger->update($aFields);
     break;
 case 'editTriggerCondition':
     require_once 'classes/model/Step.php';
     require_once 'classes/model/Triggers.php';
     $oStep = new Step();
     $aFields['STEP_UID'] = $aData['sStep'];
     $aFields['TRI_UID'] = $aData['sTrigger'];
     $aFields['ST_TYPE'] = $aData['sType'];
     $Trigger = new Triggers();
     $aRow = $Trigger->load($aData['sTrigger']);
     $oStepTrigger = new StepTrigger();
     $aFields = $oStepTrigger->load($aFields['STEP_UID'], $_SESSION['TASK'], $aFields['TRI_UID'], $aFields['ST_TYPE']);
     $aFields['action'] = 'saveTriggerCondition';
     $aFields['PROCESS'] = $aRow['PRO_UID'];
     global $G_PUBLISH;
     G::LoadClass('xmlfield_InputPM');
     $G_PUBLISH = new Publisher();
     $G_PUBLISH->AddContent('xmlform', 'xmlform', 'steps/triggersCondition_Edit', '', $aFields, '../steps/steps_Ajax');
     G::RenderPage('publish', 'raw');
     break;
 case 'saveTriggerCondition':
     $oStepTrigger = new StepTrigger();
     $oStepTrigger->update(array('STEP_UID' => $aData['STEP_UID'], 'TAS_UID' => $_SESSION['TASK'], 'TRI_UID' => $aData['TRI_UID'], 'ST_TYPE' => $aData['ST_TYPE'], 'ST_CONDITION' => $aData['ST_CONDITION']));
     break;
 case 'upTrigger':
 /**
  * Get data of a Trigger
  *
  * @param string $libraryName Library name
  * @param string $methodName  Method name
  * @param string $triggerUid  Unique id of Trigger
  *
  * return array Return an array with data of a Trigger
  */
 public function getTrigger($libraryName, $methodName, $triggerUid)
 {
     try {
         //Verify data
         $this->throwExceptionIfLibraryAndMethodIsInvalidForTrigger($libraryName, $methodName, $triggerUid, $this->arrayFieldNameForException["libraryName"], $this->arrayFieldNameForException["methodName"], $this->arrayFieldNameForException["triggerUid"]);
         //Get data
         $trigger = new \Triggers();
         $arrayTriggerData = $trigger->load($triggerUid);
         $arrayTriggerData["TRI_PARAM"] = unserialize($arrayTriggerData["TRI_PARAM"]);
         $arrayMethodInputParam = $this->methodGetInputParams($libraryName, $methodName);
         $arrayMethodOutputParam = $this->methodGetOutputParams($libraryName, $methodName);
         //Params
         $arrayMethodInputParamValue = array();
         foreach ($arrayMethodInputParam as $key => $value) {
             $paramName = $value["name"];
             $paramDefaultValue = isset($value["default_value"]) ? $value["default_value"] : "";
             $arrayMethodInputParamValue[$paramName] = isset($arrayTriggerData["TRI_PARAM"]["params"][$paramName]) ? $arrayTriggerData["TRI_PARAM"]["params"][$paramName] : $paramDefaultValue;
         }
         $arrayMethodOutputParamValue = array();
         foreach ($arrayMethodOutputParam as $key => $value) {
             $paramName = $value["name"];
             $paramRequired = $value["required"];
             if ($paramRequired) {
                 if (isset($arrayTriggerData["TRI_PARAM"]["params"][strtolower($paramName)])) {
                     $paramValue = trim($arrayTriggerData["TRI_PARAM"]["params"][strtolower($paramName)]);
                 } else {
                     if (isset($arrayTriggerData["TRI_PARAM"]["params"][strtoupper($paramName)])) {
                         $paramValue = trim($arrayTriggerData["TRI_PARAM"]["params"][strtoupper($paramName)]);
                     } else {
                         $paramValue = "";
                     }
                 }
                 $arrayMethodOutputParamValue[$paramName] = $paramValue;
             }
         }
         if (count($arrayMethodInputParamValue) > 0) {
             $arrayTriggerData[$this->getFieldNameByFormatFieldName("TRI_PARAMS")][$this->getFieldNameByFormatFieldName("INPUT")] = $arrayMethodInputParamValue;
         }
         if (count($arrayMethodOutputParamValue) > 0) {
             $arrayTriggerData[$this->getFieldNameByFormatFieldName("TRI_PARAMS")][$this->getFieldNameByFormatFieldName("OUTPUT")] = $arrayMethodOutputParamValue;
         }
         //Return
         unset($arrayTriggerData["PRO_UID"]);
         unset($arrayTriggerData["TRI_WEBBOT"]);
         unset($arrayTriggerData["TRI_PARAM"]);
         if (!$this->formatFieldNameInUppercase) {
             $arrayTriggerData = array_change_key_case($arrayTriggerData, CASE_LOWER);
         }
         return $arrayTriggerData;
     } catch (\Exception $e) {
         throw $e;
     }
 }