Code coverage report for Model/PagesModel/PagesList.js

Statements: 100% (28 / 28)      Branches: 78.57% (11 / 14)      Functions: 100% (5 / 5)      Lines: 100% (28 / 28)      Ignored: none     

All files » Model/PagesModel/ » PagesList.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79                                            1       11     1   6 2 2 6 6 6 2     6 4 4               11 3 3 1 1     3 2 2           11 1 1 1         11 6     11  
/*jshint node: true */
'use strict';
 
/*
* Name :  PagesList.js
* Module : FrontEnd::Model::PagesModel
* Location : /frontend/app/Model/PagesModel
*
* History :
* Version       Date        Programmer                  Description
* =================================================================================================
* 1.0.0         2015-05-19  Maria Giovanna Chinellato	Tested
*
* 0.1.1         2015-05-18  Maria Giovanna Chinellato	Fix attributes
*
* 0.1.0         2015-05-12  Maria Giovanna Chinellato   Add all attributes and all methods
*
* 0.0.1         2015-05-12  Maria Giovanna Chinellato   Initial code      
* =================================================================================================
*
*/
 
angular.module('norris-nrti')
.factory('PagesList', ['PageFactory', function(PageFactory){
 
	// campi dati di Pageslist
	var pagesList = [];
 
	// Costruttore di PagesList
	function PagesList(info) {
 
		if (info !== undefined) { // controlla che il JSON 'info' sia defito
			Eif (info.data !== undefined) { // controlla che il campo 'data' del JSON sia definito
				for (var i=0; i<info.data.length; i++){ // scorre l'array di pagine da inserire della lista
					var count = 0;
					for (var j=0; j<pagesList.length; j++) { // conta le pagine presenti in lista con lo stesso id della nuova pagina
						if (pagesList[j].id === info.data[i].properties.ID){
							count++;
						}
					}
	    			if(count === 0) { // controlla che non siano presenti pagine con lo stesso id della nuova pagina 
	    				var page = PageFactory.build(info.data[i]); // crea una nuova pagina
	       				pagesList.push({ 'id' : info.data[i].properties.ID, 'page' : page}); // inserisce la pagina nella lista delle pagine
					} 
					// error
				}
			}
		}
	}
	
	PagesList.prototype.addPage = function(page) {
		var count = 0;
		for (var j=0; j<pagesList.length; j++) {
			Eif (pagesList[j].id === page.properties.ID){
				count++;
			}
		}
		if (count === 0){
			var newPage = PageFactory.build(page); // crea una nuova pagina
			pagesList.push({ 'id' : page.properties.ID, 'page' : newPage}); // aggiunge la nuova pagina alla lista
		}
		// error
	};
 
	// chiama la funzione updatePage della pagina che necessità di aggiornamenti
	PagesList.prototype.updatePage = function(info) {
		for (var j=0; j<pagesList.length; j++) {
			Eif (pagesList[j].id === info.ID){
				pagesList[j].page.updateParameters(info);
			}
		}
	};
 
	PagesList.prototype.getPagesList = function(){
		return pagesList; // ritorna la lista della pagine
	};
 
	return( PagesList );
}]);