summaryrefslogtreecommitdiffstats
path: root/js/service
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-18 22:49:30 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-18 22:49:30 +0200
commit2459002dcc070dcb66b2a44c237b87e8a1b8e968 (patch)
tree5a668fa1aead7269a1979e8706405d8dbf3226f3 /js/service
parente2e9a79aa3acb0d3a02d81ddbfbdcacc676db2d2 (diff)
add models
Diffstat (limited to 'js/service')
-rw-r--r--js/service/feed.js20
-rw-r--r--js/service/folder.js20
-rw-r--r--js/service/item.js20
-rw-r--r--js/service/model.js11
-rw-r--r--js/service/publisher.js9
5 files changed, 80 insertions, 0 deletions
diff --git a/js/service/feed.js b/js/service/feed.js
new file mode 100644
index 000000000..9223ca6e7
--- /dev/null
+++ b/js/service/feed.js
@@ -0,0 +1,20 @@
+/**
+ * ownCloud - News
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Bernhard Posselt <dev@bernhard-posselt.com>
+ * @copyright Bernhard Posselt 2014
+ */
+app.factory('Feed', function (Model) {
+ 'use strict';
+
+ var Feed = function () {
+ Model.call(this, 'url');
+ };
+
+ Feed.prototype = Object.create(Model.prototype);
+
+ return new Feed();
+}); \ No newline at end of file
diff --git a/js/service/folder.js b/js/service/folder.js
new file mode 100644
index 000000000..101b8ec66
--- /dev/null
+++ b/js/service/folder.js
@@ -0,0 +1,20 @@
+/**
+ * ownCloud - News
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Bernhard Posselt <dev@bernhard-posselt.com>
+ * @copyright Bernhard Posselt 2014
+ */
+app.factory('Folder', function (Model) {
+ 'use strict';
+
+ var Folder = function () {
+ Model.call(this, 'name');
+ };
+
+ Folder.prototype = Object.create(Model.prototype);
+
+ return new Folder();
+}); \ No newline at end of file
diff --git a/js/service/item.js b/js/service/item.js
new file mode 100644
index 000000000..0dd9b8677
--- /dev/null
+++ b/js/service/item.js
@@ -0,0 +1,20 @@
+/**
+ * ownCloud - News
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Bernhard Posselt <dev@bernhard-posselt.com>
+ * @copyright Bernhard Posselt 2014
+ */
+app.factory('Item', function (Model) {
+ 'use strict';
+
+ var Item = function () {
+ Model.call(this, 'id');
+ };
+
+ Item.prototype = Object.create(Model.prototype);
+
+ return new Item();
+}); \ No newline at end of file
diff --git a/js/service/model.js b/js/service/model.js
index a28608329..dddede788 100644
--- a/js/service/model.js
+++ b/js/service/model.js
@@ -70,6 +70,17 @@ app.factory('Model', function () {
if (this.hashMap[id] !== undefined) {
delete this.hashMap[id];
}
+ },
+
+ clear: function () {
+ this.hashMap = {};
+
+ // http://stackoverflow.com/questions/1232040/how-to-empty-an-array-in-javascript
+ // this is the fastes way to empty an array when you want to keep the
+ // reference around
+ while (this.values.length > 0) {
+ this.values.pop();
+ }
}
};
diff --git a/js/service/publisher.js b/js/service/publisher.js
index 185e60047..d7e9bb0e7 100644
--- a/js/service/publisher.js
+++ b/js/service/publisher.js
@@ -22,6 +22,15 @@ app.service('Publisher', function () {
};
};
+ this.publishAll = function (values) {
+ var key;
+ for (key in values) {
+ if (values.hasOwnProperty(key)) {
+ this.publish(values[key]).onChannel(key);
+ }
+ }
+ };
+
this.publish = function (value) {
return {
onChannel: function (channel) {