src/js/model.js
branchnew-model
changeset 908 f56199193fad
parent 904 510ebab76fa3
child 915 ba7aab923d08
--- a/src/js/model.js	Tue May 22 16:49:48 2012 +0200
+++ b/src/js/model.js	Wed May 30 17:07:01 2012 +0200
@@ -210,26 +210,33 @@
     });
 }
 
-IriSP.Model.List.prototype.removeId = function(_id) {
-    var _index = (IriSP._(this.idIndex).indexOf(_id));
+IriSP.Model.List.prototype.removeId = function(_id, _deleteFromDirectory) {
+    var _deleteFromDirectory = _deleteFromDirectory || false,
+        _index = (IriSP._(this.idIndex).indexOf(_id));
     if (_index !== -1) {
         this.splice(_index,1);
     }
+    if (_deleteFromDirectory) {
+        delete this.directory.elements[_id];
+    }
 }
 
-IriSP.Model.List.prototype.removeElement = function(_el) {
+IriSP.Model.List.prototype.removeElement = function(_el, _deleteFromDirectory) {
+    var _deleteFromDirectory = _deleteFromDirectory || false;
     this.removeId(_el.id);
 }
 
-IriSP.Model.List.prototype.removeIds = function(_list) {
-    var _this = this;
+IriSP.Model.List.prototype.removeIds = function(_list, _deleteFromDirectory) {
+    var _deleteFromDirectory = _deleteFromDirectory || false,
+        _this = this;
     IriSP._(_list).forEach(function(_id) {
         _this.removeId(_id);
     });
 }
 
-IriSP.Model.List.prototype.removeElements = function(_list) {
-    var _this = this;
+IriSP.Model.List.prototype.removeElements = function(_list, _deleteFromDirectory) {
+    var _deleteFromDirectory = _deleteFromDirectory || false,
+        _this = this;
     IriSP._(_list).forEach(function(_el) {
         _this.removeElement(_el);
     });
@@ -785,6 +792,13 @@
     }
 }
 
+IriSP.Model.Source.prototype.merge = function(_source) {
+    var _this = this;
+    _source.forEach(function(_value, _key) {
+        _this.getList(_key).addElements(_value);
+    });
+}
+
 /* */
 
 IriSP.Model.RemoteSource = function(_config) {