diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-04-08 22:19:19 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-04-08 22:19:19 +0200 |
commit | 68f5a01dc692e9bf6c0a60e584d1600adcae3a62 (patch) | |
tree | 372b2366855b96a7b724c426c7c5ae0241e933f1 /js/app/services | |
parent | a9b34deefd67e08a79ddefb0e1f980f6a6c1249d (diff) |
port javascript from appframework
Diffstat (limited to 'js/app/services')
-rw-r--r-- | js/app/services/loading.coffee | 50 | ||||
-rw-r--r-- | js/app/services/model.coffee | 128 | ||||
-rw-r--r-- | js/app/services/notification.coffee | 26 | ||||
-rw-r--r-- | js/app/services/notimplementederror.coffee | 35 | ||||
-rw-r--r-- | js/app/services/publisher.coffee | 64 | ||||
-rw-r--r-- | js/app/services/queries/biggerthan.coffee | 46 | ||||
-rw-r--r-- | js/app/services/queries/biggerthanequal.coffee | 45 | ||||
-rw-r--r-- | js/app/services/queries/contains.coffee | 54 | ||||
-rw-r--r-- | js/app/services/queries/doesnotcontain.coffee | 54 | ||||
-rw-r--r-- | js/app/services/queries/equal.coffee | 54 | ||||
-rw-r--r-- | js/app/services/queries/lessthan.coffee | 45 | ||||
-rw-r--r-- | js/app/services/queries/lessthanequal.coffee | 45 | ||||
-rw-r--r-- | js/app/services/queries/maximum.coffee | 46 | ||||
-rw-r--r-- | js/app/services/queries/minimum.coffee | 46 | ||||
-rw-r--r-- | js/app/services/queries/query.coffee | 49 | ||||
-rw-r--r-- | js/app/services/queries/unequal.coffee | 54 | ||||
-rw-r--r-- | js/app/services/request.coffee | 150 | ||||
-rw-r--r-- | js/app/services/router.coffee | 26 | ||||
-rw-r--r-- | js/app/services/utils.coffee | 26 |
19 files changed, 1043 insertions, 0 deletions
diff --git a/js/app/services/loading.coffee b/js/app/services/loading.coffee new file mode 100644 index 000000000..c68cc9f40 --- /dev/null +++ b/js/app/services/loading.coffee @@ -0,0 +1,50 @@ +### + +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/>. + +### + + +# Simple class which can be used to show loading events when ajax events are +# fired +angular.module('News').factory '_Loading', -> + + class Loading + + constructor: -> + @_count = 0 + + + increase: -> + @_count += 1 + + + decrease: -> + @_count -= 1 + + + getCount: -> + return @_count + + + isLoading: -> + return @_count > 0 + + + return Loading
\ No newline at end of file diff --git a/js/app/services/model.coffee b/js/app/services/model.coffee new file mode 100644 index 000000000..238e5bcf0 --- /dev/null +++ b/js/app/services/model.coffee @@ -0,0 +1,128 @@ +### + +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/>. + +### + + +# Model which offers basic crud for storing your data +angular.module('News').factory '_Model', -> + + class Model + + constructor: -> + @_data = [] + @_dataMap = {} + @_filterCache = {} + + + handle: (data) -> + ### + Redirects to add method + ### + for item in data + @add(item) + + + add: (data, clearCache=true) -> + ### + Adds a new entry or updates an entry if the id exists already + ### + if clearCache + @_invalidateCache() + if angular.isDefined(@_dataMap[data.id]) + @update(data, clearCache) + else + @_data.push(data) + @_dataMap[data.id] = data + + + update: (data, clearCache=true) -> + ### + Update an entry by searching for its id + ### + if clearCache + @_invalidateCache() + entry = @getById(data.id) + for key, value of data + if key == 'id' + continue + else + entry[key] = value + + + getById: (id) -> + ### + Return an entry by its id + ### + return @_dataMap[id] + + + getAll: -> + ### + Returns all stored entries + ### + return @_data + + + removeById: (id, clearCache=true) -> + ### + Remove an entry by id + ### + for entry, counter in @_data + if entry.id == id + @_data.splice(counter, 1) + data = @_dataMap[id] + delete @_dataMap[id] + if clearCache + @_invalidateCache() + return data + + + clear: -> + ### + Removes all cached elements + ### + @_data.length = 0 + @_dataMap = {} + @_invalidateCache() + + + _invalidateCache: -> + @_filterCache = {} + + + get: (query) -> + ### + Calls, caches and returns filtered results + ### + hash = query.hashCode() + if not angular.isDefined(@_filterCache[hash]) + @_filterCache[hash] = query.exec(@_data) + return @_filterCache[hash] + + + size: -> + ### + Return the number of all stored entries + ### + return @_data.length + + + return Model
\ No newline at end of file diff --git a/js/app/services/notification.coffee b/js/app/services/notification.coffee new file mode 100644 index 000000000..fefc9e306 --- /dev/null +++ b/js/app/services/notification.coffee @@ -0,0 +1,26 @@ +### + +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/>. + +### + + +# Inject notification into angular to make testing easier +angular.module('News').factory 'Notification', -> + return OC.Notification
\ No newline at end of file diff --git a/js/app/services/notimplementederror.coffee b/js/app/services/notimplementederror.coffee new file mode 100644 index 000000000..1c1b480ea --- /dev/null +++ b/js/app/services/notimplementederror.coffee @@ -0,0 +1,35 @@ +### + +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/>. + +### + + +# Model which offers basic crud for storing your data +angular.module('News').factory '_NotImplementedError', -> + + class NotImplementedError + + constructor: (@_msg) -> + + getMessage: -> + return @_msg + + + return NotImplementedError
\ No newline at end of file diff --git a/js/app/services/publisher.coffee b/js/app/services/publisher.coffee new file mode 100644 index 000000000..acf2ee2c0 --- /dev/null +++ b/js/app/services/publisher.coffee @@ -0,0 +1,64 @@ +### + +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/>. + +### + + +# Used for properly distributing received model data from the server +angular.module('News').factory '_Publisher', -> + + + class Publisher + + constructor: -> + @_subscriptions = {} + + + # Use this to subscribe to a certain hashkey in the returned json data + # dictionary. + # If you send JSON from the server, you'll receive something like this + # + # { + # data: { + # modelName: { + # create: [{id: 1, name: 'john'}, {id: 2, name: 'ron'}], + # update: [], + # delete: [] + # } + # } + # } + # + # To get the array ['one', 'two'] passed to your object, just subscribe + # to the key: + # Publisher.subscribeObjectTo('modelName', myModelInstance) + # + subscribeObjectTo: (object, name) -> + @_subscriptions[name] or= [] + @_subscriptions[name].push(object) + + + # This will publish data from the server to all registered subscribers + # The parameter 'name' is the name under which subscribers have registered + publishDataTo: (data, name) -> + for subscriber in @_subscriptions[name] || [] + subscriber.handle(data) + + + return Publisher
\ No newline at end of file diff --git a/js/app/services/queries/biggerthan.coffee b/js/app/services/queries/biggerthan.coffee new file mode 100644 index 000000000..a8ab7aea4 --- /dev/null +++ b/js/app/services/queries/biggerthan.coffee @@ -0,0 +1,46 @@ +### + +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/>. + +### + + +# A query for returning a list with elements bigger than equal to the provided +# one +angular.module('News').factory '_BiggerThanQuery', ['_Query', +(_Query) -> + + class BiggerThanQuery extends _Query + + constructor: (@_field, @_value) -> + name = 'biggerthan' + super(name, [@_field, @_value]) + + + exec: (data) -> + filtered = [] + for entry in data + if entry[@_field] > @_value + filtered.push(entry) + + return filtered + + + return BiggerThanQuery +] diff --git a/js/app/services/queries/biggerthanequal.coffee b/js/app/services/queries/biggerthanequal.coffee new file mode 100644 index 000000000..0733ced20 --- /dev/null +++ b/js/app/services/queries/biggerthanequal.coffee @@ -0,0 +1,45 @@ +### + +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/>. + +### + + +# A query for returning a list with elements equal to the provided one +angular.module('News').factory '_BiggerThanEqualQuery', ['_Query', +(_Query) -> + + class BiggerThanEqualQuery extends _Query + + constructor: (@_field, @_value) -> + name = 'biggerthanequal' + super(name, [@_field, @_value]) + + + exec: (data) -> + filtered = [] + for entry in data + if entry[@_field] >= @_value + filtered.push(entry) + + return filtered + + + return BiggerThanEqualQuery +] diff --git a/js/app/services/queries/contains.coffee b/js/app/services/queries/contains.coffee new file mode 100644 index 000000000..f1ade5e59 --- /dev/null +++ b/js/app/services/queries/contains.coffee @@ -0,0 +1,54 @@ +### + +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/>. + +### + + +# A query for returning a list with elements that contain the search term +angular.module('News').factory '_ContainsQuery', ['_Query', +(_Query) -> + + class ContainsQuery extends _Query + + constructor: (@_field, @_value, @_caseInsensitive=false) -> + name = 'contains' + super(name, [@_field, @_value, @_caseInsensitive]) + + + exec: (data) -> + filtered = [] + + if @_caseInsensitive + @_value = @_value.toLowerCase() + + for entry in data + if @_caseInsensitive + field = entry[@_field].toLowerCase() + else + field = entry[@_field] + + if field.indexOf(@_value) != -1 + filtered.push(entry) + + return filtered + + + return ContainsQuery +] diff --git a/js/app/services/queries/doesnotcontain.coffee b/js/app/services/queries/doesnotcontain.coffee new file mode 100644 index 000000000..a99d18a04 --- /dev/null +++ b/js/app/services/queries/doesnotcontain.coffee @@ -0,0 +1,54 @@ +### + +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/>. + +### + + +# A query for returning a list with elements that does not contain the search +# term +angular.module('News').factory '_DoesNotContainQuery', ['_Query', +(_Query) -> + + class DoesNotContainQuery extends _Query + + constructor: (@_field, @_value, @_caseInsensitive=false) -> + name = 'doesnotcontain' + super(name, [@_field, @_value, @_caseInsensitive]) + + + exec: (data) -> + filtered = [] + if @_caseInsensitive + @_value = @_value.toLowerCase() + + for entry in data + if @_caseInsensitive + field = entry[@_field].toLowerCase() + else + field = entry[@_field] + + if field.indexOf(@_value) == -1 + filtered.push(entry) + + return filtered + + + return DoesNotContainQuery +] diff --git a/js/app/services/queries/equal.coffee b/js/app/services/queries/equal.coffee new file mode 100644 index 000000000..06f9f0abb --- /dev/null +++ b/js/app/services/queries/equal.coffee @@ -0,0 +1,54 @@ +### + +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/>. + +### + + +# A query for returning a list with elements equal to the provided one +angular.module('News').factory '_EqualQuery', ['_Query', +(_Query) -> + + class EqualQuery extends _Query + + constructor: (@_field, @_value, @_caseInsensitive=false) -> + name = 'equal' + super(name, [@_field, @_value, @_caseInsensitive]) + + + exec: (data) -> + equal = [] + + if @_caseInsensitive + @_value = @_value.toLowerCase() + + for entry in data + if @_caseInsensitive + field = entry[@_field].toLowerCase() + else + field = entry[@_field] + + if field == @_value + equal.push(entry) + + return equal + + + return EqualQuery +] diff --git a/js/app/services/queries/lessthan.coffee b/js/app/services/queries/lessthan.coffee new file mode 100644 index 000000000..94898b371 --- /dev/null +++ b/js/app/services/queries/lessthan.coffee @@ -0,0 +1,45 @@ +### + +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/>. + +### + + +# A query for returning a list with elements less than to the provided one +angular.module('News').factory '_LessThanQuery', ['_Query', +(_Query) -> + + class LessThanQuery extends _Query + + constructor: (@_field, @_value) -> + name = 'lessthan' + super(name, [@_field, @_value]) + + + exec: (data) -> + filtered = [] + for entry in data + if entry[@_field] < @_value + filtered.push(entry) + + return filtered + + + return LessThanQuery +] diff --git a/js/app/services/queries/lessthanequal.coffee b/js/app/services/queries/lessthanequal.coffee new file mode 100644 index 000000000..ab27032a2 --- /dev/null +++ b/js/app/services/queries/lessthanequal.coffee @@ -0,0 +1,45 @@ +### + +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/>. + +### + + +# A query for returning a list with elements less than equal to the provided one +angular.module('News').factory '_LessThanEqualQuery', ['_Query', +(_Query) -> + + class LessThanEqualQuery extends _Query + + constructor: (@_field, @_value) -> + name = 'lessthanequal' + super(name, [@_field, @_value]) + + + exec: (data) -> + filtered = [] + for entry in data + if entry[@_field] <= @_value + filtered.push(entry) + + return filtered + + + return LessThanEqualQuery +] diff --git a/js/app/services/queries/maximum.coffee b/js/app/services/queries/maximum.coffee new file mode 100644 index 000000000..09f595cd8 --- /dev/null +++ b/js/app/services/queries/maximum.coffee @@ -0,0 +1,46 @@ +### + +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/>. + +### + + +# A query for returning the maximum of an array based on the object +angular.module('News').factory '_MaximumQuery', ['_Query', +(_Query) -> + + class MaximumQuery extends _Query + + constructor: (@_field) -> + name = 'maximum' + super(name, [@_field]) + + + exec: (data) -> + maximum = undefined + for entry in data + if angular.isUndefined(maximum) or + entry[@_field] > maximum[@_field] + maximum = entry + + return maximum + + + return MaximumQuery +] diff --git a/js/app/services/queries/minimum.coffee b/js/app/services/queries/minimum.coffee new file mode 100644 index 000000000..db77a9bf9 --- /dev/null +++ b/js/app/services/queries/minimum.coffee @@ -0,0 +1,46 @@ +### + +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/>. + +### + + +# A query for returning the minium of an array based on the object +angular.module('News').factory '_MinimumQuery', ['_Query', +(_Query) -> + + class MinimumQuery extends _Query + + constructor: (@_field) -> + name = 'minimum' + super(name, [@_field]) + + + exec: (data) -> + minimum = undefined + for entry in data + if angular.isUndefined(minimum) or + entry[@_field] < minimum[@_field] + minimum = entry + + return minimum + + + return MinimumQuery +] diff --git a/js/app/services/queries/query.coffee b/js/app/services/queries/query.coffee new file mode 100644 index 000000000..ba4e1c21e --- /dev/null +++ b/js/app/services/queries/query.coffee @@ -0,0 +1,49 @@ +### + +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/>. + +### + + +# Parentclass to inherit from for defining own model query +angular.module('News').factory '_Query', ['_NotImplementedError', +(_NotImplementedError) -> + + class Query + + constructor: (@_name, @_args=[]) -> + + + exec: (data) -> + throw new _NotImplementedError('Not implemented') + + + hashCode: (filter) -> + hash = @_name + for arg in @_args + if angular.isString(arg) + arg = arg.replace(/_/gi, '__') + hash += '_' + arg + + return hash + + + return Query + +]
\ No newline at end of file diff --git a/js/app/services/queries/unequal.coffee b/js/app/services/queries/unequal.coffee new file mode 100644 index 000000000..d76847bfd --- /dev/null +++ b/js/app/services/queries/unequal.coffee @@ -0,0 +1,54 @@ +### + +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 pu |