summaryrefslogtreecommitdiffstats
path: root/js/app
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-15 03:00:53 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-15 03:00:53 +0200
commit3ce894af1e72c9488b8cb3340fd61656122f7d50 (patch)
treea603121e8b1e860201370399f8095121cd9c6bf7 /js/app
parent10d76fff64363ea59d916b550854cf3540dadfbc (diff)
use markdown, refactor js
Diffstat (limited to 'js/app')
-rw-r--r--js/app/app.coffee57
-rw-r--r--js/app/controllers/appcontroller.coffee42
-rw-r--r--js/app/controllers/feedcontroller.coffee147
-rw-r--r--js/app/controllers/itemcontroller.coffee84
-rw-r--r--js/app/controllers/settingscontroller.coffee60
-rw-r--r--js/app/directives/audio.coffee43
-rw-r--r--js/app/directives/autofocus.coffee6
-rw-r--r--js/app/directives/bindunsafehtml.coffee26
-rw-r--r--js/app/directives/clickfocus.coffee44
-rw-r--r--js/app/directives/clickslidetoggle.coffee82
-rw-r--r--js/app/directives/draggable.coffee32
-rw-r--r--js/app/directives/droppable.coffee44
-rw-r--r--js/app/directives/forwardclick.coffee35
-rw-r--r--js/app/directives/itemshortcuts.coffee148
-rw-r--r--js/app/directives/newsclickscroll.coffee39
-rw-r--r--js/app/directives/newsitemscroll.coffee81
-rw-r--r--js/app/directives/pulltorefresh.coffee39
-rw-r--r--js/app/directives/readfile.coffee44
-rw-r--r--js/app/directives/tooltip.coffee27
-rw-r--r--js/app/directives/translate.coffee31
-rw-r--r--js/app/directives/undonotification.coffee60
-rw-r--r--js/app/filters/trusturl.coffee25
-rw-r--r--js/app/services/activefeed.coffee48
-rw-r--r--js/app/services/businesslayer/businesslayer.coffee44
-rw-r--r--js/app/services/businesslayer/feedbusinesslayer.coffee194
-rw-r--r--js/app/services/businesslayer/folderbusinesslayer.coffee208
-rw-r--r--js/app/services/businesslayer/itembusinesslayer.coffee131
-rw-r--r--js/app/services/businesslayer/starredbusinesslayer.coffee56
-rw-r--r--js/app/services/businesslayer/subscriptionsbusinesslayer.coffee68
-rw-r--r--js/app/services/existserror.coffee32
-rw-r--r--js/app/services/feedtype.coffee31
-rw-r--r--js/app/services/loading.coffee50
-rw-r--r--js/app/services/model.coffee128
-rw-r--r--js/app/services/models/feedmodel.coffee174
-rw-r--r--js/app/services/models/foldermodel.coffee142
-rw-r--r--js/app/services/models/itemmodel.coffee123
-rw-r--r--js/app/services/newestitem.coffee39
-rw-r--r--js/app/services/notification.coffee26
-rw-r--r--js/app/services/notimplementederror.coffee35
-rw-r--r--js/app/services/opmlparser.coffee79
-rw-r--r--js/app/services/persistence.coffee463
-rw-r--r--js/app/services/publisher.coffee64
-rw-r--r--js/app/services/queries/biggerthan.coffee46
-rw-r--r--js/app/services/queries/biggerthanequal.coffee45
-rw-r--r--js/app/services/queries/contains.coffee54
-rw-r--r--js/app/services/queries/doesnotcontain.coffee54
-rw-r--r--js/app/services/queries/equal.coffee54
-rw-r--r--js/app/services/queries/lessthan.coffee45
-rw-r--r--js/app/services/queries/lessthanequal.coffee45
-rw-r--r--js/app/services/queries/maximum.coffee46
-rw-r--r--js/app/services/queries/minimum.coffee46
-rw-r--r--js/app/services/queries/query.coffee49
-rw-r--r--js/app/services/queries/unequal.coffee54
-rw-r--r--js/app/services/request.coffee117
-rw-r--r--js/app/services/services.coffee65
-rw-r--r--js/app/services/settings.coffee108
-rw-r--r--js/app/services/starredcount.coffee44
-rw-r--r--js/app/services/statusflag.coffee31
-rw-r--r--js/app/services/unreadcountformatter.coffee28
-rw-r--r--js/app/services/utils.coffee26
60 files changed, 0 insertions, 4288 deletions
diff --git a/js/app/app.coffee b/js/app/app.coffee
deleted file mode 100644
index 0c5763bd2..000000000
--- a/js/app/app.coffee
+++ /dev/null
@@ -1,57 +0,0 @@
-###
-
-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/>.
-
-###
-
-
-# app main
-angular.module('News', ['ui']).config ['$provide', '$httpProvider',
-($provide, $httpProvider) ->
- $provide.value 'Config', config =
- markReadTimeout: 500
- scrollTimeout: 500
- feedUpdateInterval: 1000*60*3 # miliseconds
- itemBatchSize: 40
- undoTimeout: 1000*10 # miliseconds
- # the autoPageFactor defines how many articles must be left
- # before it starts autopaging
- autoPageFactor: 30
-
- # Always send the CSRF token by default
- $httpProvider.defaults.headers.common['requesttoken'] = oc_requesttoken
-]
-
-angular.module('News').run ['Persistence', 'Config',
-(Persistence, Config) ->
-
- setInterval ->
- Persistence.getAllFeeds(null, false)
- Persistence.getAllFolders(null, false)
- , Config.feedUpdateInterval
-]
-
-
-$(document).ready ->
- # this is used to forces browser to reload content after refreshing
- # and thus clearing the scroll cache
- $(this).keyup (e) ->
- if (e.which == 116) || (e.which == 82 && e.ctrlKey)
- document.location.reload(true)
- return false
diff --git a/js/app/controllers/appcontroller.coffee b/js/app/controllers/appcontroller.coffee
deleted file mode 100644
index bcb256077..000000000
--- a/js/app/controllers/appcontroller.coffee
+++ /dev/null
@@ -1,42 +0,0 @@
-###
-
-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/>.
-
-###
-
-
-angular.module('News').controller 'AppController',
-['$scope', 'Persistence', 'FeedBusinessLayer',
-($scope, Persistence, FeedBusinessLayer) ->
-
- class AppController
-
- constructor: (@_$scope, @_persistence, @_feedBusinessLayer) ->
-
- @_$scope.initialized = false
- @_$scope.feedBusinessLayer = @_feedBusinessLayer
-
- successCallback = =>
- @_$scope.initialized = true
-
- @_persistence.init().then(successCallback)
-
- return new AppController($scope, Persistence, FeedBusinessLayer)
-
-] \ No newline at end of file
diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee
deleted file mode 100644
index 43186e689..000000000
--- a/js/app/controllers/feedcontroller.coffee
+++ /dev/null
@@ -1,147 +0,0 @@
-###
-
-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/>.
-
-###
-
-
-angular.module('News').controller 'FeedController',
-['$scope', '_ExistsError', 'Persistence', 'FolderBusinessLayer',
-'FeedBusinessLayer', 'SubscriptionsBusinessLayer', 'StarredBusinessLayer',
-'unreadCountFormatter', 'ActiveFeed', 'FeedType', '$window',
-($scope, _ExistsError, Persistence, FolderBusinessLayer, FeedBusinessLayer,
-SubscriptionsBusinessLayer, StarredBusinessLayer, unreadCountFormatter,
-ActiveFeed, FeedType, $window) ->
-
-
- class FeedController
-
- constructor: (@_$scope, @_persistence, @_folderBusinessLayer,
- @_feedBusinessLayer, @_subscriptionsBusinessLayer,
- @_starredBusinessLayer, @_unreadCountFormatter,
- @_activeFeed, @_feedType, @_$window) ->
-
- @_isAddingFolder = false
- @_isAddingFeed = false
-
- # bind internal stuff to scope
- @_$scope.folderBusinessLayer = @_folderBusinessLayer
- @_$scope.feedBusinessLayer = @_feedBusinessLayer
- @_$scope.subscriptionsBusinessLayer = @_subscriptionsBusinessLayer
- @_$scope.starredBusinessLayer = @_starredBusinessLayer
- @_$scope.unreadCountFormatter = @_unreadCountFormatter
-
- @_$scope.edit = (feed) ->
- feed.editing = true
- feed.originalValue = feed.title
-
- @_$scope.cancel = (feed) ->
- feed.editing = false
- feed.title = feed.originalValue
-
- @_$scope.getTotalUnreadCount = =>
- # also update title based on unreadcount
- count = @_subscriptionsBusinessLayer.getUnreadCount(0)
-
- # dont do this for other dom elements
- # the title is some kind of exception since its always there
- # and it has nothing to do with the body structure
- if @_$scope.translations and @_$scope.translations.appName
- appName = @_$scope.translations.appName
- else
- appName = ''
-
- if count > 0
- titleCount = @_unreadCountFormatter(count)
- title = appName + ' (' + titleCount + ') | ownCloud'
- else
- title = appName + ' | ownCloud'
-
- # only update title when it changed to prevent highlighting the
- # tab
- if @_$window.document.title != title
- @_$window.document.title = title
-
- return count
-
- @_$scope.isAddingFolder = =>
- return @_isAddingFolder
-
- @_$scope.isAddingFeed = =>
- return @_isAddingFeed
-
- @_$scope.addFeed = (feedUrl, parentFolderId=0) =>
- @_$scope.feedExistsError = false
-
- try
- @_isAddingFeed = true
- # set folder to open
- if parentFolderId != 0
- @_folderBusinessLayer.open(parentFolderId)
- @_$scope.feedUrl = ''
- @_feedBusinessLayer.create feedUrl, parentFolderId
- # on success
- , (data) =>
- @_isAddingFeed = false
- @_feedBusinessLayer.load(data['feeds'][0].id)
- # on error
- , =>
- @_isAddingFeed = false
-
- catch error
- if error instanceof _ExistsError
- @_$scope.feedExistsError = true
- @_isAddingFeed = false
-
-
- @_$scope.addFolder = (folderName) =>
- @_$scope.folderExistsError = false
-
- try
- @_isAddingFolder = true
- @_folderBusinessLayer.create folderName
-
- # on success
- , (data) =>
- @_$scope.folderName = ''
- @_$scope.addNewFolder = false
- @_isAddingFolder = false
- activeId = data['folders'][0].id
- @_$scope.folderId = @_folderBusinessLayer.getById(activeId)
- # on error
- , =>
- @_isAddingFolder = false
-
- catch error
- if error instanceof _ExistsError
- @_$scope.folderExistsError = true
- @_isAddingFolder = false
-
-
- @_$scope.$on 'moveFeedToFolder', (scope, data) =>
- @_feedBusinessLayer.move(data.feedId, data.folderId)
-
-
-
- return new FeedController($scope, Persistence, FolderBusinessLayer,
- FeedBusinessLayer, SubscriptionsBusinessLayer,
- StarredBusinessLayer, unreadCountFormatter,
- ActiveFeed, FeedType, $window)
-
-] \ No newline at end of file
diff --git a/js/app/controllers/itemcontroller.coffee b/js/app/controllers/itemcontroller.coffee
deleted file mode 100644
index 94c3cd159..000000000
--- a/js/app/controllers/itemcontroller.coffee
+++ /dev/null
@@ -1,84 +0,0 @@
-###
-
-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/>.
-
-###
-
-
-angular.module('News').controller 'ItemController',
-['$scope', 'ItemBusinessLayer', 'FeedModel', 'FeedLoading', 'FeedBusinessLayer',
-'Language', 'AutoPageLoading', 'Settings',
-($scope, ItemBusinessLayer, FeedModel, FeedLoading, FeedBusinessLayer,
-Language, AutoPageLoading, Settings) ->
-
- class ItemController
-
- constructor: (@_$scope, @_itemBusinessLayer, @_feedModel,
- @_feedLoading, @_autoPageLoading, @_feedBusinessLayer,
- @_language, @_settings) ->
- @_autoPaging = true
-
- @_$scope.itemBusinessLayer = @_itemBusinessLayer
- @_$scope.feedBusinessLayer = @_feedBusinessLayer
-
- @_$scope.isLoading = =>
- return @_feedLoading.isLoading()
-
- @_$scope.isAutoPaging = =>
- return @_autoPageLoading.isLoading()
-
- @_$scope.getFeedTitle = (feedId) =>
- feed = @_feedModel.getById(feedId)
- if angular.isDefined(feed)
- return feed.title
- else
- return ''
-
-
- @_$scope.getRelativeDate = (date) =>
- if date
- return @_language.getMomentFromTimestamp(date).fromNow()
- else
- return ''
-
- @_$scope.loadNew = =>
- @_$scope.refresh = true
- @_itemBusinessLayer.loadNew =>
- @_$scope.refresh = false
-
-
- @_$scope.$on 'readItem', (scope, data) =>
- @_itemBusinessLayer.setRead(data)
-
- @_$scope.$on 'autoPage', =>
- if @_autoPaging
- # prevent multiple autopaging requests
- @_autoPaging = false
- @_itemBusinessLayer.loadNext (data) =>
- @_autoPaging = true
-
-
- @_$scope.isCompactView = =>
- return @_settings.get('compact')
-
-
- return new ItemController($scope, ItemBusinessLayer, FeedModel, FeedLoading,
- AutoPageLoading, FeedBusinessLayer, Language,
- Settings)
-] \ No newline at end of file
diff --git a/js/app/controllers/settingscontroller.coffee b/js/app/controllers/settingscontroller.coffee
deleted file mode 100644
index 9190ebad5..000000000
--- a/js/app/controllers/settingscontroller.coffee
+++ /dev/null
@@ -1,60 +0,0 @@
-###
-
-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/>.
-
-###
-
-
-angular.module('News').controller 'SettingsController',
-['$scope', 'FeedBusinessLayer', 'FolderBusinessLayer', 'Persistence', 'Settings',
-($scope, FeedBusinessLayer, FolderBusinessLayer, Persistence, Settings) ->
-
- $scope.feedBusinessLayer = FeedBusinessLayer
-
- $scope.import = (fileContent) ->
- $scope.error = false
- Settings.set('showAll', true)
-
- try
- FolderBusinessLayer.import(fileContent)
- catch error
- $scope.error = true
-
-
- $scope.importArticles = (fileContent) ->
- $scope.jsonError = false
- $scope.loading = true
-
- try
- parsedJSON = JSON.parse(fileContent)
- FeedBusinessLayer.importArticles parsedJSON, ->
- $scope.loading = false
- catch error
- $scope.jsonError = true
- $scope.loading = false
-
-
- $scope.toggleSetting = (key) ->
- Settings.set(key, !Settings.get(key))
- Persistence.setSettings(Settings.getSettings())
-
- $scope.getSetting = (key) ->
- return Settings.get(key)
-
-] \ No newline at end of file
diff --git a/js/app/directives/audio.coffee b/js/app/directives/audio.coffee
deleted file mode 100644
index 3d6d94062..000000000
--- a/js/app/directives/audio.coffee
+++ /dev/null
@@ -1,43 +0,0 @@
-###
-
-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/>.
-
-###
-
-angular.module('News').directive 'newsAudio', ->
- directive =
- restrict: 'E'
- scope:
- src: '@'
- type: '@'
- transclude: true
- template: '' +
- '<audio controls="controls" preload="none" ng-hide="cantPlay()">' +
- '<source ng-src="{{ src|trustUrl }}">' +
- '</audio>' +
- '<a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ' +
- 'ng-transclude></a>'
- link: (scope, elm, attrs) ->
- source = elm.children().children('source')[0]
- cantPlay = false
- source.addEventListener 'error', ->
- scope.$apply ->
- cantPlay = true
-
- scope.cantPlay = -> cantPlay
diff --git a/js/app/directives/autofocus.coffee b/js/app/directives/autofocus.coffee
deleted file mode 100644
index 98621b65f..000000000
--- a/js/app/directives/autofocus.coffee
+++ /dev/null
@@ -1,6 +0,0 @@
-angular.module('News').directive 'newsAutoFocus', ->
- directive =
- restrict: 'A'
- link: (scope, elm, attrs) ->
- $(window).load ->
- $(elm).focus()
diff --git a/js/app/directives/bindunsafehtml.coffee b/js/app/directives/bindunsafehtml.coffee
deleted file mode 100644
index 36240ad23..000000000
--- a/js/app/directives/bindunsafehtml.coffee
+++ /dev/null
@@ -1,26 +0,0 @@
-###
-
-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/>.
-
-###
-
-angular.module('News').directive 'newsBindHtmlUnsafe', ->
- return (scope, element, attr) ->
- scope.$watch attr.newsBindHtmlUnsafe, (value) ->
- element.html(scope.$eval(attr.newsBindHtmlUnsafe))
diff --git a/js/app/directives/clickfocus.coffee b/js/app/directives/clickfocus.coffee
deleted file mode 100644
index 4a5323418..000000000
--- a/js/app/directives/clickfocus.coffee
+++ /dev/null
@@ -1,44 +0,0 @@
-###
-
-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.
-