mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 12:37:53 +00:00
fix agenda and publication
This commit is contained in:
@@ -0,0 +1,107 @@
|
|||||||
|
# Software Architecture documentation
|
||||||
|
This Architecture promotes a clear separation of concerns by dividing the system into layers, each with its own responsibility. However, rather than using a traditional layered approach, we'll focus on a component-based structure where each component adheres to SOLID principles and can operate independently. The architecture consist of the following layers:
|
||||||
|
|
||||||
|
- **Components**: Business components
|
||||||
|
- **Presentation**: UI components and Angular services.
|
||||||
|
|
||||||
|
## Architecture Layers
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Components
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Components are the core business logic units in the application. The components are divided into two sub-layers:
|
||||||
|
|
||||||
|
**Domain Layer**
|
||||||
|
|
||||||
|
- Contains business logic and rules.
|
||||||
|
- Models the business entities.
|
||||||
|
- Does not depend on the data layer or any other external services.
|
||||||
|
|
||||||
|
**Data Layer**
|
||||||
|
|
||||||
|
- Responsible for data access and persistence.
|
||||||
|
- Contains repositories or data services that interact with APIs or databases.
|
||||||
|
- Isolated from the domain layer to ensure a clear separation of concerns.
|
||||||
|
|
||||||
|
### Presentation
|
||||||
|

|
||||||
|
|
||||||
|
The presentation layer is responsible for the user interface and interactions. It consists of Angular UI components and services:
|
||||||
|
|
||||||
|
|
||||||
|
## File Structure Explanation
|
||||||
|
The project is divided into several key sections, each serving a specific purpose:
|
||||||
|
|
||||||
|
**Source Code (src)**
|
||||||
|
|
||||||
|
- **common**: Shared utilities such as decorators, interceptors, and guards.
|
||||||
|
|
||||||
|
- **core**: Business Object divided by features to store shared entity, use case and repository interface
|
||||||
|
|
||||||
|
- **infra**: Infrastructure code such as storage, HTTP clients, and logging.
|
||||||
|
|
||||||
|
- **libs**: Reusable libraries (e.g., session management, cryptography).
|
||||||
|
|
||||||
|
- **components**: Business Feature divided by responsibility
|
||||||
|
|
||||||
|
- **UI**: Presentation layer with Angular divided by Feature
|
||||||
|
|
||||||
|
- **utils**: Utility functions and constants.
|
||||||
|
main.ts: Entry point of the application.
|
||||||
|
|
||||||
|
|
||||||
|
├── package-lock.json
|
||||||
|
├── package.json
|
||||||
|
├── src
|
||||||
|
│ ├── common
|
||||||
|
│ ├── core
|
||||||
|
│ │ ├── attachment
|
||||||
|
│ │ │ ├── entity
|
||||||
|
│ │ │ ├── repository
|
||||||
|
│ │ │ └── use-cases
|
||||||
|
│ ├── components
|
||||||
|
│ │ ├── gabinete
|
||||||
|
│ │ │ ├── domain
|
||||||
|
│ │ │ ├── data
|
||||||
|
│ │ ├── Agenda
|
||||||
|
│ │ │ ├── domain
|
||||||
|
│ │ │ ├── data
|
||||||
|
│ ├── UI
|
||||||
|
│ │ ├── pages
|
||||||
|
│ │ │ ├── share
|
||||||
|
| │ │ │ ├── buttons
|
||||||
|
│ │ │ │ └── modal
|
||||||
|
│ │ │ ├── Home
|
||||||
|
│ │ │ | ├── service
|
||||||
|
│ │ │ │ └── store
|
||||||
|
│ │ │ ├── Agenda
|
||||||
|
│ │ │ ├── Gabinete
|
||||||
|
│ │ │ ├── Actions
|
||||||
|
│ │ │ ├── Chat
|
||||||
|
│ ├── infra
|
||||||
|
│ │ ├── http
|
||||||
|
│ ├── utils
|
||||||
|
│ │ ├── date.ts
|
||||||
|
│ │ ├── exception.ts
|
||||||
|
│ │ ├── sort.ts
|
||||||
|
│ ├── libs
|
||||||
|
|
||||||
|
|
||||||
|
## Achieving Reusability
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Example: Gabinete Page
|
||||||
|
|
||||||
|
Consider a Gabinete scenario:
|
||||||
|
- **Business components**: Event Component, Gabinete Component
|
||||||
|
- **UI components**: Gabinete UI Business
|
||||||
|
|
||||||
|
In this setup, the Event Component functionalities are reusable without any dependency on UI details. If the product team introduces create-event functionality in the Gabinete screen, the Event Component module can be added as a dependency to the Gabinete UI module seamlessly.
|
||||||
|

