Merge branch '18.4' of https://git.zcorp.cc/easycorp/zentaopms into cyy_fixbug

This commit is contained in:
caoyanyi
2023-04-24 23:19:42 +08:00
40 changed files with 255 additions and 143 deletions
+6
View File
@@ -384,6 +384,12 @@ INNER JOIN zt_project AS t2 ON t1.`project` = t2.`id`
SET t1.`addedDate` = t2.`openedDate`, t1.`addedBy` = t2.`openedBy`
WHERE t1.`type` = 'project' AND t1.`main` = '1';
/* Update the execution document. */
UPDATE zt_doc AS t1
LEFT JOIN zt_project t2 ON t1.`execution` = t2.`id`
SET t1.`project` = t2.`project`
WHERE t1.`execution` != '0' AND t1.`project` = '0' AND t2.`project` != '0';
/* Update the execution master library. */
UPDATE zt_doclib AS t1
INNER JOIN zt_project AS t2 ON t1.`execution` = t2.`id`
+5 -5
View File
@@ -35,7 +35,7 @@ class control extends baseControl
$this->app->setOpenApp();
if(!isset($this->config->bizVersion)) return false;
if($this->config->edition == 'open') return false;
/* Code for task #9224. Set requiredFields for workflow. */
if($this->dbh and (defined('IN_USE') or (defined('RUN_MODE') and RUN_MODE == 'api')))
@@ -424,7 +424,7 @@ class control extends baseControl
*/
public function buildOperateMenu($object, $type = 'view')
{
if(!isset($this->config->bizVersion)) return false;
if($this->config->edition == 'open') return false;
$moduleName = $this->moduleName;
return $this->$moduleName->buildOperateMenu($object, $type);
@@ -439,7 +439,7 @@ class control extends baseControl
*/
public function executeHooks($objectID)
{
if(!isset($this->config->bizVersion)) return false;
if($this->config->edition == 'open') return false;
$moduleName = $this->moduleName;
return $this->$moduleName->executeHooks($objectID);
@@ -454,7 +454,7 @@ class control extends baseControl
*/
public function getFlowExportFields()
{
if(!isset($this->config->bizVersion)) return array();
if($this->config->edition == 'open') return array();
$moduleName = $this->moduleName;
return $this->$moduleName->getFlowExportFields();
@@ -478,7 +478,7 @@ class control extends baseControl
*/
public function printExtendFields($object, $type, $extras = '', $print = true, $moduleName = '', $methodName = '')
{
if(!isset($this->config->bizVersion)) return false;
if($this->config->edition == 'open') return false;
$moduleName = $moduleName ? $moduleName : $this->app->getModuleName();
$methodName = $methodName ? $methodName : $this->app->getMethodName();
+9 -9
View File
@@ -99,7 +99,7 @@ class model extends baseModel
if(empty($method)) $method = $methodName;
static $actions = array();
if(isset($this->config->bizVersion))
if($this->config->edition != 'open')
{
if(empty($actions[$moduleName]))
{
@@ -155,7 +155,7 @@ class model extends baseModel
*/
public function buildFlowMenu($module, $data, $type = 'browse', $show = '')
{
if(!isset($this->config->bizVersion)) return '';
if($this->config->edition == 'open') return '';
$moduleName = $module;
if(strpos($module, '.') !== false) list($appName, $moduleName) = explode('.', $module);
@@ -233,7 +233,7 @@ class model extends baseModel
*/
public function processStatus($module, $record)
{
if(!isset($this->config->bizVersion) or empty($record->subStatus)) return zget($this->lang->$module->statusList, $record->status);
if($this->config->edition == 'open' or empty($record->subStatus)) return zget($this->lang->$module->statusList, $record->status);
return $this->loadModel('workflowfield')->processSubStatus($module, $record);
}
@@ -247,7 +247,7 @@ class model extends baseModel
*/
public function processExportData($data)
{
if(!isset($this->config->bizVersion)) return $data;
if($this->config->edition == 'open') return $data;
return $this->loadModel('workflowfield')->processExportData($data);
}
@@ -261,7 +261,7 @@ class model extends baseModel
*/
public function processExportOptions($data)
{
if(!isset($this->config->bizVersion)) return $data;
if($this->config->edition == 'open') return $data;
return $this->loadModel('workflowfield')->processExportOptions($data);
}
@@ -275,7 +275,7 @@ class model extends baseModel
*/
public function processImportData($data)
{
if(!isset($this->config->bizVersion)) return $data;
if($this->config->edition == 'open') return $data;
return $this->loadModel('workflowfield')->processImportData($data);
}
@@ -288,7 +288,7 @@ class model extends baseModel
*/
public function getFlowExtendFields()
{
if(!isset($this->config->bizVersion)) return array();
if($this->config->edition == 'open') return array();
return $this->loadModel('flow')->getExtendFields($this->app->getModuleName(), $this->app->getMethodName());
}
@@ -301,7 +301,7 @@ class model extends baseModel
*/
public function getFlowExportFields()
{
if(!isset($this->config->bizVersion)) return array();
if($this->config->edition == 'open') return array();
return $this->loadModel('workflowfield')->getExportFields($this->app->getModuleName());
}
@@ -315,7 +315,7 @@ class model extends baseModel
*/
public function executeHooks($objectID)
{
if(!isset($this->config->bizVersion)) return false;
if($this->config->edition == 'open') return false;
$moduleName = $this->app->getModuleName();
$methodName = $this->app->getMethodName();
+1 -1
View File
@@ -478,7 +478,7 @@ class router extends baseRouter
if(empty($this->rawMethod)) $this->rawMethod = $this->methodName;
/* If is not a biz version or is in install mode or in in upgrade mode, call parent method. */
if(!isset($this->config->bizVersion) or defined('IN_INSTALL') or defined('IN_UPGRADE')) return parent::setControlFile($exitIfNone);
if($this->config->edition == 'open' or defined('IN_INSTALL') or defined('IN_UPGRADE')) return parent::setControlFile($exitIfNone);
/* Check if the requested module is defined in workflow. */
$flow = $this->dbh->query("SELECT * FROM " . TABLE_WORKFLOW . " WHERE `module` = '$this->moduleName'")->fetch();
+1 -3
View File
@@ -1136,9 +1136,7 @@ class actionModel extends model
->beginIF($account != 'all')->andWhere('actor')->eq($account)->fi()
->beginIF($beginDate)->andWhere('date')->ge($beginDate)->fi()
->beginIF(is_numeric($productID))->andWhere('product')->like("%,$productID,%")->fi()
->andWhere()
->markLeft(1)
->where('1=1')
->andWhere('1=1', true)
->beginIF(is_numeric($projectID))->andWhere('project')->eq($projectID)->fi()
->beginIF(!empty($executions))->andWhere('execution')->in(array_keys($executions))->fi()
->beginIF(is_numeric($executionID))->andWhere('execution')->eq($executionID)->fi()
+1 -1
View File
@@ -478,7 +478,7 @@ class admin extends control
$response['thisTable'] = '';
$response['nextTable'] = '';
$tableEngines = $this->loadModel('misc')->getTableEngines();
$tableEngines = $this->dao->getTableEngines();
$thisTable = '';
$nextTable = '';
+12 -3
View File
@@ -52,6 +52,15 @@ class api extends control
$objectType = $this->objectType;
$objectID = $this->objectID;
$isFirstLoad = $libID ? false : true;
if($libID)
{
$lib = $this->doc->getLibById($libID);
if($objectType == 'nolink' and !$objectID and ($lib->product or $lib->project))
{
$objectType = $lib->product ? 'product' : 'project';
$objectID = $lib->product ? $lib->product : $lib->project;
}
}
if($release)
{
@@ -158,7 +167,7 @@ class api extends control
if(!strpos($this->server->http_referer, 'space') and !strpos($this->server->http_referer, 'api')) setCookie("docSpaceParam", '', $this->config->cookieLife, $this->config->webRoot, '', false, true);
/* Get all api doc libraries. */
$libs = $this->doc->getApiLibs($libID);
$libs = $this->doc->getApiLibs($libID, $this->objectType, $this->objectID);
$api = $this->api->getLibById($apiID, $version, $release);
if($api)
{
@@ -174,7 +183,7 @@ class api extends control
}
/* Crumbs links array. */
$lib = zget($libs, $libID);
$lib = zget($libs, $libID);
$type = $lib->product ? 'product' : ($lib->project ? 'project' : 'unlink');
$methodName = $type != 'unlink' ? $type . 'Space' : 'index';
@@ -768,7 +777,7 @@ class api extends control
if(in_array($this->session->spaceType, array('product', 'project')))
{
$this->lang->doc->menu->api['exclude'] = 'api-' . $this->app->rawMethod;
$this->lang->doc->menu->api['exclude'] = 'api-' . $this->app->rawMethod . ',' . $this->app->rawMethod;
$this->lang->doc->menu->{$this->session->spaceType}['subModule'] = 'api';
}
else
+1 -1
View File
@@ -115,7 +115,7 @@
<?php foreach($apiList as $api):?>
<li class="list-group-item">
<div class="heading <?php echo $api->method;?>">
<a href="<?php echo helper::createLink('api', 'index', "libID={$api->lib}&moduleID=0&apiID={$api->id}&version=0&release=$release");?>" data-app="<?php echo $app->tab;?>">
<a href="<?php echo helper::createLink('api', 'index', "libID={$api->lib}&moduleID=0&apiID={$api->id}&version=0");?>" data-app="<?php echo $app->tab;?>">
<span class="label label-primary"><?php echo $api->method;?></span>
<span class="path" title="<?php echo $api->path;?>"><?php echo $api->path;?></span>
<span class="desc" title="<?php echo $api->title;?>"><?php echo $api->title;?></span>
+19 -6
View File
@@ -61,6 +61,8 @@ html[lang="de"] .block-productdoc .c-user{width: 105px;}
.block-productdoc .table .c-title > .draft {background-color:rgba(129, 102, 238, 0.12); color:#8166EE;}
</style>
<?php $blockNavId = 'nav-' . uniqid(); ?>
<?php js::set('emptyProducts', empty($products));?>
<?php js::set('emptyInvolveds', empty($involveds));?>
<script>
$(function()
{
@@ -90,6 +92,18 @@ function switch<?php echo "block{$block->id}";?>Product(obj)
function change<?php echo "block{$block->id}";?>ProductType(type)
{
var hiddenData = type == 'all' ? emptyProducts : emptyInvolveds;
if(hiddenData)
{
$('.block-productdoc<?php echo "#block{$block->id}";?> .dataBlock').addClass('hidden');
$('.block-productdoc<?php echo "#block{$block->id}";?> .block-statistic > .table-empty-tip').removeClass('hidden');
}
else
{
$('.block-productdoc<?php echo "#block{$block->id}";?> .dataBlock').removeClass('hidden');
$('.block-productdoc<?php echo "#block{$block->id}";?> .block-statistic > .table-empty-tip').addClass('hidden');
}
$('.block-productdoc<?php echo "#block{$block->id}";?> .nav.products').toggleClass('hidden', type != 'all');
$('.block-productdoc<?php echo "#block{$block->id}";?> .nav.involveds').toggleClass('hidden', type != 'involved');
$('.block-productdoc<?php echo "#block{$block->id}";?> #productType .btn').html($('.block-productdoc<?php echo "#block{$block->id}";?> #productType [data-type=' + type + ']').html() + " <span class='caret'></span>");
@@ -112,14 +126,14 @@ function change<?php echo "block{$block->id}";?>ProductType(type)
<li><a href="javascript:change<?php echo "block{$block->id}";?>ProductType('all')" data-type='all'><?php echo $lang->product->all;?></a></li>
</ul>
</div>
<?php $hiddenBlock = empty($involveds) ? 'hidden' : '';?>
<?php $hiddenEmpty = empty($involveds) ? '' : 'hidden';?>
<div class="panel-body">
<div class="table-row block-statistic">
<?php if(empty($products) and empty($involveds)):?>
<div class="table-empty-tip">
<div class="table-empty-tip <?php echo $hiddenEmpty;?>">
<p><span class="text-muted"><?php echo $lang->block->emptyTip;?></span></p>
</div>
<?php else:?>
<div class="col col-nav">
<div class="col col-nav dataBlock <?php echo $hiddenBlock;?>">
<ul class="nav nav-stacked nav-secondary scrollbar-hover involveds">
<li class='switch-icon prev'><a href='###' onclick='switch<?php echo "block{$block->id}";?>Product(this)'><i class='icon icon-arrow-left'></i></a></li>
<?php $selected = key($involveds);?>
@@ -142,7 +156,7 @@ function change<?php echo "block{$block->id}";?>ProductType(type)
<li class='switch-icon next'><a href='###' onclick='switch<?php echo "block{$block->id}";?>Product(this)'><i class='icon icon-arrow-right'></i></a></li>
</ul>
</div>
<div class="col tab-content">
<div class="col tab-content dataBlock <?php echo $hiddenBlock;?>">
<?php foreach($products as $product):?>
<div class="tab-pane fade<?php if($product->id == $selected) echo ' active in';?>" id='<?php echo "tab3{$blockNavId}Content{$product->id}";?>'>
<?php if(isset($docGroup[$product->id])):?>
@@ -190,6 +204,5 @@ function change<?php echo "block{$block->id}";?>ProductType(type)
</div>
<?php endforeach;?>
</div>
<?php endif;?>
</div>
</div>
+20 -7
View File
@@ -60,8 +60,10 @@ html[lang="de"] .block-projectdoc .c-user{width: 105px;}
.block-projectdoc .table .c-title[data-status=draft] > .doc-title {max-width: calc(100% - 35px);}
.block-projectdoc .table .c-title > .draft {background-color:rgba(129, 102, 238, 0.12); color:#8166EE;}
</style>
<?php $blockNavId = 'nav-' . uniqid();?>
<?php js::set('emptyProjects', empty($projects));?>
<?php js::set('emptyInvolveds', empty($involveds));?>
<script>
<?php $blockNavId = 'nav-' . uniqid(); ?>
$(function()
{
if($('.block-projectdoc<?php echo "#block{$block->id}";?> #projectType').length > 1);
@@ -90,6 +92,18 @@ function switch<?php echo "block{$block->id}";?>Project(obj)
function change<?php echo "block{$block->id}";?>ProjectType(type)
{
var hiddenData = type == 'all' ? emptyProjects : emptyInvolveds;
if(hiddenData)
{
$('.block-projectdoc<?php echo "#block{$block->id}";?> .dataBlock').addClass('hidden');
$('.block-projectdoc<?php echo "#block{$block->id}";?> .block-statistic > .table-empty-tip').removeClass('hidden');
}
else
{
$('.block-projectdoc<?php echo "#block{$block->id}";?> .dataBlock').removeClass('hidden');
$('.block-projectdoc<?php echo "#block{$block->id}";?> .block-statistic > .table-empty-tip').addClass('hidden');
}
$('.block-projectdoc<?php echo "#block{$block->id}";?> .nav.projects').toggleClass('hidden', type != 'all');
$('.block-projectdoc<?php echo "#block{$block->id}";?> .nav.involveds').toggleClass('hidden', type != 'involved');
$('.block-projectdoc<?php echo "#block{$block->id}";?> #projectType .btn').html($('.block-projectdoc<?php echo "#block{$block->id}";?> #projectType [data-type=' + type + ']').html() + " <span class='caret'></span>");
@@ -112,14 +126,14 @@ function change<?php echo "block{$block->id}";?>ProjectType(type)
<li><a href="javascript:change<?php echo "block{$block->id}";?>ProjectType('all')" data-type='all'><?php echo $lang->project->all;?></a></li>
</ul>
</div>
<?php $hiddenBlock = empty($involveds) ? 'hidden' : '';?>
<?php $hiddenEmpty = empty($involveds) ? '' : 'hidden';?>
<div class="panel-body">
<div class="table-row block-statistic">
<?php if(empty($projects) and empty($involveds)):?>
<div class="table-empty-tip">
<div class="table-empty-tip <?php echo $hiddenEmpty;?>">
<p><span class="text-muted"><?php echo $lang->block->emptyTip;?></span></p>
</div>
<?php else:?>
<div class="col col-nav">
<div class="col col-nav dataBlock <?php echo $hiddenBlock;?>">
<ul class="nav nav-stacked nav-secondary scrollbar-hover involveds">
<li class='switch-icon prev'><a href='###' onclick='switch<?php echo "block{$block->id}";?>Project(this)'><i class='icon icon-arrow-left'></i></a></li>
<?php $selected = key($involveds);?>
@@ -142,7 +156,7 @@ function change<?php echo "block{$block->id}";?>ProjectType(type)
<li class='switch-icon next'><a href='###' onclick='switch<?php echo "block{$block->id}";?>Project(this)'><i class='icon icon-arrow-right'></i></a></li>
</ul>
</div>
<div class="col tab-content">
<div class="col tab-content dataBlock <?php echo $hiddenBlock;?>">
<?php foreach($projects as $project):?>
<div class="tab-pane fade<?php if($project->id == $selected) echo ' active in';?>" id='<?php echo "tab3{$blockNavId}Content{$project->id}";?>'>
<?php if(isset($docGroup[$project->id])):?>
@@ -190,6 +204,5 @@ function change<?php echo "block{$block->id}";?>ProjectType(type)
</div>
<?php endforeach;?>
</div>
<?php endif;?>
</div>
</div>
+4 -4
View File
@@ -36,7 +36,7 @@ $lang->chart->typeList = array();
$lang->chart->typeList['pie'] = 'Pie';
$lang->chart->typeList['line'] = 'Line';
$lang->chart->typeList['radar'] = 'Radar';
$lang->chart->typeList['cluBarY'] = 'clustered Bar Y';
$lang->chart->typeList['stackedBarY'] = 'stacked Bar Y';
$lang->chart->typeList['cluBarX'] = 'clustered Bar X';
$lang->chart->typeList['stackedBar'] = 'stacked Bar';
$lang->chart->typeList['cluBarY'] = 'Clustered Bar Y';
$lang->chart->typeList['stackedBarY'] = 'Stacked Bar Y';
$lang->chart->typeList['cluBarX'] = 'Clustered Bar X';
$lang->chart->typeList['stackedBar'] = 'Stacked Bar';
+4 -4
View File
@@ -36,7 +36,7 @@ $lang->chart->typeList = array();
$lang->chart->typeList['pie'] = 'Pie';
$lang->chart->typeList['line'] = 'Line';
$lang->chart->typeList['radar'] = 'Radar';
$lang->chart->typeList['cluBarY'] = 'clustered Bar Y';
$lang->chart->typeList['stackedBarY'] = 'stacked Bar Y';
$lang->chart->typeList['cluBarX'] = 'clustered Bar X';
$lang->chart->typeList['stackedBar'] = 'stacked Bar';
$lang->chart->typeList['cluBarY'] = 'Clustered Bar Y';
$lang->chart->typeList['stackedBarY'] = 'Stacked Bar Y';
$lang->chart->typeList['cluBarX'] = 'Clustered Bar X';
$lang->chart->typeList['stackedBar'] = 'Stacked Bar';
+4 -4
View File
@@ -36,7 +36,7 @@ $lang->chart->typeList = array();
$lang->chart->typeList['pie'] = 'Pie';
$lang->chart->typeList['line'] = 'Line';
$lang->chart->typeList['radar'] = 'Radar';
$lang->chart->typeList['cluBarY'] = 'clustered Bar Y';
$lang->chart->typeList['stackedBarY'] = 'stacked Bar Y';
$lang->chart->typeList['cluBarX'] = 'clustered Bar X';
$lang->chart->typeList['stackedBar'] = 'stacked Bar';
$lang->chart->typeList['cluBarY'] = 'Clustered Bar Y';
$lang->chart->typeList['stackedBarY'] = 'Stacked Bar Y';
$lang->chart->typeList['cluBarX'] = 'Clustered Bar X';
$lang->chart->typeList['stackedBar'] = 'Stacked Bar';
+106 -1
View File
@@ -72,7 +72,7 @@ class chartModel extends model
if(!empty($chart->sql)) $chart->sql = trim(str_replace(';', '', $chart->sql));
if(!empty($chart->settings)) $chart->settings = json_decode($chart->settings, true);
if(!empty($chart->settings) and is_array($chart->settings))
if(empty($chart->type) and !empty($chart->settings) and is_array($chart->settings))
{
$firstSetting = current($chart->settings);
if(isset($firstSetting['type'])) $chart->type = $firstSetting['type'];
@@ -696,5 +696,110 @@ class chartModel extends model
return $filterFormat;
}
/**
* Get tables.
*
* @param string $sql
* @access public
* @return array
*/
public function getTables($sql)
{
$processedSql = trim($sql, ';');
$processedSql = str_replace(array("\r\n", "\n"), ' ', $processedSql);
$processedSql = str_replace('`', '', $processedSql);
preg_match_all('/^select (.+) from (.+)$/i', $processedSql, $selectAndFrom);
if(empty($selectAndFrom[2][0])) return false;
$selectSql = $selectAndFrom[1][0];
$tableSql = $fromSql = $selectAndFrom[2][0];
if(stripos($fromSql, 'where') !== false) $tableSql = trim(substr($fromSql, 0, stripos($fromSql, 'where')));
if(stripos($fromSql, 'limit') !== false) $tableSql = trim(substr($fromSql, 0, stripos($fromSql, 'limit')));
if(stripos($fromSql, 'having') !== false) $tableSql = trim(substr($fromSql, 0, stripos($fromSql, 'having')));
if(stripos($fromSql, 'group by') !== false) $tableSql = trim(substr($fromSql, 0, stripos($fromSql, 'group by')));
/* Remove such as "left join|right join|join", "on (t1.id=t2.id)", result like t1, t2 as t3. */
$tableSql .= ' ';
if(stripos($tableSql, 'join') !== false) $tableSql = preg_replace(array('/join\s+([A-Z]+_\w+ .*)on/Ui', '/,\s*on\s+[^,]+/i'), array(',$1,on', ''), $tableSql);
/* Match t2 as t3 */
preg_match_all('/(\w+) +as +(\w+)/i', $tableSql, $out);
$fields = explode(',', $selectSql);
foreach($fields as $i => $field)
{
if($field) $asField = '';
if(strrpos($field, ' as ') !== false) list($field, $asField) = explode(' as ', $field);
if(strrpos($field, ' AS ') !== false) list($field, $asField) = explode(' AS ', $field);
$field = trim($field);
$asField = trim($asField);
$fieldName = $field;
if(strrpos($field, '.') !== false)
{
$table = substr($field, 0, strrpos($field, '.'));
$fieldName = substr($field, strrpos($field, '.') + 1);
if(!empty($out[0]) and in_array($table, $out[2]))
{
$realTable = $out[1][array_search($table, $out[2])];
$tableFieldName = str_replace($table . '.', $realTable . '.', $field);
if(isset($fields[$fieldName]) && !$asField)
{
$fieldName = str_replace('.', '', $field);
$sql = preg_replace(array("/$field/", "/`$field`/"), array("$field AS $fieldName", "`$field` AS $fieldName"), $sql, 1);
$field = $tableFieldName;
}
}
if($fieldName == '*') $fieldName = $field;
}
$fieldName = $asField ? $asField : $fieldName;
$fields[$fieldName] = $field;
unset($fields[$i]);
}
$tableSql = preg_replace('/as +\w+/i', ' ', $tableSql);
$tableSql = trim(str_replace(array('(', ')', ','), ' ', $tableSql));
$tableSql = preg_replace('/ +/', ' ', $tableSql);
$tables = explode(' ', $tableSql);
return array('sql' => $sql, 'tables' => $tables, 'fields' => $fields);
}
/**
* Parse variables to null string in sql.
*
* @param string $sql
* @access public
* @return string
*/
public function parseSqlVars($sql, $filters)
{
if($filters)
{
foreach($filters as $filter)
{
if(!isset($filter['default'])) continue;
if(isset($filter['from']) and $filter['from'] == 'query')
{
$default = "'{$filter['default']}'";
$sql = str_replace('$' . $filter['field'], $default, $sql);
}
}
}
if(preg_match_all("/[\$]+[a-zA-Z0-9]+/", $sql, $out))
{
foreach($out[0] as $match) $sql = str_replace($match, "''", $sql);
}
return $sql;
}
}
+3 -3
View File
@@ -256,7 +256,7 @@ $lang->waterfall->menu = new stdclass();
$lang->waterfall->menu->index = array('link' => "$lang->dashboard|project|index|project=%s");
$lang->waterfall->menu->execution = array('link' => "{$lang->stage->common}|project|execution|status=all&projectID=%s", 'subModule' => 'programplan,task');
$lang->waterfall->menu->storyGroup = array('link' => "{$lang->common->story}|projectstory|story|projectID=%s",'class' => 'dropdown dropdown-hover', 'exclude' => 'tree-browse,projectstory-track');
$lang->waterfall->menu->story = array('link' => "$lang->SRCommon|projectstory|story|projectID=%s", 'subModule' => 'projectstory,tree', 'alias' => 'story', 'exclude' => 'projectstory-track');
$lang->waterfall->menu->story = array('link' => "$lang->SRCommon|projectstory|story|projectID=%s", 'subModule' => 'projectstory,tree', 'alias' => 'story', 'exclude' => 'projectstory-track,tree-browse');
$lang->waterfall->menu->design = array('link' => "{$lang->design->common}|design|browse|project=%s");
$lang->waterfall->menu->qa = array('link' => "{$lang->qa->common}|project|bug|projectID=%s", 'subModule' => 'testcase,testtask,bug,testreport', 'alias' => 'bug,testtask,testcase,testreport');
$lang->waterfall->menu->doc = array('link' => "{$lang->doc->common}|doc|projectSpace|objectID=%s");
@@ -264,9 +264,9 @@ $lang->waterfall->menu->devops = array('link' => "{$lang->repo->common}|repo
$lang->waterfall->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild');
$lang->waterfall->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease');
$lang->waterfall->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s");
$lang->waterfall->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team', 'exclude' => 'tree-browsetask');
$lang->waterfall->dividerMenu = ',programplan,build,dynamic,';
$lang->waterfall->menu->settings = $lang->scrum->menu->settings;
$lang->waterfall->dividerMenu = ',programplan,build,dynamic,';
$lang->waterfall->menu->storyGroup['dropMenu'] = $lang->scrum->menu->storyGroup['dropMenu'];
+1
View File
@@ -2078,6 +2078,7 @@ EOF;
if(strtolower($key) == 'assigneddate') continue;
if(strtolower($key) == 'editedby') continue;
if(strtolower($key) == 'editeddate') continue;
if(strtolower($key) == 'editingdate') continue;
if(strtolower($key) == 'uid') continue;
if(strtolower($key) == 'finisheddate' and $value == '') continue;
if(strtolower($key) == 'canceleddate' and $value == '') continue;
+7 -7
View File
@@ -128,7 +128,7 @@ class convertModel extends model
{
$dataList = $this->dao->dbh($this->sourceDBH)->select('t1.`ID`, t1.`lower_user_name` as account, t1.`lower_display_name` as realname, t1.`lower_email_address` as email, t1.created_date as `join`, t2.user_key as userCode')->from(JIRA_USERINFO)->alias('t1')
->leftJoin(JIRA_USER)->alias('t2')->on('t1.`lower_user_name` = t2.`lower_user_name`')
->where(1)
->where('1=1')
->beginIF($lastID)->andWhere('t1.ID')->gt($lastID)->fi()
->orderBy('t1.ID asc')->limit($limit)
->fetchAll('ID');
@@ -136,7 +136,7 @@ class convertModel extends model
elseif($module == 'project')
{
$dataList = $this->dao->dbh($this->sourceDBH)->select('*')->from(JIRA_PROJECT)
->where(1)
->where('1=1')
->beginIF($lastID)->andWhere('ID')->gt($lastID)->fi()
->orderBy('ID asc')->limit($limit)
->fetchAll('ID');
@@ -144,7 +144,7 @@ class convertModel extends model
elseif($module == 'issue')
{
$dataList = $this->dao->dbh($this->sourceDBH)->select('*')->from(JIRA_ISSUE)
->where(1)
->where('1=1')
->beginIF($lastID)->andWhere('ID')->gt($lastID)->fi()
->orderBy('ID asc')->limit($limit)
->fetchAll('ID');
@@ -152,7 +152,7 @@ class convertModel extends model
elseif($module == 'build')
{
$dataList = $this->dao->dbh($this->sourceDBH)->select('*')->from(JIRA_BUILD)
->where(1)
->where('1=1')
->beginIF($lastID)->andWhere('ID')->gt($lastID)->fi()
->orderBy('ID asc')->limit($limit)
->fetchAll('ID');
@@ -160,7 +160,7 @@ class convertModel extends model
elseif($module == 'issuelink')
{
$dataList = $this->dao->dbh($this->sourceDBH)->select('*')->from(JIRA_ISSUELINK)
->where(1)
->where('1=1')
->beginIF($lastID)->andWhere('ID')->gt($lastID)->fi()
->orderBy('ID asc')->limit($limit)
->fetchAll('ID');
@@ -168,7 +168,7 @@ class convertModel extends model
elseif($module == 'action')
{
$dataList = $this->dao->dbh($this->sourceDBH)->select('*')->from(JIRA_ACTION)
->where(1)
->where('1=1')
->beginIF($lastID)->andWhere('ID')->gt($lastID)->fi()
->orderBy('ID asc')->limit($limit)
->fetchAll('ID');
@@ -176,7 +176,7 @@ class convertModel extends model
elseif($module == 'file')
{
$dataList = $this->dao->dbh($this->sourceDBH)->select('*')->from(JIRA_FILE)
->where(1)
->where('1=1')
->beginIF($lastID)->andWhere('ID')->gt($lastID)->fi()
->orderBy('ID asc')->limit($limit)
->fetchAll('ID');
+1 -1
View File
@@ -1374,7 +1374,7 @@ class doc extends control
*/
public function productSpace($objectID = 0, $libID = 0, $moduleID = 0, $browseType = 'all', $orderBy = 'status,id_desc', $param = 0, $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
$products = $this->product->getPairs('nocode', 0, '', 'all');
$products = $this->product->getPairs('nocode');
$objectID = $this->product->saveState($objectID, $products);
echo $this->fetch('doc', 'tableContents', "type=product&objectID=$objectID&libID=$libID&moduleID=$moduleID&browseType=$browseType&orderBy=$orderBy&param=$param&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID");
+4 -4
View File
@@ -47,13 +47,13 @@ class docModel extends model
$libs = $this->dao->select('*')->from(TABLE_DOCLIB)
->where('deleted')->eq(0)
->andWhere('type')->eq('api')
->beginIF(!empty($appendLib))->orWhere('id')->eq($appendLib)->fi()
->beginIF(!empty($objectType) && $objectID > 0 and $objectType != 'nolink')->andWhere($objectType)->eq($objectID)->fi()
->beginIF(!empty($objectType) and $objectID > 0 and $objectType != 'nolink')->andWhere($objectType)->eq($objectID)->fi()
->beginIF($objectType == 'nolink')
->andWhere('product')->eq(0)
->andWhere('project')->eq(0)
->andWhere('execution')->eq(0)
->fi()
->beginIF(!empty($appendLib))->orWhere('id')->eq($appendLib)->fi()
->orderBy('order_asc, id_asc')
->fetchAll('id');
@@ -1218,7 +1218,7 @@ class docModel extends model
if($libID == 0 and $browseType != 'collectedbyme') return array();
$modules = $this->dao->select('*')->from(TABLE_MODULE)
->where(1)
->where('1=1')
->beginIF($browseType != "collectedbyme")->andWhere('root')->eq($libID)->fi()
->beginIF($browseType == "collectedbyme")->andWhere('collector')->like("%,{$this->app->user->account},%")->fi()
->andWhere('type')->eq('doc')
@@ -2830,7 +2830,7 @@ class docModel extends model
else
{
$libs = $this->getLibsByObject($type, 0, '', $appendLib);
if($libID == 0 and !empty($libs)) $libID = reset($libs)->id;
if(($libID == 0 or !isset($libs[$libID])) and !empty($libs)) $libID = reset($libs)->id;
if(isset($libs[$libID]))
{
$objectTitle = zget($libs[$libID], 'name', '');
+1 -1
View File
@@ -30,7 +30,7 @@
<table class='table table-form'>
<?php if(strpos('product|project|execution', $type) !== false):?>
<tr>
<th><?php echo $lang->doc->project;?></th>
<th><?php echo $lang->doc->{$type};?></th>
<td class='required'><?php echo html::select($type, $objects, $objectID, "class='form-control chosen' onchange='loadObjectModules(\"{$type}\", this.value)'");?></td>
</tr>
<?php endif;?>
+6 -4
View File
@@ -76,6 +76,8 @@ li.drag-shadow ul {display: none !important;}
js::set('release', isset($release) ? $release : 0);
js::set('versionLang', $lang->build->common);
js::set('spaceType', $this->session->spaceType);
js::set('rawModule', $this->app->rawModule);
js::set('rawMethod', $this->app->rawMethod);
/* ObjectType and objectID used for other space. */
js::set('objectType', isset($type) ? $type : '');
@@ -151,7 +153,7 @@ js::set('hasLibPriv', $hasLibPriv);
<li data-method="addCataChild" data-type="add" data-id="%moduleID%" data-has-children='%hasChildren%'><a><i class="icon icon-add-directory"></i><?php echo $lang->doc->libDropdown['addSubModule'];?></a></li>
<?php endif;?>
<?php if($canEditCatalog[$module]):?>
<li data-method="editCata" class='edit-module'><a data-href='<?php echo helper::createLink($module, 'editCatalog', "moduleID=%moduleID%&type=$app->rawModule");?>'><i class="icon icon-edit"></i><?php echo $lang->doc->libDropdown['editModule'];?></a></li>
<li data-method="editCata" class='edit-module'><a data-href='<?php echo helper::createLink($module, 'editCatalog', "moduleID=%moduleID%&type=" . ($app->rawModule == 'api' ? 'api' : 'doc'));?>'><i class="icon icon-edit"></i><?php echo $lang->doc->libDropdown['editModule'];?></a></li>
<?php endif;?>
<?php if($canDeleteCatalog[$module]):?>
<li data-method="deleteCata"><a href='<?php echo helper::createLink($module, 'deleteCatalog', 'rootID=%libID%&moduleID=%moduleID%');?>' target='hiddenwin'><i class="icon icon-trash"></i><?php echo $lang->doc->libDropdown['delModule'];?></a></li>
@@ -473,8 +475,8 @@ $(function()
if(!libID) libID = 0;
if(!moduleID) moduleID = 0;
linkParams = linkParams.replace('%s', 'libID=' + libID + '&moduleID=' + moduleID);
if(config.currentModule == 'api' && config.currentMethod == 'view') spaceType = 'api';
if(spaceType != 'api' && config.currentModule == 'api') linkParams = 'objectID=' + objectID + '&' + linkParams;
if(rawModule == 'api' && rawMethod== 'view') spaceType = 'api';
if(spaceType != 'api' && rawModule == 'api') linkParams = 'objectID=' + objectID + '&' + linkParams;
var moduleName = spaceType == 'api' ? 'api' : 'doc';
var methodName = '';
if(spaceType == 'api')
@@ -624,7 +626,7 @@ $(function()
var libID = $(this).closest('#versionSwitcher').data('lib');
var moduleID = $(this).data('id');
var params = 'libID=' + libID + '&moduleID=0&apiID=0&version=0&release=' + moduleID;
var methodName = config.currentMethod;
var methodName = rawMethod;
if(config.currentModule == 'doc')
{
params = linkParams.replace('%s', 'libID=' + libID + '&moduleID=0').replace('browseType=&', 'browseType=byrelease&').replace('param=0', 'param=' + moduleID);
-29
View File
@@ -5784,11 +5784,6 @@ class executionModel extends model
$post = $_POST;
$_POST = array();
$extendFields = $this->getExtendFields();
foreach(array_keys($extendFields) as $field)
{
if(isset($post[$field])) $_POST[$field] = $post[$field];
}
$_POST['project'] = $projectID;
$_POST['name'] = $project->name;
@@ -5843,11 +5838,6 @@ class executionModel extends model
$post = $_POST;
$_POST = array();
$extendFields = $this->getExtendFields();
foreach(array_keys($extendFields) as $field)
{
if(isset($post[$field])) $_POST[$field] = $post[$field];
}
$_POST['project'] = $projectID;
$_POST['name'] = $project->name;
@@ -6037,23 +6027,4 @@ class executionModel extends model
}
return $sortedExecutions;
}
/**
* Get Extend Fields in workflow.
*
* @param string $module
* @access public
* @return array
*/
public function getExtendFields($module = 'project')
{
$extendFields = $this->dao->select('field')
->from(TABLE_WORKFLOWFIELD)
->where('module')->eq('project')
->andWhere('buildin')->eq(0)
->andWhere('role')->eq('custom')
->fetchPairs('field');
return $extendFields;
}
}
+2 -2
View File
@@ -299,9 +299,9 @@ class install extends control
$canDelFile = is_writable($this->app->getAppRoot() . 'www');
$installFile = $this->app->getAppRoot() . 'www/install.php';
$upgradeFile = $this->app->getAppRoot() . 'www/upgrade.php';
$installFileDeleted = $canDelFile && is_writable($installFile) ? unlink($installFile) : false;
$installFileDeleted = ($canDelFile and file_exists($installFile)) ? unlink($installFile) : false;
if($canDelFile and is_writable($upgradeFile)) unlink($upgradeFile);
if($canDelFile and file_exists($upgradeFile)) unlink($upgradeFile);
unset($_SESSION['installing']);
session_destroy();
+2 -2
View File
@@ -3705,7 +3705,7 @@ class kanbanModel extends model
public function getColumnsByObject($objectType = '', $objectID = 0, $archived = 0, $deleted = '0')
{
return $this->dao->select('*')->from(TABLE_KANBANCOLUMN)
->where(true)
->where('1=1')
->beginIF($objectType)->andWhere($objectType)->eq($objectID)->fi()
->beginIF($archived != '')->andWhere('archived')->eq($archived)->fi()
->beginIF($deleted != '')->andWhere('deleted')->eq($deleted)->fi()
@@ -3817,7 +3817,7 @@ class kanbanModel extends model
public function getCardsByObject($objectType = '', $objectID = 0, $archived = '0', $deleted = '0')
{
return $this->dao->select('*')->from(TABLE_KANBANCARD)
->where(true)
->where('1=1')
->beginIF($objectType)->andWhere($objectType)->eq($objectID)->fi()
->beginIF($archived != '')->andWhere('archived')->eq($archived)->fi()
->beginIF($deleted != '')->andWhere('deleted')->eq($deleted)->fi()
+1 -1
View File
@@ -71,7 +71,7 @@ class pivot extends control
$pivot->sql = $sql;
$processSqlData = $this->loadModel('dataview')->getTables($sql);
$processSqlData = $this->loadModel('chart')->getTables($sql);
$sql = $processSqlData['sql'];
list($data, $configs) = $this->pivot->genSheet(json_decode(json_encode($pivot->fieldSettings), true), $pivot->settings, $sql, $filterFormat, json_decode($pivot->langs, true));
+1 -1
View File
@@ -46,7 +46,7 @@
<?php endif;?>
</div>
<div id='datagirdInfo' class='datagrid datagrid-padding'>
<?php $sql = $this->loadModel('dataview')->parseSqlVars($pivot->sql, $pivot->filters);?>
<?php $sql = $this->loadModel('chart')->parseSqlVars($pivot->sql, $pivot->filters);?>
<?php $this->pivot->buildPivotTable($data, $configs, json_decode(json_encode($pivot->fieldSettings), true), $sql);?>
</div>
</div>
+1 -1
View File
@@ -371,7 +371,7 @@ class productModel extends model
/* Order by program. */
return $this->dao->select("t1.*, IF(INSTR(' closed', t1.status) < 2, 0, 1) AS isClosed")->from(TABLE_PRODUCT)->alias('t1')
->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id')
->where(1)
->where('1=1')
->beginIF(strpos($mode, 'all') === false)->andWhere('t1.deleted')->eq(0)->fi()
->beginIF($programID)->andWhere('t1.program')->eq($programID)->fi()
->beginIF(strpos($mode, 'noclosed') !== false)->andWhere('t1.status')->ne('closed')->fi()
+1 -1
View File
@@ -904,7 +904,7 @@ class project extends control
/* Check exist extend fields. */
$isExtended = false;
if(!empty($this->config->bizVersion))
if($this->config->edition != 'open')
{
$extend = $this->loadModel('workflowaction')->getByModuleAndAction('project', 'view');
if(!empty($extend) and $extend->extensionType == 'extend') $isExtended = true;
+2
View File
@@ -139,6 +139,8 @@ class projectModel extends model
}
}
setcookie('lastProject', (int)$this->session->project, $this->config->cookieLife, $this->config->webRoot, '', $this->config->cookieSecure, true);
return $this->session->project;
}
+4 -8
View File
@@ -463,12 +463,10 @@ class searchModel extends model
{
$queries = $this->dao->select('id, title')
->from(TABLE_USERQUERY)
->where()
->markLeft(1)
->where('account')->eq($this->app->user->account)
->where('module')->eq($module)
->andWhere('account', true)->eq($this->app->user->account)
->orWhere('common')->eq(1)
->markRight(1)
->andWhere('module')->eq($module)
->orderBy('id_desc')
->fetchPairs();
if(!$queries) return array('' => $this->lang->search->myQuery);
@@ -487,12 +485,10 @@ class searchModel extends model
{
$queries = $this->dao->select('id, account, title')
->from(TABLE_USERQUERY)
->where()
->markLeft(1)
->where('account')->eq($this->app->user->account)
->where('module')->eq($module)
->andWhere('account', true)->eq($this->app->user->account)
->orWhere('common')->eq(1)
->markRight(1)
->andWhere('module')->eq($module)
->orderBy('id_desc')
->fetchAll();
if(!$queries) return array('' => $this->lang->search->myQuery);
+3 -3
View File
@@ -4516,7 +4516,7 @@ class testcaseModel extends model
'removeNamespace' => true, // Remove namespace from resulting keys
'namespaceSeparator' => ':', // Change separator to something other than a colon
'attributePrefix' => '', // Distinguish between attributes and nodes with the same name
'alwaysArray' => [], // Array of XML tag names which should always become arrays
'alwaysArray' => array(), // Array of XML tag names which should always become arrays
'autoArray' => true, // Create arrays for tags which appear more than once
'textContent' => 'text', // Key used for the text content of elements
'autoText' => true, // Skip textContent key if node has no attributes or child nodes
@@ -4529,7 +4529,7 @@ class testcaseModel extends model
$namespaces[''] = null; // Add empty base namespace
/* Get attributes from all namespaces. */
$attributesArray = [];
$attributesArray = array();
foreach($namespaces as $prefix => $namespace)
{
if($options['removeNamespace']) $prefix = '';
@@ -4545,7 +4545,7 @@ class testcaseModel extends model
}
// Get child nodes from all namespaces
$tagsArray = [];
$tagsArray = array();
foreach($namespaces as $prefix => $namespace)
{
if($options['removeNamespace']) $prefix = '';
+3 -3
View File
@@ -387,7 +387,7 @@ $('#module' + moduleID).closest('li').addClass('active');
$('#' + caseBrowseType + 'Tab').addClass('btn-active-text').find('.text').after(" <span class='label label-light label-badge'><?php echo $pager->recTotal;?></span>");
function runAutocase()
{
var caseIDList = [];
var caseIDList = array();
$.each($('input[name^=caseIDList]:checked'),function(){
caseIDList.push($(this).val());
});
@@ -452,8 +452,8 @@ function toOrder(sourceId,targetId)
{
if(!checkProduct(sourceId, targetId)) return;
var origOrders = [];
var newOrders = [];
var origOrders = array();
var newOrders = array();
var productID = 0;
$('#caseTableList > tr').each(function(i, elem){
+1 -1
View File
@@ -27,7 +27,7 @@ $lang->todo->finish = "Abschließen";
$lang->todo->batchFinish = "Mehrere abschließen";
$lang->todo->export = "Exportieren";
$lang->todo->delete = "Löschen";
$lang->todo->import2Today = "Importieren für Heute";
$lang->todo->import2Today = "Change Date";
$lang->todo->import = "Importieren";
$lang->todo->legendBasic = "Basis Info";
$lang->todo->cycle = "Wiederkehrend";
+1 -1
View File
@@ -27,7 +27,7 @@ $lang->todo->finish = "Finish Todo";
$lang->todo->batchFinish = "Batch Finish";
$lang->todo->export = "Export Todo";
$lang->todo->delete = "Delete Todo";
$lang->todo->import2Today = "Import to Today";
$lang->todo->import2Today = "Change Date";
$lang->todo->import = "Import";
$lang->todo->legendBasic = "Basic Info";
$lang->todo->cycle = "Recur";
+1 -1
View File
@@ -27,7 +27,7 @@ $lang->todo->finish = "Terminer";
$lang->todo->batchFinish = "Terminer par lot";
$lang->todo->export = "Exporter Agenda";
$lang->todo->delete = "Supprimer";
$lang->todo->import2Today = "Importer à Aujourd'hui";
$lang->todo->import2Today = "Change Date";
$lang->todo->import = "Importer";
$lang->todo->legendBasic = "Infos de Base";
$lang->todo->cycle = "Rendre Récurrent";
+1 -1
View File
@@ -27,7 +27,7 @@ $lang->todo->finish = "完成待办";
$lang->todo->batchFinish = "批量完成";
$lang->todo->export = "导出待办";
$lang->todo->delete = "删除待办";
$lang->todo->import2Today = "导入到今天";
$lang->todo->import2Today = "修改日期";
$lang->todo->import = "导入";
$lang->todo->legendBasic = "基本信息";
$lang->todo->cycle = "周期";
-1
View File
@@ -502,7 +502,6 @@ $config->delete['18_4_alpha1'][] = 'extension/max/report/ext/lang/zh-tw/report.p
$config->delete['18_4_alpha1'][] = 'extension/max/report/ext/view/programsummary.html.php';
$config->delete['18_4_alpha1'][] = 'extension/max/report/ext/view/programworkload.html.php';
$config->delete['18_4_alpha1'][] = 'extension/max/report/ext/view/instancetemplate.html.php';
$config->delete['18_4_alpha1'][] = 'extension/max/report/ext/view/blockreportlist.html.php';
$config->upgrade->openModules = array('action', 'admin', 'api', 'automation', 'backup', 'block', 'branch', 'budget', 'bug', 'build', 'caselib', 'chart', 'ci', 'client', 'common', 'company', 'compile', 'convert', 'cron', 'custom', 'datatable', 'dataview', 'dept', 'design', 'dev', 'dimension', 'doc', 'durationestimation', 'entry', 'execution', 'extension', 'file', 'git', 'gitlab', 'group', 'holiday', 'im', 'index', 'index.html', 'install', 'issue', 'jenkins', 'job', 'kanban', 'license', 'mail', 'message', 'misc', 'mr', 'my', 'personnel', 'pipeline', 'product', 'productplan', 'productset', 'program', 'programplan', 'project', 'projectbuild', 'projectplan', 'projectrelease', 'projectstory', 'pivot', 'qa', 'release', 'repo', 'report', 'risk', 'score', 'screen', 'search', 'setting', 'sonarqube', 'sso', 'stage', 'stakeholder', 'story', 'subject', 'svn', 'task', 'testcase', 'testreport', 'testsuite', 'testtask', 'todo', 'tree', 'tutorial', 'upgrade', 'user', 'webhook', 'weekly', 'workestimation', 'gitea', 'gogs', 'transfer', 'zahost', 'zanode', 'editor');
+14 -4
View File
@@ -9051,7 +9051,7 @@ class upgradeModel extends model
/* Process settings. */
$settings = new stdclass();
$settings->columns = array();
$columns = array();
if($report->params)
{
$params = json_decode($report->params);
@@ -9060,7 +9060,6 @@ class upgradeModel extends model
$settings->group2 = $params->group2;
$settings->columnTotal = 'sum';
$columns = array();
foreach($params->reportField as $index => $field)
{
$column = new stdclass();
@@ -9081,14 +9080,24 @@ class upgradeModel extends model
$columns[] = $column;
}
$settings->columns = $columns;
}
else
{
$column = new stdclass();
$column->field = '';
$column->stat = '';
$column->slice = 'noSlice';
$column->showMode = 'default';
$column->showTotal = 'noShow';
$columns[] = $column;
$data->stage = 'draft';
$data->step = 1;
}
$settings->columns = $columns;
/* Process fieldSettings. */
$sql = $data->sql;
if(!empty($filters))
@@ -9118,12 +9127,13 @@ class upgradeModel extends model
if(!$sql) return array();
$this->loadModel('dataview');
$this->loadModel('chart');
$columns = $this->dataview->getColumns($sql);
$columnFields = array();
foreach($columns as $column => $type) $columnFields[$column] = $column;
$tableAndFields = $this->dataview->getTables($sql);
$tableAndFields = $this->chart->getTables($sql);
$tables = $tableAndFields['tables'];
$fields = $tableAndFields['fields'];
+1 -1
View File
@@ -41,7 +41,7 @@ class userModel extends model
public function getList($params = 'nodeleted')
{
return $this->dao->select('*')->from(TABLE_USER)
->where(true)
->where('1=1')
->beginIF(strpos($params, 'all') === false)->andWhere('type')->eq('inside')->fi()
->beginIF(strpos($params, 'nodeleted') !== false)->andWhere('deleted')->eq(0)->fi()
->orderBy('account')
-13
View File
@@ -2979,17 +2979,4 @@ class executionTest
}
return $executionIDList;
}
/**
* Get user custom workflow field.
*
* @param string $moduleName
* @access public
* @return array
*/
public function getExtendFieldsTest($moduleName = 'project')
{
$extendFields = $this->executionModel->getExtendFields($moduleName);
return $extendFields;
}
}