From f79d717ce97d2471a19bc48b52c7d7d1ef0dc4cb Mon Sep 17 00:00:00 2001 From: fujia Date: Wed, 23 Jun 2010 02:09:16 +0000 Subject: [PATCH] * complete task #227:add multiple and size options to task owner. --- trunk/module/mail/model.php | 4 +- trunk/module/task/control.php | 10 +++-- trunk/module/task/lang/zh-cn.php | 1 + trunk/module/task/model.php | 52 ++++++++++++++------------ trunk/module/task/view/create.html.php | 18 ++++++++- 5 files changed, 56 insertions(+), 29 deletions(-) diff --git a/trunk/module/mail/model.php b/trunk/module/mail/model.php index 2cf9c5e791..d8dcafee7f 100644 --- a/trunk/module/mail/model.php +++ b/trunk/module/mail/model.php @@ -93,6 +93,8 @@ class mailModel extends model /* 获得用户的真实姓名和email列表。*/ $this->loadModel('user'); $emails = $this->user->getRealNameAndEmails(str_replace(' ', '', $toList . ',' . $ccList)); + + $this->clear(); try { @@ -154,7 +156,7 @@ class mailModel extends model private function clear() { $this->mta->clearAddresses(); - $this->mta->cearAttachments(); + $this->mta->clearAttachments(); } /* 判断是否有错!*/ diff --git a/trunk/module/task/control.php b/trunk/module/task/control.php index 8119b0f756..b1fe785c7b 100644 --- a/trunk/module/task/control.php +++ b/trunk/module/task/control.php @@ -42,11 +42,14 @@ class task extends control if(!empty($_POST)) { - $taskID = $this->task->create($projectID); + $tasksID = $this->task->create($projectID); if(dao::isError()) die(js::error(dao::getError())); $this->loadModel('action'); - $actionID = $this->action->create('task', $taskID, 'Opened', ''); - $this->sendmail($taskID, $actionID); + foreach($tasksID as $taskID) + { + $actionID = $this->action->create('task', $taskID, 'Opened', ''); + $this->sendmail($taskID, $actionID); + } if($this->post->after == 'continueAdding') { echo js::alert($this->lang->task->successSaved . $this->lang->task->afterChoices['continueAdding']); @@ -243,6 +246,7 @@ class task extends control /* 赋值,获得邮件内容。*/ $this->assign('task', $task); $this->assign('action', $action); + $this->clear(); $mailContent = $this->parse($this->moduleName, 'sendmail'); /* 发信。*/ diff --git a/trunk/module/task/lang/zh-cn.php b/trunk/module/task/lang/zh-cn.php index 69a3eb2534..05045e7291 100644 --- a/trunk/module/task/lang/zh-cn.php +++ b/trunk/module/task/lang/zh-cn.php @@ -67,6 +67,7 @@ $lang->task->typeList['test'] = '测试'; $lang->task->typeList['study'] = '研究'; $lang->task->typeList['discuss']= '讨论'; $lang->task->typeList['ui'] = '界面'; +$lang->task->typeList['affair'] = '事务'; $lang->task->typeList['misc'] = '其他'; $lang->task->priList[0] = ''; diff --git a/trunk/module/task/model.php b/trunk/module/task/model.php index 6cdd88b30f..4fa0ec7148 100644 --- a/trunk/module/task/model.php +++ b/trunk/module/task/model.php @@ -30,31 +30,37 @@ class taskModel extends model /* 新增一个任务。*/ public function create($projectID) { - $task = fixer::input('post') - ->striptags('name') - ->specialChars('desc') - ->add('project', (int)$projectID) - ->setDefault('estimate, left, story', 0) - ->setDefault('deadline', '0000-00-00') - ->setIF($this->post->estimate != false, 'left', $this->post->estimate) - ->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) - ->setDefault('statusCustom', strpos(self::CUSTOM_STATUS_ORDER, $this->post->status) + 1) - ->remove('after,files,labels') - ->get(); - - $this->dao->insert(TABLE_TASK)->data($task) - ->autoCheck() - ->batchCheck($this->config->task->create->requiredFields, 'notempty') - ->checkIF($task->estimate != '', 'estimate', 'float') - ->exec(); - if(!dao::isError()) + $tasksID = array(); + foreach($this->post->owner as $owner) { - $taskID = $this->dao->lastInsertID(); - if($this->post->story) $this->loadModel('story')->setStage($this->post->story); - $this->loadModel('file')->saveUpload('task', $taskID); - return $taskID; + $task = fixer::input('post') + ->striptags('name') + ->specialChars('desc') + ->add('project', (int)$projectID) + ->setDefault('estimate, left, story', 0) + ->setDefault('deadline', '0000-00-00') + ->setIF($this->post->estimate != false, 'left', $this->post->estimate) + ->setForce('owner', $owner) + ->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) + ->setDefault('statusCustom', strpos(self::CUSTOM_STATUS_ORDER, $this->post->status) + 1) + ->remove('after,files,labels') + ->get(); + + $this->dao->insert(TABLE_TASK)->data($task) + ->autoCheck() + ->batchCheck($this->config->task->create->requiredFields, 'notempty') + ->checkIF($task->estimate != '', 'estimate', 'float') + ->exec(); + if(!dao::isError()) + { + $taskID = $this->dao->lastInsertID(); + if($this->post->story) $this->loadModel('story')->setStage($this->post->story); + $this->loadModel('file')->saveUpload('task', $taskID); + $tasksID[$owner] = $taskID; + } + else return false; } - return false; + return $tasksID; } /* 更新一个任务。*/ diff --git a/trunk/module/task/view/create.html.php b/trunk/module/task/view/create.html.php index 4aeb64d53f..8eac0a6286 100644 --- a/trunk/module/task/view/create.html.php +++ b/trunk/module/task/view/create.html.php @@ -32,6 +32,20 @@ function copyStoryTitle() storyTitle = storyTitle.substr(storyTitle.lastIndexOf(':')+ 1); $('#name').attr('value', storyTitle); } +/* 设置任务指派给多选。*/ +function setOwners(result) +{ + if(result == 'affair') + { + $('#owner').attr('size', 4); + $('#owner').attr('multiple', 'multiple'); + } + else + { + $('#owner').removeAttr('size'); + $('#owner').removeAttr('multiple'); + } +} function sendMailTo() { var userList = "".split(','); @@ -78,7 +92,7 @@ $(document).ready(function() task->type;?> - task->typeList, '', 'class=select-3');?> + task->typeList, '', 'class=select-3 onchange="setOwners(this.value)"');?> task->status;?> @@ -86,7 +100,7 @@ $(document).ready(function() task->owner;?> - + task->mailto;?>