Commit 7965bdae by Matteo

Aggiunta notifiche

parent f85504bf
......@@ -107,7 +107,7 @@ export class AuthService {
getFromStorageAsync(param){
return this.storage.get(param).then((data)=>{
AuthService.idReferente = data;
if(param == "idUser") AuthService.idReferente = data;
return data;
});
}
......
export interface Allegato {
url: string;
nomeFile: string;
}
export interface ArchiviaNotificaRequest {
daArchiviare: boolean,
cliente: number,
listaNotifiche: number[];
}
import { ArchiviaNotificaRequest } from './archivia-notifica-request';
import { Notifica } from './notifica';
export interface ArchiviaNotificaResponse {
notifica: ArchiviaNotificaRequest,
error: string,
notificheNonArchiviate: Notifica[]
}
import { Allegato } from './allegato';
export interface Notifica {
id: number;
titolo: string;
data: string;
contenuto: string;
archiviato: boolean;
haAllegati: boolean;
visualizzata: boolean;
allegati: Allegato[];
checked: boolean;
errorText: string;
}
import { Pair } from './pair';
export interface NotificheRequest {
cliente: number;
referente: number;
limite: number;
filtri: Pair[];
}
import { NotificheRequest } from './notifiche-request';
import { Notifica } from './notifica';
export interface NotificheResponse {
notifica: NotificheRequest;
error: string;
notifiche: Notifica[];
}
......@@ -57,6 +57,9 @@ export class HomePage {
this.events.subscribe('functionCall:parere', eventData => {
this.router.navigateByUrl('home/parere');
});
this.events.subscribe('functionCall:notifica', eventData => {
this.router.navigateByUrl('home/notifiche');
});
this.events.subscribe('functionCall:interviste', eventData => {
this.router.navigateByUrl('home/interviste');
});
......
......@@ -80,6 +80,15 @@ const routes: Routes = [
]
},
{
path: 'notifiche',
children: [
{
path: '',
loadChildren: '../notifiche/notifiche.module#NotifichePageModule'
}
]
},
{
path: '',
redirectTo: '/home/preview-home',
pathMatch: 'full'
......
......@@ -177,7 +177,7 @@
<img src="assets/img/notificheGiallo.png" tappable *ngIf="isImmobiliareSelected()"/>
<img src="assets/img/notificheVerde.png" tappable *ngIf="isCreditiziaSelected()"/>
</div>
<div tappable class="section-title">
<div tappable class="section-title" (click)="apriPagina('notifiche')">
{{ 'notifiche' | translate }}
</div>
</div>
......
......@@ -7,6 +7,8 @@ import { IonicModule } from '@ionic/angular';
import { NotifichePage } from './notifiche.page';
import { TranslateModule } from '@ngx-translate/core';
const routes: Routes = [
{
path: '',
......@@ -19,7 +21,8 @@ const routes: Routes = [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
RouterModule.forChild(routes),
TranslateModule
],
declarations: [NotifichePage]
})
......
<ion-header>
<ion-toolbar>
<ion-title>notifiche</ion-title>
</ion-toolbar>
</ion-header>
<ion-content class="chats">
<div>
<div>
<div [ngSwitch]="notifica" ngDefaultControl>
<span *ngIf="!platform.is('desktop')">
<div *ngSwitchCase="'lista'">
<ion-row>
<div class="search-date-smart">
<ion-row>
<span class="riga"><strong>{{ 'cerca' | translate }}</strong> {{ 'titolo' | translate }} <input type="text" name="calendar" [(ngModel)]="titolo" title="{{ 'ricerca_titolo' | translate }}" class="cerca-titolo-doc">
</span>
<ion-button (click)="cercaNotifiche()" class="search-arrow" title="{{ 'cerca' | translate }}">
<ion-icon class="button-icon-documenti-smart ios-icon" slot="icon-only" name="ios-arrow-dropright-circle" title="{{ 'cerca' | translate }}"></ion-icon>
</ion-button>
</ion-row>
</div>
</ion-row>
<ion-row>
<div class="search-date-smart">
<ion-row>
<span class="riga">
<ion-checkbox name="privacy" [(ngModel)]="archiviati" class="check2"> </ion-checkbox>
<ion-label>{{ 'visualizza_archiviati' | translate }}</ion-label>
</span>
<ion-button (click)="cercaNotifiche()" class="search-arrow" title="{{ 'cerca' | translate }}">
<ion-icon class="button-icon-documenti-smart ios-icon" slot="icon-only" name="ios-arrow-dropright-circle" title="{{ 'cerca' | translate }}"></ion-icon>
</ion-button>
</ion-row>
</div>
</ion-row>
<span id="buttonsNotifiche" style="display:none">
<ion-row>
<div class="search-date-smart" *ngIf="!archiviati">
<ion-row>
<span class="riga">
<ion-label>{{ 'archivia_notifiche' | translate }}</ion-label>
</span>
<ion-button (click)="archiviaNotifiche(true)" class="search-arrow" title="{{ 'archivia_notifiche' | translate }}">
<ion-icon class="button-icon-documenti-smart ios-icon" slot="icon-only" name="archive" title="{{ 'archivia_notifiche' | translate }}"></ion-icon>
</ion-button>
</ion-row>
</div>
</ion-row>
<ion-row>
<div class="search-date-smart" *ngIf="archiviati">
<ion-row>
<span class="riga">
<ion-label>{{ 'undo_archivio_notifiche' | translate }}</ion-label>
</span>
<ion-button (click)="archiviaNotifiche(false)" class="search-arrow" title="{{ 'riattiva_notifiche' | translate }}">
<ion-icon class="button-icon-documenti-smart ios-icon" slot="icon-only" name="undo" title="{{ 'riattiva_notifiche' | translate }}"></ion-icon>
</ion-button>
</ion-row>
</div>
</ion-row>
</span>
<ion-row class="search-date-border-smart">
</ion-row>
<ion-list *ngFor="let notifica of notifiche; trackBy: trackByDoc" class="row-results-smart" (click)="selection?toggleGroup(notifica.idRichiesta):selectItem(notifica.idRichiesta)"
(press)="selectItem(notifica.idRichiesta)" [ngStyle]="{'background-color': notifica.checked ? '#c3ddec' : '#ffffff'}">
<ion-checkbox name="privacy" [(ngModel)]="notifica.checked" class="check" (click)="checkSelected(notifica.idRichiesta)"> </ion-checkbox>
<div class="table-row">
<div class="row-text data" text-wrap>
<div text-wrap>{{notifica.titolo}}</div>
{{notifica.data}}
</div>
<div class="row-download item-no-border">
<ion-icon class="button-icon-documenti-smart ios-icon" name="ios-arrow-dropright-circle" (click)="apriNotifica(notifica.idRichiesta)" tappable title="{{ 'visualizza_dettagli' | translate }}"></ion-icon>
</div>
</div>
</ion-list>
</div>
</span>
<ion-content>
<span *ngIf="platform.is('desktop')">
<div *ngSwitchCase="'lista'">
<ion-row class="title-row">
<ion-buttons class="back-button-desktop" (click)="back()" title="{{ 'back_login' | translate }}">
<ion-icon name="arrow-round-back" color="#2b94d1" class="back" tappable></ion-icon>
</ion-buttons>
<div class="pareri-title">
<ion-title>{{ 'notifiche_titolo' | translate }}</ion-title>
</div>
</ion-row>
<div class="search-date">
<ion-row>
<div 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)="cercaNotifiche()" class="search-arrow" title="{{ 'cerca_documenti' | translate }}">
<ion-icon class="button-icon-documenti ios-icon" slot="icon-only" name="ios-arrow-dropright-circle" title="{{ 'cerca_documenti' | translate }}"></ion-icon>
</ion-button>
</div>
<div class="riga">
<ion-checkbox name="privacy" [(ngModel)]="archiviati" class="check"> </ion-checkbox>
<ion-label class="archivio-text"><span class="text">{{ 'visualizza_archiviati' | translate }}</span></ion-label>
<ion-button (click)="cercaNotifiche()" class="search-arrow" title="{{ 'cerca' | translate }}">
<ion-icon class="button-icon-documenti ios-icon" slot="icon-only" name="ios-arrow-dropright-circle" title="{{ 'cerca' | translate }}"></ion-icon>
</ion-button>
</div>
<div class="riga" id="buttonsNotifiche" style="display:none">
<div *ngIf="!archiviati" class="text">
{{ 'archivia_notifiche' | translate }}
<ion-button (click)="archiviaNotifiche(true)" class="search-arrow" title="{{ 'archivia_notifiche' | translate }}">
<ion-icon class="button-icon-documenti" slot="icon-only" name="archive" title="{{ 'archivia_notifiche' | translate }}"></ion-icon></ion-button>
</div>
<div *ngIf="archiviati" class="text">
{{ 'undo_archivio_notifiche' | translate }}
<ion-button (click)="archiviaNotifiche(false)" class="search-arrow" title="{{ 'riattiva_notifiche' | translate }}">
<ion-icon class="button-icon-documenti" slot="icon-only" name="undo" title="{{ 'riattiva_notifiche' | translate }}"></ion-icon></ion-button>
</div>
</div>
</ion-row>
</div>
<div class="content-index" *ngFor="let notifica of notifiche; trackBy: trackByDoc">
<div tappable title="{{ 'visualizza_dettagli' | translate }}">
<div class="struttura-sel documento-box" tappable #lock (mouseover)="lock.isHover = true" (mouseout)="lock.isHover = false">
<ion-row class="row-box">
<ion-col>
<div class="documento-text">
<ion-row class="title">
<div class="checkbox-desktop">
<ion-checkbox name="privacy" [(ngModel)]="notifica.checked" class="check" (click)="checkSelected(notifica.idRichiesta)"> </ion-checkbox>
</div>
<div class="title" (click)="apriNotifica(notifica.idRichiesta)">
<strong>{{notifica.titolo}}</strong>
</div>
</ion-row>
<div class="data" (click)="apriNotifica(notifica.idRichiesta)">
{{notifica.data}}
</div>
</div>
</ion-col>
<ion-col (click)="apriNotifica(notifica.idRichiesta)">
<div tappable class="icon3">
<img src="assets/img/notificheNero.png" tappable/>
</div>
</ion-col>
</ion-row>
</div>
</div>
</div>
</div>
</span>
<div *ngSwitchCase="'dettaglio'">
<div>
Titolo:
</div>
<div>
<strong>{{notificaAttiva.titolo}}</strong>
</div>
<div>
Testo:
</div>
<div>
<strong>{{notificaAttiva.contenuto}}</strong>
</div>
</div>
<div *ngSwitchCase="'documenti'">
</div>
</div>
</div>
</div>
</ion-content>
import { Component, OnInit } from '@angular/core';
import { HttpClientDataService } from './../../service/http-client-data.service';
import { UtilService } from '../../service/util.service';
import { AuthService } from 'src/app/auth/service/auth.service';
import { ErrorResponse } from '../../auth/interface/error-response';
import { Platform, Events, MenuController } from '@ionic/angular';
import { TranslateService } from '@ngx-translate/core';
import { Router } from "@angular/router";
import { Notifica } from 'src/app/interface/notifica';
import { NotificheService } from 'src/app/service/notifiche.service';
import { NotificheResponse } from 'src/app/interface/notifiche-response';
import { ArchiviaNotificaResponse } from 'src/app/interface/archivia-notifica-response';
@Component({
selector: 'app-notifiche',
......@@ -7,9 +18,284 @@ import { Component, OnInit } from '@angular/core';
})
export class NotifichePage implements OnInit {
constructor() { }
constructor(
public menuCtrl: MenuController,
private utilService: UtilService,
public platform: Platform,
public events: Events,
private notificheService: NotificheService,
public httpClientDataService: HttpClientDataService,
public translate: TranslateService,
public router: Router
) {
this.events.publish('functionCall:startup', null);
this.initPage();
if(AuthService.clienteSelezionato.id != null) this.loadNotifiche();
this.events.subscribe('functionCall:clienteCambiato', eventData => {
this.loadNotifiche();
});
this.events.subscribe('functionCall:linguaCambiata', eventData => {
translate = utilService.translate;
});
this.events.subscribe('functionCall:manageBackButton', eventData => {
if(this.router.url == "/home/parere")
{
if(this.notifica == "lista")
{
UtilService.titoloPagina = '';
this.events.publish('functionCall:cambiaTitolo', null);
this.router.navigateByUrl('home/index');
}
else
{
this.apriLista();
this.router.navigateByUrl('home/index');
setTimeout(() => {
this.events.publish('functionCall:notifica', null);
}, 500);
}
}
});
translate = utilService.translate;
setTimeout(() => {
this.refreshNotifiche();
}, 60000);
}
refreshNotifiche()
{
this.loadNotifiche();
setTimeout(() => {
this.refreshNotifiche();
}, 60000);
}
ngOnInit() {
}
initPage()
{
var allegati = new Array();
this.notificaAttiva = {
id: null,
allegati:allegati,
titolo: null,
contenuto: null,
checked: false,
errorText: "",
archiviato: false,
haAllegati: false,
visualizzata: false,
data: ""
};
this.notifica = "lista";
this.bottoneVisibile = true;
this.archiviati = false;
this.notificheSelezionate = new Array();
this.error = "";
this.titolo = "";
}
notifiche: Notifica[];
notificaAttiva: Notifica;
idCliente;
idSelezionato;
notifica: string;
bottoneVisibile: boolean;
archiviati: boolean;
titolo: string;
idSelected: number;
selection: boolean = false;
clickCheckbox: boolean = false;
filename: string = "";
notificaId;
notificheSelezionate: Array<number>;
error: string;
toggleGroup(id : number)
{
if(this.clickCheckbox)
{
this.clickCheckbox = false;
return;
}
this.selection = true;
this.idSelected = id;
this.hideButtons()
this.notifiche.forEach(this.toggle, this);
}
toggle(notifica: Notifica, index)
{
if(notifica.id == this.idSelected)
{
if(notifica.checked) notifica.checked = false;
else{
notifica.checked = true;
this.showButtons();
}
}
else if(notifica.checked) this.showButtons();
}
selectItem(id: number) {
if(this.clickCheckbox)
{
this.clickCheckbox = false;
return;
}
this.selection = true;
this.idSelected = id;
this.hideButtons()
this.notifiche.forEach(this.select, this);
}
select(notifica: Notifica, index)
{
if(notifica.id == this.idSelected)
{
notifica.checked = true;
this.showButtons();
}
}
showButtons()
{
var buttons = document.getElementById('buttonsNotifiche');
buttons.setAttribute("style", "display:block");
}
hideButtons()
{
var buttons = document.getElementById('buttonsNotifiche');
if(buttons != null) buttons.setAttribute("style", "display:none");
}
cercaNotifiche()
{
this.loadNotifiche();
}
getFile(url, nomeFile)
{
var fileUrl = this.httpClientDataService.BASE_ADDRESS+url;
this.utilService.shareDocumento(fileUrl, nomeFile);
}
async loadNotifiche()
{
this.hideButtons();
var titolo = null;
this.utilService.showLoading();
this.idCliente = AuthService.clienteSelezionato.id;
let referente = AuthService.idReferente;
if(this.titolo != null && this.titolo != "") titolo = this.titolo;
this.notificheService.getListaNotifiche(this.idCliente, referente, this.archiviati, titolo).subscribe((res: NotificheResponse)=>{
this.utilService.closeLoading();
if(res.error){
this.utilService.presentAlert("Errore", "", res.error, ["OK"]);
}
else
{
this.notifiche = res.notifiche;
if(this.notifiche != null && this.notifiche.length > 0) this.notificaAttiva = this.notifiche[0];
}
},
(error: ErrorResponse) => {
this.utilService.closeLoading();
var text = "Errore durante la procedura di richiesta Topic";
this.utilService.stampaErrore(text, error);
}
);
}
apriLista()
{
this.notifica = "lista";
}
apriNotifica(id)
{
this.idSelezionato = id;
this.notifiche.forEach(this.setNotifica, this);
}
setNotifica(notifica, index)
{
if(notifica.id == this.idSelezionato)
{
this.notificaAttiva = notifica;
this.notifica = "dettaglio";
}
}
trackByDoc(index: number, notifica: Notifica): number { return notifica.id; }
checkSelected(id)
{
this.clickCheckbox = true;
this.notificaId = id;
this.hideButtons()
this.notifiche.forEach(this.check, this);
}
check(richiesta: Notifica, index)
{
if(richiesta.checked && richiesta.id != this.notificaId) this.showButtons();
if(!richiesta.checked && richiesta.id == this.notificaId) this.showButtons();
}
archiviaNotifiche(archiviare: boolean)
{
this.utilService.showLoading();
this.notificheSelezionate = new Array();
this.notifiche.forEach(this.raccogliNotifiche, this);
this.notificheService.archiviaNotifiche(this.idCliente, archiviare, this.notificheSelezionate).subscribe((res: ArchiviaNotificaResponse)=>{
this.utilService.closeLoading();
if(res.error){
this.utilService.presentAlert("Errore", "", res.error, ["OK"]);
}
else
{
if(res.notificheNonArchiviate.length > 0)
{
this.error = "Questa è la lista degli errori:\r\n"
res.notificheNonArchiviate.forEach(this.getErrori, this);
this.utilService.presentAlert("Errore", "", this.error, ["OK"]);
}
else{
this.hideButtons();
this.loadNotifiche();
this.apriLista();
}
}
},
(error: ErrorResponse) => {
this.utilService.closeLoading();
var text = "Errore durante l'archiviazione del parere";
this.utilService.stampaErrore(text, error);
});
}
getErrori(errore: Notifica, index)
{
this.error = "Notifica n° " + errore.id + ":" + errore.errorText;
}
raccogliNotifiche(notifica: Notifica, index)
{
if(notifica.checked) this.notificheSelezionate.push(notifica.id);
}
back()
{
UtilService.titoloPagina = '';
this.events.publish('functionCall:cambiaTitolo', null);
this.router.navigateByUrl('home/index');
}
}
import { HttpClientDataService } from './../../service/http-client-data.service';
import { ParereResponse } from './../../interface/parere-response';
import { ParereModalComponent } from './../../components/parere-modal/parere-modal.component';
import { Component, OnInit, ViewChild } from '@angular/core';
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { UtilService } from '../../service/util.service';
import { RichiesteResponse } from 'src/app/interface/richieste-response';
......
......@@ -320,13 +320,13 @@ export class SegreteriaPage implements OnInit {
downloadEstrattoConto()
{
var strutturaSel = this.utilService.getStrutturaSel();
if(this.platform.is("desktop"))
{
var struttutaSel = this.utilService.getStrutturaSel();
var url = this.httpClientDataService.BASE_ADDRESS+"/intranet/estrattoconto.do?idcliente="+this.idCliente+"&idstruttura="+struttutaSel.id;
var url = this.httpClientDataService.BASE_ADDRESS+"/intranet/estrattoconto.do?idcliente="+this.idCliente+"&idstruttura="+strutturaSel.id;
window.open(url, "_system");
}
else this.getEstrattoConto(this.idCliente, 'EstrattoConto.pdf', this.strutturaSel.id);
else this.getEstrattoConto(this.idCliente, 'EstrattoConto.pdf', strutturaSel.id);
}
async redirectTo2p2()
......
import { TestBed } from '@angular/core/testing';
import { NotificheService } from './notifiche.service';
describe('NotificheService', () => {
beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => {
const service: NotificheService = TestBed.get(NotificheService);
expect(service).toBeTruthy();
});
});
import { Injectable } from '@angular/core';
import { Observable, of} from 'rxjs';
import { Pair } from './../interface/pair';
import { NotificheRequest } from '../interface/notifiche-request';
import { tap, catchError } from 'rxjs/operators';
import { ErrorResponse } from '../auth/interface/error-response';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { HttpClientDataService } from '../service/http-client-data.service';
import { NotificheResponse } from '../interface/notifiche-response';
import { ArchiviaNotificaResponse } from '../interface/archivia-notifica-response';
import { ArchiviaNotificaRequest } from '../interface/archivia-notifica-request';
@Injectable({
providedIn: 'root'
})
export class NotificheService {
constructor(
private httpClient: HttpClient,
private httpClientDataService: HttpClientDataService
) {
this.initService();
}
archiviaNotifiche(id: any, archiviare: boolean, notificheSelezionate: number[]) {
var notifica = this.creaNotificaArchiviazione(id, archiviare, notificheSelezionate);
var param = this.encodeArchiviaNotifica(notifica);
return this.httpClient.post<ArchiviaNotificaResponse>(this.httpClientDataService.BASE_ADDRESS+'/intranet/setnotifichedaarchiviare.do', param, this.httpClientDataService.httpOptionsJson)
.pipe(
catchError(this.handleError),
tap( (res: ArchiviaNotificaResponse ) => {
if (!res.error) {
this.errorRespose.error = false;
return res;
}
else{
this.errorRespose.error = true;
this.errorRespose.errorMsg = res.error;
}
})
);
}
creaNotificaArchiviazione(id, archiviare, notificheSelezionate): ArchiviaNotificaRequest
{
var notifiche: ArchiviaNotificaRequest;
notifiche = {
cliente: id,
daArchiviare: archiviare,
listaNotifiche: notificheSelezionate
};
return notifiche;
}
encodeArchiviaNotifica(params: ArchiviaNotificaRequest)
{
var request ="{\"cliente\" : " + params.cliente + ", \"daArchiviare\" : " + params.daArchiviare + ", \"listaNotifiche\" : [";
var first = true;
for(let notifica of params.listaNotifiche)
{
if(first)
{
first = false;
request += "\""+notifica+"\"";
}
else request += ", \""+notifica+"\"";
}
request += "]}";
return request;
}
initService()
{
this.errorRespose = {
error: true,
errorMsg: ""
};
}
errorRespose: ErrorResponse;
handleError(error: HttpErrorResponse) {
this.errorRespose = {
error: true,
errorMsg: ""
};
if (error.error instanceof ErrorEvent) {
this.errorRespose.errorMsg = error.error.message;
} else {
this.errorRespose.errorMsg = error.error;
}
return of(this.errorRespose);
};
getListaNotifiche(idCliente: string, idReferente: string, archiviati: boolean, titolo: string): Observable<NotificheResponse>
{
var richiesta = this.creaRichiesta(idCliente, idReferente, 10, null, null, archiviati, titolo);
var param = this.encodeBody(richiesta);
return this.httpClient.post<NotificheResponse>(this.httpClientDataService.BASE_ADDRESS+'/intranet/notifiche.do', param, this.httpClientDataService.httpOptionsJson)
.pipe(
catchError(this.handleError),
tap( (res: NotificheResponse ) => {
if (!res.error) {
this.errorRespose.error = false;
return res;
}
else{
this.errorRespose.error = true;
this.errorRespose.errorMsg = res.error;
}
})
);
}
creaRichiesta(id, referente, limite, dataDa, dataA, archiviati, titolo): NotificheRequest
{
var request:NotificheRequest;
var pair:Pair;
var pairs: Pair[] = new Array();
if(archiviati != null)
{
pair = {
key: "archiviato",
value: archiviati,
type: "boolean"
}
pairs.push(pair);
}
if(titolo != null)
{
pair = {
key: "titolo",
value: titolo,
type: "string"
}
pairs.push(pair);
}
pairs.push(pair);
request = {
cliente: id,
referente: referente,
limite: limite,
filtri: pairs
};
return request;
}
encodeBody(params: NotificheRequest) {
var request = "{\"cliente\" : "+params.cliente+",\"referente\" : "+params.referente+",\"limite\" : "+params.limite+",\"filtri\" : {";
var filtro;
var first = true;
var i;
for (i = 0; i < params.filtri.length; i++) {
filtro = params.filtri[i];
if(first) first = false;
else request += ", ";
if(filtro.type == "int" || filtro.type == "boolean")
request += "\""+filtro.key + "\":"+filtro.value;
else
request += "\""+filtro.key + "\":\""+filtro.value+"\"";
}
request += "}}";
return request;
}
}
......@@ -379,7 +379,7 @@ export class UtilService {
this.file.writeFile(path, nomeFile, data, { replace: true }).then((fileEntry: FileEntry) => {
console.log("File created!");
this.closeLoading();
this.presentAlert("Avviso", "", 'File Salvato: '+fileEntry.toURL(), ["OK"]);
//this.presentAlert("Avviso", "", 'File Salvato: '+fileEntry.toURL(), ["OK"]);
//Open with File Opener plugin
let fileExtn=nomeFile.split('.').reverse()[0];
let fileMIMEType=UtilService.getMIMEtype(fileExtn);
......@@ -485,6 +485,16 @@ export class UtilService {
this.router.navigateByUrl('home/change-pwd');
break;
}
case "notifiche":
{
this.translate.get('notifiche_titolo').subscribe(
value => {
UtilService.titoloPagina = value;
this.events.publish('functionCall:cambiaTitolo', null);
});
this.router.navigateByUrl('home/notifiche');
break;
}
}
}
}
......@@ -50,6 +50,7 @@
"inserisci_intervento":"Inserisci intervento",
"inserisci_argomento":"Aggiungi argomento/intervento",
"parere_titolo":"Chiedo un parere",
"notifiche_titolo":"Notifiche",
"archivia_pareri":"Archivia Pareri",
"undo_archivio_pareri":"Togli Pareri dall'archivio",
"riattiva_pareri":"Riattiva Pareri",
......
......@@ -5,7 +5,6 @@
export const environment = {
production: false,
BASE_ADDRESS: 'https://gestionale2.2p2.it/stman',
//BASE_ADDRESS: 'http://aimsviluppo.aimconsulting.it:8085/stman',
//BASE_ADDRESS: "http://localhost:8080/stman",
P2PTokenUrl: "https://www.2p2.it/auth-request",
P2PSingleSignOnUrl: "https://www.2p2.it/?token=",
......@@ -13,9 +12,10 @@ export const environment = {
ConsultingServiceId:6,
RealEstateBrokerageId:8,
MediatoreCreditizioId:7
//ConsultingServiceId:24,
//RealEstateBrokerageId:26,
//MediatoreCreditizioId:25
/*BASE_ADDRESS: 'http://aimsviluppo.aimconsulting.it:8085/stman',
ConsultingServiceId:24,
RealEstateBrokerageId:26,
MediatoreCreditizioId:25*/
};
......
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