diff --git a/module/block/ui/docmycreatedblock.html.php b/module/block/ui/docmycreatedblock.html.php new file mode 100644 index 0000000000..55369398d3 --- /dev/null +++ b/module/block/ui/docmycreatedblock.html.php @@ -0,0 +1,71 @@ + +* @package block +* @link https://www.zentao.net +*/ + +namespace zin; + +$canView = common::hasPriv('doc', 'view'); + +$docItems = array(); +foreach($docList as $doc) +{ + $editTip = $lang->doc->todayUpdated; + $interval = $doc->editInterval; + if($interval->year) + { + $editTip = sprintf($lang->doc->yearsUpdated, $interval->year); + } + elseif($interval->month) + { + $editTip = sprintf($lang->doc->monthsUpdated, $interval->month); + } + elseif($interval->day) + { + $editTip = sprintf($lang->doc->daysUpdated, $interval->day); + } + + $docType = $doc->type == 'text' ? 'wiki-file' : $doc->type; + + $docItems[] = cell + ( + set::width('49%'), + setStyle('width', '49%'), + setClass('border rounded-lg p-2'), + a + ( + setClass('text-left w-full'), + set('href', $canView ? createLink('doc', 'view', "docID={$doc->id}") : null), + span + ( + setClass('text-gray my-2 pl-2 pull-right'), + $editTip, + ), + div + ( + setClass('font-bold my-2 mr-2 clip doc-title'), + img + ( + setClass('inline pr-1'), + set('src', "static/svg/{$docType}.svg") + ), + $doc->title + ), + p + ( + setClass('edit-date text-gray'), + $lang->doc->editedDate . (common::checkNotCN() ? ': ' : ':') . $doc->editedDate + ) + ) + ); +} + +blockPanel(empty($docList) ? $lang->doc->noDoc : div(setClass('flex flex-wrap content-between gap-3'), $docItems)); + +render(); diff --git a/module/doc/control.php b/module/doc/control.php index cb96b25429..cd7608ce66 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -64,7 +64,7 @@ class doc extends control $browseType = strtolower($browseType); $type = strtolower($type); - if(empty($orderBy) && $type == 'mine') $orderBy = 'status,editedDate_desc'; + if(empty($orderBy) && $type == 'mine') $orderBy = 'order_asc'; if(empty($orderBy) && ($type == 'view' || $type == 'collect')) $orderBy = 'status,date_desc'; if(empty($orderBy) && ($type == 'createdby')) $orderBy = 'status,addedDate_desc'; if(empty($orderBy) && ($type == 'editedby')) $orderBy = 'status,editedDate_desc'; @@ -831,6 +831,7 @@ class doc extends control $this->view->exportMethod = $libType == 'api' ? 'export' : $type . '2export'; $this->view->linkParams = "objectID={$objectID}&%s&browseType=&orderBy={$orderBy}¶m=0"; $this->view->defaultNestedShow = $this->docZen->getDefaultNestedShow($libID, $moduleID, $type, $executionID); + $this->view->canUpdateOrder = !($lib->type == 'custom' && $lib->parent == 0) && common::hasPriv('doc', 'sortDoc') && $orderBy == 'order_asc'; $this->display(); } diff --git a/module/doc/js/myspace.ui.js b/module/doc/js/myspace.ui.js new file mode 100644 index 0000000000..a3bd40bbcf --- /dev/null +++ b/module/doc/js/myspace.ui.js @@ -0,0 +1,10 @@ +window.onSortEnd = function(from, to, type) +{ + if(!from || !to) return false; + + const url = $.createLink('doc', 'sortDoc'); + const form = new FormData(); + form.append('orders', JSON.stringify(this.state.rowOrders)); + $.ajaxSubmit({url, data: form}); + return true; +} diff --git a/module/doc/ui/doclist.html.php b/module/doc/ui/doclist.html.php index 84d047d6eb..83e799f84a 100644 --- a/module/doc/ui/doclist.html.php +++ b/module/doc/ui/doclist.html.php @@ -22,7 +22,6 @@ foreach($config->doc->dtable->fieldList as $colName => $col) $params = "objectID={$objectID}&libID={$libID}&moduleID={$moduleID}&browseType={$browseType}&orderBy={$orderBy}¶m={$param}&recTotal={recTotal}&recPerPage={recPerPage}&pageID={page}"; $tableData = empty($docs) ? array() : initTableData($docs, $cols); $createDocLink = ''; -$canUpdateOrder = !($lib->type == 'custom' && $lib->parent == 0) && hasPriv('doc', 'sortDoc') && $orderBy == 'order_asc'; if($browseType != 'bysearch' && $libID && common::hasPriv('doc', 'create')) $createDocLink = createLink('doc', 'create', "objectType={$type}&objectID={$objectID}&libID={$lib->id}&moduleID={$moduleID}&type=html"); $docContent = dtable( setID('docTable'), @@ -42,7 +41,8 @@ $docContent = dtable( set::createLink($createDocLink), set::createTip($lang->doc->create), set::orderBy($orderBy), - set::onSortEnd($canUpdateOrder ? jsRaw('window.onSortEnd') : null), + set::sortable(boolval($canUpdateOrder)), + $canUpdateOrder ? set::onSortEnd(jsRaw('window.onSortEnd')) : null, $canUpdateOrder ? set::plugins(array('sortable')) : null, set::sortLink(createLink($app->rawModule, $app->rawMethod, "objectID={$objectID}&libID={$libID}&moduleID={$moduleID}&browseType={$browseType}&orderBy={name}_{sortType}¶m={$param}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}")), set::footPager(usePager(array('linkCreator' => helper::createLink('doc', $app->rawMethod, $params)))) diff --git a/module/doc/ui/mydoclist.html.php b/module/doc/ui/mydoclist.html.php index 96fb3ea06e..83973c4a14 100644 --- a/module/doc/ui/mydoclist.html.php +++ b/module/doc/ui/mydoclist.html.php @@ -37,6 +37,7 @@ if($app->rawMethod == 'myspace') $sortParams = "type={$type}&" . $sortParams; $params = "type={$type}&" . $params; } + $docContent = dtable ( setID('docTable'), @@ -55,6 +56,9 @@ $docContent = dtable set::createLink($createDocLink), set::createTip($lang->doc->create), set::orderBy($orderBy), + set::sortable(boolval($canUpdateOrder)), + $canUpdateOrder ? set::onSortEnd(jsRaw('window.onSortEnd')) : null, + $canUpdateOrder ? set::plugins(array('sortable')) : null, set::sortLink(createLink('doc', $app->rawMethod, $sortParams)), set::footPager(usePager(array('linkCreator' => helper::createLink('doc', $app->rawMethod, $params)))) ); diff --git a/module/doc/zen.php b/module/doc/zen.php index 5d476c5c61..ab3eb70b2d 100644 --- a/module/doc/zen.php +++ b/module/doc/zen.php @@ -213,6 +213,7 @@ class docZen extends doc $this->view->pager = $pager; $this->view->objectTitle = $objectTitle; $this->view->objectID = 0; + $this->view->canUpdateOrder = common::hasPriv('doc', 'sortDoc') && $orderBy == 'order_asc'; $this->view->libType = 'lib'; $this->view->spaceType = 'mine'; $this->view->users = $this->user->getPairs('noletter');