browse.html.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * The browse view file of space module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Zeng Gang<zenggang@easycorp.ltd>
  7. * @package space
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $statusMap = array();
  12. $canInstall = hasPriv('instance', 'manage') && !$config->inCompose;
  13. if(!hasPriv('instance', 'manage')) $config->space->dtable->fieldList['actions']['menu'] = array('visit');
  14. foreach($instances as $instance) if('store' === $instance->type) $statusMap[$instance->id] = $instance->status;
  15. jsVar('statusMap', $statusMap);
  16. jsVar('idList', array_keys($statusMap));
  17. jsVar('inQuickon', $config->inQuickon);
  18. $this->loadModel('instance');
  19. $instances = initTableData($instances, $config->space->dtable->fieldList, $this->instance);
  20. featureBar
  21. (
  22. set::current($browseType),
  23. set::linkParams("spaceID=&browseType={key}")
  24. );
  25. $app->loadLang('solution');
  26. toolBar
  27. (
  28. $canInstall ? item(set(array
  29. (
  30. 'text' => $lang->space->install,
  31. 'icon' => 'plus',
  32. 'class' => 'btn primary',
  33. 'url' => createLink('space', 'createApplication')
  34. ))) : null
  35. );
  36. $langConfirmUninstal = $lang->instance->notices['confirmUninstall'];
  37. $langConfirmUninstallStoreApp = $lang->instance->notices['confirmUninstallStoreApp'];
  38. dtable
  39. (
  40. set::actionItemCreator(jsRaw(<<<JS
  41. (item, info) => {
  42. if(item.url)
  43. {
  44. if(typeof item.url == 'string') item.url = zui.formatString(item.url, info.row.data);
  45. else item.url.params = zui.formatString(item.url.params, info.row.data);
  46. }
  47. if(info.row.data.type != 'store' && item.icon == 'trash')
  48. {
  49. item['data-confirm']['message'] = '{$langConfirmUninstal}';
  50. Object.assign(item, item);
  51. return item;
  52. }
  53. if(info.row.data.type == 'store' && item.icon == 'trash')
  54. {
  55. item['data-confirm']['message'] = '{$langConfirmUninstallStoreApp}';
  56. Object.assign(item, item);
  57. return item;
  58. }
  59. return item;
  60. }
  61. JS
  62. )),
  63. set::userMap($users),
  64. set::cols($config->space->dtable->fieldList),
  65. set::data($instances),
  66. set::onRenderCell(jsRaw('window.renderInstanceList')),
  67. set::sortLink(createLink('space', 'browse', "spaceID=&browseType={$browseType}&orderBy={name}_{sortType}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}")),
  68. set::orderBys($orderBy),
  69. set::footPager(usePager())
  70. );
  71. a(setStyle('display', 'none'), setID('editLinkContainer'), setData('toggle', 'modal'));