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);
$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=") &&
isset($_FILES["PROCESS_FILENAME"]) &&
@@ -61,10 +73,6 @@ if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm
$arrayTrigger = $data["tables"]["workflow"]["triggers"];
$projectTitle = $data["tables"]["bpmn"]["project"][0]["prj_name"];
}
if(isset($data['objects'])){
$objectImport = $data['objects'];
$granularImport = 'YES';
}
break;
}
@@ -124,21 +132,25 @@ if (isset($_FILES["PROCESS_FILENAME"]) &&
try {
$opt1 = XmlImporter::IMPORT_OPTION_CREATE_NEW;
$opt2 = XmlImporter::GROUP_IMPORT_OPTION_CREATE_NEW;
if($_POST['generateUid'] === 'generate') {
$generateUid = true;
$prjUid = $importer->import($opt1,$opt2,$generateUid);
} elseif($_POST['generateUid'] === 'keep') {
$generateUid = false;
$prjUid = $importer->import($opt1,$opt2,$generateUid);
} else {
$prjUid = $importer->import();
$prjUid = '';
$proType = '';
if(isset($_POST['objectsToImport']) && sizeof(G::json_decode($_POST['objectsToImport']))){
$objectsToImport = G::json_decode($_POST['objectsToImport']);
if($_POST['generateUid'] === 'generate') {
$generateUid = true;
$prjUid = $importer->import($opt1,$opt2,$generateUid);
} 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(
"success" => true,
"catchMessage" => '',
@@ -148,8 +160,8 @@ if (isset($_FILES["PROCESS_FILENAME"]) &&
"affectedGroups" => '',
"sNewProUid" => $prjUid,
"project_type" => 'bpmn',
"isGranularImport" => '',
"objectGranularImport" => '',
"isGranularImport" => $granularImport,
"objectGranularImport" => $objectImport,
"project_type_aux" => $proType
);
} catch (Exception $e) {
@@ -217,25 +229,11 @@ if (isset($_POST["PRO_FILENAME"]) &&
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->setData("usr_uid", $_SESSION["USER_LOGGED"]);
$importer->setSourceFile(PATH_DOCUMENT . "input" . PATH_SEP . $_POST["PRO_FILENAME"]);
try {
if(version_compare($importer->getVersion(), '3.0', '>')){
//To do
}
$prjUid = $importer->import($option, $optionGroup, null, $granularImport,$granularOptions);
G::LoadClass( 'Process' );

View File

@@ -63,5 +63,28 @@ class ExportObjects
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();
@@ -170,10 +170,10 @@ abstract class Importer
break;
case self::IMPORT_OPTION_OVERWRITE:
//Shouldn't generate new UID for all objects
if($granularImporter === 'NO'){
if($objectsToImport === ''){
$this->removeProject();
} else {
if(in_array('PROCESSDEFINITION', $granularOptions)){
if(in_array('PROCESSDEFINITION', $objectsToImport)){
$this->removeProject();
}
}
@@ -213,20 +213,14 @@ abstract class Importer
}
//Granular Import
switch ($granularImporter) {
case '':
throw new \Exception(\G::LoadTranslation("ID_GRANULAR"),self::IMPORTED_PROJECT_DOES_NOT_EXISTS);
break;
case 'YES':
if($granularOptions === 'YES'){
$granularObj = new \ProcessMaker\BusinessModel\Migrator\GranularImporter();
$objectList = $granularObj->loadObjectsListSelected($this->importData, $granularOptions);
if(sizeof($objectList)>0){
$granularObj->import($objectList);
}
return $this->importData['tables']['bpmn']["project"][0]["prj_uid"];
}
break;
//$granularOptions merge
if($objectsToImport){
$granularObj = new \ProcessMaker\BusinessModel\Migrator\GranularImporter();
$objectList = $granularObj->loadObjectsListSelected($this->importData, $objectsToImport);
if(sizeof($objectList)>0){
$granularObj->import($objectList);
}
return $this->importData['tables']['bpmn']["project"][0]["prj_uid"];
}
$result = $this->doImport($generateUid);

View File

@@ -131,13 +131,13 @@ class XmlImporter extends Importer
}
}
//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(
"tables" => $tables,
"files" => array("workflow" => $wfFiles, "bpmn" => array()),
"version" => $this->version,
"objects" => $this->objects
"version" => $this->getVersion(),
"objects" => $this->getObjects()
);
}