diff --git a/module/action/lang/de.php b/module/action/lang/de.php index 9c78f6e716..22861caf5f 100644 --- a/module/action/lang/de.php +++ b/module/action/lang/de.php @@ -269,6 +269,10 @@ $lang->action->desc->linkbug = '$date, $actor link bugs action->desc->unlinkstory = '$date, $actor remove stories $extra from plan.' . "\n"; $lang->action->desc->unlinkbug = '$date, $actor remove bugs $extra from plan.' . "\n"; +/* Describes the history of operations when a document is saved as a draft or released. */ +$lang->action->desc->saveddraft = '$date, 由 $actor save draft $extra。' . "\n"; +$lang->action->desc->releaseddoc = '$date, 由 $actor released $extra。' . "\n"; + /* Used to display dynamic information. */ $lang->action->label = new stdclass(); $lang->action->label->install = 'install '; @@ -428,6 +432,8 @@ $lang->action->label->createdsnapshot = 'create snapshot'; $lang->action->label->restoredsnapshot = 'create snapshot'; $lang->action->label->editsnapshot = 'edit snapshot'; $lang->action->label->deletesnapshot = 'deleted snapshot'; +$lang->action->label->saveddraft = 'save draft'; +$lang->action->label->releaseddoc = 'released'; /* Dynamic information is grouped by object. */ $lang->action->dynamicAction = new stdclass; diff --git a/module/action/lang/en.php b/module/action/lang/en.php index 11a1112438..df1cb55209 100755 --- a/module/action/lang/en.php +++ b/module/action/lang/en.php @@ -269,6 +269,10 @@ $lang->action->desc->linkbug = '$date, $actor link bugs action->desc->unlinkstory = '$date, $actor remove stories $extra from plan.' . "\n"; $lang->action->desc->unlinkbug = '$date, $actor remove bugs $extra from plan.' . "\n"; +/* Describes the history of operations when a document is saved as a draft or released. */ +$lang->action->desc->saveddraft = '$date, 由 $actor save draft $extra。' . "\n"; +$lang->action->desc->releaseddoc = '$date, 由 $actor released $extra。' . "\n"; + /* Used to display dynamic information. */ $lang->action->label = new stdclass(); $lang->action->label->install = 'install '; @@ -428,6 +432,8 @@ $lang->action->label->createdsnapshot = 'create snapshot'; $lang->action->label->restoredsnapshot = 'create snapshot'; $lang->action->label->editsnapshot = 'edit snapshot'; $lang->action->label->deletesnapshot = 'deleted snapshot'; +$lang->action->label->saveddraft = 'save draft'; +$lang->action->label->releaseddoc = 'released'; /* Dynamic information is grouped by object. */ $lang->action->dynamicAction = new stdclass; diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php index 9b83041321..4a0cfba359 100644 --- a/module/action/lang/fr.php +++ b/module/action/lang/fr.php @@ -269,6 +269,10 @@ $lang->action->desc->linkbug = '$date, $actor link bugs action->desc->unlinkstory = '$date, $actor remove stories $extra from plan.' . "\n"; $lang->action->desc->unlinkbug = '$date, $actor remove bugs $extra from plan.' . "\n"; +/* Describes the history of operations when a document is saved as a draft or released. */ +$lang->action->desc->saveddraft = '$date, 由 $actor save draft $extra。' . "\n"; +$lang->action->desc->releaseddoc = '$date, 由 $actor released $extra。' . "\n"; + /* Used to display dynamic information. */ $lang->action->label = new stdclass(); $lang->action->label->install = 'install '; @@ -428,6 +432,8 @@ $lang->action->label->createdsnapshot = 'create snapshot'; $lang->action->label->restoredsnapshot = 'create snapshot'; $lang->action->label->editsnapshot = 'edit snapshot'; $lang->action->label->deletesnapshot = 'deleted snapshot'; +$lang->action->label->saveddraft = 'save draft'; +$lang->action->label->releaseddoc = 'released'; /* Dynamic information is grouped by object. */ $lang->action->dynamicAction = new stdclass(); diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index cda9c316ed..b261508a25 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -269,6 +269,10 @@ $lang->action->desc->linkbug = '$date, 由 $actor 关联BUG $lang->action->desc->unlinkstory = '$date, 由 $actor 从计划移除需求 $extra。' . "\n"; $lang->action->desc->unlinkbug = '$date, 由 $actor 从计划移除BUG $extra。' . "\n"; +/* 用来描述文档保存为草稿或发布时的历史操作记录。*/ +$lang->action->desc->saveddraft = '$date, 由 $actor 存为草稿 $extra。' . "\n"; +$lang->action->desc->releaseddoc = '$date, 由 $actor 发布 $extra。' . "\n"; + /* 用来显示动态信息。*/ $lang->action->label = new stdclass(); $lang->action->label->install = '安装了'; @@ -428,6 +432,8 @@ $lang->action->label->createdsnapshot = '创建了快照'; $lang->action->label->restoredsnapshot = '还原了快照'; $lang->action->label->editsnapshot = '编辑了快照'; $lang->action->label->deletesnapshot = '编辑了快照'; +$lang->action->label->saveddraft = '存为草稿'; +$lang->action->label->releaseddoc = '发布了'; /* 动态信息按照对象分组 */ $lang->action->dynamicAction = new stdclass(); diff --git a/module/block/control.php b/module/block/control.php index 76415e75ec..414bd3dfb2 100755 --- a/module/block/control.php +++ b/module/block/control.php @@ -2052,6 +2052,12 @@ class block extends control */ public function printDocDynamicBlock() { + /* Load pager. */ + $this->app->loadClass('pager', $static = true); + $pager = new pager(0, 30, 1); + + $this->view->actions = $this->loadModel('doc')->getDynamic($pager); + $this->view->users = $this->loadModel('user')->getPairs('nodeleted|noletter|all'); } /** diff --git a/module/block/view/docdynamicblock.html.php b/module/block/view/docdynamicblock.html.php index e69de29bb2..249ddf0b37 100644 --- a/module/block/view/docdynamicblock.html.php +++ b/module/block/view/docdynamicblock.html.php @@ -0,0 +1,34 @@ + +
block->emptyTip;?>
+ + +
+
    + actor); + $class = $action->major ? "class='active'" : ''; + echo "
  • "; + if($action->objectLink) printf($lang->block->dynamicInfo, $action->date, $user, $action->actionLabel, $action->objectLabel, $action->objectLink, $action->objectName, $action->objectName); + if(!$action->objectLink) printf($lang->block->noLinkDynamic, $action->date, $action->objectName, $user, $action->actionLabel, $action->objectLabel, ' ' . $action->objectName); + echo "
  • "; + $i++; + } + ?> +
+
+ diff --git a/module/doc/control.php b/module/doc/control.php index a400bbd989..014cabe2b6 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -375,7 +375,8 @@ class doc extends control $fileAction = ''; if(!empty($files)) $fileAction = $this->lang->addFiles . join(',', $files) . "\n"; - $this->action->create('doc', $docID, 'Created', $fileAction); + $actionType = $_POST['status'] == 'draft' ? 'saveDraft' : 'releaseDoc'; + $this->action->create('doc', $docID, $actionType, $fileAction); if($this->viewType == 'json') return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'id' => $docID)); $objectID = zget($lib, $lib->type, 0); @@ -521,6 +522,8 @@ class doc extends control */ public function edit($docID, $comment = false, $objectType = '', $objectID = 0, $libID = 0, $from = 'edit') { + $doc = $this->doc->getById($docID); + if(!empty($_POST)) { if($comment == false || $comment == 'false') @@ -532,7 +535,14 @@ class doc extends control } if($this->post->comment != '' or !empty($changes) or !empty($files)) { - $action = !empty($changes) ? 'Edited' : 'Commented'; + $action = 'Commented'; + if(!empty($changes)) + { + $newType = $_POST['status']; + if($doc->status == 'draft' and $newType == 'draft') $action = 'saveDraft'; + if($doc->status == 'draft' and $newType == 'normal') $action = 'releaseDoc'; + if($doc->status == 'normal' and $newType == 'normal') $action = 'Edited'; + } $fileAction = ''; if(!empty($files)) $fileAction = $this->lang->addFiles . join(',', $files) . "\n"; $actionID = $this->action->create('doc', $docID, $action, $fileAction . $this->post->comment); @@ -554,7 +564,6 @@ class doc extends control } /* Get doc and set menu. */ - $doc = $this->doc->getById($docID); $libID = $doc->lib; if($doc->contentType == 'markdown') $this->config->doc->markdown->edit = array('id' => 'content', 'tools' => 'toolbar'); diff --git a/module/doc/model.php b/module/doc/model.php index b763bbbeb5..ec258ea868 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -3350,4 +3350,23 @@ class docModel extends model return $otherEditing; } + + /** + * Get document dynamic. + * + * @param object $pager + * @access public + * @return array + */ + public function getDynamic($pager = null) + { + $actions = $this->dao->select('*')->from(TABLE_ACTION) + ->where('objectType')->in('doclib,doc') + ->andWhere('vision')->eq($this->config->vision) + ->orderBy('date_desc') + ->page($pager) + ->fetchAll(); + + return $this->loadModel('action')->transformActions($actions); + } }