pull made

This commit is contained in:
Eudes Inácio
2023-08-15 18:10:45 +01:00
21 changed files with 196 additions and 234 deletions
+2 -62
View File
@@ -376,7 +376,7 @@ td.monthview-primary-with-event {
.calendar-tool-tip{
padding: 30px 10px 20px 10px;
padding: 37px 10px 20px 10px;
//border: 1px solid orange;
}
@@ -962,7 +962,7 @@ $font-size: rem(15);
position: absolute;
float: right;
right: 15px;
top: 1px;
top: 4px;
background: transparent;
color: transparent;
@@ -1037,66 +1037,6 @@ $font-size: rem(15);
}
@media only screen and (min-width: 398px) {
.week-5 {
.calendar-title-container {
font-size: 16px;
}
.height-75 {
height: 75px;
}
.height-356 {
height: 323px;
}
}
.week-6 {
.calendar-title-container {
font-size: 16px;
}
.height-75 {
height: 75px;
}
.height-356 {
height: 371px;
}
}
}
@media only screen and (min-width: 415px) {
.week-5 {
.calendar-title-container {
font-size: 16px;
}
.height-75 {
height: 75px;
}
.height-356 {
height: 319px;
}
}
.week-6 {
.calendar-title-container {
font-size: 16px;
}
.height-75 {
height: 75px;
}
.height-356 {
height: 360px;
}
}
}
@media only screen and (min-width: 500px) {
.week-5 {
.calendar-title-container {
+4
View File
@@ -235,6 +235,10 @@ export class AgendaPage implements OnInit {
this.tigerUpdate()
window['reloadCalendar'] = () => {
this.reloadCalendar()
}
}
@@ -353,6 +353,10 @@ export class EditEventPage implements OnInit {
if(this.sesseionStora.user.Profile == 'MDGPR' || this.sesseionStora.user.Profile == 'PR') {
this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => {
if(window['reloadCalendar']) {
window['reloadCalendar']()
}
if(this.initCalendarName != this.postEvent.CalendarName) {
let body = {
@@ -375,6 +379,10 @@ export class EditEventPage implements OnInit {
} else {
this.eventsService.editEvent(this.postEvent, 2, 3, this.postEvent.CalendarId).subscribe(async () => {
if(window['reloadCalendar']) {
window['reloadCalendar']()
}
if(this.initCalendarName != this.postEvent.CalendarName) {
let body = {
@@ -23,6 +23,7 @@ import { ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatSelectModule } from '@angular/material/select';
import { NgxMatMomentModule } from '@angular-material-components/moment-adapter';
import { MatDialogModule } from '@angular/material/dialog';
@NgModule({
imports: [
@@ -30,6 +31,7 @@ import { NgxMatMomentModule } from '@angular-material-components/moment-adapter'
FormsModule,
IonicModule,
NewEventPageRoutingModule,
//
MatDatepickerModule,
MatInputModule,
MatNativeDateModule,
@@ -39,7 +41,8 @@ import { NgxMatMomentModule } from '@angular-material-components/moment-adapter'
NgxMatMomentModule,
MatSelectModule,
MatButtonModule,
ReactiveFormsModule
ReactiveFormsModule,
MatDialogModule,
],
declarations: [NewEventPage]
})
@@ -129,11 +129,9 @@
>
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1" ></mat-datepicker-toggle>
<ngx-mat-datetime-picker #picker1
[showSpinners]="showSpinners"
[showSeconds]="showSeconds"
[stepHour]="stepHour" [stepMinute]="stepMinute"
[stepSecond]="stepSecond"
[touchUi]="touchUi"
[stepHour]="15" [stepMinute]="15"
>
</ngx-mat-datetime-picker>
</mat-form-field>
@@ -162,10 +160,8 @@
>
<mat-datepicker-toggle id="new-fim" matSuffix [for]="fim" ></mat-datepicker-toggle>
<ngx-mat-datetime-picker #fim
[showSpinners]="showSpinners"
[showSeconds]="showSeconds"
[stepHour]="stepHour" [stepMinute]="stepMinute"
[stepSecond]="stepSecond"
[stepHour]="15" [stepMinute]="15"
>
</ngx-mat-datetime-picker>
</mat-form-field>
@@ -147,18 +147,37 @@ export class GroupContactsPage implements OnInit {
this.modalController.dismiss();
}
onChange(event){
onChange(event) {
this.textSearch = event.detail.value;
this.users = this.contacts.filter( e => e.name.toLowerCase().includes(this.textSearch.toLowerCase())).sort((a,b) => {
if(a.name < b.name){
const users = this.contacts.filter( e => e.name.toLowerCase().includes(this.textSearch.toLowerCase())).sort((a,b) => {
if(a.name < b.name) {
return -1;
}
if(a.name > b.name){
if(a.name > b.name) {
return 1;
}
return 0;
});
const selectedUsers = this.users.filter( e => e?.isChecked == true)
users.forEach( (user, index) => {
if(user[index]) {
console.log({user, index})
const isCheck = selectedUsers.find( e => e._id == user._id)?.isChecked
if(isCheck) {
user[index].isChecked = isCheck
}
// if(user[index].isChecked) {
// console.log('user[index].isChecked', user[index].isChecked)
// }
}
})
this.users = users
}
@@ -24,16 +24,16 @@
</ion-header>
<ion-content>
<ion-progress-bar class="position-absolute" type="indeterminate" *ngIf="loading"></ion-progress-bar>
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<ion-refresher-content>
</ion-refresher-content>
</ion-refresher>
<div class="main-content">
<ion-progress-bar class="position-absolute" type="indeterminate" *ngIf="loading"></ion-progress-bar>
<ion-virtual-scroll [items]="userList" approxItemHeight="70px" [headerFn]="separateLetter">
<div class="item-divider" *virtualHeader="let header">
<ion-label>{{header}}</ion-label>
</div>
@@ -95,9 +95,13 @@ export class ContactsPage implements OnInit {
}
this.chatService.createRoom(body).subscribe(async(res) => {
this.room = res['room'];
await this.ChatSystemService.getAllRooms();
this.getDirectMessage(this.room._id);
this.loading = false
this.ChatSystemService.getAllRooms(() => {
this.getDirectMessage(this.room._id);
this.loading = false
}, this.room._id);
}, ()=> {
this.loading = false
});
@@ -1,15 +1,15 @@
<ion-content>
<div class="content-container d-flex flex-column">
<div class="title-content width-100">
<div class="div-title">
<div class="title-content width-100 ">
<div class="div-title padding">
<ion-label class="title">{{publicationTitle}}</ion-label> <br>
<i style="margin-top: -3px; font-size: 15px;" > Campos marcados com * são obrigatórios</i>
</div>
</div>
<div class="overflow-y-auto">
<div class="overflow-y-auto padding">
<div *ngIf="publicationType!='1'" class="ion-item-container" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom ">
<ion-input autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="pub.Title" name="title" ngDefaultControl placeholder="Título*" ></ion-input>
</div>
@@ -25,41 +25,39 @@
</div>
</div>
<div *ngIf="capturedImage != '' " class="ion-item-container-no-border">
<ion-label class="attached-title">Fotografia Anexada </ion-label>
<div *ngIf="capturedImage != '' " class="ion-item-container-no-border mb-20">
<ion-label class="attached-title pb-10">Fotografia Anexada</ion-label>
<ion-item lines="none">
<ion-thumbnail slot="start">
<div class="d-flex justify-content-between">
<div class="d-flex">
<ion-thumbnail slot="start">
<ion-img [(ngModel)]="capturedImage" name="image" ngDefaultControl [src]="capturedImage" (click)="imageSize(capturedImage)" ></ion-img>
<ion-row>
<ion-col>
<img src="" #imageElement/>
</ion-col>
</ion-row>
</ion-thumbnail>
<ion-label>
<p>{{capturedImageTitle}}</p>
<p hidden>size</p>
</ion-label>
<div (click)="clear()">
</ion-thumbnail>
<ion-label class="pl-10">
<p>{{capturedImageTitle}}</p>
<p hidden>size</p>
</ion-label>
</div>
<div class="font-25" (click)="clear()">
<ion-icon name="close"></ion-icon>
</div>
</ion-item>
</div>
</div>
<div class="picture d-flex pb-5 hide-desktop" *ngIf="!( publication.FileBase64 == 'data:image/jpg;base64,null' || publication.FileBase64 == '' )">
<div class="picture d-flex pb-5 hide-desktop" *ngIf="publication && !( publication.FileBase64 == 'data:image/jpg;base64,null' || publication.FileBase64 == '' ) && !capturedImage">
<div class="post-img" *ngIf="publication.FileBase64">
<img src="{{publication.FileBase64}}" alt="image" >
</div>
<div class="d-flex flex-column pl-10" *ngIf="publication.FileBase64">
<div class="picture-file-name">{{publication.OriginalFileName}}.{{publication.FileExtension}}</div>
<div class="size">75 Kb</div>
<!-- <div class="size">75 Kb</div> -->
</div>
<div class="flex-grow-1 d-flex align-center justify-end" *ngIf="publication.FileBase64">
<div style="color: red;">X</div>
<div class="flex-grow-1 d-flex align-center justify-end font-25" *ngIf="publication.FileBase64" (click)="deletePublicationImage()">
<ion-icon name="close"></ion-icon>
</div>
</div>
@@ -101,10 +99,7 @@
</button>
</ion-buttons>
<ion-buttons slot="end">
<button *ngIf="publicationType == '2' || publicationType == '1'" class="btn-ok" fill="clear" color="#fff" (click)="save()">
<ion-label>Criar</ion-label>
</button>
<button *ngIf="publicationType == '3'" class="btn-ok" fill="clear" color="#fff" (click)="save()">
<button class="btn-ok" fill="clear" color="#fff" (click)="save()">
<ion-label>Gravar</ion-label>
</button>
</ion-buttons>
@@ -55,9 +55,11 @@ ion-toolbar{
background: #ffffff;
height: 100%;
box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.6);
padding: 25px 20px 0 20px;
overflow: auto;
}
.padding{
padding: 25px 20px 0 20px;
}
.title-content{
margin: 0px auto;
padding: 0 !important;
@@ -125,6 +125,7 @@ export class NewPublicationPage implements OnInit {
this.convertBlobToBase64Worker.postMessage(blob);
this.convertBlobToBase64Worker.onmessage = async (oEvent)=> {
this.capturedImage = oEvent.data
this.capturedImageTitle = 'foto'
}
}
@@ -186,6 +187,7 @@ export class NewPublicationPage implements OnInit {
this.convertBlobToBase64Worker.postMessage(blob);
this.convertBlobToBase64Worker.onmessage = async (oEvent)=> {
this.capturedImage = oEvent.data
this.capturedImageTitle = 'foto'
}
@@ -357,6 +359,7 @@ export class NewPublicationPage implements OnInit {
}
clear() {
this.capturedImageTitle = '';
this.capturedImage = '';
}
@@ -375,30 +378,6 @@ export class NewPublicationPage implements OnInit {
}
}
/* async openGallery() {
const modal = await this.modalController.create({
component: GalleryPage,
componentProps:{
},
cssClass: 'new-publication',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
} */
/* async takePicture(){
const image = await Plugins.Camera.getPhoto({
quality: 100,
allowEditing: false,
resultType: CameraResultType.DataUrl,
source: CameraSource.Camera
});
this.photo = this.sanitizer.bypassSecurityTrustResourceUrl(image && (image.dataUrl));
} */
async selectImage() {
const image = await Camera.getPhoto({
quality: 90,
@@ -453,26 +432,6 @@ export class NewPublicationPage implements OnInit {
});
await loading.present();
/* Filesystem.readdir({
path: `${IMAGE_DIR}/${fileName}`,
directory: Directory.Data,
}).then(result => {
let lastphoto = result.files[result.files.length - 1]
this.loadFileData(lastphoto);
},
async (err) => {
// Folder does not yet exists!
await Filesystem.mkdir({
path: IMAGE_DIR,
directory: Directory.Data,
recursive: true
});
}
).then(_ => {
loading.dismiss();
}); */
}
async loadFileData(fileName: string) {
@@ -506,22 +465,6 @@ export class NewPublicationPage implements OnInit {
}
/* compressImage() {
let image = this.capturedImage;
this.imageCompress.compressFile(image, orientation, 50, 50,).then(() => {
this.imgResultBeforeCompress = image;
this.imageCompress.compressFile(image, orientation, 50, 50).then(
result => {
this.imgResultAfterCompress = result;
}
);
})
} */
compressFile() {
//this.imgResultBeforeCompress = image;s
@@ -538,5 +481,7 @@ export class NewPublicationPage implements OnInit {
}
deletePublicationImage() {
this.publication.FileBase64 = ""
}
}
+7 -1
View File
@@ -199,7 +199,7 @@ export class ChatSystemService {
}
}
async getAllRooms () {
async getAllRooms (callback:Function = () =>{} , roomIdCallback = "") {
this.loadingWholeList = true
var rooms;
@@ -295,7 +295,13 @@ export class ChatSystemService {
rooms.result.update[index]['membersExcludeMe'] = users
await this.prepareRoom(roomData);
}
}
if(roomId == roomIdCallback) {
callback()
}
index++;
}
-3
View File
@@ -108,9 +108,6 @@ export class TaskService {
return false
}
const deadline = new Date(isoDateString)
const plusOneDeadline = deadline.getDate() + 1
deadline.setDate(plusOneDeadline)
return momentG(new Date(), 'dd MMMM yyyy') == momentG(new Date(isoDateString), 'dd MMMM yyyy')
}
@@ -235,20 +235,39 @@ export class GroupContactsPage implements OnInit {
}
}
onChange(event){
onChange(event) {
this.textSearch = event.detail.value;
this.users = this.contacts.filter( e => e.name.toLowerCase().includes(this.textSearch.toLowerCase())).sort((a,b) => {
if(a.name < b.name){
const users: any[] = this.contacts.filter( e => e.name.toLowerCase().includes(this.textSearch.toLowerCase())).sort((a,b) => {
if(a.name < b.name) {
return -1;
}
if(a.name > b.name){
if(a.name > b.name) {
return 1;
}
return 0;
});
const selectedUsers = this.users.filter( e => e?.isChecked == true)
users.forEach( (user, index) => {
if(user[index]) {
console.log({user, index})
const isCheck = selectedUsers.find( e => e._id == user._id)?.isChecked
if(isCheck) {
user[index].isChecked = isCheck
}
// if(user[index].isChecked) {
// console.log('user[index].isChecked', user[index].isChecked)
// }
}
})
this.users = users
// console.log('this.users', this.users)
}
clicked(){
@@ -22,7 +22,6 @@
</ion-header>
<ion-content>
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<!-- <ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar> -->
<ion-refresher-content>
@@ -30,7 +29,7 @@
</ion-refresher>
<div class="main-content">
<ion-progress-bar class="position-absolute" type="indeterminate" *ngIf="loading"></ion-progress-bar>
<ion-virtual-scroll [items]="userList" approxItemHeight="70px" [headerFn]="separateLetter">
<div class="item-divider" *virtualHeader="let header">
@@ -21,6 +21,7 @@ export class ContactsPage implements OnInit {
room:any;
dm:any;
sessionStore = SessionStore
loading = false
@Input() roomId: string;
@Output() openMessage:EventEmitter<any> = new EventEmitter<any>();
@@ -67,10 +68,19 @@ export class ContactsPage implements OnInit {
let body = {
username: username,
}
this.loading = true
this.chatService.createRoom(body).subscribe(res => {
this.ChatSystemService.getAllRooms();
this.room = res['room'];
this.openMessage.emit(this.room._id);
this.ChatSystemService.getAllRooms(() => {
this.openMessage.emit(this.room._id);
this.loading = false
}, this.room._id);
}, ()=> {
this.loading = false
});
}
}
@@ -1,5 +1,5 @@
<ion-content class="container width-100 header-fix">
<div *ngIf="content == ''" class="buttons">
<ion-content class="container width-100 ">
<div *ngIf="content == ''" class="buttons header-fix">
<button (click)="openExpedientActionsModal('0')" class="btn-cancel" shape="round" >Efetuar Despacho</button>
<div class="solid"></div>
<button (click)="openExpedientActionsModal('1')" class="btn-cancel" shape="round" >Solicitar Parecer</button>
@@ -7,7 +7,7 @@
<button (click)="openBookMeetingModal()" class="btn-cancel" shape="round" >Marcar Reunião</button>
<button class="btn-cancel" shape="round" (click)="close()">Cancelar</button>
</div>
<div *ngIf="content != ''" class="buttons">
<div *ngIf="content != ''" class="buttons header-fix">
<!-- <button (click)="save(Document, content)" class="btn-cancel" shape="round" >Salvar</button> -->
<button (click)="saveDraft(Document, content)" class="btn-cancel" shape="round" >Salvar Rascunho</button>
<button class="btn-cancel" shape="round" (click)="close()">Cancelar</button>
@@ -29,39 +29,47 @@
</div>
<!-- Captured -->
<!-- Captured -->
<div class="ion-item-container-no-border" *ngIf="capturedImage">
<ion-label class="attached-title">Fotografia Anexada</ion-label>
<ion-item lines="none" >
<ion-thumbnail slot="start">
<ion-img [(ngModel)]="capturedImage" name="image" ngDefaultControl [src]="capturedImage"></ion-img>
</ion-thumbnail>
<ion-label>
<p>{{capturedImageTitle}}</p>
<p hidden>size</p>
</ion-label>
<ion-label class="attached-title pb-10">Fotografia Anexada</ion-label>
<div class="d-flex justify-content-between">
<div class="d-flex">
<ion-thumbnail slot="start">
<ion-img [(ngModel)]="capturedImage" name="image" ngDefaultControl [src]="capturedImage"></ion-img>
</ion-thumbnail>
<ion-label class="pl-10">
<p>{{capturedImageTitle}}</p>
<p hidden>size</p>
</ion-label>
</div>
<button class="btn-no-color" (click)="clear()">
<ion-icon name="close"></ion-icon>
</button>
</ion-item>
</div>
</div>
<!-- Current -->
<div class="ion-item-container-no-border mb-20" *ngIf="publication && !( publication.FileBase64 == 'data:image/jpg;base64,null' || publication.FileBase64 == '' ) && !capturedImage">
<!-- <ion-label class="attached-title pb-10">Fotografia Anexada</ion-label> -->
<div class="d-flex justify-content-between">
<div class="d-flex">
<ion-thumbnail slot="start">
<ion-img [(ngModel)]="publication.FileBase64" name="image" ngDefaultControl [src]="publication.FileBase64"></ion-img>
</ion-thumbnail>
<ion-label class="pl-10">
<p>{{publication.OriginalFileName}}.{{publication.FileExtension}}</p>
<p hidden>size</p>
</ion-label>
</div>
<button class="btn-no-color" (click)="deletePublicationImage()" >
<ion-icon name="close"></ion-icon>
</button>
</div>
</div>
<!-- current image -->
<div class="picture d-flex pb-5 hide-desktop" *ngIf="!( publication.FileBase64 == 'data:image/jpg;base64,null' || publication.FileBase64 == '' )" >
<div class="post-img">
<img src="{{publication.FileBase64}}" alt="image" >
</div>
<div class="d-flex flex-column pl-10">
<div class="picture-file-name">{{publication.OriginalFileName}}.{{publication.FileExtension}}</div>
<div class="size">75 Kb</div>
</div>
<div class="flex-grow-1 d-flex align-center justify-end">
<div style="color: red;">X</div>
</div>
</div>
<div class="ion-item-container-no-border hide-desktop">
<ion-label (click)="takePicture()">
@@ -99,7 +107,7 @@
</ion-buttons>
<ion-buttons slot="end">
<button class="btn-ok" fill="clear" color="#fff" (click)="save()">
<ion-label>Criar</ion-label>
<ion-label>Gravar</ion-label>
</button>
</ion-buttons>
</ion-toolbar>
@@ -93,7 +93,7 @@ export class NewPublicationPage implements OnInit {
});
this.capturedImage = 'data:image/jpeg;base64,' +capturedImage.base64String;
this.capturedImageTitle = capturedImage.path;
this.capturedImageTitle = 'foto';
//
}
@@ -105,7 +105,7 @@ export class NewPublicationPage implements OnInit {
});
this.capturedImage = 'data:image/jpeg;base64,' +capturedImage.base64String;
this.capturedImageTitle = capturedImage.path;
this.capturedImageTitle = 'foto';
}
@@ -272,10 +272,15 @@ export class NewPublicationPage implements OnInit {
this.goBack();
}
clear(){
clear() {
this.capturedImageTitle = '';
this.capturedImage = '';
}
deletePublicationImage() {
this.publication.FileBase64 = ""
}
setTitle(){
if(this.publicationType == '1') {
this.publicationTitle = 'Nova Publicação Rápida';
+10 -8
View File
@@ -1143,14 +1143,6 @@ background: rgb(92, 92, 92);
}
}
ngx-mat-datetime-content{
.actions {
.mat-button-disabled {
background-color: #ff5a5a59 !important;
}
}
}
// angular material inputs
@@ -1503,6 +1495,16 @@ ngx-mat-datetime-content .ngx-mat-timepicker {
ngx-mat-datetime-content .mat-input-element {
padding: 0px !important;
}
ngx-mat-datetime-content{
.actions {
.mat-button-disabled {
background-color: #ff5a5a59 !important;
}
}
}
pre {
font-family: 'Roboto' !important;
font-size: rem(16) !important;
+6 -6
View File
@@ -1,12 +1,12 @@
export let versionData = {
"shortSHA": "ae2701cbc",
"SHA": "ae2701cbcd02b0d0331f13927bc26d36d0752167",
"shortSHA": "61a2b78ee",
"SHA": "61a2b78eeca3ec5cfd5481cec2b5c5f36eb727ae",
"branch": "developer",
"lastCommitAuthor": "'Eudes Inácio'",
"lastCommitTime": "'Tue Aug 15 12:44:53 2023 +0100'",
"lastCommitMessage": "pull made",
"lastCommitNumber": "5160",
"lastCommitTime": "'Tue Aug 15 18:09:03 2023 +0100'",
"lastCommitMessage": "Search solved, aprove envent and remove from home the serviceworker",
"lastCommitNumber": "5161",
"change": "",
"changeStatus": "On branch developer\nYour branch is ahead of 'origin/developer' by 3 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/home/home.page.ts\n\tmodified: src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.html\n\tmodified: src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.scss\n\tmodified: src/app/pages/search/search.page.scss\n\tmodified: src/app/pages/search/search.page.ts\n\tmodified: version/git-version.ts",
"changeStatus": "On branch developer\nYour branch and 'origin/developer' have diverged,\nand have 4 and 7 different commits each, respectively.\n (use \"git pull\" to merge the remote branch into yours)\n\nAll conflicts fixed but you are still merging.\n (use \"git commit\" to conclude merge)\n\nChanges to be committed:\n\tmodified: src/app/pages/agenda/agenda.page.scss\n\tmodified: src/app/pages/agenda/agenda.page.ts\n\tmodified: src/app/pages/agenda/edit-event/edit-event.page.ts\n\tmodified: src/app/pages/agenda/new-event/new-event.module.ts\n\tmodified: src/app/pages/agenda/new-event/new-event.page.html\n\tmodified: src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts\n\tmodified: src/app/pages/chat/messages/contacts/contacts.page.html\n\tmodified: src/app/pages/chat/messages/contacts/contacts.page.ts\n\tmodified: src/app/pages/publications/new-publication/new-publication.page.html\n\tmodified: src/app/pages/publications/new-publication/new-publication.page.scss\n\tmodified: src/app/pages/publications/new-publication/new-publication.page.ts\n\tmodified: src/app/services/chat/chat-system.service.ts\n\tmodified: src/app/services/task.service.ts\n\tmodified: src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts\n\tmodified: src/app/shared/chat/messages/contacts/contacts.page.html\n\tmodified: src/app/shared/chat/messages/contacts/contacts.page.ts\n\tmodified: src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.html\n\tmodified: src/app/shared/publication/new-publication/new-publication.page.html\n\tmodified: src/app/shared/publication/new-publication/new-publication.page.ts\n\tmodified: src/global.scss",
"changeAuthor": "eudes.inacio"
}