ITOTEAM-527 permission and attachment count

This commit is contained in:
Peter Maquiran
2024-06-21 16:38:19 +01:00
parent 51e211c6df
commit 01530505c9
18 changed files with 69 additions and 53 deletions
@@ -118,13 +118,13 @@
</div>
</div>
<div class="profile-title d-flex justify-space-between align-center width-100">
<!--<div class="profile-title d-flex justify-space-between align-center width-100">
<div class="d-flex align-center">
<div>Tema</div>
</div>
</div>
<div class="profile-title d-flex justify-space-between align-center width-100">
<div class="profile-title d-flex justify-space-between align-center width-100">
<div class="d-flex align-center">
<div class="btn-close d-flex cursor-pointer" (click)="changeTheme('gov')">
<img style="width: 40px;" src="assets/images/theme/gov/governoangola_A.png">
@@ -134,12 +134,12 @@
<img style="width: 40px;" src="assets/images/logo-removebg-preview.png" />
</div>
<!-- <div class="btn-close d-flex cursor-pointer pr-10 pl-10" (click)="changeTheme('default')">
<div class="btn-close d-flex cursor-pointer pr-10 pl-10" (click)="changeTheme('default')">
<img style="width: 40px;" src="assets/images/logo-removebg-preview.png" />
</div> -->
</div>
</div>
</div>
</div> -->
</div>
@@ -24,7 +24,7 @@
<p class="title"><span>{{loadedEvent.Subject}}</span></p>
</div>
<div class="menu-options d-flex">
<button class="btn-no-color" (click)="editEvent()">
<button class="btn-no-color" (click)="editEvent()" *ngIf="p.userPermission([p.permissionList.Agenda.creatEvent])">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="edit" slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="edit" slot="end" src="assets/images/theme/gov/icons-edit.svg" ></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'doneIt' " class="edit" slot="end" src="assets/images/theme/{{ThemeService.currentTheme}}/icons-edit.svg" ></ion-icon>
+3 -1
View File
@@ -19,6 +19,7 @@ import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { isHttpError } from 'src/app/services/http.service';
import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-view-event',
@@ -67,7 +68,8 @@ export class ViewEventPage implements OnInit {
private storage: StorageService,
public ThemeService: ThemeService,
private httpErrorHandle: HttpErrorHandle,
private agendaDataRepository: AgendaDataRepositoryService
private agendaDataRepository: AgendaDataRepositoryService,
public p: PermissionService,
) {
this.eventId = this.navParams.get('eventId');
this.CalendarId = this.navParams.get('CalendarId');
-1
View File
@@ -34,7 +34,6 @@ export interface version {
lastCommitTime: string;
lastCommitMessage: string;
lastCommitNumber: string;
change: string;
changeStatus: string;
changeAuthor: string;
}
+1 -1
View File
@@ -125,7 +125,7 @@
<ion-icon *ngIf="ThemeService.currentTheme == 'doneIt' " class="right-icons" src="assets/images/theme/{{ThemeService.currentTheme}}/icons-received-event.svg"></ion-icon>
</button>
<button *ngIf="eventService.hasAnyCalendar" title="Novo Evento" class="cy-add-event cursor-pointer resize" (click)="clearContact();openAddEvent();">
<button *ngIf="eventService.hasAnyCalendar && p.userPermission([p.permissionList.Agenda.creatEvent])" title="Novo Evento" class="cy-add-event cursor-pointer resize" (click)="clearContact();openAddEvent();">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="right-icons" src="assets/images/icons-add.svg" ></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && !mobileComponent.showAddNewEvent" class="right-icons" src="assets/images/theme/gov/icons-add.svg" ></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && mobileComponent.showAddNewEvent" class="right-icons" src="assets/images/theme/gov/icons-add-selected.svg" ></ion-icon>
@@ -21,7 +21,7 @@
<!-- Event details page -->
</div>
<div class="menu-options d-flex">
<button class="btn-no-color" (click)="editEvent()">
<button class="btn-no-color" (click)="editEvent()" *ngIf="p.userPermission([p.permissionList.Agenda.creatEvent])">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="edit" slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="edit" slot="end" src="assets/images/theme/gov/icons-edit.svg" ></ion-icon>
</button>
@@ -71,7 +71,7 @@
<div class="line"></div>
<div class="middle-content">
<div *ngIf="loadedEvent.Attendees">
<h5 class="font-17-rem">Intervenientes</h5>
<h5 class="font-17-rem">Intervenientes({{ loadedEvent.Attendees.length }})</h5>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<div *ngFor="let attendee of loadedEvent.Attendees">
@@ -90,7 +90,7 @@
</div>
<div *ngIf="loadedEvent.Attachments" class="bottom-content width-100">
<h5 class="font-17-rem">Documentos Anexados</h5>
<h5 class="font-17-rem">Documentos Anexados({{ loadedEvent.Attachments.length }})</h5>
<ion-list class="width-100">
<ion-item *ngFor="let attach of loadedEvent.Attachments; let i = index" class="width-100" class="ion-no-margin ion-no-padding">
<ion-label class="width-100 d-flex " (click)="docIndex(i);LoadDocumentDetails()">
@@ -22,6 +22,7 @@ import { DateService } from 'src/app/services/date.service';
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { isHttpError } from 'src/app/services/http.service';
import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-view-event',
@@ -75,7 +76,8 @@ export class ViewEventPage implements OnInit {
private httpErrorHandle: HttpErrorHandle,
private attachmentsService: AttachmentsService,
private dateService: DateService,
private agendaDataRepository: AgendaDataRepositoryService
private agendaDataRepository: AgendaDataRepositoryService,
public p: PermissionService,
) {
@@ -10,7 +10,7 @@
<div class="header-title flex-grow-1">
<label>{{loadedEvent.workflowInstanceDataFields.Subject}}</label>
</div>
<div class="header-icon-right cursor-pointer" (click)="editar(loadedEvent.serialNumber)">
<div class="header-icon-right cursor-pointer" (click)="editar(loadedEvent.serialNumber)" *ngIf="p.userPermission([p.permissionList.Agenda.creatEvent])">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-edit.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " src="assets/images/theme/gov/icons-edit.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'doneIt' " src="assets/images/theme/{{ThemeService.currentTheme}}/icons-edit.svg"></ion-icon>
@@ -13,6 +13,7 @@ import { ToastService } from 'src/app/services/toast.service';
import { ThemeService } from 'src/app/services/theme.service'
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { TaskService } from 'src/app/services/task.service'
import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-approve-event-modal',
@@ -44,7 +45,8 @@ export class ApproveEventModalPage implements OnInit {
private toastService: ToastService,
public ThemeService: ThemeService,
private httpErrorHandle: HttpErrorHandle,
public TaskService: TaskService
public TaskService: TaskService,
public p: PermissionService,
) {
@@ -54,7 +56,7 @@ export class ApproveEventModalPage implements OnInit {
return;
}
else{
this.serialNumber = paramMap.get('serialNumber');
this.serialNumber = paramMap.get('serialNumber');
}
});
}
@@ -80,12 +82,12 @@ export class ApproveEventModalPage implements OnInit {
this.loadedEvent = res;
this.today = new Date(res.workflowInstanceDataFields.StartDate);
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
this.InstanceId = res.workflowInstanceDataFields.InstanceId
this.getAttachments()
})
}
viewDocument(docId:string, applicationId:string){
@@ -95,7 +97,7 @@ export class ApproveEventModalPage implements OnInit {
browser.show();
});
}
async approveTask(serialNumber:string) {
let body = { "serialNumber": serialNumber, "action": "Aprovar" }
@@ -112,7 +114,7 @@ export class ApproveEventModalPage implements OnInit {
} catch (error) {
this.httpErrorHandle.httpStatusHandle(error)
}
}
finally {
loader.remove()
}
@@ -128,10 +130,10 @@ export class ApproveEventModalPage implements OnInit {
async rejectTask(serialNumber:string) {
let body = { "serialNumber": serialNumber, "action": "Rejeitar" }
const loader = this.toastService.loading()
try {
try {
await this.processes.PostTaskAction(body).toPromise()
this.toastService._successMessage('Evento Eliminado!', () =>{
@@ -141,10 +143,10 @@ export class ApproveEventModalPage implements OnInit {
if(error.status == 0) {
this.toastService._badRequest('Sem acesso à internet. Por favor verifique sua conexão')
} else {
this.toastService._badRequest('Evento não rejeitado')
}
}
}
finally {
loader.remove()
}
@@ -158,7 +160,7 @@ export class ApproveEventModalPage implements OnInit {
} catch (error) {
console.error('getAttachments', error)
}
}
async openOptions(ev:any) {
@@ -194,10 +196,10 @@ export class ApproveEventModalPage implements OnInit {
modal.onDidDismiss().then( async (res) => {
if(res.data.option == 'save') {
let body = {
"serialNumber": serialNumber,
if(res.data.option == 'save') {
let body = {
"serialNumber": serialNumber,
"action": "Emendar",
"dataFields": {
"ReviewUserComment": res.data,
@@ -206,7 +208,7 @@ export class ApproveEventModalPage implements OnInit {
//
const loader = this.toastService.loading()
try {
await this.processes.PostTaskAction(body).toPromise()
this.router.navigate(['/home/gabinete-digital/event-list']);
@@ -215,11 +217,11 @@ export class ApproveEventModalPage implements OnInit {
if(error.status == 0) {
this.toastService._badRequest('Sem acesso à internet. Por favor verifique sua conexão')
} else {
this.toastService._badRequest('Evento não enviado para revisão');
}
this.router.navigate(['/home/gabinete-digital/event-list']);
}
}
finally {
loader.remove()
}
@@ -243,7 +245,7 @@ export class ApproveEventModalPage implements OnInit {
// backdropDismiss: false
});
modal.onDidDismiss().then(res => {
this.getTask();
this.getAttachments();
@@ -254,7 +256,7 @@ export class ApproveEventModalPage implements OnInit {
await modal.present();
}
}
}
@@ -22,7 +22,7 @@
<div class="header-title flex-grow-1 cursor-pointer" *ngIf="loadedEvent.workflowInstanceDataFields.Subject">
<label>{{loadedEvent.workflowInstanceDataFields.Subject}}</label>
</div>
<div (click)="editar(loadedEvent.serialNumber)" class="header-icon-right display-none-true">
<div (click)="editar(loadedEvent.serialNumber)" class="header-icon-right display-none-true" *ngIf="p.userPermission([p.permissionList.Agenda.creatEvent])">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-edit.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="edit" slot="end" src="assets/images/theme/gov/icons-edit.svg" ></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'doneIt' " class="edit" slot="end" src="assets/images/theme/{{ThemeService.currentTheme}}/icons-edit.svg" ></ion-icon>
@@ -74,7 +74,7 @@
<div class="overflow-y-auto">
<div class="middle-content">
<div *ngIf="loadedEvent.workflowInstanceDataFields.ParticipantsList">
<h5 class="font-17-rem">Intervenientes</h5>
<h5 class="font-17-rem">Intervenientes({{loadedEvent.workflowInstanceDataFields.ParticipantsList.length}})</h5>
<div *ngFor="let att of loadedEvent.workflowInstanceDataFields.ParticipantsList">
<ion-label>{{att.Name}}</ion-label>
</div>
@@ -90,7 +90,7 @@
</div>
<div *ngIf="loadedAttachments" class="bottom-content width-100">
<ion-list>
<h5 class="font-17-rem">Documentos Anexados</h5>
<h5 class="font-17-rem">Documentos Anexados({{loadedAttachments.length}})</h5>
<ion-item class="ion-no-margin ion-no-padding cursor-pointer"
*ngFor="let attachment of loadedAttachments"
(click)="viewDocument(attachment.DocId, attachment)">
@@ -20,6 +20,7 @@ import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { isHttpError } from 'src/app/services/http.service';
import { EventsService } from 'src/app/services/events.service';
import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-approve-event',
@@ -63,7 +64,8 @@ export class ApproveEventPage implements OnInit {
public TaskService: TaskService,
private attachmentsService: AttachmentsService,
public AgendaDataRepositoryService: AgendaDataRepositoryService,
public EventsService: EventsService
public EventsService: EventsService,
public p: PermissionService,
) {
this.activatedRoute.paramMap.subscribe(params => {
//
@@ -4,7 +4,7 @@ import { Tracer, Span } from '@opentelemetry/sdk-trace-base';
import { OpentelemetryAgendaProvider, OpentelemetryInterceptorProvider, OpentelemetryNotificationProvider } from './opentelemetry';
import { Device, DeviceInfo } from '@capacitor/device';
import { SessionStore } from 'src/app/store/session.service';
import { environment } from 'src/environments/environment';
const tracerInstance = OpentelemetryAgendaProvider.getTracer('example-tracer-hole', '111', {})
const tracerNotificationInstance = OpentelemetryNotificationProvider.getTracer('example-tracer-hole', '111', {})
@@ -89,6 +89,8 @@ export function XTracerAsync({ name, bugPrint, module = null, autoFinish = true
tracing.setAttribute('User', SessionStore?.user?.FullName);
tracing.setAttribute('current.page', window.location.pathname);
tracing.setAttribute('device.name', device?.name || device?.model)
tracing.setAttribute('commit.date', environment.version.lastCommitTime)
tracing.setAttribute('commit.branch', environment.version.branch)
args.push(tracing)
@@ -128,6 +130,8 @@ export function XTracer({ name, bugPrint, module, autoFinish = true }) {
tracing.setAttribute('User', SessionStore?.user?.FullName);
tracing.setAttribute('current.page', window.location.pathname);
tracing.setAttribute('device.name', device?.name || device?.model)
tracing.setAttribute('commit.date', environment.version.lastCommitTime)
tracing.setAttribute('commit.branch', environment.version.branch)
args.push(tracing)
@@ -26,7 +26,7 @@
<label>{{loadedEvent.workflowInstanceDataFields.Subject}}</label>
</div>
<div (click)="editar(loadedEvent.serialNumber)" class="header-icon-right display-none-{{showAside}}">
<div (click)="editar(loadedEvent.serialNumber)" class="header-icon-right display-none-{{showAside}}" *ngIf="p.userPermission([p.permissionList.Agenda.creatEvent])">
<button class="btn-no-color">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-edit.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " src="assets/images/theme/gov/icons-edit.svg"></ion-icon>
@@ -84,7 +84,7 @@
<div class="overflow-y-auto">
<div class="middle-content">
<div *ngIf="loadedEvent.workflowInstanceDataFields.ParticipantsList">
<h5 class="font-17-rem">Intervenientes</h5>
<h5 class="font-17-rem">Intervenientes({{loadedEvent.workflowInstanceDataFields.ParticipantsList.length}})</h5>
<div *ngFor="let att of loadedEvent.workflowInstanceDataFields.ParticipantsList">
<ion-label>{{att.Name}}</ion-label>
</div>
@@ -101,7 +101,7 @@
<div *ngIf="loadedAttachments" class="bottom-content width-100">
<ion-list>
<h5 class="font-17-rem">Documentos Anexados </h5>
<h5 class="font-17-rem">Documentos Anexados({{loadedAttachments.length}}) </h5>
<ion-item class="ion-no-margin ion-no-padding cursor-pointer"
*ngFor="let attachment of loadedAttachments"
(click)="viewDocument(attachment.DocId, attachment)">
@@ -16,6 +16,7 @@ import { EventToApproveDetails } from 'src/app/models/entiry/agenda/eventToAppro
import { EventsService } from 'src/app/services/events.service';
import { isHttpError } from 'src/app/services/http.service';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-approve-event',
@@ -59,6 +60,7 @@ export class ApproveEventPage implements OnInit {
private agendaDataRepository: AgendaDataRepositoryService,
public EventsService: EventsService,
private httpErrorHandle: HttpErrorHandle,
public p: PermissionService,
) {
// Event to approve list
@@ -17,7 +17,7 @@
</div>
<div class="div-icon d-flex align-base">
<button class="btn-no-color" (click)="editEvent()">
<button class="btn-no-color" (click)="editEvent()" *ngIf="p.userPermission([p.permissionList.Agenda.creatEvent])">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="edit" slot="end"
src="assets/images/icons-edit.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="edit" slot="end"
@@ -96,7 +96,7 @@
<div class="line"></div>
<div class="middle-content">
<div *ngIf="loadedEvent.Attendees">
<h5 class="font-17-rem">Intervenientes</h5>
<h5 class="font-17-rem">Intervenientes({{ loadedEvent.Attendees.length }})</h5>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<div *ngFor="let attendee of loadedEvent.Attendees">
@@ -115,7 +115,7 @@
</div>
<div *ngIf="loadedEvent.Attachments" class="bottom-content width-100">
<h5 class="font-17-rem">Documentos Anexados</h5>
<h5 class="font-17-rem">Documentos Anexados({{ loadedEvent.Attachments.length }})</h5>
<ion-list class="width-100">
<li *ngFor="let attach of loadedEvent.Attachments; let i = index" class="width-100" lines="none"
class="ion-no-margin ion-no-padding pa-0">
@@ -22,7 +22,7 @@ import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda
import { SearchList_v2 } from 'src/app/models/search-document';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { isHttpError } from 'src/app/services/http.service';
import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-view-event',
templateUrl: './view-event.page.html',
@@ -71,6 +71,8 @@ export class ViewEventPage implements OnInit {
private router: Router,
private dateService: DateService,
private agendaDataRepository: AgendaDataRepositoryService,
public p: PermissionService,
) {
this.isEventEdited = false;
this.loadedEvent = new Event();
+2
View File
@@ -50,3 +50,5 @@ platformBrowserDynamic().bootstrapModule(AppModule)
// Call the element loader after the platform has been bootstrapped
defineCustomElements(window);
console.log(environment.version.lastCommitTime)
+6 -7
View File
@@ -1,12 +1,11 @@
export let versionData = {
"shortSHA": "3b6da3d2c",
"SHA": "3b6da3d2c785fea9e8e15de78f983f40d4763da3",
"shortSHA": "4d400e1f8",
"SHA": "4d400e1f8b8b8354f5fa9e71986815e684de517c",
"branch": "feature/agenda-api-peter",
"lastCommitAuthor": "'Peter Maquiran'",
"lastCommitTime": "'Fri Jun 21 13:45:06 2024 +0100'",
"lastCommitMessage": "allow to alter agenda",
"lastCommitNumber": "5831",
"change": "diff --git a/.husky/pre-commit b/.husky/pre-commit\nindex 9df0546ba..2a1952310 100644\n--- a/.husky/pre-commit\n+++ b/.husky/pre-commit\n@@ -1,4 +1,4 @@\n-!/usr/bin/env sh\n- . \"$(dirname -- \"$0\")/_/husky.sh\"\n+#!/usr/bin/env sh\n+. \"$(dirname -- \"$0\")/_/husky.sh\"\n \n-npm run build:version && git add version/git-version.ts\n+node version/git-version.js",
"changeStatus": "On branch feature/agenda-api-peter\nYour branch is ahead of 'origin/feature/agenda-api-peter' by 2 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tnew file: .husky/commit-msg\n\tmodified: .husky/pre-commit\n\tnew file: gabinete.postman_collection.json\n\tmodified: package-lock.json\n\tmodified: package.json\n\tmodified: src/app/interceptors/metter.interceptor.ts\n\tmodified: src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\tmodified: .husky/pre-commit\n\tmodified: version/git-version.ts",
"lastCommitTime": "'Fri Jun 21 14:35:50 2024 +0100'",
"lastCommitMessage": "add husky",
"lastCommitNumber": "5832",
"changeStatus": "On branch feature/agenda-api-peter\nYour branch is ahead of 'origin/feature/agenda-api-peter' by 3 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: .husky/pre-commit\n\tmodified: version/git-version.js\n\tmodified: version/git-version.ts\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\tmodified: version/git-version.ts",
"changeAuthor": "peter.maquiran"
}