1 define([], function (){
6 * Base list object for extending history and collection object
8 * @param ParsingJsonService
10 function BaseListModel($filter, ParsingJsonService) {
15 * General list of all objects to simply treat them
20 * Simple list of selected items from self.list
23 self.selectedItems = [];
25 self.addFromJSON = addFromJSON;
26 self.addItemToList = addItemToList;
27 self.createItem = createItem;
28 self.loadListFromStorage = loadListFromStorage;
29 self.saveToStorage = saveToStorage;
30 self.setName = setName;
31 self.selectAllFilteredItems = selectAllFilteredItems;
32 self.deselectAllFilteredItems = deselectAllFilteredItems;
33 self.getSelectedItems = getSelectedItems;
34 self.deselectAllItems = deselectAllItems;
36 function deselectAllItems() {
37 self.list.forEach(function (item) {
38 item.selected = false;
40 self.selectedItems = [];
46 function getSelectedItems(filterFunc) {
48 return $filter('filter')(self.selectedItems, filterFunc);
51 return self.selectedItems;
56 * Mark all items matching filter as selected
57 * Toggle only items matching filter, other items let be as they are
58 * @param filterFunc function returning boolean
60 function selectAllFilteredItems(filterFunc) {
61 $filter('filter')(self.list, filterFunc).forEach(function (item) {
63 if (self.selectedItems.indexOf(item) === -1){
64 self.selectedItems.push(item);
70 * Mark all requests matching filter as deselected
71 * Toggle only requests matching filter, other requests let be as they are
74 function deselectAllFilteredItems(filterFunc) {
75 $filter('filter')(self.list, filterFunc).forEach(function (item) {
76 item.selected = false;
77 self.selectedItems.splice(self.selectedItems.indexOf(item), 1);
81 function setName(name) {
85 function createItem(elem) {
89 function addItemToList(){}
92 * Loading from localStorage
94 function loadListFromStorage(){
95 var storageList = localStorage.getItem(self.name);
99 ParsingJsonService.parseJson(storageList).map(function (elem) {
100 return self.createItem(elem);
101 }).forEach(function (elem) {
102 self.addItemToList(elem);
108 * Saving to local storage
110 function saveToStorage(){
112 localStorage.setItem(self.name, JSON.stringify(self.toJSON()));
118 * Add each request from json
121 function addFromJSON(json) {
122 json.forEach(function (elem) {
123 var item = self.createItem(elem);
124 self.addItemToList(item);
129 return BaseListModel;