forked from Archives/Athou_commafeed
smarter subscription dialog
This commit is contained in:
@@ -41,20 +41,29 @@ function($scope, FeedService, CategoryService) {
|
|||||||
$scope.isOpen = false;
|
$scope.isOpen = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 'ok', 'loading' or 'failed'
|
||||||
|
$scope.state = 'ok';
|
||||||
$scope.urlChanged = function() {
|
$scope.urlChanged = function() {
|
||||||
var msg = 'Loading...';
|
if ($scope.sub.url) {
|
||||||
if ($scope.sub.url && (!$scope.sub.title || $scope.sub.title == msg)) {
|
$scope.state = 'loading';
|
||||||
$scope.sub.title = msg;
|
$scope.sub.title = 'Loading...';
|
||||||
FeedService.fetch({
|
FeedService.fetch({
|
||||||
url : $scope.sub.url
|
url : $scope.sub.url
|
||||||
}, function(data) {
|
}, function(data) {
|
||||||
|
$scope.state = 'ok';
|
||||||
$scope.sub.title = data.title;
|
$scope.sub.title = data.title;
|
||||||
$scope.sub.url = data.url;
|
$scope.sub.url = data.url;
|
||||||
|
}, function(data) {
|
||||||
|
$scope.state = 'failed';
|
||||||
|
$scope.sub.title = 'Loading failed. Invalid feed?';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.save = function() {
|
$scope.save = function() {
|
||||||
|
if ($scope.state != 'ok') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!$scope.sub.categoryId) {
|
if (!$scope.sub.categoryId) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,14 +19,16 @@
|
|||||||
<div class="control-group" ng-class="{error : !subscribeForm.url.$valid}">
|
<div class="control-group" ng-class="{error : !subscribeForm.url.$valid}">
|
||||||
<label class="control-label">Feed URL</label>
|
<label class="control-label">Feed URL</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" name="url" ng-model="sub.url" ng-blur="urlChanged()" placeholder="http://example.com/feed" class="input-block-level" required></input>
|
<input type="text" name="url" ng-model="sub.url" ng-blur="urlChanged()" placeholder="http://example.com/feed"
|
||||||
|
class="input-block-level" required ng-disabled="state=='loading'"></input>
|
||||||
<span class="help-block" ng-show="!subscribeForm.url.$valid">Required</span>
|
<span class="help-block" ng-show="!subscribeForm.url.$valid">Required</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group" ng-class="{error : !subscribeForm.title.$valid}">
|
<div class="control-group" ng-class="{error : !subscribeForm.title.$valid}">
|
||||||
<label class="control-label">Feed Name</label>
|
<label class="control-label">Feed Name</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" name="title" ng-model="sub.title" class="input-block-level" required></input>
|
<input type="text" name="title" ng-model="sub.title"
|
||||||
|
class="input-block-level" required ng-disabled="state=='loading'"></input>
|
||||||
<span class="help-block" ng-show="!subscribeForm.title.$valid">Required</span>
|
<span class="help-block" ng-show="!subscribeForm.title.$valid">Required</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -42,7 +44,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button class="btn cancel" ng-click="close()" type="button">Cancel</button>
|
<button class="btn cancel" ng-click="close()" type="button">Cancel</button>
|
||||||
<button class="btn btn-primary ok" type="submit">Save</button>
|
<button class="btn btn-primary ok" type="submit" ng-disabled="state!='ok'">Save</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user