mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-21 05:45:50 +00:00
Merge with chat/labe branch and display time on chat message baloom
This commit is contained in:
@@ -35,12 +35,13 @@
|
||||
<ion-label>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name">{{document.appName}}</span>
|
||||
<span class="app-name" *ngIf="!document.appName">{{ TaskService.attachmentAppName(document)}}</span>
|
||||
<span class="app-name" *ngIf="document.appName">{{document.appName}}</span>
|
||||
<span class="close-button text-black cursor-pointer" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
<p><span class="span-left">{{(document.EntidadeOrganicaNome || document.Sender)}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
@@ -3,7 +3,7 @@ import { AnimationController, ModalController, NavParams } from '@ionic/angular'
|
||||
import { SearchList } from 'src/app/models/search-document';
|
||||
import { SearchPage } from 'src/app/pages/search/search.page';
|
||||
import { ThemeService } from 'src/app/services/theme.service'
|
||||
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
@Component({
|
||||
selector: 'app-add-note',
|
||||
templateUrl: './add-note.page.html',
|
||||
@@ -20,7 +20,8 @@ export class AddNotePage implements OnInit {
|
||||
private modalController: ModalController,
|
||||
private animationController: AnimationController,
|
||||
private navParams: NavParams,
|
||||
public ThemeService: ThemeService
|
||||
public ThemeService: ThemeService,
|
||||
public TaskService: TaskService
|
||||
) {
|
||||
this.note = '';
|
||||
this.hideThisFeature = this.navParams.get('showAttachmentBtn');
|
||||
|
||||
@@ -146,6 +146,7 @@
|
||||
<ion-label>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name" *ngIf="!document.appName">{{ TaskService.attachmentAppName(document)}}</span>
|
||||
<span class="app-name" *ngIf="document.appName">{{document.appName}}</span>
|
||||
<span class="close-button text-black cursor-pointer" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
|
||||
@@ -22,7 +22,7 @@ import { fullTask } from 'src/app/models/dailyworktask.model';
|
||||
import { ThemeService } from 'src/app/services/theme.service'
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
|
||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||
parse: {
|
||||
@@ -99,7 +99,8 @@ export class CreateProcessPage implements OnInit {
|
||||
private despachoService: DespachoService,
|
||||
private pedidoService: PedidoService,
|
||||
public ThemeService: ThemeService,
|
||||
private httpsErrorHanlde: HttpErrorHandle
|
||||
private httpsErrorHanlde: HttpErrorHandle,
|
||||
public TaskService: TaskService
|
||||
) {
|
||||
this.loggeduser = SessionStore.user;
|
||||
this.task = this.navParams.get('task');
|
||||
@@ -357,7 +358,9 @@ export class CreateProcessPage implements OnInit {
|
||||
|
||||
try {
|
||||
if (this.task.activityInstanceName == 'Tarefa de Despacho' || this.task.activityInstanceName == 'Reexecutar Despacho') {
|
||||
// create parecer
|
||||
await this.despachoService.createParecer(this.postData).toPromise();
|
||||
// task complete
|
||||
await this.despachoService.solicitarParecer({ note: this.postData.DispatchFolder.Message, serialnumber: this.task.serialNumber, activityInstanceName: this.task.activityInstanceName }).toPromise();
|
||||
} else {
|
||||
|
||||
|
||||
@@ -40,12 +40,13 @@
|
||||
<ion-label>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name">{{document.appName}}</span>
|
||||
<span class="app-name" *ngIf="!document.appName">{{ TaskService.attachmentAppName(document)}}</span>
|
||||
<span class="app-name" *ngIf="document.appName">{{document.appName}}</span>
|
||||
<span class="close-button text-black" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
<p><span class="span-left">{{(document.EntidadeOrganicaNome || document.Sender)}}</span><span class="span-right"> {{(document.Data || document.DocDate) | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
@@ -6,6 +6,7 @@ import { ProcessesService } from 'src/app/services/processes.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { ThemeService } from 'src/app/services/theme.service';
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
|
||||
@Component({
|
||||
selector: 'app-dar-parecer',
|
||||
@@ -25,7 +26,8 @@ export class DarParecerPage implements OnInit {
|
||||
private animationController: AnimationController,
|
||||
private toastService: ToastService,
|
||||
public ThemeService: ThemeService,
|
||||
private httpErroHanlde: HttpErrorHandle
|
||||
private httpErroHanlde: HttpErrorHandle,
|
||||
public TaskService: TaskService
|
||||
) {
|
||||
this.serialNumber = this.navParams.get('serialNumber');
|
||||
this.instanceId = this.navParams.get('ProcessInstanceID');
|
||||
|
||||
@@ -62,12 +62,13 @@
|
||||
<ion-label>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name">{{document.appName}}</span>
|
||||
<span class="app-name" *ngIf="!document.appName">{{ TaskService.attachmentAppName(document)}}</span>
|
||||
<span class="app-name" *ngIf="document.appName">{{document.appName}}</span>
|
||||
<span class="close-button text-black cursor-pointer" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
<p><span class="span-left">{{(document.EntidadeOrganicaNome || document.Sender)}}</span><span class="span-right"> {{(document.Data || document.DocDate) | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
@@ -11,7 +11,7 @@ import { SearchList } from 'src/app/models/search-document';
|
||||
import { SearchPage } from 'src/app/pages/search/search.page';
|
||||
import { ThemeService } from 'src/app/services/theme.service'
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
|
||||
@Component({
|
||||
selector: 'app-delegar',
|
||||
@@ -47,7 +47,8 @@ export class DelegarPage implements OnInit {
|
||||
public alertController: AlertController,
|
||||
private toastService: ToastService,
|
||||
public ThemeService: ThemeService,
|
||||
private httpErrorHandle: HttpErrorHandle
|
||||
private httpErrorHandle: HttpErrorHandle,
|
||||
public TaskService: TaskService
|
||||
) {
|
||||
this.task = this.navParams.get('task');
|
||||
this.postData = new Event();
|
||||
|
||||
@@ -192,7 +192,6 @@ export class DocumentDetailPage implements OnInit {
|
||||
componentProps: {
|
||||
taskAction: taskAction,
|
||||
task: this.DocumentTask,
|
||||
seachDocuments: this.LoadedDocument,
|
||||
aplicationId: this.LoadedDocument.ApplicationId || this.LoadedDocument.ApplicationID
|
||||
},
|
||||
cssClass: classs,
|
||||
|
||||
@@ -317,12 +317,13 @@
|
||||
<ion-label>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name" *ngIf="!document.appName">{{ TaskService.attachmentAppName(document)}}</span>
|
||||
<span class="app-name" *ngIf="document.appName">{{document.appName}}</span>
|
||||
<span class="close-button text-black" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{(document.Data ||document.DocDate) | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
<p><span class="span-left">{{(document.EntidadeOrganicaNome || document.Sender)}}</span><span class="span-right"> {{(document.Data ||document.DocDate) | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
@@ -21,6 +21,7 @@ import { ThemeService } from 'src/app/services/theme.service';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
import { environment } from 'src/environments/environment';
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
|
||||
|
||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||
@@ -109,7 +110,8 @@ export class DocumentSetUpMeetingPage implements OnInit {
|
||||
private eventService: EventService,
|
||||
public ThemeService: ThemeService,
|
||||
public _eventService: EventsService,
|
||||
private httpErroHandle: HttpErrorHandle
|
||||
private httpErroHandle: HttpErrorHandle,
|
||||
public TaskService: TaskService
|
||||
) {
|
||||
this.loggeduser = SessionStore.user;
|
||||
this.document = this.navParams.get('document')
|
||||
|
||||
@@ -33,7 +33,6 @@ export class ViewDocumentPage implements OnInit {
|
||||
private alertController: AlertController,
|
||||
) {
|
||||
this.file = this.navParams.get('file');
|
||||
console.log(this.file )
|
||||
this.applicationId = this.navParams.get('applicationId');
|
||||
this.docId = this.navParams.get('docId');
|
||||
this.Document = this.navParams.get('Document')
|
||||
@@ -45,6 +44,14 @@ export class ViewDocumentPage implements OnInit {
|
||||
this.file.title = 'Sem Título'
|
||||
}
|
||||
|
||||
console.log({
|
||||
file: this.file,
|
||||
applicationId: this.applicationId,
|
||||
docId: this.docId,
|
||||
Document: this.Document,
|
||||
task: this.task,
|
||||
attachment: this.attachment
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@@ -94,10 +101,8 @@ export class ViewDocumentPage implements OnInit {
|
||||
component: EventDetailsDocumentsOptionsPage,
|
||||
cssClass: 'model aside-modal search-submodal',
|
||||
componentProps: {
|
||||
fulltask: this.task,
|
||||
task: this.task,
|
||||
content: "",
|
||||
Document:this.Document
|
||||
content: "", // check
|
||||
Document:this.Document // check
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
@@ -127,11 +132,13 @@ export class ViewDocumentPage implements OnInit {
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
|
||||
// check passing
|
||||
const modal = await this.modalController.create({
|
||||
component: DocumentSetUpMeetingPage,
|
||||
componentProps: {
|
||||
subject: this.task.workflowInstanceDataFields.Subject,
|
||||
document: this.Document,
|
||||
subject: this.task.workflowInstanceDataFields.Subject, // check
|
||||
document: this.Document, // document
|
||||
},
|
||||
cssClass: classs,
|
||||
backdropDismiss: false
|
||||
@@ -156,13 +163,14 @@ export class ViewDocumentPage implements OnInit {
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
// check passing
|
||||
const modal = await this.modalController.create({
|
||||
component: ExpedientTaskModalPage,
|
||||
componentProps: {
|
||||
taskAction: taskAction,
|
||||
task: this.task,
|
||||
seachDocuments: this.Document,
|
||||
aplicationId: this.Document.ApplicationId || this.Document.ApplicationID
|
||||
taskAction: taskAction, // check
|
||||
task: this.task, // check
|
||||
document: this.Document, // nope
|
||||
aplicationId: this.Document.ApplicationId || this.Document.ApplicationID // check
|
||||
},
|
||||
cssClass: classs,
|
||||
});
|
||||
|
||||
@@ -2,10 +2,10 @@ export class Folder{
|
||||
Nad:number;
|
||||
Subject: string;
|
||||
Message:string;
|
||||
SourceSecFsId?:string;
|
||||
SourceSecFsId:string;
|
||||
SourceType:string;
|
||||
SourceId:string;
|
||||
DeadlineType: string;
|
||||
SubjectTypes: string[];
|
||||
NumberPDPP?:string;
|
||||
NumberPDPP:string;
|
||||
}
|
||||
@@ -288,7 +288,7 @@
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
<p><span class="span-left">{{(document.EntidadeOrganicaNome || document.Sender)}}</span><span class="span-right"> {{(document.Data || document.DocDate) | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
@@ -21,6 +21,7 @@ import { ChatMethodsService } from 'src/app/services/chat/chat-methods.service';
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
import { environment } from 'src/environments/environment';
|
||||
import { ProcessesService } from 'src/app/services/processes.service';
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
|
||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||
parse: {
|
||||
@@ -103,7 +104,8 @@ export class NewEventPage implements OnInit {
|
||||
private platform: Platform,
|
||||
private chatMethodService: ChatMethodsService,
|
||||
private hhtpErrorHandle: HttpErrorHandle,
|
||||
private processeService: ProcessesService
|
||||
private processeService: ProcessesService,
|
||||
public TaskService: TaskService
|
||||
) {
|
||||
this.loggeduser = SessionStore.user;
|
||||
this.postEvent = new Event();
|
||||
|
||||
@@ -52,8 +52,8 @@
|
||||
<ion-label>A conversa original mantêm-se como chat individual</ion-label>
|
||||
</div>
|
||||
<div class="messages-list-item-wrapper container-width-100" *ngFor="let msg of ChatSystemService.getGroupRoom(roomId).messages; let last = last" [class.messages-list-item-wrapper-active]="msg._id == selectedMsgId">
|
||||
<div class='message-container incoming-{{msg.u.username!=sessionStore.user.UserName}}' *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'au' && msg.t != 'ru' && msg.msg !=''" (press)="handlePress(msg._id)">
|
||||
<div class="title">
|
||||
<div class='message-container incoming-{{msg.u.username!=sessionStore.user.UserName}}' *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'au' && msg.t != 'ru' && msg.msg !=''" (press)="handlePress(msg._id)" [class.dateLabel]="msg.dateLabel">
|
||||
<div class="title" *ngIf="!msg.dateLabel">
|
||||
<ion-label>{{msg.u.name ?? ""}}</ion-label>
|
||||
<span class="time">{{msg.duration}}</span>
|
||||
</div>
|
||||
@@ -64,7 +64,7 @@
|
||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
@@ -102,7 +102,7 @@
|
||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
@@ -122,7 +122,7 @@
|
||||
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.attachments[0].type != 'webtrix' && !( msg.downloadLoader == true || msg.uploadingFile == true ) " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
|
||||
<ion-icon *ngIf="( msg.downloadLoader == true || msg.uploadingFile == true )" class="icon-download" src="assets/gif/theme/{{ThemeService.currentTheme}}/Blocks-loader.svg" slot="end"></ion-icon>
|
||||
|
||||
|
||||
|
||||
</ion-item>
|
||||
</div>
|
||||
<div *ngIf="msg.attachments[0].image_url">
|
||||
@@ -153,13 +153,13 @@
|
||||
<ion-label *ngIf="msg.file && msg.file != ''">
|
||||
<span *ngIf="file.description">{{file.description}}</span>
|
||||
<span *ngIf="file.description && msg.file.type != 'application/webtrix'"> • </span>
|
||||
|
||||
|
||||
</ion-label>
|
||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
|
||||
@@ -425,4 +425,13 @@ ion-footer {
|
||||
|
||||
.font-40-rem {
|
||||
font-size: 2.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.dateLabel {
|
||||
background: #ebebeb !important;
|
||||
float: unset !important;
|
||||
margin: 0px auto !important;
|
||||
width: 110px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -50,8 +50,8 @@
|
||||
*ngFor="let msg of ChatSystemService.getDmRoom(this.roomId).messages; let last = last"
|
||||
[class.messages-list-item-wrapper-active]="msg._id == selectedMsgId">
|
||||
<div (press)="handlePress(msg._id)" class='file message-container incoming-{{msg.u.username!=sessionStore.user.UserName}}'
|
||||
*ngIf="msg.msg !=''">
|
||||
<div class="title file">
|
||||
*ngIf="msg.msg !=''" [class.dateLabel]="msg.dateLabel">
|
||||
<div class="title file" *ngIf="!msg.dateLabel">
|
||||
<ion-label >{{msg.u.name}}</ion-label>
|
||||
<span class="time">{{msg.duration}}</span>
|
||||
</div>
|
||||
@@ -64,7 +64,7 @@
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
@@ -96,17 +96,17 @@
|
||||
</ion-item>
|
||||
</div>
|
||||
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image">
|
||||
|
||||
|
||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
<div *ngIf="msg.manualRetry" class="try pl-10" (click)="msg.send()">Tentar</div>
|
||||
</ion-label>
|
||||
|
||||
|
||||
</div>
|
||||
<div *ngIf="msg.file.type != 'application/img'">
|
||||
<div class="file add-attachment-bg-color" *ngIf="msg.file.type != 'application/audio'">
|
||||
@@ -159,20 +159,20 @@
|
||||
<ion-label *ngIf="msg.file && msg.file != ''">
|
||||
<span *ngIf="file.description">{{file.description}}</span>
|
||||
<span *ngIf="file.description && msg.file.type != 'application/webtrix'"> • </span>
|
||||
|
||||
|
||||
</ion-label>
|
||||
|
||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
<div *ngIf="msg.manualRetry" class="try pl-10" (click)="msg.send()">Tentar</div>
|
||||
</ion-label>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -406,4 +406,13 @@ button::-moz-focus-inner {
|
||||
|
||||
.font-40-rem {
|
||||
font-size: 2.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.dateLabel {
|
||||
background: #ebebeb !important;
|
||||
float: unset !important;
|
||||
margin: 0px auto !important;
|
||||
width: 110px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
+1
@@ -280,6 +280,7 @@
|
||||
<ion-label>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name" *ngIf="!document.appName">{{ TaskService.attachmentAppName(document)}}</span>
|
||||
<span class="app-name" *ngIf="document.appName">{{document.appName}}</span>
|
||||
<span class="close-button text-black" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
|
||||
+3
-2
@@ -22,7 +22,7 @@ import { SessionStore } from 'src/app/store/session.service';
|
||||
import { RoleIdService } from 'src/app/services/role-id.service';
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
import { environment } from 'src/environments/environment';
|
||||
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
|
||||
const moment = _rollupMoment || _moment;
|
||||
|
||||
@@ -124,7 +124,8 @@ export class BookMeetingModalPage implements OnInit {
|
||||
public ThemeService: ThemeService,
|
||||
public eventService: EventsService,
|
||||
public RoleIdService: RoleIdService,
|
||||
private httpErroHandle: HttpErrorHandle
|
||||
private httpErroHandle: HttpErrorHandle,
|
||||
public TaskService: TaskService
|
||||
|
||||
|
||||
) {
|
||||
|
||||
+3
-2
@@ -196,12 +196,13 @@
|
||||
<ion-label>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name">{{document.appName}}</span>
|
||||
<span class="app-name" *ngIf="!document.appName">{{ TaskService.attachmentAppName(document)}}</span>
|
||||
<span class="app-name" *ngIf="document.appName">{{document.appName}}</span>
|
||||
<span class="close-button text-black" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
<p><span class="span-left">{{(document.EntidadeOrganicaNome || document.Sender)}}</span><span class="span-right"> {{(document.Data || document.DocDate) | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
+33
-1
@@ -26,7 +26,7 @@ import { SessionStore } from 'src/app/store/session.service';
|
||||
import { PermissionService } from 'src/app/services/permission.service';
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
import { RouteService } from 'src/app/services/route.service';
|
||||
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
|
||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||
parse: {
|
||||
@@ -95,6 +95,7 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
Form: FormGroup;
|
||||
validateFrom = false;
|
||||
validateField = false;
|
||||
document: any
|
||||
|
||||
get toppingsValues() {
|
||||
return this.toppings.value;
|
||||
@@ -113,6 +114,7 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
public p: PermissionService,
|
||||
private httpErroHandle: HttpErrorHandle,
|
||||
private RouteService: RouteService,
|
||||
public TaskService: TaskService
|
||||
) {
|
||||
|
||||
this.loggeduser = SessionStore.user;
|
||||
@@ -122,9 +124,39 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
|
||||
this.SearchFolder = this.navParams.get('SearchFolder');
|
||||
this.aplicationId = this.navParams.get('aplicationId')
|
||||
this.document = this.navParams.get('document')
|
||||
|
||||
this.taskType = this.navParams.get('taskAction');
|
||||
|
||||
|
||||
if(this.document) {
|
||||
const doc: any = this.document
|
||||
|
||||
this.documents.push({
|
||||
ApplicationId: (doc.ApplicationType || doc.ApplicationId),
|
||||
ApplicationType: (doc.ApplicationType || doc.ApplicationId),
|
||||
SourceId: (doc.Id || doc.DocId || doc.SourceId),
|
||||
Id: (doc.Id || doc.DocId || doc.SourceId),
|
||||
EntidadeOrganicaNome: (doc.sender || doc.SourceName || doc. EntidadeOrganicaNome),
|
||||
Sender: (doc.sender || doc.SourceName || doc. EntidadeOrganicaNome),
|
||||
Data: (doc.DocDate || doc.Data),
|
||||
DocDate: (doc.DocDate || doc.Data),
|
||||
Assunto: doc.Assunto,
|
||||
} as any)
|
||||
}
|
||||
|
||||
|
||||
const DocumentToSave = this.documents.map((e) => {
|
||||
return {
|
||||
ApplicationId: e.ApplicationType,
|
||||
SourceId: e.Id
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
console.log('this.document', this.document)
|
||||
|
||||
|
||||
this.selectedTypes = ['99999850'];
|
||||
|
||||
this.postData = new Despacho();
|
||||
|
||||
@@ -47,7 +47,7 @@ export class MessageService {
|
||||
uploadingFile = false
|
||||
errorUploadingAttachment = false
|
||||
loadHistory = false
|
||||
from: 'Offline'|'History'|'stream'| 'send'
|
||||
from: 'Offline'|'History'|'stream'| 'send'
|
||||
duration = ''
|
||||
localReference = null
|
||||
viewed: string[] = []
|
||||
@@ -67,6 +67,8 @@ export class MessageService {
|
||||
messageModelInstance: MessageModel
|
||||
attachmentsModelData: any
|
||||
|
||||
dateLabel = false
|
||||
|
||||
|
||||
constructor(
|
||||
private NfService: NfService,
|
||||
@@ -177,7 +179,7 @@ export class MessageService {
|
||||
return firstName + ' ' + lastName
|
||||
} catch (error) {
|
||||
return username
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -193,9 +195,9 @@ export class MessageService {
|
||||
|
||||
if(!this.hasFile) {
|
||||
|
||||
const params = {
|
||||
roomId:this.rid,
|
||||
msg:this.msg,
|
||||
const params = {
|
||||
roomId:this.rid,
|
||||
msg:this.msg,
|
||||
localReference: this.localReference
|
||||
}
|
||||
|
||||
@@ -226,7 +228,7 @@ export class MessageService {
|
||||
this.RochetChatConnectorService.registerCallback({
|
||||
type: 'reConnect',
|
||||
funx: async ()=> {
|
||||
|
||||
|
||||
await this.send().catch((error) => {
|
||||
console.error(error)
|
||||
})
|
||||
@@ -257,10 +259,10 @@ export class MessageService {
|
||||
try {
|
||||
await this.getFileFromDB()
|
||||
} catch (error) {}
|
||||
}
|
||||
}
|
||||
|
||||
if(!this.instanceHasTemporaryData) {
|
||||
|
||||
|
||||
await this.generateTemporaryData()
|
||||
}
|
||||
|
||||
@@ -277,14 +279,14 @@ export class MessageService {
|
||||
this.saveChanges()
|
||||
} catch (error) {
|
||||
this.uploadingFile = false
|
||||
|
||||
|
||||
|
||||
this.errorUploadingAttachment = true
|
||||
this.UploadAttachmentsTemp++
|
||||
|
||||
this.saveChanges()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return uploadSuccessfully
|
||||
@@ -305,7 +307,7 @@ export class MessageService {
|
||||
(ChatMessage: any) => {
|
||||
ChatMessage = ChatMessage.message.result
|
||||
clearTimeout(this.functionTimer);
|
||||
|
||||
|
||||
this.redefinedMessage(ChatMessage)
|
||||
}
|
||||
).catch((error) => {
|
||||
@@ -320,16 +322,16 @@ export class MessageService {
|
||||
(ChatMessage: any) => {
|
||||
ChatMessage = ChatMessage.message.result
|
||||
clearTimeout(this.functionTimer);
|
||||
|
||||
|
||||
this.redefinedMessage(ChatMessage)
|
||||
|
||||
|
||||
}
|
||||
).catch((error) => {
|
||||
clearTimeout(this.functionTimer);
|
||||
console.error(error)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
this.functionTimer = setTimeout(() => {
|
||||
this.RochetChatConnectorService.registerCallback({
|
||||
type:'Onmessage',
|
||||
@@ -395,7 +397,7 @@ export class MessageService {
|
||||
this.notificationService.ChatSendMessageNotificationGrup(usersNames,ChatMessage.u.name,ChatMessage.msg,this.rid)
|
||||
}
|
||||
|
||||
|
||||
|
||||
await this.saveChanges()
|
||||
}
|
||||
|
||||
@@ -415,7 +417,7 @@ export class MessageService {
|
||||
} else if (this.file.type != "application/img") {
|
||||
|
||||
downloadFile = new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), '');
|
||||
|
||||
|
||||
}
|
||||
|
||||
this.attachments[0] = {
|
||||
@@ -462,7 +464,7 @@ export class MessageService {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -525,21 +527,21 @@ export class MessageService {
|
||||
}
|
||||
|
||||
earlySave = false
|
||||
|
||||
|
||||
async addMessageDB() {
|
||||
if(!this.addToDb && this.save) {
|
||||
this.addToDb = true
|
||||
const message = this.getChatObj()
|
||||
|
||||
if(this.instanceHasAttachment) {
|
||||
this.hasFile = true
|
||||
this.hasFile = true
|
||||
}
|
||||
|
||||
delete message.id
|
||||
const createdMessage = await MessageModel.create(message)
|
||||
|
||||
if(this.instanceHasAttachment) {
|
||||
this.addFileToDb()
|
||||
this.addFileToDb()
|
||||
}
|
||||
|
||||
this.messageModelInstance = createdMessage
|
||||
@@ -556,7 +558,7 @@ export class MessageService {
|
||||
if(!this.messageModelInstance) {
|
||||
this.messageModelInstance = await this.getRowInstance()
|
||||
}
|
||||
|
||||
|
||||
|
||||
const createdMessage: any = this.messageModelInstance
|
||||
try {
|
||||
@@ -566,7 +568,7 @@ export class MessageService {
|
||||
if(this.attachmentsModelData) {
|
||||
file = {image_url: this.attachmentsModelData?.fileBase64}
|
||||
}
|
||||
|
||||
|
||||
await attachments.create({messageId: createdMessage.id, attachments: this.attachments, file: Object.assign(this.file, file) })
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
@@ -578,8 +580,8 @@ export class MessageService {
|
||||
if(!this.messageModelInstance) {
|
||||
this.messageModelInstance = await this.getRowInstance()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const data = await this.messageModelInstance.getAttachments()
|
||||
|
||||
console.log('data', data);
|
||||
@@ -590,7 +592,7 @@ export class MessageService {
|
||||
|
||||
async generateTemporaryData () {
|
||||
const blob: any = await this.base64StringToBlob(this.file.image_url)
|
||||
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append("blobFile", blob);
|
||||
this.temporaryData = formData
|
||||
@@ -651,7 +653,7 @@ export class MessageService {
|
||||
if(!message.id) {
|
||||
delete message.id
|
||||
}
|
||||
|
||||
|
||||
if (this.localReference) {
|
||||
a = await MessageModel.get({localReference: this.localReference})
|
||||
} else if (this._id) {
|
||||
@@ -662,7 +664,7 @@ export class MessageService {
|
||||
|
||||
return a
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
async saveChanges() {
|
||||
@@ -683,13 +685,299 @@ export class MessageService {
|
||||
this.messageModelInstance[name] = value
|
||||
} catch (error) {}
|
||||
}
|
||||
|
||||
|
||||
await this.messageModelInstance.save()
|
||||
|
||||
|
||||
} else {
|
||||
this.earlySave = true
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
decryptMessage() {
|
||||
try {
|
||||
// this.msg = this.AESEncrypt.decrypt(this.msg, SessionStore.user.UserName)
|
||||
} catch (error) {}
|
||||
}
|
||||
|
||||
|
||||
|
||||
UIdata() {
|
||||
this.incomingFromCurrentUser = this.u.username!= SessionStore.user.UserName
|
||||
this.hasMessage = this.msg !=''
|
||||
}
|
||||
|
||||
incomingFromCurrentUser = false
|
||||
hasMessage = false
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
export class MessageServiceDateLabel {
|
||||
|
||||
customFields
|
||||
channels = []
|
||||
mentions = []
|
||||
msg = ''
|
||||
rid = ''
|
||||
ts = {}
|
||||
|
||||
u = {
|
||||
name: '',
|
||||
username: '',
|
||||
_id: ""
|
||||
}
|
||||
|
||||
t = ''
|
||||
_id = ''
|
||||
id = '' // table id
|
||||
_updatedAt
|
||||
file
|
||||
attachments
|
||||
displayType = ''
|
||||
temporaryData: any
|
||||
hasFile = false
|
||||
hasSendAttachment = false
|
||||
sendAttempt = 0
|
||||
uploadingFile = false
|
||||
errorUploadingAttachment = false
|
||||
loadHistory = false
|
||||
from: 'Offline'|'History'|'stream'| 'send'
|
||||
duration = ''
|
||||
localReference = null
|
||||
viewed: string[] = []
|
||||
received: string[]= []
|
||||
addToDb = false
|
||||
|
||||
messageSend = false
|
||||
delate = false
|
||||
delateRequest = false
|
||||
downloadLoader: boolean = false
|
||||
downloadAttachments = false;
|
||||
downloadAttachmentsTemp = 0;
|
||||
UploadAttachmentsTemp = 0;
|
||||
manualRetry = false
|
||||
origin: 'history' | 'stream' | 'local'
|
||||
|
||||
messageModelInstance: MessageModel
|
||||
attachmentsModelData: any
|
||||
ChatSystemService
|
||||
dateLabel = false
|
||||
|
||||
|
||||
constructor() {}
|
||||
|
||||
setData({customFields = {}, channels, mentions, msg ,rid ,ts, u, t, _id, id, _updatedAt, file, attachments, temporaryData, localReference = 'out-'+uuidv4() , viewed = [], received = [], delate = false, delateRequest =false, from, sendAttempt = 0, origin, attachmentsModelData, hasFile = false, UploadAttachmentsTemp = 0 }:Message) {
|
||||
|
||||
this.channels = []
|
||||
this.mentions = []
|
||||
this.rid = rid
|
||||
this.ts = ts
|
||||
this.u = u || { name: this.usernameToDisplayName(SessionStore.user.UserName), username: SessionStore.user.UserName, _id: ""}
|
||||
this.t = t
|
||||
this._id = ""
|
||||
this._updatedAt = _updatedAt || new Date().getTime()
|
||||
this.file = file
|
||||
this.temporaryData = temporaryData
|
||||
this.localReference = localReference || null
|
||||
this.id = id
|
||||
this.delate = delate
|
||||
this.delateRequest = delateRequest
|
||||
this.sendAttempt = 0
|
||||
this.origin = origin
|
||||
this.attachmentsModelData = attachmentsModelData
|
||||
this.UploadAttachmentsTemp = UploadAttachmentsTemp
|
||||
|
||||
if(this.attachments?.length >= 1 && attachments?.length >= 1) {
|
||||
this.attachments[0] = Object.assign(this.attachments[0], attachments[0])
|
||||
} else {
|
||||
this.attachments = attachments
|
||||
}
|
||||
|
||||
this.viewed = [];
|
||||
this.received = [];
|
||||
|
||||
this.messageSend = true
|
||||
this.hasFile = hasFile
|
||||
|
||||
this.hasFile = false
|
||||
|
||||
if(!this.u.name && this.u.username) {
|
||||
const user = this.ChatSystemService.users.find((u)=> u.username == this.u.username)
|
||||
if(user) {
|
||||
this.u.name = user.name
|
||||
} else if( this.u.username == SessionStore.user.UserName) {
|
||||
this.u.name = SessionStore.user.FullName
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
this.calDateDuration()
|
||||
}
|
||||
|
||||
|
||||
get offline () {
|
||||
if(!this._id) {
|
||||
return true
|
||||
}
|
||||
|
||||
if(!this.ts) {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Message is on the server
|
||||
*/
|
||||
get online() {
|
||||
return !this.offline
|
||||
}
|
||||
|
||||
/**
|
||||
* if Message is already saved on database
|
||||
*/
|
||||
get save() {
|
||||
return this.id != ''
|
||||
}
|
||||
|
||||
|
||||
private usernameToDisplayName(username) {
|
||||
|
||||
try {
|
||||
const firstName = capitalizeTxt(username.split('.')[0])
|
||||
const lastName = capitalizeTxt(username.split('.')[1])
|
||||
return firstName + ' ' + lastName
|
||||
} catch (error) {
|
||||
return username
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async send(): Promise<any> {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
functionTimer = null;
|
||||
|
||||
async sendRequestAttachment() {
|
||||
|
||||
}
|
||||
|
||||
async sendRequest(params) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
async redefinedMessage(ChatMessage , update = true) {
|
||||
|
||||
}
|
||||
|
||||
sendNotificaton
|
||||
|
||||
downloadFileMsg() {
|
||||
|
||||
}
|
||||
|
||||
private calDateDuration(date = null) {
|
||||
this.duration = showDateDuration(date || this._updatedAt);
|
||||
}
|
||||
|
||||
|
||||
async delateStatusFalse() {
|
||||
|
||||
}
|
||||
|
||||
addViewed(id: string) {
|
||||
|
||||
}
|
||||
|
||||
addReceived(id: string) {
|
||||
|
||||
}
|
||||
|
||||
async delateDB() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
isSenderIsNotMe(ChatMessage) {
|
||||
return SessionStore.user.ChatData.data.userId != ChatMessage.u._id
|
||||
}
|
||||
|
||||
messageOwner() {
|
||||
return SessionStore.user.ChatData.data.userId == this.u._id
|
||||
}
|
||||
|
||||
getChatObj() {
|
||||
|
||||
}
|
||||
|
||||
earlySave = false
|
||||
|
||||
async addMessageDB() {
|
||||
|
||||
}
|
||||
|
||||
async addFileToDb() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
async getFileFromDB() {
|
||||
|
||||
}
|
||||
|
||||
async generateTemporaryData () {
|
||||
|
||||
}
|
||||
|
||||
|
||||
get instanceHasAttachment() {
|
||||
return false
|
||||
}
|
||||
|
||||
get instanceHasAttachmentBase64() {
|
||||
if (this.file) {
|
||||
if(this.file.type) {
|
||||
if(this.file?.image_url) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
get instanceHasTemporaryData() {
|
||||
if (!this.temporaryData) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
base64StringToBlob(base64Data) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
async getRowInstance () {
|
||||
|
||||
|
||||
}
|
||||
|
||||
async saveChanges() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
decryptMessage() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { RochetChatConnectorService } from 'src/app/services/chat/rochet-chat-connector.service';
|
||||
import { MessageService } from 'src/app/services/chat/message.service';
|
||||
import { MessageService, MessageServiceDateLabel } from 'src/app/services/chat/message.service';
|
||||
import { showDateDuration } from 'src/plugin/showDateDuration';
|
||||
import { chatHistory } from 'src/app/models/chatMethod';
|
||||
import { Storage } from '@ionic/storage';
|
||||
@@ -187,7 +187,7 @@ export class RoomService {
|
||||
}
|
||||
|
||||
get online() {
|
||||
|
||||
|
||||
if(!this.isGroup) {
|
||||
for(let user of this.ChatSystemService.users) {
|
||||
|
||||
@@ -196,7 +196,7 @@ export class RoomService {
|
||||
return user.status
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,7 +244,7 @@ export class RoomService {
|
||||
});
|
||||
}
|
||||
else {
|
||||
this.chatService.deleteChannel(body).subscribe(res=>{
|
||||
this.chatService.deleteChannel(body).subscribe(res=>{
|
||||
this.ChatSystemService.deleteRoom(this.id);
|
||||
this.ChatSystemService.getAllRooms();
|
||||
this.chatServiceDeleteRoom(this.id);
|
||||
@@ -281,7 +281,7 @@ export class RoomService {
|
||||
|
||||
if (typeof args[1] != 'object') {
|
||||
this.userThatIsTyping = this.usernameToDisplayName(args[0])
|
||||
|
||||
|
||||
this.isTyping = args[1]
|
||||
this.otherUserType = args[1]
|
||||
|
||||
@@ -298,9 +298,9 @@ export class RoomService {
|
||||
}
|
||||
|
||||
} else if(args[0]?.method == 'deleteMessage' || args[1]?.method == 'deleteMessage') {
|
||||
|
||||
|
||||
this.deleteMessage(args[1]?.method?._id)
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
@@ -316,13 +316,13 @@ export class RoomService {
|
||||
let ChatMessage : ChatMessageInterface = this.fix_updatedAt(IncomingChatMessageArgs)
|
||||
|
||||
|
||||
let found = this.findMessageBy_id(ChatMessage._id) ||
|
||||
let found = this.findMessageBy_id(ChatMessage._id) ||
|
||||
this.findMessageBy_localReference(ChatMessage?.localReference)
|
||||
// || await this.findMessageInDBByData({_id:ChatMessage._id, localReference:ChatMessage.localReference })
|
||||
|
||||
if(!found) {
|
||||
|
||||
ChatMessage.origin = 'stream'
|
||||
ChatMessage.origin = 'stream'
|
||||
const message = await this.prepareCreate({message: ChatMessage, save: false});
|
||||
this.registerSendMessage(message)
|
||||
|
||||
@@ -342,7 +342,7 @@ export class RoomService {
|
||||
title: this.name
|
||||
}); */
|
||||
}
|
||||
|
||||
|
||||
if(this.hasLoadHistory == true) {
|
||||
this.messages.push(message)
|
||||
await message.addMessageDB()
|
||||
@@ -350,14 +350,12 @@ export class RoomService {
|
||||
this.messagesBeforeOfflineAPI.push(message)
|
||||
}
|
||||
|
||||
if(this.chatOpen == false) {
|
||||
this.messageUnread = true
|
||||
}
|
||||
this.messageUnread = true
|
||||
|
||||
setTimeout(() => {
|
||||
this.scrollDown()
|
||||
}, 50)
|
||||
|
||||
}, 50)
|
||||
|
||||
}
|
||||
|
||||
if(ChatMessage?.t == "au" || ChatMessage?.t == "ru" || ChatMessage?.t == "ul") {
|
||||
@@ -389,7 +387,7 @@ export class RoomService {
|
||||
} catch(error) {
|
||||
return []
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
getAllMemberThatIsNotOffline(): string[] {
|
||||
@@ -432,18 +430,18 @@ export class RoomService {
|
||||
|
||||
|
||||
async deleteMessageToReceive(userId) {
|
||||
|
||||
|
||||
const allDeleteMessages = await DeleteMessageModel.filter({rid: this.id}).execute()
|
||||
|
||||
for(let message_ of allDeleteMessages) {
|
||||
|
||||
|
||||
if(message_.needToReceiveBy.includes(userId)) {
|
||||
|
||||
message_.needToReceiveBy = message_.needToReceiveBy.filter((e)=> e != userId)
|
||||
this.sendFalseTypingReadMessage('deleteMessage',{_id:message_.messageId})
|
||||
|
||||
if(message_.needToReceiveBy.length == 0) {
|
||||
|
||||
|
||||
const deleteMessage = await DeleteMessageModel.get({messageId: message_.messageId})
|
||||
await deleteMessage.delete()
|
||||
|
||||
@@ -452,10 +450,10 @@ export class RoomService {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async receiveMessageDelete() {
|
||||
|
||||
@@ -470,7 +468,7 @@ export class RoomService {
|
||||
if(message.delate == false) {
|
||||
this.deleteMessage(DeletedMessageId)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -480,17 +478,17 @@ export class RoomService {
|
||||
* @param id message ID
|
||||
*/
|
||||
async deleteMessage(_id) {
|
||||
|
||||
|
||||
const id = _id
|
||||
|
||||
for (let i =0; i <= this.messages.length; i++) {
|
||||
|
||||
if(this.messages[i]?._id == id ) {
|
||||
|
||||
|
||||
|
||||
if (SessionStore.user.UserName == this.messages[i]?.u?.username) {
|
||||
const allMemberThatIsOffline = this.getAllMemberThatIsOffline()
|
||||
|
||||
|
||||
DeleteMessageModel.create({
|
||||
messageId: this.messages[i]._id,
|
||||
rid: this.messages[i].rid,
|
||||
@@ -499,7 +497,7 @@ export class RoomService {
|
||||
needToReceiveBy: allMemberThatIsOffline
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
this.messages[i]?.delateDB()
|
||||
this.messages.splice(i, 1)
|
||||
|
||||
@@ -516,7 +514,7 @@ export class RoomService {
|
||||
return true
|
||||
|
||||
} else {
|
||||
//
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
@@ -532,7 +530,7 @@ export class RoomService {
|
||||
}
|
||||
|
||||
async delateMessageToSendToOthers(userId) {
|
||||
|
||||
|
||||
const deleteMessage = await DeleteMessageModel.all();
|
||||
|
||||
const toSend = deleteMessage.filter((DeleteMessage:string[])=> ! DeleteMessage.includes(userId))
|
||||
@@ -546,7 +544,7 @@ export class RoomService {
|
||||
await message.delateStatusFalse()
|
||||
|
||||
if(this.NetworkServiceService.getCurrentNetworkStatus() == ConnectionStatus.Online) {
|
||||
|
||||
|
||||
this.RochetChatConnectorService.deleteMessage(msgId).then(async() => {
|
||||
message.delateRequest = true
|
||||
await message.saveChanges();
|
||||
@@ -557,7 +555,7 @@ export class RoomService {
|
||||
this.RochetChatConnectorService.registerCallback({
|
||||
type: 'reConnect',
|
||||
funx: async ()=> {
|
||||
|
||||
|
||||
this.sendDeleteRequest(msgId)
|
||||
return true
|
||||
}
|
||||
@@ -575,7 +573,7 @@ export class RoomService {
|
||||
if(file && this.message) {
|
||||
this.send({})
|
||||
}
|
||||
|
||||
|
||||
const localReference = uuidv4();
|
||||
|
||||
let offlineChatMessage = {
|
||||
@@ -593,20 +591,20 @@ export class RoomService {
|
||||
console.log('offlineChatMessage', offlineChatMessage)
|
||||
|
||||
this.message= ''
|
||||
|
||||
|
||||
const message: MessageService = await this.prepareCreate({message:offlineChatMessage, save: environment.chatOffline})
|
||||
this.registerSendMessage(message)
|
||||
|
||||
if(this.hasLoadHistory == true) {
|
||||
await message.addMessageDB()
|
||||
}
|
||||
|
||||
|
||||
message.send()
|
||||
message.from = 'send'
|
||||
message.loadHistory = this.hasLoadHistory
|
||||
|
||||
if (environment.chatOffline) {
|
||||
|
||||
|
||||
setTimeout(() => {
|
||||
this.scrollDown()
|
||||
}, 150)
|
||||
@@ -717,17 +715,65 @@ export class RoomService {
|
||||
return `${day}-${month}-${year}`;
|
||||
}
|
||||
|
||||
sortArrayISODate(messages: any): any[] {
|
||||
|
||||
return messages.sort((a,b) =>
|
||||
new Date(b._updatedAt ).getTime()
|
||||
-
|
||||
new Date(a._updatedAt).getTime())
|
||||
}
|
||||
|
||||
restoreOnce = false
|
||||
dateLabel: any = [];
|
||||
labelDates = []
|
||||
|
||||
|
||||
goshPush(ChatMessage) {
|
||||
let currentDateMessage = new Date(ChatMessage._updatedAt).toLocaleDateString()
|
||||
|
||||
if(currentDateMessage) {
|
||||
if(!this.labelDates.find( e => e == currentDateMessage)) {
|
||||
this.labelDates.push(currentDateMessage)
|
||||
|
||||
const newMessage = this.fix_updatedAt({...ChatMessage})
|
||||
newMessage.msg = currentDateMessage
|
||||
const cloneMessage = new MessageServiceDateLabel()
|
||||
|
||||
cloneMessage.ChatSystemService = this.ChatSystemService
|
||||
cloneMessage.setData({...newMessage} as any)
|
||||
//
|
||||
cloneMessage._id = ""
|
||||
cloneMessage._updatedAt = ""
|
||||
cloneMessage.msg = currentDateMessage
|
||||
cloneMessage.dateLabel = true
|
||||
cloneMessage.delate = false
|
||||
|
||||
if(new Date().toLocaleDateString() == currentDateMessage) {
|
||||
|
||||
cloneMessage.msg = "hoje"
|
||||
} else {
|
||||
cloneMessage.msg = currentDateMessage
|
||||
}
|
||||
|
||||
this.messages.push(cloneMessage as any)
|
||||
|
||||
console.log(currentDateMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async restoreMessageFromDB() {
|
||||
if(environment.chatOffline && this.restoreOnce == false) {
|
||||
this.restoreOnce = true
|
||||
|
||||
const messages = await MessageModel.filter({rid:this.id}).execute()
|
||||
const messages = this.sortArrayISODate(await MessageModel.filter({rid:this.id}).execute()).reverse()
|
||||
|
||||
|
||||
console.log('MessageModel', messages)
|
||||
|
||||
for (let ChatMessage of messages) {
|
||||
|
||||
for (let ChatMessage of messages) {
|
||||
|
||||
|
||||
this.goshPush(ChatMessage)
|
||||
|
||||
|
||||
const wewMessage = await this.simplePrepareMessage(ChatMessage)
|
||||
@@ -745,9 +791,9 @@ export class RoomService {
|
||||
message.loadHistory = this.hasLoadHistory
|
||||
wewMessage.messageModelInstance = ChatMessage
|
||||
message?.decryptMessage()
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
const offlineMessage = await this.prepareCreate({message:ChatMessage})
|
||||
|
||||
offlineMessage.from = 'Offline'
|
||||
@@ -765,10 +811,10 @@ export class RoomService {
|
||||
}
|
||||
|
||||
if(!this.lastMessage) {
|
||||
this.lastMessage = messages.pop();
|
||||
this.lastMessage = messages.pop();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
setTimeout(() => {
|
||||
this.scrollDown()
|
||||
}, 50)
|
||||
@@ -803,8 +849,9 @@ export class RoomService {
|
||||
|
||||
messagesToSave.received = users.map((user) => user._id)
|
||||
messagesToSave.addMessageDB()
|
||||
this.goshPush(messagesToSave)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -813,7 +860,8 @@ export class RoomService {
|
||||
if(messagesToSave != null) {
|
||||
|
||||
messagesToSave.received = users.map((user) => user._id)
|
||||
messagesToSave.addMessageDB()
|
||||
|
||||
this.addMessageDB.push(messagesToSave)
|
||||
}
|
||||
}
|
||||
this.messagesBeforeOfflineAPI = []
|
||||
@@ -821,11 +869,11 @@ export class RoomService {
|
||||
setTimeout(() => {
|
||||
this.scrollDown()
|
||||
}, 50)
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(chatHistory?.result?.messages) {
|
||||
|
||||
|
||||
if(!this.lastMessage) {
|
||||
this.lastMessage = chatHistory?.result?.messages.pop() as any
|
||||
}
|
||||
@@ -834,6 +882,13 @@ export class RoomService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
addMessageDB = FIFOProcessQueue(async ({messagesToSave}, callback) => {
|
||||
|
||||
await messagesToSave.addMessageDB()
|
||||
callback()
|
||||
})
|
||||
|
||||
async readAllMessage() {
|
||||
|
||||
this.ViewedMessageService.requestReadAll(this)
|
||||
@@ -870,11 +925,11 @@ export class RoomService {
|
||||
const wewMessage = new MessageService(this.NfService, this.RochetChatConnectorService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this.ChatSystemService,this.notificationService)
|
||||
wewMessage.setData(message)
|
||||
wewMessage.loadHistory = this.hasLoadHistory
|
||||
|
||||
|
||||
if(save) {
|
||||
this.messages.push(wewMessage)
|
||||
}
|
||||
|
||||
|
||||
return wewMessage
|
||||
}
|
||||
|
||||
@@ -895,7 +950,7 @@ export class RoomService {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -911,7 +966,7 @@ export class RoomService {
|
||||
|
||||
private async findMessageInDBByLocalReference({localReference}) {
|
||||
const a = await MessageModel.get({localReference: localReference})
|
||||
|
||||
|
||||
return typeof a.id == 'number'
|
||||
}
|
||||
|
||||
@@ -921,7 +976,7 @@ export class RoomService {
|
||||
}
|
||||
|
||||
private async findMessageInDBByData({localReference, _id}) {
|
||||
|
||||
|
||||
const a = await MessageModel.filter({localReference: localReference}).execute()
|
||||
if(a.length >= 1) {
|
||||
|
||||
@@ -990,7 +1045,7 @@ export class RoomService {
|
||||
}
|
||||
|
||||
async addContacts(userId:any) {
|
||||
|
||||
|
||||
let body = {
|
||||
"roomId": this.id,
|
||||
"userId": userId,
|
||||
@@ -1002,12 +1057,12 @@ export class RoomService {
|
||||
|
||||
|
||||
async updateContacts() {
|
||||
|
||||
|
||||
let res
|
||||
let error = false
|
||||
|
||||
if(this.t == 'd') {
|
||||
|
||||
|
||||
try {
|
||||
res = await this.chatService.getMembers(this.id).toPromise();
|
||||
} catch (e) {
|
||||
@@ -1049,7 +1104,7 @@ export class RoomService {
|
||||
if(error) {
|
||||
res = await this.chatService.getChannelMembers(this.id).toPromise()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ import { DespachoService } from 'src/app/Rules/despacho.service';
|
||||
import { CustomTaskPipe } from '../pipes/custom-task.pipe';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { EventsService } from './events.service';
|
||||
import { SortService } from './functions/sort.service';
|
||||
import { customTask } from '../models/dailyworktask.model';
|
||||
import { Router } from '@angular/router';
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
@@ -486,4 +485,14 @@ export class TaskService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
attachmentAppName(e) {
|
||||
const ApplicationId = e.ApplicationId || e.ApplicationType
|
||||
if( ApplicationId =='8' || ApplicationId ==8) {
|
||||
return 'Correspondencia'
|
||||
} else if (ApplicationId =='361' || ApplicationId ==361) {
|
||||
return 'ArquivoDespachoElect'
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -318,12 +318,13 @@
|
||||
<ion-label>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name">{{document.appName}}</span>
|
||||
<span class="app-name" *ngIf="!document.appName">{{ TaskService.attachmentAppName(document)}}</span>
|
||||
<span class="app-name" *ngIf="document.appName">{{document.appName}}</span>
|
||||
<span class="close-button text-black cursor-pointer" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
<p><span class="span-left">{{(document.EntidadeOrganicaNome || document.Sender)}}</span><span class="span-right"> {{(document.Data || document.DocDate) | date: 'dd-MM-yyyy HH:mm'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
@@ -33,6 +33,7 @@ import { EventToAprove } from 'src/app/models/eventToAprove.model';
|
||||
import { ProcessesService } from 'src/app/services/processes.service';
|
||||
import { Subject } from 'rxjs';
|
||||
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||
parse: {
|
||||
dateInput: "YYYY-MMMM-DD HH:mm"
|
||||
@@ -141,6 +142,7 @@ export class NewEventPage implements OnInit {
|
||||
private chatMethodService: ChatMethodsService,
|
||||
private hhtpErrorHandle: HttpErrorHandle,
|
||||
private processeService: ProcessesService,
|
||||
public TaskService: TaskService
|
||||
) {
|
||||
this.dateAdapter.setLocale('pt');
|
||||
this.loggeduser = SessionStore.user;
|
||||
|
||||
@@ -42,14 +42,14 @@
|
||||
</div>
|
||||
|
||||
<div class="messages-list-item-wrapper container-width-100" *ngFor="let msg of ChatSystemService.getGroupRoom(roomId).messages; let last = last">
|
||||
<div class="message-item incoming-{{msg.u.username!=sessionStore.user.UserName}} max-width-45" *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'au' && msg.t != 'ru' && msg.msg !=''" >
|
||||
<div class="message-item-options d-flex justify-content-end">
|
||||
<div class="message-item incoming-{{msg.u.username!=sessionStore.user.UserName}} max-width-45" *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'au' && msg.t != 'ru' && msg.msg !=''" [class.dateLabel]="msg.dateLabel">
|
||||
<div class="message-item-options d-flex justify-content-end" *ngIf="!msg.dateLabel">
|
||||
<fa-icon [matMenuTriggerFor]="beforeMenu" icon="chevron-down" class="message-options-icon cursor-pointer"></fa-icon>
|
||||
<mat-menu #beforeMenu="matMenu" xPosition="before">
|
||||
<button (click)="deleteMessage(msg._id)" class="menuButton">Apagar mensagem</button>
|
||||
</mat-menu>
|
||||
</div>
|
||||
<div class="title d-flex">
|
||||
<div class="title d-flex" *ngIf="!msg.dateLabel">
|
||||
<ion-label>{{msg.u.name}}</ion-label>
|
||||
<span class="time">{{msg.duration}}</span>
|
||||
</div>
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" >Lido</span>
|
||||
@@ -120,7 +120,7 @@
|
||||
<div (click)="openPreview(msg)" class="file-details add-ellipsis cursor-pointer" *ngIf="msg.file">
|
||||
<div *ngIf="!msg.attachments[0].image_url">
|
||||
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
|
||||
|
||||
|
||||
<ion-icon *ngIf="msg.attachments[0].type != 'webtrix'" name="document" class="file-icon"></ion-icon>
|
||||
<ion-icon *ngIf="msg.attachments[0].type == 'webtrix'" src="assets/icon/webtrix.svg" class="file-icon"></ion-icon>
|
||||
<ion-label>{{ file.title}}</ion-label>
|
||||
@@ -164,7 +164,7 @@
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
|
||||
@@ -328,4 +328,13 @@
|
||||
padding: 6px;
|
||||
border-radius: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.dateLabel {
|
||||
background: #ebebeb !important;
|
||||
float: unset !important;
|
||||
margin: 0px auto !important;
|
||||
width: 110px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -33,21 +33,22 @@
|
||||
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
|
||||
<ion-refresher-content>
|
||||
</ion-refresher-content>
|
||||
</ion-refresher>
|
||||
</ion-refresher>
|
||||
<div class="messages" #scrollMe>
|
||||
<ion-list>
|
||||
|
||||
<div class="messages-list-item-wrapper container-width-100"
|
||||
*ngFor="let msg of ChatSystemService.getDmRoom(roomId).messages; index as i; let last = last">
|
||||
<div class='message-item incoming-{{msg.u.username!=sessionStore.user.UserName}} max-width-45' *ngIf="msg.msg !=''">
|
||||
<div class="message-item-options d-flex justify-content-end">
|
||||
*ngFor="let msg of ChatSystemService.getDmRoom(roomId).messages; index as i; let last = last" >
|
||||
|
||||
<div [class.dateLabel]="msg.dateLabel" class='message-item incoming-{{msg.u.username!=sessionStore.user.UserName}} max-width-45' *ngIf="msg.msg !=''" >
|
||||
<div class="message-item-options d-flex justify-content-end" *ngIf="!msg.dateLabel">
|
||||
<fa-icon [matMenuTriggerFor]="beforeMenu" icon="chevron-down" class="message-options-icon cursor-pointer">
|
||||
</fa-icon>
|
||||
<mat-menu #beforeMenu="matMenu" xPosition="before">
|
||||
<button (click)="deleteMessage(msg._id, msg)" class="menuButton">Apagar mensagem</button>
|
||||
</mat-menu>
|
||||
</div>
|
||||
<div class="title d-flex">
|
||||
<div class="title d-flex" *ngIf="!msg.dateLabel">
|
||||
<ion-label >{{msg.u.name}}</ion-label>
|
||||
<span class="time">{{msg.duration}}</span>
|
||||
</div>
|
||||
@@ -57,11 +58,11 @@
|
||||
<ion-label *ngIf="msg.delate == true" class="flex-0">Apagou a mensagem</ion-label>
|
||||
|
||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||
|
||||
|
||||
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
@@ -102,10 +103,10 @@
|
||||
</div>
|
||||
<img *ngIf="msg.attachments[0].image_url" src={{msg.attachments[0].image_url}} alt="image">
|
||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
@@ -118,7 +119,7 @@
|
||||
|
||||
<div *ngIf="!msg.attachments[0].image_url">
|
||||
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
|
||||
|
||||
|
||||
<ion-icon *ngIf="msg.attachments[0].type != 'webtrix'" name="document" class="file-icon"></ion-icon>
|
||||
<ion-icon *ngIf="msg.attachments[0].type == 'webtrix'" src="assets/icon/webtrix.svg" class="file-icon"></ion-icon>
|
||||
<ion-label>{{ file.title}}</ion-label>
|
||||
@@ -130,7 +131,7 @@
|
||||
</div>
|
||||
|
||||
<div *ngIf="msg.attachments[0].image_url">
|
||||
|
||||
|
||||
<span *ngIf="msg.file.type">
|
||||
<fa-icon *ngIf="msg.file.type == 'application/pdf'" icon="file-pdf" class="pdf-icon"></fa-icon>
|
||||
<fa-icon *ngIf="msg.file.type == 'application/word'" icon="file-word" class="word-icon">
|
||||
@@ -166,13 +167,13 @@
|
||||
<ion-label *ngIf="msg.file">
|
||||
<span *ngIf="file.description">{{file.description}}</span>
|
||||
<span *ngIf="file.description && msg.file.type != 'application/webtrix'"> • </span>
|
||||
|
||||
|
||||
</ion-label>
|
||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||
|
||||
|
||||
<span *ngIf="msg.online == true && !msg.manualRetry && msg.viewed == 0" class="enviado pl-10"> Enviado</span>
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0 && msg.viewed.length == 0" src="assets/images/check-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon> -->
|
||||
<!-- <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> -->
|
||||
<span class="lido pl-10" *ngIf="msg.viewed.length >= 1" > Lido</span>
|
||||
@@ -210,7 +211,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
</ion-list>
|
||||
</ion-list>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -403,3 +403,12 @@ ion-footer {
|
||||
.enviado {
|
||||
font-size: rem(11);
|
||||
}
|
||||
|
||||
|
||||
.dateLabel {
|
||||
background: #ebebeb !important;
|
||||
float: unset !important;
|
||||
margin: 0px auto !important;
|
||||
width: 110px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user