Required fields description added to forms

This commit is contained in:
Eudes Inácio
2023-02-09 11:25:57 +01:00
parent 13c50fe491
commit ec475c76be
37 changed files with 188 additions and 90 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ const config: CapacitorConfig = {
launchAutoHide: false, launchAutoHide: false,
}, },
LocalNotifications: { LocalNotifications: {
smallIcon: 'ic_stat_icon_config_sample', smallIcon: 'ic_launcher_round',
iconColor: '#CE0B7C', iconColor: '#CE0B7C',
}, },
PushNotifications: { PushNotifications: {
+16 -15
View File
@@ -94,7 +94,8 @@ export class HomePage implements OnInit {
this.user = SessionStore.user; this.user = SessionStore.user;
} }
this.NativeNotificationService.askForPermission() this.NativeNotificationService.askForPermission();
this.NativeNotificationService.foregroundNotification();
this.router.events.subscribe((val) => { this.router.events.subscribe((val) => {
document.querySelectorAll('ion-modal').forEach((e: any) => e.remove()) document.querySelectorAll('ion-modal').forEach((e: any) => e.remove())
@@ -159,7 +160,7 @@ export class HomePage implements OnInit {
}) })
this.NetworkServiceService.onNetworkChange().subscribe((status) => { this.NetworkServiceService.onNetworkChange().subscribe((status) => {
if(status == ConnectionStatus.Online) { if (status == ConnectionStatus.Online) {
this.backgroundservice.online() this.backgroundservice.online()
} }
}) })
@@ -174,16 +175,16 @@ export class HomePage implements OnInit {
this.clearTabButtonSelection(); this.clearTabButtonSelection();
setTimeout(() => { setTimeout(() => {
if(this.p.userPermission([this.p.permissionList.Gabinete.md_tasks]) && this.p.userPermission([this.p.permissionList.Gabinete.pr_tasks])) { if (this.p.userPermission([this.p.permissionList.Gabinete.md_tasks]) && this.p.userPermission([this.p.permissionList.Gabinete.pr_tasks])) {
throw(SessionStore.user.FullName + 'cant have MD and PR authorization at same time'); throw (SessionStore.user.FullName + 'cant have MD and PR authorization at same time');
} }
if(this.p.userPermission([this.p.permissionList.Chat.access]) && !SessionStore.user?.ChatData?.data) { if (this.p.userPermission([this.p.permissionList.Chat.access]) && !SessionStore.user?.ChatData?.data) {
throw('Chat temporarily unavailable for '+SessionStore.user.FullName + '. No ChatData'); throw ('Chat temporarily unavailable for ' + SessionStore.user.FullName + '. No ChatData');
} }
if(this.p.userPermission([this.p.permissionList.Agenda.access]) && !this.eventService.hasAnyCalendar) { if (this.p.userPermission([this.p.permissionList.Agenda.access]) && !this.eventService.hasAnyCalendar) {
throw('User '+SessionStore.user.FullName + 'has No calendar'); throw ('User ' + SessionStore.user.FullName + 'has No calendar');
} }
}, 1000) }, 1000)
@@ -197,24 +198,24 @@ export class HomePage implements OnInit {
this.tabButton.chat = false; this.tabButton.chat = false;
} }
selectedTab(url?:string) { selectedTab(url?: string) {
this.clearTabButtonSelection(); this.clearTabButtonSelection();
if(url =='/home/events'){ if (url == '/home/events') {
this.tabButton.home = true; this.tabButton.home = true;
} }
else if(url == '/home/agenda'){ else if (url == '/home/agenda') {
this.tabButton.agenda = true; this.tabButton.agenda = true;
} }
else if(url =='/home/gabinete-digital') { else if (url == '/home/gabinete-digital') {
this.tabButton.gabinete = true; this.tabButton.gabinete = true;
} }
else if(url =='/home/publications') { else if (url == '/home/publications') {
this.tabButton.actions = true; this.tabButton.actions = true;
} }
else if(url == '/home/chat') { else if (url == '/home/chat') {
this.tabButton.chat = true; this.tabButton.chat = true;
} }
else{ else {
this.clearTabButtonSelection(); this.clearTabButtonSelection();
} }
} }
@@ -4,6 +4,7 @@
<div class="title" lines="none"> <div class="title" lines="none">
{{modalTitle[taskType]}} {{modalTitle[taskType]}}
</div> </div>
<i style="margin-top: 10px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
<div class="ion-item-container width-100" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom "> <div class="ion-item-container width-100" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom ">
<ion-input autocomplete="on" autocorrect="on" spellcheck="true" placeholder="Assunto*" [(ngModel)]="postData.DispatchFolder.Subject"></ion-input> <ion-input autocomplete="on" autocorrect="on" spellcheck="true" placeholder="Assunto*" [(ngModel)]="postData.DispatchFolder.Subject"></ion-input>
</div> </div>
@@ -8,7 +8,8 @@
<!-- *ngIf="p.userRole('PR')" --> <!-- *ngIf="p.userRole('PR')" -->
<!-- *ngIf="p.role(['PR','MD']).permissionAnyOf(['view','edit'])" --> <!-- *ngIf="p.role(['PR','MD']).permissionAnyOf(['view','edit'])" -->
<label >Convocar Reunião</label> <label >Convocar Reunião</label><br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
<div class="overflow-y-auto content-default-padding"> <div class="overflow-y-auto content-default-padding">
@@ -60,6 +61,12 @@
<mat-form-field appearance="none" class="width-100" color="ion-color-secondary" placeholder="Selecione agenda"> <mat-form-field appearance="none" class="width-100" color="ion-color-secondary" placeholder="Selecione agenda">
<mat-select [(value)]="CalendarName" (selectionChange)="changeAgenda()"> <mat-select [(value)]="CalendarName" (selectionChange)="changeAgenda()">
<!-- <mat-option *ngFor="let calendars of _eventService.calendarNamesAry; let i = index" value="{{calendars}}">
<div *ngIf="calendars != 'Meu calendario' && calendars == 'Presidente da República'"> Agenda do PR </div>
<div *ngIf="calendars != 'Meu calendario' && calendars == 'Ministro e Director do Gabinete do PR'"> Agenda do MD </div>
<div *ngIf="calendars != 'Meu calendario' && calendars != 'Ministro e Director do Gabinete do PR' && calendars != 'Presidente da República'"> Agenda do {{calendars}} </div>
<div *ngIf="calendars == 'Meu calendario'"> Minha agenda </div> -->
<mat-option *ngFor="let calendars of _eventService.calendarNamesAry" value="{{calendars}}"> <mat-option *ngFor="let calendars of _eventService.calendarNamesAry" value="{{calendars}}">
<div *ngIf="calendars != 'Meu calendario' "> Agenda de {{calendars}} </div> <div *ngIf="calendars != 'Meu calendario' "> Agenda de {{calendars}} </div>
<div *ngIf="calendars == 'Meu calendario'"> Agenda de {{loggeduser.FullName}} </div> <div *ngIf="calendars == 'Meu calendario'"> Agenda de {{loggeduser.FullName}} </div>
@@ -462,5 +462,9 @@ export class DocumentSetUpMeetingPage implements OnInit {
return date return date
} }
checkRoleInArray(str) {
return this._eventService.calendarRole.includes(str);
}
} }
+6 -3
View File
@@ -227,13 +227,16 @@
<div class="calendar-title-container px-20 d-none d-md-flex"> <div class="calendar-title-container px-20 d-none d-md-flex">
<div class="calendar-title-description flex-grow-1 text-grey d-flex justify-center align-center" *ngIf="eventService.hasOwnCalendar"> <div class="calendar-title-description flex-grow-1 text-grey d-flex justify-center align-center" *ngIf="eventService.hasOwnCalendar">
<div >Agenda de {{SessionStore.user.FullName}}</div> <!-- <div >Agenda de {{SessionStore.user.FullName}}</div> -->
<div >Minha agenda</div>
</div> </div>
<div class="calendar-title-description text-black align-center" *ngIf="eventService.hasSharedCalendar"> <div class="calendar-title-description text-black align-center" *ngIf="eventService.hasSharedCalendar">
<div class="flex-grow-1 text-grey d-flex justify-center align-center"> <div class="flex-grow-1 text-grey d-flex justify-center align-center">
<mat-option *ngFor="let calendars of eventService.calendarNamesAry" value="{{calendars}}"> <mat-option *ngFor="let calendars of eventService.calendarNamesAry.slice(0, 2)" value="{{calendars}}">
<div *ngIf="calendars != 'Meu calendario' "> Agenda de {{calendars}} </div> <div *ngIf="calendars != 'Meu calendario' && checkRoleInArray('Presidente da República')"> Agenda do PR </div>
<div *ngIf="calendars != 'Meu calendario' && checkRoleInArray('Ministro e Director do Gabinete do PR')"> Agenda do MDGPR </div>
<div *ngIf="calendars != 'Meu calendario' && checkRoleInArray('Presidente da República') && checkRoleInArray('Ministro e Director do Gabinete do PR')"> Agenda do {{calendars}} </div>
</mat-option> </mat-option>
</div> </div>
</div> </div>
+5
View File
@@ -1538,4 +1538,9 @@ export class AgendaPage implements OnInit {
return reuslt.length != 0 return reuslt.length != 0
} }
checkRoleInArray(str) {
return this.eventService.calendarRole.includes(str);
}
} }
@@ -3,7 +3,8 @@
<div class="main-header"> <div class="main-header">
<div class="title-content width-100"> <div class="title-content width-100">
<div class="middle"> <div class="middle">
<ion-label class="title">Novo Evento</ion-label> <ion-label class="title">Novo Evento</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
</div> </div>
@@ -24,7 +24,7 @@ ion-content{
.middle{ .middle{
padding: 0!important; padding: 0!important;
float: left; float: left;
width: 221px; width: 300px;
margin: 2.5px 0 0 5px; margin: 2.5px 0 0 5px;
} }
} }
@@ -183,6 +183,7 @@ export class NewEventPage implements OnInit {
this.setDefaultTime() this.setDefaultTime()
this.checkRoleInArray()
} }
setDefaultTime() { setDefaultTime() {
@@ -566,4 +567,16 @@ export class NewEventPage implements OnInit {
this.documents = this.documents.filter( (e, i) => index != i); this.documents = this.documents.filter( (e, i) => index != i);
} }
checkRoleInArray() {
for (let index = 0; index < this.eventService.calendarNamesAry.length; index++) {
console.log('ROLE1', this.eventService.calendarNamesAry[index])
}
for (let index = 0; index < this.eventService.calendarRole.length; index++) {
console.log('ROLE2',this.eventService.calendarRole[index])
}
}
} }
@@ -19,7 +19,11 @@
<ion-segment-button value="MDGPR"> <ion-segment-button value="MDGPR">
Meu Calendário Meu Calendário
</ion-segment-button> </ion-segment-button>
<ion-segment-button value="PR"> <ion-segment-button *ngFor="let calendars of eventService.calendarNamesAry" value="PR">
<!-- <ion-segment-button *ngFor="let calendars of eventService.calendarNamesAry" value="PR">
<div *ngIf="calendars != 'Meu calendario' && calendars == 'Presidente da República'"> Agenda do PR </div>
<div *ngIf="calendars != 'Meu calendario' && calendars == 'Ministro e Director do Gabinete do PR'"> Agenda do MD </div>
<div *ngIf="calendars != 'Meu calendario' && calendars != 'Ministro e Director do Gabinete do PR' && calendars != 'Presidente da República'"> Agenda do {{calendars}} </div> -->
Calendário Partilhado Calendário Partilhado
</ion-segment-button> </ion-segment-button>
</ion-segment> </ion-segment>
@@ -15,6 +15,7 @@ import { SortService } from 'src/app/services/functions/sort.service';
import { ThemeService } from 'src/app/services/theme.service' import { ThemeService } from 'src/app/services/theme.service'
import { RouteService } from 'src/app/services/route.service'; import { RouteService } from 'src/app/services/route.service';
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { EventsService } from 'src/app/services/events.service';
@Component({ @Component({
selector: 'app-event-list', selector: 'app-event-list',
@@ -49,7 +50,8 @@ export class EventListPage implements OnInit {
private backgroundservice: BackgroundService, private backgroundservice: BackgroundService,
public ThemeService: ThemeService, public ThemeService: ThemeService,
private RouteService: RouteService, private RouteService: RouteService,
private storage: Storage private storage: Storage,
public eventService: EventsService,
) { } ) { }
ngOnInit() { ngOnInit() {
@@ -4,7 +4,8 @@
<div class="content d-flex flex-column width-100 height-100 "> <div class="content d-flex flex-column width-100 height-100 ">
<div class="header-content header-default-padding"> <div class="header-content header-default-padding">
<div class="header-title"> <div class="header-title">
<label>Convocar Reunião</label> <label>Convocar Reunião</label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
<div class="overflow-y-auto content-default-padding"> <div class="overflow-y-auto content-default-padding">
@@ -35,8 +36,10 @@
<mat-select [(value)]="CalendarOwnerName" (selectionChange)="changeAgenda()"> <mat-select [(value)]="CalendarOwnerName" (selectionChange)="changeAgenda()">
<mat-option *ngFor="let calendars of calendarService.calendarNamesAry" value="{{calendars}}"> <mat-option *ngFor="let calendars of calendarService.calendarNamesAry" value="{{calendars}}">
<div *ngIf="calendars != 'Meu calendario' "> Agenda de {{calendars}} </div> <div *ngIf="calendars != 'Meu calendario' && calendar == 'Presidente da República'"> Agenda do PR </div>
<div *ngIf="calendars == 'Meu calendario'"> Agenda de {{loggeduser.FullName}} </div> <div *ngIf="calendars != 'Meu calendario' && calendar == 'Ministro e Director do Gabinete do PR'"> Agenda do MD </div>
<div *ngIf="calendars != 'Meu calendario' && calendar != 'Ministro e Director do Gabinete do PR' && calendar != 'Presidente da República'"> Agenda do {{calendars}} </div>
<div *ngIf="calendars == 'Meu calendario'"> Minha agenda </div>
</mat-option> </mat-option>
@@ -2,7 +2,8 @@
<div class="main-content d-flex height-100"> <div class="main-content d-flex height-100">
<div class="content d-flex flex-column width-100"> <div class="content d-flex flex-column width-100">
<ion-item lines="none"> <ion-item lines="none">
<ion-label class="title">{{modalTitle[taskType]}}</ion-label> <ion-label class="title">{{modalTitle[taskType]}}</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</ion-item> </ion-item>
<div class="ion-item-container width-100" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom "> <div class="ion-item-container width-100" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom ">
@@ -1,7 +1,8 @@
<ion-header class="ion-no-border pt-20 px-20"> <ion-header class="ion-no-border pt-20 px-20">
<div class="title-content width-100 d-flex align-center justify-space-between "> <div class="title-content width-100 d-flex align-center justify-space-between ">
<div class="div-title"> <div class="div-title">
<ion-label class="title">Editar acção presidencial</ion-label> <ion-label class="title">Editar acção presidencial</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
@@ -3,7 +3,8 @@
<div class="content-container"> <div class="content-container">
<div class="title-content width-100"> <div class="title-content width-100">
<div class="div-title"> <div class="div-title">
<ion-label class="title"> Nova Acção</ion-label> <ion-label class="title"> Nova Acção</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
<!-- <div class="actionType"> <!-- <div class="actionType">
<ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)"> <ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)">
@@ -19,7 +20,7 @@
</div> </div>
<div class="ion-item-container" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom "> <div class="ion-item-container" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom ">
<ion-input autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="folder.Description" placeholder="Assunto" ></ion-input> <ion-input autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="folder.Description" placeholder="Assunto*" ></ion-input>
</div> </div>
<div class="container-div"> <div class="container-div">
@@ -63,7 +63,7 @@ ion-toolbar{
padding: 0 !important; padding: 0 !important;
} }
.div-title{ .div-title{
width: 180px; width: 250;
/* padding: 0!important; */ /* padding: 0!important; */
float: left; float: left;
margin: 2.5px 0 0 5px; margin: 2.5px 0 0 5px;
@@ -3,7 +3,9 @@
<div class="content-container d-flex flex-column"> <div class="content-container d-flex flex-column">
<div class="title-content width-100"> <div class="title-content width-100">
<div class="div-title"> <div class="div-title">
<ion-label class="title">{{publicationTitle}}</ion-label> <ion-label class="title">{{publicationTitle}}</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
@@ -61,7 +61,7 @@ ion-toolbar{
padding: 0 !important; padding: 0 !important;
} }
.div-title{ .div-title{
width: 270px; width: 300px;
/* padding: 0!important; */ /* padding: 0!important; */
float: left; float: left;
margin: 2.5px 0 0 5px; margin: 2.5px 0 0 5px;
+18
View File
@@ -51,6 +51,8 @@ export class EventsService {
calendarNamesAry = [] calendarNamesAry = []
calendarNamesType = {} calendarNamesType = {}
calendarRole = []
calendrFullName = []
myCalendarNames = {} myCalendarNames = {}
hasAnyCalendar = false hasAnyCalendar = false
@@ -93,6 +95,8 @@ export class EventsService {
this.usersCalendarIds = []; this.usersCalendarIds = [];
this.calendarNames = {} this.calendarNames = {}
this.calendarRole = []
this.calendrFullName = [];
this.calendarIds = [] this.calendarIds = []
this.calendarNamesAry = [] this.calendarNamesAry = []
@@ -249,11 +253,25 @@ export class EventsService {
this.hasAnyCalendar = true this.hasAnyCalendar = true
if(sharedCalendar?.OwnerUserId) { if(sharedCalendar?.OwnerUserId) {
this.GetCalendarName(sharedCalendar.OwnerUserId).subscribe((e)=> { this.GetCalendarName(sharedCalendar.OwnerUserId).subscribe((e)=> {
console.log('sharedCalendar.OwnerUserId',e)
this.calendarNames[sharedCalendar.CalendarId] = e.FullName this.calendarNames[sharedCalendar.CalendarId] = e.FullName
this.myCalendarNames[sharedCalendar.CalendarId] = e.FullName this.myCalendarNames[sharedCalendar.CalendarId] = e.FullName
console.log('ROLE',e.Role, e.FullName)
if(!this.calendarNamesAry.includes(e.FullName)) { if(!this.calendarNamesAry.includes(e.FullName)) {
/* if(e.Role == "Presidente da República") {
this.calendarNamesAry.push(e.Role)
console.log('PR ROLE',this.calendarNamesAry)
} else if (e.Role == "Ministro e Director do Gabinete do PR"){
this.calendarNamesAry.push(e.Role)
console.log('MD ROLE',this.calendarNamesAry)
} else {
this.calendarNamesAry.push(e.FullName) this.calendarNamesAry.push(e.FullName)
console.log('NORMAL ROLE',this.calendarNamesAry)
} */
//this.calendarRole.push(e.Role)
this.calendarNamesType[e.FullName] = {} this.calendarNamesType[e.FullName] = {}
} }
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Platform } from '@ionic/angular'; import { Platform } from '@ionic/angular';
import { CapacitorConfig } from '@capacitor/cli'; import { CapacitorConfig } from '@capacitor/cli';
import { LocalNotifications } from '@capacitor/local-notifications'; import { LocalNotifications, LocalNotificationSchema } from '@capacitor/local-notifications';
@Injectable({ @Injectable({
@@ -25,6 +25,13 @@ export class NativeNotificationService {
} }
foregroundNotification() {
console.log('Local notification foreground')
LocalNotifications.addListener('localNotificationReceived', (notification) => {
console.log('Local Notification',notification)
})
}
sendNotificationChat({title = 'User', icon = '', message = 'hello'}) { sendNotificationChat({title = 'User', icon = '', message = 'hello'}) {
LocalNotifications.schedule({ LocalNotifications.schedule({
@@ -8,7 +8,8 @@
<ion-header> <ion-header>
<div class="title-content"> <div class="title-content">
<div class="middle"> <div class="middle">
<ion-label class="title">Editar evento por aprovar</ion-label> <ion-label class="title">Editar evento por aprovar</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
</ion-header> </ion-header>
@@ -3,7 +3,8 @@
<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">Editar Evento</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
<ion-progress-bar class="calendar-progress-bar" type="indeterminate" *ngIf="showLoader"></ion-progress-bar> <ion-progress-bar class="calendar-progress-bar" type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
@@ -3,7 +3,8 @@
<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">Novo Evento</ion-label> <ion-label class="title">Novo Evento</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
<ion-progress-bar class="calendar-progress-bar" type="indeterminate" *ngIf="showLoader"></ion-progress-bar> <ion-progress-bar class="calendar-progress-bar" type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
@@ -40,8 +41,10 @@
<mat-select [(value)]="CalendarName" (selectionChange)="changeAgenda()"> <mat-select [(value)]="CalendarName" (selectionChange)="changeAgenda()">
<mat-option *ngFor="let calendars of eventService.calendarNamesAry" value="{{calendars}}"> <mat-option *ngFor="let calendars of eventService.calendarNamesAry" value="{{calendars}}">
<div *ngIf="calendars != 'Meu calendario' "> Agenda de {{calendars}} </div> <div *ngIf="calendars != 'Meu calendario' && calendar == 'Presidente da República'"> Agenda do PR </div>
<div *ngIf="calendars == 'Meu calendario'"> Agenda de {{loggeduser.FullName}} </div> <div *ngIf="calendars != 'Meu calendario' && calendar == 'Ministro e Director do Gabinete do PR'"> Agenda do MD </div>
<div *ngIf="calendars != 'Meu calendario' && calendar != 'Ministro e Director do Gabinete do PR' && calendar != 'Presidente da República'"> Agenda do {{calendars}} </div>
<div *ngIf="calendars == 'Meu calendario'"> Minha agenda </div>
</mat-option> </mat-option>
</mat-select> </mat-select>
@@ -27,7 +27,7 @@
.middle{ .middle{
padding: 0!important; padding: 0!important;
float: left; float: left;
width: 221px; width: 300px;
margin: 2.5px 0 0 5px; margin: 2.5px 0 0 5px;
} }
} }
@@ -8,7 +8,9 @@
<ion-header> <ion-header>
<div class="title-content"> <div class="title-content">
<div class="middle"> <div class="middle">
<ion-label class="title">Editar evento por aprovar</ion-label> <ion-label class="title">Editar evento por aprovar</ion-label> <br>
<i style="margin-top: -5px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
</ion-header> </ion-header>
@@ -10,6 +10,7 @@
border-right: 1px solid #d8d8d8 !important; border-right: 1px solid #d8d8d8 !important;
} }
.main-header{ .main-header{
margin-bottom: 20px;
font-family: Roboto; font-family: Roboto;
background-color: #fff; background-color: #fff;
@@ -1,7 +1,8 @@
<ion-header class="ion-no-border pt-20 px-20"> <ion-header class="ion-no-border pt-20 px-20">
<div class="title-content d-flex align-center justify-space-between "> <div class="title-content d-flex align-center justify-space-between ">
<div class="div-title"> <div class="div-title">
<ion-label class="title">Editar acção presidencial</ion-label> <ion-label class="title">Editar acção presidencial</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
@@ -1,7 +1,8 @@
<ion-header class="ion-no-border pt-20 px-20"> <ion-header class="ion-no-border pt-20 px-20">
<div class="title-content d-flex align-center justify-space-between "> <div class="title-content d-flex align-center justify-space-between ">
<div class="div-title"> <div class="div-title">
<ion-label class="title"> Nova Acção</ion-label> <ion-label class="title"> Nova Acção</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
<!-- <div class="actionType"> <!-- <div class="actionType">
<ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)"> <ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)">
@@ -62,7 +62,7 @@ ion-toolbar{
padding: 0 !important; padding: 0 !important;
} }
.div-title{ .div-title{
width: 180px; width: 300px;
/* padding: 0!important; */ /* padding: 0!important; */
float: left; float: left;
margin: 2.5px 0 0 5px; margin: 2.5px 0 0 5px;
@@ -4,7 +4,8 @@
<ion-icon class="font-35" (click)="goBack()" slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon> <ion-icon class="font-35" (click)="goBack()" slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
</div> --> </div> -->
<div class="div-title"> <div class="div-title">
<ion-label class="title">{{ publicationTitle }}</ion-label> <ion-label class="title">{{ publicationTitle }}</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div> </div>
</div> </div>
</ion-header> </ion-header>
@@ -13,7 +14,7 @@
<div class="content-container"> <div class="content-container">
<div *ngIf="publicationType!='1'" class="ion-item-container" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom "> <div *ngIf="publicationType!='1'" class="ion-item-container" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom ">
<ion-input autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="pub.Title" name="title" placeholder="Título" ></ion-input> <ion-input autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="pub.Title" name="title" placeholder="Título*" ></ion-input>
</div> </div>
<div *ngIf="publicationType!='1' " class="container-div pb-20"> <div *ngIf="publicationType!='1' " class="container-div pb-20">
@@ -62,7 +62,7 @@ ion-toolbar{
padding: 0 !important; padding: 0 !important;
} }
.div-title{ .div-title{
width: 270px; width: 300px;
/* padding: 0!important; */ /* padding: 0!important; */
float: left; float: left;
margin: 2.5px 0 0 5px; margin: 2.5px 0 0 5px;
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#ed1b18" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<g>
<path d="M256,0C114.609,0,0,114.609,0,256s114.609,256,256,256s256-114.609,256-256S397.391,0,256,0z M256,472
c-119.297,0-216-96.703-216-216S136.703,40,256,40s216,96.703,216,216S375.297,472,256,472z"/>
<polygon points="240,234.656 246.234,320 265.781,320 272,233.875 272,128 240,128 "/>
<rect x="240" y="352" width="32" height="32"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 810 B

+1 -1
View File
@@ -3,4 +3,4 @@ import { oaprProd } from './suport/oapr'
import { doneITProd } from './suport/doneIt' import { doneITProd } from './suport/doneIt'
export const environment: Environment = oaprProd; export const environment: Environment = doneITProd;
+1 -1
View File
@@ -3,4 +3,4 @@ import { oaprDev } from './suport/oapr'
import { doneITDev } from './suport/doneIt' import { doneITDev } from './suport/doneIt'
export const environment: Environment = oaprDev; export const environment: Environment = doneITDev;
+6 -6
View File
@@ -1,12 +1,12 @@
export let versionData = { export let versionData = {
"shortSHA": "95c0cd624", "shortSHA": "13c50fe49",
"SHA": "95c0cd6249ba748a7abef10be71aaa10a3a7ac84", "SHA": "13c50fe491fdfd6bc7e0d44c3417b2e89ebbfbd8",
"branch": "no_bug_movemente", "branch": "no_bug_movemente",
"lastCommitAuthor": "'Eudes Inácio'", "lastCommitAuthor": "'Eudes Inácio'",
"lastCommitTime": "'Mon Feb 6 19:06:48 2023 +0100'", "lastCommitTime": "'Mon Feb 6 19:12:25 2023 +0100'",
"lastCommitMessage": "env", "lastCommitMessage": "Peter bug solved 15 min",
"lastCommitNumber": "4748", "lastCommitNumber": "4750",
"change": "", "change": "",
"changeStatus": "On branch no_bug_movemente\nYour branch and 'origin/no_bug_movemente' have diverged,\nand have 1 and 1 different commits each, respectively.\n (use \"git pull\" to merge the remote branch into yours)\n\nAll conflicts fixed but you are still merging.\n (use \"git commit\" to conclude merge)\n\nChanges to be committed:\n\tmodified: src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts\n\tmodified: src/app/pages/agenda/edit-event/edit-event.page.ts\n\tmodified: src/app/pages/agenda/new-event/new-event.page.ts\n\tmodified: src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts\n\tmodified: src/app/pages/publications/new-action/new-action.page.ts\n\tmodified: src/app/shared/agenda/edit-event/edit-event.page.ts\n\tmodified: src/app/shared/agenda/new-event/new-event.page.ts\n\tmodified: src/app/shared/publication/new-action/new-action.page.html\n\tmodified: src/app/shared/publication/new-action/new-action.page.ts\n\tmodified: src/environments/environment.prod.ts\n\tmodified: src/environments/environment.ts", "changeStatus": "On branch no_bug_movemente\nYour branch is up to date with 'origin/no_bug_movemente'.\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: capacitor.config.ts\n\tmodified: src/app/home/home.page.ts\n\tmodified: src/app/modals/create-process/create-process.page.html\n\tmodified: src/app/modals/document-set-up-meeting/document-set-up-meeting.page.html\n\tmodified: src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts\n\tmodified: src/app/pages/agenda/agenda.page.html\n\tmodified: src/app/pages/agenda/agenda.page.ts\n\tmodified: src/app/pages/agenda/new-event/new-event.page.html\n\tmodified: src/app/pages/agenda/new-event/new-event.page.scss\n\tmodified: src/app/pages/agenda/new-event/new-event.page.ts\n\tmodified: src/app/pages/gabinete-digital/event-list/event-list.page.html\n\tmodified: src/app/pages/gabinete-digital/event-list/event-list.page.ts\n\tmodified: src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.html\n\tmodified: src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page.html\n\tmodified: src/app/pages/publications/edit-action/edit-action.page.html\n\tmodified: src/app/pages/publications/new-action/new-action.page.html\n\tmodified: src/app/pages/publications/new-action/new-action.page.scss\n\tmodified: src/app/pages/publications/new-publication/new-publication.page.html\n\tmodified: src/app/pages/publications/new-publication/new-publication.page.scss\n\tmodified: src/app/services/events.service.ts\n\tmodified: src/app/services/native-notification.service.ts\n\tmodified: src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.html\n\tmodified: src/app/shared/agenda/edit-event/edit-event.page.html\n\tmodified: src/app/shared/agenda/new-event/new-event.page.html\n\tmodified: src/app/shared/agenda/new-event/new-event.page.scss\n\tmodified: src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.html\n\tmodified: src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.scss\n\tmodified: src/app/shared/publication/edit-action/edit-action.page.html\n\tmodified: src/app/shared/publication/new-action/new-action.page.html\n\tmodified: src/app/shared/publication/new-action/new-action.page.scss\n\tmodified: src/app/shared/publication/new-publication/new-publication.page.html\n\tmodified: src/app/shared/publication/new-publication/new-publication.page.scss\n\tnew file: src/assets/images/exclamation-mark.png\n\tnew file: src/assets/images/exclamation_mark.svg\n\tmodified: src/environments/environment.prod.ts\n\tmodified: src/environments/environment.ts",
"changeAuthor": "eudes.inacio" "changeAuthor": "eudes.inacio"
} }