mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
fix profile picture
This commit is contained in:
@@ -89,7 +89,6 @@ import '@teamhive/capacitor-video-recorder';
|
|||||||
import { tokenInterceptor } from './infra/monitoring/interceptors/token.interceptors';
|
import { tokenInterceptor } from './infra/monitoring/interceptors/token.interceptors';
|
||||||
|
|
||||||
import { InputFilterDirective } from './services/directives/input-filter.directive';
|
import { InputFilterDirective } from './services/directives/input-filter.directive';
|
||||||
import { VisibilityDirective } from './services/directives/visibility.directive';
|
|
||||||
import { DeplomaOptionsPageModule } from './shared/popover/deploma-options/deploma-options.module';
|
import { DeplomaOptionsPageModule } from './shared/popover/deploma-options/deploma-options.module';
|
||||||
import { DiplomaOptionsPage } from './shared/popover/deploma-options/deploma-options.page';
|
import { DiplomaOptionsPage } from './shared/popover/deploma-options/deploma-options.page';
|
||||||
import { ImageCropperModule } from 'ngx-image-cropper';
|
import { ImageCropperModule } from 'ngx-image-cropper';
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { z } from 'zod';
|
|
||||||
import { IUserRemoteRepository } from '../repository/user-remote-repository';
|
import { IUserRemoteRepository } from '../repository/user-remote-repository';
|
||||||
import { SessionStore } from 'src/app/store/session.service';
|
import { SessionStore } from 'src/app/store/session.service';
|
||||||
import { Platform } from '@ionic/angular';
|
import { Platform } from '@ionic/angular';
|
||||||
|
|||||||
@@ -0,0 +1,212 @@
|
|||||||
|
<div class="header-container header-fix" [ngClass]="{'d-none-header':HeaderSettingsService.hideHeader && ActiveTabService.pages.gabineteDetails}" >
|
||||||
|
<div class="main-tab pb-10 ion-toolbar header-color">
|
||||||
|
|
||||||
|
<div class="mobile pt-20 d-flex div-top-header justify-space-between">
|
||||||
|
|
||||||
|
<div title="Pesquisa" *ngIf="!hideSearchBtn" class="div-search viewport-font-size">
|
||||||
|
<div (click)="openSearch()" class="{{Cy.header.b.search}}">
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'doneIt' " class="font-45-em"
|
||||||
|
src="assets/images/theme/doneIt/icons-search.svg"></ion-icon>
|
||||||
|
<ion-icon *ngIf=" ThemeService.currentTheme == 'default' " class="font-45-em"
|
||||||
|
src='assets/images/icons-search.svg'></ion-icon>
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="font-45-em"
|
||||||
|
src='assets/images/theme/gov/icons-search.svg'></ion-icon>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="div-logo align-center justify-center">
|
||||||
|
<div class="logo-icon pr-10-rem">
|
||||||
|
<img *ngIf="ThemeService.currentTheme == 'default' " src='assets/images/logo-no-bg.png' alt='logo'>
|
||||||
|
<img *ngIf="ThemeService.currentTheme == 'gov' " src='assets/images/theme/gov/governoangola_A.png' alt='logo'>
|
||||||
|
<img *ngIf="ThemeService.currentTheme == 'doneIt'" src="assets/images/theme/doneIt/governoangola_A1.png"
|
||||||
|
alt='logo' />
|
||||||
|
</div>
|
||||||
|
<div *ngIf="ThemeService.currentTheme == 'gov'"
|
||||||
|
class="logo-description d-flex align-center justify-content-center">
|
||||||
|
<div class="logo-description-content">
|
||||||
|
<p class="logo-description-text tp-5">{{ environment.logoLabel }}</p>
|
||||||
|
|
||||||
|
<div class="add-line"></div>
|
||||||
|
<p class="logo-description-text tp-5">GABINETE DIGITAL</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="ThemeService.currentTheme == 'default' "
|
||||||
|
class="logo-description d-flex align-center justify-content-center">
|
||||||
|
<div class="logo-description-content">
|
||||||
|
<p class="logo-description-text tp-5 color-white">{{ environment.logoLabel }}</p>
|
||||||
|
<div class="add-line-white"></div>
|
||||||
|
<p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div title="Perfil" class="div-profile cursor-pointer viewport-font-size " >
|
||||||
|
|
||||||
|
<div *ngIf="PublicationHolderService.count != 0" style="color: black" style="display: flex;
|
||||||
|
color: black;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
" >
|
||||||
|
<span *ngIf="!PublicationHolderService.PublicationFormMV?.[0]?.retry">{{ PublicationHolderService.count }}%</span>
|
||||||
|
<span style="padding-right: 12px" *ngIf="PublicationHolderService.PublicationFormMV?.[0]?.retry" (click)="PublicationHolderService.PublicationFormMV?.[0]?.retryFunction()" ><ion-icon src="assets/images/retry-svgrepo-com.svg" > </ion-icon></span>
|
||||||
|
<span style="padding-right: 7px" *ngIf="PublicationHolderService.PublicationFormMV?.[0]?.retry" (click)="PublicationHolderService.remove(PublicationHolderService.PublicationFormMV?.[0]?.id)">X</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div (click)="openProfile()" *ngIf="(profilePictureSubject | async) as calendarData" class="profile-image">
|
||||||
|
<img *ngIf="calendarData.base64 != null" class="profile-image image-prety" src={{calendarData.base64}}>
|
||||||
|
<ion-icon *ngIf="calendarData.base64 == null"
|
||||||
|
class="icon font-45-em" src='assets/images/theme/gov/icons-profile.svg'></ion-icon>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="profile-text" *ngIf="(notificationCount$ | async) as notificationCount ">
|
||||||
|
<div *ngIf="notificationCount > 0" class="icon-badge" style="right: -6px;top: 38px;top: -6px;">
|
||||||
|
{{notificationCount}} </div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="desktop mx-20">
|
||||||
|
<div class="d-flex justify-space-between align-center">
|
||||||
|
<div tab="events" class="div-logo height-fit-content">
|
||||||
|
<div class="logo-icon pr-10-rem">
|
||||||
|
<img *ngIf="ThemeService.currentTheme == 'default'" src='assets/images/logo-no-bg.png' alt='logo'>
|
||||||
|
<img *ngIf="ThemeService.currentTheme == 'gov' " src='assets/images/theme/gov/governoangola_A.png'
|
||||||
|
alt='logo'>
|
||||||
|
<img *ngIf="ThemeService.currentTheme == 'doneIt' "
|
||||||
|
src='assets/images/theme/{{ThemeService.currentTheme}}/governoangola_A1.png' alt='logo'>
|
||||||
|
</div>
|
||||||
|
<div class="logo-description d-flex align-center justify-content-center">
|
||||||
|
|
||||||
|
<div class="logo-description-content">
|
||||||
|
|
||||||
|
<div *ngIf="ThemeService.currentTheme == 'gov' " class="logo-description-content">
|
||||||
|
|
||||||
|
<p class="logo-description-text">{{ environment.logoLabel }}</p>
|
||||||
|
<div class="add-line"></div>
|
||||||
|
<p class="logo-description-text">GABINETE DIGITAL</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="ThemeService.currentTheme == 'default' " class="logo-description-content">
|
||||||
|
|
||||||
|
<p class="logo-description-text" style="color: white;">GABINETE DIGITAL</p>
|
||||||
|
<div class="add-line" style="border-bottom: 1px solid white;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <div class="d-flex flex-1 pr-20 pl-50"
|
||||||
|
*ngIf="p.userPermissionCount([permissionList.Agenda.access, permissionList.Gabinete.access, permissionList.Actions.access, permissionList.Chat.access]) >= 2 || (p.userPermission([permissionList.Agenda.access]) && loggeduser.OwnerCalendars.length != 0) || p.userPermission([permissionList.Gabinete.access])"> -->
|
||||||
|
|
||||||
|
<div class="d-flex flex-1 pr-20 pl-50"
|
||||||
|
*ngIf="p.userPermissionCount([permissionList.Agenda.access, permissionList.Gabinete.access, permissionList.Actions.access, permissionList.Chat.access]) >= 2 || (p.userPermission([permissionList.Agenda.access])) || p.userPermission([permissionList.Gabinete.access])">
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="p.userPermission([permissionList.Agenda.access]) || p.userPermission([permissionList.Gabinete.access])"
|
||||||
|
class="tab mr-20 d-flex align-center cursor-pointer" (click)="changeRoute('/home/events')"
|
||||||
|
[class.active]="ActiveTabService.pages.home">
|
||||||
|
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' || ThemeService.currentTheme == 'doneIt' "
|
||||||
|
class="font-40-rem" src='assets/images/icons-nav-home-active-black.svg'></ion-icon>
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="font-40-rem"
|
||||||
|
src='assets/images/theme/gov/icons-nav-home-active-black.svg'></ion-icon>
|
||||||
|
|
||||||
|
<span>Início</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="p.userPermission([permissionList.Agenda.access])"
|
||||||
|
class="tab mr-20 d-flex align-center cursor-pointer" (click)="changeRoute('/home/agenda')"
|
||||||
|
[class.active]="ActiveTabService.pages.agenda">
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' || ThemeService.currentTheme == 'doneIt' "
|
||||||
|
class="font-40-rem" src='assets/images/icons-nav-agenda-inactive.svg'></ion-icon>
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="font-40-rem"
|
||||||
|
src='assets/images/theme/gov/icons-nav-agenda-inactive.svg'></ion-icon>
|
||||||
|
|
||||||
|
<span>Agenda</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="p.userPermission([permissionList.Gabinete.access])"
|
||||||
|
class="tab mr-20 d-flex align-center cursor-pointer" (click)="changeRoute('/home/gabinete-digital')"
|
||||||
|
[class.active]="ActiveTabService.pages.gabinete">
|
||||||
|
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' || ThemeService.currentTheme == 'doneIt' "
|
||||||
|
class="font-40-rem" src='assets/images/icons-nav-home-dk.svg'></ion-icon>
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="font-40-rem"
|
||||||
|
src='assets/images/theme/gov/icons-nav-home-dk.svg'></ion-icon>
|
||||||
|
<span>Gabinete</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="p.userPermission([permissionList.Actions.access])"
|
||||||
|
class="tab mr-20 d-flex align-center cursor-pointer" (click)="changeRoute('/home/publications')"
|
||||||
|
[class.active]="ActiveTabService.pages.publication">
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' || ThemeService.currentTheme == 'doneIt' "
|
||||||
|
class="font-40-rem" src='assets/images/icons-nav-a-es-inactive.svg'></ion-icon>
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="font-40-rem"
|
||||||
|
src='assets/images/theme/gov/icons-nav-a-es-inactive.svg'></ion-icon>
|
||||||
|
<span>Acções</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="p.userPermission([permissionList.Chat.access])"
|
||||||
|
class="tab mr-20 d-flex align-center cursor-pointer" (click)="changeRoute('/home/chat')"
|
||||||
|
[class.active]="ActiveTabService.pages.chat">
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' || ThemeService.currentTheme == 'doneIt' "
|
||||||
|
class="font-40-rem" src='assets/images/icons-nav-grupos-inactive-dk-white.svg'></ion-icon>
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="font-40-rem"
|
||||||
|
src='assets/images/theme/gov/icons-nav-grupos-inactive-dk-white.svg'></ion-icon>
|
||||||
|
<span>Chat</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header-btns d-flex">
|
||||||
|
|
||||||
|
<div *ngIf="PublicationHolderService.count != 0" style="color: black" >
|
||||||
|
<span *ngIf="!PublicationHolderService.PublicationFormMV?.[0]?.retry">{{ PublicationHolderService.count }}%</span>
|
||||||
|
<span style="padding-right: 12px" *ngIf="PublicationHolderService.PublicationFormMV?.[0]?.retry" (click)="PublicationHolderService.PublicationFormMV?.[0]?.retryFunction()" ><ion-icon src="assets/images/retry-svgrepo-com.svg" > </ion-icon></span>
|
||||||
|
<span style="padding-right: 7px" *ngIf="PublicationHolderService.PublicationFormMV?.[0]?.retry" (click)="PublicationHolderService.remove(PublicationHolderService.PublicationFormMV?.[0]?.id)">X</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div title="Pesquisa" *ngIf="!hideSearchBtn" class="mr-20 d-flex align-center cursor-pointer">
|
||||||
|
<div style="padding-top: 5px;" (click)="openSearch();showSearch=true" *ngIf="!showSearch">
|
||||||
|
<ion-icon title="Perfil" *ngIf="ThemeService.currentTheme == 'doneIt' " class="font-45-rem"
|
||||||
|
src="assets/images/theme/doneIt/icons-search.svg"></ion-icon>
|
||||||
|
<ion-icon title="Perfil" *ngIf="ThemeService.currentTheme == 'default' " class="font-45-rem"
|
||||||
|
src='assets/images/icons-search.svg'></ion-icon>
|
||||||
|
<ion-icon title="Perfil" *ngIf="ThemeService.currentTheme == 'gov' " class="font-45-rem"
|
||||||
|
src='assets/images/theme/gov/icons-search.svg'></ion-icon>
|
||||||
|
</div>
|
||||||
|
<button title="Fechar" class="btn-no-color" (click)="closeSearch();showSearch=false;searchSubject=''"
|
||||||
|
*ngIf="showSearch">
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' || ThemeService.currentTheme == 'doneIt' "
|
||||||
|
class="font-40-rem" name="restaurant-outline" src="assets/images/icons-search-close.svg"></ion-icon>
|
||||||
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="font-40-rem" name="restaurant-outline"
|
||||||
|
src="assets/images/theme/gov/icons-search-close.svg"></ion-icon>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div title="Perfil" class="div-profile d-flex cursor-pointer font-45-rem" (click)="openProfile()">
|
||||||
|
|
||||||
|
<div *ngIf="(profilePictureSubject | async) as calendarData" class="profile-image d-flex">
|
||||||
|
<img *ngIf="calendarData.base64 != null" class="profile-image image-prety" src={{calendarData.base64}}>
|
||||||
|
<ion-icon *ngIf="calendarData.base64 == null"
|
||||||
|
class="icon font-50 image-prety" src='assets/images/theme/gov/icons-profile.svg'></ion-icon>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="profile-text" *ngIf="(notificationCount$ | async) as notificationCount ">
|
||||||
|
|
||||||
|
<div *ngIf="notificationCount > 0" class="icon-badge" style="right: -6px;top: 38px;top: -6px;">
|
||||||
|
{{notificationCount}} </div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div [class.header-bottom-line]="ThemeService.currentTheme == 'gov'" style="height: 5px;"></div>
|
||||||
|
</div>
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div (click)="openProfile()" *ngIf="(profilePictureSubject | async) as calendarData" class="profile-image d-flex">
|
<div (click)="openProfile()" *ngIf="(profilePictureSubject | async) as calendarData" class="profile-image">
|
||||||
<img *ngIf="calendarData.base64 != null" class="profile-image image-prety" src={{calendarData.base64}}>
|
<img *ngIf="calendarData.base64 != null" class="profile-image image-prety" src={{calendarData.base64}}>
|
||||||
<ion-icon *ngIf="calendarData.base64 == null"
|
<ion-icon *ngIf="calendarData.base64 == null"
|
||||||
class="icon font-45-em" src='assets/images/theme/gov/icons-profile.svg'></ion-icon>
|
class="icon font-45-em" src='assets/images/theme/gov/icons-profile.svg'></ion-icon>
|
||||||
@@ -187,12 +187,11 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div title="Perfil" class="div-profile d-flex cursor-pointer font-45-rem d-flex align-center" (click)="openProfile()">
|
<div title="Perfil" class="div-profile d-flex cursor-pointer font-45-rem" (click)="openProfile()">
|
||||||
|
|
||||||
<div *ngIf="(profilePictureSubject | async) as calendarData" class="profile-image d-flex">
|
<div *ngIf="(profilePictureSubject | async) as calendarData" class="profile-image d-flex">
|
||||||
<img *ngIf="calendarData.base64 != null" class="profile-image image-prety" src={{calendarData.base64}}>
|
<img *ngIf="calendarData.base64 != null" class="profile-image image-prety" src={{calendarData.base64}}>
|
||||||
<ion-icon *ngIf="calendarData.base64 == null"
|
<ion-icon *ngIf="calendarData.base64 == null"
|
||||||
class="icon font-45 image-prety" src='assets/images/theme/gov/icons-profile.svg'></ion-icon>
|
class="icon font-45-rem image-prety" src='assets/images/theme/gov/icons-profile.svg'></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="profile-text" *ngIf="(notificationCount$ | async) as notificationCount ">
|
<div class="profile-text" *ngIf="(notificationCount$ | async) as notificationCount ">
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
.profile-image {
|
.profile-image {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
display: block; /* Torna a imagem um elemento de bloco */
|
display: block; /* Torna a imagem um elemento de bloco */
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
export let versionData = {
|
export let versionData = {
|
||||||
"shortSHA": "430adf394",
|
"shortSHA": "d1e5387d1",
|
||||||
"SHA": "430adf394db277fcf0d092bd9cd08d25397270c2",
|
"SHA": "d1e5387d1176ad2cf3ddb95aa8b7b319053df214",
|
||||||
"branch": "developer",
|
"branch": "developer",
|
||||||
"lastCommitAuthor": "'peter.maquiran'",
|
"lastCommitAuthor": "'peter.maquiran'",
|
||||||
"lastCommitTime": "'Thu Sep 4 15:40:45 2025 +0100'",
|
"lastCommitTime": "'Fri Sep 5 11:42:36 2025 +0100'",
|
||||||
"lastCommitMessage": "fix chage duplicate message",
|
"lastCommitMessage": "update image",
|
||||||
"lastCommitNumber": "6144",
|
"lastCommitNumber": "6145",
|
||||||
"changeStatus": "On branch developer\nYour branch is ahead of 'origin/developer' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: package-lock.json\n\tmodified: package.json\n\tmodified: src/app/core/user/entity/userEntity.ts\n\tmodified: src/app/core/user/repository/user-remote-repository.ts\n\tnew file: src/app/core/user/use-case/user-get-by-id.service.ts\n\tmodified: src/app/modals/profile/edit-profile/edit-profile.page.html\n\tmodified: src/app/modals/profile/profile.page.html\n\tmodified: src/app/models/entiry/agenda/eventToApproveDetails.ts\n\tmodified: src/app/module/agenda/data/dto/eventDTOOutput.ts\n\tmodified: src/app/module/agenda/data/dto/eventListDTOOutput.ts\n\tmodified: src/app/module/agenda/data/dto/eventToApproveListOutputDTO.ts\n\tmodified: src/app/module/user/data/datasource/user-remote-repository.service.ts\n\tmodified: src/app/module/user/data/user-repository.service.ts\n\tmodified: src/app/services/monitoring/opentelemetry/tracer.ts\n\tmodified: src/app/ui/shared/components/header/header.page.html\n\tmodified: src/app/ui/shared/components/header/header.page.scss\n\tmodified: src/app/ui/shared/components/header/header.page.ts\n\tmodified: version/git-version.ts",
|
"changeStatus": "On branch developer\nYour branch is ahead of 'origin/developer' 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\tmodified: src/app/app.module.ts\n\tmodified: src/app/core/user/use-case/user-refresh-token.service.ts\n\tnew file: src/app/ui/shared/components/header/header.page copy.html\n\tmodified: src/app/ui/shared/components/header/header.page.html\n\tmodified: src/app/ui/shared/components/header/header.page.scss",
|
||||||
"changeAuthor": "peter.maquiran"
|
"changeAuthor": "peter.maquiran"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user