Changes on Intervenientes + New Event

This commit is contained in:
Tiago Kayaya
2020-09-04 01:25:32 +01:00
parent b9a70fecb8
commit d82271ae37
13 changed files with 181 additions and 126 deletions
+1 -1
View File
@@ -94,4 +94,4 @@
"android"
]
}
}
}
+2 -2
View File
@@ -9,8 +9,8 @@ export class Event{
Location: string;
CalendarId: string;
CalendarName: string;
StartDate: string;
EndDate: string;
StartDate: Date;
EndDate: Date;
EventType: string;
Attendees: EventPerson[];
IsMeeting: boolean;
+10 -6
View File
@@ -1,3 +1,4 @@
<ion-header>
<ion-toolbar>
<ion-buttons slot="end">
@@ -26,13 +27,10 @@
</ion-toolbar>
</ion-header>
<ion-content>
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<app-cal-modal></app-cal-modal>
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-refresher-content
pullingIcon="chevron-down-circle-outline"
pullingText="deslize para actualizar"
refreshingSpinner="circles"
refreshingText="A actualizar...">
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<ion-refresher-content>
</ion-refresher-content>
</ion-refresher>
<div [ngSwitch]="segment">
@@ -64,6 +62,8 @@
(onEventSelected)="onEventSelected($event)"
(onTitleChanged)="onViewTitleChanged($event)"
(onRangeChanged)="onRangeChanged($event)"
(onTimeSelected)="onTimeSelected($event)"
(onCurrentDateChanged)="onCurrentChanged($event)"
queryMode="remote"
startHour="6"
endHour="20"
@@ -113,6 +113,8 @@
(onEventSelected)="onEventSelected($event)"
(onTitleChanged)="onViewTitleChanged($event)"
(onRangeChanged)="onRangeChanged($event)"
(onTimeSelected)="onTimeSelected($event)"
(onCurrentDateChanged)="onCurrentChanged($event)"
queryMode="remote"
startHour="6"
endHour="20"
@@ -163,6 +165,8 @@
(onEventSelected)="onEventSelected($event)"
(onTitleChanged)="onViewTitleChanged($event)"
(onRangeChanged)="onRangeChanged($event)"
(onTimeSelected)="onTimeSelected($event)"
(onCurrentDateChanged)="onCurrentChanged($event)"
queryMode="remote"
startHour="6"
endHour="20"
+22
View File
@@ -27,6 +27,8 @@ export class AgendaPage implements OnInit {
};
selectedDate: Date;
eventSelectedDate: Date;
eventSelectedDate2: Date;
rangeStartDate: Date;
rangeEndDate: Date;
@@ -43,6 +45,7 @@ export class AgendaPage implements OnInit {
endTime: Date;
constructor(
private alertCtrl: AlertController,
@Inject(LOCALE_ID) private locale: string,
@@ -54,6 +57,8 @@ export class AgendaPage implements OnInit {
ngOnInit() {
//Inicializar segment
/* localStorage.setItem('test', this.eventSelectedDate.toString()); */
this.router.events.forEach((event) => {
if(event instanceof NavigationEnd && event.url == "/home/agenda") {
if (this.segment == null)
@@ -68,6 +73,8 @@ export class AgendaPage implements OnInit {
});
}
//Go to the next view of the calendar month/week/day
next(){
this.myCal.slideNext();
@@ -85,6 +92,15 @@ export class AgendaPage implements OnInit {
this.router.navigate(["/home/agenda", ev.event.EventId, 'agenda']);
}
onCurrentChanged = (ev: Date) => {
this.eventSelectedDate = ev;
};
onTimeSelected = (ev: { selectedTime: Date, events: any[] }) => {
console.log('Selected time: ' + ev.selectedTime + ', hasEvents: ' + (ev.events !== undefined && ev.events.length !== 0));
this.eventSelectedDate2 = ev.selectedTime;
};
onRangeChanged (ev: { startTime: Date, endTime: Date }) {
this.rangeStartDate = ev.startTime;
this.rangeEndDate = ev.endTime;
@@ -95,6 +111,10 @@ export class AgendaPage implements OnInit {
async openCalModal() {
const modal = await this.modalCtrl.create({
component: CalModalPage,
componentProps:{
segment: this.segment,
eventSelectedDate: this.eventSelectedDate,
},
cssClass: 'cal-modal',
backdropDismiss: false
});
@@ -203,4 +223,6 @@ export class AgendaPage implements OnInit {
showAlert(){
this.alertCrontroller.presentAlert("Funcionalidade em desenvolvimento.");
}
}
+7 -7
View File
@@ -13,7 +13,7 @@
<div class="div-ion-content">
<ion-item>
<ion-label position="floating">Assunto</ion-label>
<ion-input type="text" [(ngModel)]="postEvent.Subject"></ion-input>
<ion-input type="text" [(ngModel)]="postEvent.Subject" name="subject"></ion-input>
</ion-item>
<ion-item>
<ion-label position="floating">Descrição</ion-label>
@@ -21,11 +21,11 @@
</ion-item>
<ion-item>
<ion-label position="floating">Localização</ion-label>
<ion-input type="text" [(ngModel)]="postEvent.Location"></ion-input>
<ion-input type="text" [(ngModel)]="postEvent.Location" name="location"></ion-input>
</ion-item>
<ion-item>
<ion-label position="floating">Selecione a Agenda</ion-label>
<ion-select [(ngModel)]="postEvent.CalendarName" interface="action-sheet" class="custom-options" Cancel-text="Cancelar">
<ion-select selectedText="{{postEvent.CalendarName}}" [(ngModel)]="postEvent.CalendarName" name="calendarName" interface="action-sheet" class="custom-options" Cancel-text="Cancelar">
<ion-select-option Pessoal="Reunião">Pessoal</ion-select-option>
<ion-select-option Oficial="Viagem">Oficial</ion-select-option>
</ion-select>
@@ -40,21 +40,21 @@
</ion-select>
</ion-item>
<ion-item>
<ion-label position="floating">Data Início</ion-label>
<ion-datetime [(ngModel)]="postEvent.StartDate" min="2020" max="2100"
<ion-label position="floating">Data Início</ion-label>
<ion-datetime placeholder="{{postEvent.StartDate | date: 'dd MMM yyyy H:mm'}}" [(ngModel)]="postEvent.StartDate" min="2020" max="2100"
displayFormat="D MMM YYYY H:mm"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="floating">Data Fim</ion-label>
<ion-datetime [(ngModel)]="postEvent.EndDate" min="2020" max="2100"
<ion-datetime placeholder="{{postEvent.EndDate | date: 'dd MMM yyyy H:mm'}}" [(ngModel)]="postEvent.EndDate" min="2020" max="2100"
displayFormat="D MMM YYYY H:mm"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"></ion-datetime>
</ion-item>
<div class="div-attach">
<ion-item lines="none">
<ion-icon name="add" slot="end" (click)="openAttendees()"></ion-icon>
<ion-label class="attach-label">Intervenientes</ion-label>
<ion-label class="attach-label">Participantes</ion-label>
</ion-item>
<div id="AttachFiles"></div>
</div>
+77 -9
View File
@@ -1,5 +1,5 @@
import { Component, OnInit, AfterViewInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { Component, OnInit, AfterViewInit, Input } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular';
import { Event } from '../../models/event.model';
import { EventsService } from 'src/app/services/events.service';
@@ -9,6 +9,7 @@ import { AttendeesPage } from 'src/app/pages/events/attendees/attendees.page';
import { AttendeeModalPage } from '../events/attendee-modal/attendee-modal.page';
import { EventPerson } from 'src/app/models/eventperson.model';
import { AlertService } from 'src/app/services/alert.service';
import { moveMessagePortToContext } from 'worker_threads';
@Component({
selector: 'app-cal-modal',
@@ -22,20 +23,84 @@ export class CalModalPage implements OnInit {
currentDate: new Date()
};
viewTitle: string;
postEvent: Event;
modalReady = false;
eventAttendees: EventPerson[];
segment:string = "true";
selectedSegment: string;
selectedDate: Date;
constructor(private modalCtrl: ModalController, private eventService: EventsService, private alertController:AlertService) {
viewTitle: string;
postEvent: Event;
eventBody: EventBody;
modalReady = false;
minDate: string;
@Input() teste: string;
passedInfo = null;
constructor(private modalCtrl: ModalController, private eventService: EventsService, private alertController:AlertService,
private navParams: NavParams) {
this.postEvent = new Event();
this.postEvent.Body = { BodyType : "1", Text : ""};
this.eventBody = { BodyType : "1", Text : ""};
this.postEvent.Body = this.eventBody;
}
ngOnInit() {
this.selectedSegment = this.navParams.get('segment');
this.selectedDate = this.navParams.get('eventSelectedDate');
let selectedStartdDate = this.selectedDate;
let selectedEndDate = new Date(this.selectedDate);
/* Set + 30minutes to seleted datetime */
selectedEndDate.setMinutes(this.selectedDate.getMinutes() + 30)
this.minDate = this.selectedDate.toString();
if(this.selectedSegment != "Combinada"){
this.postEvent ={
EventId: '',
Subject: '',
Body: this.eventBody,
Location: '',
CalendarId: '',
CalendarName: this.selectedSegment,
StartDate: selectedStartdDate,
EndDate: new Date(selectedEndDate),
EventType: '',
Attendees: null,
IsMeeting: false,
IsRecurring: false,
AppointmentState: 0,
TimeZone: '',
Organizer: '',
Categories: null,
HasAttachments: false,
};
}
else{
this.postEvent ={
EventId: '',
Subject: '',
Body: this.eventBody,
Location: '',
CalendarId: '',
CalendarName: '',
StartDate: selectedStartdDate,
EndDate: new Date(selectedEndDate),
EventType: '',
Attendees: null,
IsMeeting: false,
IsRecurring: false,
AppointmentState: 0,
TimeZone: '',
Organizer: '',
Categories: null,
HasAttachments: false,
};
}
}
ngAfterViewInit(): void {
@@ -126,5 +191,8 @@ export class CalModalPage implements OnInit {
}
});
}
example(){
console.log("Mensagem");
}
}
@@ -1,14 +1,14 @@
<ion-header class="ion-no-border">
<ion-toolbar>
<ion-title>Intervenientes</ion-title>
<ion-title>Participantes</ion-title>
</ion-toolbar>
<ion-toolbar>
<ion-segment [(ngModel)]="segment">
<ion-segment-button value="true">
Necessários
Intervenientes
</ion-segment-button>
<ion-segment-button value="false">
Opcionais
Com Conhecimento
</ion-segment-button>
</ion-segment>
</ion-toolbar>
@@ -16,14 +16,14 @@
<ion-content>
<ion-item-group>
<ion-button shape="round" (click)="addAttendees()" expand="block">
<ion-label>Adicionar intervenientes</ion-label>
<ion-label>Adicionar participantes</ion-label>
</ion-button>
</ion-item-group>
<ion-item-group [ngSwitch]="segment" *ngFor="let attendee of eventAttendees">
<ion-list *ngSwitchCase="attendee.IsRequired.toString()">
<ion-item-sliding>
<ion-item-options side="end">
<ion-item-option color="danger" (click)="removeAttendee(attendee)">Delete</ion-item-option>
<ion-item-option color="danger" (click)="removeAttendee(attendee)">Apagar</ion-item-option>
</ion-item-options>
<ion-item lines="none">
<ion-icon slot="start" name="person"></ion-icon>
@@ -93,9 +93,9 @@
<ion-buttons slot="end" (click)="openAttendees()">
<ion-label color="secondary">Editar</ion-label>
</ion-buttons>
<ion-label class="attach-label">Intervenientes</ion-label>
<ion-label class="attach-label">Participantes</ion-label>
</ion-item>
<div *ngFor="let attendee of loadedEvent.Attendees; let i=index">
<div *ngFor="let attendee of loadedEvent.Attendees; let i=index">
<div *ngIf="i<2">
<ion-list >
<ion-item class="attendees" lines="none" >
@@ -104,8 +104,12 @@
</ion-item>
</ion-list>
</div>
<div *ngIf="i>1">
<ion-button class="see-more-button" fill="none" shape="round" (click)="openAttendees()">
<ion-label color="secondary">Ver mais...</ion-label>
</ion-button>
</div>
</div>
</div>
<div class="div-attach">
<ion-item>
@@ -114,22 +118,37 @@
</ion-buttons>
<ion-label class="attach-label">Anexos</ion-label>
</ion-item>
<ion-list *ngIf="loadedEvent.HasAttachments">
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<ion-refresher-content>
</ion-refresher-content>
</ion-refresher>
<ion-item lines="none" *ngFor="let att of loadedEventAttachments">
<ion-icon name="attach" slot="start"></ion-icon>
<ion-label>
<p>{{ att.Description }}</p>
<p>{{ att.CreateDate }}</p>
</ion-label>
<!-- <ion-icon name="trash" slot="end"></ion-icon> -->
</ion-item>
</ion-list>
<div *ngFor="let att of loadedEventAttachments; let j=index">
<div *ngIf="j<2">
<ion-list *ngIf="loadedEvent.HasAttachments">
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<ion-item lines="none">
<ion-icon name="attach" slot="start"></ion-icon>
<ion-label>
<p>{{ att.Description }}</p>
<p>{{ att.CreateDate }}</p>
</ion-label>
</ion-item>
</ion-list>
</div>
<div *ngIf="j>1">
<ion-button class="see-more-button" fill="none" shape="round" (click)="showAlert()">
<ion-label color="secondary">Ver mais...</ion-label>
</ion-button>
</div>
</div>
<!-- Skeleton Attachment -->
<ion-list *ngIf="!loadedEventAttachments">
<ion-item lines="none" >
<ion-icon name="attach" slot="start"></ion-icon>
<ion-label>
<p> <ion-skeleton-text animated></ion-skeleton-text></p>
<p> <ion-skeleton-text animated></ion-skeleton-text></p>
</ion-label>
</ion-item>
</ion-list>
<!-- No attachment message -->
<ion-list *ngIf="!loadedEvent.HasAttachments">
<ion-item lines="none" >
<ion-label>
@@ -88,3 +88,7 @@ ion-card{
.attendees-icon{
font-size: 14px;
}
.see-more-button{
text-transform: initial;
font-size: 16px;
}
@@ -175,11 +175,9 @@ export class EventDetailPage implements OnInit {
}
loadAttachments()
{
console.log(this.pageId);
{
this.attachamentsService.getEventAttachments(this.pageId).subscribe(attachments => {
this.loadedEventAttachments = attachments;
console.log(attachments);
});
}
-19
View File
@@ -9,11 +9,6 @@
<h2 class="header-large">GABINETE DIGITAL</h2>
</ion-label>
</ion-item>
<!-- <ion-buttons slot="start" class="logout-button" (click)="logout()">
<ion-icon slot="start" name="log-out-outline"></ion-icon>
<ion-label>Sair</ion-label>
</ion-buttons> -->
<!-- customized TOGGLE button -->
<ion-buttons slot="end">
<label class="switch">
<input type="checkbox" id="togBtn">
@@ -26,15 +21,6 @@
</ion-toolbar>
<ion-toolbar>
<ion-label>
<!-- <ion-item class="ion-text-header-top" lines="none">
<div class="div-logo">
<img src='assets/images/logo.png' alt='logo'>
</div>
<ion-label>
<h6 class="header-xsmall">Presidente da República</h6>
<h2 class="header-large">GABINETE DIGITAL</h2>
</ion-label>
</ion-item> -->
<ion-item class="ion-text-right" lines="none">
<ion-label class="ion-text-wrap">
<h3 class="header-medium"> {{greetting}} Excelência <br />
@@ -106,11 +92,6 @@
</ion-item-sliding>
</ion-item-group>
</ion-list>
<!-- <ion-list *ngIf="!officialeventsList">
<ion-item lines="none">
Sem eventos
</ion-item>
</ion-list> -->
<!-- OFICIAL -->
<ion-list *ngSwitchCase="'Oficial'">
<ion-item-group>
@@ -51,64 +51,26 @@
</ion-list>
</div>
<div *ngIf="!taskslist">
<div class="ion-padding custom-skeleton">
<ion-skeleton-text animated style="width: 60%"></ion-skeleton-text>
<ion-skeleton-text animated></ion-skeleton-text>
<ion-skeleton-text animated style="width: 88%"></ion-skeleton-text>
<ion-skeleton-text animated style="width: 70%"></ion-skeleton-text>
<ion-skeleton-text animated style="width: 60%"></ion-skeleton-text>
</div>
<ion-list>
<ion-list-header>
<ion-label>
<ion-skeleton-text animated style="width: 20%"></ion-skeleton-text>
</ion-label>
</ion-list-header>
<ion-item>
<ion-avatar slot="start">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-avatar>
<ion-label>
<h3>
<ion-skeleton-text animated style="width: 50%"></ion-skeleton-text>
</h3>
<p>
<ion-skeleton-text animated style="width: 80%"></ion-skeleton-text>
</p>
<p>
<ion-skeleton-text animated style="width: 60%"></ion-skeleton-text>
</p>
</ion-label>
</ion-item>
<ion-item>
<ion-thumbnail slot="start">
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3>
<ion-skeleton-text animated style="width: 50%"></ion-skeleton-text>
</h3>
<p>
<ion-skeleton-text animated style="width: 80%"></ion-skeleton-text>
</p>
<p>
<ion-skeleton-text animated style="width: 60%"></ion-skeleton-text>
</p>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
<ion-item>
<ion-skeleton-text animated style="width: 27px; height: 27px" slot="start"></ion-skeleton-text>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3>
<ion-skeleton-text animated style="width: 50%"></ion-skeleton-text>
</h3>
<p>
<ion-skeleton-text animated style="width: 80%"></ion-skeleton-text>
</p>
<p>
<ion-skeleton-text animated style="width: 60%"></ion-skeleton-text>
</p>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
</ion-list>
@@ -3,14 +3,11 @@
<ion-title>Gabinete Digital</ion-title>
</ion-toolbar>
</ion-header>
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<ion-content>
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-refresher-content
pullingIcon="chevron-down-circle-outline"
pullingText="deslize para actualizar"
refreshingSpinner="circles"
refreshingText="A actualizar...">
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<ion-refresher-content>
</ion-refresher-content>
</ion-refresher>
<ion-card color="#d4d5ca">