diff options
-rw-r--r-- | assets/css/app.css | 22 | ||||
-rw-r--r-- | assets/js/board.js | 27 | ||||
-rw-r--r-- | controllers/board.php | 34 | ||||
-rw-r--r-- | core/request.php | 5 | ||||
-rw-r--r-- | templates/board_show.php | 2 |
5 files changed, 78 insertions, 12 deletions
diff --git a/assets/css/app.css b/assets/css/app.css index dbb302fd..67e4e6df 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -20,7 +20,7 @@ body { margin-left: 10px; margin-right: 10px; color: #333; - font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, sans-serif; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; font-smoothing: antialiased; text-rendering: optimizeLegibility; @@ -883,3 +883,23 @@ tr td.task-orange, max-width: 700px; font-size: 1.1em; } + +/* modal box */ +#popover-container { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.8); +} + +#popover-content { + position: fixed; + width: 70%; + margin: 0 0 0 -35%; + left: 50%; + top: 5%; + padding: 15px; + background: #fff; +} diff --git a/assets/js/board.js b/assets/js/board.js index 105641ef..1d936a27 100644 --- a/assets/js/board.js +++ b/assets/js/board.js @@ -14,6 +14,19 @@ } }); + // Open assignee popover + $(".task-user a").click(function(e) { + + e.preventDefault(); + e.stopPropagation(); + + var taskId = $(this).parent().parent().attr("data-task-id"); + + $.get("?controller=board&action=assign&task_id=" + taskId, function(data) { + popover_show(data); + }); + }); + // Redirect to the task details page $("[data-task-id]").each(function() { $(this).click(function() { @@ -137,6 +150,20 @@ }); } + // Show popup + function popover_show(content) + { + $("body").append('<div id="popover-container"><div id="popover-content">' + content + '</div></div>'); + + $("#popover-container").click(function() { + $(this).remove(); + }); + + $("#popover-content").click(function(e) { + e.stopPropagation(); + }); + } + // Initialization $(function() { board_load_events(); diff --git a/controllers/board.php b/controllers/board.php index 8eea4dcc..02669e3a 100644 --- a/controllers/board.php +++ b/controllers/board.php @@ -60,16 +60,30 @@ class Board extends Base if (! $project) $this->notfound(); $this->checkProjectPermissions($project['id']); - $this->response->html($this->template->layout('board_assign', array( - 'errors' => array(), - 'values' => $task, - 'users_list' => $this->project->getUsersList($project['id']), - 'projects' => $projects, - 'current_project_id' => $project['id'], - 'current_project_name' => $project['name'], - 'menu' => 'boards', - 'title' => t('Change assignee').' - '.$task['title'], - ))); + if ($this->request->isAjax()) { + + $this->response->html($this->template->load('board_assign', array( + 'errors' => array(), + 'values' => $task, + 'users_list' => $this->project->getUsersList($project['id']), + 'projects' => $projects, + 'current_project_id' => $project['id'], + 'current_project_name' => $project['name'], + ))); + } + else { + + $this->response->html($this->template->layout('board_assign', array( + 'errors' => array(), + 'values' => $task, + 'users_list' => $this->project->getUsersList($project['id']), + 'projects' => $projects, + 'current_project_id' => $project['id'], + 'current_project_name' => $project['name'], + 'menu' => 'boards', + 'title' => t('Change assignee').' - '.$task['title'], + ))); + } } /** diff --git a/core/request.php b/core/request.php index f2fa4d9f..df8ea41a 100644 --- a/core/request.php +++ b/core/request.php @@ -48,4 +48,9 @@ class Request { return isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'POST'; } + + public function isAjax() + { + return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest'; + } } diff --git a/templates/board_show.php b/templates/board_show.php index b7bafe1c..ad459399 100644 --- a/templates/board_show.php +++ b/templates/board_show.php @@ -72,4 +72,4 @@ </td> <?php endforeach ?> </tr> -</table>
\ No newline at end of file +</table> |