MT-28 manejo de respuestas ajax... para la visulaizacion del listObject

This commit is contained in:
dheeyi
2016-03-23 13:28:28 -04:00
parent d3a211a627
commit 62851d499e
4 changed files with 68 additions and 53 deletions

View File

@@ -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' );

View File

@@ -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;
}
}
} }

View File

@@ -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);

View File

@@ -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()
); );
} }