/** * loads the PM Table field list from the database based in an action parameter * then assemble the List of fields with these data, for the configuration in cases list. * * @param String $action * @return Array $config * */ function getAdditionalFields($action, $confCasesList = array()) { $config = new Configurations(); $arrayConfig = $config->casesListDefaultFieldsAndConfig($action); if (is_array($confCasesList) && count($confCasesList) > 0 && count($confCasesList["second"]["data"]) > 0) { //For the case list builder in the enterprise plugin $caseColumns = array(); $caseReaderFields = array(); $caseReaderFieldsAux = array(); foreach ($confCasesList["second"]["data"] as $index1 => $value1) { $arrayField = $value1; if ($arrayField["fieldType"] != "key") { $arrayAux = array(); foreach ($arrayField as $index2 => $value2) { if ($index2 != "gridIndex" && $index2 != "fieldType") { $indexAux = $index2; $valueAux = $value2; switch ($index2) { case "name": $indexAux = "dataIndex"; break; case "label": $indexAux = "header"; if (preg_match("/^\\*\\*(.+)\\*\\*\$/", $value2, $arrayMatch)) { $valueAux = G::LoadTranslation($arrayMatch[1]); } break; } $arrayAux[$indexAux] = $valueAux; } } $caseColumns[] = $arrayAux; $caseReaderFields[] = array("name" => $arrayField["name"]); $caseReaderFieldsAux[] = $arrayField["name"]; } } foreach ($arrayConfig["caseReaderFields"] as $index => $value) { if (!in_array($value["name"], $caseReaderFieldsAux)) { $caseReaderFields[] = $value; } } $arrayConfig = array("caseColumns" => $caseColumns, "caseReaderFields" => $caseReaderFields, "rowsperpage" => $confCasesList["rowsperpage"], "dateformat" => $confCasesList["dateformat"]); } return $arrayConfig; }
/** * delete pm table * * @param string $httpData->rows */ public function delete ($httpData) { $result = new stdClass(); $rows = G::json_decode( stripslashes( $httpData->rows ) ); $errors = ''; $count = 0; $result = new StdClass(); $tableCasesList = array(); $conf = new Configurations(); $confCasesListDraft = $conf->getConfiguration( 'casesList', 'draft'); $confCasesListPaused = $conf->getConfiguration( 'casesList', 'paused'); $confCasesListSent = $conf->getConfiguration( 'casesList', 'sent'); $confCasesListTodo = $conf->getConfiguration( 'casesList', 'todo'); $confCasesListUnassigned = $conf->getConfiguration( 'casesList', 'unassigned'); $tableCasesList['draft'] = ($confCasesListDraft != null) ? (isset($confCasesListDraft['PMTable']) ? $confCasesListDraft['PMTable'] : '') : ''; $tableCasesList['paused'] = ($confCasesListPaused != null) ? (isset($confCasesListPaused['PMTable']) ? $confCasesListPaused['PMTable'] : '') : ''; $tableCasesList['sent'] = ($confCasesListSent != null) ? (isset($confCasesListSent['PMTable']) ? $confCasesListSent['PMTable'] : '') : ''; $tableCasesList['todo'] = ($confCasesListTodo != null) ? (isset($confCasesListTodo['PMTable']) ? $confCasesListTodo['PMTable'] : '') : ''; $tableCasesList['unassigned'] = ($confCasesListUnassigned != null) ? (isset($confCasesListUnassigned['PMTable']) ? $confCasesListUnassigned['PMTable'] : '') : ''; foreach ($rows as $row) { try { $at = new AdditionalTables(); $table = $at->load( $row->id ); if (! isset( $table )) { require_once 'classes/model/ReportTable.php'; $rtOld = new ReportTable(); $existReportTableOld = $rtOld->load( $row->id ); if (count($existReportTableOld) == 0) { throw new Exception( G::LoadTranslation('ID_TABLE_NOT_EXIST_SKIPPED') ); } } foreach ($tableCasesList as $action => $idTable) { if ($idTable == $row->id) { $conf = new Configurations(); $resultJson = $conf->casesListDefaultFieldsAndConfig($action); $conf->saveObject($resultJson, "casesList", $action, "", "", ""); } } if ($row->type == 'CLASSIC') { G::LoadClass( 'reportTables' ); $rp = new reportTables(); $rp->deleteReportTable( $row->id ); $count ++; } else { $at->deleteAll( $row->id ); $count ++; } } catch (Exception $e) { $tableName = isset( $table['ADD_TAB_NAME'] ) ? $table['ADD_TAB_NAME'] : $row->id; $errors .= $e->getMessage() . "\n"; continue; } } if ($errors == '') { $result->success = true; $result->message = $count.G::LoadTranslation( 'ID_TABLES_REMOVED_SUCCESSFULLY' ); G::auditLog("DeletePmtable", "Table Name: ". $table['ADD_TAB_NAME']." Table ID: (".$table['ADD_TAB_UID'].") "); } else { $result->success = false; $result->message = $count. G::LoadTranslation( 'ID_TABLES_REMOVED_WITH_ERRORS' ) .$errors; } $result->errors = $errors; return $result; }