PageSourceSearch

https://meteofrance.re/modules/custom/mf_barre_favoris/js/src/favoris-list.js?v=1.x

js meteofrance.re collected 2026-10-02 07:46:46 UTC 4,257 bytes, 145 lines download raw bytes

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.