Merge branch 'develop' of https://bitbucket.org/equilibriumito/gabinete-digital-fo into bugfix/goback-button-event

This commit is contained in:
EQUILIBRIUM\hirondino.van-dunem
2022-07-01 16:44:54 +01:00
42 changed files with 440 additions and 365 deletions
+4 -4
View File
@@ -67,7 +67,7 @@ export class AppComponent {
window.screen.orientation.unlock();
} else if( this.platform.is("mobile")) {
window.screen.orientation.lock('portrait');
console.log('Orientation locked')
// console.log('Orientation locked')
}
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
@@ -76,16 +76,16 @@ export class AppComponent {
try {
this.sqliteservice.databaseConn();
} catch (error) {
console.log("Error creating local database: ", error)
// console.log("Error creating local database: ", error)
}
}
this.storageservice.get('networkCheckStore').then((network) => {
if(network === 'online') {
console.log('Network app componente check', network)
// console.log('Network app componente check', network)
this.backgroundservice.online()
} else {
console.log('Network app componente check', network)
// console.log('Network app componente check', network)
this.backgroundservice.offline();
}
})
+2 -2
View File
@@ -142,7 +142,7 @@ export class HomePage implements OnInit {
this.notificationsService.onReciveBackground();
window.addEventListener('online', () => {
console.log('Became online')
// console.log('Became online')
this.backgroundservice.online()
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
@@ -151,7 +151,7 @@ export class HomePage implements OnInit {
});
window.addEventListener('offline', () => {
console.log('Became offline')
// console.log('Became offline')
this.backgroundservice.offline()
});
@@ -77,7 +77,7 @@ export class DocumentDetailPage implements OnInit {
} else if (document.ApplicationID == 8 || document.ApplicationId == 8) {
} else {
console.log('unexpected id')
// console.log('unexpected id')
}
@@ -42,7 +42,7 @@ ngOnInit() {
this.image = this.navParams.get('image')
this.name = this.navParams.get('username')
this._updatedAt = this.navParams.get('_updatedAt')
console.log(this.image)
// console.log(this.image)
// this.image = this.myimage
}
+2 -2
View File
@@ -52,7 +52,7 @@ export class ProfilePage implements OnInit {
ngOnInit() {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
console.log('Notifications not supported')
// console.log('Notifications not supported')
this.getNotificationData();
} else {
this.getNotificationData();
@@ -138,7 +138,7 @@ export class ProfilePage implements OnInit {
notificatinsRoutes = (index, Service, Object, IdObject, FolderId) => {
console.log(index, Service, Object, IdObject, FolderId)
// console.log(index, Service, Object, IdObject, FolderId)
if (Service === "agenda" && IdObject.length > 10) {
this.zone.run(() => this.router.navigate(['/home/agenda', IdObject, 'agenda']));
@@ -46,6 +46,7 @@ export class ViewDocumentPage implements OnInit {
this.processes.GetViewer(this.docId, this.applicationId).subscribe(res=> {
const link: string = res;
console.log(res,' link!!!')
this.trustedUrl = this.sanitazer.bypassSecurityTrustResourceUrl(link);
}, ()=>{
this.close();
@@ -77,7 +78,7 @@ export class ViewDocumentPage implements OnInit {
} else if(res.data.component == 'openExpedientActionsModal') {
this.openExpedientActionsModal(res.data.taskAction)
} else {
console.log('not found')
// console.log('not found')
}
}
@@ -99,7 +99,7 @@ export class EditEventPage implements OnInit {
this.isEventEdited = false;
/* this.postEvent.EventRecurrence = { Type:'-1', LastOccurrence:''}; */
this.postEvent = this.navParams.get('event');
console.log(this.postEvent);
// console.log(this.postEvent);
this.caller = this.navParams.get('caller');
this.initCalendarName = this.postEvent.CalendarName;
@@ -185,7 +185,7 @@ export class EditEventPage implements OnInit {
}
calculetedLastOccurrence(type:number){
console.log(type);
// console.log(type);
var valor;
var opcao: boolean;
if (type == 0) {
@@ -8,6 +8,7 @@
<div class="buttons">
<button *ngIf="activityInstanceName == 'Aprovar Evento'" class="btn-cancel" shape="round" (click)="emendarTask()">Rever</button>
<button *ngIf="activityInstanceName == 'Aprovar Evento'" class="btn-cancel" shape="round" (click)="editTask()">Editar</button>
<button *ngIf="activityInstanceName == 'Aprovar Evento'" class="btn-cancel" shape="round" (click)="approveTask()">Aprovar</button>
<div class="solid"></div>
<button *ngIf="activityInstanceName != 'Aprovar Evento'" class="btn-cancel" shape="round" (click)="editTask()">Editar</button>
@@ -211,7 +211,7 @@ export class NewEventPage implements OnInit {
}
calculetedLastOccurrence(type:number){
console.log(type);
// console.log(type);
var valor;
var opcao: boolean;
if (type == 0) {
+1 -1
View File
@@ -138,7 +138,7 @@ export class ChatPage implements OnInit {
}
SessionStore.user.ChatData = data
SessionStore.save() */
console.log(SessionStore.user.ChatData.data.authToken)
// console.log(SessionStore.user.ChatData.data.authToken)
this.chatService.refreshtoken();
this.segment = "Contactos";
@@ -11,7 +11,7 @@
</div>
<div class="middle-container" *ngIf="!showMessageOptions">
<div class="middle add-ellipsis">
<ion-label class="title">{{wsChatMethodsService.getGroupRoom(roomId).name}}</ion-label>
<ion-label class="title">{{groupNameFormart}}</ion-label>
</div>
</div>
<div class="middle-container-options" *ngIf="showMessageOptions">
@@ -68,6 +68,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
selectedMsgId: string;
roomCountDownDate: any;
downloadFile: any;
groupNameFormart = "";
@ViewChild('scrollMe') private myScrollContainer: ElementRef;
@@ -116,6 +117,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory({});
this.wsChatMethodsService.getGroupRoom(this.roomId).scrollDown = this.scrollToBottomClicked;
this.wsChatMethodsService.openRoom(this.roomId)
this.groupNameFormart = this.wsChatMethodsService.getGroupRoom(this.roomId).name.split('-').join(' ')
setTimeout(() => {
this.scrollToBottomClicked()
@@ -44,7 +44,7 @@ export class NewGroupPage implements OnInit {
ngOnInit() {
this.chatService.refreshtoken();
console.log(this.documents)
// console.log(this.documents)
}
@@ -81,80 +81,6 @@ export class DiplomasPage implements OnInit, OnDestroy {
}
/* async loadDiplomas(){
this.activatedRoute.data.subscribe(data => {
switch (this.segment) {
case 'validar':
let diplomasValidar = data['diplomas'].filter(data => data.activityInstanceName == "Revisar Diploma");
diplomasValidar.forEach(async element => {
let DocId = element.workflowInstanceDataFields.FolderID;
let ApplicationId = element.workflowInstanceDataFields.ApplicationId;
let res = await this.processes.GetDocumentDetails(DocId, '361').toPromise();
let date = new Date(element.taskStartDate);
date.setMonth(date.getMonth() + 1);
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds();
let task = {
"SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject,
"Senders": element.workflowInstanceDataFields.Sender,
"CreateDate": taskDate,
"DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
"Remetente": element.workflowInstanceDataFields.Remetente,
"DocumentsQty": res.DocumentsTotal,
"DocId": element.workflowInstanceDataFields.DocIdDiferimento,
"WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName,
}
this.diplomasList.push(task);
this.diplomasList = removeDuplicate( this.diplomasList)
});
this.showLoader = false;
break;
case 'assinados':
//this.diplomasList = new Array();
let diplomasAssinados = data.diplomas.reverse().filter(data => data.activityInstanceName == "Diploma Assinado");
diplomasAssinados.forEach(async element => {
let DocId = element.workflowInstanceDataFields.FolderID;
let ApplicationId = element.workflowInstanceDataFields.ApplicationId;
let res = await this.processes.GetDocumentDetails(DocId, '361').toPromise();
let date = new Date(element.taskStartDate);
date.setMonth(date.getMonth() + 1);
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds();
let task = {
"SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject,
"Senders": element.workflowInstanceDataFields.Sender,
"CreateDate": taskDate,
"DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
"Remetente": element.workflowInstanceDataFields.Remetente,
"DocumentsQty": this.totalDocs,
"DocId": element.workflowInstanceDataFields.DocIdDiferimento,
"WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName,
}
this.diplomasList.push(task);
this.diplomasList = removeDuplicate( this.diplomasList)
});
this.showLoader = false;
break;
}
});
} */
async getTotalDocs(DocId: any) {
let res = await this.processes.GetDocumentDetails(DocId, '361').toPromise();
@@ -202,11 +128,11 @@ export class DiplomasPage implements OnInit, OnDestroy {
let task = this.pipeTask(element);
diplomasAssinadoList.push(task);
console.log('DIPLOMAS ASSINADOS', task)
// console.log('DIPLOMAS ASSINADOS', task)
});
this.diplomasAssinadoList = this.sortService.sortDate(diplomasAssinadoList, 'CreateDate')
console.log('DIPLOMAS ASSINADOS', this.diplomasAssinadoList)
// console.log('DIPLOMAS ASSINADOS', this.diplomasAssinadoList)
}, (error) => {
this.getFromDb()
@@ -101,9 +101,8 @@
</div>
<div *ngIf="loadedEvent" class="aside-right flex-column height-100">
{{ loadedEvent.activityInstanceName }}
<div class="aside-buttons">
<button full class="btn-cancel" shape="round" *ngIf="loadedEvent.activityInstanceName == 'Aprovar Evento'">Editar evento</button>
<button (click)="editar(loadedEvent.serialNumber)" full class="btn-cancel" shape="round" *ngIf="loadedEvent.activityInstanceName == 'Aprovar Evento'">Editar evento</button>
<button (click)="approveTask(loadedEvent.serialNumber)" full class="btn-cancel" shape="round" *ngIf="loadedEvent.activityInstanceName == 'Aprovar Evento'">Aprovar</button>
<button (click)="emendTask(loadedEvent.serialNumber)" class="btn-cancel" shape="round" >Rever</button>
<div class="solid"></div>
@@ -657,8 +657,8 @@ export class ExpedienteDetailPage implements OnInit {
this.newGroup();
}
else {
console.log(this.task)
console.log(this.fulltask)
// console.log(this.task)
// console.log(this.fulltask)
this.dataService.set("newGroup", true);
this.dataService.set("task", this.task);
this.dataService.set("newGroupName", this.task.Folio);
@@ -108,7 +108,6 @@ export class GabineteDigitalPage implements OnInit {
despachoStore = DespachoStore;
eventoaprovacaostore = EventoAprovacaoStore;
pedidosstore = PedidosStore;
// expedienteprstore = ExpedienteprStore;
despachoprstore = DespachosprStore;
totalDocumentStore = TotalDocumentStore
deplomasStore = DeplomasStore
@@ -138,7 +137,6 @@ export class GabineteDigitalPage implements OnInit {
private router: Router,
authService: AuthService,
public waitForDomService: WaitForDomService,
//private notificationsService: NotificationsService,
private despachoRule: DespachoService,
private sqliteservice: SqliteService,
private platform: Platform,
@@ -190,7 +188,7 @@ export class GabineteDigitalPage implements OnInit {
selector: 'app-gabinete-digital ion-content .aside-wrapper',
callback: () => {
this.checkRoutes();
console.log('FIRST CALL')
// console.log('FIRST CALL')
this.LoadCounts();
}
})
@@ -202,7 +200,7 @@ export class GabineteDigitalPage implements OnInit {
this.waitForDomService.selector({
selector: 'app-gabinete-digital ion-content .aside-wrapper',
callback: () => {
console.log('SECOND CALL')
// console.log('SECOND CALL')
this.loadAllProcesses();
}
})
@@ -421,14 +419,6 @@ export class GabineteDigitalPage implements OnInit {
checkUser() {
this.selectedElement = 'allProcessesTag';
this.showAllProcesses = true;
/* switch(this.loggeduser.Profile){
case 'MDGPR':
this.showExpedients = true;
break;
case 'PR':
this.showExpedientesPr = true;
break;
} */
}
hideRefreshButton() {
@@ -545,6 +535,7 @@ export class GabineteDigitalPage implements OnInit {
async LoadCounts() {
let expedientes;
this.showLoader = true
try {
expedientes = await this.processesbackend.GetTaskListExpediente(false).toPromise();
@@ -618,6 +609,8 @@ export class GabineteDigitalPage implements OnInit {
this.count_total_pending = Object.keys(pendentes).length;
this.pendentesstore.count = this.count_total_pending;
pendentes = pendentes.map((element)=> this.customTaskPipe.transform(element))
this.pendentesstore.reset(pendentes);
let depachoAPI: any = await this.processesbackend.GetTasksList("Despacho do Presidente da República", false).toPromise();
@@ -657,7 +650,30 @@ export class GabineteDigitalPage implements OnInit {
let diplomasValidar = depachoAPI.filter(data => data.activityInstanceName == "Revisar Diploma");
this.count_dip_pv = Object.keys(diplomasValidar).length;
this.deplomasStore.resetDiplomasReview(diplomasValidar)
diplomasValidar = diplomasValidar.filter(data => data.activityInstanceName != "Tarefa de Despacho");
this.deplomasStore.resetDiplomasReview(diplomasValidar.map((element)=> {
let date = new Date(element.taskStartDate);
date.setMonth(date.getMonth() + 1);
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds();
return {
"SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject,
"Senders": element.workflowInstanceDataFields.Sender,
"CreateDate": taskDate,
"DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
"Remetente": element.workflowInstanceDataFields.Remetente,
"DocumentsQty": element.totalDocuments,
"DocId": element.workflowInstanceDataFields.DocIdDiferimento,
"WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName,
"Status": element.workflowInstanceDataFields.Status,
}
}))
let diplomasAssinar = depachoAPI.filter(data => data.activityInstanceName == "Assinar Diploma");
@@ -112,7 +112,7 @@ export class PendentesPage implements OnInit {
this.skeletonLoader = false;
}, (error) => {
if(error.status == 0){
if(error.status == 0) {
this.getFromDb();
}
})
+17 -1
View File
@@ -104,7 +104,23 @@ export class SearchPage implements OnInit {
if(ApplicationType == '8' ) {
this.viewDocumentDetail(Id, ApplicationType);
// this.viewDocumentDetail(Id, ApplicationType);
const modal = await this.modalController.create({
component: ViewDocumentPage,
componentProps: {
trustedUrl: '',
file: {
title: item.Assunto,
url: '',
title_link: '',
},
applicationId: ApplicationType,
docId: item.Id,
},
cssClass: 'modal modal-desktop'
});
await modal.present();
} else if (ApplicationType == '361') {
+3 -3
View File
@@ -88,7 +88,7 @@ export class ChatService {
}
getAllUsers() {
console.log(this.options)
// console.log(this.options)
return this.http.get(environment.apiChatUrl + 'users.list', this.options);
}
getAllConnectedUsers() {
@@ -375,8 +375,8 @@ export class ChatService {
SessionStore.user.ChatData = data
SessionStore.save()
this.setheader()
console.log(res)
console.log(SessionStore.user.ChatData)
// console.log(res)
// console.log(SessionStore.user.ChatData)
});
}
@@ -337,7 +337,7 @@ export class WsChatMethodsService {
this.dm[roomId] = room
this._dm.push(room)
console.log(this._dm)
// console.log(this._dm)
this.dmCount++
} else {
+1 -1
View File
@@ -10,7 +10,7 @@ self.addEventListener('activate', function(event) {
self.addEventListener('notificationclick', function(event) {
// Close the notification when it is clicked
event.notification.close();
console.log(event)
// console.log(event)
});
@@ -71,7 +71,7 @@ export class ApproveEventPage implements OnInit {
this.processes.GetTask(this.serialNumber).subscribe(res => {
this.loadedEvent = res;
console.log(this.loadedEvent);
// console.log(this.loadedEvent);
this.today = new Date(res.workflowInstanceDataFields.StartDate);
//
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
@@ -233,7 +233,7 @@ export class EditEventPage implements OnInit {
}
calculetedLastOccurrence(type:number){
console.log(type);
// console.log(type);
var valor;
var opcao: boolean;
if (type == 0) {
@@ -377,7 +377,7 @@ export class NewEventPage implements OnInit {
}
calculetedLastOccurrence(type:number){
console.log(type);
// console.log(type);
var valor;
var opcao: boolean;
if (type == 0) {
@@ -53,7 +53,7 @@
<p>{{customDate}}</p>
<p *ngIf="toDateString(loadedEvent.StartDate) == toDateString(loadedEvent.EndDate)">das {{loadedEvent.StartDate | date: 'HH:mm'}} às {{loadedEvent.EndDate | date: 'HH:mm'}}</p>
<p *ngIf="toDateString(loadedEvent.StartDate) != toDateString(loadedEvent.EndDate)">{{loadedEvent.StartDate | date: 'd/M/yy' }} - {{ loadedEvent.StartDate | date: 'dd/M/yy'}} </p>
<p>
<p *ngIf="loadedEvent.EventRecurrence">
<span *ngIf="loadedEvent.EventRecurrence.Type == 0">Diário</span>
<span *ngIf="loadedEvent.EventRecurrence.Type == 1">Semanal</span>
<span *ngIf="loadedEvent.EventRecurrence.Type == 2">Mensal</span>
@@ -105,7 +105,7 @@ export class ViewEventPage implements OnInit {
this.eventsService.getEvent(this.eventId).subscribe(res => {
this.loadedEvent = res;
console.log(this.loadedEvent);
// console.log(this.loadedEvent);
this.today = new Date(res.StartDate);
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
}, (error)=> {
@@ -3,7 +3,7 @@
<div class="main-header">
<div class="header-top">
<div class="middle">
<ion-label class="title">{{wsChatMethodsService.getGroupRoom(roomId).name}}</ion-label>
<ion-label class="title">{{groupNameFormart }}</ion-label>
</div>
<div class="right">
<button title="Menu" class="btn-no-color" (click)="openGroupMessagesOptions()">
@@ -102,6 +102,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
audioPermissionStatus: 'granted'| 'denied' | 'prompt' | null = null
sessionStore = SessionStore
groupNameFormart = "";
constructor(
public wsChatMethodsService: WsChatMethodsService,
@@ -131,6 +132,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
private fileOpener: FileOpener,
) {
this.loggedUserChat = authService.ValidatedUserChat['data'];
@@ -148,6 +150,9 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
//
this.wsChatMethodsService.openRoom(this.roomId)
this.wsChatMethodsService.getGroupRoom(this.roomId).scrollDown = this.scrollToBottomClicked
this.groupNameFormart = this.wsChatMethodsService.getGroupRoom(this.roomId).name.split('-').join(' ')
this.showAvatar = false
@@ -162,7 +167,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
ngOnInit() {
this.chatService.refreshtoken();
console.log(this.roomId)
// console.log(this.roomId)
this.loggedUser = this.loggedUserChat;
//setTimeout(() => {
this.getRoomInfo()
@@ -402,7 +407,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
async getRoomInfo() {
this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory({});
let room = await this.chatService.getRoomInfo(this.roomId).toPromise();
console.log('ROOM',room)
// console.log('ROOM',room)
this.room = room['room'];
if (this.room.name) {
this.roomName = this.room.name.split('-').join(' ');
@@ -213,7 +213,15 @@
</div>
<div class="width-100 pl-20 pr-20">
<span *ngIf="!lastAudioRecorded">{{durationDisplay}}</span>
<audio [src]="audioRecorded" class="d-flex width-100 mt-10 mb-10" *ngIf="lastAudioRecorded" controls controlsList="nodownload noplaybackrate"></audio>
<div class=" audioDiv d-flex width-100 mt-10 mb-10" *ngIf="lastAudioRecorded">
<!-- <button class="audioButtonPlay" fill="clear" (click)="start(audioRecorded)" *ngIf="!isPlaying"> <ion-icon slot="icon-only" name="play"></ion-icon> </button>
<button class="audioButtonPlay" fill="clear" (click)="togglePlayer(true)" *ngIf="isPlaying"> <ion-icon slot="icon-only" name="pause"></ion-icon> </button> -->
<div (click)="start(audioRecorded)" *ngIf="!isPlaying" > <ion-icon slot="icon-only" name="play"></ion-icon> </div>
<div (click)="togglePlayer(isPlaying)" *ngIf="isPlaying"> <ion-icon slot="icon-only" name="pause"></ion-icon> </div>
<!-- <label>{{audioDuration}}</label> -->
<ion-range #range [(ngModel)]="audioProgress" max="100" (mouseup)="seek()"></ion-range>
</div>
<!-- <audio [src]="audioRecorded" class="d-flex width-100 mt-10 mb-10" *ngIf="lastAudioRecorded" controls controlsList="nodownload noplaybackrate"></audio> -->
</div>
<div class="container width-100 d-flex">
+237 -194
View File
@@ -1,106 +1,117 @@
@import '~src/function.scss';
.header-toolbar{
--background:transparent;
--opacity: 1;
.main-header{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
background-color: #fff;
overflow:hidden;
//padding: 0px 20px 0px 20px;
color:#000;
transform: translate3d(0, 1px, 0);
padding: 30px 20px 0 20px !important;
.header-toolbar {
--background: transparent;
--opacity: 1;
.header-top{
width: 100%;
overflow: auto;
//padding: 0 !important;
background: #fff;
.middle{
//padding: 0!important;
float: left;
width:calc(100% - 77px);
margin: 2px 0 0 5px;
display: flex;
align-items: center;
.main-header {
width: 100%;
/* 400px */
height: 100%;
font-family: Roboto;
background-color: #fff;
overflow: hidden;
//padding: 0px 20px 0px 20px;
color: #000;
transform: translate3d(0, 1px, 0);
padding: 30px 20px 0 20px !important;
}
.right{
padding: 0!important;
float: right;
font-size: 25px;
color: #0782c9;
margin: 5px 0 0 0;
}
}
.header-bottom{
width: 95%;
overflow: auto;
.header-top {
width: 100%;
overflow: auto;
//padding: 0 !important;
background: #fff;
.middle {
//padding: 0!important;
float: left;
width: calc(100% - 77px);
margin: 2px 0 0 5px;
display: flex;
align-items: center;
.header-bottom-icon{
width: 30px;
font-size: 25px;
float: left;
padding: 2px;
}
}
.header-bottom-contacts{
width: 275px;
font-size: 15px;
color: #797979;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
float: left;
padding: 5px;
margin: 1px;
}
}
.title{
font-size: 25px;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis !important;
float: left;
}
.div-icon{
width: 40px;
float: right;
font-size: 35px;
overflow: auto;
padding: 1px;
}
.div-icon ion-icon{
float: right;
padding-left: 20px;
}
.right {
padding: 0 !important;
float: right;
font-size: 25px;
color: #0782c9;
margin: 5px 0 0 0;
}
}
}
ion-content{
width: 100%;
height: 100%;
padding: 30px 20px 0 20px !important;
.welcome-text{
.header-bottom {
width: 95%;
overflow: auto;
.header-bottom-icon {
width: 30px;
font-size: 25px;
float: left;
padding: 2px;
}
.header-bottom-contacts {
width: 275px;
font-size: 15px;
color: #797979;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
float: left;
padding: 5px;
margin: 1px;
}
}
.title {
font-size: 25px;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis !important;
float: left;
}
.div-icon {
width: 40px;
float: right;
font-size: 35px;
overflow: auto;
padding: 1px;
}
.div-icon ion-icon {
float: right;
padding-left: 20px;
}
}
}
ion-content {
width: 100%;
height: 100%;
padding: 30px 20px 0 20px !important;
.welcome-text {
/* width: 322px; */
/* width: em(422px); */
width: 100%;
background: #ebebeb;
text-align: center;
font-size: 13px;
color: #797979;
padding: 10px;
margin: 0 auto;
line-height: 1.2rem;
//margin: 20px 39px 25px;
border-radius: 8px;
border: 1px solid red;
}
.info-meeting{
background: #ebebeb;
text-align: center;
font-size: 13px;
color: #797979;
padding: 10px;
margin: 0 auto;
line-height: 1.2rem;
//margin: 20px 39px 25px;
border-radius: 8px;
border: 1px solid red;
}
.info-meeting {
/* width: 322px; */
width: em(422px);
background: var(--chat-alert-msg-color);
@@ -113,23 +124,26 @@
/* margin: 15px 0px 15px 0px; */
border-radius: 8px;
.info-meeting-small{
.info-meeting-small {
font-size: 10px;
font-style: italic;
}
.info-meeting-medium{
.info-meeting-medium {
font-size: 12px;
}
.info-meeting-normal{
.info-meeting-normal {
font-weight: 700;
}
.info-meeting-normal:hover{
.info-meeting-normal:hover {
text-decoration: underline;
color: #0782c9;
}
}
}
.messages{
.messages {
font-size: 13px;
font-family: Roboto;
overflow: auto;
@@ -145,96 +159,101 @@
word-wrap: break-word;
-webkit-overflow-scrolling: touch;
.container-width-100{
.container-width-100 {
width: 100%;
overflow: auto;
}
.incoming-true, .incoming-false{
padding: 15px 20px;
border-radius: 10px;
.incoming-true,
.incoming-false {
padding: 15px 20px;
border-radius: 10px;
}
.incoming-true{
.incoming-true {
margin: 10px 75px 10px 20px;
background: #ebebeb;
float: left;
}
}
.incoming-false{
margin: 10px 20px 10px 75px;
background: var(--chat-incoming-msg-color);
float: right;
}
.title{
display: inline;
color: var(--title-text-color);
font-weight: bold;
margin-bottom: 5px;
.time{
color: #797979;
text-align: right;
margin-left: 10px;
float: right;
}
background: #ebebeb;
float: left;
}
.message{
.message-attachments{
.file{
align-items: center;
}
.file-details{
width: 100%;
.incoming-false {
margin: 10px 20px 10px 75px;
background: var(--chat-incoming-msg-color);
float: right;
}
.file-title{
color: #000;
text-decoration: underline;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis !important;
}
.file-title:hover{
color: #0782c9;
}
.title {
display: inline;
color: var(--title-text-color);
font-weight: bold;
margin-bottom: 5px;
.time {
color: #797979;
text-align: right;
margin-left: 10px;
float: right;
}
}
.message {
.message-attachments {
.file {
align-items: center;
.file-details {
width: 100%;
.file-title {
color: #000;
text-decoration: underline;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis !important;
}
.file-title:hover {
color: #0782c9;
}
}
}
}
}
}
}
ion-footer{
padding-top: 7.5px;
padding-bottom: 7.5px;
ion-footer {
padding-top: 7.5px;
padding-bottom: 7.5px;
.container{
.container {
justify-content: center;
justify-content: space-evenly;
align-items: center;
}
.chat-icon-options{
display:block !important;
.chat-icon-options {
display: block !important;
font-size: 35px;
float: right !important;
margin-top: 5px;
}
.chat-icon-send{
.chat-icon-send {
font-size: 45px;
margin: 0 auto;
margin-top: 4px;
}
.chat-icon-download{
.chat-icon-download {
font-size: 95px;
margin: 0 auto;
margin-top: 4px;
border: 1px solid red;
}
.type-message{
.type-message {
display: flex;
border: 1px solid #ebebeb;
border-radius: 25px;
@@ -243,65 +262,71 @@
align-items: center;
overflow: auto;
ion-textarea{
margin: 0 !important;
align-self: center;
}
ion-textarea {
margin: 0 !important;
align-self: center;
}
}
}
}
.text-color-blue{
font-size: 15px;
color: #0782c9;
font-weight: 500;
letter-spacing: normal;
}
.user-status-online{
display: block;
float: left;
color:#99e47b;
padding-left: 10px;
}
.online{
.text-color-blue {
font-size: 15px;
color: #0782c9;
font-weight: 500;
letter-spacing: normal;
}
.user-status-online {
display: block;
float: left;
color:#99e47b;
color: #99e47b;
padding-left: 10px;
}
.offline{
color:#cbced1;
display: block;
float: left;
padding-left: 10px;
}
.away{
color:#ffd21f;
display: block;
float: left;
padding-left: 10px;
}
.invisible{
color:#cbced1;
.online {
display: block;
float: left;
padding-left: 10px;
}
.busy{
color:#f5455c;
display: block;
float: left;
padding-left: 10px;
float: left;
color: #99e47b;
padding-left: 10px;
}
.float-status{
.offline {
color: #cbced1;
display: block;
float: left;
padding-left: 10px;
}
.away {
color: #ffd21f;
display: block;
float: left;
padding-left: 10px;
}
.invisible {
color: #cbced1;
display: block;
float: left;
padding-left: 10px;
}
.busy {
color: #f5455c;
display: block;
float: left;
padding-left: 10px;
}
.float-status {
position: relative !important;
float: right;
display: flex;
align-items: self-end;
}
.float-status-image{
.float-status-image {
position: relative !important;
float: right;
display: flex;
@@ -337,7 +362,7 @@ display: block;
padding-right: 5px;
}
.div-do-audio{
.div-do-audio {
border: 1px solid red !important;
overflow: auto;
}
@@ -346,3 +371,21 @@ display: block;
flex: auto;
margin-right: 9px;
}
.divColor {
color: #000;
width: 10ch;
height: 10ch;
}
.audioDiv {
border-radius: 25px;
background: #cbced1;
padding: 20px;
height: 50px;
}
.audioButtonPlay {
margin-bottom: 100%;
right: 50%;
}
+57 -1
View File
@@ -1,5 +1,5 @@
import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';
import { AnimationController, GestureController, ModalController, PopoverController } from '@ionic/angular';
import { AnimationController, GestureController, IonRange, ModalController, PopoverController } from '@ionic/angular';
import { AuthService } from 'src/app/services/auth.service';
import { ChatService } from 'src/app/services/chat.service';
import { ToastService } from 'src/app/services/toast.service';
@@ -32,6 +32,8 @@ import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
import { Howl } from 'howler';
import { runInThisContext } from 'vm';
const IMAGE_DIR = 'stored-images';
@@ -90,6 +92,12 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
audioPermissionStatus: 'granted'| 'denied' | 'prompt' | null = null
sessionStore = SessionStore
audioPlay: Howl = null;
isPlaying = false;
audioProgress = 0;
audioDuration = 0;
audioTimer:any;
@ViewChild('range', {static: false}) range: IonRange;
constructor(
public popoverController: PopoverController,
@@ -1061,6 +1069,54 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
// msg.receptorReceive()
// alert('cool!')
}
start(track) {
if(this.audioPlay){
this.audioPlay.stop();
}
this.audioPlay = new Howl({
src: [track.changingThisBreaksApplicationSecurity],
onplay: () => {
console.log('audio play')
this.isPlaying = true;
this.updateProgress()
},
onend: () => {
console.log('audio end')
this.isPlaying = false;
clearTimeout(this.audioTimer)
this.audioProgress = 0
},
})
this.audioPlay.play();
}
togglePlayer(pause) {
this.isPlaying = !pause;
if(pause) {
this.audioPlay.pause();
} else {
this.audioPlay.play();
}
}
seek() {
let newValue = +this.range.value;
let duration = this.audioPlay.duration();
this.audioPlay.seek(duration * (newValue / 100));
}
updateProgress() {
let seek = this.audioPlay.seek();
this.audioProgress = (seek / this.audioPlay.duration()) * 100 || 0;
console.log(this.audioDuration)
this.audioTimer = setTimeout(() => {
this.updateProgress()
},1000)
}
}
@@ -77,7 +77,10 @@ export class DiplomasPage implements OnInit {
diplomasList.push(task);
});
diplomasList = diplomasList.filter(data => data.activityInstanceName != "Tarefa de Despacho");
this.diplomasList = this.sortService.sortDate(diplomasList, 'CreateDate')
this.deplomasStore.resetDiplomasReview(this.diplomasList)
let diplomasAssinadoList = []
@@ -131,10 +131,6 @@
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class width-100">
<<<<<<< HEAD
=======
>>>>>>> secrete-group
<mat-form-field appearance="none"
class="width-100 date-hour-picker">
@@ -85,8 +85,8 @@ export class EventsToApprovePage implements OnInit {
else if(this.segment == 'PR') {
let prEventsOficial = await this.processes.GetTasksList('Agenda Oficial PR', false).toPromise();
let prEventsPessoal = await this.processes.GetTasksList('Agenda Pessoal PR', false).toPromise();
console.log(prEventsOficial)
console.log(prEventsPessoal)
// console.log(prEventsOficial)
// console.log(prEventsPessoal)
this.eventsPRList = prEventsOficial.concat(prEventsPessoal);
this.eventsPRList = this.sortService.sortArrayByDate(this.eventsPRList)
this.eventsPRList = (this.eventsPRList || []).filter(function(item) {
@@ -105,12 +105,12 @@ export class EventsToApprovePage implements OnInit {
getFromDB() {
this.storage.get('event-to-aproveMD').then((events = []) => {
this.eventsMDGPRList = events
console.log('DB',this.eventsMDGPRList)
// console.log('DB',this.eventsMDGPRList)
})
this.storage.get('event-to-aprovePR').then((events) => {
this.eventsPRList = events
console.log('DB',this.eventsPRList)
// console.log('DB',this.eventsPRList)
})
}
@@ -55,29 +55,31 @@ export class PendentesPage implements OnInit {
async LoadList(){
this.skeletonLoader = true;
this.processes.GetPendingTasks(false).subscribe(async res => {
let pendentes = await this.processes.GetPendingTasks(false).toPromise();
let pendentesList = [];
this.processes.GetPendingTasks(false).subscribe(async (pendentes) => {
this.skeletonLoader = false;
pendentes.forEach(element => {
let task: customTask = this.customTaskPipe.transform(element);
pendentesList.push(task);
});
let pendentesList = [];
pendentesList = removeDuplicate( pendentesList)
pendentesList = this.sortService.sortDate(pendentesList, 'CreateDate')
pendentes.forEach(element => {
let task: customTask = this.customTaskPipe.transform(element);
pendentesList.push(task);
});
this.listToPresent = pendentesList
this.pendentesstore.reset(pendentesList);
this.storage.set('pendente-list',pendentesList).then(() => {
pendentesList = removeDuplicate( pendentesList)
pendentesList = this.sortService.sortDate(pendentesList, 'CreateDate')
this.listToPresent = pendentesList
this.pendentesstore.reset(pendentesList);
this.storage.set('pendente-list',pendentesList).then(() => {
})
}, (error) => {
if(error.status == 0){
this.getFromDb();
}
})
this.skeletonLoader = false;
}, (error) => {
if(error.status == 0){
this.getFromDb();
}
})
}
getFromDb() {
@@ -99,7 +99,7 @@ export class EditActionPage implements OnInit {
DateEnd: this.folder.DateEnd,
ActionType: this.folder.ActionType,
}
console.log(this.folder.DateEnd);
// dconsole.log(this.folder.DateEnd);
const loader = this.toastService.loading()