MT-28 manejo de respuestas ajax... para la visulaizacion del listObject
This commit is contained in:
@@ -27,6 +27,18 @@ use \ProcessMaker\Importer\XmlImporter;
|
|||||||
ini_set("max_execution_time", 0);
|
ini_set("max_execution_time", 0);
|
||||||
$affectedGroups = array();
|
$affectedGroups = array();
|
||||||
|
|
||||||
|
if(preg_match("/^(?:pm|pmx)$/", pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION))){
|
||||||
|
$import = new XmlImporter();
|
||||||
|
$granularImport = false;
|
||||||
|
$objectImport = array();
|
||||||
|
$data = $import->load($_FILES["PROCESS_FILENAME"]["tmp_name"]);
|
||||||
|
if(!version_compare($data['version'], '3.0', '>')){
|
||||||
|
$objectImport = (isset($data['objects'])) ? explode('|', $data['objects']) : "";
|
||||||
|
$ids = new \ProcessMaker\BusinessModel\Migrator\ExportObjects();
|
||||||
|
$objectImport = $ids->getIdObjectList($objectImport);
|
||||||
|
$granularImport = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=") &&
|
if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=") &&
|
||||||
isset($_FILES["PROCESS_FILENAME"]) &&
|
isset($_FILES["PROCESS_FILENAME"]) &&
|
||||||
@@ -61,10 +73,6 @@ if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm
|
|||||||
$arrayTrigger = $data["tables"]["workflow"]["triggers"];
|
$arrayTrigger = $data["tables"]["workflow"]["triggers"];
|
||||||
$projectTitle = $data["tables"]["bpmn"]["project"][0]["prj_name"];
|
$projectTitle = $data["tables"]["bpmn"]["project"][0]["prj_name"];
|
||||||
}
|
}
|
||||||
if(isset($data['objects'])){
|
|
||||||
$objectImport = $data['objects'];
|
|
||||||
$granularImport = 'YES';
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,21 +132,25 @@ if (isset($_FILES["PROCESS_FILENAME"]) &&
|
|||||||
try {
|
try {
|
||||||
$opt1 = XmlImporter::IMPORT_OPTION_CREATE_NEW;
|
$opt1 = XmlImporter::IMPORT_OPTION_CREATE_NEW;
|
||||||
$opt2 = XmlImporter::GROUP_IMPORT_OPTION_CREATE_NEW;
|
$opt2 = XmlImporter::GROUP_IMPORT_OPTION_CREATE_NEW;
|
||||||
if($_POST['generateUid'] === 'generate') {
|
$prjUid = '';
|
||||||
$generateUid = true;
|
$proType = '';
|
||||||
$prjUid = $importer->import($opt1,$opt2,$generateUid);
|
if(isset($_POST['objectsToImport']) && sizeof(G::json_decode($_POST['objectsToImport']))){
|
||||||
} elseif($_POST['generateUid'] === 'keep') {
|
$objectsToImport = G::json_decode($_POST['objectsToImport']);
|
||||||
$generateUid = false;
|
if($_POST['generateUid'] === 'generate') {
|
||||||
$prjUid = $importer->import($opt1,$opt2,$generateUid);
|
$generateUid = true;
|
||||||
} else {
|
$prjUid = $importer->import($opt1,$opt2,$generateUid);
|
||||||
$prjUid = $importer->import();
|
} elseif($_POST['generateUid'] === 'keep') {
|
||||||
|
$generateUid = false;
|
||||||
|
$prjUid = $importer->import($opt1,$opt2,$generateUid);
|
||||||
|
} else {
|
||||||
|
$prjUid = $importer->import($opt1,$opt2, null, $objectsToImport);
|
||||||
|
}
|
||||||
|
G::LoadClass( 'Process' );
|
||||||
|
$oProcess = new Process();
|
||||||
|
$processData = $oProcess->load( $prjUid );
|
||||||
|
$proType = $processData["PRO_TYPE"];
|
||||||
}
|
}
|
||||||
|
|
||||||
G::LoadClass( 'Process' );
|
|
||||||
$oProcess = new Process();
|
|
||||||
$processData = $oProcess->load( $prjUid );
|
|
||||||
$proType = $processData["PRO_TYPE"];
|
|
||||||
|
|
||||||
$result = array(
|
$result = array(
|
||||||
"success" => true,
|
"success" => true,
|
||||||
"catchMessage" => '',
|
"catchMessage" => '',
|
||||||
@@ -148,8 +160,8 @@ if (isset($_FILES["PROCESS_FILENAME"]) &&
|
|||||||
"affectedGroups" => '',
|
"affectedGroups" => '',
|
||||||
"sNewProUid" => $prjUid,
|
"sNewProUid" => $prjUid,
|
||||||
"project_type" => 'bpmn',
|
"project_type" => 'bpmn',
|
||||||
"isGranularImport" => '',
|
"isGranularImport" => $granularImport,
|
||||||
"objectGranularImport" => '',
|
"objectGranularImport" => $objectImport,
|
||||||
"project_type_aux" => $proType
|
"project_type_aux" => $proType
|
||||||
);
|
);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -217,25 +229,11 @@ if (isset($_POST["PRO_FILENAME"]) &&
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Check the Granular Import selected by User
|
|
||||||
$granularOptions = '';
|
|
||||||
$granularImport = 'NO';
|
|
||||||
if(isset($_POST["granularOptions"])){
|
|
||||||
$granularImport = 'YES';
|
|
||||||
$export = new \ProcessMaker\BusinessModel\Migrator\ExportObjects();
|
|
||||||
$granularOptions = $export->mapObjectList($_POST["granularOptions"]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$importer = new XmlImporter();
|
$importer = new XmlImporter();
|
||||||
$importer->setData("usr_uid", $_SESSION["USER_LOGGED"]);
|
$importer->setData("usr_uid", $_SESSION["USER_LOGGED"]);
|
||||||
$importer->setSourceFile(PATH_DOCUMENT . "input" . PATH_SEP . $_POST["PRO_FILENAME"]);
|
$importer->setSourceFile(PATH_DOCUMENT . "input" . PATH_SEP . $_POST["PRO_FILENAME"]);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if(version_compare($importer->getVersion(), '3.0', '>')){
|
|
||||||
//To do
|
|
||||||
}
|
|
||||||
|
|
||||||
$prjUid = $importer->import($option, $optionGroup, null, $granularImport,$granularOptions);
|
$prjUid = $importer->import($option, $optionGroup, null, $granularImport,$granularOptions);
|
||||||
|
|
||||||
G::LoadClass( 'Process' );
|
G::LoadClass( 'Process' );
|
||||||
|
|||||||
@@ -63,5 +63,28 @@ class ExportObjects
|
|||||||
throw $e;
|
throw $e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $objects
|
||||||
|
* @return array
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function getIdObjectList($objects)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$idObjectList = array();
|
||||||
|
foreach ($this->objectsList as $key => $val) {
|
||||||
|
$key++;
|
||||||
|
foreach ($objects as $row) {
|
||||||
|
if(strtoupper(str_replace(' ', '', $this->objectsList[$key - 1])) === $row){
|
||||||
|
array_push($idObjectList, $key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $idObjectList;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ abstract class Importer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function import($option = self::IMPORT_OPTION_CREATE_NEW, $optionGroup = self::GROUP_IMPORT_OPTION_CREATE_NEW, $generateUidFromJs = null, $granularImporter = 'NO', $granularOptions = '')
|
public function import($option = self::IMPORT_OPTION_CREATE_NEW, $optionGroup = self::GROUP_IMPORT_OPTION_CREATE_NEW, $generateUidFromJs = null, $objectsToImport = '')
|
||||||
{
|
{
|
||||||
$this->prepare();
|
$this->prepare();
|
||||||
|
|
||||||
@@ -170,10 +170,10 @@ abstract class Importer
|
|||||||
break;
|
break;
|
||||||
case self::IMPORT_OPTION_OVERWRITE:
|
case self::IMPORT_OPTION_OVERWRITE:
|
||||||
//Shouldn't generate new UID for all objects
|
//Shouldn't generate new UID for all objects
|
||||||
if($granularImporter === 'NO'){
|
if($objectsToImport === ''){
|
||||||
$this->removeProject();
|
$this->removeProject();
|
||||||
} else {
|
} else {
|
||||||
if(in_array('PROCESSDEFINITION', $granularOptions)){
|
if(in_array('PROCESSDEFINITION', $objectsToImport)){
|
||||||
$this->removeProject();
|
$this->removeProject();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -213,20 +213,14 @@ abstract class Importer
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Granular Import
|
//Granular Import
|
||||||
switch ($granularImporter) {
|
//$granularOptions merge
|
||||||
case '':
|
if($objectsToImport){
|
||||||
throw new \Exception(\G::LoadTranslation("ID_GRANULAR"),self::IMPORTED_PROJECT_DOES_NOT_EXISTS);
|
$granularObj = new \ProcessMaker\BusinessModel\Migrator\GranularImporter();
|
||||||
break;
|
$objectList = $granularObj->loadObjectsListSelected($this->importData, $objectsToImport);
|
||||||
case 'YES':
|
if(sizeof($objectList)>0){
|
||||||
if($granularOptions === 'YES'){
|
$granularObj->import($objectList);
|
||||||
$granularObj = new \ProcessMaker\BusinessModel\Migrator\GranularImporter();
|
}
|
||||||
$objectList = $granularObj->loadObjectsListSelected($this->importData, $granularOptions);
|
return $this->importData['tables']['bpmn']["project"][0]["prj_uid"];
|
||||||
if(sizeof($objectList)>0){
|
|
||||||
$granularObj->import($objectList);
|
|
||||||
}
|
|
||||||
return $this->importData['tables']['bpmn']["project"][0]["prj_uid"];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $this->doImport($generateUid);
|
$result = $this->doImport($generateUid);
|
||||||
|
|||||||
@@ -131,13 +131,13 @@ class XmlImporter extends Importer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Get the ProcessObject
|
//Get the ProcessObject
|
||||||
$this->objects = (isset($this->metadata['processObject'])) ? $this->metadata['processObject'] : '';
|
$this->objects = (isset($this->metadata['export_objects'])) ? $this->metadata['export_objects'] : '';
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
"tables" => $tables,
|
"tables" => $tables,
|
||||||
"files" => array("workflow" => $wfFiles, "bpmn" => array()),
|
"files" => array("workflow" => $wfFiles, "bpmn" => array()),
|
||||||
"version" => $this->version,
|
"version" => $this->getVersion(),
|
||||||
"objects" => $this->objects
|
"objects" => $this->getObjects()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user