mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-20 05:16:07 +00:00
Merge branch 'developer' of https://bitbucket.org/equilibriumito/gabinete-digital into developer
This commit is contained in:
+2
-1
@@ -41,4 +41,5 @@ npm-debug.log*
|
|||||||
src/app/architect/
|
src/app/architect/
|
||||||
src/environments/environment.e2e.ts
|
src/environments/environment.e2e.ts
|
||||||
.env
|
.env
|
||||||
platforms_
|
platforms_
|
||||||
|
_platforms
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
<ion-tab-button tab="gabinete-digital">
|
<ion-tab-button tab="gabinete-digital">
|
||||||
<!-- <ion-icon name="file-tray-stacked"></ion-icon> -->
|
<!-- <ion-icon name="file-tray-stacked"></ion-icon> -->
|
||||||
<ion-icon class="nav-icon" src="assets/images/icons-nav-gabinete-inactive.svg"></ion-icon>
|
<ion-icon class="nav-icon" src="assets/images/icons-nav-gabinete-inactive.svg"></ion-icon>
|
||||||
<ion-badge color="danger" *ngIf="p.userRole(['MDGPR'])" >{{ documentCounterService.mdTotalDocument }}</ion-badge>
|
<ion-badge color="danger" *ngIf="p.userRole(['MDGPR'])" >{{ totalDocumentStore.count }}</ion-badge>
|
||||||
<ion-badge color="danger" *ngIf="p.userRole(['PR'])" >{{ documentCounterService.prTotalDocument }}</ion-badge>
|
<ion-badge color="danger" *ngIf="p.userRole(['PR'])" >{{ totalDocumentStore.count }}</ion-badge>
|
||||||
<ion-label>Gabinete</ion-label>
|
<ion-label>Gabinete</ion-label>
|
||||||
</ion-tab-button>
|
</ion-tab-button>
|
||||||
<ion-tab-button tab="publications">
|
<ion-tab-button tab="publications">
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import { ToastService } from '../services/toast.service';
|
|||||||
import { ToDayEventStorage } from '../store/to-day-event-storage.service';
|
import { ToDayEventStorage } from '../store/to-day-event-storage.service';
|
||||||
import { DocumentCounterService } from 'src/app/OtherService/document-counter.service'
|
import { DocumentCounterService } from 'src/app/OtherService/document-counter.service'
|
||||||
import { PermissionService } from '../OtherService/permission.service';
|
import { PermissionService } from '../OtherService/permission.service';
|
||||||
|
import { TotalDocumentService, TotalDocumentStore } from '../store/total-document.service';
|
||||||
|
|
||||||
|
|
||||||
// import * as Sentry from "@sentry/browser";
|
// import * as Sentry from "@sentry/browser";
|
||||||
@@ -42,8 +43,8 @@ export class HomePage implements OnInit {
|
|||||||
totalExpediente = 0;
|
totalExpediente = 0;
|
||||||
profile: string;
|
profile: string;
|
||||||
|
|
||||||
|
|
||||||
toDayEventStorage = ToDayEventStorage
|
toDayEventStorage = ToDayEventStorage
|
||||||
|
totalDocumentStore = TotalDocumentStore
|
||||||
|
|
||||||
adding: "intervenient" | "CC" = "intervenient";
|
adding: "intervenient" | "CC" = "intervenient";
|
||||||
mobileComponent = {
|
mobileComponent = {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { Participant } from 'src/app/models/participant.model';
|
|||||||
import { Folder } from 'src/app/models/folder.model';
|
import { Folder } from 'src/app/models/folder.model';
|
||||||
import { AuthService } from 'src/app/services/auth.service';
|
import { AuthService } from 'src/app/services/auth.service';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { environment } from 'src/environments/environment';
|
|
||||||
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
|
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
|
||||||
import { ExpedienteDetailPage } from 'src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page';
|
import { ExpedienteDetailPage } from 'src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page';
|
||||||
import { SearchDocument } from 'src/app/models/search-document';
|
import { SearchDocument } from 'src/app/models/search-document';
|
||||||
@@ -20,6 +19,7 @@ import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-pick
|
|||||||
import { PermissionService } from 'src/app/OtherService/permission.service';
|
import { PermissionService } from 'src/app/OtherService/permission.service';
|
||||||
import { DespachoService } from 'src/app/Rules/despacho.service';
|
import { DespachoService } from 'src/app/Rules/despacho.service';
|
||||||
import { PedidoService } from 'src/app/Rules/pedido.service'
|
import { PedidoService } from 'src/app/Rules/pedido.service'
|
||||||
|
import { fullTask } from 'src/app/models/dailyworktask.model';
|
||||||
|
|
||||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||||
parse: {
|
parse: {
|
||||||
@@ -50,7 +50,7 @@ export class CreateProcessPage implements OnInit {
|
|||||||
];
|
];
|
||||||
taskType:string;
|
taskType:string;
|
||||||
task: any;
|
task: any;
|
||||||
fulltask: any
|
fulltask: fullTask;
|
||||||
|
|
||||||
taskParticipants: any = [];
|
taskParticipants: any = [];
|
||||||
taskParticipantsCc: any = [];
|
taskParticipantsCc: any = [];
|
||||||
@@ -121,7 +121,7 @@ export class CreateProcessPage implements OnInit {
|
|||||||
let SourceType;
|
let SourceType;
|
||||||
let SourceSecFsId;
|
let SourceSecFsId;
|
||||||
|
|
||||||
if(this.task.workflowInstanceDataFields.FolderID || this.task.FolderId) {
|
if(this.task.workflowInstanceDataFields.FolderID || this.task.FolderId || this.task.FolderID) {
|
||||||
SourceId = this.task.workflowInstanceDataFields.FolderID
|
SourceId = this.task.workflowInstanceDataFields.FolderID
|
||||||
SourceType = 'FOLDER'
|
SourceType = 'FOLDER'
|
||||||
SourceSecFsId = 361
|
SourceSecFsId = 361
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ export class DailyWorkTask{
|
|||||||
Status: string;
|
Status: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export class fullTask {
|
export class fullTask {
|
||||||
actions: null;
|
actions: null;
|
||||||
activityInstanceName: string;
|
activityInstanceName: string;
|
||||||
@@ -30,6 +28,7 @@ export class fullTask {
|
|||||||
workflowID: number;
|
workflowID: number;
|
||||||
totalDocuments: any;
|
totalDocuments: any;
|
||||||
workflowInstanceDataFields: {
|
workflowInstanceDataFields: {
|
||||||
|
DispatchNumber: any,
|
||||||
AttachmentsProcessLastInstanceId: number,
|
AttachmentsProcessLastInstanceId: number,
|
||||||
Sender: string,
|
Sender: string,
|
||||||
ViewerRequest: string,
|
ViewerRequest: string,
|
||||||
@@ -67,8 +66,20 @@ export class fullTask {
|
|||||||
workflowInstanceID: number
|
workflowInstanceID: number
|
||||||
workflowName: string
|
workflowName: string
|
||||||
}
|
}
|
||||||
export class tasksList extends fullTask{}
|
|
||||||
export class customTaskList {
|
export class customFullTask {
|
||||||
|
serialNumber: string;
|
||||||
|
taskStartDate: string;
|
||||||
|
isEvent: true;
|
||||||
|
workflowInstanceDataFields: {
|
||||||
|
FsId: string,
|
||||||
|
FolderID: number,
|
||||||
|
DocId: number,
|
||||||
|
Subject: string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class customTask {
|
||||||
SerialNumber: string
|
SerialNumber: string
|
||||||
Folio : string
|
Folio : string
|
||||||
Senders: string
|
Senders: string
|
||||||
@@ -82,4 +93,3 @@ export class customTaskList {
|
|||||||
activityInstanceName : string
|
activityInstanceName : string
|
||||||
Status : string
|
Status : string
|
||||||
}
|
}
|
||||||
export class customTask extends customTaskList{}
|
|
||||||
+110
-24
@@ -1,7 +1,15 @@
|
|||||||
import { EventRecurrence } from './agenda/eventrecurrence.model';
|
|
||||||
import { EventBody } from './eventbody.model';
|
import { EventBody } from './eventbody.model';
|
||||||
import { EventPerson } from './eventperson.model';
|
import { EventPerson } from './eventperson.model';
|
||||||
|
|
||||||
|
|
||||||
|
export interface EventRecurrence {
|
||||||
|
Type: number | string;
|
||||||
|
Day?: number;
|
||||||
|
DayOfWeek?: number;
|
||||||
|
Month?: number | string;
|
||||||
|
LastOccurrence?: Date | string;
|
||||||
|
}
|
||||||
|
|
||||||
export class Event{
|
export class Event{
|
||||||
ParentId?: string;
|
ParentId?: string;
|
||||||
EventId: string;
|
EventId: string;
|
||||||
@@ -29,27 +37,105 @@ export class Event{
|
|||||||
} */
|
} */
|
||||||
}
|
}
|
||||||
|
|
||||||
export class EventToApproveEdit {
|
|
||||||
"serialNumber": "9296_86"
|
// event to approve details ================================================
|
||||||
"Body": "Testando"
|
export interface Originator {
|
||||||
"Location": "Testland"
|
email: string;
|
||||||
"Subject": "Teste 0123"
|
manager: string;
|
||||||
"StartDate": "2021-05-12T10:30:00"
|
displayName: string;
|
||||||
"EndDate": "2021-05-12T11:30:00"
|
fqn: string;
|
||||||
"Private": false
|
username: string;
|
||||||
"ReviewUserComment": ""
|
|
||||||
"MDName": "Paulo Pinto"
|
|
||||||
"OccurrenceType": "-1"
|
|
||||||
"LastOccurrence": "2021-07-14"
|
|
||||||
"MDEmail": "paulo.pinto@gabinetedigital.local"
|
|
||||||
"Agenda": "Oficial" | "Pessoal"
|
|
||||||
"EventType": "Reunião"
|
|
||||||
"IsRecurring": false
|
|
||||||
"IsAllDayEvent": true
|
|
||||||
"ParticipantsList": {
|
|
||||||
"EmailAddress": "gilson.manuel@gabinetedigital.local",
|
|
||||||
"Name": "Gilson Manuel",
|
|
||||||
"IsRequired": true
|
|
||||||
}[]
|
|
||||||
"Message": "Recebeu um novo"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface WorkflowInstanceDataFields {
|
||||||
|
Body: string;
|
||||||
|
Location: string;
|
||||||
|
Subject: string;
|
||||||
|
StartDate: string;
|
||||||
|
EndDate: string;
|
||||||
|
Participants?: string;
|
||||||
|
CC?: string;
|
||||||
|
ReviewUserComment?: string;
|
||||||
|
Role?: number;
|
||||||
|
MDName: string;
|
||||||
|
MDEmail: string;
|
||||||
|
OriginatorComments?: string;
|
||||||
|
Status?: string;
|
||||||
|
TimeZone?: string;
|
||||||
|
Agenda: string;
|
||||||
|
EventType: string;
|
||||||
|
EventID?: string;
|
||||||
|
IsRecurring?: any;
|
||||||
|
HasAttachments?: boolean;
|
||||||
|
ParticipantsList?: any;
|
||||||
|
EventOrganizer?: string;
|
||||||
|
CreateEvent?: string;
|
||||||
|
IsAllDayEvent: boolean;
|
||||||
|
SerializedItem?: string;
|
||||||
|
MDwxUserID?: number;
|
||||||
|
DeserializedItem?: string;
|
||||||
|
Message: string;
|
||||||
|
InstanceId: string;
|
||||||
|
Header?: string;
|
||||||
|
RecurringString?: string;
|
||||||
|
LastOccurrence: string;
|
||||||
|
OccurrenceType: string;
|
||||||
|
SerialNumber?: string;
|
||||||
|
UserEmail?: string;
|
||||||
|
PREmail?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EventToApproveDetails {
|
||||||
|
serialNumber: string;
|
||||||
|
originator?: Originator;
|
||||||
|
actions?: string[];
|
||||||
|
activityInstanceName?: string;
|
||||||
|
workflowInstanceFolio?: string;
|
||||||
|
taskStartDate?: string;
|
||||||
|
workflowID?: number;
|
||||||
|
workflowInstanceID?: number;
|
||||||
|
workflowName?: string;
|
||||||
|
workflowDisplayName?: string;
|
||||||
|
formURL?: string;
|
||||||
|
workflowInstanceDataFields: WorkflowInstanceDataFields;
|
||||||
|
totalDocuments?: any;
|
||||||
|
Documents?: any;
|
||||||
|
}
|
||||||
|
// ================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
// event event to approve ================
|
||||||
|
export interface ParticipantsList {
|
||||||
|
Id: number;
|
||||||
|
EmailAddress: string;
|
||||||
|
Name: string;
|
||||||
|
IsRequired: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export interface EventToApproveEdit {
|
||||||
|
SerialNumber: string;
|
||||||
|
Body: string;
|
||||||
|
Location: string;
|
||||||
|
Subject: string;
|
||||||
|
StartDate: Date | string;
|
||||||
|
EndDate: Date | string;
|
||||||
|
ReviewUserComment: string;
|
||||||
|
MDName: string;
|
||||||
|
MDEmail: string;
|
||||||
|
IsAllDayEvent: boolean;
|
||||||
|
Status: string;
|
||||||
|
EventType: string;
|
||||||
|
IsRecurring: boolean;
|
||||||
|
ParticipantsList: ParticipantsList[];
|
||||||
|
Message: string;
|
||||||
|
EventRecurrence: EventRecurrence;
|
||||||
|
Participants?: string;
|
||||||
|
CC?: string;
|
||||||
|
Agenda: string;
|
||||||
|
HasAttachments?: boolean;
|
||||||
|
EventOrganizer?: string;
|
||||||
|
InstanceId?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================================================================================
|
||||||
@@ -60,7 +60,7 @@ export class EditEventPage implements OnInit {
|
|||||||
|
|
||||||
this.postEvent = new Event();
|
this.postEvent = new Event();
|
||||||
this.isEventEdited = false;
|
this.isEventEdited = false;
|
||||||
this.postEvent.EventRecurrence = {Type:'-1'};
|
this.postEvent.EventRecurrence = { Type:'-1', LastOccurrence:''};
|
||||||
this.postEvent = this.navParams.get('event');
|
this.postEvent = this.navParams.get('event');
|
||||||
this.caller = this.navParams.get('caller');
|
this.caller = this.navParams.get('caller');
|
||||||
this.initCalendarName = this.postEvent.CalendarName;
|
this.initCalendarName = this.postEvent.CalendarName;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { AlertController, ModalController, NavParams, PopoverController } from '@ionic/angular';
|
import { AlertController, ModalController, NavParams, PopoverController } from '@ionic/angular';
|
||||||
import { AuthConnstants } from 'src/app/config/auth-constants';
|
|
||||||
import { Attachment } from 'src/app/models/attachment.model';
|
import { Attachment } from 'src/app/models/attachment.model';
|
||||||
import { EventBody } from 'src/app/models/eventbody.model';
|
import { EventBody } from 'src/app/models/eventbody.model';
|
||||||
import { AttachmentsService } from 'src/app/services/attachments.service';
|
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
.middle{
|
.middle{
|
||||||
padding: 0!important;
|
padding: 0!important;
|
||||||
float: left;
|
float: left;
|
||||||
width: 280px;
|
width:calc(100% - 77px);
|
||||||
margin: 2.5px 0 0 5px;
|
margin: 2.5px 0 0 5px;
|
||||||
}
|
}
|
||||||
.right{
|
.right{
|
||||||
@@ -60,6 +60,10 @@
|
|||||||
|
|
||||||
.title{
|
.title{
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden !important;
|
||||||
|
text-overflow: ellipsis !important;
|
||||||
|
float: left;
|
||||||
}
|
}
|
||||||
.div-icon{
|
.div-icon{
|
||||||
width: 40px;
|
width: 40px;
|
||||||
|
|||||||
@@ -184,6 +184,7 @@ export class GroupMessagesPage implements OnInit, AfterViewChecked {
|
|||||||
});
|
});
|
||||||
return await popover.present();
|
return await popover.present();
|
||||||
}
|
}
|
||||||
|
|
||||||
async addContacts(){
|
async addContacts(){
|
||||||
console.log(this.members);
|
console.log(this.members);
|
||||||
|
|
||||||
|
|||||||
@@ -75,8 +75,8 @@
|
|||||||
<ion-footer>
|
<ion-footer>
|
||||||
<div class="container width-100 d-flex">
|
<div class="container width-100 d-flex">
|
||||||
<div>
|
<div>
|
||||||
<button class="btn-no-color"> <!-- (click)="openChatOptions()" -->
|
<button class="btn-no-color" (click)="openChatOptions()">
|
||||||
<ion-icon class="chat-icon-options" src="assets/icon/icons-chat-options.svg"></ion-icon>
|
<ion-icon class="chat-icon-options" src="assets/images/icons-add-new-event.svg"></ion-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="width-70">
|
<div class="width-70">
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
.middle{
|
.middle{
|
||||||
padding: 0!important;
|
padding: 0!important;
|
||||||
float: left;
|
float: left;
|
||||||
width: 280px;
|
width:calc(100% - 77px);
|
||||||
margin: 2.5px 0 0 5px;
|
margin: 2.5px 0 0 5px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -70,7 +70,9 @@
|
|||||||
|
|
||||||
.title{
|
.title{
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
overflow: auto;
|
white-space: nowrap;
|
||||||
|
overflow: hidden !important;
|
||||||
|
text-overflow: ellipsis !important;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
.div-icon{
|
.div-icon{
|
||||||
@@ -154,14 +156,15 @@
|
|||||||
.container{
|
.container{
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
justify-content: space-evenly;
|
justify-content: space-evenly;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat-icon-options{
|
.chat-icon-options{
|
||||||
display:block !important;
|
display:block !important;
|
||||||
font-size: 25px;
|
font-size: 35px;
|
||||||
float: right !important;
|
float: right !important;
|
||||||
margin-top: 10px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat-icon-send{
|
.chat-icon-send{
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { ContactsPage } from 'src/app/pages/chat/messages/contacts/contacts.page
|
|||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
import { AuthService } from 'src/app/services/auth.service';
|
import { AuthService } from 'src/app/services/auth.service';
|
||||||
import { ChatService } from 'src/app/services/chat.service';
|
import { ChatService } from 'src/app/services/chat.service';
|
||||||
|
import { connection } from 'src/app/services/socket/synchro.service';
|
||||||
import { ToastService } from 'src/app/services/toast.service';
|
import { ToastService } from 'src/app/services/toast.service';
|
||||||
import { ChatOptionsPopoverPage } from 'src/app/shared/popover/chat-options-popover/chat-options-popover.page';
|
import { ChatOptionsPopoverPage } from 'src/app/shared/popover/chat-options-popover/chat-options-popover.page';
|
||||||
import { MessagesOptionsPage } from 'src/app/shared/popover/messages-options/messages-options.page';
|
import { MessagesOptionsPage } from 'src/app/shared/popover/messages-options/messages-options.page';
|
||||||
@@ -28,7 +29,9 @@ export class MessagesPage implements OnInit, AfterViewChecked {
|
|||||||
dmUsers:any;
|
dmUsers:any;
|
||||||
roomId:string;
|
roomId:string;
|
||||||
el:any;
|
el:any;
|
||||||
|
members:any;
|
||||||
|
|
||||||
|
connection = connection
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public popoverController: PopoverController,
|
public popoverController: PopoverController,
|
||||||
@@ -90,7 +93,7 @@ export class MessagesPage implements OnInit, AfterViewChecked {
|
|||||||
} catch(err) { }
|
} catch(err) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
sendMessage(){
|
sendMessage() {
|
||||||
let body = {
|
let body = {
|
||||||
"message":
|
"message":
|
||||||
{
|
{
|
||||||
@@ -103,7 +106,7 @@ export class MessagesPage implements OnInit, AfterViewChecked {
|
|||||||
this.message = "";
|
this.message = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
loadMessages(){
|
loadMessages() {
|
||||||
this.showLoader = true;
|
this.showLoader = true;
|
||||||
this.chatService.getRoomMessages(this.roomId).subscribe(res => {
|
this.chatService.getRoomMessages(this.roomId).subscribe(res => {
|
||||||
/* console.log(res); */
|
/* console.log(res); */
|
||||||
@@ -112,9 +115,10 @@ export class MessagesPage implements OnInit, AfterViewChecked {
|
|||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
getChatMembers(){
|
getChatMembers() {
|
||||||
this.showLoader = true;
|
this.showLoader = true;
|
||||||
this.chatService.getMembers(this.roomId).subscribe(res=> {
|
this.chatService.getMembers(this.roomId).subscribe(res=> {
|
||||||
|
this.members = res['members'];
|
||||||
this.dmUsers = res['members'].filter(data => data.username != this.loggedUser.me.username)
|
this.dmUsers = res['members'].filter(data => data.username != this.loggedUser.me.username)
|
||||||
console.log(res);
|
console.log(res);
|
||||||
console.log(this.dmUsers);
|
console.log(this.dmUsers);
|
||||||
@@ -148,17 +152,24 @@ export class MessagesPage implements OnInit, AfterViewChecked {
|
|||||||
modal.onDidDismiss();
|
modal.onDidDismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
async openChatOptions(ev?: any) {
|
async openChatOptions(ev?: any) {
|
||||||
|
console.log(this.members);
|
||||||
|
|
||||||
const popover = await this.popoverController.create({
|
const popover = await this.popoverController.create({
|
||||||
component: ChatOptionsPopoverPage,
|
component: ChatOptionsPopoverPage,
|
||||||
cssClass: 'chat-options-popover',
|
cssClass: 'chat-options-popover',
|
||||||
event: ev,
|
event: ev,
|
||||||
|
componentProps: {
|
||||||
|
room: this.roomId,
|
||||||
|
members: this.members,
|
||||||
|
eventSelectedDate: new Date(),
|
||||||
|
},
|
||||||
translucent: true
|
translucent: true
|
||||||
});
|
});
|
||||||
return await popover.present();
|
return await popover.present();
|
||||||
}
|
}
|
||||||
|
|
||||||
async serverLongPull(){
|
async serverLongPull() {
|
||||||
this.chatService.getRoomMessages(this.roomId).subscribe(async res => {
|
this.chatService.getRoomMessages(this.roomId).subscribe(async res => {
|
||||||
|
|
||||||
if (res == 502) {
|
if (res == 502) {
|
||||||
@@ -187,7 +198,7 @@ async openChatOptions(ev?: any) {
|
|||||||
//this.loadMessages()
|
//this.loadMessages()
|
||||||
await this.serverLongPull();
|
await this.serverLongPull();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { CalendarComponent } from 'ionic2-calendar';
|
import { CalendarComponent } from 'ionic2-calendar';
|
||||||
|
|
||||||
import { DailyWorkTask, tasksList } from '../../../models/dailyworktask.model';
|
import { customFullTask, customTask, DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { ModalController, NavParams } from '@ionic/angular';
|
import { ModalController, NavParams } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
@@ -30,7 +30,7 @@ export class DespachosPrPage implements OnInit {
|
|||||||
despachoList:any[] = [];
|
despachoList:any[] = [];
|
||||||
deferimentoList:DailyWorkTask[] = [];
|
deferimentoList:DailyWorkTask[] = [];
|
||||||
|
|
||||||
taskList:tasksList[] = [];
|
taskList: customTask[] = [];
|
||||||
|
|
||||||
taskType: string;
|
taskType: string;
|
||||||
serialNumber:string;
|
serialNumber:string;
|
||||||
@@ -236,7 +236,7 @@ export class DespachosPrPage implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async openBookMeetingModal(task: any) {
|
async openBookMeetingModal(task: customFullTask) {
|
||||||
|
|
||||||
const doc = this.loadedAttachments[ this.dicIndex];
|
const doc = this.loadedAttachments[ this.dicIndex];
|
||||||
|
|
||||||
@@ -253,7 +253,7 @@ export class DespachosPrPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let classs;
|
let classs;
|
||||||
if( window.innerWidth <= 800){
|
if( window.innerWidth <= 800) {
|
||||||
classs = 'book-meeting-modal modal modal-desktop'
|
classs = 'book-meeting-modal modal modal-desktop'
|
||||||
} else {
|
} else {
|
||||||
classs = 'modal modal-desktop showAsideOptions'
|
classs = 'modal modal-desktop showAsideOptions'
|
||||||
@@ -271,31 +271,25 @@ export class DespachosPrPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async distartExpedientModal() {
|
// async distartExpedientModal() {
|
||||||
|
|
||||||
const doc = this.taskList[ this.dicIndex];
|
// const modal = await this.modalController.create({
|
||||||
|
// component: DiscartExpedientModalPage,
|
||||||
|
// componentProps: {
|
||||||
|
// action: 'complete',
|
||||||
|
// },
|
||||||
|
// cssClass: 'discart-expedient-modal',
|
||||||
|
// backdropDismiss: false
|
||||||
|
// });
|
||||||
|
|
||||||
console.log(doc, this.dicIndex, this.taskList)
|
// await modal.present();
|
||||||
|
// modal.onDidDismiss().then(res=>{
|
||||||
|
// if(res['data']=='close'){
|
||||||
|
|
||||||
const modal = await this.modalController.create({
|
// }
|
||||||
component: DiscartExpedientModalPage,
|
|
||||||
componentProps: {
|
|
||||||
serialNumber: doc.serialNumber,
|
|
||||||
folderId: doc.workflowInstanceDataFields.FolderID,
|
|
||||||
action: 'complete',
|
|
||||||
},
|
|
||||||
cssClass: 'discart-expedient-modal',
|
|
||||||
backdropDismiss: false
|
|
||||||
});
|
|
||||||
|
|
||||||
await modal.present();
|
// });
|
||||||
modal.onDidDismiss().then(res=>{
|
// }
|
||||||
if(res['data']=='close'){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
docIndex(index: number) {
|
docIndex(index: number) {
|
||||||
this.dicIndex = index;
|
this.dicIndex = index;
|
||||||
|
|||||||
@@ -3,10 +3,9 @@ import { ProcessesService } from 'src/app/services/processes.service';
|
|||||||
import { AttachmentsService } from 'src/app/services/attachments.service';
|
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||||
import { EventsService } from 'src/app/services/events.service';
|
import { EventsService } from 'src/app/services/events.service';
|
||||||
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
||||||
import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { Event } from '../../../../models/event.model';
|
import { Event } from '../../../../models/event.model';
|
||||||
import { AnimationController, MenuController, ModalController, PopoverController } from '@ionic/angular';
|
import { MenuController, ModalController, PopoverController } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
|
||||||
import { momentG } from 'src/plugin/momentG'
|
import { momentG } from 'src/plugin/momentG'
|
||||||
import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart-expedient-modal.page';
|
import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart-expedient-modal.page';
|
||||||
import { BookMeetingModalPage } from '../../expediente/book-meeting-modal/book-meeting-modal.page';
|
import { BookMeetingModalPage } from '../../expediente/book-meeting-modal/book-meeting-modal.page';
|
||||||
@@ -17,7 +16,7 @@ import { DespachosOptionsPage } from 'src/app/shared/popover/despachos-options/d
|
|||||||
import { ToastService } from 'src/app/services/toast.service';
|
import { ToastService } from 'src/app/services/toast.service';
|
||||||
import { DespachoService } from 'src/app/Rules/despacho.service'
|
import { DespachoService } from 'src/app/Rules/despacho.service'
|
||||||
import { Location } from '@angular/common'
|
import { Location } from '@angular/common'
|
||||||
import { customTask, customTaskList, fullTask } from 'src/app/models/dailyworktask.model';
|
import { fullTask } from 'src/app/models/dailyworktask.model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-despacho',
|
selector: 'app-despacho',
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
||||||
import { CalendarComponent } from 'ionic2-calendar';
|
import { CalendarComponent } from 'ionic2-calendar';
|
||||||
import { DailyWorkTask, tasksList } from '../../../models/dailyworktask.model';
|
import { customTask, DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { ModalController } from '@ionic/angular';
|
import { ModalController } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
import { AuthService } from 'src/app/services/auth.service';
|
import { AuthService } from 'src/app/services/auth.service';
|
||||||
import { NavigationStart, Router } from '@angular/router';
|
import { NavigationStart, Router } from '@angular/router';
|
||||||
import { DespachoStore } from 'src/app/store/despacho-store.service';
|
|
||||||
import { DespachoPageStore } from 'src/app/store/despachos-page-store.service';
|
import { DespachoPageStore } from 'src/app/store/despachos-page-store.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@@ -24,7 +23,7 @@ export class DespachosPage implements OnInit {
|
|||||||
despachoList:any[] = [];
|
despachoList:any[] = [];
|
||||||
deferimentoList:DailyWorkTask[] = [];
|
deferimentoList:DailyWorkTask[] = [];
|
||||||
|
|
||||||
taskList:tasksList[] = [];
|
taskList:customTask[] = [];
|
||||||
|
|
||||||
taskType: string;
|
taskType: string;
|
||||||
serialNumber:string;
|
serialNumber:string;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
||||||
import { NavigationEnd, NavigationExtras, Router } from '@angular/router';
|
import { NavigationEnd, NavigationExtras, Router } from '@angular/router';
|
||||||
import { customTask, DailyWorkTask, tasksList } from '../../../models/dailyworktask.model';
|
import { customTask, DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { formatDate } from '@angular/common';
|
import { formatDate } from '@angular/common';
|
||||||
import { ModalController, NavParams } from '@ionic/angular';
|
import { ModalController, NavParams } from '@ionic/angular';
|
||||||
|
|||||||
+5
-13
@@ -19,7 +19,6 @@ import * as _moment from 'moment';
|
|||||||
import * as _rollupMoment from 'moment';
|
import * as _rollupMoment from 'moment';
|
||||||
import { NgxMatDateFormats } from '@angular-material-components/datetime-picker';
|
import { NgxMatDateFormats } from '@angular-material-components/datetime-picker';
|
||||||
import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
|
import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
|
||||||
import { MAT_DATE_LOCALE } from '@angular/material/core';
|
|
||||||
|
|
||||||
const moment = _rollupMoment || _moment;
|
const moment = _rollupMoment || _moment;
|
||||||
|
|
||||||
@@ -124,7 +123,6 @@ export class BookMeetingModalPage implements OnInit {
|
|||||||
private attachmentsService: AttachmentsService,
|
private attachmentsService: AttachmentsService,
|
||||||
private calendarService: EventsService,
|
private calendarService: EventsService,
|
||||||
authService: AuthService,
|
authService: AuthService,
|
||||||
private animationController: AnimationController,
|
|
||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
private activatedRoute: ActivatedRoute,
|
private activatedRoute: ActivatedRoute,
|
||||||
) {
|
) {
|
||||||
@@ -137,17 +135,12 @@ export class BookMeetingModalPage implements OnInit {
|
|||||||
this.eventBody = { BodyType : "1", Text : ""};
|
this.eventBody = { BodyType : "1", Text : ""};
|
||||||
this.postData.Body = this.eventBody;
|
this.postData.Body = this.eventBody;
|
||||||
|
|
||||||
/* Initialize 'Subject' with the title of the expedient */
|
|
||||||
this.postData.Subject = this.task.Folio;
|
this.postData.Subject = this.task.Folio;
|
||||||
this.postData.CalendarName = "Oficial";
|
this.postData.CalendarName = "Oficial";
|
||||||
/* this.postData.StartDate = new Date(); */
|
|
||||||
/* Set + 30minutes to seleted datetime */
|
|
||||||
/* this.postData.EndDate = new Date(selectedEndDate.setMinutes(new Date().getMinutes() + 30)); */
|
|
||||||
|
|
||||||
this.dateControlStart = new FormControl(moment(new Date()));
|
this.dateControlStart = new FormControl(moment(new Date()));
|
||||||
this.dateControlEnd = new FormControl(moment(new Date(new Date().getTime() + 15 * 60000)));
|
this.dateControlEnd = new FormControl(moment(new Date(new Date().getTime() + 15 * 60000)));
|
||||||
|
|
||||||
|
|
||||||
this.postData.Category = 'Reunião'
|
this.postData.Category = 'Reunião'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,8 +257,6 @@ export class BookMeetingModalPage implements OnInit {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(this.postData);
|
|
||||||
|
|
||||||
if(this.task.FsId == '8') {
|
if(this.task.FsId == '8') {
|
||||||
const loader = this.toastService.loading()
|
const loader = this.toastService.loading()
|
||||||
try {
|
try {
|
||||||
@@ -314,6 +305,11 @@ export class BookMeetingModalPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(true) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async addParticipants() {
|
async addParticipants() {
|
||||||
@@ -443,10 +439,6 @@ export class BookMeetingModalPage implements OnInit {
|
|||||||
this.taskParticipantsCc = taskParticipantsCc;
|
this.taskParticipantsCc = taskParticipantsCc;
|
||||||
}
|
}
|
||||||
|
|
||||||
goToGabinete() {
|
|
||||||
this.router.navigate(['/home/gabinete-digital']);
|
|
||||||
}
|
|
||||||
|
|
||||||
setIntervenient(data){
|
setIntervenient(data){
|
||||||
this.taskParticipants = data;
|
this.taskParticipants = data;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -143,6 +143,8 @@ export class ExpedientTaskModalPage implements OnInit {
|
|||||||
this.dispatchFolder.SourceId = this.task.workflowInstanceDataFields.DocId
|
this.dispatchFolder.SourceId = this.task.workflowInstanceDataFields.DocId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.postData.DispatchFolder = this.dispatchFolder;
|
this.postData.DispatchFolder = this.dispatchFolder;
|
||||||
this.postData.UsersSelected = this.participants;
|
this.postData.UsersSelected = this.participants;
|
||||||
/* By Default TypeDeadline should be 'Normal' */
|
/* By Default TypeDeadline should be 'Normal' */
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
<fa-icon class="icon-selected" icon="align-justify"></fa-icon>
|
<fa-icon class="icon-selected" icon="align-justify"></fa-icon>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-center exp-card-title ">Todas as tarefas</p>
|
<p class="text-center exp-card-title ">Todas as tarefas</p>
|
||||||
<p class="text-center exp-card-content">{{count_all_processes}} <span class="title1">Documentos</span></p>
|
<p class="text-center exp-card-content">{{ totalDocumentStore.count }} <span class="title1">Documentos</span></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div (click)="openEventsToApprovePage();selectedElement='approval'" [class.active]="selectedElement == 'approval'" class="exp-card d-flex flex-column" *ngIf="loggeduser.Profile == 'MDGPR'" >
|
<div (click)="openEventsToApprovePage();selectedElement='approval'" [class.active]="selectedElement == 'approval'" class="exp-card d-flex flex-column" *ngIf="loggeduser.Profile == 'MDGPR'" >
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import { DespachosprStore } from 'src/app/store/despachospr-store.service';
|
|||||||
import { PermissionService } from 'src/app/OtherService/permission.service';
|
import { PermissionService } from 'src/app/OtherService/permission.service';
|
||||||
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
||||||
import { WaitForDomService } from 'src/app/services/dom/wait-for-dom.service';
|
import { WaitForDomService } from 'src/app/services/dom/wait-for-dom.service';
|
||||||
|
import { TotalDocumentStore } from 'src/app/store/total-document.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-gabinete-digital',
|
selector: 'app-gabinete-digital',
|
||||||
@@ -94,6 +95,7 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
|
|||||||
pedidosstore = PedidosStore;
|
pedidosstore = PedidosStore;
|
||||||
expedienteprstore = ExpedienteprStore;
|
expedienteprstore = ExpedienteprStore;
|
||||||
despachoprstore = DespachosprStore;
|
despachoprstore = DespachosprStore;
|
||||||
|
totalDocumentStore = TotalDocumentStore
|
||||||
|
|
||||||
@ViewChild(ExpedientsPage) expedientesPage: ExpedientsPage;
|
@ViewChild(ExpedientsPage) expedientesPage: ExpedientsPage;
|
||||||
@ViewChild(PendentesPage) pendentesListPage: PendentesPage;
|
@ViewChild(PendentesPage) pendentesListPage: PendentesPage;
|
||||||
@@ -211,6 +213,8 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
|
|||||||
this.allProcessesList.push(task);
|
this.allProcessesList.push(task);
|
||||||
this.allProcessesList = removeDuplicate( this.allProcessesList)
|
this.allProcessesList = removeDuplicate( this.allProcessesList)
|
||||||
this.allProcessesList = this.sortArrayISODate(this.allProcessesList).reverse();
|
this.allProcessesList = this.sortArrayISODate(this.allProcessesList).reverse();
|
||||||
|
|
||||||
|
this.totalDocumentStore.resetCount( this.allProcessesList.length)
|
||||||
});
|
});
|
||||||
|
|
||||||
this.skeletonLoader = false;
|
this.skeletonLoader = false;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
||||||
import { ActivatedRoute, NavigationEnd, NavigationExtras, NavigationStart, Router } from '@angular/router';
|
import { ActivatedRoute, NavigationEnd, NavigationExtras, NavigationStart, Router } from '@angular/router';
|
||||||
import { CalendarComponent } from 'ionic2-calendar';
|
import { CalendarComponent } from 'ionic2-calendar';
|
||||||
import { DailyWorkTask, tasksList } from '../../../models/dailyworktask.model';
|
import { customTask, DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { ModalController, NavParams } from '@ionic/angular';
|
import { ModalController, NavParams } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
@@ -19,8 +19,8 @@ export class PedidosPage implements OnInit {
|
|||||||
parecerList:any[] = [];
|
parecerList:any[] = [];
|
||||||
fulltask:any;
|
fulltask:any;
|
||||||
|
|
||||||
parecerListResult:tasksList[] = [];
|
parecerListResult:customTask[] = [];
|
||||||
deferimentoListResult:tasksList[] = [];
|
deferimentoListResult:customTask[] = [];
|
||||||
|
|
||||||
deferimentoList:any[] = [];
|
deferimentoList:any[] = [];
|
||||||
taskType: string;
|
taskType: string;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angu
|
|||||||
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
||||||
import { CalendarComponent } from 'ionic2-calendar';
|
import { CalendarComponent } from 'ionic2-calendar';
|
||||||
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
||||||
import { customTaskList, DailyWorkTask } from '../../../models/dailyworktask.model';
|
import { customTask, DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { formatDate } from '@angular/common';
|
import { formatDate } from '@angular/common';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
@@ -84,7 +84,7 @@ export class PendentesPage implements OnInit {
|
|||||||
let pendentesList = [];
|
let pendentesList = [];
|
||||||
|
|
||||||
pendentes.forEach(element => {
|
pendentes.forEach(element => {
|
||||||
let task: customTaskList = this.customTaskPipe.transform(element);
|
let task: customTask = this.customTaskPipe.transform(element);
|
||||||
pendentesList.push(task);
|
pendentesList.push(task);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ export class PendentesPage implements OnInit {
|
|||||||
}, 2000);
|
}, 2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
async viewTaskDetails({ SerialNumber, WorkflowName, activityInstanceName }:customTaskList) {
|
async viewTaskDetails({ SerialNumber, WorkflowName, activityInstanceName }:customTask) {
|
||||||
if(WorkflowName == 'Despacho') {
|
if(WorkflowName == 'Despacho') {
|
||||||
this.router.navigate(['/home/gabinete-digital/despachos',SerialNumber,'gabinete-digital']);
|
this.router.navigate(['/home/gabinete-digital/despachos',SerialNumber,'gabinete-digital']);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -206,8 +206,6 @@ export class LoginPage implements OnInit {
|
|||||||
|
|
||||||
|
|
||||||
this.localstoreService.set('UserData', userData)
|
this.localstoreService.set('UserData', userData)
|
||||||
|
|
||||||
|
|
||||||
this.localstoreService.set('PIN', encrypted)
|
this.localstoreService.set('PIN', encrypted)
|
||||||
|
|
||||||
this.router.navigate(['/home/events']);
|
this.router.navigate(['/home/events']);
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { Pipe, PipeTransform } from '@angular/core';
|
import { Pipe, PipeTransform } from '@angular/core';
|
||||||
import { customTaskList } from '../models/dailyworktask.model';
|
import { customTask } from '../models/dailyworktask.model';
|
||||||
|
|
||||||
@Pipe({
|
@Pipe({
|
||||||
name: 'customTask'
|
name: 'customTask'
|
||||||
})
|
})
|
||||||
export class CustomTaskPipe implements PipeTransform {
|
export class CustomTaskPipe implements PipeTransform {
|
||||||
|
|
||||||
transform(fullTask): customTaskList {
|
transform(fullTask): customTask {
|
||||||
|
|
||||||
let date = new Date(fullTask.taskStartDate);
|
let date = new Date(fullTask.taskStartDate);
|
||||||
date.setMonth(date.getMonth() + 1);
|
date.setMonth(date.getMonth() + 1);
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { SynchroService } from './synchro.service';
|
||||||
|
|
||||||
|
describe('SynchroService', () => {
|
||||||
|
let service: SynchroService;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({});
|
||||||
|
service = TestBed.inject(SynchroService);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
|
|
||||||
|
export interface wss{
|
||||||
|
|
||||||
|
url: string,
|
||||||
|
type: 'reflect' | 'emit'
|
||||||
|
header: {
|
||||||
|
id: string
|
||||||
|
bluePrint: string,
|
||||||
|
jwt: string
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class SynchroService {
|
||||||
|
[x: string]: any;
|
||||||
|
|
||||||
|
private connection!: WebSocket;
|
||||||
|
private id: string = uuidv4();
|
||||||
|
public conected = false
|
||||||
|
private url: string = ''
|
||||||
|
callback = function(){}
|
||||||
|
|
||||||
|
constructor(){}
|
||||||
|
|
||||||
|
setUrl() {
|
||||||
|
|
||||||
|
let header ={
|
||||||
|
id:'1234',
|
||||||
|
bluePrint: '12312123',
|
||||||
|
jwt: uuidv4()
|
||||||
|
}
|
||||||
|
|
||||||
|
let wss: wss ={
|
||||||
|
header,
|
||||||
|
url: 'wss://synchro-server.herokuapp.com/ws/some_url/',
|
||||||
|
type: 'reflect'
|
||||||
|
}
|
||||||
|
|
||||||
|
this.url = `${wss.url}${wss.header.id}/${wss.header.jwt}/${wss.header.bluePrint}/${this.id}/`
|
||||||
|
}
|
||||||
|
|
||||||
|
connect() {
|
||||||
|
|
||||||
|
this.connection = new WebSocket(this.url);
|
||||||
|
// bind function
|
||||||
|
this.connection.onopen = this.onopen;
|
||||||
|
this.connection.onmessage = this.onmessage;
|
||||||
|
this.connection.onclose = this.onclose;
|
||||||
|
this.connection.onerror = this.onerror;
|
||||||
|
}
|
||||||
|
|
||||||
|
private onopen = () =>{
|
||||||
|
console.log('open ======================= welcome to socket server')
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public $send(object: any) {
|
||||||
|
|
||||||
|
let message = {
|
||||||
|
message: '{"person.adress.country":"1Angola"}',
|
||||||
|
username: '',
|
||||||
|
idConnection: this.id
|
||||||
|
}
|
||||||
|
|
||||||
|
let sendData = JSON.stringify(Object.assign({}, message));
|
||||||
|
|
||||||
|
this.connection.send(sendData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private onmessage = async (event: any)=> {
|
||||||
|
this.callback()
|
||||||
|
}
|
||||||
|
|
||||||
|
private onclose=(event:any)=> {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (event.wasClean) {
|
||||||
|
console.log(`[close] Connection closed cleanly, code=${event.code} reason=${event.reason}`);
|
||||||
|
} else {
|
||||||
|
// e.g. server process killed or network down
|
||||||
|
// event.code is usually 1006 in this case
|
||||||
|
console.log('[close] Connection died');
|
||||||
|
console.log('Reconnect')
|
||||||
|
this.connect()
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
private onerror=(event: any)=>{
|
||||||
|
console.log(`[error] ${event.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const connection = new SynchroService()
|
||||||
|
connection.setUrl()
|
||||||
|
connection.connect()
|
||||||
@@ -12,6 +12,7 @@ import { ProcessesService } from 'src/app/services/processes.service';
|
|||||||
import { ToastService } from 'src/app/services/toast.service';
|
import { ToastService } from 'src/app/services/toast.service';
|
||||||
import { NgxMatDateFormats } from '@angular-material-components/datetime-picker';
|
import { NgxMatDateFormats } from '@angular-material-components/datetime-picker';
|
||||||
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
||||||
|
import { EventToApproveEdit } from 'src/app/models/event.model';
|
||||||
|
|
||||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||||
parse: {
|
parse: {
|
||||||
@@ -83,7 +84,7 @@ export class EditEventToApprovePage implements OnInit {
|
|||||||
StartDate: '',
|
StartDate: '',
|
||||||
MDEmail: '',
|
MDEmail: '',
|
||||||
MDName: '',
|
MDName: '',
|
||||||
IsAllDayEvent: '',
|
IsAllDayEvent: false,
|
||||||
Message: ''
|
Message: ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -280,7 +281,7 @@ export class EditEventToApprovePage implements OnInit {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const event: any = {
|
const event: EventToApproveEdit = {
|
||||||
SerialNumber: this.eventProcess.serialNumber,
|
SerialNumber: this.eventProcess.serialNumber,
|
||||||
Body: this.eventProcess.workflowInstanceDataFields.Body,
|
Body: this.eventProcess.workflowInstanceDataFields.Body,
|
||||||
Location: this.eventProcess.workflowInstanceDataFields.Location,
|
Location: this.eventProcess.workflowInstanceDataFields.Location,
|
||||||
@@ -288,6 +289,7 @@ export class EditEventToApprovePage implements OnInit {
|
|||||||
StartDate: this.eventProcess.workflowInstanceDataFields.StartDate,
|
StartDate: this.eventProcess.workflowInstanceDataFields.StartDate,
|
||||||
EndDate: this.eventProcess.workflowInstanceDataFields.EndDate,
|
EndDate: this.eventProcess.workflowInstanceDataFields.EndDate,
|
||||||
ReviewUserComment: '',
|
ReviewUserComment: '',
|
||||||
|
Agenda: this.eventProcess.workflowInstanceDataFields.Agenda,
|
||||||
MDName: this.eventProcess.workflowInstanceDataFields.MDName,
|
MDName: this.eventProcess.workflowInstanceDataFields.MDName,
|
||||||
MDEmail: this.eventProcess.workflowInstanceDataFields.MDEmail,
|
MDEmail: this.eventProcess.workflowInstanceDataFields.MDEmail,
|
||||||
IsAllDayEvent: this.eventProcess.workflowInstanceDataFields.IsAllDayEvent,
|
IsAllDayEvent: this.eventProcess.workflowInstanceDataFields.IsAllDayEvent,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
.middle{
|
.middle{
|
||||||
padding: 0!important;
|
padding: 0!important;
|
||||||
float: left;
|
float: left;
|
||||||
width: 280px;
|
width:calc(100% - 77px);
|
||||||
margin: 2.5px 0 0 5px;
|
margin: 2.5px 0 0 5px;
|
||||||
}
|
}
|
||||||
.right{
|
.right{
|
||||||
@@ -55,6 +55,10 @@
|
|||||||
|
|
||||||
.title{
|
.title{
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden !important;
|
||||||
|
text-overflow: ellipsis !important;
|
||||||
|
float: left;
|
||||||
}
|
}
|
||||||
.div-icon{
|
.div-icon{
|
||||||
width: 40px;
|
width: 40px;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
.middle{
|
.middle{
|
||||||
//padding: 0!important;
|
//padding: 0!important;
|
||||||
float: left;
|
float: left;
|
||||||
width: 280px;
|
width:calc(100% - 77px);
|
||||||
margin: 2px 0 0 5px;
|
margin: 2px 0 0 5px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -63,7 +63,9 @@
|
|||||||
|
|
||||||
.title{
|
.title{
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
overflow: auto;
|
white-space: nowrap;
|
||||||
|
overflow: hidden !important;
|
||||||
|
text-overflow: ellipsis !important;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
.div-icon{
|
.div-icon{
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import { MessagesOptionsPage } from 'src/app/shared/popover/messages-options/mes
|
|||||||
import { ProfileComponent } from '../../headers/header-no-search/profile/profile.page';
|
import { ProfileComponent } from '../../headers/header-no-search/profile/profile.page';
|
||||||
import { ContactsPage } from '../new-group/contacts/contacts.page';
|
import { ContactsPage } from '../new-group/contacts/contacts.page';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
|
import { connection } from 'src/app/services/socket/synchro.service';
|
||||||
|
import { ChatOptionsFeaturesPage } from 'src/app/modals/chat-options-features/chat-options-features.page';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-messages',
|
selector: 'app-messages',
|
||||||
@@ -33,6 +35,9 @@ export class MessagesPage implements OnInit, AfterViewChecked, OnChanges {
|
|||||||
@Input() roomId:string;
|
@Input() roomId:string;
|
||||||
@Input() showMessages:string;
|
@Input() showMessages:string;
|
||||||
|
|
||||||
|
|
||||||
|
connection = connection
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public popoverController: PopoverController,
|
public popoverController: PopoverController,
|
||||||
private modalController: ModalController,
|
private modalController: ModalController,
|
||||||
@@ -52,6 +57,17 @@ export class MessagesPage implements OnInit, AfterViewChecked, OnChanges {
|
|||||||
this.load();
|
this.load();
|
||||||
|
|
||||||
//throw new Error('Method not implemented.');
|
//throw new Error('Method not implemented.');
|
||||||
|
|
||||||
|
|
||||||
|
this.chatService.getRoomMessages(this.roomId).subscribe(async res => {
|
||||||
|
|
||||||
|
if (res == 502) {
|
||||||
|
|
||||||
|
} else if (res != 200) {
|
||||||
|
this.messages = res['messages'].reverse();
|
||||||
|
console.log(this.messages);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@@ -79,7 +95,7 @@ export class MessagesPage implements OnInit, AfterViewChecked, OnChanges {
|
|||||||
this.alertService.presentAlert('Funcionalidade em desenvolvimento');
|
this.alertService.presentAlert('Funcionalidade em desenvolvimento');
|
||||||
}
|
}
|
||||||
|
|
||||||
load(){
|
load = ()=>{
|
||||||
this.checktimeOut = true;
|
this.checktimeOut = true;
|
||||||
this.serverLongPull();
|
this.serverLongPull();
|
||||||
this.getChatMembers();
|
this.getChatMembers();
|
||||||
@@ -103,7 +119,9 @@ export class MessagesPage implements OnInit, AfterViewChecked, OnChanges {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sendMessage(){
|
sendMessage() {
|
||||||
|
|
||||||
|
this.connection.$send({})
|
||||||
|
|
||||||
let body = {
|
let body = {
|
||||||
"message":
|
"message":
|
||||||
@@ -170,7 +188,7 @@ export class MessagesPage implements OnInit, AfterViewChecked, OnChanges {
|
|||||||
}
|
}
|
||||||
|
|
||||||
openSendMessageOptions(ev?:any){
|
openSendMessageOptions(ev?:any){
|
||||||
if(window.innerWidth <= 1024){
|
if(window.innerWidth < 701){
|
||||||
console.log('mobile');
|
console.log('mobile');
|
||||||
this.openChatOptions(ev);
|
this.openChatOptions(ev);
|
||||||
}
|
}
|
||||||
@@ -268,22 +286,10 @@ export class MessagesPage implements OnInit, AfterViewChecked, OnChanges {
|
|||||||
return enterAnimation(baseEl).direction('reverse');
|
return enterAnimation(baseEl).direction('reverse');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* const popover = await this.popoverController.create({
|
|
||||||
component: MessagesOptionsPage,
|
|
||||||
componentProps: {
|
|
||||||
roomId: this.dm._id,
|
|
||||||
},
|
|
||||||
cssClass: 'messages-options',
|
|
||||||
event: ev,
|
|
||||||
translucent: true,
|
|
||||||
});
|
|
||||||
return await popover.present(); */
|
|
||||||
|
|
||||||
const modal = await this.modalController.create({
|
const modal = await this.modalController.create({
|
||||||
enterAnimation,
|
enterAnimation,
|
||||||
leaveAnimation,
|
leaveAnimation,
|
||||||
component: ChatOptionsPopoverPage,
|
component: ChatOptionsFeaturesPage,
|
||||||
cssClass: 'model profile-modal search-submodal',
|
cssClass: 'model profile-modal search-submodal',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
roomId: this.roomId,
|
roomId: this.roomId,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Component, OnInit} from '@angular/core';
|
import { Component, OnInit} from '@angular/core';
|
||||||
|
|
||||||
import { customTaskList} from '../../../models/dailyworktask.model';
|
import { customTask} from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
|
|
||||||
import { AuthService } from 'src/app/services/auth.service';
|
import { AuthService } from 'src/app/services/auth.service';
|
||||||
@@ -69,7 +69,7 @@ constructor (
|
|||||||
|
|
||||||
despachosPr.forEach( (element, index) => {
|
despachosPr.forEach( (element, index) => {
|
||||||
|
|
||||||
let task: customTaskList = this.customTaskPipe.transform(element);
|
let task: customTask = this.customTaskPipe.transform(element);
|
||||||
|
|
||||||
despachoList.push(task);
|
despachoList.push(task);
|
||||||
});
|
});
|
||||||
@@ -100,7 +100,7 @@ constructor (
|
|||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
goToDespacho({ SerialNumber } :customTaskList) {
|
goToDespacho({ SerialNumber } :customTask) {
|
||||||
this.router.navigate(['/home/gabinete-digital/despachos-pr',SerialNumber,'gabinete-digital']);
|
this.router.navigate(['/home/gabinete-digital/despachos-pr',SerialNumber,'gabinete-digital']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
||||||
import { customTaskList, DailyWorkTask, fullTask, tasksList } from '../../../models/dailyworktask.model';
|
import { customTask, DailyWorkTask, fullTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { NavigationStart, Router } from '@angular/router';
|
import { NavigationStart, Router } from '@angular/router';
|
||||||
import { DespachoStore } from 'src/app/store/despacho-store.service';
|
import { DespachoStore } from 'src/app/store/despacho-store.service';
|
||||||
@@ -39,7 +39,7 @@ export class DespachosPage implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
goToDespacho({ SerialNumber } :customTaskList) {
|
goToDespacho({ SerialNumber } : customTask) {
|
||||||
this.router.navigate(['/home/gabinete-digital/despachos',SerialNumber,'gabinete-digital']);
|
this.router.navigate(['/home/gabinete-digital/despachos',SerialNumber,'gabinete-digital']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
||||||
import { ActivatedRoute, NavigationEnd, NavigationExtras, NavigationStart, Router } from '@angular/router';
|
import { ActivatedRoute, NavigationEnd, NavigationExtras, NavigationStart, Router } from '@angular/router';
|
||||||
import { DailyWorkTask, tasksList } from '../../../models/dailyworktask.model';
|
import { DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { ModalController, NavParams } from '@ionic/angular';
|
import { ModalController, NavParams } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { FormControl } from '@angular/forms';
|
|
||||||
import { AlertController, AnimationController, ModalController, NavParams } from '@ionic/angular';
|
import { AlertController, AnimationController, ModalController, NavParams } from '@ionic/angular';
|
||||||
import * as moment from 'moment';
|
|
||||||
import { Attachment } from 'src/app/models/attachment.model';
|
import { Attachment } from 'src/app/models/attachment.model';
|
||||||
import { EventPerson } from 'src/app/models/eventperson.model';
|
import { EventPerson } from 'src/app/models/eventperson.model';
|
||||||
import { SearchDocument } from 'src/app/models/search-document';
|
import { SearchDocument } from 'src/app/models/search-document';
|
||||||
@@ -11,7 +9,7 @@ import { AttachmentsService } from 'src/app/services/attachments.service';
|
|||||||
import { EventsService } from 'src/app/services/events.service';
|
import { EventsService } from 'src/app/services/events.service';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { ToastService } from 'src/app/services/toast.service';
|
import { ToastService } from 'src/app/services/toast.service';
|
||||||
import { Event } from '../../../models/event.model';
|
import { Event, EventToApproveEdit } from '../../../models/event.model';
|
||||||
import { NgxMatDateFormats, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
|
import { NgxMatDateFormats, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
|
||||||
import { NavigationExtras, Router } from '@angular/router';
|
import { NavigationExtras, Router } from '@angular/router';
|
||||||
|
|
||||||
@@ -71,7 +69,6 @@ export class EditEventToApproveComponent implements OnInit {
|
|||||||
Body: "",
|
Body: "",
|
||||||
OccurrenceType: '',
|
OccurrenceType: '',
|
||||||
LastOccurrence: '',
|
LastOccurrence: '',
|
||||||
IsRecurring: false,
|
|
||||||
ParticipantsList: [],
|
ParticipantsList: [],
|
||||||
Agenda: '',
|
Agenda: '',
|
||||||
EndDate: '',
|
EndDate: '',
|
||||||
@@ -82,8 +79,9 @@ export class EditEventToApproveComponent implements OnInit {
|
|||||||
StartDate: '',
|
StartDate: '',
|
||||||
MDEmail: '',
|
MDEmail: '',
|
||||||
MDName: '',
|
MDName: '',
|
||||||
IsAllDayEvent: '',
|
IsAllDayEvent: false,
|
||||||
Message: ''
|
Message: '',
|
||||||
|
IsRecurring: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,7 +233,7 @@ export class EditEventToApproveComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const event: any = {
|
const event: EventToApproveEdit = {
|
||||||
SerialNumber: this.eventProcess.serialNumber,
|
SerialNumber: this.eventProcess.serialNumber,
|
||||||
Body: this.eventProcess.workflowInstanceDataFields.Body,
|
Body: this.eventProcess.workflowInstanceDataFields.Body,
|
||||||
Location: this.eventProcess.workflowInstanceDataFields.Location,
|
Location: this.eventProcess.workflowInstanceDataFields.Location,
|
||||||
@@ -247,6 +245,7 @@ export class EditEventToApproveComponent implements OnInit {
|
|||||||
MDEmail: this.eventProcess.workflowInstanceDataFields.MDEmail,
|
MDEmail: this.eventProcess.workflowInstanceDataFields.MDEmail,
|
||||||
IsAllDayEvent: this.eventProcess.workflowInstanceDataFields.IsAllDayEvent,
|
IsAllDayEvent: this.eventProcess.workflowInstanceDataFields.IsAllDayEvent,
|
||||||
Status: null,
|
Status: null,
|
||||||
|
Agenda: this.eventProcess.workflowInstanceDataFields.Agenda,
|
||||||
EventType: this.eventProcess.workflowInstanceDataFields.EventType,
|
EventType: this.eventProcess.workflowInstanceDataFields.EventType,
|
||||||
IsRecurring: this.eventProcess.workflowInstanceDataFields.IsRecurring,
|
IsRecurring: this.eventProcess.workflowInstanceDataFields.IsRecurring,
|
||||||
Message: this.eventProcess.workflowInstanceDataFields.Message,
|
Message: this.eventProcess.workflowInstanceDataFields.Message,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
|
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
|
||||||
import { NavigationStart, Router } from '@angular/router';
|
import { NavigationStart, Router } from '@angular/router';
|
||||||
import { customTaskList, DailyWorkTask } from '../../../models/dailyworktask.model';
|
import { customTask, DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { ModalController } from '@ionic/angular';
|
import { ModalController } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
@@ -67,7 +67,7 @@ export class ExpedientesPrPage implements OnInit {
|
|||||||
this.taskslist = [];
|
this.taskslist = [];
|
||||||
let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active");
|
let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active");
|
||||||
res.forEach(element => {
|
res.forEach(element => {
|
||||||
let task: customTaskList = this.customTaskPipe.transform(element);
|
let task: customTask = this.customTaskPipe.transform(element);
|
||||||
this.taskslist.push(task);
|
this.taskslist.push(task);
|
||||||
});
|
});
|
||||||
this.expedienteprstore.reset(this.taskslist);
|
this.expedienteprstore.reset(this.taskslist);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
|
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
|
||||||
import { customTaskList } from 'src/app/models/dailyworktask.model';
|
import { customTask } from 'src/app/models/dailyworktask.model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-task-list',
|
selector: 'app-task-list',
|
||||||
@@ -8,9 +8,9 @@ import { customTaskList } from 'src/app/models/dailyworktask.model';
|
|||||||
})
|
})
|
||||||
export class TaskListPage implements OnInit {
|
export class TaskListPage implements OnInit {
|
||||||
|
|
||||||
@Input() taskList: customTaskList[] = [];
|
@Input() taskList: customTask[] = [];
|
||||||
@Input() skeletonLoader: boolean = false
|
@Input() skeletonLoader: boolean = false
|
||||||
@Output() viewTaskDetail = new EventEmitter<customTaskList>();
|
@Output() viewTaskDetail = new EventEmitter<customTask>();
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
console.log('taskList', this.taskList)
|
console.log('taskList', this.taskList)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angu
|
|||||||
import { NavigationStart, Router } from '@angular/router';
|
import { NavigationStart, Router } from '@angular/router';
|
||||||
import { CalendarComponent } from 'ionic2-calendar';
|
import { CalendarComponent } from 'ionic2-calendar';
|
||||||
|
|
||||||
import { customTaskList, DailyWorkTask, tasksList } from '../../../models/dailyworktask.model';
|
import { customTask, DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { ModalController } from '@ionic/angular';
|
import { ModalController } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
@@ -24,8 +24,8 @@ export class PedidosPage implements OnInit {
|
|||||||
parecerList:any[] = [];
|
parecerList:any[] = [];
|
||||||
fulltask:any;
|
fulltask:any;
|
||||||
|
|
||||||
parecerListResult:tasksList[] = [];
|
parecerListResult:customTask[] = [];
|
||||||
deferimentoListResult:tasksList[] = [];
|
deferimentoListResult:customTask[] = [];
|
||||||
|
|
||||||
deferimentoList:any[] = [];
|
deferimentoList:any[] = [];
|
||||||
taskType: string;
|
taskType: string;
|
||||||
@@ -90,7 +90,7 @@ export class PedidosPage implements OnInit {
|
|||||||
|
|
||||||
allParecer.filter(data => data.workflowInstanceDataFields.Status == "Active").forEach(element => {
|
allParecer.filter(data => data.workflowInstanceDataFields.Status == "Active").forEach(element => {
|
||||||
|
|
||||||
let task: customTaskList = this.customTaskPipe.transform(element);
|
let task: customTask = this.customTaskPipe.transform(element);
|
||||||
this.parecerList.push(task);
|
this.parecerList.push(task);
|
||||||
});
|
});
|
||||||
this.pedidosstore.resetparecer(this.parecerList);
|
this.pedidosstore.resetparecer(this.parecerList);
|
||||||
@@ -107,7 +107,7 @@ export class PedidosPage implements OnInit {
|
|||||||
let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active")
|
let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active")
|
||||||
|
|
||||||
res.forEach(element => {
|
res.forEach(element => {
|
||||||
let task: customTaskList = this.customTaskPipe.transform(element);
|
let task: customTask = this.customTaskPipe.transform(element);
|
||||||
this.deferimentoList.push(task);
|
this.deferimentoList.push(task);
|
||||||
});
|
});
|
||||||
this.pedidosstore.resetdeferimento(this.deferimentoList);
|
this.pedidosstore.resetdeferimento(this.deferimentoList);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
||||||
import { NavigationStart, Router } from '@angular/router';
|
import { NavigationStart, Router } from '@angular/router';
|
||||||
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
||||||
import { customTaskList} from '../../../models/dailyworktask.model';
|
import { customTask} from '../../../models/dailyworktask.model';
|
||||||
import { ProcessesService } from 'src/app/services/processes.service';
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { AuthService } from 'src/app/services/auth.service';
|
import { AuthService } from 'src/app/services/auth.service';
|
||||||
import { PendentesStore } from 'src/app/store/pendestes-store.service';
|
import { PendentesStore } from 'src/app/store/pendestes-store.service';
|
||||||
@@ -55,7 +55,7 @@ export class PendentesPage implements OnInit {
|
|||||||
let pendentesList = [];
|
let pendentesList = [];
|
||||||
|
|
||||||
pendentes.forEach(element => {
|
pendentes.forEach(element => {
|
||||||
let task: customTaskList = this.customTaskPipe.transform(element);
|
let task: customTask = this.customTaskPipe.transform(element);
|
||||||
pendentesList.push(task);
|
pendentesList.push(task);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ export class PendentesPage implements OnInit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async viewTaskDetails({ SerialNumber, WorkflowName, activityInstanceName }:customTaskList) {
|
async viewTaskDetails({ SerialNumber, WorkflowName, activityInstanceName }:customTask) {
|
||||||
if(WorkflowName == 'Despacho') {
|
if(WorkflowName == 'Despacho') {
|
||||||
this.router.navigate(['/home/gabinete-digital/despachos',SerialNumber,'gabinete-digital']);
|
this.router.navigate(['/home/gabinete-digital/despachos',SerialNumber,'gabinete-digital']);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import { AddNotePage } from 'src/app/modals/add-note/add-note.page';
|
|||||||
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
|
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
|
||||||
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
|
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
|
||||||
import { ToastService } from 'src/app/services/toast.service';
|
import { ToastService } from 'src/app/services/toast.service';
|
||||||
|
import { customTask, fullTask } from 'src/app/models/dailyworktask.model';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@@ -17,9 +18,9 @@ import { ToastService } from 'src/app/services/toast.service';
|
|||||||
})
|
})
|
||||||
export class DespachosOptionsPage implements OnInit {
|
export class DespachosOptionsPage implements OnInit {
|
||||||
|
|
||||||
task: any;
|
task: customTask
|
||||||
fulltask: any;
|
fulltask: fullTask;
|
||||||
serialnumber: string;
|
serialNumber: string;
|
||||||
|
|
||||||
constructor(private activateRoute: ActivatedRoute,
|
constructor(private activateRoute: ActivatedRoute,
|
||||||
private processes: ProcessesService,
|
private processes: ProcessesService,
|
||||||
@@ -31,6 +32,9 @@ export class DespachosOptionsPage implements OnInit {
|
|||||||
) {
|
) {
|
||||||
this.task = this.navParams.get('task')
|
this.task = this.navParams.get('task')
|
||||||
this.fulltask = this.navParams.get('fulltask')
|
this.fulltask = this.navParams.get('fulltask')
|
||||||
|
|
||||||
|
|
||||||
|
this.serialNumber = this.task.SerialNumber
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@@ -141,7 +145,7 @@ export class DespachosOptionsPage implements OnInit {
|
|||||||
|
|
||||||
async generateDiploma(note:string, documents:any){
|
async generateDiploma(note:string, documents:any){
|
||||||
let body = {
|
let body = {
|
||||||
"serialNumber": this.serialnumber,
|
"serialNumber": this.serialNumber,
|
||||||
"action": "Reencaminhar",
|
"action": "Reencaminhar",
|
||||||
"ActionTypeId": 99999839,
|
"ActionTypeId": 99999839,
|
||||||
"dataFields": {
|
"dataFields": {
|
||||||
@@ -165,6 +169,8 @@ export class DespachosOptionsPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async openAddNoteModal(actionName:string) {
|
async openAddNoteModal(actionName:string) {
|
||||||
|
|
||||||
|
alert('AddNotePage')
|
||||||
this.popoverController.dismiss();
|
this.popoverController.dismiss();
|
||||||
let classs;
|
let classs;
|
||||||
if( window.innerWidth <= 800){
|
if( window.innerWidth <= 800){
|
||||||
@@ -174,7 +180,8 @@ export class DespachosOptionsPage implements OnInit {
|
|||||||
}
|
}
|
||||||
const modal = await this.modalController.create({
|
const modal = await this.modalController.create({
|
||||||
component: AddNotePage,
|
component: AddNotePage,
|
||||||
componentProps:{
|
componentProps: {
|
||||||
|
showAttachmentBtn: true
|
||||||
},
|
},
|
||||||
cssClass: classs,
|
cssClass: classs,
|
||||||
backdropDismiss: true
|
backdropDismiss: true
|
||||||
@@ -220,7 +227,7 @@ export class DespachosOptionsPage implements OnInit {
|
|||||||
|
|
||||||
async arquivar(note:string, documents:any) {
|
async arquivar(note:string, documents:any) {
|
||||||
let body = {
|
let body = {
|
||||||
"serialNumber": this.serialnumber,
|
"serialNumber": this.serialNumber,
|
||||||
"action": "Arquivo",
|
"action": "Arquivo",
|
||||||
"ActionTypeId": 95,
|
"ActionTypeId": 95,
|
||||||
"dataFields": {
|
"dataFields": {
|
||||||
@@ -247,7 +254,7 @@ export class DespachosOptionsPage implements OnInit {
|
|||||||
|
|
||||||
async executado(note:string, documents:any){
|
async executado(note:string, documents:any){
|
||||||
let body = {
|
let body = {
|
||||||
"serialNumber": this.serialnumber,
|
"serialNumber": this.serialNumber,
|
||||||
"action": "Conhecimento",
|
"action": "Conhecimento",
|
||||||
"ActionTypeId": 104,
|
"ActionTypeId": 104,
|
||||||
"dataFields": {
|
"dataFields": {
|
||||||
@@ -274,7 +281,7 @@ export class DespachosOptionsPage implements OnInit {
|
|||||||
|
|
||||||
async reexecutar(note:string, documents:any){
|
async reexecutar(note:string, documents:any){
|
||||||
let body = {
|
let body = {
|
||||||
"serialNumber": this.serialnumber,
|
"serialNumber": this.serialNumber,
|
||||||
"action": "Reexecutar",
|
"action": "Reexecutar",
|
||||||
"ActionTypeId": 100000010,
|
"ActionTypeId": 100000010,
|
||||||
"dataFields": {
|
"dataFields": {
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="solid"></div>
|
<div class="solid"></div>
|
||||||
<button (click)="close()" full class="btn-cancel" shape="round" >Cancelar</button>
|
<button (click)="cancle()" full class="btn-cancel" shape="round" >Cancelar</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { AttachmentsService } from 'src/app/services/attachments.service';
|
|||||||
import { EventsService } from 'src/app/services/events.service';
|
import { EventsService } from 'src/app/services/events.service';
|
||||||
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
||||||
import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
|
import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
|
||||||
import { AnimationController, MenuController, ModalController, PopoverController } from '@ionic/angular';
|
import { ModalController, PopoverController } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
import { CreateProcessPage } from 'src/app/modals/create-process/create-process.page';
|
import { CreateProcessPage } from 'src/app/modals/create-process/create-process.page';
|
||||||
import { DelegarPage } from 'src/app/modals/delegar/delegar.page';
|
import { DelegarPage } from 'src/app/modals/delegar/delegar.page';
|
||||||
@@ -322,23 +322,15 @@ export class DespachosPrOptionsPage implements OnInit {
|
|||||||
} finally {
|
} finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
goBack() {
|
goBack() {
|
||||||
|
|
||||||
// let navigationExtras: NavigationExtras = {
|
|
||||||
// queryParams: {
|
|
||||||
// "despachospr": true,
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
|
|
||||||
// this.router.navigate(['/home/gabinete-digital'], navigationExtras);
|
|
||||||
|
|
||||||
this.location.back()
|
this.location.back()
|
||||||
|
this.cancle()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cancle() {
|
||||||
|
this.popoverController.dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -270,6 +270,8 @@ export class OptsExpedientePrPage implements OnInit {
|
|||||||
taskAction: taskAction,
|
taskAction: taskAction,
|
||||||
task: task,
|
task: task,
|
||||||
profile: this.profile,
|
profile: this.profile,
|
||||||
|
fulltask: this.fulltask,
|
||||||
|
aplicationId: 361
|
||||||
},
|
},
|
||||||
cssClass: classs,
|
cssClass: classs,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ export class DeplomasService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
saveDiplomasAssinadoList() {
|
saveDiplomasAssinadoList() {
|
||||||
|
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
localstoreService.set(this.keyNameDiplomasAssinado,{
|
localstoreService.set(this.keyNameDiplomasAssinado,{
|
||||||
list: this._diplomasAssinadoList,
|
list: this._diplomasAssinadoList,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { localstoreService } from './localstore.service'
|
import { localstoreService } from './localstore.service'
|
||||||
import { AES, enc, SHA1 } from 'crypto-js'
|
import { AES, enc, SHA1 } from 'crypto-js'
|
||||||
import { customTaskList } from '../models/dailyworktask.model';
|
import { customTask } from '../models/dailyworktask.model';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@@ -27,7 +27,7 @@ export class DespachosPageStoreService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get list(): customTaskList[] {
|
get list(): customTask[] {
|
||||||
return this._list || []
|
return this._list || []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { TotalDocumentService } from './total-document.service';
|
||||||
|
|
||||||
|
describe('TotalDocumentService', () => {
|
||||||
|
let service: TotalDocumentService;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({});
|
||||||
|
service = TestBed.inject(TotalDocumentService);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { localstoreService } from './localstore.service'
|
||||||
|
import { AES, enc, SHA1 } from 'crypto-js'
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class TotalDocumentService {
|
||||||
|
|
||||||
|
private _count = 0
|
||||||
|
// local storage keyName
|
||||||
|
private keyName: string;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
this.keyName = (SHA1(this.constructor.name)).toString()
|
||||||
|
|
||||||
|
setTimeout(()=> {
|
||||||
|
let restore = localstoreService.get(this.keyName, {})
|
||||||
|
this._count = restore.count || 0
|
||||||
|
}, 10)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
get count() {
|
||||||
|
return this._count
|
||||||
|
}
|
||||||
|
|
||||||
|
resetCount(value) {
|
||||||
|
this._count = value
|
||||||
|
}
|
||||||
|
|
||||||
|
saveCount() {
|
||||||
|
setTimeout(()=> {
|
||||||
|
localstoreService.set(this.keyName, {
|
||||||
|
count: this._count
|
||||||
|
})
|
||||||
|
}, 10)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export let TotalDocumentStore = new TotalDocumentService()
|
||||||
+1
-1
@@ -429,7 +429,7 @@ td.monthview-secondary-with-event, td.monthview-secondary-with-event[_ngcontent-
|
|||||||
}
|
}
|
||||||
|
|
||||||
.modal-width-100-width-background, .modal-desktop {
|
.modal-width-100-width-background, .modal-desktop {
|
||||||
padding-top: 76px;
|
padding-top: 67px;
|
||||||
.modal-wrapper {
|
.modal-wrapper {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
height: 99% !important;
|
height: 99% !important;
|
||||||
|
|||||||
Reference in New Issue
Block a user