This commit is contained in:
tiago.kayaya
2021-07-13 17:39:53 +01:00
12 changed files with 144 additions and 34 deletions
@@ -115,7 +115,7 @@
<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">
<div class="ion-input-class width-100" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<ion-datetime
placeholder="Início"
[(ngModel)]="postEvent.StartDate"
@@ -136,7 +136,7 @@
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<div class="ion-input-class" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<ion-datetime
placeholder="Fim"
[(ngModel)]="postEvent.EndDate"
@@ -168,10 +168,13 @@ export class EditEventPage implements OnInit {
IsRecurring: new FormControl(this.postEvent.IsRecurring, [
Validators.required
]),
Date: new FormControl(new Date(this.postEvent.StartDate).toLocaleString() < new Date(this.postEvent.EndDate).toLocaleString()? 'ok': null,[
Validators.required
]),
// participantes: new FormControl(this.taskParticipantsCc.concat(this.taskParticipants), [
// Validators.required
// ]),
participantes: new FormControl(this.taskParticipants, [
Validators.required
]),
})
}
@@ -35,7 +35,7 @@
</div>
</div>
<div *ngIf="Form && validateFrom" >
<!-- <div *ngIf="Form && validateFrom" >
<div *ngIf="Form.get('Location').invalid " class="input-errror-message">
<div *ngIf="Form.get('Location').errors?.required">
Campo obrigatório.
@@ -44,7 +44,7 @@
O campo deve ter pelo menos 4 caracteres.
</div>
</div>
</div>
</div> -->
<div class="container-div">
<div class="ion-item-class-2">
@@ -78,6 +78,49 @@
</div>
</div>
<div class="container-div">
<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" [class.input-error]="Form?.get('Categories')?.invalid && validateFrom ">
<ion-select placeholder="Selecione tipo de evento*"
class="d-block d-md-none"
[(ngModel)]="postData.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>
<mat-form-field class="d-none d-md-block" appearance="none" class="width-100" placeholder="Sample Type" required>
<!-- <input matInput type="text" > -->
<mat-select [(ngModel)]="postData.Categories[0]" >
<mat-option value="Reunião">
Reunião
</mat-option>
<mat-option value="Viagem">
Viagem
</mat-option>
<mat-option value="Conferência">
Conferência
</mat-option>
<mat-option value="Encontro">
Encontro
</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
@@ -201,6 +244,9 @@
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
@@ -1,5 +1,5 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
import { ActivatedRoute, Router } from '@angular/router';
import { AnimationController, ModalController, NavParams } from '@ionic/angular';
import { Event } from 'src/app/models/event.model'
import { EventBody } from 'src/app/models/eventbody.model';
@@ -70,7 +70,6 @@ export class BookMeetingModalPage implements OnInit {
Form: FormGroup;
validateFrom = false
showLoader = false
get dateStart () {
@@ -145,6 +144,9 @@ export class BookMeetingModalPage implements OnInit {
this.dateControlStart = new FormControl(moment(new Date()));
this.dateControlEnd = new FormControl(moment(new Date(new Date().getTime() + 15 * 60000)));
this.postData.Categories = ['Reunião']
}
ngOnInit() {
@@ -206,6 +208,9 @@ export class BookMeetingModalPage implements OnInit {
participantes: new FormControl(this.taskParticipants, [
Validators.required
]),
Categories: new FormControl(this.postData.Categories[0], [
Validators.required
]),
})
}
@@ -244,7 +249,7 @@ export class BookMeetingModalPage implements OnInit {
AppointmentState: 0,
TimeZone: 'UTC',
Organizer: null,
Categories: null,
Categories: ['Reunião'],
HasAttachments: true,
EventRecurrence: null,
}
@@ -151,6 +151,7 @@
(goBacktoPublicationDetails)="goBacktoPublicationDetails()"
(goBackToViewPublications)="goBackToViewPublications()"
(closeDesktopComponent)="closeDesktopComponent($event)"
(getActions)="getActions()"
>
</app-view-publications>
@@ -164,6 +165,7 @@
(closeDesktopComponent)="closeDesktopComponent($event)"
(goBacktoPublicationDetails)="goBacktoPublicationDetails()"
(goBackToViewPublications)="goBackToViewPublications()"
(getActions)="getActions()"
>
</app-new-publication>
@@ -176,12 +178,14 @@
(closeDesktopComponent)="closeDesktopComponent($event)"
(goBacktoPublicationDetails)="goBacktoPublicationDetails()"
(goBackToViewPublications)="goBackToViewPublications()"
(getActions)="getActions()"
></app-publication-detail-shared>
<app-new-action
*ngIf="desktopComponent.showAddActions"
class="height-100 d-flex flex-column overflow-hidden background-white flex-grow-1"
(closeDesktopComponent)="closeDesktopComponent($event)"
(getActions)="getActions()"
></app-new-action>
<app-edit-action
@@ -190,6 +194,7 @@
class="height-100 d-flex flex-column overflow-hidden background-white flex-grow-1"
(closeDesktopComponent)="closeDesktopComponent($event)"
(updateDesktopComponent)="updateDesktopComponent($event)"
(getActions)="getActions()"
>
</app-edit-action>
@@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import { ModalController, PopoverController } from '@ionic/angular';
import { PublicationFolder } from 'src/app/models/publicationfolder';
import { ProcessesService } from 'src/app/services/processes.service';
import { PublicationsService } from 'src/app/services/publications.service';
import { NewActionPage } from './new-action/new-action.page';
import { ViewPublicationsPage } from './view-publications/view-publications.page';
@@ -13,7 +12,7 @@ import { LoadingService } from 'src/app/services/loading.service';
import { Publication } from 'src/app/models/publication';
import { ActionsOptionsPage } from 'src/app/shared/popover/actions-options/actions-options.page';
import { EditActionPage } from './edit-action/edit-action.page';
import { ToastService } from 'src/app/services/toast.service';
@Component({
selector: 'app-publications',
@@ -61,6 +60,7 @@ export class PublicationsPage implements OnInit {
private loading: LoadingService,
private publications: PublicationsService,
private popoverController:PopoverController,
private toastService: ToastService
) {
this.months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
this.days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
@@ -118,7 +118,7 @@ export class PublicationsPage implements OnInit {
return window.innerWidth
}
getActions(){
getActions() {
this.showLoader = true;
this.publications.GetPublicationFolderList().subscribe(res=>{
this.publicationFolderList = res;
@@ -136,7 +136,7 @@ export class PublicationsPage implements OnInit {
DateEnd: this.theEndDate.getDate() +" de " + ( this.months[this.theEndDate.getMonth()])+" de " +this.theEndDate.getFullYear(),
ActionType: data.ActionType,
}
if(data.ActionType == "Evento"){
if(data.ActionType == "Evento") {
this.publicationsEventFolderList.push(folder);
}
else{
@@ -163,15 +163,27 @@ export class PublicationsPage implements OnInit {
//this.refreshing()
}
deleteAction(id?: string){
this.publications.DeletePresidentialAction(id).toPromise();
async deleteAction(id?: string){
const loader = this.toastService.loading();
try {
await this.publications.DeletePresidentialAction(id).toPromise();
this.toastService.successMessage()
} catch(e) {
this.toastService.badRequest()
}
finally {
loader.remove()
}
this.refreshing()
}
async AddPublicationFolder(item?:any) {
this.closeDesktopComponent();
if(window.innerWidth <= 1024){
if(window.innerWidth <= 1024) {
const modal = await this.modalController.create({
component: NewActionPage,
@@ -188,7 +200,6 @@ export class PublicationsPage implements OnInit {
} else {
this.desktopComponent.showAddActions = true;
}
}
@@ -360,6 +371,10 @@ export class PublicationsPage implements OnInit {
if(res['data']=='edit'){
this.closeDesktopComponent();
this.desktopComponent.showEditActions = true;
} else if (res['data']=='delete') {
setTimeout(()=>{
this.getActions();
},1000)
}
});
}
@@ -102,7 +102,7 @@ export class EditEventPage implements OnInit {
public alertController: AlertController,
private attachmentsService: AttachmentsService,
private toastService: ToastService ) {
}
ngOnInit() {
@@ -268,8 +268,13 @@ export class EditEventPage implements OnInit {
"EventId": this.postEvent.EventId,
"CalendarDestinationName": this.postEvent.CalendarName,
}
console.log(body);
await this.eventsService.changeAgenda(body).toPromise();
try {
await this.eventsService.changeAgenda(body).toPromise();
} catch (e) {}
}
this.showLoader = false;
this.toastService.successMessage()
@@ -1,6 +1,7 @@
import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular';
import { PublicationsService } from 'src/app/services/publications.service';
import { ToastService } from 'src/app/services/toast.service';
@Component({
selector: 'app-actions-options',
@@ -15,6 +16,7 @@ export class ActionsOptionsPage implements OnInit {
private modalController: ModalController,
private navParams: NavParams,
private publicationsService: PublicationsService,
private toastService: ToastService
) {
this.id = this.navParams.get('id');
}
@@ -30,9 +32,21 @@ export class ActionsOptionsPage implements OnInit {
this.modalController.dismiss('edit');
}
deleteAction(){
this.publicationsService.DeletePresidentialAction(this.id).toPromise();
this.close();
async deleteAction() {
const loader = this.toastService.loading();
try {
await this.publicationsService.DeletePresidentialAction(this.id).toPromise();
this.modalController.dismiss('delete');
} catch(e) {
this.toastService.badRequest()
}
finally {
loader.remove()
}
}
}
@@ -34,6 +34,7 @@ export class EditActionPage implements OnInit {
@Input() folderId: string;
@Output() closeDesktopComponent= new EventEmitter<any>();
@Output() updateDesktopComponent= new EventEmitter<any>();
@Output() getActions= new EventEmitter<any>();
constructor(
private publicationsService: PublicationsService,
@@ -103,6 +104,8 @@ export class EditActionPage implements OnInit {
this.close();
this.updateDesktopComponent.emit();
this.toastService.successMessage('Acção presidencial atualizada')
this.getActions.emit()
} catch (error) {
this.toastService.badRequest('Não foi possivel atualizar a acção presidencial')
} finally {
@@ -45,7 +45,7 @@
<mat-form-field appearance="none" class="width-100 date-hour-picker d-md-block">
<input matInput [ngxMatDatetimePicker]="picker1"
placeholder="Choose a date*"
[formControl]="dateControlStart"
[(ngModel)]="folder.DateBegin"
[min]="minDate"
[disabled]="disabled"
>
@@ -81,14 +81,14 @@
</ion-datetime>
<mat-form-field appearance="none" class="width-100 date-hour-picker d-md-block">
<input matInput [ngxMatDatetimePicker]="picker1"
<input matInput [ngxMatDatetimePicker]="picker2"
placeholder="Choose a date*"
[formControl]="dateControlEnd"
[(ngModel)]="folder.DateEnd"
[min]="minDate"
[disabled]="disabled"
>
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle>
<ngx-mat-datetime-picker #picker1
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker2"></mat-datepicker-toggle>
<ngx-mat-datetime-picker #picker2
[showSpinners]="showSpinners"
[showSeconds]="showSeconds"
[stepHour]="stepHour" [stepMinute]="stepMinute"
@@ -39,6 +39,7 @@ export class NewActionPage implements OnInit {
@Output() closeDesktopComponent= new EventEmitter<any>();
@Output() getActions= new EventEmitter<any>();
constructor(
private publication: PublicationsService,
@@ -46,8 +47,11 @@ export class NewActionPage implements OnInit {
) {
this.folder = new PublicationFolder();
this.dateControlStart = new FormControl(moment(new Date()));
this.dateControlEnd = new FormControl(moment(new Date(new Date().getTime() + 15 * 60000)));
this.folder = Object.assign(this.folder, {
DateBegin: moment(new Date()),
DateEnd: moment(new Date(new Date().getTime() + 15 * 60000)),
})
}
@@ -69,7 +73,7 @@ export class NewActionPage implements OnInit {
get dateValid() {
if (window.innerWidth >= 800) {
return this.folder.DateBegin < this.folder.DateEnd? ['ok']: []
return new Date(this.folder.DateBegin).toLocaleString('pt') < new Date(this.folder.DateEnd).toLocaleString("pt")? ['ok'] : []
} else {
return ['ok']
}
@@ -81,6 +85,8 @@ export class NewActionPage implements OnInit {
injectValidation() {
console.log(this.dateValid)
this.Form = new FormGroup({
Subject: new FormControl(this.folder.Description, [
Validators.required,
@@ -98,7 +104,13 @@ export class NewActionPage implements OnInit {
this.injectValidation()
this.runValidation()
if(this.Form.invalid) return false
if(this.Form.invalid) {
return false
} else {
console.log ('not passded')
}
console.log('pass')
this.folder = {
ProcessId: null,
@@ -116,6 +128,8 @@ export class NewActionPage implements OnInit {
await this.publication.CreatePublicationFolder(this.folder).toPromise()
this.close();
this.toastService.successMessage('Acção presidencial criada')
this.getActions.emit()
} catch (error) {
this.toastService.badRequest('Não foi possivel criar a acção presidencial')
} finally {
@@ -9,7 +9,7 @@
<div class="div-title flex-grow-1">
<ion-label class="title">{{item.Description}}</ion-label>
<p class="item-content-detail">{{item.Detail}}</p>
<p class="item-content-date">{{item.DateBegin}}</p>
<p class="item-content-date">{{ item.DateBegin | date: 'dd-MM-yy | hh:mm'}}</p>
</div>
<div class="actions-icon">
<!-- <ion-icon (click)="AddPublication('1',item.ProcessId)" slot="end" src='assets/images/icons-add-photo.svg'></ion-icon> -->
@@ -47,7 +47,7 @@
<div class="post-title">
<ion-label>{{publication.Title}}</ion-label>
</div>
<div class="post-data">{{publication.DatePublication | date: 'dd-MM-yy | h:mm'}}</div>
<div class="post-data">{{publication.DatePublication | date: 'dd-MM-yy | hh:mm'}}</div>
</div>
<div class="post-description">
<p>{{publication.Message}}</p>