Skip to content

Commit e5b0474

Browse files
committed
Fixes kiswa#156. Options now save, and are used for displaying 'Assigned To'.
1 parent adb3e4f commit e5b0474

File tree

5 files changed

+54
-8
lines changed

5 files changed

+54
-8
lines changed

api/userRoutes.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,22 @@
157157
$app->response->setBody($jsonResponse->asJson());
158158
});
159159

160+
$app->post('/users/current/options', function() use ($app, $jsonResponse) {
161+
$data = json_decode($app->environment['slim.input']);
162+
163+
if (validateToken()) {
164+
$user = getUser();
165+
166+
$user->ownOption[1]->tasksOrder = $data->tasksOrder;
167+
$user->ownOption[1]->showAssignee = $data->showAssignee;
168+
$user->ownOption[1]->showAnimations = $data->showAnimations;
169+
R::store($user);
170+
171+
$jsonResponse->data = $data;
172+
}
173+
$app->response->setBody($jsonResponse->asJson());
174+
});
175+
160176
// Get all users
161177
$app->get('/users', function() use($app, $jsonResponse) {
162178
if (validateToken()) {

js/controllers/settings.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,29 @@ function ($scope, UserService, AlertService) {
2121
UserService.currentUser()
2222
.success(function(data) {
2323
$scope.currentUser = data.data;
24+
loadOptionsData(data.data);
2425
$scope.loadingCurrentUser = false;
25-
$scope.currentUser.options.tasksOrder = parseInt(data.data.options.tasksOrder);
26-
$scope.currentUser.options.showAnimations = data.data.options.showAnimations === "1";
27-
$scope.currentUser.options.showAssignee = data.data.options.showAssignee === "1";
2826
});
2927
};
3028
$scope.loadCurrentUser();
3129

30+
loadOptionsData = function (data) {
31+
$scope.currentUser.options.tasksOrder = parseInt(data.options.tasksOrder);
32+
$scope.currentUser.options.showAnimations = typeof data.options.showAnimations === "string" ?
33+
data.options.showAnimations === "1" : data.options.showAnimations;
34+
$scope.currentUser.options.showAssignee = typeof data.options.showAssignee === "string" ?
35+
data.options.showAssignee === "1" : data.options.showAssignee;
36+
};
37+
38+
$scope.saveOptions = function() {
39+
UserService.saveOptions($scope.currentUser.options.tasksOrder,
40+
$scope.currentUser.options.showAnimations,
41+
$scope.currentUser.options.showAssignee)
42+
.success(function(data) {
43+
loadOptionsData({options: data.data});
44+
});
45+
};
46+
3247
$scope.updateBoardsList = function(data) {
3348
if (undefined === data) {
3449
return;

js/services/user.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ function($http) {
66
return $http.get('api/users/current');
77
},
88

9+
saveOptions: function(tasksOrder, showAnimations, showAssignee) {
10+
return $http.post('api/users/current/options', {
11+
tasksOrder: tasksOrder,
12+
showAnimations: showAnimations,
13+
showAssignee: showAssignee
14+
});
15+
},
16+
917
logIn: function(username, password, rememberme) {
1018
return $http.post('api/login', {
1119
username: username,

partials/board.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,10 @@ <h4>{{ item.title }}</h4>
6565
</div>
6666
<div class="description" data-ng-bind-html="marked(item.description)"></div>
6767
<p class="assignee">
68-
<span data-ng-if="userNames[item.assignee]">Assigned To: </span>
69-
{{ userNames[item.assignee] }}
68+
<span data-ng-show="currentUser.options.showAssignee === '1'">
69+
<span data-ng-if="userNames[item.assignee]">Assigned To: </span>
70+
{{ userNames[item.assignee] }}
71+
</span>
7072
<span class="pull-right">
7173
<span data-ng-if="item.ownComment" class="fa fa-comments-o"
7274
title="{{ item.ownComment.length }} Comments"></span>

partials/settingsBoardUserOptions.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,19 @@
22
<h4>My Board Options</h4>
33
<p class="form-group form-inline">New tasks appear at
44
<select class="form-control" data-ng-model="currentUser.options.tasksOrder"
5-
data-ng-options="option.id as option.text for option in userOptions.tasksAt">
5+
data-ng-options="option.id as option.text for option in userOptions.tasksAt"
6+
data-ng-change="saveOptions()">
67
</select>
78
</p>
89
<p class="form-group form-inline">
9-
Show animations? <input type="checkbox" data-ng-model="currentUser.options.showAnimations">
10+
Show animations?
11+
<input type="checkbox" data-ng-model="currentUser.options.showAnimations"
12+
data-ng-change="saveOptions()">
1013
</p>
1114
<p class="form-group form-inline">
12-
Show Assignee on item card? <input type="checkbox" data-ng-model="currentUser.options.showAssignee">
15+
Show Assignee on item card?
16+
<input type="checkbox" data-ng-model="currentUser.options.showAssignee"
17+
data-ng-change="saveOptions()">
1318
</p>
1419
<hr>
1520
</div>

0 commit comments

Comments
 (0)