Code coverage report for Controller/PagesControllers/PageController.js

Statements: 67.5% (27 / 40)      Branches: 37.5% (3 / 8)      Functions: 66.67% (4 / 6)      Lines: 67.5% (27 / 40)      Ignored: none     

All files » Controller/PagesControllers/ » PageController.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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106                                    1       3 3                     3   3     3 1 1 1       3 1               1                             1 1 1 1 1 1       1       1             1     3 3 3     3 3 3          
/*jshint node: true */
'use strict';
 
/*
* Name :  PageController.js
* Module : FrontEnd::Controller::PagesController
* Location : /frontend/app/Controller/PagesController
*
* History :
* Version       Date        Programmer                  Description
* =================================================================================================
* 0.1.0         2015-05-31  Francesco Rossetto		   Add all attributes and all methods
*
* 0.0.1         2015-05-31  Francesco Rossetto		   Initial code      
* =================================================================================================
*
*/
 
angular.module('norris-nrti')
.controller('PageController', ['$scope', '$location', '$routeParams', 'PagesList', 'PageFactory', 'SocketServicesFactory', function($scope, $location, $routeParams, PagesList, PageFactory, SocketServicesFactory){
 
	//var page = PagesList.prototype.getPagesList()[$routeParams.pageId].page; // recupera la pagina corrente
	var page = PageFactory.build();
	$scope.page = page;
	/*$scope.previous = false;
	$scope.next = false;
	var a = $routeParams.pageId - 1;
	if (PagesList.prototype.getPagesList()[parseInt($routeParams.pageId) - 1] !== undefined) {
		$scope.previous = true; // se è presente una pagina precedente mette il flag a true
	}
	var b = $routeParams.pageId + 1;
	if (PagesList.prototype.getPagesList()[parseInt($routeParams.pageId) + 1] !== undefined) {
		$scope.next = true; // se è presente una pagina successiva mette il flag a true
	}*/
	var url = $scope.page.getUrl(); // recupera l'url a cui deve connettersi il socket
 
	var socket;
 
	// funzione che connette il socket all'url e chiama la funzione listenOnEvent
	this.socketConnection = function(){
		socket = SocketServicesFactory.build($scope.url);
		$scope.socket = socket;
		this.listenOnEvents();
	};
 
	// funzione che mette in ascolto il socket su alcuni eventi
	this.listenOnEvents = function(){
		socket.on('configPage', function(info){ // ascolta sull'evento 'configPage' (ricevuto come risposta alla connessione)
			$scope.page.updateParameters(info.properties); // modifica i campi di default con i valori esatti della pagina
			$scope.page.initializeData(info.data); // inizializza i dati della pagina (aggiunge i grafici presenti in essa)
			$scope.graphs = matrix($scope.page.getGraphsList());
		});
		/*socket.on('updatePageProp', function(info){ // ascolta sull'evento 'updatePageProp'
			$scope.page.updateParameters(info); // aggiorna le proprietà della pagina
		});*/
		socket.on('insertGraph', function(info){ // ascolta sull'evento 'insertGraph'
			$scope.page.addGraph(info); // inserisce un nuovo grafico alla lista dei grafici presente in $scope.page
			$scope.graphs = matrix($scope.page.getGraphsList());
		});
	};
 
	/*this.previous = function(id){
		$location.path('/page/' + id);
	};
 
	this.next = function(id){
		$location.path('/page/' + id);
	};*/
 
	// funzione di utilità che dispone i grafici in un array per la successiva visualizzazione
	function matrix(list) {
		var array = [];
		var count = 0;
		var graphsPerCol = $scope.page.getGraphsPerCol();
		var graphsPerRow = $scope.page.getGraphsPerRow();
		Iif (graphsPerCol === -1){
			graphsPerRow = 1;
			graphsPerCol = list.length;
		}
		Iif (graphsPerRow === -1){
			graphsPerRow = list.length;
			graphsPerCol = 1;
		}
		for (var i=0;count<list.length && i<graphsPerCol; i++) {
			array[i] = [];
			for (var j=0;count<list.length && j<graphsPerRow; j++) {
				array[i].push(list[graphsPerRow*i+j]);
				count++;
			}
		}
		return array;
	}
	// variabili e funzioni a disposizione dei test
	$scope.socket = socket;
	$scope.url = url;
	this.matrix = matrix;
 
	// vengono rese disponibili alcune funzioni sullo $scope
	$scope.graphs = [];
	$scope.socketConnection = this.socketConnection;
	$scope.listenOnEvents = this.listenOnEvents;
 
	//$scope.previous = this.previous;
	//$scope.next = this.next;
	
}]);