Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
Intranet
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Matteo
Intranet
Commits
155a7a2f
Commit
155a7a2f
authored
Jul 08, 2019
by
Matteo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Aggiunta archiviazione a Pareri
parent
e901180d
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
209 additions
and
8 deletions
+209
-8
archivia-richiesta-request.ts
src/app/interface/archivia-richiesta-request.ts
+5
-0
archivia-richiesta-response.ts
src/app/interface/archivia-richiesta-response.ts
+7
-0
richiesta.ts
src/app/interface/richiesta.ts
+2
-0
interviste.page.ts
src/app/pages/interviste/interviste.page.ts
+3
-1
parere.page.html
src/app/pages/parere/parere.page.html
+25
-1
parere.page.ts
src/app/pages/parere/parere.page.ts
+87
-2
parere.service.ts
src/app/service/parere.service.ts
+66
-4
global.scss
src/global.scss
+14
-0
No files found.
src/app/interface/archivia-richiesta-request.ts
0 → 100644
View file @
155a7a2f
export
interface
ArchiviaRichiestaRequest
{
daArchiviare
:
boolean
,
cliente
:
number
,
listaRichieste
:
number
[];
}
src/app/interface/archivia-richiesta-response.ts
0 → 100644
View file @
155a7a2f
import
{
ArchiviaRichiestaRequest
}
from
'./archivia-richiesta-request'
;
import
{
Richiesta
}
from
'./richiesta'
;
export
interface
ArchiviaRichiestaResponse
{
richiesta
:
ArchiviaRichiestaRequest
,
error
:
string
,
richiesteNonArchiviate
:
Richiesta
[]
}
src/app/interface/richiesta.ts
View file @
155a7a2f
...
...
@@ -9,4 +9,6 @@ export interface Richiesta {
tipo
:
string
;
interventi
:
Intervento
[];
nomeFile
:
string
;
checked
:
boolean
;
errorText
:
string
;
}
src/app/pages/interviste/interviste.page.ts
View file @
155a7a2f
...
...
@@ -61,7 +61,9 @@ export class IntervistePage implements OnInit {
testo
:
null
,
data
:
null
,
url
:
null
,
tipo
:
null
tipo
:
null
,
checked
:
false
,
errorText
:
""
};
var
date
:
Date
;
date
=
new
Date
();
...
...
src/app/pages/parere/parere.page.html
View file @
155a7a2f
...
...
@@ -10,7 +10,31 @@
<div
[
ngSwitch
]="
parere
"
ngDefaultControl
>
<div
*
ngSwitchCase=
"'lista'"
>
<div
*
ngFor=
"let parere of pareri; trackBy: trackByDoc"
class=
"chat-list"
>
<div
class=
"search-date date-div"
>
<div
class=
"float-date"
>
<ion-item
class=
"item-no-border"
>
<ion-checkbox
name=
"privacy"
[(
ngModel
)]="
archiviati
"
class=
"check"
>
</ion-checkbox>
<ion-label>
Visualizza Archiviati
</ion-label>
</ion-item>
<ion-item
class=
"item-no-border"
>
<ion-button
(
click
)="
cercaPareri
()"
class=
"search-arrow"
title=
"Cerca pareri"
><ion-icon
class=
"button-icon"
slot=
"icon-only"
name=
"arrow-round-forward"
title=
"Cerca documenti"
></ion-icon></ion-button>
</ion-item>
</div>
<div
class=
"clr"
></div>
<ion-item
class=
"item-no-border"
id=
"buttons"
style=
"display:none"
>
<div
*
ngIf=
"!archiviati"
>
Archivia Pareri
<ion-button
(
click
)="
archiviaPareri
(
true
)"
class=
"search-arrow"
title=
"Archivia Pareri"
><ion-icon
class=
"button-icon"
slot=
"icon-only"
name=
"archive"
title=
"Archivia Pareri"
></ion-icon></ion-button>
</div>
<div
*
ngIf=
"archiviati"
>
Togli pareri dall'archivio
<ion-button
(
click
)="
archiviaPareri
(
false
)"
class=
"search-arrow"
title=
"Riattiva Pareri"
><ion-icon
class=
"button-icon"
slot=
"icon-only"
name=
"undo"
title=
"Riattiva documenti"
></ion-icon></ion-button>
</div>
</ion-item>
</div>
<div
*
ngFor=
"let parere of pareri; trackBy: trackByDoc"
class=
"chat-list"
>
<ion-checkbox
name=
"privacy"
[(
ngModel
)]="
parere
.
checked
"
class=
"check"
(
click
)="
checkSelected
(
parere
.
idRichiesta
)"
>
</ion-checkbox>
<div
class=
"row-chat-list"
>
<div
class=
"data"
text-wrap
>
{{parere.data}}
...
...
src/app/pages/parere/parere.page.ts
View file @
155a7a2f
...
...
@@ -5,6 +5,7 @@ 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'
;
import
{
ArchiviaRichiestaResponse
}
from
'src/app/interface/archivia-richiesta-response'
;
import
{
AuthService
}
from
'src/app/auth/service/auth.service'
;
import
{
Richiesta
}
from
'src/app/interface/richiesta'
;
import
{
ParereService
}
from
'src/app/service/parere.service'
;
...
...
@@ -48,11 +49,16 @@ export class ParerePage implements OnInit {
testo
:
null
,
data
:
null
,
url
:
null
,
tipo
:
null
tipo
:
null
,
checked
:
false
,
errorText
:
""
};
this
.
parere
=
"lista"
;
this
.
bottoneVisibile
=
true
;
this
.
archiviati
=
false
;
result
=
{
dati
:
null
,
file
:
null
};
this
.
pareriSelezionati
=
new
Array
();
this
.
error
=
""
;
}
pareri
:
Richiesta
[];
...
...
@@ -61,6 +67,12 @@ export class ParerePage implements OnInit {
idSelezionato
;
parere
:
string
;
bottoneVisibile
:
boolean
;
archiviati
:
boolean
;
cercaPareri
()
{
this
.
loadPareri
(
"initial"
);
}
getFile
(
id
,
nomeFile
,
richiesta
)
{
...
...
@@ -72,7 +84,7 @@ export class ParerePage implements OnInit {
{
this
.
utilService
.
showLoading
();
this
.
idCliente
=
AuthService
.
clienteSelezionato
.
id
;
if
(
fase
==
"initial"
)
this
.
parereService
.
getListaPareri
(
this
.
idCliente
).
subscribe
((
res
:
RichiesteResponse
)
=>
{
if
(
fase
==
"initial"
)
this
.
parereService
.
getListaPareri
(
this
.
idCliente
,
this
.
archiviati
).
subscribe
((
res
:
RichiesteResponse
)
=>
{
this
.
utilService
.
closeLoading
();
if
(
res
.
error
){
this
.
utilService
.
presentAlert
(
"Errore"
,
""
,
res
.
error
,
[
"OK"
]);
...
...
@@ -265,6 +277,79 @@ upload(str:any)
}
}
richiestaId
;
checkSelected
(
id
)
{
this
.
richiestaId
=
id
;
this
.
hideButtons
()
this
.
pareri
.
forEach
(
this
.
check
,
this
);
}
check
(
richiesta
:
Richiesta
,
index
)
{
if
(
richiesta
.
checked
&&
richiesta
.
idRichiesta
!=
this
.
richiestaId
)
this
.
showButtons
();
if
(
!
richiesta
.
checked
&&
richiesta
.
idRichiesta
==
this
.
richiestaId
)
this
.
showButtons
();
}
showButtons
()
{
var
buttons
=
document
.
getElementById
(
'buttons'
);
buttons
.
setAttribute
(
"style"
,
"display:block"
);
}
hideButtons
()
{
var
buttons
=
document
.
getElementById
(
'buttons'
);
buttons
.
setAttribute
(
"style"
,
"display:none"
);
}
pareriSelezionati
:
Array
<
number
>
;
error
:
string
;
archiviaPareri
(
archiviare
:
boolean
)
{
this
.
utilService
.
showLoading
();
this
.
pareriSelezionati
=
new
Array
();
this
.
pareri
.
forEach
(
this
.
raccogliPareri
,
this
);
this
.
parereService
.
archiviaPareri
(
this
.
idCliente
,
archiviare
,
this
.
pareriSelezionati
).
subscribe
((
res
:
ArchiviaRichiestaResponse
)
=>
{
this
.
utilService
.
closeLoading
();
if
(
res
.
error
){
this
.
utilService
.
presentAlert
(
"Errore"
,
""
,
res
.
error
,
[
"OK"
]);
}
else
{
if
(
res
.
richiesteNonArchiviate
.
length
>
0
)
{
this
.
error
=
"Questa è la lista degli errori:
\
r
\
n"
res
.
richiesteNonArchiviate
.
forEach
(
this
.
getErrori
,
this
);
this
.
utilService
.
presentAlert
(
"Errore"
,
""
,
this
.
error
,
[
"OK"
]);
}
else
{
this
.
hideButtons
();
this
.
loadPareri
(
"initial"
);
this
.
apriLista
();
}
}
},
(
error
:
ErrorResponse
)
=>
{
this
.
utilService
.
closeLoading
();
if
(
error
!=
null
&&
error
.
errorMsg
!=
null
)
this
.
utilService
.
presentAlert
(
"Errore"
,
""
,
error
.
errorMsg
,
[
"OK"
]);
else
if
(
error
!=
null
)
this
.
utilService
.
presentAlert
(
"Errore"
,
""
,
error
,
[
"OK"
]);
else
this
.
utilService
.
presentAlert
(
"Errore"
,
""
,
"Errore durante la procedura di creazione nuovo Topic"
,
[
"OK"
]);
});
}
getErrori
(
errore
:
Richiesta
,
index
)
{
this
.
error
=
"Richiesta n° "
+
errore
.
idRichiesta
+
":"
+
errore
.
errorText
;
}
raccogliPareri
(
richiesta
:
Richiesta
,
index
)
{
if
(
richiesta
.
checked
)
this
.
pareriSelezionati
.
push
(
richiesta
.
idRichiesta
);
}
ngOnInit
()
{
}
...
...
src/app/service/parere.service.ts
View file @
155a7a2f
import
{
ArchiviaRichiestaRequest
}
from
'../interface/archivia-richiesta-request'
;
import
{
ParereResponse
}
from
'./../interface/parere-response'
;
import
{
Injectable
}
from
'@angular/core'
;
import
{
UtilService
}
from
'../service/util.service'
;
import
{
HttpClient
,
HttpErrorResponse
}
from
'@angular/common/http'
;
import
{
HttpClientDataService
}
from
'../service/http-client-data.service'
;
import
{
RichiesteResponse
}
from
'../interface/richieste-response'
;
import
{
ArchiviaRichiestaResponse
}
from
'src/app/interface/archivia-richiesta-response'
;
import
{
Observable
,
of
}
from
'rxjs'
;
import
{
RichiesteRequest
}
from
'../interface/richieste-request'
;
import
{
Pair
}
from
'./../interface/pair'
;
...
...
@@ -32,7 +34,7 @@ export class ParereService {
};
}
creaRichiesta
(
id
,
limite
,
dataDa
,
dataA
):
RichiesteRequest
creaRichiesta
(
id
,
limite
,
dataDa
,
dataA
,
archiviati
):
RichiesteRequest
{
var
request
:
RichiesteRequest
;
var
pair
:
Pair
;
...
...
@@ -57,6 +59,16 @@ export class ParereService {
pairs
.
push
(
pair
);
}
if
(
archiviati
!=
null
)
{
pair
=
{
key
:
"archiviato"
,
value
:
archiviati
,
type
:
"boolean"
}
pairs
.
push
(
pair
);
}
pair
=
{
key
:
"tipo"
,
value
:
"PARERE"
,
...
...
@@ -91,6 +103,39 @@ export class ParereService {
return
request
;
}
creaRichiestaArchiviazione
(
id
,
archiviare
,
pareriSelezionati
):
ArchiviaRichiestaRequest
{
var
request
:
ArchiviaRichiestaRequest
;
request
=
{
cliente
:
id
,
daArchiviare
:
archiviare
,
listaRichieste
:
pareriSelezionati
};
return
request
;
}
archiviaPareri
(
id
,
archiviare
,
pareriSelezionati
)
{
var
richiesta
=
this
.
creaRichiestaArchiviazione
(
id
,
archiviare
,
pareriSelezionati
);
var
param
=
this
.
encodeArchiviaRichiesta
(
richiesta
);
return
this
.
httpClient
.
post
<
ArchiviaRichiestaResponse
>
(
this
.
httpClientDataService
.
BASE_ADDRESS
+
'/intranet/setrichiestedaarchiviare.do'
,
param
,
this
.
httpClientDataService
.
httpOptionsJson
)
.
pipe
(
catchError
(
this
.
handleError
),
tap
(
(
res
:
ArchiviaRichiestaResponse
)
=>
{
if
(
!
res
.
error
)
{
this
.
errorRespose
.
error
=
false
;
return
res
;
}
else
{
this
.
errorRespose
.
error
=
true
;
this
.
errorRespose
.
errorMsg
=
res
.
error
;
}
})
);
}
newParere
(
id
,
title
,
question
,
file
:
string
,
nomeFile
:
string
)
{
...
...
@@ -137,9 +182,9 @@ export class ParereService {
);
}
getListaPareri(idCliente: string): Observable<RichiesteResponse>
getListaPareri(idCliente: string
, archiviati: boolean
): Observable<RichiesteResponse>
{
var richiesta = this.creaRichiesta(idCliente, 10, null, null);
var richiesta = this.creaRichiesta(idCliente, 10, null, null
, archiviati
);
var param = this.encodeBody(richiesta);
return this.httpClient.post<RichiesteResponse>(this.httpClientDataService.BASE_ADDRESS+'
/
intranet
/
richieste
.
do
', param, this.httpClientDataService.httpOptionsJson)
.pipe(
...
...
@@ -182,7 +227,7 @@ export class ParereService {
filtro = params.filtri[i];
if(first) first = false;
else request += ", ";
if(filtro.type == "int")
if(filtro.type == "int"
|| filtro.type == "boolean"
)
request += "
\
""+filtro.key + "
\
":"+filtro.value;
else
request += "
\
""+filtro.key + "
\
":
\
""+filtro.value+"
\
"";
...
...
@@ -197,4 +242,21 @@ export class ParereService {
else request = "{
\
"cliente
\
" : "+params.cliente+",
\
"richiesta
\
" : "+params.richiesta+",
\
"titolo
\
" :
\
""+params.titolo+"
\
",
\
"testo
\
" :
\
""+params.testo+"
\
",
\
"tipo
\
" :
\
""+params.tipo+"
\
",
\
"file
\
" :
\
""+params.file+"
\
",
\
"nomeFile
\
" :
\
""+params.nomeFile+"
\
"}";
return request;
}
encodeArchiviaRichiesta(params: ArchiviaRichiestaRequest)
{
var request ="{
\
"cliente
\
" : " + params.cliente + ",
\
"daArchiviare
\
" : " + params.daArchiviare + ",
\
"listaRichieste
\
" : [";
var first = true;
for(let richiesta of params.listaRichieste)
{
if(first)
{
first = false;
request += "
\
""+richiesta+"
\
"";
}
else request += ",
\
""+richiesta+"
\
"";
}
request += "]}";
return request;
}
}
src/global.scss
View file @
155a7a2f
...
...
@@ -850,6 +850,11 @@ ion-menu{
}
.chat-list
{
border-bottom
:
1px
solid
$grigio-lite
;
.check
{
float
:
left
;
margin-top
:
19px
;
margin-right
:
15px
;
}
}
.row-chat-list
{
border-bottom
:
$grigio-superlite
;
...
...
@@ -997,6 +1002,10 @@ ion-menu{
font-size
:
13px
;
padding-bottom
:
15px
;
margin-bottom
:
5px
;
.check
{
float
:
left
;
margin-right
:
10px
;
}
input
[
type
=
input
]
{
font-size
:
15px
;
display
:
inline-block
;
...
...
@@ -1029,6 +1038,11 @@ ion-menu{
border-bottom
:
1px
solid
$grigio-superlite
;
}
.date-div
{
border-bottom
:
1px
solid
$grigio-superlite
;
}
.popover-content
{
@media
(
min-width
:
600px
)
{
--min-width
:
400px
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment