diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-16 15:43:42 +0200 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-16 15:43:42 +0200 |
commit | a412194653eb2ba102a678357f5e6351343b8671 (patch) | |
tree | 65729b0d4725a33f9797444ae56bd3f016ed6a00 | |
parent | c20b6d34c73c0bcc697e0d6d62403f57f3f3f5f2 (diff) |
implement autopaging and proper loading symbols fix #45 and #26
-rw-r--r-- | css/items.css | 9 | ||||
-rw-r--r-- | js/app/controllers/itemcontroller.coffee | 14 | ||||
-rw-r--r-- | js/public/app.js | 10 | ||||
-rw-r--r-- | templates/main.php | 5 |
4 files changed, 29 insertions, 9 deletions
diff --git a/css/items.css b/css/items.css index 41b28155b..6d60d2f8a 100644 --- a/css/items.css +++ b/css/items.css @@ -25,6 +25,15 @@ height: 100%; } +#app-content.autopaging:after { + content: ''; + background-image: url('%webroot%/core/img/loading.gif'); + background-position: center; + background-repeat: no-repeat; + display: block; + height: 100%; +} + #app-content.loading { background-image: url('%webroot%/core/img/loading.gif'); background-position: center; diff --git a/js/app/controllers/itemcontroller.coffee b/js/app/controllers/itemcontroller.coffee index 0d912b507..fb5b5bfa3 100644 --- a/js/app/controllers/itemcontroller.coffee +++ b/js/app/controllers/itemcontroller.coffee @@ -23,14 +23,15 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. angular.module('News').controller 'ItemController', ['$scope', 'ItemBusinessLayer', 'FeedModel', 'FeedLoading', 'FeedBusinessLayer', -'Language', +'Language', 'AutoPageLoading', ($scope, ItemBusinessLayer, FeedModel, FeedLoading, FeedBusinessLayer, -Language) -> +Language, AutoPageLoading) -> class ItemController - constructor: (@_$scope, @_itemBusinessLayer, @_feedModel, @_feedLoading, - @_feedBusinessLayer, @_language) -> + constructor: (@_$scope, @_itemBusinessLayer, @_feedModel, + @_feedLoading, @_autoPageLoading, @_feedBusinessLayer, + @_language) -> @_autoPaging = true @_$scope.itemBusinessLayer = @_itemBusinessLayer @@ -40,6 +41,9 @@ Language) -> @_$scope.isLoading = => return @_feedLoading.isLoading() + @_$scope.isAutoPaging = => + return @_autoPageLoading.isLoading() + @_$scope.getFeedTitle = (feedId) => feed = @_feedModel.getById(feedId) if angular.isDefined(feed) @@ -67,5 +71,5 @@ Language) -> return new ItemController($scope, ItemBusinessLayer, FeedModel, FeedLoading, - FeedBusinessLayer, Language) + AutoPageLoading, FeedBusinessLayer, Language) ]
\ No newline at end of file diff --git a/js/public/app.js b/js/public/app.js index 406007894..603600810 100644 --- a/js/public/app.js +++ b/js/public/app.js @@ -439,17 +439,18 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. (function() { angular.module('News').controller('ItemController', [ - '$scope', 'ItemBusinessLayer', 'FeedModel', 'FeedLoading', 'FeedBusinessLayer', 'Language', function($scope, ItemBusinessLayer, FeedModel, FeedLoading, FeedBusinessLayer, Language) { + '$scope', 'ItemBusinessLayer', 'FeedModel', 'FeedLoading', 'FeedBusinessLayer', 'Language', 'AutoPageLoading', function($scope, ItemBusinessLayer, FeedModel, FeedLoading, FeedBusinessLayer, Language, AutoPageLoading) { var ItemController; ItemController = (function() { - function ItemController(_$scope, _itemBusinessLayer, _feedModel, _feedLoading, _feedBusinessLayer, _language) { + function ItemController(_$scope, _itemBusinessLayer, _feedModel, _feedLoading, _autoPageLoading, _feedBusinessLayer, _language) { var _this = this; this._$scope = _$scope; this._itemBusinessLayer = _itemBusinessLayer; this._feedModel = _feedModel; this._feedLoading = _feedLoading; + this._autoPageLoading = _autoPageLoading; this._feedBusinessLayer = _feedBusinessLayer; this._language = _language; this._autoPaging = true; @@ -458,6 +459,9 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. this._$scope.isLoading = function() { return _this._feedLoading.isLoading(); }; + this._$scope.isAutoPaging = function() { + return _this._autoPageLoading.isLoading(); + }; this._$scope.getFeedTitle = function(feedId) { var feed; @@ -491,7 +495,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. return ItemController; })(); - return new ItemController($scope, ItemBusinessLayer, FeedModel, FeedLoading, FeedBusinessLayer, Language); + return new ItemController($scope, ItemBusinessLayer, FeedModel, FeedLoading, AutoPageLoading, FeedBusinessLayer, Language); } ]); diff --git a/templates/main.php b/templates/main.php index 6090ecb9f..28ee2649c 100644 --- a/templates/main.php +++ b/templates/main.php @@ -37,7 +37,10 @@ </div> - <div id="app-content" ng-class="{loading: isLoading()}" + <div id="app-content" ng-class="{ + loading: isLoading(), + autopaging: isAutoPaging() + }" ng-controller="ItemController" news-item-scroll item-shortcuts> |