Initial column task limit WIP

This commit is contained in:
kiswa 2017-07-28 01:33:50 +00:00
parent b0c770b221
commit d133903a37
7 changed files with 65 additions and 24 deletions

View File

@ -9,9 +9,9 @@ class BeanLoader {
$attachment->filename = isset($data->filename) ? $data->filename : '';
$attachment->name = isset($data->name) ? $data->name : '';
$attachment->type = isset($data->type) ? $data->type : '';
$attachment->user_id = isset($data->user_id) ? $data->user_id : '';
$attachment->user_id = isset($data->user_id) ? $data->user_id : -1;
$attachment->timestamp = time();
$attachment->task_id = isset($data->task_id) ? $data->task_id : '';
$attachment->task_id = isset($data->task_id) ? $data->task_id : -1;
if (!isset($data->filename) || !isset($data->name) ||
!isset($data->type) || !isset($data->user_id) ||
@ -25,11 +25,11 @@ class BeanLoader {
public static function LoadAutoAction(&$action, $json) {
$data = json_decode($json);
$action->trigger = isset($data->trigger) ? $data->trigger : '';
$action->source_id = isset($data->source_id) ? $data->source_id: '';
$action->trigger = isset($data->trigger) ? $data->trigger : -1;
$action->source_id = isset($data->source_id) ? $data->source_id: -1;
$action->type = isset($data->type) ? $data->type : '';
$action->change_to = isset($data->change_to) ? $data->change_to: '';
$action->board_id = isset($data->board_id) ? $data->board_id: '';
$action->change_to = isset($data->change_to) ? $data->change_to: -1;
$action->board_id = isset($data->board_id) ? $data->board_id: -1;
if (!isset($data->trigger) || !isset($data->type) ||
!isset($data->board_id)) {
@ -43,7 +43,7 @@ class BeanLoader {
$data = json_decode($json);
$board->name = isset($data->name) ? $data->name : '';
$board->is_active = isset($data->is_active) ? $data->is_active : '';
$board->is_active = isset($data->is_active) ? $data->is_active : false;
if (isset($data->categories)) {
self::updateObjectList('category', 'LoadCategory',
@ -89,7 +89,7 @@ class BeanLoader {
$category->name = isset($data->name) ? $data->name : '';
$category->default_task_color = isset($data->default_task_color)
? $data->default_task_color : '';
$category->board_id = isset($data->board_id) ? $data->board_id : '';
$category->board_id = isset($data->board_id) ? $data->board_id : -1;
if (!isset($data->name) || !isset($data->default_task_color) ||
!isset($data->board_id)) {
@ -103,8 +103,9 @@ class BeanLoader {
$data = json_decode($json);
$column->name = isset($data->name) ? $data->name : '';
$column->position = isset($data->position) ? $data->position : '';
$column->board_id = isset($data->board_id) ? $data->board_id : '';
$column->position = isset($data->position) ? $data->position : -1;
$column->board_id = isset($data->board_id) ? $data->board_id : -1;
$column->task_limit = isset($data->task_limit) ? $data->task_limit : 0;
if (isset($data->tasks)) {
self::updateObjectList('task', 'LoadTask',
@ -123,8 +124,8 @@ class BeanLoader {
$data = json_decode($json);
$comment->text = isset($data->text) ? $data->text : '';
$comment->user_id = isset($data->user_id) ? $data->user_id : '';
$comment->task_id = isset($data->task_id) ? $data->task_id : '';
$comment->user_id = isset($data->user_id) ? $data->user_id : -1;
$comment->task_id = isset($data->task_id) ? $data->task_id : -1;
if (!isset($data->text) || !isset($data->user_id) ||
!isset($data->task_id)) {
@ -139,7 +140,7 @@ class BeanLoader {
$tracker->url = isset($data->url) ? $data->url : '';
$tracker->regex = isset($data->regex) ? $data->regex : '';
$tracker->board_id = isset($data->board_id) ? $data->board_id : '';
$tracker->board_id = isset($data->board_id) ? $data->board_id : -1;
if (!isset($data->url) || !isset($data->regex) ||
!isset($data->board_id)) {
@ -157,9 +158,9 @@ class BeanLoader {
? $data->description : '';
$task->color = isset($data->color) ? $data->color : '';
$task->due_date = isset($data->due_date) ? $data->due_date : '';
$task->points = isset($data->points) ? $data->points : '';
$task->position = isset($data->position) ? $data->position : '';
$task->column_id = isset($data->column_id) ? $data->column_id : '';
$task->points = isset($data->points) ? $data->points : 0;
$task->position = isset($data->position) ? $data->position : -1;
$task->column_id = isset($data->column_id) ? $data->column_id : -1;
if (isset($data->comments)) {
self::updateObjectList('comment', 'LoadComment',
@ -207,13 +208,13 @@ class BeanLoader {
$data = json_decode($json);
$user->security_level = isset($data->security_level)
? $data->security_level : '';
? $data->security_level : -1;
$user->username = isset($data->username) ? $data->username : '';
$user->email = isset($data->email) ? $data->email : '';
$user->default_board_id = isset($data->default_board_id)
? $data->default_board_id : '';
? $data->default_board_id : -1;
$user->user_option_id = isset($data->user_option_id)
? $data->user_option_id : '';
? $data->user_option_id : -1;
$user->last_login = isset($data->last_login) ? $data->last_login : '';
$user->password_hash = isset($data->password_hash)
? $data->password_hash : '';
@ -229,13 +230,13 @@ class BeanLoader {
$data = json_decode($json);
$opts->new_tasks_at_bottom = isset($data->new_tasks_at_bottom)
? (boolean)$data->new_tasks_at_bottom : '';
? (boolean)$data->new_tasks_at_bottom : true;
$opts->show_animations = isset($data->show_animations)
? (boolean)$data->show_animations : '';
? (boolean)$data->show_animations : true;
$opts->show_assignee = isset($data->show_assignee)
? (boolean)$data->show_assignee : '';
? (boolean)$data->show_assignee : true;
$opts->multiple_tasks_per_row = isset($data->multiple_tasks_per_row)
? (boolean)$data->multiple_tasks_per_row : '';
? (boolean)$data->multiple_tasks_per_row : false;
$opts->language = isset($data->language)
? $data->language : '';

View File

@ -18,6 +18,19 @@
title="Expand Column" (click)="toggleCollapsed()"></span>
<span class="right icon icon-angle-double-down"
title="Collapse Column" (click)="toggleCollapsed()"></span>
<span class="count" *ngIf="columnData.hasTaskLimit()">
{{ columnData.tasks.length + ' / ' + columnData.task_limit }}
</span>
<span class="count-editor" title="Edit Task Limit"
*ngIf="activeUser.isAdmin() || activeUser.isBoardAdmin()">
<i class="icon icon-hashtag"
(click)="showLimitEditor = !showLimitEditor"></i>
<div class="limit-editor" *ngIf="showLimitEditor">
<input type="number" min="0" [(ngModel)]="columnData.task_limit">
</div>
</span>
</h3>
<div class="quick-add">

View File

@ -32,6 +32,7 @@ export class ColumnDisplay implements OnInit {
private templateElement: any;
private collapseTasks: boolean;
private saving: boolean;
private hasTaskLimit: boolean;
private activeUser: User;
private activeBoard: Board;

View File

@ -30,6 +30,7 @@ export class Board {
column.name,
+column.position,
+column.board_id,
+column.task_limit,
column.ownTask));
});

View File

@ -7,6 +7,7 @@ export class Column {
public name: string = '',
public position: number = 0,
public board_id: number = 0, // tslint:disable-line
public task_limit: number = 0, // tslint:disable-line
ownTask: Array<any> = []) {
this.tasks = [];
@ -25,5 +26,9 @@ export class Column {
task.sharedCategory || task.categories));
});
}
hasTaskLimit() {
return this.task_limit > 0;
}
}

View File

@ -3,11 +3,19 @@ export class User {
public email: string = '',
public id: number = 0,
public last_login: Date = null, // tslint:disable-line
public security_level: number = 3, // tslint:disable-line
public security_level: number = 4, // tslint:disable-line
public user_option_id: number = 0, // tslint:disable-line
public username: string = '',
public board_access: Array<number> = [], // tslint:disable-line
public collapsed: Array<number> = []) {
}
isAdmin() {
return this.security_level === 1;
}
isBoardAdmin() {
return this.security_level === 2;
}
}

View File

@ -56,6 +56,16 @@
cursor: pointer;
}
.count {
cursor: default;
}
.count-editor {
float: right;
font-size: .5em;
margin-top: -4px;
}
.icon-angle-double-up,
.badge {
display: none;
@ -100,6 +110,7 @@
}
.badge {
cursor: default;
display: inline-block;
font-size: .6em;
margin-left: .9em;
@ -110,6 +121,7 @@
.icon-minus-squared-alt,
.icon-plus-squared-alt,
.tasks,
.count,
.quick-add {
display: none;
}