Fixe merge

This commit is contained in:
Peter Maquiran
2021-04-30 14:50:15 +01:00
59 changed files with 2802 additions and 387 deletions
+1 -1
View File
@@ -323,7 +323,7 @@
<ion-row class="filter ion-align-items-center">
<div class="filter-name">{{timelineFilterState}}</div>
<!-- Icon -->
<button (click)="showTimelineFilterState=true" class="arrow-down btn-no-color">
<button (click)="showTimelineFilterState=!showTimelineFilterState" class="arrow-down btn-no-color">
<ion-icon src="assets/images/icons-arrow-arrow-down.svg"></ion-icon>
</button>
@@ -190,7 +190,8 @@ export class EditEventPage implements OnInit {
component: SearchPage,
cssClass: 'modal-width-100-width-background modal',
componentProps: {
type: 'AccoesPresidenciais & ArquivoDespachoElect'
type: 'AccoesPresidenciais & ArquivoDespachoElect',
select: true
}
});
await modal.present();
@@ -111,10 +111,10 @@ export class NewEventPage implements OnInit {
close(){
this.modalController.dismiss();
}
async save(){
/* console.log(this.postEvent);
async save() {
/* console.log(this.postEvent);
console.log(this.profile); */
if(this.documents.length >= 0) {
this.postEvent.HasAttachments = true;
}
@@ -206,7 +206,9 @@ export class NewEventPage implements OnInit {
component: SearchPage,
cssClass: 'modal-width-100-width-background modal',
componentProps: {
type: 'AccoesPresidenciais & ArquivoDespachoElect'
type: 'AccoesPresidenciais & ArquivoDespachoElect',
showSearchInput: true,
select: true
}
});
await modal.present();
@@ -1,36 +1,52 @@
<!-- <ion-header class="ion-no-border">
<ion-toolbar class="header-toolbar">
<div class="main-header">
<div class="title-content">
<div class="left">
<ion-icon (click)="close()" slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
</div>
<div class="middle">
<ion-label class="title">{{loadedEvent.Subject}}</ion-label>
</div>
<div class="div-icon">
<ion-icon class="edit" (click)="editEvent()" slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
<ion-icon class="delete" (click)="deleteEvent()" name="trash-sharp"></ion-icon>
</div>
</div>
</div>
</ion-toolbar>
</ion-header> -->
<ion-menu autoHide="false" side="end" content-id="main-content" >
<ion-header>
<ion-toolbar translucent>
<ion-title>Menu</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item (click)="openExpedientActionsModal('0')">
<ion-icon name="documents" slot="start"></ion-icon>
<ion-label>Efectuar Despacho</ion-label>
</ion-item>
<ion-item (click)="openExpedientActionsModal('1')">
<ion-icon name="arrow-undo" slot="start"></ion-icon>
<ion-label>Pedido de Parecer</ion-label>
</ion-item>
<ion-item (click)="openExpedientActionsModal('2')">
<ion-icon name="arrow-redo" slot="start"></ion-icon>
<ion-label>Pedido de Deferimento</ion-label>
</ion-item>
<ion-item (click)="openBookMeetingModal()">
<ion-icon name="calendar" slot="start"></ion-icon>
<ion-label>Marcar reunião</ion-label>
</ion-item>
<!-- <ion-item (click)="deleteEvent()">
<ion-icon name="trash" slot="start"></ion-icon>
<ion-label>Descartar</ion-label>
</ion-item> -->
</ion-list>
</ion-content>
</ion-menu>
<div class="ion-page d-none" id="main-content">
<ion-menu-button></ion-menu-button>
</div>
<ion-content class="height-100">
<div class="main-content d-flex height-100">
<div class="content d-flex flex-column width-100">
<div class="main-header">
<div class="title-content">
<div class="title-content d-flex justify-between">
<div class="left">
<button class="btn-no-color" (click)="close()">
<button class="btn-no-color d-flex align-center" (click)="close()">
<ion-icon slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
</button>
</div>
<div class="middle">
<div class="middle d-flex align-center flex-grow-1">
<ion-label class="title">{{loadedEvent.Subject}}</ion-label>
</div>
<div class="div-icon">
<div class="div-icon d-flex">
<button class="btn-no-color" (click)="editEvent()">
<ion-icon class="edit" slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
</button>
@@ -43,9 +43,7 @@ ion-menu{
overflow: auto;
}
.div-icon{
width: 92px;
float: right;
overflow: auto;
padding: 1px;
}
.div-icon .edit{
@@ -10,6 +10,7 @@ import { EditEventPage } from '../edit-event/edit-event.page';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { ProcessesService } from 'src/app/services/processes.service';
import { ExpedientTaskModalPage } from '../../gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page';
import { BookMeetingModalPage } from '../../gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
@Component({
selector: 'app-view-event',
@@ -37,6 +38,8 @@ export class ViewEventPage implements OnInit {
months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
dicIndex = 0;
constructor(
private modalController: ModalController,
private navParams: NavParams,
@@ -53,6 +56,7 @@ export class ViewEventPage implements OnInit {
this.eventBody = { BodyType : "1", Text : ""};
this.loadedEvent.Body = this.eventBody;
this.eventId = this.navParams.get('eventId');
}
ngOnInit() {
@@ -181,7 +185,43 @@ export class ViewEventPage implements OnInit {
}
async openExpedientActionsModal(taskAction: any, task: any) {
async openBookMeetingModal() {
const doc = this.loadedAttachments[ this.dicIndex];
let task = {
serialNumber: doc.SourceId,
taskStartDate: doc.CreateDate,
isEvent: true,
workflowInstanceDataFields: {
FsId: doc.ApplicationId,
FolderID: null,
DocId: doc.SourceId,
Subject: doc.SourceName
},
}
let classs;
if( window.innerWidth <= 800){
classs = 'book-meeting-modal modal modal-desktop'
} else {
classs = 'modal modal-desktop showAsideOptions'
}
const modal = await this.modalController.create({
component: BookMeetingModalPage,
componentProps: {
task: task,
},
cssClass: classs,
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
}
async openExpedientActionsModal(taskAction: any) {
//this.modalController.dismiss();
let classs;
if( window.innerWidth <= 800){
@@ -189,6 +229,21 @@ export class ViewEventPage implements OnInit {
} else {
classs = 'modal modal-desktop showAsideOptions'
}
const doc = this.loadedAttachments[ this.dicIndex];
let task = {
serialNumber: doc.SourceId,
taskStartDate: doc.CreateDate,
isEvent: true,
workflowInstanceDataFields: {
FsId: doc.ApplicationId,
FolderID: null,
DocId: doc.SourceId,
Subject: doc.SourceName
},
}
const modal = await this.modalController.create({
component: ExpedientTaskModalPage,
componentProps: {
+1 -1
View File
@@ -264,7 +264,7 @@ export class EventsPage implements OnInit {
async viewEventDetail(eventId:any) {
let classs;
if( window.innerWidth <= 800){
classs = 'modal'
classs = 'modal modal-desktop'
} else {
classs = 'modal modal-desktop showAsideOptions'
}
@@ -1,11 +1,11 @@
<ion-header class="ion-no-border">
<div class="header-content mx-20 d-flex justify-start">
<div class="header-content mx-20 d-flex justify-between">
<div class="header-icon-left">
<button class="btn-no-color" (click)="close()">
<ion-icon src="assets/images/icons-arrow-arrow-left.svg"></ion-icon>
</button>
</div>
<div class="header-title flex-md-grow-1">
<div class="header-title flex-grow-1">
<label>{{loadedEvent.workflowInstanceDataFields.Subject}}</label>
</div>
<div class="header-icon-right">
@@ -38,23 +38,24 @@
</ion-menu>
<ion-content id="main-content">
<div class="upper-content">
<div class="content-location">
<div class="location-detail">
<div class="upper-content d-flex width-100">
<div class="content-location d-flex justify-between width-100">
<div class="location-detail flex-grow-1">
<ion-label >{{loadedEvent.workflowInstanceDataFields.Location}}</ion-label>
<div class="content-details">
<ion-label>
<p>1 {{customDate}}</p>
<p>2 das {{loadedEvent.workflowInstanceDataFields.StartDate | date: 'hh:mm'}} às {{loadedEvent.workflowInstanceDataFields.EndDate | date: 'hh:mm'}}</p>
<p *ngIf="!loadedEvent.workflowInstanceDataFields.IsRecurring">3 (Não se repete)</p>
<p *ngIf="loadedEvent.workflowInstanceDataFields.IsRecurring">4 Repete</p>
</ion-label>
</div>
</div>
<div class="button-calendar-type">
<div class="button-calendar-type d-flex flex-grow-1 justify-end">
<ion-button class="button-calendar-type" slot="end">{{loadedEvent.workflowInstanceDataFields.Agenda}}</ion-button>
</div>
</div>
<div class="content-details">
<ion-label>
<p>{{customDate}}</p>
<p>das {{loadedEvent.workflowInstanceDataFields.StartDate | date: 'hh:mm'}} às {{loadedEvent.workflowInstanceDataFields.EndDate | date: 'hh:mm'}}</p>
<p *ngIf="!loadedEvent.workflowInstanceDataFields.IsRecurring">(Não se repete)</p>
<p *ngIf="loadedEvent.workflowInstanceDataFields.IsRecurring">Repete</p>
</ion-label>
</div>
</div>
<div class="middle-content">
<div *ngIf="loadedEvent.workflowInstanceDataFields.Participants">
@@ -18,7 +18,6 @@ ion-menu{
float: left;
}
.header-title{
width: 264px;
font-family: Roboto;
font-size: 25px;
margin: 0 5px 0 5px;
@@ -33,19 +32,17 @@ ion-menu{
overflow: auto;
}
.upper-content{
margin-left: 50px;
padding-left: 50px;
overflow: auto;
font-size: 18px;
.content-location{
width: 360px;
margin: 0 auto;
padding: 0;
overflow: auto;
}
.location-detail{
width: 210px;
font-weight: 700;
font-size: 18px;
float: left;
@@ -79,7 +76,6 @@ ion-menu{
}
.bottom-content{
width: 360px;
margin: 0 auto;
.bottom-content h3{
@@ -38,14 +38,14 @@ export class ApproveEventModalPage implements OnInit {
private activatedRoute: ActivatedRoute,
) {
this.activatedRoute.paramMap.subscribe(paramMap =>
{
if (!paramMap.has("serialNumber")){
return;
}
else{
this.serialNumber = paramMap.get('serialNumber');
}
});
{
if (!paramMap.has("serialNumber")){
return;
}
else{
this.serialNumber = paramMap.get('serialNumber');
}
});
}
ngOnInit() {
@@ -1,9 +1,9 @@
<ion-header class="ion-no-border">
<div *ngIf="loadedEvent" class="header-content">
<div *ngIf="loadedEvent" class="header-content d-flex justify-between">
<div class="header-icon-left">
<ion-icon (click)="close()" src="assets/images/icons-arrow-arrow-left.svg"></ion-icon>
</div>
<div class="header-title">
<div class="header-title flex-grow-1">
<label>{{loadedEvent.workflowInstanceDataFields.Subject}}</label>
</div>
<div class="header-icon-right">
@@ -55,7 +55,7 @@
</div>
</div>
<div class="line"></div>
<div class="middle-content" *ngIf="loadedEvent">
<div class="middle-content overflow-y-auto" *ngIf="loadedEvent">
<h5>Intervenientes</h5>
<ion-item>
<ion-label>
@@ -155,7 +155,7 @@
</div>
</div>
<div hidden class="ion-item-container-no-border">
<div class="ion-item-container-no-border">
<ion-label>
<div class="attach-icon">
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
@@ -166,19 +166,23 @@
</ion-label>
</div>
<div *ngIf="loadedAttachments">
<ion-item>
<ion-label>Documentos Anexados</ion-label>
</ion-item>
<div class="list " *ngFor="let document of documents; let i = index" >
<ion-list>
<ion-item *ngFor="let attachment of loadedAttachments">
<ion-item>
<ion-label>
<h4 class="attach-title-item">{{attachment.Description}}</h4>
<p><span class="span-left">{{attachment.Stakeholders}}</span><span class="span-right"> {{ attachment.CreateDate | date: 'dd/MM/yyyy' }}</span></p>
<p class="d-flex ion-justify-content-between">
<span class="attach-title-item">{{document.Assunto}}</span>
<span class="app-name">{{document.appName}}</span>
<span class="close-button text-black" (click)="removeAttachment(i)" >
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
</span>
</p>
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yy'}} </span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
</div>
@@ -145,4 +145,65 @@
justify-content: space-between;
padding: 20px;
overflow: auto;
}
.attach-icon{
width: 37px;
font-size: 35px;
float: left;
}
.attach-title-item{
width: 100%;
font-size: 15px;
color:#0d89d1;
}
/* SPAN */
.span-left{
float: left;
font-size: 15x;
}
.span-right{
text-align: right;
float: right;
font-size: 13px;
}
.app-name{
background: #42b9f2;
border-radius: 18px;
text-align: center;
display: flex;
align-items: center;
padding: 0px 5px;
color: white;
font-size: 9pt;
font-weight: 500;
height: 19px;
-webkit-border-radius: 18px;
-moz-border-radius: 18px;
-ms-border-radius: 18px;
-o-border-radius: 18px;
}
.close-button {
display: none;
}
.list:hover {
.app-name {
display: none;
}
.close-button {
display: block !important;
}
}
@@ -10,6 +10,8 @@ import { EventPerson } from 'src/app/models/eventperson.model';
import { EventsService } from 'src/app/services/events.service';
import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart-expedient-modal.page';
import { AttachmentsService } from 'src/app/services/attachments.service';
import { SearchPage } from 'src/app/pages/search/search.page';
import { SearchDocument } from 'src/app/models/search-document';
@Component({
selector: 'app-book-meeting-modal',
@@ -26,6 +28,7 @@ export class BookMeetingModalPage implements OnInit {
taskDocId:string;
loadedAttachments:any;
documents:SearchDocument[] = [];
adding: "intervenient" | "CC" = "intervenient";
@@ -220,6 +223,32 @@ export class BookMeetingModalPage implements OnInit {
modal.onDidDismiss();
}
async getDoc(){
const modal = await this.modalController.create({
component: SearchPage,
cssClass: 'modal-width-100-width-background modal',
componentProps: {
type: 'AccoesPresidenciais & ArquivoDespachoElect',
showSearchInput: true
}
});
await modal.present();
modal.onDidDismiss().then((res)=> {
if(res){
const data = res.data;
this.documents.push(data.selected);
}
});
}
removeAttachment(index: number){
this.documents = this.documents.filter( (e, i) => index != i);
}
validateFormInputs(){
let formLocation = this.postData.Location.trim();
@@ -89,8 +89,8 @@
</div>
</div>
<div hidden class="ion-item-container-no-border">
<ion-label>
<div class="ion-item-container-no-border" (click)="getDoc()">
<ion-label class="d-flex ">
<div class="attach-icon">
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
</div>
@@ -100,19 +100,23 @@
</ion-label>
</div>
<div *ngIf="loadedAttachments">
<ion-item>
<ion-label>Documentos Anexados</ion-label>
</ion-item>
<div class="list " *ngFor="let document of documents; let i = index" >
<ion-list>
<ion-item *ngFor="let attachment of loadedAttachments">
<ion-item>
<ion-label>
<h4 class="attach-title-item">{{attachment.Description}}</h4>
<p><span class="span-left">{{attachment.Stakeholders}}</span><span class="span-right"> {{ attachment.CreateDate | date: 'dd/MM/yyyy' }}</span></p>
<p class="d-flex ion-justify-content-between">
<span class="attach-title-item">{{document.Assunto}}</span>
<span class="app-name">{{document.appName}}</span>
<span class="close-button text-black" (click)="removeAttachment(i)" >
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
</span>
</p>
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yy'}} </span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
@@ -125,4 +125,101 @@
.aside-content{
display: block;
}
}
.attach-icon{
width: 37px;
font-size: 35px;
float: left;
}
.attach-title-item{
width: 100%;
font-size: 15px;
color:#0d89d1;
}
/* SPAN */
.span-left{
float: left;
font-size: 15x;
}
.span-right{
text-align: right;
float: right;
font-size: 13px;
}
.app-name{
background: #42b9f2;
border-radius: 18px;
text-align: center;
display: flex;
align-items: center;
padding: 0px 5px;
color: white;
font-size: 9pt;
font-weight: 500;
height: 19px;
-webkit-border-radius: 18px;
-moz-border-radius: 18px;
-ms-border-radius: 18px;
-o-border-radius: 18px;
}
.close-button {
display: none;
}
.list:hover {
.app-name {
display: none;
}
.close-button {
display: block !important;
}
}
.app-name{
background: #42b9f2;
border-radius: 18px;
text-align: center;
display: flex;
align-items: center;
padding: 0px 5px;
color: white;
font-size: 9pt;
font-weight: 500;
height: 19px;
-webkit-border-radius: 18px;
-moz-border-radius: 18px;
-ms-border-radius: 18px;
-o-border-radius: 18px;
}
.close-button {
display: none;
}
.list:hover {
.app-name {
display: none;
}
.close-button {
display: block !important;
}
}
@@ -14,6 +14,10 @@ import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart
import { AttachmentsService } from 'src/app/services/attachments.service';
import { ExpedienteDetailPage } from '../expediente-detail/expediente-detail.page';
import { AlertService } from 'src/app/services/alert.service';
import { SearchPage } from 'src/app/pages/search/search.page';
import { SearchDocument } from 'src/app/models/search-document';
import { EventAttachment } from 'src/app/models/attachment.model';
import { User } from 'src/app/models/user.model';
@Component({
selector: 'app-expedient-task-modal',
@@ -36,7 +40,10 @@ export class ExpedientTaskModalPage implements OnInit {
taskDate: Date;
taskDescription: string;
user: string;
loadedAttachments:any;
documents:SearchDocument[] = [];
subjectTypes:any;
postData: Despacho;
@@ -53,6 +60,10 @@ export class ExpedientTaskModalPage implements OnInit {
emptyTextDescription = "Sem intervenientes selecionados";
showEmptyContainer = true;
taskResult: any = {}
loggeduser: User;
constructor(
private modalController: ModalController,
private router:Router,
@@ -60,7 +71,12 @@ export class ExpedientTaskModalPage implements OnInit {
private attachmentsService: AttachmentsService,
private navParams: NavParams,
private alertController: AlertService,
private authService: AuthService) {
private authService: AuthService,
private userAuth: AuthService) {
this.loggeduser = userAuth.ValidatedUser;
this.user = environment.defaultuser +'@'+ environment.domain;
this.task = this.navParams.get('task');
@@ -124,7 +140,8 @@ export class ExpedientTaskModalPage implements OnInit {
this.modalController.dismiss(null);
}
saveTask(){
async saveTask(){
if(this.postData.Priority=='99999861'){
this.dispatchFolder.DeadlineType = 'Normal';
@@ -140,6 +157,7 @@ export class ExpedientTaskModalPage implements OnInit {
}
let attendees = this.taskParticipants.concat(this.taskParticipantsCc);
attendees = attendees.map(function(val) {
return {
UserEmail: val.EmailAddress,
@@ -147,6 +165,16 @@ export class ExpedientTaskModalPage implements OnInit {
};
})
const DocumentToSave = this.documents.map((e) => {
return {
ProcessInstanceID: '',
"Source": "webTRIX",
"UserId": this.loggeduser.UserId.toString(),
"Attachment": `${e.ApplicationType}@DOC@${e.Id}`
};
});
if(this.taskParticipants.length > 0) {
switch (this.taskType) {
case '0':
@@ -158,9 +186,10 @@ export class ExpedientTaskModalPage implements OnInit {
SubjectTypeId: this.postData.SubjectTypeId,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: DocumentToSave
}
console.log('this.postData', this.postData, this.taskType);
this.processes.postDespatcho(this.postData);
this.taskResult = await this.processes.postDespatcho(this.postData);
break;
case '1':
this.postData = {
@@ -171,9 +200,10 @@ export class ExpedientTaskModalPage implements OnInit {
SubjectTypeId: this.postData.SubjectTypeId,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: DocumentToSave
}
console.log(this.postData);
this.processes.postParecer(this.postData);
this.taskResult = await this.processes.postParecer(this.postData);
break;
case '2':
this.postData = {
@@ -184,9 +214,10 @@ export class ExpedientTaskModalPage implements OnInit {
SubjectTypeId: this.postData.SubjectTypeId,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: DocumentToSave
}
console.log(this.postData);
this.processes.postDeferimento(this.postData);
this.taskResult = await this.processes.postDeferimento(this.postData);
break;
}
@@ -363,6 +394,28 @@ export class ExpedientTaskModalPage implements OnInit {
}
async getDoc(){
const modal = await this.modalController.create({
component: SearchPage,
cssClass: 'modal-width-100-width-background modal',
componentProps: {
type: 'AccoesPresidenciais & ArquivoDespachoElect',
showSearchInput: true
}
});
await modal.present();
modal.onDidDismiss().then((res)=>{
if(res){
const data = res.data;
this.documents.push(data.selected);
}
});
}
removeAttachment(index: number){
this.documents = this.documents.filter( (e, i) => index != i);
}
}
@@ -24,15 +24,15 @@
</ion-header>
<ion-content>
<ion-list>
<ion-item (click)="openExpedientActionsModal('0',fulltask)">
<ion-item (click)="openExpedientActionsModal('0', fulltask)">
<ion-icon name="documents" slot="start"></ion-icon>
<ion-label>Efectuar Despacho</ion-label>
</ion-item>
<ion-item (click)="openExpedientActionsModal('1',fulltask)">
<ion-item (click)="openExpedientActionsModal('1', fulltask)">
<ion-icon name="arrow-undo" slot="start"></ion-icon>
<ion-label>Pedido de Parecer</ion-label>
</ion-item>
<ion-item (click)="openExpedientActionsModal('2',fulltask)">
<ion-item (click)="openExpedientActionsModal('2', fulltask)">
<ion-icon name="arrow-redo" slot="start"></ion-icon>
<ion-label>Pedido de Deferimento</ion-label>
</ion-item>
@@ -58,10 +58,10 @@
<ion-content>
<div class="main-content d-flex height-100">
<div class="content d-flex flex-column" *ngIf="task">
<div class="main-header">
<div class="title-content">
<div class="main-header" style="overflow: unset !important;">
<div class="title-content d-flex justify-between">
<app-btn-modal-dismiss></app-btn-modal-dismiss>
<div class="middle">
<div class="middle flex-grow-1">
<ion-label class="title">{{ task.Folio}}</ion-label>
</div>
<div class="div-icon">
@@ -71,7 +71,7 @@
</div>
</div>
</div>
<div class="upper-content">
<div class="upper-content" style="overflow: unset !important;">
<div class="content-details">
<ion-label>
<p><span class="date">{{customDate}}</span><span class="label">Expediente</span></p>
@@ -80,72 +80,75 @@
</div>
</div>
<div class="line"></div>
<div class="middle-content">
<h5 *ngIf="intervenientes">Intervenientes</h5>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<div *ngFor="let interveniente of intervenientes">
<p>{{interveniente.Name}}</p>
</div>
</ion-label>
</ion-item>
<div *ngIf="cc.length > 0">
<h5>Com conhecimento</h5>
<div class="overflow-y-auto">
<div class="middle-content">
<h5 *ngIf="intervenientes">Intervenientes</h5>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<div *ngFor="let c of cc">
<p>{{c.Name}}</p>
<div *ngFor="let interveniente of intervenientes">
<p>{{interveniente.Name}}</p>
</div>
</ion-label>
</ion-item>
</div>
<h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding">
<p [innerHTML]="task.Note"></p>
</ion-item>
</div>
<div class="bottom-content width-100">
<ion-list>
<h5>Documentos Anexados</h5>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label
(click)="viewDocument()">
<p class="attach-title-item">{{ task.Folio }}<span class="span-right color-red btn-size"><ion-icon hidden name="close"></ion-icon></span></p>
<p><span class="span-left">{{task.Remetente}}</span><span class="span-right">{{ task.CreateDate | date: 'dd/MM/yy' }}</span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
<div *ngIf="eventsList">
<h3 class="h3-event-title">Eventos Associados</h3>
<ion-list>
<div *ngIf="eventsList">
<ion-item-sliding>
<ion-item
class="Rectangle" lines="none"
*ngFor="let event of eventsList"
(click)="viewEventDetail(event.EventId)"
>
<!-- [routerLink]="['/home/events', event.EventId, 'events']" -->
<div class="content-{{profile}}-{{event.CalendarName}}">
<div class="approve-event-time">
<p>{{event.StartDate | date: 'hh:mm'}}</p>
<p>{{event.EndDate | date: 'hh:mm'}}</p>
</div>
<div class="approve-event-detail">
<p *ngIf="event.StartDate != event.EndDate">{{event.StartDate | date: 'd/M/yy' }} - {{ event.EndDate | date: 'dd/mm/yy'}} | {{event.Location}}</p>
<p *ngIf="event.StartDate == event.EndDate">{{event.StartDate | date: 'd/M/yy' }} | {{event.Location}}</p>
<h3>{{event.Subject}}</h3>
</div>
</div>
</ion-item>
</ion-item-sliding>
<div *ngIf="cc.length > 0">
<h5>Com conhecimento</h5>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<div *ngFor="let c of cc">
<p>{{c.Name}}</p>
</div>
</ion-label>
</ion-item>
</div>
</ion-list>
<h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding">
<p [innerHTML]="task.Note"></p>
</ion-item>
</div>
<div class="bottom-content width-100">
<ion-list>
<h5>Documentos Anexados</h5>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label
(click)="viewDocument()">
<p class="attach-title-item">{{ task.Folio }}<span class="span-right color-red btn-size"><ion-icon hidden name="close"></ion-icon></span></p>
<p><span class="span-left">{{task.Remetente}}</span><span class="span-right">{{ task.CreateDate | date: 'dd/MM/yy' }}</span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
<div *ngIf="eventsList">
<h3 class="h3-event-title">Eventos Associados</h3>
<ion-list>
<div *ngIf="eventsList">
<ion-item-sliding>
<ion-item
class="Rectangle" lines="none"
*ngFor="let event of eventsList"
(click)="viewEventDetail(event.EventId)"
>
<!-- [routerLink]="['/home/events', event.EventId, 'events']" -->
<div class="content-{{profile}}-{{event.CalendarName}} width-100 ">
<div class="approve-event-time">
<p>{{event.StartDate | date: 'hh:mm'}}</p>
<p>{{event.EndDate | date: 'hh:mm'}}</p>
</div>
<div class="approve-event-detail">
<p *ngIf="event.StartDate != event.EndDate">{{event.StartDate | date: 'd/M/yy' }} - {{ event.EndDate | date: 'dd/mm/yy'}} | {{event.Location}}</p>
<p *ngIf="event.StartDate == event.EndDate">{{event.StartDate | date: 'd/M/yy' }} | {{event.Location}}</p>
<h3>{{event.Subject}}</h3>
</div>
</div>
</ion-item>
</ion-item-sliding>
</div>
</ion-list>
</div>
</div>
</div>
<div class="aside-right flex-column height-100">
<div class="buttons">
<button (click)="openExpedientActionsModal('0',fulltask)" class="btn-ok" shape="round" >Efectuar Despacho</button>
@@ -201,6 +204,7 @@
</ion-button>
</ion-list>
</div>
</div>
</ion-content>
@@ -20,7 +20,7 @@
</div>
<div class="aside overflow-y-auto d-flex flex-wrap width-100">
<div [class.active]="selectedElement == 'approval'" (click)="openEventsToApprovePage('MDGPR');selectedElement='approval'" class="exp-card d-flex flex-column" >
<div [class.active]="selectedElementF('approval')" (click)="openEventsToApprovePage('MDGPR');selectedElement='approval'" class="exp-card d-flex flex-column" >
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-agenda.svg"></ion-icon>
</div>
@@ -28,7 +28,7 @@
<p class="text-center exp-card-content">{{count_ev_md+count_ev_pr}} <span class="title1">Documentos</span></p>
</div>
<div [class.active]="selectedElement == 'Correspondence'" (click)="openExpedientListPage(); selectedElement='Correspondence'" class="exp-card d-flex flex-column justify-center" >
<div [class.active]="selectedElementF('Correspondence')" (click)="openExpedientListPage(); selectedElement='Correspondence'" class="exp-card d-flex flex-column justify-center" >
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-correspondencia.svg"></ion-icon>
</div>
@@ -36,7 +36,8 @@
<p class="text-center exp-card-content">{{count_exp_dailywork}} <span class="title1">Documentos</span></p>
</div>
<div [class.active]="selectedElement == 'Pending'" (click)="openPendentesPage(); selectedElement='Pending'" class="exp-card d-flex flex-column justify-center" >
<!-- <div [class.active]="selectedElement == 'Pending'" (click)="openPendentesPage(); selectedElement='Pending'" class="exp-card d-flex flex-column justify-center" > -->
<div [class.active]="selectedElementF('Pending')" (click)="notImplemented()" class="exp-card d-flex flex-column justify-center" >
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-expediente-pendente.svg"></ion-icon>
</div>
@@ -45,7 +46,7 @@
<p class="text-center exp-card-content"><span class="number">{{this.count_desp_pending + count_def_pending + count_par_pending}}</span> <span class="title1">Documentos</span></p>
</div>
<div [class.active]="selectedElement == 'Dispatches'" class="exp-card d-flex flex-column justify-center" (click)="openDespachosPage(); selectedElement='Dispatches'">
<div [class.active]="selectedElementF('Dispatches') " class="exp-card d-flex flex-column justify-center" (click)="openDespachosPage(); selectedElement='Dispatches'">
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
</div>
@@ -53,7 +54,7 @@
<p class="text-center exp-card-content">{{count_desp_dailywork}}<span class="title1">Documentos</span> </p>
</div>
<div [class.active]="selectedElement == 'RequestsForOpinion'" class="exp-card d-flex flex-column justify-center" (click)="openPedidosPage('parecer'); selectedElement='RequestsForOpinion'">
<div [class.active]="selectedElementF('RequestsForOpinion')" class="exp-card d-flex flex-column justify-center" (click)="openPedidosPage('parecer'); selectedElement='RequestsForOpinion'">
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-expediente-parecer.svg"></ion-icon>
</div>
@@ -61,14 +62,16 @@
<p class="text-center exp-card-content">{{count_par_dailywork}} <span class="title1">Documentos</span></p>
</div>
<div [class.active]="selectedElement == 'RequestForApproval'" class="exp-card d-flex flex-column justify-center" (click)="openPedidosPage('deferimento'); selectedElement = 'RequestForApproval'">
<div [class.active]="selectedElementF('RequestForApproval')" class="exp-card d-flex flex-column justify-center" (click)="openPedidosPage('deferimento'); selectedElement = 'RequestForApproval'">
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-expediente-deferimento.svg"></ion-icon>
</div>
<p class="text-center exp-card-title ">Pedidos de Deferimento</p>
<p class="text-center exp-card-content">{{count_def_dailywork}} <span class="title1">Documentos</span></p>
</div>
<div [class.active]="selectedElement == '£££££££'" class="exp-card d-flex d-none flex-column justify-center" (click)="notImplemented()">
<!-- Desktop -->
<div [class.active]="selectedElementF('£££££££')" class="exp-card d-md-flex d-none flex-column justify-center" (click)="notImplemented()">
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-expediente-presidente.svg"></ion-icon>
</div>
@@ -76,7 +79,8 @@
<p class="text-center exp-card-content"><span class="number">-</span> <span class="title1">Documentos</span></p>
</div>
<div [class.active]="selectedElement == '£££££££'" class="exp-card d-flex d-none flex-column justify-center" (click)="notImplemented()">
<!-- Desktop -->
<div [class.active]="selectedElementF('£££££££')" class="exp-card d-md-flex d-none flex-column justify-center" (click)="notImplemented()">
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
</div>
@@ -84,7 +88,8 @@
<p class="text-center exp-card-content"><span class="number">-</span> <span class="title1">Documentos</span> </p>
</div>
<div [class.active]="selectedElement == '£££££££'" class="exp-card-long justify-center width-100" (click)="notImplemented()">
<div [class.active]="selectedElementF('£££££££')" class="exp-card-long justify-center width-90 ma-0 my-5 background-white" (click)="notImplemented()"
style=" box-shadow: 0 0 10px 0 rgb(0 0 0 / 7%);">
<div class="center-div">
<div class="exp-card-icon">
<ion-icon src="assets/images/icons-expediente-presidente.svg"></ion-icon>
@@ -96,7 +101,8 @@
</div>
</div>
<div [class.active]="selectedElement == '£££££££'" class="exp-card-long width-100" (click)="notImplemented()">
<div [class.active]="selectedElementF('£££££££')" class="exp-card-long width-90 ma-0 my-5 background-white" (click)="notImplemented()"
style="box-shadow: 0 0 10px 0 rgb(0 0 0 / 7%);">
<div class="center-div">
<div class="exp-card-icon">
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
@@ -108,7 +114,7 @@
</div>
</div>
<div [class.active]="selectedElement == '£££££££'" class="exp-card d-flex flex-column justify-center" (click)="notImplemented()">
<div [class.active]="selectedElementF('£££££££')" class="exp-card d-flex flex-column justify-center" (click)="notImplemented()">
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-expediente-diploma.svg"></ion-icon>
</div>
@@ -116,7 +122,7 @@
<p class="text-center exp-card-content"><span class="number">-</span> <span class="title1">Documentos</span> </p>
</div>
<div [class.active]="selectedElement == '£££££££'" class="exp-card d-flex flex-column justify-center" (click)="notImplemented()">
<div [class.active]="selectedElementF('£££££££')" class="exp-card d-flex flex-column justify-center" (click)="notImplemented()">
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-diplomas-assinados-presidente.svg"></ion-icon>
</div>
@@ -289,4 +289,11 @@ export class GabineteDigitalPage implements OnInit {
}
selectedElementF(element:string) {
if (window.innerWidth >= 800) {
return element == this.selectedElement
}
return false;
}
}
+1 -1
View File
@@ -82,7 +82,7 @@ export class LoginPage implements OnInit {
}
getToken() {
this.notificatinsservice.getAndpostToken(this.username);
// this.notificatinsservice.getAndpostToken(this.username);
}
@@ -163,8 +163,8 @@ export class PublicationsPage implements OnInit {
/* let item = this.publicationFolderList; */
const modal = await this.modalController.create({
component: ViewPublicationsPage,
enterAnimation,
leaveAnimation,
//enterAnimation,
//leaveAnimation,
componentProps:{
folderId:folderId,
},
@@ -14,14 +14,12 @@
--padding-start: 0px !important;
--padding-right: 0px !important;
--padding-end: 0px !important;
}
.div-top-header{
width: 400px;
margin: 0 auto;
background-color: #0782c9;
overflow: auto;
padding-top: 15px;
border: 0!important;
}
@@ -62,7 +60,7 @@
font-family: Roboto;
margin: 0 auto;
background-color: #fff;
overflow:auto;
padding: 15px 20px 0 20px;
}
.content-top{
@@ -91,10 +89,10 @@
}
.back-icon{
width: 37px;
float: left;
font-size: 35px;
overflow: auto;
}
.div-title{
@@ -107,10 +105,7 @@
}
.actions-icon{
width: 92px;
float: right;
overflow: auto;
border: 1px solid red;
}
.actions-icon ion-icon{
margin-left: 10px;
@@ -110,7 +110,7 @@ export class ViewPublicationsPage implements OnInit {
folderId: this.folderId,
},
cssClass: 'publication-detail modal modal-desktop',
backdropDismiss: false
// backdropDismiss: false
});
await modal.present();
modal.onDidDismiss().then(()=>{
+3 -3
View File
@@ -4,7 +4,7 @@
<ion-progress-bar type="indeterminate" class="loader" *ngIf="showLoader"></ion-progress-bar>
<div class="d-flex ion-justify-content-between">
<ion-form [class.d-md-none]="!select">
<ion-form [class.d-none]="!showSearchInput">
<div class="d-flex search-input-container ion-justify-content-between" >
<div class="icon">
<button class="btn-no-color" (click)="basicSearch()">
@@ -26,7 +26,7 @@
<div *ngIf="!showAdvanceSearch" class="icon-z icon-most-searched-word-open" (click)="showHideAdvanceSearch(true)">
<ion-icon src="assets/images/icons-most-searched-words-open.svg" class="icon" slot="end"></ion-icon>
</div>
<div *ngIf="showAdvanceSearch" class="icon-z icon-most-searched-word-open align-md-baseline" (click)="showHideAdvanceSearch(false)" >
<div *ngIf="showAdvanceSearch" class="icon-z icon-most-searched-word-open align-md-baseline pl-10" (click)="showHideAdvanceSearch(false)" >
<ion-icon src="assets/images/advance-search-show-modal.svg" class="icon" slot="end"></ion-icon>
</div>
@@ -141,7 +141,7 @@
</div>
</div>
<ul>
<li *ngFor="let searchDocument of showSearchDocuments" (click)="viewDetail(searchDocument.Id); selectItem(searchDocument)" class="d-flex">
<li *ngFor="let searchDocument of showSearchDocuments" (click)="viewDetail( searchDocument); selectItem(searchDocument)" class="d-flex">
<div class="icon">
<ion-icon *ngIf="itemIcons() == 'AccoesPresidenciais & ArquivoDespachoElect' "
src="assets/images/icons-search-document.svg"></ion-icon>
+27 -17
View File
@@ -55,6 +55,8 @@ export class SearchPage implements OnInit {
type : "Agenda" | "Correspondencia" | "AccoesPresidenciais" | "ArquivoDespachoElect" | "AccoesPresidenciais & ArquivoDespachoElect" = "Agenda";
select: boolean = false;
showSearchInput = false
constructor(private modalController: ModalController,
private search: SearchService,
private modalCtrl: ModalController,
@@ -63,12 +65,15 @@ export class SearchPage implements OnInit {
this.currentPath= window.location.pathname;
this.type = this.navParams.get('type');
this.type = this.navParams.get('type');
this.select = this.navParams.get('select');
this.showSearchInput = this.navParams.get('showSearchInput');
if(this.type == null || this.type == undefined) {
this.select = false;
if(this.currentPath == '/home/agenda') {
this.type = "Agenda"
} else if (this.currentPath =='/home/gabinete-digital') {
@@ -77,21 +82,21 @@ export class SearchPage implements OnInit {
} else if (this.currentPath == '/home/publications') {
this.type = "AccoesPresidenciais"
} else {
this.select = false
console.log('search bug!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
}
} else {
this.select = true;
}
}
selectItem(item: SearchDocument) {
if(this.select){
this.modalController.dismiss({
selected: item
});
}
return this.select;
}
ngOnInit() {
@@ -469,31 +474,36 @@ export class SearchPage implements OnInit {
}
async viewDetail(id:any) {
console.log(id);
async viewDetail(searchDocument: SearchDocument) {
const ApplicationType = searchDocument.ApplicationType.toString()
const Id = searchDocument.Id
if(!this.selectItem){
if(window.location.pathname == '/home/agenda'){
if(this.select == false){
if(this.type == "Agenda") {
const modal = await this.modalCtrl.create({
component: ViewEventPage,
componentProps:{
eventId: id
eventId: Id
},
cssClass: 'modal modal-desktop',
});
await modal.present();
modal.onDidDismiss().then((res)=>{});
} else if(window.location.pathname == '/home/publications'){
} else if(this.type == "AccoesPresidenciais"){
this.viewPublicationDetail(id);
this.viewPublicationDetail(Id);
}
else if(window.location.pathname == '/home/gabinete-digital'){
else if(this.type == "AccoesPresidenciais & ArquivoDespachoElect"){
console.log('OPEN DOC');
this.viewDocumentDetail(id,'');
this.viewDocumentDetail(Id, ApplicationType);
}
} else {
console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!', this.select)
}
}
@@ -505,7 +515,7 @@ export class SearchPage implements OnInit {
publicationId: publicationId,
},
cssClass: 'publication-detail modal modal-desktop ',
backdropDismiss: false
//backdropDismiss: false
});
await modal.present();