| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- <?php
- /**
- * The browse view file of company module of ZenTaoPMS.
- * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
- * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
- * @author Mengyi Liu <liumengyi@easycorp.ltd>
- * @package company
- * @link https://www.zentao.net
- */
- namespace zin;
- $fnGenerateScopeFilter = function() use ($scope, $parentScope, $scopeOptions, $parentOptions, $filters)
- {
- $parentFilter = helper::hasFeature('program') || $parentScope != 'program' ? formGroup
- (
- set::id('parentPicker'),
- set::width('1/3'),
- setClass('query-inline picker-nowrap'),
- set::label($this->lang->metriclib->parentLabel[$parentScope]),
- set::control(array('type' => 'picker', 'multiple' => true)),
- set::name('parent'),
- set::items($parentOptions),
- set::placeholder($this->lang->metric->placeholder->$parentScope),
- on::change("window.loadScopeOptions('$scope')"),
- !empty($filters['parent']) ? set::value($filters['parent']) : null
- ) : null;
- $scopeFilter = formGroup
- (
- set::id('scopePicker'),
- set::width('1/3'),
- setClass('query-inline picker-nowrap'),
- set::label($this->lang->$scope->common),
- set::control(array('type' => 'picker', 'multiple' => true)),
- set::name('objectType'),
- set::items($scopeOptions),
- set::placeholder($this->lang->metric->placeholder->$scope),
- !empty($filters['objectType']) ? set::value($filters['objectType']) : null
- );
- return array($parentFilter, $scopeFilter);
- };
- $fnGenerateDateFilter = function() use ($scope, $period, $filters)
- {
- $width = $scope == 'system' ? '1/2' : '1/3';
- return formGroup
- (
- set::label($this->lang->metriclib->dateLabel[$period]),
- set::width($width),
- inputGroup
- (
- datePicker
- (
- setClass('query-date-picker'),
- set::name('dateBegin'),
- set('id', 'dateBegin'),
- set::placeholder($this->lang->metric->placeholder->select),
- !empty($filters['dateBegin']) ? set::value($filters['dateBegin']) : null
- ),
- $this->lang->metric->to,
- datePicker
- (
- setClass('query-date-picker'),
- set::name('dateEnd'),
- set('id', 'dateEnd'),
- set::placeholder($this->lang->metric->placeholder->select),
- !empty($filters['dateEnd']) ? set::value($filters['dateEnd']) : null
- )
- )
- );
- };
- $fnGenerateFilterForm = function() use ($isHistory, $metricOptions, $filters, $fnGenerateScopeFilter, $fnGenerateDateFilter, $scope, $period, $viewType)
- {
- $formGroups = array();
- if($isHistory)
- {
- if($scope != 'system') $formGroups = $fnGenerateScopeFilter();
- $formGroups[] = $fnGenerateDateFilter();
- }
- $metricFilter = formGroup(set::label($this->lang->metric->common), setClass('query-inline picker-nowrap'), set::name('metric'), set::control(array('type' => 'picker', 'multiple' => true)), set::items($metricOptions), set::value($filters['metric']));
- return row
- (
- set::justify('start'),
- set::align('center'),
- setClass('px-4'),
- cell
- (
- set::flex('auto'),
- form
- (
- set::id('queryForm'),
- !empty($formGroups) ? formRow(set::width('full'), $formGroups) : null,
- formRow
- (
- set::width('full'),
- $metricFilter
- ),
- set::actions(array())
- )
- ),
- cell
- (
- set::width(100),
- setClass('ml-4'),
- set::flex('none'),
- formGroup
- (
- setClass('query-btn'),
- btn
- (
- setClass('btn secondary w-full'),
- set::text($this->lang->metric->query->action),
- set::onclick("window.handleFilter('$scope', '$period', '$viewType')")
- )
- )
- )
- );
- };
- sidebar
- (
- moduleMenu
- (
- to::header
- (
- div
- (
- setClass('bg-canvas'),
- dropmenu
- (
- set::defaultValue($scope),
- set::text($scopeText),
- set::caret(false),
- set::popWidth(128),
- set::popClass('popup text-md'),
- set::data(array('search' => false, 'checkIcon' => false, 'data' => $scopeMenu))
- )
- )
- ),
- set::titleShow(false),
- set::modules($libTree),
- set::activeKey("{$scope}_{$period}"),
- set::closeLink(''),
- set::showDisplay(false)
- )
- );
- div
- (
- setClass('main'),
- div
- (
- setClass('canvas'),
- div
- (
- setClass('border-b h-12 px-4 flex justify-between items-center'),
- div(span(setClass('text-root font-bold'), $libName), (isset($latestDate) and $latestDate) ? label
- (
- setClass('gray-200-pale pl-4'),
- $lang->metriclib->calcDate . ':' . date($lang->metriclib->calcDateFormat, strtotime($latestDate))
- ) : null),
- div
- (
- setClass('justify-start'),
- toolbar
- (
- $canChangeView ? btn
- (
- set::icon('exchange'),
- set::iconClass('text-xl'),
- setClass('ghost primary hover-primary'),
- set::url($this->inlink('browse', "scope=$scope&period=$period&viewType=$viewBtnType&isClearFilter=0")),
- $viewBtnText
- ) : null
- /*
- haspriv('metriclib', 'details') ? item(set(array
- (
- 'text' => $this->lang->metriclib->details,
- 'class' => 'ghost primary hover-primary',
- 'url' => $this->inlink('details', "scope=$scope&period=$period"),
- 'data-toggle' => 'modal'
- ))) : null
- */
- )
- )
- ),
- div(setClass('pt-4'), $fnGenerateFilterForm()),
- div
- (
- setClass('p-4'),
- dtable
- (
- set::id('library'),
- set::bordered(true),
- setClass('shadow rounded'),
- set::height(jsRaw('window.innerHeight - ' . ($isHistory ? '252' : '222'))),
- set::rowHeight(32),
- set::scrollbarSize(8),
- set::header($isHistory),
- set::headerHeight($tableHeaderHeight),
- set::cols($cols),
- set::data($data),
- set::nested(true),
- set::footPager(usePager('dtablePager', '', array(
- 'recPerPage' => $dtablePager->recPerPage,
- 'recTotal' => $dtablePager->recTotal,
- 'linkCreator' => createLink('metriclib', 'browse', "scope=$scope&period=$period&viewType=$viewType&isClearFilter=0&recTotal={$dtablePager->recTotal}&recPerPage={recPerPage}&page={page}"),
- ),
- $config->metriclib->pageRangeList)),
- set::onRenderCell(jsRaw('window.renderCell')),
- set::onRenderHeaderCell(jsRaw('window.renderHeaderCell')),
- set::emptyTip($libDTableTip),
- set::createTip($lang->metriclib->createMetric),
- set::createLink(hasPriv('metric', 'create') ? createLink('metric', 'create', "scope=$scope&period=$period&from=metriclib") : ''),
- set::createAttr("data-toggle='modal'")
- )
- )
- )
- );
- render();
|