summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-09-09 16:38:08 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-09-09 16:38:08 +0200
commitd54475fb0f168845bf14b0d16088da97d473187a (patch)
tree2af5b80f9265cd098063a459d8bd0b0581001718
parent4a8984a9970b4a6122ea9b31f20380cdbbca39da (diff)
log
-rw-r--r--.gitignore3
-rw-r--r--build/news.zipbin0 -> 1561495 bytes
-rw-r--r--js/build/app/app.js55
-rw-r--r--js/build/app/controllers/appcontroller.js50
-rw-r--r--js/build/app/controllers/feedcontroller.js129
-rw-r--r--js/build/app/controllers/itemcontroller.js83
-rw-r--r--js/build/app/controllers/settingscontroller.js55
-rw-r--r--js/build/app/directives/audio.js51
-rw-r--r--js/build/app/directives/droppable.js50
-rw-r--r--js/build/app/directives/itemshortcuts.js126
-rw-r--r--js/build/app/directives/newsclickscroll.js48
-rw-r--r--js/build/app/directives/newsitemscroll.js82
-rw-r--r--js/build/app/directives/undonotification.js63
-rw-r--r--js/build/app/services/activefeed.js56
-rw-r--r--js/build/app/services/businesslayer/businesslayer.js54
-rw-r--r--js/build/app/services/businesslayer/feedbusinesslayer.js233
-rw-r--r--js/build/app/services/businesslayer/folderbusinesslayer.js241
-rw-r--r--js/build/app/services/businesslayer/itembusinesslayer.js144
-rw-r--r--js/build/app/services/businesslayer/starredbusinesslayer.js66
-rw-r--r--js/build/app/services/businesslayer/subscriptionsbusinesslayer.js84
-rw-r--r--js/build/app/services/existserror.js38
-rw-r--r--js/build/app/services/feedtype.js36
-rw-r--r--js/build/app/services/language.js60
-rw-r--r--js/build/app/services/models/feedmodel.js198
-rw-r--r--js/build/app/services/models/foldermodel.js159
-rw-r--r--js/build/app/services/models/itemmodel.js133
-rw-r--r--js/build/app/services/newestitem.js46
-rw-r--r--js/build/app/services/opmlparser.js111
-rw-r--r--js/build/app/services/persistence.js577
-rw-r--r--js/build/app/services/services.js65
-rw-r--r--js/build/app/services/showall.js50
-rw-r--r--js/build/app/services/starredcount.js50
-rw-r--r--js/build/app/services/statusflag.js34
-rw-r--r--js/build/app/services/unreadcountformatter.js34
-rw-r--r--js/build/tests/controllers/feedcontrollerSpec.js233
-rw-r--r--js/build/tests/controllers/itemcontrollerSpec.js194
-rw-r--r--js/build/tests/controllers/settingscontrollerSpec.js86
-rw-r--r--js/build/tests/services/activefeedSpec.js49
-rw-r--r--js/build/tests/services/businesslayer/businesslayerSpec.js88
-rw-r--r--js/build/tests/services/businesslayer/feedbusinesslayerSpec.js478
-rw-r--r--js/build/tests/services/businesslayer/folderbusinesslayerSpec.js577
-rw-r--r--js/build/tests/services/businesslayer/itembusinesslayerSpec.js330
-rw-r--r--js/build/tests/services/businesslayer/starredbusinesslayerSpec.js69
-rw-r--r--js/build/tests/services/businesslayer/subsriptionsbusinesslayerSpec.js130
-rw-r--r--js/build/tests/services/feedtypeSpec.js48
-rw-r--r--js/build/tests/services/languageSpec.js61
-rw-r--r--js/build/tests/services/models/feedmodelSpec.js175
-rw-r--r--js/build/tests/services/models/foldermodelSpec.js140
-rw-r--r--js/build/tests/services/models/itemmodelSpec.js160
-rw-r--r--js/build/tests/services/newestitemSpec.js41
-rw-r--r--js/build/tests/services/opmlparserSpec.js167
-rw-r--r--js/build/tests/services/persistenceSpec.js398
-rw-r--r--js/build/tests/services/showallSpec.js46
-rw-r--r--js/build/tests/services/starredcountSpec.js44
-rw-r--r--js/build/tests/services/statusflagSpec.js39
-rw-r--r--js/build/tests/services/unreadcountformaterSpec.js39
56 files changed, 2 insertions, 6854 deletions
diff --git a/.gitignore b/.gitignore
index f48fe4abd..5b631c87e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,8 @@
coffee/build/
node_modules/
*.log
-build/
+./build/
+js/build/
js/*.xml
.rvm
diff --git a/build/news.zip b/build/news.zip
new file mode 100644
index 000000000..980b39ead
--- /dev/null
+++ b/build/news.zip
Binary files differ
diff --git a/js/build/app/app.js b/js/build/app/app.js
deleted file mode 100644
index 0e05ba545..000000000
--- a/js/build/app/app.js
+++ /dev/null
@@ -1,55 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-/*
-
-ownCloud - News
-
-@author Bernhard Posselt
-@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-License as published by the Free Software Foundation; either
-version 3 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-
-You should have received a copy of the GNU Affero General Public
-License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-(function() {
- angular.module('News', ['OC', 'ui']).config(function($provide) {
- var config;
- return $provide.value('Config', config = {
- markReadTimeout: 500,
- scrollTimeout: 500,
- feedUpdateInterval: 1000 * 60 * 3,
- itemBatchSize: 40,
- undoTimeout: 1000 * 10,
- autoPageFactor: 30
- });
- });
-
- angular.module('News').run([
- 'Persistence', 'Config', function(Persistence, Config) {
- return setInterval(function() {
- Persistence.getAllFeeds(null, false);
- return Persistence.getAllFolders(null, false);
- }, Config.feedUpdateInterval);
- }
- ]);
-
- $(document).ready(function() {
- return $(this).keyup(function(e) {
- if ((e.which === 116) || (e.which === 82 && e.ctrlKey)) {
- document.location.reload(true);
- return false;
- }
- });
- });
-
-}).call(this);
diff --git a/js/build/app/controllers/appcontroller.js b/js/build/app/controllers/appcontroller.js
deleted file mode 100644
index 17fba2182..000000000
--- a/js/build/app/controllers/appcontroller.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-/*
-
-ownCloud - News
-
-@author Alessandro Cosentino
-@copyright 2013 Alessandro Cosentino cosenal@gmail.com
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-License as published by the Free Software Foundation; either
-version 3 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-
-You should have received a copy of the GNU Affero General Public
-License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-(function() {
- angular.module('News').controller('AppController', [
- '$scope', 'Persistence', 'FeedBusinessLayer', function($scope, Persistence, FeedBusinessLayer) {
- var AppController;
- AppController = (function() {
- function AppController(_$scope, _persistence, _feedBusinessLayer) {
- var successCallback,
- _this = this;
- this._$scope = _$scope;
- this._persistence = _persistence;
- this._feedBusinessLayer = _feedBusinessLayer;
- this._$scope.initialized = false;
- this._$scope.feedBusinessLayer = this._feedBusinessLayer;
- successCallback = function() {
- return _this._$scope.initialized = true;
- };
- this._persistence.init().then(successCallback);
- }
-
- return AppController;
-
- })();
- return new AppController($scope, Persistence, FeedBusinessLayer);
- }
- ]);
-
-}).call(this);
diff --git a/js/build/app/controllers/feedcontroller.js b/js/build/app/controllers/feedcontroller.js
deleted file mode 100644
index 08fa1c4c2..000000000
--- a/js/build/app/controllers/feedcontroller.js
+++ /dev/null
@@ -1,129 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-/*
-
-ownCloud - News
-
-@author Bernhard Posselt
-@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-License as published by the Free Software Foundation; either
-version 3 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-
-You should have received a copy of the GNU Affero General Public
-License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-(function() {
- angular.module('News').controller('FeedController', [
- '$scope', '_ExistsError', 'Persistence', 'FolderBusinessLayer', 'FeedBusinessLayer', 'SubscriptionsBusinessLayer', 'StarredBusinessLayer', 'unreadCountFormatter', 'ActiveFeed', 'FeedType', '$window', function($scope, _ExistsError, Persistence, FolderBusinessLayer, FeedBusinessLayer, SubscriptionsBusinessLayer, StarredBusinessLayer, unreadCountFormatter, ActiveFeed, FeedType, $window) {
- var FeedController;
- FeedController = (function() {
- function FeedController(_$scope, _persistence, _folderBusinessLayer, _feedBusinessLayer, _subscriptionsBusinessLayer, _starredBusinessLayer, _unreadCountFormatter, _activeFeed, _feedType, _$window) {
- var _this = this;
- this._$scope = _$scope;
- this._persistence = _persistence;
- this._folderBusinessLayer = _folderBusinessLayer;
- this._feedBusinessLayer = _feedBusinessLayer;
- this._subscriptionsBusinessLayer = _subscriptionsBusinessLayer;
- this._starredBusinessLayer = _starredBusinessLayer;
- this._unreadCountFormatter = _unreadCountFormatter;
- this._activeFeed = _activeFeed;
- this._feedType = _feedType;
- this._$window = _$window;
- this._isAddingFolder = false;
- this._isAddingFeed = false;
- this._$scope.folderBusinessLayer = this._folderBusinessLayer;
- this._$scope.feedBusinessLayer = this._feedBusinessLayer;
- this._$scope.subscriptionsBusinessLayer = this._subscriptionsBusinessLayer;
- this._$scope.starredBusinessLayer = this._starredBusinessLayer;
- this._$scope.unreadCountFormatter = this._unreadCountFormatter;
- this._$scope.getTotalUnreadCount = function() {
- var count, title, titleCount;
- count = _this._subscriptionsBusinessLayer.getUnreadCount(0);
- if (count > 0) {
- titleCount = _this._unreadCountFormatter(count);
- title = 'News (' + titleCount + ') | ownCloud';
- } else {
- title = 'News | ownCloud';
- }
- if (_this._$window.document.title !== title) {
- _this._$window.document.title = title;
- }
- return count;
- };
- this._$scope.isAddingFolder = function() {
- return _this._isAddingFolder;
- };
- this._$scope.isAddingFeed = function() {
- return _this._isAddingFeed;
- };
- this._$scope.addFeed = function(feedUrl, parentFolderId) {
- var error;
- if (parentFolderId == null) {
- parentFolderId = 0;
- }
- _this._$scope.feedExistsError = false;
- try {
- _this._isAddingFeed = true;
- if (parentFolderId !== 0) {
- _this._folderBusinessLayer.open(parentFolderId);
- }
- return _this._feedBusinessLayer.create(feedUrl, parentFolderId, function(data) {
- _this._$scope.feedUrl = '';
- _this._isAddingFeed = false;
- return _this._feedBusinessLayer.load(data['feeds'][0].id);
- }, function() {
- return _this._isAddingFeed = false;
- });
- } catch (_error) {
- error = _error;
- if (error instanceof _ExistsError) {
- _this._$scope.feedExistsError = true;
- }
- return _this._isAddingFeed = false;
- }
- };
- this._$scope.addFolder = function(folderName) {
- var error;
- _this._$scope.folderExistsError = false;
- try {
- _this._isAddingFolder = true;
- return _this._folderBusinessLayer.create(folderName, function(data) {
- var activeId;
- _this._$scope.folderName = '';
- _this._$scope.addNewFolder = false;
- _this._isAddingFolder = false;
- activeId = data['folders'][0].id;
- return _this._$scope.folderId = _this._folderBusinessLayer.getById(activeId);
- }, function() {
- return _this._isAddingFolder = false;
- });
- } catch (_error) {
- error = _error;
- if (error instanceof _ExistsError) {
- _this._$scope.folderExistsError = true;
- }
- return _this._isAddingFolder = false;
- }
- };
- this._$scope.$on('moveFeedToFolder', function(scope, data) {
- return _this._feedBusinessLayer.move(data.feedId, data.folderId);
- });
- }
-
- return FeedController;
-
- })();
- return new FeedController($scope, Persistence, FolderBusinessLayer, FeedBusinessLayer, SubscriptionsBusinessLayer, StarredBusinessLayer, unreadCountFormatter, ActiveFeed, FeedType, $window);
- }
- ]);
-
-}).call(this);
diff --git a/js/build/app/controllers/itemcontroller.js b/js/build/app/controllers/itemcontroller.js
deleted file mode 100644
index 1412aeb78..000000000
--- a/js/build/app/controllers/itemcontroller.js
+++ /dev/null
@@ -1,83 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-/*
-
-ownCloud - News
-
-@_author Bernhard Posselt
-@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-License as published by the Free Software Foundation; either
-version 3 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-
-You should have received a copy of the GNU Affero General Public
-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', 'AutoPageLoading', function($scope, ItemBusinessLayer, FeedModel, FeedLoading, FeedBusinessLayer, Language, AutoPageLoading) {
- var ItemController;
- ItemController = (function() {
- 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;
- this._$scope.itemBusinessLayer = this._itemBusinessLayer;
- this._$scope.feedBusinessLayer = this._feedBusinessLayer;
- this._$scope.isLoading = function() {
- return _this._feedLoading.isLoading();
- };
- this._$scope.isAutoPaging = function() {
- return _this._autoPageLoading.isLoading();
- };
- this._$scope.getFeedTitle = function(feedId) {
- var feed;
- feed = _this._feedModel.getById(feedId);
- if (angular.isDefined(feed)) {
- return feed.title;
- } else {
- return '';
- }
- };
- this._$scope.getRelativeDate = function(date) {
- if (date) {
- return _this._language.getMomentFromTimestamp(date).fromNow();
- } else {
- return '';
- }
- };
- this._$scope.$on('readItem', function(scope, data) {
- return _this._itemBusinessLayer.setRead(data);
- });
- this._$scope.$on('autoPage', function() {
- if (_this._autoPaging) {
- _this._autoPaging = false;
- return _this._itemBusinessLayer.loadNext(function(data) {
- return _this._autoPaging = true;
- });
- }
- });
- }
-
- return ItemController;
-
- })();
- return new ItemController($scope, ItemBusinessLayer, FeedModel, FeedLoading, AutoPageLoading, FeedBusinessLayer, Language);
- }
- ]);
-
-}).call(this);
diff --git a/js/build/app/controllers/settingscontroller.js b/js/build/app/controllers/settingscontroller.js
deleted file mode 100644
index 9c2beaaf9..000000000
--- a/js/build/app/controllers/settingscontroller.js
+++ /dev/null
@@ -1,55 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-/*
-
-ownCloud - News
-
-@author Bernhard Posselt
-@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-License as published by the Free Software Foundation; either
-version 3 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-
-You should have received a copy of the GNU Affero General Public
-License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-(function() {
- angular.module('News').controller('SettingsController', [
- '$scope', 'FeedBusinessLayer', 'FolderBusinessLayer', 'ShowAll', function($scope, FeedBusinessLayer, FolderBusinessLayer, ShowAll) {
- var _this = this;
- $scope.feedBusinessLayer = FeedBusinessLayer;
- $scope["import"] = function(fileContent) {
- var error;
- $scope.error = false;
- ShowAll.setShowAll(true);
- try {
- return FolderBusinessLayer["import"](fileContent);
- } catch (_error) {
- error = _error;
- return $scope.error = true;
- }
- };
- return $scope.importGoogleReader = function(fileContent) {
- var error, parsedJSON;
- $scope.jsonError = false;
- ShowAll.setShowAll(true);
- try {
- parsedJSON = JSON.parse(fileContent);
- return FeedBusinessLayer.importGoogleReader(parsedJSON);
- } catch (_error) {
- error = _error;
- return $scope.jsonError = true;
- }
- };
- }
- ]);
-
-}).call(this);
diff --git a/js/build/app/directives/audio.js b/js/build/app/directives/audio.js
deleted file mode 100644
index 2dfc0aa37..000000000
--- a/js/build/app/directives/audio.js
+++ /dev/null
@@ -1,51 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-/*
-
-ownCloud - News
-
-@author Bernhard Posselt
-@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-License as published by the Free Software Foundation; either
-version 3 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-
-You should have received a copy of the GNU Affero General Public
-License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-(function() {
- angular.module('News').directive('newsAudio', function() {
- var directive;
- return directive = {
- restrict: 'E',
- scope: {
- src: '@',
- type: '@'
- },
- transclude: true,
- template: '' + '<audio controls="controls" preload="none" ng-hide="cantPlay()">' + '<source src="{{ src }}">' + '</audio>' + '<a href="{{ src }}" class="button" ng-show="cantPlay()" ' + 'ng-transclude></a>',
- link: function(scope, elm, attrs) {
- var cantPlay, source;
- source = elm.children().children('source')[0];
- cantPlay = false;
- source.addEventListener('error', function() {
- return scope.$apply(function() {
- return cantPlay = true;
- });
- });
- return scope.cantPlay = function() {
- return cantPlay;
- };
- }
- };
- });
-
-}).call(this);
diff --git a/js/build/app/directives/droppable.js b/js/build/app/directives/droppable.js
deleted file mode 100644
index 30335232b..000000000
--- a/js/build/app/directives/droppable.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-/*
-
-ownCloud - News
-
-@author Bernhard Posselt
-@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-License as published by the Free Software Foundation; either
-version 3 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-
-You should have received a copy of the GNU Affero General Public
-License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-(function() {
- angular.module('News').directive('droppable', [
- '$rootScope', function($rootScope) {
- return function(scope, elm, attr) {
- var $elem, details;
- $elem = $(elm);
- details = {
- accept: '.feed',
- hoverClass: 'drag-and-drop',
- greedy: true,
- drop: function(event, ui) {
- var data;
- $('.drag-and-drop').removeClass('drag-and-drop');
- data = {
- folderId: parseInt($elem.data('id'), 10