Merge develop to feature/calendar

This commit is contained in:
2021-02-01 10:04:06 +01:00
14 changed files with 385 additions and 77 deletions
+27 -8
View File
@@ -129,7 +129,7 @@ export class AgendaPage implements OnInit {
private router: Router,
private alertCrontroller: AlertService
) {
this.timelineDate = formatDate(new Date,'dd MMMM yyyy', 'pt');
setTimeout(()=>{
@@ -149,6 +149,7 @@ export class AgendaPage implements OnInit {
// AccoesPresidenciais = Correspondencia = 0
setCookie('searchModalAPPType','0', 99999999);
this.showLoader = false;
}
ngOnInit() {
@@ -222,7 +223,7 @@ export class AgendaPage implements OnInit {
//Show information of the event
async onEventSelected(ev: { event: Event}){
this.viewEventDetail();
this.viewEventDetail(ev.event.EventId);
/* this.router.navigate(["/home/agenda", ev.event.EventId, 'agenda']); */
}
@@ -498,24 +499,42 @@ export class AgendaPage implements OnInit {
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
modal.onDidDismiss().then((data) => {
let postEvent: Event = data['data'];
if (postEvent.Subject != null)
{
this.eventSource.push({
title: postEvent.Subject,
startTime: new Date(postEvent.StartDate),
endTime: new Date(postEvent.EndDate),
allDay: false,
event: postEvent
});
this.myCal.update();
this.myCal.loadEvents();
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
}
});
}
async viewEventDetail() {
async viewEventDetail(eventId:any) {
console.log(this.profile);
const modal = await this.modalCtrl.create({
component: ViewEventPage,
componentProps:{
segment: this.segment,
profile: this.profile,
/* eventSelectedDate: this.eventSelectedDate, */
eventId: eventId,
},
cssClass: 'modal',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
modal.onDidDismiss().then((res)=>{
if(res){
console.log(res);
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
}
});
}
@@ -13,7 +13,7 @@
<ion-content>
<div class="main-content">
<div class="ion-item-container">
<ion-input placeholder="Assunto"></ion-input>
<ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
</div>
<div class="container-div">
<div class="ion-item-class-2">
@@ -21,7 +21,7 @@
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Localização"></ion-input>
<ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
</div>
</div>
<!-- Error messages -->
@@ -37,7 +37,11 @@
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione agenda" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select 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>
@@ -51,9 +55,15 @@
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione tipo" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="Oficial">Reunião</ion-select-option>
<ion-select-option value="Pessoal">Viagem</ion-select-option>
<ion-select placeholder="Selecione tipo"
[(ngModel)]="postEvent.EventType"
selectedText="{{postEvent.EventType}}"
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>
@@ -67,7 +77,7 @@
<div class="ion-input-class">
<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"
@@ -88,7 +98,7 @@
<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"
@@ -107,7 +117,11 @@
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione repetição" value="false" interface="action-sheet" Cancel-text="Cancelar" required>
<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>
@@ -120,11 +134,11 @@
<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 (click)="openAttendees()" class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label class="list-people-title">Ver ou editar participantes</ion-label>
<ion-label hidden >Text</ion-label>
</ion-list>
</ion-item>
@@ -136,7 +150,7 @@
</div>
</div>
<div class="container-div">
<div hidden class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-people-cc.svg"></ion-icon>
@@ -163,7 +177,7 @@
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Detalhes"></ion-input>
<ion-input placeholder="Detalhes" [(ngModel)]="postEvent.Body.Text"></ion-input>
</div>
</div>
</div>
@@ -208,4 +222,4 @@
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-footer>
</ion-footer>
@@ -1,5 +1,14 @@
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { AlertController, ModalController, NavParams } from '@ionic/angular';
import { AuthConnstants } from 'src/app/config/auth-constants';
import { Attachment } from 'src/app/models/attachment.model';
import { EventBody } from 'src/app/models/eventbody.model';
import { EventPerson } from 'src/app/models/eventperson.model';
import { AlertService } from 'src/app/services/alert.service';
import { AttachmentsService } from 'src/app/services/attachments.service';
import { EventsService } from 'src/app/services/events.service';
import { Event } from '../../../models/event.model';
import { AttendeesPage } from '../../events/attendees/attendees.page';
@Component({
selector: 'app-edit-event',
@@ -8,17 +17,79 @@ import { ModalController } from '@ionic/angular';
})
export class EditEventPage implements OnInit {
postEvent: Event;
isRecurring:string;
isEventEdited: boolean;
loadedEvent: Event;
eventBody: EventBody;
segment:string = "true";
profile:string;
eventAttendees: EventPerson[];
selectedSegment: string;
selectedDate: Date;
minDate: string;
constructor(
private modalController: ModalController,
) { }
private navParams: NavParams,
private eventsService: EventsService,
private alertService: AlertService,
public alertController: AlertController,
) {
this.isEventEdited = false;
this.postEvent = this.navParams.get('event');
if(this.postEvent.IsRecurring == false){
this.isRecurring = "Não se repete";
}
else{
this.isRecurring = "Repete";
}
this.profile = this.navParams.get('profile');
}
ngOnInit() {
}
close(){
this.modalController.dismiss(null);
}
save(){
console.log(this.profile);
console.log(this.postEvent);
}
close(){
this.modalController.dismiss();
}
save(){
console.log(this.postEvent);
this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => {
const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Evento actualizado',
buttons: ['OK']
});
await alert.present();
});
this.isEventEdited = true;
this.modalController.dismiss(this.isEventEdited);
}
async openAttendees()
{
const modal = await this.modalController.create({
component: AttendeesPage,
componentProps: {
eventAttendees: this.postEvent.Attendees
},
cssClass: 'attendee',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss().then((data) => {
if (data['data'] != null)
{
let newattendees: EventPerson[] = data['data'];
this.postEvent.Attendees = newattendees;
}
});
}
}
@@ -55,7 +55,10 @@
<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.EventType" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select placeholder="Selecione tipo"
[(ngModel)]="postEvent.EventType"
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>
@@ -38,14 +38,12 @@ export class NewEventPage implements OnInit {
ngOnInit() {
console.log(this.profile);
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(); */
selectedEndDate.setMinutes(this.selectedDate.getMinutes() + 30) ;
this.minDate = this.selectedDate.toString();
if(this.selectedSegment != "Combinada"){
this.postEvent ={
@@ -2,12 +2,15 @@
<ion-toolbar class="header-toolbar">
<div class="main-header">
<div class="title-content">
<app-btn-modal-dismiss></app-btn-modal-dismiss>
<div class="middle">
<ion-label class="title">Ver Evento</ion-label>
<div class="left">
<ion-icon (click)="close()" slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
</div>
<div class="header-icon-right">
<ion-icon slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
<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>
@@ -19,18 +22,18 @@
<div class="upper-content">
<div class="content-location">
<div class="location-detail">
<ion-label >Texto</ion-label>
<ion-label >{{loadedEvent.Location}}</ion-label>
</div>
<div class="button-calendar-type">
<ion-button class="button-calendar-type" slot="end">Texto</ion-button>
<div class="button-{{profile}}-{{loadedEvent.CalendarName}}">
<ion-button class="button-{{profile}}-{{loadedEvent.CalendarName}}" slot="end">{{loadedEvent.CalendarName}}</ion-button>
</div>
</div>
<div class="content-details">
<ion-label>
<p>Texto</p>
<p>das Texto às Texto</p>
<p >(Não se repete)</p>
<p >Repete</p>
<p>{{customDate}}</p>
<p>das {{loadedEvent.StartDate | date: 'hh:mm'}} às {{loadedEvent.EndDate | date: 'hh:mm'}}</p>
<p *ngIf="!loadedEvent.IsRecurring">(Não se repete)</p>
<p *ngIf="loadedEvent.IsRecurring">Repete</p>
</ion-label>
</div>
</div>
@@ -38,24 +41,26 @@
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<h3>Intervenientes</h3>
<p>Texto</p>
<div *ngFor="let attendee of loadedEvent.Attendees">
<p>{{attendee.Name}}</p>
</div>
</ion-label>
</ion-item>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<h3>Detalhes</h3>
<p>Texto</p>
<p>{{loadedEvent.Body.Text}}</p>
</ion-label>
</ion-item>
</div>
<div class="bottom-content">
<div *ngIf="loadedAttachments" class="bottom-content">
<ion-list>
<h3>Documentos Anexados</h3>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<p class="attach-title-item">Receita por Natureza</p>
<p><span class="span-left">Texto</span><span class="span-right"><!-- {{ task.CreateDate | date: 'dd-MM-yy' }} --></span></p>
<ion-label *ngFor="let attach of loadedAttachments">
<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>
</ion-label>
</ion-item>
</ion-list>
@@ -31,8 +31,14 @@ ion-menu{
padding: 0 !important;
background: #fff;
.left{
width: 37px;
float: left;
font-size: 35px;
overflow: hidden;
}
.middle{
width: 270px;
width: 230px;
padding: 0!important;
float: left;
margin: 2.5px 0 0 0;
@@ -43,6 +49,24 @@ ion-menu{
float: right;
overflow: auto;
}
.div-icon{
width: 92px;
float: right;
overflow: auto;
padding: 1px;
}
.div-icon .edit{
font-size: 35px;
float: left;
}
.div-icon .delete{
padding: 7px;
font-size: 21px;
color:#fff;
background: #d30606;
border-radius: 20px;
margin-left: 10px;
}
}
.title{
@@ -78,13 +102,37 @@ ion-menu{
float: left;
margin: 5px 5px 5px 0px;
}
.button-calendar-type{
.button-mdgpr-Oficial{
width: 91px;
--border-radius: 12.5px;
--border-radius: 20px;
--background: #ffb703;
margin-left: 5px;
float: left;
}
.button-mdgpr-Pessoal{
width: 91px;
--border-radius: 20px;
--background: #f05d5e;
margin-left: 5px;
float: left;
}
.button-pr-Oficial{
width: 91px;
--border-radius: 20px;
--background: #cbeecb;
margin-left: 5px;
float: left;
}
.button-pr-Pessoal{
width: 91px;
--border-radius: 20px;
--background: #cab0dc;
margin-left: 5px;
float: left;
}
.button-calendar-type ion-button{
height: 25px;
}
@@ -1,4 +1,12 @@
import { Component, OnInit } from '@angular/core';
import { AlertController, ModalController, NavParams } from '@ionic/angular';
import { AuthConnstants } from 'src/app/config/auth-constants';
import { Attachment } from 'src/app/models/attachment.model';
import { EventBody } from 'src/app/models/eventbody.model';
import { AttachmentsService } from 'src/app/services/attachments.service';
import { EventsService } from 'src/app/services/events.service';
import { Event } from '../../../models/event.model';
import { EditEventPage } from '../edit-event/edit-event.page';
@Component({
selector: 'app-view-event',
@@ -7,9 +15,110 @@ import { Component, OnInit } from '@angular/core';
})
export class ViewEventPage implements OnInit {
constructor() { }
loadedEvent: Event;
isEventEdited: boolean;
eventBody: EventBody;
loadedAttachments:any;
loadedEventAttachments: Attachment[];
pageId: string;
showLoader: boolean;
ngOnInit() {
minDate: Date;
profile:string;
eventId:string;
customDate:any;
today:any;
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"];
constructor(
private modalController: ModalController,
private navParams: NavParams,
private eventsService: EventsService,
private attachmentsService: AttachmentsService,
public alertController: AlertController,
)
{
this.profile = this.navParams.get('profile');
this.isEventEdited = false;
this.loadedEvent = new Event();
this.eventBody = { BodyType : "1", Text : ""};
this.loadedEvent.Body = this.eventBody;
this.eventId = this.navParams.get('eventId');
}
ngOnInit() {
/* console.log(this.eventId); */
this.loadEvent();
this.getAttachments();
}
close(){
console.log(this.isEventEdited);
this.modalController.dismiss(this.isEventEdited);
}
loadEvent(){
this.eventsService.getEvent(this.eventId).subscribe(res => {
this.loadedEvent = res;
console.log(res);
this.today = new Date(res.StartDate);
console.log(new Date(this.today));
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
});
}
deleteEvent(){
this.eventsService.deleteEvent(this.loadedEvent.EventId, 0).subscribe(async () =>
{
const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Evento removido',
buttons: ['OK']
});
await alert.present();
this.close();
});
}
getAttachments(){
this.attachmentsService.getAttachmentsById(this.eventId).subscribe(res=>{
this.loadedAttachments = res;
console.log(res);
});
}
async editEvent() {
/* this.close(); */
console.log(this.profile);
const modal = await this.modalController.create({
component: EditEventPage,
componentProps:{
event: this.loadedEvent,
profile: this.profile,
},
cssClass: 'modal',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss().then((res) => {
console.log(res);
if(res){
setTimeout(() => {
/* this.loadEvent(); */
this.getAttachments();
}, 250);
this.isEventEdited = true;
}
});
}
}
+3 -3
View File
@@ -37,7 +37,7 @@
<div class="content">
<ul>
<li *ngFor="let event of eventsList"
[routerLink]="['/home/events', event.EventId, 'events']">
(click)="viewEventDetail(event.EventId)">
<div class="d-flex content-{{profile}}-{{event.CalendarName}}">
<div class="schedule-time">
<div class="time-start">{{event.StartDate | date: 'hh:mm'}}</div>
@@ -82,8 +82,8 @@
<div class="time-start">{{task.CreateDate | date: 'hh:mm'}}</div>
</div>
<div class="schedule-details pointer">
<div class="description">{{ task.Remetente }}</div>
<div class="location">{{ task.Folio }}</div>
<div class="description">{{ task.Folio }}</div>
<div class="location">{{ task.Remetente }}</div>
</div>
</div>
</li>
+1
View File
@@ -296,6 +296,7 @@ ion-toolbar{
text-align: center;
color: var(--white);
line-height: unset;
margin-top: 10px;
}
.next-meeting{
+44 -4
View File
@@ -14,6 +14,8 @@ import { EventDetailPage } from './event-detail/event-detail.page';
import { EventDetailModalPage } from './event-detail-modal/event-detail-modal.page';
import { ProcessesService } from '../../services/processes.service';
import { DailyWorkTask } from '../../models/dailyworktask.model';
import { ViewEventPage } from '../agenda/view-event/view-event.page';
import { ExpedientePage } from '../gabinete-digital/expediente/expediente.page';
@Component({
selector: 'app-events',
@@ -106,7 +108,6 @@ export class EventsPage implements OnInit {
this.storageService.get(AuthConnstants.USER).then(res=>{
console.log(res);
});
this.showGreeting();
@@ -286,10 +287,7 @@ export class EventsPage implements OnInit {
this.taskslist = this.sortArrayISODate(AllResult).reverse()
});
}
sortArrayISODate(myArray: any){
@@ -298,6 +296,48 @@ export class EventsPage implements OnInit {
});
}
async viewEventDetail(eventId:any) {
console.log(this.profile);
const modal = await this.modalController.create({
component: ViewEventPage,
componentProps:{
eventId: eventId,
profile: this.profile,
},
cssClass: 'modal',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss().then((res)=>{
if(res){
console.log(res);
this.RefreshEvents();
}
});
}
async viewExpedient(serialNumber:any) {
console.log(this.profile);
const modal = await this.modalController.create({
component: ExpedientePage,
componentProps:{
serialNumber: serialNumber,
profile: this.profile,
},
cssClass: 'modal',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss().then((res)=>{
if(res){
console.log(res);
this.RefreshEvents();
}
});
}
@@ -1,6 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { ModalController } from '@ionic/angular';
import { ModalController, NavParams } from '@ionic/angular';
import { CalendarComponent } from 'ionic2-calendar';
import { DailyWorkTask } from '../../../models/dailyworktask.model';
@@ -20,10 +20,14 @@ export class ExpedientePage implements OnInit {
@ViewChild(CalendarComponent) myCal: CalendarComponent;
taskslist:DailyWorkTask[];
serialNumber:string;
constructor(
private modalCtrl: ModalController,
private processes:ProcessesService) { }
private navParams: NavParams,
private processes:ProcessesService) {
this.serialNumber = this.navParams.get('serialNumber');
}
ngOnInit() {
//Inicializar segment