Merge branch 'master' of bitbucket.org:colosa/processmaker
This commit is contained in:
@@ -412,7 +412,7 @@ class Department extends BaseDepartment
|
||||
$criteria->add( DepartmentPeer::DEP_PARENT, $DepParent, Criteria::EQUAL );
|
||||
$con = Propel::getConnection( DepartmentPeer::DATABASE_NAME );
|
||||
$objects = DepartmentPeer::doSelect( $criteria, $con );
|
||||
global $RBAC;
|
||||
$oUsers = new Users();
|
||||
|
||||
foreach ($objects as $oDepartment) {
|
||||
$node = array ();
|
||||
@@ -426,7 +426,7 @@ class Department extends BaseDepartment
|
||||
|
||||
$manager = $oDepartment->getDepManager();
|
||||
if ($manager != '') {
|
||||
$UserUID = $RBAC->load( $manager );
|
||||
$UserUID = $oUsers->load($manager);
|
||||
$node['DEP_MANAGER_USERNAME'] = isset( $UserUID['USR_USERNAME'] ) ? $UserUID['USR_USERNAME'] : '';
|
||||
$node['DEP_MANAGER_FIRSTNAME'] = isset( $UserUID['USR_FIRSTNAME'] ) ? $UserUID['USR_FIRSTNAME'] : '';
|
||||
$node['DEP_MANAGER_LASTNAME'] = isset( $UserUID['USR_LASTNAME'] ) ? $UserUID['USR_LASTNAME'] : '';
|
||||
|
||||
@@ -68,11 +68,11 @@ if ($action == "uploadFileNewProcess") {
|
||||
|
||||
$isCorrectTypeFile = 1;
|
||||
|
||||
if (isset( $_FILES['form']['type']['PROCESS_FILENAME'] )) {
|
||||
if (isset( $_FILES['PROCESS_FILENAME']['type'] )) {
|
||||
$allowedExtensions = array ($processFileType
|
||||
);
|
||||
$allowedExtensions = array ('pm');
|
||||
if (! in_array( end( explode( ".", $_FILES['form']['name']['PROCESS_FILENAME'] ) ), $allowedExtensions )) {
|
||||
if (! in_array( end( explode( ".", $_FILES['PROCESS_FILENAME']['name'] ) ), $allowedExtensions )) {
|
||||
throw new Exception( G::LoadTranslation( "ID_FILE_UPLOAD_INCORRECT_EXTENSION" ) );
|
||||
}
|
||||
}
|
||||
@@ -99,10 +99,10 @@ if ($action == "uploadFileNewProcess") {
|
||||
$filename = $_REQUEST["PRO_FILENAME"];
|
||||
$path = PATH_DOCUMENT . 'input' . PATH_SEP;
|
||||
} else {
|
||||
if ($_FILES['form']['error']['PROCESS_FILENAME'] == 0) {
|
||||
$filename = $_FILES['form']['name']['PROCESS_FILENAME'];
|
||||
if ($_FILES['PROCESS_FILENAME']['error'] == 0) {
|
||||
$filename = $_FILES['PROCESS_FILENAME']['name'];
|
||||
$path = PATH_DOCUMENT . 'input' . PATH_SEP;
|
||||
$tempName = $_FILES['form']['tmp_name']['PROCESS_FILENAME'];
|
||||
$tempName = $_FILES['PROCESS_FILENAME']['tmp_name'];
|
||||
//$action = "none";
|
||||
G::uploadFile( $tempName, $path, $filename );
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<?php http_response_code(404); die; ?>
|
||||
<?php if (function_exists("http_response_code")) {
|
||||
http_response_code(404);
|
||||
}?>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<META http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
@@ -48,8 +48,8 @@ class Department
|
||||
$criteria->add( DepartmentPeer::DEP_UID, $dep_uid, \Criteria::EQUAL );
|
||||
$con = \Propel::getConnection( DepartmentPeer::DATABASE_NAME );
|
||||
$objects = DepartmentPeer::doSelect( $criteria, $con );
|
||||
$oUsers = new \Users();
|
||||
|
||||
global $RBAC;
|
||||
$node = array ();
|
||||
foreach ($objects as $oDepartment) {
|
||||
$node['DEP_UID'] = $oDepartment->getDepUid();
|
||||
@@ -62,7 +62,7 @@ class Department
|
||||
|
||||
$manager = $oDepartment->getDepManager();
|
||||
if ($manager != '') {
|
||||
$UserUID = $RBAC->load( $manager );
|
||||
$UserUID = $oUsers->load($manager);
|
||||
$node['DEP_MANAGER_USERNAME'] = isset( $UserUID['USR_USERNAME'] ) ? $UserUID['USR_USERNAME'] : '';
|
||||
$node['DEP_MANAGER_FIRSTNAME'] = isset( $UserUID['USR_FIRSTNAME'] ) ? $UserUID['USR_FIRSTNAME'] : '';
|
||||
$node['DEP_MANAGER_LASTNAME'] = isset( $UserUID['USR_LASTNAME'] ) ? $UserUID['USR_LASTNAME'] : '';
|
||||
@@ -110,7 +110,7 @@ class Department
|
||||
if (isset($dep_data['DEP_PARENT']) && $dep_data['DEP_PARENT'] != '') {
|
||||
Validator::depUid($dep_data['DEP_PARENT'], 'dep_parent');
|
||||
}
|
||||
if (isset($dep_data['DEP_MANAGER']) && $dep_data['DEP_PARENT'] != '') {
|
||||
if (isset($dep_data['DEP_MANAGER']) && $dep_data['DEP_MANAGER'] != '') {
|
||||
Validator::usrUid($dep_data['DEP_MANAGER'], 'dep_manager');
|
||||
}
|
||||
if (isset($dep_data['DEP_STATUS'])) {
|
||||
|
||||
99
workflow/engine/src/ProcessMaker/Importer/Importer.php
Normal file
99
workflow/engine/src/ProcessMaker/Importer/Importer.php
Normal file
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
namespace ProcessMaker\Importer;
|
||||
|
||||
abstract class Importer
|
||||
{
|
||||
protected $filename = "";
|
||||
protected $saveDir = "";
|
||||
|
||||
const IMPORT_OPTION_OVERWRITE = "OVERWRITE_PROJECT";
|
||||
const IMPORT_OPTION_DISABLE_AND_CREATE_NEW = "DISABLE_AND_CREATE_NEW_PROJECT";
|
||||
const IMPORT_OPTION_CREATE_NEW = "CREATE_NEW_PROJECT";
|
||||
|
||||
/**
|
||||
* Success, Project imported successfully.
|
||||
*/
|
||||
const IMPORT_STAT_SUCCESS = 100;
|
||||
/**
|
||||
* Error, Target Project already exists.
|
||||
*/
|
||||
const IMPORT_STAT_TARGET_ALREADY_EXISTS = 101;
|
||||
/**
|
||||
* Error, Invalid file type or the file have corrupt data.
|
||||
*/
|
||||
const IMPORT_STAT_INVALID_SOURCE_FILE = 102;
|
||||
|
||||
|
||||
public abstract function import();
|
||||
public abstract function validateSource();
|
||||
public abstract function targetExists();
|
||||
|
||||
|
||||
public function setSaveDir($dirName)
|
||||
{
|
||||
$this->saveDir = rtrim($dirName, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
||||
}
|
||||
|
||||
public function getSaveDir()
|
||||
{
|
||||
if (empty($this->saveDir)) {
|
||||
$this->saveDir = sys_get_temp_dir() . DIRECTORY_SEPARATOR;
|
||||
}
|
||||
|
||||
return $this->saveDir;
|
||||
}
|
||||
|
||||
public function setSourceFile($filename)
|
||||
{
|
||||
$this->filename = $filename;
|
||||
}
|
||||
|
||||
public function setSourceFromGlobals($varName)
|
||||
{
|
||||
/*[PROCESS_FILENAME] => Array
|
||||
(
|
||||
[name] => sample29.pm
|
||||
[type] => application/pm
|
||||
[tmp_name] => /tmp/phpvHpCVO
|
||||
[error] => 0
|
||||
[size] => 1260881
|
||||
)*/
|
||||
|
||||
if (! array_key_exists($varName, $_FILES)) {
|
||||
throw new \Exception("Couldn't find specified source \"$varName\" in PHP Globals");
|
||||
}
|
||||
|
||||
$data = $_FILES[$varName];
|
||||
|
||||
if ($data["error"] != 0){
|
||||
throw new \Exception("Error while uploading file. Error code: {$data["error"]}");
|
||||
}
|
||||
|
||||
$this->filename = $this->getSaveDir() . $data["name"];
|
||||
|
||||
$oldUmask = umask(0);
|
||||
move_uploaded_file($data["tmp_name"], $this->filename);
|
||||
@chmod($this->filename, 0755);
|
||||
umask($oldUmask);
|
||||
}
|
||||
|
||||
public function prepare()
|
||||
{
|
||||
if ($this->validateSource() === false) {
|
||||
throw new \Exception(
|
||||
"Error, Invalid file type or the file have corrupt data",
|
||||
self::IMPORT_STAT_INVALID_SOURCE_FILE
|
||||
);
|
||||
}
|
||||
|
||||
if ($this->targetExists()) {
|
||||
throw new \Exception(sprintf(
|
||||
"Project already exists, you need set an action to continue. " .
|
||||
"Avaliable actions: [%s|%s|%s].", self::IMPORT_OPTION_CREATE_NEW,
|
||||
self::IMPORT_OPTION_OVERWRITE, self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW
|
||||
), self::IMPORT_STAT_TARGET_ALREADY_EXISTS);
|
||||
}
|
||||
|
||||
return self::IMPORT_STAT_SUCCESS;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
namespace ProcessMaker\Importer;
|
||||
|
||||
class WorkflowImporter extends Importer
|
||||
{
|
||||
public function validateSource()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function targetExists()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public function import($option = self::IMPORT_OPTION_CREATE_NEW)
|
||||
{
|
||||
switch ($option) {
|
||||
case self::IMPORT_OPTION_CREATE_NEW:
|
||||
$this->prepare();
|
||||
$this->createNewProject();
|
||||
break;
|
||||
case self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW:
|
||||
break;
|
||||
case self::IMPORT_OPTION_OVERWRITE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function createNewProject()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function updateProject()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function disableCurrentProject()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
17
workflow/engine/src/ProcessMaker/Importer/XmlImporter.php
Normal file
17
workflow/engine/src/ProcessMaker/Importer/XmlImporter.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
namespace ProcessMaker\Importer;
|
||||
|
||||
class XmlImporter
|
||||
{
|
||||
public $filename = "";
|
||||
|
||||
public function setSourceFile($filename)
|
||||
{
|
||||
$this->filename = $filename;
|
||||
}
|
||||
|
||||
public function import()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -16,10 +16,94 @@ if (!class_exists("Propel")) {
|
||||
*/
|
||||
class DepartmentTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testSaveDepartment()
|
||||
{
|
||||
$oDepartment = new \BusinessModel\Department();
|
||||
|
||||
////////// Create department parent
|
||||
$dep1 = array (
|
||||
'dep_title' => 'departamento padre'
|
||||
);
|
||||
$arrayDepartments = $oDepartment->saveDepartment($dep1);
|
||||
$this->assertTrue(isset($arrayDepartments['dep_uid']));
|
||||
$this->assertEquals($arrayDepartments['dep_parent'], '');
|
||||
$this->assertEquals($arrayDepartments['dep_title'], 'departamento padre');
|
||||
$this->assertEquals($arrayDepartments['dep_status'], 'ACTIVE');
|
||||
$this->assertEquals($arrayDepartments['dep_manager'], '');
|
||||
$this->assertEquals($arrayDepartments['has_children'], 0);
|
||||
|
||||
////////// Create department child
|
||||
$dep1Uid = $arrayDepartments['dep_uid'];
|
||||
$dep2 = array (
|
||||
'dep_parent' => $dep1Uid,
|
||||
'dep_manager' => '00000000000000000000000000000001',
|
||||
'dep_title' => 'departamento hijo1',
|
||||
'dep_status' => 'INACTIVE'
|
||||
);
|
||||
$arrayDepartments2 = $oDepartment->saveDepartment($dep2);
|
||||
$this->assertTrue(isset($arrayDepartments2['dep_uid']));
|
||||
$this->assertEquals($arrayDepartments2['dep_parent'], $dep1Uid);
|
||||
$this->assertEquals($arrayDepartments2['dep_title'], 'departamento hijo1');
|
||||
$this->assertEquals($arrayDepartments2['dep_status'], 'INACTIVE');
|
||||
$this->assertEquals($arrayDepartments2['dep_manager'], '00000000000000000000000000000001');
|
||||
$this->assertEquals($arrayDepartments2['has_children'], 0);
|
||||
|
||||
////////// Update department parent
|
||||
$depUp1 = array (
|
||||
'dep_uid' => $dep1Uid,
|
||||
'dep_title' => 'DepPadre',
|
||||
'dep_manager' => '00000000000000000000000000000001'
|
||||
);
|
||||
$oDepartment->saveDepartment($depUp1, false);
|
||||
|
||||
$dep2Uid = $arrayDepartments2['dep_uid'];
|
||||
$depUp2 = array (
|
||||
'dep_uid' => $dep2Uid,
|
||||
'dep_title' => 'DepHijo',
|
||||
'dep_manager' => '',
|
||||
);
|
||||
$oDepartment->saveDepartment($depUp2, false);
|
||||
}
|
||||
|
||||
public function testGetDepartments()
|
||||
{
|
||||
$oDepartment = new \BusinessModel\Department();
|
||||
$arrayDepartments = $oDepartment->getDepartments();
|
||||
$this->assertTrue(is_array($arrayDepartments));
|
||||
$this->assertEquals(count($arrayDepartments), 1);
|
||||
$this->assertTrue(is_array($arrayDepartments[0]['dep_children']));
|
||||
$this->assertEquals(count($arrayDepartments[0]['dep_children']), 1);
|
||||
}
|
||||
|
||||
public function testGetDepartment()
|
||||
{
|
||||
$oDepartment = new \BusinessModel\Department();
|
||||
$arrayDepartments = $oDepartment->getDepartments();
|
||||
$depIdPadre = $arrayDepartments[0]['dep_uid'];
|
||||
$depIdChild = $arrayDepartments[0]['dep_children'][0]['dep_uid'];
|
||||
$oDepartment = new \BusinessModel\Department();
|
||||
$dataPadre = $oDepartment->getDepartment($depIdPadre);
|
||||
$dataChild = $oDepartment->getDepartment($depIdChild);
|
||||
|
||||
$this->assertTrue(is_array($dataPadre));
|
||||
$this->assertEquals($dataPadre['dep_title'], 'DepPadre');
|
||||
$this->assertEquals($dataPadre['dep_manager'], '00000000000000000000000000000001');
|
||||
$this->assertTrue(is_array($dataChild));
|
||||
$this->assertEquals($dataChild['dep_title'], 'DepHijo');
|
||||
$this->assertEquals($dataChild['dep_manager'], '');
|
||||
}
|
||||
|
||||
public function testDeleteDepartment()
|
||||
{
|
||||
$oDepartment = new \BusinessModel\Department();
|
||||
$arrayDepartments = $oDepartment->getDepartments();
|
||||
$dataDepChild = $arrayDepartments[0]['dep_children'];
|
||||
|
||||
$oDepartment->deleteDepartment($dataDepChild[0]['dep_uid']);
|
||||
$oDepartment->deleteDepartment($arrayDepartments[0]['dep_uid']);
|
||||
|
||||
$arrayDepartments = $oDepartment->getDepartments();
|
||||
$this->assertEquals(count($arrayDepartments), 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -104,52 +104,48 @@
|
||||
<div class="head"></div>
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="#" class="mafe-button-save">Save</a></li>
|
||||
<li><a href="#" class="mafe-button-export-process">Export process</a></li>
|
||||
<li><a href="#" class="mafe-button-undo">Undo</a>
|
||||
<a href="#" class="mafe-button-redo">Redo</a></li>
|
||||
<li><input type="button" value="Zoom" class="mafe-button-zoom"> </li>
|
||||
<li><a href="#" class="mafe-button-save"></a></li>
|
||||
<li><a href="#" class="mafe-button-export-process"></a></li>
|
||||
<li><a href="#" class="mafe-button-undo"></a> <a href="#" class="mafe-button-redo"></a></li>
|
||||
<li><input type="button" value="" class="mafe-button-zoom"> </li>
|
||||
<li><a href="#" title="Full screen"class="mafe-button-fullscreen"></a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="content">
|
||||
<div class="bpmn_shapes">
|
||||
<div class="head">
|
||||
<span class="mafe-shapes-collapse-icon"></span></div>
|
||||
<div class="head"><span class="mafe-shapes-collapse-icon"></span></div>
|
||||
</div>
|
||||
<div class="content_controls">
|
||||
<div class="head"><span class="mafe-controls-collapse-icon"></span></div>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="" class="mafe-menu-dynaform">Dynaforms</a>
|
||||
<a href="#" class="btn_create mafe-menu-dynaform-create"><span>Create</span></a>
|
||||
<a href="" class="mafe-menu-dynaform"></a>
|
||||
<a href="#" class="btn_create mafe-menu-dynaform-create"><span></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-inputdocuments">Input documents</a>
|
||||
<a href="#" class="btn_create mafe-menu-inputdocuments-create"><span>Create</span></a>
|
||||
<a href="#" class="mafe-menu-inputdocuments"></a>
|
||||
<a href="#" class="btn_create mafe-menu-inputdocuments-create"><span></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-outputdocuments">Output documents</a>
|
||||
<a href="#" class="btn_create mafe-menu-outputdocuments-create"><span>Create</span></a>
|
||||
<a href="#" class="mafe-menu-outputdocuments"></a>
|
||||
<a href="#" class="btn_create mafe-menu-outputdocuments-create"><span></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-triggers">Triggers</a>
|
||||
<a href="#" class="btn_create mafe-menu-triggers-create"><span>Create</span></a>
|
||||
<a href="#" class="mafe-menu-triggers"></a>
|
||||
<a href="#" class="btn_create mafe-menu-triggers-create"><span></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-reporttables">Report tables</a>
|
||||
<a href="#" class="btn_create mafe-menu-reporttables-create"><span>Create</span></a>
|
||||
<a href="#" class="mafe-menu-reporttables"></a>
|
||||
<a href="#" class="btn_create mafe-menu-reporttables-create"><span></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-databaseconnections">Database connections</a>
|
||||
<a href="#" class="btn_create mafe-menu-databaseconnections-create"><span>Create</span></a>
|
||||
<a href="#" class="mafe-menu-databaseconnections"></a>
|
||||
<a href="#" class="btn_create mafe-menu-databaseconnections-create"><span></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="mefe-menu-casescheduler">Case scheduler</a>
|
||||
<a href="#" class="btn_create mefe-menu-casescheduler-create"><span>Create</span></a>
|
||||
<a href="#" class="mefe-menu-casescheduler"></a>
|
||||
<a href="#" class="btn_create mafe-menu-casescheduler-create"><span></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1062,7 +1062,7 @@ importProcess = function()
|
||||
id : 'form-file',
|
||||
emptyText : _('ID_SELECT_PROCESS_FILE'),
|
||||
fieldLabel : _('ID_LAN_FILE'),
|
||||
name : 'form[PROCESS_FILENAME]',
|
||||
name : 'PROCESS_FILENAME',
|
||||
buttonText : '',
|
||||
buttonCfg : {
|
||||
iconCls : 'upload-icon'
|
||||
|
||||
Reference in New Issue
Block a user