|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
This file structure supports Clean Architecture by ensuring a clear separation of concerns and adhering to SOLID principles. Each part of the application is modular, making it easy to maintain, test, and extend. This setup promotes a clean and organized project that scales well as complexity grows.
|
||||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 168 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 91 KiB |
+133
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 278 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 30 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 36 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 24 KiB |
+11
-11
@@ -363,18 +363,18 @@ export class HomePage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async synchWhenOnline() {
|
async synchWhenOnline() {
|
||||||
try {
|
// try {
|
||||||
await this.storage.get('eventEdit').then((req) => {
|
// await this.storage.get('eventEdit').then((req) => {
|
||||||
JSON.parse(req).forEach(element => {
|
// JSON.parse(req).forEach(element => {
|
||||||
this.eventservice.editEvent(element, 2, 3).subscribe((res) => {
|
// this.eventservice.editEvent(element, 2, 3).subscribe((res) => {
|
||||||
this.storage.remove('eventEdit')
|
// this.storage.remove('eventEdit')
|
||||||
//this.sqliteservice.deleteeventsTable();
|
// //this.sqliteservice.deleteeventsTable();
|
||||||
})
|
// })
|
||||||
});
|
// });
|
||||||
})
|
// })
|
||||||
} catch (error) {
|
// } catch (error) {
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.storage.get('eventDelete').then((req) => {
|
await this.storage.get('eventDelete').then((req) => {
|
||||||
|
|||||||
@@ -78,23 +78,23 @@ export class ViewEventPage implements OnInit {
|
|||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.loadEvent();
|
this.loadEvent();
|
||||||
|
|
||||||
this.backgroundservice.registerBackService('Online', () => {
|
// this.backgroundservice.registerBackService('Online', () => {
|
||||||
this.storage.get('eventEdit').then((req) => {
|
// this.storage.get('eventEdit').then((req) => {
|
||||||
JSON.parse(req).forEach(element => {
|
// JSON.parse(req).forEach(element => {
|
||||||
this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
|
// this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
|
||||||
this.storage.remove('eventEdit')
|
// this.storage.remove('eventEdit')
|
||||||
})
|
// })
|
||||||
});
|
// });
|
||||||
})
|
// })
|
||||||
this.storage.get('eventDelete').then((req) => {
|
// this.storage.get('eventDelete').then((req) => {
|
||||||
JSON.parse(req).forEach(element => {
|
// JSON.parse(req).forEach(element => {
|
||||||
this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
|
// this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
|
||||||
this.storage.remove('eventDelete')
|
// this.storage.remove('eventDelete')
|
||||||
})
|
// })
|
||||||
});
|
// });
|
||||||
})
|
// })
|
||||||
this.loadEvent();
|
// this.loadEvent();
|
||||||
});
|
// });
|
||||||
|
|
||||||
window.onresize = (event) => {
|
window.onresize = (event) => {
|
||||||
// if not mobile remove all component
|
// if not mobile remove all component
|
||||||
|
|||||||
@@ -377,7 +377,7 @@ export class EditEventPage implements OnInit {
|
|||||||
this.postEvent.EventRecurrence.Type = this.selectedRecurringType;
|
this.postEvent.EventRecurrence.Type = this.selectedRecurringType;
|
||||||
|
|
||||||
if (this.sesseionStora.user.Profile == 'MDGPR' || this.sesseionStora.user.Profile == 'PR') {
|
if (this.sesseionStora.user.Profile == 'MDGPR' || this.sesseionStora.user.Profile == 'PR') {
|
||||||
this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => {
|
this.eventsService.editEvent(this.postEvent, 2, 3, null).subscribe(async () => {
|
||||||
|
|
||||||
if (window['reloadCalendar']) {
|
if (window['reloadCalendar']) {
|
||||||
window['reloadCalendar']()
|
window['reloadCalendar']()
|
||||||
@@ -648,24 +648,24 @@ export class EditEventPage implements OnInit {
|
|||||||
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
||||||
this.postEvent.StartDate = this.setAlldayTime(this.postEvent.StartDate)
|
this.postEvent.StartDate = this.setAlldayTime(this.postEvent.StartDate)
|
||||||
this.postEvent.EndDate = this.setAlldayTimeEndDate(this.postEvent.EndDate)
|
this.postEvent.EndDate = this.setAlldayTimeEndDate(this.postEvent.EndDate)
|
||||||
|
|
||||||
console.log('Recurso ativado!!');
|
console.log('Recurso ativado!!');
|
||||||
} else {
|
} else {
|
||||||
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
||||||
this.postEvent.EndDate = this.setAlldayTimeEndDateNotAlday(this.postEvent.EndDate)
|
this.postEvent.EndDate = this.setAlldayTimeEndDateNotAlday(this.postEvent.EndDate)
|
||||||
console.log('Recurso desativado');
|
console.log('Recurso desativado');
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setAlldayTime(timeToReturn) {
|
setAlldayTime(timeToReturn) {
|
||||||
let date: any = new Date(timeToReturn) || new Date();
|
let date: any = new Date(timeToReturn) || new Date();
|
||||||
let newdate = new Date();
|
let newdate = new Date();
|
||||||
date.setHours(0)
|
date.setHours(0)
|
||||||
date.setMinutes(0)
|
date.setMinutes(0)
|
||||||
date.setSeconds(0);
|
date.setSeconds(0);
|
||||||
|
|
||||||
|
|
||||||
return date
|
return date
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -675,8 +675,8 @@ export class EditEventPage implements OnInit {
|
|||||||
date.setHours(23)
|
date.setHours(23)
|
||||||
date.setMinutes(59)
|
date.setMinutes(59)
|
||||||
date.setSeconds(0);
|
date.setSeconds(0);
|
||||||
|
|
||||||
|
|
||||||
return date
|
return date
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -686,8 +686,8 @@ export class EditEventPage implements OnInit {
|
|||||||
date.setHours(23)
|
date.setHours(23)
|
||||||
date.setMinutes(0)
|
date.setMinutes(0)
|
||||||
date.setSeconds(0);
|
date.setSeconds(0);
|
||||||
|
|
||||||
|
|
||||||
return date
|
return date
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,25 +106,25 @@ export class ViewEventPage implements OnInit {
|
|||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.loadEvent();
|
this.loadEvent();
|
||||||
|
|
||||||
this.backgroundservice.registerBackService('Online', () => {
|
// this.backgroundservice.registerBackService('Online', () => {
|
||||||
this.storage.get('eventEdit').then((req) => {
|
// this.storage.get('eventEdit').then((req) => {
|
||||||
JSON.parse(req).forEach(element => {
|
// JSON.parse(req).forEach(element => {
|
||||||
this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
|
// this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
|
||||||
this.storage.remove('eventEdit')
|
// this.storage.remove('eventEdit')
|
||||||
|
|
||||||
})
|
// })
|
||||||
});
|
// });
|
||||||
})
|
// })
|
||||||
this.storage.get('eventDelete').then((req) => {
|
// this.storage.get('eventDelete').then((req) => {
|
||||||
JSON.parse(req).forEach(element => {
|
// JSON.parse(req).forEach(element => {
|
||||||
this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
|
// this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
|
||||||
this.storage.remove('eventDelete')
|
// this.storage.remove('eventDelete')
|
||||||
|
|
||||||
})
|
// })
|
||||||
});
|
// });
|
||||||
})
|
// })
|
||||||
this.loadEvent();
|
// this.loadEvent();
|
||||||
});
|
// });
|
||||||
|
|
||||||
window.onresize = (event) => {
|
window.onresize = (event) => {
|
||||||
// if not mobile remove all component
|
// if not mobile remove all component
|
||||||
|
|||||||
@@ -243,7 +243,7 @@
|
|||||||
{{last ? scrollToBottom() : ''}}
|
{{last ? scrollToBottom() : ''}}
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="msg.t == 'ul'" class="info-text-leave">
|
<div *ngIf="msg.t == 'ul'" class="info-text-leave">
|
||||||
<div *ngFor="let user of allUsers">
|
<div *ngFor="let user of ChatSystemService.users">
|
||||||
<div *ngIf="msg.msg == user.username">
|
<div *ngIf="msg.msg == user.username">
|
||||||
<ion-label>{{user.name}} saiu do grupo</ion-label><br />
|
<ion-label>{{user.name}} saiu do grupo</ion-label><br />
|
||||||
</div>
|
</div>
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
{{last ? scrollToBottom() : ''}}
|
{{last ? scrollToBottom() : ''}}
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="msg.t == 'ru'" class="info-text-leave">
|
<div *ngIf="msg.t == 'ru'" class="info-text-leave">
|
||||||
<div *ngFor="let user of allUsers">
|
<div *ngFor="let user of ChatSystemService.users">
|
||||||
<div *ngIf="msg.msg == user.username">
|
<div *ngIf="msg.msg == user.username">
|
||||||
<ion-label>{{user.name}} foi removido do grupo</ion-label><br />
|
<ion-label>{{user.name}} foi removido do grupo</ion-label><br />
|
||||||
</div>
|
</div>
|
||||||
@@ -260,7 +260,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div *ngIf="msg.t == 'au' && msg.msg != sessionStore.user.UserName">
|
<div *ngIf="msg.t == 'au' && msg.msg != sessionStore.user.UserName">
|
||||||
|
|
||||||
<div *ngFor="let user of allUsers">
|
<div *ngFor="let user of ChatSystemService.users">
|
||||||
<div *ngIf="msg.msg == user.username" class="info-text-leave">
|
<div *ngIf="msg.msg == user.username" class="info-text-leave">
|
||||||
<ion-label>Adicionou {{user.name}}</ion-label><br />
|
<ion-label>Adicionou {{user.name}}</ion-label><br />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
roomName: any;
|
roomName: any;
|
||||||
members: any = []
|
members: any = []
|
||||||
contacts: string[] = [" Ana M.", "Andre F.", "Bruno G.", "Catarina T", "Tiago"];
|
contacts: string[] = [" Ana M.", "Andre F.", "Bruno G.", "Catarina T", "Tiago"];
|
||||||
allUsers: any[] = [];
|
|
||||||
|
|
||||||
roomId: string;
|
roomId: string;
|
||||||
loggedUserChat: any;
|
loggedUserChat: any;
|
||||||
@@ -421,12 +420,9 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getChatMembers() {
|
async getChatMembers() {
|
||||||
this.chatService.getAllUsers().subscribe(res => {
|
if(this.ChatSystemService.users.length == 0) {
|
||||||
|
this.ChatSystemService.getUser()
|
||||||
|
}
|
||||||
this.allUsers = res['users'].filter(data => data.username != SessionStore.user.UserName);
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* load(){
|
/* load(){
|
||||||
|
|||||||
@@ -162,28 +162,28 @@ export class EditEventPage implements OnInit {
|
|||||||
|
|
||||||
Save()
|
Save()
|
||||||
{
|
{
|
||||||
if (this.ionicForm.valid){
|
// if (this.ionicForm.valid){
|
||||||
|
|
||||||
this.activatedRoute.paramMap.subscribe(paramMap =>{
|
// this.activatedRoute.paramMap.subscribe(paramMap =>{
|
||||||
if (paramMap.has("profile")){
|
// if (paramMap.has("profile")){
|
||||||
|
|
||||||
|
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
|
||||||
this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
|
// this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
|
||||||
{
|
// {
|
||||||
const alert = await this.alertController.create({
|
// const alert = await this.alertController.create({
|
||||||
cssClass: 'my-custom-class',
|
// cssClass: 'my-custom-class',
|
||||||
header: 'Evento actualizado',
|
// header: 'Evento actualizado',
|
||||||
buttons: ['OK']
|
// buttons: ['OK']
|
||||||
});
|
// });
|
||||||
|
|
||||||
setTimeout(()=>{
|
// setTimeout(()=>{
|
||||||
alert.dismiss();
|
// alert.dismiss();
|
||||||
}, 1500);
|
// }, 1500);
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
showAlert(){
|
showAlert(){
|
||||||
|
|||||||
@@ -163,27 +163,27 @@ export class EventDetailPage implements OnInit {
|
|||||||
|
|
||||||
Save()
|
Save()
|
||||||
{
|
{
|
||||||
if (this.ionicForm.valid){
|
// if (this.ionicForm.valid){
|
||||||
|
|
||||||
this.activatedRoute.paramMap.subscribe(paramMap =>{
|
// this.activatedRoute.paramMap.subscribe(paramMap =>{
|
||||||
if (paramMap.has("profile")){
|
// if (paramMap.has("profile")){
|
||||||
|
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
|
||||||
this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
|
// this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
|
||||||
{
|
// {
|
||||||
const alert = await this.alertController.create({
|
// const alert = await this.alertController.create({
|
||||||
cssClass: 'my-custom-class',
|
// cssClass: 'my-custom-class',
|
||||||
header: 'Evento actualizado',
|
// header: 'Evento actualizado',
|
||||||
buttons: ['OK']
|
// buttons: ['OK']
|
||||||
});
|
// });
|
||||||
|
|
||||||
setTimeout(()=>{
|
// setTimeout(()=>{
|
||||||
alert.dismiss();
|
// alert.dismiss();
|
||||||
}, 1500);
|
// }, 1500);
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
showAlert(){
|
showAlert(){
|
||||||
|
|||||||
@@ -886,7 +886,7 @@ export class EventsService {
|
|||||||
return this.http.put<Event>(`${puturl}`, event, options)
|
return this.http.put<Event>(`${puturl}`, event, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
editEvent(event: Event, conflictResolutionMode: number, sendInvitationsOrCancellationsMode: number, CalendarId? ): Observable<Event> {
|
editEvent(event: Event, conflictResolutionMode: number, sendInvitationsOrCancellationsMode: number, CalendarId ): Observable<Event> {
|
||||||
let arrayReq = [];
|
let arrayReq = [];
|
||||||
arrayReq.push(event);
|
arrayReq.push(event);
|
||||||
const puturl = environment.apiURL + 'calendar/PutEvent';
|
const puturl = environment.apiURL + 'calendar/PutEvent';
|
||||||
@@ -917,18 +917,35 @@ export class EventsService {
|
|||||||
this.headers = this.headersPrOficial;
|
this.headers = this.headersPrOficial;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
const headers = [
|
|
||||||
this.headerSharedOficial,
|
|
||||||
this.headerSharedPessoal,
|
|
||||||
this.headerOwnPessoal,
|
|
||||||
this.headerOwnOficial
|
|
||||||
]
|
|
||||||
|
|
||||||
const header = headers.find((header)=> {
|
if(CalendarId) {
|
||||||
return header?.get('CalendarId')?.includes(CalendarId)
|
|
||||||
})
|
const headers = [
|
||||||
|
this.headerSharedOficial,
|
||||||
|
this.headerSharedPessoal,
|
||||||
|
this.headerOwnPessoal,
|
||||||
|
this.headerOwnOficial
|
||||||
|
]
|
||||||
|
|
||||||
|
const calendar = this.DetectCalendars(CalendarId)
|
||||||
|
const header = this.makeHeader(calendar)
|
||||||
|
|
||||||
|
this.headers = header
|
||||||
|
} else {
|
||||||
|
const headers = [
|
||||||
|
this.headerSharedOficial,
|
||||||
|
this.headerSharedPessoal,
|
||||||
|
this.headerOwnPessoal,
|
||||||
|
this.headerOwnOficial
|
||||||
|
]
|
||||||
|
|
||||||
|
const header = headers.find((header)=> {
|
||||||
|
return header?.get('CalendarId')?.includes(CalendarId)
|
||||||
|
})
|
||||||
|
|
||||||
|
this.headers = header
|
||||||
|
}
|
||||||
|
|
||||||
this.headers = header
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -939,18 +956,36 @@ export class EventsService {
|
|||||||
this.headers = this.headersPrPessoal;
|
this.headers = this.headersPrPessoal;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const headers = [
|
|
||||||
this.headerSharedOficial,
|
|
||||||
this.headerSharedPessoal,
|
|
||||||
this.headerOwnPessoal,
|
|
||||||
this.headerOwnOficial
|
|
||||||
]
|
|
||||||
|
|
||||||
const header = headers.find((header)=> {
|
|
||||||
return header?.get('CalendarId')?.includes(CalendarId)
|
|
||||||
})
|
|
||||||
|
|
||||||
this.headers = header
|
|
||||||
|
if(CalendarId) {
|
||||||
|
|
||||||
|
const headers = [
|
||||||
|
this.headerSharedOficial,
|
||||||
|
this.headerSharedPessoal,
|
||||||
|
this.headerOwnPessoal,
|
||||||
|
this.headerOwnOficial
|
||||||
|
]
|
||||||
|
|
||||||
|
const calendar = this.DetectCalendars(CalendarId)
|
||||||
|
const header = this.makeHeader(calendar)
|
||||||
|
|
||||||
|
this.headers = header
|
||||||
|
} else {
|
||||||
|
const headers = [
|
||||||
|
this.headerSharedOficial,
|
||||||
|
this.headerSharedPessoal,
|
||||||
|
this.headerOwnPessoal,
|
||||||
|
this.headerOwnOficial
|
||||||
|
]
|
||||||
|
|
||||||
|
const header = headers.find((header)=> {
|
||||||
|
return header?.get('CalendarId')?.includes(CalendarId)
|
||||||
|
})
|
||||||
|
|
||||||
|
this.headers = header
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+21
-21
@@ -70,7 +70,7 @@ export class EditEventPage implements OnInit {
|
|||||||
else{
|
else{
|
||||||
this.pageId = paramMap.get('eventId');
|
this.pageId = paramMap.get('eventId');
|
||||||
eventid = paramMap.get('eventId');
|
eventid = paramMap.get('eventId');
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (paramMap.has("caller")){
|
if (paramMap.has("caller")){
|
||||||
@@ -158,28 +158,28 @@ export class EditEventPage implements OnInit {
|
|||||||
|
|
||||||
Save()
|
Save()
|
||||||
{
|
{
|
||||||
if (this.ionicForm.valid){
|
// if (this.ionicForm.valid){
|
||||||
|
|
||||||
this.activatedRoute.paramMap.subscribe(paramMap =>{
|
// this.activatedRoute.paramMap.subscribe(paramMap =>{
|
||||||
if (paramMap.has("profile")){
|
// if (paramMap.has("profile")){
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
|
// }
|
||||||
{
|
// });
|
||||||
const alert = await this.alertController.create({
|
|
||||||
cssClass: 'my-custom-class',
|
|
||||||
header: 'Evento actualizado',
|
|
||||||
buttons: ['OK']
|
|
||||||
});
|
|
||||||
|
|
||||||
setTimeout(()=>{
|
// this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
|
||||||
alert.dismiss();
|
// {
|
||||||
}, 1500);
|
// const alert = await this.alertController.create({
|
||||||
});
|
// cssClass: 'my-custom-class',
|
||||||
}
|
// header: 'Evento actualizado',
|
||||||
|
// buttons: ['OK']
|
||||||
|
// });
|
||||||
|
|
||||||
|
// setTimeout(()=>{
|
||||||
|
// alert.dismiss();
|
||||||
|
// }, 1500);
|
||||||
|
// });
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
loadAttachments()
|
loadAttachments()
|
||||||
@@ -187,7 +187,7 @@ export class EditEventPage implements OnInit {
|
|||||||
|
|
||||||
this.attachamentsService.getAttachmentsById(this.pageId).subscribe(res => {
|
this.attachamentsService.getAttachmentsById(this.pageId).subscribe(res => {
|
||||||
this.loadedEventAttachments = res;
|
this.loadedEventAttachments = res;
|
||||||
|
|
||||||
|
|
||||||
},((erro) => {
|
},((erro) => {
|
||||||
console.error('loadAttchament', erro)
|
console.error('loadAttchament', erro)
|
||||||
@@ -230,7 +230,7 @@ export class EditEventPage implements OnInit {
|
|||||||
backdropDismiss: false
|
backdropDismiss: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modal.onDidDismiss().then((data) => {
|
modal.onDidDismiss().then((data) => {
|
||||||
if (data['data'] != null)
|
if (data['data'] != null)
|
||||||
+21
-21
@@ -70,7 +70,7 @@ export class EventDetailPage implements OnInit {
|
|||||||
else{
|
else{
|
||||||
this.pageId = paramMap.get('eventId');
|
this.pageId = paramMap.get('eventId');
|
||||||
eventid = paramMap.get('eventId');
|
eventid = paramMap.get('eventId');
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (paramMap.has("caller")){
|
if (paramMap.has("caller")){
|
||||||
@@ -93,7 +93,7 @@ export class EventDetailPage implements OnInit {
|
|||||||
backdropDismiss: false
|
backdropDismiss: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modal.onDidDismiss().then((data) => {
|
modal.onDidDismiss().then((data) => {
|
||||||
if (data['data'] != null)
|
if (data['data'] != null)
|
||||||
@@ -158,28 +158,28 @@ export class EventDetailPage implements OnInit {
|
|||||||
|
|
||||||
Save()
|
Save()
|
||||||
{
|
{
|
||||||
if (this.ionicForm.valid){
|
// if (this.ionicForm.valid){
|
||||||
|
|
||||||
this.activatedRoute.paramMap.subscribe(paramMap =>{
|
// this.activatedRoute.paramMap.subscribe(paramMap =>{
|
||||||
if (paramMap.has("profile")){
|
// if (paramMap.has("profile")){
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
|
// }
|
||||||
{
|
// });
|
||||||
const alert = await this.alertController.create({
|
|
||||||
cssClass: 'my-custom-class',
|
|
||||||
header: 'Evento actualizado',
|
|
||||||
buttons: ['OK']
|
|
||||||
});
|
|
||||||
|
|
||||||
setTimeout(()=>{
|
// this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
|
||||||
alert.dismiss();
|
// {
|
||||||
}, 1500);
|
// const alert = await this.alertController.create({
|
||||||
});
|
// cssClass: 'my-custom-class',
|
||||||
}
|
// header: 'Evento actualizado',
|
||||||
|
// buttons: ['OK']
|
||||||
|
// });
|
||||||
|
|
||||||
|
// setTimeout(()=>{
|
||||||
|
// alert.dismiss();
|
||||||
|
// }, 1500);
|
||||||
|
// });
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
loadAttachments()
|
loadAttachments()
|
||||||
@@ -187,7 +187,7 @@ export class EventDetailPage implements OnInit {
|
|||||||
|
|
||||||
this.attachamentsService.getAttachmentsById(this.pageId).subscribe(res => {
|
this.attachamentsService.getAttachmentsById(this.pageId).subscribe(res => {
|
||||||
this.loadedEventAttachments = res;
|
this.loadedEventAttachments = res;
|
||||||
|
|
||||||
|
|
||||||
},((erro) => {
|
},((erro) => {
|
||||||
console.error('loadAttchament', erro)
|
console.error('loadAttchament', erro)
|
||||||
@@ -8,10 +8,10 @@ const routes: Routes = [
|
|||||||
path: '',
|
path: '',
|
||||||
component: EventsPage
|
component: EventsPage
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: 'event-detail',
|
// path: 'event-detail',
|
||||||
loadChildren: () => import('./event-detail/event-detail.module').then( m => m.EventDetailPageModule)
|
// loadChildren: () => import('./event-detail/event-detail.module').then( m => m.EventDetailPageModule)
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: 'attachments',
|
path: 'attachments',
|
||||||
loadChildren: () => import('./attachments/attachments.module').then( m => m.AttachmentsPageModule)
|
loadChildren: () => import('./attachments/attachments.module').then( m => m.AttachmentsPageModule)
|
||||||
@@ -24,10 +24,10 @@ const routes: Routes = [
|
|||||||
path: 'event-detail-modal',
|
path: 'event-detail-modal',
|
||||||
loadChildren: () => import('./event-detail-modal/event-detail-modal.module').then( m => m.EventDetailModalPageModule)
|
loadChildren: () => import('./event-detail-modal/event-detail-modal.module').then( m => m.EventDetailModalPageModule)
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: 'edit-event',
|
// path: 'edit-event',
|
||||||
loadChildren: () => import('./edit-event/edit-event.module').then( m => m.EditEventPageModule)
|
// loadChildren: () => import('./edit-event/edit-event.module').then( m => m.EditEventPageModule)
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { EventsService } from 'src/app/services/events.service';
|
|||||||
import { NavigationExtras, Router } from '@angular/router';
|
import { NavigationExtras, Router } from '@angular/router';
|
||||||
import { ActivatedRoute, NavigationEnd } from '@angular/router';
|
import { ActivatedRoute, NavigationEnd } from '@angular/router';
|
||||||
import { ModalController, Platform } from '@ionic/angular';
|
import { ModalController, Platform } from '@ionic/angular';
|
||||||
import { EventDetailPage } from './event-detail/event-detail.page';
|
// import { EventDetailPage } from './event-detail/event-detail.page';
|
||||||
import { ProcessesService } from '../../services/processes.service';
|
import { ProcessesService } from '../../services/processes.service';
|
||||||
import { DailyWorkTask } from '../../models/dailyworktask.model';
|
import { DailyWorkTask } from '../../models/dailyworktask.model';
|
||||||
import { LoginUserRespose } from 'src/app/models/user.model';
|
import { LoginUserRespose } from 'src/app/models/user.model';
|
||||||
@@ -84,7 +84,7 @@ export class EventsPage implements OnInit {
|
|||||||
public ThemeService: ThemeService,
|
public ThemeService: ThemeService,
|
||||||
) {
|
) {
|
||||||
this.existingScreenOrientation = this.screenOrientation.type;
|
this.existingScreenOrientation = this.screenOrientation.type;
|
||||||
|
|
||||||
|
|
||||||
this.loggeduser = SessionStore.user;
|
this.loggeduser = SessionStore.user;
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ export class EventsPage implements OnInit {
|
|||||||
|
|
||||||
this.platform.resize.subscribe(async () => {
|
this.platform.resize.subscribe(async () => {
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@ export class EventsPage implements OnInit {
|
|||||||
// Lock to portrait
|
// Lock to portrait
|
||||||
lockToPortrait(){
|
lockToPortrait(){
|
||||||
this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.PORTRAIT);
|
this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.PORTRAIT);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lock to landscape
|
// Lock to landscape
|
||||||
@@ -153,7 +153,7 @@ export class EventsPage implements OnInit {
|
|||||||
checkScreenOrientation(){
|
checkScreenOrientation(){
|
||||||
if( window.innerWidth < 701) {
|
if( window.innerWidth < 701) {
|
||||||
this.lockToPortrait();
|
this.lockToPortrait();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@@ -233,8 +233,8 @@ export class EventsPage implements OnInit {
|
|||||||
let prOficialEvents= await this.eventService.getAllPrOficialEvents(start, end).toPromise();
|
let prOficialEvents= await this.eventService.getAllPrOficialEvents(start, end).toPromise();
|
||||||
let prPessoalEvents= await this.eventService.getAllPrPessoalEvents(start, end).toPromise();
|
let prPessoalEvents= await this.eventService.getAllPrPessoalEvents(start, end).toPromise();
|
||||||
this.eventsList = prOficialEvents.concat(prPessoalEvents);
|
this.eventsList = prOficialEvents.concat(prPessoalEvents);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(this.eventsList.length > 0){
|
if(this.eventsList.length > 0){
|
||||||
this.currentEvent = this.eventsList[0].Subject;
|
this.currentEvent = this.eventsList[0].Subject;
|
||||||
@@ -297,12 +297,12 @@ export class EventsPage implements OnInit {
|
|||||||
|
|
||||||
changeProfile(){
|
changeProfile(){
|
||||||
if(this.profile == "mdgpr"){
|
if(this.profile == "mdgpr"){
|
||||||
|
|
||||||
this.profile ="pr";
|
this.profile ="pr";
|
||||||
this.RefreshEvents();
|
this.RefreshEvents();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|
||||||
this.profile ="mdgpr";
|
this.profile ="mdgpr";
|
||||||
this.RefreshEvents();
|
this.RefreshEvents();
|
||||||
}
|
}
|
||||||
@@ -315,26 +315,11 @@ export class EventsPage implements OnInit {
|
|||||||
this.router.navigate(['/home/login']);
|
this.router.navigate(['/home/login']);
|
||||||
}
|
}
|
||||||
|
|
||||||
async openEventDetail1(id:any){
|
|
||||||
|
|
||||||
|
|
||||||
const modal = await this.modalController.create({
|
|
||||||
component: EventDetailPage,
|
|
||||||
componentProps: {
|
|
||||||
eventId: id,
|
|
||||||
},
|
|
||||||
cssClass: 'event-detail',
|
|
||||||
backdropDismiss: false
|
|
||||||
});
|
|
||||||
|
|
||||||
modal.onDidDismiss();
|
|
||||||
await modal.present();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
LoadList() {
|
LoadList() {
|
||||||
this.processes.GetTaskListExpediente(false).subscribe(result => {
|
this.processes.GetTaskListExpediente(false).subscribe(result => {
|
||||||
|
|
||||||
|
|
||||||
const ExpedienteTask = result.map( e=> this.expedienteTaskPipe.transform(e))
|
const ExpedienteTask = result.map( e=> this.expedienteTaskPipe.transform(e))
|
||||||
|
|
||||||
|
|||||||
@@ -366,7 +366,7 @@ export class EditEventPage implements OnInit {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
if(this.sesseionStora.user.Profile == 'MDGPR' || this.sesseionStora.user.Profile == 'PR') {
|
if(this.sesseionStora.user.Profile == 'MDGPR' || this.sesseionStora.user.Profile == 'PR') {
|
||||||
await this.eventsService.editEvent(this._postEvent, 2, 3).toPromise()
|
await this.eventsService.editEvent(this._postEvent, 2, 3, this._postEvent.CalendarId).toPromise()
|
||||||
if(this.initCalendarName != this._postEvent.CalendarName) {
|
if(this.initCalendarName != this._postEvent.CalendarName) {
|
||||||
let body = {
|
let body = {
|
||||||
"EventId": this._postEvent.EventId,
|
"EventId": this._postEvent.EventId,
|
||||||
@@ -380,6 +380,7 @@ export class EditEventPage implements OnInit {
|
|||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
this.httpErrorHandle.httpsSucessMessagge('Editar evento')
|
this.httpErrorHandle.httpsSucessMessagge('Editar evento')
|
||||||
} else {
|
} else {
|
||||||
|
console.log(this._postEvent, 2, 3, this._postEvent.CalendarId)
|
||||||
await this.eventsService.editEvent(this._postEvent, 2, 3, this._postEvent.CalendarId).toPromise()
|
await this.eventsService.editEvent(this._postEvent, 2, 3, this._postEvent.CalendarId).toPromise()
|
||||||
if(this.initCalendarName != this._postEvent.CalendarName) {
|
if(this.initCalendarName != this._postEvent.CalendarName) {
|
||||||
let body = {
|
let body = {
|
||||||
@@ -542,7 +543,7 @@ export class EditEventPage implements OnInit {
|
|||||||
SourceName: data.selected.Assunto,
|
SourceName: data.selected.Assunto,
|
||||||
ParentId: this._postEvent.EventId,
|
ParentId: this._postEvent.EventId,
|
||||||
SourceId: data.selected.Id,
|
SourceId: data.selected.Id,
|
||||||
Stakeholders: data.selected.Stakeholders | data.selected.EntidadeOrganicaNome,
|
Stakeholders: data.selected.EntidadeOrganicaNome | data.selected.Stakeholders,
|
||||||
ApplicationId: data.selected.ApplicationType.toString(),
|
ApplicationId: data.selected.ApplicationType.toString(),
|
||||||
CreateDate: data.selected.Data,
|
CreateDate: data.selected.Data,
|
||||||
Id: 'add',
|
Id: 'add',
|
||||||
@@ -590,13 +591,13 @@ export class EditEventPage implements OnInit {
|
|||||||
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
||||||
this.postEvent.StartDate = this.setAlldayTime(this.postEvent.StartDate)
|
this.postEvent.StartDate = this.setAlldayTime(this.postEvent.StartDate)
|
||||||
this.postEvent.EndDate = this.setAlldayTimeEndDate(this.postEvent.EndDate)
|
this.postEvent.EndDate = this.setAlldayTimeEndDate(this.postEvent.EndDate)
|
||||||
|
|
||||||
console.log('Recurso ativado!!');
|
console.log('Recurso ativado!!');
|
||||||
} else {
|
} else {
|
||||||
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
||||||
this.postEvent.EndDate = this.setAlldayTimeEndDateNotAlday(this.postEvent.EndDate)
|
this.postEvent.EndDate = this.setAlldayTimeEndDateNotAlday(this.postEvent.EndDate)
|
||||||
console.log('Recurso desativado');
|
console.log('Recurso desativado');
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -213,7 +213,7 @@
|
|||||||
{{last ? scrollToBottom() : ''}}
|
{{last ? scrollToBottom() : ''}}
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="msg.t == 'au' && msg.msg != sessionStore.user.UserName">
|
<div *ngIf="msg.t == 'au' && msg.msg != sessionStore.user.UserName">
|
||||||
<div *ngFor="let user of allUsers">
|
<div *ngFor="let user of ChatSystemService.users">
|
||||||
<div *ngIf="msg.msg == user.username" class="info-text-leave">
|
<div *ngIf="msg.msg == user.username" class="info-text-leave">
|
||||||
<ion-label>Adicionou {{user.name}}</ion-label><br />
|
<ion-label>Adicionou {{user.name}}</ion-label><br />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
|
|||||||
loggedUser: any;
|
loggedUser: any;
|
||||||
message: any;
|
message: any;
|
||||||
messages: any;
|
messages: any;
|
||||||
allUsers: any[] = [];
|
|
||||||
documents: SearchList[] = [];
|
documents: SearchList[] = [];
|
||||||
|
|
||||||
room: any = new Array();
|
room: any = new Array();
|
||||||
@@ -333,12 +332,18 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
|
|||||||
|
|
||||||
async getChatMembers() {
|
async getChatMembers() {
|
||||||
|
|
||||||
this.chatService.getAllUsers().subscribe(res => {
|
// this.chatService.getAllUsers().subscribe(res => {
|
||||||
//
|
// //
|
||||||
|
|
||||||
|
// this.allUsers = res['users']
|
||||||
|
// //
|
||||||
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
if(this.ChatSystemService.users.length == 0) {
|
||||||
|
this.ChatSystemService.getUser()
|
||||||
|
}
|
||||||
|
|
||||||
this.allUsers = res['users']
|
|
||||||
//
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
openGroupContactsPage() {
|
openGroupContactsPage() {
|
||||||
|
|||||||
@@ -226,13 +226,14 @@ export class PublicationFromMvService {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
await this.publications.CreatePublication(publication.ProcessId, publication).toPromise()
|
const publicationsId = await this.publications.CreatePublication(publication.ProcessId, publication).toPromise()
|
||||||
|
|
||||||
this.httpErroHandle.httpsSucessMessagge('Criar publicação')
|
this.httpErroHandle.httpsSucessMessagge('Criar publicação')
|
||||||
|
|
||||||
// this.goBackToViewPublications.emit();
|
// this.goBackToViewPublications.emit();
|
||||||
window['upload-header-set-remove'](this.id);
|
window['upload-header-set-remove'](this.id);
|
||||||
this.doneUpload()
|
this.doneUpload()
|
||||||
this.publicationFolderService.getPublicationsIds(this.folderId)
|
this.publicationFolderService.loadPublication(publicationsId, this.folderId)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
window['upload-header-set-retry'](this.id)
|
window['upload-header-set-retry'](this.id)
|
||||||
this.httpErroHandle.httpStatusHandle(error)
|
this.httpErroHandle.httpStatusHandle(error)
|
||||||
|
|||||||
@@ -43,13 +43,13 @@
|
|||||||
<ion-card-content>
|
<ion-card-content>
|
||||||
|
|
||||||
<div style="width: 100%; height: 395px;">
|
<div style="width: 100%; height: 395px;">
|
||||||
<app-swiper
|
<app-swiper
|
||||||
[publicationList]=publication
|
[publicationList]=publication
|
||||||
[navigation]="true"
|
[navigation]="true"
|
||||||
[pagination]="false"
|
[pagination]="false"
|
||||||
></app-swiper>
|
></app-swiper>
|
||||||
</div>
|
</div>
|
||||||
<!--
|
<!--
|
||||||
<swiper-container [config]="swiperThumbsConfig" [modules]="swiperModules" [speed]=400 navigation="true" [pagination]="{clickable: true, dynamicBullets: true }">
|
<swiper-container [config]="swiperThumbsConfig" [modules]="swiperModules" [speed]=400 navigation="true" [pagination]="{clickable: true, dynamicBullets: true }">
|
||||||
<swiper-slide *ngFor="let files of publication.Files let k = index" class="centered-slide">
|
<swiper-slide *ngFor="let files of publication.Files let k = index" class="centered-slide">
|
||||||
<div class="cool">
|
<div class="cool">
|
||||||
|
|||||||
@@ -184,15 +184,13 @@ export class PublicationFolderService {
|
|||||||
let a: any = Object.assign({}, this.publicationList[folderId][findIndex])
|
let a: any = Object.assign({}, this.publicationList[folderId][findIndex])
|
||||||
let b: any = Object.assign({}, publicationDetails)
|
let b: any = Object.assign({}, publicationDetails)
|
||||||
|
|
||||||
a.Files = a.Files.length
|
const fileNamesB = a.Files.map((e) => e.OriginalFileName).join('')
|
||||||
b.Files = b.Files.length
|
const fileNamesL = b.Files.map((e) => e.OriginalFileName).join('')
|
||||||
|
|
||||||
if (JSON.stringify(a) != JSON.stringify(b)) {
|
if (a.Message != b.Message || a.Title != b.Title || a.Files.length != b.Files.length || fileNamesB != fileNamesL) {
|
||||||
|
|
||||||
console.log({a, b})
|
console.log({a, b})
|
||||||
this.publicationList[folderId][findIndex] = publicationDetails
|
this.publicationList[folderId][findIndex] = publicationDetails
|
||||||
} else {
|
|
||||||
// console.log({publicationDetails})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ import { environment as oaprProd } from './suport/oapr'
|
|||||||
import { DevDev } from './suport/dev'
|
import { DevDev } from './suport/dev'
|
||||||
|
|
||||||
|
|
||||||
export const environment: Environment = oaprProd;
|
export const environment: Environment = DevDev;
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
"folders": [
|
"folders": [
|
||||||
{
|
{
|
||||||
"path": "."
|
"path": "."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "../testAu"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"settings": {
|
"settings": {
|
||||||
|
|||||||
Reference in New Issue
Block a user