Only digest on card update not for every interval

and add various track by statements

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2018-02-04 14:49:28 +01:00
parent d5bec8d19e
commit 8e51fdbb88
4 changed files with 11 additions and 9 deletions

View File

@@ -78,9 +78,11 @@ app.controller('CardController', function ($scope, $rootScope, $routeParams, $lo
var header = $('.section-header.card-description'); var header = $('.section-header.card-description');
header.find('.save-indicator.unsaved').hide(); header.find('.save-indicator.unsaved').hide();
header.find('.save-indicator.saved').fadeIn(250).fadeOut(1000); header.find('.save-indicator.saved').fadeIn(250).fadeOut(1000);
StackService.updateCard($scope.status.edit);
BoardService.$scope.$digest();
}); });
} }
}, 500); }, 500, 0, false);
// handle rename to update information on the board as well // handle rename to update information on the board as well
$scope.cardRename = function (card) { $scope.cardRename = function (card) {

View File

@@ -24,7 +24,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr data-ng-repeat="b in boardservice.sorted" ng-class="{deleted: b.deletedAt > 0}"> <tr data-ng-repeat="b in boardservice.sorted track by b.id" ng-class="{deleted: b.deletedAt > 0}">
<td ng-click="gotoBoard(b)"> <td ng-click="gotoBoard(b)">
<div class="board-bullet" ng-style="{'background-color':'#'+b.color}"> </div> <div class="board-bullet" ng-style="{'background-color':'#'+b.color}"> </div>
</td> </td>
@@ -42,7 +42,7 @@
<td> <td>
<div id="assigned-users"> <div id="assigned-users">
<avatar data-contactsmenu data-tooltip data-user="{{ b.owner.uid }}" data-displayname="{{ b.owner.displayname }}"></avatar> <avatar data-contactsmenu data-tooltip data-user="{{ b.owner.uid }}" data-displayname="{{ b.owner.displayname }}"></avatar>
<avatar data-contactsmenu data-tooltip data-user="{{ acl.participant.uid }}" data-displayname="{{ acl.participant.displayname }}" ng-repeat="acl in b.acl | limitTo: 7"></avatar> <avatar data-contactsmenu data-tooltip data-user="{{ acl.participant.uid }}" data-displayname="{{ acl.participant.displayname }}" ng-repeat="acl in b.acl | limitTo: 7 track by acl.i"></avatar>
</div> </div>
</td> </td>
<td> <td>

View File

@@ -15,7 +15,7 @@
ng-blur="cardRename(cardservice.getCurrent())" ng-blur="cardRename(cardservice.getCurrent())"
autofocus-on-insert required maxlength="100"> autofocus-on-insert required maxlength="100">
</form> </form>
<div ng-click="cardRenameShow()" ng-show="!status.cardRename"> <div ng-click="cardRenameShow()" ng-if="!status.cardRename">
{{ cardservice.getCurrent().title }} {{ cardservice.getCurrent().title }}
</div> </div>
</h3> </h3>
@@ -29,11 +29,11 @@
<span>{{ cardservice.getCurrent().owner.displayname }}</span> <span>{{ cardservice.getCurrent().owner.displayname }}</span>
</div> </div>
<div class="section-header"> <div class="section-header">
<h4 id="card-tag-label" ng-show="!(boardservice.isArchived() || card.archived) && card.labels"> <h4 id="card-tag-label" ng-if="!(boardservice.isArchived() || card.archived) && card.labels">
<?php p($l->t('Tags')); ?> <?php p($l->t('Tags')); ?>
</h4> </h4>
</div> </div>
<div id="labels" ng-show="!(boardservice.isArchived() || card.archived) && card.labels"> <div id="labels" ng-if="!(boardservice.isArchived() || card.archived) && card.labels">
<ui-select multiple tagging="" ng-model="card.labels" theme="select2" <ui-select multiple tagging="" ng-model="card.labels" theme="select2"
ng-disabled="boardservice.isArchived() || card.archived" ng-disabled="boardservice.isArchived() || card.archived"
title="<?php p($l->t('Choose a tag')); ?>" title="<?php p($l->t('Choose a tag')); ?>"
@@ -44,7 +44,7 @@
<span class="select-label" ng-style="labelStyle($item.color)">{{$item.title}}&nbsp;</span> <span class="select-label" ng-style="labelStyle($item.color)">{{$item.title}}&nbsp;</span>
</ui-select-match> </ui-select-match>
<ui-select-choices <ui-select-choices
repeat="label in boardservice.getCurrent().labels | filter:$select.search"> repeat="label in boardservice.getCurrent().labels | filter:$select.search track by label.id">
<span class="choose-label" ng-style="labelStyle(label.color)">{{label.title}}</span> <span class="choose-label" ng-style="labelStyle(label.color)">{{label.title}}</span>
</ui-select-choices> </ui-select-choices>
</ui-select> </ui-select>
@@ -66,7 +66,7 @@
</ui-select-choices> </ui-select-choices>
</ui-select> </ui-select>
<div class="card-details-assign-users-list"> <div class="card-details-assign-users-list">
<div class="assigned-user" ng-repeat="user in cardservice.getCurrent().assignedUsers"> <div class="assigned-user" ng-repeat="user in cardservice.getCurrent().assignedUsers track by user.uid">
<avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user="{{ user.participant.uid }}" ng-attr-displayname="{{ user.participant.displayname }}" contactsmenudelete ></avatar> <avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user="{{ user.participant.uid }}" ng-attr-displayname="{{ user.participant.displayname }}" contactsmenudelete ></avatar>
</div> </div>
</div> </div>

View File

@@ -4,7 +4,7 @@
<li ng-class="{active: status.filter === 'archived' || (boardservice.getCurrent() && boardservice.getCurrent().archived)}"><a ui-sref="list({ filter: 'archived' })" class="icon-archive"><?php p($l->t('Archived boards')); ?></a></li> <li ng-class="{active: status.filter === 'archived' || (boardservice.getCurrent() && boardservice.getCurrent().archived)}"><a ui-sref="list({ filter: 'archived' })" class="icon-archive"><?php p($l->t('Archived boards')); ?></a></li>
<li ng-class="{active: status.filter === 'shared'}"><a ui-sref="list({ filter: 'shared' })" class="icon-share"><?php p($l->t('Shared boards')); ?></a></li> <li ng-class="{active: status.filter === 'shared'}"><a ui-sref="list({ filter: 'shared' })" class="icon-share"><?php p($l->t('Shared boards')); ?></a></li>
<li class="with-icon with-menu" ng-class="{active: b.id === boardservice.getCurrent().id, editing: b.status.editNavigation}" data-ng-repeat="b in boardservice.sidebar" ng-if="b.deletedAt == 0"> <li class="with-icon with-menu" ng-class="{active: b.id === boardservice.getCurrent().id, editing: b.status.editNavigation}" data-ng-repeat="b in boardservice.sidebar track by b.id" ng-if="b.deletedAt == 0">
<span class="board-bullet" ng-style="{'background-color': '#' + b.color}"> </span> <span class="board-bullet" ng-style="{'background-color': '#' + b.color}"> </span>
<a href="#!/board/{{b.id}}/">{{ b.title }}</a> <a href="#!/board/{{b.id}}/">{{ b.title }}</a>