From 99bd7ed90961e1cb5ced3873360308e4159cdbec Mon Sep 17 00:00:00 2001 From: wangyidong Date: Thu, 2 Nov 2017 14:28:02 +0800 Subject: [PATCH] * finish task #3289. --- module/project/control.php | 16 +++++----------- module/project/js/story.js | 9 ++++++++- module/project/model.php | 1 + module/project/view/story.html.php | 12 ++++++------ module/story/model.php | 5 +++-- module/tutorial/model.php | 18 ++++++++++-------- 6 files changed, 33 insertions(+), 28 deletions(-) diff --git a/module/project/control.php b/module/project/control.php index 18d557a42c..3fa6459aa6 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -530,7 +530,7 @@ class project extends control * @access public * @return void */ - public function story($projectID = 0, $orderBy = 'order', $type = 'byModule', $param = 0, $recTotal = 0, $recPerPage = 50, $pageID = 1) + public function story($projectID = 0, $orderBy = 'order_desc', $type = 'byModule', $param = 0, $recTotal = 0, $recPerPage = 50, $pageID = 1) { /* Load these models. */ $this->loadModel('story'); @@ -2010,17 +2010,11 @@ class project extends control $idList = explode(',', trim($this->post->storys, ',')); $orderBy = $this->post->orderBy; - $stories = $this->dao->select('story,`order`')->from(TABLE_PROJECTSTORY)->alias('t1') - ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story=t2.id') - ->where('t1.story')->in($idList) - ->andWhere('t1.project')->eq($projectID) - ->orderBy($orderBy) - ->fetchPairs('order', 'story'); - foreach($stories as $order => $id) + $order = $this->dao->select('*')->from(TABLE_PROJECTSTORY)->where('story')->in($idList)->andWhere('project')->eq($projectID)->orderBy('order_asc')->fetch('order'); + foreach($idList as $storyID) { - $newID = array_shift($idList); - if($id == $newID) continue; - $this->dao->update(TABLE_PROJECTSTORY)->set('`order`')->eq($order)->where('story')->eq($newID)->andWhere('project')->eq($projectID)->exec(); + $this->dao->update(TABLE_PROJECTSTORY)->set('`order`')->eq($order)->where('story')->eq($storyID)->andWhere('project')->eq($projectID)->exec(); + $order++; } } diff --git a/module/project/js/story.js b/module/project/js/story.js index 08d74073cb..d28778aae3 100644 --- a/module/project/js/story.js +++ b/module/project/js/story.js @@ -6,7 +6,14 @@ $(function() { var list = ''; for(i = 0; i < data.list.length; i++) list += $(data.list[i]).attr('data-id') + ','; - $.post(createLink('project', 'storySort', 'projectID=' + projectID), {'storys' : list, 'orderBy' : orderBy}); + $.post(createLink('project', 'storySort', 'projectID=' + projectID), {'storys' : list, 'orderBy' : orderBy}, function() + { + var $target = $(data.element[0]); + $target.hide(); + $target.fadeIn(1000); + order = 'order_asc' + history.pushState({}, 0, createLink('project', 'story', "projectID=" + projectID + '&orderBy=' + order)); + }); }); fixedTfootAction('#projectStoryForm'); diff --git a/module/project/model.php b/module/project/model.php index 23bdf207fa..c4fdf44a39 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -2314,6 +2314,7 @@ class projectModel extends model ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story = t2.id') ->where('t1.project')->eq((int)$projectID) ->andWhere('t2.deleted')->eq(0) + ->orderBy('t1.`order`_desc') ->fetchAll(); $storyGroups = array(); foreach($stories as $story) $storyGroups[$story->product][$story->module][$story->id] = $story; diff --git a/module/project/view/story.html.php b/module/project/view/story.html.php index b416ef606e..8cc879670d 100644 --- a/module/project/view/story.html.php +++ b/module/project/view/story.html.php @@ -64,6 +64,9 @@ id}&orderBy=%s&type=$type¶m=$param&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?> idAB);?> + + project->updateOrder);?> + priAB);?> story->title);?> openedByAB);?> @@ -75,9 +78,6 @@ story->bugCountAB;?> story->caseCountAB;?> actions;?> - - project->updateOrder);?> - @@ -98,6 +98,9 @@ id));?> + + + story->priList, $story->pri, $story->pri)?>'>story->priList, $story->pri, $story->pri);?> product][$story->branch])) echo "" . $branchGroups[$story->product][$story->branch] . '';?> @@ -154,9 +157,6 @@ } ?> - - - diff --git a/module/story/model.php b/module/story/model.php index d3c73d8229..d3b1d312bf 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -40,7 +40,7 @@ class storyModel extends model $story->projects = $this->dao->select('t1.project, t2.name, t2.status')->from(TABLE_PROJECTSTORY)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') ->where('t1.story')->eq($storyID) - ->orderBy('t1.project DESC') + ->orderBy('t1.`order` DESC') ->fetchAll('project'); $story->tasks = $this->dao->select('id, name, assignedTo, project, status, consumed, `left`')->from(TABLE_TASK)->where('story')->eq($storyID)->andWhere('deleted')->eq(0)->orderBy('id DESC')->fetchGroup('project'); $story->stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->eq($storyID)->fetchPairs('branch', 'stage'); @@ -1574,7 +1574,7 @@ class storyModel extends model * @access public * @return array */ - public function getProjectStories($projectID = 0, $orderBy = 'pri_asc,id_desc', $type = 'byModule', $param = 0, $pager = null) + public function getProjectStories($projectID = 0, $orderBy = 't1.`order`_desc', $type = 'byModule', $param = 0, $pager = null) { if(defined('TUTORIAL')) return $this->loadModel('tutorial')->getProjectStories(); @@ -1667,6 +1667,7 @@ class storyModel extends model ->beginIF($productID)->andWhere('t2.product')->eq((int)$productID)->fi() ->beginIF($branch)->andWhere('t2.branch')->in("0,$branch")->fi() ->beginIF($moduleIdList)->andWhere('t2.module')->in($moduleIdList)->fi() + ->orderBy('t1.`order` desc') ->fetchAll(); if(!$stories) return array(); return $this->formatStories($stories, $type); diff --git a/module/tutorial/model.php b/module/tutorial/model.php index b5930811cb..dcdafdfbb9 100644 --- a/module/tutorial/model.php +++ b/module/tutorial/model.php @@ -110,6 +110,7 @@ class tutorialModel extends model $story->duplicateStory = 0; $story->version = 1; $story->deleted = '0'; + $story->order = '0'; $stories = array(); $stories[] = $story; @@ -202,14 +203,15 @@ class tutorialModel extends model public function getTeamMembers() { $member = new stdclass(); - $member->project = 1; - $member->account = $this->app->user->account; - $member->role = $this->app->user->role; - $member->join = $this->app->user->join; - $member->days = 10; - $member->hours = 7.0; - $member->totalHours = 70.0; - $member->realname = $this->app->user->realname; + $member->project = 1; + $member->account = $this->app->user->account; + $member->role = $this->app->user->role; + $member->join = $this->app->user->join; + $member->days = 10; + $member->hours = 7.0; + $member->totalHours = 70.0; + $member->realname = $this->app->user->realname; + $member->limitedUser = 0; return array($member->account => $member); }