HOR-4686
This commit is contained in:
@@ -1069,94 +1069,117 @@ class AdditionalTables extends BaseAdditionalTables
|
|||||||
return $reportTables;
|
return $reportTables;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all data of AdditionalTables.
|
||||||
|
*
|
||||||
|
* @param int $start
|
||||||
|
* @param int $limit
|
||||||
|
* @param string $filter
|
||||||
|
* @param array $process
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
public function getAll($start = 0, $limit = 20, $filter = '', $process = null)
|
public function getAll($start = 0, $limit = 20, $filter = '', $process = null)
|
||||||
{
|
{
|
||||||
$oCriteria = new Criteria('workflow');
|
$criteria = new Criteria('workflow');
|
||||||
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_UID);
|
$criteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_UID);
|
||||||
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
$criteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
||||||
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_DESCRIPTION);
|
$criteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_DESCRIPTION);
|
||||||
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TYPE);
|
$criteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TYPE);
|
||||||
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TAG);
|
$criteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TAG);
|
||||||
$oCriteria->addSelectColumn(AdditionalTablesPeer::PRO_UID);
|
$criteria->addSelectColumn(AdditionalTablesPeer::PRO_UID);
|
||||||
$oCriteria->addSelectColumn(AdditionalTablesPeer::DBS_UID);
|
$criteria->addSelectColumn(AdditionalTablesPeer::DBS_UID);
|
||||||
|
|
||||||
if (isset($process)) {
|
if (isset($process)) {
|
||||||
foreach ($process as $key => $pro_uid) {
|
foreach ($process as $key => $pro_uid) {
|
||||||
if ($key == 'equal') {
|
if ($key == 'equal') {
|
||||||
$oCriteria->add(AdditionalTablesPeer::PRO_UID, $pro_uid, Criteria::EQUAL);
|
$criteria->add(AdditionalTablesPeer::PRO_UID, $pro_uid, Criteria::EQUAL);
|
||||||
} else {
|
} else {
|
||||||
$oCriteria->add(AdditionalTablesPeer::PRO_UID, $pro_uid, Criteria::NOT_EQUAL);
|
$criteria->add(AdditionalTablesPeer::PRO_UID, $pro_uid, Criteria::NOT_EQUAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($filter != '' && is_string($filter)) {
|
if ($filter != '' && is_string($filter)) {
|
||||||
$oCriteria->add(
|
$subCriteria2 = $criteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_DESCRIPTION, '%'
|
||||||
$oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_NAME, '%' . $filter . '%', Criteria::LIKE)->addOr(
|
. $filter
|
||||||
$oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_DESCRIPTION, '%' . $filter . '%', Criteria::LIKE)
|
. '%', Criteria::LIKE);
|
||||||
)
|
$subCriteria1 = $criteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_NAME, '%'
|
||||||
);
|
. $filter
|
||||||
|
. '%', Criteria::LIKE)
|
||||||
|
->addOr($subCriteria2);
|
||||||
|
$criteria->add($subCriteria1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_POST['sort'])) {
|
$criteria->addAsColumn("PRO_TITLE", ProcessPeer::PRO_TITLE);
|
||||||
if ($_POST['dir'] == 'ASC') {
|
$criteria->addAsColumn("PRO_DESCRIPTION", ProcessPeer::PRO_DESCRIPTION);
|
||||||
eval('$oCriteria->addAscendingOrderByColumn(AdditionalTablesPeer::' . $_POST['sort'] . ');');
|
$criteria->addJoin(AdditionalTablesPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
|
||||||
} else {
|
|
||||||
eval('$oCriteria->addDescendingOrderByColumn(AdditionalTablesPeer::' . $_POST['sort'] . ');');
|
$stringBuild = '';
|
||||||
|
$stringSql = "ADDITIONAL_TABLES.ADD_TAB_NAME IN ("
|
||||||
|
. "SELECT TABLE_NAME "
|
||||||
|
. "FROM information_schema.tables "
|
||||||
|
. "WHERE table_schema = DATABASE()"
|
||||||
|
. ")";
|
||||||
|
$buildNumberRows = clone $criteria;
|
||||||
|
$buildNumberRows->clear();
|
||||||
|
$buildNumberRows->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
||||||
|
$buildNumberRows->addAsColumn("EXISTS_TABLE", $stringSql);
|
||||||
|
$dataset1 = AdditionalTablesPeer::doSelectRS($buildNumberRows);
|
||||||
|
$dataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
while ($dataset1->next()) {
|
||||||
|
$row = $dataset1->getRow();
|
||||||
|
$stringCount = "'" . G::LoadTranslation('ID_TABLE_NOT_FOUND') . "'";
|
||||||
|
if ($row["EXISTS_TABLE"] === "1") {
|
||||||
|
$stringCount = "(SELECT COUNT(*) FROM " . $row["ADD_TAB_NAME"] . ")";
|
||||||
}
|
}
|
||||||
|
$stringBuild = $stringBuild
|
||||||
|
. "WHEN '" . $row["ADD_TAB_NAME"]
|
||||||
|
. "' THEN " . $stringCount
|
||||||
|
. " \n";
|
||||||
|
}
|
||||||
|
$clauseRows = empty($stringBuild) ? "''" : "(CASE "
|
||||||
|
. AdditionalTablesPeer::ADD_TAB_NAME
|
||||||
|
. " "
|
||||||
|
. $stringBuild
|
||||||
|
. " END)";
|
||||||
|
$criteria->addAsColumn("NUM_ROWS", $clauseRows);
|
||||||
|
|
||||||
|
if (empty($_POST['sort'])) {
|
||||||
|
$criteria->addAscendingOrderByColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
||||||
} else {
|
} else {
|
||||||
$oCriteria->addAscendingOrderByColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
$column = $_POST["sort"];
|
||||||
|
if (defined('AdditionalTablesPeer::' . $column)) {
|
||||||
|
$column = constant('AdditionalTablesPeer::' . $column);
|
||||||
|
}
|
||||||
|
if ($column === "NUM_ROWS") {
|
||||||
|
$column = "IF(" . $column . "='" . G::LoadTranslation('ID_TABLE_NOT_FOUND') . "',-1," . $column . ")";
|
||||||
|
}
|
||||||
|
if ($_POST['dir'] == 'ASC') {
|
||||||
|
$criteria->addAscendingOrderByColumn($column);
|
||||||
|
} else {
|
||||||
|
$criteria->addDescendingOrderByColumn($column);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$criteriaCount = clone $oCriteria;
|
$criteriaCount = clone $criteria;
|
||||||
$count = AdditionalTablesPeer::doCount($criteriaCount);
|
$count = AdditionalTablesPeer::doCount($criteriaCount);
|
||||||
|
|
||||||
$oCriteria->setLimit($limit);
|
$criteria->setLimit($limit);
|
||||||
$oCriteria->setOffset($start);
|
$criteria->setOffset($start);
|
||||||
|
|
||||||
$oDataset = AdditionalTablesPeer::doSelectRS($oCriteria);
|
$dataset = AdditionalTablesPeer::doSelectRS($criteria);
|
||||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
|
||||||
$addTables = array();
|
$addTables = [];
|
||||||
$proUids = array();
|
while ($dataset->next()) {
|
||||||
|
$row = $dataset->getRow();
|
||||||
while ($oDataset->next()) {
|
|
||||||
$row = $oDataset->getRow();
|
|
||||||
$row['PRO_TITLE'] = $row['PRO_DESCRIPTION'] = '';
|
|
||||||
$addTables[] = $row;
|
$addTables[] = $row;
|
||||||
if ($row['PRO_UID'] != '') {
|
|
||||||
$proUids[] = $row['PRO_UID'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//process details will have the info about the processes
|
return [
|
||||||
$procDetails = array();
|
'rows' => $addTables,
|
||||||
|
'count' => $count
|
||||||
if (count($proUids) > 0) {
|
];
|
||||||
//now get the labels for all process, using an array of Uids,
|
|
||||||
$c = new Criteria('workflow');
|
|
||||||
$c->add(ProcessPeer::PRO_UID, $proUids, Criteria::IN);
|
|
||||||
$dt = ProcessPeer::doSelectRS($c);
|
|
||||||
$dt->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
||||||
|
|
||||||
while ($dt->next()) {
|
|
||||||
$row = $dt->getRow();
|
|
||||||
$procDetails[$row['PRO_UID']]['PRO_TITLE'] = $row['PRO_TITLE'];
|
|
||||||
$procDetails[$row['PRO_UID']]['PRO_DESCRIPTION'] = $row['PRO_DESCRIPTION'];
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($addTables as $i => $addTable) {
|
|
||||||
if (isset($procDetails[$addTable['PRO_UID']]['PRO_TITLE'])) {
|
|
||||||
$addTables[$i]['PRO_TITLE'] = $procDetails[$addTable['PRO_UID']]['PRO_TITLE'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($procDetails[$addTable['PRO_UID']]['PRO_DESCRIPTION'])) {
|
|
||||||
$addTables[$i]['PRO_DESCRIPTION'] = $procDetails[$addTable['PRO_UID']]['PRO_DESCRIPTION'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return array('rows' => $addTables, 'count' => $count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -26,68 +26,70 @@ class pmTablesProxy extends HttpProxyController
|
|||||||
* @param string $httpData->limit
|
* @param string $httpData->limit
|
||||||
* @param string $httpData->textFilter
|
* @param string $httpData->textFilter
|
||||||
*/
|
*/
|
||||||
public function getList ($httpData)
|
public function getList($httpData)
|
||||||
{
|
{
|
||||||
$configurations = new Configurations();
|
$configurations = new Configurations();
|
||||||
$processMap = new ProcessMap();
|
$processMap = new ProcessMap();
|
||||||
|
|
||||||
// setting parameters
|
// setting parameters
|
||||||
$config = $configurations->getConfiguration( 'additionalTablesList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
|
$config = $configurations->getConfiguration('additionalTablesList', 'pageSize', '', $_SESSION['USER_LOGGED']);
|
||||||
$env = $configurations->getConfiguration( 'ENVIRONMENT_SETTINGS', '' );
|
$env = $configurations->getConfiguration('ENVIRONMENT_SETTINGS', '');
|
||||||
$limit_size = isset( $config->pageSize ) ? $config['pageSize'] : 20;
|
$limit_size = isset($config->pageSize) ? $config['pageSize'] : 20;
|
||||||
$start = isset( $httpData->start ) ? $httpData->start : 0;
|
$start = isset($httpData->start) ? $httpData->start : 0;
|
||||||
$limit = isset( $httpData->limit ) ? $httpData->limit : $limit_size;
|
$limit = isset($httpData->limit) ? $httpData->limit : $limit_size;
|
||||||
$filter = isset( $httpData->textFilter ) ? $httpData->textFilter : '';
|
$filter = isset($httpData->textFilter) ? $httpData->textFilter : '';
|
||||||
$pro_uid = isset( $httpData->pro_uid ) ? $httpData->pro_uid : null;
|
$pro_uid = isset($httpData->pro_uid) ? $httpData->pro_uid : null;
|
||||||
|
|
||||||
if ($pro_uid !== null) {
|
if ($pro_uid !== null) {
|
||||||
$process = $pro_uid == '' ? array ('not_equal' => $pro_uid
|
$process = $pro_uid == '' ? ['not_equal' => $pro_uid] : ['equal' => $pro_uid];
|
||||||
) : array ('equal' => $pro_uid);
|
$addTables = AdditionalTables::getAll(false, false, $filter, $process);
|
||||||
$addTables = AdditionalTables::getAll( false, false, $filter, $process );
|
|
||||||
|
|
||||||
$c = $processMap->getReportTablesCriteria( $pro_uid );
|
$c = $processMap->getReportTablesCriteria($pro_uid);
|
||||||
$oDataset = RoutePeer::doSelectRS( $c );
|
$oDataset = RoutePeer::doSelectRS($c);
|
||||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
$reportTablesOldList = array ();
|
$reportTablesOldList = array();
|
||||||
while ($oDataset->next()) {
|
while ($oDataset->next()) {
|
||||||
$reportTablesOldList[] = $oDataset->getRow();
|
$reportTablesOldList[] = $oDataset->getRow();
|
||||||
}
|
}
|
||||||
foreach ($reportTablesOldList as $i => $oldRepTab) {
|
foreach ($reportTablesOldList as $i => $oldRepTab) {
|
||||||
if($filter != ''){
|
if ($filter != '') {
|
||||||
if((stripos($oldRepTab['REP_TAB_NAME'], $filter) !== false) || (stripos($oldRepTab['REP_TAB_TITLE'], $filter) !== false)){
|
if ((stripos($oldRepTab['REP_TAB_NAME'], $filter) !== false) ||
|
||||||
$addTables['rows'][] = array ('ADD_TAB_UID' => $oldRepTab['REP_TAB_UID'],'PRO_UID' => $oldRepTab['PRO_UID'],'DBS_UID' => ($oldRepTab['REP_TAB_CONNECTION'] == 'wf' ? 'workflow' : 'rp'),'ADD_TAB_DESCRIPTION' => $oldRepTab['REP_TAB_TITLE'],'ADD_TAB_NAME' => $oldRepTab['REP_TAB_NAME'],'ADD_TAB_TYPE' => $oldRepTab['REP_TAB_TYPE'],'TYPE' => 'CLASSIC' );
|
(stripos($oldRepTab['REP_TAB_TITLE'], $filter) !== false)) {
|
||||||
}
|
$addTables['rows'][] = [
|
||||||
} else {
|
'ADD_TAB_UID' => $oldRepTab['REP_TAB_UID'],
|
||||||
$addTables['rows'][] = array ('ADD_TAB_UID' => $oldRepTab['REP_TAB_UID'],'PRO_UID' => $oldRepTab['PRO_UID'],'DBS_UID' => ($oldRepTab['REP_TAB_CONNECTION'] == 'wf' ? 'workflow' : 'rp'),'ADD_TAB_DESCRIPTION' => $oldRepTab['REP_TAB_TITLE'],'ADD_TAB_NAME' => $oldRepTab['REP_TAB_NAME'],'ADD_TAB_TYPE' => $oldRepTab['REP_TAB_TYPE'],'TYPE' => 'CLASSIC' );
|
'PRO_UID' => $oldRepTab['PRO_UID'],
|
||||||
}
|
'DBS_UID' => ($oldRepTab['REP_TAB_CONNECTION'] == 'wf' ? 'workflow' : 'rp'),
|
||||||
|
'ADD_TAB_DESCRIPTION' => $oldRepTab['REP_TAB_TITLE'],
|
||||||
|
'ADD_TAB_NAME' => $oldRepTab['REP_TAB_NAME'],
|
||||||
|
'ADD_TAB_TYPE' => $oldRepTab['REP_TAB_TYPE'],
|
||||||
|
'TYPE' => 'CLASSIC'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$addTables['rows'][] = [
|
||||||
|
'ADD_TAB_UID' => $oldRepTab['REP_TAB_UID'],
|
||||||
|
'PRO_UID' => $oldRepTab['PRO_UID'],
|
||||||
|
'DBS_UID' => ($oldRepTab['REP_TAB_CONNECTION'] == 'wf' ? 'workflow' : 'rp'),
|
||||||
|
'ADD_TAB_DESCRIPTION' => $oldRepTab['REP_TAB_TITLE'],
|
||||||
|
'ADD_TAB_NAME' => $oldRepTab['REP_TAB_NAME'],
|
||||||
|
'ADD_TAB_TYPE' => $oldRepTab['REP_TAB_TYPE'],
|
||||||
|
'TYPE' => 'CLASSIC'
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$addTables['count'] = count($addTables['rows']);
|
$addTables['count'] = count($addTables['rows']);
|
||||||
if($start != 0){
|
if ($start != 0) {
|
||||||
$addTables['rows'] = array_splice($addTables['rows'], $start);
|
$addTables['rows'] = array_splice($addTables['rows'], $start);
|
||||||
}
|
}
|
||||||
$addTables['rows'] = array_splice($addTables['rows'], 0, $limit);
|
$addTables['rows'] = array_splice($addTables['rows'], 0, $limit);
|
||||||
} else {
|
} else {
|
||||||
$addTables = AdditionalTables::getAll( $start, $limit, $filter );
|
$addTables = AdditionalTables::getAll($start, $limit, $filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($addTables['rows'] as $i => $table) {
|
foreach ($addTables['rows'] as $i => $table) {
|
||||||
try {
|
//removing the prefix "PMT" to allow alphabetical order (just in view)
|
||||||
$con = Propel::getConnection( PmTable::resolveDbSource( $table['DBS_UID'] ) );
|
if (substr($addTables['rows'][$i]['ADD_TAB_NAME'], 0, 4) == 'PMT_') {
|
||||||
$stmt = $con->createStatement();
|
$addTables['rows'][$i]['ADD_TAB_NAME'] = substr($addTables['rows'][$i]['ADD_TAB_NAME'], 4);
|
||||||
$rs = $stmt->executeQuery( 'SELECT COUNT(*) AS NUM_ROWS from ' . $table['ADD_TAB_NAME'] );
|
|
||||||
if ($rs->next()) {
|
|
||||||
$r = $rs->getRow();
|
|
||||||
$addTables['rows'][$i]['NUM_ROWS'] = $r['NUM_ROWS'];
|
|
||||||
} else {
|
|
||||||
$addTables['rows'][$i]['NUM_ROWS'] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//removing the prefix "PMT" to allow alphabetical order (just in view)
|
|
||||||
if (substr( $addTables['rows'][$i]['ADD_TAB_NAME'], 0, 4 ) == 'PMT_') {
|
|
||||||
$addTables['rows'][$i]['ADD_TAB_NAME'] = substr( $addTables['rows'][$i]['ADD_TAB_NAME'], 4 );
|
|
||||||
}
|
|
||||||
} catch (Exception $e) {
|
|
||||||
$addTables['rows'][$i]['NUM_ROWS'] = G::LoadTranslation( 'ID_TABLE_NOT_FOUND' );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ Ext.onReady(function(){
|
|||||||
cmodelColumns.push({header: _('ID_NAME'), dataIndex: 'ADD_TAB_NAME', width: 300, align:'left', renderer: function(v,p,r){
|
cmodelColumns.push({header: _('ID_NAME'), dataIndex: 'ADD_TAB_NAME', width: 300, align:'left', renderer: function(v,p,r){
|
||||||
return r.get('TYPE') == 'CLASSIC'? v + ' <span style="font-size:9px; color:green">('+ _('ID_OLD_VERSION') +')</font>' : v;
|
return r.get('TYPE') == 'CLASSIC'? v + ' <span style="font-size:9px; color:green">('+ _('ID_OLD_VERSION') +')</font>' : v;
|
||||||
}});
|
}});
|
||||||
cmodelColumns.push({header: _('ID_DESCRIPTION'), dataIndex: 'ADD_TAB_DESCRIPTION', sortable:false, width: 400, hidden:false, align:'left', renderer: function(v,p,r){
|
cmodelColumns.push({header: _('ID_DESCRIPTION'), dataIndex: 'ADD_TAB_DESCRIPTION', sortable: true, width: 400, hidden: false, align: 'left', renderer: function (v, p, r) {
|
||||||
if (r.get('ADD_TAB_TAG')) {
|
if (r.get('ADD_TAB_TAG')) {
|
||||||
tag = r.get('ADD_TAB_TAG').replace('plugin@', '');
|
tag = r.get('ADD_TAB_TAG').replace('plugin@', '');
|
||||||
tag = tag.charAt(0).toUpperCase() + tag.slice(1);
|
tag = tag.charAt(0).toUpperCase() + tag.slice(1);
|
||||||
@@ -304,7 +304,9 @@ Ext.onReady(function(){
|
|||||||
|
|
||||||
cmodelColumns.push({dataIndex: "DBS_UID", hidden: true, hideable: false});
|
cmodelColumns.push({dataIndex: "DBS_UID", hidden: true, hideable: false});
|
||||||
|
|
||||||
cmodelColumns.push({header: _('ID_RECORDS'), dataIndex: 'NUM_ROWS', width: 90, align:'left'});
|
cmodelColumns.push({header: _('ID_RECORDS'), dataIndex: 'NUM_ROWS', width: 90, align:'left', renderer: function (v, p, r) {
|
||||||
|
return '<div style="text-align:' + (isNaN(v) ? 'left' : 'right') + ';">' + v + '</div>';
|
||||||
|
}});
|
||||||
|
|
||||||
if (PRO_UID === false) {
|
if (PRO_UID === false) {
|
||||||
cmodelColumns.push({header: _('ID_PROCESS'), dataIndex: 'PRO_TITLE', width: 180, align:'left'});
|
cmodelColumns.push({header: _('ID_PROCESS'), dataIndex: 'PRO_TITLE', width: 180, align:'left'});
|
||||||
|
|||||||
Reference in New Issue
Block a user