1function Favoris(_params) { 2 this.favoris = []; 3 this.favorisDeleted = []; 4 this.maxItem = 5; 5 6 this.getFavoris = function() { 7 return this.favoris; 8 } 9 10 /* --------------------------Add items-------------------------- */ 11 this.addItemNoProcessing = function(item) { 12 if(this.favoris.length >= this.maxItem) return; 13 if(!this.checkExist(item)) { 14 this.favoris.push(item); 15 } 16 } 17 18 this.addItem = function(item) { 19 20 if(this.favoris.length >= this.maxItem) return; 21 if(!this.checkExist(item)) { 22 this.favoris.push(item); 23 item.init(); 24 25 //Update local storage 26 this.updateFavorisStorage(); 27 } 28 } 29 30 this.addItemDeleted = function(item) { 31 if(!this.checkExistDeleted(item)) { 32 this.favorisDeleted.push(item); 33 34 //Update local storage 35 this.updateFavorisDeletedStorage(); 36 } 37 } 38 39 /* --------------------------Delete items-------------------------- */ 40 this.deleteItem = function(item) { 41 for(var i = 0; i < this.favoris.length; ++i) { 42 if(this.favoris[i].getInsee() == item.getInsee() && this.favoris[i].getPoi().type == item.getPoi().type) { 43 this.favoris.splice(i, 1); 44 break; 45 } 46 } 47 this.updateFavorisStorage(); 48 this.favorisDeleted.push(item); 49 this.updateFavorisDeletedStorage(); 50 } 51 52 this.deleteItemDeleted = function(item) { 53 for(var i = 0; i < this.favorisDeleted.length; ++i) { 54 if(this.favorisDeleted[i].getInsee() == item.getInsee() && this.favorisDeleted[i].getPoi().type == item.getPoi().type) { 55 this.favorisDeleted.splice(i, 1); 56 break; 57 } 58 } 59 this.updateFavorisDeletedStorage(); 60 } 61 62 /* --------------------------Move items-------------------------- */ 63 this.moveItem = function(old_index, new_index) { 64 if (new_index >= this.favoris.length) { 65 var k = new_index - this.favoris.length + 1; 66 while (k--) { 67 this.favoris.push(undefined); 68 } 69 } 70 this.favoris.splice(new_index, 0, this.favoris.splice(old_index, 1)[0]); 71 this.updateFavorisStorage(); 72 } 73 74 /* --------------------------Check existance-------------------------- */ 75 this.checkExist = function(item) { 76 for(var i = 0; i < this.favoris.length; ++i) { 77 if(this.favoris[i].getInsee() == item.getInsee() && this.favoris[i].getPoi().type == item.getPoi().type) { 78 return true; 79 } 80 } 81 return false; 82 } 83 84 this.checkExistDeleted = function(item) { 85 for(var i = 0; i < this.favorisDeleted.length; ++i) { 86 if(this.favorisDeleted[i].getInsee() == item.getInsee() && this.favorisDeleted[i].getPoi().type == item.getPoi().type) { 87 return true; 88 } 89 } 90 return false; 91 } 92 93 /* --------------------------Write in localStorage and spread events-------------------------- */ 94 this.updateFavorisStorage = function() { 95 var fav = []; 96 for(var i = 0; i < this.favoris.length; ++i) { 97 fav.push(this.favoris[i].getPoi()); 98 } 99 100 this.setItemRewrited('favoris', JSON.stringify(fav)); 101 } 102 103 this.updateFavorisDeletedStorage = function() { 104 var fav = []; 105 for(var i = 0; i < this.favorisDeleted.length; ++i) { 106 fav.push(this.favorisDeleted[i].getPoi()); 107 } 108 109 this.setItemRewritedDel('favorisDel', JSON.stringify(fav)); 110 } 111 112 this.setItemRewrited = function(_key, _val) { 113 localStorage.setItem(_key, _val); 114 var event = this.createNewEvent('favoriteUpd'); 115 document.dispatchEvent(event); 116 } 117 118 this.setItemRewritedDel = function(_key, _val) { 119 localStorage.setItem(_key, _val); 120 var event = this.createNewEvent('favoriteDelUpd'); 121 document.dispatchEvent(event); 122 } 123 124 this.setItemRewrited2 = function(_key, _val) { 125 localStorage.setItem(_key, _val); 126 var event = this.createNewEvent('favoriteUpd2'); 127 document.dispatchEvent(event); 128 } 129 130 this.setItemRewritedDel2 = function(_key, _val) { 131 localStorage.setItem(_key, _val); 132 var event = this.createNewEvent('favoriteDelUpd2'); 133 document.dispatchEvent(event); 134 } 135 this.createNewEvent = function(eventName) { 136 var event; 137 if (typeof (Event) === 'function') { 138 event = new Event(eventName); 139 } else { 140 event = document.createEvent('Event'); 141 event.initEvent(eventName, true, true); 142 } 143 return event; 144 } 145}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.