From 73ed3946e2ae1d0b1500c91fc97052997e094427 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Tue, 11 Apr 2023 11:18:59 +0800 Subject: [PATCH] * code for task #90784. --- extension/lite/group/ext/lang/resource.php | 7 ++- module/doc/control.php | 61 ++++++++++++---------- module/doc/js/view.js | 1 + module/doc/model.php | 2 +- module/doc/view/myspace.html.php | 4 +- module/doc/view/tablecontents.html.php | 2 +- module/doc/view/view.html.php | 12 +++-- 7 files changed, 51 insertions(+), 38 deletions(-) diff --git a/extension/lite/group/ext/lang/resource.php b/extension/lite/group/ext/lang/resource.php index d7e77ecd1f..a3f32b1f6b 100644 --- a/extension/lite/group/ext/lang/resource.php +++ b/extension/lite/group/ext/lang/resource.php @@ -1185,7 +1185,12 @@ if($config->edition == 'biz' or $config->edition == 'max') $lang->tree->methodOrder[35] = 'editHost'; $lang->host->methodOrder[40] = 'groupMaintenance'; - $lang->resource->doc->diff = 'diffAction'; + $lang->resource->doc->diff = 'diffAction'; + $lang->resource->doc->mine2export = 'mine2export'; + $lang->resource->doc->product2export = 'product2export'; + $lang->resource->doc->project2export = 'project2export'; + $lang->resource->doc->custom2export = 'custom2export'; + $lang->resource->doc->execution2export = 'execution2export'; $lang->resource->my->review = 'review'; diff --git a/module/doc/control.php b/module/doc/control.php index 4040b21932..3bbbcdb501 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -64,6 +64,7 @@ class doc extends control $this->session->set('executionList', $uri, 'execution'); $this->session->set('projectList', $uri, 'project'); $this->session->set('objectName', '', 'doc'); + $this->session->set('spaceType', 'mine', 'doc'); $this->loadModel('search'); list($libs, $libID, $object, $objectID, $objectDropdown) = $this->doc->setMenuByType('mine', 0, $libID); @@ -1122,7 +1123,7 @@ class doc extends control $objectType = isset($lib->type) ? $lib->type : 'custom'; $type = $objectType == 'execution' && $this->app->tab != 'execution' ? 'project' : $objectType; - $objectID = isset($doc->{$type}) ? $doc->{$type} : 0; + $objectID = zget($doc, $type, 0); list($libs, $libID, $object, $objectID, $objectDropdown) = $this->doc->setMenuByType($type, $objectID, $doc->lib, $appendLib); $moduleTree = $this->doc->getTreeMenu($type, $objectID, $libID, 0, $docID); @@ -1205,50 +1206,54 @@ class doc extends control } } - $doc = $docID ? $doc : ''; - $spaceType = $objectType . 'Space'; + $doc = $docID ? $doc : ''; /* Crumbs links array. */ $methodName = in_array($type, array('product', 'project')) ? $objectType . 'Space' : 'tableContents'; - $linkObject = zget($lib, $type, 0); - if($this->app->tab == 'execution' and $objectType == 'execution') $linkObject = zget($lib, 'execution', 0); - - $linkParams = "objectID=$linkObject&libID=$lib->id"; + $linkParams = "objectID={$objectID}&libID={$lib->id}"; if($this->app->tab == 'execution' or $objectType == 'custom') { $linkParams = "objectType=$objectType&$linkParams"; $methodName = 'tableContents'; } + if($type == 'mine') + { + $linkParams = "type=mine&libID={$lib->id}"; + $methodName = 'mySpace'; + } $crumbs[] = html::a(inLink($methodName, $linkParams), html::image("static/svg/wiki-file-lib.svg") . $lib->name); $moduleList = $this->loadModel('tree')->getParents($doc->module); foreach($moduleList as $module) { - $linkParams .= "&moduleID=$module->id"; - $crumbs[] = html::a(inLink($methodName, $linkParams), $module->name); + $withModuleParams = $linkParams . "&moduleID=$module->id"; + $crumbs[] = html::a(inLink($methodName, $withModuleParams), $module->name); } - $this->view->title = isset($this->lang->doc->{$spaceType}) ? $this->lang->doc->{$spaceType} : $this->lang->doc->common; - $this->view->docID = $docID; - $this->view->doc = $doc; - $this->view->version = $version; - $this->view->object = $object; - $this->view->objectID = $objectID; - $this->view->objectType = $objectType; - $this->view->type = $type; - $this->view->libID = $libID; - $this->view->crumbs = $crumbs; - $this->view->lib = isset($libs[$libID]) ? $libs[$libID] : new stdclass(); - $this->view->libs = $this->doc->getLibsByObject($type, $objectID); - $this->view->canBeChanged = common::canModify($type, $object); // Determines whether an object is editable. - $this->view->actions = $docID ? $this->action->getList('doc', $docID) : array(); - $this->view->users = $this->user->getPairs('noclosed,noletter'); - $this->view->autoloadPage = $this->doc->checkAutoloadPage($doc); - $this->view->libTree = $this->doc->getLibTree($libID, $libs, $type, $doc->module, $objectID); - $this->view->preAndNext = $this->loadModel('common')->getPreAndNextObject('doc', $docID); - $this->view->moduleID = $doc->module; + $spaceType = $objectType . 'Space'; + $this->view->title = isset($this->lang->doc->{$spaceType}) ? $this->lang->doc->{$spaceType} : $this->lang->doc->common; + $this->view->docID = $docID; + $this->view->doc = $doc; + $this->view->version = $version; + $this->view->object = $object; + $this->view->objectID = $objectID; + $this->view->objectType = $objectType; + $this->view->type = $type; + $this->view->libID = $libID; + $this->view->crumbs = $crumbs; + $this->view->lib = isset($libs[$libID]) ? $libs[$libID] : new stdclass(); + $this->view->libs = $this->doc->getLibsByObject($type, $objectID); + $this->view->canBeChanged = common::canModify($type, $object); // Determines whether an object is editable. + $this->view->actions = $docID ? $this->action->getList('doc', $docID) : array(); + $this->view->users = $this->user->getPairs('noclosed,noletter'); + $this->view->autoloadPage = $this->doc->checkAutoloadPage($doc); + $this->view->libTree = $this->doc->getLibTree($libID, $libs, $type, $doc->module, $objectID); + $this->view->preAndNext = $this->loadModel('common')->getPreAndNextObject('doc', $docID); + $this->view->moduleID = $doc->module; $this->view->objectDropdown = $objectDropdown; + $this->view->canExport = ($this->config->edition != 'open' && common::hasPriv('doc', $type . '2export')); + $this->view->exportMethod = $type . '2export'; $this->display(); } diff --git a/module/doc/js/view.js b/module/doc/js/view.js index 73d8c811a6..38d17e3efe 100644 --- a/module/doc/js/view.js +++ b/module/doc/js/view.js @@ -187,6 +187,7 @@ $(function() simplemde.value(String($('#markdownContent').val())); simplemde.togglePreview(); } + $('#docExport').attr('href', createLink('doc', exportMethod, 'libID=' + libID + '&docID=' + docID + '&version=' + $('#content .doc-title .version').data('version'))); }); }) diff --git a/module/doc/model.php b/module/doc/model.php index 7801248421..97f6c547bf 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -984,7 +984,7 @@ class docModel extends model if($files) $docContent->files .= ',' . join(',', array_keys($files)); $docContent->files = trim($docContent->files, ','); if(isset($doc->digest)) $docContent->digest = $doc->digest; - if($doc->status == 'draft') + if($oldDoc->status == 'draft') { $this->dao->update(TABLE_DOCCONTENT)->data($docContent)->where('id')->eq($oldDocContent->id)->exec(); } diff --git a/module/doc/view/myspace.html.php b/module/doc/view/myspace.html.php index c355bcb300..5d1926c365 100644 --- a/module/doc/view/myspace.html.php +++ b/module/doc/view/myspace.html.php @@ -22,8 +22,8 @@ doc->featureBar['tableContents'] as $barType => $barName):?> - rawMethod == 'tablecontents' ? "type=$type&objectID=$objectID&libID=$libID&moduleID=$moduleID&browseType=$barType": "objectID=$objectID&libID=$libID&moduleID=$moduleID&browseType=$barType";?> - createLink('doc', $app->rawMethod, $linkParams), $barName . ($active ? "{$pager->recTotal}" : ''), '', "class='btn btn-link $active' id='{$barType}Tab'");?> + + createLink('doc', $app->rawMethod, $linkParams), "{$barName}" . ($active ? " {$pager->recTotal}" : ''), '', "class='btn btn-link $active' id='{$barType}Tab'");?> doc->searchDoc;?> diff --git a/module/doc/view/tablecontents.html.php b/module/doc/view/tablecontents.html.php index 661555d41b..11e236cad0 100644 --- a/module/doc/view/tablecontents.html.php +++ b/module/doc/view/tablecontents.html.php @@ -23,7 +23,7 @@ doc->featureBar['tableContents'] as $barType => $barName):?> rawMethod == 'tablecontents' ? "type=$type&objectID=$objectID&libID=$libID&moduleID=$moduleID&browseType=$barType": "objectID=$objectID&libID=$libID&moduleID=$moduleID&browseType=$barType";?> - createLink('doc', $app->rawMethod, $linkParams), $barName . ($active ? "{$pager->recTotal}" : ''), '', "class='btn btn-link $active' id='{$barType}Tab'");?> + createLink('doc', $app->rawMethod, $linkParams), "{$barName}" . ($active ? " {$pager->recTotal}" : ''), '', "class='btn btn-link $active' id='{$barType}Tab'");?> doc->searchDoc;?> diff --git a/module/doc/view/view.html.php b/module/doc/view/view.html.php index f13a9e2b54..95d219076a 100644 --- a/module/doc/view/view.html.php +++ b/module/doc/view/view.html.php @@ -16,6 +16,8 @@ doc);?> + + tab == 'execution'):;?> @@ -25,11 +27,11 @@ " . $lang->goback, "id='backBtn'", 'btn btn-link')?>
- " . $lang->export, '', "class='btn btn-link export'"); - if(common::hasPriv('api', 'create')) echo html::a($this->createLink('api', 'create', "libID=$libID&moduleID=$moduleID", '', true), ' ' . $lang->api->createApi, '', 'class="btn btn-primary iframe" data-width="95%"'); - if(common::hasPriv('doc', 'create')) echo $this->doc->printCreateBtn($lib, $type, $objectID, $moduleID); - ?> + createLink('doc', $exportMethod, "libID=$libID&docID=$docID"), " " . $lang->export, 'hiddenwin', "class='btn btn-link' id='docExport'"); + if(common::hasPriv('api', 'create')) echo html::a($this->createLink('api', 'create', "libID=$libID&moduleID=$moduleID", '', true), ' ' . $lang->api->createApi, '', 'class="btn btn-primary iframe" data-width="95%"'); + if(common::hasPriv('doc', 'create')) echo $this->doc->printCreateBtn($lib, $type, $objectID, $moduleID); + ?>