#121: editing query name, description, ttl triggers save

This commit is contained in:
Amir Nissim
2014-03-10 15:08:00 +02:00
parent 54c5a7dcb3
commit 31c59467db
5 changed files with 32 additions and 13 deletions

View File

@@ -8,6 +8,7 @@
var route = $route.current;
$scope.dirty = undefined;
$scope.isOwner = false;
$scope.canEdit = false;
$scope.isSourceVisible = route.locals.viewSource;
@@ -201,8 +202,8 @@
$scope.dirty = false;
$scope.queryResult = $scope.query.getQueryResult();
$scope.canEdit =
$scope.isSourceVisible && currentUser.canEdit($scope.query);
$scope.isOwner = currentUser.canEdit($scope.query);
$scope.canEdit = $scope.isSourceVisible && $scope.isOwner;
} else {
// new query

View File

@@ -216,7 +216,8 @@
scope: {
value: '=',
ignoreBlanks: '=',
editable: '='
editable: '=',
done: '='
},
template: function(tElement, tAttrs) {
var elType = tAttrs.editor || 'input';
@@ -252,13 +253,27 @@
inputElement[0].focus();
};
$(inputElement).blur(function() {
if ($scope.ignoreBlanks && _.isEmpty($scope.value)) {
$scope.value = $scope.oldValue;
function save() {
if ($scope.editing) {
if ($scope.ignoreBlanks && _.isEmpty($scope.value)) {
$scope.value = $scope.oldValue;
}
$scope.editing = false;
element.removeClass('active');
$scope.done && $scope.done();
}
$scope.editing = false;
element.removeClass('active');
})
}
$(inputElement).keydown(function(e) {
// 'return' or 'enter' key pressed
// allow 'shift' to break lines
if (e.which === 13 && !e.shiftKey) {
save();
}
}).blur(function() {
save();
});
}
};
});

View File

@@ -277,7 +277,7 @@
};
Query.prototype.getHash = function() {
return [this.name, this.description, this.query, this.ttl].join('!#');
return this.query;
};
return Query;

View File

@@ -26,6 +26,9 @@ a.navbar-brand {
margin-bottom: 5px;
}
.edit-in-place span {
white-space: pre;
}
.edit-in-place span.editable {
cursor: pointer;
}

View File

@@ -3,14 +3,14 @@
<div class="row">
<div class="col-lg-12">
<h2>
<edit-in-place editable="canEdit" ignore-blanks='true' value="query.name"></edit-in-place>
<edit-in-place editable="isOwner" done="saveQuery" ignore-blanks='true' value="query.name"></edit-in-place>
<span class="pull-right">
<button ng-click="toggleSource()" class="btn btn-default" ng-class="{active: isSourceVisible}">Source</button>
</span>
</h2>
<em>
<edit-in-place editable="canEdit" editor="textarea" placeholder="No description" ignore-blanks='false' value="query.description"></edit-in-place>
<edit-in-place editable="isOwner" done="saveQuery" editor="textarea" placeholder="No description" ignore-blanks='false' value="query.description"></edit-in-place>
</em>
@@ -106,7 +106,7 @@
</p>
<p>
<select ng-disabled="!canEdit" ng-model="query.ttl" ng-options="c.value as c.name for c in refreshOptions"></select>
<select ng-disabled="!isOwner" ng-model="query.ttl" ng-change="saveQuery()" ng-options="c.value as c.name for c in refreshOptions"></select>
</p>
<p>