Commit c729968d by Matteo

Ultima release, funzionante su Android

parent 6bcfc6e3
...@@ -49,6 +49,12 @@ ...@@ -49,6 +49,12 @@
<allow-intent href="itms:*" /> <allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" /> <allow-intent href="itms-apps:*" />
<allow-navigation href="*" /> <allow-navigation href="*" />
<config-file parent="NSAppTransportSecurity" platform="ios" target="*-Info.plist">
<dict>
<key>NSAllowsArbitraryLoads</key>
<true />
</dict>
</config-file>
<icon height="57" src="resources/ios/icon/icon.png" width="57" /> <icon height="57" src="resources/ios/icon/icon.png" width="57" />
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" /> <icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" /> <icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
......
...@@ -2,10 +2,10 @@ import { NgModule } from '@angular/core'; ...@@ -2,10 +2,10 @@ import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
const routes: Routes = [ const routes: Routes = [
{ path: '', loadChildren: './pages/home/home.module#HomePageModule' }, { path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: 'home', loadChildren: './pages/home/home.module#HomePageModule' },
{ path: 'login', loadChildren: './auth/pages/login/login.module#LoginPageModule' }, { path: 'login', loadChildren: './auth/pages/login/login.module#LoginPageModule' },
{ path: 'reset', loadChildren: './auth/pages/reset/reset.module#ResetPageModule' }, { path: 'reset', loadChildren: './auth/pages/reset/reset.module#ResetPageModule' },
{ path: 'documenti', loadChildren: './pages/documenti/documenti.module#DocumentiPageModule'},
{ path: 'businesscall', loadChildren: './pages/businesscall/businesscall.module#BusinesscallPageModule' }, { path: 'businesscall', loadChildren: './pages/businesscall/businesscall.module#BusinesscallPageModule' },
{ path: 'privacy', loadChildren: './pages/privacy/privacy.module#PrivacyPageModule' } { path: 'privacy', loadChildren: './pages/privacy/privacy.module#PrivacyPageModule' }
......
...@@ -30,8 +30,8 @@ export class AppComponent { ...@@ -30,8 +30,8 @@ export class AppComponent {
async initializeApp() { async initializeApp() {
this.utilService.loadLingua(); this.utilService.loadLingua();
var state = await this.authService.syncIsLoggedIn(); var state = await this.authService.syncIsLoggedIn();
if (!state) { if (state) {
this.router.navigate(['login']); this.router.navigate(['home']);
} }
this.platform.ready().then(() => { this.platform.ready().then(() => {
this.statusBar.styleDefault(); this.statusBar.styleDefault();
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</ion-item> </ion-item>
</div> </div>
<div padding> <div padding>
<ion-button size="large" type="submit" [disabled]="form.invalid" expand="block">{{ 'change_password' | translate }}</ion-button> <ion-button size="large" type="submit" [disabled]="form.invalid" expand="block" class="form-button giallo">{{ 'change_password' | translate }}</ion-button>
</div> </div>
</ion-col> </ion-col>
</ion-row> </ion-row>
......
...@@ -45,9 +45,8 @@ export class ChangePwdPage implements OnInit { ...@@ -45,9 +45,8 @@ export class ChangePwdPage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di cambio password";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di cambio password", ["OK"]);
}); });
}); });
} }
......
...@@ -60,15 +60,14 @@ export class LoginPage implements OnInit { ...@@ -60,15 +60,14 @@ export class LoginPage implements OnInit {
} }
else else
{ {
this.router.navigateByUrl(''); this.router.navigateByUrl('home');
this.events.publish('functionCall:startup', null); this.events.publish('functionCall:startup', null);
} }
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di login";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di login", ["OK"]);
} }
); );
} }
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</ion-item> </ion-item>
</div> </div>
<div padding> <div padding>
<ion-button size="large" type="submit" [disabled]="form.invalid" expand="block">{{ 'reset_pwd' | translate }}</ion-button> <ion-button size="large" type="submit" [disabled]="form.invalid" expand="block" class="form-button giallo">{{ 'reset_pwd' | translate }}</ion-button>
</div> </div>
</ion-col> </ion-col>
</ion-row> </ion-row>
......
...@@ -38,9 +38,8 @@ export class ResetPage implements OnInit { ...@@ -38,9 +38,8 @@ export class ResetPage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di reset password";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di reset password", ["OK"]);
}); });
} }
......
...@@ -6,13 +6,13 @@ ...@@ -6,13 +6,13 @@
<ion-content> <ion-content>
<div class="contenitore-home"> <div class="contenitore-home">
<div class="central-doc"> <div class="central-doc grigio">
<ion-grid> <ion-grid>
<ion-row class="search-date"> <ion-row class="search-date">
<div *ngIf="platform.is('desktop')"> <div *ngIf="platform.is('desktop')">
<strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} <input type="date" name="calendar" [(ngModel)]="date1" title="{{ 'seleziona_data' | translate }}"> {{ 'a' | translate }} <input type="date" name="calendar" [(ngModel)]="date2" title="{{ 'seleziona_data' | translate }}"> <strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} <input type="date" name="calendar" [(ngModel)]="date1" title="{{ 'seleziona_data' | translate }}"> {{ 'a' | translate }} <input type="date" name="calendar" [(ngModel)]="date2" title="{{ 'seleziona_data' | translate }}">
</div> </div>
<div class="float-date" *ngIf="!platform.is('desktop')"> <ion-row class="float-date" *ngIf="!platform.is('desktop')">
<span class="date-text"><strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} </span> <span class="date-text"><strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} </span>
<ion-icon class="element-date date-icon" name="calendar" (click)="setDateDa()"></ion-icon> <ion-icon class="element-date date-icon" name="calendar" (click)="setDateDa()"></ion-icon>
<div class="element-date item-no-border date-text"> <div class="element-date item-no-border date-text">
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
<div floating class="element-date item-no-border date-text"> <div floating class="element-date item-no-border date-text">
{{date2}} {{date2}}
</div> </div>
</div> </ion-row>
</ion-row> </ion-row>
<ion-row class="search-date"> <ion-row class="search-date">
<span class="riga"><strong>{{ 'cerca' | translate }}</strong> {{ 'titolo' | translate }} <input type="text" name="calendar" [(ngModel)]="titolo" title="{{ 'ricerca_titolo' | translate }}"> <span class="riga"><strong>{{ 'cerca' | translate }}</strong> {{ 'titolo' | translate }} <input type="text" name="calendar" [(ngModel)]="titolo" title="{{ 'ricerca_titolo' | translate }}" class="cerca-titolo-doc">
<ion-button (click)="cercaDocumenti()" class="search-arrow" title="{{ 'cerca_documenti' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward" title="{{ 'cerca_documenti' | translate }}"></ion-icon></ion-button></span> <ion-button (click)="cercaDocumenti()" class="search-arrow" title="{{ 'cerca_documenti' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward" title="{{ 'cerca_documenti' | translate }}"></ion-icon></ion-button></span>
</ion-row> </ion-row>
<ion-row class="search-date" id="buttonsDoc" style="display:none"> <ion-row class="search-date" id="buttonsDoc" style="display:none">
......
...@@ -159,9 +159,8 @@ export class DocumentiPage implements OnInit { ...@@ -159,9 +159,8 @@ export class DocumentiPage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la richiesta di documenti";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la richiesta dei documenti", ["OK"]);
}); });
} }
......
...@@ -75,15 +75,15 @@ ...@@ -75,15 +75,15 @@
</ion-buttons> </ion-buttons>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>
<ion-content class="menu-content"> <ion-content class="menu-content label-border">
<ion-item class="item-border-grey"> <ion-item class="item-border-grey">
<ion-label class="label-border">{{ 'azienda_selezionata' | translate }}</ion-label> <ion-label>{{ 'azienda_selezionata' | translate }}</ion-label>
<ion-select value="clienteSel" [(ngModel)]="clienteSel" (ionChange)="cambiaCliente()" interface="popover" [placeholder]="clienteSelezionato ? clienteSelezionato.denominazione : 'Tap to select..'" title="Seleziona un cliente"> <ion-select value="clienteSel" [(ngModel)]="clienteSel" (ionChange)="cambiaCliente()" interface="popover" [placeholder]="clienteSelezionato ? clienteSelezionato.denominazione : 'Tap to select..'" title="Seleziona un cliente">
<ion-select-option *ngFor="let cliente of clienti; let i=index;" value="{{cliente.id}}">{{cliente.denominazione}}</ion-select-option> <ion-select-option *ngFor="let cliente of clienti; let i=index;" value="{{cliente.id}}">{{cliente.denominazione}}</ion-select-option>
</ion-select> </ion-select>
</ion-item> </ion-item>
<ion-item class="item-border-grey"> <ion-item class="item-border-grey label-border">
<ion-label class="label-border">{{ 'lingua_selezionata' | translate }}</ion-label> <ion-label>{{ 'lingua_selezionata' | translate }}</ion-label>
<ion-select value="linguaSel" [(ngModel)]="linguaSel" (ionChange)="cambiaLingua()" interface="popover" title="{{ 'seleziona_lingua' | translate }}"> <ion-select value="linguaSel" [(ngModel)]="linguaSel" (ionChange)="cambiaLingua()" interface="popover" title="{{ 'seleziona_lingua' | translate }}">
<ion-select-option *ngFor="let lingua of lingue; let i=index;" value="{{lingua.key}}">{{lingua.value}}</ion-select-option> <ion-select-option *ngFor="let lingua of lingue; let i=index;" value="{{lingua.key}}">{{lingua.value}}</ion-select-option>
</ion-select> </ion-select>
......
...@@ -4,7 +4,7 @@ import { HomePage } from './home.page'; ...@@ -4,7 +4,7 @@ import { HomePage } from './home.page';
const routes: Routes = [ const routes: Routes = [
{ {
path: 'home', path: '',
component: HomePage, component: HomePage,
children: [ children: [
{ {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
{{ 'documenti' | translate }} {{ 'documenti' | translate }}
</div> </div>
</div> </div>
<div class="box" tappable> <div class="dispari box" tappable>
<div class="icon" tappable> <div class="icon" tappable>
<img src="assets/img/chiedo-parere.svg" (click)="apriPagina('pareri')" tappable/> <img src="assets/img/chiedo-parere.svg" (click)="apriPagina('pareri')" tappable/>
</div> </div>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
{{ 'interviste' | translate }} {{ 'interviste' | translate }}
</div> </div>
</div> </div>
<div class="box" tappable> <div class="dispari box" tappable>
<div class="icon" tappable> <div class="icon" tappable>
<img src="assets/img/segreteria.svg" (click)="apriPagina('segreteria')" tappable/> <img src="assets/img/segreteria.svg" (click)="apriPagina('segreteria')" tappable/>
</div> </div>
......
...@@ -27,10 +27,10 @@ ...@@ -27,10 +27,10 @@
<div *ngSwitchCase="'lista'"> <div *ngSwitchCase="'lista'">
<ion-grid> <ion-grid>
<ion-row class="search-date"> <ion-row class="search-date">
<div *ngIf="platform.is('desktop')"> <div *ngIf="platform.is('desktop')" class="grigio">
<strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} <input type="date" name="calendar" [(ngModel)]="date1" title="{{ 'seleziona_data' | translate }}"> {{ 'a' | translate }} <input type="date" name="calendar" [(ngModel)]="date2" title="{{ 'seleziona_data' | translate }}"> <strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} <input type="date" name="calendar" [(ngModel)]="date1" title="{{ 'seleziona_data' | translate }}"> {{ 'a' | translate }} <input type="date" name="calendar" [(ngModel)]="date2" title="{{ 'seleziona_data' | translate }}">
</div> </div>
<div class="float-date" *ngIf="!platform.is('desktop')"> <ion-row class="float-date" *ngIf="!platform.is('desktop')" class="grigio">
<span class="date-text"><strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} </span> <span class="date-text"><strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} </span>
<ion-icon class="element-date date-icon" name="calendar" (click)="setDateDa()"></ion-icon> <ion-icon class="element-date date-icon" name="calendar" (click)="setDateDa()"></ion-icon>
<div class="element-date item-no-border date-text"> <div class="element-date item-no-border date-text">
...@@ -41,24 +41,27 @@ ...@@ -41,24 +41,27 @@
<div floating class="element-date item-no-border date-text"> <div floating class="element-date item-no-border date-text">
{{date2}} {{date2}}
</div> </div>
</ion-row>
<div>
<input *ngIf="!platform.is('desktop')" type="text" name="calendar" [(ngModel)]="titolo" placeholder="Cerca titolo" title="{{ 'cerca' | translate }}" class="cerca-titolo-cel">
<input *ngIf="platform.is('desktop')" type="text" name="calendar" [(ngModel)]="titolo" placeholder="Cerca titolo" title="{{ 'cerca' | translate }}" class="cerca-titolo">
</div> </div>
<div><input type="text" name="calendar" [(ngModel)]="titolo" placeholder="Cerca titolo" title="{{ 'cerca' | translate }}" class="cerca-titolo"></div>
</ion-row> </ion-row>
<ion-row class="date-div"> <ion-row class="date-div">
<div class="search-date float-date riga"> <div class="search-date float-date riga">
<ion-checkbox name="privacy" [(ngModel)]="archiviati" class="check"> </ion-checkbox> <ion-checkbox name="privacy" [(ngModel)]="archiviati" class="check"> </ion-checkbox>
<ion-label><span class="text">{{ 'visualizza_archiviati' | translate }}</span></ion-label> <ion-label class="archivio-text"><span class="text">{{ 'visualizza_archiviati' | translate }}</span></ion-label>
<ion-button (click)="caricaRichieste()" class="search-arrow" title="{{ 'cerca' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward" title="{{ 'cerca' | translate }}"></ion-icon></ion-button> <ion-button (click)="caricaRichieste()" class="search-arrow" title="{{ 'cerca' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward" title="{{ 'cerca' | translate }}"></ion-icon></ion-button>
<div class="clr"></div> <div class="clr"></div>
<span class="item-no-border riga" id="buttonsInterviste" style="display:none"> <span class="item-no-border riga" id="buttonsInterviste" style="display:none">
<div *ngIf="!archiviati" class="text"> <div *ngIf="!archiviati" class="text">
{{ 'archivia_interviste' | translate }} {{ 'archivia_interviste' | translate }}
<ion-button (click)="archiviaInterviste(true)" class="search-arrow" title="{{ 'archivia_interviste' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="archive" title="{{ 'archivia_interviste' | translate }}"></ion-icon></ion-button> <ion-button (click)="archiviaInterviste(true)" class="search-arrow" title="{{ 'archivia_interviste' | translate }}"><ion-icon class="button-icon-archivia" slot="icon-only" name="archive" title="{{ 'archivia_interviste' | translate }}"></ion-icon></ion-button>
</div> </div>
<div *ngIf="archiviati" class="text"> <div *ngIf="archiviati" class="text">
{{ 'undo_archivio_interviste' | translate }} {{ 'undo_archivio_interviste' | translate }}
<ion-button (click)="archiviaInterviste(false)" class="search-arrow" title="{{ 'riattiva_interviste' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="undo" title="{{ 'riattiva_interviste' | translate }}"></ion-icon></ion-button> <ion-button (click)="archiviaInterviste(false)" class="search-arrow" title="{{ 'riattiva_interviste' | translate }}"><ion-icon class="button-icon-archivia" slot="icon-only" name="undo" title="{{ 'riattiva_interviste' | translate }}"></ion-icon></ion-button>
</div> </div>
</span> </span>
</div> </div>
...@@ -79,7 +82,7 @@ ...@@ -79,7 +82,7 @@
</div> </div>
</div>--> </div>-->
<div class="row-download-special"> <div class="row-download-special">
<div class="richieste-button group-icon2"> <div class="richieste-button group-icon3">
<a class="select" (click)="loadTopics('after')" tappable title="{{ 'aggiorna' | translate }}"> <a class="select" (click)="loadTopics('after')" tappable title="{{ 'aggiorna' | translate }}">
<ion-icon name="refresh-circle"></ion-icon> <ion-icon name="refresh-circle"></ion-icon>
</a> </a>
...@@ -114,10 +117,10 @@ ...@@ -114,10 +117,10 @@
<div *ngSwitchCase="'dettaglio'"> <div *ngSwitchCase="'dettaglio'">
<ion-grid> <ion-grid>
<ion-row class="search-date"> <ion-row class="search-date">
<div *ngIf="platform.is('desktop')"> <div *ngIf="platform.is('desktop')" class="grigio riga">
<strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} <input type="date" name="calendar" [(ngModel)]="date1" title="{{ 'seleziona_data' | translate }}"> {{ 'a' | translate }} <input type="date" name="calendar" [(ngModel)]="date2" title="{{ 'seleziona_data' | translate }}"> <ion-button (click)="caricaTopic()" class="search-arrow" title="Cerca interventi"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward"></ion-icon></ion-button> <strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} <input type="date" name="calendar" [(ngModel)]="date1" title="{{ 'seleziona_data' | translate }}"> {{ 'a' | translate }} <input type="date" name="calendar" [(ngModel)]="date2" title="{{ 'seleziona_data' | translate }}"> <ion-button (click)="caricaTopic()" class="search-arrow" title="Cerca interventi"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward"></ion-icon></ion-button>
</div> </div>
<div class="float-date" *ngIf="!platform.is('desktop')"> <ion-row class="float-date" *ngIf="!platform.is('desktop')" class="grigio riga" justify-content-center>
<span class="date-text"><strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} </span> <span class="date-text"><strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} </span>
<ion-icon class="element-date date-icon" name="calendar" (click)="setDateDa()"></ion-icon> <ion-icon class="element-date date-icon" name="calendar" (click)="setDateDa()"></ion-icon>
<div class="element-date item-no-border date-text"> <div class="element-date item-no-border date-text">
...@@ -129,7 +132,7 @@ ...@@ -129,7 +132,7 @@
{{date2}} {{date2}}
</div> </div>
<ion-button (click)="caricaTopic()" class="search-arrow"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward"></ion-icon></ion-button> <ion-button (click)="caricaTopic()" class="search-arrow"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward"></ion-icon></ion-button>
</div> </ion-row>
</ion-row> </ion-row>
<div class="back"> <div class="back">
<a (click)="apriLista()" tappable> <a (click)="apriLista()" tappable>
...@@ -177,10 +180,10 @@ ...@@ -177,10 +180,10 @@
</ion-item> </ion-item>
</div> </div>
<div class="send"> <div class="send">
<ion-button type="submit" size="large" [disabled]="form.invalid" expand="block" color="#fcc73d">{{ 'invia' | translate }}</ion-button> <ion-button type="submit" size="large" [disabled]="form.invalid" expand="block" color="#fcc73d" class="form-button">{{ 'invia' | translate }}</ion-button>
</div> </div>
<div class="undo"> <div class="undo">
<ion-button size="large" expand="block" (click)="apriLista()">{{ 'annulla' | translate }}</ion-button> <ion-button size="large" expand="block" (click)="apriLista()" class="form-button">{{ 'annulla' | translate }}</ion-button>
</div> </div>
</form> </form>
</div> </div>
...@@ -195,11 +198,11 @@ ...@@ -195,11 +198,11 @@
<ion-grid> <ion-grid>
<ion-row> <ion-row>
<ion-col col-10> <ion-col size="10">
<ion-input class="input-intervento" id= "message" type="text" placeholder="{{ 'digita_msg' | translate }}" name="message" [(ngModel)]="message"></ion-input> <ion-input class="input-intervento" id= "message" type="text" placeholder="{{ 'digita_msg' | translate }}" name="message" [(ngModel)]="message"></ion-input>
</ion-col> </ion-col>
<ion-col col-2> <ion-col size="2">
<ion-icon name="paper-plane" (click)="aggiungiIntervento(form)" tappable title="{{ 'inserisci_intervento' | translate }}"></ion-icon> <ion-icon name="paper-plane" (click)="aggiungiIntervento(form)" tappable title="{{ 'inserisci_intervento' | translate }}" [style.color]="'#2b94d1'"></ion-icon>
</ion-col> </ion-col>
</ion-row> </ion-row>
......
...@@ -118,9 +118,8 @@ export class IntervistePage implements OnInit { ...@@ -118,9 +118,8 @@ export class IntervistePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di creazione nuovo Topic";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di creazione nuovo Topic", ["OK"]);
}); });
} }
...@@ -213,9 +212,8 @@ export class IntervistePage implements OnInit { ...@@ -213,9 +212,8 @@ export class IntervistePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante il caricamento del Topic";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante il caricamento del Topic", ["OK"]);
}); });
return true; return true;
} }
...@@ -253,6 +251,7 @@ export class IntervistePage implements OnInit { ...@@ -253,6 +251,7 @@ export class IntervistePage implements OnInit {
if(this.date1 != null && this.date1 != "") dataDa = this.utilService.dateFormatConvert(this.date1); if(this.date1 != null && this.date1 != "") dataDa = this.utilService.dateFormatConvert(this.date1);
if(this.date2 != null && this.date1 != "") dataA = this.utilService.dateFormatConvert(this.date2); if(this.date2 != null && this.date1 != "") dataA = this.utilService.dateFormatConvert(this.date2);
this.utilService.showLoading(); this.utilService.showLoading();
this.hideButtons();
this.idCliente = AuthService.clienteSelezionato.id; this.idCliente = AuthService.clienteSelezionato.id;
this.intervisteService.getListaTopics(AuthService.clienteSelezionato.id, dataDa, dataA, this.archiviati, titolo).subscribe((res: RichiesteResponse)=>{ this.intervisteService.getListaTopics(AuthService.clienteSelezionato.id, dataDa, dataA, this.archiviati, titolo).subscribe((res: RichiesteResponse)=>{
this.utilService.closeLoading(); this.utilService.closeLoading();
...@@ -268,9 +267,8 @@ export class IntervistePage implements OnInit { ...@@ -268,9 +267,8 @@ export class IntervistePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di apertura del Topic";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di apertura del Topic", ["OK"]);
}); });
} }
...@@ -292,9 +290,8 @@ export class IntervistePage implements OnInit { ...@@ -292,9 +290,8 @@ export class IntervistePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
//this.utilService.closeLoading(); //this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di apertura del Topic";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di apertura del Topic", ["OK"]);
}); });
if(fase == "after") this.intervisteService.getListaTopics(AuthService.clienteSelezionato.id, null, null, this.archiviati, null).subscribe((res: RichiesteResponse)=>{ if(fase == "after") this.intervisteService.getListaTopics(AuthService.clienteSelezionato.id, null, null, this.archiviati, null).subscribe((res: RichiesteResponse)=>{
//this.utilService.closeLoading(); //this.utilService.closeLoading();
...@@ -308,7 +305,8 @@ export class IntervistePage implements OnInit { ...@@ -308,7 +305,8 @@ export class IntervistePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
//this.utilService.closeLoading(); //this.utilService.closeLoading();
this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la richiesta dei Topics";
this.utilService.stampaErrore(text, error);
}); });
} }
...@@ -414,9 +412,8 @@ export class IntervistePage implements OnInit { ...@@ -414,9 +412,8 @@ export class IntervistePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di aggiunta Intervento";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di aggiunta Intervento", ["OK"]);
}); });
return true; return true;
} }
...@@ -439,9 +436,8 @@ export class IntervistePage implements OnInit { ...@@ -439,9 +436,8 @@ export class IntervistePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
//this.utilService.closeLoading(); //this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di creazione nuovo topic";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di creazione nuovo topic", ["OK"]);
}); });
} }
......
...@@ -12,13 +12,13 @@ ...@@ -12,13 +12,13 @@
<div *ngSwitchCase="'lista'"> <div *ngSwitchCase="'lista'">
<div class="search-date date-div"> <div class="search-date date-div">
<div class="float-date"> <div class="float-date">
<span class="search-date item-no-border"> <span class="search-date item-no-border grigio">
<div><strong>{{ 'cerca' | translate }}</strong> {{ 'titolo' | translate }} <input type="text" name="calendar" [(ngModel)]="titolo" title="{{ 'ricerca_titolo' | translate }}"></div> <div><strong>{{ 'cerca' | translate }}</strong> {{ 'titolo' | translate }} <input type="text" name="calendar" [(ngModel)]="titolo" title="{{ 'ricerca_titolo' | translate }}"></div>
</span> </span>
<div class="clr"></div> <div class="clr"></div>
<span class="search-date item-no-border"> <span class="search-date float-date riga item-no-border">
<ion-checkbox name="privacy" [(ngModel)]="archiviati" class="check"> </ion-checkbox> <ion-checkbox name="privacy" [(ngModel)]="archiviati" class="check"> </ion-checkbox>
<ion-label class="text">{{ 'visualizza_archiviati' | translate }}</ion-label> <ion-label class="archivio-text"><span class="text">{{ 'visualizza_archiviati' | translate }}</span></ion-label>
<ion-button (click)="cercaPareri()" class="search-arrow" title="{{ 'cerca' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward" title="{{ 'cerca' | translate }}"></ion-icon></ion-button> <ion-button (click)="cercaPareri()" class="search-arrow" title="{{ 'cerca' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="arrow-round-forward" title="{{ 'cerca' | translate }}"></ion-icon></ion-button>
</span> </span>
</div> </div>
...@@ -27,11 +27,11 @@ ...@@ -27,11 +27,11 @@
<span class="item-no-border" id="buttonsPareri" style="display:none"> <span class="item-no-border" id="buttonsPareri" style="display:none">
<div *ngIf="!archiviati" class="text"> <div *ngIf="!archiviati" class="text">
{{ 'archivia_pareri' | translate }} {{ 'archivia_pareri' | translate }}
<ion-button (click)="archiviaPareri(true)" class="search-arrow" title="{{ 'archivia_pareri' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="archive" title="{{ 'archivia_pareri' | translate }}"></ion-icon></ion-button> <ion-button (click)="archiviaPareri(true)" class="search-arrow" title="{{ 'archivia_pareri' | translate }}"><ion-icon class="button-icon-archivia" slot="icon-only" name="archive" title="{{ 'archivia_pareri' | translate }}"></ion-icon></ion-button>
</div> </div>
<div *ngIf="archiviati" class="text"> <div *ngIf="archiviati" class="text">
{{ 'undo_archivio_pareri' | translate }} {{ 'undo_archivio_pareri' | translate }}
<ion-button (click)="archiviaPareri(false)" class="search-arrow" title="{{ 'riattiva_pareri' | translate }}"><ion-icon class="button-icon" slot="icon-only" name="undo" title="{{ 'riattiva_pareri' | translate }}"></ion-icon></ion-button> <ion-button (click)="archiviaPareri(false)" class="search-arrow" title="{{ 'riattiva_pareri' | translate }}"><ion-icon class="button-icon-archivia" slot="icon-only" name="undo" title="{{ 'riattiva_pareri' | translate }}"></ion-icon></ion-button>
</div> </div>
</span> </span>
</div> </div>
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
<span class="row-results"> <span class="row-results">
<div *ngFor="let parere of pareri; trackBy: trackByDoc" class="chat-list table-row"> <div *ngFor="let parere of pareri; trackBy: trackByDoc" class="chat-list table-row">
<div class="row-download-special"> <div class="row-download-special">
<div class="richieste-button group-icon2"> <div class="richieste-button group-icon3">
<a class="select" (click)="loadPareri('initial')" tappable title="{{ 'aggiorna' | translate }}"> <a class="select" (click)="loadPareri('initial')" tappable title="{{ 'aggiorna' | translate }}">
<ion-icon name="refresh-circle"></ion-icon> <ion-icon name="refresh-circle"></ion-icon>
</a> </a>
...@@ -137,16 +137,16 @@ ...@@ -137,16 +137,16 @@
<ion-textarea name="question" placeholder="{{ 'inserire_richiesta' | translate }}" ngModel required></ion-textarea> <ion-textarea name="question" placeholder="{{ 'inserire_richiesta' | translate }}" ngModel required></ion-textarea>
</ion-item> </ion-item>
</div> </div>
<ion-item class="item-no-border"><h4>{{ 'aggiungi_allegato' | translate }}</h4></ion-item> <ion-item class="item-no-border"><h6 class="grigio font">{{ 'aggiungi_allegato' | translate }}</h6></ion-item>
<div class="clr"></div> <div class="clr"></div>
<ion-item class="item-no-border"> <ion-item class="item-no-border">
<ion-input id="file" type="file" name="file" ngModel (ionChange)="loadFile();"></ion-input> <ion-input id="file" type="file" name="file" ngModel (ionChange)="loadFile();" class="font"></ion-input>
</ion-item> </ion-item>
<div class="send"> <div class="send">
<ion-button type="submit" size="large" [disabled]="form.invalid" expand="block" color="#fcc73d">{{ 'invia' | translate }}</ion-button> <ion-button type="submit" size="large" [disabled]="form.invalid" expand="block" color="#fcc73d" class="form-button">{{ 'invia' | translate }}</ion-button>
</div> </div>
<div class="undo"> <div class="undo">
<ion-button size="large" expand="block" (click)="apriLista()">{{ 'annulla' | translate }}</ion-button> <ion-button size="large" expand="block" (click)="apriLista()" class="form-button">{{ 'annulla' | translate }}</ion-button>
</div> </div>
</form> </form>
</div> </div>
......
...@@ -91,6 +91,7 @@ export class ParerePage implements OnInit { ...@@ -91,6 +91,7 @@ export class ParerePage implements OnInit {
async loadPareri(fase) async loadPareri(fase)
{ {
this.hideButtons();
var titolo = null; var titolo = null;
this.utilService.showLoading(); this.utilService.showLoading();
this.idCliente = AuthService.clienteSelezionato.id; this.idCliente = AuthService.clienteSelezionato.id;
...@@ -108,9 +109,8 @@ export class ParerePage implements OnInit { ...@@ -108,9 +109,8 @@ export class ParerePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di richiesta Topic";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di richiesta Topic", ["OK"]);
}); });
} }
...@@ -155,9 +155,8 @@ export class ParerePage implements OnInit { ...@@ -155,9 +155,8 @@ export class ParerePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di creazione nuovo Topic";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di creazione nuovo Topic", ["OK"]);
}); });
} }
...@@ -184,9 +183,8 @@ export class ParerePage implements OnInit { ...@@ -184,9 +183,8 @@ export class ParerePage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la procedura di creazione nuovo Topic";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di creazione nuovo Topic", ["OK"]);
}); });
/* <input type="file" name="file" (change)="upload($event)" /> /* <input type="file" name="file" (change)="upload($event)" />
...@@ -245,9 +243,8 @@ upload(str:any) ...@@ -245,9 +243,8 @@ upload(str:any)
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la richiesta di limite Pareri superato";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la richiesta di limite Pareri superato", ["OK"]);
}); });
return true; return true;
} }
...@@ -313,7 +310,7 @@ upload(str:any) ...@@ -313,7 +310,7 @@ upload(str:any)
hideButtons() hideButtons()
{ {
var buttons = document.getElementById('buttonsPareri'); var buttons = document.getElementById('buttonsPareri');
buttons.setAttribute("style", "display:none"); if(buttons != null) buttons.setAttribute("style", "display:none");
} }
pareriSelezionati: Array<number>; pareriSelezionati: Array<number>;
...@@ -346,9 +343,8 @@ upload(str:any) ...@@ -346,9 +343,8 @@ upload(str:any)
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante l'archiviazione del parere";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la procedura di creazione nuovo Topic", ["OK"]);
}); });
} }
......
...@@ -26,26 +26,26 @@ ...@@ -26,26 +26,26 @@
</div>--> </div>-->
<div [ngSwitch]="segreteria" ngDefaultControl> <div [ngSwitch]="segreteria" ngDefaultControl>
<ion-item class="selection item-no-border" no-margin style="padding-left: 5px;"> <ion-row class="selection item-no-border" no-margin>
<ion-label>{{ 'seleziona_struttura' | translate }}</ion-label> <ion-label>{{ 'seleziona_struttura' | translate }}</ion-label>
<ion-select value="clienteSel" [(ngModel)]="idStrutturaSel" (ionChange)="cambiaStruttura()" no-scroll title="{{ 'seleziona_struttura' | translate }}"> <ion-select value="clienteSel" [(ngModel)]="idStrutturaSel" (ionChange)="cambiaStruttura()" no-scroll title="{{ 'seleziona_struttura' | translate }}">
<ion-icon name="arrow-forward"></ion-icon> <ion-icon name="arrow-forward"></ion-icon>
<ion-select-option *ngFor="let struttura of strutture;" value="{{struttura.id}}">{{struttura.denominazione}}</ion-select-option> <ion-select-option *ngFor="let struttura of strutture;" value="{{struttura.id}}">{{struttura.denominazione}}</ion-select-option>
</ion-select> </ion-select>
</ion-item> </ion-row>
<ion-text class="selection-done margin-top" style="padding-left: 5px;"> <ion-text class="selection-done margin-top" style="padding-left: 5px;">
{{ 'struttura_sel' | translate }} </ion-text> {{ 'struttura_sel' | translate }} </ion-text>
<div class="clr"></div> <div class="clr"></div>
<ion-text class="grigio selection-done" style="padding-left: 5px;"><strong>{{strutturaSel.denominazione}}</strong> <p class="grigio selection-done" style="padding-left: 5px;"><strong>{{strutturaSel.denominazione}}</strong>
</ion-text> </p>
<ion-list *ngSwitchCase="'fatture'" ngDefaultControl> <ion-list *ngSwitchCase="'fatture'" ngDefaultControl>
<ion-grid> <ion-grid>
<ion-row class="search-date"> <ion-row class="search-date">
<div *ngIf="platform.is('desktop')"> <div *ngIf="platform.is('desktop')" class="grigio">
<strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} <input type="date" name="calendar" [(ngModel)]="date1" title="{{ 'seleziona_data' | translate }}"> {{ 'a' | translate }} <input type="date" name="calendar" [(ngModel)]="date2" title="{{ 'seleziona_data' | translate }}"> <strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} <input type="date" name="calendar" [(ngModel)]="date1" title="{{ 'seleziona_data' | translate }}" class="grigio"> {{ 'a' | translate }} <input type="date" name="calendar" [(ngModel)]="date2" title="{{ 'seleziona_data' | translate }}" class="grigio">
</div> </div>
<div class="float-date" *ngIf="!platform.is('desktop')"> <ion-row class="float-date" *ngIf="!platform.is('desktop')" class="grigio">
<span class="date-text"><strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} </span> <span class="date-text"><strong>{{ 'cerca' | translate }}</strong> {{ 'da' | translate }} </span>
<ion-icon class="element-date date-icon" name="calendar" (click)="setDateDa()"></ion-icon> <ion-icon class="element-date date-icon" name="calendar" (click)="setDateDa()"></ion-icon>
<div class="element-date item-no-border date-text"> <div class="element-date item-no-border date-text">
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<div floating class="element-date item-no-border date-text"> <div floating class="element-date item-no-border date-text">
{{date2}} {{date2}}
</div> </div>
</div> </ion-row>
</ion-row> </ion-row>
<ion-row class="search-date"> <ion-row class="search-date">
<div class="riga"><input placeholder="{{ 'cerca_progetto' | translate }}" type="text" name="calendar" [(ngModel)]="nProgNotula" title="{{ 'cerca_progetto' | translate }}" class="cerca-notula"><input placeholder="{{ 'cerca_notula' | translate }}" type="text" name="calendar" [(ngModel)]="nNotula" title="{{ 'cerca_notula' | translate }}" class="cerca-notula"> <div class="riga"><input placeholder="{{ 'cerca_progetto' | translate }}" type="text" name="calendar" [(ngModel)]="nProgNotula" title="{{ 'cerca_progetto' | translate }}" class="cerca-notula"><input placeholder="{{ 'cerca_notula' | translate }}" type="text" name="calendar" [(ngModel)]="nNotula" title="{{ 'cerca_notula' | translate }}" class="cerca-notula">
...@@ -120,7 +120,6 @@ ...@@ -120,7 +120,6 @@
<div class="title-infra"> <div class="title-infra">
{{ 'estratto_conto' | translate }} {{ 'estratto_conto' | translate }}
</div> </div>
</ion-list> </ion-list>
<ion-list *ngSwitchCase="'solleciti'" ngDefaultControl> <ion-list *ngSwitchCase="'solleciti'" ngDefaultControl>
...@@ -140,19 +139,19 @@ ...@@ -140,19 +139,19 @@
<ion-tabs class="footer-toolbar"> <ion-tabs class="footer-toolbar">
<ion-tab-bar class="footer-tabbar" [(ngModel)]="segreteria" ngDefaultControl> <ion-tab-bar class="footer-tabbar" [(ngModel)]="segreteria" ngDefaultControl>
<ion-tab-button value="preventivi" (click)="redirectTo2p2()"> <ion-tab-button value="preventivi" (click)="redirectTo2p2()">
<ion-icon src="assets/icon/prev-pagam-grigio.svg" class="icon-footer"></ion-icon> <img src="assets/icon/prev-pagam-grigio.svg" class="icon-footer">
<ion-label>{{ 'preventivi' | translate }}</ion-label> <ion-label>{{ 'preventivi' | translate }}</ion-label>
</ion-tab-button> </ion-tab-button>
<ion-tab-button value="fatture" (click)="changeSel('fatture')"> <ion-tab-button value="fatture" (click)="changeSel('fatture')">
<ion-icon src="assets/icon/fatture-progetti-bianco.svg" id="icon-fatture" class="icon-footer"></ion-icon> <img src="assets/icon/fatture-progetti-bianco.svg" id="icon-fatture" class="icon-footer">
<ion-label id="label-fatture" style="color: white;">{{ 'fatture' | translate }}</ion-label> <ion-label id="label-fatture" style="color: white;">{{ 'fatture' | translate }}</ion-label>
</ion-tab-button> </ion-tab-button>
<ion-tab-button value="estratto" (click)="downloadEstrattoConto('estratto')"> <ion-tab-button value="estratto" (click)="downloadEstrattoConto('estratto')">
<ion-icon src="assets/icon/estratto-conto-grigio.svg" id="icon-estratto" class="icon-footer"></ion-icon> <img src="assets/icon/estratto-conto-grigio.svg" id="icon-estratto" class="icon-footer">
<ion-label id="label-estratto">{{ 'estratto_conto' | translate }}</ion-label> <ion-label id="label-estratto">{{ 'estratto_conto' | translate }}</ion-label>
</ion-tab-button> </ion-tab-button>
<ion-tab-button value="solleciti" (click)="changeSel('solleciti')"> <ion-tab-button value="solleciti" (click)="changeSel('solleciti')">
<ion-icon src="assets/icon/solleciti-grigio.svg" id="icon-solleciti" class="icon-footer"></ion-icon> <img src="assets/icon/solleciti-grigio.svg" id="icon-solleciti" class="icon-footer">
<ion-label id="label-solleciti">{{ 'solleciti' | translate }}</ion-label> <ion-label id="label-solleciti">{{ 'solleciti' | translate }}</ion-label>
</ion-tab-button> </ion-tab-button>
</ion-tab-bar> </ion-tab-bar>
......
...@@ -252,9 +252,8 @@ export class SegreteriaPage implements OnInit { ...@@ -252,9 +252,8 @@ export class SegreteriaPage implements OnInit {
window.open(this.httpClientDataService.P2PSingleSignOnUrl+token, "_system"); window.open(this.httpClientDataService.P2PSingleSignOnUrl+token, "_system");
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante l'sso verso 2P2";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante l'sso verso 2P2", ["OK"]);
}); });
} }
...@@ -284,9 +283,8 @@ export class SegreteriaPage implements OnInit { ...@@ -284,9 +283,8 @@ export class SegreteriaPage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
//this.utilService.closeLoading(); //this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante la richiesta lista strutture";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante la richiesta lista strutture", ["OK"]);
}); });
} }
...@@ -322,9 +320,8 @@ export class SegreteriaPage implements OnInit { ...@@ -322,9 +320,8 @@ export class SegreteriaPage implements OnInit {
}, },
(error: ErrorResponse) => { (error: ErrorResponse) => {
this.utilService.closeLoading(); this.utilService.closeLoading();
if(error != null && error.errorMsg != null) this.utilService.presentAlert("Errore", "", error.errorMsg, ["OK"]); var text = "Errore durante richiesta delle fatture";
else if(error!=null) this.utilService.presentAlert("Errore", "", error, ["OK"]); this.utilService.stampaErrore(text, error);
else this.utilService.presentAlert("Errore", "", "Errore durante richiesta delle fatture", ["OK"]);
}); });
} }
......
...@@ -199,8 +199,6 @@ export class IntervisteService { ...@@ -199,8 +199,6 @@ export class IntervisteService {
} }
}) })
); );
return null;
} }
creaIntervento(id, message, idTopic): NewRichiestaRequest creaIntervento(id, message, idTopic): NewRichiestaRequest
......
...@@ -179,9 +179,12 @@ export class UtilService { ...@@ -179,9 +179,12 @@ export class UtilService {
} }
fileScaricati: Array<string>; fileScaricati: Array<string>;
count: number;
total: number;
shareDocumenti(fileSel : Array<Pair>) shareDocumenti(fileSel : Array<Pair>)
{ {
this.count = 0;
this.fileScaricati = new Array(); this.fileScaricati = new Array();
this.showLoading(); this.showLoading();
/*var i = 0; /*var i = 0;
...@@ -204,20 +207,28 @@ export class UtilService { ...@@ -204,20 +207,28 @@ export class UtilService {
}); });
i++; i++;
}*/ }*/
this.total = fileSel.length;
fileSel.forEach(this.saveFile, this); fileSel.forEach(this.saveFile, this);
setTimeout(() => { if(this.count == this.total) this.share();
else setTimeout(() => {
this.share() this.share()
}, 10000*fileSel.length); }, 1000);
} }
share(){ share(){
if(this.count != this.total) setTimeout(() => {
this.share()
}, 1000);
else{
this.closeLoading(); this.closeLoading();
this.socialSharing.share(null, null, this.fileScaricati, null).then(() => { this.socialSharing.share(null, null, this.fileScaricati, null).then(() => {
console.log("File condiviso con successo!"); console.log("File condiviso con successo!");
}).catch((e) => { }).catch((e) => {
this.presentAlert("Avviso", "", 'Errore durante la condivisione del file:' + e, ["OK"]); this.presentAlert("Avviso", "", 'Errore durante la condivisione dei file', ["OK"]);
console.log('Errore durante la condivisione dei file:' + e);
}); });
} }
}
async saveFile(fileInfo: Pair, index) async saveFile(fileInfo: Pair, index)
{ {
...@@ -229,29 +240,12 @@ export class UtilService { ...@@ -229,29 +240,12 @@ export class UtilService {
(data) => { // Success (data) => { // Success
this.file.writeFile(path, nomeFile, data, { replace: true }).then((fileEntry: FileEntry) => { this.file.writeFile(path, nomeFile, data, { replace: true }).then((fileEntry: FileEntry) => {
this.fileScaricati.push(fileEntry.toURL()); this.fileScaricati.push(fileEntry.toURL());
this.count++;
}, },
(error) =>{ (error) =>{
this.count++;
console.log(error); console.log(error);
} this.presentAlert("Avviso", "", 'Errore durante il salvataggio del file:' + nomeFile, ["OK"]);
);
});
}
shareDocumentoBis(fileUrl: string, nomeFile: string)
{
var path = "";
path = this.file.externalDataDirectory;
nomeFile = nomeFile.replace(/\//g, "-");
this.showLoading();
this.download(fileUrl)
.subscribe(
(data) => { // Success
this.file.writeFile(path, nomeFile, data, { replace: true }).then((fileEntry: FileEntry) => {
console.log("File created!");
this.fileScaricati.push(fileEntry.toURL());
},
(error) =>{
console.error(error);
} }
); );
}); });
...@@ -272,7 +266,8 @@ export class UtilService { ...@@ -272,7 +266,8 @@ export class UtilService {
this.socialSharing.share(null, null, fileEntry.toURL(), null).then(() => { this.socialSharing.share(null, null, fileEntry.toURL(), null).then(() => {
console.log("File condiviso con successo!"); console.log("File condiviso con successo!");
}).catch((e) => { }).catch((e) => {
this.presentAlert("Avviso", "", 'Errore durante la condivisione del file:' + e, ["OK"]); this.presentAlert("Avviso", "", 'Errore durante la condivisione del file', ["OK"]);
console.error(e);
}); });
}, },
(error) =>{ (error) =>{
...@@ -303,7 +298,7 @@ export class UtilService { ...@@ -303,7 +298,7 @@ export class UtilService {
console.log('File is opened'); console.log('File is opened');
}) })
.catch(e => { .catch(e => {
this.presentAlert("Avviso", "", 'Apertura in errore:' + e, ["OK"]); this.presentAlert("Avviso", "", 'Apertura file in errore', ["OK"]);
console.log('Error openening file', e); console.log('Error openening file', e);
}); });
...@@ -315,6 +310,15 @@ export class UtilService { ...@@ -315,6 +310,15 @@ export class UtilService {
}); });
} }
stampaErrore(text: string, error)
{
var text = "Errore durante richiesta delle fatture";
if(error != null && error.errorMsg != null) console.log(text+": "+error.errorMsg);
else if(error!=null) console.log(text+": "+error);
else console.log(text);
this.presentAlert("Errore", "", text, ["OK"]);
}
download(url) download(url)
{ {
return this.httpClient.get(url, {responseType: "blob"}); return this.httpClient.get(url, {responseType: "blob"});
......
...@@ -103,6 +103,10 @@ strong { ...@@ -103,6 +103,10 @@ strong {
background-color: transparent; background-color: transparent;
} }
.giallo {
--ion-color-primary: #fcc73d;
}
.contenitore { .contenitore {
margin:auto; margin:auto;
display:block; display:block;
...@@ -361,11 +365,18 @@ strong { ...@@ -361,11 +365,18 @@ strong {
.button-icon .button-icon
{ {
color: #000000; color:rgb(81, 81, 81);
width: 24px; width: 24px;
height: 24px; height: 24px;
} }
.button-icon-archivia
{
color: rgb(81, 81, 81);
width: 18px;
height: 18px;
}
.button-date .button-date
{ {
border: 0px !important; border: 0px !important;
...@@ -517,7 +528,7 @@ strong { ...@@ -517,7 +528,7 @@ strong {
@media (max-width: 379px) and (min-width: 350px) { @media (max-width: 379px) and (min-width: 350px) {
width: 134px; width: 134px;
} }
margin: 5px 17px 5px 5px; margin: 5px 15px 5px 5px;
border: 1px solid $grigio-lite; border: 1px solid $grigio-lite;
-webkit-box-shadow: 0px 3px 4px 0px rgba(184,184,184,1); -webkit-box-shadow: 0px 3px 4px 0px rgba(184,184,184,1);
-moz-box-shadow: 0px 3px 4px 0px rgba(184,184,184,1); -moz-box-shadow: 0px 3px 4px 0px rgba(184,184,184,1);
...@@ -546,11 +557,25 @@ strong { ...@@ -546,11 +557,25 @@ strong {
font-size: 16px; font-size: 16px;
padding: 15px 5px; padding: 15px 5px;
min-height: 42px; min-height: 42px;
height: 84px; height: 65px;
font-family: 'futura-pt', sans-serif; font-family: 'futura-pt', sans-serif;
color: $grigio; color: $grigio;
} }
} }
.dispari
{
@media (max-width: 319px) {
float: left;
}
@media (max-width: 550px) {
float: right;
margin-right: 10px;
}
@media (min-width: 720px)
{
float:left;
}
}
} }
} }
...@@ -580,6 +605,8 @@ strong { ...@@ -580,6 +605,8 @@ strong {
font-weight: bold; font-weight: bold;
font-size: 20px; font-size: 20px;
font-family: 'futura-pt', sans-serif; font-family: 'futura-pt', sans-serif;
padding-left: 15px;
padding-right: 15px;
@media (min-width: 1080px) { @media (min-width: 1080px) {
margin-top: 10px; margin-top: 10px;
} }
...@@ -670,6 +697,24 @@ ion-menu{ ...@@ -670,6 +697,24 @@ ion-menu{
} }
} }
.group-icon3
{
text-align: center;
display: inline-block;
margin-right: 5px;
ion-label {
font-size: 14px;
}
ion-icon {
margin-top: 7px;
height: 25px;
color:#515151;
--color: #515151;
width: 100%;
display: block;
}
}
.group-icon { .group-icon {
text-align: center; text-align: center;
display: inline-block; display: inline-block;
...@@ -751,6 +796,15 @@ ion-menu{ ...@@ -751,6 +796,15 @@ ion-menu{
color:rgb(81, 81, 81); color:rgb(81, 81, 81);
} }
.selection { .selection {
ion-label {
margin-top: 2px;
padding-left: 5px;
margin-right: 5px;
}
ion-select {
padding-left: 5px;
padding-top: 2px;
}
font-size:18px; font-size:18px;
font-family: 'futura-pt', sans-serif; font-family: 'futura-pt', sans-serif;
--ion-font-family: 'futura-pt', sans-serif; --ion-font-family: 'futura-pt', sans-serif;
...@@ -769,6 +823,7 @@ ion-menu{ ...@@ -769,6 +823,7 @@ ion-menu{
width: 80%; width: 80%;
font-size: 20px; font-size: 20px;
font-family: 'futura-pt', sans-serif; font-family: 'futura-pt', sans-serif;
margin: 2px;
} }
.download-icon { .download-icon {
...@@ -780,6 +835,10 @@ ion-menu{ ...@@ -780,6 +835,10 @@ ion-menu{
color:rgb(81, 81, 81); color:rgb(81, 81, 81);
} }
.celeste {
color: $celeste;
}
.margin-top { .margin-top {
margin-top: 10px; margin-top: 10px;
} }
...@@ -969,7 +1028,7 @@ ion-menu{ ...@@ -969,7 +1028,7 @@ ion-menu{
margin-top: 10px; margin-top: 10px;
background-color: $giallo; background-color: $giallo;
--backgroud: $giallo; --backgroud: $giallo;
color: #000000; color: $grigio;
//padding: 10px 0px; //padding: 10px 0px;
width: 100%; width: 100%;
font-size: 18px; font-size: 18px;
...@@ -982,7 +1041,7 @@ ion-menu{ ...@@ -982,7 +1041,7 @@ ion-menu{
ion-button { ion-button {
margin-top: 10px; margin-top: 10px;
--background: #e5e5ea; --background: #e5e5ea;
color: #000000; color: $grigio;
//padding: 10px 0px; //padding: 10px 0px;
width: 100%; width: 100%;
font-size: 18px; font-size: 18px;
...@@ -1023,6 +1082,15 @@ ion-menu{ ...@@ -1023,6 +1082,15 @@ ion-menu{
} }
} }
.font{
font-family: 'futura-pt', sans-serif;
}
.archivio-text
{
margin-top: 3px;
}
.footer-parere { .footer-parere {
height: 90px; height: 90px;
@media (max-width: 991px) { @media (max-width: 991px) {
...@@ -1039,9 +1107,18 @@ ion-menu{ ...@@ -1039,9 +1107,18 @@ ion-menu{
border-bottom: 1px solid $grigio-superlite; border-bottom: 1px solid $grigio-superlite;
} }
.form-button {
--border-radius:0px;
--box-shadow: 0;
}
.cerca-titolo-doc{
width: 60%;
}
.search-date { .search-date {
font-size: 13px; font-size: 13px;
padding-bottom: 10px; padding-bottom: 5px;
margin-bottom: 5px; margin-bottom: 5px;
width: 100%; width: 100%;
font-family: 'futura-pt', sans-serif; font-family: 'futura-pt', sans-serif;
...@@ -1054,11 +1131,12 @@ ion-menu{ ...@@ -1054,11 +1131,12 @@ ion-menu{
.check { .check {
float: left; float: left;
margin-right: 10px; margin-right: 10px;
margin-top: 4px;
} }
.cerca-notula .cerca-notula
{ {
margin-right: 10px; margin-right: 10px;
width: 150px; width: 110px;
} }
.cerca-titolo .cerca-titolo
{ {
...@@ -1069,6 +1147,16 @@ ion-menu{ ...@@ -1069,6 +1147,16 @@ ion-menu{
margin-left: 0px; margin-left: 0px;
} }
} }
.cerca-titolo-cel
{
margin-left: 10px;
width: 150px;
margin-top: 5px;
@media (max-width: 500px)
{
margin-left: 0px;
}
}
input[type=input] { input[type=input] {
font-size: 15px; font-size: 15px;
display: inline-block; display: inline-block;
...@@ -1087,6 +1175,7 @@ ion-menu{ ...@@ -1087,6 +1175,7 @@ ion-menu{
float: right; float: right;
font-size: 0px; font-size: 0px;
--border-radius:0px; --border-radius:0px;
--box-shadow: 0;
} }
.condividi-text{ .condividi-text{
font-size: 18px; font-size: 18px;
...@@ -1109,6 +1198,7 @@ ion-menu{ ...@@ -1109,6 +1198,7 @@ ion-menu{
.input-intervento .input-intervento
{ {
border-bottom: 1px solid $grigio-superlite; border-bottom: 1px solid $grigio-superlite;
width: 90%;
} }
.date-div .date-div
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment