Utente:MauroBot/BotCancellazioni/gui.js/sandbox.js

Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.


Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.

'use strict';

var DelBot = DelBot     || {};
DelBot.gui = DelBot.gui || {};

DelBot.gui.interval = undefined;
DelBot.gui.timeout = 0;

/**
 * La carica i pulsanti dell'interfaccia grafica
 *
 */
DelBot.gui.start = function () {
	var form_data = '<select id="giorno" name="giorno" style="height:25px; vertical-align:top; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;">  <option value="1">1</option><option value="2">2</option>  <option value="3">3</option>  <option value="4">4</option>  <option value="5">5</option>  <option value="6">6</option>  <option value="7">7</option>  <option value="8">8</option>  <option value="9">9</option>  <option value="10">10</option>  <option value="11">11</option>  <option value="12">12</option>  <option value="13">13</option>  <option value="14">14</option>  <option value="15">15</option>  <option value="16">16</option>  <option value="17">17</option>  <option value="18">18</option>  <option value="19">19</option>  <option value="20">20</option>  <option value="21">21</option>  <option value="22">22</option>  <option value="23">23</option>  <option value="24">24</option>  <option value="25">25</option>  <option value="26">26</option>  <option value="27">27</option>  <option value="28">28</option>  <option value="29">29</option>  <option value="30">30</option>  <option value="31">31</option></select>';
	form_data += '<select id="mese" name="mese" style="margin-left:2px; height:25px; vertical-align:top; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;">  <option value="1">gennaio</option>  <option value="2">febbraio</option>  <option value="3">marzo</option>  <option value="4">aprile</option>  <option value="5">maggio</option>  <option value="6">giugno</option>  <option value="7">luglio</option>  <option value="8">agosto</option>  <option value="9">settembre</option>  <option value="10">ottobre</option>  <option value="11">novembre</option>  <option value="12">dicembre</option></select>';
	form_data += '<input type="text" id="anno" name="anno" id="anno" size="4"  style="margin-left:2px; height:25px; vertical-align:top; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;" />';
	form_data += '<label style="margin-left:100px;">Giorni:</label><input type="text" name="giorni" id="giorni" size="2" style="margin-left:2px; height:25px; vertical-align:top; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;" />';

	var form_runBot = ' <button type="button" id="RunBot_button" onclick="DelBot.gui.run(\'letturaPDC\')">Aggiorna Log e Tabelle</button>';
	var form_runBotCat = ' <button type="button" id="RunBotCat_button" onclick="DelBot.gui.run(\'aggiornaCategorie\')">Aggiorna categorie</button>';
	var form_log = '<textarea id="botlog" name="botlog" rows="50" cols="75" disabled="disabled" style="width:900px;">Pronto</textarea>';

	$("#form-data").html( form_data );
	var d = new Date();
	$('#giorno').val( d.getDate() );
	$('#mese').val( d.getMonth() + 1 );
	$('#anno').val( d.getFullYear() );
	$('#giorni').val( 1 );

	$('#form-RunBot').html( form_runBot );
	$('#form-RunBotCat').html( form_runBotCat );
	$('#form-log').html( form_log );

	$('#botPanel').show();
};

/**
 * Richiamata alla pressione dei pulsanti nella GUI
 *
 * @param tipo {string} e.g. 'letturaPDC'
 */
DelBot.gui.run = function ( tipo ) {
	DelBot.gui.disable();

	var r = [];
	var appStatusRouter = [];

	// Validazione data e numero giorni
	var d = DelBot.gui.dateValidation();
	if( ! d ) {
		alert( 'La data selezionata non è valida!' );
		DelBot.gui.enable();
		return;
	}

	var giorni = parseInt( $( '#giorni' ).val() );
	if( isNaN( giorni ) ) {
		alert( 'Il valore inserito nel campo "Giorni" non è valido!' );
		DelBot.gui.enable();
		return;
	} else if( giorni < 1 || giorni > 10 ) {
		alert( 'Il numero di giorni deve essere compreso tra 1 e 10' );
		DelBot.gui.enable();
		return;
	}

	switch( tipo ) {
		case 'letturaPDC':
			r['letturaPDC'] = true;
			break;
		case 'aggiornaCategorie':
			r['gestioneCategorieAnnuali'] = true;
			r['gestioneCategorieMensili'] = true;
			r['gestioneCategorieGiornaliere'] = true;
			r['leggiStatoCatInCorso'] = true;
			break;
	}

	for( key in r ) {
		if( r[key] ) {
			appStatusRouter.push( key );
		}
	}

	DelBot.messages = []; 	
	DelBot.gui.timeout = 5 * 60 + 10;
	DelBot.gui.interval = setInterval( DelBot.gui.checkTimeout, 1000 );
	DelBot.mainDeletionBot( d, giorni, appStatusRouter, 5 );
}

/**
 * Gestione del timeout dell'interfaccia grafica in caso di problemi con il bot
 */
DelBot.gui.checkTimeout = function () {
	if( 'finished' === currentAppStatus ) {
		clearInterval( DelBot.gui.interval ); 
		var messages_str = '';
		for( var i=0; i < DelBot.messages.length; i++) {
			messages_str = messages_str+messages[i]+'\n';
		}
		$( '#botlog' ).val( DelBot.messages_str );
		DelBot.gui.enable();
	} else if( 0 === DelBot.gui.timeout ) {
		$( '#botlog' ).val( 'Interruzione del bot...' );
	} else {
		DelBot.gui.timeout--;
		var min = Math.floor( DelBot.gui.timeout / 60 );
		if( min < 10 ) {
			min = '0' + min ;
		}
		var s = DelBot.gui.timeout % 60;
		if( s < 10 ) {
			s = '0' + s;
		}
		$( '#botlog' ).val( 'Esecuzione in corso (timeout: '+min+':'+s+')' );
	}
};

/**
 * Attiva i controlli dell'interfaccia utente
 */
DelBot.gui.enable = function () {
	$( '#giorno' )          .removeProp( 'disabled' );
	$( '#mese' )            .removeProp( 'disabled' );
	$( '#anno' )            .removeProp( 'disabled' );
	$( '#giorni' )          .removeProp( 'disabled' );
	$( '#RunBot_button' )   .removeProp( 'disabled' );
	$( '#RunBotCat_button' ).removeProp( 'disabled' );
};

/**
 * Disattiva i controlli dell'interfaccia utente
 */
DelBot.gui.disable = function () {
	$( '#giorno' )          .prop( 'disabled', true );
	$( '#mese' )            .prop( 'disabled', true );
	$( '#anno' )            .prop( 'disabled', true );
	$( '#giorni' )          .prop( 'disabled', true );
	$( '#RunBot_button' )   .prop( 'disabled', true );
	$( '#RunBotCat_button' ).prop( 'disabled', true );
};

/*=================================================================================================
 * 
 * Funzione DelBot.gui.dateValidation()
 * 
 * La funzione controlla la validità della data
 *
 * ================================================================================================
 */
DelBot.gui.dateValidation = function () {
	var dd = parseInt( $( '#giorno' ).val() );
	var mm = parseInt( $( '#mese' )  .val() );
	var yy = parseInt( $( '#anno' )  .val() );
	var d = new Date( yy, mm - 1, dd );

	if( d.getDate() === dd && d.getMonth() === mm - 1 && d.getFullYear() === yy ) {
		if( yy < 2012 ) {
			alert( 'La data deve essere successiva al 01/01/2012' );
			return false;
		}
		return d;
	}
	alert('La data inserita non è valida!');
	return false;
};