This commit is contained in:
Peter Maquiran
2021-04-06 11:56:04 +01:00
29 changed files with 372 additions and 297 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<name>gabinete digital</name> <name>gabinete digital</name>
<description>An awesome Ionic/Cordova app.</description> <description>An awesome Ionic/Cordova app.</description>
<author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author> <author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author>
<content original-src="index.html" src="http://localhost:8101" /> <content src="index.html" />
<access origin="*" /> <access origin="*" />
<allow-navigation href="http://*/*" /> <allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" /> <allow-navigation href="https://*/*" />
@@ -1,220 +1,227 @@
<ion-content class="height-100"> <ion-content>
<div class="main-content d-flex height-100"> <div class="main-content height-100">
<div class="content d-flex flex-column width-100 height-100"> <div class="content d-flex flex-column width-100 height-100">
<div class="main-header pt-30 px-20"> <div class="main-header pt-30 px-20 background-white pb-15">
<div class="title-content" style="min-height: 40px;"> <ion-header>
<div class="title-content">
<div class="middle"> <div class="middle">
<ion-label class="title">***Editar Evento</ion-label> <ion-label class="title">Editar Evento com divisão</ion-label>
</div> </div>
</div> </div>
</ion-header>
</div> </div>
<ion-item-sliding class="overflow-y-auto">
<div class="overflow-y-auto px-20">
<div class="ion-item-container width-100">
<ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
</div>
</div>
<!-- Error messages -->
<!-- <span class="error ion-padding" >
Campo obrigatório
</span> -->
</div> <div>
<div class="px-20">
<div class="container-div width-100"> <div class="ion-item-container width-100">
<div class="ion-item-class-2"> <ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div> </div>
<div class="ion-input-class"> <div class="container-div width-100">
<ion-select disabled placeholder="Selecione agenda" <div class="ion-item-class-2">
selectedText="{{postEvent.CalendarName}}" <div class="ion-icon-class">
[(ngModel)]="postEvent.CalendarName" <ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
interface="action-sheet" Cancel-text="Cancelar"
required>
<ion-select-option value="Oficial">Oficial</ion-select-option>
<ion-select-option value="Pessoal">Pessoal</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione tipo"
[(ngModel)]="postEvent.Categories[0]"
selectedText="{{postEvent.Categories[0]}}"
interface="action-sheet"
Cancel-text="Cancelar" required>
<ion-select-option value="Reunião">Reunião</ion-select-option>
<ion-select-option value="Viagem">Viagem</ion-select-option>
<ion-select-option value="Conferência">Conferência</ion-select-option>
<ion-select-option value="Encontro">Encontro</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2 width-100">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class width-100">
<ion-datetime
placeholder="Início"
[(ngModel)]="postEvent.StartDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2018"
max="2022"
>
</ion-datetime>
<!-- <ion-input placeholder="Data início" [(ngModel)]="postData.StartDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-datetime
placeholder="Fim"
[(ngModel)]="postEvent.EndDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2018"
max="2022"
>
</ion-datetime>
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione repetição"
[(ngModel)]="postEvent.IsRecurring"
selectedText="{{isRecurring}}"
interface="action-sheet"
Cancel-text="Cancelar" required>
<ion-select-option value="false">Não se repete</ion-select-option>
<ion-select-option value="true">Repete</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="width-100">
<div class="container-div width-50">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="!taskParticipants" class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
</div> </div>
<div class="add-people"> <div class="ion-input-class">
<ion-icon (click)="addParticipants()" slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon> <ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
</div> </div>
</div> </div>
</div> <!-- Error messages -->
</div> <!-- <span class="error ion-padding" >
<div class="container-div width-50"> Campo obrigatório
<div class="ion-item-class-2"> </span> -->
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="!taskParticipantsCc" class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people">
<ion-icon (click)="addParticipantsCC()" slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div> </div>
<div class="ion-input-class">
<ion-input placeholder="Detalhes" [(ngModel)]="postEvent.Body.Text"></ion-input> <div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select disabled placeholder="Selecione agenda"
selectedText="{{postEvent.CalendarName}}"
[(ngModel)]="postEvent.CalendarName"
interface="action-sheet" Cancel-text="Cancelar"
required>
<ion-select-option value="Oficial">Oficial</ion-select-option>
<ion-select-option value="Pessoal">Pessoal</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione tipo"
[(ngModel)]="postEvent.Categories[0]"
selectedText="{{postEvent.Categories[0]}}"
interface="action-sheet"
Cancel-text="Cancelar" required>
<ion-select-option value="Reunião">Reunião</ion-select-option>
<ion-select-option value="Viagem">Viagem</ion-select-option>
<ion-select-option value="Conferência">Conferência</ion-select-option>
<ion-select-option value="Encontro">Encontro</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2 width-100">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class width-100">
<ion-datetime
placeholder="Início"
[(ngModel)]="postEvent.StartDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2018"
max="2022"
>
</ion-datetime>
<!-- <ion-input placeholder="Data início" [(ngModel)]="postData.StartDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-datetime
placeholder="Fim"
[(ngModel)]="postEvent.EndDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2018"
max="2022"
>
</ion-datetime>
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione repetição"
[(ngModel)]="postEvent.IsRecurring"
selectedText="{{isRecurring}}"
interface="action-sheet"
Cancel-text="Cancelar" required>
<ion-select-option value="false">Não se repete</ion-select-option>
<ion-select-option value="true">Repete</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="width-100">
<div class="container-div width-50">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="!taskParticipants" class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people">
<ion-icon (click)="addParticipants()" slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
<div class="container-div width-50">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="!taskParticipantsCc" class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people">
<ion-icon (click)="addParticipantsCC()" slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div>
<div class="container-div width-100">
<div hidden class="ion-item-container-no-border"> <div class="ion-item-class-2">
<ion-label> <div class="ion-icon-class">
<div class="attach-icon"> <ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon> </div>
<div class="ion-input-class-no-height width-100">
<ion-textarea placeholder="Detalhes" [(ngModel)]="postEvent.Body.Text" rows="6" cols="20"></ion-textarea>
</div>
</div> </div>
<div class="attach-document">
<ion-label>Anexar Documentos</ion-label> <div hidden class="ion-item-container-no-border">
</div> <ion-label>
</ion-label> <div class="attach-icon">
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
</div>
<div class="attach-document">
<ion-label>Anexar Documentos</ion-label>
</div>
</ion-label>
</div>
</div>
</div> </div>
</div>
<div hidden>
<ion-item> <div hidden>
<ion-label>Documentos Anexados</ion-label>
</ion-item>
<ion-list>
<ion-item> <ion-item>
<ion-label> <ion-label>Documentos Anexados</ion-label>
<h4 class="attach-title-item">Text</h4> </ion-item>
<p><span class="span-left">Text</span><span class="span-right"> Text </span></p> <ion-list>
</ion-label> <ion-item>
</ion-item> <ion-label>
</ion-list> <h4 class="attach-title-item">Text</h4>
</div> <p><span class="span-left">Text</span><span class="span-right"> Text </span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</ion-item-sliding>
</div> </div>
<app-attendee-modal class="aside-right flex-column height-100 d-none d-md-flex" <app-attendee-modal class="aside-right flex-column height-100 d-none d-md-flex pt-10"
[taskParticipants]="taskParticipants" [taskParticipants]="taskParticipants"
[taskParticipantsCc]="taskParticipantsCc" [taskParticipantsCc]="taskParticipantsCc"
[adding]="adding" [adding]="adding"
@@ -1,4 +1,9 @@
.title-content::after, .header-md::after{
display: none;
}
.content{ .content{
margin: 0; margin: 0;
float: left; float: left;
@@ -7,8 +12,8 @@
.main-header{ .main-header{
font-family: Roboto; font-family: Roboto;
background-color: #fff; background-color: #fff;
overflow:hidden; overflow:hidden;
color:#000;
transform: translate3d(0, 1px, 0); transform: translate3d(0, 1px, 0);
.title-content{ .title-content{
@@ -65,6 +70,7 @@
float: left; float: left;
} }
.ion-input-class-no-height{ .ion-input-class-no-height{
width: calc(100% - 45px);
border: 1px solid #ebebeb; border: 1px solid #ebebeb;
border-radius: 5px; border-radius: 5px;
} }
@@ -156,4 +162,5 @@
justify-content: space-between; justify-content: space-between;
padding: 20px; padding: 20px;
overflow: auto; overflow: auto;
} }
@@ -47,6 +47,7 @@
</ion-label> </ion-label>
</div> </div>
</div> </div>
<div class="line"></div>
<div class="middle-content"> <div class="middle-content">
<div *ngIf="loadedEvent.Attendees"> <div *ngIf="loadedEvent.Attendees">
<h5>Intervenientes</h5> <h5>Intervenientes</h5>
@@ -58,18 +59,20 @@
</ion-label> </ion-label>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="loadedEvent.Body.Text">
<h5>Detalhes</h5> <h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
<p [innerHTML]="loadedEvent.Body.Text"></p> <textarea disabled class="width-100" [innerHTML]="loadedEvent.Body.Text" rows="6"></textarea>
</ion-item> </ion-item>
</div> </div>
</div>
<div *ngIf="loadedAttachments" class="bottom-content"> <div *ngIf="loadedAttachments" class="bottom-content width-100">
<ion-list> <ion-list>
<h3>Documentos Anexados</h3> <h5>Documentos Anexados</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
<ion-label *ngFor="let attach of loadedAttachments" <ion-label *ngFor="let attach of loadedAttachments"
(click)="viewDocument()"> (click)="viewDocument(attach.SourceId)">
<p class="attach-title-item">{{attach.SourceName}}</p> <p class="attach-title-item">{{attach.SourceName}}</p>
<p><span class="span-left">{{attach.Stakeholders}}</span><span class="span-right">{{ attach.CreateDate | date: 'dd-MM-yy' }}</span></p> <p><span class="span-left">{{attach.Stakeholders}}</span><span class="span-right">{{ attach.CreateDate | date: 'dd-MM-yy' }}</span></p>
</ion-label> </ion-label>
@@ -151,6 +151,10 @@ ion-menu{
font-size: 16px; font-size: 16px;
} }
} }
.line{
margin-top: 15px;
border-top: 1px solid #d8d8d8;
}
.middle-conten{ .middle-conten{
.middle-content h3, .middle-content p{ .middle-content h3, .middle-content p{
font-size: 16px; font-size: 16px;
@@ -158,7 +162,6 @@ ion-menu{
} }
.bottom-content{ .bottom-content{
width: 360px;
margin: 0 auto; margin: 0 auto;
.bottom-content h3{ .bottom-content h3{
@@ -230,4 +233,8 @@ ion-menu{
margin: 0 auto !important; margin: 0 auto !important;
margin-bottom: 10px !important; margin-bottom: 10px !important;
} }
}
textarea{
border:none;
--background:#fff !important;
} }
@@ -8,7 +8,7 @@ import { EventsService } from 'src/app/services/events.service';
import { Event } from '../../../models/event.model'; import { Event } from '../../../models/event.model';
import { EditEventPage } from '../edit-event/edit-event.page'; import { EditEventPage } from '../edit-event/edit-event.page';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'; import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { EventEditPage } from '../../events/edit-event/edit-event.component'; import { ProcessesService } from 'src/app/services/processes.service';
@Component({ @Component({
selector: 'app-view-event', selector: 'app-view-event',
@@ -43,6 +43,7 @@ export class ViewEventPage implements OnInit {
private attachmentsService: AttachmentsService, private attachmentsService: AttachmentsService,
public alertController: AlertController, public alertController: AlertController,
private iab: InAppBrowser, private iab: InAppBrowser,
private processes: ProcessesService,
) )
{ {
this.profile = this.navParams.get('profile'); this.profile = this.navParams.get('profile');
@@ -116,7 +117,7 @@ export class ViewEventPage implements OnInit {
} }
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: EventEditPage, component: EditEventPage,
componentProps: { componentProps: {
eventId: this.loadedEvent.EventId, eventId: this.loadedEvent.EventId,
profile: this.profile, profile: this.profile,
@@ -157,10 +158,14 @@ export class ViewEventPage implements OnInit {
}); });
} }
viewDocument(){ viewDocument(sourceId){
const url: string = this.loadedAttachments.DocumentURL.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1"); this.processes.GetDocumentUrl(sourceId, '8').subscribe(res=>{
const browser = this.iab.create(url,"_blank"); console.log(res);
browser.show(); const url: string = res.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
const browser = this.iab.create(url,"_blank");
browser.show();
});
} }
} }
@@ -3,7 +3,7 @@
<ion-buttons slot="start"> <ion-buttons slot="start">
<ion-back-button defaultHref="{{ backURL }}"></ion-back-button> <ion-back-button defaultHref="{{ backURL }}"></ion-back-button>
</ion-buttons> </ion-buttons>
<ion-title class="header-title">Visualizar Evento</ion-title> <ion-title class="header-title">21Visualizar Evento</ion-title>
<ion-buttons slot="end"> <ion-buttons slot="end">
<button (click)="deleteConfirm()" class="ion-icon-delete"> <button (click)="deleteConfirm()" class="ion-icon-delete">
<ion-icon name="trash"></ion-icon> <ion-icon name="trash"></ion-icon>
+34 -33
View File
@@ -1,37 +1,38 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
import { EventsPage } from './events.page'; import { EventsPage } from './events.page';
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
component: EventsPage component: EventsPage
}, },
{ {
path: 'event-detail', path: 'event-detail',
loadChildren: () => import('./event-detail/event-detail.module').then( m => m.EventDetailPageModule) loadChildren: () => import('./event-detail/event-detail.module').then( m => m.EventDetailPageModule)
}, },
{ {
path: 'attachments', path: 'attachments',
loadChildren: () => import('./attachments/attachments.module').then( m => m.AttachmentsPageModule) loadChildren: () => import('./attachments/attachments.module').then( m => m.AttachmentsPageModule)
}, },
{ {
path: 'attendees', path: 'attendees',
loadChildren: () => import('./attendees/attendees.module').then( m => m.AttendeesPageModule) loadChildren: () => import('./attendees/attendees.module').then( m => m.AttendeesPageModule)
}, },
{ {
path: 'attendee-modal', path: 'attendee-modal',
loadChildren: () => import('./attendee-modal/attendee-modal.module').then( m => m.AttendeeModalPageModule) loadChildren: () => import('./attendee-modal/attendee-modal.module').then( m => m.AttendeeModalPageModule)
}, { },
{
path: 'event-detail-modal', path: 'event-detail-modal',
loadChildren: () => import('./event-detail-modal/event-detail-modal.module').then( m => m.EventDetailModalPageModule) loadChildren: () => import('./event-detail-modal/event-detail-modal.module').then( m => m.EventDetailModalPageModule)
} }
]; ];
@NgModule({ @NgModule({
imports: [RouterModule.forChild(routes)], imports: [RouterModule.forChild(routes)],
exports: [RouterModule], exports: [RouterModule],
}) })
export class EventsPageRoutingModule {} export class EventsPageRoutingModule {}
@@ -25,7 +25,7 @@
</ion-item> </ion-item>
<ion-item (click)="emendTask(loadedEvent.serialNumber)"> <ion-item (click)="emendTask(loadedEvent.serialNumber)">
<ion-icon name="create-outline"></ion-icon> <ion-icon name="create-outline"></ion-icon>
<ion-label>Emendar</ion-label> <ion-label>Emendar1</ion-label>
</ion-item> </ion-item>
<ion-item (click)="rejectTask(loadedEvent.serialNumber)"> <ion-item (click)="rejectTask(loadedEvent.serialNumber)">
<ion-icon name="close-sharp"></ion-icon> <ion-icon name="close-sharp"></ion-icon>
@@ -25,7 +25,7 @@
</ion-item> </ion-item>
<ion-item (click)="emendTask(loadedEvent.serialNumber)"> <ion-item (click)="emendTask(loadedEvent.serialNumber)">
<ion-icon name="create-outline"></ion-icon> <ion-icon name="create-outline"></ion-icon>
<ion-label>Emendar</ion-label> <ion-label>Emendar1</ion-label>
</ion-item> </ion-item>
<ion-item (click)="rejectTask(loadedEvent.serialNumber)"> <ion-item (click)="rejectTask(loadedEvent.serialNumber)">
<ion-icon name="close-sharp"></ion-icon> <ion-icon name="close-sharp"></ion-icon>
@@ -54,6 +54,7 @@
</ion-label> </ion-label>
</div> </div>
</div> </div>
<div class="line"></div>
<div class="middle-content" *ngIf="loadedEvent"> <div class="middle-content" *ngIf="loadedEvent">
<h5>Intervenientes</h5> <h5>Intervenientes</h5>
<ion-item> <ion-item>
@@ -92,7 +93,7 @@
</ion-menu-button> </ion-menu-button>
</p> </p>
<p> <p>
<ion-button class="button-approve" shape="round" (click)="approveTask(loadedEvent.serialNumber)">Aprovar</ion-button> <ion-button class="button-approve" shape="round" (click)="approveTask(loadedEvent.serialNumber)">Aprovar1</ion-button>
</p> </p>
</ion-item> </ion-item>
<ion-item hidden> <ion-item hidden>
@@ -86,6 +86,7 @@ export class ExpedientTaskModalPage implements OnInit {
this.taskDate = new Date(this.task.taskStartDate); this.taskDate = new Date(this.task.taskStartDate);
this.getAttachments(); this.getAttachments();
this.getSubjectType();
} }
close(){ close(){
@@ -55,8 +55,8 @@
<ion-menu-button></ion-menu-button> <ion-menu-button></ion-menu-button>
</div> </div>
<ion-content class="height-100"> <ion-content>
<div class="main-content d-flex height-100"> <div class="main-content d-flex">
<div class="content d-flex flex-column" *ngIf="task"> <div class="content d-flex flex-column" *ngIf="task">
<div class="main-header"> <div class="main-header">
<div class="title-content"> <div class="title-content">
@@ -79,6 +79,7 @@
</ion-label> </ion-label>
</div> </div>
</div> </div>
<div class="line"></div>
<div class="middle-content"> <div class="middle-content">
<h5 *ngIf="intervenientes">Intervenientes</h5> <h5 *ngIf="intervenientes">Intervenientes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
@@ -163,7 +163,7 @@ this.processesbackend.GetActionsList().subscribe(res=>{
this.closeAllDesktopComponent(); this.closeAllDesktopComponent();
let classs; let classs;
if( window.innerWidth <= 1024){ if( window.innerWidth <= 800){
classs = 'modal' classs = 'modal'
} else { } else {
classs = 'gabinete-digital-mobile-modal-to-Desktop' classs = 'gabinete-digital-mobile-modal-to-Desktop'
@@ -97,6 +97,7 @@
*ngIf="desktopComponent.showPublicationDetail" *ngIf="desktopComponent.showPublicationDetail"
class="height-100 d-flex flex-column overflow-hidden background-white flex-grow-1" class="height-100 d-flex flex-column overflow-hidden background-white flex-grow-1"
[publicationId]="publicationId" [publicationId]="publicationId"
[folderId]="folderId"
(addNewPublication)="addNewPublication($event)" (addNewPublication)="addNewPublication($event)"
(closeDesktopComponent)="closeDesktopComponent($event)" (closeDesktopComponent)="closeDesktopComponent($event)"
(goBacktoPublicationDetails)="goBacktoPublicationDetails($event)" (goBacktoPublicationDetails)="goBacktoPublicationDetails($event)"
+1 -1
View File
@@ -192,7 +192,7 @@ export class EventsService {
return this.http.delete(`${puturl}`, options) return this.http.delete(`${puturl}`, options)
} }
postExpedientEvent(docId:any, body:any, sharedagenda:string, serialNumber:any){ postExpedientEvent(docId:any, body:any, sharedagenda:string, serialNumber:any){
const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente'); const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente')+'/event';
let params = new HttpParams(); let params = new HttpParams();
params = params.set("DocId", docId); params = params.set("DocId", docId);
@@ -21,7 +21,7 @@
<ion-list> <ion-list>
<ion-item (click)="approveTask(loadedEvent.serialNumber)"> <ion-item (click)="approveTask(loadedEvent.serialNumber)">
<ion-icon name="checkmark-sharp"></ion-icon> <ion-icon name="checkmark-sharp"></ion-icon>
<ion-label>Aprovar</ion-label> <ion-label>Aprovar3</ion-label>
</ion-item> </ion-item>
<ion-item (click)="emendTask(loadedEvent.serialNumber)"> <ion-item (click)="emendTask(loadedEvent.serialNumber)">
<ion-icon name="create-outline"></ion-icon> <ion-icon name="create-outline"></ion-icon>
@@ -65,6 +65,7 @@
</ion-label> </ion-label>
</div> </div>
</div> </div>
<div class="line"></div>
<div class="middle-content"> <div class="middle-content">
<h5>Intervenientes</h5> <h5>Intervenientes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
@@ -71,8 +71,12 @@ export class ApproveEventComponent implements OnInit {
}) })
} }
approveTask(serialNumber:string){ approveTask(serialNumber:string){
let body = { "serialNumber": serialNumber, "action": "Aprovar" }
this.approveEventDismiss.emit({ console.log(body);
this.processes.PostTaskAction(body);
this.alertService.presentAlert('Operação realizada com sucesso!');
this.modalController.dismiss(serialNumber);
/* this.approveEventDismiss.emit({
"serialNumber": serialNumber, "serialNumber": serialNumber,
"action": "Aprovar", "action": "Aprovar",
"saveData": { "saveData": {
@@ -80,7 +84,7 @@ export class ApproveEventComponent implements OnInit {
today: this.today, today: this.today,
customDate: this.customDate customDate: this.customDate
} }
}); }); */
} }
emendTask(serialNumber:string){ emendTask(serialNumber:string){
@@ -3,7 +3,7 @@
<div class="main-header"> <div class="main-header">
<div class="title-content"> <div class="title-content">
<div class="middle"> <div class="middle">
<ion-label class="title">Editar Evento</ion-label> <ion-label class="title">2Editar Evento</ion-label>
</div> </div>
</div> </div>
</div> </div>
@@ -177,10 +177,8 @@
<div class="ion-icon-class"> <div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon> <ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div> </div>
<div class="ion-input-class-no-height flex-grow-1"> <div class="ion-input-class-no-height width-100">
<ion-textarea [(ngModel)]="postEvent.Body.Text" placeholder="Detalhes" rows="6" cols="20"></ion-textarea>
<ion-textarea [(ngModel)]="postEvent.Body.Text" placeholder="Detalhes" ></ion-textarea>
</div> </div>
</div> </div>
</div> </div>
@@ -57,7 +57,6 @@ ion-content{
margin-bottom: 15px; margin-bottom: 15px;
} }
.ion-item-class-2{ .ion-item-class-2{
margin: 0px auto; margin: 0px auto;
} }
.ion-icon-class{ .ion-icon-class{
@@ -81,8 +80,11 @@ ion-content{
float: left; float: left;
} }
.ion-input-class-no-height{ .ion-input-class-no-height{
height: auto !important;
border: 1px solid #ebebeb; border: 1px solid #ebebeb;
border-radius: 5px; border-radius: 5px;
margin-bottom: 15px;
overflow: auto;
} }
.list-people{ .list-people{
@@ -165,11 +167,4 @@ ion-content{
color:red; color:red;
} }
} }
.container-div{
ion-textarea{
height: 81px;
}
}
@@ -36,10 +36,15 @@ export class EditEventComponent implements OnInit {
private eventsService: EventsService, private eventsService: EventsService,
public alertController: AlertController, public alertController: AlertController,
) { ) {
} }
ngOnInit() { ngOnInit() {
let innerHtml :string = this.postEvent.Body.Text;
this.postEvent.Body.Text = innerHtml;
console.log(this.postEvent);
this.isEventEdited = false; this.isEventEdited = false;
if(this.postEvent.IsRecurring == false){ if(this.postEvent.IsRecurring == false){
@@ -49,13 +54,13 @@ export class EditEventComponent implements OnInit {
this.isRecurring = "Repete"; this.isRecurring = "Repete";
} }
} }
close(){ close(){
console.log('!!!!!!!!!!!!!!!!! close') console.log('!!!!!!!!!!!!!!!!! close')
this.closeComponent.emit(); this.closeComponent.emit();
this.clearContact.emit(); this.clearContact.emit();
} }
save(){ save(){
this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => { this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => {
const alert = await this.alertController.create({ const alert = await this.alertController.create({
cssClass: 'my-custom-class', cssClass: 'my-custom-class',
@@ -49,7 +49,7 @@
<ion-item <ion-item
class=" ion-no-padding width-100" class=" ion-no-padding width-100"
*ngFor="let event of eventsPRList" *ngFor="let event of eventsPRList"
(click)="openApproveModal(event.serialNumber)"> (click)="openApproveModal(event.serialNumber, event)">
<div class="item event-pr-{{event.workflowInstanceDataFields.Agenda}} width-100"> <div class="item event-pr-{{event.workflowInstanceDataFields.Agenda}} width-100">
<div class="approve-event-time"> <div class="approve-event-time">
<p>{{event.workflowInstanceDataFields.StartDate | date: 'hh:mm'}}</p> <p>{{event.workflowInstanceDataFields.StartDate | date: 'hh:mm'}}</p>
@@ -32,6 +32,7 @@
</ion-label> </ion-label>
</div> </div>
</div> </div>
<div class="line"></div>
<div class="middle-content"> <div class="middle-content">
<div *ngIf="loadedEvent.Attendees"> <div *ngIf="loadedEvent.Attendees">
<h5>Intervenientes</h5> <h5>Intervenientes</h5>
@@ -44,22 +45,24 @@
</ion-item> </ion-item>
</div> </div>
<h5>Detalhes</h5> <h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item lines="none" class="ion-no-margin ion-no-padding">
<p [innerHTML]="loadedEvent.Body.Text"></p> <ion-textarea [innerHTML]="loadedEvent.Body.Text"></ion-textarea>
</ion-item> </ion-item>
</div> </div>
<div class="line"></div>
<div *ngIf="loadedAttachments" class="bottom-content"> <div *ngIf="loadedAttachments" class="bottom-content">
<h5>Documentos Anexados</h5>
<ion-list> <ion-list>
<h3>Documentos Anexados</h3> <ion-item lines="none" class="ion-no-margin ion-no-padding">
<ion-item class="ion-no-margin ion-no-padding">
<ion-label *ngFor="let attach of loadedAttachments" <ion-label *ngFor="let attach of loadedAttachments"
(click)="viewDocument()"> (click)="viewDocument(attach.SourceId)">
<p class="attach-title-item">{{attach.SourceName}}</p> <p class="attach-title-item">{{attach.SourceName}}</p>
<p><span class="span-left">{{attach.Stakeholders}}</span><span class="span-right">{{ attach.CreateDate | date: 'dd-MM-yy' }}</span></p> <p><span class="span-left">{{attach.Stakeholders}}</span><span class="span-right">{{ attach.CreateDate | date: 'dd-MM-yy' }}</span></p>
</ion-label> </ion-label>
</ion-item> </ion-item>
</ion-list> </ion-list>
</div> </div>
<!-- <div class="line"></div> -->
</div> </div>
</ion-content> </ion-content>
@@ -123,6 +123,10 @@ ion-menu{
font-size: 16px; font-size: 16px;
} }
} }
.line{
margin-top: 15px;
border-top: 1px solid #d8d8d8;
}
.middle-conten{ .middle-conten{
.middle-content h3, .middle-content p{ .middle-content h3, .middle-content p{
font-size: 16px; font-size: 16px;
@@ -7,6 +7,7 @@ import { EventsService } from 'src/app/services/events.service';
import { Event } from 'src/app/models/event.model'; import { Event } from 'src/app/models/event.model';
import { EditEventPage } from 'src/app/pages/agenda/edit-event/edit-event.page'; import { EditEventPage } from 'src/app/pages/agenda/edit-event/edit-event.page';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'; import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { ProcessesService } from 'src/app/services/processes.service';
@Component({ @Component({
selector: 'app-view-event', selector: 'app-view-event',
@@ -42,24 +43,26 @@ export class ViewEventPage implements OnInit {
private attachmentsService: AttachmentsService, private attachmentsService: AttachmentsService,
public alertController: AlertController, public alertController: AlertController,
private iab: InAppBrowser, private iab: InAppBrowser,
private processes: ProcessesService,
) )
{ {
this.isEventEdited = false; this.isEventEdited = false;
this.loadedEvent = new Event(); this.loadedEvent = new Event();
this.eventBody = { BodyType : "1", Text : ""}; this.eventBody = { BodyType : "1", Text : ""};
this.loadedEvent.Body = this.eventBody; this.loadedEvent.Body = this.eventBody;
} }
ngOnInit() { ngOnInit() {
/* console.log(this.eventId); */ /* console.log(this.eventId); */
this.loadEvent(); this.loadEvent();
this.getAttachments(); //this.getAttachments();
} }
ngOnChanges(changes: any): void { ngOnChanges(changes: any): void {
this.loadedAttachments = null;
this.loadEvent(); this.loadEvent();
this.getAttachments();
} }
close(){ close(){
@@ -73,12 +76,11 @@ export class ViewEventPage implements OnInit {
loadEvent(){ loadEvent(){
this.eventsService.getEvent(this.eventId).subscribe(res => { this.eventsService.getEvent(this.eventId).subscribe(res => {
this.loadedEvent = res; this.loadedEvent = res;
console.log(res); console.log(res);
this.today = new Date(res.StartDate); this.today = new Date(res.StartDate);
console.log(new Date(this.today)); console.log(new Date(this.today));
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]); this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
this.getAttachments(this.loadedEvent.EventId);
}); });
} }
deleteEvent(){ deleteEvent(){
@@ -95,8 +97,8 @@ export class ViewEventPage implements OnInit {
}); });
} }
getAttachments(){ getAttachments(eventId){
this.attachmentsService.getAttachmentsById(this.eventId).subscribe(res=>{ this.attachmentsService.getAttachmentsById(eventId).subscribe(res=>{
this.loadedAttachments = res; this.loadedAttachments = res;
console.log(res); console.log(res);
}); });
@@ -109,10 +111,15 @@ export class ViewEventPage implements OnInit {
event: this.loadedEvent event: this.loadedEvent
}) })
} }
viewDocument(){
const url: string = this.loadedAttachments.DocumentURL.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1"); viewDocument(sourceId){
const browser = this.iab.create(url,"_blank"); this.processes.GetDocumentUrl(sourceId, '8').subscribe(res=>{
browser.show(); console.log(res);
const url: string = res.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
const browser = this.iab.create(url,"_blank");
browser.show();
});
} }
} }
@@ -67,7 +67,7 @@ S
} }
async openApproveModal(eventSerialNumber){ async openApproveModal(eventSerialNumber){
let classs; let classs;
if( window.innerWidth <= 1024){ if( window.innerWidth <= 800){
classs = 'modal modal-desktop' classs = 'modal modal-desktop'
} else { } else {
classs = 'modal modal-desktop showAsideOptions' classs = 'modal modal-desktop showAsideOptions'
@@ -81,7 +81,11 @@ S
cssClass: classs, cssClass: classs,
}); });
await modal.present(); await modal.present();
modal.onDidDismiss(); modal.onDidDismiss().then((res) => {
console.log(res['data']);
this.LoadToApproveEvents();
});
} }
doRefresh(event) { doRefresh(event) {
@@ -29,9 +29,9 @@
</div> </div>
</div> </div>
<div class="container-title py-10">Fotografia Anexada</div> <div class="container-title py-10 hide-desktop">Fotografia Anexada</div>
<div class="picture d-flex pb-5" *ngIf="publication.FileBase64.length > 10"> <div class="picture d-flex pb-5 hide-desktop" *ngIf="publication.FileBase64.length > 10">
<div class="post-img"> <div class="post-img">
<img src="{{publication.FileBase64}}" alt="image" > <img src="{{publication.FileBase64}}" alt="image" >
</div> </div>
@@ -45,7 +45,7 @@
</div> </div>
<div *ngIf="capturedImage != ''" class="ion-item-container-no-border"> <div *ngIf="capturedImage != ''" class="ion-item-container-no-border hide-desktop">
<ion-label class="attached-title">Fotografia Anexada</ion-label> <ion-label class="attached-title">Fotografia Anexada</ion-label>
<ion-item lines="none"> <ion-item lines="none">
<ion-thumbnail slot="start"> <ion-thumbnail slot="start">
@@ -66,7 +66,7 @@
</ion-thumbnail> --> </ion-thumbnail> -->
</div> </div>
<div class="ion-item-container-no-border"> <div class="ion-item-container-no-border hide-desktop">
<ion-label (click)="takePicture()"> <ion-label (click)="takePicture()">
<div class="attach-icon"> <div class="attach-icon">
<ion-icon src="assets/images/icons-add-photo.svg"></ion-icon> <ion-icon src="assets/images/icons-add-photo.svg"></ion-icon>
@@ -77,7 +77,7 @@
</ion-label> </ion-label>
</div> </div>
<div class="ion-item-container-no-border"> <div class="ion-item-container-no-border hide-desktop">
<ion-label (click)="getPicture()"> <ion-label (click)="getPicture()">
<div class="attach-icon"> <div class="attach-icon">
<ion-icon src="assets/images/icons-add-photos.svg"></ion-icon> <ion-icon src="assets/images/icons-add-photos.svg"></ion-icon>
@@ -152,4 +152,8 @@ font-size: 25px;
.container-title{ .container-title{
font-size: 15px; font-size: 15px;
font-weight: bold; font-weight: bold;
} }
.hide-desktop{
display: block;
}
@@ -12,10 +12,11 @@ import { PublicationsService } from 'src/app/services/publications.service';
}) })
export class PublicationDetailPage implements OnInit { export class PublicationDetailPage implements OnInit {
showLoader: boolean; showLoader: boolean;
folderId: string; /* folderId: string; */
publication: Publication; publication: Publication;
@Input() publicationId: string; @Input() publicationId: string;
@Input() folderId: string;
@Output() addNewPublication = new EventEmitter<any>(); @Output() addNewPublication = new EventEmitter<any>();
@Output() closeDesktopComponent = new EventEmitter<any>(); @Output() closeDesktopComponent = new EventEmitter<any>();
@Output() goBackToViewPublications = new EventEmitter(); @Output() goBackToViewPublications = new EventEmitter();
@@ -41,6 +42,8 @@ export class PublicationDetailPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
console.log(this.folderId);
/* console.log(this.publication.FileBase64); */ /* console.log(this.publication.FileBase64); */
this.getPublicationDetail(); this.getPublicationDetail();
} }
+14 -1
View File
@@ -97,7 +97,10 @@ td.monthview-secondary-with-event, td.monthview-secondary-with-event[_ngcontent-
width: 100% !important; width: 100% !important;
margin-left: 0px !important; margin-left: 0px !important;
} }
.line{
margin-top: 15px;
border-top: 1px solid #d8d8d8;
}
@@ -290,6 +293,16 @@ td.monthview-secondary-with-event, td.monthview-secondary-with-event[_ngcontent-
height: 100%; height: 100%;
} }
} }
@media screen and (min-width: 1200px) {
.hide-desktop{
display: none !important;
}
.container-div{
border-bottom:none !important;
}
}
.hideAsideOptions{ .hideAsideOptions{
@media only screen and (max-width: 800px) { @media only screen and (max-width: 800px) {
.div-icon{ .div-icon{