diff options
Diffstat (limited to 'js')
29 files changed, 3957 insertions, 521 deletions
diff --git a/js/Gruntfile.coffee b/js/Gruntfile.coffee index 285ee47f0..c12a5f322 100644 --- a/js/Gruntfile.coffee +++ b/js/Gruntfile.coffee @@ -66,8 +66,8 @@ module.exports = (grunt) -> src: '<%= meta.production %>app.js' dest: '' wrapper: [ - '(function(angular, $, hex_md5, undefined){\n\n' - '\n})(window.angular, jQuery, hex_md5);' + '(function(angular, $, hex_md5, moment, undefined){\n\n' + '\n})(window.angular, window.jQuery, window.hex_md5, window.moment);' ] coffeelint: diff --git a/js/app/app.coffee b/js/app/app.coffee index 9a8e54d6a..2042a9ebf 100644 --- a/js/app/app.coffee +++ b/js/app/app.coffee @@ -30,13 +30,13 @@ angular.module('News', ['OC', 'ui']).config ($provide) -> itemBatchSize: 20 -angular.module('News').run ['Persistence', 'Config', 'FeedBl', -(Persistence, Config, FeedBl) -> +angular.module('News').run ['Persistence', 'Config', 'FeedBusinessLayer', +(Persistence, Config, FeedBusinessLayer) -> Persistence.init() setInterval -> - FeedBl.updateFeeds() + FeedBusinessLayer.updateFeeds() , Config.feedUpdateInterval ] diff --git a/js/app/controllers/controllers.coffee b/js/app/controllers/controllers.coffee deleted file mode 100644 index 8a73549cf..000000000 --- a/js/app/controllers/controllers.coffee +++ /dev/null @@ -1,38 +0,0 @@ -### - -ownCloud - News - -@author Bernhard Posselt -@copyright 2012 Bernhard Posselt nukeawhale@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 'FeedController', -['$scope', '_FeedController', 'Persistence', 'FolderBl', 'FeedBl', -'SubscriptionsBl', 'StarredBl', 'unreadCountFormatter', -($scope, _FeedController, Persistence, FolderBl, FeedBl, SubscriptionsBl, -StarredBl, unreadCountFormatter)-> - - return new _FeedController($scope, Persistence, FolderBl, FeedBl, - SubscriptionsBl, StarredBl, unreadCountFormatter) -] - -angular.module('News').controller 'ItemController', -['$scope', '_ItemController', 'ItemBl', 'FeedModel', 'FeedLoading', 'FeedBl', -($scope, _ItemController, ItemBl, FeedModel, FeedLoading, FeedBl)-> - - return new _ItemController($scope, ItemBl, FeedModel, FeedLoading, FeedBl) -]
\ No newline at end of file diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee index 15f784a69..3d8755cad 100644 --- a/js/app/controllers/feedcontroller.coffee +++ b/js/app/controllers/feedcontroller.coffee @@ -21,23 +21,28 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### -angular.module('News').factory '_FeedController', -['_ExistsError', -(_ExistsError)-> +angular.module('News').controller 'FeedController', +['$scope', '_ExistsError', 'Persistence', 'FolderBusinessLayer', +'FeedBusinessLayer', 'SubscriptionsBusinessLayer', 'StarredBusinessLayer', +'unreadCountFormatter', +($scope, _ExistsError, Persistence, FolderBusinessLayer, FeedBusinessLayer, +SubscriptionsBusinessLayer, StarredBusinessLayer, unreadCountFormatter) -> + class FeedController - constructor: (@_$scope, @_persistence, @_folderBl, @_feedBl, - @_subscriptionsBl, @_starredBl, @_unreadCountFormatter) -> + constructor: (@_$scope, @_persistence, @_folderBusinessLayer, + @_feedBusinessLayer, @_subscriptionsBusinessLayer, + @_starredBusinessLayer, @_unreadCountFormatter) -> @_isAddingFolder = false @_isAddingFeed = false # bind internal stuff to scope - @_$scope.folderBl = @_folderBl - @_$scope.feedBl = @_feedBl - @_$scope.subscriptionsBl = @_subscriptionsBl - @_$scope.starredBl = @_starredBl + @_$scope.folderBusinessLayer = @_folderBusinessLayer + @_$scope.feedBusinessLayer = @_feedBusinessLayer + @_$scope.subscriptionsBusinessLayer = @_subscriptionsBusinessLayer + @_$scope.starredBusinessLayer = @_starredBusinessLayer @_$scope.unreadCountFormatter = @_unreadCountFormatter @@ -55,13 +60,13 @@ angular.module('News').factory '_FeedController', @_isAddingFeed = true # set folder to open if parentFolderId != 0 - @_folderBl.open(parentFolderId) - @_feedBl.create feedUrl, parentFolderId + @_folderBusinessLayer.open(parentFolderId) + @_feedBusinessLayer.create feedUrl, parentFolderId # on success , (data) => @_$scope.feedUrl = '' @_isAddingFeed = false - @_feedBl.load(data['feeds'][0].id) + @_feedBusinessLayer.load(data['feeds'][0].id) # on error , => @_isAddingFeed = false @@ -80,7 +85,7 @@ angular.module('News').factory '_FeedController', try @_isAddingFolder = true - @_folderBl.create folderName + @_folderBusinessLayer.create folderName # on success , (data) => @@ -88,7 +93,7 @@ angular.module('News').factory '_FeedController', @_$scope.addNewFolder = false @_isAddingFolder = false activeId = data['folders'][0].id - @_$scope.folderId = @_folderBl.getById(activeId) + @_$scope.folderId = @_folderBusinessLayer.getById(activeId) # on error , => @_isAddingFolder = false @@ -102,22 +107,12 @@ angular.module('News').factory '_FeedController', @_$scope.addNewFolder = true - @_$scope.getOpacity = (number) => - number = parseInt(number, 10) - - # the higher the number, the lower the opacity - opacity = (number / 180) - - if opacity < 0.3 - opacity = 0.3 - if opacity > 1 - opacity = 1 - return opacity - - @_$scope.$on 'moveFeedToFolder', (scope, data) => - @_feedBl.move(data.feedId, data.folderId) + @_feedBusinessLayer.move(data.feedId, data.folderId) + - return FeedController + return new FeedController($scope, Persistence, FolderBusinessLayer, + FeedBusinessLayer, SubscriptionsBusinessLayer, + StarredBusinessLayer, unreadCountFormatter) ]
\ No newline at end of file diff --git a/js/app/controllers/itemcontroller.coffee b/js/app/controllers/itemcontroller.coffee index 514186393..bdc35c855 100644 --- a/js/app/controllers/itemcontroller.coffee +++ b/js/app/controllers/itemcontroller.coffee @@ -21,15 +21,18 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### -angular.module('News').factory '_ItemController', -> +angular.module('News').controller 'ItemController', +['$scope', 'ItemBusinessLayer', 'FeedModel', 'FeedLoading', 'FeedBusinessLayer', +'Language', +($scope, ItemBusinessLayer, FeedModel, FeedLoading, FeedBusinessLayer, +Language) -> class ItemController - constructor: (@_$scope, @_itemBl, @_feedModel, @_feedLoading, - @_feedBl) -> - - @_$scope.itemBl = @_itemBl - @_$scope.feedBl = @_feedBl + constructor: (@_$scope, @_itemBusinessLayer, @_feedModel, @_feedLoading, + @_feedBusinessLayer, @_language) -> + @_$scope.itemBusinessLayer = @_itemBusinessLayer + @_$scope.feedBusinessLayer = @_feedBusinessLayer @_$scope.isLoading = => return @_feedLoading.isLoading() @@ -41,5 +44,14 @@ angular.module('News').factory '_ItemController', -> else return '' + @_$scope.getRelativeDate = (date) => + if date + return @_language.getMomentFromTimestamp(date).fromNow() + else + return '' + + - return ItemController
\ No newline at end of file + return new ItemController($scope, ItemBusinessLayer, FeedModel, FeedLoading, + FeedBusinessLayer, Language) +]
\ No newline at end of file diff --git a/js/app/controllers/settingscontroller.coffee b/js/app/controllers/settingscontroller.coffee index 3c6a7771e..a1632a761 100644 --- a/js/app/controllers/settingscontroller.coffee +++ b/js/app/controllers/settingscontroller.coffee @@ -22,17 +22,17 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. angular.module('News').controller 'SettingsController', -['$scope', 'FeedBl', 'FolderBl', 'ShowAll', -($scope, FeedBl, FolderBl, ShowAll) -> +['$scope', 'FeedBusinessLayer', 'FolderBusinessLayer', 'ShowAll', +($scope, FeedBusinessLayer, FolderBusinessLayer, ShowAll) -> - $scope.feedBl = FeedBl + $scope.feedBusinessLayer = FeedBusinessLayer $scope.import = (fileContent) => $scope.error = false ShowAll.setShowAll(true) try - FolderBl.import(fileContent) + FolderBusinessLayer.import(fileContent) catch error console.error error $scope.error = true diff --git a/js/app/services/bl/bl.coffee b/js/app/services/businesslayer/businesslayer.coffee index 27e4d321a..7cfbb703c 100644 --- a/js/app/services/bl/bl.coffee +++ b/js/app/services/businesslayer/businesslayer.coffee @@ -21,9 +21,9 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### -angular.module('News').factory '_Bl', -> +angular.module('News').factory '_BusinessLayer', -> - class Bl + class BusinessLayer constructor: (@_activeFeed, @_persistence, @_itemModel, @_type) -> @@ -42,4 +42,4 @@ angular.module('News').factory '_Bl', -> return @_activeFeed.getType() == @_type && @_activeFeed.getId() == id - return Bl
\ No newline at end of file + return BusinessLayer
\ No newline at end of file diff --git a/js/app/services/bl/feedbl.coffee b/js/app/services/businesslayer/feedbusinesslayer.coffee index 38aa5bff0..2540cfc5f 100644 --- a/js/app/services/bl/feedbl.coffee +++ b/js/app/services/businesslayer/feedbusinesslayer.coffee @@ -21,13 +21,13 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### -angular.module('News').factory 'FeedBl', -['_Bl', 'ShowAll', 'Persistence', 'ActiveFeed', 'FeedType', 'ItemModel', -'FeedModel', 'NewLoading', '_ExistsError', 'Utils', -(_Bl, ShowAll, Persistence, ActiveFeed, FeedType, ItemModel, FeedModel, -NewLoading, _ExistsError, Utils) -> +angular.module('News').factory 'FeedBusinessLayer', +['_BusinessLayer', 'ShowAll', 'Persistence', 'ActiveFeed', 'FeedType', +'ItemModel', 'FeedModel', 'NewLoading', '_ExistsError', 'Utils', +(_BusinessLayer, ShowAll, Persistence, ActiveFeed, FeedType, ItemModel, +FeedModel, NewLoading, _ExistsError, Utils) -> - class FeedBl extends _Bl + class FeedBusinessLayer extends _BusinessLayer constructor: (@_showAll, @_feedModel, persistence, activeFeed, feedType, itemModel, @_newLoading, @_utils) -> @@ -171,7 +171,7 @@ NewLoading, _ExistsError, Utils) -> @_persistence.updateFeed(feed.id) - return new FeedBl(ShowAll, FeedModel, Persistence, ActiveFeed, FeedType, - ItemModel, NewLoading, Utils) + return new FeedBusinessLayer(ShowAll, FeedModel, Persistence, ActiveFeed, + FeedType, ItemModel, NewLoading, Utils) ]
\ No newline at end of file diff --git a/js/app/services/bl/folderbl.coffee b/js/app/services/businesslayer/folderbusinesslayer.coffee index 42c1d9752..969783222 100644 --- a/js/app/services/bl/folderbl.coffee +++ b/js/app/services/businesslayer/folderbusinesslayer.coffee @@ -21,15 +21,15 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### -angular.module('News').factory 'FolderBl', -['_Bl', 'FolderModel', 'FeedBl', 'Persistence', 'FeedType', 'ActiveFeed', -'ItemModel', 'ShowAll', '_ExistsError', 'OPMLParser', -(_Bl, FolderModel, FeedBl, Persistence, FeedType, ActiveFeed, -ItemModel, ShowAll, _ExistsError, OPMLParser)-> +angular.module('News').factory 'FolderBusinessLayer', +['_BusinessLayer', 'FolderModel', 'FeedBusinessLayer', 'Persistence', +'FeedType', 'ActiveFeed', 'ItemModel', 'ShowAll', '_ExistsError', 'OPMLParser', +(_BusinessLayer, FolderModel, FeedBusinessLayer, Persistence, FeedType, +ActiveFeed, ItemModel, ShowAll, _ExistsError, OPMLParser) -> - class FolderBl extends _Bl + class FolderBusinessLayer extends _BusinessLayer - constructor: (@_folderModel, @_feedBl, @_showAll, activeFeed, + constructor: (@_folderModel, @_feedBusinessLayer, @_showAll, activeFeed, persistence, @_feedType, itemModel, @_opmlParser) -> super(activeFeed, persistence, itemModel, @_feedType.Folder) @@ -43,7 +43,7 @@ ItemModel, ShowAll, _ExistsError, OPMLParser)-> hasFeeds: (folderId) -> - return @_feedBl.getFeedsOfFolder(folderId).length + return @_feedBusinessLayer.getFeedsOfFolder(folderId).length open: (folderId) -> @@ -66,12 +66,12 @@ ItemModel, ShowAll, _ExistsError, OPMLParser)-> markFolderRead: (folderId) -> - for feed in @_feedBl.getFeedsOfFolder(folderId) - @_feedBl.markFeedRead(feed.id) + for feed in @_feedBusinessLayer.getFeedsOfFolder(folderId) + @_feedBusinessLayer.markFeedRead(feed.id) getUnreadCount: (folderId) -> - return @_feedBl.getFolderUnreadCount(folderId) + return @_feedBusinessLayer.getFolderUnreadCount(folderId) isVisible: (folderId) -> @@ -79,10 +79,10 @@ ItemModel, ShowAll, _ExistsError, OPMLParser)-> return true else if @isActive(folderId) or - @_feedBl.getFolderUnreadCount(folderId) > 0 + @_feedBusinessLayer.getFolderUnreadCount(folderId) > 0 return true if @_activeFeed.getType() == @_feedType.Feed - for feed in @_feedBl.getFeedsOfFolder(folderId) + for feed in @_feedBusinessLayer.getFeedsOfFolder(folderId) if feed.id == @_activeFeed.getId() return true return false @@ -146,13 +146,15 @@ ItemModel, ShowAll, _ExistsError, OPMLParser)-> else try do (item) => - @_feedBl.create(item.getUrl(), parentFolderId) + @_feedBusinessLayer.create(item.getUrl(), + parentFolderId) catch error if not error instanceof _ExistsError console.info error - return new FolderBl(FolderModel, FeedBl, ShowAll, ActiveFeed, Persistence, - FeedType, ItemModel, OPMLParser) + return new FolderBusinessLayer(FolderModel, FeedBusinessLayer, ShowAll, + ActiveFeed, Persistence, FeedType, ItemModel, + OPMLParser) ]
\ No newline at end of file diff --git a/js/app/services/bl/itembl.coffee b/js/app/services/businesslayer/itembusinesslayer.coffee index 6a09400af..294be1f40 100644 --- a/js/app/services/bl/itembl.coffee +++ b/js/app/services/businesslayer/itembusinesslayer.coffee @@ -21,14 +21,16 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### -angular.module('News').factory 'ItemBl', -['ItemModel', 'FeedModel', 'Persistence', 'ActiveFeed', 'FeedType', 'StarredBl', -(ItemModel, FeedModel, Persistence, ActiveFeed, FeedType, StarredBl) -> +angular.module('News').factory 'ItemBusinessLayer', +['ItemModel', 'FeedModel', 'Persistence', 'ActiveFeed', 'FeedType', +'StarredBusinessLayer', +(ItemModel, FeedModel, Persistence, ActiveFeed, FeedType, +StarredBusinessLayer) -> - class ItemBl + class ItemBusinessLayer constructor: (@_itemModel, @_feedModel, @_persistence, @_activeFeed, - @_feedType, @_starredBl) -> + @_feedType, @_starredBusinessLayer) -> getAll: -> return @_itemModel.getAll() @@ -59,11 +61,11 @@ angular.module('News').factory 'ItemBl', item = @_itemModel.getById(itemId) if item.isStarred() item.setUnstarred() - @_starredBl.decreaseCount() + @_starredBusinessLayer.decreaseCount() @_persistence.unstarItem(item.feedId, item.guidHash) else item.setStarred() - @_starredBl.increaseCount() + @_starredBusinessLayer.increaseCount() @_persistence.starItem(item.feedId, item.guidHash) @@ -107,7 +109,7 @@ angular.module('News').factory 'ItemBl', - return new ItemBl(ItemModel, FeedModel, Persistence, ActiveFeed, FeedType, - StarredBl) + return new ItemBusinessLayer(ItemModel, FeedModel, Persistence, ActiveFeed, + FeedType, StarredBusinessLayer) ]
\ No newline at end of file diff --git a/js/app/services/bl/starredbl.coffee b/js/app/services/businesslayer/starredbusinesslayer.coffee index 176973e04..656a3befb 100644 --- a/js/app/services/bl/starredbl.coffee +++ b/js/app/services/businesslayer/starredbusinesslayer.coffee @@ -21,11 +21,12 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### -angular.module('News').factory 'StarredBl', -['_Bl', 'StarredCount', 'Persistence', 'ActiveFeed', 'FeedType', 'ItemModel', -(_Bl, StarredCount, Persistence, ActiveFeed, FeedType, ItemModel) -> +angular.module('News').factory 'StarredBusinessLayer', +['_BusinessLayer', 'StarredCount', 'Persistence', 'ActiveFeed', 'FeedType', +'ItemModel', +(_BusinessLayer, StarredCount, Persistence, ActiveFeed, FeedType, ItemModel) -> - class StarredBl extends _Bl + class StarredBusinessLayer extends _BusinessLayer constructor: (@_starredCount, feedType, persistence, activeFeed, itemModel) -> @@ -49,6 +50,6 @@ angular.module('News').factory 'StarredBl', decreaseCount: -> @_starredCount.setStarredCount(@_starredCount.getStarredCount() - 1) - return new StarredBl(StarredCount, FeedType, Persistence, + return new StarredBusinessLayer(StarredCount, FeedType, Persistence, ActiveFeed, ItemModel) ] diff --git a/js/app/services/bl/subscriptionsbl.coffee b/js/app/services/businesslayer/subscriptionsbusinesslayer.coffee index 102ae8c44..2f08504eb 100644 --- a/js/app/services/bl/subscriptionsbl.coffee +++ b/js/app/services/businesslayer/subscriptionsbusinesslayer.coffee @@ -21,14 +21,15 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### -angular.module('News').factory 'SubscriptionsBl', -['_Bl', 'FeedBl', 'Persistence', 'ShowAll', 'ActiveFeed', 'FeedType', -'ItemModel', -(_Bl, FeedBl, Persistence, ShowAll, ActiveFeed, FeedType, ItemModel) -> +angular.module('News').factory 'SubscriptionsBusinessLayer', +['_BusinessLayer', 'FeedBusinessLayer', 'Persistence', 'ShowAll', 'ActiveFeed', +'FeedType', 'ItemModel', +(_BusinessLayer, FeedBusinessLayer, Persistence, ShowAll, ActiveFeed, FeedType, +ItemModel) -> - class SubscriptionsBl extends _Bl + class SubscriptionsBusinessLayer extends _BusinessLayer - constructor: (@_feedBl, @_showAll, feedType, + constructor: (@_feedBusinessLayer, @_showAll, feedType, persistence, activeFeed, itemModel) -> super(activeFeed, persistence, itemModel, feedType.Subscriptions) @@ -37,21 +38,21 @@ angular.module('News').factory 'SubscriptionsBl', return true if @_showAll.getShowAll() - return @_feedBl.getNumberOfFeeds() > 0 + return @_feedBusinessLayer.getNumberOfFeeds() > 0 else - visible = @_feedBl.getNumberOfFeeds() > 0 && - @_feedBl.getAllUnreadCount() > 0 + visible = @_feedBusinessLayer.getNumberOfFeeds() > 0 && + @_feedBusinessLayer.getAllUnreadCount() > 0 return visible markAllRead: -> - @_feedBl.markAllRead() + @_feedBusinessLayer.markAllRead() getUnreadCount: -> - return @_feedBl.getAllUnreadCount() + return @_feedBusinessLayer.getAllUnreadCount() - return new SubscriptionsBl(FeedBl, ShowAll, FeedType, Persistence, - ActiveFeed, ItemModel) + return new SubscriptionsBusinessLayer(FeedBusinessLayer, ShowAll, FeedType, + Persistence, ActiveFeed, ItemModel) ] diff --git a/js/app/services/language.coffee b/js/app/services/language.coffee new file mode 100644 index 000000000..c8b93cc06 --- /dev/null +++ b/js/app/services/language.coffee @@ -0,0 +1,104 @@ +### + +ownCloud - News + +@author Bernhard Posselt +@copyright 2012 Bernhard Posselt nukeawhale@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').factory 'Language', -> + + class Language + + constructor: -> + @_language = 'en' + @_langs = [ + 'ar-ma' + 'ar' + 'bg' + 'ca' + 'cs' + 'cv' + 'da' + 'de' + 'el' + 'en-ca' + 'en-gb' + 'eo' + 'es' + 'et' + 'eu' + 'fi' + 'fr-ca' + 'fr' + 'gl' + 'he' + 'hi' + 'hu' + 'id' + 'is' + 'it' + 'ja' + 'ka' + 'ko' + 'lv' + 'ms-my' + 'nb' + 'ne' + 'nl' + 'pl' + 'pt-br' + 'pt' + 'ro' + 'ru' + 'sk' + 'sl' + 'sv' + 'th' + 'tr' + 'tzm-la' + 'tzm' + 'uk' + 'zh-cn' + 'zh-tw' + ] + + + handle: (data) -> + # fix broken server locales + data = data.replace('_', '-').toLowerCase() + + # check if the first part is available, if so use this + if not (data in @_langs) + data = data.split('-')[0] + + # if its not available default to english + if not (data in @_langs) + data = 'en' + + @_language = data + + + getLanguage: -> + return @_language + + + getMomentFromTimestamp: (timestamp) -> + return moment.unix(timestamp).lang(@_language) + + + return new Language() diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee index b6a9cd2c6..2b627301a 100644 --- a/js/app/services/persistence.coffee +++ b/js/app/services/persistence.coffee @@ -47,7 +47,8 @@ angular.module('News').factory '_Persistence', -> @getAllFeeds(triggerHideRead) @userSettingsRead(triggerHideRead) @getStarredItems(triggerHideRead) - + @userSettingsLanguage() + ### ITEM CONTROLLER @@ -320,6 +321,13 @@ angular.module('News').factory '_Persistence', -> @_request.post 'news_usersettings_read_hide', data + userSettingsLanguage: (callback=null) -> + callback or= -> + data = |