This commit is contained in:
Peter Maquiran
2023-01-12 15:27:09 +01:00
parent 58f9e7eacd
commit 9493179efd
82 changed files with 702 additions and 557 deletions
+5 -4
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gpr.gabinetedigital">
package="com.capacitorjs.app.testapp">
<application
android:allowBackup="true"
@@ -12,10 +12,11 @@
<activity
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
android:name="com.gpr.gabinetedigital.MainActivity"
android:label="@string/title_activity_main"
android:name="com.capacitorjs.app.testapp.MainActivity"
android:label="@stringtitle_activity_main/title_activity_main"
android:theme="@style/AppTheme.NoActionBarLaunch"
android:launchMode="singleTask">
android:launchMode="singleTask"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 16 KiB

+468 -301
View File
File diff suppressed because it is too large Load Diff
+16 -20
View File
@@ -39,23 +39,21 @@
"@awesome-cordova-plugins/file": "^5.41.0",
"@awesome-cordova-plugins/file-opener": "^5.41.0",
"@awesome-cordova-plugins/multiple-document-picker": "^5.40.0",
"@byteowls/capacitor-filesharer": "^3.0.0",
"@capacitor-community/camera-preview": "^1.2.1",
"@capacitor/android": "^3.3.2",
"@capacitor/app": "^1.0.5",
"@capacitor/browser": "1.0.6",
"@capacitor/camera": "^1.2.0",
"@capacitor/android": "^4.6.1",
"@capacitor/app": "^4.1.1",
"@capacitor/browser": "^4.1.0",
"@capacitor/camera": "^4.1.4",
"@capacitor/core": "^3.3.2",
"@capacitor/device": "^1.1.0",
"@capacitor/filesystem": "^1.1.0",
"@capacitor/haptics": "^1.1.4",
"@capacitor/device": "^4.1.0",
"@capacitor/filesystem": "^4.1.4",
"@capacitor/haptics": "^4.1.0",
"@capacitor/ios": "3.4.1",
"@capacitor/keyboard": "^1.1.2",
"@capacitor/local-notifications": "^1.1.0",
"@capacitor/network": "^1.0.6",
"@capacitor/push-notifications": "^1.0.9",
"@capacitor/share": "^1.0.7",
"@capacitor/storage": "^1.2.3",
"@capacitor/keyboard": "^4.1.0",
"@capacitor/local-notifications": "^4.1.4",
"@capacitor/network": "^4.1.0",
"@capacitor/push-notifications": "^4.1.2",
"@capacitor/share": "^4.1.0",
"@capacitor/storage": "^1.2.5",
"@fortawesome/angular-fontawesome": "^0.9.0",
"@fortawesome/fontawesome-free": "^5.15.3",
"@fortawesome/fontawesome-svg-core": "^1.2.35",
@@ -111,8 +109,7 @@
"beast-orm": "^1.1.2",
"bootstrap": "^4.5.0",
"build": "0.1.4",
"capacitor-voice-recorder": "^2.0.0",
"capacitor2-file-picker": "^1.0.0",
"capacitor-voice-recorder": "^4.0.1",
"ci": "^2.1.1",
"cordova": "^11.0.0",
"cordova-plugin-crop": "^0.4.0",
@@ -120,6 +117,7 @@
"cordova-plugin-document-viewer": "^1.0.0",
"cordova-plugin-file": "^6.0.2",
"cordova-plugin-file-opener2": "^3.0.5",
"cordova-plugin-file-transfer": "github:apache/cordova-plugin-file-transfer",
"cordova-plugin-filepath": "^1.5.8",
"cordova-plugin-multiple-documents-picker": "^1.0.0",
"cordova-plugin-okhttp": "^2.0.0",
@@ -182,7 +180,7 @@
"@angular/compiler": "^12.1.2",
"@angular/compiler-cli": "^12.1.2",
"@angular/language-service": "^12.1.2",
"@capacitor/cli": "^3.3.2",
"@capacitor/cli": "^4.6.1",
"@ionic/angular-toolkit": "^6.1.0",
"@ionic/lab": "3.1.7",
"@types/jasmine": "~3.6.0",
@@ -190,7 +188,6 @@
"@types/jest": "^26.0.24",
"@types/node": "^12.11.1",
"codelyzer": "^0.0.28",
"com-sarriaroman-photoviewer": "^1.2.5",
"cordova-android": "^10.1.2",
"cordova-android-support-gradle-release": "^3.0.1",
"cordova-browser": "^6.0.0",
@@ -205,7 +202,6 @@
"cordova-plugin-media-capture": "^3.0.3",
"cordova-plugin-network-information": "^3.0.0",
"cordova-plugin-statusbar": "^2.4.2",
"cordova-plugin-whitelist": "^1.3.4",
"es6-promise-plugin": "^4.2.2",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
+1 -1
View File
@@ -9,7 +9,7 @@ import { LoaderService } from 'src/app/store/loader.service'
})
export class AproveEventService {
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("AproveEventService")
constructor(
private processes: ProcessesService,
@@ -1,7 +1,5 @@
import { Injectable } from '@angular/core';
import { customTask } from '../models/dailyworktask.model';
import { ProcessesService } from '../services/processes.service';
import { ProcessDocumentService } from './process-document.service';
import { LoaderService } from 'src/app/store/loader.service'
@Injectable({
@@ -9,11 +7,10 @@ import { LoaderService } from 'src/app/store/loader.service'
})
export class DeferimentosServiceService {
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("DeferimentosServiceService")
constructor(
private processes: ProcessesService,
private processDocumentService: ProcessDocumentService,
public LoaderService: LoaderService,
) { }
@@ -32,8 +29,6 @@ export class DeferimentosServiceService {
this.loader.pop()
deferimentos = deferimentos.filter(data => data.workflowInstanceDataFields.Status == "Active")
// this.count_def_dailywork = Object.keys(deferimentos).length;
// this.pedidosstore.countdeferimento = this.count_def_dailywork;
return deferimentos.map((element) => {
return {
+1 -1
View File
@@ -9,7 +9,7 @@ import { LoaderService } from 'src/app/store/loader.service'
})
export class DeplomasServiceService {
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("DeplomasServiceService")
constructor(
private processes: ProcessesService,
+1 -1
View File
@@ -11,7 +11,7 @@ import { LoaderService } from 'src/app/store/loader.service'
export class DespachoPRService {
customTaskPipe = new CustomTaskPipe()
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("DespachoPRService")
constructor(
private processes: ProcessesService,
+1 -1
View File
@@ -29,7 +29,7 @@ export class DespachoService {
customTaskPipe = new CustomTaskPipe()
despachoStore = DespachoStore;
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("DespachoService")
constructor(
private processes: ProcessesService,
+1 -1
View File
@@ -11,7 +11,7 @@ import { LoaderService } from 'src/app/store/loader.service'
export class ExpedienteService {
expedienteTaskPipe = new ExpedienteTaskPipe();
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("ExpedienteTaskPipe")
constructor(
private processes: ProcessesService,
+1 -1
View File
@@ -9,7 +9,7 @@ import { LoaderService } from 'src/app/store/loader.service'
})
export class ParecerService {
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("ParecerService")
constructor(
private processes: ProcessesService,
+1 -1
View File
@@ -8,7 +8,7 @@ import { LoaderService } from 'src/app/store/loader.service'
})
export class PedidoService {
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("PedidoService")
constructor(
private processes: ProcessesService,
+1 -1
View File
@@ -11,7 +11,7 @@ import { LoaderService } from 'src/app/store/loader.service'
export class PendentesService {
customTaskPipe = new CustomTaskPipe()
loader = this.LoaderService.initialize(this.constructor.name)
loader = this.LoaderService.initialize("PendentesService")
constructor(
private processes: ProcessesService,
+19 -19
View File
@@ -69,35 +69,35 @@ import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
// The example is using Angular, Import '@sentry/vue' or '@sentry/react' when using a Sibling different than Angular.
///123// import * as SentrySibling from '@sentry/angular';
///123//import * as Sentry from '@sentry/capacitor';
import * as SentrySibling from '@sentry/angular';
import * as Sentry from '@sentry/capacitor';
// The e xample is using Angular, Import '@sentry/vue' or '@sentry/react' when using a Sibling different than Angular.
// For automatic instrumentation (highly recommended)
///123//import { Integration } from '@sentry/types';
///123//import { BrowserTracing } from '@sentry/tracing';
import { Integration } from '@sentry/types';
import { BrowserTracing } from '@sentry/tracing';
/* import { FCM } from '@ionic-native/fcm/ngx';
import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */
//import { FCM } from 'cordova-plugin-fcm-with-dependecy-updated/ionic/ngx';
///123// Sentry.init(
///123// {
///123// dsn: 'https://5b345a3ae70b4e4da463da65881b4aaa@o4504340905525248.ingest.sentry.io/4504345615794176',
Sentry.init(
{
dsn: 'https://5b345a3ae70b4e4da463da65881b4aaa@o4504340905525248.ingest.sentry.io/4504345615794176',
// To set your release and dist versions
///123// release: 'gabinetedigital@1.0.0',
///123// dist: '1',
release: 'gabinetedigital@1.0.0',
dist: '1',
// Set tracesSampleRate to 1.0 to capture 100% of transactions for performance monitoring.
// We recommend adjusting this value in production.
///123// tracesSampleRate: 1.0,
///123// integrations: [
///123// new BrowserTracing({
///123// tracingOrigins: ['localhost', 'https://gd-api.oapr.gov.ao/api/'],
///123// }) as Integration,
///123// ]
///123// },
tracesSampleRate: 1.0,
integrations: [
new BrowserTracing({
tracingOrigins: ['localhost', 'https://gd-api.oapr.gov.ao/api/'],
}) as Integration,
]
},
// Forward the init method to the sibling Framework.
///123// SentrySibling.init
///123//);
SentrySibling.init
);
@NgModule({
declarations: [AppComponent],
entryComponents: [],
@@ -145,7 +145,7 @@ import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */
{
provide: ErrorHandler,
// Attach the Sentry ErrorHandler
///123// useValue: SentrySibling.createErrorHandler(),
useValue: SentrySibling.createErrorHandler(),
},
StatusBar,
//SplashScreen,
+13 -67
View File
@@ -1,13 +1,10 @@
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { AuthService } from '../services/auth.service';
import { PermissionService } from '../services/permission.service';
import { LocalstoreService } from '../store/localstore.service';
import { SessionStore } from '../store/session.service';
import { RouteService } from 'src/app/services/route.service'
import { FirstEnterService } from 'src/app/services/first-enter.service'
// import { ModalController } from '@ionic/angular';
import { AlertController, Platform } from '@ionic/angular';
@Injectable({
@@ -31,6 +28,8 @@ export class AuthGuard implements CanActivate {
// if user not active or no session
if(!SessionStore.user.Inactivity || !SessionStore.exist) {
console.log('no session', !SessionStore.user.Inactivity, !SessionStore.exist)
console.log(SessionStore.user)
if(SessionStore.user.LoginPreference == 'Pin') {
this.router.navigate(['/pin']);
} else {
@@ -46,40 +45,10 @@ export class AuthGuard implements CanActivate {
if(pathname.startsWith('/home/agenda')) {
if(this.p.userPermission(this.p.permissionList.Agenda.access)) {
if((SessionStore.user.OwnerCalendars.length != 0 || SessionStore.user.SharedCalendars.length != 0)) {
return true
}
if(['/pin','/login', '/inactivity' , '', '/'].includes(window.location.pathname)) {
this.FirstEnterService.enter()
setTimeout(() => {
// this.modalController.create({
// component: InformationPage,
// componentProps: {
// },
// cssClass: 'discart-expedient-modal',
// backdropDismiss: false
// });
// this.alertController.create({
// cssClass: 'my-custom-class',
// header: 'utilizador não tem calendário',
// buttons: [{
// text: 'Ok',
// handler: () => {
// }
// }]
// }).then( async (alertPopup) => {
// await alertPopup.present();
// })
}, 1000)
}
return false;
return true;
} else {
this.router.navigate(['/login']);
console.log('£1')
return false;
}
@@ -90,45 +59,16 @@ export class AuthGuard implements CanActivate {
return true;
} else {
this.router.navigate(['/login']);
console.log('£2')
return false;
}
}
else if(pathname.startsWith('/home/chat')) {
if(this.p.userPermission(this.p.permissionList.Chat.access)) {
if(!SessionStore.user.ChatData?.data) {
if(['/pin','/login', '/inactivity' , '', '/'].includes(window.location.pathname)) {
this.FirstEnterService.enter()
setTimeout(() => {
// this.modalController.create({
// component: InformationPage,
// componentProps: {
// },
// cssClass: 'discart-expedient-modal',
// backdropDismiss: false
// });
// this.alertController.create({
// cssClass: 'my-custom-class',
// header: 'Serviço temporariamente indisponível',
// buttons: [{
// text: 'Ok',
// handler: () => {
// }
// }]
// }).then( async (alertPopup) => {
// await alertPopup.present();
// })
}, 1000)
}
return false
}
return true;
} else {
console.log("no access to chat")
console.log('£3')
this.router.navigate(['/login']);
return false;
}
@@ -136,6 +76,7 @@ export class AuthGuard implements CanActivate {
if(this.p.userPermission(this.p.permissionList.Actions.access)) {
return true
} else {
console.log('£4')
this.router.navigate(['/login']);
return false
}
@@ -143,13 +84,18 @@ export class AuthGuard implements CanActivate {
if(SessionStore.user.OwnerCalendars.length >= 1 || this.p.userPermission([this.p.permissionList.Gabinete.access])) {
return true
} else {
console.log('£5')
this.router.navigate(['/login']);
return false
}
} else if (pathname == '/') {
console.log('£6')
this.router.navigate(['/login']);
console.log('no path')
return false
} else {
console.log('£7')
console.log('pathname not match')
this.router.navigate(['/login']);
return false
}
+1 -1
View File
@@ -79,7 +79,7 @@ export class InactivityGuard implements CanActivate {
if((SessionStore?.user?.Inactivity)) {
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){
if(this.p.userPermission(this.p.permissionList.Agenda.access) && SessionStore.user.OwnerCalendars.length == 0) {
this.router.navigate(['/home/agenda']);
}
else{
+2 -1
View File
@@ -19,7 +19,8 @@ export class LoginGuard implements CanActivate {
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
console.log('hire login!', state.url)
console.log('hire login!', state.url, SessionStore.user)
if(SessionStore.exist && SessionStore.user.Inactivity && SessionStore.user.LoginPreference != 'Pin' ) {
// enter app
+1 -1
View File
@@ -189,7 +189,7 @@ export class HomePage implements OnInit {
this.tabButton.chat = false;
}
selectedTab(url?:string){
selectedTab(url?:string) {
this.clearTabButtonSelection();
if(url =='/home/events'){
this.tabButton.home = true;
@@ -3,9 +3,9 @@
<div class="profile-header width-100">
<div class="div-logo width-40">
<div class="logo-icon">
<img *ngIf="ThemeService.currentTheme == 'default' " src='assets/images/logo-no-bg.png' alt='logo'>
<!-- <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'>
<img *ngIf="ThemeService.currentTheme == 'doneIt' " src='assets/images/theme/{{ThemeService.currentTheme}}/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">
@@ -103,7 +103,6 @@
<img *ngIf="ThemeService.currentTheme != 'gov'" style="width: 40px;" src="assets/images/theme/doneIt/governoangola_A1.png"/>
</div> -->
</div>
</div>
+2 -2
View File
@@ -2,9 +2,9 @@
<div class="profile-header width-100">
<div class="div-logo d-md-none width-40">
<div class="logo-icon" *ngIf="hideImage">
<img *ngIf="ThemeService.currentTheme == 'default' " src='assets/images/logo-no-bg.png' alt='logo'>
<!-- <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_A.png' alt='logo'>
<img *ngIf="ThemeService.currentTheme == 'doneIt' " src='assets/images/theme/{{ThemeService.currentTheme}}/governoangola_A.png' alt='logo'> -->
</div>
<div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content">
+5 -3
View File
@@ -202,7 +202,6 @@ export class ProfilePage implements OnInit {
console.log(this.notificationdata)
console.log(this.notificationdata)
//this.storageservice.remove("Notifications")
this.storageservice.store("Notifications", this.notificationdata).then((store) => {
console.log(store)
this.storageservice.get("Notifications").then((value) => {
@@ -220,12 +219,15 @@ export class ProfilePage implements OnInit {
this.logoutOut == false
setTimeout(() => {
// alert('logout')
const pathBeforeGoOut = window.location.pathname
this.router.navigateByUrl('/auth', { replaceUrl: true });
setTimeout(() => {
if(this.logoutOut == false) {
if(this.logoutOut == false || pathBeforeGoOut == window.location.pathname) {
window.location.pathname = '/auth'
} else {
console.log('refresh')
}
}, 500)
+1 -1
View File
@@ -129,7 +129,7 @@
<ion-icon *ngIf="ThemeService.currentTheme == 'doneIt' " class="right-icons" src="assets/images/theme/{{ThemeService.currentTheme}}/icons-received-event.svg"></ion-icon>
</button>
<button title="Novo Evento" class="btn-no-color cy-add-event cursor-pointer resize" (click)="clearContact();openAddEvent();">
<button *ngIf="eventService.hasAnyCalendar" title="Novo Evento" class="btn-no-color 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>
+9
View File
@@ -496,6 +496,10 @@ export class AgendaPage implements OnInit {
loadRequestHistory: any = {}
loadRangeEvents(startTime: Date, endTime: Date) {
if(!this.eventService.hasAnyCalendar) {
return false
}
this.array = [];
this.rangeStartDate = startTime
this.rangeEndDate = endTime
@@ -518,6 +522,11 @@ export class AgendaPage implements OnInit {
}
loadRangeEventRun(startTime: Date, endTime: Date) {
if(SessionStore.user.OwnerCalendars.length == 0 && SessionStore.user.SharedCalendars.length == 0) {
return false
}
this.array = [];
this.rangeStartDate = startTime
this.rangeEndDate = endTime
@@ -226,8 +226,7 @@
</ion-content>
<ion-footer >
<ion-footer (click)="ChatSystemService.getDmRoom(roomId).sendReadMessage()">
<div class="typing" *ngIf="ChatSystemService.getDmRoom(roomId).otherUserType == true">
<ngx-letters-avatar [avatarName]="ChatSystemService.getGroupRoom(roomId).name" [width]="30" [circular]="true"
@@ -35,7 +35,7 @@
<div [ngSwitch]="segmentVista" class="overflow-y-auto">
<!-- This is the list view -->
<div *ngSwitchCase="'listview'">
<ion-item-sliding *ngIf="loadCount">
<ion-item-sliding *ngIf="loadCount || (getAllProcessCount >= 1 && loadNum >= 1)">
<div class="listview" >
<ion-list *ngIf="AllProcess">
<div
@@ -234,7 +234,7 @@
</div>
</div>
<div *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks])" (click)="openDiplomasPage('validar'); selectedElement='DiplomasPorValidar'" [class.active]="selectedElement == 'DiplomasPorValidar'" class="box-hover exp-card d-flex flex-column justify-center">
<!-- <div *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks])" (click)="openDiplomasPage('validar'); selectedElement='DiplomasPorValidar'" [class.active]="selectedElement == 'DiplomasPorValidar'" class="box-hover exp-card d-flex flex-column justify-center">
<div class="d-flex justify-center">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-diploma.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && selectedElement != 'DiplomasPorValidar' " src="assets/images/theme/gov/icons-expediente-diploma.svg"></ion-icon>
@@ -280,7 +280,7 @@
</div>
<p class="text-center exp-card-title">Diplomas para Assinar</p>
<p class="text-center exp-card-content">{{ deplomasStore.diplomasParaAssinartCount }} <span class="title1">Documentos</span></p>
</div>
</div> -->
</div>
<div *ngIf="!loadCount" class="width-100">
@@ -1,8 +1,8 @@
import { Component, DoCheck, OnInit, ViewChild } from '@angular/core';
import { Component, OnInit, ViewChild } from '@angular/core';
import { ProcessesService } from 'src/app/services/processes.service';
import { ModalController } from '@ionic/angular';
import { ActivatedRoute, NavigationEnd, NavigationExtras, Router } from '@angular/router';
import { AuthService } from 'src/app/services/auth.service';
import {NavigationEnd, NavigationExtras, Router } from '@angular/router';
import { LoginUserRespose } from 'src/app/models/user.model';
import { ExpedientsPage } from 'src/app/shared/gabinete-digital/expedients/expedients.page';
import { PendentesPage } from 'src/app/shared/gabinete-digital/pendentes/pendentes.page';
@@ -21,23 +21,13 @@ import { DeplomasStore } from 'src/app/store/deplomas.service';
import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe';
import { DespachoService } from 'src/app/Rules/despacho.service';
import { ExpedienteService } from 'src/app/Rules/expediente.service';
import { PendentesService } from 'src/app/Rules/pendentes.service';
import { AproveEventService } from 'src/app/Rules/aprove-event.service';
import { ParecerService } from 'src/app/Rules/parecer.service';
import { DeferimentosServiceService } from 'src/app/Rules/deferimentos-service.service';
import { DeplomasServiceService } from 'src/app/Rules/deplomas-service.service'
import { DespachoPRService } from 'src/app/Rules/despacho-pr.service'
import { ChangeProfileService } from 'src/app/services/change-profile.service';
import { PermissionService } from 'src/app/services/permission.service';
import { ThemeService } from 'src/app/services/theme.service'
import { ThemeService } from 'src/app/services/theme.service';
import { SqliteService } from '../../services/sqlite.service';
import { Platform } from '@ionic/angular';
import { BackgroundService } from 'src/app/services/background.service';
import { SortService } from 'src/app/services/functions/sort.service';
import { DataService } from 'src/app/services/data.service';
import { Storage } from '@ionic/storage';
import { ExpedienteTaskPipe } from 'src/app/pipes/expediente-task.pipe';
import { SessionStore } from 'src/app/store/session.service';
@@ -113,6 +103,9 @@ export class GabineteDigitalPage implements OnInit {
permissions = {
Agenda: 530
}
AllProcess = []
@ViewChild(ExpedientsPage) expedientesPage: ExpedientsPage;
@ViewChild(PendentesPage) pendentesListPage: PendentesPage;
@ViewChild(EventsToApprovePage) eventsToApprove: EventsToApprovePage;
@@ -120,33 +113,19 @@ export class GabineteDigitalPage implements OnInit {
constructor(
private processesbackend: ProcessesService,
private modalController: ModalController,
private activatedRoute: ActivatedRoute,
private router: Router,
authService: AuthService,
public waitForDomService: WaitForDomService,
private despachoRule: DespachoService,
private sqliteservice: SqliteService,
private platform: Platform,
private changeProfileService: ChangeProfileService,
private backgroundservice: BackgroundService,
public ThemeService: ThemeService,
private sortService: SortService,
private dataService: DataService,
private storage: Storage,
public p: PermissionService,
private ExpedienteService: ExpedienteService,
private PendentesService: PendentesService,
private DeferimentosServiceService: DeferimentosServiceService,
private DeplomasServiceService: DeplomasServiceService,
private AproveEventService: AproveEventService,
private ParecerService: ParecerService,
private DespachoPRService: DespachoPRService,
public NotificationsService: NotificationsService
) {
this.loggeduser = SessionStore.user;
window.onresize = (event) => {
// if not mobile remove all component
if (window.innerWidth < 701) {
@@ -462,7 +441,7 @@ export class GabineteDigitalPage implements OnInit {
else if (workflowName == 'Expediente') {
this.router.navigate(['/home/gabinete-digital/expediente', serialNumber, 'gabinete-digital']);
}
else if (workflowName == 'Expediente' && this.loggeduser.Profile == 'PR') {
else if (workflowName == 'Expediente' && SessionStore.user.Profile == 'PR') {
this.router.navigate(['/home/gabinete-digital/expedientes-pr', serialNumber, 'gabinete-digital']);
}
else if (workflowName == "Pedido de Parecer do Presidente") {
@@ -525,7 +504,7 @@ export class GabineteDigitalPage implements OnInit {
}
else if (this.router.url == '/home/gabinete-digital?expedientes=true') {
this.openExpedientListPage();
if (this.loggeduser.Profile == 'MDGPR') {
if (SessionStore.user.Profile == 'MDGPR') {
this.selectedElement = 'Correspondence';
}
else {
@@ -588,11 +567,10 @@ export class GabineteDigitalPage implements OnInit {
this.showDiplomasGerar = false
}
get AllProcess() {
return this.expedientegbstore.list.concat(this.pedidosstore.listparecer).concat(this.pedidosstore.listdeferimento)
updateAllProcess() {
this.AllProcess = this.expedientegbstore.list.concat(this.pedidosstore.listparecer).concat(this.pedidosstore.listdeferimento)
.concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.listmd).concat(this.eventoaprovacaostore.listpr)
.concat(this.deplomasStore.diplomasParaAssinarList).concat(this.deplomasStore.diplomasAssinadoList).concat(this.despachoStore.list).concat(this.deplomasStore.DiplomaGerarList)
// .concat(this.deplomasStore.diplomasParaAssinarList).concat(this.deplomasStore.diplomasAssinadoList).concat(this.despachoStore.list).concat(this.deplomasStore.DiplomaGerarList)
}
get getAllProcessCount() {
@@ -605,6 +583,7 @@ export class GabineteDigitalPage implements OnInit {
return Object.keys(this.loadProcess)
}
loadNum = 0
async LoadCounts() {
let expedientes;
@@ -618,6 +597,8 @@ export class GabineteDigitalPage implements OnInit {
this.showLoader = false
this.loadCount = true;
}
this.loadNum++;
expedientes = (expedientes || [] ).filter(data => data.workflowInstanceDataFields.Status == "Active")
@@ -629,14 +610,15 @@ export class GabineteDigitalPage implements OnInit {
this.expedientegbstore.count = expedientes.length;
this.expedientegbstore.reset(expedientes);
this.updateAllProcess()
let despachos = await this.despachoRule.getList({ updateStore: true })
this.updateAllProcess()
if (despachos) {
this.despachoStore.reset(despachos)
}
let pareceres = await this.processesbackend.GetTasksList("Pedido de Parecer", false).toPromise();
let pareceresPr = await this.processesbackend.GetTasksList("Pedido de Parecer do Presidente", false).toPromise();
@@ -684,11 +666,12 @@ export class GabineteDigitalPage implements OnInit {
pendentes = pendentes.map((element)=> this.customTaskPipe.transform(element))
this.pendentesstore.reset(pendentes);
this.updateAllProcess()
let depachoAPI: any = await this.processesbackend.GetTasksList("Despacho do Presidente da República", false).toPromise();
if(this.loggeduser.Profile != 'PR') {
if(SessionStore.user.Profile != 'PR') {
let depacho = depachoAPI.reverse().filter(data => data.activityInstanceName == "Tarefa de Despacho");
depacho = depacho.filter(data => data.workflowInstanceDataFields.Status == "Active");
@@ -696,11 +679,13 @@ export class GabineteDigitalPage implements OnInit {
depacho = depacho.map((e)=> this.customTaskPipe.transform(e))
this.despachoprstore.reset(depacho)
} else if(this.loggeduser.Profile == 'PR') {
this.updateAllProcess()
} else if(SessionStore.user.Profile == 'PR') {
let depacho = depachoAPI.filter(data => data.activityInstanceName == "Concluir Despacho").filter(data => data.workflowInstanceDataFields.Status == "Active")
depacho = depacho.map((e)=> this.customTaskPipe.transform(e))
this.despachoprstore.reset(depacho)
this.updateAllProcess()
}
let mdEventsOficial = await this.processesbackend.GetTasksList('Agenda Oficial MDGPR', false).toPromise();
@@ -711,6 +696,7 @@ export class GabineteDigitalPage implements OnInit {
this.eventoaprovacaostore.countMd = eventsMDGPRList.length
this.eventoaprovacaostore.resetmd(eventsMDGPRList);
this.updateAllProcess()
let prEventsOficial = await this.processesbackend.GetTasksList('Agenda Oficial PR', false).toPromise();
let prEventsPessoal = await this.processesbackend.GetTasksList('Agenda Pessoal PR', false).toPromise();
@@ -719,6 +705,7 @@ export class GabineteDigitalPage implements OnInit {
this.eventoaprovacaostore.countPr = eventsPRList.length
this.eventoaprovacaostore.resetpr(eventsPRList);
this.updateAllProcess()
let diplomasValidar = depachoAPI.filter(data => data.activityInstanceName == "Revisar Diploma");
@@ -754,7 +741,7 @@ export class GabineteDigitalPage implements OnInit {
let diplomasAssinados = depachoAPI.filter(data => data.activityInstanceName == "Diploma Assinado");
this.deplomasStore.resetDiplomasAssinadoList(diplomasAssinados)
this.updateAllProcess()
this.loadCount = true
}
@@ -810,7 +797,7 @@ export class GabineteDigitalPage implements OnInit {
this.closeAllDesktopComponents();
if(this.loggeduser.Profile != 'PR') {
if(SessionStore.user.Profile != 'PR') {
if (window.innerWidth < 701) {
//this.openExpedientList();
this.router.navigate(['/home/gabinete-digital/expediente']);
@@ -821,7 +808,7 @@ export class GabineteDigitalPage implements OnInit {
this.router.navigate(['/home/gabinete-digital'], navigationExtras);
this.showExpedients = true;
}
} else if(this.loggeduser.Profile == 'PR') {
} else if(SessionStore.user.Profile == 'PR') {
if (window.innerWidth < 701) {
this.router.navigate(['/home/gabinete-digital/expedientes-pr']);
}
@@ -7,8 +7,8 @@
<div class="div-top-header">
<div class="div-logo">
<img style="max-width: 90px;" *ngIf="ThemeService.currentTheme == 'default' " src='assets/images/logo-bg-removebg-preview.png' alt='logo'>
<img style="max-width: 80px;" *ngIf="ThemeService.currentTheme == 'gov' " src='assets/images/theme/gov/governoangola_A.png' alt='logo'>
<!-- <img style="max-width: 90px;" *ngIf="ThemeService.currentTheme == 'default' " src='assets/images/logo-bg-removebg-preview.png' alt='logo'>
<img style="max-width: 80px;" *ngIf="ThemeService.currentTheme == 'gov' " src='assets/images/theme/gov/governoangola_A.png' alt='logo'> -->
</div>
</div>
+5 -9
View File
@@ -54,13 +54,9 @@ export class LoginPage implements OnInit {
private platform: Platform,
private FirstEnterService: FirstEnterService,
private storage:Storage,
) {
console.log('constructor')
}
) {}
ngOnInit() {
console.log('ngOngInit')
}
ngOnInit() {}
togglePassword() {
this.showPassword = !this.showPassword;
@@ -99,9 +95,9 @@ export class LoginPage implements OnInit {
}
getToken() {
this.notificatinsservice.requestPermissions();
this.notificatinsservice.registrationError();
this.notificatinsservice.getAndpostToken(this.username);
// this.notificatinsservice.requestPermissions();
// this.notificatinsservice.registrationError();
// this.notificatinsservice.getAndpostToken(this.username);
}
async Login() {
+19 -14
View File
@@ -100,6 +100,8 @@ export class AuthService {
session.BasicAuthKey = user.BasicAuthKey
SessionStore.reset(session)
console.log(session)
return true;
}
@@ -109,23 +111,26 @@ export class AuthService {
loginToChatWs() {
setTimeout(() => {
this.RochetChatConnectorService.connect();
this.RochetChatConnectorService.login().then((message: any) => {
SessionStore.user.RochetChatUserId = message.result.id
SessionStore.save()
if(SessionStore.user.ChatData?.data) {
this.RochetChatConnectorService.connect();
this.RochetChatConnectorService.login().then((message: any) => {
SessionStore.user.RochetChatUserId = message.result.id
SessionStore.save()
this.RochetChatConnectorService.setStatus('online')
window['RochetChatConnectorService'] = this.RochetChatConnectorService
setTimeout(() => {
this.ChatSystemService.getAllRooms();
this.RochetChatConnectorService.setStatus('online')
}, 200);
window['RochetChatConnectorService'] = this.RochetChatConnectorService
setTimeout(() => {
this.ChatSystemService.getAllRooms();
this.RochetChatConnectorService.setStatus('online')
}, 200);
}).catch((error) => {
console.error(error)
})
}).catch((error) => {
console.error(SessionStore.user.ChatData, 'web socket login',error)
})
}
// before sending a message with a attachment
@@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { ChangeMessageQueueService } from './change-message-queue.service';
describe('ChangeMessageQueueService', () => {
let service: ChangeMessageQueueService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(ChangeMessageQueueService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});
@@ -0,0 +1,8 @@
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class ChangeMessageQueueService {
constructor() {}
}
+11 -6
View File
@@ -504,20 +504,25 @@ export class MessageService {
const message = this.getChatObj()
let a
if(!message.id) {
delete message.id
}
if (this.localReference) {
a = await MessageModel.get({localReference: this.localReference})
} else if (this._id) {
a = await MessageModel.get({id: this.id})
} else if(this.id) {
a = await MessageModel.get({_id: this._id})
} else if(this.id) {
a = await MessageModel.get({id: this.id})
}
for( const [name, value] of Object.entries(message)) {
a[name] = value
if(a) {
for( const [name, value] of Object.entries(message)) {
a[name] = value
}
await a.save()
}
await a.save()
} else {
this.earlySave = true
console.log('save change to early')
-2
View File
@@ -763,8 +763,6 @@ export class RoomService {
}
async readAllMessage() {
this.ViewedMessageService.requestReadAll(this)
@@ -1,6 +1,5 @@
import { Injectable } from '@angular/core';
import * as FIFOProcessQueue from 'fifo-process-queue';
import { async } from 'rxjs';
import { RoomService } from './room.service';
@Injectable({
+15 -1
View File
@@ -63,6 +63,7 @@ export class EventsService {
calendarNamesType = {}
myCalendarNames = {}
hasAnyCalendar = false
constructor(
private http: HttpClient,
@@ -135,6 +136,7 @@ export class EventsService {
if (this.loggeduser.Profile == 'MDGPR') {
for (let calendar of this.loggeduser.OwnerCalendars) {
this.hasAnyCalendar = false
if (calendar.CalendarName == 'Oficial') {
@@ -157,6 +159,7 @@ export class EventsService {
}
for (let sharedCalendar of this.loggeduser.SharedCalendars) {
this.hasAnyCalendar = false
if (sharedCalendar.CalendarName == 'Oficial') {
@@ -181,6 +184,7 @@ export class EventsService {
else if (this.loggeduser.Profile == 'PR') {
for (let calendar of this.loggeduser.OwnerCalendars) {
this.hasAnyCalendar = false
if (calendar.CalendarName == 'Oficial') {
this.hasOwnOficial = true
@@ -203,6 +207,7 @@ export class EventsService {
}
for (let calendar of this.loggeduser.OwnerCalendars) {
this.hasAnyCalendar = false
if(!this.usersCalendarIds.includes(calendar.OwnerUserId)) {
this.usersCalendarIds.push(calendar.OwnerUserId)
}
@@ -234,7 +239,7 @@ export class EventsService {
}
for (let sharedCalendar of this.loggeduser.SharedCalendars) {
this.hasAnyCalendar = false
if(!this.usersCalendarIds.includes(sharedCalendar.OwnerUserId)) {
this.usersCalendarIds.push(sharedCalendar.OwnerUserId)
@@ -267,6 +272,7 @@ export class EventsService {
for (let sharedCalendar of this.loggeduser.SharedCalendars) {
this.hasAnyCalendar = false
if(sharedCalendar?.OwnerUserId) {
this.GetCalendarName(sharedCalendar.OwnerUserId).subscribe((e)=> {
this.calendarNames[sharedCalendar.CalendarId] = e.FullName
@@ -286,6 +292,7 @@ export class EventsService {
}
for (let sharedCalendar of this.loggeduser.OwnerCalendars) {
this.hasAnyCalendar = false
this.calendarNames[sharedCalendar.CalendarId] = 'Meu calendario'
@@ -297,6 +304,13 @@ export class EventsService {
this.calendarNamesType['Meu calendario'][sharedCalendar.CalendarName] = true
this.calendarNamesType['Meu calendario'][sharedCalendar.CalendarName+'Id'] = sharedCalendar.CalendarId
}
if(SessionStore.user.OwnerCalendars.length == 0 && SessionStore.user.SharedCalendars.length == 0) {
this.hasAnyCalendar = false
} else {
this.hasAnyCalendar = true
}
}
}
+1 -1
View File
@@ -32,7 +32,7 @@ export class InativityService {
function resetTimer() {
clearTimeout(time);
time = setTimeout(userIsNotActive, 60000 * 5); // time is in milliseconds
time = setTimeout(userIsNotActive, 60000 * 15); // time is in milliseconds
}
}
}
+4 -2
View File
@@ -28,8 +28,10 @@ export class PermissionService {
for(let permission of (this.SessionStore.user.UserPermissions || [])) {
if (args.includes(permission)) {
return true;
for( const arg of args ) {
if (arg == permission) {
return true;
}
}
}
return false;
+1 -1
View File
@@ -16,7 +16,7 @@ const { Storage } = Plugins; */
) {}
key(key:string): string {
return (SHA1('service'+this.constructor.name+key)).toString()
return (SHA1('service'+"StorageService"+key)).toString()
}
async keyExist(key:string) {
+1 -1
View File
@@ -21,7 +21,7 @@ export class ThemeService {
private storageservice: StorageService
) {
this.keyName = (SHA1(this.constructor.name)).toString()
this.keyName = (SHA1("ThemeService")).toString()
let restore = localstoreService.get(this.keyName, {
theme: this.defaultTheme
})
+2 -2
View File
@@ -13,9 +13,9 @@
<div class="div-logo align-center justify-center">
<div class="logo-icon">
<img *ngIf="ThemeService.currentTheme == 'default' " src='assets/images/logo-no-bg.png' alt='logo'>
<!-- <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'/>
<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">
+1 -1
View File
@@ -17,7 +17,7 @@ export class CalendarService {
constructor() {
this.keyName = (SHA1(this.constructor.name+ 'eventSource')).toString()
this.keyName = (SHA1("CalendarService"+ 'eventSource')).toString()
let restore = this.localstoreService.get(this.keyName, [])
+1 -1
View File
@@ -13,7 +13,7 @@ export class ChatMessageService {
constructor() {
this.keyName = (SHA1('chat'+this.constructor.name)).toString()
this.keyName = (SHA1('chat'+"ChatMessageService")).toString()
setTimeout(()=> {
let restore = localstoreService.get(this.keyName, {})
+1 -1
View File
@@ -14,7 +14,7 @@ export class ChatUserService {
constructor() {
this.keyName = (SHA1('chat'+this.constructor.name)).toString()
this.keyName = (SHA1('chat'+"ToDayEventStorageService")).toString()
setTimeout(()=> {
let restore = localstoreService.get(this.keyName, {})
+4 -4
View File
@@ -23,10 +23,10 @@ export class DeplomasService {
private _diplomasListCount = 0;
constructor() {
this.keyNameDiplomasAssinado = (SHA1(this.constructor.name+"diplomasAssinado")).toString()
this.keyNameDiplomasReview = (SHA1(this.constructor.name+"diplomasReview")).toString()
this.keyNameDiplomasGerar = (SHA1(this.constructor.name+"diplomasGerar")).toString()
this.keyNameDiplomasParaAssinar = (SHA1(this.constructor.name+"diplomasParaAsinar")).toString()
this.keyNameDiplomasAssinado = (SHA1("DeplomasService"+"diplomasAssinado")).toString()
this.keyNameDiplomasReview = (SHA1("DeplomasService"+"diplomasReview")).toString()
this.keyNameDiplomasGerar = (SHA1("DeplomasService"+"diplomasGerar")).toString()
this.keyNameDiplomasParaAssinar = (SHA1("DeplomasService"+"diplomasParaAsinar")).toString()
setTimeout(() => {
+1 -1
View File
@@ -19,7 +19,7 @@ export class DespachoStoreService {
constructor() {
this.keyName = (SHA1(this.constructor.name+ 'home/eventSource')).toString()
this.keyName = (SHA1("DespachoStoreService"+ 'home/eventSource')).toString()
window['ObjectQueryService'] = this.Query()
setTimeout(()=>{
+1 -1
View File
@@ -15,7 +15,7 @@ private _count = 0
constructor() {
this.keyName = (SHA1(this.constructor.name)).toString()
this.keyName = (SHA1("DespachosprStoreService")).toString()
setTimeout(()=>{
@@ -19,8 +19,8 @@ export class EventoaprovacaoStoreService {
constructor() {
this.keyNamemd = (SHA1(this.constructor.name+"md")).toString()
this.keyNamepr = (SHA1(this.constructor.name+"pr")).toString()
this.keyNamemd = (SHA1("EventoaprovacaoStoreService"+"md")).toString()
this.keyNamepr = (SHA1("EventoaprovacaoStoreService"+"pr")).toString()
setTimeout(()=>{
+1 -1
View File
@@ -16,7 +16,7 @@ export class ExpedientegdStoreService {
constructor() {
this.keyName = (SHA1(this.constructor.name)).toString()
this.keyName = (SHA1("EventoaprovacaoStoreService")).toString()
setTimeout(()=> {
let restore = localstoreService.get(this.keyName, {})
+2 -2
View File
@@ -17,8 +17,8 @@ export class PedidosStoreService {
constructor() {
this.keyNameparecer = (SHA1(this.constructor.name+"parecer")).toString()
this.keyNamedeferiemnto = (SHA1(this.constructor.name+"deferimneto")).toString()
this.keyNameparecer = (SHA1("PedidosStoreService"+"parecer")).toString()
this.keyNamedeferiemnto = (SHA1("PedidosStoreService"+"deferimneto")).toString()
setTimeout(()=>{
let restoreParecer = localstoreService.get(this.keyNameparecer, {})
+1 -1
View File
@@ -15,7 +15,7 @@ export class PendestesStoreService {
constructor() {
this.keyName = (SHA1(this.constructor.name)).toString()
this.keyName = (SHA1("PendestesStoreService")).toString()
setTimeout(()=>{
@@ -15,7 +15,7 @@ export class PresidentialActionsStoreService {
constructor() {
this.keyName = (SHA1(this.constructor.name+ 'presidentialActions/local')).toString()
this.keyName = (SHA1("PresidentialActionsStoreService"+ 'presidentialActions/local')).toString()
setTimeout(()=>{
let restore = localstoreService.get(this.keyName, [])
+1 -1
View File
@@ -18,7 +18,7 @@ class SessionService {
constructor() {
this.keyName = (SHA1(this.constructor.name)).toString()
this.keyName = (SHA1("SessionService")).toString()
let restore = localstoreService.get(this.keyName, {})
this._user = restore.user || new UserSession()
@@ -18,7 +18,7 @@ export class ToDayEventStorageService {
constructor() {
this.keyName = (SHA1(this.constructor.name+ 'home/eventSource')).toString()
this.keyName = (SHA1("ToDayEventStorageService"+ 'home/eventSource')).toString()
setTimeout(() => {
+1 -1
View File
@@ -12,7 +12,7 @@ export class TotalDocumentService {
private keyName: string;
constructor() {
this.keyName = (SHA1(this.constructor.name)).toString()
this.keyName = (SHA1("TotalDocumentService")).toString()
setTimeout(()=> {
let restore = localstoreService.get(this.keyName, {})
+3 -3
View File
@@ -13,9 +13,9 @@ export const environment = {
// apiChatUrl: 'https://gdchat-dev.dyndns.info/api/v1/',
// apiWsChatUrl: 'wss://gdchat-dev.dyndns.info/websocket',
production: true,
domain: 'gabinetedigital.local',
defaultuser: '',//paulo.pinto@gabinetedigital.local
defaultuserpwd: '', //tabteste@006,
domain: 'evandre.dasilva@equilibrium.co.ao',
defaultuser: 'evandre.dasilva@equilibrium.co.ao',//paulo.pinto@gabinetedigital.local
defaultuserpwd: 'Luand@1219', //tabteste@006,06,
chatOffline: true,
presidencia: false,
version: versionData,
+3 -3
View File
@@ -12,9 +12,9 @@ export const environment = {
apiChatUrl: 'https://CHAT.DONEIT.CO.AO/api/v1/',
apiWsChatUrl: 'wss://CHAT.DONEIT.CO.AO/websocket',
production: true,
domain: 'paulo.pinto@gabinetedigital.local',
defaultuser: 'paulo.pinto@gabinetedigital.local',//paulo.pinto@gabinetedigital.local
defaultuserpwd: 'tabteste@006', //tabteste@006,
domain: 'evandre.dasilva@equilibrium.co.ao',
defaultuser: 'evandre.dasilva@equilibrium.co.ao',//paulo.pinto@gabinetedigital.local
defaultuserpwd: 'Luand@1219', //tabteste@006,
chatOffline: true,
presidencia: false,
version: versionData,
+1 -1
View File
@@ -56,7 +56,7 @@
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<link rel="icon" type="image/x-icon" href="assets/icon/governoangola_A.png" />
<!-- <link rel="icon" type="image/x-icon" href="assets/icon/governoangola_A.png" /> -->
<!-- <link rel="manifest" href="assets/json/manifest.json"> -->
<!-- add to homescreen for ios -->
+7 -7
View File
@@ -1,12 +1,12 @@
export let versionData = {
"shortSHA": "efa7774c1",
"SHA": "efa7774c1c45d63325a62d9596c9e8353cb5cb18",
"branch": "consoleCle2",
"shortSHA": "58f9e7eac",
"SHA": "58f9e7eacd838ed7651df9fbc32863e774cccd6f",
"branch": "no_bug_movemente",
"lastCommitAuthor": "'Peter Maquiran'",
"lastCommitTime": "'Mon Jan 9 14:51:00 2023 +0100'",
"lastCommitMessage": "improve chat",
"lastCommitNumber": "4623",
"lastCommitTime": "'Mon Jan 9 17:07:02 2023 +0100'",
"lastCommitMessage": "save",
"lastCommitNumber": "4624",
"change": "",
"changeStatus": "On branch consoleCle2\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: .gitignore\n\tmodified: src/app/home/home.page.ts\n\tmodified: src/app/pages/gabinete-digital/gabinete-digital.page.html\n\tmodified: src/app/pages/login/login.page.html\n\tmodified: src/app/services/background.service.ts\n\tmodified: src/app/services/network-service.service.ts\n\tmodified: src/app/shared/header/header.page.html\n\tmodified: src/environments/environment.prod.ts\n\tmodified: src/environments/environment.ts",
"changeStatus": "On branch no_bug_movemente\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: android/app/src/main/AndroidManifest.xml\n\tmodified: android/app/src/main/res/drawable-land-hdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-land-mdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-land-xhdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-land-xxhdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-land-xxxhdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-port-hdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-port-mdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-port-xhdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-port-xxhdpi/splash.png\n\tmodified: android/app/src/main/res/drawable-port-xxxhdpi/splash.png\n\tmodified: android/app/src/main/res/mipmap-hdpi/ic_launcher.png\n\tmodified: android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png\n\tmodified: android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png\n\tmodified: android/app/src/main/res/mipmap-mdpi/ic_launcher.png\n\tmodified: android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png\n\tmodified: android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png\n\tmodified: android/app/src/main/res/mipmap-xhdpi/ic_launcher.png\n\tmodified: android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png\n\tmodified: android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png\n\tmodified: android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png\n\tmodified: android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png\n\tmodified: android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png\n\tmodified: android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png\n\tmodified: android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png\n\tmodified: android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png\n\tmodified: package-lock.json\n\tmodified: package.json\n\tmodified: src/app/Rules/aprove-event.service.ts\n\tmodified: src/app/Rules/deferimentos-service.service.ts\n\tmodified: src/app/Rules/deplomas-service.service.ts\n\tmodified: src/app/Rules/despacho-pr.service.ts\n\tmodified: src/app/Rules/despacho.service.ts\n\tmodified: src/app/Rules/expediente.service.ts\n\tmodified: src/app/Rules/parecer.service.ts\n\tmodified: src/app/Rules/pedido.service.ts\n\tmodified: src/app/Rules/pendentes.service.ts\n\tmodified: src/app/app.module.ts\n\tmodified: src/app/guards/auth.guard.ts\n\tmodified: src/app/guards/inactivity.guard.ts\n\tmodified: src/app/guards/login.guard.ts\n\tmodified: src/app/home/home.page.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/modals/profile/profile.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/chat/messages/messages.page.html\n\tmodified: src/app/pages/gabinete-digital/gabinete-digital.page.html\n\tmodified: src/app/pages/gabinete-digital/gabinete-digital.page.ts\n\tmodified: src/app/pages/inactivity/inactivity.page.html\n\tmodified: src/app/pages/login/login.page.ts\n\tmodified: src/app/services/auth.service.ts\n\tnew file: src/app/services/chat/change-message-queue.service.spec.ts\n\tnew file: src/app/services/chat/change-message-queue.service.ts\n\tmodified: src/app/services/chat/message.service.ts\n\tmodified: src/app/services/chat/room.service.ts\n\tmodified: src/app/services/chat/viewed-message.service.ts\n\tmodified: src/app/services/events.service.ts\n\tmodified: src/app/services/inativity.service.ts\n\tmodified: src/app/services/permission.service.ts\n\tmodified: src/app/services/storage.service.ts\n\tmodified: src/app/services/theme.service.ts\n\tmodified: src/app/shared/header/header.page.html\n\tmodified: src/app/store/calendar.service.ts\n\tmodified: src/app/store/chat/chat-message.service.ts\n\tmodified: src/app/store/chat/chat-user.service.ts\n\tmodified: src/app/store/deplomas.service.ts\n\tmodified: src/app/store/despacho-store.service.ts\n\tmodified: src/app/store/despachospr-store.service.ts\n\tmodified: src/app/store/eventoaprovacao-store.service.ts\n\tmodified: src/app/store/expedientegd-store.service.ts\n\tmodified: src/app/store/pedidos-store.service.ts\n\tmodified: src/app/store/pendestes-store.service.ts\n\tmodified: src/app/store/presidential-actions-store.service.ts\n\tmodified: src/app/store/session.service.ts\n\tmodified: src/app/store/to-day-event-storage.service.ts\n\tmodified: src/app/store/total-document.service.ts\n\tmodified: src/environments/environment.prod.ts\n\tmodified: src/environments/environment.ts\n\tmodified: src/index.html",
"changeAuthor": "peter.maquiran"
}