Merge remote branch 'upstream/master'

Conflicts:
	workflow/engine/methods/services/xpdl.php
This commit is contained in:
jennylee
2012-10-17 14:36:11 -04:00
151 changed files with 9866 additions and 41562 deletions

View File

@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project name="name-of-project" default="build-simple"> <project name="name-of-project" default="build-phpcs">
<target name="build" <target name="build"
depends="prepare,lint,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd,phpdox,phpunit,phpcb"/> depends="prepare,lint,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd,phpdox,phpunit,phpcb"/>
<target name="build-simple" <target name="build-simple"
depends="prepare,phpunit,phpcs-ci,phploc"/> depends="prepare,phpunit,phpcs-ci,phploc,lint"/>
<target name="build-phpcs"
depends="prepare,phpcs-ci,phploc,phpunit"/>
<target name="build-parallel" <target name="build-parallel"
depends="prepare,lint,tools-parallel,phpunit,phpcb"/> depends="prepare,lint,tools-parallel,phpunit,phpcb"/>
@@ -98,6 +101,18 @@
</target> </target>
<target name="phpcs-ci" description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server"> <target name="phpcs-ci" description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server">
<exec executable="phpcs" output="/dev/null">
<arg value="--report=checkstyle" />
<arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
<arg value="--standard=PSR2" />
<arg path="${basedir}/gulliver/system" />
<arg path="${basedir}/workflow/engine/methods" />
<arg path="${basedir}/workflow/engine/classes" />
<arg path="${basedir}/workflow/engine/controllers" />
</exec>
</target>
<target name="phpcs-ci-old" description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server">
<exec executable="phpcs" output="/dev/null"> <exec executable="phpcs" output="/dev/null">
<arg value="--report=checkstyle" /> <arg value="--report=checkstyle" />
<arg value="--report-file=${basedir}/build/logs/checkstyle.xml" /> <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />

View File

@@ -681,17 +681,20 @@ var G_Grid = function(oForm, sGridName){
} }
} }
} }
//Set focus the first element in the grid
for (var i = 0; i < this.aFields.length; i++) {
var fieldName = 'form[' + sGridName + '][' + currentRow + '][' + this.aFields[i].sFieldName + ']';
if (this.aFields[i].sType != 'file' && this.aFields[i].sType != 'hidden' && document.getElementById(fieldName).focus) {
document.getElementById(fieldName).focus();
break;
}
}
//Fires OnAddRow Event //Fires OnAddRow Event
if (this.onaddrow) { if (this.onaddrow) {
this.onaddrow(currentRow); this.onaddrow(currentRow);
} }
var newInputs = oNewRow.getElementsByTagName('input');
for (var i = 0; i < newInputs.length; i++) {
if (typeof(newInputs[i]) != 'undefined' && newInputs[i].type != 'hidden') {
newInputs[i].focus();
break;
}
}
}; };
this.deleteGridRow = function (sRow, bWithoutConfirm) this.deleteGridRow = function (sRow, bWithoutConfirm)
@@ -740,12 +743,12 @@ var G_Grid = function(oForm, sGridName){
for (i = 1; i < oObj.oGrid.rows[iRowAux - 1].cells.length; i++) { for (i = 1; i < oObj.oGrid.rows[iRowAux - 1].cells.length; i++) {
var oCell1 = oObj.oGrid.rows[iRowAux - 1].cells[i]; var oCell1 = oObj.oGrid.rows[iRowAux - 1].cells[i];
var oCell2 = oObj.oGrid.rows[iRowAux].cells[i]; var oCell2 = oObj.oGrid.rows[iRowAux].cells[i];
switch (oCell1.innerHTML.replace(/^\s+|\s+$/g, '').substr(0, 6).toLowerCase()){ switch (oCell1.innerHTML.replace(/^\s+|\s+$/g, '').substr(0, 6).toLowerCase()){
case '<input': case '<input':
aObjects1 = oCell1.getElementsByTagName('input'); aObjects1 = oCell1.getElementsByTagName('input');
aObjects2 = oCell2.getElementsByTagName('input'); aObjects2 = oCell2.getElementsByTagName('input');
if (aObjects1 && aObjects2) { if (aObjects1 && aObjects2) {
switch (aObjects2[0].type) { switch (aObjects2[0].type) {
case "file": case "file":
@@ -828,7 +831,7 @@ var G_Grid = function(oForm, sGridName){
if (( oCell2.innerHTML.indexOf('changeValues') == 111 || oCell2.innerHTML.indexOf('changeValues') == 115 ) ) { if (( oCell2.innerHTML.indexOf('changeValues') == 111 || oCell2.innerHTML.indexOf('changeValues') == 115 ) ) {
break; break;
} }
if (oCell2.innerHTML.toLowerCase().indexOf('deletegridrow') == -1) { if (oCell2.innerHTML.toLowerCase().indexOf('deletegridrow') == -1) {
oCell1.innerHTML = oCell2.innerHTML; oCell1.innerHTML = oCell2.innerHTML;
} }

View File

@@ -1,268 +1,296 @@
<?php <?php
/**
* Controller Class /**
* Implementing MVC Pattern * Controller Class
* @author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com> * Implementing MVC Pattern
* @package gulliver.system *
* @access private * @author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
*/ * @package gulliver.system
class Controller * @access private
{ */
/** class Controller
* @var boolean debug switch for general purpose {
*/ /**
public $debug = null; *
/** * @var boolean debug switch for general purpose
* @var array - private array to store proxy data */
*/ public $debug = null;
private $__data__ = array(); /**
*
/** * @var array - private array to store proxy data
* @var object - private object to store the http request data */
*/ private $__data__ = array ();
private $__request__;
/**
/** *
* @var object - headPublisher object to handle the output * @var object - private object to store the http request data
*/ */
private $headPublisher = null; private $__request__;
/** /**
* @var string - response type var. possibles values: json|plain *
*/ * @var object - headPublisher object to handle the output
private $responseType = ''; */
private $headPublisher = null;
/**
* @var string - layout to pass skinEngine /**
*/ *
private $layout = ''; * @var string - response type var. possibles values: json|plain
*/
/** private $responseType = '';
* Magic setter method
* /**
* @param string $name *
* @param string $value * @var string - layout to pass skinEngine
*/ */
public function __set($name, $value) private $layout = '';
{
$this->__data__[$name] = $value; /**
} * Magic setter method
*
/** * @param string $name
* Magic getter method * @param string $value
* */
* @param string $name public function __set ($name, $value)
* @return string or NULL if the internal var doesn't exist {
*/ $this->__data__[$name] = $value;
public function __get($name) }
{
if (array_key_exists($name, $this->__data__)) { /**
return $this->__data__[$name]; * Magic getter method
} *
* @param string $name
$trace = debug_backtrace(); * @return string or NULL if the internal var doesn't exist
trigger_error( */
'Undefined property via __get(): ' . $name . public function __get ($name)
' in ' . $trace[0]['file'] . {
' on line ' . $trace[0]['line'], if (array_key_exists( $name, $this->__data__ )) {
E_USER_NOTICE); return $this->__data__[$name];
return null; }
}
$trace = debug_backtrace();
/** trigger_error( 'Undefined property via __get(): ' . $name . ' in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'], E_USER_NOTICE );
* Magic isset method return null;
* @param string $name }
*/
public function __isset($name) /**
{ * Magic isset method
return isset($this->__data__[$name]); *
} * @param string $name
*/
public function __isset ($name)
/** {
* Magic unset method return isset( $this->__data__[$name] );
* @param string $name }
*/
public function __unset($name) /**
{ * Magic unset method
unset($this->__data__[$name]); *
} * @param string $name
*/
/** public function __unset ($name)
* Set Response type method {
* @param string $type contains : json|plain unset( $this->__data__[$name] );
*/ }
public function setResponseType($type)
{ /**
$this->responseType = $type; * Set Response type method
} *
* @param string $type contains : json|plain
/** */
* call to execute a internal proxy method and handle its exceptions public function setResponseType ($type)
* @param string $name {
*/ $this->responseType = $type;
public function call($name) }
{
try { /**
$result = $this->$name($this->__request__); * call to execute a internal proxy method and handle its exceptions
if ($this->responseType == 'json') { *
print G::json_encode($result); * @param string $name
} */
} catch (Exception $e) { public function call ($name)
if ($this->responseType != 'json') { {
$result->exception->class = get_class($e); try {
$result->exception->code = $e->getCode(); $result = $this->$name( $this->__request__ );
if ($this->responseType == 'json') {
$template = new TemplatePower(PATH_TEMPLATE . 'controller.exception.tpl'); print G::json_encode( $result );
$template->prepare(); }
$template->assign('controller', (function_exists('get_called_class') ? get_called_class() : 'Controller')); } catch (Exception $e) {
$template->assign('message', $e->getMessage()); if ($this->responseType != 'json') {
$template->assign('file', $e->getFile()); $result->exception->class = get_class( $e );
$template->assign('line', $e->getLine()); $result->exception->code = $e->getCode();
$template->assign('trace', $e->getTraceAsString());
$template = new TemplatePower( PATH_TEMPLATE . 'controller.exception.tpl' );
echo $template->getOutputContent(); $template->prepare();
$template->assign( 'controller', (function_exists( 'get_called_class' ) ? get_called_class() : 'Controller') );
} else { $template->assign( 'message', $e->getMessage() );
$result->success = false; $template->assign( 'file', $e->getFile() );
$result->msg = $e->getMessage(); $template->assign( 'line', $e->getLine() );
switch(get_class($e)) { $template->assign( 'trace', $e->getTraceAsString() );
case 'Exception': $error = "SYSTEM ERROR"; break;
case 'PMException': $error = "PROCESSMAKER ERROR"; break; echo $template->getOutputContent();
case 'PropelException': $error = "DATABASE ERROR"; break;
case 'UserException': $error = "USER ERROR"; break; } else {
} $result->success = false;
$result->error = $error; $result->msg = $e->getMessage();
switch (get_class( $e )) {
$result->exception->class = get_class($e); case 'Exception':
$result->exception->code = $e->getCode(); $error = "SYSTEM ERROR";
print G::json_encode($result); break;
} case 'PMException':
} $error = "PROCESSMAKER ERROR";
} break;
case 'PropelException':
/** $error = "DATABASE ERROR";
* Set the http request data break;
* @param array $data case 'UserException':
*/ $error = "USER ERROR";
public function setHttpRequestData($data) break;
{ }
if (!is_object($this->__request__)) { $result->error = $error;
$this->__request__ = new stdclass();
} $result->exception->class = get_class( $e );
if( is_array($data) ) { $result->exception->code = $e->getCode();
while( $var = each($data) ) print G::json_encode( $result );
$this->__request__->$var['key'] = $var['value']; }
} else }
$this->__request__ = $data; }
}
/**
/** * Set the http request data
* Get debug var. method *
* @param boolan $val boolean value for debug var. * @param array $data
*/ */
public function setDebug($val) public function setHttpRequestData ($data)
{ {
$this->debug = $val; if (! is_object( $this->__request__ )) {
} $this->__request__ = new stdclass();
}
/** if (is_array( $data )) {
* Get debug var. method while ($var = each( $data )) {
*/ $this->__request__->$var['key'] = $var['value'];
public function getDebug() }
{ } else {
if ($this->debug === null) { $this->__request__ = $data;
$this->debug = defined('DEBUG') && DEBUG ? true : false; }
} }
return $this->debug; /**
} * Get debug var.
* method
*
/*** HeadPublisher Functions Binding ***/ * @param boolan $val boolean value for debug var.
*/
/** public function setDebug ($val)
* Include a particular extjs library or extension to the main output {
* @param string $srcFile path of a extjs library or extension $this->debug = $val;
* @param boolean $debug debug flag to indicate if the js output will be minifield or not }
* $debug: true -> the js content will be not minified (readable)
* false -> the js content will be minified /**
*/ * Get debug var.
public function includeExtJSLib($srcFile, $debug=false) * method
{ */
$this->getHeadPublisher()->usingExtJs($srcFile, ($debug ? $debug : $this->getDebug())); public function getDebug ()
} {
if ($this->debug === null) {
/** $this->debug = defined( 'DEBUG' ) && DEBUG ? true : false;
* Include a javascript file that is using extjs framework to the main output }
* @param string $srcFile path of javascrit file to include
* @param boolean $debug debug flag to indicate if the js output will be minifield or not return $this->debug;
* $debug: true -> the js content will be not minified (readable) }
* false -> the js content will be minified
*/ /**
public function includeExtJS($srcFile, $debug=false) * * HeadPublisher Functions Binding **
{ */
$this->getHeadPublisher()->addExtJsScript($srcFile, ($debug ? $debug : $this->getDebug()));
} /**
* Include a particular extjs library or extension to the main output
/** *
* Include a Html file to the main output * @param string $srcFile path of a extjs library or extension
* @param string $file path of html file to include to the main output * @param boolean $debug debug flag to indicate if the js output will be minifield or not
*/ * $debug: true -> the js content will be not minified (readable)
public function setView($file) * false -> the js content will be minified
{ */
$this->getHeadPublisher()->addContent($file); public function includeExtJSLib ($srcFile, $debug = false)
} {
$this->getHeadPublisher()->usingExtJs( $srcFile, ($debug ? $debug : $this->getDebug()) );
/** }
* Set variables to be accesible by javascripts
* @param string $name contains var. name /**
* @param string $value conatins var. value * Include a javascript file that is using extjs framework to the main output
*/ *
public function setJSVar($name, $value) * @param string $srcFile path of javascrit file to include
{ * @param boolean $debug debug flag to indicate if the js output will be minifield or not
$this->getHeadPublisher()->assign($name, $value); * $debug: true -> the js content will be not minified (readable)
} * false -> the js content will be minified
*/
/** public function includeExtJS ($srcFile, $debug = false)
* Set variables to be accesible by the extjs layout template {
* @param string $name contains var. name $this->getHeadPublisher()->addExtJsScript( $srcFile, ($debug ? $debug : $this->getDebug()) );
* @param string $value conatins var. value }
*/
public function setVar($name, $value) /**
{ * Include a Html file to the main output
$this->getHeadPublisher()->assignVar($name, $value); *
} * @param string $file path of html file to include to the main output
*/
/** public function setView ($file)
* method to get the local getHeadPublisher object {
*/ $this->getHeadPublisher()->addContent( $file );
public function getHeadPublisher() }
{
if (!is_object($this->headPublisher)) { /**
$this->headPublisher = headPublisher::getSingleton(); * Set variables to be accesible by javascripts
} *
* @param string $name contains var. name
return $this->headPublisher; * @param string $value conatins var. value
} */
public function setJSVar ($name, $value)
public function setLayout($layout) {
{ $this->getHeadPublisher()->assign( $name, $value );
$this->layout = $layout; }
}
/**
public function render($type='mvc') * Set variables to be accesible by the extjs layout template
{ *
G::RenderPage('publish', $type, null, $this->layout); * @param string $name contains var. name
} * @param string $value conatins var. value
*/
public function header($header) public function setVar ($name, $value)
{ {
G::header($header); $this->getHeadPublisher()->assignVar( $name, $value );
} }
public function redirect($url) /**
{ * method to get the local getHeadPublisher object
G::header("Location: $url"); */
} public function getHeadPublisher ()
} {
if (! is_object( $this->headPublisher )) {
$this->headPublisher = headPublisher::getSingleton();
}
return $this->headPublisher;
}
public function setLayout ($layout)
{
$this->layout = $layout;
}
public function render ($type = 'mvc')
{
G::RenderPage( 'publish', $type, null, $this->layout );
}
public function header ($header)
{
G::header( $header );
}
public function redirect ($url)
{
G::header( "Location: $url" );
}
}

View File

@@ -1,155 +1,175 @@
<?php <?php
/**
* class.database_base.php /**
* @package gulliver.system * class.database_base.php
* *
* ProcessMaker Open Source Edition * @package gulliver.system
* Copyright (C) 2004 - 2008 Colosa Inc. *
* * ProcessMaker Open Source Edition
* This program is free software: you can redistribute it and/or modify * Copyright (C) 2004 - 2008 Colosa Inc.
* it under the terms of the GNU Affero General Public License as *
* published by the Free Software Foundation, either version 3 of the * This program is free software: you can redistribute it and/or modify
* License, or (at your option) any later version. * it under the terms of the GNU Affero General Public License as
* * published by the Free Software Foundation, either version 3 of the
* This program is distributed in the hope that it will be useful, * License, or (at your option) any later version.
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * This program is distributed in the hope that it will be useful,
* GNU Affero General Public License for more details. * but WITHOUT ANY WARRANTY; without even the implied warranty of
* * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* You should have received a copy of the GNU Affero General Public License * GNU Affero General Public License for more details.
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
* * You should have received a copy of the GNU Affero General Public License
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Coral Gables, FL, 33134, USA, or email info@colosa.com. *
* * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
*/ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
/** */
* interface iDatabase
* @package gulliver.system /**
*/ * interface iDatabase
*
interface iDatabase { * @package gulliver.system
public function generateDropTableSQL($sTable); */
public function generateCreateTableSQL($sTable, $aColumns);
public function generateDropColumnSQL($sTable, $sColumn); interface iDatabase
public function generateAddColumnSQL($sTable, $sColumn, $aParameters); {
public function generateChangeColumnSQL($sTable, $sColumn, $aParameters);
public function close(); public function generateDropTableSQL ($sTable);
}
public function generateCreateTableSQL ($sTable, $aColumns);
/**
* class database_base public function generateDropColumnSQL ($sTable, $sColumn);
* @package gulliver.system
* @access public public function generateAddColumnSQL ($sTable, $sColumn, $aParameters);
*/
class database_base implements iDatabase public function generateChangeColumnSQL ($sTable, $sColumn, $aParameters);
{
protected $sType; public function close ();
protected $sServer; }
protected $sUser;
protected $sPass; /**
protected $sDataBase; * class database_base
protected $oConnection; *
protected $sQuoteCharacter = ''; * @package gulliver.system
protected $sEndLine = ';'; * @access public
*/
/** class database_base implements iDatabase
* Function __construct {
* @access public protected $sType;
* @param string $sType protected $sServer;
* @param string $sServer protected $sUser;
* @param string $sUser protected $sPass;
* @param string $sPass protected $sDataBase;
* @param string $sDataBase protected $oConnection;
* @return void protected $sQuoteCharacter = '';
*/ protected $sEndLine = ';';
public function __construct($sType = DB_ADAPTER, $sServer = DB_HOST, $sUser = DB_USER, $sPass = DB_PASS, $sDataBase = DB_NAME) /**
{ * Function __construct
$this->sType = $sType; *
$this->sServer = $sServer; * @access public
$this->sUser = $sUser; * @param string $sType
$this->sPass = $sPass; * @param string $sServer
$this->sDataBase = $sDataBase; * @param string $sUser
$this->oConnection = null; * @param string $sPass
$this->sQuoteCharacter = ''; * @param string $sDataBase
} * @return void
*/
/**
* Function generateDropTableSQL public function __construct ($sType = DB_ADAPTER, $sServer = DB_HOST, $sUser = DB_USER, $sPass = DB_PASS, $sDataBase = DB_NAME)
* @access public {
* @param string $sTable $this->sType = $sType;
* @return string $this->sServer = $sServer;
*/ $this->sUser = $sUser;
public function generateDropTableSQL($sTable) $this->sPass = $sPass;
{ $this->sDataBase = $sDataBase;
$sSQL = 'DROP TABLE IF EXISTS ' . $this->sQuoteCharacter . $sTable . $this->sQuoteCharacter . $this->sEndLine; $this->oConnection = null;
return $sSQL; $this->sQuoteCharacter = '';
} }
/** /**
* Function generateDropTableSQL * Function generateDropTableSQL
* @access public *
* @param string $sTable * @access public
* @param string $sColumn * @param string $sTable
* @return void * @return string
*/ */
public function generateCreateTableSQL($sTable, $aColumns) public function generateDropTableSQL ($sTable)
{ {
} $sSQL = 'DROP TABLE IF EXISTS ' . $this->sQuoteCharacter . $sTable . $this->sQuoteCharacter . $this->sEndLine;
return $sSQL;
/** }
* Function generateDropTableSQL
* @access public /**
* @param string $sTable * Function generateDropTableSQL
* @param string $sColumn *
* @return void * @access public
*/ * @param string $sTable
public function generateDropColumnSQL($sTable, $sColumn) * @param string $sColumn
{ * @return void
} */
public function generateCreateTableSQL ($sTable, $aColumns)
/** {
* Function generateDropTableSQL }
* @access public
* @param string $sTable /**
* @param string $sColumn * Function generateDropTableSQL
* @param string $aParameters *
* @return void * @access public
*/ * @param string $sTable
public function generateAddColumnSQL($sTable, $sColumn, $aParameters) * @param string $sColumn
{ * @return void
} */
public function generateDropColumnSQL ($sTable, $sColumn)
/** {
* Function generateDropTableSQL }
* @access public
* @param string $sTable /**
* @param string $sColumn * Function generateDropTableSQL
* @param string $aParameters *
* @return void * @access public
*/ * @param string $sTable
public function generateChangeColumnSQL($sTable, $sColumn, $aParameters) * @param string $sColumn
{ * @param string $aParameters
} * @return void
*/
/** public function generateAddColumnSQL ($sTable, $sColumn, $aParameters)
* Function generateDropTableSQL {
* @access public }
* @param string $sQuery
* @return void /**
*/ * Function generateDropTableSQL
public function executeQuery($sQuery) *
{ * @access public
} * @param string $sTable
* @param string $sColumn
/** * @param string $aParameters
* Function close * @return void
* @access public */
* @return void public function generateChangeColumnSQL ($sTable, $sColumn, $aParameters)
*/ {
public function close() }
{
} /**
} * Function generateDropTableSQL
*
* @access public
* @param string $sQuery
* @return void
*/
public function executeQuery ($sQuery)
{
}
/**
* Function close
*
* @access public
* @return void
*/
public function close ()
{
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,278 +1,295 @@
<?php <?php
/** /**
* class.dbconnection.php * class.dbconnection.php
* @package gulliver.system *
* * @package gulliver.system
* ProcessMaker Open Source Edition *
* Copyright (C) 2004 - 2011 Colosa Inc. * ProcessMaker Open Source Edition
* * Copyright (C) 2004 - 2011 Colosa Inc.
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero General Public License as * This program is free software: you can redistribute it and/or modify
* published by the Free Software Foundation, either version 3 of the * it under the terms of the GNU Affero General Public License as
* License, or (at your option) any later version. * 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 * This program is distributed in the hope that it will be useful,
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * but WITHOUT ANY WARRANTY; without even the implied warranty of
* GNU Affero General Public License for more details. * 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/>. * 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. * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*/ *
*/
/**
* @package gulliver.system /**
*/ *
* @package gulliver.system
require_once ("DB.php"); *
*/
define ( 'DB_ERROR_NO_SHOW_AND_CONTINUE', 0);
define ( 'DB_ERROR_SHOW_AND_STOP', 1); require_once ("DB.php");
define ( 'DB_ERROR_SHOW_AND_CONTINUE', 2);
define ( 'DB_ERROR_SHOWALL_AND_STOP', 3); define( 'DB_ERROR_NO_SHOW_AND_CONTINUE', 0 );
define ( 'DB_ERROR_SHOWALL_AND_CONTINUE', 4); define( 'DB_ERROR_SHOW_AND_STOP', 1 );
define( 'DB_ERROR_SHOW_AND_CONTINUE', 2 );
/** define( 'DB_ERROR_SHOWALL_AND_STOP', 3 );
* DBConnection class definition define( 'DB_ERROR_SHOWALL_AND_CONTINUE', 4 );
* It is useful to stablish a connection
* @package gulliver.system /**
* @author Fernando Ontiveros Lira <fernando@colosa.com> * DBConnection class definition
* @copyright (C) 2002 by Colosa Development Team. * It is useful to stablish a connection
*/ *
class DBConnection * @package gulliver.system
{ * @author Fernando Ontiveros Lira <fernando@colosa.com>
var $db; * @copyright (C) 2002 by Colosa Development Team.
var $db_error; */
var $errorLevel; class DBConnection
var $type; {
var $db;
/***************************************************************** var $db_error;
/* Error types: var $errorLevel;
/* -1 Fatal error ( clase no instanced ) var $type;
/* -2 Syntax error ( session missing, query malformed, etc )
/* -3 warning ( when the engine build a dangerous query, i.e delete without where clause ) /**
/* * ***************************************************************
/* Error level: * /* Error types:
/* 0 don't display any error information and continue. * /* -1 Fatal error ( clase no instanced )
/* 1 display small box with error information and die. * /* -2 Syntax error ( session missing, query malformed, etc )
/* 2 display small box with error information and continue * /* -3 warning ( when the engine build a dangerous query, i.e delete without where clause )
/* 3 display complete error information and die. * /*
/* 4 display complete error information and continue. * /* Error level:
/* * /* 0 don't display any error information and continue.
/* Error Structure * /* 1 display small box with error information and die.
/* int error code * /* 2 display small box with error information and continue
/* string error message * /* 3 display complete error information and die.
/* string error detailed message * /* 4 display complete error information and continue.
/* * /*
/* In all cases, the error will be saved in the apache log file * /* Error Structure
/* * /* int error code
/* */ * /* string error message
* /* string error detailed message
/** * /*
* Starts DB connection with default values * /* In all cases, the error will be saved in the apache log file
* @author Fernando Ontiveros Lira <fernando@colosa.com> * /*
* @access public * /*
* @param const $strServer Host Name */
* @param const $strUser User Name
* @param const $strPwd Password /**
* @param const $strDB Database Name * Starts DB connection with default values
* @param string $type Connection Type *
* @param integer $strPort Used Port * @author Fernando Ontiveros Lira <fernando@colosa.com>
* @param string $errorLevel Error values posibles are: * @access public
* @return string * @param const $strServer Host Name
* * @param const $strUser User Name
*/ * @param const $strPwd Password
function DBConnection( $strServer = DB_HOST, $strUser = DB_USER, $strPwd = DB_PASS, $strDB = DB_NAME , $type = DB_ADAPTER, $strPort = 0, $errorLevel = 2 ) * @param const $strDB Database Name
{ * @param string $type Connection Type
$this->errorLevel = $errorLevel; * @param integer $strPort Used Port
if ($type == null ) $type = 'mysql'; * @param string $errorLevel Error values posibles are:
$this->type = $type; * @return string
//print "<hr>$type $strServer, $strUser, $strPwd, $strDB <hr>"; *
if ( $type == "mysql" ) */
$dsn = "mysql://$strUser:$strPwd@$strServer/$strDB"; function DBConnection ($strServer = DB_HOST, $strUser = DB_USER, $strPwd = DB_PASS, $strDB = DB_NAME, $type = DB_ADAPTER, $strPort = 0, $errorLevel = 2)
if ( $type == "pgsql" ) { {
//$dsn = "pgsql://postgres@$strServer/$strDB"; $this->errorLevel = $errorLevel;
$prt = ( $strPort == 0 || $strPort == 5432 ? '' : ":$strPort" ); if ($type == null)
$dsn = "pgsql://$strUser:$strPwd@$strServer$prt/$strDB"; $type = 'mysql';
} $this->type = $type;
if ( $type == "odbc" ) //print "<hr>$type $strServer, $strUser, $strPwd, $strDB <hr>";
$dsn = "odbc://$strUser:$strPwd@$strServer/$strDB"; if ($type == "mysql")
if ( $type == "mssql" ) { $dsn = "mysql://$strUser:$strPwd@$strServer/$strDB";
$strServer = substr($strServer, 0, strpos($strServer,':')); if ($type == "pgsql") {
$prt = ( $strPort == 0 || $strPort == 1433 ? '' : ":$strPort" ); //$dsn = "pgsql://postgres@$strServer/$strDB";
$dsn = "mssql://$strUser:$strPwd@$strServer$prt/$strDB"; $prt = ($strPort == 0 || $strPort == 5432 ? '' : ":$strPort");
///--) $dsn = "mssql://$strUser:$strPwd@$strServer/$strDB"; $dsn = "pgsql://$strUser:$strPwd@$strServer$prt/$strDB";
} }
if ( $type == "oracle" ) { if ($type == "odbc")
$dsn = "oci8://$strUser:$strPwd@$strServer/$strDB"; $dsn = "odbc://$strUser:$strPwd@$strServer/$strDB";
} if ($type == "mssql") {
$this->db_error = NULL; $strServer = substr( $strServer, 0, strpos( $strServer, ':' ) );
if ( $type === 'myxml' ) { $prt = ($strPort == 0 || $strPort == 1433 ? '' : ":$strPort");
$this->db = XMLDB::connect ( $strServer ); $dsn = "mssql://$strUser:$strPwd@$strServer$prt/$strDB";
} else { ///--) $dsn = "mssql://$strUser:$strPwd@$strServer/$strDB";
$this->db = DB::connect ( $dsn ); }
} if ($type == "oracle") {
if ( DB::isError ($this->db) ) { $dsn = "oci8://$strUser:$strPwd@$strServer/$strDB";
$this->db_error = $this->db; }
$this->db = NULL; $this->db_error = null;
$this->logError( $this->db_error ); if ($type === 'myxml') {
} $this->db = XMLDB::connect( $strServer );
} } else {
$this->db = DB::connect( $dsn );
/** }
* Close Connection and Generate Log Message if (DB::isError( $this->db )) {
* @author Fernando Ontiveros Lira <fernando@colosa.com> $this->db_error = $this->db;
* @access public $this->db = null;
* @return void $this->logError( $this->db_error );
*/ }
function Reset() }
{
if ( $this->db ){ /**
$this->db->disconnect(); * Close Connection and Generate Log Message
} *
$this->db = NULL; * @author Fernando Ontiveros Lira <fernando@colosa.com>
} * @access public
* @return void
/** */
* Disconnect from Data base function Reset ()
* @author Fernando Ontiveros Lira <fernando@colosa.com> {
* @access public if ($this->db) {
* @return void $this->db->disconnect();
*/ }
function Free() $this->db = null;
{ }
$this->Reset();
} /**
* Disconnect from Data base
/** *
* Close Connection * @author Fernando Ontiveros Lira <fernando@colosa.com>
* @author Fernando Ontiveros Lira <fernando@colosa.com> * @access public
* @access public * @return void
* @return void */
*/ function Free ()
function Close() {
{ $this->Reset();
$this->Reset(); }
}
/**
/** * Close Connection
* log Errors *
* @author Fernando Ontiveros Lira <fernando@colosa.com> * @author Fernando Ontiveros Lira <fernando@colosa.com>
* @access public * @access public
* @param db_error $obj * @return void
* @param string $errorLevel */
* @return void function Close ()
*/ {
function logError( $obj, $errorLevel = NULL ) $this->Reset();
{ }
global $_SESSION;
global $_SERVER; /**
if ( is_null( $errorLevel ) ) * log Errors
if ( isset ( $this->errorLevel) ) *
$errorLevel = $this->errorLevel; * @author Fernando Ontiveros Lira <fernando@colosa.com>
else * @access public
$errorLevel = DB_ERROR_SHOWALL_AND_STOP; //for fatal errors the default is 3, show detailed and die. * @param db_error $obj
if ($errorLevel == DB_ERROR_SHOW_AND_STOP || $errorLevel == DB_ERROR_SHOW_AND_CONTINUE || * @param string $errorLevel
$errorLevel == DB_ERROR_SHOWALL_AND_STOP || $errorLevel == DB_ERROR_SHOWALL_AND_CONTINUE ) { * @return void
print "<table border=1 style='font-family:Arial' cellspacing=1 cellpadding = 0 width=400 class= 'tableError' >"; */
print "<tr><td><b>" . $obj->code . ' '. $obj->message . "</b></td></tr>"; function logError ($obj, $errorLevel = NULL)
if ($errorLevel == DB_ERROR_SHOWALL_AND_STOP || $errorLevel == DB_ERROR_SHOWALL_AND_CONTINUE ) { {
print "<tr><td>" . $obj->userinfo . "</td></tr>"; global $_SESSION;
} global $_SERVER;
print "</table>"; if (is_null( $errorLevel ))
} if (isset( $this->errorLevel )) {
if (defined('DB_ERROR_BACKTRACE') && DB_ERROR_BACKTRACE) { $errorLevel = $this->errorLevel;
print "<table border = 1 width=400 class= 'sendMsgRojo'><tr><td><textarea rows='12' cols='180' style='width:100%;font-family:courier;white-space:pre-line;overflow:auto;border:none;'>"; } else {
print((htmlentities(DBConnection::traceError()))); $errorLevel = DB_ERROR_SHOWALL_AND_STOP; //for fatal errors the default is 3, show detailed and die.
print "</textarea></td></tr></table>"; }
}
//G::setErrorHandler ( ); if ($errorLevel == DB_ERROR_SHOW_AND_STOP || $errorLevel == DB_ERROR_SHOW_AND_CONTINUE || $errorLevel == DB_ERROR_SHOWALL_AND_STOP || $errorLevel == DB_ERROR_SHOWALL_AND_CONTINUE) {
G::customErrorLog ('DB_Error', $obj->code . ' '. $obj->message .'-' . $obj->userinfo, '', ''); print "<table border=1 style='font-family:Arial' cellspacing=1 cellpadding = 0 width=400 class= 'tableError' >";
if ($errorLevel == DB_ERROR_SHOW_AND_STOP || $errorLevel == DB_ERROR_SHOWALL_AND_STOP ) { print "<tr><td><b>" . $obj->code . ' ' . $obj->message . "</b></td></tr>";
die; //stop if ($errorLevel == DB_ERROR_SHOWALL_AND_STOP || $errorLevel == DB_ERROR_SHOWALL_AND_CONTINUE) {
} print "<tr><td>" . $obj->userinfo . "</td></tr>";
} }
print "</table>";
/** }
* Get the trace of the current execution (debug_backtrace). if (defined( 'DB_ERROR_BACKTRACE' ) && DB_ERROR_BACKTRACE) {
* @author David Callizaya print "<table border = 1 width=400 class= 'sendMsgRojo'><tr><td><textarea rows='12' cols='180' style='width:100%;font-family:courier;white-space:pre-line;overflow:auto;border:none;'>";
* @param string $tts print ((htmlentities( DBConnection::traceError() ))) ;
* @param string $limit print "</textarea></td></tr></table>";
* @return string }
*/ //G::setErrorHandler ( );
function traceError( $tts=2 , $limit=-1 ) G::customErrorLog( 'DB_Error', $obj->code . ' ' . $obj->message . '-' . $obj->userinfo, '', '' );
{ if ($errorLevel == DB_ERROR_SHOW_AND_STOP || $errorLevel == DB_ERROR_SHOWALL_AND_STOP) {
$trace = debug_backtrace(); die(); //stop
$out=''; }
foreach($trace as $step) { }
if ($tts>0) {
$tts--; /**
} else { * Get the trace of the current execution (debug_backtrace).
$out .= '['.basename($step['file']).': '.$step['line'].'] : ' . $step['function'] .'(' . *
DBConnection::printArgs($step['args']). ")\n"; * @author David Callizaya
$limit--; * @param string $tts
if ($limit===0) * @param string $limit
return $out; * @return string
} */
} function traceError ($tts = 2, $limit = -1)
return $out; {
} $trace = debug_backtrace();
$out = '';
/** foreach ($trace as $step) {
* Print the arguments of a function if ($tts > 0) {
* @author David Callizaya $tts --;
* @param string $args } else {
* @return string $out .= '[' . basename( $step['file'] ) . ': ' . $step['line'] . '] : ' . $step['function'] . '(' . DBConnection::printArgs( $step['args'] ) . ")\n";
*/ $limit --;
function printArgs( $args ) if ($limit === 0) {
{ return $out;
$out = ''; }
if (is_array($args)){ }
foreach($args as $arg) { }
if ($out!=='') return $out;
$out .= ' ,'; }
if (is_string($arg))
$out .= "'".($arg)."'"; /**
elseif (is_array($arg) ) * Print the arguments of a function
$out .= print_r ( $arg ,1 ); *
elseif (is_object($arg)) * @author David Callizaya
$out .= get_class($arg);// print_r ( $arg ,1 ); * @param string $args
elseif (!isset($arg)) * @return string
$out .= 'NULL'; */
else function printArgs ($args)
$out .= sprintf ( "%s" ,$arg ); {
} $out = '';
} else { if (is_array( $args )) {
if (!isset($args)) foreach ($args as $arg) {
$out = 'NULL'; if ($out !== '') {
else $out .= ' ,';
$out = print_r($args,1); }
} if (is_string( $arg )) {
return $out; $out .= "'" . ($arg) . "'";
} } elseif (is_array( $arg )) {
$out .= print_r( $arg, 1 );
/** } elseif (is_object( $arg )) {
* Gets last autoincrement value inserted $out .= get_class( $arg ); // print_r ( $arg ,1 );
* @author Fernando Ontiveros Lira <fernando@colosa.com> } elseif (! isset( $arg )) {
* @access public $out .= 'NULL';
* @return void } else {
*/ $out .= sprintf( "%s", $arg );
function GetLastID() }
{ }
if ( PEAR_DATABASE == "mysql" ){ } else {
return mysql_insert_id(); if (! isset( $args )) {
} $out = 'NULL';
else { } else {
$dberror = PEAR::raiseError(null, DB_ERROR_FEATURE_NOT_AVAILABLE, null, 'null', $out = print_r( $args, 1 );
"getLastID with " . PEAR_DATABASE . ' database.', }
'G_Error', true); }
DBconnection::logError( $dberror, DB_ERROR_SHOWALL_AND_STOP ); //this error will stop the execution, until we add this feature!! return $out;
return $dberror; }
}
return mysql_insert_id(); /**
} * Gets last autoincrement value inserted
} *
* @author Fernando Ontiveros Lira <fernando@colosa.com>
* @access public
* @return void
*/
function GetLastID ()
{
if (PEAR_DATABASE == "mysql") {
return mysql_insert_id();
} else {
$dberror = PEAR::raiseError( null, DB_ERROR_FEATURE_NOT_AVAILABLE, null, 'null', "getLastID with " . PEAR_DATABASE . ' database.', 'G_Error', true );
DBconnection::logError( $dberror, DB_ERROR_SHOWALL_AND_STOP ); //this error will stop the execution, until we add this feature!!
return $dberror;
}
return mysql_insert_id();
}
}

7574
gulliver/system/class.g.php Executable file → Normal file

File diff suppressed because it is too large Load Diff

1195
gulliver/system/class.headPublisher.php Executable file → Normal file

File diff suppressed because it is too large Load Diff

601
gulliver/system/class.soapNtlm.php Executable file → Normal file
View File

@@ -1,308 +1,299 @@
<?php <?php
/** /**
* class.soapNtlm.php * class.soapNtlm.php
* @package gulliver.system *
* * @package gulliver.system
* ProcessMaker Open Source Edition *
* Copyright (C) 2004 - 2011 Colosa Inc. * ProcessMaker Open Source Edition
* * Copyright (C) 2004 - 2011 Colosa Inc.
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero General Public License as * This program is free software: you can redistribute it and/or modify
* published by the Free Software Foundation, either version 3 of the * it under the terms of the GNU Affero General Public License as
* License, or (at your option) any later version. * 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 * This program is distributed in the hope that it will be useful,
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * but WITHOUT ANY WARRANTY; without even the implied warranty of
* GNU Affero General Public License for more details. * 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/>. * 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. * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*/ *
*/
/* SOAP NTLM /* SOAP NTLM
* This class is used to extend SoapClient native PHP * This class is used to extend SoapClient native PHP
* to allow NTLM authentication throw soap connection * to allow NTLM authentication throw soap connection
*/ */
/** /**
* @package gulliver.system *
*/ * @package gulliver.system
class soapNtlm { */
class soapNtlm
private $path; {
private $mode; private $path;
private $options; private $mode;
private $opened_path; private $options;
private $buffer; private $opened_path;
private $pos; private $buffer;
private $pos;
public function getuser()
{ public function getuser ()
return ""; {
} return "";
}
public function getpassword()
{ public function getpassword ()
return ""; {
} return "";
}
/**
* Open the stream /**
* * Open the stream
* @param unknown_type $path *
* @param unknown_type $mode * @param unknown_type $path
* @param unknown_type $options * @param unknown_type $mode
* @param unknown_type $opened_path * @param unknown_type $options
* @return unknown * @param unknown_type $opened_path
*/ * @return unknown
public function stream_open($path, $mode, $options, $opened_path) { */
//echo "[NTLMStream::stream_open] $path , mode=$mode <br>"; public function stream_open ($path, $mode, $options, $opened_path)
//G::pr($options); {
//echo "[NTLMStream::stream_open] $path , mode=$mode <br>";
$this->path = $path; //G::pr($options);
$this->mode = $mode; $this->path = $path;
$this->options = $options; $this->mode = $mode;
$this->opened_path = $opened_path; $this->options = $options;
$this->opened_path = $opened_path;
$this->createBuffer($this->path); $this->createBuffer( $this->path );
return true;
return true; }
}
/**
/** * Close the stream
* Close the stream */
* public function stream_close ()
*/ {
public function stream_close() { //echo "[NTLMStream::stream_close] <br>";
//echo "[NTLMStream::stream_close] <br>"; curl_close( $this->ch );
curl_close($this->ch); }
}
/**
/** * Read the stream
* Read the stream *
* * @param int $count number of bytes to read
* @param int $count number of bytes to read * @return content from pos to count
* @return content from pos to count */
*/ public function stream_read ($count)
public function stream_read($count) { {
//echo "[NTLMStream::stream_read] $count <br>"; //echo "[NTLMStream::stream_read] $count <br>";
if (strlen($this->buffer) == 0) { if (strlen( $this->buffer ) == 0) {
return false; return false;
} }
$read = substr( $this->buffer, $this->pos, $count );
$read = substr($this->buffer, $this->pos, $count); $this->pos += $count;
return $read;
$this->pos += $count; }
return $read; /**
} * write the stream
*
/** * @param int $count number of bytes to read
* write the stream * @return content from pos to count
* */
* @param int $count number of bytes to read public function stream_write ($data)
* @return content from pos to count {
*/ //echo "[NTLMStream::stream_write] <br>";
public function stream_write($data) { if (strlen( $this->buffer ) == 0) {
//echo "[NTLMStream::stream_write] <br>"; return false;
if (strlen($this->buffer) == 0) { }
return false; return true;
} }
return true;
} /**
*
/** * @return true if eof else false
* */
* @return true if eof else false public function stream_eof ()
*/ {
public function stream_eof() { //echo "[NTLMStream::stream_eof] ";
//echo "[NTLMStream::stream_eof] "; if ($this->pos > strlen( $this->buffer )) {
if ($this->pos > strlen($this->buffer)) { //echo "true <br>";
//echo "true <br>"; return true;
return true; }
} //echo "false <br>";
return false;
//echo "false <br>"; }
return false;
} /**
*
/** * @return int the position of the current read pointer
* @return int the position of the current read pointer */
*/ public function stream_tell ()
public function stream_tell() { {
//echo "[NTLMStream::stream_tell] <br>"; //echo "[NTLMStream::stream_tell] <br>";
return $this->pos; return $this->pos;
} }
/** /**
* Flush stream data * Flush stream data
*/ */
public function stream_flush() { public function stream_flush ()
//echo "[NTLMStream::stream_flush] <br>"; {
$this->buffer = null; //echo "[NTLMStream::stream_flush] <br>";
$this->pos = null; $this->buffer = null;
} $this->pos = null;
}
/**
* Stat the file, return only the size of the buffer /**
* * Stat the file, return only the size of the buffer
* @return array stat information *
*/ * @return array stat information
public function stream_stat() { */
//echo "[NTLMStream::stream_stat] <br>"; public function stream_stat ()
{
$this->createBuffer($this->path); //echo "[NTLMStream::stream_stat] <br>";
$stat = array( $this->createBuffer( $this->path );
'size' => strlen($this->buffer), $stat = array ('size' => strlen( $this->buffer ));
); return $stat;
}
return $stat;
} /**
* Stat the url, return only the size of the buffer
/** *
* Stat the url, return only the size of the buffer * @return array stat information
* */
* @return array stat information public function url_stat ($path, $flags)
*/ {
public function url_stat($path, $flags) { //G::pr($this->options);
//G::pr($this->options); //echo "[NTLMStream::url_stat] -> $path <br>";
//echo "[NTLMStream::url_stat] -> $path <br>"; $this->createBuffer( $path );
$this->createBuffer($path); $stat = array ('size' => strlen( $this->buffer ));
$stat = array( return $stat;
'size' => strlen($this->buffer), }
);
/**
return $stat; * Create the buffer by requesting the url through cURL
} *
* @param unknown_type $path
/** */
* Create the buffer by requesting the url through cURL private function createBuffer ($path)
* {
* @param unknown_type $path if ($this->buffer) {
*/ return;
private function createBuffer($path) { }
if ($this->buffer) {
return; //echo "[NTLMStream::createBuffer] create buffer from : $path <br>";
} $this->ch = curl_init( $path );
curl_setopt( $this->ch, CURLOPT_RETURNTRANSFER, true );
//echo "[NTLMStream::createBuffer] create buffer from : $path <br>"; curl_setopt( $this->ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
$this->ch = curl_init($path); curl_setopt( $this->ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM );
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true); //curl_setopt($this->ch, CURLOPT_USERPWD, $this->options['auth']); // Hugo's code
curl_setopt($this->ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt( $this->ch, CURLOPT_USERPWD, $this->getuser() . ':' . $this->getpassword() ); // Ankit's code
curl_setopt($this->ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM); //Apply proxy settings
//curl_setopt($this->ch, CURLOPT_USERPWD, $this->options['auth']); // Hugo's code if (class_exists( 'System' )) {
curl_setopt($this->ch, CURLOPT_USERPWD, $this->getuser().':'.$this->getpassword());// Ankit's code $sysConf = System::getSystemConfiguration();
if ($sysConf['proxy_host'] != '') {
//Apply proxy settings curl_setopt( $this->ch, CURLOPT_PROXY, $sysConf['proxy_host'] . ($sysConf['proxy_port'] != '' ? ':' . $sysConf['proxy_port'] : '') );
if (class_exists('System')) { if ($sysConf['proxy_port'] != '') {
$sysConf = System::getSystemConfiguration(); curl_setopt( $this->ch, CURLOPT_PROXYPORT, $sysConf['proxy_port'] );
if ($sysConf['proxy_host'] != '') { }
curl_setopt($this->ch, CURLOPT_PROXY, $sysConf['proxy_host'] . ($sysConf['proxy_port'] != '' ? ':' . $sysConf['proxy_port'] : '')); if ($sysConf['proxy_user'] != '') {
if ($sysConf['proxy_port'] != '') { curl_setopt( $this->ch, CURLOPT_PROXYUSERPWD, $sysConf['proxy_user'] . ($sysConf['proxy_pass'] != '' ? ':' . $sysConf['proxy_pass'] : '') );
curl_setopt($this->ch, CURLOPT_PROXYPORT, $sysConf['proxy_port']); }
} curl_setopt( $this->ch, CURLOPT_HTTPHEADER, array ('Expect:') );
if ($sysConf['proxy_user'] != '') { }
curl_setopt($this->ch, CURLOPT_PROXYUSERPWD, $sysConf['proxy_user'] . ($sysConf['proxy_pass'] != '' ? ':' . $sysConf['proxy_pass'] : '')); }
} echo $this->buffer = curl_exec( $this->ch );
curl_setopt($this->ch, CURLOPT_HTTPHEADER, array('Expect:')); //echo "[NTLMStream::createBuffer] buffer size : " . strlen($this->buffer) . "bytes<br>";
} $this->pos = 0;
} }
echo $this->buffer = curl_exec($this->ch); }
//echo "[NTLMStream::createBuffer] buffer size : " . strlen($this->buffer) . "bytes<br>"; class NTLMSoapClient extends SoapClient
$this->pos = 0; {
} function __doRequest ($request, $location, $action, $version)
{
} $headers = array ('Method: POST','Connection: Keep-Alive','User-Agent: PHP-SOAP-CURL','Content-Type: text/xml; charset=utf-8','SOAPAction: "' . $action . '"');
class NTLMSoapClient extends SoapClient { $this->__last_request_headers = $headers;
$ch = curl_init( $location );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
function __doRequest($request, $location, $action, $version) { curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
$headers = array( curl_setopt( $ch, CURLOPT_POST, true );
'Method: POST', curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
'Connection: Keep-Alive', curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
'User-Agent: PHP-SOAP-CURL', curl_setopt( $ch, CURLOPT_POSTFIELDS, $request );
'Content-Type: text/xml; charset=utf-8', curl_setopt( $ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
'SOAPAction: "' . $action . '"', curl_setopt( $ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM );
); //curl_setopt($ch, CURLOPT_USERPWD, $this->options['auth']); //Hugo's Code
curl_setopt( $ch, CURLOPT_USERPWD, $this->user . ':' . $this->password ); //Ankit's Code
$this->__last_request_headers = $headers;
$ch = curl_init($location); //Apply proxy settings
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if (class_exists( 'System' )) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $sysConf = System::getSystemConfiguration();
curl_setopt($ch, CURLOPT_POST, true); if ($sysConf['proxy_host'] != '') {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt( $ch, CURLOPT_PROXY, $sysConf['proxy_host'] . ($sysConf['proxy_port'] != '' ? ':' . $sysConf['proxy_port'] : '') );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); if ($sysConf['proxy_port'] != '') {
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); curl_setopt( $ch, CURLOPT_PROXYPORT, $sysConf['proxy_port'] );
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); }
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM); if ($sysConf['proxy_user'] != '') {
//curl_setopt($ch, CURLOPT_USERPWD, $this->options['auth']); //Hugo's Code curl_setopt( $ch, CURLOPT_PROXYUSERPWD, $sysConf['proxy_user'] . ($sysConf['proxy_pass'] != '' ? ':' . $sysConf['proxy_pass'] : '') );
curl_setopt($ch, CURLOPT_USERPWD, $this->user.':'.$this->password); //Ankit's Code }
curl_setopt( $ch, CURLOPT_HTTPHEADER, array ('Expect:'
//Apply proxy settings ) );
if (class_exists('System')) { }
$sysConf = System::getSystemConfiguration(); }
if ($sysConf['proxy_host'] != '') { $response = curl_exec( $ch );
curl_setopt($ch, CURLOPT_PROXY, $sysConf['proxy_host'] . ($sysConf['proxy_port'] != '' ? ':' . $sysConf['proxy_port'] : '')); return $response;
if ($sysConf['proxy_port'] != '') { }
curl_setopt($ch, CURLOPT_PROXYPORT, $sysConf['proxy_port']);
} function __getLastRequestHeaders ()
if ($sysConf['proxy_user'] != '') { {
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $sysConf['proxy_user'] . ($sysConf['proxy_pass'] != '' ? ':' . $sysConf['proxy_pass'] : '')); return implode( "\n", $this->__last_request_headers ) . "\n";
} }
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
} }
}
class PMServiceNTLMSoapClient extends NTLMSoapClient
$response = curl_exec($ch); {
protected $user;
return $response; protected $password;
}
function setAuthClient ($auth)
function __getLastRequestHeaders() { {
return implode("\n", $this->__last_request_headers) . "\n"; $authInfo = explode( ":", $auth );
} $this->user = $authInfo[0];
$this->password = $authInfo[1];
} }
}
class PMServiceNTLMSoapClient extends NTLMSoapClient {
protected $user; class PMServiceProviderNTLMStream extends soapNtlm
protected $password; {
protected static $user;
function setAuthClient($auth){ protected static $password;
$authInfo=explode(":",$auth);
$this->user=$authInfo[0]; public function getuser ()
$this->password=$authInfo[1]; {
} return self::$user;
} }
class PMServiceProviderNTLMStream extends soapNtlm { public function getpassword ()
{
protected static $user ; return self::$password;
protected static $password; }
static function setAuthStream ($auth)
public function getuser() {
{ $authInfo = explode( ":", $auth );
return self::$user; self::$user = $authInfo[0];
} self::$password = $authInfo[1];
}
public function getpassword() }
{
return self::$password;
}
static function setAuthStream($auth){
$authInfo=explode(":",$auth);
self::$user=$authInfo[0];
self::$password=$authInfo[1];
}
}

2418
gulliver/system/class.table.php Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -3101,7 +3101,7 @@ class XmlForm_Field_RadioGroup extends XmlForm_Field {
if( isset($this->linkType) && ($this->linkType == 1 || $this->linkType == "1") ){ if( isset($this->linkType) && ($this->linkType == 1 || $this->linkType == "1") ){
$html .= '<input id="form['.$this->name.']['.$optionName.']" name="form['.$this->name.']" type="radio" value="'.$optionName.'" '.(($optionName==$value) ? ' checked' : '') . '><a href="#" onclick="executeEvent(\'form['.$this->name.']['.$optionName.']\', \'click\'); return false;">' . $option . '</a></input>'; $html .= '<input id="form['.$this->name.']['.$optionName.']" name="form['.$this->name.']" type="radio" value="'.$optionName.'" '.(($optionName==$value) ? ' checked' : '') . '><a href="#" onclick="executeEvent(\'form['.$this->name.']['.$optionName.']\', \'click\'); return false;">' . $option . '</a></input>';
} else { } else {
$html .= '<input id="form['.$this->name.']['.$optionName.']" name="form['.$this->name.']" type="radio" value="'.$optionName.'" '.(($optionName==$value) ? ' checked' : '') . '>' . $option . '</input>'; $html .= '<input id="form['.$this->name.']['.$optionName.']" name="form['.$this->name.']" type="radio" value="'.$optionName.'" '.(($optionName==$value) ? ' checked' : '') . '><label for="form[' . $this->name . '][' . $optionName . ']">' . $option . '</label></input>';
} }
if(++$i==count($this->options)){ if(++$i==count($this->options)){
$html .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$this->renderHint(); $html .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$this->renderHint();
@@ -3117,7 +3117,7 @@ class XmlForm_Field_RadioGroup extends XmlForm_Field {
} elseif ($this->mode === 'view') { } elseif ($this->mode === 'view') {
$html = ''; $html = '';
foreach ( $this->options as $optionName => $option ) { foreach ( $this->options as $optionName => $option ) {
$html .= '<input class="module_app_input___gray" id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . ']" type=\'radio\' value="' . $optionName . '" ' . (($optionName == $value) ? 'checked' : '') . ' disabled><span class="FormCheck">' . $option . '</span></input><br>'; $html .= '<input class="module_app_input___gray" id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . ']" type=\'radio\' value="' . $optionName . '" ' . (($optionName == $value) ? 'checked' : '') . ' disabled><span class="FormCheck"><label for="form[' . $this->name . '][' . $optionName . ']">' . $option . '</label></span></input><br>';
if($optionName == $value) if($optionName == $value)
$html .= '<input type="hidden" id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . ']" value="' . (($optionName == $value) ? $optionName : '') . '">'; $html .= '<input type="hidden" id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . ']" value="' . (($optionName == $value) ? $optionName : '') . '">';
} }
@@ -3198,7 +3198,7 @@ class XmlForm_Field_CheckGroup extends XmlForm_Field
$i=0; $i=0;
$html = ''; $html = '';
foreach ( $this->options as $optionName => $option ) { foreach ( $this->options as $optionName => $option ) {
$html .= '<input id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . '][]" type=\'checkbox\' value="' . $optionName . '"' . (in_array ( $optionName, $value ) ? 'checked' : '') . '><span class="FormCheck">' . $option . '</span></input>'; $html .= '<input id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . '][]" type=\'checkbox\' value="' . $optionName . '"' . (in_array ( $optionName, $value ) ? 'checked' : '') . '><span class="FormCheck"><label for="form[' . $this->name . '][' . $optionName . ']">' . $option . '</label></span></input>';
if(++$i==count($this->options)){ if(++$i==count($this->options)){
$html .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$this->renderHint(); $html .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$this->renderHint();
} }
@@ -3208,7 +3208,7 @@ class XmlForm_Field_CheckGroup extends XmlForm_Field
} elseif ($this->mode === 'view') { } elseif ($this->mode === 'view') {
$html = ''; $html = '';
foreach ( $this->options as $optionName => $option ) { foreach ( $this->options as $optionName => $option ) {
$html .= '<input class="FormCheck" id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . '][]" type=\'checkbox\' value="' . $optionName . '"' . (in_array ( $optionName, $value ) ? 'checked' : '') . ' disabled><span class="FormCheck">' . $option . '</span></input><br>'; $html .= '<input class="FormCheck" id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . '][]" type=\'checkbox\' value="' . $optionName . '"' . (in_array ( $optionName, $value ) ? 'checked' : '') . ' disabled><span class="FormCheck"><label for="form[' . $this->name . '][' . $optionName . ']">' . $option . '</label></span></input><br>';
$html .= '<input type="hidden" id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . '][]" value="'.((in_array ( $optionName, $value )) ? $optionName : '').'">'; $html .= '<input type="hidden" id="form[' . $this->name . '][' . $optionName . ']" name="form[' . $this->name . '][]" value="'.((in_array ( $optionName, $value )) ? $optionName : '').'">';
} }
return $html; return $html;
@@ -4789,18 +4789,7 @@ class xmlformTemplate extends Smarty
$value = (isset ( $form->values [$k] )) ? $form->values [$k] : NULL; $value = (isset ( $form->values [$k] )) ? $form->values [$k] : NULL;
$result [$k] = G::replaceDataField ( $form->fields [$k]->label, $form->values ); $result [$k] = G::replaceDataField ( $form->fields [$k]->label, $form->values );
if ($form->type == 'xmlform') { if ($form->type == 'xmlform') {
if ($v->type == 'checkgroup' || $v->type == 'radiogroup') { if ($v->type != 'checkgroup' && $v->type != 'radiogroup') {
$firstValueOptions = '';
foreach ($v->options as $indexOption => $valueOptions) {
$firstValueOptions = $indexOption;
break;
}
if ($firstValueOptions != '') {
$result[$k] = '<label for="form[' . $k . '][' . $firstValueOptions . ']">' . $result[$k] . '</label>';
} else {
$result[$k] = '<label for="form[' . $k . ']">' . $result[$k] . '</label>';
}
} else {
$result[$k] = '<label for="form[' . $k . ']">' . $result[$k] . '</label>'; $result[$k] = '<label for="form[' . $k . ']">' . $result[$k] . '</label>';
} }
} }

View File

@@ -7,14 +7,13 @@
convertNoticesToExceptions="true" convertNoticesToExceptions="true"
convertWarningsToExceptions="true" convertWarningsToExceptions="true"
processIsolation="false" processIsolation="false"
stopOnFailure="false" stopOnFailure="true"
syntaxCheck="false" syntaxCheck="true"
bootstrap="tests/bootstrap.php" bootstrap="tests/bootstrap.php"
> >
<testsuites> <testsuites>
<testsuite name="automated"> <testsuite name="automated">
<directory>./tests/automated/</directory> <directory>./tests/automated/</directory>
<directory>./tests/unit/backend/services/</directory>
</testsuite> </testsuite>
<!-- <!--
<testsuite name="unit"> <testsuite name="unit">
@@ -48,10 +47,6 @@
</php> </php>
<logging> <logging>
<log type="coverage-html" target="build/coverage" title="ERC"
charset="UTF-8" yui="true" highlight="true"
lowUpperBound="10" highLowerBound="20"/>
<log type="coverage-clover" target="build/logs/clover.xml"/>
<log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/> <log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
</logging> </logging>
</phpunit> </phpunit>

View File

@@ -1,860 +0,0 @@
<?php
require_once PATH_TRUNK . 'gulliver/thirdparty/smarty/libs/Smarty.class.php';
require_once PATH_TRUNK . 'gulliver/system/class.xmlform.php';
require_once PATH_TRUNK . 'gulliver/system/class.xmlDocument.php';
require_once PATH_TRUNK . 'gulliver/system/class.form.php';
require_once PATH_TRUNK . 'gulliver/system/class.dbconnection.php';
require_once PATH_TRUNK . 'gulliver/thirdparty/propel/Propel.php';
require_once PATH_TRUNK . 'gulliver/thirdparty/creole/Creole.php';
require_once PATH_TRUNK . 'gulliver/thirdparty/pear/PEAR.php';
require_once PATH_TRUNK . 'workflow/engine/classes/class.xpdl.php';
/**
* Generated by ProcessMaker Test Unit Generator on 2012-07-12 at 22:32:31.
*/
class classXpdlTest extends PHPUnit_Framework_TestCase
{
/**
* @var Xpdl
*/
protected $object;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
$this->object = new Xpdl();
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
/**
* This is the default method to test, if the class still having
* the same number of methods.
*/
public function testNumberOfMethodsInThisClass()
{
$methods = get_class_methods('Xpdl'); $this->assertTrue( count($methods) == 185);
}
/**
* @covers Xpdl::createProcessFromDataXpdl
* @todo Implement testcreateProcessFromDataXpdl().
*/
public function testcreateProcessFromDataXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createProcessFromDataXpdl', $methods ), 'exists method createProcessFromDataXpdl' );
$r = new ReflectionMethod('Xpdl', 'createProcessFromDataXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'oData');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'tasks');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::updateProcessFromDataXpdl
* @todo Implement testupdateProcessFromDataXpdl().
*/
public function testupdateProcessFromDataXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('updateProcessFromDataXpdl', $methods ), 'exists method updateProcessFromDataXpdl' );
$r = new ReflectionMethod('Xpdl', 'updateProcessFromDataXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'oData');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'tasks');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createProcessFromDataPmxml
* @todo Implement testcreateProcessFromDataPmxml().
*/
public function testcreateProcessFromDataPmxml()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createProcessFromDataPmxml', $methods ), 'exists method createProcessFromDataPmxml' );
$r = new ReflectionMethod('Xpdl', 'createProcessFromDataPmxml');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'oData');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createSubProcessFromDataXpdl
* @todo Implement testcreateSubProcessFromDataXpdl().
*/
public function testcreateSubProcessFromDataXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createSubProcessFromDataXpdl', $methods ), 'exists method createSubProcessFromDataXpdl' );
$r = new ReflectionMethod('Xpdl', 'createSubProcessFromDataXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'oData');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'tasks');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::verifyTasks
* @todo Implement testverifyTasks().
*/
public function testverifyTasks()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('verifyTasks', $methods ), 'exists method verifyTasks' );
$r = new ReflectionMethod('Xpdl', 'verifyTasks');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'sProUid');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'fieldsTasks');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createRouteRowsXpdl
* @todo Implement testcreateRouteRowsXpdl().
*/
public function testcreateRouteRowsXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createRouteRowsXpdl', $methods ), 'exists method createRouteRowsXpdl' );
$r = new ReflectionMethod('Xpdl', 'createRouteRowsXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'sProUid');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'routes');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'fieldsTasks');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
}
/**
* @covers Xpdl::createSubProcessRowsXpdl
* @todo Implement testcreateSubProcessRowsXpdl().
*/
public function testcreateSubProcessRowsXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createSubProcessRowsXpdl', $methods ), 'exists method createSubProcessRowsXpdl' );
$r = new ReflectionMethod('Xpdl', 'createSubProcessRowsXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'sProUid');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'SubProcess');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'tasks');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
}
/**
* @covers Xpdl::findIdTask
* @todo Implement testfindIdTask().
*/
public function testfindIdTask()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('findIdTask', $methods ), 'exists method findIdTask' );
$r = new ReflectionMethod('Xpdl', 'findIdTask');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'idTask');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'routes');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::xmdlProcess
* @todo Implement testxmdlProcess().
*/
public function testxmdlProcess()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('xmdlProcess', $methods ), 'exists method xmdlProcess' );
$r = new ReflectionMethod('Xpdl', 'xmdlProcess');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'sProUid');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == true);
$this->assertTrue( $params[0]->getDefaultValue() == '');
}
/**
* @covers Xpdl::createPool
* @todo Implement testcreatePool().
*/
public function testcreatePool()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createPool', $methods ), 'exists method createPool' );
$r = new ReflectionMethod('Xpdl', 'createPool');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'process');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'coordinateMaximumX');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'coordinateMaximumY');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
}
/**
* @covers Xpdl::createArtifacts
* @todo Implement testcreateArtifacts().
*/
public function testcreateArtifacts()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createArtifacts', $methods ), 'exists method createArtifacts' );
$r = new ReflectionMethod('Xpdl', 'createArtifacts');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'lanes');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'id');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createSubProcessesXpdl
* @todo Implement testcreateSubProcessesXpdl().
*/
public function testcreateSubProcessesXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createSubProcessesXpdl', $methods ), 'exists method createSubProcessesXpdl' );
$r = new ReflectionMethod('Xpdl', 'createSubProcessesXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'subProcess');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'tasks');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createActivitiesXpdl
* @todo Implement testcreateActivitiesXpdl().
*/
public function testcreateActivitiesXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createActivitiesXpdl', $methods ), 'exists method createActivitiesXpdl' );
$r = new ReflectionMethod('Xpdl', 'createActivitiesXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'tasks');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'events');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'scheduler');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
}
/**
* @covers Xpdl::createTransitionsXpdl
* @todo Implement testcreateTransitionsXpdl().
*/
public function testcreateTransitionsXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createTransitionsXpdl', $methods ), 'exists method createTransitionsXpdl' );
$r = new ReflectionMethod('Xpdl', 'createTransitionsXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'routes');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'tasks');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'taskHidden');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
}
/**
* @covers Xpdl::getProcessDataXpdl
* @todo Implement testgetProcessDataXpdl().
*/
public function testgetProcessDataXpdl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('getProcessDataXpdl', $methods ), 'exists method getProcessDataXpdl' );
$r = new ReflectionMethod('Xpdl', 'getProcessDataXpdl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'pmFilename');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::sortArray
* @todo Implement testsortArray().
*/
public function testsortArray()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('sortArray', $methods ), 'exists method sortArray' );
$r = new ReflectionMethod('Xpdl', 'sortArray');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::verifyRoutes
* @todo Implement testverifyRoutes().
*/
public function testverifyRoutes()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('verifyRoutes', $methods ), 'exists method verifyRoutes' );
$r = new ReflectionMethod('Xpdl', 'verifyRoutes');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'routeTransitions');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'endArray');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'taskHidden');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
}
/**
* @covers Xpdl::createProcess
* @todo Implement testcreateProcess().
*/
public function testcreateProcess()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createProcess', $methods ), 'exists method createProcess' );
$r = new ReflectionMethod('Xpdl', 'createProcess');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createSubProcesses
* @todo Implement testcreateSubProcesses().
*/
public function testcreateSubProcesses()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createSubProcesses', $methods ), 'exists method createSubProcesses' );
$r = new ReflectionMethod('Xpdl', 'createSubProcesses');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'contentNode');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'arrayLanes');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createTask
* @todo Implement testcreateTask().
*/
public function testcreateTask()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createTask', $methods ), 'exists method createTask' );
$r = new ReflectionMethod('Xpdl', 'createTask');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createDataTask
* @todo Implement testcreateDataTask().
*/
public function testcreateDataTask()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createDataTask', $methods ), 'exists method createDataTask' );
$r = new ReflectionMethod('Xpdl', 'createDataTask');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createRoute
* @todo Implement testcreateRoute().
*/
public function testcreateRoute()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createRoute', $methods ), 'exists method createRoute' );
$r = new ReflectionMethod('Xpdl', 'createRoute');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createSubProcess
* @todo Implement testcreateSubProcess().
*/
public function testcreateSubProcess()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createSubProcess', $methods ), 'exists method createSubProcess' );
$r = new ReflectionMethod('Xpdl', 'createSubProcess');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createGateways
* @todo Implement testcreateGateways().
*/
public function testcreateGateways()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createGateways', $methods ), 'exists method createGateways' );
$r = new ReflectionMethod('Xpdl', 'createGateways');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'routeTransitions');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'endArray');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'dataRoutes');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
$this->assertTrue( $params[3]->getName() == 'numberRoutes');
$this->assertTrue( $params[3]->isArray() == false);
$this->assertTrue( $params[3]->isOptional () == false);
$this->assertTrue( $params[4]->getName() == 'idProcess');
$this->assertTrue( $params[4]->isArray() == false);
$this->assertTrue( $params[4]->isOptional () == false);
$this->assertTrue( $params[5]->getName() == 'taskHidden');
$this->assertTrue( $params[5]->isArray() == false);
$this->assertTrue( $params[5]->isOptional () == false);
}
/**
* @covers Xpdl::createLanesPM
* @todo Implement testcreateLanesPM().
*/
public function testcreateLanesPM()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createLanesPM', $methods ), 'exists method createLanesPM' );
$r = new ReflectionMethod('Xpdl', 'createLanesPM');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'array');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'idProcess');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createLanes
* @todo Implement testcreateLanes().
*/
public function testcreateLanes()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createLanes', $methods ), 'exists method createLanes' );
$r = new ReflectionMethod('Xpdl', 'createLanes');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'lanes');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createLanesNewPM
* @todo Implement testcreateLanesNewPM().
*/
public function testcreateLanesNewPM()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createLanesNewPM', $methods ), 'exists method createLanesNewPM' );
$r = new ReflectionMethod('Xpdl', 'createLanesNewPM');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'array');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createActivities
* @todo Implement testcreateActivities().
*/
public function testcreateActivities()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createActivities', $methods ), 'exists method createActivities' );
$r = new ReflectionMethod('Xpdl', 'createActivities');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'contentNode');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'idProcess');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'activitySet');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
}
/**
* @covers Xpdl::createEventMessages
* @todo Implement testcreateEventMessages().
*/
public function testcreateEventMessages()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createEventMessages', $methods ), 'exists method createEventMessages' );
$r = new ReflectionMethod('Xpdl', 'createEventMessages');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'idProcess');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createScheduler
* @todo Implement testcreateScheduler().
*/
public function testcreateScheduler()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createScheduler', $methods ), 'exists method createScheduler' );
$r = new ReflectionMethod('Xpdl', 'createScheduler');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'idProcess');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::calculateTimeScheduler
* @todo Implement testcalculateTimeScheduler().
*/
public function testcalculateTimeScheduler()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('calculateTimeScheduler', $methods ), 'exists method calculateTimeScheduler' );
$r = new ReflectionMethod('Xpdl', 'calculateTimeScheduler');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'time');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createArrayScheduler
* @todo Implement testcreateArrayScheduler().
*/
public function testcreateArrayScheduler()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createArrayScheduler', $methods ), 'exists method createArrayScheduler' );
$r = new ReflectionMethod('Xpdl', 'createArrayScheduler');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'fields');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'idProcess');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createTransitions
* @todo Implement testcreateTransitions().
*/
public function testcreateTransitions()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createTransitions', $methods ), 'exists method createTransitions' );
$r = new ReflectionMethod('Xpdl', 'createTransitions');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'contentNode');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'dataTasks');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'arrayRoutes');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
$this->assertTrue( $params[3]->getName() == 'endArray');
$this->assertTrue( $params[3]->isArray() == false);
$this->assertTrue( $params[3]->isOptional () == false);
$this->assertTrue( $params[4]->getName() == 'startArray');
$this->assertTrue( $params[4]->isArray() == false);
$this->assertTrue( $params[4]->isOptional () == false);
$this->assertTrue( $params[5]->getName() == 'idProcess');
$this->assertTrue( $params[5]->isArray() == false);
$this->assertTrue( $params[5]->isOptional () == false);
$this->assertTrue( $params[6]->getName() == 'schedulerArray');
$this->assertTrue( $params[6]->isArray() == false);
$this->assertTrue( $params[6]->isOptional () == false);
$this->assertTrue( $params[7]->getName() == 'messages');
$this->assertTrue( $params[7]->isArray() == false);
$this->assertTrue( $params[7]->isOptional () == false);
}
/**
* @covers Xpdl::createActivity
* @todo Implement testcreateActivity().
*/
public function testcreateActivity()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createActivity', $methods ), 'exists method createActivity' );
$r = new ReflectionMethod('Xpdl', 'createActivity');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'contentNode');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createExtended
* @todo Implement testcreateExtended().
*/
public function testcreateExtended()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createExtended', $methods ), 'exists method createExtended' );
$r = new ReflectionMethod('Xpdl', 'createExtended');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'contentNode');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::findCoordinates
* @todo Implement testfindCoordinates().
*/
public function testfindCoordinates()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('findCoordinates', $methods ), 'exists method findCoordinates' );
$r = new ReflectionMethod('Xpdl', 'findCoordinates');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'contentNode');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::findCoordinatesTransition
* @todo Implement testfindCoordinatesTransition().
*/
public function testfindCoordinatesTransition()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('findCoordinatesTransition', $methods ), 'exists method findCoordinatesTransition' );
$r = new ReflectionMethod('Xpdl', 'findCoordinatesTransition');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'idRoute');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'aRoutes');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createArrayRoutes
* @todo Implement testcreateArrayRoutes().
*/
public function testcreateArrayRoutes()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createArrayRoutes', $methods ), 'exists method createArrayRoutes' );
$r = new ReflectionMethod('Xpdl', 'createArrayRoutes');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'dataTasks');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'arrayRoutes');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'aEvents');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
$this->assertTrue( $params[3]->getName() == 'aGateways');
$this->assertTrue( $params[3]->isArray() == false);
$this->assertTrue( $params[3]->isOptional () == false);
$this->assertTrue( $params[4]->getName() == 'aEnd');
$this->assertTrue( $params[4]->isArray() == false);
$this->assertTrue( $params[4]->isOptional () == false);
$this->assertTrue( $params[5]->getName() == 'idProcess');
$this->assertTrue( $params[5]->isArray() == false);
$this->assertTrue( $params[5]->isOptional () == false);
}
/**
* @covers Xpdl::convertArrayEnd
* @todo Implement testconvertArrayEnd().
*/
public function testconvertArrayEnd()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('convertArrayEnd', $methods ), 'exists method convertArrayEnd' );
$r = new ReflectionMethod('Xpdl', 'convertArrayEnd');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'aEvents');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'idProcess');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers Xpdl::createTransitionsPM
* @todo Implement testcreateTransitionsPM().
*/
public function testcreateTransitionsPM()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createTransitionsPM', $methods ), 'exists method createTransitionsPM' );
$r = new ReflectionMethod('Xpdl', 'createTransitionsPM');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'tasks');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'routes');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
$this->assertTrue( $params[2]->getName() == 'events');
$this->assertTrue( $params[2]->isArray() == false);
$this->assertTrue( $params[2]->isOptional () == false);
$this->assertTrue( $params[3]->getName() == 'countEvents');
$this->assertTrue( $params[3]->isArray() == false);
$this->assertTrue( $params[3]->isOptional () == false);
$this->assertTrue( $params[4]->getName() == 'arrayRoutes');
$this->assertTrue( $params[4]->isArray() == false);
$this->assertTrue( $params[4]->isOptional () == false);
$this->assertTrue( $params[5]->getName() == 'countRoutes');
$this->assertTrue( $params[5]->isArray() == false);
$this->assertTrue( $params[5]->isOptional () == false);
}
/**
* @covers Xpdl::super_unique
* @todo Implement testsuper_unique().
*/
public function testsuper_unique()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('super_unique', $methods ), 'exists method super_unique' );
$r = new ReflectionMethod('Xpdl', 'super_unique');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'array');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createProcessPM
* @todo Implement testcreateProcessPM().
*/
public function testcreateProcessPM()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createProcessPM', $methods ), 'exists method createProcessPM' );
$r = new ReflectionMethod('Xpdl', 'createProcessPM');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'array');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::createSubProcessesPM
* @todo Implement testcreateSubProcessesPM().
*/
public function testcreateSubProcessesPM()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('createSubProcessesPM', $methods ), 'exists method createSubProcessesPM' );
$r = new ReflectionMethod('Xpdl', 'createSubProcessesPM');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'array');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers Xpdl::saveWebEntry
* @todo Implement testsaveWebEntry().
*/
public function testsaveWebEntry()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('saveWebEntry', $methods ), 'exists method saveWebEntry' );
$r = new ReflectionMethod('Xpdl', 'saveWebEntry');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'array');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
}

View File

@@ -220,6 +220,8 @@ class processMap
if ($aRow3) { if ($aRow3) {
$aRow2['FINISH'] = ''; $aRow2['FINISH'] = '';
} }
/*
if (($aRow2['FINISH'] == null) && ($aRow1['TAS_UID'] == $sTask)) { if (($aRow2['FINISH'] == null) && ($aRow1['TAS_UID'] == $sTask)) {
$oTask->color = '#FF0000'; $oTask->color = '#FF0000';
} else { } else {
@@ -234,6 +236,21 @@ class processMap
$oTask->color = "#939598"; $oTask->color = "#939598";
} }
} }
*/
if (empty($aRow2["FINISH"]) && $aRow1["TAS_UID"] == $sTask) {
$oTask->color = "#FF0000"; //Red
} else {
if (!empty($aRow2["FINISH"])) {
$oTask->color = "#006633"; //Green
} else {
if ($aRow2["CANT"] == 0 || $oTask->derivation->type != 5) {
$oTask->color = "#939598"; //Gray
} else {
//$oTask->color = "#FF9900"; //Yellow
$oTask->color = "#FF0000"; //Red
}
}
}
} else { } else {
if ($bView && ($sApplicationUID != '') && ($iDelegation > 0) && ($sTask != '')) { if ($bView && ($sApplicationUID != '') && ($iDelegation > 0) && ($sTask != '')) {
$oCriteria = new Criteria( 'workflow' ); $oCriteria = new Criteria( 'workflow' );
@@ -257,6 +274,8 @@ class processMap
if ($aRow3) { if ($aRow3) {
$aRow2['FINISH'] = ''; $aRow2['FINISH'] = '';
} }
/*
if (($aRow2['FINISH'] == null) && ($aRow1['TAS_UID'] == $sTask)) { if (($aRow2['FINISH'] == null) && ($aRow1['TAS_UID'] == $sTask)) {
$oTask->color = '#FF0000'; $oTask->color = '#FF0000';
} else { } else {
@@ -270,6 +289,20 @@ class processMap
$oTask->color = '#939598'; $oTask->color = '#939598';
} }
} }
*/
if (empty($aRow2["FINISH"]) && $aRow1["TAS_UID"] == $sTask) {
$oTask->color = "#FF0000"; //Red
} else {
if (!empty($aRow2["FINISH"])) {
$oTask->color = "#006633"; //Green
} else {
if ($aRow2["CANT"] == 0 || $oTask->derivation->type != 5) {
$oTask->color = "#939598"; //Gray
} else {
$oTask->color = "#FF9900"; //Yellow
}
}
}
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -203,7 +203,7 @@ if($limit != 0){
return $folderArray; return $folderArray;
} }
function getFolderContent($folderID, $docIdFilter = array(), $keyword = NULL, $searchType = NULL, $limit=0, $start=0, $user='') { function getFolderContent($folderID, $docIdFilter = array(), $keyword = NULL, $searchType = NULL, $limit=0, $start=0, $user='', $onlyActive=false) {
require_once ("classes/model/AppDocument.php"); require_once ("classes/model/AppDocument.php");
require_once ("classes/model/InputDocument.php"); require_once ("classes/model/InputDocument.php");
require_once ("classes/model/OutputDocument.php"); require_once ("classes/model/OutputDocument.php");
@@ -253,6 +253,9 @@ if($limit != 0){
} }
$oCriteria->add ( AppDocumentPeer::APP_UID, $data, CRITERIA::IN ); $oCriteria->add ( AppDocumentPeer::APP_UID, $data, CRITERIA::IN );
} }
if ($onlyActive){
$oCriteria->add(AppDocumentPeer::APP_DOC_STATUS, 'ACTIVE');
}
$oCase->verifyTable (); $oCase->verifyTable ();

View File

@@ -1,23 +0,0 @@
<?php
/**
* AppSpool.php
* @package workflow.engine.classes.model
*/
require_once 'classes/model/om/BaseAppSpool.php';
/**
* Skeleton subclass for representing a row from the 'APP_SPOOL' table.
*
*
*
* You should add additional methods to this class to meet the
* application requirements. This class will only be generated as
* long as it does not already exist in the output directory.
*
* @package workflow.engine.classes.model
*/
class AppSpool extends BaseAppSpool {
} // AppSpool

View File

@@ -1,27 +0,0 @@
<?php
/**
* AppSpoolPeer.php
* @package workflow.engine.classes.model
*/
// include base peer class
require_once 'classes/model/om/BaseAppSpoolPeer.php';
// include object class
include_once 'classes/model/AppSpool.php';
/**
* Skeleton subclass for performing query and update operations on the 'APP_SPOOL' table.
*
*
*
* You should add additional methods to this class to meet the
* application requirements. This class will only be generated as
* long as it does not already exist in the output directory.
*
* @package workflow.engine.classes.model
*/
class AppSpoolPeer extends BaseAppSpoolPeer {
} // AppSpoolPeer

View File

@@ -454,11 +454,11 @@ class Process extends BaseProcess {
$this->setProAssignment ( $aData['PRO_ASSIGNMENT'] ); $this->setProAssignment ( $aData['PRO_ASSIGNMENT'] );
$this->setProShowMap ( $aData['PRO_SHOW_MAP'] ); $this->setProShowMap ( $aData['PRO_SHOW_MAP'] );
$this->setProShowMessage ( $aData['PRO_SHOW_MESSAGE'] ); $this->setProShowMessage ( $aData['PRO_SHOW_MESSAGE'] );
$this->setProSubprocess ( $aData['PRO_SUBPROCESS'] ); $this->setProSubprocess ( isset($aData['PRO_SUBPROCESS']) ? $aData['PRO_SUBPROCESS'] : '' );
$this->setProTriDeleted ( $aData['PRO_TRI_DELETED'] ); $this->setProTriDeleted ( isset($aData['PRO_TRI_DELETED']) ? $aData['PRO_TRI_DELETED'] : '' );
$this->setProTriCanceled ( $aData['PRO_TRI_CANCELED'] ); $this->setProTriCanceled ( isset($aData['PRO_TRI_CANCELED']) ? $aData['PRO_TRI_CANCELED'] : '' );
$this->setProTriPaused ( $aData['PRO_TRI_PAUSED'] ); $this->setProTriPaused ( isset($aData['PRO_TRI_PAUSED']) ? $aData['PRO_TRI_PAUSED'] : '' );
$this->setProTriReassigned( $aData['PRO_TRI_REASSIGNED'] ); $this->setProTriReassigned( isset($aData['PRO_TRI_REASSIGNED']) ? $aData['PRO_TRI_REASSIGNED'] : '' );
$this->setProShowDelegate ( $aData['PRO_SHOW_DELEGATE'] ); $this->setProShowDelegate ( $aData['PRO_SHOW_DELEGATE'] );
$this->setProShowDynaform ( $aData['PRO_SHOW_DYNAFORM'] ); $this->setProShowDynaform ( $aData['PRO_SHOW_DYNAFORM'] );

View File

@@ -1,79 +0,0 @@
<?php
require_once 'propel/map/MapBuilder.php';
include_once 'creole/CreoleTypes.php';
/**
* This class adds structure of 'APP_SPOOL' table to 'workflow' DatabaseMap object.
*
*
*
* These statically-built map classes are used by Propel to do runtime db structure discovery.
* For example, the createSelectSql() method checks the type of a given column used in an
* ORDER BY clause to know whether it needs to apply SQL to make the ORDER BY case-insensitive
* (i.e. if it's a text column type).
*
* @package classes.model.map
*/
class AppSpoolMapBuilder {
/**
* The (dot-path) name of this class
*/
const CLASS_NAME = 'classes.model.map.AppSpoolMapBuilder';
/**
* The database map.
*/
private $dbMap;
/**
* Tells us if this DatabaseMapBuilder is built so that we
* don't have to re-build it every time.
*
* @return boolean true if this DatabaseMapBuilder is built, false otherwise.
*/
public function isBuilt()
{
return ($this->dbMap !== null);
}
/**
* Gets the databasemap this map builder built.
*
* @return the databasemap
*/
public function getDatabaseMap()
{
return $this->dbMap;
}
/**
* The doBuild() method builds the DatabaseMap
*
* @return void
* @throws PropelException
*/
public function doBuild()
{
$this->dbMap = Propel::getDatabaseMap('workflow');
$tMap = $this->dbMap->addTable('APP_SPOOL');
$tMap->setPhpName('AppSpool');
$tMap->setUseIdGenerator(false);
$tMap->addPrimaryKey('ID', 'Id', 'int', CreoleTypes::SMALLINT, true, 6);
$tMap->addColumn('SENDER', 'Sender', 'string', CreoleTypes::VARCHAR, true, 96);
$tMap->addColumn('FILE', 'File', 'string', CreoleTypes::LONGVARCHAR, true, null);
$tMap->addColumn('NOW', 'Now', 'string', CreoleTypes::VARCHAR, true, 16);
$tMap->addColumn('STATUS', 'Status', 'string', CreoleTypes::VARCHAR, true, 16);
} // doBuild()
} // AppSpoolMapBuilder

View File

@@ -1,717 +0,0 @@
<?php
/**
* BaseAppSpool.php
* @package workflow.classes.model.om
*/
require_once 'propel/om/BaseObject.php';
require_once 'propel/om/Persistent.php';
include_once 'propel/util/Criteria.php';
include_once 'classes/model/AppSpoolPeer.php';
/**
* Base class that represents a row from the 'APP_SPOOL' table.
*
*
*
* @package workflow.classes.model.om
*/
abstract class BaseAppSpool extends BaseObject implements Persistent {
/**
* The Peer class.
* Instance provides a convenient way of calling static methods on a class
* that calling code may not be able to identify.
* @var AppSpoolPeer
*/
protected static $peer;
/**
* The value for the id field.
* @var int
*/
protected $id;
/**
* The value for the sender field.
* @var string
*/
protected $sender;
/**
* The value for the file field.
* @var string
*/
protected $file;
/**
* The value for the now field.
* @var string
*/
protected $now;
/**
* The value for the status field.
* @var string
*/
protected $status;
/**
* Flag to prevent endless save loop, if this object is referenced
* by another object which falls in this transaction.
* @var boolean
*/
protected $alreadyInSave = false;
/**
* Flag to prevent endless validation loop, if this object is referenced
* by another object which falls in this transaction.
* @var boolean
*/
protected $alreadyInValidation = false;
/**
* Get the [id] column value.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Get the [sender] column value.
*
* @return string
*/
public function getSender()
{
return $this->sender;
}
/**
* Get the [file] column value.
*
* @return string
*/
public function getFile()
{
return $this->file;
}
/**
* Get the [now] column value.
*
* @return string
*/
public function getNow()
{
return $this->now;
}
/**
* Get the [status] column value.
*
* @return string
*/
public function getStatus()
{
return $this->status;
}
/**
* Set the value of [id] column.
*
* @param int $v new value
* @return void
*/
public function setId($v)
{
// Since the native PHP type for this column is integer,
// we will cast the input value to an int (if it is not).
if ($v !== null && !is_int($v) && is_numeric($v)) {
$v = (int) $v;
}
if ($this->id !== $v) {
$this->id = $v;
$this->modifiedColumns[] = AppSpoolPeer::ID;
}
} // setId()
/**
* Set the value of [sender] column.
*
* @param string $v new value
* @return void
*/
public function setSender($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->sender !== $v) {
$this->sender = $v;
$this->modifiedColumns[] = AppSpoolPeer::SENDER;
}
} // setSender()
/**
* Set the value of [file] column.
*
* @param string $v new value
* @return void
*/
public function setFile($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->file !== $v) {
$this->file = $v;
$this->modifiedColumns[] = AppSpoolPeer::FILE;
}
} // setFile()
/**
* Set the value of [now] column.
*
* @param string $v new value
* @return void
*/
public function setNow($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->now !== $v) {
$this->now = $v;
$this->modifiedColumns[] = AppSpoolPeer::NOW;
}
} // setNow()
/**
* Set the value of [status] column.
*
* @param string $v new value
* @return void
*/
public function setStatus($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->status !== $v) {
$this->status = $v;
$this->modifiedColumns[] = AppSpoolPeer::STATUS;
}
} // setStatus()
/**
* Hydrates (populates) the object variables with values from the database resultset.
*
* An offset (1-based "start column") is specified so that objects can be hydrated
* with a subset of the columns in the resultset rows. This is needed, for example,
* for results of JOIN queries where the resultset row includes columns from two or
* more tables.
*
* @param ResultSet $rs The ResultSet class with cursor advanced to desired record pos.
* @param int $startcol 1-based offset column which indicates which restultset column to start with.
* @return int next starting column
* @throws PropelException - Any caught Exception will be rewrapped as a PropelException.
*/
public function hydrate(ResultSet $rs, $startcol = 1)
{
try {
$this->id = $rs->getInt($startcol + 0);
$this->sender = $rs->getString($startcol + 1);
$this->file = $rs->getString($startcol + 2);
$this->now = $rs->getString($startcol + 3);
$this->status = $rs->getString($startcol + 4);
$this->resetModified();
$this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 5; // 5 = AppSpoolPeer::NUM_COLUMNS - AppSpoolPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) {
throw new PropelException("Error populating AppSpool object", $e);
}
}
/**
* Removes this object from datastore and sets delete attribute.
*
* @param Connection $con
* @return void
* @throws PropelException
* @see BaseObject::setDeleted()
* @see BaseObject::isDeleted()
*/
public function delete($con = null)
{
if ($this->isDeleted()) {
throw new PropelException("This object has already been deleted.");
}
if ($con === null) {
$con = Propel::getConnection(AppSpoolPeer::DATABASE_NAME);
}
try {
$con->begin();
AppSpoolPeer::doDelete($this, $con);
$this->setDeleted(true);
$con->commit();
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}
/**
* Stores the object in the database. If the object is new,
* it inserts it; otherwise an update is performed. This method
* wraps the doSave() worker method in a transaction.
*
* @param Connection $con
* @return int The number of rows affected by this insert/update and any referring fk objects' save() operations.
* @throws PropelException
* @see doSave()
*/
public function save($con = null)
{
if ($this->isDeleted()) {
throw new PropelException("You cannot save an object that has been deleted.");
}
if ($con === null) {
$con = Propel::getConnection(AppSpoolPeer::DATABASE_NAME);
}
try {
$con->begin();
$affectedRows = $this->doSave($con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}
/**
* Stores the object in the database.
*
* If the object is new, it inserts it; otherwise an update is performed.
* All related objects are also updated in this method.
*
* @param Connection $con
* @return int The number of rows affected by this insert/update and any referring fk objects' save() operations.
* @throws PropelException
* @see save()
*/
protected function doSave($con)
{
$affectedRows = 0; // initialize var to track total num of affected rows
if (!$this->alreadyInSave) {
$this->alreadyInSave = true;
// If this object has been modified, then save it to the database.
if ($this->isModified()) {
if ($this->isNew()) {
$pk = AppSpoolPeer::doInsert($this, $con);
$affectedRows += 1; // we are assuming that there is only 1 row per doInsert() which
// should always be true here (even though technically
// BasePeer::doInsert() can insert multiple rows).
$this->setNew(false);
} else {
$affectedRows += AppSpoolPeer::doUpdate($this, $con);
}
$this->resetModified(); // [HL] After being saved an object is no longer 'modified'
}
$this->alreadyInSave = false;
}
return $affectedRows;
} // doSave()
/**
* Array of ValidationFailed objects.
* @var array ValidationFailed[]
*/
protected $validationFailures = array();
/**
* Gets any ValidationFailed objects that resulted from last call to validate().
*
*
* @return array ValidationFailed[]
* @see validate()
*/
public function getValidationFailures()
{
return $this->validationFailures;
}
/**
* Validates the objects modified field values and all objects related to this table.
*
* If $columns is either a column name or an array of column names
* only those columns are validated.
*
* @param mixed $columns Column name or an array of column names.
* @return boolean Whether all columns pass validation.
* @see doValidate()
* @see getValidationFailures()
*/
public function validate($columns = null)
{
$res = $this->doValidate($columns);
if ($res === true) {
$this->validationFailures = array();
return true;
} else {
$this->validationFailures = $res;
return false;
}
}
/**
* This function performs the validation work for complex object models.
*
* In addition to checking the current object, all related objects will
* also be validated. If all pass then <code>true</code> is returned; otherwise
* an aggreagated array of ValidationFailed objects will be returned.
*
* @param array $columns Array of column names to validate.
* @return mixed <code>true</code> if all validations pass; array of <code>ValidationFailed</code> objets otherwise.
*/
protected function doValidate($columns = null)
{
if (!$this->alreadyInValidation) {
$this->alreadyInValidation = true;
$retval = null;
$failureMap = array();
if (($retval = AppSpoolPeer::doValidate($this, $columns)) !== true) {
$failureMap = array_merge($failureMap, $retval);
}
$this->alreadyInValidation = false;
}
return (!empty($failureMap) ? $failureMap : true);
}
/**
* Retrieves a field from the object by name passed in as a string.
*
* @param string $name name
* @param string $type The type of fieldname the $name is of:
* one of the class type constants TYPE_PHPNAME,
* TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
* @return mixed Value of field.
*/
public function getByName($name, $type = BasePeer::TYPE_PHPNAME)
{
$pos = AppSpoolPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
return $this->getByPosition($pos);
}
/**
* Retrieves a field from the object by Position as specified in the xml schema.
* Zero-based.
*
* @param int $pos position in xml schema
* @return mixed Value of field at $pos
*/
public function getByPosition($pos)
{
switch($pos) {
case 0:
return $this->getId();
break;
case 1:
return $this->getSender();
break;
case 2:
return $this->getFile();
break;
case 3:
return $this->getNow();
break;
case 4:
return $this->getStatus();
break;
default:
return null;
break;
} // switch()
}
/**
* Exports the object as an array.
*
* You can specify the key type of the array by passing one of the class
* type constants.
*
* @param string $keyType One of the class type constants TYPE_PHPNAME,
* TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
* @return an associative array containing the field names (as keys) and field values
*/
public function toArray($keyType = BasePeer::TYPE_PHPNAME)
{
$keys = AppSpoolPeer::getFieldNames($keyType);
$result = array(
$keys[0] => $this->getId(),
$keys[1] => $this->getSender(),
$keys[2] => $this->getFile(),
$keys[3] => $this->getNow(),
$keys[4] => $this->getStatus(),
);
return $result;
}
/**
* Sets a field from the object by name passed in as a string.
*
* @param string $name peer name
* @param mixed $value field value
* @param string $type The type of fieldname the $name is of:
* one of the class type constants TYPE_PHPNAME,
* TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
* @return void
*/
public function setByName($name, $value, $type = BasePeer::TYPE_PHPNAME)
{
$pos = AppSpoolPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
return $this->setByPosition($pos, $value);
}
/**
* Sets a field from the object by Position as specified in the xml schema.
* Zero-based.
*
* @param int $pos position in xml schema
* @param mixed $value field value
* @return void
*/
public function setByPosition($pos, $value)
{
switch($pos) {
case 0:
$this->setId($value);
break;
case 1:
$this->setSender($value);
break;
case 2:
$this->setFile($value);
break;
case 3:
$this->setNow($value);
break;
case 4:
$this->setStatus($value);
break;
} // switch()
}
/**
* Populates the object using an array.
*
* This is particularly useful when populating an object from one of the
* request arrays (e.g. $_POST). This method goes through the column
* names, checking to see whether a matching key exists in populated
* array. If so the setByName() method is called for that column.
*
* You can specify the key type of the array by additionally passing one
* of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME,
* TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId')
*
* @param array $arr An array to populate the object from.
* @param string $keyType The type of keys the array uses.
* @return void
*/
public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
{
$keys = AppSpoolPeer::getFieldNames($keyType);
if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]);
if (array_key_exists($keys[1], $arr)) $this->setSender($arr[$keys[1]]);
if (array_key_exists($keys[2], $arr)) $this->setFile($arr[$keys[2]]);
if (array_key_exists($keys[3], $arr)) $this->setNow($arr[$keys[3]]);
if (array_key_exists($keys[4], $arr)) $this->setStatus($arr[$keys[4]]);
}
/**
* Build a Criteria object containing the values of all modified columns in this object.
*
* @return Criteria The Criteria object containing all modified values.
*/
public function buildCriteria()
{
$criteria = new Criteria(AppSpoolPeer::DATABASE_NAME);
if ($this->isColumnModified(AppSpoolPeer::ID)) $criteria->add(AppSpoolPeer::ID, $this->id);
if ($this->isColumnModified(AppSpoolPeer::SENDER)) $criteria->add(AppSpoolPeer::SENDER, $this->sender);
if ($this->isColumnModified(AppSpoolPeer::FILE)) $criteria->add(AppSpoolPeer::FILE, $this->file);
if ($this->isColumnModified(AppSpoolPeer::NOW)) $criteria->add(AppSpoolPeer::NOW, $this->now);
if ($this->isColumnModified(AppSpoolPeer::STATUS)) $criteria->add(AppSpoolPeer::STATUS, $this->status);
return $criteria;
}
/**
* Builds a Criteria object containing the primary key for this object.
*
* Unlike buildCriteria() this method includes the primary key values regardless
* of whether or not they have been modified.
*
* @return Criteria The Criteria object containing value(s) for primary key(s).
*/
public function buildPkeyCriteria()
{
$criteria = new Criteria(AppSpoolPeer::DATABASE_NAME);
$criteria->add(AppSpoolPeer::ID, $this->id);
return $criteria;
}
/**
* Returns the primary key for this object (row).
* @return int
*/
public function getPrimaryKey()
{
return $this->getId();
}
/**
* Generic method to set the primary key (id column).
*
* @param int $key Primary key.
* @return void
*/
public function setPrimaryKey($key)
{
$this->setId($key);
}
/**
* Sets contents of passed object to values from current object.
*
* If desired, this method can also make copies of all associated (fkey referrers)
* objects.
*
* @param object $copyObj An object of AppSpool (or compatible) type.
* @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row.
* @throws PropelException
*/
public function copyInto($copyObj, $deepCopy = false)
{
$copyObj->setSender($this->sender);
$copyObj->setFile($this->file);
$copyObj->setNow($this->now);
$copyObj->setStatus($this->status);
$copyObj->setNew(true);
$copyObj->setId(NULL); // this is a pkey column, so set to default value
}
/**
* Makes a copy of this object that will be inserted as a new row in table when saved.
* It creates a new object filling in the simple attributes, but skipping any primary
* keys that are defined for the table.
*
* If desired, this method can also make copies of all associated (fkey referrers)
* objects.
*
* @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row.
* @return AppSpool Clone of current object.
* @throws PropelException
*/
public function copy($deepCopy = false)
{
// we use get_class(), because this might be a subclass
$clazz = get_class($this);
$copyObj = new $clazz();
$this->copyInto($copyObj, $deepCopy);
return $copyObj;
}
/**
* Returns a peer instance associated with this om.
*
* Since Peer classes are not to have any instance attributes, this method returns the
* same instance for all member of this class. The method could therefore
* be static, but this would prevent one from overriding the behavior.
*
* @return AppSpoolPeer
*/
public function getPeer()
{
if (self::$peer === null) {
self::$peer = new AppSpoolPeer();
}
return self::$peer;
}
} // BaseAppSpool

View File

@@ -1,589 +0,0 @@
<?php
/**
* BaseAppSpoolPeer.php
* @package workflow.classes.model.om
*/
require_once 'propel/util/BasePeer.php';
// The object class -- needed for instanceof checks in this class.
// actual class may be a subclass -- as returned by AppSpoolPeer::getOMClass()
include_once 'classes/model/AppSpool.php';
/**
* Base static class for performing query and update operations on the 'APP_SPOOL' table.
*
*
*
* @package workflow.classes.model.om
*/
abstract class BaseAppSpoolPeer {
/** the default database name for this class */
const DATABASE_NAME = 'workflow';
/** the table name for this class */
const TABLE_NAME = 'APP_SPOOL';
/** A class that can be returned by this peer. */
const CLASS_DEFAULT = 'classes.model.AppSpool';
/** The total number of columns. */
const NUM_COLUMNS = 5;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
/** the column name for the ID field */
const ID = 'APP_SPOOL.ID';
/** the column name for the SENDER field */
const SENDER = 'APP_SPOOL.SENDER';
/** the column name for the FILE field */
const FILE = 'APP_SPOOL.FILE';
/** the column name for the NOW field */
const NOW = 'APP_SPOOL.NOW';
/** the column name for the STATUS field */
const STATUS = 'APP_SPOOL.STATUS';
/** The PHP to DB Name Mapping */
private static $phpNameMap = null;
/**
* holds an array of fieldnames
*
* first dimension keys are the type constants
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('Id', 'Sender', 'File', 'Now', 'Status', ),
BasePeer::TYPE_COLNAME => array (AppSpoolPeer::ID, AppSpoolPeer::SENDER, AppSpoolPeer::FILE, AppSpoolPeer::NOW, AppSpoolPeer::STATUS, ),
BasePeer::TYPE_FIELDNAME => array ('id', 'sender', 'file', 'now', 'status', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, )
);
/**
* holds an array of keys for quick access to the fieldnames array
*
* first dimension keys are the type constants
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('Id' => 0, 'Sender' => 1, 'File' => 2, 'Now' => 3, 'Status' => 4, ),
BasePeer::TYPE_COLNAME => array (AppSpoolPeer::ID => 0, AppSpoolPeer::SENDER => 1, AppSpoolPeer::FILE => 2, AppSpoolPeer::NOW => 3, AppSpoolPeer::STATUS => 4, ),
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'sender' => 1, 'file' => 2, 'now' => 3, 'status' => 4, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, )
);
/**
* @return MapBuilder the map builder for this peer
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function getMapBuilder()
{
include_once 'classes/model/map/AppSpoolMapBuilder.php';
return BasePeer::getMapBuilder('classes.model.map.AppSpoolMapBuilder');
}
/**
* Gets a map (hash) of PHP names to DB column names.
*
* @return array The PHP to DB name map for this peer
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
* @deprecated Use the getFieldNames() and translateFieldName() methods instead of this.
*/
public static function getPhpNameMap()
{
if (self::$phpNameMap === null) {
$map = AppSpoolPeer::getTableMap();
$columns = $map->getColumns();
$nameMap = array();
foreach ($columns as $column) {
$nameMap[$column->getPhpName()] = $column->getColumnName();
}
self::$phpNameMap = $nameMap;
}
return self::$phpNameMap;
}
/**
* Translates a fieldname to another type
*
* @param string $name field name
* @param string $fromType One of the class type constants TYPE_PHPNAME,
* TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
* @param string $toType One of the class type constants
* @return string translated name of the field.
*/
static public function translateFieldName($name, $fromType, $toType)
{
$toNames = self::getFieldNames($toType);
$key = isset(self::$fieldKeys[$fromType][$name]) ? self::$fieldKeys[$fromType][$name] : null;
if ($key === null) {
throw new PropelException("'$name' could not be found in the field names of type '$fromType'. These are: " . print_r(self::$fieldKeys[$fromType], true));
}
return $toNames[$key];
}
/**
* Returns an array of of field names.
*
* @param string $type The type of fieldnames to return:
* One of the class type constants TYPE_PHPNAME,
* TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
* @return array A list of field names
*/
static public function getFieldNames($type = BasePeer::TYPE_PHPNAME)
{
if (!array_key_exists($type, self::$fieldNames)) {
throw new PropelException('Method getFieldNames() expects the parameter $type to be one of the class constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM. ' . $type . ' was given.');
}
return self::$fieldNames[$type];
}
/**
* Convenience method which changes table.column to alias.column.
*
* Using this method you can maintain SQL abstraction while using column aliases.
* <code>
* $c->addAlias("alias1", TablePeer::TABLE_NAME);
* $c->addJoin(TablePeer::alias("alias1", TablePeer::PRIMARY_KEY_COLUMN), TablePeer::PRIMARY_KEY_COLUMN);
* </code>
* @param string $alias The alias for the current table.
* @param string $column The column name for current table. (i.e. AppSpoolPeer::COLUMN_NAME).
* @return string
*/
public static function alias($alias, $column)
{
return str_replace(AppSpoolPeer::TABLE_NAME.'.', $alias.'.', $column);
}
/**
* Add all the columns needed to create a new object.
*
* Note: any columns that were marked with lazyLoad="true" in the
* XML schema will not be added to the select list and only loaded
* on demand.
*
* @param criteria object containing the columns to add.
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function addSelectColumns(Criteria $criteria)
{
$criteria->addSelectColumn(AppSpoolPeer::ID);
$criteria->addSelectColumn(AppSpoolPeer::SENDER);
$criteria->addSelectColumn(AppSpoolPeer::FILE);
$criteria->addSelectColumn(AppSpoolPeer::NOW);
$criteria->addSelectColumn(AppSpoolPeer::STATUS);
}
const COUNT = 'COUNT(APP_SPOOL.ID)';
const COUNT_DISTINCT = 'COUNT(DISTINCT APP_SPOOL.ID)';
/**
* Returns the number of rows matching criteria.
*
* @param Criteria $criteria
* @param boolean $distinct Whether to select only distinct columns (You can also set DISTINCT modifier in Criteria).
* @param Connection $con
* @return int Number of matching rows.
*/
public static function doCount(Criteria $criteria, $distinct = false, $con = null)
{
// we're going to modify criteria, so copy it first
$criteria = clone $criteria;
// clear out anything that might confuse the ORDER BY clause
$criteria->clearSelectColumns()->clearOrderByColumns();
if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
$criteria->addSelectColumn(AppSpoolPeer::COUNT_DISTINCT);
} else {
$criteria->addSelectColumn(AppSpoolPeer::COUNT);
}
// just in case we're grouping: add those columns to the select statement
foreach($criteria->getGroupByColumns() as $column)
{
$criteria->addSelectColumn($column);
}
$rs = AppSpoolPeer::doSelectRS($criteria, $con);
if ($rs->next()) {
return $rs->getInt(1);
} else {
// no rows returned; we infer that means 0 matches.
return 0;
}
}
/**
* Method to select one object from the DB.
*
* @param Criteria $criteria object used to create the SELECT statement.
* @param Connection $con
* @return AppSpool
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doSelectOne(Criteria $criteria, $con = null)
{
$critcopy = clone $criteria;
$critcopy->setLimit(1);
$objects = AppSpoolPeer::doSelect($critcopy, $con);
if ($objects) {
return $objects[0];
}
return null;
}
/**
* Method to do selects.
*
* @param Criteria $criteria The Criteria object used to build the SELECT statement.
* @param Connection $con
* @return array Array of selected Objects
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doSelect(Criteria $criteria, $con = null)
{
return AppSpoolPeer::populateObjects(AppSpoolPeer::doSelectRS($criteria, $con));
}
/**
* Prepares the Criteria object and uses the parent doSelect()
* method to get a ResultSet.
*
* Use this method directly if you want to just get the resultset
* (instead of an array of objects).
*
* @param Criteria $criteria The Criteria object used to build the SELECT statement.
* @param Connection $con the connection to use
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
* @return ResultSet The resultset object with numerically-indexed fields.
* @see BasePeer::doSelect()
*/
public static function doSelectRS(Criteria $criteria, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(self::DATABASE_NAME);
}
if (!$criteria->getSelectColumns()) {
$criteria = clone $criteria;
AppSpoolPeer::addSelectColumns($criteria);
}
// Set the correct dbName
$criteria->setDbName(self::DATABASE_NAME);
// BasePeer returns a Creole ResultSet, set to return
// rows indexed numerically.
return BasePeer::doSelect($criteria, $con);
}
/**
* The returned array will contain objects of the default type or
* objects that inherit from the default.
*
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function populateObjects(ResultSet $rs)
{
$results = array();
// set the class once to avoid overhead in the loop
$cls = AppSpoolPeer::getOMClass();
$cls = Propel::import($cls);
// populate the object(s)
while($rs->next()) {
$obj = new $cls();
$obj->hydrate($rs);
$results[] = $obj;
}
return $results;
}
/**
* Returns the TableMap related to this peer.
* This method is not needed for general use but a specific application could have a need.
* @return TableMap
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function getTableMap()
{
return Propel::getDatabaseMap(self::DATABASE_NAME)->getTable(self::TABLE_NAME);
}
/**
* The class that the Peer will make instances of.
*
* This uses a dot-path notation which is tranalted into a path
* relative to a location on the PHP include_path.
* (e.g. path.to.MyClass -> 'path/to/MyClass.php')
*
* @return string path.to.ClassName
*/
public static function getOMClass()
{
return AppSpoolPeer::CLASS_DEFAULT;
}
/**
* Method perform an INSERT on the database, given a AppSpool or Criteria object.
*
* @param mixed $values Criteria or AppSpool object containing data that is used to create the INSERT statement.
* @param Connection $con the connection to use
* @return mixed The new primary key.
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doInsert($values, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(self::DATABASE_NAME);
}
if ($values instanceof Criteria) {
$criteria = clone $values; // rename for clarity
} else {
$criteria = $values->buildCriteria(); // build Criteria from AppSpool object
}
// Set the correct dbName
$criteria->setDbName(self::DATABASE_NAME);
try {
// use transaction because $criteria could contain info
// for more than one table (I guess, conceivably)
$con->begin();
$pk = BasePeer::doInsert($criteria, $con);
$con->commit();
} catch(PropelException $e) {
$con->rollback();
throw $e;
}
return $pk;
}
/**
* Method perform an UPDATE on the database, given a AppSpool or Criteria object.
*
* @param mixed $values Criteria or AppSpool object containing data that is used to create the UPDATE statement.
* @param Connection $con The connection to use (specify Connection object to exert more control over transactions).
* @return int The number of affected rows (if supported by underlying database driver).
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doUpdate($values, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(self::DATABASE_NAME);
}
$selectCriteria = new Criteria(self::DATABASE_NAME);
if ($values instanceof Criteria) {
$criteria = clone $values; // rename for clarity
$comparison = $criteria->getComparison(AppSpoolPeer::ID);
$selectCriteria->add(AppSpoolPeer::ID, $criteria->remove(AppSpoolPeer::ID), $comparison);
} else { // $values is AppSpool object
$criteria = $values->buildCriteria(); // gets full criteria
$selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s)
}
// set the correct dbName
$criteria->setDbName(self::DATABASE_NAME);
return BasePeer::doUpdate($selectCriteria, $criteria, $con);
}
/**
* Method to DELETE all rows from the APP_SPOOL table.
*
* @return int The number of affected rows (if supported by underlying database driver).
*/
public static function doDeleteAll($con = null)
{
if ($con === null) {
$con = Propel::getConnection(self::DATABASE_NAME);
}
$affectedRows = 0; // initialize var to track total num of affected rows
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con->begin();
$affectedRows += BasePeer::doDeleteAll(AppSpoolPeer::TABLE_NAME, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}
/**
* Method perform a DELETE on the database, given a AppSpool or Criteria object OR a primary key value.
*
* @param mixed $values Criteria or AppSpool object or primary key or array of primary keys
* which is used to create the DELETE statement
* @param Connection $con the connection to use
* @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows
* if supported by native driver or if emulated using Propel.
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doDelete($values, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(AppSpoolPeer::DATABASE_NAME);
}
if ($values instanceof Criteria) {
$criteria = clone $values; // rename for clarity
} elseif ($values instanceof AppSpool) {
$criteria = $values->buildPkeyCriteria();
} else {
// it must be the primary key
$criteria = new Criteria(self::DATABASE_NAME);
$criteria->add(AppSpoolPeer::ID, (array) $values, Criteria::IN);
}
// Set the correct dbName
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0; // initialize var to track total num of affected rows
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con->begin();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}
/**
* Validates all modified columns of given AppSpool object.
* If parameter $columns is either a single column name or an array of column names
* than only those columns are validated.
*
* NOTICE: This does not apply to primary or foreign keys for now.
*
* @param AppSpool $obj The object to validate.
* @param mixed $cols Column name or array of column names.
*
* @return mixed TRUE if all columns are valid or the error message of the first invalid column.
*/
public static function doValidate(AppSpool $obj, $cols = null)
{
$columns = array();
if ($cols) {
$dbMap = Propel::getDatabaseMap(AppSpoolPeer::DATABASE_NAME);
$tableMap = $dbMap->getTable(AppSpoolPeer::TABLE_NAME);
if (! is_array($cols)) {
$cols = array($cols);
}
foreach($cols as $colName) {
if ($tableMap->containsColumn($colName)) {
$get = 'get' . $tableMap->getColumn($colName)->getPhpName();
$columns[$colName] = $obj->$get();
}
}
} else {
}
return BasePeer::doValidate(AppSpoolPeer::DATABASE_NAME, AppSpoolPeer::TABLE_NAME, $columns);
}
/**
* Retrieve a single object by pkey.
*
* @param mixed $pk the primary key.
* @param Connection $con the connection to use
* @return AppSpool
*/
public static function retrieveByPK($pk, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(self::DATABASE_NAME);
}
$criteria = new Criteria(AppSpoolPeer::DATABASE_NAME);
$criteria->add(AppSpoolPeer::ID, $pk);
$v = AppSpoolPeer::doSelect($criteria, $con);
return !empty($v) > 0 ? $v[0] : null;
}
/**
* Retrieve multiple objects by pkey.
*
* @param array $pks List of primary keys
* @param Connection $con the connection to use
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function retrieveByPKs($pks, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(self::DATABASE_NAME);
}
$objs = null;
if (empty($pks)) {
$objs = array();
} else {
$criteria = new Criteria();
$criteria->add(AppSpoolPeer::ID, $pks, Criteria::IN);
$objs = AppSpoolPeer::doSelect($criteria, $con);
}
return $objs;
}
} // BaseAppSpoolPeer
// static code to register the map builder for this Peer with the main Propel class
if (Propel::isInit()) {
// the MapBuilder classes register themselves with Propel during initialization
// so we need to load them here.
try {
BaseAppSpoolPeer::getMapBuilder();
} catch (Exception $e) {
Propel::log('Could not initialize Peer: ' . $e->getMessage(), Propel::LOG_ERR);
}
} else {
// even if Propel is not yet initialized, the map builder class can be registered
// now and then it will be loaded when Propel initializes.
require_once 'classes/model/map/AppSpoolMapBuilder.php';
Propel::registerMapBuilder('classes.model.map.AppSpoolMapBuilder');
}

View File

@@ -1,60 +0,0 @@
<?php
/**
* BPMN Designer v1.1
* @date Feb 2th, 2011
* @author Erik A. O. <erik@colosa.com>
*/
class BpmnDesigner extends Controller
{
function index($httpData)
{
if( ! isset($httpData->id) )
throw new Exception('The Process ID was not set!');
require_once 'classes/model/Process.php';
$process = ProcessPeer::retrieveByPK($httpData->id);
if( get_class($process) != 'Process' ) {
throw new Exception("The Process with UID: {$httpData->id} doesn't exist!");
}
$_SESSION['PROCESS'] = $httpData->id;
$_SESSION['PROCESSMAP'] = 'BPMN';
$this->includeExtJS('bpmn/MyWorkflow',true );
$this->includeExtJS('bpmn/pmosExt', true );
$this->includeExtJS('bpmn/TaskContext', true );
$this->includeExtJS('bpmn/designerComponents', true );
$this->includeExtJS('bpmn/designer', true );
$this->includeExtJS('bpmn/Annotation',true );
$this->includeExtJS('bpmn/bpmnShapes', true);
$this->includeExtJS('bpmn/EventEmptyStart');
$this->includeExtJS('bpmn/EventMessageStart');
$this->includeExtJS('bpmn/EventTimerStart');
$this->includeExtJS('bpmn/EventEmptyInter');
$this->includeExtJS('bpmn/EventMessageRecInter');
$this->includeExtJS('bpmn/EventMessageSendInter');
$this->includeExtJS('bpmn/EventTimerInter');
$this->includeExtJS('bpmn/EventEmptyEnd');
$this->includeExtJS('bpmn/EventMessageEnd');
$this->includeExtJS('bpmn/GatewayInclusive' );
$this->includeExtJS('bpmn/GatewayExclusiveData');
$this->includeExtJS('bpmn/GatewayParallel' );
$this->includeExtJS('bpmn/GridPanel');
$this->includeExtJS('bpmn/SubProcess' );
$this->includeExtJS('bpmn/ProcessOptions',true);
$this->includeExtJS('bpmn/ProcessMapContext', true );
$this->includeExtJS('bpmn/ProcessOptions', true);
$this->setJSVar('pro_uid', $httpData->id);
$this->setJSVar('pro_title', $process->getProTitle());
$this->setView('bpmn/designer');
G::RenderPage('publish', 'extJs');
}
}

View File

@@ -1,255 +0,0 @@
<?php
/**
* BpmnProxy Controller
* @author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
*/
class BpmnProxy extends HttpProxyController
{
function openProcess($httpData)
{
G::LoadClass('xpdl');
$processUID = $httpData->PRO_UID;
$oProcess = new Xpdl();
$fields = $oProcess->serializeProcess($processUID);
$oData = unserialize($fields);
$arrayTasks = array();
$countTasks = 0;
$countSubProcess= 0;
$arrayEvents = array();
$arraySubProcess= array();
$count = 0;
$countRoutes = 0;
$arrayRoutes = array();
$process = array();
$process = $oProcess->createProcessPM($oData->process);
foreach($oData->tasks as $id => $value) {
if($value['TAS_TYPE'] == 'SUBPROCESS'){
$arraySubProcess[$countSubProcess]['0'] = $value['TAS_UID'];
$arraySubProcess[$countSubProcess]['1'] = $value['TAS_TITLE'];
$arraySubProcess[$countSubProcess]['2'] = $value['TAS_POSX'];
$arraySubProcess[$countSubProcess]['3'] = $value['TAS_POSY'];
$countSubProcess = $countSubProcess + 1;
} else {
$arrayTasks[$countTasks]['0'] = $value['TAS_UID'];
$arrayTasks[$countTasks]['1'] = $value['TAS_TITLE'];
$arrayTasks[$countTasks]['2'] = $value['TAS_POSX'];
$arrayTasks[$countTasks]['3'] = $value['TAS_POSY'];
$arrayTasks[$countTasks]['4'] = $value['TAS_WIDTH'];
$arrayTasks[$countTasks]['5'] = $value['TAS_HEIGHT'];
$arrayTasks[$countTasks]['6'] = $value['TAS_BOUNDARY'];
if($value['TAS_START'] == 'TRUE') {
$arrayEvents[$count]['0'] = G::generateUniqueID();
if($value['TAS_EVN_UID'] == '') {
$arrayEvents[$count]['1'] = 'bpmnEventEmptyStart';
} else {
foreach($oData->event as $eventid => $val){
if($val['EVN_UID'] == $value['TAS_EVN_UID']) {
$arrayEvents[$count]['0'] = $val['EVN_UID'];
$arrayEvents[$count]['1'] = $val['EVN_TYPE'];
break;
}
}
}
$arrayEvents[$count]['2'] = $value['TAS_POSX']+68;
$arrayEvents[$count]['3'] = $value['TAS_POSY']-50;
$arrayEvents[$count]['4'] = $value['TAS_UID'];
$arrayRoutes[$countRoutes]['0']= G::generateUniqueID();
$arrayRoutes[$countRoutes]['1']= $arrayEvents[$count]['0'];
$arrayRoutes[$countRoutes]['2']= $value['TAS_UID'];
$arrayRoutes[$countRoutes]['3']= '1';
$arrayRoutes[$countRoutes]['4']= '2';
$count = $count+ 1;
$countRoutes = $countRoutes+ 1;
}
$countTasks = $countTasks + 1;
}
}
$lanes = $oProcess->createLanesNewPM($oData->lanes);
$fields = $oProcess->createTransitionsPM($oData->tasks,$oData->routes,$arrayEvents,$count,$arrayRoutes,$countRoutes);
//Get Standalone Events and routes
$countEvent = count($fields['EVENTS']);
$countRoutes = count($fields['TRANSITION']);
foreach($oData->event as $id => $value) {
if($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] != '' && $value['EVN_TAS_UID_TO'] != ''){ //Check for Intermediate Events
$evn_uid = $value['EVN_UID'];
$idTaskFrom = $value['EVN_TAS_UID_FROM'];
$idTaskTo = $value['EVN_TAS_UID_TO'];
$fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
$fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
$fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
$fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
$fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
$countEvent = $countEvent + 1;
$fields['TRANSITION'][$countRoutes]['0']= G::generateUniqueID();
$fields['TRANSITION'][$countRoutes]['1']= $idTaskFrom;
$fields['TRANSITION'][$countRoutes]['2']= $evn_uid;
$fields['TRANSITION'][$countRoutes]['3']= '1';
$fields['TRANSITION'][$countRoutes]['4']= '2';
$countRoutes = $countRoutes + 1;
$fields['TRANSITION'][$countRoutes]['0']= G::generateUniqueID();
$fields['TRANSITION'][$countRoutes]['1']= $evn_uid;
$fields['TRANSITION'][$countRoutes]['2']= $idTaskTo;
$fields['TRANSITION'][$countRoutes]['3']= '2';
$fields['TRANSITION'][$countRoutes]['4']= '1';
$countRoutes = $countRoutes + 1;
}
else if($value['TAS_UID'] == '' && $value['EVN_TAS_UID_TO'] != '' && ! preg_match("/Start/", $value['EVN_TYPE'])){
$evn_uid = $value['EVN_UID'];
$idTask = $value['EVN_TAS_UID_TO'];
$fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
$fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
$fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
$fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
$fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
$countEvent = $countEvent + 1;
$fields['TRANSITION'][$countRoutes]['0']= G::generateUniqueID();
$fields['TRANSITION'][$countRoutes]['1']= $evn_uid;
$fields['TRANSITION'][$countRoutes]['2']= $idTask;
$fields['TRANSITION'][$countRoutes]['3']= '2';
$fields['TRANSITION'][$countRoutes]['4']= '1';
$countRoutes = $countRoutes + 1;
}
else if($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] != '' && ! preg_match("/End/", $value['EVN_TYPE'])){ //Check for Intermediate Events
$evn_uid = $value['EVN_UID'];
$idTask = $value['EVN_TAS_UID_FROM'];
$fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
$fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
$fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
$fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
$fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
$countEvent = $countEvent + 1;
$fields['TRANSITION'][$countRoutes]['0']= G::generateUniqueID();
$fields['TRANSITION'][$countRoutes]['1']= $idTask;
$fields['TRANSITION'][$countRoutes]['2']= $evn_uid;
$fields['TRANSITION'][$countRoutes]['3']= '1';
$fields['TRANSITION'][$countRoutes]['4']= '2';
$countRoutes = $countRoutes + 1;
}
else if($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] == '' && $value['EVN_TAS_UID_TO'] == ''){
$fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
$fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
$fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
$fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
$fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
$countEvent = $countEvent + 1;
}
}
//Get all the standalone Gateway
$countGateway = count($fields['GATEWAYS']);
$countTransitions = count($fields['TRANSITION']);
foreach($oData->gateways as $id => $value) {
if($value['GAT_NEXT_TASK'] != '' && $value['TAS_UID'] != '' && $value['GAT_TYPE'] != ''){
$fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
$fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
$fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
$fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
$fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
$fields['GATEWAYS'][$countGateway]['5'] = $value['TAS_UID'];
$countGateway+=1;
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['TAS_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_UID'];
$fields['TRANSITION'][$countTransitions]['3'] = '1';
$fields['TRANSITION'][$countTransitions]['4'] = '2';
$countTransitions += 1;
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['GAT_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_NEXT_TASK'];
$fields['TRANSITION'][$countTransitions]['3'] = '2';
$fields['TRANSITION'][$countTransitions]['4'] = '1';
$countTransitions += 1;
}
//creating gateway and route from gateway to task i.e if target task is not NULL
else if($value['GAT_NEXT_TASK'] != '' && $value['TAS_UID'] == ''){
$fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
$fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
$fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
$fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
$fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
$fields['GATEWAYS'][$countGateway]['5'] = $value['GAT_NEXT_TASK'];
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['GAT_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_NEXT_TASK'];
$fields['TRANSITION'][$countTransitions]['3'] = '2';
$fields['TRANSITION'][$countTransitions]['4'] = '1';
$countGateway+=1;
$countTransitions += 1;
}
//creating gateway and route from task to gateway i.e if source task is not NULL
else if($value['GAT_NEXT_TASK'] == '' && $value['TAS_UID'] != ''){
$fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
$fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
$fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
$fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
$fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
$fields['GATEWAYS'][$countGateway]['5'] = $value['GAT_NEXT_TASK'];
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['TAS_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_UID'];
$fields['TRANSITION'][$countTransitions]['3'] = '1';
$fields['TRANSITION'][$countTransitions]['4'] = '2';
$countGateway+=1;
$countTransitions += 1;
}
else if($value['GAT_NEXT_TASK'] == '' && $value['TAS_UID'] == ''){
$fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
$fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
$fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
$fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
$countGateway += 1;
}
}
//Create Annotation route
foreach($oData->lanes as $id => $value)
{
if($value['SWI_NEXT_UID'] != '') {
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['SWI_NEXT_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['SWI_UID'];
$fields['TRANSITION'][$countTransitions]['3'] = '1';
$fields['TRANSITION'][$countTransitions]['4'] = '2';
$countTransitions += 1;
}
}
//$subProcess = $oProcess->createSubProcessesPM($oData->subProcess);
$arrayEvents = $fields['EVENTS'];
$arrayGateways = $fields['GATEWAYS'];
$arrayRoutes = $fields['TRANSITION'];
$data['tasks'] = $arrayTasks;
$data['subprocess'] = $arraySubProcess;
$data['routes'] = $arrayRoutes;
$data['events'] = $arrayEvents;
$data['gateways'] = $arrayGateways;
$data['process'] = $process;
$data['annotations'] = $lanes;
return $data;
}
}

View File

@@ -820,9 +820,9 @@ class Installer extends Controller
G::loadClass('system'); G::loadClass('system');
$envFile = PATH_CONFIG . 'env.ini'; $envFile = PATH_CONFIG . 'env.ini';
//writting for new installtions to use the new skin 'uxmind' with new Front End ExtJs Based //writting for new installtions to use the classic skin
$updatedConf['default_skin'] = 'uxmodern'; $updatedConf['default_skin'] = 'classic';
$info->uri = '/sys' . $_REQUEST['workspace'] . '/en/uxmodern/main/login'; $info->uri = '/sys' . $_REQUEST['workspace'] . '/en/classic/login/login';
try { try {
G::update_php_ini($envFile, $updatedConf); G::update_php_ini($envFile, $updatedConf);

View File

@@ -133,7 +133,7 @@ function expandNode()
global $RBAC; global $RBAC;
$user = ($RBAC->userCanAccess('PM_ALLCASES') == 1)? '' : $_SESSION['USER_LOGGED']; $user = ($RBAC->userCanAccess('PM_ALLCASES') == 1)? '' : $_SESSION['USER_LOGGED'];
$folderContentObj = $oPMFolder->getFolderContent ($_POST ['node'] != 'root' ? $folderContentObj = $oPMFolder->getFolderContent ($_POST ['node'] != 'root' ?
$_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder, array(), null, null, $limit, $start, $user); $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder, array(), null, null, $limit, $start, $user, true);
$folderContent=$folderContentObj['documents']; $folderContent=$folderContentObj['documents'];
$totalDocuments=$folderContentObj['totalDocumentsCount']; $totalDocuments=$folderContentObj['totalDocumentsCount'];
$totalItems+=count($folderContent); $totalItems+=count($folderContent);

View File

@@ -1,301 +0,0 @@
<?php
/**
* cases_Scheduler_Save.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2010 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.
*
*/
try {
/*
global $RBAC;
switch ($RBAC->userCanAccess('PM_FACTORY'))
{
case -2:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
case -1:
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die;
break;
}
*/
require_once 'classes/model/CaseScheduler.php';
$oCaseScheduler = new CaseScheduler();
if (empty($_POST)) {
die('The information sended is empty!');
}
if(empty($_POST['SCH_UID']))
$aData['SCH_UID'] = G::generateUniqueID();
else
$aData['SCH_UID'] = $_POST['SCH_UID'];
$aData['SCH_NAME'] = $_POST['SCH_NAME'];
$aData['SCH_DEL_USER_NAME'] = $_POST['SCH_DEL_USER_NAME'];
$aData['SCH_DEL_USER_PASS'] = md5($_POST['SCH_USER_PASSWORD']);
$aData['SCH_DEL_USER_UID'] = $_POST['SCH_DEL_USER_UID'];
$aData['PRO_UID'] = $_POST['PRO_UID'];
$aData['TAS_UID'] = $_POST['TAS_UID'];
$aData['SCH_STATE'] = 'ACTIVE';
$aData['SCH_LAST_STATE'] = 'CREATED'; // 'ACTIVE';
$aData['USR_UID'] = $_SESSION['USER_LOGGED'];
$sOption = $_POST['SCH_OPTION'];
if($sOption == 'Daily')
{
$aData['SCH_OPTION'] = '1';
$sOption = '1';
}
else if($sOption == 'Weekly')
{
$aData['SCH_OPTION'] = '2';
$sOption = '2';
}
else if($sOption == 'Monthly')
{
$aData['SCH_OPTION'] = '3';
$sOption = '3';
}
else if($sOption == 'One time only')
{
$aData['SCH_OPTION'] = '4';
$sOption = '4';
}
if ($_POST['SCH_START_DATE']!=''){
$sDateTmp = $_POST['SCH_START_DATE'];
} else {
$sDateTmp = date('Y-m-d');
}
$sTimeTmp = $_POST['SCH_START_TIME'];
$aData['SCH_START_TIME'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp));
$aData['SCH_START_DATE'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp));
$nActualTime = $_POST['SCH_START_TIME']; // time();
// $nActualDate = date("Y-m-d H:i:s", $nActualTime);
$sValue = '';
$sDaysPerformTask = '';
$sWeeks = '';
$sMonths = '';
$sMonths = '';
$sStartDay = '';
$nSW = 0;
switch($sOption){
case '1' : // Option 1
$sValue = $_POST['SCH_DAYS_PERFORM_TASK'];
switch($sValue){
case '1' : $aData['SCH_DAYS_PERFORM_TASK'] = $_POST['SCH_DAYS_PERFORM_TASK'] . '|1';
break;
case '2' :
$aData['SCH_OPTION'] = '2';
$aData['SCH_EVERY_DAYS'] = '1';
$aData['SCH_WEEK_DAYS'] = '1|2|3|4|5|';
break;
case '3' : // Every [n] Days
$sDaysPerformTask = $_POST['SCH_DAYS_PERFORM_TASK_OPT_3'];
$aData['SCH_DAYS_PERFORM_TASK'] = $_POST['SCH_DAYS_PERFORM_TASK'] . '|' . $_POST['SCH_DAYS_PERFORM_TASK_OPT_3'];
break;
}
break;
case '2' : // If the option is zero, set by default 1
if(empty($_POST['SCH_EVERY_DAYS']))
$nEveryDays = 1;
else
$nEveryDays = $_POST['SCH_EVERY_DAYS'];
$aData['SCH_EVERY_DAYS'] = $nEveryDays;
$sWeeks = '';
if(!empty($_POST['SCH_WEEK_DAYS'])){
$aWeekDays = explode(',',$_POST['SCH_WEEK_DAYS']);
foreach($aWeekDays as $value) {
$sWeeks = $sWeeks . $value . '|';
}
}
/*if(!empty($_POST['SCH_WEEK_DAYS_2'])){
$aWeekDays2 = $_POST['SCH_WEEK_DAYS_2'];
foreach($aWeekDays2 as $value) {
$sWeeks = $sWeeks . $value . '|';
}
}*/
$sStartTime = $_POST['SCH_START_TIME'];
$aData['SCH_WEEK_DAYS'] = $sWeeks;
break;
case '3' :
$nStartDay = $_POST['SCH_START_DAY'];
if($nStartDay == 'Day of Month')
$nStartDay = 1;
else if($nStartDay == 'The Day')
$nStartDay = 2;
$sStartDayOpt2Week = $_POST['SCH_START_DAY_OPT_2_WEEKS'];
switch($sStartDayOpt2Week){
case 'First':
$sStartDayOpt2Week = 1;
break;
case 'Second':
$sStartDayOpt2Week = 2;
break;
case 'Third':
$sStartDayOpt2Week = 3;
break;
case 'Fourth':
$sStartDayOpt2Week = 4;
break;
case 'Last':
$sStartDayOpt2Week = 5;
break;
}
$sStartDayOpt2DayWeek = $_POST['SCH_START_DAY_OPT_2_DAYS_WEEK'];
switch($sStartDayOpt2DayWeek){
case 'Monday':
$sStartDayOpt2DayWeek = 1;
break;
case 'Tuesday':
$sStartDayOpt2DayWeek = 2;
break;
case 'Wednesday':
$sStartDayOpt2DayWeek = 3;
break;
case 'Thursday':
$sStartDayOpt2DayWeek = 4;
break;
case 'Friday':
$sStartDayOpt2DayWeek = 5;
break;
case 'Saturday':
$sStartDayOpt2DayWeek = 6;
break;
case 'Sunday':
$sStartDayOpt2DayWeek = 7;
break;
}
if($nStartDay == 1){
$aData['SCH_START_DAY'] = $nStartDay . '|' . $_POST['SCH_START_DAY_OPT_1'];
} else {
$aData['SCH_START_DAY'] = $nStartDay . '|' . $sStartDayOpt2Week . '|' . $sStartDayOpt2DayWeek;
}
$sMonths = '';
if(!empty($_POST['SCH_MONTHS'])){
//$aMonths = $_POST['SCH_MONTHS'];
$aMonths = explode(',',$_POST['SCH_MONTHS']);
foreach($aMonths as $value) {
$sMonths = $sMonths . $value . '|' ;
}
}
/*if(!empty($_POST['SCH_MONTHS_2'])){
$aMonths2 = $_POST['SCH_MONTHS_2'];
foreach($aMonths2 as $value) {
$sMonths = $sMonths . $value . '|' ;
}
}
if(!empty($_POST['SCH_MONTHS_3'])){
$aMonths3 = $_POST['SCH_MONTHS_3'];
foreach($aMonths3 as $value) {
$sMonths = $sMonths . $value . '|' ;
}
} */
$aData['SCH_MONTHS'] = $sMonths;
$sStartDay = $aData['SCH_START_DAY'];
$sValue = $nStartDay;
break;
}
if(($sOption!='1') && ($sOption!='4')) {
if ($sStartDay==''){
$sStartDay = date('Y-m-d');
}
// echo $sOption."*". $sValue."*". $nActualTime."*". $sDaysPerformTask."*". $sWeeks."*". $sStartDay ."*". $sMonths."<br>";
$dCurrentDay = date("d");
$dCurrentMonth = date("m");
$aStartDay = explode( "|" , $aData['SCH_START_DAY'] );
if($sOption=='3'&&$aStartDay[0]=='1'){
$monthsArray = explode("|",$sMonths);
foreach ($monthsArray as $row){
if ( $dCurrentMonth == $row && $dCurrentDay<$aStartDay[1] ){
$startTime = $_POST['SCH_START_TIME'].":00";
$aData['SCH_TIME_NEXT_RUN'] = date('Y') . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime;
break;
} else {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun($sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp);
}
}
} else {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun($sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp);
}
// print_r ($aData['SCH_TIME_NEXT_RUN']);
// die;
} else {
if ($sOption=='4'){
$aData['SCH_END_DATE'] = $aData['SCH_START_TIME'];
}
$aData['SCH_TIME_NEXT_RUN'] = $aData['SCH_START_TIME'];
}
if(trim($_POST['SCH_END_DATE'])!=''){
$aData['SCH_END_DATE'] = $_POST['SCH_END_DATE'];
}
if(!empty($_POST['SCH_REPEAT_TASK_CHK'])){
$nOptEvery = $_POST['SCH_REPEAT_EVERY_OPT'];
if($nOptEvery ==2)
$aData['SCH_REPEAT_EVERY'] = $_POST['SCH_REPEAT_EVERY'] * 60;
else
$aData['SCH_REPEAT_EVERY'] = $_POST['SCH_REPEAT_EVERY'];
}
//$aData['SCH_END_DATE'] = "2020-12-30";
if(empty($_POST['SCH_UID']))
$oCaseScheduler->create($aData);
else
$oCaseScheduler->update($aData);
//Save Scheduler_uid in the Event Table for Start Timer.
$oData['EVN_UID']= $_POST['EVN_UID'];
$oData['EVN_ACTION']= $aData['SCH_UID'];
require_once "classes/model/Event.php";
$oEvent = new Event();
$oEvent->update($oData);
echo "{success: true}";
//G::header('location: cases_Scheduler_List');
}
catch (Exception $oException) {
die($oException->getMessage());
}
?>

View File

@@ -1,249 +0,0 @@
<?php
/**
* events_EditAction.php
*
* 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.
*
*/
global $RBAC;
global $_DBArray;
if ($RBAC->userCanAccess('PM_SETUP') != 1) {
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
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.
$triUid = $aFields['TRI_UID'];
$_GET = $oTriggerParams['params'];
$_GET['TRI_UID'] = $triUid;
require_once(PATH_METHODS.'triggers/triggers_EditWizard.php');
die;
}
}
$aFields['EVN_MESSAGE_SUBJECT'] = (isset($parameters->SUBJECT) ? $parameters->SUBJECT : '');
if(isset($parameters->TO)){
$paramTO[] = Array('id'=>'char', 'name'=>'char');
//echo '<pre>';print_r($parameters->TO);
foreach($parameters->TO as $item){
$row = explode('|', $item);
switch($row[0]){
case 'usr':
require_once('classes/model/Users.php');
$user = new Users();
if($row[1] == '-1'){
$value = '(Current Task User)';
} else {
$rec = $user->load($row[1]);
$value = $rec['USR_FIRSTNAME'].' '.$rec['USR_LASTNAME'];
}
break;
case 'grp':
G::LoadClass('groups');
$group = new Groups();
$rec = $group->load($row[1]);
$value = strip_tags($rec->getGrpTitle());
break;
case 'ext':
$value = htmlentities($row[1]);
break;
case 'dyn':
$value = htmlentities('@#'.$row[1]);
break;
default:
echo '->'.$row[0];
}
$paramTO[] = Array('id'=>replaceQuotes($item), 'name'=>$value);
}
} else {
$paramTO[] = Array('id'=>'char', 'name'=>'char');
$paramTO[] = Array('id'=>'usr|-1', 'name'=>'(Current Task User)');
}
$_DBArray['eventomsgto'] = $paramTO;
if(isset($parameters->CC)){
$paramCC[] = Array('id'=>'char', 'name'=>'char');
foreach($parameters->CC as $item){
$row = explode('|', $item);
switch($row[0]){
case 'usr':
require_once('classes/model/Users.php');
$user = new Users();
if($row[1] == '-1'){
$value = '(Current Task User)';
} else {
$rec = $user->load($row[1]);
$value = $rec['USR_FIRSTNAME'].' '.$rec['USR_LASTNAME'];
}
break;
case 'grp':
G::LoadClass('groups');
$group = new Groups();
$rec = $group->load($row[1]);
$value = strip_tags($rec->getGrpTitle());
break;
case 'ext':
$value = htmlentities($row[1]);
break;
case 'dyn':
$value = htmlentities('@#'.$row[1]);
break;
}
$paramCC[] = Array('id'=>replaceQuotes($item), 'name'=>$value);
}
$_DBArray['eventomsgcc'] = $paramCC;
} else {
$_DBArray['eventomsgcc'] = Array();
}
if(isset($parameters->BCC)){
$paramBCC[] = Array('id'=>'char', 'name'=>'char');
foreach($parameters->BCC as $item){
$row = explode('|', $item);
switch($row[0]){
case 'usr':
require_once('classes/model/Users.php');
$user = new Users();
if($row[1] == '-1'){
$value = '(Current Task User)';
} else {
$rec = $user->load($row[1]);
$value = $rec['USR_FIRSTNAME'].' '.$rec['USR_LASTNAME'];
}
break;
case 'grp':
G::LoadClass('groups');
$group = new Groups();
$rec = $group->load($row[1]);
$value = strip_tags($rec->getGrpTitle());
break;
case 'ext':
$value = htmlentities($row[1]);
break;
case 'dyn':
$value = htmlentities('@#'.$row[1]);
break;
}
$paramBCC[] = Array('id'=>replaceQuotes($item), 'name'=>$value);
}
$_DBArray['eventomsgbcc'] = $paramBCC;
} else {
$_DBArray['eventomsgbcc'] = Array();
}
$aFields['EVN_MESSAGE_TO_TO'] = $paramTO;
$aFields['EVN_MESSAGE_TO_CC'] = (isset($parameters->CC) ? $paramCC : '');
$aFields['EVN_MESSAGE_TO_BCC'] = (isset($parameters->BCC) ? $paramBCC : '');
$aFields['EVN_MESSAGE_TEMPLATE'] = (isset($parameters->TEMPLATE) ? $parameters->TEMPLATE : '');
$aTemplates = array();
$aTemplates[] = array('TEMPLATE1' => 'char',
'TEMPLATE2' => 'char');
$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('TEMPLATE1' => $sObject,
'TEMPLATE2' => $sObject);
}
}
$_DBArray['templates'] = $aTemplates;
$aTriggers[] = array('TRI_UID' => 'char',
'TRI_TITLE' => 'char');
G::LoadClass('processMap');
$oProcessMap = new ProcessMap();
$oDataset = TriggersPeer::doSelectRS($oProcessMap->getTriggersCriteria($aFields['PRO_UID']));
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aTriggers[] = array('TRI_UID' => $aRow['TRI_UID'],
'TRI_TITLE' => $aRow['TRI_TITLE']);
$oDataset->next();
}
$_DBArray['triggers'] = $aTriggers;
$_SESSION['_DBArray'] = $_DBArray;
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'events/eventsEditAction', '', $aFields, '../events/eventsSave');
//$G_PUBLISH->AddContent('xmlform', 'xmlform', 'events/eventsEditAction', '', $aFields, '../events/eventsSave');
G::RenderPage('publish', 'raw');
function replaceQuotes($aData){
return str_replace('"', '&quote;', $aData);
}

View File

@@ -1,56 +0,0 @@
<?php
/**
* cases_Events_Save.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2010 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.
*
*/
try {
$oJSON = new Services_JSON();
if ( isset ($_POST['sData']) ) {
$oData = $oJSON->decode($_POST['sData']);
}
//Convert Object into Array
foreach($oData as $key=>$value)
{
$aData[$key] = $value;
}
require_once 'classes/model/Event.php';
$oEvent = new Event();
if (!isset($aData['EVN_UID']) && $aData['EVN_UID'] == '' ) {
$sEventUid = $oEvent->create($aData);
}
else
$sEventUid = $oEvent->update($aData);
$_SESSION['EVN_UID'] = $sEventUid;
echo "{success: true,data:'.$sEventUid.'}";
//G::header('location: cases_Scheduler_List');
}
catch (Exception $oException) {
die($oException->getMessage());
}
?>

View File

@@ -1,170 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['tid'] ) )
{
$rows = $oProcessMap->getExtStepsCriteria($_GET['tid']); //Getting all assigned steps on a task
array_shift($rows);
}
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
$steps = array();
//@@stepsChildren is an array that stores before and after triggers tree data for a step
$stepsChildren = array();
$assignChildren = array();
//@@assignTaskChildren is an array that stores Before Assignment,Before Derivation and After Derivation triggers tree data for assigned task
$assignTaskChildren = array();
//Creating steps array for populating tree depending on count of assigned steps to a task
for($i=0;$i<count($rows);$i++)
{
//Getting beforeTriggersCount for a step
$beforeTriggers = $oProcessMap->getStepTriggersCriteria($rows[$i]['STEP_UID'], $_GET['tid'], 'BEFORE');
$beforeTriggersCount = StepTriggerPeer::doCount($beforeTriggers);
//Getting afterTriggersCount for a step
$afterTriggers = $oProcessMap->getStepTriggersCriteria($rows[$i]['STEP_UID'], $_GET['tid'], 'AFTER');
$afterTriggersCount = StepTriggerPeer::doCount($afterTriggers);
$iTotal = $beforeTriggersCount + $afterTriggersCount;
//Tree level 3 nodes i.e. final nodes (Leaf Nodes)
$beforeTriggerChildren[0] = array(
'text' => 'Assign / Show Before Triggers',
'id' => $rows[$i]['STEP_UID'].'|BEFORE',
'leaf' => true,
);
$afterTriggerChildren[0] = array(
'text' => 'Assign / Show After Triggers',
'id' => $rows[$i]['STEP_UID'].'|AFTER',
'leaf' => true,
);
//Tree level 2 nodes i.e. Before and After Triggers for level 1 nodes
$stepsChildren[0] = array(
'text' => 'Before - Triggers ('.$beforeTriggersCount.')',
//'id' => $rows[$i]['STEP_UID'].'-BEFORE',
'children' => $beforeTriggerChildren
);
$stepsChildren[1] = array(
'text' => 'After - Triggers ('.$afterTriggersCount.')',
//'id' => $rows[$i]['STEP_UID'].'-AFTER',
'children' => $afterTriggerChildren
);
//Tree level 1 nodes (Main steps)
$steps[] = array(
'text' => $rows[$i]['STEP_TITLE'].' - Triggers ('.$iTotal.')',
//'id' => 'ssaas',
'children' => $stepsChildren
);
}
//Creating tree for Assign Task Step
$beforeAssignmentChildren[] = array(
'text' => 'Assign / Show Triggers',
'id' => '-1|BEFORE',
'leaf' => true,
);
$beforeDerivationChildren[] = array(
'text' => 'Assign / Show Triggers',
'id' => '-2|BEFORE',
'leaf' => true,
);
$afterDerivationChildren[] = array(
'text' => 'Assign / Show Triggers',
'id' => '-2|AFTER',
'leaf' => true,
);
//Getting counts for Before Assignment,Before Derivation and After Derivation triggers for a step
$beforeAssignmentTriggers = $oProcessMap->getStepTriggersCriteria('-1', $_GET['tid'], 'BEFORE');
$beforeAssignmentTriggersCount = StepTriggerPeer::doCount($beforeAssignmentTriggers);
$beforeDerivationTriggers = $oProcessMap->getStepTriggersCriteria('-2', $_GET['tid'], 'BEFORE');
$beforeDerivationTriggersCount = StepTriggerPeer::doCount($beforeDerivationTriggers);
$afterDerivationTriggers = $oProcessMap->getStepTriggersCriteria('-2', $_GET['tid'], 'AFTER');
$afterDerivationTriggersCount = StepTriggerPeer::doCount($afterDerivationTriggers);
$iTotal = $beforeAssignmentTriggersCount + $beforeDerivationTriggersCount + $afterDerivationTriggersCount;
$assignTaskChildren[] = array(
'text' => 'Before Assignment - Triggers ('.$beforeAssignmentTriggersCount.')',
'children' => $beforeAssignmentChildren
);
$assignTaskChildren[] = array(
'text' => 'Before Derivation - Triggers ('.$beforeDerivationTriggersCount.')',
'children' => $beforeDerivationChildren
);
$assignTaskChildren[] = array(
'text' => 'After Derivation - Triggers ('.$afterDerivationTriggersCount.')',
'children' => $afterDerivationChildren
);
//Adding last value in an array for "Assign Task"
$steps[] = array(
'text' => '[ Assign Task ] - Triggers ('.$iTotal.')',
//'id' => $rows[$i]['STEP_UID'],
'children' => $assignTaskChildren
);
/* $nodes = "[{
text: 'Step 1 - Triggers (0)',
cls: 'blank',
iconCls: 'blank',
children: [{
text: 'Before - Triggers (0)',
cls: 'blank',
iconCls: 'blank',
children: [{
text: 'Assign Before Trigger',
leaf: true,
}]
},{
text: 'After - Triggers (0)',
leaf: true,
cls: 'blank',
iconCls: 'blank',
}]
},{
text: 'Step 2 - Triggers (0)',
children: [{
text: 'Before - Triggers (0)',
leaf: true,
},{
text: 'After - Triggers (0)',
leaf: true,
}]
},{
text: 'Assign Task - Triggers(0)',
children: [{
text: 'Before Assigment - Triggers(0)',
leaf: true,
},{
text: 'Before Derivation - Triggers(0)',
leaf: true,
},{
text: 'After Derivation - Triggers(0)',
leaf: true,
}]
}]";*/
//echo $nodes;
echo G::json_encode($steps);

View File

@@ -1,124 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
$start = isset($_POST['start'])? $_POST['start']: 0;
$limit = isset($_POST['limit'])? $_POST['limit']: '';
if ( isset($_GET['tid'] ) )
{
$rows = $oProcessMap->getExtStepsCriteria($start, $limit, $_GET['tid']); //Getting all assigned steps on a task
array_shift($rows);
}
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
$steps = array();
//@@stepsChildren is an array that stores before and after triggers tree data for a step
$stepsChildren = array();
$assignChildren = array();
//@@assignTaskChildren is an array that stores Before Assignment,Before Derivation and After Derivation triggers tree data for assigned task
$assignTaskChildren = array();
//Creating steps array for populating tree depending on count of assigned steps to a task
for($i=0;$i<count($rows);$i++)
{
//Getting beforeTriggersCount for a step
$beforeTriggers = $oProcessMap->getStepTriggersCriteria($rows[$i]['STEP_UID'], $_GET['tid'], 'BEFORE');
$beforeTriggersCount = StepTriggerPeer::doCount($beforeTriggers);
//Getting afterTriggersCount for a step
$afterTriggers = $oProcessMap->getStepTriggersCriteria($rows[$i]['STEP_UID'], $_GET['tid'], 'AFTER');
$afterTriggersCount = StepTriggerPeer::doCount($afterTriggers);
$iTotal = $beforeTriggersCount + $afterTriggersCount;
//Tree level 3 nodes i.e. final nodes (Leaf Nodes)
$beforeTriggerChildren[0] = array(
'text' => 'Assign / Show Before Triggers',
'id' => $rows[$i]['STEP_UID'].'|BEFORE',
'leaf' => true,
);
$afterTriggerChildren[0] = array(
'text' => 'Assign / Show After Triggers',
'id' => $rows[$i]['STEP_UID'].'|AFTER',
'leaf' => true,
);
//Tree level 2 nodes i.e. Before and After Triggers for level 1 nodes
$stepsChildren[0] = array(
'text' => 'Before - Triggers ('.$beforeTriggersCount.')',
//'id' => $rows[$i]['STEP_UID'].'-BEFORE',
'children' => $beforeTriggerChildren
);
$stepsChildren[1] = array(
'text' => 'After - Triggers ('.$afterTriggersCount.')',
//'id' => $rows[$i]['STEP_UID'].'-AFTER',
'children' => $afterTriggerChildren
);
//Tree level 1 nodes (Main steps)
$steps[] = array(
'text' => $rows[$i]['STEP_TITLE'].' - Triggers ('.$iTotal.')',
//'id' => 'ssaas',
'children' => $stepsChildren
);
}
//Creating tree for Assign Task Step
$beforeAssignmentChildren[] = array(
'text' => 'Assign / Show Triggers',
'id' => '-1|BEFORE',
'leaf' => true,
);
$beforeDerivationChildren[] = array(
'text' => 'Assign / Show Triggers',
'id' => '-2|BEFORE',
'leaf' => true,
);
$afterDerivationChildren[] = array(
'text' => 'Assign / Show Triggers',
'id' => '-2|AFTER',
'leaf' => true,
);
//Getting counts for Before Assignment,Before Derivation and After Derivation triggers for a step
$beforeAssignmentTriggers = $oProcessMap->getStepTriggersCriteria('-1', $_GET['tid'], 'BEFORE');
$beforeAssignmentTriggersCount = StepTriggerPeer::doCount($beforeAssignmentTriggers);
$beforeDerivationTriggers = $oProcessMap->getStepTriggersCriteria('-2', $_GET['tid'], 'BEFORE');
$beforeDerivationTriggersCount = StepTriggerPeer::doCount($beforeDerivationTriggers);
$afterDerivationTriggers = $oProcessMap->getStepTriggersCriteria('-2', $_GET['tid'], 'AFTER');
$afterDerivationTriggersCount = StepTriggerPeer::doCount($afterDerivationTriggers);
$iTotal = $beforeAssignmentTriggersCount + $beforeDerivationTriggersCount + $afterDerivationTriggersCount;
$assignTaskChildren[] = array(
'text' => 'Before Assignment - Triggers ('.$beforeAssignmentTriggersCount.')',
'children' => $beforeAssignmentChildren
);
$assignTaskChildren[] = array(
'text' => 'Before Derivation - Triggers ('.$beforeDerivationTriggersCount.')',
'children' => $beforeDerivationChildren
);
$assignTaskChildren[] = array(
'text' => 'After Derivation - Triggers ('.$afterDerivationTriggersCount.')',
'children' => $afterDerivationChildren
);
//Adding last value in an array for "Assign Task"
$steps[] = array(
'text' => '[ Assign Task ] - Triggers ('.$iTotal.')',
//'id' => $rows[$i]['STEP_UID'],
'children' => $assignTaskChildren
);
echo G::json_encode($steps);

View File

@@ -1,272 +0,0 @@
<?php
/**
* openProcess.php
*
* 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.
*
*/
G::LoadClass('xpdl');
$processUID = $_REQUEST['PRO_UID'];
$oProcess = new Xpdl();
$fields = $oProcess->serializeProcess($processUID);
$oData = unserialize($fields);
$arrayTasks = array();
$countTasks = 0;
$countSubProcess= 0;
$arrayEvents = array();
$arraySubProcess= array();
$count = 0;
$countRoutes = 0;
$arrayRoutes = array();
$process = array();
$process = $oProcess->createProcessPM($oData->process);
foreach($oData->tasks as $id => $value)
{
if($value['TAS_TYPE'] == 'SUBPROCESS'){
$arraySubProcess[$countSubProcess]['0'] = $value['TAS_UID'];
$arraySubProcess[$countSubProcess]['1'] = $value['TAS_TITLE'];
$arraySubProcess[$countSubProcess]['2'] = $value['TAS_POSX'];
$arraySubProcess[$countSubProcess]['3'] = $value['TAS_POSY'];
$countSubProcess = $countSubProcess + 1;
}
else
{
$arrayTasks[$countTasks]['0'] = $value['TAS_UID'];
$arrayTasks[$countTasks]['1'] = $value['TAS_TITLE'];
$arrayTasks[$countTasks]['2'] = $value['TAS_POSX'];
$arrayTasks[$countTasks]['3'] = $value['TAS_POSY'];
$arrayTasks[$countTasks]['4'] = $value['TAS_WIDTH'];
$arrayTasks[$countTasks]['5'] = $value['TAS_HEIGHT'];
$arrayTasks[$countTasks]['6'] = $value['TAS_BOUNDARY'];
if($value['TAS_START'] == 'TRUE'){
$arrayEvents[$count]['0'] = G::generateUniqueID();
if($value['TAS_EVN_UID'] == '')
{
$arrayEvents[$count]['1'] = 'bpmnEventEmptyStart';
}
else
{
foreach($oData->event as $eventid => $val){
if($val['EVN_UID'] == $value['TAS_EVN_UID'])
{
$arrayEvents[$count]['0'] = $val['EVN_UID'];
$arrayEvents[$count]['1'] = $val['EVN_TYPE'];
break;
}
}
}
$arrayEvents[$count]['2'] = $value['TAS_POSX']+68;
$arrayEvents[$count]['3'] = $value['TAS_POSY']-50;
$arrayEvents[$count]['4'] = $value['TAS_UID'];
$arrayRoutes[$countRoutes]['0']= G::generateUniqueID();
$arrayRoutes[$countRoutes]['1']= $arrayEvents[$count]['0'];
$arrayRoutes[$countRoutes]['2']= $value['TAS_UID'];
$arrayRoutes[$countRoutes]['3']= '1';
$arrayRoutes[$countRoutes]['4']= '2';
$count = $count+ 1;
$countRoutes = $countRoutes+ 1;
}
$countTasks = $countTasks + 1;
}
}
$lanes = $oProcess->createLanesNewPM($oData->lanes);
$fields = $oProcess->createTransitionsPM($oData->tasks,$oData->routes,$arrayEvents,$count,$arrayRoutes,$countRoutes);
//Get Standalone Events and routes
$countEvent = count($fields['EVENTS']);
$countRoutes = count($fields['TRANSITION']);
foreach($oData->event as $id => $value)
{
if($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] != '' && $value['EVN_TAS_UID_TO'] != ''){ //Check for Intermediate Events
$evn_uid = $value['EVN_UID'];
$idTaskFrom = $value['EVN_TAS_UID_FROM'];
$idTaskTo = $value['EVN_TAS_UID_TO'];
$fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
$fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
$fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
$fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
$fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
$countEvent = $countEvent + 1;
$fields['TRANSITION'][$countRoutes]['0']= G::generateUniqueID();
$fields['TRANSITION'][$countRoutes]['1']= $idTaskFrom;
$fields['TRANSITION'][$countRoutes]['2']= $evn_uid;
$fields['TRANSITION'][$countRoutes]['3']= '1';
$fields['TRANSITION'][$countRoutes]['4']= '2';
$countRoutes = $countRoutes + 1;
$fields['TRANSITION'][$countRoutes]['0']= G::generateUniqueID();
$fields['TRANSITION'][$countRoutes]['1']= $evn_uid;
$fields['TRANSITION'][$countRoutes]['2']= $idTaskTo;
$fields['TRANSITION'][$countRoutes]['3']= '2';
$fields['TRANSITION'][$countRoutes]['4']= '1';
$countRoutes = $countRoutes + 1;
}
else if($value['TAS_UID'] == '' && $value['EVN_TAS_UID_TO'] != '' && ! preg_match("/Start/", $value['EVN_TYPE'])){
$evn_uid = $value['EVN_UID'];
$idTask = $value['EVN_TAS_UID_TO'];
$fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
$fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
$fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
$fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
$fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
$countEvent = $countEvent + 1;
$fields['TRANSITION'][$countRoutes]['0']= G::generateUniqueID();
$fields['TRANSITION'][$countRoutes]['1']= $evn_uid;
$fields['TRANSITION'][$countRoutes]['2']= $idTask;
$fields['TRANSITION'][$countRoutes]['3']= '2';
$fields['TRANSITION'][$countRoutes]['4']= '1';
$countRoutes = $countRoutes + 1;
}
else if($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] != '' && ! preg_match("/End/", $value['EVN_TYPE'])){ //Check for Intermediate Events
$evn_uid = $value['EVN_UID'];
$idTask = $value['EVN_TAS_UID_FROM'];
$fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
$fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
$fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
$fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
$fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
$countEvent = $countEvent + 1;
$fields['TRANSITION'][$countRoutes]['0']= G::generateUniqueID();
$fields['TRANSITION'][$countRoutes]['1']= $idTask;
$fields['TRANSITION'][$countRoutes]['2']= $evn_uid;
$fields['TRANSITION'][$countRoutes]['3']= '1';
$fields['TRANSITION'][$countRoutes]['4']= '2';
$countRoutes = $countRoutes + 1;
}
else if($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] == '' && $value['EVN_TAS_UID_TO'] == ''){
$fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
$fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
$fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
$fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
$fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
$countEvent = $countEvent + 1;
}
}
//Get all the standalone Gateway
$countGateway = count($fields['GATEWAYS']);
$countTransitions = count($fields['TRANSITION']);
foreach($oData->gateways as $id => $value)
{
if($value['GAT_NEXT_TASK'] != '' && $value['TAS_UID'] != '' && $value['GAT_TYPE'] != ''){
$fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
$fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
$fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
$fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
$fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
$fields['GATEWAYS'][$countGateway]['5'] = $value['TAS_UID'];
$countGateway+=1;
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['TAS_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_UID'];
$fields['TRANSITION'][$countTransitions]['3'] = '1';
$fields['TRANSITION'][$countTransitions]['4'] = '2';
$countTransitions += 1;
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['GAT_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_NEXT_TASK'];
$fields['TRANSITION'][$countTransitions]['3'] = '2';
$fields['TRANSITION'][$countTransitions]['4'] = '1';
$countTransitions += 1;
}
//creating gateway and route from gateway to task i.e if target task is not NULL
else if($value['GAT_NEXT_TASK'] != '' && $value['TAS_UID'] == ''){
$fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
$fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
$fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
$fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
$fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
$fields['GATEWAYS'][$countGateway]['5'] = $value['GAT_NEXT_TASK'];
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['GAT_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_NEXT_TASK'];
$fields['TRANSITION'][$countTransitions]['3'] = '2';
$fields['TRANSITION'][$countTransitions]['4'] = '1';
$countGateway+=1;
$countTransitions += 1;
}
//creating gateway and route from task to gateway i.e if source task is not NULL
else if($value['GAT_NEXT_TASK'] == '' && $value['TAS_UID'] != ''){
$fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
$fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
$fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
$fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
$fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
$fields['GATEWAYS'][$countGateway]['5'] = $value['GAT_NEXT_TASK'];
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['TAS_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_UID'];
$fields['TRANSITION'][$countTransitions]['3'] = '1';
$fields['TRANSITION'][$countTransitions]['4'] = '2';
$countGateway+=1;
$countTransitions += 1;
}
else if($value['GAT_NEXT_TASK'] == '' && $value['TAS_UID'] == ''){
$fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
$fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
$fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
$fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
$countGateway += 1;
}
}
//Create Annotation route
foreach($oData->lanes as $id => $value)
{
if($value['SWI_NEXT_UID'] != '') {
$fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
$fields['TRANSITION'][$countTransitions]['1'] = $value['SWI_NEXT_UID'];
$fields['TRANSITION'][$countTransitions]['2'] = $value['SWI_UID'];
$fields['TRANSITION'][$countTransitions]['3'] = '1';
$fields['TRANSITION'][$countTransitions]['4'] = '2';
$countTransitions += 1;
}
}
//$subProcess = $oProcess->createSubProcessesPM($oData->subProcess);
$arrayEvents = $fields['EVENTS'];
$arrayGateways = $fields['GATEWAYS'];
$arrayRoutes = $fields['TRANSITION'];
$result['TASKS'] = $arrayTasks;
$result['ROUTES'] = $arrayRoutes;
$result['EVENTS'] = $arrayEvents;
$result['GATEWAYS'] = $arrayGateways;
$aTasks = G::json_encode($arrayTasks);
$aSubProcess = G::json_encode($arraySubProcess);
$aRoutes = G::json_encode($arrayRoutes);
$aEvents = G::json_encode($arrayEvents);
$aGateways = G::json_encode($arrayGateways);
$aProcess = G::json_encode($process);
$aLanes = G::json_encode($lanes);
echo "tasks:$aTasks|gateways:$aGateways|events:$aEvents|annotations:$aLanes|process:$aProcess|subprocess:$aSubProcess|routes:$aRoutes";
?>

View File

@@ -1,190 +0,0 @@
<?php
/**
* patterns_Ajax.php
*
* 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.
*
*/
G::LoadInclude('ajax');
G::LoadClass('processMap');
$oJSON = new Services_JSON();
if(isset($_POST['mode']) && $_POST['mode'] != '')
{
$aData = $_POST;
$aData['TASK'] = $oJSON->decode($_POST['TASK']);
$aData['ROU_NEXT_TASK'] = $oJSON->decode($_POST['ROU_NEXT_TASK']);
}
//Saving Gateway details into Gateway table
if($aData['ROU_TYPE'] != 'SEQUENTIAL')
{
$oProcessMap = new processMap();
//$sGatewayUID = $oProcessMap->saveNewGateway($aData['PROCESS'], $aData['TASK'][0], $aData['ROU_NEXT_TASK'][0]);
require_once 'classes/model/Gateway.php';
$oGateway = new Gateway ( );
$aGatewayFields = array();
$aGatewayFields['GAT_UID'] = $aData['GAT_UID'];
$aGatewayFields['TAS_UID'] = $aData['TASK'][0];
$aGatewayFields['GAT_NEXT_TASK'] = $aData['ROU_NEXT_TASK'][0];
$aGatewayFields['GAT_TYPE'] = '';
$oGateway->update($aGatewayFields);
//$sGatewayUID = $oProcessMap->saveNewGateway($aData['PROCESS'], $aData['TASK'][0], $aData['ROU_NEXT_TASK'][0]);
//echo $sGatewayUID.'|';
}
//else
// echo $aData['ROU_EVN_UID'].'|'; //sending route_event_uid in response
G::LoadClass('tasks');
$oTasks = new Tasks();
$rou_id = 0;
$aFields['GAT_UID'] = $aData['GAT_UID'];
switch ($aData['action']) {
case 'savePattern':
foreach ($aData['TASK'] as $iKey => $aRow)
{
$oTasks->deleteAllRoutesOfTask($aData['PROCESS'], $aRow);
}
require_once 'classes/model/Route.php';
require_once 'classes/model/Event.php';
$oEvent = new Event ( );
$oRoute = new Route();
switch ($aData['ROU_TYPE']) {
case 'SEQUENTIAL':
case 'SEC-JOIN':
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'][0];
$aFields['ROU_NEXT_TASK'] = $aData['ROU_NEXT_TASK'][0];
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
if(isset($aData['ROU_EVN_UID']) && $aData['ROU_EVN_UID'] != ''){
$aFields['ROU_EVN_UID'] = $aData['ROU_EVN_UID'];
$aDataEvent = array();
$aDataEvent['EVN_UID'] = $aData['ROU_EVN_UID'];
$aDataEvent['EVN_TAS_UID_FROM'] = $aData['TASK'][0];
$aDataEvent['EVN_RELATED_TO'] = 'MULTIPLE';
$oEvent->update($aDataEvent);
}
if(isset($aData['PORT_NUMBER_IP']))
$aFields['ROU_TO_PORT'] = $aData['PORT_NUMBER_IP'];
if(isset($aData['PORT_NUMBER_OP']))
$aFields['ROU_FROM_PORT'] = $aData['PORT_NUMBER_OP'];
$rou_id = $oRoute->create($aFields);
break;
case 'SELECT':
foreach ($aData['GRID_SELECT_TYPE'] as $iKey => $aRow)
{
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow;
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
if(isset($aData['PORT_NUMBER_IP']))
$aFields['ROU_TO_PORT'] = $aData['PORT_NUMBER_IP'];
if(isset($aData['PORT_NUMBER_OP']))
$aFields['ROU_FROM_PORT'] = $aData['PORT_NUMBER_OP'];
$rou_id = $oRoute->create($aFields);
unset($aFields);
}
break;
case 'EVALUATE':
foreach ($aData['ROU_NEXT_TASK'] as $iKey => $aRow)
{
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'][0];
$aFields['ROU_NEXT_TASK'] = $aRow;
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
$aFields['GAT_UID'] = $aData['GAT_UID'];
if(isset($aData['PORT_NUMBER_IP']))
$aFields['ROU_TO_PORT'] = $aData['PORT_NUMBER_IP'];
if(isset($aData['PORT_NUMBER_OP']))
$aFields['ROU_FROM_PORT'] = $aData['PORT_NUMBER_OP'];
//$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
$rou_id = $oRoute->create($aFields);
unset($aFields);
}
break;
case 'PARALLEL':
foreach ($aData['ROU_NEXT_TASK'] as $iKey => $aRow)
{
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'][0];
$aFields['ROU_NEXT_TASK'] = $aRow;
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['GAT_UID'] = $aData['GAT_UID'];;
if(isset($aData['PORT_NUMBER_IP']))
$aFields['ROU_TO_PORT'] = $aData['PORT_NUMBER_IP'];
if(isset($aData['PORT_NUMBER_OP']))
$aFields['ROU_FROM_PORT']= $aData['PORT_NUMBER_OP'];
$rou_id = $oRoute->create($aFields);
unset($aFields);
}
break;
case 'PARALLEL-BY-EVALUATION':
foreach ($aData['ROU_NEXT_TASK'] as $iKey => $aRow)
{
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'][0];
$aFields['ROU_NEXT_TASK'] = $aRow;
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['GAT_UID'] = $aData['GAT_UID'];;
if(isset($aData['PORT_NUMBER_IP']))
$aFields['ROU_TO_PORT'] = $aData['PORT_NUMBER_IP'];
if(isset($aData['PORT_NUMBER_OP']))
$aFields['ROU_FROM_PORT']= $aData['PORT_NUMBER_OP'];
$rou_id = $oRoute->create($aFields);
unset($aFields);
}
break;
case 'DISCRIMINATOR': //Girish ->Added to save changes, while editing the route
foreach ($aData['TASK'] as $iKey => $aRow)
{
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aRow;
$aFields['ROU_NEXT_TASK'] = $aData['ROU_NEXT_TASK'][0];
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['GAT_UID'] = $aData['GAT_UID'];;
if(isset($aData['PORT_NUMBER_IP']))
$aFields['ROU_TO_PORT'] = $aData['PORT_NUMBER_IP'];
if(isset($aData['PORT_NUMBER_OP']))
$aFields['ROU_FROM_PORT'] = $aData['PORT_NUMBER_OP'];
$routeData = $oTasks->getRouteByType($aData['PROCESS'], $aData['ROU_NEXT_TASK'][0], $aData['ROU_TYPE']);
foreach($routeData as $route)
{
$sFields['ROU_UID'] = $route['ROU_UID'];
$rou_id = $oRoute->update($sFields);
}
$rou_id =$oRoute->create($aFields);
unset($aFields);
}
break;
}
echo $rou_id;
}
?>

View File

@@ -1,398 +0,0 @@
<?php
/**
* processes_Ajax.php
*
* 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.
*
*/
G::LoadInclude('ajax');
$oJSON = new Services_JSON();
if ( isset ($_REQUEST['data']) ) {
$oData = $oJSON->decode(stripslashes($_REQUEST['data']));
$sOutput = '';
}
else {
if (!isset($_POST['form'])) {
$aData = urldecode_values($_POST);
}
else {
$aData = urldecode_values($_POST['form']);
}
}
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
require_once 'classes/model/Task.php';
require_once 'classes/model/Event.php';
$oEvent = new Event();
$oTask = new Task();
if ( isset ($_REQUEST['action']) ) {
switch($_REQUEST['action'])
{
case 'load':
$sOutput = $oProcessMap->load($oData->uid);
echo $sOutput;
break;
case 'addTask':
$sOutput = $oProcessMap->addTask($oData->uid, $oData->position->x, $oData->position->y,$oData->cordinate->x,$oData->cordinate->y);
echo $sOutput;
break;
case 'saveTaskPosition':
$sOutput = $oProcessMap->saveTaskPosition($oData->uid, $oData->position->x, $oData->position->y);
echo $sOutput;
break;
case 'saveEventPosition':
$sOutput = $oProcessMap->saveEventPosition($oData->uid, $oData->position->x, $oData->position->y);
echo $sOutput;
break;
case 'saveGatewayPosition':
$sOutput = $oProcessMap->saveGatewayPosition($oData->uid, $oData->position->x, $oData->position->y);
//echo $sOutput;
break;
case 'saveTaskCordinates':
$sOutput = $oProcessMap->saveTaskCordinates($oData->uid, $oData->position->x, $oData->position->y);
echo $sOutput;
break;
case 'saveAnnotationCordinates':
$sOutput = $oProcessMap->saveAnnotationCordinates($oData->uid, $oData->position->x, $oData->position->y);
echo $sOutput;
break;
case 'deleteTask':
$sOutput = $oProcessMap->deleteTask($oData->tas_uid);
echo $sOutput;
break;
case 'addGateway':
$sOutput = $oProcessMap->addGateway($oData);
echo $sOutput;
break;
case 'deleteGateway':
$sOutput = $oProcessMap->deleteGateway($oData->pro_uid, $oData->gat_uid);
echo $sOutput;
break;
case 'updateTaskName':
$aTask['TAS_UID'] = $oData->uid;
$aTask['TAS_TITLE'] = $oData->label;
$oTask->update($aTask);
break;
case 'updateTask':
$aTask['TAS_UID'] = $oData->uid;
$aTask['TAS_BOUNDARY'] = $oData->boundary;
$oTask->update($aTask);
$sOutput = $oJSON->encode($oData);
echo $sOutput;
break;
case 'addSubProcess':
$sOutput = $oProcessMap->addSubProcess($oData->uid, $oData->position->x, $oData->position->y);
echo $sOutput;
break;
case 'deleteSubProcess':
$sOutput = $oProcessMap->deleteSubProcess($oData->pro_uid, $oData->tas_uid);
break;
case 'addText':
$sOutput = $oProcessMap->addText($oData->uid, $oData->label, $oData->position->x, $oData->position->y,$oData->task_uid);
echo $sOutput;
break;
case 'updateText':
$sOutput = $oProcessMap->updateText($oData->uid, $oData->label, $oData->next_uid);
echo $sOutput;
break;
case 'saveTextPosition':
$sOutput = $oProcessMap->saveTextPosition($oData->uid, $oData->position->x, $oData->position->y);
break;
case 'deleteText':
$sOutput = $oProcessMap->deleteText($oData->uid);
echo $sOutput;
break;
case 'getProcesses':
$sOutput = $oProcessMap->getAllProcesses();
echo $sOutput;
break;
case 'dynaforms':
$sOutput = $oProcessMap->getDynaformList($oData->uid);
$sOutput = $oJSON->encode($sOutput);
echo $sOutput;
break;
case 'webEntry_validate':
include(PATH_METHODS . 'processes/processes_webEntryValidate.php');
break;
case 'webEntry_generate':
include(PATH_METHODS . 'processes/processes_webEntryGenerate.php');
break;
case 'webEntry':
$sOutput = $oProcessMap->listNewWebEntry($oData->uid,$oData->evn_uid);
echo $sOutput;
break;
case 'loadTask':
$oOutput = $oTask->load($oData->uid);
$sOutput = $oJSON->encode($oOutput);
echo $sOutput;
break;
case 'assignProcessUser':
$oProcessMap->assignProcessUser($oData->PRO_UID, $oData->USR_UID);
break;
case 'removeProcessUser':
$oProcessMap->removeProcessUser($oData->PU_UID);
break;
case 'saveInterMessageEvent':
$aData['TAS_UID'] = $oData->uid;
$aData['TAS_SEND_LAST_EMAIL'] = strtoupper($oData->tas_send);
$aData['TAS_DEF_MESSAGE'] = $oData->data;
if(isset($aData['TAS_SEND_LAST_EMAIL']) && $aData['TAS_SEND_LAST_EMAIL'] == 'FALSE'){
$aData['TAS_DEF_MESSAGE'] = '';
}else{
$aData['TAS_DEF_MESSAGE'] = str_replace('@amp@', '&', $aData['TAS_DEF_MESSAGE']);
}
$sOutput = $oTask->update($aData);
echo $sOutput;
break;
case 'editObjectPermission':
// we also need the process uid variable for the function.
$oProcessMap->editObjectPermission($oData->op_uid,$oData->pro_uid);
break;
case 'triggersList':
$sOutput = $oProcessMap->getTriggers($oData->pro_uid);
$sOutput = $oJSON->encode($sOutput);
echo $sOutput;
break;
case 'loadCategory':
$sOutput = $oProcessMap->loadProcessCategory();
$sOutput = $oJSON->encode($sOutput);
echo $sOutput;
break;
case 'saveProcess':
$aData['PRO_UID'] = $oData->PRO_UID;
$aData['PRO_CALENDAR'] = $oData->PRO_CALENDAR;
$aData['PRO_CATEGORY'] = $oData->PRO_CATEGORY;
$aData['PRO_DEBUG'] = $oData->PRO_DEBUG;
$aData['PRO_DESCRIPTION'] = $oData->PRO_DESCRIPTION;
$aData['PRO_TITLE'] = $oData->PRO_TITLE;
$sOutput = $oProcessMap->updateProcess($aData);
echo $sOutput;
break;
case 'saveStartEvent':
$aData['TAS_UID'] = $oData->tas_uid;
$aData['TAS_START'] = $oData->tas_start;
$aData['TAS_EVN_UID'] = '';
$oTask->update($aData);
break;
case 'deleteStartEvent':
$aData['TAS_UID'] = $oData->tas_uid;
$aData['TAS_START'] = $oData->tas_start;
$aData['TAS_EVN_UID'] = '';
$oTask->update($aData);
if(isset($oData->evn_uid))
$oEvent->remove($oData->evn_uid);
break;
case 'updateEvent':
$aData['EVN_UID'] = $oData->evn_uid;
$aData['EVN_TYPE'] = $oData->evn_type;
$oEvent = EventPeer::retrieveByPK($aData['EVN_UID']);
if (!is_null($oEvent))
$oEvent->update($aData);
break;
case 'saveEvents':
$sOutput = $oProcessMap->saveExtEvents($oData);
echo $sOutput;
break;
case 'addEvent':
$sOutput = $oProcessMap->saveExtddEvents($oData);
echo $sOutput;
/*
$aData['PRO_UID'] = $oData->uid;
$aData['EVN_TYPE'] = $oData->tas_type;
$aData['EVN_STATUS'] = 'ACTIVE';
$aData['EVN_WHEN'] = '1';
$aData['EVN_ACTION'] = '';
if(preg_match("/Inter/", $oData->tas_type)){
$aData['EVN_RELATED_TO'] = 'MULTIPLE';
$aData['EVN_TAS_UID_FROM'] = $oData->tas_from;
$aData['EVN_TAS_UID_TO'] = $oData->tas_to;
$sOutput = $oEvent->create($aData);
echo $sOutput;
}
//Code for Start Events only
if(preg_match("/Start/", $oData->tas_type)){
$oEvn_uid='';
$aData['EVN_RELATED_TO'] = 'SINGLE';
$aData['TAS_UID'] = $oData->tas_uid;
$oTaskData = $oTask->load($aData['TAS_UID']);
if($oTaskData['TAS_EVN_UID'] == ''){
$oEvn_uid = $oEvent->create($aData);
}else{
$aData['EVN_UID'] = $oTaskData['TAS_EVN_UID'];
$oEvn_uid = $aData['EVN_UID'];
$oEvent->update($aData);
}
$aTask['TAS_UID'] = $oData->tas_uid;
$aTask['TAS_EVN_UID'] = $oEvn_uid;
$aTask['TAS_START'] = 'TRUE';
$oTask->update($aTask);
}*/
break;
case 'deleteRoute':
require_once 'classes/model/Route.php';
$oRoute = new Route();
$sOutput = $oRoute->remove($oData->uid);
echo $sOutput;
break;
case 'deleteEvent':
$sOutput = $oEvent->remove($oData->uid);
echo $sOutput;
break;
case 'assign':
G::LoadClass('tasks');
$oTasks = new Tasks();
switch ($oData->TU_RELATION) {
case 1:
echo $oTasks->assignUser($oData->TAS_UID, $oData->USR_UID, $oData->TU_TYPE);
break;
case 2:
echo $oTasks->assignGroup($oData->TAS_UID, $oData->USR_UID, $oData->TU_TYPE);
break;
}
break;
case 'ofToAssign':
G::LoadClass('tasks');
$oTasks = new Tasks();
switch ($oData->TU_RELATION) {
case 1:
echo $oTasks->ofToAssignUser($oData->TAS_UID, $oData->USR_UID, $oData->TU_TYPE);
break;
case 2:
echo $oTasks->ofToAssignGroup($oData->TAS_UID, $oData->USR_UID, $oData->TU_TYPE);
break;
}
break;
case 'saveSubprocessDetails':
//$aTask=$oTask->load($_POST['form']['TASKS']);
//$aTask=$oTask->load($_POST['form']['PRO_UID']);
$out = array();
$in = array();
if(isset($_POST['VAR_OUT']) && $_POST['VAR_OUT'] != ''){
$varOut = explode('|',$_POST['VAR_OUT']);
$aVarOut1 = G::json_decode($varOut[0]);
$aVarOut2 = G::json_decode($varOut[1]);
for($i=1; $i<=count($aVarOut1); $i++){
$out[$aVarOut1[$i-1]]= $aVarOut2[$i-1];
}
}
if(isset($_POST['VAR_IN']) && $_POST['VAR_IN'] != ''){
$varIn = explode('|',$_POST['VAR_IN']);
$aVarIn1 = G::json_decode($varIn[0]);
$aVarIn2 = G::json_decode($varIn[1]);
for($i=1; $i<=count($aVarIn1); $i++){
$in[$aVarIn1[$i-1]]= $aVarIn2[$i-1];
}
}
if($_POST['VAR_IN'] == '')
$in[$_POST['VAR_IN']] = '';
//Getting first Tasks of selected process
$aNewCase = $oProcessMap->subProcess_TaskIni($_POST['PRO_UID']);
$i = 0;
foreach ($aNewCase as $aRow) {
if ($i > 0 && $aRow['pro_uid'] == $_POST['sProcessUID']) {
$sTASKS = $aRow['uid'];
}
$i++;
}
//$aTask=($_POST['TASKS']!=0)?$oTask->load($_POST['TASKS']):0;
$aTask=($sTASKS!=0)?$oTask->load($sTASKS):0;
//$aTask['PRO_UID']=0;
if ( isset ( $_POST['SP_SYNCHRONOUS']) && $_POST['SP_SYNCHRONOUS'] == '' ) {
$_POST['SP_SYNCHRONOUS'] = '0';
}
if ( !isset ( $_POST['SP_SYNCHRONOUS']) ) {
$_POST['SP_SYNCHRONOUS'] = '0';
}
require_once 'classes/model/SubProcess.php';
$oOP = new SubProcess();
$aData = array('SP_UID' => $_POST['SP_UID'],//G::generateUniqueID(),
'PRO_UID' => $aTask['PRO_UID'],
'TAS_UID' => $sTASKS,
'PRO_PARENT' => $_POST['PRO_PARENT'],
'TAS_PARENT' => $_POST['TAS_PARENT'],
'SP_TYPE' => 'SIMPLE',
'SP_SYNCHRONOUS' => $_POST['SP_SYNCHRONOUS'],
'SP_SYNCHRONOUS_TYPE' => 'ALL',
'SP_SYNCHRONOUS_WAIT' => 0,
'SP_VARIABLES_OUT' => serialize($out),
'SP_VARIABLES_IN' => serialize($in),
'SP_GRID_IN' => '');
$oOP->update($aData);
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 '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();
if (isset($_GET['OUT_DOC_UID'])) {
$rows = $ooutputDocument->load($_GET['OUT_DOC_UID']);
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
break;
}
}
}
?>

View File

@@ -1,179 +0,0 @@
<?php
/*
Copyright (c) 2010, Andrew Rymarczyk
All rights reserved.
Redistribution and use in source and minified, compiled or otherwise obfuscated
form, with or without modification, are permitted provided that the following
conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in minified, compiled or otherwise obfuscated form must
reproduce the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
//$save_path = PATH_DATA_MAILTEMPLATES . '4601910684c597eab4810e6037370402' . PATH_SEP ;
$save_path = $_SERVER['DOCUMENT_ROOT'].'/uploads/';
$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)
//$extension_whitelist = array('csv', 'gif', 'png','tif'); // Allowed file extensions
$MAX_FILENAME_LENGTH = 260;
$max_file_size_in_bytes = 2147483647; // 2GB in bytes
$upload_name = 'Filedata';
/*
This is an upload script for SWFUpload that attempts to properly handle uploaded files
in a secure way.
Notes:
SWFUpload doesn't send a MIME-TYPE. In my opinion this is ok since MIME-TYPE is no better than
file extension and is probably worse because it can vary from OS to OS and browser to browser (for the same file).
The best thing to do is content sniff the file but this can be resource intensive, is difficult, and can still be fooled or inaccurate.
Accepting uploads can never be 100% secure.
You can't guarantee that SWFUpload is really the source of the upload. A malicious user
will probably be uploading from a tool that sends invalid or false metadata about the file.
The script should properly handle this.
The script should not over-write existing files.
The script should strip away invalid characters from the file name or reject the file.
The script should not allow files to be saved that could then be executed on the webserver (such as .php files).
To keep things simple we will use an extension whitelist for allowed file extensions. Which files should be allowed
depends on your server configuration. The extension white-list is _not_ tied your SWFUpload file_types setting
For better security uploaded files should be stored outside the webserver's document root. Downloaded files
should be accessed via a download script that proxies from the file system to the webserver. This prevents
users from executing malicious uploaded files. It also gives the developer control over the outgoing mime-type,
access restrictions, etc. This, however, is outside the scope of this script.
SWFUpload sends each file as a separate POST rather than several files in a single post. This is a better
method in my opinions since it better handles file size limits, e.g., if post_max_size is 100 MB and I post two 60 MB files then
the post would fail (2x60MB = 120MB). In SWFupload each 60 MB is posted as separate post and we stay within the limits. This
also simplifies the upload script since we only have to handle a single file.
The script should properly handle situations where the post was too large or the posted file is larger than
our defined max. These values are not tied to your SWFUpload file_size_limit setting.
*/
// Check post_max_size (http://us3.php.net/manual/en/features.file-upload.php#73762)
$POST_MAX_SIZE = ini_get('post_max_size');
$unit = strtoupper(substr($POST_MAX_SIZE, -1));
$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));
if ((int)$_SERVER['CONTENT_LENGTH'] > $multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) {
//header("HTTP/1.1 500 Internal Server Error"); // This will trigger an uploadError event in SWFUpload
//echo "POST exceeded maximum allowed size.";
HandleError('POST exceeded maximum allowed size.');
}
// Other variables
$file_name = '';
$file_extension = '';
$uploadErrors = array(
0=>'There is no error, the file uploaded with success',
1=>'The uploaded file exceeds the upload_max_filesize directive in php.ini',
2=>'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
3=>'The uploaded file was only partially uploaded',
4=>'No file was uploaded',
6=>'Missing a temporary folder'
);
// Validate the upload
if (!isset($_FILES[$upload_name])) {
HandleError('No upload found in \$_FILES for ' . $upload_name);
} else if (isset($_FILES[$upload_name]["error"]) && $_FILES[$upload_name]["error"] != 0) {
HandleError($uploadErrors[$_FILES[$upload_name]["error"]]);
} else if (!isset($_FILES[$upload_name]["tmp_name"]) || !@is_uploaded_file($_FILES[$upload_name]["tmp_name"])) {
HandleError('Upload failed is_uploaded_file test.');
} else if (!isset($_FILES[$upload_name]['name'])) {
HandleError('File has no name.');
}
// Validate the file size (Warning: the largest files supported by this code is 2GB)
$file_size = @filesize($_FILES[$upload_name]["tmp_name"]);
if (!$file_size || $file_size > $max_file_size_in_bytes) {
HandleError('File exceeds the maximum allowed size');
}
if ($file_size <= 0) {
HandleError('File size outside allowed lower bound');
}
// Validate file name (for our purposes we'll just remove invalid characters)
$file_name = preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));
if (strlen($file_name) == 0 || strlen($file_name) > $MAX_FILENAME_LENGTH) {
HandleError('Invalid file name');
}
// Validate that we won't over-write an existing file
if (file_exists($save_path . $file_name)) {
HandleError('A file with this name already exists');
}
/*
// Validate file extension
$path_info = pathinfo($_FILES[$upload_name]['name']);
$file_extension = $path_info["extension"];
$is_valid_extension = false;
foreach ($extension_whitelist as $extension) {
if (strcasecmp($file_extension, $extension) == 0) {
$is_valid_extension = true;
break;
}
}
if (!$is_valid_extension) {
HandleError("Invalid file extension");
exit(0);
}
*/
// Validate file contents (extension and mime-type can't be trusted)
/*
Validating the file contents is OS and web server configuration dependant. Also, it may not be reliable.
See the comments on this page: http://us2.php.net/fileinfo
Also see http://72.14.253.104/search?q=cache:3YGZfcnKDrYJ:www.scanit.be/uploads/php-file-upload.pdf+php+file+command&hl=en&ct=clnk&cd=8&gl=us&client=firefox-a
which describes how a PHP script can be embedded within a GIF image file.
Therefore, no sample code will be provided here. Research the issue, decide how much security is
needed, and implement a solution that meets the needs.
*/
// Process the file
/*
At this point we are ready to process the valid file. This sample code shows how to save the file. Other tasks
could be done such as creating an entry in a database or generating a thumbnail.
Depending on your server OS and needs you may need to set the Security Permissions on the file after it has
been saved.
*/
if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$file_name)) {
HandleError("File could not be saved.");
}
die('{"success":true}');
/* Handles the error output. This error message will be sent to the uploadSuccess event handler. The event handler
will have to check for any error messages and react as needed. */
function HandleError($message) {
die('{success:false,error:'.G::json_encode($message).'}');
}
?>

View File

@@ -1,67 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['eid'] ) )
{
//Getting available Steps Criteria that have been not selected for a particular task
require_once "classes/model/Event.php";
$oEvent = new Event();
$oData = $oEvent->load($_GET['eid']);
$sch_uid = $oData['EVN_ACTION'];
if($sch_uid != '')
{
$rows = $oProcessMap->caseNewSchedulerList($sch_uid);
if($rows['SCH_OPTION'] == '3')
{
$sch_start_day = explode('|',$rows['SCH_START_DAY']);
$count = count($sch_start_day);
switch($count){
case 1:
$rows['SCH_START_DAY'] = $sch_start_day[0];
break;
case 2:
$rows['SCH_START_DAY'] = $sch_start_day[0];
$rows['SCH_START_DAY_OPT_2_WEEKS'] = $sch_start_day[1];
break;
case 3:
$rows['SCH_START_DAY'] = $sch_start_day[0];
$rows['SCH_START_DAY_OPT_2_WEEKS'] = $sch_start_day[1];
$rows['SCH_START_DAY_OPT_2_DAYS_WEEK'] = $sch_start_day[2];
break;
}
}
if($rows['SCH_START_DATE'] != '')
{
$sch_str_dt = explode(' ',$rows['SCH_START_DATE']);
$rows['SCH_START_DATE'] = $sch_str_dt[0];
}
if($rows['SCH_END_DATE'] != '')
{
$sch_str_dt = explode(' ',$rows['SCH_END_DATE']);
$rows['SCH_END_DATE'] = $sch_str_dt[0];
}
$result = G::json_encode( $rows ) ;
$result = str_replace("\\/","/",'{success:true,data:'.$result.'}'); // unescape the slashes
}
else
{
$result = '{failure:true}'; // unescape the slashes
}
echo $result;
}
//print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,18 +0,0 @@
<?php
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if (isset($_GET['pid'] ))
{
$rows = $oProcessMap->getExtCaseTrackerObjectsCriteria($_GET['pid']);
}
if (isset($_GET['tid'] ))
{
$rows = $oProcessMap->getAvailableExtCaseTrackerObjects($_GET['tid']);
}
array_shift($rows);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode($result);
?>

View File

@@ -1,27 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['pid']) )
{
$rows = $oProcessMap->getExtCriteriaDBSList($_GET['pid']);
}
if(isset($_GET['tid']))
{
require_once 'classes/model/DbSource.php';
$o = new DbSource();
$rows = $o->load($_GET['tid']);
}
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,37 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['pid'] ) )
{
//Getting Dynaform List
$rows = $oProcessMap->getExtDynaformsList($_GET['pid']);
array_shift($rows);
}
else if(isset($_GET['tabId'])){
$oAdditionalTables = new AdditionalTables();
$aData = $oAdditionalTables->load($_GET['tabId'], true);
$addTabName = $aData['ADD_TAB_NAME'];
foreach ($aData['FIELDS'] as $iRow => $aRow) {
if ($aRow['FLD_KEY'] == 1) {
$rows[] = $aRow;
}
}
}
//Getting Additional PM tables list created by user for combobox
else
{
//Getting Dynaform List
$rows = $oProcessMap->getExtAdditionalTablesList();
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}

View File

@@ -1,27 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['startInterId'] ) )
{
//Getting available Steps Criteria that have been not selected for a particular task
require_once "classes/model/Event.php";
$oEvent = new Event();
$aRows = $oEvent->load($_GET['startInterId']);
//$sch_uid = $oData['EVN_ACTION'];
$result = G::json_encode( $aRows );
$result = str_replace("\\/","/",'{success:true,data:'.$result.'}'); // unescape the slashes
/*else
{
$result = '{failure:true}'; // unescape the slashes
}*/
echo $result;
}
//print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,454 +0,0 @@
<?php
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
//$_GET['sid'] gets STEP_UID and sTYPE(i.e BEFORE and AFTER) in format STEP_UID-sTYPE
if(isset($_GET['stepid'])){
$aStepTypeId = explode('|',$_GET['stepid']);
$_SESSION['stepUID'] = $_GET['stepid'];
//$aStepTypeId = explode('-','2517180104cd42c25cc39e4071099227-BEFORE');
$sStep = $aStepTypeId[0];
$sType = $aStepTypeId[1];
}
//$_GET['sid'] gets STEP_UID and sTYPE(i.e BEFORE and AFTER) in format STEP_UID-sTYPE
if(isset($_GET['stepid'])){
$aStepTypeId = explode('|',$_GET['stepid']);
$_SESSION['stepUID'] = $_GET['stepid'];
//$aStepTypeId = explode('-','2517180104cd42c25cc39e4071099227-BEFORE');
$sStep = $aStepTypeId[0];
$sType = $aStepTypeId[1];
}
$start = isset($_POST['start'])? $_POST['start']: 0;
$limit = isset($_POST['limit'])? $_POST['limit']: '';
switch( $_GET['action'] ) {
case 'getDynaformList' :
$result = $oProcessMap->getExtDynaformsList($start, $limit, $_GET['pid']);
print G::json_encode( $result ) ;
break;
case 'getPMTableDynaform':
$oAdditionalTables = new AdditionalTables();
$aData = $oAdditionalTables->load($_GET['tabId'], true);
$addTabName = $aData['ADD_TAB_NAME'];
foreach ($aData['FIELDS'] as $iRow => $aRow)
{
if ($aRow['FLD_KEY'] == 1)
{
$rows[] = $aRow;
}
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAdditionalTables':
$rows = $oProcessMap->getExtAdditionalTablesList();
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getInputDocumentList':
$rows = $oProcessMap->getExtInputDocumentsCriteria($start, $limit,$_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllInputDocumentCount();
array_shift($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'editInputDocument':
require_once 'classes/model/InputDocument.php';
$oInputDocument = new InputDocument();
$rows = $oInputDocument->load($_GET['INP_DOC_UID']);
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
break;
case 'getOutputDocument':
$rows = $oProcessMap->getExtOutputDocumentsCriteria($start, $limit,$_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllOutputDocumentCount();
array_shift($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'editObjectPermission':
$rows = $oProcessMap->editExtObjectPermission($_GET['pid'],$_GET['op_uid']);
//array_shift($rows);
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
break;
case 'editOutputDocument':
require_once 'classes/model/OutputDocument.php';
$oOutputDocument = new OutputDocument();
$rows = $oOutputDocument->load($_GET['tid']);
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
break;
case 'getReportTables':
$rows = $oProcessMap->getExtReportTables($start, $limit,$_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllReportTableCount();
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'editReportTables':
require_once 'classes/model/ReportTable.php';
$oReportTable = new ReportTable();
$rows = $oReportTable->load($_GET['REP_TAB_UID'],$_GET['pid']);
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
break;
case 'getReportTableType':
if(isset($_GET['pid']) && $_GET['type'] == 'NORMAL')
{
$aTheFields = array();
$aTheFields = getDynaformsVars($_GET['pid'], false);
foreach ($aTheFields as $aField)
{
$rows[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sType'],
'FIELD_NAME' => $aField['sName']);
}
}
else if (isset($_GET['pid']) && $_GET['type'] == 'GRID')
{
$aTheFields = array();
$aTheFields = getGridsVars($_GET['pid']);
foreach ($aTheFields as $aField)
{
$rows[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sXmlForm'],
'FIELD_NAME' => $aField['sName']);
}
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getDatabaseConnectionList':
$rows = $oProcessMap->getExtCriteriaDBSList($start, $limit,$_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllDbSourceCount();
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'editDatabaseConnection':
require_once 'classes/model/DbSource.php';
$o = new DbSource();
$rows = $o->load($_GET['dbs_uid'],$_GET['pid']);
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
break;
case 'process_Supervisors':
$rows = $oProcessMap->listExtProcessesSupervisors($start, $limit, $_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllProcessSupervisorsCount();
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'availableProcessesSupervisors':
$rows = $oProcessMap->listExtNoProcessesUser($_GET['pid']);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'supervisorDynaforms':
$rows = $oProcessMap->getExtSupervisorDynaformsList($start, $limit,$_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllSupervisorDynaformsCount();
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'availableSupervisorDynaforms':
$rows = $oProcessMap->getExtAvailableSupervisorDynaformsList($_GET['pid']);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'supervisorInputDoc':
$rows = $oProcessMap->getExtSupervisorInputsList($start, $limit,$_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllSupervisorInputsCount();
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'availableSupervisorInputDoc':
$rows = $oProcessMap->getExtAvailableSupervisorInputsList($_GET['pid']);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAssignedCaseTrackerObjects':
$rows = $oProcessMap->getExtCaseTrackerObjectsCriteria($start, $limit, $_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllCaseTrackerObjectCount();
array_shift($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAvailableCaseTrackerObjects':
$rows = $oProcessMap->getAvailableExtCaseTrackerObjects($_GET['pid']);
array_shift($rows);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAvailableSteps':
$rows = $oProcessMap->getExtAvailableBBCriteria($_GET['pid'], $_GET['tid']);
array_shift($rows);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAssignedSteps':
$rows = $oProcessMap->getExtStepsCriteria($start, $limit,$_GET['tid']);
$result['totalCount'] = $oProcessMap->getAllStepCount();
array_shift($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAssignedUsersList':
$rows = $oProcessMap->usersExtList($start, $limit, $_GET['pid'], $_GET['tid']);
$result['totalCount'] = $oProcessMap->getAllTaskUserCount();
array_shift($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAvailableUsersList':
$rows = $oProcessMap->getAvailableExtUsersCriteria($_GET['tid']);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAvailableStepTriggers':
$aStepTypeId = explode('|',$_SESSION['stepUID']);
$sStep = $aStepTypeId[0];
$sType = $aStepTypeId[1];
//Getting available Steps Criteria that have been not selected for a particular task
$rows = $oProcessMap->getExtAvailableStepTriggersCriteria($_GET['pid'], $sStep, $_GET['tid'], $sType);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getAssignedStepTriggers':
$rows = $oProcessMap->getExtStepTriggersCriteria($start, $limit, $sStep, $_GET['tid'], $sType);
$result['totalCount'] = $oProcessMap->getAllStepTriggerCount();
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'availableUsers':
$rows = $oProcessMap->getExtAvailableUsersList($_GET['tid']);
array_shift($rows);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'assignedUsers':
$rows = $oProcessMap->getExtusersadhoc($start, $limit,$_GET['pid'], $_GET['tid']);
$result['totalCount'] = $oProcessMap->getAllTaskUserCount();
array_shift($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getTaskPropertiesList':
require_once 'classes/model/Task.php';
$oTask = new Task();
$rows = $oTask->load($_GET['tid']);
while (list($key, $value) = each($rows)) {
if ($value == 'TRUE')
$rows[$key] = true;
else if($value == 'FALSE')
$rows[$key] = false;
if($key == 'TAS_TYPE_DAY' && $value == '1')
$rows[$key] = 'Work Days';
else if($key == 'TAS_TYPE_DAY' && $value == '2')
$rows[$key] = 'Calendar Days';
if($key == 'TAS_TYPE' && $value == 'NORMAL')
$rows[$key] = false;
else if($key == 'TAS_TYPE' && $value == 'ADHOC')
$rows[$key] = true;
}
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
break;
case 'getSubProcessProperties':
if($_GET['type'] == 2) //Loading sub process details
{
$rows = $oProcessMap->subProcessExtProperties($_GET['pid'], $_GET['tid'],'','0');
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
print $result;
}
else
{
$rows = $oProcessMap->subProcessExtProperties($_GET['pid'], $_GET['tid'],'',$_GET['type']);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
break;
case 'getObjectPermission':
$rows = $oProcessMap->getExtObjectsPermissions($start, $limit,$_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllObjectPermissionCount();
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'getObjectPermissionType':
$rows = $oProcessMap->newExtObjectPermission($_GET['pid'],$_GET['objectType']);
array_shift($rows);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
break;
case 'process_Edit':
$rows = $oProcessMap->editProcessNew($_GET['pid']);
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // 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;
echo $result;
break;
case 'getVariables':
$aFields = getDynaformsVars($_GET['pid']);
if(isset ($_GET['type']))
$aType = $_GET['type'];
else $aType='';
$rows[0] = Array (
'fieldname' => 'char',
'variable' => 'char',
'type' => 'type',
'label' => 'char'
);
foreach ( $aFields as $aField ) {
switch ($aType){
case "system":
if($aField['sType']=="system"){
$rows[] = Array (
'fieldname' => $_GET['sFieldName'],
'variable' => $_GET['sSymbol'] . $aField['sName'],
'variable_label' => '<div class="pm__dynavars"> <a id="dynalink" href=# onclick="insertFormVar(\''.$_GET['sFieldName'].'\',\''.$_GET['sSymbol'] . $aField['sName'].'\');">'.$_GET['sSymbol'] . $aField['sName'].'</a></div>',
'type' => $aField['sType'],
'label' => $aField['sLabel']
);
}
break;
case "process":
if($aField['sType']!="system"){
$rows[] = Array (
'fieldname' => $_GET['sFieldName'],
'variable' => $_GET['sSymbol'] . $aField['sName'],
'variable_label' => '<div class="pm__dynavars"> <a id="dynalink" href=# onclick="insertFormVar(\''.$_GET['sFieldName'].'\',\''.$_GET['sSymbol'] . $aField['sName'].'\');">'.$_GET['sSymbol'] . $aField['sName'].'</a></div>',
'type' => $aField['sType'],
'label' => $aField['sLabel']
);
}
break;
default:
$rows[] = Array (
'fieldname' => $_GET['sFieldName'],
'variable' => $_GET['sSymbol'] . $aField['sName'],
'variable_label' => '<div class="pm__dynavars"> <a id="dynalink" href=# onclick="insertFormVar(\''.$_GET['sFieldName'].'\',\''.$_GET['sSymbol'] . $aField['sName'].'\');">'.$_GET['sSymbol'] . $aField['sName'].'</a></div>',
'type' => $aField['sType'],
'label' => $aField['sLabel']
);
break;
}
}
array_shift($rows);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode($result);
break;
}
//$result['data'] = $rows;
//print G::json_encode( $result ) ;
/*$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;*/

View File

@@ -1,30 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['pid'] ) )
{
$rows = $oProcessMap->getExtInputDocumentsCriteria($_GET['pid']);
array_shift($rows);
}
if (isset($_GET['INP_DOC_UID'])) {
require_once 'classes/model/InputDocument.php';
$oInputDocument = new InputDocument();
$rows = $oInputDocument->load($_GET['INP_DOC_UID']);
}
// $result['totalCount'] = count($rows);
// $result['data'] = $rows;
// print G::json_encode( $result) ;
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}

View File

@@ -1,18 +0,0 @@
<?php
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['pid'] ) && !isset($_GET ['action']))
{
$rows = $oProcessMap->getExtObjectsPermissions($_GET['pid']);
}
if ( isset($_GET['pid'] )&& isset($_GET['action']) )
{
$rows = $oProcessMap->newExtObjectPermission($_GET['pid'],$_GET['action']);
array_shift($rows);
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode($result);
?>

View File

@@ -1,36 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['pid'] ) )
{
$rows = $oProcessMap->getExtOutputDocumentsCriteria($_GET['pid']);
array_shift($rows);
}
// else
// {
// $rows = $oProcessMap->getExtInputDocumentsCriteria($_GET['pid']);
// }
if (isset($_GET['tid']))
{
require_once 'classes/model/OutputDocument.php';
$oOutputDocument = new OutputDocument();
$rows = $oOutputDocument->load($_GET['tid']);
}
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
/* $result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result) ;*/
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}

View File

@@ -1,40 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
$processUID = $_GET['pid'];
$action = $_GET['action'];
switch($action)
{
case 'process_User':
$rows = $oProcessMap->listExtProcessesUser($processUID);
break;
case 'availableProcessesUser':
$rows = $oProcessMap->listExtNoProcessesUser($processUID);
break;
case 'supervisorDynaforms':
$rows = $oProcessMap->getExtSupervisorDynaformsList($processUID);
break;
case 'availableSupervisorDynaforms':
$rows = $oProcessMap->getExtAvailableSupervisorDynaformsList($processUID);
break;
case 'supervisorInputDoc':
$rows = $oProcessMap->getExtSupervisorInputsList($processUID);
break;
case 'availableSupervisorInputDoc':
$rows = $oProcessMap->getExtAvailableSupervisorInputsList($processUID);
break;
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,58 +0,0 @@
<?php
/**
* processes_Export.php
*
* 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.
*
*/
G::LoadThirdParty('pear/json','class.json');
try {
if ( isset($_GET['pro_uid']))
$sProUid = $_GET['pro_uid'];
else
throw ( new Exception ( 'the process uid is not defined!.' ) );
/* Includes */
G::LoadClass('processes');
$oProcess = new Processes();
$proFields = $oProcess->serializeProcess( $sProUid );
$Fields = $oProcess->saveSerializedProcess ( $proFields );
if (G::is_https ())
$http = 'https://';
else
$http = 'http://';
$Fields['FILENAME_LINK'] = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/processes/' . $Fields['FILENAME_LINK'];
$result = G::json_encode( $Fields );
$result = str_replace("\\/","/",'{success:true,data:'.$result.'}'); // unescape the slashes
echo $result;
}
catch ( Exception $e ){
$G_PUBLISH = new Publisher;
$aMessage['MESSAGE'] = $e->getMessage();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
G::RenderPage('publish', 'raw' );
}

View File

@@ -1,45 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if(isset($_GET['pid']) && !isset($_GET['type'])){
$rows = $oProcessMap->getExtReportTables($_GET['pid']);
}
else if(isset($_GET['pid']) && $_GET['type'] == 'NORMAL')
{
$aTheFields = array();
$aTheFields = getDynaformsVars($_GET['pid'], false);
foreach ($aTheFields as $aField) {
$rows[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sType'],
'FIELD_NAME' => $aField['sName']);
}
}
else if(isset($_GET['pid']) && $_GET['type'] == 'GRID'){
$aTheFields = array();
$aTheFields = getGridsVars($_GET['pid']);
foreach ($aTheFields as $aField) {
$rows[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sXmlForm'],
'FIELD_NAME' => $aField['sName']);
}
}
if(isset($_GET['tid']))
{
require_once 'classes/model/ReportTable.php';
$o = new ReportTable();
$rows = $o->load($_GET['tid']);
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,40 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
//$_GET['sid'] gets STEP_UID and sTYPE(i.e BEFORE and AFTER) in format STEP_UID-sTYPE
if(isset($_GET['stepid']))
{
$aStepTypeId = explode('|',$_GET['stepid']);
$_SESSION['stepUID'] = $_GET['stepid'];
//$aStepTypeId = explode('-','2517180104cd42c25cc39e4071099227-BEFORE');
$sStep = $aStepTypeId[0];
$sType = $aStepTypeId[1];
}
if (isset($_GET['pid'] ) && isset($_SESSION['stepUID']))
{
$aStepTypeId = explode('|',$_SESSION['stepUID']);
$sStep = $aStepTypeId[0];
$sType = $aStepTypeId[1];
//Getting available Steps Criteria that have been not selected for a particular task
$rows = $oProcessMap->getExtAvailableStepTriggersCriteria($_GET['pid'], $sStep, $_GET['tid'], $sType);
}
else
{
//Getting all Steps Criteria that have been selected for a particular task
$rows = $oProcessMap->getExtStepTriggersCriteria($sStep, $_GET['tid'], $sType);
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,31 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
//array_shift($rows);
if($_GET['type'] == 2) //Loading sub process details
{
$rows = $oProcessMap->subProcessExtProperties($_GET['pid'], $_GET['tid'],'','0');
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
print $result;
}
else
{
$rows = $oProcessMap->subProcessExtProperties($_GET['pid'], $_GET['tid'],'',$_GET['type']);
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,64 +0,0 @@
<?php
try
{
require_once 'classes/model/Task.php';
$oTask = new Task();
$rows = $oTask->load($_GET['tid']);
while (list($key, $value) = each($rows)) {
if ($value == 'TRUE')
$rows[$key] = true;
else if($value == 'FALSE')
$rows[$key] = false;
if($key == 'TAS_TYPE_DAY' && $value == '1')
$rows[$key] = 'Work Days';
else if($key == 'TAS_TYPE_DAY' && $value == '2')
$rows[$key] = 'Calendar Days';
if($key == 'TAS_ASSIGN_TYPE')
{
switch($value)
{
case 'SELF_SERVICE':
$rows[$value] = 'true';
break;
case 'REPORT_TO':
$rows[$value] = 'true';
break;
case 'BALANCED':
$rows[$value] = 'true';
break;
case 'MANUAL':
$rows[$value] = 'true';
break;
case 'EVALUATE':
$rows[$value] = 'true';
$rows['hideEvaluateField'] = 'false';
break;
case 'STATIC_MI':
$rows[$value] = 'true';
$rows['hidePartialJoinField'] = 'false';
break;
case 'CANCEL_MI':
$rows[$value] = 'true';
$rows['hidePartialJoinField'] = 'false';
break;
}
}
}
$tmpData = G::json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData;
echo $result;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,28 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['pid'] ) )
{
//Getting available Steps Criteria that have been not selected for a particular task
$rows = $oProcessMap->getExtAvailableBBCriteria($_GET['pid'], $_GET['tid']);
array_shift($rows);
}
else
{
//Getting all Steps Criteria that have been selected for a particular task
$rows = $oProcessMap->getExtStepsCriteria($_GET['tid']);
array_shift($rows);
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,24 +0,0 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['pid'] ) )
{
$rows = $oProcessMap->usersExtList($_GET['pid'], $_GET['tid']);
array_shift($rows);
}
else
{
$rows = $oProcessMap->getAvailableExtUsersCriteria($_GET['tid']);
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
print G::json_encode ( $e->getMessage() );
}
?>

View File

@@ -1,60 +0,0 @@
<?php
G::LoadClass('processMap');
G::LoadClass('XmlForm_Field');
//$oXMLfield = new XmlForm_Field_TextPM(new DBConnection);
$aFields = getDynaformsVars($_GET['pid']);
if(isset ($_GET['type']))
$aType = $_GET['type'];
else $aType='';
$aRows[0] = Array (
'fieldname' => 'char',
'variable' => 'char',
'type' => 'type',
'label' => 'char'
);
foreach ( $aFields as $aField ) {
switch ($aType){
case "system":
if($aField['sType']=="system"){
$aRows[] = Array (
'fieldname' => $_GET['sFieldName'],
'variable' => $_GET['sSymbol'] . $aField['sName'],
'variable_label' => '<div class="pm__dynavars"> <a id="dynalink" href=# onclick="insertFormVar(\''.$_GET['sFieldName'].'\',\''.$_GET['sSymbol'] . $aField['sName'].'\');">'.$_GET['sSymbol'] . $aField['sName'].'</a></div>',
'type' => $aField['sType'],
'label' => $aField['sLabel']
);
}
break;
case "process":
if($aField['sType']!="system"){
$aRows[] = Array (
'fieldname' => $_GET['sFieldName'],
'variable' => $_GET['sSymbol'] . $aField['sName'],
'variable_label' => '<div class="pm__dynavars"> <a id="dynalink" href=# onclick="insertFormVar(\''.$_GET['sFieldName'].'\',\''.$_GET['sSymbol'] . $aField['sName'].'\');">'.$_GET['sSymbol'] . $aField['sName'].'</a></div>',
'type' => $aField['sType'],
'label' => $aField['sLabel']
);
}
break;
default:
$aRows[] = Array (
'fieldname' => $_GET['sFieldName'],
'variable' => $_GET['sSymbol'] . $aField['sName'],
'variable_label' => '<div class="pm__dynavars"> <a id="dynalink" href=# onclick="insertFormVar(\''.$_GET['sFieldName'].'\',\''.$_GET['sSymbol'] . $aField['sName'].'\');">'.$_GET['sSymbol'] . $aField['sName'].'</a></div>',
'type' => $aField['sType'],
'label' => $aField['sLabel']
);
break;
}
}
array_shift($aRows);
$result['totalCount'] = count($aRows);
$result['data'] = $aRows;
print G::json_encode($result);
?>

View File

@@ -1,136 +0,0 @@
<?php
/**
* saveProcess.php
*
* 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.
*
*/
try{
G::LoadClass('xpdl');
G::LoadClass('processMap');
G::LoadClass('tasks');
$oProcessMap = new processMap(new DBConnection);
$oProcess = new Xpdl();
$oTask = new Task();
if(isset($_POST['PRO_UID'])){
$idProcess = $_POST['PRO_UID'];
if($oProcess->processExists ($idProcess)){
$process['ID'] = $idProcess;
}
else{
$result = array();
$result['status_code'] = $idProcess;
$result['message'] = "the process does not exist";
$result['timestamp'] = date('Y-m-d H:i:s');
echo G::json_encode($result);
die;
}
}
else{
$result = array();
$result['status_code'] = 1;
$result['message'] = "you don't send the process uid";
$result['timestamp'] = date('Y-m-d H:i:s');
echo G::json_encode($result);
die;
}
$aTasks = G::json_decode ( $_POST['tasks'] );
$aRoutes = G::json_decode ( $_POST['routes'] );
$aEvents = G::json_decode ( $_POST['events'] );
$aGateways = G::json_decode ( $_POST['gateways'] );
$aAnnotations = G::json_decode ( $_POST['annotations'] );
$aSubprocess = G::json_decode ( $_POST['subprocess'] );
$fields = $oProcess->serializeProcess($idProcess);
$oData = unserialize($fields);
$aRoutes = $oProcess->super_unique($aRoutes);
$sOutput = '';
$subProcesses = array();
foreach($aTasks as $endBase => $valueEnd){
$tasks['ID_TASK'] = $valueEnd['0'];
$tasks['START'] = '';
foreach($aEvents as $id => $value){
if($value['1'] == 'bpmnEventEmptyStart' or $value['1'] == 'bpmnEventMessageStart' or $value['1'] == 'bpmnEventTimerStart' ){
foreach($aRoutes as $endR => $valueR){
if($tasks['ID_TASK'] == $valueR['2'] and $valueR['1'] == $value['0'] ){
$tasks['START'] = 'TRUE';
unset($aEvents[$id]);
unset($aRoutes[$endR]);
}
}
}
}
if( $tasks['START'] == ''){
$tasks['START'] = 'FALSE';
}
$tasks['TAS_TITLE'] = $valueEnd['1'];
$tasks['X'] = $valueEnd['2'];
$tasks['Y'] = $valueEnd['3'];
$tasks['TAS_TYPE'] = $valueEnd['6'];
$tasks['ID_PROCESS'] = $idProcess;
//$tasks['TASK_TYPE'] = 'NORMAL';
$tasks['DESCRIPTION']= '';
$oData->tasks[]= $oProcess->createDataTask($tasks);
}
$endArray = array();
$endArray = $oProcess->convertArrayEnd($aEvents,$idProcess);
$oData->lanes = $oProcess->createLanesPM($aAnnotations,$idProcess);
$transitions = $oProcess->createArrayRoutes($oData->tasks,$aRoutes,$aEvents,$aGateways,$aEvents,$idProcess);
$oData->routes = $transitions['ROUTES'];
$routeTransitions = $transitions['TRANSITIONS'];
$numberRoutes = $transitions['NUMBER'];
$oData->tasks = $transitions['TASKS'];
$taskHidden = $transitions['HIDDEN'];
foreach($aSubprocess as $key => $value){
//print_R($value['0']);
//$sOutput = $oTask->remove($value['0']);
$sOutput = $oProcessMap->addSubProcess($idProcess,$value['2'],$value['3']);
/*$subProcess[$key]['ID_PROCESS'] = $idProcess;
$subProcess[$key]['TAS_TITLE'] = $idProcess;
$subProcess[$key]['ID_TASK'] = $value['0'];
$subProcess[$key]['TAS_UID'] = $value['0'];
$subProcess[$key]['TASK_PARENT'] = '';
$subProcess[$key]['PROCESS_PARENT'] = '';
$subProcess[$key]['TASK_TYPE'] = 'SUBPROCESS';
$subProcess[$key]['DESCRIPTION'] = '';
$subProcess[$key]['X'] = $value['2'];
$subProcess[$key]['Y'] = $value['3'];
print_R($subProcess[$key]);
$subProcesses[] = $oProcess->createSubProcess($subProcess);
$oData->tasks[] = $oProcess->createTask($subProcess[$key]);*/
}
$numberTransitions = sizeof($routeTransitions);
if($numberTransitions > 0){
$routesArray = $oProcess->createGateways($routeTransitions,$endArray,$oData->routes,$numberRoutes,$idProcess,$taskHidden);
$oData->routes = $routesArray;
}
$oProcess->updateProcessFromDataXpdl($oData,$oData->tasks);
$result->success = true;
$result->msg = G::LoadTranslation('ID_PROCESS_SAVE_SUCCESS');
} catch (Exception $e) {
$result->success = false;
$result->msg = $e->getMessage();
}
print G::json_encode($result);

View File

@@ -76,6 +76,16 @@ if (isset($_GET["id"]) && isset($_GET["id"])) {
} }
} }
$oServerConf =& serverConf::getSingleton();
if ($oServerConf->isRtl(SYS_LANG)) {
$regionTreePanel = 'east';
$regionDebug = 'west';
} else {
$regionTreePanel = 'west';
$regionDebug = 'east';
}
$oHeadPublisher->assign('regionTreePanel', $regionTreePanel);
$oHeadPublisher->assign('regionDebug', $regionDebug);
$oHeadPublisher->assign("defaultOption", $defaultOption); //User menu permissions $oHeadPublisher->assign("defaultOption", $defaultOption); //User menu permissions
$oHeadPublisher->assign("_nodeId", isset($confDefaultOption)? $confDefaultOption : "PM_USERS"); //User menu permissions $oHeadPublisher->assign("_nodeId", isset($confDefaultOption)? $confDefaultOption : "PM_USERS"); //User menu permissions
$oHeadPublisher->assign("FORMATS", $conf->getFormats()); $oHeadPublisher->assign("FORMATS", $conf->getFormats());

View File

@@ -154,9 +154,9 @@ try {
} }
if (PHP_VERSION < 5.2) { if (PHP_VERSION < 5.2) {
setcookie(session_name(), session_id(), null, '/', '; HttpOnly'); setcookie(session_name(), session_id(), null, '/', '; HttpOnly');
} else { } else {
setcookie(session_name(), session_id(), null, '/', null, null, true); setcookie(session_name(), session_id(), null, '/', null, null, true);
} }
$aUser = $RBAC->userObj->load($_SESSION['USER_LOGGED']); $aUser = $RBAC->userObj->load($_SESSION['USER_LOGGED']);
@@ -214,11 +214,11 @@ try {
//************** background processes, here we are putting some back office routines ********** //************** background processes, here we are putting some back office routines **********
$heartBeatNWIDate = $oServerConf->getHeartbeatProperty('HB_NEXT_GWI_DATE','HEART_BEAT_CONF'); $heartBeatNWIDate = $oServerConf->getHeartbeatProperty('HB_NEXT_GWI_DATE','HEART_BEAT_CONF');
if (is_null($heartBeatNWIDate)) { if (is_null($heartBeatNWIDate)) {
$heartBeatNWIDate = time(); $heartBeatNWIDate = time();
} }
if (time() >= $heartBeatNWIDate) { if (time() >= $heartBeatNWIDate) {
$oServerConf->setWsInfo(SYS_SYS, $oServerConf->getWorkspaceInfo(SYS_SYS)); $oServerConf->setWsInfo(SYS_SYS, $oServerConf->getWorkspaceInfo(SYS_SYS));
$oServerConf->setHeartbeatProperty('HB_NEXT_GWI_DATE', strtotime('+1 day'), 'HEART_BEAT_CONF'); $oServerConf->setHeartbeatProperty('HB_NEXT_GWI_DATE', strtotime('+1 day'), 'HEART_BEAT_CONF');
} }
//**** defining and saving server info, this file has the values of the global array $_SERVER **** //**** defining and saving server info, this file has the values of the global array $_SERVER ****

View File

@@ -24,63 +24,62 @@ require_once 'classes/model/UsersProperties.php';
$oUserProperty = new UsersProperties(); $oUserProperty = new UsersProperties();
$aUserProperty = $oUserProperty->load($_SESSION['USER_LOGGED']); $aUserProperty = $oUserProperty->load($_SESSION['USER_LOGGED']);
$aHistory = unserialize($aUserProperty['USR_PASSWORD_HISTORY']); $aHistory = unserialize($aUserProperty['USR_PASSWORD_HISTORY']);
if (!is_array($aHistory)) { if (!is_array($aHistory)) {
$aHistory = array(); $aHistory = array();
} }
if (!defined('PPP_PASSWORD_HISTORY')) { if (!defined('PPP_PASSWORD_HISTORY')) {
define('PPP_PASSWORD_HISTORY', 0); define('PPP_PASSWORD_HISTORY', 0);
} }
if (PPP_PASSWORD_HISTORY > 0) { if (PPP_PASSWORD_HISTORY > 0) {
if (count($aHistory) >= PPP_PASSWORD_HISTORY) { if (count($aHistory) >= PPP_PASSWORD_HISTORY) {
array_shift($aHistory); array_shift($aHistory);
} }
$aHistory[] = $_POST['form']['USR_PASSWORD']; $aHistory[] = $_POST['form']['USR_PASSWORD'];
} }
$aUserProperty['USR_LAST_UPDATE_DATE'] = date('Y-m-d H:i:s'); $aUserProperty['USR_LAST_UPDATE_DATE'] = date('Y-m-d H:i:s');
$aUserProperty['USR_LOGGED_NEXT_TIME'] = 0; $aUserProperty['USR_LOGGED_NEXT_TIME'] = 0;
$aUserProperty['USR_PASSWORD_HISTORY'] = serialize($aHistory); $aUserProperty['USR_PASSWORD_HISTORY'] = serialize($aHistory);
$oUserProperty->update($aUserProperty); $oUserProperty->update($aUserProperty);
if ( class_exists('redirectDetail')) {
//falta validar...
if(isset($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE']))
$userRole = $RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'];
$oPluginRegistry = &PMPluginRegistry::getSingleton(); if (class_exists('redirectDetail')) {
//$oPluginRegistry->showArrays(); //falta validar...
$aRedirectLogin = $oPluginRegistry->getRedirectLogins(); if (isset($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'])) {
if(isset($aRedirectLogin)) $userRole = $RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'];
{ if(is_array($aRedirectLogin)) }
{ $oPluginRegistry = &PMPluginRegistry::getSingleton();
foreach ( $aRedirectLogin as $key=>$detail ) { //$oPluginRegistry->showArrays();
if(isset($detail->sPathMethod)) $aRedirectLogin = $oPluginRegistry->getRedirectLogins();
{ if (isset($aRedirectLogin)) {
if ( $detail->sRoleCode == $userRole ) { if (is_array($aRedirectLogin)) {
G::header('location: /sys' . SYS_TEMP . '/' . SYS_LANG . '/' . SYS_SKIN . '/' . $detail->sPathMethod ); foreach ($aRedirectLogin as $key => $detail) {
die; if (isset($detail->sPathMethod)) {
} if ($detail->sRoleCode == $userRole) {
G::header('location: /sys' . SYS_TEMP . '/' . SYS_LANG . '/' . SYS_SKIN . '/' . $detail->sPathMethod );
die;
}
}
} }
} }
} }
}
} }
//end plugin //end plugin
if (isset($frm['USER_LANG'])) {
if (isset($frm['USER_LANG'])) {
if ($frm['USER_LANG'] != '') { if ($frm['USER_LANG'] != '') {
$lang = $frm['USER_LANG']; $lang = $frm['USER_LANG'];
} }
} } else {
else {
if (defined('SYS_LANG')) { if (defined('SYS_LANG')) {
$lang = SYS_LANG; $lang = SYS_LANG;
} else {
$lang = 'en';
} }
else { }
$lang = 'en'; $sLocation = $oUserProperty->redirectTo($_SESSION['USER_LOGGED'], $lang);
} G::header('Location: ' . $sLocation);
} die;
$sLocation = $oUserProperty->redirectTo($_SESSION['USER_LOGGED'], $lang);
G::header('Location: ' . $sLocation);
die;
?>

View File

@@ -24,82 +24,78 @@
* *
*/ */
function lookup( $target ) { function lookup ($target)
global $ntarget; {
$msg = $target . ' => '; global $ntarget;
//if (eregi ( '[a-zA-Z]', $target )) $msg = $target . ' => ';
if (preg_match( '[a-zA-Z]', $target )) //Made compatible to PHP 5.3 //if (eregi ( '[a-zA-Z]', $target ))
$ntarget = gethostbyname ( $target ); if (preg_match( '[a-zA-Z]', $target )) {
else //Made compatible to PHP 5.3
$ntarget = gethostbyaddr ( $target ); $ntarget = gethostbyname ( $target );
$msg .= $ntarget; } else {
return ($msg); $ntarget = gethostbyaddr ( $target );
}
$msg .= $ntarget;
return ($msg);
} }
G::LoadClass("system"); G::LoadClass("system");
if (getenv ( 'HTTP_CLIENT_IP' )) { if (getenv ( 'HTTP_CLIENT_IP' )) {
$ip = getenv ( 'HTTP_CLIENT_IP' ); $ip = getenv ( 'HTTP_CLIENT_IP' );
} } else {
else { if (getenv ( 'HTTP_X_FORWARDED_FOR' )) {
if (getenv ( 'HTTP_X_FORWARDED_FOR' )) { $ip = getenv ( 'HTTP_X_FORWARDED_FOR' );
$ip = getenv ( 'HTTP_X_FORWARDED_FOR' ); } else {
} $ip = getenv ( 'REMOTE_ADDR' );
else { }
$ip = getenv ( 'REMOTE_ADDR' );
}
} }
$redhat = ''; $redhat = '';
if (file_exists ( '/etc/redhat-release' )) { if (file_exists ( '/etc/redhat-release' )) {
$fnewsize = filesize ( '/etc/redhat-release' ); $fnewsize = filesize ( '/etc/redhat-release' );
$fp = fopen ( '/etc/redhat-release', 'r' ); $fp = fopen ( '/etc/redhat-release', 'r' );
$redhat = trim ( fread ( $fp, $fnewsize ) ); $redhat = trim ( fread ( $fp, $fnewsize ) );
fclose ( $fp ); fclose ( $fp );
} }
$redhat .= " (" . PHP_OS . ")"; $redhat .= " (" . PHP_OS . ")";
if (defined ( "DB_HOST" )) { if (defined ( "DB_HOST" )) {
G::LoadClass ( 'net' ); G::LoadClass ( 'net' );
G::LoadClass ( 'dbConnections' ); G::LoadClass ( 'dbConnections' );
$dbNetView = new NET ( DB_HOST ); $dbNetView = new NET ( DB_HOST );
$dbNetView->loginDbServer ( DB_USER, DB_PASS ); $dbNetView->loginDbServer ( DB_USER, DB_PASS );
$dbConns = new dbConnections ( '' );
$dbConns = new dbConnections ( '' ); $availdb = '';
$availdb = ''; foreach ($dbConns->getDbServicesAvailables () as $key => $val) {
foreach ( $dbConns->getDbServicesAvailables () as $key => $val ) { if ($availdb != '') {
if ($availdb != '') $availdb .= ', ';
$availdb .= ', '; }
$availdb .= $val ['name']; $availdb .= $val ['name'];
} }
try {
try { $sMySQLVersion = $dbNetView->getDbServerVersion ( DB_ADAPTER );
} catch (Exception $oException) {
$sMySQLVersion = $dbNetView->getDbServerVersion ( DB_ADAPTER ); $sMySQLVersion = '?????';
}
}
catch ( Exception $oException ) {
$sMySQLVersion = '?????';
}
} }
$Fields ['SYSTEM'] = $redhat; $Fields ['SYSTEM'] = $redhat;
if (defined ( "DB_HOST" )) { if (defined ( "DB_HOST" )) {
$Fields ['DATABASE'] = $dbNetView->dbName ( DB_ADAPTER ) . ' (Version ' . $sMySQLVersion . ')'; $Fields ['DATABASE'] = $dbNetView->dbName ( DB_ADAPTER ) . ' (Version ' . $sMySQLVersion . ')';
$Fields ['DATABASE_SERVER'] = DB_HOST; $Fields ['DATABASE_SERVER'] = DB_HOST;
$Fields ['DATABASE_NAME'] = DB_NAME; $Fields ['DATABASE_NAME'] = DB_NAME;
$Fields ['AVAILABLE_DB'] = $availdb; $Fields ['AVAILABLE_DB'] = $availdb;
} } else {
else { $Fields ['DATABASE'] = "Not defined";
$Fields ['DATABASE'] = "Not defined"; $Fields ['DATABASE_SERVER'] = "Not defined";
$Fields ['DATABASE_SERVER'] = "Not defined"; $Fields ['DATABASE_NAME'] = "Not defined";
$Fields ['DATABASE_NAME'] = "Not defined"; $Fields ['AVAILABLE_DB'] = "Not defined";
$Fields ['AVAILABLE_DB'] = "Not defined";
} }
$eeT=""; $eeT="";
if(class_exists('pmLicenseManager')){ if (class_exists('pmLicenseManager')) {
$eeT=" - Enterprise Edition"; $eeT=" - Enterprise Edition";
} }
$Fields ['PHP'] = phpversion (); $Fields ['PHP'] = phpversion ();
$Fields ['FLUID'] = System::getVersion() . $eeT; $Fields ['FLUID'] = System::getVersion() . $eeT;
$Fields ['IP'] = lookup ( $ip ); $Fields ['IP'] = lookup ( $ip );
@@ -113,8 +109,9 @@ $Fields ['SERVER_ADDR'] = getenv ( 'SERVER_ADDR' );
$Fields ['HTTP_USER_AGENT'] = getenv ( 'HTTP_USER_AGENT' ); $Fields ['HTTP_USER_AGENT'] = getenv ( 'HTTP_USER_AGENT' );
$Fields ['TIME_ZONE'] = (defined('TIME_ZONE')) ? TIME_ZONE : "Unknown"; $Fields ['TIME_ZONE'] = (defined('TIME_ZONE')) ? TIME_ZONE : "Unknown";
if (! defined ( 'SKIP_RENDER_SYSTEM_INFORMATION' )) { if (!defined( 'SKIP_RENDER_SYSTEM_INFORMATION')) {
$G_PUBLISH = new Publisher ( ); $G_PUBLISH = new Publisher ( );
$G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/dbInfo', '', $Fields, 'appNew2' ); $G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/dbInfo', '', $Fields, 'appNew2' );
G::RenderPage ( 'publish', 'raw' ); G::RenderPage ( 'publish', 'raw' );
} }

View File

@@ -22,7 +22,7 @@
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* *
*/ */
$G_PUBLISH = new Publisher (); $G_PUBLISH = new Publisher ();
$G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/forgotPassword', '', array(), 'retrivePassword.php'); $G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/forgotPassword', '', array(), 'retrivePassword.php');
G::RenderPage ( "publish" ); G::RenderPage ( "publish" );

View File

@@ -22,7 +22,7 @@
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* *
*/ */
$newFile = str_replace ( 'index.php', 'login.php' , __FILE__ ) ; $newFile = str_replace ( 'index.php', 'login.php' , __FILE__ );
return $newFile; return $newFile;

View File

@@ -23,28 +23,25 @@
* *
*/ */
try { try {
G::LoadInclude ( 'ajax' );
G::LoadInclude ( 'ajax' ); if (isset ( $_POST ['form'] )) {
if (isset ( $_POST ['form'] )) { $_POST = $_POST ['form'];
$_POST = $_POST ['form']; }
} $_POST ['function'] = get_ajax_value ( 'function' );
$_POST ['function'] = get_ajax_value ( 'function' ); switch ($_POST ['function']) {
switch ($_POST ['function']) { case 'getStarted_save':
case 'getStarted_save' : require_once 'classes/model/Configuration.php';
require_once 'classes/model/Configuration.php'; $aData ['CFG_UID'] = 'getStarted';
$aData ['CFG_UID'] = 'getStarted'; $aData ['OBJ_UID'] = '';
$aData ['OBJ_UID'] = ''; $aData ['CFG_VALUE'] = '1';
$aData ['CFG_VALUE'] = '1'; $aData ['PRO_UID'] = '';
$aData ['PRO_UID'] = ''; $aData ['USR_UID'] = '';
$aData ['USR_UID'] = ''; $aData ['APP_UID'] = '';
$aData ['APP_UID'] = ''; $oConfig = new Configuration ( );
$oConfig->create ( $aData );
$oConfig = new Configuration ( ); break;
}
$oConfig->create ( $aData ); } catch ( Exception $oException ) {
break; die ( $oException->getMessage () );
}
}
catch ( Exception $oException ) {
die ( $oException->getMessage () );
} }

View File

@@ -30,7 +30,7 @@ $G_SUB_MENU = "empty";
$referer = $_SERVER ['HTTP_REFERER']; $referer = $_SERVER ['HTTP_REFERER'];
$dbc = new DBConnection ( ); $dbc = new DBConnection ( );
$G_PUBLISH = new Publisher ( ); $G_PUBLISH = new Publisher ( );
$G_PUBLISH->AddContent ( "xmlform", "xmlform", "login/noViewPage", "", NULL ); $G_PUBLISH->AddContent ( "xmlform", "xmlform", "login/noViewPage", "", null );
G::RenderPage ( "publish" ); G::RenderPage ( "publish" );
?>

View File

@@ -11,40 +11,40 @@ $user = new Users();
$userData = $rbacUser->getByUsername($data['USR_USERNAME']); $userData = $rbacUser->getByUsername($data['USR_USERNAME']);
if($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL']) { if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL']) {
$aSetup = getEmailConfiguration(); $aSetup = getEmailConfiguration();
if (count($aSetup) == 0 || !isset($aSetup['MESS_ENGINE'])) { if (count($aSetup) == 0 || !isset($aSetup['MESS_ENGINE'])) {
G::SendTemporalMessage ('ID_EMAIL_ENGINE_IS_NOT_ENABLED', "warning"); G::SendTemporalMessage ('ID_EMAIL_ENGINE_IS_NOT_ENABLED', "warning");
G::header('location: forgotPassword'); G::header('location: forgotPassword');
die; die;
} }
$newPass = G::generate_password(); $newPass = G::generate_password();
$aData['USR_UID'] = $userData['USR_UID']; $aData['USR_UID'] = $userData['USR_UID'];
$aData['USR_PASSWORD'] = md5($newPass); $aData['USR_PASSWORD'] = md5($newPass);
/* **Save after sending the mail /* **Save after sending the mail
$rbacUser->update($aData); $rbacUser->update($aData);
$user->update($aData); $user->update($aData);
*/ */
$sFrom = ($aSetup['MESS_ACCOUNT'] != '' ? $aSetup['MESS_ACCOUNT'] . ' ' : '') . '<' . $aSetup['MESS_ACCOUNT'] . '>'; $sFrom = ($aSetup['MESS_ACCOUNT'] != '' ? $aSetup['MESS_ACCOUNT'] . ' ' : '') . '<' . $aSetup['MESS_ACCOUNT'] . '>';
$sSubject = G::LoadTranslation('ID_RESET_PASSWORD').' - ProcessMaker' ; $sSubject = G::LoadTranslation('ID_RESET_PASSWORD').' - ProcessMaker' ;
$msg = '<h3>ProcessMaker Forgot password Service</h3>'; $msg = '<h3>ProcessMaker Forgot password Service</h3>';
$msg .='<p>'.G::LoadTranslation('ID_YOUR_USERMANE_IS').' : <strong>'.$userData['USR_USERNAME'].'</strong></p>'; $msg .='<p>'.G::LoadTranslation('ID_YOUR_USERMANE_IS').' : <strong>'.$userData['USR_USERNAME'].'</strong></p>';
$msg .='<p>'.G::LoadTranslation('ID_YOUR_PASSWORD_IS').' : <strong>'.$newPass.'</strong></p>'; $msg .='<p>'.G::LoadTranslation('ID_YOUR_PASSWORD_IS').' : <strong>'.$newPass.'</strong></p>';
switch ($aSetup['MESS_ENGINE']) { switch ($aSetup['MESS_ENGINE']) {
case 'MAIL': case 'MAIL':
$engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_1'); $engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_1');
break; break;
case 'PHPMAILER': case 'PHPMAILER':
$engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_2'); $engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_2');
break; break;
case 'OPENMAIL': case 'OPENMAIL':
$engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_3'); $engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_3');
break; break;
} }
$sBody = " $sBody = "
<table style=\"background-color: white; font-family: Arial,Helvetica,sans-serif; color: black; font-size: 11px; text-align: left;\" cellpadding='10' cellspacing='0' width='100%'> <table style=\"background-color: white; font-family: Arial,Helvetica,sans-serif; color: black; font-size: 11px; text-align: left;\" cellpadding='10' cellspacing='0' width='100%'>
<tbody><tr><td><img id='logo' src='http://".$_SERVER['SERVER_NAME']."/images/processmaker.logo.jpg' /></td></tr> <tbody><tr><td><img id='logo' src='http://".$_SERVER['SERVER_NAME']."/images/processmaker.logo.jpg' /></td></tr>
<tr><td style='font-size: 14px;'>$msg</td></tr> <tr><td style='font-size: 14px;'>$msg</td></tr>
@@ -53,99 +53,66 @@ if($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL']
<a href='http://www.processmaker.com' style='color:#c40000;'>www.processmaker.com</a><br /></td> <a href='http://www.processmaker.com' style='color:#c40000;'>www.processmaker.com</a><br /></td>
</tr></tbody></table>"; </tr></tbody></table>";
G::LoadClass('spool'); G::LoadClass('spool');
$oSpool = new spoolRun(); $oSpool = new spoolRun();
$oSpool->setConfig( array( $oSpool->setConfig( array(
'MESS_ENGINE' => $aSetup['MESS_ENGINE'], 'MESS_ENGINE' => $aSetup['MESS_ENGINE'],
'MESS_SERVER' => $aSetup['MESS_SERVER'], 'MESS_SERVER' => $aSetup['MESS_SERVER'],
'MESS_PORT' => $aSetup['MESS_PORT'], 'MESS_PORT' => $aSetup['MESS_PORT'],
'MESS_ACCOUNT' => $aSetup['MESS_ACCOUNT'], 'MESS_ACCOUNT' => $aSetup['MESS_ACCOUNT'],
'MESS_PASSWORD' => $aSetup['MESS_PASSWORD'], 'MESS_PASSWORD' => $aSetup['MESS_PASSWORD'],
'SMTPAuth' => $aSetup['MESS_RAUTH'], 'SMTPAuth' => $aSetup['MESS_RAUTH'],
'SMTPSecure' => $aSetup['SMTPSecure'] 'SMTPSecure' => $aSetup['SMTPSecure']
)); ));
$passwd = $oSpool->config['MESS_PASSWORD']; $passwd = $oSpool->config['MESS_PASSWORD'];
$passwdDec = G::decrypt($passwd,'EMAILENCRYPT'); $passwdDec = G::decrypt($passwd,'EMAILENCRYPT');
$auxPass = explode('hash:', $passwdDec); $auxPass = explode('hash:', $passwdDec);
if (count($auxPass) > 1) { if (count($auxPass) > 1) {
if (count($auxPass) == 2) { if (count($auxPass) == 2) {
$passwd = $auxPass[1]; $passwd = $auxPass[1];
} else { } else {
array_shift($auxPass); array_shift($auxPass);
$passwd = implode('', $auxPass); $passwd = implode('', $auxPass);
}
} }
}
$oSpool->config['MESS_PASSWORD'] = $passwd;
$oSpool->create(array( $oSpool->config['MESS_PASSWORD'] = $passwd;
'msg_uid' => '',
'app_uid' => '',
'del_index' => 0,
'app_msg_type' => 'TEST',
'app_msg_subject' => $sSubject,
'app_msg_from' => $sFrom,
'app_msg_to' => $data['USR_EMAIL'],
'app_msg_body' => $sBody,
'app_msg_cc' => '',
'app_msg_bcc' => '',
'app_msg_attach' => '',
'app_msg_template' => '',
'app_msg_status' => 'pending',
'app_msg_attach'=>''
));
try { $oSpool->create(array(
'msg_uid' => '',
$oSpool->sendMail(); 'app_uid' => '',
'del_index' => 0,
$rbacUser->update($aData); 'app_msg_type' => 'TEST',
$user->update($aData); 'app_msg_subject' => $sSubject,
'app_msg_from' => $sFrom,
G::header ("location: login.html"); 'app_msg_to' => $data['USR_EMAIL'],
G::SendTemporalMessage ('ID_NEW_PASSWORD_SENT', "info"); 'app_msg_body' => $sBody,
} 'app_msg_cc' => '',
catch (phpmailerException $e) { 'app_msg_bcc' => '',
G::header ("location: login.html"); 'app_msg_attach' => '',
G::SendTemporalMessage (G::LoadTranslation('MISSING_OR_NOT_CONFIGURED_SMTP'), "warning", 'string'); 'app_msg_template' => '',
} 'app_msg_status' => 'pending',
catch (Exception $e) { 'app_msg_attach'=>''
G::header ("location: login.html"); ));
G::SendTemporalMessage ($e->getMessage(), "warning", 'string');
}
try {
$oSpool->sendMail();
$rbacUser->update($aData);
$user->update($aData);
G::header ("location: login.html");
G::SendTemporalMessage ('ID_NEW_PASSWORD_SENT', "info");
} catch (phpmailerException $e) {
G::header ("location: login.html");
G::SendTemporalMessage (G::LoadTranslation('MISSING_OR_NOT_CONFIGURED_SMTP'), "warning", 'string');
} catch (Exception $e) {
G::header ("location: login.html");
G::SendTemporalMessage ($e->getMessage(), "warning", 'string');
}
} else { } else {
$msg = G::LoadTranslation('ID_USER') . ' ' . $data['USR_USERNAME'] . ' '. G::LoadTranslation('ID_IS_NOT_REGISTERED'); $msg = G::LoadTranslation('ID_USER') . ' ' . $data['USR_USERNAME'] . ' '. G::LoadTranslation('ID_IS_NOT_REGISTERED');
G::SendTemporalMessage ($msg, "warning", 'string'); G::SendTemporalMessage ($msg, "warning", 'string');
G::header('location: forgotPassword'); G::header('location: forgotPassword');
} }

View File

@@ -23,9 +23,11 @@
* *
*/ */
if (! isset ( $_POST )) if (! isset ( $_POST )) {
G::header ( 'location: /sys/' . $lang . '/' . SYS_SKIN . '/' . 'login/login' ); G::header ( 'location: /sys/' . $lang . '/' . SYS_SKIN . '/' . 'login/login' );
}
if (isset ( $_SESSION ['sysLogin'] )) {
$_POST ['form'] = $_SESSION ['sysLogin'];
}
require_once ('authentication.php');
if (isset ( $_SESSION ['sysLogin'] ))
$_POST ['form'] = $_SESSION ['sysLogin'];
require_once ('authentication.php');

View File

@@ -1,40 +1,39 @@
<?php <?php
/** /**
* messages_Delete.php * messages_Delete.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1) {
if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response; return $RBAC_Response;
}
//G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' ); //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' );
G::LoadClass( 'message' );
G::LoadClass('message');
$dbc = new DBConnection();
$dbc = new DBConnection(); $ses = new DBSession( $dbc );
$ses = new DBSession($dbc);
$messages = new Message( $dbc );
$messages = new Message( $dbc );
if (! isset( $_POST['MESS_UID'] )) {
if (!isset($_POST['MESS_UID'])) return; return;
}
$messages->Delete( $_POST['MESS_UID'] ); $messages->Delete( $_POST['MESS_UID'] );
?>

View File

@@ -1,43 +1,43 @@
<?php <?php
/** /**
* messages_Edit.php * messages_Edit.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1) {
if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response; return $RBAC_Response;
}
//G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' ); //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' );
G::LoadClass('message'); G::LoadClass( 'message' );
$dbc = new DBConnection(); $dbc = new DBConnection();
$ses = new DBSession($dbc); $ses = new DBSession( $dbc );
$messages = new Message( $dbc ); $messages = new Message( $dbc );
$messages->Fields['MESS_UID']=(isset($_GET['MESS_UID'])) ? urldecode($_GET['MESS_UID']):'0'; $messages->Fields['MESS_UID'] = (isset( $_GET['MESS_UID'] )) ? urldecode( $_GET['MESS_UID'] ) : '0';
$messages->Load( $messages->Fields['MESS_UID'] ); $messages->Load( $messages->Fields['MESS_UID'] );
$messages->Fields['PRO_UID'] = isset($messages->Fields['PRO_UID'])?$messages->Fields['PRO_UID']:$_GET['PRO_UID']; $messages->Fields['PRO_UID'] = isset( $messages->Fields['PRO_UID'] ) ? $messages->Fields['PRO_UID'] : $_GET['PRO_UID'];
$G_PUBLISH = new Publisher(); $G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'messages/messages_Edit', '', $messages->Fields , SYS_URI . 'messages/messages_Save'); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'messages/messages_Edit', '', $messages->Fields, SYS_URI . 'messages/messages_Save' );
G::RenderPage( "publish" , "raw" ); G::RenderPage( "publish", "raw" );
?>

View File

@@ -1,47 +1,45 @@
<?php <?php
/** /**
* messages_List.php * messages_List.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1) {
if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response; return $RBAC_Response;
}
//G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' ); //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' );
$G_MAIN_MENU = 'processmaker'; $G_MAIN_MENU = 'processmaker';
$G_SUB_MENU = 'processes'; $G_SUB_MENU = 'processes';
$G_ID_MENU_SELECTED = 'PROCESSES'; $G_ID_MENU_SELECTED = 'PROCESSES';
$G_ID_SUB_MENU_SELECTED = 'MESSAGES'; $G_ID_SUB_MENU_SELECTED = 'MESSAGES';
$dbc = new DBConnection(); $dbc = new DBConnection();
$ses = new DBSession($dbc); $ses = new DBSession( $dbc );
//Hardcode: UID of the library by default //Hardcode: UID of the library by default
$PRO_UID='746B734DC23311'; $PRO_UID = '746B734DC23311';
$G_PUBLISH = new Publisher; $G_PUBLISH = new Publisher();
$Fields=array( 'SYS_LANG' => SYS_LANG, $Fields = array ('SYS_LANG' => SYS_LANG,'PRO_UID' => $PRO_UID);
'PRO_UID' => $PRO_UID );
$G_PUBLISH->AddContent( 'pagedtable', 'paged-table', 'messages/messages_List', '', $Fields, 'messages_Save' );
$G_PUBLISH->AddContent('pagedtable', 'paged-table', 'messages/messages_List', '', $Fields , 'messages_Save');
G::RenderPage( "publish" );
G::RenderPage( "publish" );
?>

View File

@@ -1,39 +1,40 @@
<?php <?php
/** /**
* messages_Save.php * messages_Save.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1) {
if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response; return $RBAC_Response;
}
//G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' ); //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' );
G::LoadClass('message'); G::LoadClass( 'message' );
$dbc = new DBConnection(); $dbc = new DBConnection();
$ses = new DBSession($dbc); $ses = new DBSession( $dbc );
$messages = new Message( $dbc ); $messages = new Message( $dbc );
if ($_POST['form']['MESS_UID']==='') unset($_POST['form']['MESS_UID']); if ($_POST['form']['MESS_UID'] === '') {
$messages->Save( $_POST['form'] ); unset( $_POST['form']['MESS_UID'] );
}
?> $messages->Save( $_POST['form'] );

View File

@@ -1,17 +1,23 @@
<?php <?php
require_once 'classes/model/OutputDocument.php'; require_once 'classes/model/OutputDocument.php';
$uid = $_SERVER['QUERY_STRING']; $uid = $_SERVER['QUERY_STRING'];
$oOutputDocument = new OutputDocument(); $oOutputDocument = new OutputDocument();
$aFields = $oOutputDocument->load($uid); $aFields = $oOutputDocument->load( $uid );
$type = $aFields['OUT_DOC_TYPE']; $type = $aFields['OUT_DOC_TYPE'];
if ( $type == 'JRXML') $extension = 'jrxml'; if ($type == 'JRXML') {
if ( $type == 'ACROFORM') $extension = 'pdf'; $extension = 'jrxml';
}
$fileJrxml = PATH_DYNAFORM . $aFields['PRO_UID'] . PATH_SEP . $aFields['OUT_DOC_UID'] . '.' . $extension ; if ($type == 'ACROFORM') {
$extension = 'pdf';
$bDownload = true; }
// The ereg_replace function has been DEPRECATED as of PHP 5.3.0.
// $downFileName = ereg_replace('[^A-Za-z0-9_]', '_', $aFields['OUT_DOC_TITLE'] ) . '.' . $extension; $fileJrxml = PATH_DYNAFORM . $aFields['PRO_UID'] . PATH_SEP . $aFields['OUT_DOC_UID'] . '.' . $extension;
$downFileName = preg_replace('/[^A-Za-z0-9_]/i', '_', $aFields['OUT_DOC_TITLE'] ) . '.' . $extension;
G::streamFile ( $fileJrxml, $bDownload, $downFileName ); $bDownload = true;
// The ereg_replace function has been DEPRECATED as of PHP 5.3.0.
// $downFileName = ereg_replace('[^A-Za-z0-9_]', '_', $aFields['OUT_DOC_TITLE'] ) . '.' . $extension;
$downFileName = preg_replace( '/[^A-Za-z0-9_]/i', '_', $aFields['OUT_DOC_TITLE'] ) . '.' . $extension;
G::streamFile( $fileJrxml, $bDownload, $downFileName );

View File

@@ -1,83 +1,78 @@
<?php <?php
$action = isset($POST['action'])? $POST['action']: isset($_GET['action'])? $_GET['action']: ''; $action = isset( $POST['action'] ) ? $POST['action'] : isset( $_GET['action'] ) ? $_GET['action'] : '';
// Function call from ajax_function for calling to lookForNameOutput. // Function call from ajax_function for calling to lookForNameOutput.
if($action=='') { if ($action == '') {
$action = isset($_POST['function'])?$_POST['function']:''; $action = isset( $_POST['function'] ) ? $_POST['function'] : '';
} }
switch($action){ switch ($action) {
case 'setTemplateFile': case 'setTemplateFile':
//print_r($_FILES); //print_r($_FILES);
$_SESSION['outpudocs_tmpFile'] = PATH_DATA . $_FILES['templateFile']['name']; $_SESSION['outpudocs_tmpFile'] = PATH_DATA . $_FILES['templateFile']['name'];
// file_put_contents($_FILES['templateFile']['name'], file_get_contents($_FILES['templateFile']['tmp_name'])); // file_put_contents($_FILES['templateFile']['name'], file_get_contents($_FILES['templateFile']['tmp_name']));
copy($_FILES['templateFile']['tmp_name'], $_SESSION['outpudocs_tmpFile']); copy( $_FILES['templateFile']['tmp_name'], $_SESSION['outpudocs_tmpFile'] );
$result = new stdClass(); $result = new stdClass();
$result->success = true; $result->success = true;
$result->msg = 'success - saved '. $_SESSION['outpudocs_tmpFile']; $result->msg = 'success - saved ' . $_SESSION['outpudocs_tmpFile'];
echo G::json_encode($result); echo G::json_encode( $result );
break; break;
case 'getTemplateFile': case 'getTemplateFile':
$aExtensions = array ( "exe", "com", "dll", "ocx", "fon", "ttf", "doc", "xls", "mdb", "rtf", "bin", $aExtensions = array ("exe","com","dll","ocx","fon","ttf","doc","xls","mdb","rtf","bin","jpeg","jpg","jif","jfif","gif","tif","tiff","png","bmp","pdf","aac","mp3","mp3pro","vorbis","realaudio","vqf","wma","aiff","flac","wav","midi","mka","ogg","jpeg","ilbm","tar","zip","rar","arj","gzip","bzip2","afio","kgb","gz","asf","avi","mov","iff","ogg","ogm","mkv","3gp"
"jpeg", "jpg", "jif", "jfif", "gif", "tif", "tiff", "png", "bmp", "pdf", );
"aac", "mp3", "mp3pro", "vorbis", "realaudio", "vqf", "wma", $sFileName = strtolower( $_SESSION['outpudocs_tmpFile'] );
"aiff", "flac", "wav", "midi", "mka", "ogg", "jpeg", "ilbm", $strRev = strrev( $sFileName );
"tar", "zip", "rar", "arj", "gzip", "bzip2", "afio", "kgb", "gz", $searchPos = strpos( $strRev, '.' );
"asf", "avi", "mov", "iff", "ogg", "ogm", "mkv", "3gp", $pos = (strlen( $sFileName ) - 1) - $searchPos;
); $sExtension = substr( $sFileName, $pos + 1, strlen( $sFileName ) );
$sFileName = strtolower($_SESSION['outpudocs_tmpFile']); if (! in_array( $sExtension, $aExtensions ))
$strRev = strrev($sFileName); echo $content = file_get_contents( $_SESSION['outpudocs_tmpFile'] );
$searchPos = strpos($strRev, '.'); break;
$pos = (strlen($sFileName) - 1) - $searchPos;
$sExtension = substr($sFileName, $pos+1, strlen($sFileName)); case 'loadTemplateContent':
if(! in_array($sExtension, $aExtensions)) require_once 'classes/model/OutputDocument.php';
echo $content = file_get_contents($_SESSION['outpudocs_tmpFile']); $ooutputDocument = new OutputDocument();
break; if (isset( $_POST['OUT_DOC_UID'] )) {
$aFields = $ooutputDocument->load( $_POST['OUT_DOC_UID'] );
case 'loadTemplateContent':
require_once 'classes/model/OutputDocument.php'; echo $aFields['OUT_DOC_TEMPLATE'];
$ooutputDocument = new OutputDocument(); }
if (isset($_POST['OUT_DOC_UID'])) { break;
$aFields = $ooutputDocument->load($_POST['OUT_DOC_UID']);
case 'lookForNameOutput':
echo $aFields['OUT_DOC_TEMPLATE']; require_once ('classes/model/Content.php');
} require_once ("classes/model/OutputDocument.php");
break;
$snameInput = urldecode( $_POST['NAMEOUTPUT'] );
case 'lookForNameOutput': $sPRO_UID = urldecode( $_POST['proUid'] );
require_once('classes/model/Content.php');
require_once ( "classes/model/OutputDocument.php" ); $oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn( OutputDocumentPeer::OUT_DOC_UID );
$snameInput = urldecode($_POST['NAMEOUTPUT']); $oCriteria->add( OutputDocumentPeer::PRO_UID, $sPRO_UID );
$sPRO_UID = urldecode($_POST['proUid']); $oDataset = OutputDocumentPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oCriteria = new Criteria('workflow'); $flag = true;
$oCriteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_UID); while ($oDataset->next() && $flag) {
$oCriteria->add(OutputDocumentPeer::PRO_UID, $sPRO_UID); $aRow = $oDataset->getRow();
$oDataset = OutputDocumentPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oCriteria1 = new Criteria( 'workflow' );
$flag = true; $oCriteria1->addSelectColumn( 'COUNT(*) AS OUTPUTS' );
while ($oDataset->next() && $flag) { $oCriteria1->add( ContentPeer::CON_CATEGORY, 'OUT_DOC_TITLE' );
$aRow = $oDataset->getRow(); $oCriteria1->add( ContentPeer::CON_ID, $aRow['OUT_DOC_UID'] );
$oCriteria1->add( ContentPeer::CON_VALUE, $snameInput );
$oCriteria1 = new Criteria('workflow'); $oCriteria1->add( ContentPeer::CON_LANG, SYS_LANG );
$oCriteria1->addSelectColumn('COUNT(*) AS OUTPUTS'); $oDataset1 = ContentPeer::doSelectRS( $oCriteria1 );
$oCriteria1->add(ContentPeer::CON_CATEGORY, 'OUT_DOC_TITLE'); $oDataset1->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oCriteria1->add(ContentPeer::CON_ID, $aRow['OUT_DOC_UID']); $oDataset1->next();
$oCriteria1->add(ContentPeer::CON_VALUE, $snameInput); $aRow1 = $oDataset1->getRow();
$oCriteria1->add(ContentPeer::CON_LANG, SYS_LANG);
$oDataset1 = ContentPeer::doSelectRS($oCriteria1); if ($aRow1['OUTPUTS'])
$oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); $flag = false;
$oDataset1->next(); }
$aRow1 = $oDataset1->getRow(); echo $flag;
// G::json_encode($flag);
if ($aRow1['OUTPUTS']) break;
$flag = false;
}
echo $flag;
// G::json_encode($flag);
break;
} }

View File

@@ -1,67 +1,60 @@
<?php <?php
/** /**
* outputdocs_Delete.php * outputdocs_Delete.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ try {
try { global $RBAC;
global $RBAC; switch ($RBAC->userCanAccess( 'PM_FACTORY' )) {
switch ($RBAC->userCanAccess('PM_FACTORY')) { case - 2:
case -2: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; case - 1:
case -1: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; }
} require_once 'classes/model/OutputDocument.php';
require_once 'classes/model/OutputDocument.php'; require_once 'classes/model/ObjectPermission.php';
require_once 'classes/model/ObjectPermission.php'; require_once 'classes/model/Step.php';
require_once 'classes/model/Step.php'; G::LoadClass( 'processMap' );
G::LoadClass( 'processMap' ); $oOutputDocument = new OutputDocument();
$fields = $oOutputDocument->load( $_POST['OUT_DOC_UID'] );
$oOutputDocument = new OutputDocument(); $oOutputDocument->remove( $_POST['OUT_DOC_UID'] );
$fields = $oOutputDocument->load($_POST['OUT_DOC_UID']); $oStep = new Step();
$oOutputDocument->remove($_POST['OUT_DOC_UID']); $oStep->removeStep( 'OUTPUT_DOCUMENT', $_POST['OUT_DOC_UID'] );
$oOP = new ObjectPermission();
$oStep = new Step(); $oOP->removeByObject( 'OUTPUT', $_POST['OUT_DOC_UID'] );
$oStep->removeStep('OUTPUT_DOCUMENT', $_POST['OUT_DOC_UID']); //refresh dbarray with the last change in outputDocument
$oMap = new processMap();
$oOP = new ObjectPermission(); $oCriteria = $oMap->getOutputDocumentsCriteria( $fields['PRO_UID'] );
$oOP->removeByObject('OUTPUT', $_POST['OUT_DOC_UID']); $result->success = true;
$result->msg = G::LoadTranslation( 'ID_OUTPUTDOCUMENT_REMOVED' );
//refresh dbarray with the last change in outputDocument } catch (Exception $e) {
$oMap = new processMap(); $result->success = false;
$oCriteria = $oMap->getOutputDocumentsCriteria($fields['PRO_UID'] ); $result->msg = $e->getMessage();
//die($oException->getMessage());
$result->success = true; }
$result->msg = G::LoadTranslation('ID_OUTPUTDOCUMENT_REMOVED'); print G::json_encode( $result );
}
catch (Exception $e) {
$result->success = false;
$result->msg = $e->getMessage();
//die($oException->getMessage());
}
print G::json_encode($result);
?>

View File

@@ -1,105 +1,103 @@
<?php <?php
/** /**
* outputdocs_Edit.php * outputdocs_Edit.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ try {
try { global $RBAC;
global $RBAC; switch ($RBAC->userCanAccess( 'PM_FACTORY' )) {
switch ($RBAC->userCanAccess('PM_FACTORY')) { case - 2:
case -2: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; case - 1:
case -1: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; }
}
require_once 'classes/model/OutputDocument.php';
require_once 'classes/model/OutputDocument.php'; $ooutputDocument = new OutputDocument();
$ooutputDocument = new OutputDocument(); if (isset( $_GET['OUT_DOC_UID'] )) {
if (isset($_GET['OUT_DOC_UID'])) { $aFields = $ooutputDocument->load( $_GET['OUT_DOC_UID'] );
$aFields = $ooutputDocument->load($_GET['OUT_DOC_UID']); } else {
} $aFields = array ();
else { $aFields['PRO_UID'] = $_GET['PRO_UID'];
$aFields = array(); }
$aFields['PRO_UID'] = $_GET['PRO_UID'];
} require_once 'classes/model/OutputDocument.php';
$ooutputDocument = new OutputDocument();
require_once 'classes/model/OutputDocument.php'; if (isset( $_GET['OUT_DOC_UID'] )) {
$ooutputDocument = new OutputDocument(); $aFields = $ooutputDocument->load( $_GET['OUT_DOC_UID'] );
if (isset($_GET['OUT_DOC_UID'])) { } else {
$aFields = $ooutputDocument->load($_GET['OUT_DOC_UID']); $aFields = array ();
} $aFields['PRO_UID'] = $_GET['PRO_UID'];
else { }
$aFields = array();
$aFields['PRO_UID'] = $_GET['PRO_UID']; $type = isset( $aFields['OUT_DOC_TYPE'] ) ? $aFields['OUT_DOC_TYPE'] : 'HTML';
}
G::LoadClass( 'xmlfield_InputPM' );
$type = isset ( $aFields['OUT_DOC_TYPE']) ? $aFields['OUT_DOC_TYPE'] : 'HTML'; $G_PUBLISH = new Publisher();
G::LoadClass('xmlfield_InputPM'); switch ($type) {
$G_PUBLISH = new Publisher(); case 'HTML':
//$G_PUBLISH->AddContent('xmlform', 'xmlform', 'outputdocs/outputdocs_Edit', '', $aFields , '../outputdocs/outputdocs_Save');
switch ( $type ) { $oHeadPublisher = & headPublisher::getSingleton();
case 'HTML' : $oHeadPublisher->assign( 'OUT_DOC_UID', $_GET['OUT_DOC_UID'] );
//$G_PUBLISH->AddContent('xmlform', 'xmlform', 'outputdocs/outputdocs_Edit', '', $aFields , '../outputdocs/outputdocs_Save'); $translations = G::getTranslations( Array ('ID_FILE','ID_OUT_PUT_DOC_UPLOAD_TITLE','ID_UPLOADING_FILE','ID_UPLOAD','ID_CANCEL','ID_SAVE','ID_LOAD_FROM_FILE','ID_SELECT_TEMPLATE_FILE','ID_ALERT_MESSAGE','ID_INVALID_FILE') );
$oHeadPublisher =& headPublisher::getSingleton(); // $oHeadPublisher->assign('TRANSLATIONS', $translations);
$oHeadPublisher->assign('OUT_DOC_UID', $_GET['OUT_DOC_UID']); $oHeadPublisher->addExtJsScript( 'outputdocs/htmlEditor', false ); //adding a javascript file .js
$translations = G::getTranslations(Array( G::RenderPage( 'publish', 'extJs' );
'ID_FILE', 'ID_OUT_PUT_DOC_UPLOAD_TITLE', 'ID_UPLOADING_FILE', 'ID_UPLOAD', 'ID_CANCEL', die();
'ID_SAVE', 'ID_LOAD_FROM_FILE', 'ID_SELECT_TEMPLATE_FILE', 'ID_ALERT_MESSAGE', 'ID_INVALID_FILE' break;
)); case 'JRXML':
// $oHeadPublisher->assign('TRANSLATIONS', $translations); break;
$oHeadPublisher->addExtJsScript('outputdocs/htmlEditor', false ); //adding a javascript file .js case 'ACROFORM':
G::RenderPage('publish', 'extJs'); $type = $aFields['OUT_DOC_TYPE'];
die; if ($type == 'JRXML') {
break; $extension = 'jrxml';
}
case 'JRXML' : if ($type == 'ACROFORM') {
case 'ACROFORM' : $extension = 'pdf';
$type = $aFields['OUT_DOC_TYPE']; }
if ( $type == 'JRXML') $extension = 'jrxml';
if ( $type == 'ACROFORM') $extension = 'pdf'; // The ereg_replace function has been DEPRECATED as of PHP 5.3.0.
// $downFileName = ereg_replace('[^A-Za-z0-9_]', '_', $aFields['OUT_DOC_TITLE'] ) . '.' . $extension;
// The ereg_replace function has been DEPRECATED as of PHP 5.3.0. $downFileName = preg_replace( '/[^A-Za-z0-9_]/i', '_', $aFields['OUT_DOC_TITLE'] ) . '.' . $extension;
// $downFileName = ereg_replace('[^A-Za-z0-9_]', '_', $aFields['OUT_DOC_TITLE'] ) . '.' . $extension; $filename = PATH_DYNAFORM . $aFields['PRO_UID'] . PATH_SEP . $aFields['OUT_DOC_UID'] . '.' . $extension;
$downFileName = preg_replace('/[^A-Za-z0-9_]/i', '_', $aFields['OUT_DOC_TITLE'] ) . '.' . $extension; if (file_exists( $filename )) {
$filename = PATH_DYNAFORM . $aFields['PRO_UID'] . PATH_SEP . $aFields['OUT_DOC_UID'] . '.' . $extension ; $aFields['FILENAME'] = $downFileName;
if ( file_exists ( $filename) ) } else {
$aFields['FILENAME'] = $downFileName; $aFields['FILENAME'] = '';
else }
$aFields['FILENAME'] = '';
$aFields['FILELINK'] = '../outputdocs/downloadFile?' . $aFields['OUT_DOC_UID'];
$aFields['FILELINK'] = '../outputdocs/downloadFile?' . $aFields['OUT_DOC_UID']; $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'outputdocs/outputdocsUploadFile', '', $aFields, '../outputdocs/uploadFile' );
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'outputdocs/outputdocsUploadFile', '', $aFields , '../outputdocs/uploadFile'); $G_PUBLISH->AddContent( 'view', 'outputdocs/editJrxml' );
$G_PUBLISH->AddContent('view', 'outputdocs/editJrxml' ); break;
break; }
} G::RenderPage( 'publish', 'raw' );
G::RenderPage('publish', 'raw'); } catch (Exception $oException) {
die( $oException->getMessage() );
}
catch (Exception $oException) {
die($oException->getMessage());
} }

View File

@@ -1,45 +1,42 @@
<?php <?php
/** /**
* outputdocs_List.php * outputdocs_List.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1) {
if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response; return $RBAC_Response;
}
//G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' ); //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' );
$G_MAIN_MENU = 'processmaker';
$G_MAIN_MENU = 'processmaker'; $G_SUB_MENU = 'processes';
$G_SUB_MENU = 'processes'; $G_ID_MENU_SELECTED = 'PROCESSES';
$G_ID_MENU_SELECTED = 'PROCESSES'; $G_ID_SUB_MENU_SELECTED = 'OUTPUTDOCS';
$G_ID_SUB_MENU_SELECTED = 'OUTPUTDOCS';
$dbc = new DBConnection();
$dbc = new DBConnection(); $ses = new DBSession( $dbc );
$ses = new DBSession($dbc);
$G_PUBLISH = new Publisher();
$G_PUBLISH = new Publisher; $Fields = array ('SYS_LANG' => SYS_LANG);
$Fields=array( 'SYS_LANG' => SYS_LANG,
); $G_PUBLISH->AddContent( 'pagedtable', 'paged-table', 'outputdocs/outputdocs_List', '', $Fields, 'outputdocs_Save' );
$G_PUBLISH->AddContent('pagedtable', 'paged-table', 'outputdocs/outputdocs_List', '', $Fields , 'outputdocs_Save'); G::RenderPage( "publish" );
G::RenderPage( "publish" );
?>

View File

@@ -1,85 +1,77 @@
<?php <?php
/** /**
* outputdocs_Edit.php * outputdocs_Edit.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ try {
try { global $RBAC;
global $RBAC; switch ($RBAC->userCanAccess( 'PM_FACTORY' )) {
switch ($RBAC->userCanAccess('PM_FACTORY')) { case - 2:
case -2: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; case - 1:
case -1: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; }
} require_once 'classes/model/OutputDocument.php';
require_once 'classes/model/OutputDocument.php'; $ooutputDocument = new OutputDocument();
$ooutputDocument = new OutputDocument(); if (isset( $_GET['OUT_DOC_UID'] )) {
if (isset($_GET['OUT_DOC_UID'])) { $aFields = $ooutputDocument->load( $_GET['OUT_DOC_UID'] );
$aFields = $ooutputDocument->load($_GET['OUT_DOC_UID']); } else {
} $aFields = array ();
else { $aFields['PRO_UID'] = $_GET['PRO_UID'];
$aFields = array(); }
$aFields['PRO_UID'] = $_GET['PRO_UID']; $aFields['OUT_DOC_TYPE'] = 'HTML';
} $enabledJavaBridge = false;
$aFields['OUT_DOC_TYPE'] = 'HTML'; /**
* Temporally Disabled, because we are not using JRXML output doc type by now
* G::LoadClass ('javaBridgePM');
$enabledJavaBridge = false; * if ( class_exists ( 'javaBridgePM' ) ) {
* $JBPM = new JavaBridgePM();
/** * try {
* Temporally Disabled, because we are not using JRXML output doc type by now * $JBPM->checkJavaExtension();
G::LoadClass ('javaBridgePM'); * $util = new Java("com.processmaker.util.pmutils");
if ( class_exists ( 'javaBridgePM' ) ) { * $enabledJavaBridge = true;
$JBPM = new JavaBridgePM(); * } catch ( Exception $e ) {
try { *
$JBPM->checkJavaExtension(); * }
$util = new Java("com.processmaker.util.pmutils"); * //$util->setInputPath( JAVATEST_PATH );
$enabledJavaBridge = true; * //$util->setOutputPath( JAVATEST_PATH );
} catch ( Exception $e ) { * }
*/
} G::LoadClass( 'xmlfield_InputPM' );
//$util->setInputPath( JAVATEST_PATH ); $G_PUBLISH = new Publisher();
//$util->setOutputPath( JAVATEST_PATH ); if (! $enabledJavaBridge) {
} $xmlform = 'outputdocs/outputdocs_Properties';
*/ $G_PUBLISH->AddContent( 'xmlform', 'xmlform', $xmlform, '', $aFields, '../outputdocs/outputdocs_Save' );
} else {
$xmlform = 'outputdocs/outputdocs_New';
G::LoadClass('xmlfield_InputPM'); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', $xmlform, '', $aFields, '../outputdocs/outputdocs_Save' );
$G_PUBLISH = new Publisher(); }
if ( ! $enabledJavaBridge ) { G::RenderPage( 'publish', 'raw' );
$xmlform = 'outputdocs/outputdocs_Properties'; } catch (Exception $oException) {
$G_PUBLISH->AddContent('xmlform', 'xmlform', $xmlform, '', $aFields , '../outputdocs/outputdocs_Save'); die( $oException->getMessage() );
} }
else {
$xmlform = 'outputdocs/outputdocs_New';
$G_PUBLISH->AddContent('xmlform', 'xmlform', $xmlform, '', $aFields , '../outputdocs/outputdocs_Save');
}
G::RenderPage('publish', 'raw');
}
catch (Exception $oException) {
die($oException->getMessage());
}

View File

@@ -1,91 +1,85 @@
<?php <?php
/** /**
* outputdocs_Edit.php * outputdocs_Edit.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ try {
try { global $RBAC;
global $RBAC; switch ($RBAC->userCanAccess( 'PM_FACTORY' )) {
switch ($RBAC->userCanAccess('PM_FACTORY')) { case - 2:
case -2: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; case - 1:
case -1: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; }
} require_once 'classes/model/OutputDocument.php';
$ooutputDocument = new OutputDocument();
require_once 'classes/model/OutputDocument.php'; if (isset( $_GET['OUT_DOC_UID'] )) {
$ooutputDocument = new OutputDocument(); $aFields = $ooutputDocument->load( $_GET['OUT_DOC_UID'] );
if (isset($_GET['OUT_DOC_UID'])) { } else {
$aFields = $ooutputDocument->load($_GET['OUT_DOC_UID']); $aFields = array ();
} else { $aFields['PRO_UID'] = $_GET['PRO_UID'];
$aFields = array(); }
$aFields['PRO_UID'] = $_GET['PRO_UID']; $type = isset( $aFields['OUT_DOC_TYPE'] ) ? $aFields['OUT_DOC_TYPE'] : 'HTML';
} $aFields['OUT_DOC_TAGS'] = isset( $aFields['OUT_DOC_TAGS'] ) ? $aFields['OUT_DOC_TAGS'] : 'OUTPUT';
$aFields['OUT_DOC_VERSIONING'] = strval( $aFields['OUT_DOC_VERSIONING'] );
$type = isset($aFields['OUT_DOC_TYPE']) ? $aFields['OUT_DOC_TYPE'] : 'HTML'; $aFields['OUT_DOC_LANDSCAPE'] = strval( $aFields['OUT_DOC_LANDSCAPE'] );
if (isset( $aFields['OUT_DOC_PDF_SECURITY_ENABLED'] )) {
$aFields['OUT_DOC_TAGS'] = isset($aFields['OUT_DOC_TAGS']) ? $aFields['OUT_DOC_TAGS'] : 'OUTPUT'; $aFields['OUT_DOC_PDF_SECURITY_ENABLED'] = strval( $aFields['OUT_DOC_PDF_SECURITY_ENABLED'] );
$aFields['OUT_DOC_VERSIONING'] = strval($aFields['OUT_DOC_VERSIONING']); }
$aFields['OUT_DOC_LANDSCAPE'] = strval($aFields['OUT_DOC_LANDSCAPE']); if (isset( $aFields['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] ) && $aFields['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] != "") {
if(isset($aFields['OUT_DOC_PDF_SECURITY_ENABLED'])){ $aFields['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] = G::decrypt( $aFields['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'], $_GET['OUT_DOC_UID'] );
$aFields['OUT_DOC_PDF_SECURITY_ENABLED'] = strval($aFields['OUT_DOC_PDF_SECURITY_ENABLED']); $aFields['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = G::decrypt( $aFields['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'], $_GET['OUT_DOC_UID'] );
} }
G::LoadClass( 'xmlfield_InputPM' );
$G_PUBLISH = new Publisher();
if (isset($aFields['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD']) && $aFields['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] != "") { switch ($type) {
$aFields['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] = G::decrypt($aFields['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'], $_GET['OUT_DOC_UID']); case 'HTML':
$aFields['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = G::decrypt($aFields['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'], $_GET['OUT_DOC_UID']); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'outputdocs/outputdocs_Properties', '', $aFields, '../outputdocs/outputdocs_Save' );
} break;
case 'JRXML':
G::LoadClass('xmlfield_InputPM'); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'outputdocs/outputdocs_Properties', '', $aFields, '../outputdocs/outputdocs_Save' );
$G_PUBLISH = new Publisher(); /*
switch ($type) { // $G_PUBLISH->AddContent('xmlform', 'xmlform', 'outputdocs/outputdocsDynaformList', '', $aFields , '../outputdocs/outputdocs_Save');
case 'HTML' : require_once 'classes/model/Process.php';
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'outputdocs/outputdocs_Properties', '', $aFields, '../outputdocs/outputdocs_Save'); G::LoadClass( 'processMap');
break; $sProcessUID = $aFields['PRO_UID'];
case 'JRXML' : $oProcess = new Process();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'outputdocs/outputdocs_Properties', '', $aFields, '../outputdocs/outputdocs_Save'); $oProcessMap = new ProcessMap();
/* $aFields = $oProcess->load($sProcessUID);
// $G_PUBLISH->AddContent('xmlform', 'xmlform', 'outputdocs/outputdocsDynaformList', '', $aFields , '../outputdocs/outputdocs_Save'); $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_ShortList', $oProcessMap->getDynaformsCriteria($sProcessUID), $aFields);
require_once 'classes/model/Process.php'; */
G::LoadClass( 'processMap'); break;
$sProcessUID = $aFields['PRO_UID']; case 'ACROFORM':
$oProcess = new Process(); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'outputdocs/outputdocs_Properties', '', $aFields, '../outputdocs/outputdocs_Save' );
$oProcessMap = new ProcessMap(); break;
$aFields = $oProcess->load($sProcessUID); }
$G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_ShortList', $oProcessMap->getDynaformsCriteria($sProcessUID), $aFields); G::RenderPage( 'publish', 'raw' );
*/ } catch (Exception $oException) {
break; die( $oException->getMessage() );
case 'ACROFORM' :
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'outputdocs/outputdocs_Properties', '', $aFields, '../outputdocs/outputdocs_Save');
break;
}
G::RenderPage('publish', 'raw');
} catch (Exception $oException) {
die($oException->getMessage());
} }

View File

@@ -1,91 +1,91 @@
<?php <?php
/** /**
* outputdocs_Save.php * outputdocs_Save.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ try {
try { global $RBAC;
global $RBAC; switch ($RBAC->userCanAccess( 'PM_FACTORY' )) {
switch ($RBAC->userCanAccess('PM_FACTORY')) { case - 2:
case -2: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; case - 1:
case -1: G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header( 'location: ../login/login' );
G::header('location: ../login/login'); die();
die; break;
break; }
}
//default:
//default:
require_once 'classes/model/OutputDocument.php'; require_once 'classes/model/OutputDocument.php';
G::LoadClass('processMap'); G::LoadClass( 'processMap' );
$oOutputDocument = new OutputDocument(); $oOutputDocument = new OutputDocument();
if (isset( $_POST['form'] ))
if (isset($_POST['form'])) $aData = $_POST['form']; //For old process map form
$aData = $_POST['form']; //For old process map form else
else $aData = $_POST; //For Extjs (Since we are not using form in ExtJS)
$aData = $_POST; //For Extjs (Since we are not using form in ExtJS)
if (isset( $aData['OUT_DOC_TITLE'] ) && $aData['OUT_DOC_TITLE'] != '') {
if(isset($aData['OUT_DOC_TITLE']) && $aData['OUT_DOC_TITLE']!=''){ $oForm = new Form( 'outputdocs/outputdocs_Properties', PATH_XMLFORM );
$oForm = new Form('outputdocs/outputdocs_Properties', PATH_XMLFORM); $aData = $oForm->validatePost();
$aData = $oForm->validatePost(); if (isset( $aData['OUT_DOC_PDF_SECURITY_ENABLED'] ) && $aData['OUT_DOC_PDF_SECURITY_ENABLED'] == "0") {
if(isset($aData['OUT_DOC_PDF_SECURITY_ENABLED'])&&$aData['OUT_DOC_PDF_SECURITY_ENABLED']=="0"){ $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] = "";
$aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] =""; $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = "";
$aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] =""; $aData['OUT_DOC_PDF_SECURITY_PERMISSIONS'] = "";
$aData['OUT_DOC_PDF_SECURITY_PERMISSIONS'] =""; }
} if (isset( $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] ) && $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] != "") {
if(isset($aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'])&&$aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD']!=""){ $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] = G::encrypt( $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'], $aData['OUT_DOC_UID'] );
$aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] = G::encrypt($aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'],$aData['OUT_DOC_UID']); $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = G::encrypt( $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'], $aData['OUT_DOC_UID'] );
$aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = G::encrypt($aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'],$aData['OUT_DOC_UID']); }
} }
} if ($aData['OUT_DOC_UID'] == '') {
if ($aData['OUT_DOC_UID'] == '') {
if ((isset( $aData['OUT_DOC_TYPE'] )) && ($aData['OUT_DOC_TYPE'] == 'JRXML')) {
if ((isset($aData['OUT_DOC_TYPE'])) && ( $aData['OUT_DOC_TYPE'] == 'JRXML' )) { $dynaformUid = $aData['DYN_UID'];
$dynaformUid = $aData['DYN_UID']; $outDocUid = $oOutputDocument->create( $aData );
$outDocUid = $oOutputDocument->create($aData); G::LoadClass( 'javaBridgePM' );
G::LoadClass('javaBridgePM'); $jbpm = new JavaBridgePM();
$jbpm = new JavaBridgePM (); print $jbpm->generateJrxmlFromDynaform( $outDocUid, $dynaformUid, 'classic' );
print $jbpm->generateJrxmlFromDynaform($outDocUid, $dynaformUid, 'classic'); } else {
} else { $outDocUid = $oOutputDocument->create( $aData );
$outDocUid = $oOutputDocument->create($aData); }
} } else {
} else { $oOutputDocument->update( $aData );
$oOutputDocument->update($aData); }
}
if (isset( $aData['PRO_UID'] )) {
if (isset($aData['PRO_UID'])) { //refresh dbarray with the last change in outputDocument
//refresh dbarray with the last change in outputDocument $oMap = new processMap();
$oMap = new processMap(); $oCriteria = $oMap->getOutputDocumentsCriteria( $aData['PRO_UID'] );
$oCriteria = $oMap->getOutputDocumentsCriteria($aData['PRO_UID']); }
}
} catch (Exception $oException) {
} catch (Exception $oException) { die( $oException->getMessage() );
die($oException->getMessage());
} }

View File

@@ -1,32 +1,33 @@
<?php <?php
try { try {
require_once 'classes/model/OutputDocument.php'; require_once 'classes/model/OutputDocument.php';
if (empty($_FILES['form']) || $_FILES['form']['name']['OUT_DOC_FILE'] == '') if (empty( $_FILES['form'] ) || $_FILES['form']['name']['OUT_DOC_FILE'] == '') {
throw ( new Exception ( 'you must upload a file.' ) ); throw (new Exception( 'you must upload a file.' ));
}
$uid = $_POST['form']['OUT_DOC_UID'];
$oOutputDocument = new OutputDocument();
$aFields = $oOutputDocument->load( $uid );
$type = $aFields['OUT_DOC_TYPE'];
$uid = $_POST['form']['OUT_DOC_UID']; $aExtension = explode( '.', strtolower( basename( $_FILES['form']['name']['OUT_DOC_FILE'] ) ) );
$oOutputDocument = new OutputDocument(); $extension = $aExtension[count( $aExtension ) - 1];
$aFields = $oOutputDocument->load($uid); if ($extension != 'jrxml' && $type == 'JRXML') {
$type = $aFields['OUT_DOC_TYPE']; throw (new Exception( "'$extension' is not a valid extension, you must upload a .jrxml file." ));
}
$aExtension = explode ('.', strtolower(basename( $_FILES['form']['name']['OUT_DOC_FILE'] )));
$extension = $aExtension[ count($aExtension) -1 ];
if ( $extension != 'jrxml' && $type == 'JRXML')
throw ( new Exception ( "'$extension' is not a valid extension, you must upload a .jrxml file." ) );
if ( $extension != 'pdf' && $type == 'ACROFORM') if ($extension != 'pdf' && $type == 'ACROFORM') {
throw ( new Exception ( "'$extension' is not a valid extension, you must upload a .pdf file." ) ); throw (new Exception( "'$extension' is not a valid extension, you must upload a .pdf file." ));
}
$fileJrxml = PATH_DYNAFORM . $aFields['PRO_UID'] . PATH_SEP . $aFields['OUT_DOC_UID'] . '.' . $extension;
if (! empty( $_FILES['form'] )) {
if ($_FILES['form']['error']['OUT_DOC_FILE'] == 0) {
G::uploadFile( $_FILES['form']['tmp_name']['OUT_DOC_FILE'], dirname( $fileJrxml ), basename( $fileJrxml ) );
}
}
print "<font face='Arial' size='2' >File uploaded.</font>";
$fileJrxml = PATH_DYNAFORM . $aFields['PRO_UID'] . PATH_SEP . $aFields['OUT_DOC_UID'] . '.' . $extension; } catch (Exception $e) {
if (!empty($_FILES['form'])) { print "<font face='Arial' size='2' color='red' >Error: " . $e->getMessage() . "</font>";
if ($_FILES['form']['error']['OUT_DOC_FILE'] == 0) { }
G::uploadFile($_FILES['form']['tmp_name']['OUT_DOC_FILE'], dirname($fileJrxml), basename($fileJrxml) );
}
}
print "<font face='Arial' size='2' >File uploaded.</font>";
}
catch ( Exception $e ) {
print "<font face='Arial' size='2' color='red' >Error: " . $e->getMessage() . "</font>";
}

View File

@@ -1,155 +1,148 @@
<?php <?php
/** /**
* patterns_Ajax.php * patterns_Ajax.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ G::LoadInclude( 'ajax' );
G::LoadInclude('ajax'); $oJSON = new Services_JSON();
$oJSON = new Services_JSON(); if (isset( $_POST['mode'] ) && $_POST['mode'] != '') {
if(isset($_POST['mode']) && $_POST['mode'] != '') $aData = $_POST;
$aData = $_POST; } else {
else $aData = $_POST['form'];
$aData = $_POST['form']; }
G::LoadClass('tasks'); G::LoadClass( 'tasks' );
$oTasks = new Tasks(); $oTasks = new Tasks();
$rou_id = 0; $rou_id = 0;
switch ($aData['action']) { switch ($aData['action']) {
case 'savePattern': case 'savePattern':
//if ($aData['ROU_TYPE'] != $aData['ROU_TYPE_OLD']) //if ($aData['ROU_TYPE'] != $aData['ROU_TYPE_OLD'])
//{ //{
$oTasks->deleteAllRoutesOfTask($aData['PROCESS'], $aData['TASK']); $oTasks->deleteAllRoutesOfTask( $aData['PROCESS'], $aData['TASK'] );
//} //}
require_once 'classes/model/Route.php'; require_once 'classes/model/Route.php';
$oRoute = new Route(); $oRoute = new Route();
switch ($aData['ROU_TYPE']) { switch ($aData['ROU_TYPE']) {
case 'SEQUENTIAL': case 'SEQUENTIAL':
case 'SEC-JOIN': case 'SEC-JOIN':
/*if ($aData['ROU_UID'] != '') /*if ($aData['ROU_UID'] != '')
{ {
$aFields['ROU_UID'] = $aData['ROU_UID']; $aFields['ROU_UID'] = $aData['ROU_UID'];
}*/ }*/
$aFields['PRO_UID'] = $aData['PROCESS']; $aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK']; $aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aData['ROU_NEXT_TASK']; $aFields['ROU_NEXT_TASK'] = $aData['ROU_NEXT_TASK'];
$aFields['ROU_TYPE'] = $aData['ROU_TYPE']; $aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
//$aFields['ROU_TO_LAST_USER'] = $aData['ROU_TO_LAST_USER']; //$aFields['ROU_TO_LAST_USER'] = $aData['ROU_TO_LAST_USER'];
$rou_id = $oRoute->create($aFields); $rou_id = $oRoute->create( $aFields );
break; break;
case 'SELECT': case 'SELECT':
foreach ($aData['GRID_SELECT_TYPE'] as $iKey => $aRow) foreach ($aData['GRID_SELECT_TYPE'] as $iKey => $aRow) {
{ /*if ($aRow['ROU_UID'] != '')
/*if ($aRow['ROU_UID'] != '')
{ {
$aFields['ROU_UID'] = $aRow['ROU_UID']; $aFields['ROU_UID'] = $aRow['ROU_UID'];
}*/ }*/
$aFields['PRO_UID'] = $aData['PROCESS']; $aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK']; $aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK']; $aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey; $aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE']; $aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION']; $aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
//$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER']; //$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
$rou_id = $oRoute->create($aFields); $rou_id = $oRoute->create( $aFields );
unset($aFields); unset( $aFields );
} }
break; break;
case 'EVALUATE': case 'EVALUATE':
foreach ($aData['GRID_EVALUATE_TYPE'] as $iKey => $aRow) foreach ($aData['GRID_EVALUATE_TYPE'] as $iKey => $aRow) {
{ /*if ($aRow['ROU_UID'] != '')
/*if ($aRow['ROU_UID'] != '')
{ {
$aFields['ROU_UID'] = $aRow['ROU_UID']; $aFields['ROU_UID'] = $aRow['ROU_UID'];
}*/ }*/
$aFields['PRO_UID'] = $aData['PROCESS']; $aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK']; $aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK']; $aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey; $aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE']; $aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION']; $aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
//$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER']; //$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
$rou_id = $oRoute->create($aFields); $rou_id = $oRoute->create( $aFields );
unset($aFields); unset( $aFields );
} }
break; break;
case 'PARALLEL': case 'PARALLEL':
foreach ($aData['GRID_PARALLEL_TYPE'] as $iKey => $aRow) foreach ($aData['GRID_PARALLEL_TYPE'] as $iKey => $aRow) {
{ /*if ($aRow['ROU_UID'] != '')
/*if ($aRow['ROU_UID'] != '')
{ {
$aFields['ROU_UID'] = $aRow['ROU_UID']; $aFields['ROU_UID'] = $aRow['ROU_UID'];
}*/ }*/
$aFields['PRO_UID'] = $aData['PROCESS']; $aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK']; $aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK']; $aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey; $aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE']; $aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$rou_id = $oRoute->create($aFields); $rou_id = $oRoute->create( $aFields );
unset($aFields); unset( $aFields );
} }
break; break;
case 'PARALLEL-BY-EVALUATION': case 'PARALLEL-BY-EVALUATION':
foreach ($aData['GRID_PARALLEL_EVALUATION_TYPE'] as $iKey => $aRow) foreach ($aData['GRID_PARALLEL_EVALUATION_TYPE'] as $iKey => $aRow) {
{ /*if ($aRow['ROU_UID'] != '')
/*if ($aRow['ROU_UID'] != '')
{ {
$aFields['ROU_UID'] = $aRow['ROU_UID']; $aFields['ROU_UID'] = $aRow['ROU_UID'];
}*/ }*/
$aFields['PRO_UID'] = $aData['PROCESS']; $aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK']; $aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK']; $aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey; $aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE']; $aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION']; $aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
if(isset($aRow['ROU_OPTIONAL']) && trim($aRow['ROU_OPTIONAL'])!='' if (isset( $aRow['ROU_OPTIONAL'] ) && trim( $aRow['ROU_OPTIONAL'] ) != '' && ($aRow['ROU_OPTIONAL'] === 'TRUE' || $aRow['ROU_OPTIONAL'] === 'FALSE'))
&& ($aRow['ROU_OPTIONAL']==='TRUE' || $aRow['ROU_OPTIONAL']==='FALSE')) $aFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL'];
$aFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL']; $rou_id = $oRoute->create( $aFields );
$rou_id = $oRoute->create($aFields); unset( $aFields );
unset($aFields); }
} break;
break; case 'DISCRIMINATOR': //Girish ->Added to save changes, while editing the route
case 'DISCRIMINATOR': //Girish ->Added to save changes, while editing the route foreach ($aData['GRID_DISCRIMINATOR_TYPE'] as $iKey => $aRow) {
foreach ($aData['GRID_DISCRIMINATOR_TYPE'] as $iKey => $aRow) $aFields['PRO_UID'] = $aData['PROCESS'];
{ $aFields['TAS_UID'] = $aData['TASK'];
$aFields['PRO_UID'] = $aData['PROCESS']; $aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['TAS_UID'] = $aData['TASK']; $aFields['ROU_CASE'] = $iKey;
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK']; $aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CASE'] = $iKey; $aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
$aFields['ROU_TYPE'] = $aData['ROU_TYPE']; $aFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION']; $routeData = $oTasks->getRouteByType( $aData['PROCESS'], $aRow['ROU_NEXT_TASK'], $aData['ROU_TYPE'] );
$aFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL']; foreach ($routeData as $route) {
$routeData = $oTasks->getRouteByType($aData['PROCESS'], $aRow['ROU_NEXT_TASK'], $aData['ROU_TYPE']); $sFields['ROU_UID'] = $route['ROU_UID'];
foreach($routeData as $route) $sFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
{ $sFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL'];
$sFields['ROU_UID'] = $route['ROU_UID']; $rou_id = $oRoute->update( $sFields );
$sFields['ROU_CONDITION'] = $aRow['ROU_CONDITION']; }
$sFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL']; $rou_id = $oRoute->create( $aFields );
$rou_id = $oRoute->update($sFields); unset( $aFields );
} }
$rou_id =$oRoute->create($aFields); break;
unset($aFields); }
} echo $rou_id;
break; }
}
echo $rou_id;
}
?> ?>

View File

@@ -12,36 +12,35 @@
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/ */
if (isset( $_POST['function'] )) {
if(isset($_POST['function'])) {
switch ($_POST['function']) {
switch($_POST['function']) {
case 'checkCategoryName':
case 'checkCategoryName':
$CategoryName = $_POST['CategoryName'];
$CategoryName = $_POST['CategoryName']; require_once ("classes/model/ProcessCategory.php");
require_once ( "classes/model/ProcessCategory.php" ); $processCategory = new ProcessCategory();
$processCategory = new ProcessCategory(); $aProcessCategory = $processCategory->loadByCategoryName( $CategoryName );
$aProcessCategory = $processCategory->loadByCategoryName($CategoryName); if (is_array( $aProcessCategory )) {
if( is_array($aProcessCategory)) { return print '1';
return print '1'; } else {
} else { return print '0';
return print '0'; }
} break;
break;
default:
default: echo 'default'; echo 'default';
} }
} }

View File

@@ -1,41 +1,39 @@
<?php <?php
if($RBAC->userCanAccess('PM_SETUP') != 1 && $RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1){ if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1 && $RBAC->userCanAccess( 'PM_SETUP_ADVANCE' ) != 1) {
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
//G::header('location: ../login/login'); //G::header('location: ../login/login');
die; die();
} }
//to do: improve the way to pass two or more parameters in the paged-table ( link ) //to do: improve the way to pass two or more parameters in the paged-table ( link )
$aux = explode ( '|', $_GET['id'] );
$index=0; $aux = explode( '|', $_GET['id'] );
$CategoryUid = str_replace ( '"', '', $aux[$index++] ); $index = 0;
$CategoryUid = str_replace( '"', '', $aux[$index ++] );
require_once ( "classes/model/ProcessCategory.php" ); require_once ("classes/model/ProcessCategory.php");
//if exists the row in the database propel will update it, otherwise will insert. //if exists the row in the database propel will update it, otherwise will insert.
$tr = ProcessCategoryPeer::retrieveByPK( $CategoryUid ); $tr = ProcessCategoryPeer::retrieveByPK( $CategoryUid );
if ( ( is_object ( $tr ) && get_class ($tr) == 'ProcessCategory' ) ) { if ((is_object( $tr ) && get_class( $tr ) == 'ProcessCategory')) {
$fields['CATEGORY_UID'] = $tr->getCategoryUid(); $fields['CATEGORY_UID'] = $tr->getCategoryUid();
$fields['LABEL_CATEGORY_UID'] = $tr->getCategoryUid(); $fields['LABEL_CATEGORY_UID'] = $tr->getCategoryUid();
$fields['CATEGORY_PARENT'] = $tr->getCategoryParent(); $fields['CATEGORY_PARENT'] = $tr->getCategoryParent();
$fields['LABEL_CATEGORY_PARENT'] = $tr->getCategoryParent(); $fields['LABEL_CATEGORY_PARENT'] = $tr->getCategoryParent();
$fields['CATEGORY_NAME'] = $tr->getCategoryName(); $fields['CATEGORY_NAME'] = $tr->getCategoryName();
$fields['LABEL_CATEGORY_NAME'] = $tr->getCategoryName(); $fields['LABEL_CATEGORY_NAME'] = $tr->getCategoryName();
$fields['CATEGORY_ICON'] = $tr->getCategoryIcon(); $fields['CATEGORY_ICON'] = $tr->getCategoryIcon();
$fields['LABEL_CATEGORY_ICON'] = $tr->getCategoryIcon(); $fields['LABEL_CATEGORY_ICON'] = $tr->getCategoryIcon();
} } else
else $fields = array ();
$fields = array();
$G_MAIN_MENU = 'workflow';
$G_MAIN_MENU = 'workflow'; $G_SUB_MENU = 'processCategory';
$G_SUB_MENU = 'processCategory'; $G_ID_MENU_SELECTED = '';
$G_ID_MENU_SELECTED = ''; $G_ID_SUB_MENU_SELECTED = '';
$G_ID_SUB_MENU_SELECTED = '';
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'processCategory/processCategoryDelete', '', $fields, 'processCategoryDeleteExec' );
$G_PUBLISH = new Publisher; G::RenderPage( 'publishBlank', 'blank' );
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'processCategory/processCategoryDelete', '', $fields, 'processCategoryDeleteExec' );
G::RenderPage('publishBlank', 'blank');
?> ?>

View File

@@ -1,46 +1,44 @@
<?php <?php
if($RBAC->userCanAccess('PM_SETUP') != 1 && $RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1){ if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1 && $RBAC->userCanAccess( 'PM_SETUP_ADVANCE' ) != 1) {
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
//G::header('location: ../login/login'); //G::header('location: ../login/login');
die; die();
} }
try { try {
$form = $_POST['form']; $form = $_POST['form'];
$CategoryUid = $form['CATEGORY_UID']; $CategoryUid = $form['CATEGORY_UID'];
require_once ( "classes/model/ProcessCategory.php" ); require_once ("classes/model/ProcessCategory.php");
require_once 'classes/model/Process.php'; require_once 'classes/model/Process.php';
//we'are looking for data into process with this CategoryUid //we'are looking for data into process with this CategoryUid
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria( 'workflow' );
$oCriteria->add(ProcessPeer::PRO_CATEGORY, $CategoryUid); $oCriteria->add( ProcessPeer::PRO_CATEGORY, $CategoryUid );
$oDataset = ProcessPeer::doSelectRS($oCriteria); $oDataset = ProcessPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
while ($oDataset->next()) { while ($oDataset->next()) {
$aDataProcess = $oDataset->getRow(); $aDataProcess = $oDataset->getRow();
$oCriteria1 = new Criteria('workflow'); $oCriteria1 = new Criteria( 'workflow' );
$oCriteria1->add(ProcessPeer::PRO_CATEGORY, ''); $oCriteria1->add( ProcessPeer::PRO_CATEGORY, '' );
$oCriteria2 = new Criteria('workflow'); $oCriteria2 = new Criteria( 'workflow' );
$oCriteria2->add(ProcessPeer::PRO_UID, $aDataProcess['PRO_UID']); $oCriteria2->add( ProcessPeer::PRO_UID, $aDataProcess['PRO_UID'] );
BasePeer::doUpdate($oCriteria2, $oCriteria1, Propel::getConnection('workflow')); BasePeer::doUpdate( $oCriteria2, $oCriteria1, Propel::getConnection( 'workflow' ) );
} }
//if exists the row in the database propel will update it, otherwise will insert. //if exists the row in the database propel will update it, otherwise will insert.
$tr = ProcessCategoryPeer::retrieveByPK( $CategoryUid ); $tr = ProcessCategoryPeer::retrieveByPK( $CategoryUid );
if ( ( is_object ( $tr ) && get_class ($tr) == 'ProcessCategory' ) ) { if ((is_object( $tr ) && get_class( $tr ) == 'ProcessCategory')) {
$tr->delete(); $tr->delete();
} }
G::Header('location: processCategoryList'); G::Header( 'location: processCategoryList' );
} } catch (Exception $e) {
catch ( Exception $e ) { $G_PUBLISH = new Publisher();
$G_PUBLISH = new Publisher; $aMessage['MESSAGE'] = $e->getMessage();
$aMessage['MESSAGE'] = $e->getMessage(); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage ); G::RenderPage( 'publish', 'blank' );
G::RenderPage( 'publish', 'blank' ); }
}

View File

@@ -1,35 +1,32 @@
<?php <?php
if($RBAC->userCanAccess('PM_SETUP') != 1 && $RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1){ if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1 && $RBAC->userCanAccess( 'PM_SETUP_ADVANCE' ) != 1) {
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
//G::header('location: ../login/login'); //G::header('location: ../login/login');
die; die();
} }
$aux = explode ( '|', isset($_GET['id']) ? $_GET['id'] : '' ); $aux = explode( '|', isset( $_GET['id'] ) ? $_GET['id'] : '' );
$CategoryUid = str_replace ( '"', '', $aux[0] ); $CategoryUid = str_replace( '"', '', $aux[0] );
require_once ("classes/model/ProcessCategory.php");
require_once ( "classes/model/ProcessCategory.php" ); //if exists the row in the database propel will update it, otherwise will insert.
//if exists the row in the database propel will update it, otherwise will insert. $tr = ProcessCategoryPeer::retrieveByPK( $CategoryUid );
$tr = ProcessCategoryPeer::retrieveByPK( $CategoryUid );
if ((is_object( $tr ) && get_class( $tr ) == 'ProcessCategory')) {
if ( ( is_object ( $tr ) && get_class ($tr) == 'ProcessCategory' ) ) { $fields['CATEGORY_UID'] = $tr->getCategoryUid();
$fields['CATEGORY_UID'] = $tr->getCategoryUid(); $fields['CATEGORY_PARENT'] = $tr->getCategoryParent();
$fields['CATEGORY_PARENT'] = $tr->getCategoryParent(); $fields['CATEGORY_NAME'] = $tr->getCategoryName();
$fields['CATEGORY_NAME'] = $tr->getCategoryName(); $fields['CATEGORY_ICON'] = $tr->getCategoryIcon();
$fields['CATEGORY_ICON'] = $tr->getCategoryIcon(); } else
} $fields = array ();
else
$fields = array(); $G_MAIN_MENU = 'workflow';
$G_SUB_MENU = 'processCategory';
$G_MAIN_MENU = 'workflow'; $G_ID_MENU_SELECTED = '';
$G_SUB_MENU = 'processCategory'; $G_ID_SUB_MENU_SELECTED = '';
$G_ID_MENU_SELECTED = '';
$G_ID_SUB_MENU_SELECTED = ''; $G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'processCategory/processCategoryEdit', '', $fields, 'processCategorySave' );
G::RenderPage( 'publishBlank', 'blank' );
$G_PUBLISH = new Publisher;
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'processCategory/processCategoryEdit', '', $fields, 'processCategorySave' );
G::RenderPage('publishBlank', 'blank');
?> ?>

View File

@@ -1,47 +1,46 @@
<?php <?php
/** /**
* processCategoryList.php * processCategoryList.php
* *
* ProcessMaker Open Source Edition * ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23 * Copyright (C) 2004 - 2008 Colosa Inc.23
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as * it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version. * License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* */
*/ if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1 && $RBAC->userCanAccess( 'PM_SETUP_ADVANCE' ) != 1) {
if($RBAC->userCanAccess('PM_SETUP') != 1 && $RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1){ G::SendTemporalMessage( 'krlos', 'error', 'labels' );
G::SendTemporalMessage('krlos', 'error', 'labels'); die();
die; }
}
G::LoadClass( 'configuration' );
G::LoadClass('configuration'); $c = new Configurations();
$c = new Configurations(); $configPage = $c->getConfiguration( 'processCategoryList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
$configPage = $c->getConfiguration('processCategoryList', 'pageSize','',$_SESSION['USER_LOGGED']); $Config['pageSize'] = isset( $configPage['pageSize'] ) ? $configPage['pageSize'] : 20;
$Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20;
$G_MAIN_MENU = 'workflow';
$G_MAIN_MENU = 'workflow'; $G_SUB_MENU = 'processCategory';
$G_SUB_MENU = 'processCategory'; $G_ID_MENU_SELECTED = '';
$G_ID_MENU_SELECTED = ''; $G_ID_SUB_MENU_SELECTED = '';
$G_ID_SUB_MENU_SELECTED = '';
$G_PUBLISH = new Publisher();
$G_PUBLISH = new Publisher;
$oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher->addExtJsScript( 'processCategory/processCategoryList', false ); //adding a javascript file .js
$oHeadPublisher->addExtJsScript('processCategory/processCategoryList', false); //adding a javascript file .js $oHeadPublisher->addContent( 'processCategory/processCategoryList' ); //adding a html file .html.
$oHeadPublisher->addContent('processCategory/processCategoryList'); //adding a html file .html. $oHeadPublisher->assign( 'FORMATS', $c->getFormats() );
$oHeadPublisher->assign('FORMATS',$c->getFormats()); $oHeadPublisher->assign( 'CONFIG', $Config );
$oHeadPublisher->assign('CONFIG', $Config); G::RenderPage( 'publish', 'extJs' );
G::RenderPage('publish', 'extJs');

View File

@@ -1,27 +1,26 @@
<?php <?php
if($RBAC->userCanAccess('PM_SETUP') != 1 && $RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1){ if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1 && $RBAC->userCanAccess( 'PM_SETUP_ADVANCE' ) != 1) {
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
//G::header('location: ../login/login'); //G::header('location: ../login/login');
die; die();
} }
require_once ( "classes/model/ProcessCategory.php" ); require_once ("classes/model/ProcessCategory.php");
$fields['CATEGORY_UID'] = G::GenerateUniqueID();
$fields['CATEGORY_UID'] = G::GenerateUniqueID();; ;
$fields['CATEGORY_PARENT'] = ''; $fields['CATEGORY_PARENT'] = '';
$fields['CATEGORY_NAME'] = ''; $fields['CATEGORY_NAME'] = '';
$fields['CATEGORY_ICON'] = ''; $fields['CATEGORY_ICON'] = '';
$G_MAIN_MENU = 'workflow'; $G_MAIN_MENU = 'workflow';
$G_SUB_MENU = 'processCategory'; $G_SUB_MENU = 'processCategory';
$G_ID_MENU_SELECTED = ''; $G_ID_MENU_SELECTED = '';
$G_ID_SUB_MENU_SELECTED = ''; $G_ID_SUB_MENU_SELECTED = '';
$G_PUBLISH = new Publisher();
$G_PUBLISH = new Publisher; $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'processCategory/processCategoryNew', '', $fields, 'processCategorySave' );
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'processCategory/processCategoryNew', '', $fields, 'processCategorySave' ); G::RenderPage( 'publishBlank', 'blank' );
G::RenderPage('publishBlank', 'blank'); ?>
?>

View File

@@ -1,59 +1,58 @@
<?php <?php
try { try {
$form = $_POST['form']; $form = $_POST['form'];
$CategoryUid = $form['CATEGORY_UID']; $CategoryUid = $form['CATEGORY_UID'];
$CategoryParent = $form['CATEGORY_PARENT']; $CategoryParent = $form['CATEGORY_PARENT'];
$CategoryName = $form['CATEGORY_NAME']; $CategoryName = $form['CATEGORY_NAME'];
$CategoryIcon = $form['CATEGORY_ICON']; $CategoryIcon = $form['CATEGORY_ICON'];
require_once ("classes/model/ProcessCategory.php");
//if exists the row in the database propel will update it, otherwise will insert.
$tr = ProcessCategoryPeer::retrieveByPK( $CategoryUid );
$processCategory = new ProcessCategory();
$aProcessCategory = $processCategory->loadByCategoryName( $CategoryName );
if (! is_array( $aProcessCategory )) {
if (! (is_object( $tr ) && get_class( $tr ) == 'ProcessCategory')) {
$tr = new ProcessCategory();
}
$tr->setCategoryUid( $CategoryUid );
$tr->setCategoryParent( $CategoryParent );
$tr->setCategoryName( $CategoryName );
$tr->setCategoryIcon( $CategoryIcon );
if ($tr->validate()) {
// we save it, since we get no validation errors, or do whatever else you like.
$res = $tr->save();
} else {
// Something went wrong. We can now get the validationFailures and handle them.
$msg = '';
$validationFailuresArray = $tr->getValidationFailures();
foreach ($validationFailuresArray as $objValidationFailure) {
$msg .= $objValidationFailure->getMessage() . "<br/>";
}
//return array ( 'codError' => -100, 'rowsAffected' => 0, 'message' => $msg );
}
//return array ( 'codError' => 0, 'rowsAffected' => $res, 'message' => '');
require_once ( "classes/model/ProcessCategory.php" ); //to do: uniform coderror structures for all classes
//if exists the row in the database propel will update it, otherwise will insert.
$tr = ProcessCategoryPeer::retrieveByPK( $CategoryUid );
$processCategory = new ProcessCategory();
$aProcessCategory = $processCategory->loadByCategoryName($CategoryName);
if(! is_array($aProcessCategory)) {
if ( ! ( is_object ( $tr ) && get_class ($tr) == 'ProcessCategory' ) ) { //if ( $res['codError'] < 0 ) {
$tr = new ProcessCategory(); // G::SendMessageText ( $res['message'] , 'error' );
} //}
$tr->setCategoryUid( $CategoryUid ); G::Header( 'location: processCategoryList' );
$tr->setCategoryParent( $CategoryParent );
$tr->setCategoryName( $CategoryName );
$tr->setCategoryIcon( $CategoryIcon );
if ($tr->validate() ) {
// we save it, since we get no validation errors, or do whatever else you like.
$res = $tr->save();
}
else {
// Something went wrong. We can now get the validationFailures and handle them.
$msg = '';
$validationFailuresArray = $tr->getValidationFailures();
foreach($validationFailuresArray as $objValidationFailure) {
$msg .= $objValidationFailure->getMessage() . "<br/>";
}
//return array ( 'codError' => -100, 'rowsAffected' => 0, 'message' => $msg );
}
//return array ( 'codError' => 0, 'rowsAffected' => $res, 'message' => '');
//to do: uniform coderror structures for all classes
//if ( $res['codError'] < 0 ) {
// G::SendMessageText ( $res['message'] , 'error' );
//}
G::Header('location: processCategoryList');
} else { } else {
// G::SendTemporalMessage("El registro ya existe", "warning", 'labels'); // G::SendTemporalMessage("El registro ya existe", "warning", 'labels');
G::Header('location: processCategoryList'); G::Header( 'location: processCategoryList' );
die; die();
} }
} catch ( Exception $e ) { } catch (Exception $e) {
$G_PUBLISH = new Publisher; $G_PUBLISH = new Publisher();
$aMessage['MESSAGE'] = $e->getMessage(); $aMessage['MESSAGE'] = $e->getMessage();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
G::RenderPage( 'publish', 'blank' ); G::RenderPage( 'publish', 'blank' );
} }

View File

@@ -12,154 +12,154 @@
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * 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/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/ */
if(isset($_REQUEST['action'])) { if (isset( $_REQUEST['action'] )) {
switch($_REQUEST['action']) { switch ($_REQUEST['action']) {
case 'processCategoryList': case 'processCategoryList':
require_once 'classes/model/ProcessCategory.php'; require_once 'classes/model/ProcessCategory.php';
require_once 'classes/model/Process.php'; require_once 'classes/model/Process.php';
G::LoadClass('configuration'); G::LoadClass( 'configuration' );
$co = new Configurations(); $co = new Configurations();
$config = $co->getConfiguration('processCategoryList', 'pageSize','',$_SESSION['USER_LOGGED']); $config = $co->getConfiguration( 'processCategoryList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
$limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20; $limit_size = isset( $config['pageSize'] ) ? $config['pageSize'] : 20;
$start = isset($_POST['start']) ? $_POST['start'] : 0; $start = isset( $_POST['start'] ) ? $_POST['start'] : 0;
$limit = isset($_POST['limit']) ? $_POST['limit'] : $limit_size; $limit = isset( $_POST['limit'] ) ? $_POST['limit'] : $limit_size;
$filter = isset($_REQUEST['textFilter'])? $_REQUEST['textFilter'] : ''; $filter = isset( $_REQUEST['textFilter'] ) ? $_REQUEST['textFilter'] : '';
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn('COUNT(*) AS CNT'); $oCriteria->addSelectColumn( 'COUNT(*) AS CNT' );
$oCriteria->add(ProcessCategoryPeer::CATEGORY_UID,'',Criteria::NOT_EQUAL); $oCriteria->add( ProcessCategoryPeer::CATEGORY_UID, '', Criteria::NOT_EQUAL );
if ($filter != ''){ if ($filter != '') {
$oCriteria->add(ProcessCategoryPeer::CATEGORY_NAME,'%'.$filter.'%',Criteria::LIKE); $oCriteria->add( ProcessCategoryPeer::CATEGORY_NAME, '%' . $filter . '%', Criteria::LIKE );
} }
$oDat = ProcessCategoryPeer::doSelectRS($oCriteria); $oDat = ProcessCategoryPeer::doSelectRS( $oCriteria );
$oDat->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDat->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDat->next(); $oDat->next();
$row = $oDat->getRow(); $row = $oDat->getRow();
$total_categories = $row['CNT']; $total_categories = $row['CNT'];
$oCriteria->clear(); $oCriteria->clear();
$oCriteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_UID); $oCriteria->addSelectColumn( ProcessCategoryPeer::CATEGORY_UID );
$oCriteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_NAME); $oCriteria->addSelectColumn( ProcessCategoryPeer::CATEGORY_NAME );
$oCriteria->add(ProcessCategoryPeer::CATEGORY_UID,'',Criteria::NOT_EQUAL); $oCriteria->add( ProcessCategoryPeer::CATEGORY_UID, '', Criteria::NOT_EQUAL );
if ($filter != ''){ if ($filter != '') {
$oCriteria->add(ProcessCategoryPeer::CATEGORY_NAME,'%'.$filter.'%',Criteria::LIKE); $oCriteria->add( ProcessCategoryPeer::CATEGORY_NAME, '%' . $filter . '%', Criteria::LIKE );
} }
$oCriteria->setLimit($limit); $oCriteria->setLimit( $limit );
$oCriteria->setOffset($start); $oCriteria->setOffset( $start );
$oDataset = ProcessCategoryPeer::doSelectRS($oCriteria); $oDataset = ProcessCategoryPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$proc = new Process(); $proc = new Process();
$aProcess = $proc->getAllProcessesByCategory(); $aProcess = $proc->getAllProcessesByCategory();
$aCat = array(); $aCat = array ();
while ($oDataset->next()){ while ($oDataset->next()) {
$aCat[] = $oDataset->getRow(); $aCat[] = $oDataset->getRow();
$index = sizeof($aCat)-1; $index = sizeof( $aCat ) - 1;
$aCat[$index]['TOTAL_PROCESSES'] = isset($aProcess[$aCat[$index]['CATEGORY_UID']]) ? $aProcess[$aCat[$index]['CATEGORY_UID']] : 0; $aCat[$index]['TOTAL_PROCESSES'] = isset( $aProcess[$aCat[$index]['CATEGORY_UID']] ) ? $aProcess[$aCat[$index]['CATEGORY_UID']] : 0;
} }
echo '{categories: '.G::json_encode($aCat).', total_categories: '.$total_categories.'}'; echo '{categories: ' . G::json_encode( $aCat ) . ', total_categories: ' . $total_categories . '}';
break; break;
case 'updatePageSize': case 'updatePageSize':
G::LoadClass('configuration'); G::LoadClass( 'configuration' );
$c = new Configurations(); $c = new Configurations();
$arr['pageSize'] = $_REQUEST['size']; $arr['pageSize'] = $_REQUEST['size'];
$arr['dateSave'] = date('Y-m-d H:i:s'); $arr['dateSave'] = date( 'Y-m-d H:i:s' );
$config = Array(); $config = Array ();
$config[] = $arr; $config[] = $arr;
$c->aConfig = $config; $c->aConfig = $config;
$c->saveConfig('processCategoryList', 'pageSize','',$_SESSION['USER_LOGGED']); $c->saveConfig( 'processCategoryList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
echo '{success: true}'; echo '{success: true}';
break; break;
case 'checkCategoryName': case 'checkCategoryName':
require_once 'classes/model/ProcessCategory.php'; require_once 'classes/model/ProcessCategory.php';
$catName = $_REQUEST['cat_name']; $catName = $_REQUEST['cat_name'];
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_NAME); $oCriteria->addSelectColumn( ProcessCategoryPeer::CATEGORY_NAME );
$oCriteria->add(ProcessCategoryPeer::CATEGORY_NAME, $catName); $oCriteria->add( ProcessCategoryPeer::CATEGORY_NAME, $catName );
$oDataset = ProcessCategoryPeer::doSelectRS($oCriteria); $oDataset = ProcessCategoryPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next(); $oDataset->next();
$row = $oDataset->getRow(); $row = $oDataset->getRow();
$response = isset($row['CATEGORY_NAME'])? 'false' : 'true' ; $response = isset( $row['CATEGORY_NAME'] ) ? 'false' : 'true';
echo $response; echo $response;
break; break;
case 'saveNewCategory': case 'saveNewCategory':
try{ try {
require_once 'classes/model/ProcessCategory.php'; require_once 'classes/model/ProcessCategory.php';
$catName = trim($_REQUEST['category']); $catName = trim( $_REQUEST['category'] );
$pcat = new ProcessCategory(); $pcat = new ProcessCategory();
$pcat->setNew(true); $pcat->setNew( true );
$pcat->setCategoryUid(G::GenerateUniqueID()); $pcat->setCategoryUid( G::GenerateUniqueID() );
$pcat->setCategoryName($catName); $pcat->setCategoryName( $catName );
$pcat->save(); $pcat->save();
echo '{success: true}'; echo '{success: true}';
}catch(Exception $ex){ } catch (Exception $ex) {
echo '{success: false, error: '.$ex->getMessage().'}'; echo '{success: false, error: ' . $ex->getMessage() . '}';
} }
break; break;
case 'checkEditCategoryName': case 'checkEditCategoryName':
require_once 'classes/model/ProcessCategory.php'; require_once 'classes/model/ProcessCategory.php';
$catUID = $_REQUEST['cat_uid']; $catUID = $_REQUEST['cat_uid'];
$catName = $_REQUEST['cat_name']; $catName = $_REQUEST['cat_name'];
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_NAME); $oCriteria->addSelectColumn( ProcessCategoryPeer::CATEGORY_NAME );
$oCriteria->add(ProcessCategoryPeer::CATEGORY_NAME, $catName); $oCriteria->add( ProcessCategoryPeer::CATEGORY_NAME, $catName );
$oCriteria->add(ProcessCategoryPeer::CATEGORY_UID,$catUID,Criteria::NOT_EQUAL); $oCriteria->add( ProcessCategoryPeer::CATEGORY_UID, $catUID, Criteria::NOT_EQUAL );
$oDataset = ProcessCategoryPeer::doSelectRS($oCriteria); $oDataset = ProcessCategoryPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next(); $oDataset->next();
$row = $oDataset->getRow(); $row = $oDataset->getRow();
$response = isset($row['CATEGORY_NAME'])? 'false' : 'true' ; $response = isset( $row['CATEGORY_NAME'] ) ? 'false' : 'true';
echo $response; echo $response;
break; break;
case 'updateCategory': case 'updateCategory':
try{ try {
require_once 'classes/model/ProcessCategory.php'; require_once 'classes/model/ProcessCategory.php';
$catUID = $_REQUEST['cat_uid']; $catUID = $_REQUEST['cat_uid'];
$catName = trim($_REQUEST['category']); $catName = trim( $_REQUEST['category'] );
$pcat = new ProcessCategory(); $pcat = new ProcessCategory();
$pcat->setNew(false); $pcat->setNew( false );
$pcat->setCategoryUid($catUID); $pcat->setCategoryUid( $catUID );
$pcat->setCategoryName($catName); $pcat->setCategoryName( $catName );
$pcat->save(); $pcat->save();
echo '{success: true}'; echo '{success: true}';
}catch(Exception $ex){ } catch (Exception $ex) {
echo '{success: false, error: '.$ex->getMessage().'}'; echo '{success: false, error: ' . $ex->getMessage() . '}';
} }
break; break;
case 'canDeleteCategory': case 'canDeleteCategory':
require_once 'classes/model/Process.php'; require_once 'classes/model/Process.php';
$proc = new Process(); $proc = new Process();
$aProcess = $proc->getAllProcessesByCategory(); $aProcess = $proc->getAllProcessesByCategory();
$catUID = $_REQUEST['CAT_UID']; $catUID = $_REQUEST['CAT_UID'];
$response = isset($aProcess[$catUID])? 'false' : 'true'; $response = isset( $aProcess[$catUID] ) ? 'false' : 'true';
echo $response; echo $response;
break; break;
case 'deleteCategory': case 'deleteCategory':
try{ try {
require_once 'classes/model/ProcessCategory.php'; require_once 'classes/model/ProcessCategory.php';
$catUID = $_REQUEST['cat_uid']; $catUID = $_REQUEST['cat_uid'];
$cat = new ProcessCategory(); $cat = new ProcessCategory();
$cat->setCategoryUid($catUID); $cat->setCategoryUid( $catUID );
$cat->delete(); $cat->delete();
echo '{success: true}'; echo '{success: true}';
}catch(Exception $ex){ } catch (Exception $ex) {
echo '{success: false, error: '.$ex->getMessage().'}'; echo '{success: false, error: ' . $ex->getMessage() . '}';
} }
break; break;
default: echo 'default'; default:
} echo 'default';
}
} }

View File

@@ -1,36 +0,0 @@
<?php
/**
* processes_DownloadFile.php
*
* 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.
*/
//add more security, and catch any error or exception
$sFileName = $_GET['p'] . '.xpdl';
$file = PATH_DOCUMENT . 'output' . PATH_SEP . $sFileName . 'tpm';
$filex = PATH_DOCUMENT . 'output' . PATH_SEP . $sFileName;
if (file_exists( $file )) {
rename( $file, $filex );
}
$realPath = PATH_DOCUMENT . 'output' . PATH_SEP . $sFileName;
G::streamFile( $realPath, true );

View File

@@ -1,132 +0,0 @@
<?php
/**
* processes_ImportFileExisting.php
*
* 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.
*/
try {
//load the variables
G::LoadClass( 'xpdl' );
$oProcess = new Xpdl();
if (! isset( $_POST['form']['IMPORT_OPTION'] )) {
throw (new Exception( 'Please select an option before to continue' ));
}
if (! isset( $_POST['form']['GROUP_IMPORT_OPTION'] )) {
$action = "none";
} else {
$action = $_POST['form']['GROUP_IMPORT_OPTION'];
}
$option = $_POST['form']['IMPORT_OPTION'];
$filename = $_POST['form']['PRO_FILENAME'];
$ObjUid = $_POST['form']['OBJ_UID'];
$path = PATH_DOCUMENT . 'input' . PATH_SEP;
$oData = $oProcess->getProcessDataXpdl( $path . $filename );
$Fields['PRO_FILENAME'] = $filename;
$sProUid = $oData->process['PRO_UID'];
$oData->process['PRO_UID_OLD'] = $sProUid;
if (! isset( $oData->tasks ))
$oData->tasks = array ();
$tasks = $oData->tasks;
// code added by gustavo cruz gustavo-at-colosa-dot-com
// evaluate actions or import options
switch ($action) {
case "none":
$groupsDuplicated = $oProcess->checkExistingGroups( $oData->groupwfs );
break;
case "rename":
$oData->groupwfs = $oProcess->renameExistingGroups( $oData->groupwfs );
$groupsDuplicated = $oProcess->checkExistingGroups( $oData->groupwfs );
break;
case "merge":
$oBaseGroup = $oData->groupwfs;
$oNewGroup = $oProcess->mergeExistingGroups( $oData->groupwfs );
$oData->groupwfs = $oNewGroup;
$oData->taskusers = $oProcess->mergeExistingUsers( $oBaseGroup, $oNewGroup, $oData->taskusers );
break;
default:
$groupsDuplicated = $oProcess->checkExistingGroups( $oData->groupwfs );
break;
}
// if there are duplicated groups render the group importing options
if ($groupsDuplicated > 0) {
$Fields['PRO_FILENAME'] = $filename;
$Fields['PRO_PATH'] = $path;
$Fields['IMPORT_OPTION'] = $option;
$Fields['OBJ_UID'] = $ObjUid;
$G_MAIN_MENU = 'processmaker';
$G_ID_MENU_SELECTED = 'PROCESSES';
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'processes/processes_ValidatingGroups', '', $Fields, 'processes_ImportExisting' );
G::RenderPage( 'publish', "blank" );
die();
}
//end added code
//Update the current Process, overwriting all tasks and steps
if ($option == 1) {
$oProcess->updateProcessFromData( $oData, $path . $filename );
if (file_exists( PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid )) {
$oDirectory = dir( PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid );
while ($sObjectName = $oDirectory->read()) {
if (($sObjectName != '.') && ($sObjectName != '..')) {
unlink( PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid . PATH_SEP . $sObjectName );
}
}
$oDirectory->close();
}
$sNewProUid = $sProUid;
}
//Disable current Process and create a new version of the Process
if ($option == 2) {
$oProcess->disablePreviousProcesses( $sProUid );
$sNewProUid = $oProcess->getUnusedProcessGUID();
$oProcess->setProcessGuid( $oData, $sNewProUid );
$oProcess->setProcessParent( $oData, $sProUid );
$oData->process['PRO_TITLE'] = "New - " . $oData->process['PRO_TITLE'] . ' - ' . date( 'M d, H:i' );
$oProcess->renewAll( $oData );
$oProcess->createProcessFromDataXpdl( $oData, $tasks );
}
//Create a completely new Process without change the current Process
if ($option == 3) {
//krumo ($oData); die;
$sNewProUid = $oProcess->getUnusedProcessGUID();
$oProcess->setProcessGuid( $oData, $sNewProUid );
$oData->process['PRO_TITLE'] = "Copy of - " . $oData->process['PRO_TITLE'] . ' - ' . date( 'M d, H:i' );
$oProcess->renewAll( $oData );
$oProcess->createProcessFromDataXpdl( $oData, $tasks );
}
G::header( 'Location: processes_Map?PRO_UID=' . $sNewProUid );
} catch (Exception $e) {
$G_PUBLISH = new Publisher();
$aMessage['MESSAGE'] = $e->getMessage();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
G::RenderPage( 'publish', "blank" );
}

View File

@@ -1,105 +0,0 @@
<?php
/**
* processes_ImportFile.php
*
* 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.
*/
try {
//load the variables
G::LoadClass( 'xpdl' );
$oProcess = new Xpdl();
if (isset( $_POST['form']['PRO_FILENAME'] )) {
$path = $_POST['form']['PRO_PATH'];
$filename = $_POST['form']['PRO_FILENAME'];
$action = $_POST['form']['GROUP_IMPORT_OPTION'];
} else {
//save the file, if it's not saved
if ($_FILES['form']['error']['PROCESS_FILENAME'] == 0) {
$filename = $_FILES['form']['name']['PROCESS_FILENAME'];
$path = PATH_DOCUMENT . 'input' . PATH_SEP;
$tempName = $_FILES['form']['tmp_name']['PROCESS_FILENAME'];
$action = "none";
G::uploadFile( $tempName, $path, $filename );
}
}
$oData = $oProcess->getProcessDataXpdl( $path . $filename );
$Fields['PRO_FILENAME'] = $filename;
$Fields['IMPORT_OPTION'] = 2;
$sProUid = $oData->process['PRO_UID'];
$oData->process['PRO_UID_OLD'] = $sProUid;
if ($oProcess->processExists( $sProUid )) {
$G_MAIN_MENU = 'processmaker';
$G_ID_MENU_SELECTED = 'PROCESSES';
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'processes/processes_ImportExistingXpdl', '', $Fields, 'processes_ImportExistingXpdl' );
G::RenderPage( 'publish', "blank" );
die();
}
// code added by gustavo cruz gustavo-at-colosa-dot-com
// evaluate actions or import options
switch ($action) {
case "none":
$groupsDuplicated = $oProcess->checkExistingGroups( $oData->groupwfs );
break;
case "rename":
$oData->groupwfs = $oProcess->renameExistingGroups( $oData->groupwfs );
$groupsDuplicated = $oProcess->checkExistingGroups( $oData->groupwfs );
break;
case "merge":
$oBaseGroup = $oData->groupwfs;
$oNewGroup = $oProcess->mergeExistingGroups( $oData->groupwfs );
$oData->groupwfs = $oNewGroup;
$oData->taskusers = $oProcess->mergeExistingUsers( $oBaseGroup, $oNewGroup, $oData->taskusers );
break;
default:
$groupsDuplicated = $oProcess->checkExistingGroups( $oData->groupwfs );
break;
}
// if there are duplicated groups render the group importing options
if ($groupsDuplicated > 0) {
$Fields['PRO_FILENAME'] = $filename;
$Fields['PRO_PATH'] = $path;
$Fields['IMPORT_OPTION'] = 2;
$G_MAIN_MENU = 'processmaker';
$G_ID_MENU_SELECTED = 'PROCESSES';
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'processes/processes_ValidatingGroups', '', $Fields, 'processes_ImportFile' );
G::RenderPage( 'publish', "blank" );
die();
}
// end added code
if (! isset( $oData->tasks ))
$oData->tasks = array ();
$tasks = $oData->tasks;
$oProcess->createProcessFromDataXpdl( $oData, $tasks );
G::header( 'Location: processes_Map?PRO_UID=' . $sProUid );
} catch (Exception $e) {
$G_PUBLISH = new Publisher();
$aMessage['MESSAGE'] = $e->getMessage();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
G::RenderPage( 'publish', "blank" );
}

View File

@@ -61,7 +61,7 @@ $result->catchMessage = "";
if ($action == "uploadFileNewProcess") { if ($action == "uploadFileNewProcess") {
try { try {
//type of file, bpmn, xpdl, or pm //type of file: only pm
$processFileType = $_REQUEST["processFileType"]; $processFileType = $_REQUEST["processFileType"];
$oProcess = new stdClass(); $oProcess = new stdClass();
$oData = new stdClass(); $oData = new stdClass();
@@ -71,13 +71,12 @@ if ($action == "uploadFileNewProcess") {
if (isset( $_FILES['form']['type']['PROCESS_FILENAME'] )) { if (isset( $_FILES['form']['type']['PROCESS_FILENAME'] )) {
$allowedExtensions = array ($processFileType $allowedExtensions = array ($processFileType
); );
$allowedExtensions = array ('xpdl','bpmn','pm' $allowedExtensions = array ('pm');
);
if (! in_array( end( explode( ".", $_FILES['form']['name']['PROCESS_FILENAME'] ) ), $allowedExtensions )) { if (! in_array( end( explode( ".", $_FILES['form']['name']['PROCESS_FILENAME'] ) ), $allowedExtensions )) {
throw new Exception( G::LoadTranslation( "ID_FILE_UPLOAD_INCORRECT_EXTENSION" ) ); throw new Exception( G::LoadTranslation( "ID_FILE_UPLOAD_INCORRECT_EXTENSION" ) );
} }
} }
if ($processFileType != "pm" && $processFileType != "xpdl" && $processFileType != "bpmn") { if ($processFileType != "pm") {
throw new Exception( G::LoadTranslation( "ID_ERROR_UPLOAD_FILE_CONTACT_ADMINISTRATOR" ) ); throw new Exception( G::LoadTranslation( "ID_ERROR_UPLOAD_FILE_CONTACT_ADMINISTRATOR" ) );
} }
@@ -86,21 +85,16 @@ if ($action == "uploadFileNewProcess") {
$oProcess = new Processes(); $oProcess = new Processes();
} }
if ($processFileType == "xpdl") {
G::LoadClass( 'xpdl' );
$oProcess = new Xpdl();
}
$result->success = true; $result->success = true;
$result->ExistProcessInDatabase = ""; //"" -Default $result->ExistProcessInDatabase = ""; //"" -Default
//0 -Dont exist process //0 -Dont exist process
//1 -exist process //1 -exist process
$result->ExistGroupsInDatabase = ""; //"" -Default $result->ExistGroupsInDatabase = ""; //"" -Default
//0 -Dont exist process //0 -Dont exist process
//1 -exist process //1 -exist process
$optionGroupExistInDatabase = isset( $_REQUEST["optionGroupExistInDatabase"] ) ? $_REQUEST["optionGroupExistInDatabase"] : null; $optionGroupExistInDatabase = isset( $_REQUEST["optionGroupExistInDatabase"] ) ? $_REQUEST["optionGroupExistInDatabase"] : null;
//!Upload file //!Upload file
if (! is_null( $optionGroupExistInDatabase )) { if (! is_null( $optionGroupExistInDatabase )) {
$filename = $_REQUEST["PRO_FILENAME"]; $filename = $_REQUEST["PRO_FILENAME"];
$path = PATH_DOCUMENT . 'input' . PATH_SEP; $path = PATH_DOCUMENT . 'input' . PATH_SEP;
@@ -109,12 +103,12 @@ if ($action == "uploadFileNewProcess") {
$filename = $_FILES['form']['name']['PROCESS_FILENAME']; $filename = $_FILES['form']['name']['PROCESS_FILENAME'];
$path = PATH_DOCUMENT . 'input' . PATH_SEP; $path = PATH_DOCUMENT . 'input' . PATH_SEP;
$tempName = $_FILES['form']['tmp_name']['PROCESS_FILENAME']; $tempName = $_FILES['form']['tmp_name']['PROCESS_FILENAME'];
//$action = "none"; //$action = "none";
G::uploadFile( $tempName, $path, $filename ); G::uploadFile( $tempName, $path, $filename );
} }
} }
//importing a bpmn diagram, using external class to do it. //importing a bpmn diagram, using external class to do it.
if ($processFileType == "bpmn") { if ($processFileType == "bpmn") {
G::LoadClass( 'bpmnExport' ); G::LoadClass( 'bpmnExport' );
$bpmn = new bpmnExport(); $bpmn = new bpmnExport();
@@ -122,16 +116,14 @@ if ($action == "uploadFileNewProcess") {
die(); die();
} }
//if file is a .pm or .xpdl file continues normally the importing //if file is a .pm file continues normally the importing
if ($processFileType == "pm") { if ($processFileType == "pm") {
$oData = $oProcess->getProcessData( $path . $filename ); $oData = $oProcess->getProcessData( $path . $filename );
} else {
$oData = $oProcess->getProcessDataXpdl( $path . $filename );
} }
reservedWordsSqlValidate( $oData ); reservedWordsSqlValidate( $oData );
//!Upload file //!Upload file
$Fields['PRO_FILENAME'] = $filename; $Fields['PRO_FILENAME'] = $filename;
$Fields['IMPORT_OPTION'] = 2; $Fields['IMPORT_OPTION'] = 2;
@@ -145,7 +137,7 @@ if ($action == "uploadFileNewProcess") {
$result->ExistProcessInDatabase = 0; $result->ExistProcessInDatabase = 0;
} }
//!respect of the groups //!respect of the groups
$result->ExistGroupsInDatabase = 1; $result->ExistGroupsInDatabase = 1;
$result->groupBeforeAccion = $action; $result->groupBeforeAccion = $action;
if (! is_null( $optionGroupExistInDatabase )) { if (! is_null( $optionGroupExistInDatabase )) {
@@ -163,21 +155,16 @@ if ($action == "uploadFileNewProcess") {
$result->ExistGroupsInDatabase = 0; $result->ExistGroupsInDatabase = 0;
} }
} }
//!respect of the groups //!respect of the groups
if ($result->ExistProcessInDatabase == 0 && $result->ExistGroupsInDatabase == 0) { if ($result->ExistProcessInDatabase == 0 && $result->ExistGroupsInDatabase == 0) {
if ($processFileType == "pm") { if ($processFileType == "pm") {
$oProcess->createProcessFromData( $oData, $path . $filename ); $oProcess->createProcessFromData( $oData, $path . $filename );
} else {
if (! isset( $oData->tasks ))
$oData->tasks = array ();
$tasks = $oData->tasks;
$oProcess->createProcessFromDataXpdl( $oData, $tasks );
} }
} }
//!data ouput //!data ouput
$result->sNewProUid = $sProUid; $result->sNewProUid = $sProUid;
$result->proFileName = $Fields['PRO_FILENAME']; $result->proFileName = $Fields['PRO_FILENAME'];
} catch (Exception $e) { } catch (Exception $e) {
@@ -193,34 +180,29 @@ if ($action == "uploadFileNewProcessExist") {
$filename = $_REQUEST["PRO_FILENAME"]; $filename = $_REQUEST["PRO_FILENAME"];
$processFileType = $_REQUEST["processFileType"]; $processFileType = $_REQUEST["processFileType"];
$result->ExistGroupsInDatabase = ""; //"" -Default $result->ExistGroupsInDatabase = ""; //"" -Default
//0 -Dont exist process //0 -Dont exist process
//1 -exist process //1 -exist process
$optionGroupExistInDatabase = isset( $_REQUEST["optionGroupExistInDatabase"] ) ? $_REQUEST["optionGroupExistInDatabase"] : null; $optionGroupExistInDatabase = isset( $_REQUEST["optionGroupExistInDatabase"] ) ? $_REQUEST["optionGroupExistInDatabase"] : null;
$sNewProUid = ""; $sNewProUid = "";
$oProcess = new stdClass(); $oProcess = new stdClass();
if ($processFileType != "pm" && $processFileType != "xpdl") { if ($processFileType != "pm") {
throw new Exception( G::LoadTranslation( "ID_ERROR_UPLOAD_FILE_CONTACT_ADMINISTRATOR" ) ); throw new Exception( G::LoadTranslation( "ID_ERROR_UPLOAD_FILE_CONTACT_ADMINISTRATOR" ) );
} }
//load the variables //load the variables
if ($processFileType == "pm") { if ($processFileType == "pm") {
G::LoadClass( 'processes' ); G::LoadClass( 'processes' );
$oProcess = new Processes(); $oProcess = new Processes();
} else {
G::LoadClass( 'xpdl' );
$oProcess = new Xpdl();
} }
$path = PATH_DOCUMENT . 'input' . PATH_SEP; $path = PATH_DOCUMENT . 'input' . PATH_SEP;
if ($processFileType == "pm") { if ($processFileType == "pm") {
$oData = $oProcess->getProcessData( $path . $filename ); $oData = $oProcess->getProcessData( $path . $filename );
} else {
$oData = $oProcess->getProcessDataXpdl( $path . $filename );
} }
reservedWordsSqlValidate( $oData ); reservedWordsSqlValidate( $oData );
@@ -248,7 +230,7 @@ if ($action == "uploadFileNewProcessExist") {
} }
if ($result->ExistGroupsInDatabase == 0) { if ($result->ExistGroupsInDatabase == 0) {
//Update the current Process, overwriting all tasks and steps //Update the current Process, overwriting all tasks and steps
if ($option == 1) { if ($option == 1) {
$oProcess->updateProcessFromData( $oData, $path . $filename ); $oProcess->updateProcessFromData( $oData, $path . $filename );
if (file_exists( PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid )) { if (file_exists( PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid )) {
@@ -263,7 +245,7 @@ if ($action == "uploadFileNewProcessExist") {
$sNewProUid = $sProUid; $sNewProUid = $sProUid;
} }
//Disable current Process and create a new version of the Process //Disable current Process and create a new version of the Process
if ($option == 2) { if ($option == 2) {
$oProcess->disablePreviousProcesses( $sProUid ); $oProcess->disablePreviousProcesses( $sProUid );
$sNewProUid = $oProcess->getUnusedProcessGUID(); $sNewProUid = $oProcess->getUnusedProcessGUID();
@@ -274,18 +256,12 @@ if ($action == "uploadFileNewProcessExist") {
if ($processFileType == "pm") { if ($processFileType == "pm") {
$oProcess->createProcessFromData( $oData, $path . $filename ); $oProcess->createProcessFromData( $oData, $path . $filename );
} else {
if (! isset( $oData->tasks )) {
$oData->tasks = array ();
}
$tasks = $oData->tasks;
$oProcess->createProcessFromDataXpdl( $oData, $tasks );
} }
} }
//Create a completely new Process without change the current Process //Create a completely new Process without change the current Process
if ($option == 3) { if ($option == 3) {
//krumo ($oData); die; //krumo ($oData); die;
$sNewProUid = $oProcess->getUnusedProcessGUID(); $sNewProUid = $oProcess->getUnusedProcessGUID();
$oProcess->setProcessGuid( $oData, $sNewProUid ); $oProcess->setProcessGuid( $oData, $sNewProUid );
$oData->process['PRO_TITLE'] = "Copy of - " . $oData->process['PRO_TITLE'] . ' - ' . date( 'M d, H:i' ); $oData->process['PRO_TITLE'] = "Copy of - " . $oData->process['PRO_TITLE'] . ' - ' . date( 'M d, H:i' );
@@ -293,24 +269,18 @@ if ($action == "uploadFileNewProcessExist") {
if ($processFileType == "pm") { if ($processFileType == "pm") {
$oProcess->createProcessFromData( $oData, $path . $filename ); $oProcess->createProcessFromData( $oData, $path . $filename );
} else {
if (! isset( $oData->tasks )) {
$oData->tasks = array ();
}
$tasks = $oData->tasks;
$oProcess->createProcessFromDataXpdl( $oData, $tasks );
} }
} }
} }
//!data ouput //!data ouput
$result->fileName = $filename; $result->fileName = $filename;
$result->importOption = $option; $result->importOption = $option;
$result->sNewProUid = $sNewProUid; $result->sNewProUid = $sNewProUid;
$result->success = true; $result->success = true;
$result->ExistGroupsInDatabase = $result->ExistGroupsInDatabase; $result->ExistGroupsInDatabase = $result->ExistGroupsInDatabase;
$result->groupBeforeAccion = $action; $result->groupBeforeAccion = $action;
//!data ouput //!data ouput
} catch (Exception $e) { } catch (Exception $e) {
$result->response = $e->getMessage(); $result->response = $e->getMessage();
$result->success = true; $result->success = true;
@@ -318,5 +288,5 @@ if ($action == "uploadFileNewProcessExist") {
} }
echo G::json_encode( $result ); echo G::json_encode( $result );
exit(); exit();

View File

@@ -1,201 +0,0 @@
<?php
function addNodox ($obj, $padre, $indice, $contenido = '', $atributos = '')
{
if (is_object( $padre )) {
if ($contenido == '') {
$nodo = $obj->createElement( $indice );
} else {
$nodo = $obj->createElement( $indice, $contenido );
}
$padre->appendChild( $nodo );
} else {
if ($contenido == '') {
$nodo = $obj->createElement( $indice );
} else {
$nodo = $obj->createElement( $indice, $contenido );
}
$obj->appendChild( $nodo );
}
if (is_array( $atributos )) {
foreach ($atributos as $key => $value) {
$atributo = $obj->createAttribute( $key );
$nodo->appendChild( $atributo );
$texto = $obj->createTextNode( $value );
$atributo->appendChild( $texto );
}
}
return $nodo;
}
function derivationRules ($aRoute, $doc, $nodo_derivationrule)
{
$tam = count( $aRoute );
$c = 0;
switch ($aRoute[$c]['ROU_TYPE']) {
case 'SEQUENTIAL':
$nodo_routeType = addNodox( $doc, $nodo_derivationrule, 'Sequential', '', '' );
$nodo_nexttask = addNodox( $doc, $nodo_routeType, 'NextTask', '', '' );
if ($aRoute[$c]['ROU_NEXT_TASK'] != - 1) {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'TaskRef', '', array ('TaskId' => 'ID' . $aRoute[$c]['ROU_NEXT_TASK']
) );
} else {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'End', '', '' );
}
break;
case 'EVALUATE':
$nodo_routeType = addNodox( $doc, $nodo_derivationrule, 'Evaluations', '', '' );
while ($c < $tam) {
$nodo_evaluation = addNodox( $doc, $nodo_routeType, 'Evaluation', '', array ('Condition' => $aRoute[$c]['ROU_CONDITION']
) );
$nodo_nexttask = addNodox( $doc, $nodo_evaluation, 'NextTask', '', '' );
if ($aRoute[$c]['ROU_NEXT_TASK'] != - 1) {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'TaskRef', '', array ('TaskId' => 'ID' . $aRoute[$c]['ROU_NEXT_TASK']
) );
} else {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'End', '', '' );
}
$c ++;
}
break;
case 'SELECT':
$nodo_routeType = addNodox( $doc, $nodo_derivationrule, 'Selections', '', '' );
while ($c < $tam) {
$nodo_selection = addNodox( $doc, $nodo_routeType, 'Selection', '', array ('Description' => $aRoute[$c]['ROU_CONDITION']
) );
$nodo_nexttask = addNodox( $doc, $nodo_selection, 'NextTask', '', '' );
if ($aRoute[$c]['ROU_NEXT_TASK'] != - 1) {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'TaskRef', '', array ('TaskId' => 'ID' . $aRoute[$c]['ROU_NEXT_TASK']
) );
} else {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'End', '', '' );
}
$c ++;
}
break;
case 'PARALLEL':
$nodo_routeType = addNodox( $doc, $nodo_derivationrule, 'ParallelForks', '', '' );
while ($c < $tam) {
$nodo_parallelfork = addNodox( $doc, $nodo_routeType, 'ParallelFork', '', '' );
$nodo_nexttask = addNodox( $doc, $nodo_parallelfork, 'NextTask', '', '' );
if ($aRoute[$c]['ROU_NEXT_TASK'] != - 1) {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'TaskRef', '', array ('TaskId' => 'ID' . $aRoute[$c]['ROU_NEXT_TASK']
) );
} else {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'End', '', '' );
}
$c ++;
}
break;
case 'PARALLEL-BY-EVALUATION':
$nodo_routeType = addNodox( $doc, $nodo_derivationrule, 'ParallelForksByEvaluation', '', '' );
while ($c < $tam) {
$nodo_evaluation = addNodox( $doc, $nodo_routeType, 'Evaluation', '', array ('Condition' => $aRoute[$c]['ROU_CONDITION']
) );
$nodo_nexttask = addNodox( $doc, $nodo_evaluation, 'NextTask', '', '' );
if ($aRoute[$c]['ROU_NEXT_TASK'] != - 1) {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'TaskRef', '', array ('TaskId' => 'ID' . $aRoute[$c]['ROU_NEXT_TASK']
) );
} else {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'End', '', '' );
}
$c ++;
}
break;
case 'SEC-JOIN':
$nodo_routeType = addNodox( $doc, $nodo_derivationrule, 'ParallelJoin', '', '' );
$nodo_nexttask = addNodox( $doc, $nodo_routeType, 'NextTask', '', '' );
if ($aRoute[$c]['ROU_NEXT_TASK'] != - 1) {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'TaskRef', '', array ('TaskId' => 'ID' . $aRoute[$c]['ROU_NEXT_TASK']
) );
} else {
$nodo_taskref = addNodox( $doc, $nodo_nexttask, 'End', '', '' );
}
break;
}
}
/**
* **-_--__---___----___---__--_-***
*/
G::LoadClass( 'tasks' );
require_once 'classes/model/Process.php';
$doc = new DOMDocument( '1.0', 'UTF-8' );
$nodo_padre = addNodox( $doc, '', 'Processes', '', array ('xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance','xsi:noNamespaceSchemaLocation' => 'ColosaSchema.xsd'
) );
$aProcesses = array ();
$oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn( ProcessPeer::PRO_UID );
//$oCriteria->add(ProcessPeer::PRO_STATUS, 'DISABLED', Criteria::NOT_EQUAL);
//$oCriteria->add(ProcessPeer::PRO_UID, '946679494980c3d0ba0814088444708');
$oDataset = ProcessPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next();
$oProcess = new Process();
while ($aRow = $oDataset->getRow()) {
$aProcess = $oProcess->load( $aRow['PRO_UID'] );
$nodo_process = addNodox( $doc, $nodo_padre, 'Process', '', array ('Title' => $aProcess['PRO_TITLE'],'Description' => $aProcess['PRO_DESCRIPTION']
) );
$nodo_tasks = addNodox( $doc, $nodo_process, 'Tasks', '', '' );
$oTask = new Tasks();
$aTasks = $oTask->getAllTasks( $aProcess['PRO_UID'] );
foreach ($aTasks as $key => $value) {
//print_r($value); echo "<br>";
$aRoute = $oTask->getRoute( $aProcess['PRO_UID'], $value['TAS_UID'] );
//print_r($aRoute[0]['ROU_UID']); echo "<hr>";
/*foreach($aRoute as $k => $v)
echo $k."-->".$v."<br>";
*/
if ($value['TAS_TYPE'] == 'NORMAL') {
$ini = ($value['TAS_START'] == 'TRUE') ? 'true' : 'false';
$nodo_task = addNodox( $doc, $nodo_tasks, 'Task', '', array ('Title' => $value['TAS_TITLE'],'Description' => $value['TAS_DESCRIPTION'],'Id' => 'ID' . $value['TAS_UID'],'StartingTask' => $ini
) );
$nodo_coordinates = addNodox( $doc, $nodo_task, 'Coordinates', '', array ('XCoordinate' => $value['TAS_POSX'],'YCoordinate' => $value['TAS_POSY']
) );
$nodo_derivationrule = addNodox( $doc, $nodo_task, 'DerivationRule', '', '' );
derivationRules( $aRoute, $doc, $nodo_derivationrule );
$nodo_assignmentrules = addNodox( $doc, $nodo_task, 'AssignmentRules', '', '' );
$nodo_cyclicalassignment = addNodox( $doc, $nodo_assignmentrules, 'CyclicalAssignment', '', '' );
$nodo_timingcontrol = addNodox( $doc, $nodo_task, 'TimingControl', '', array ('TaskDuration' => $value['TAS_DURATION']
) );
$nodo_permissions = addNodox( $doc, $nodo_task, 'Permissions', '', '' );
$nodo_caselabels = addNodox( $doc, $nodo_task, 'CaseLabels', '', '' );
$nodo_notifications = addNodox( $doc, $nodo_task, 'Notifications', '', '' );
} else {
require_once ("classes/model/SubProcess.php");
$oCriteria = new Criteria( 'workflow' );
$oCriteria->add( SubProcessPeer::PRO_PARENT, $value['PRO_UID'] );
$oCriteria->add( SubProcessPeer::TAS_PARENT, $value['TAS_UID'] );
$oDataset = SubProcessPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next();
$aRow = $oDataset->getRow();
$nodo_task = addNodox( $doc, $nodo_tasks, 'SubProcess', '', array ('Title' => $value['TAS_TITLE'],'Description' => $value['TAS_DESCRIPTION'],'Id' => 'ID' . $value['TAS_UID'],'ProcessRef' => $aRow['PRO_UID']
) );
$nodo_coordinates = addNodox( $doc, $nodo_task, 'Coordinates', '', array ('XCoordinate' => $value['TAS_POSX'],'YCoordinate' => $value['TAS_POSY']
) );
$nodo_derivationrule = addNodox( $doc, $nodo_task, 'DerivationRule', '', '' );
derivationRules( $aRoute, $doc, $nodo_derivationrule );
}
}
$oDataset->next();
}
//die;
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
$doc->save( PATH_METHODS . 'services/test_xpdl.xml' );
echo "xml for xpdl creado!!!<br>";

View File

@@ -17,6 +17,7 @@ ul#pm_menu {
padding: 0 0 0 13px; padding: 0 0 0 13px;
} }
ul#pm_menu li { float: right;}
a.options-tool { a.options-tool {
color: #FFFFFF; color: #FFFFFF;

View File

@@ -236,7 +236,10 @@ class SkinEngine
if (defined('PATH_CUSTOM_SKINS') && is_dir(PATH_CUSTOM_SKINS . $this->mainSkin)) { if (defined('PATH_CUSTOM_SKINS') && is_dir(PATH_CUSTOM_SKINS . $this->mainSkin)) {
$templateFile = PATH_CUSTOM_SKINS . $this->mainSkin . PATH_SEP .'extJsInitLoad.html'; $templateFile = PATH_CUSTOM_SKINS . $this->mainSkin . PATH_SEP .'extJsInitLoad.html';
} }
//Skin uxs - simplefied //Skin uxs - simplified
if (!isset($_SESSION['user_experience'])) {
$_SESSION['user_experience'] = 'NORMAL';
}
if ($_SESSION['user_experience'] != 'NORMAL') { if ($_SESSION['user_experience'] != 'NORMAL') {
$templateFile = (is_dir(PATH_CUSTOM_SKINS . 'uxs')) ? PATH_CUSTOM_SKINS . 'simplified' . PATH_SEP . 'extJsInitLoad.html' : $templateFile; $templateFile = (is_dir(PATH_CUSTOM_SKINS . 'uxs')) ? PATH_CUSTOM_SKINS . 'simplified' . PATH_SEP . 'extJsInitLoad.html' : $templateFile;
} }

View File

@@ -1,321 +0,0 @@
ArrowLine=function(){
this.lineColor=new Color(0,0,0);
this.stroke=1;
this.canvas=null;
this.workflow=null;
this.html=null;
this.graphics=null;
//this.id=UUID.create();
this.startX=30;
this.startY=30;
this.endX=100;
this.endY=100;
this.zOrder=Line.ZOrderBaseIndex;
this.setSelectable(true);
this.setDeleteable(true);
this.arrowWidth=8;
this.arrowLength=20;
this.lineWidth=2;
};
ArrowLine.prototype=new Line();
ArrowLine.prototype.type="ArrowLine";
ArrowLine.prototype.paint=function(){
if(this.graphics===null){
this.graphics=new jsGraphics(this.id);
}
else{
this.graphics.clear();
}
//this.graphics.setStroke(this.stroke);
this.graphics.setStroke( Stroke.DOTTED );
this.graphics.setColor(this.lineColor.getHTMLStyle());
var endY=this.getLength();
var _3e2a=[0 ,0 ,endY ];
var _3e2b=[-this.lineWidth,+this.lineWidth,-(this.lineWidth)];
var _3e2c=this.getAngle()*Math.PI/180;
var rotX=[];
var rotY=[];
for(var i=0;i<_3e2a.length;i++){
rotX[i]=this.startX+_3e2a[i]*Math.cos(_3e2c)-_3e2b[i]*Math.sin(_3e2c);
rotY[i]=this.startY+_3e2a[i]*Math.sin(_3e2c)+_3e2b[i]*Math.cos(_3e2c);
}
this.graphics.drawPolyLine(rotX,rotY);
this.graphics.paint();
};
DottedConnection=function(){
ArrowLine.call(this);
this.sourcePort=null;
this.targetPort=null;
this.lineSegments=[];
this.setColor(new Color(0,0,115));
this.setLineWidth(1);
};
DottedConnection.prototype=new ArrowLine();
DottedConnection.prototype.type="DottedConnection";
DottedConnection.prototype.disconnect=function(){
if(this.sourcePort!==null){
this.sourcePort.detachMoveListener(this);
}
if(this.targetPort!==null){
this.targetPort.detachMoveListener(this);
}
};
DottedConnection.prototype.reconnect=function(){
if(this.sourcePort!==null){
this.sourcePort.attachMoveListener(this);
}
if(this.targetPort!==null){
this.targetPort.attachMoveListener(this);
}
};
DottedConnection.prototype.isConnector=function(){
return true;
};
DottedConnection.prototype.isResizeable=function(){
return false;
};
DottedConnection.prototype.setSource=function(port){
if(this.sourcePort!==null){
this.sourcePort.detachMoveListener(this);
}
this.sourcePort=port;
if(this.sourcePort===null){
return;
}
this.sourcePort.attachMoveListener(this);
this.setStartPoint(port.getAbsoluteX(),port.getAbsoluteY());
};
DottedConnection.prototype.getSource=function(){
return this.sourcePort;
};
DottedConnection.prototype.setTarget=function(port){
if(this.targetPort!==null){
this.targetPort.detachMoveListener(this);
}
this.targetPort=port;
if(this.targetPort===null){
return;
}
this.targetPort.attachMoveListener(this);
this.setEndPoint(port.getAbsoluteX(),port.getAbsoluteY());
};
DottedConnection.prototype.getTarget=function(){
return this.targetPort;
};
DottedConnection.prototype.onOtherFigureMoved=function(_3824){
if(_3824==this.sourcePort){
this.setStartPoint(this.sourcePort.getAbsoluteX(),this.sourcePort.getAbsoluteY());
}else{
this.setEndPoint(this.targetPort.getAbsoluteX(),this.targetPort.getAbsoluteY());
}
};
bpmnAnnotation = function (oWorkflow) {
VectorFigure.call(this);
//Getting width and height from DB
if(typeof oWorkflow.anno_width != 'undefined' && typeof oWorkflow.anno_height != 'undefined'){
this.width = oWorkflow.anno_width;
this.height = oWorkflow.anno_height;
}
else{
this.width = 110;
this.height = 50;
}
this.setAnnotationName(oWorkflow.annotationName); //It will set the Default Task Name with appropriate count While dragging a task on the canvas
};
bpmnAnnotation.prototype = new VectorFigure;
bpmnAnnotation.prototype.type = "bpmnAnnotation";
bpmnAnnotation.prototype.setAnnotationName = function (name) {
if(typeof name != 'undefined')
this.annotationName = name;
else
this.annotationName = 'Annotation 1';
};
bpmnAnnotation.prototype.coord_converter = function (bound_width, bound_height, text_length) {
//bound_width = this.workflow.currentSelection.width;
//bound_height = this.workflow.currentSelection.height;
input_width = text_length * 6
input_height = 10
temp_width = bound_width - input_width;
temp_width /= 2;
temp_x = temp_width;
temp_height = bound_height - 10;
temp_height /= 2;
temp_y = temp_height;
var temp_coord = new Object();
temp_coord.temp_x = temp_x;
temp_coord.temp_y = temp_y;
return temp_coord;
};
bpmnAnnotation.prototype.paint = function () {
VectorFigure.prototype.paint.call(this);
if(typeof workflow.zoomfactor == 'undefined')
workflow.zoomfactor = 1;
//Set the Task Limitation
if(typeof this.limitFlag == 'undefined' || this.limitFlag == false)
{
this.originalWidth = 110;
this.originalHeight = 50;
this.orgXPos = this.getX();
this.orgYPos = this.getY();
this.orgFontSize =this.fontSize;
}
var zoomRate = workflow.zoomfactor;
this.width = this.originalWidth * workflow.zoomfactor;
this.height = this.originalHeight * workflow.zoomfactor;
//this.graphics.setColor("#ffffff");
this.graphics.setColor("#f8f8f8");
this.graphics.fillRect(0,0, this.getWidth(), this.getHeight());
this.graphics.setStroke(1.5);
this.graphics.setColor("#202020");
this.graphics.drawLine(this.getWidth()/4,0,0,0);
this.graphics.drawLine(0,0,0,this.getHeight());
this.graphics.drawLine(0,this.getHeight(),this.getWidth()/4,this.getHeight());
this.graphics.setStroke(1);
this.graphics.paint();
/* New object is created to implement changing of Text functionality
*/
this.bpmnText = new jsGraphics(this.id) ;
this.padleft = 0.05*this.getWidth();
this.padtop = 0.13*this.getHeight() -1;
this.rectwidth = this.getWidth() - this.padleft;
this.rectheight = this.getHeight() - 2 * this.padtop;
//Setting text size to zoom font size if Zoomed
this.fontSize = 11;
var fontSize = zoomRate * this.fontSize;
this.bpmnText.setFont('verdana', + fontSize+'px', Font.PLAIN);
this.bpmnText.drawStringAnno(this.annotationName,0,this.padtop,this.rectwidth,this.rectheight,'left');
this.bpmnText.paint();
if( this.input1!=null ){
this.input1.setPosition(0,this.height/2);
}
};
jsGraphics.prototype.drawStringAnno = function(txt, x, y, width,height, halign)
{
this.htm += '<div style="position:absolute;overflow:hidden;'+
'left:' + x + 'px;'+
'top:' + y + 'px;'+
'width:'+width +'px;'+
'height:'+height +'px;'+
'text-align:'+halign+';'+
'font-family:' + this.ftFam + ';'+
'font-size:' + this.ftSz + ';'+ 'padding-left:6px;'+
'color:' + this.color + ';' + this.ftSty + '">'+
txt +
'<\/div>';
};
bpmnAnnotation.prototype.setWorkflow=function(_40c5){
VectorFigure.prototype.setWorkflow.call(this,_40c5);
if(_40c5!=null){
this.input1=new InputPort();
this.input1.setWorkflow(_40c5);
this.input1.setName('input1');
this.input1.setZOrder(-1);
this.input1.setBackgroundColor(new Color(255, 255, 255));
this.input1.setColor(new Color(255, 255, 255));
//this.addPort(this.input1,0,this.height/2);
this.addPort(this.input1,-this.getWidth()/2,-this.getHeight()/4);
};
};
bpmnAnnotationDialog = function (_2e5e) {
this.figure = _2e5e;
var title = 'Annotation';
Dialog.call(this, title);
this.setDimension(400, 150); //Set the width and height of the Dialog box
}
bpmnAnnotationDialog.prototype = new Dialog();
bpmnAnnotationDialog.prototype.createHTMLElement = function () {
var item = Dialog.prototype.createHTMLElement.call(this);
var inputDiv = document.createElement("form");
inputDiv.style.position = "absolute";
inputDiv.style.left = "10px";
inputDiv.style.top = "30px";
inputDiv.style.width = "375px";
inputDiv.style.font = "normal 10px verdana";
item.appendChild(inputDiv);
this.label = document.createTextNode("Annotation Name");
inputDiv.appendChild(this.label);
this.input = document.createElement("textarea");
this.input.style.border = "1px solid gray";
this.input.style.font = "normal 10px verdana";
//this.input.type = "text";
this.input.maxLength = "500";
this.input.cols = "50";
this.input.rows = "3";
var value = bpmnTask.prototype.trim(this.figure.workflow.currentSelection.annotationName);
if (value) this.input.value = value;
else this.input.value = "";
this.input.style.width = "100%";
inputDiv.appendChild(this.input);
this.input.focus();
return item;
};
/*Double Click Event for opening the dialog Box*/
bpmnAnnotation.prototype.onDoubleClick = function () {
var _409d = new bpmnAnnotationDialog(this);
this.workflow.showDialog(_409d, this.workflow.currentSelection.x, this.workflow.currentSelection.y);
};
/**
* This method will be called if the user pressed the OK button in buttonbar of the dialog.<br>
* The string is first cleared and new string is painted.<br><br>
**/
bpmnAnnotationDialog.prototype.onOk = function () {
this.figure.bpmnText.clear();
len = Math.ceil(this.input.value.length/16);
if(this.input.value.length < 19)
{
len = 1.5;
if(this.input.value.length > 9)
this.figure.rectWidth = this.input.value.length*8;
else
this.figure.rectWidth = 48;
}
else
this.figure.rectWidth = 150;
//tempcoord = this.workflow.currentSelection.coord_converter(this.workflow.currentSelection.width, this.workflow.currentSelection.height, this.input.value.length)
this.figure.bpmnText.drawStringAnno(this.input.value,20,20,this.figure.rectWidth,'left');
// this.figure.bpmnNewText.drawTextString(this.input.value, this.workflow.currentSelection.width, this.workflow.currentSelection.height, tempcoord.temp_x, tempcoord.temp_y);
this.figure.bpmnText.paint();
this.figure.annotationName = this.input.value; //Set Updated Text value
//Updating Annotation Text Async into the DB
this.figure.actiontype = 'updateText';
this.workflow.saveShape(this.figure);
if(this.figure.rectWidth<80)
tempW = 110;
else
tempW = this.figure.rectWidth+35;
this.workflow.currentSelection.setDimension(tempW, len*13+40);
this.workflow.removeFigure(this);
};

View File

@@ -1,33 +0,0 @@
bpmnDataobject = function (_30ab) {
VectorFigure.call(this);
this.setDimension(50, 80);
this.setTaskName(_30ab.taskNo); //It will set the Default Task Name with appropriate count While dragging a task on the canvas
};
bpmnDataobject.prototype = new VectorFigure;
bpmnDataobject.prototype.type = "bpmnDataobject";
bpmnDataobject.prototype.setTaskName = function (name) {
this.taskName = 'Data Object ' + name;
};
bpmnDataobject.prototype.paint = function () {
VectorFigure.prototype.paint.call(this);
var x = new Array(0, this.getWidth()-10, this.getWidth(), this.getWidth()-10, this.getWidth()-10, this.getWidth(), this.getWidth(), 0);
var y = new Array(0, 0, 10, 10, 0, 10, this.getHeight(), this.getHeight());
this.graphics.setStroke(this.stroke);
this.graphics.setColor("#c0c0c0");
this.graphics.fillPolygon(x, y);
for (var i = 0; i < x.length; i++) {
x[i] = x[i] - 3;
y[i] = y[i] - 3;
}
this.graphics.setColor("#ffffff");
this.graphics.fillPolygon(x, y);
this.graphics.setColor("#ff0f0f");
this.graphics.drawPolygon(x, y);
this.graphics.paint();
this.x_text = this.workflow.getAbsoluteX(); //Get x co-ordinate from figure
this.y_text = this.workflow.getAbsoluteY(); //Get x co-ordinate from figure
}

View File

@@ -1,88 +0,0 @@
bpmnEventBoundaryInter=function(){
VectorFigure.call(this);
//Setting width and height values as per the zoom ratio
if(typeof workflow.zoomWidth != 'undefined' || typeof workflow.zoomHeight != 'undefined')
this.setDimension(workflow.zoomWidth, workflow.zoomHeight);
else
this.setDimension(30,30);
this.stroke = 2;
};
bpmnEventBoundaryInter.prototype=new VectorFigure;
bpmnEventBoundaryInter.prototype.type="bpmnEventBoundaryTimerInter";
bpmnEventBoundaryInter.prototype.paint=function(){
VectorFigure.prototype.paint.call(this);
var x_cir1=0;
var y_cir1=0;
this.graphics.setColor("#c0c0c0");
this.graphics.fillEllipse(x_cir1+3,y_cir1+3,this.getWidth(),this.getHeight());
this.graphics.setStroke(this.stroke);
this.graphics.setColor( "#f9faf2" );
this.graphics.fillEllipse(x_cir1,y_cir1,this.getWidth(),this.getHeight());
this.graphics.setColor("#adae5e");
this.graphics.drawEllipse(x_cir1,y_cir1,this.getWidth(),this.getHeight());
var x_cir2=3;
var y_cir2=3;
this.graphics.setColor( "#f9faf2" );
this.graphics.fillEllipse(x_cir2,y_cir2,this.getWidth()-6,this.getHeight()-6);
this.graphics.setColor("#adae5e");
this.graphics.drawEllipse(x_cir2,y_cir2,this.getWidth()-6,this.getHeight()-6);
this.graphics.setColor("#adae5e");
//this.graphics.drawEllipse(x_cir3,y_cir3,this.getWidth()-20,this.getHeight()-20);
this.graphics.drawLine(this.getWidth()/2.2,this.getHeight()/2,this.getWidth()/1.6,this.getHeight()/2); //horizontal line
this.graphics.drawLine(this.getWidth()/2.2,this.getHeight()/2,this.getWidth()/2.2,this.getHeight()/3.7); //vertical line
this.graphics.drawLine(24,8,20,11); //10th min line
this.graphics.drawLine(22,15,25,15); //15th min line
this.graphics.drawLine(24,22,19,20); //25th min line
this.graphics.drawLine(15,22,15,25); //30th min line
this.graphics.drawLine(8,22,12,19); //40th min line
this.graphics.drawLine(5,15,8,15); //45th min line
this.graphics.drawLine(8,8,11,11); //50th min line
this.graphics.drawLine(15,5,15,8); //60th min line
this.graphics.paint();
/*Code Added to Dynamically shift Ports on resizing of shapes
**/
if(this.input1!=null){
this.input1.setPosition(0,this.height/2);
}
if(this.output1!=null){
this.output1.setPosition(this.width/2,this.height);
}
if(this.input2!=null){
this.input2.setPosition(this.width/2,0);
}
if(this.output2!=null){
this.output2.setPosition(this.width,this.height/2);
}
};
bpmnEventBoundaryInter.prototype.setWorkflow=function(_40c5){
VectorFigure.prototype.setWorkflow.call(this,_40c5);
if(_40c5!=null){
var eventPortName = ['input2','output2'];
var eventPortType = ['InputPort','OutputPort'];
var eventPositionX= [this.width/2,this.width/2];
var eventPositionY= [0,this.height];
for(var i=0; i< eventPortName.length ; i++){
eval('this.'+eventPortName[i]+' = new '+eventPortType[i]+'()'); //Create New Port
eval('this.'+eventPortName[i]+'.setWorkflow(_40c5)'); //Add port to the workflow
eval('this.'+eventPortName[i]+'.setName("'+eventPortName[i]+'")'); //Set PortName
eval('this.'+eventPortName[i]+'.setZOrder(-1)'); //Set Z-Order of the port to -1. It will be below all the figure
eval('this.'+eventPortName[i]+'.setBackgroundColor(new Color(255, 255, 255))'); //Setting Background of the port to white
eval('this.'+eventPortName[i]+'.setColor(new Color(255, 255, 255))'); //Setting Border of the port to white
eval('this.addPort(this.'+eventPortName[i]+','+eventPositionX[i]+', '+eventPositionY[i]+')'); //Setting Position of the port
}
}
};
bpmnEventBoundaryInter.prototype.getContextMenu=function(){
if(this.id != null){
this.workflow.handleContextMenu(this);
}
};

View File

@@ -1,80 +0,0 @@
bpmnEventCancelEnd=function(){
VectorFigure.call(this);
//Setting width and height values as per the zoom ratio
if(typeof workflow.zoomWidth != 'undefined' || typeof workflow.zoomHeight != 'undefined')
this.setDimension(workflow.zoomWidth, workflow.zoomHeight);
else
this.setDimension(30,30);
this.stroke=3;
};
bpmnEventCancelEnd.prototype=new VectorFigure;
bpmnEventCancelEnd.prototype.type="bpmnEventCancelEnd";
bpmnEventCancelEnd.prototype.paint=function(){
VectorFigure.prototype.paint.call(this);
//Set the Task Limitation
if (this.getWidth() < 30 || this.getHeight() < 30) {
this.setDimension(30, 30);
}
this.graphics.setStroke(this.stroke);
var x_cir = 0;
var y_cir = 0;
this.graphics.setColor("#c0c0c0");
this.graphics.fillEllipse(x_cir+5,y_cir+5,this.getWidth(),this.getHeight());
this.graphics.setColor("#f7f1e5");
this.graphics.fillEllipse(x_cir,y_cir,this.getWidth(),this.getHeight());
this.graphics.setColor("#c46508");
this.graphics.drawEllipse(x_cir,y_cir,this.getWidth(),this.getHeight());
this.graphics.setStroke(2);
//var x=new Array(16,23,31,36,29,37,32,23,16,11,18,11);
//var y=new Array(35,27,33,29,22,14,9,16,9,14,22,29);
var x=new Array(this.getWidth()/2.8,this.getWidth()/1.95,this.getWidth()/1.45,this.getWidth()/1.25,this.getWidth()/1.55,this.getWidth()/1.21,this.getWidth()/1.4,this.getWidth()/1.95,this.getWidth()/2.8,this.getWidth()/4.1,this.getWidth()/2.5,this.getWidth()/4.1);
var y=new Array(this.getHeight()/1.28,this.getHeight()/1.66,this.getHeight()/1.36,this.getHeight()/1.55,this.getHeight()/2.04,this.getHeight()/3.21,this.getHeight()/5.6,this.getHeight()/2.81,this.getHeight()/5.6,this.getHeight()/3.21,this.getHeight()/2.04,this.getHeight()/1.55);
this.graphics.setColor("#c46508");
this.graphics.fillPolygon(x,y);
this.graphics.setColor("#c46508");
//this.graphics.drawPolygon(x,y);
this.graphics.paint();
/*Code Added to Dynamically shift Ports on resizing of shapes
**/
if(this.input1!=null){
this.input1.setPosition(0,this.height/2);
}
if(this.output1!=null){
this.output1.setPosition(this.width/2,this.height);
}
if(this.input2!=null){
this.input2.setPosition(this.width/2,0);
}
if(this.output2!=null){
this.output2.setPosition(this.width,this.height/2);
}
};
bpmnEventCancelEnd.prototype.setWorkflow=function(_40c5){
VectorFigure.prototype.setWorkflow.call(this,_40c5);
if(_40c5!=null){
var eventPortName = ['input1','input2'];
var eventPortType = ['InputPort','InputPort'];
var eventPositionX= [this.width/2,0];
var eventPositionY= [0,this.height/2];
for(var i=0; i< eventPortName.length ; i++){
eval('this.'+eventPortName[i]+' = new '+eventPortType[i]+'()'); //Create New Port
eval('this.'+eventPortName[i]+'.setWorkflow(_40c5)'); //Add port to the workflow
eval('this.'+eventPortName[i]+'.setName("'+eventPortName[i]+'")'); //Set PortName
eval('this.'+eventPortName[i]+'.setZOrder(-1)'); //Set Z-Order of the port to -1. It will be below all the figure
eval('this.'+eventPortName[i]+'.setBackgroundColor(new Color(255, 255, 255))'); //Setting Background of the port to white
eval('this.'+eventPortName[i]+'.setColor(new Color(255, 255, 255))'); //Setting Border of the port to white
eval('this.addPort(this.'+eventPortName[i]+','+eventPositionX[i]+', '+eventPositionY[i]+')'); //Setting Position of the port
}
}
};
bpmnEventCancelEnd.prototype.getContextMenu=function(){
if(this.id != null){
this.workflow.handleContextMenu(this);
}
};

View File

@@ -1,49 +0,0 @@
bpmnEventCancelInter=function(){
VectorFigure.call(this);
this.stroke=1;
};
bpmnEventCancelInter.prototype=new VectorFigure;
bpmnEventCancelInter.prototype.type="bpmnEventCancelInter";
bpmnEventCancelInter.prototype.paint=function(){
VectorFigure.prototype.paint.call(this);
if(typeof workflow.zoomfactor == 'undefined')
workflow.zoomfactor = 1;
//Set the Task Limitation
if(typeof this.limitFlag == 'undefined' || this.limitFlag == false)
{
this.originalWidth = 30;
this.originalHeight = 30;
this.orgXPos = this.getX();
this.orgYPos = this.getY();
this.orgFontSize =this.fontSize;
}
this.width = this.originalWidth * workflow.zoomfactor;
this.height = this.originalHeight * workflow.zoomfactor;
this.graphics.setStroke(this.stroke);
var x_cir = 0;
var y_cir = 0;
this.graphics.setColor("#000000");
this.graphics.drawEllipse(x_cir,y_cir,this.getWidth(),this.getHeight());
var x_cir2=5;
var y_cir2=5;
this.graphics.setColor("#000000");
this.graphics.drawEllipse(x_cir2,y_cir2,this.getWidth()-10,this.getHeight()-10);
//var x=new Array(16,23,31,36,29,37,32,23,16,11,18,11);
//var y=new Array(35,27,33,29,22,14,9,16,9,14,22,29);
var cw = this.getWidth();
var ch = this.getHeight();
var x=new Array(cw*0.35,cw*0.51,cw*0.68,cw*0.8,cw*0.64,cw*0.82,cw*0.71,cw*0.51,cw*0.35,cw*0.24,cw*0.4,cw*0.24);
var y=new Array(ch*0.78,ch*0.6,ch*0.73,ch*0.64,ch*0.49,ch*0.31,ch*0.17,ch*0.35,ch*0.17,ch*0.31,ch*0.49,ch*0.64);
//var x=new Array(cw/2.8,cw/1.95,cw/1.45,cw/1.25,cw/1.55,cw/1.21,cw/1.4,cw/1.95,cw/2.8,cw/4.1,cw/2.5,cw/4.1);
//var y=new Array(ch/1.28,ch/1.66,ch/1.36,ch/1.55,ch/2.04,ch/3.21,ch/5.6,ch/2.81,ch/5.6,ch/3.21,ch/2.04,ch/1.55);
this.graphics.setColor("#ffffff");
this.graphics.fillPolygon(x,y);
this.graphics.setColor("#000000");
this.graphics.drawPolygon(x,y);
this.graphics.paint();
};

View File

@@ -1,74 +0,0 @@
bpmnEventCompEnd=function(){
VectorFigure.call(this);
//Setting width and height values as per the zoom ratio
if(typeof workflow.zoomWidth != 'undefined' || typeof workflow.zoomHeight != 'undefined')
this.setDimension(workflow.zoomWidth, workflow.zoomHeight);
else
this.setDimension(30,30);
this.stroke=3
};
bpmnEventCompEnd.prototype=new VectorFigure;
bpmnEventCompEnd.prototype.type="bpmnEventCompEnd";
bpmnEventCompEnd.prototype.paint=function(){
VectorFigure.prototype.paint.call(this);
this.graphics.setStroke(this.stroke);
var x_cir = 0;
var y_cir = 0;
this.graphics.setColor("#c0c0c0");
this.graphics.fillEllipse(x_cir+5,y_cir+5,this.getWidth(),this.getHeight());
this.graphics.setColor("#f7f1e5");
this.graphics.fillEllipse(x_cir,y_cir,this.getWidth(),this.getHeight());
this.graphics.setColor("#c46508");
this.graphics.drawEllipse(x_cir,y_cir,this.getWidth(),this.getHeight());
//var x_arrow=new Array(6,19,19,32,32,19,19);
//var y_arrow=new Array(22,33,22,33,11,22,11);
var x_arrow=new Array(this.getWidth()/7,this.getWidth()/2.36,this.getWidth()/2.36,this.getWidth()/1.4,this.getWidth()/1.42,this.getWidth()/2.36,this.getWidth()/2.36);
var y_arrow=new Array(this.getHeight()/2,this.getHeight()/1.36,this.getHeight()/2,this.getHeight()/1.36,this.getHeight()/4,this.getHeight()/2,this.getHeight()/4);
this.graphics.setColor( "#c46508" );
this.graphics.fillPolygon(x_arrow,y_arrow);
this.graphics.setColor("#c46508");
//this.graphics.drawPolygon(x_arrow,y_arrow);
this.graphics.paint();/*Code Added to Dynamically shift Ports on resizing of shapes
**/
if(this.input1!=null){
this.input1.setPosition(0,this.height/2);
}
if(this.output1!=null){
this.output1.setPosition(this.width/2,this.height);
}
if(this.input2!=null){
this.input2.setPosition(this.width/2,0);
}
if(this.output2!=null){
this.output2.setPosition(this.width,this.height/2);
}
};
bpmnEventCompEnd.prototype.setWorkflow=function(_40c5){
VectorFigure.prototype.setWorkflow.call(this,_40c5);
if(_40c5!=null){
var eventPortName = ['input1','input2'];
var eventPortType = ['InputPort','InputPort'];
var eventPositionX= [this.width/2,0];
var eventPositionY= [0,this.height/2];
for(var i=0; i< eventPortName.length ; i++){
eval('this.'+eventPortName[i]+' = new '+eventPortType[i]+'()'); //Create New Port
eval('this.'+eventPortName[i]+'.setWorkflow(_40c5)'); //Add port to the workflow
eval('this.'+eventPortName[i]+'.setName("'+eventPortName[i]+'")'); //Set PortName
eval('this.'+eventPortName[i]+'.setZOrder(-1)'); //Set Z-Order of the port to -1. It will be below all the figure
eval('this.'+eventPortName[i]+'.setBackgroundColor(new Color(255, 255, 255))'); //Setting Background of the port to white
eval('this.'+eventPortName[i]+'.setColor(new Color(255, 255, 255))'); //Setting Border of the port to white
eval('this.addPort(this.'+eventPortName[i]+','+eventPositionX[i]+', '+eventPositionY[i]+')'); //Setting Position of the port
}
}
};
bpmnEventCompEnd.prototype.getContextMenu=function(){
if(this.id != null){
this.workflow.handleContextMenu(this);
}
};

Some files were not shown because too many files have changed in this diff Show More