diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php
index 32438dc257..67e1345892 100644
--- a/module/common/lang/menu.php
+++ b/module/common/lang/menu.php
@@ -309,8 +309,6 @@ $lang->kanbanProject->menu->settings['subMenu']->view = array('link' => "
$lang->kanbanProject->menu->settings['subMenu']->products = array('link' => "{$lang->product->common}|project|manageProducts|project=%s", 'alias' => 'manageproducts');
$lang->kanbanProject->menu->settings['subMenu']->members = array('link' => "{$lang->team->common}|project|team|project=%s", 'alias' => 'managemembers,team');
$lang->kanbanProject->menu->settings['subMenu']->whitelist = array('link' => "{$lang->whitelist}|project|whitelist|project=%s", 'subModule' => 'personnel');
-$lang->kanbanProject->menu->settings['subMenu']->stakeholder = array('link' => "{$lang->stakeholder->common}|stakeholder|browse|project=%s", 'subModule' => 'stakeholder');
-$lang->kanbanProject->menu->settings['subMenu']->group = array('link' => "{$lang->priv}|project|group|project=%s", 'alias' => 'group,manageview,managepriv');
/* Execution menu. */
$lang->execution->homeMenu = new stdclass();
diff --git a/module/project/model.php b/module/project/model.php
index d2c6cdc499..3e815f6808 100644
--- a/module/project/model.php
+++ b/module/project/model.php
@@ -2636,12 +2636,6 @@ class projectModel extends model
unset($this->lang->project->menu->settings['subMenu']->whitelist);
}
- if($project->model == 'kanban')
- {
- unset($this->lang->project->menu->settings['subMenu']->stakeholder);
- unset($this->lang->project->menu->settings['subMenu']->group);
- }
-
common::setMenuVars('project', $objectID);
return $objectID;
}
diff --git a/module/task/view/view.html.php b/module/task/view/view.html.php
index f0732f48dd..844e44a79f 100644
--- a/module/task/view/view.html.php
+++ b/module/task/view/view.html.php
@@ -166,8 +166,8 @@
-
- ' . $lang->goback, '', "class='btn btn-secondary'");?>
+ app->getViewType() != 'xhtml'):?>
+ ' . $lang->goback, '', "class='btn'");?>
";?>
executionList = $execution;?>
diff --git a/module/todo/config.php b/module/todo/config.php
index 91e5d79ecf..90d3c24eaa 100644
--- a/module/todo/config.php
+++ b/module/todo/config.php
@@ -21,7 +21,7 @@ $config->todo->editor->view = array('id' => 'comment,lastComment', 'tools' =>
$config->todo->list = new stdclass();
$config->todo->list->exportFields = 'id, account, date, begin, end, type, idvalue, pri, name, desc, status, private';
$config->todo->list->customBatchCreateFields = 'type,pri,desc,beginAndEnd';
-$config->todo->list->customBatchEditFields = 'pri,desc,beginAndEnd,status';
+$config->todo->list->customBatchEditFields = 'pri,beginAndEnd,status';
$config->todo->custom = new stdclass();
$config->todo->custom->batchCreateFields = 'type,pri,desc,beginAndEnd';
diff --git a/module/todo/control.php b/module/todo/control.php
index 14eaa91763..c52cf46751 100644
--- a/module/todo/control.php
+++ b/module/todo/control.php
@@ -75,12 +75,15 @@ class todo extends control
}
unset($this->lang->todo->typeList['cycle']);
+
$this->view->title = $this->lang->todo->common . $this->lang->colon . $this->lang->todo->create;
$this->view->position[] = $this->lang->todo->common;
$this->view->position[] = $this->lang->todo->create;
$this->view->date = date("Y-m-d", strtotime($date));
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->time = date::now();
+ $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted|noempty');
+
$this->display();
}
@@ -115,9 +118,11 @@ class todo extends control
return print(js::locate($this->createLink('my', 'todo', "type=$date"), 'parent'));
}
- /* Set Custom*/
unset($this->lang->todo->typeList['cycle']);
+
+ /* Set Custom*/
foreach(explode(',', $this->config->todo->list->customBatchCreateFields) as $field) $customFields[$field] = $this->lang->todo->$field;
+
$this->view->customFields = $customFields;
$this->view->showFields = $this->config->todo->custom->batchCreateFields;
@@ -127,6 +132,7 @@ class todo extends control
$this->view->date = (int)$date == 0 ? $date : date('Y-m-d', strtotime($date));
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->time = date::now();
+ $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted|noempty');
$this->display();
}
@@ -163,12 +169,15 @@ class todo extends control
if($todo->private and $this->app->user->account != $todo->account) return print('private');
unset($this->lang->todo->typeList['cycle']);
+
$todo->date = date("Y-m-d", strtotime($todo->date));
$this->view->title = $this->lang->todo->common . $this->lang->colon . $this->lang->todo->edit;
$this->view->position[] = $this->lang->todo->common;
$this->view->position[] = $this->lang->todo->edit;
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->todo = $todo;
+ $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted|noempty');
+
$this->display();
}
@@ -260,6 +269,7 @@ class todo extends control
$this->view->time = date::now();
$this->view->title = $title;
$this->view->position = $position;
+ $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted|noempty');
$this->display();
}
@@ -357,7 +367,7 @@ class todo extends control
}
$this->view->todo = $this->todo->getById($todoID);
- $this->view->members = $this->loadModel('user')->getPairs('noclosed');
+ $this->view->members = $this->loadModel('user')->getPairs('noclosed|noempty|nodeleted');
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->actions = $this->loadModel('action')->getList('todo', $todoID);
$this->view->users = $this->user->getPairs('noletter');
diff --git a/module/todo/css/batchcreate.css b/module/todo/css/batchcreate.css
index 19576bc2ab..ca1968b83e 100755
--- a/module/todo/css/batchcreate.css
+++ b/module/todo/css/batchcreate.css
@@ -6,13 +6,17 @@
html[lang="en"] #todoBatchAddForm .col-pri {width: 105px;}
#todoBatchAddForm .col-date {width: 180px;}
#todoBatchAddForm .col-pending {width: 70px;}
+#todoBatchAddForm .col-assignedTo {width: 120px;}
+#todoBatchAddForm .col-name {width: auto;}
+#todoBatchAddForm .col-future {width: 90px;}
+#todoBatchAddForm .col-future #select-all {overflow: visible;}
html[lang="en"] #todoBatchAddForm .col-pending {width: 90px;}
#todoBatchAddForm .chosen-container-single .chosen-single {border-radius: 0;}
#todoBatchAddForm .control-time-begin + .chosen-container-single .chosen-single {border-radius: 2px 0 0 2px; border-right-width: 0; padding-right: 1px;}
#todoBatchAddForm .control-time-begin + .chosen-container-active .chosen-single {border-right-width: 1px; padding-right: 0;}
#todoBatchAddHeader [name="date"]:disabled {color: #ccc; text-decoration: line-through;}
-.main-header > .input-group {width: 240px;}
-html[lang="en"] .main-header > .input-group {width: 250px;}
+#mainContent .main-header > .input-group {width: 240px;}
+html[lang="en"] #mainContent .main-header > .input-group, html[lang="de"] #mainContent .main-header > .input-group {width: 250px;}
#formSettingBtn {position: absolute; top: 14px; right: 20px; z-index: 1000;}
#formSettingBtn .dropdown {margin-right: 0px;}
@@ -20,3 +24,6 @@ html[lang="en"] .main-header > .input-group {width: 250px;}
#formSettingBtn .checkboxes {padding: 10px 3px;}
#formSettingBtn .checkbox-primary {width: 50%; float: left; margin: 3px 0;}
#formSetting .btn {margin-right: 8px;}
+[lang^='fr'] #formSetting {width: 345px !important;}
+[lang^='de'] #formSetting {width: 380px !important;}
+.visible {overflow: visible !important;}
diff --git a/module/todo/css/batchedit.css b/module/todo/css/batchedit.css
index b4a5e79de4..34d98f66cb 100644
--- a/module/todo/css/batchedit.css
+++ b/module/todo/css/batchedit.css
@@ -3,6 +3,8 @@
div[id*="ends"] .chosen-single {border-left: none;}
.c-id {width: 40px;}
-.c-pri {width: 100px;}
-.c-status {width: 120px;}
-.c-date {width: 300px;}
+.c-pri, .c-date {width: 100px;}
+.c-status, .c-assignedTo {width: 120px;}
+.c-beginAndEnd{width: 300px;}
+.c-assignedTo {padding-left: 0px !important;}
+.visible {overflow: visible;}
diff --git a/module/todo/css/create.css b/module/todo/css/create.css
index e244ada28e..1c096596a5 100644
--- a/module/todo/css/create.css
+++ b/module/todo/css/create.css
@@ -7,3 +7,5 @@
.nameBox {display: grid;}
.pri-selector > .btn {padding: 5px 12px;}
#assignedTo_chosen.chosen-container .chosen-results {max-height: 180px;}
+.inputGroupWidth {padding-top: 5px;}
+.nameBox + span {border-radius: 0px;}
diff --git a/module/todo/css/edit.css b/module/todo/css/edit.css
index 27d9ef709e..cd803cffb1 100644
--- a/module/todo/css/edit.css
+++ b/module/todo/css/edit.css
@@ -5,3 +5,7 @@
.nameBox {display: grid;}
.chosen-container-single .chosen-single {height: 34px;}
#begin_chosen .chosen-single {border-right-width: 0px;}
+.beginBox {padding-right: 0px;}
+.endBox {padding-left: 0px;}
+.beforeDaysBox {width: 250px; padding-top: 5px;}
+.nameBox + span {border-radius: 0px;}
diff --git a/module/todo/js/edit.js b/module/todo/js/edit.js
index e83c70fa19..cea11ab97d 100644
--- a/module/todo/js/edit.js
+++ b/module/todo/js/edit.js
@@ -9,4 +9,23 @@ $(function()
var value = $select.val();
$selector.find('.pri-text').html('
' + value + '');
});
+
+ alignWidth();
+
+ $(window).resize(function()
+ {
+ alignWidth();
+ });
});
+
+/**
+ * Align with the date width.
+ *
+ * @access public
+ * @return void
+ */
+function alignWidth()
+{
+ var dateWidth = $('#date').parent().width();
+ $('.dateWidth').width(dateWidth);
+}
diff --git a/module/todo/lang/de.php b/module/todo/lang/de.php
index 6eaa189f29..bdd2825548 100644
--- a/module/todo/lang/de.php
+++ b/module/todo/lang/de.php
@@ -71,6 +71,7 @@ $lang->todo->closedBy = 'ClosedBy';
$lang->todo->closedDate = 'ClosedDate';
$lang->todo->deadline = 'Fällig';
$lang->todo->deleted = 'Deleted';
+$lang->todo->ditto = 'Dito';
$lang->todo->cycleDaysLabel = 'Interval days';
$lang->todo->beforeDaysLabel = 'Days in advance';
diff --git a/module/todo/lang/en.php b/module/todo/lang/en.php
index 1b2c1d615b..393be9e447 100644
--- a/module/todo/lang/en.php
+++ b/module/todo/lang/en.php
@@ -71,6 +71,7 @@ $lang->todo->closedBy = 'ClosedBy';
$lang->todo->closedDate = 'ClosedDate';
$lang->todo->deadline = 'Expiration';
$lang->todo->deleted = 'Deleted';
+$lang->todo->ditto = 'Ditto';
$lang->todo->cycleDaysLabel = 'Interval days';
$lang->todo->beforeDaysLabel = 'Days in advance';
diff --git a/module/todo/lang/fr.php b/module/todo/lang/fr.php
index f212d8953b..0f12d6a044 100644
--- a/module/todo/lang/fr.php
+++ b/module/todo/lang/fr.php
@@ -71,6 +71,7 @@ $lang->todo->closedBy = 'ClosedBy';
$lang->todo->closedDate = 'ClosedDate';
$lang->todo->deadline = 'Expiration';
$lang->todo->deleted = 'Deleted';
+$lang->todo->ditto = 'Idem';
$lang->todo->cycleDaysLabel = 'Interval days';
$lang->todo->beforeDaysLabel = 'Days in advance';
diff --git a/module/todo/lang/zh-cn.php b/module/todo/lang/zh-cn.php
index dbc2242cdb..2de9d58aae 100644
--- a/module/todo/lang/zh-cn.php
+++ b/module/todo/lang/zh-cn.php
@@ -71,6 +71,7 @@ $lang->todo->closedBy = '由谁关闭';
$lang->todo->closedDate = '关闭时间';
$lang->todo->deadline = '过期时间';
$lang->todo->deleted = '已删除';
+$lang->todo->ditto = '同上';
$lang->todo->cycleDaysLabel = '间隔天数';
$lang->todo->beforeDaysLabel = '提前天数';
diff --git a/module/todo/model.php b/module/todo/model.php
index ce934060be..a251f011b2 100644
--- a/module/todo/model.php
+++ b/module/todo/model.php
@@ -141,9 +141,11 @@ class todoModel extends model
$validTodos = array();
$now = helper::now();
+ $assignedTo = $this->app->user->account;
for($i = 0; $i < $this->config->todo->batchCreate; $i++)
{
- $isExist = false;
+ $isExist = false;
+ $assignedTo = $todos->assignedTos[$i] == 'ditto' ? $assignedTo : $todos->assignedTos[$i];
foreach($this->config->todo->objectList as $objects)
{
if(isset($todos->{$objects}[$i + 1]))
@@ -175,7 +177,7 @@ class todoModel extends model
$todo->status = "wait";
$todo->private = 0;
$todo->idvalue = 0;
- $todo->assignedTo = $this->app->user->account;
+ $todo->assignedTo = $assignedTo;
$todo->assignedBy = $this->app->user->account;
$todo->assignedDate = $now;
$todo->vision = $this->config->vision;
@@ -324,16 +326,20 @@ class todoModel extends model
if(!empty($todoIDList))
{
/* Initialize todos from the post data. */
+ $oldTodos = $this->dao->select('*')->from(TABLE_TODO)->where('id')->in(array_keys($todos))->fetchAll('id');
foreach($todoIDList as $todoID)
{
+ $oldTodo = $oldTodos[$todoID];
+
$todo = new stdclass();
- $todo->date = $data->dates[$todoID];
- $todo->type = $data->types[$todoID];
- $todo->pri = $data->pris[$todoID];
- $todo->status = $data->status[$todoID];
- $todo->name = !in_array($todo->type, $this->config->todo->moduleList) ? $data->names[$todoID] : '';
- $todo->begin = isset($data->begins[$todoID]) ? $data->begins[$todoID] : 2400;
- $todo->end = isset($data->ends[$todoID]) ? $data->ends[$todoID] : 2400;
+ $todo->date = $data->dates[$todoID];
+ $todo->type = $data->types[$todoID];
+ $todo->pri = $data->pris[$todoID];
+ $todo->status = $data->status[$todoID];
+ $todo->name = !in_array($todo->type, $this->config->todo->moduleList) ? $data->names[$todoID] : '';
+ $todo->begin = isset($data->begins[$todoID]) ? $data->begins[$todoID] : 2400;
+ $todo->end = isset($data->ends[$todoID]) ? $data->ends[$todoID] : 2400;
+ $todo->assignedTo = isset($data->assignedTos[$todoID]) ? $data->assignedTos[$todoID] : $oldTodo->assignedTo;
if(in_array($todo->type, $this->config->todo->moduleList))
{
@@ -344,7 +350,6 @@ class todoModel extends model
$todos[$todoID] = $todo;
}
- $oldTodos = $this->dao->select('*')->from(TABLE_TODO)->where('id')->in(array_keys($todos))->fetchAll('id');
foreach($todos as $todoID => $todo)
{
$oldTodo = $oldTodos[$todoID];
diff --git a/module/todo/view/batchcreate.html.php b/module/todo/view/batchcreate.html.php
index 771b7b6ce0..36cc8112d8 100755
--- a/module/todo/view/batchcreate.html.php
+++ b/module/todo/view/batchcreate.html.php
@@ -41,7 +41,7 @@
{
if($field)$visibleFields[$field] = '';
}
- $columns = count($visibleFields) + 2;
+ $columns = count($visibleFields) + 3;
?>