Implements a validation for empty titles input in the card directly

Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
This commit is contained in:
Michael Weimann
2018-09-06 21:05:28 +02:00
committed by Julius Härtl
parent df43e07057
commit a02bd5ab52
2 changed files with 42 additions and 6 deletions

View File

@@ -42,6 +42,38 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
$scope.board = BoardService.getCurrent();
$scope.uploader = FileService.uploader;
$scope.startTitleEdit = function(card) {
card.renameTitle = card.title;
card.status = card.status || {};
card.status.editCard = true;
};
$scope.finishTitleEdit = function(card) {
var newTitle;
if (!card.renameTitle || !card.renameTitle.trim()) {
newTitle = '';
} else {
newTitle = card.renameTitle.trim();
}
if (newTitle === card.title) {
// title unchanged
card.status.editCard = false;
delete card.renameTitle;
} else if (newTitle !== '') {
// title changed
card.title = newTitle;
CardService.update(card).then(function (data) {
card.status.editCard = false;
delete card.renameTitle;
});
} else {
// empty title
card.status.editCard = false;
delete card.renameTitle;
}
};
$scope.$watch(function() {
return $state.current;
}, function(currentState) {

View File

@@ -73,12 +73,16 @@
<h4>
<span class="editable-inline"
ng-show="!c.status.editCard"
ng-click="c.status.editCard=true">{{cardservice.get(c.id).title}}</span>
<form ng-if="c.status.editCard" ng-submit="cardservice.update(c); c.status.editCard=false">
<input class="input-inline" type="text" placeholder="<?php p($l->t('Add a new card')); ?>"
ng-blur="cardservice.update(c); c.status.editCard=false" ng-model="c.title"
autofocus-on-insert required maxlength="100" />
ng-click="startTitleEdit(c)">{{cardservice.get(c.id).title}}</span>
<form ng-if="c.status.editCard" ng-submit="finishTitleEdit(c)">
<input
class="input-inline"
type="text"
ng-blur="finishTitleEdit(c)"
ng-model="c.renameTitle"
autofocus-on-insert
required
maxlength="100">
</form>
</h4>
<ul class="labels compact-item" ng-if="!compactMode">