mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
Merge branch 'develop_bitOut' into sentry
This commit is contained in:
@@ -252,6 +252,10 @@ const routes = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'chat-message-debugging',
|
path: 'chat-message-debugging',
|
||||||
|
loadChildren: () => import('./shared/popover/chat-message-debugging/chat-message-debugging.module').then( m => m.ChatMessageDebuggingPageModule)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'add-user',
|
||||||
loadChildren: () => import('./shared/chat/add-user/add-user.module').then( m => m.AddUserPageModule)
|
loadChildren: () => import('./shared/chat/add-user/add-user.module').then( m => m.AddUserPageModule)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -220,14 +220,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container-div width-100">
|
<!-- <div class="container-div width-100">
|
||||||
<div class="ion-item-class-2 d-flex">
|
<div class="ion-item-class-2 d-flex">
|
||||||
<div class="ion-icon-class">
|
<div class="ion-icon-class">
|
||||||
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="ion-input-class flex-grow-1" [class.input-error]="Form?.get('dateOccurrence')?.invalid && validateFrom ">
|
<div class="ion-input-class flex-grow-1" [class.input-error]="Form?.get('dateOccurrence')?.invalid && validateFrom ">
|
||||||
|
|
||||||
<!-- (ngModelChange)="onSelectedRecurringChanged($event)" -->
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
=======
|
||||||
|
|
||||||
|
>>>>>>> develop_bitOut-fix
|
||||||
<mat-form-field appearance="none" floatLabel="never" class="width-100" value="false" interface="action-sheet" required>
|
<mat-form-field appearance="none" floatLabel="never" class="width-100" value="false" interface="action-sheet" required>
|
||||||
<mat-select placeholder="Selecione repetição*"
|
<mat-select placeholder="Selecione repetição*"
|
||||||
[(ngModel)]="EventRecurrenceType"
|
[(ngModel)]="EventRecurrenceType"
|
||||||
@@ -242,7 +246,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div *ngIf="EventRecurrenceType != '-1'" class="container-div width-100">
|
<div *ngIf="EventRecurrenceType != '-1'" class="container-div width-100">
|
||||||
<div class="ion-item-class-2 d-flex">
|
<div class="ion-item-class-2 d-flex">
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
<input matInput [ngxMatDatetimePicker]="fim"
|
<input matInput [ngxMatDatetimePicker]="fim"
|
||||||
placeholder="Choose a date"
|
placeholder="Choose a date"
|
||||||
[(ngModel)]="postEvent.EndDate"
|
[(ngModel)]="postEvent.EndDate"
|
||||||
[min]="currentDate"
|
[min]="postEvent.StartDate"
|
||||||
[max]="maxDate"
|
[max]="maxDate"
|
||||||
[disabled]="disabled"
|
[disabled]="disabled"
|
||||||
>
|
>
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container-div d-flex width-100">
|
<!-- <div class="container-div d-flex width-100">
|
||||||
<div class="ion-item-class-2 width-100 d-flex">
|
<div class="ion-item-class-2 width-100 d-flex">
|
||||||
<div class="ion-icon-class">
|
<div class="ion-icon-class">
|
||||||
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
||||||
@@ -201,7 +201,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div *ngIf="selectedRecurringType != '-1'" class="container-div width-100">
|
<div *ngIf="selectedRecurringType != '-1'" class="container-div width-100">
|
||||||
<div class="ion-item-class-2 d-flex">
|
<div class="ion-item-class-2 d-flex">
|
||||||
|
|||||||
@@ -66,9 +66,9 @@ export class EditEventPage implements OnInit {
|
|||||||
public endMinDate = new Date(new Date().getTime() + 15 * 60000).toISOString().slice(0,10)
|
public endMinDate = new Date(new Date().getTime() + 15 * 60000).toISOString().slice(0,10)
|
||||||
public maxDate: any;
|
public maxDate: any;
|
||||||
public stepHour = 1;
|
public stepHour = 1;
|
||||||
public stepMinute = 5;
|
public stepMinute = 15;
|
||||||
public stepSecond = 5;
|
public stepSecond = 15;
|
||||||
currentDate = new Date();
|
currentDate = this.roundTimeQuarterHour();
|
||||||
|
|
||||||
loadedEventAttachments: Attachment[] = [];
|
loadedEventAttachments: Attachment[] = [];
|
||||||
taskParticipants: any = [];
|
taskParticipants: any = [];
|
||||||
@@ -171,6 +171,39 @@ export class EditEventPage implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
roundTimeQuarterHour() {
|
||||||
|
var timeToReturn = new Date();
|
||||||
|
// var minutes = timeToReturn.getMinutes();
|
||||||
|
var minutes = timeToReturn.getMinutes();
|
||||||
|
var hours = timeToReturn.getHours();
|
||||||
|
|
||||||
|
// console.log("MINUTOS: " +minutes);
|
||||||
|
// console.log("BEFORE MINUTES: " +(Math.round(minutes/15) * 15));
|
||||||
|
|
||||||
|
var m = (Math.round(minutes/15) * 15) % 60;
|
||||||
|
// console.log("AFTER MINUTES: " +m);
|
||||||
|
var h = minutes > 52 ? (hours === 23 ? 0 : ++hours) : hours;
|
||||||
|
|
||||||
|
if (m == 0) {
|
||||||
|
if(minutes > m){
|
||||||
|
m = m + 15;
|
||||||
|
}
|
||||||
|
timeToReturn.setHours(h);
|
||||||
|
timeToReturn.setMinutes(m);
|
||||||
|
}else{
|
||||||
|
if(minutes > m){
|
||||||
|
|
||||||
|
m = m + 15;
|
||||||
|
|
||||||
|
timeToReturn.setHours(h);
|
||||||
|
timeToReturn.setMinutes(m);
|
||||||
|
}else {
|
||||||
|
timeToReturn.setHours(h);
|
||||||
|
timeToReturn.setMinutes(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onSelectedRecurringChanged(ev?:any) {
|
onSelectedRecurringChanged(ev?:any) {
|
||||||
|
|
||||||
this.calculetedLastOccurrence(ev);
|
this.calculetedLastOccurrence(ev);
|
||||||
|
|||||||
@@ -310,6 +310,24 @@
|
|||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</div>
|
</div>
|
||||||
|
<!--
|
||||||
|
<div >
|
||||||
|
<ion-list class="list">
|
||||||
|
<ion-item>
|
||||||
|
<ion-label>
|
||||||
|
<p class="d-flex ion-justify-content-between">
|
||||||
|
<span class="attach-title-item">Assunto</span>
|
||||||
|
<span class="app-name">appName</span>
|
||||||
|
<span class="close-button text-black cursor-pointer" (click)="removeAttachment(i)" >
|
||||||
|
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<p><span class="span-left">EntidadeOrganicaNome</span><span class="span-right"> document </span></p>
|
||||||
|
</ion-label>
|
||||||
|
</ion-item>
|
||||||
|
</ion-list>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
<ion-footer class="ion-no-border d-flex justify-center px-20">
|
<ion-footer class="ion-no-border d-flex justify-center px-20">
|
||||||
|
|||||||
@@ -218,6 +218,17 @@
|
|||||||
class=" height-100 flex-column">
|
class=" height-100 flex-column">
|
||||||
</app-contacts>
|
</app-contacts>
|
||||||
|
|
||||||
|
<!-- <app-contacts
|
||||||
|
(openMessage)="openMessagesPage($event)"
|
||||||
|
(backToChat)="backToChat($event)"
|
||||||
|
(emptyTextDescriptionOpen)="emptyTextDescriptionOpen()"
|
||||||
|
(closeAllDesktopComponents)="closeAllDesktopComponents()"
|
||||||
|
*ngIf="showContacts"
|
||||||
|
[roomId]="roomId"
|
||||||
|
[style.display]="showContacts ? 'flex' : 'none'"
|
||||||
|
class=" height-100 flex-column">
|
||||||
|
</app-contacts> -->
|
||||||
|
|
||||||
<app-new-group
|
<app-new-group
|
||||||
(addGroupMessage)="openGroupContactsPage($event)"
|
(addGroupMessage)="openGroupContactsPage($event)"
|
||||||
[roomId]="roomId"
|
[roomId]="roomId"
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
|
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item class="item-hover cursor-pointer" lines="none" *ngFor="let event of listToPresent"
|
<ion-item class="item-hover cursor-pointer" lines="none" *ngFor="let event of listToPresent"
|
||||||
(click)="goToEvent(event.EventId)"
|
(click)="goToEvent(event)"
|
||||||
>
|
>
|
||||||
<div class="d-flex content-{{loggeduser.Profile}}-{{event.CalendarName}}">
|
<div class="d-flex content-{{loggeduser.Profile}}-{{event.CalendarName}}">
|
||||||
|
|
||||||
|
|||||||
@@ -460,18 +460,15 @@ export class EventsPage implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
goToEvent(eventId: any) {
|
goToEvent(event: any) {
|
||||||
this.router.navigate(['/home/events', eventId, 'events']);
|
let navigationExtras: NavigationExtras = { queryParams: { CalendarId: event.CalendarId } }
|
||||||
|
|
||||||
|
|
||||||
|
this.router.navigate(['/home/events', event.EventId, 'agenda'], navigationExtras);
|
||||||
}
|
}
|
||||||
|
|
||||||
goToExpediente(SerialNumber: any) {
|
goToExpediente(SerialNumber: any) {
|
||||||
this.router.navigate(['/home/events/expediente', SerialNumber, 'events']);
|
this.router.navigate(['/home/events/expediente', SerialNumber, 'events']);
|
||||||
/* if (this.loggeduser.Profile == 'MDGPR') {
|
|
||||||
this.router.navigate(['/home/events/expediente', SerialNumber, 'events']);
|
|
||||||
}
|
|
||||||
else if (this.loggeduser.Profile == 'PR') {
|
|
||||||
this.router.navigate(['/home/events/expedientes-pr', SerialNumber, 'events']);
|
|
||||||
} */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
viewExpedientListPage() {
|
viewExpedientListPage() {
|
||||||
|
|||||||
+2
-2
@@ -199,7 +199,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container-div width-100">
|
<!-- <div class="container-div width-100">
|
||||||
<div class="ion-item-class-2 d-flex">
|
<div class="ion-item-class-2 d-flex">
|
||||||
<div class="ion-icon-class">
|
<div class="ion-icon-class">
|
||||||
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div *ngIf="EventRecurrenceType != '-1'" class="container-div width-100">
|
<div *ngIf="EventRecurrenceType != '-1'" class="container-div width-100">
|
||||||
<div class="ion-item-class-2 d-flex">
|
<div class="ion-item-class-2 d-flex">
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class=" align-center justify-center d-flex flex-column width-100">
|
<div class=" align-center justify-center d-flex flex-column width-100">
|
||||||
<div *ngIf="SessionStore.hasPin" class="title">Digite o PIN</div>
|
<div *ngIf="SessionStore.hasPin" class="title">Digite o PIN</div>
|
||||||
<div *ngIf="!SessionStore.hasPin" class="title">Digite o novo PIN</div>
|
<div *ngIf="!SessionStore.hasPin" class="title">Digite o novo PIN</div>
|
||||||
@@ -26,7 +25,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="d-flex align-center justify-center">
|
<div class="d-flex align-center justify-center">
|
||||||
<div class="circle" (click)="setCode('1')">1</div> <div class="circle" (click)="setCode('2')">2</div> <div class="circle" (click)="setCode('3')">3</div>
|
<div class="circle" (click)="setCode('1')">1</div> <div class="circle" (click)="setCode('2')">2</div> <div class="circle" (click)="setCode('3')">3</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -39,41 +39,9 @@ export class InactivityPage implements OnInit {
|
|||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
|
||||||
|
|
||||||
// window.addEventListener('resize', (event) => {
|
|
||||||
// if(this.router.url != '/login') return false
|
|
||||||
|
|
||||||
// if(this.loop == false) {
|
|
||||||
// this.loop = true
|
|
||||||
// this.runloop()
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }, true);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
runloop() {
|
runloop() {
|
||||||
// const containerHeight = 651
|
|
||||||
|
|
||||||
// let circleHeight = document.querySelector('.circle')['offsetHeight']
|
|
||||||
// let circleWidth = document.querySelector('.circle')['offsetWidth']
|
|
||||||
//
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
// document.querySelectorAll('.circle').forEach(e=>{
|
|
||||||
// e['style']['height'] = (circleHeight -1 )+'px'
|
|
||||||
// e['style']['width'] = (circleWidth -1 )+'px'
|
|
||||||
// })
|
|
||||||
|
|
||||||
|
|
||||||
// if( window.innerHeight< containerHeight) {
|
|
||||||
// setTimeout(()=>{
|
|
||||||
// this.runloop()
|
|
||||||
// }, 100)
|
|
||||||
// } else {
|
|
||||||
// this.loop = false
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,8 +133,8 @@ export class InactivityPage implements OnInit {
|
|||||||
if(!SessionStore.hasPin) {
|
if(!SessionStore.hasPin) {
|
||||||
//
|
//
|
||||||
this.storePin()
|
this.storePin()
|
||||||
|
this.pinLogin()
|
||||||
} else {
|
} else {
|
||||||
//
|
|
||||||
this.pinLogin()
|
this.pinLogin()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -187,7 +155,7 @@ export class InactivityPage implements OnInit {
|
|||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.clearCode()
|
this.clearCode()
|
||||||
}, 1000)
|
}, 5000)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.toastService._badRequest('Pin incorreto')
|
this.toastService._badRequest('Pin incorreto')
|
||||||
@@ -222,7 +190,7 @@ export class InactivityPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}, 5000)
|
}, 100)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,28 +198,8 @@ export class InactivityPage implements OnInit {
|
|||||||
|
|
||||||
storePin() {
|
storePin() {
|
||||||
|
|
||||||
setTimeout(() => {
|
const code = this.code.join('');
|
||||||
const code = this.code.join('');
|
SessionStore.setPin(code);
|
||||||
SessionStore.setPin(code);
|
|
||||||
|
|
||||||
if(this.p.userPermission(this.p.permissionList.Agenda.access) || this.p.userPermission(this.p.permissionList.Gabinete.access)){
|
|
||||||
//When user has got access to Agenda but does not have their own calendar, goes to Agenda
|
|
||||||
if(this.p.userPermission(this.p.permissionList.Agenda.access) && SessionStore.user.OwnerCalendars.length == 0){
|
|
||||||
this.router.navigate(['/home/agenda']);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
this.router.navigate(['/home/events']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//If user has access permission to both Chat and Action, goes to Chat by default.
|
|
||||||
else if((this.p.userPermission(this.p.permissionList.Chat.access) && this.p.userPermission(this.p.permissionList.Actions.access)) || this.p.userPermission(this.p.permissionList.Chat.access)){
|
|
||||||
this.router.navigate(['/home/chat']);
|
|
||||||
}
|
|
||||||
else if(this.p.userPermission(this.p.permissionList.Actions.access)){
|
|
||||||
this.router.navigate(['/home/publications']);
|
|
||||||
}
|
|
||||||
|
|
||||||
}, 5000)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import { ClearStoreService } from 'src/app/services/clear-store.service';
|
|||||||
import { ChangeProfileService } from 'src/app/services/change-profile.service';
|
import { ChangeProfileService } from 'src/app/services/change-profile.service';
|
||||||
import { ThemeService } from 'src/app/services/theme.service';
|
import { ThemeService } from 'src/app/services/theme.service';
|
||||||
import { PermissionService } from 'src/app/services/permission.service';
|
import { PermissionService } from 'src/app/services/permission.service';
|
||||||
import { PermissionList } from 'src/app/models/permission/permissionList';
|
|
||||||
import { MessageModel, DeleteMessageModel } from '../../models/beast-orm';
|
import { MessageModel, DeleteMessageModel } from '../../models/beast-orm';
|
||||||
import { RochetChatConnectorService } from 'src/app/services/chat/rochet-chat-connector.service';
|
import { RochetChatConnectorService } from 'src/app/services/chat/rochet-chat-connector.service';
|
||||||
import { ChatSystemService } from 'src/app/services/chat/chat-system.service';
|
import { ChatSystemService } from 'src/app/services/chat/chat-system.service';
|
||||||
@@ -159,7 +158,7 @@ export class LoginPage implements OnInit {
|
|||||||
|
|
||||||
this.getToken();
|
this.getToken();
|
||||||
|
|
||||||
this.router.navigateByUrl('/pin', { replaceUrl: true });
|
this.router.navigateByUrl('/home/events', { replaceUrl: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|||||||
@@ -35,7 +35,6 @@
|
|||||||
displayFormat="D MMM YYYY H:mm"
|
displayFormat="D MMM YYYY H:mm"
|
||||||
minuteValues="0,5,10,15,20,25,30,35,40,45,50,55"
|
minuteValues="0,5,10,15,20,25,30,35,40,45,50,55"
|
||||||
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
|
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
|
||||||
min="{{minDate}}"
|
|
||||||
max="2025">
|
max="2025">
|
||||||
</ion-datetime>
|
</ion-datetime>
|
||||||
|
|
||||||
@@ -43,7 +42,6 @@
|
|||||||
<input matInput [ngxMatDatetimePicker]="picker1"
|
<input matInput [ngxMatDatetimePicker]="picker1"
|
||||||
placeholder="Data inicio*"
|
placeholder="Data inicio*"
|
||||||
[formControl]="dateControlStart"
|
[formControl]="dateControlStart"
|
||||||
[min]="minDate"
|
|
||||||
[disabled]="disabled"
|
[disabled]="disabled"
|
||||||
>
|
>
|
||||||
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle>
|
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
|
<!-- <ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</ion-toolbar>
|
</ion-toolbar>
|
||||||
|
|||||||
@@ -258,10 +258,8 @@ export class SearchPage implements OnInit {
|
|||||||
|
|
||||||
if(this.type == "Agenda" ){
|
if(this.type == "Agenda" ){
|
||||||
|
|
||||||
|
|
||||||
this.showLoader = true;
|
this.showLoader = true;
|
||||||
|
|
||||||
|
|
||||||
this.search.basicSearch(this.searchSubject, this.searchDocumentDate, this.searchSender
|
this.search.basicSearch(this.searchSubject, this.searchDocumentDate, this.searchSender
|
||||||
,this.searchOrganicEntiry, this.searchDocTypeId, '0').subscribe(res=>{
|
,this.searchOrganicEntiry, this.searchDocTypeId, '0').subscribe(res=>{
|
||||||
|
|
||||||
@@ -287,7 +285,8 @@ export class SearchPage implements OnInit {
|
|||||||
this.loadWordCloud();
|
this.loadWordCloud();
|
||||||
|
|
||||||
},error => {
|
},error => {
|
||||||
this.searchResult = "Registo não encontrado"
|
this.showLoader = false;
|
||||||
|
// this.searchResult = "Registo não encontrado"
|
||||||
console.log(error)
|
console.log(error)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -551,6 +550,11 @@ export class SearchPage implements OnInit {
|
|||||||
|
|
||||||
this.loadWordCloud();
|
this.loadWordCloud();
|
||||||
},error => {
|
},error => {
|
||||||
|
counter++;
|
||||||
|
|
||||||
|
if(counter ==2){
|
||||||
|
this.showLoader = false;
|
||||||
|
}
|
||||||
this.searchResult = "Registo não encontrado"
|
this.searchResult = "Registo não encontrado"
|
||||||
console.log(error)
|
console.log(error)
|
||||||
});
|
});
|
||||||
@@ -586,6 +590,7 @@ export class SearchPage implements OnInit {
|
|||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
this.loadWordCloud();
|
this.loadWordCloud();
|
||||||
},error => {
|
},error => {
|
||||||
|
this.showLoader = false;
|
||||||
this.searchResult = "Registo não encontrado"
|
this.searchResult = "Registo não encontrado"
|
||||||
console.log(error)
|
console.log(error)
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import { ChatMethodsService } from './chat-methods.service';
|
|||||||
import { AESEncrypt } from '../aesencrypt.service'
|
import { AESEncrypt } from '../aesencrypt.service'
|
||||||
import { AttachmentsService } from 'src/app/services/attachments.service';
|
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||||
import { NetworkServiceService} from 'src/app/services/network-service.service';
|
import { NetworkServiceService} from 'src/app/services/network-service.service';
|
||||||
|
import { JsonStore } from '../jsonStore.service';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@@ -95,10 +96,12 @@ export class ChatSystemService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loadChat() {
|
loadChat() {
|
||||||
this.ReLoadChat()
|
if(SessionStore.user.ChatData) {
|
||||||
|
this.ReLoadChat()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async ReLoadChat() {
|
private async ReLoadChat() {
|
||||||
|
|
||||||
await this.chatService.refreshtoken();
|
await this.chatService.refreshtoken();
|
||||||
await this.restoreUsers();
|
await this.restoreUsers();
|
||||||
@@ -271,6 +274,7 @@ export class ChatSystemService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.loadingWholeList = false
|
||||||
await this.storage.set('Rooms', rooms);
|
await this.storage.set('Rooms', rooms);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -282,7 +286,6 @@ export class ChatSystemService {
|
|||||||
this.sortRoomList()
|
this.sortRoomList()
|
||||||
}, 10000)
|
}, 10000)
|
||||||
|
|
||||||
this.loadingWholeList = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -400,7 +403,7 @@ export class ChatSystemService {
|
|||||||
if (setData.name != 'Rocket Cat') {
|
if (setData.name != 'Rocket Cat') {
|
||||||
// create room
|
// create room
|
||||||
if(!this.roomExist(roomId)) {
|
if(!this.roomExist(roomId)) {
|
||||||
let room:RoomService = new RoomService(this.RochetChatConnectorService, new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService), this.storage, this.platform, this.sqlservice, this.NativeNotificationService, this.sortService, this.ChatService, this.NfService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this)
|
let room:RoomService = new RoomService(this.RochetChatConnectorService, new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this), this.storage, this.platform, this.sqlservice, this.NativeNotificationService, this.sortService, this.ChatService, this.NfService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this)
|
||||||
room.setData(setData)
|
room.setData(setData)
|
||||||
room.receiveMessage()
|
room.receiveMessage()
|
||||||
room.getAllUsers = this.getUsers
|
room.getAllUsers = this.getUsers
|
||||||
@@ -573,9 +576,14 @@ export class ChatSystemService {
|
|||||||
})[0]
|
})[0]
|
||||||
|
|
||||||
if(roomName) {
|
if(roomName) {
|
||||||
const firstName = capitalizeTxt(roomName.split('.')[0])
|
try {
|
||||||
const lastName = capitalizeTxt(roomName.split('.')[1])
|
const firstName = capitalizeTxt(roomName.split('.')[0])
|
||||||
return firstName + ' ' + lastName
|
const lastName = capitalizeTxt(roomName.split('.')[1])
|
||||||
|
return firstName + ' ' + lastName
|
||||||
|
} catch(e) {
|
||||||
|
return roomData['membersExcludeMe'][0].name
|
||||||
|
}
|
||||||
|
|
||||||
} else if(roomData.name) {
|
} else if(roomData.name) {
|
||||||
return roomData.name
|
return roomData.name
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { AESEncrypt } from '../aesencrypt.service'
|
|||||||
import { HttpEventType } from '@angular/common/http';
|
import { HttpEventType } from '@angular/common/http';
|
||||||
import { AttachmentsService } from 'src/app/services/attachments.service';
|
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||||
import { NetworkServiceService , ConnectionStatus} from 'src/app/services/network-service.service';
|
import { NetworkServiceService , ConnectionStatus} from 'src/app/services/network-service.service';
|
||||||
|
import { ChatSystemService } from './chat-system.service';
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
})
|
})
|
||||||
@@ -67,7 +67,8 @@ export class MessageService {
|
|||||||
private ChatMethodsService: ChatMethodsService,
|
private ChatMethodsService: ChatMethodsService,
|
||||||
private AESEncrypt: AESEncrypt,
|
private AESEncrypt: AESEncrypt,
|
||||||
private AttachmentsService: AttachmentsService,
|
private AttachmentsService: AttachmentsService,
|
||||||
private NetworkServiceService: NetworkServiceService) {
|
private NetworkServiceService: NetworkServiceService,
|
||||||
|
private ChatSystemService: ChatSystemService) {
|
||||||
}
|
}
|
||||||
|
|
||||||
setData({customFields = {}, channels, mentions, msg ,rid ,ts, u, t, _id, id, _updatedAt, file, attachments, temporaryData, localReference , viewed = [], received = [], delate = false, delateRequest =false, from }:Message) {
|
setData({customFields = {}, channels, mentions, msg ,rid ,ts, u, t, _id, id, _updatedAt, file, attachments, temporaryData, localReference , viewed = [], received = [], delate = false, delateRequest =false, from }:Message) {
|
||||||
@@ -119,6 +120,17 @@ export class MessageService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!this.u.name && this.u.username) {
|
||||||
|
const user = this.ChatSystemService.users.find((u)=> u.username == this.u.username)
|
||||||
|
if(user) {
|
||||||
|
this.u.name = user.name
|
||||||
|
} else if( this.u.username == SessionStore.user.UserName) {
|
||||||
|
this.u.name = SessionStore.user.FullName
|
||||||
|
} else {
|
||||||
|
// console.log(user.username, SessionStore.user.UserName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.calDateDuration()
|
this.calDateDuration()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +215,6 @@ export class MessageService {
|
|||||||
// console.log('online send')
|
// console.log('online send')
|
||||||
this.RochetChatConnectorService.send(params).then(
|
this.RochetChatConnectorService.send(params).then(
|
||||||
(ChatMessage: any) => {
|
(ChatMessage: any) => {
|
||||||
console.log('response')
|
|
||||||
ChatMessage = ChatMessage.message.result
|
ChatMessage = ChatMessage.message.result
|
||||||
|
|
||||||
this.messageSend = true
|
this.messageSend = true
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ export class RoomService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setData({membersExcludeMe, members, u, customFields = {}, id, name, t, lastMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService), _updatedAt }) {
|
setData({membersExcludeMe, members, u, customFields = {}, id, name, t, lastMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this.ChatSystemService), _updatedAt }) {
|
||||||
this.customFields = customFields
|
this.customFields = customFields
|
||||||
this.id = id
|
this.id = id
|
||||||
this.name = name
|
this.name = name
|
||||||
@@ -710,10 +710,11 @@ export class RoomService {
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
const offlineMessage = await this.prepareMessageCreateIfNotExist({message:ChatMessage})
|
const offlineMessage = await this.prepareMessageCreateIfNotExist({message:ChatMessage})
|
||||||
offlineMessage.from = 'Offline'
|
|
||||||
offlineMessage.loadHistory = this.hasLoadHistory
|
|
||||||
|
|
||||||
if(offlineMessage) {
|
if(offlineMessage) {
|
||||||
|
offlineMessage.from = 'Offline'
|
||||||
|
offlineMessage.loadHistory = this.hasLoadHistory
|
||||||
|
|
||||||
this.messagesLocalReference.push(offlineMessage.localReference)
|
this.messagesLocalReference.push(offlineMessage.localReference)
|
||||||
|
|
||||||
offlineMessage?.decryptMessage()
|
offlineMessage?.decryptMessage()
|
||||||
@@ -827,7 +828,7 @@ export class RoomService {
|
|||||||
message = this.fix_updatedAt(message)
|
message = this.fix_updatedAt(message)
|
||||||
|
|
||||||
|
|
||||||
const wewMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService)
|
const wewMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this.ChatSystemService)
|
||||||
wewMessage.setData(message)
|
wewMessage.setData(message)
|
||||||
wewMessage.loadHistory = this.hasLoadHistory
|
wewMessage.loadHistory = this.hasLoadHistory
|
||||||
|
|
||||||
@@ -884,7 +885,7 @@ export class RoomService {
|
|||||||
async prepareCreate({message, save = true}): Promise<MessageService> {
|
async prepareCreate({message, save = true}): Promise<MessageService> {
|
||||||
message = this.fix_updatedAt(message)
|
message = this.fix_updatedAt(message)
|
||||||
|
|
||||||
const wewMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService)
|
const wewMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this.ChatSystemService)
|
||||||
wewMessage.setData(message)
|
wewMessage.setData(message)
|
||||||
wewMessage.loadHistory = this.hasLoadHistory
|
wewMessage.loadHistory = this.hasLoadHistory
|
||||||
|
|
||||||
@@ -922,7 +923,7 @@ export class RoomService {
|
|||||||
|
|
||||||
simplePrepareMessage(message) {
|
simplePrepareMessage(message) {
|
||||||
message = this.fix_updatedAt(message)
|
message = this.fix_updatedAt(message)
|
||||||
const wewMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService)
|
const wewMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this.ChatSystemService)
|
||||||
wewMessage.setData(message)
|
wewMessage.setData(message)
|
||||||
wewMessage.loadHistory = this.hasLoadHistory
|
wewMessage.loadHistory = this.hasLoadHistory
|
||||||
|
|
||||||
|
|||||||
@@ -210,7 +210,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container-div width-100">
|
<!-- <div class="container-div width-100">
|
||||||
<div class="ion-item-class-2">
|
<div class="ion-item-class-2">
|
||||||
<div class="ion-icon-class">
|
<div class="ion-icon-class">
|
||||||
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
||||||
@@ -239,7 +239,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div *ngIf="eventProcess.workflowInstanceDataFields.OccurrenceType != '-1'"
|
<div *ngIf="eventProcess.workflowInstanceDataFields.OccurrenceType != '-1'"
|
||||||
class="container-div width-100">
|
class="container-div width-100">
|
||||||
|
|||||||
@@ -147,7 +147,7 @@
|
|||||||
[(ngModel)]="postEvent.EndDate"
|
[(ngModel)]="postEvent.EndDate"
|
||||||
[max]="maxDate"
|
[max]="maxDate"
|
||||||
[disabled]="disabled"
|
[disabled]="disabled"
|
||||||
[min]="currentDate"
|
[min]="postEvent.StartDate"
|
||||||
>
|
>
|
||||||
<mat-datepicker-toggle id="new-fim" matSuffix [for]="fim"></mat-datepicker-toggle>
|
<mat-datepicker-toggle id="new-fim" matSuffix [for]="fim"></mat-datepicker-toggle>
|
||||||
<ngx-mat-datetime-picker #fim
|
<ngx-mat-datetime-picker #fim
|
||||||
@@ -162,7 +162,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container-div d-flex">
|
<!-- <div class="container-div d-flex">
|
||||||
<div class="ion-item-class-2 width-100 d-flex">
|
<div class="ion-item-class-2 width-100 d-flex">
|
||||||
<div class="ion-icon-class">
|
<div class="ion-icon-class">
|
||||||
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div *ngIf="postEvent.EventRecurrence.Type != '-1'" class="container-div width-100">
|
<div *ngIf="postEvent.EventRecurrence.Type != '-1'" class="container-div width-100">
|
||||||
<div class="ion-item-class-2 d-flex">
|
<div class="ion-item-class-2 d-flex">
|
||||||
|
|||||||
@@ -46,9 +46,9 @@ export class EditEventPage implements OnInit {
|
|||||||
public endMinDate = new Date(new Date().getTime() + 15 * 60000).toISOString().slice(0,10)
|
public endMinDate = new Date(new Date().getTime() + 15 * 60000).toISOString().slice(0,10)
|
||||||
public maxDate: any;
|
public maxDate: any;
|
||||||
public stepHour = 1;
|
public stepHour = 1;
|
||||||
public stepMinute = 5;
|
public stepMinute = 15;
|
||||||
public stepSecond = 5;
|
public stepSecond = 15;
|
||||||
currentDate = new Date();
|
currentDate = this.roundTimeQuarterHour();
|
||||||
|
|
||||||
Form: FormGroup;
|
Form: FormGroup;
|
||||||
validateFrom = false
|
validateFrom = false
|
||||||
@@ -216,6 +216,39 @@ export class EditEventPage implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
roundTimeQuarterHour() {
|
||||||
|
var timeToReturn = new Date();
|
||||||
|
// var minutes = timeToReturn.getMinutes();
|
||||||
|
var minutes = timeToReturn.getMinutes();
|
||||||
|
var hours = timeToReturn.getHours();
|
||||||
|
|
||||||
|
// console.log("MINUTOS: " +minutes);
|
||||||
|
// console.log("BEFORE MINUTES: " +(Math.round(minutes/15) * 15));
|
||||||
|
|
||||||
|
var m = (Math.round(minutes/15) * 15) % 60;
|
||||||
|
// console.log("AFTER MINUTES: " +m);
|
||||||
|
var h = minutes > 52 ? (hours === 23 ? 0 : ++hours) : hours;
|
||||||
|
|
||||||
|
if (m == 0) {
|
||||||
|
if(minutes > m){
|
||||||
|
m = m + 15;
|
||||||
|
}
|
||||||
|
timeToReturn.setHours(h);
|
||||||
|
timeToReturn.setMinutes(m);
|
||||||
|
}else{
|
||||||
|
if(minutes > m){
|
||||||
|
|
||||||
|
m = m + 15;
|
||||||
|
|
||||||
|
timeToReturn.setHours(h);
|
||||||
|
timeToReturn.setMinutes(m);
|
||||||
|
}else {
|
||||||
|
timeToReturn.setHours(h);
|
||||||
|
timeToReturn.setMinutes(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onSelectedRecurringChanged(ev:any){
|
onSelectedRecurringChanged(ev:any){
|
||||||
|
|
||||||
this.calculetedLastOccurrence(ev);
|
this.calculetedLastOccurrence(ev);
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { AddUserPage } from './add-user.page';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: AddUserPage
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
})
|
||||||
|
export class AddUserPageRoutingModule {}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { AddUserPageRoutingModule } from './add-user-routing.module';
|
||||||
|
|
||||||
|
import { AddUserPage } from './add-user.page';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
FormsModule,
|
||||||
|
IonicModule,
|
||||||
|
AddUserPageRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [AddUserPage]
|
||||||
|
})
|
||||||
|
export class AddUserPageModule {}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<ion-header>
|
||||||
|
<ion-toolbar>
|
||||||
|
<ion-title>addUser</ion-title>
|
||||||
|
</ion-toolbar>
|
||||||
|
</ion-header>
|
||||||
|
|
||||||
|
<ion-content>
|
||||||
|
|
||||||
|
</ion-content>
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { AddUserPage } from './add-user.page';
|
||||||
|
|
||||||
|
describe('AddUserPage', () => {
|
||||||
|
let component: AddUserPage;
|
||||||
|
let fixture: ComponentFixture<AddUserPage>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ AddUserPage ],
|
||||||
|
imports: [IonicModule.forRoot()]
|
||||||
|
}).compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(AddUserPage);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-add-user',
|
||||||
|
templateUrl: './add-user.page.html',
|
||||||
|
styleUrls: ['./add-user.page.scss'],
|
||||||
|
})
|
||||||
|
export class AddUserPage implements OnInit {
|
||||||
|
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -16,6 +16,7 @@ export class AttendeePage implements OnInit {
|
|||||||
contacts: EventPerson[];
|
contacts: EventPerson[];
|
||||||
showLoader: boolean = false;
|
showLoader: boolean = false;
|
||||||
eventPersons: EventPerson[];
|
eventPersons: EventPerson[];
|
||||||
|
inputFilter = ''
|
||||||
|
|
||||||
|
|
||||||
@Output() closeComponent = new EventEmitter<any>();
|
@Output() closeComponent = new EventEmitter<any>();
|
||||||
@@ -40,9 +41,9 @@ export class AttendeePage implements OnInit {
|
|||||||
|
|
||||||
this.LtaskParticipants = removeDuplicate(this.taskParticipants);
|
this.LtaskParticipants = removeDuplicate(this.taskParticipants);
|
||||||
this.LtaskParticipantsCc = removeDuplicate(this.taskParticipantsCc);
|
this.LtaskParticipantsCc = removeDuplicate(this.taskParticipantsCc);
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(){
|
ngOnChanges() {
|
||||||
this.LtaskParticipants = removeDuplicate(this.taskParticipants);
|
this.LtaskParticipants = removeDuplicate(this.taskParticipants);
|
||||||
this.LtaskParticipantsCc = removeDuplicate(this.taskParticipantsCc);
|
this.LtaskParticipantsCc = removeDuplicate(this.taskParticipantsCc);
|
||||||
}
|
}
|
||||||
@@ -64,7 +65,6 @@ export class AttendeePage implements OnInit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
save() {
|
save() {
|
||||||
|
|
||||||
this.setIntervenient.emit(removeDuplicate(this.LtaskParticipants));
|
this.setIntervenient.emit(removeDuplicate(this.LtaskParticipants));
|
||||||
@@ -107,7 +107,7 @@ export class AttendeePage implements OnInit {
|
|||||||
this.setContactWithClose();
|
this.setContactWithClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
close(){
|
close() {
|
||||||
this.closeComponent.emit();
|
this.closeComponent.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@ export class AttendeePage implements OnInit {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// if to show
|
// if to show
|
||||||
if(undefined != result2){
|
if(undefined != result2) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ export class AttendeePage implements OnInit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
remove(itm: EventPerson){
|
remove(itm: EventPerson) {
|
||||||
|
|
||||||
if(this.adding == "intervenient"){
|
if(this.adding == "intervenient"){
|
||||||
|
|
||||||
@@ -178,7 +178,17 @@ export class AttendeePage implements OnInit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sort(data: []) {
|
||||||
|
return data.sort(function (a: any, b: any) {
|
||||||
|
if (a.Name > b.Name) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (b.Name > a.Name) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}).reverse()
|
||||||
|
}
|
||||||
|
|
||||||
async fetchContacts(filter: string) {
|
async fetchContacts(filter: string) {
|
||||||
this.showLoader = true;
|
this.showLoader = true;
|
||||||
@@ -196,7 +206,7 @@ export class AttendeePage implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.contacts = result;
|
this.contacts = this.sort(result as any);
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -155,7 +155,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container-div width-100">
|
<!-- <div class="container-div width-100">
|
||||||
<div class="ion-item-class-2">
|
<div class="ion-item-class-2">
|
||||||
<div class="ion-icon-class">
|
<div class="ion-icon-class">
|
||||||
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div *ngIf="eventProcess.workflowInstanceDataFields.OccurrenceType != '-1'"
|
<div *ngIf="eventProcess.workflowInstanceDataFields.OccurrenceType != '-1'"
|
||||||
class="container-div width-100">
|
class="container-div width-100">
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
|
<button class="btn-cancel" shape="round" >Adicionar</button>
|
||||||
<button (click)="leaveGroup()" class="btn-cancel" shape="round" >Sair do Grupo</button>
|
<button (click)="leaveGroup()" class="btn-cancel" shape="round" >Sair do Grupo</button>
|
||||||
<button *ngIf="isAdmin" (click)="openChangeGroupName()" class="btn-cancel" shape="round" >Alterar nome do grupo</button>
|
<button *ngIf="isAdmin" (click)="openChangeGroupName()" class="btn-cancel" shape="round" >Alterar nome do grupo</button>
|
||||||
<div class="solid"></div>
|
<div class="solid"></div>
|
||||||
|
|||||||
@@ -40,7 +40,6 @@
|
|||||||
<div class="buttons" *ngIf="task.activityInstanceName == 'Tarefa de Parecer'">
|
<div class="buttons" *ngIf="task.activityInstanceName == 'Tarefa de Parecer'">
|
||||||
<button (click)="openDarParecer(task)" class="btn-cancel" shape="round" >Dar o meu Parecer</button>
|
<button (click)="openDarParecer(task)" class="btn-cancel" shape="round" >Dar o meu Parecer</button>
|
||||||
<button *ngIf="p.userPermission([p.permissionList.Agenda.access])" (click)="openBookMeetingModal(task)" class="btn-cancel" shape="round" >Marcar Reunião</button>
|
<button *ngIf="p.userPermission([p.permissionList.Agenda.access])" (click)="openBookMeetingModal(task)" class="btn-cancel" shape="round" >Marcar Reunião</button>
|
||||||
<button *ngIf="p.userPermission([p.permissionList.Agenda.access])" (click)="openBookMeetingModal(task)" class="btn-cancel" shape="round" >Marcar Reunião</button>
|
|
||||||
<button (click)="sendExpedienteToPending()" *ngIf="task.Status != 'Pending'" class="btn-cancel" shape="round" >Enviar para Pendentes</button>
|
<button (click)="sendExpedienteToPending()" *ngIf="task.Status != 'Pending'" class="btn-cancel" shape="round" >Enviar para Pendentes</button>
|
||||||
<button (click)="openNewGroupPage()" class="btn-cancel" shape="round" *ngIf="task.WorkflowName == 'Pedido de Parecer do Presidente'">Iniciar Conversa</button>
|
<button (click)="openNewGroupPage()" class="btn-cancel" shape="round" *ngIf="task.WorkflowName == 'Pedido de Parecer do Presidente'">Iniciar Conversa</button>
|
||||||
<button (click)="cancel()" class="btn-cancel" shape="round" >Cancelar</button>
|
<button (click)="cancel()" class="btn-cancel" shape="round" >Cancelar</button>
|
||||||
@@ -55,8 +54,5 @@
|
|||||||
<button (click)="sendExpedienteToPending()" *ngIf="task.Status != 'Pending'" class="btn-cancel" shape="round" >Enviar para Pendentes</button>
|
<button (click)="sendExpedienteToPending()" *ngIf="task.Status != 'Pending'" class="btn-cancel" shape="round" >Enviar para Pendentes</button>
|
||||||
<button (click)="cancel()" class="btn-cancel" shape="round" >Cancelar</button>
|
<button (click)="cancel()" class="btn-cancel" shape="round" >Cancelar</button>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div *ngIf="task.WorkflowName == 'Pedido de Parecer do Presidente'" class="buttons">
|
|
||||||
<button (click)="openNewGroupPage()" class="btn-cancel" shape="round" >Iniciar Conversa</button>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -46,7 +46,6 @@
|
|||||||
placeholder="Data inicio*"
|
placeholder="Data inicio*"
|
||||||
[(ngModel)]="folder.DateBegin"
|
[(ngModel)]="folder.DateBegin"
|
||||||
[disabled]="disabled"
|
[disabled]="disabled"
|
||||||
[min]="currentDate"
|
|
||||||
>
|
>
|
||||||
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle>
|
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle>
|
||||||
<ngx-mat-datetime-picker #picker1
|
<ngx-mat-datetime-picker #picker1
|
||||||
@@ -83,7 +82,6 @@
|
|||||||
placeholder="Data de fim*"
|
placeholder="Data de fim*"
|
||||||
[(ngModel)]="folder.DateEnd"
|
[(ngModel)]="folder.DateEnd"
|
||||||
[disabled]="disabled"
|
[disabled]="disabled"
|
||||||
[min]="currentDate"
|
|
||||||
>
|
>
|
||||||
<mat-datepicker-toggle id="new-fim" matSuffix [for]="picker2"></mat-datepicker-toggle>
|
<mat-datepicker-toggle id="new-fim" matSuffix [for]="picker2"></mat-datepicker-toggle>
|
||||||
<ngx-mat-datetime-picker #picker2
|
<ngx-mat-datetime-picker #picker2
|
||||||
|
|||||||
@@ -63,8 +63,15 @@ export class NewActionPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get dateValid() {
|
get dateValid() {
|
||||||
if (window.innerWidth > 700) {
|
var validado: boolean;
|
||||||
return new Date(this.folder.DateBegin).toLocaleString('pt') < new Date(this.folder.DateEnd).toLocaleString("pt")? ['ok'] : []
|
|
||||||
|
if (window.innerWidth <= 800) {
|
||||||
|
if ((this.folder.DateBegin < this.folder.DateEnd) && (new Date(this.folder.DateBegin).getTime() > this.currentDate.getTime())) {
|
||||||
|
validado = true;
|
||||||
|
}else{
|
||||||
|
validado = false;
|
||||||
|
}
|
||||||
|
return validado == true ? ['ok']: [];
|
||||||
} else {
|
} else {
|
||||||
return ['ok']
|
return ['ok']
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,11 @@ class SessionService {
|
|||||||
return this._user.Inactivity
|
return this._user.Inactivity
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
isUserActive() {
|
||||||
|
return this._user.Inactivity
|
||||||
|
}
|
||||||
|
|
||||||
setInativity(value: boolean) {
|
setInativity(value: boolean) {
|
||||||
this._user.Inactivity = value
|
this._user.Inactivity = value
|
||||||
this._user.UrlBeforeInactivity = ''
|
this._user.UrlBeforeInactivity = ''
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
export const environment = {
|
export const environment = {
|
||||||
// apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/',
|
// apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/',
|
||||||
apiURL: 'https://gd-api.oapr.gov.ao/api/',
|
// apiURL: 'https://gd-api.oapr.gov.ao/api/',
|
||||||
|
apiURL: 'https://gdapi-dev.dyndns.info/GabineteDigital.Services/V5/api/',
|
||||||
// apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/',
|
// apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/',
|
||||||
// apiChatUrl: 'http://192.168.0.29:3000/api/v1/',
|
// apiChatUrl: 'http://192.168.0.29:3000/api/v1/',
|
||||||
// apiWsChatUrl: 'wss://192.168.0.29:3000/websocket',
|
// apiWsChatUrl: 'wss://192.168.0.29:3000/websocket',
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
export const environment = {
|
export const environment = {
|
||||||
// apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/',
|
// apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/',
|
||||||
apiURL: 'https://gd-api.oapr.gov.ao/api/',
|
// apiURL: 'https://gd-api.oapr.gov.ao/api/',
|
||||||
|
apiURL: 'https://gdapi-dev.dyndns.info/GabineteDigital.Services/V5/api/',
|
||||||
// apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/',
|
// apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/',
|
||||||
// apiChatUrl: 'http://192.168.0.29:3000/api/v1/',
|
// apiChatUrl: 'http://192.168.0.29:3000/api/v1/',
|
||||||
// apiWsChatUrl: 'wss://192.168.0.29:3000/websocket',
|
// apiWsChatUrl: 'wss://192.168.0.29:3000/websocket',
|
||||||
apiChatUrl: 'https://gd-chat.oapr.gov.ao/api/v1/',
|
apiChatUrl: 'https://gd-chat.oapr.gov.ao/api/v1/',
|
||||||
apiWsChatUrl: 'ws://gd-chat.oapr.gov.ao/websocket',
|
apiWsChatUrl: 'wss://gd-chat.oapr.gov.ao/websocket',
|
||||||
/* apiChatUrl: 'https://www.tabularium.pt/api/v1/',
|
/* apiChatUrl: 'https://www.tabularium.pt/api/v1/',
|
||||||
apiWsChatUrl: 'wss://www.tabularium.pt/websocket', */
|
apiWsChatUrl: 'wss://www.tabularium.pt/websocket', */
|
||||||
// apiChatUrl: 'https://www.tabularium.pt/api/v1/',
|
// apiChatUrl: 'https://www.tabularium.pt/api/v1/',
|
||||||
|
|||||||
Reference in New Issue
Block a user