diff --git a/Web.backup.config b/Web.backup.config deleted file mode 100644 index 81cc77a85..000000000 --- a/Web.backup.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/capacitor.config.json b/capacitor.config.json deleted file mode 100644 index 1a26a08dc..000000000 --- a/capacitor.config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "server": { - "url": "http://192.168.1.3:8101", - "originalUrl": "http://192.168.1.3:8100" - } -} diff --git a/package-lock.json b/package-lock.json index b6f9964e7..a0d74e455 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,6 +89,7 @@ "@ionic/storage": "^2.3.1", "@ionic/storage-angular": "^3.0.6", "@logisticinfotech/ionic4-datepicker": "^1.4.4", + "@microsoft/signalr": "^8.0.0", "@ng-bootstrap/ng-bootstrap": "^9.1.2", "@ngx-translate/core": "^13.0.0", "@ngxs/store": "^3.8.2", @@ -7412,6 +7413,18 @@ "resolved": "https://registry.npmjs.org/@mattlewis92/dom-autoscroller/-/dom-autoscroller-2.4.2.tgz", "integrity": "sha512-YbrUWREPGEjE/FU6foXcAT1YbVwqD/jkYnY1dFb0o4AxtP3s4xKBthlELjndZih8uwsDWgQZx1eNskRNe2BgZQ==" }, + "node_modules/@microsoft/signalr": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-8.0.0.tgz", + "integrity": "sha512-K/wS/VmzRWePCGqGh8MU8OWbS1Zvu7DG7LSJS62fBB8rJUXwwj4axQtqrAAwKGUZHQF6CuteuQR9xMsVpM2JNA==", + "dependencies": { + "abort-controller": "^3.0.0", + "eventsource": "^2.0.2", + "fetch-cookie": "^2.0.3", + "node-fetch": "^2.6.7", + "ws": "^7.4.5" + } + }, "node_modules/@netflix/nerror": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", @@ -8596,6 +8609,17 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -15609,6 +15633,14 @@ "node": ">= 0.6" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter-asyncresource": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", @@ -15638,7 +15670,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", - "dev": true, "engines": { "node": ">=12.0.0" } @@ -16316,6 +16347,37 @@ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==" }, + "node_modules/fetch-cookie": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-2.1.0.tgz", + "integrity": "sha512-39+cZRbWfbibmj22R2Jy6dmTbAWC+oqun1f1FzQaNurkPDUP4C38jpeZbiXCR88RKRVDp8UcDrbFXkNhN+NjYg==", + "dependencies": { + "set-cookie-parser": "^2.4.8", + "tough-cookie": "^4.0.0" + } + }, + "node_modules/fetch-cookie/node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/fetch-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/fflate": { "version": "0.3.11", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz", @@ -33907,6 +33969,11 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" + }, "node_modules/set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", @@ -49104,6 +49171,18 @@ "resolved": "https://registry.npmjs.org/@mattlewis92/dom-autoscroller/-/dom-autoscroller-2.4.2.tgz", "integrity": "sha512-YbrUWREPGEjE/FU6foXcAT1YbVwqD/jkYnY1dFb0o4AxtP3s4xKBthlELjndZih8uwsDWgQZx1eNskRNe2BgZQ==" }, + "@microsoft/signalr": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-8.0.0.tgz", + "integrity": "sha512-K/wS/VmzRWePCGqGh8MU8OWbS1Zvu7DG7LSJS62fBB8rJUXwwj4axQtqrAAwKGUZHQF6CuteuQR9xMsVpM2JNA==", + "requires": { + "abort-controller": "^3.0.0", + "eventsource": "^2.0.2", + "fetch-cookie": "^2.0.3", + "node-fetch": "^2.6.7", + "ws": "^7.4.5" + } + }, "@netflix/nerror": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", @@ -50155,6 +50234,14 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -55408,6 +55495,11 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, "eventemitter-asyncresource": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", @@ -55433,8 +55525,7 @@ "eventsource": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", - "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", - "dev": true + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==" }, "evp_bytestokey": { "version": "1.0.3", @@ -55981,6 +56072,33 @@ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==" }, + "fetch-cookie": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-2.1.0.tgz", + "integrity": "sha512-39+cZRbWfbibmj22R2Jy6dmTbAWC+oqun1f1FzQaNurkPDUP4C38jpeZbiXCR88RKRVDp8UcDrbFXkNhN+NjYg==", + "requires": { + "set-cookie-parser": "^2.4.8", + "tough-cookie": "^4.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" + } + } + }, "fflate": { "version": "0.3.11", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz", @@ -69576,6 +69694,11 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" + }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", diff --git a/package.json b/package.json index c7da3bcc2..fb200c89b 100644 --- a/package.json +++ b/package.json @@ -103,6 +103,7 @@ "@ionic/storage": "^2.3.1", "@ionic/storage-angular": "^3.0.6", "@logisticinfotech/ionic4-datepicker": "^1.4.4", + "@microsoft/signalr": "^8.0.0", "@ng-bootstrap/ng-bootstrap": "^9.1.2", "@ngx-translate/core": "^13.0.0", "@ngxs/store": "^3.8.2", diff --git a/src/app/interceptors/token.interceptors.ts b/src/app/interceptors/token.interceptors.ts index bea20116f..1adb5e9fb 100644 --- a/src/app/interceptors/token.interceptors.ts +++ b/src/app/interceptors/token.interceptors.ts @@ -116,4 +116,4 @@ export const tokenInterceptor = { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true -}; \ No newline at end of file +}; diff --git a/src/app/modals/add-note/add-note.page.ts b/src/app/modals/add-note/add-note.page.ts index ea27c63d8..2521b1e20 100644 --- a/src/app/modals/add-note/add-note.page.ts +++ b/src/app/modals/add-note/add-note.page.ts @@ -62,7 +62,7 @@ export class AddNotePage implements OnInit { this.documents.push(data.selected); } }, (error) => { - console.log(error) + // console.log(error) }); await modal.present(); diff --git a/src/app/modals/create-process/create-process.page.ts b/src/app/modals/create-process/create-process.page.ts index 342f5ed11..2e86d337f 100644 --- a/src/app/modals/create-process/create-process.page.ts +++ b/src/app/modals/create-process/create-process.page.ts @@ -108,7 +108,7 @@ export class CreateProcessPage implements OnInit { this.fulltask = this.navParams.get('fulltask'); - console.log('this.fulltask', this.fulltask) + // console.log('this.fulltask', this.fulltask) // if(this.fulltask?.Documents) { @@ -121,7 +121,7 @@ export class CreateProcessPage implements OnInit { this.taskType = this.navParams.get('taskAction'); - console.log('this.taskType ',this.taskType ) + // console.log('this.taskType ',this.taskType ) this.postData = new Despacho(); this.participants = this.participants = new Array(); @@ -132,7 +132,7 @@ export class CreateProcessPage implements OnInit { } else { this.placeholderSubject = 'Selecione o tipo de assunto*' } - + let NumberPDPP; @@ -184,7 +184,7 @@ export class CreateProcessPage implements OnInit { } ngOnInit() { - console.log('crete process') + // console.log('crete process') this.getSubjectType(); /* setTimeout(() => { this.selectedTypes = ['99999850']; @@ -209,7 +209,7 @@ export class CreateProcessPage implements OnInit { getSubjectType() { this.processes.GetSubjectType().subscribe(res => { - console.log('subjectTypes',res) + // console.log('subjectTypes',res) this.subjectTypes = res; }); } @@ -326,7 +326,7 @@ export class CreateProcessPage implements OnInit { } else { if (this.loggeduser.Profile != 'PR') { - console.log('Despacho MD'); + // console.log('Despacho MD'); switch (this.taskType) { case '0': // Despacho this.postData = { diff --git a/src/app/modals/delegar/delegar.page.ts b/src/app/modals/delegar/delegar.page.ts index 208e91b0f..c049f3cf0 100644 --- a/src/app/modals/delegar/delegar.page.ts +++ b/src/app/modals/delegar/delegar.page.ts @@ -12,6 +12,26 @@ import { SearchPage } from 'src/app/pages/search/search.page'; import { ThemeService } from 'src/app/services/theme.service' import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'; import { TaskService } from 'src/app/services/task.service' +import { z } from "zod"; + + +const Bodyschema = z.object({ + SerialNumber: z.string(), + DispatchDocId: z.number(), + FolderID: z.any(), + Subject: z.string(), + Comment: z.string().optional(), + DelegatedUserEmail: z.string().email(), + UserId: z.any(), + DraftIds: z.string(), +}) + + +const ProsSchema = z.object({ + DraftIds: z.string(), +}) + + @Component({ selector: 'app-delegar', @@ -64,6 +84,19 @@ export class DelegarPage implements OnInit { /* this.postData.EndDate = new Date(selectedEndDate.setMinutes(new Date().getMinutes() + 30)); */ this.hideThisFeature = this.navParams.get('showAttachmentBtn'); + + + const result = ProsSchema.safeParse(this.task); + + if(!result.success) { + console.log(result) + console.log("result") + console.log(result["error"]) + } else { + console.log(result.data) + } + + } ngOnInit() { @@ -86,6 +119,7 @@ export class DelegarPage implements OnInit { else if(this.taskParticipants.length > 1){ this.toastService._badRequest("Selecione apenas um destinatário"); } + else { let body = { "SerialNumber": this.task.SerialNumber, @@ -94,8 +128,11 @@ export class DelegarPage implements OnInit { "Subject": this.task.Folio, "Comment": this.note, "DelegatedUserEmail": this.taskParticipants[0].EmailAddress, + "DraftIds": this.task.DraftIds, + "UserId": this.taskParticipants[0].Id } + const loader = this.toastService.loading() this.processes.DelegateTask(body).subscribe(res=>{ diff --git a/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts b/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts index 762a3ab0a..cfbe1bdda 100644 --- a/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts +++ b/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts @@ -545,15 +545,15 @@ export class DocumentSetUpMeetingPage implements OnInit { }); } this.contacts = result; - console.log('Attendes Email', this.loggeduser.Email) + //console.log('Attendes Email', this.loggeduser.Email) let filterLoggedUserEmail = this.contacts.filter(item => item.RoleDescription == "Ministro e Director do Gabinete do PR") - console.log('Attendes Email', filterLoggedUserEmail) + //console.log('Attendes Email', filterLoggedUserEmail) this.contacts = filterLoggedUserEmail; const newAttendees: EventPerson[] = this.contacts; this.setIntervenient(newAttendees); - console.log('Attendes Email', this.contacts) + //console.log('Attendes Email', this.contacts) } ); } diff --git a/src/app/modals/view-document/view-document.page.ts b/src/app/modals/view-document/view-document.page.ts index 9fdad3232..c9fe527e3 100644 --- a/src/app/modals/view-document/view-document.page.ts +++ b/src/app/modals/view-document/view-document.page.ts @@ -125,7 +125,7 @@ export class ViewDocumentPage implements OnInit { } async openBookMeetingModal() { - console.log('this.Document----------', this.Document) + //console.log('this.Document----------', this.Document) let classs; if( window.innerWidth < 701) { classs = 'book-meeting-modal modal modal-desktop' @@ -165,7 +165,7 @@ export class ViewDocumentPage implements OnInit { } // check passing - console.log('this.Document----------openExpedientActionsModal', this.Document) + //console.log('this.Document----------openExpedientActionsModal', this.Document) const modal = await this.modalController.create({ component: ExpedientTaskModalPage, componentProps: { diff --git a/src/app/models/eventperson.model.ts b/src/app/models/eventperson.model.ts index e9c2c199b..8da49bf13 100644 --- a/src/app/models/eventperson.model.ts +++ b/src/app/models/eventperson.model.ts @@ -5,4 +5,5 @@ export class EventPerson{ UserType: string; IsPR: boolean; RoleDescription: string; -} \ No newline at end of file + Id: string +} diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index 8d167459e..7bf99c603 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -429,7 +429,7 @@ export class AgendaPage implements OnInit { }, 300) }, 10) } catch (error) { - console.log(error) + // console.log(error) } } diff --git a/src/app/pages/agenda/new-event/new-event.page.ts b/src/app/pages/agenda/new-event/new-event.page.ts index 35a51d0a9..eabdefc4c 100644 --- a/src/app/pages/agenda/new-event/new-event.page.ts +++ b/src/app/pages/agenda/new-event/new-event.page.ts @@ -659,7 +659,7 @@ export class NewEventPage implements OnInit { } catch (error) { } - console.log('selectedCalendar', selectedCalendar) + // console.log('selectedCalendar', selectedCalendar) if (selectedCalendar) { if (selectedCalendar.Role = 'Presidente da República') { @@ -859,15 +859,15 @@ export class NewEventPage implements OnInit { }); } this.contacts = result; - console.log('Attendes Email', this.loggeduser.Email) + //console.log('Attendes Email', this.loggeduser.Email) let filterLoggedUserEmail = this.contacts.filter(item => item.RoleDescription == "Ministro e Director do Gabinete do PR") - console.log('Attendes Email', filterLoggedUserEmail) + //console.log('Attendes Email', filterLoggedUserEmail) this.contacts = filterLoggedUserEmail; const newAttendees: EventPerson[] = this.contacts; this.setIntervenient(newAttendees); - console.log('Attendes Email', this.contacts) + //console.log('Attendes Email', this.contacts) } ); } diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 65744ee81..b28b048a0 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -153,7 +153,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { ngOnInit() { try { - console.log(this.router.url); + // console.log(this.router.url); this.createDirectoryImage() // this.chatService.refreshtoken(); this.ChatSystemService.getUserOfRoom(this.roomId).then((value) => { @@ -661,7 +661,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { imageBase64 = picture }); - console.log(imageBase64) + //console.log(imageBase64) const blob = this.dataURItoBlob(imageBase64) const formData = new FormData(); @@ -790,15 +790,15 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { imageBase64 = picture }); - console.log(imageBase64) + //console.log(imageBase64) const response = await fetch(imageBase64); const blob = await response.blob(); const formData = new FormData(); - console.log('add file', formData) + //console.log('add file', formData) formData.append("blobFile", blob); - console.log('add file', formData) + //console.log('add file', formData) this.ChatSystemService.getDmRoom(roomId).send({ file: { diff --git a/src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts b/src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts index afc672c98..059c22a06 100644 --- a/src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts +++ b/src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts @@ -112,7 +112,8 @@ export class DespachoPrPage implements OnInit { "DeadlineType": res.workflowInstanceDataFields.DeadlineType, "Deadline": res.deadline, "activityInstanceName": res.activityInstanceName, - "TaskStartDate": res.taskStartDate + "TaskStartDate": res.taskStartDate, + "DraftIds": res.workflowInstanceDataFields?.DraftIds } this.fulltask = res; let stringDraft = res.workflowInstanceDataFields.DraftIds; @@ -629,17 +630,17 @@ export class DespachoPrPage implements OnInit { this.processes.GetDraftByID(element).subscribe((resd) => { let object = { "ApplicationId": "", - "Assunto": resd.data.description, + "Assunto": resd.data.document.description, "DocDate": "", - "DocId": resd.data.id, + "DocId": resd.data.document.id, "DocNumber": "", "FolderId": "", "Sender": "", "SourceDocId": "", - "content": resd.data.content, - "path": resd.data.path, - "ownerId": resd.data.ownerId, - "status": resd.data.status, + "content": resd.data.document.content, + "path": resd.data.document.path, + "ownerId": resd.data.document.ownerId, + "status": resd.data.document.status, } this.mergedArray.push(object) console.log('List of draff', resd) diff --git a/src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts b/src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts index 51c0f842d..6ca3998be 100644 --- a/src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts +++ b/src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts @@ -142,8 +142,11 @@ export class DespachoPage implements OnInit { "activityInstanceName": res.activityInstanceName, "Status": res.workflowInstanceDataFields.Status, "Deadline": res.deadline, + "DraftIds": res.workflowInstanceDataFields?.DraftIds } + // console.log({res}) + // this.updateProcessOnDB(res); this.fulltask = res; @@ -205,17 +208,17 @@ export class DespachoPage implements OnInit { this.processes.GetDraftByID(element).subscribe((resd) => { let object = { "ApplicationId": "", - "Assunto": resd.data.description, + "Assunto": resd.data.document.description, "DocDate": "", - "DocId": resd.data.id, + "DocId": resd.data.document.id, "DocNumber": "", "FolderId": "", "Sender": "", "SourceDocId": "", - "content": resd.data.content, - "path": resd.data.path, - "ownerId": resd.data.ownerId, - "status": resd.data.status, + "content": resd.data.document.content, + "path": resd.data.document.path, + "ownerId": resd.data.document.ownerId, + "status": resd.data.document.status, } this.mergedArray.push(object) // console.log('List of draff', resd) diff --git a/src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts b/src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts index 8132d5590..929b2afb5 100644 --- a/src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts +++ b/src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts @@ -481,17 +481,17 @@ export class DiplomaAssinarPage implements OnInit { let object = { "ApplicationId": "", - "Assunto": resd.data.description, + "Assunto": resd.data.document.description, "DocDate": "", - "DocId": resd.data.id, + "DocId": resd.data.document.id, "DocNumber": "", "FolderId": "", "Sender": "", "SourceDocId": "", - "content": resd.data.content, - "path": resd.data.path, - "ownerId": resd.data.ownerId, - "status": resd.data.status, + "content": resd.data.document.content, + "path": resd.data.document.path, + "ownerId": resd.data.document.ownerId, + "status": resd.data.document.status, }; this.draftArray.push(object); this.mergedArray.push(object); diff --git a/src/app/pages/gabinete-digital/diplomas-gerar/diplomas-gerar/diplomas-gerar.page.ts b/src/app/pages/gabinete-digital/diplomas-gerar/diplomas-gerar/diplomas-gerar.page.ts index d77810bc8..09db0b358 100644 --- a/src/app/pages/gabinete-digital/diplomas-gerar/diplomas-gerar/diplomas-gerar.page.ts +++ b/src/app/pages/gabinete-digital/diplomas-gerar/diplomas-gerar/diplomas-gerar.page.ts @@ -106,7 +106,8 @@ export class DiplomasGerarPage implements OnInit { "DeadlineType": res.workflowInstanceDataFields.DeadlineType, "activityInstanceName": res.activityInstanceName, "Deadline": res.deadline, - "TaskStartDate": res.taskStartDate + "TaskStartDate": res.taskStartDate, + "DraftIds": res.workflowInstanceDataFields?.DraftIds } this.fulltask = res; diff --git a/src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts b/src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts index e348f703e..c95693706 100644 --- a/src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts +++ b/src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts @@ -144,6 +144,8 @@ export class DiplomaPage implements OnInit { let stringDraft = res.workflowInstanceDataFields.DraftIds; let split_stringDraft = stringDraft?.split(";").filter(Boolean); + console.log({split_stringDraft}) + this.mergedArray = [] try { this.getDraft(split_stringDraft); @@ -537,17 +539,17 @@ export class DiplomaPage implements OnInit { let object = { "ApplicationId": "", - "Assunto": resd.data.description, + "Assunto": resd.data.document.description, "DocDate": "", - "DocId": resd.data.id, + "DocId": resd.data.document.id, "DocNumber": "", "FolderId": "", "Sender": "", "SourceDocId": "", - "content": resd.data.content, - "path": resd.data.path, - "ownerId": resd.data.ownerId, - "status": resd.data.status, + "content": resd.data.document.content, + "path": resd.data.document.path, + "ownerId": resd.data.document.ownerId, + "status": resd.data.document.status, } this.mergedArray.push(object) this.DraftNames = this.DraftNames + resd.data.description+";" diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index d17156d61..5eb47d8c1 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -70,7 +70,7 @@ export class GabineteDigitalPage implements OnInit { SessionStore = SessionStore expedienteTaskPipe = new ExpedienteTaskPipe(); - + customTaskPipe = new CustomTaskPipe() @@ -86,7 +86,7 @@ export class GabineteDigitalPage implements OnInit { filterName: 'Para hoje' | 'Novos'| 'Lidos'| 'Não lidos'| 'OverdueTasks' | 'Todos' = 'Todos' - + hideSearchBtn: boolean = false; showSearch = true; searchSubject: string = ''; @@ -160,21 +160,21 @@ export class GabineteDigitalPage implements OnInit { const ordinance = this.ordinance if(this.showSearch && this.searchSubject) { - + const AllProcess = this.TaskService.AllProcess.filter((task) => { let subject = task.Folio || task.Subject || task.workflowInstanceDataFields.Subject subject = subject.toLowerCase(); return subject.includes(this.searchSubject.toLowerCase()) }) - + if(ordinance == this.ordinance) { this.AllProcess = this.TaskService.reorderList(this.ordinance, AllProcess) .filter( task => this.TaskService.filter(task, this.filterName)) } } else { const AllProcess = this.TaskService.AllProcess.filter( task => this.TaskService.filter(task, this.filterName)) - + if(ordinance == this.ordinance) { this.AllProcess = this.TaskService.reorderList(this.ordinance, AllProcess) .filter( task => this.TaskService.filter(task, this.filterName)) @@ -198,7 +198,7 @@ export class GabineteDigitalPage implements OnInit { - + (async () => { await this.loadAllProcesses() this.TaskService.registerCallback({ @@ -208,12 +208,12 @@ export class GabineteDigitalPage implements OnInit { } }) })(); - + this.checkFilter(); this.checkRoutes(); this.dynamicSearch() - - + + const pathname = '/home/gabinete-digital' this.router.events.forEach((event) => { if (event instanceof NavigationEnd && event.url.includes(pathname) && !event.url.includes('/home/gabinete-digital/')) { @@ -230,13 +230,13 @@ export class GabineteDigitalPage implements OnInit { // this.LoadCounts(); this.checkFilter() } - + this.mobile() } }) } }); - + } ngAfterViewInit(): void { @@ -247,11 +247,11 @@ export class GabineteDigitalPage implements OnInit { this.scroll.nativeElement.addEventListener("scroll", (e)=> { this.changeTab() }); - + } catch(error) { } - + } @@ -269,7 +269,7 @@ export class GabineteDigitalPage implements OnInit { } else { this.refresh = false } - + }, 100); } @@ -291,14 +291,14 @@ export class GabineteDigitalPage implements OnInit { this.dynamicSearch() } // console.log('this.filterName', this.filterName) - } + } goto(url) { this.router.navigate([url]) } - + goToProcess(serialNumber: string, workflowName: string, activityName: string) { @@ -349,7 +349,6 @@ export class GabineteDigitalPage implements OnInit { } hideRefreshButton() { - console.log(this.router.url) if (window.innerWidth < 701) { this.hideRefreshBtn = false; this.hideInMobile = false; @@ -363,7 +362,6 @@ export class GabineteDigitalPage implements OnInit { } mobile() { - console.log(this.router.url) if (window.innerWidth < 701 && this.router.url.includes('filter=')) { this.hideRefreshBtn = false; this.hideInMobile = false; @@ -375,7 +373,7 @@ export class GabineteDigitalPage implements OnInit { checkRoutes() { this.closeAllDesktopComponents(); - + // console.log(this.router.url, this.router.url.includes('processes=true')) // alert('hello')s if (this.router.url.includes('processes=true')) { @@ -463,7 +461,7 @@ export class GabineteDigitalPage implements OnInit { } async loadAllProcesses() { - + // this.skeletonLoader = true await this.TaskService.LoadTask() this.dynamicSearch() @@ -472,14 +470,14 @@ export class GabineteDigitalPage implements OnInit { doRefreshAside() { - + try { window['gabinete-aside-refresh']() } catch(error) {} - + setTimeout(() => { this.loadAllProcesses(); - }, 1000) + }, 1000) } doRefresh(event) { @@ -494,7 +492,7 @@ export class GabineteDigitalPage implements OnInit { event?.target?.complete(); } catch(error) {} } catch(error) {} - + }, 2000); } else { @@ -671,7 +669,7 @@ export class GabineteDigitalPage implements OnInit { this.segment = segment; if (window.innerWidth < 701) { - + let navigationExtras: NavigationExtras = { queryParams: { "gerarDiplomas": true }} this.router.navigate(['/home/gabinete-digital/diplomas-gerar'], navigationExtras); diff --git a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts index 0f6685052..dea93c087 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts +++ b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts @@ -69,7 +69,7 @@ export class PedidoPage implements OnInit { this.loggeduser = SessionStore.user; this.activatedRoute.paramMap.subscribe(params => { - // + // if (params["params"].SerialNumber) { this.serialnumber = params["params"].SerialNumber; @@ -103,9 +103,9 @@ export class PedidoPage implements OnInit { this.processes.GetTask(this.serialnumber).subscribe(res => { this.fulltask = res - + this.TaskService.loadPedidos(); - + if (res.workflowDisplayName == 'Pedido de Parecer' || res.workflowDisplayName == 'Pedido de Parecer do Presidente') { let date = new Date(res.taskStartDate); @@ -131,7 +131,7 @@ export class PedidoPage implements OnInit { "Status": res.workflowInstanceDataFields.Status, "Deadline": res.deadline, } - + // this.updateProcess(res); } else if (res.workflowDisplayName == 'Pedido de Deferimento') { @@ -156,6 +156,7 @@ export class PedidoPage implements OnInit { "ProcessInstanceID": res.workflowInstanceDataFields.InstanceID, "activityInstanceName": res.activityInstanceName, "Status": res.workflowInstanceDataFields.Status, + "DraftIds": res.workflowInstanceDataFields?.DraftIds } // this.updateProcess(res) } @@ -164,7 +165,7 @@ export class PedidoPage implements OnInit { this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]); this.processes.GetTaskParticipants(res.workflowInstanceDataFields.FolderID).subscribe((users = []) => { - + // this.updateProcessInterveners(users) this.intervenientes = users.filter(user => { return user.Type == 'I'; @@ -214,7 +215,7 @@ export class PedidoPage implements OnInit { getDocumentDetails(forlderId: string, applicationId: string) { this.processes.GetDocumentDetails(forlderId, applicationId).subscribe(res => { this.attachments = res.Documents; - + }) } @@ -345,7 +346,7 @@ export class PedidoPage implements OnInit { if(error.status == 0) { this.toastService._badRequest('Sem acesso à internet. Por favor verifique sua conexão') } else { - + this.toastService._badRequest() } } finally { @@ -385,7 +386,7 @@ export class PedidoPage implements OnInit { }); modal.onDidDismiss().then(res => { - + this.goBack(); }, (error) => { console.log(error) @@ -471,7 +472,7 @@ export class PedidoPage implements OnInit { // } async distartExpedientModal() { - + const modal = await this.modalController.create({ component: DiscartExpedientModalPage, componentProps: { @@ -487,7 +488,7 @@ export class PedidoPage implements OnInit { modal.onDidDismiss().then(res => { if (res['data'] == 'close') { this.close(); - /* + /* this.close(); this.openMenu(); */ } @@ -500,7 +501,7 @@ export class PedidoPage implements OnInit { } async openDelegarModal(task: any) { - + let classs; if (window.innerWidth <= 800) { @@ -516,7 +517,7 @@ export class PedidoPage implements OnInit { cssClass: classs, backdropDismiss: false }); - + modal.onDidDismiss().then(res => { if(res){ const data = res.data; @@ -554,12 +555,12 @@ export class PedidoPage implements OnInit { (error) => { console.log(error) }) - + await modal.present(); } async openDarParecer(task: any) { - + let classs; if (window.innerWidth < 701) { diff --git a/src/app/pages/publications/new-publication/new-publication.page.html b/src/app/pages/publications/new-publication/new-publication.page.html index e6379fc96..798f80d85 100644 --- a/src/app/pages/publications/new-publication/new-publication.page.html +++ b/src/app/pages/publications/new-publication/new-publication.page.html @@ -32,7 +32,7 @@
- +
- +
+ +
+ +
-
- -
diff --git a/src/app/pages/publications/new-publication/new-publication.page.ts b/src/app/pages/publications/new-publication/new-publication.page.ts index 302b4a61c..249799d08 100644 --- a/src/app/pages/publications/new-publication/new-publication.page.ts +++ b/src/app/pages/publications/new-publication/new-publication.page.ts @@ -400,21 +400,14 @@ export class NewPublicationPage implements OnInit { if (this.publicationType == '3') { - const loader = this.toastService.loading() - - this.publication = { - DateIndex: this.publication.DateIndex, - DocumentId: this.publication.DocumentId, - ProcessId: this.publication.ProcessId, - Title: this.pub.Title, - Message: this.pub.Message, - DatePublication: this.publication.DatePublication, - OriginalFileName: this.publication.OriginalFileName, - Files: this.seletedContent, - } - /* else { + + if (this.seletedContent.length >= 1) { + + + const loader = this.toastService.loading() + this.publication = { DateIndex: this.publication.DateIndex, DocumentId: this.publication.DocumentId, @@ -423,79 +416,77 @@ export class NewPublicationPage implements OnInit { Message: this.pub.Message, DatePublication: this.publication.DatePublication, OriginalFileName: this.publication.OriginalFileName, - FileBase64: this.publication.FileBase64, - FileExtension: this.publication.FileExtension || 'jpeg', + Files: this.seletedContent, } - - } */ - - - try { - - const response = await this.publications.UpdatePublication(this.publication.ProcessId, this.publication).toPromise() - - this.httpErrorHandle.httpsSucessMessagge('Editar publicação') - console.log({ response }) - - - this.close(); - } catch (error) { - if (error.status == 404) { - this.PublicationFolderService.deletePost(this.publication.ProcessId, this.publication.DocumentId) + + + try { + + const response = await this.publications.UpdatePublication(this.publication.ProcessId, this.publication).toPromise() + + this.httpErrorHandle.httpsSucessMessagge('Editar publicação') + console.log({ response }) + + this.close(); + } catch (error) { + if (error.status == 404) { + this.PublicationFolderService.deletePost(this.publication.ProcessId, this.publication.DocumentId) + this.close(); + } + this.httpErrorHandle.httpStatusHandle(error) + } finally { + loader.remove() } - this.httpErrorHandle.httpStatusHandle(error) - } finally { - loader.remove() + + + } else { + this.toastService._badRequest("É necessário adicionar anexo") } + + } else { - const date = formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss') - /* if (this.capturedImage != '') { */ - this.publication = { - DateIndex: date, - DocumentId: null, - ProcessId: this.folderId, - Title: this.pub.Title, - Message: this.pub.Message, - DatePublication: date, - OriginalFileName: this.capturedImageTitle, - Files: this.seletedContent, - /* FileExtension: 'jpeg', */ - } + if (this.seletedContent.length >= 1) { - /* } else if (this.capturedVideo != '') { - this.publication = { - DateIndex: date, - DocumentId: null, - ProcessId: this.folderId, - Title: this.pub.Title, - Message: this.pub.Message, - DatePublication: date, - OriginalFileName: this.capturedImageTitle || 'video', - Files: this.seletedContent, - FileExtension: 'mp4', - } - } */ + const date = formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss') + + /* if (this.capturedImage != '') { */ + this.publication = { + DateIndex: date, + DocumentId: null, + ProcessId: this.folderId, + Title: this.pub.Title, + Message: this.pub.Message, + DatePublication: date, + OriginalFileName: this.capturedImageTitle, + Files: this.seletedContent, + /* FileExtension: 'jpeg', */ + } + + const loader = this.toastService.loading() + + try { + + await this.publications.CreatePublication(this.folderId, this.publication).toPromise(); + this.close(); + this.httpErrorHandle.httpsSucessMessagge('Criar publicação') + window["sharedContent"] = null; + + this.close(); + } catch (error) { + this.httpErrorHandle.httpStatusHandle(error) + } finally { + loader.remove() + } - const loader = this.toastService.loading() - try { - - await this.publications.CreatePublication(this.folderId, this.publication).toPromise(); - this.close(); - this.httpErrorHandle.httpsSucessMessagge('Criar publicação') - window["sharedContent"] = null; - - this.close(); - } catch (error) { - this.httpErrorHandle.httpStatusHandle(error) - } finally { - loader.remove() + } else { + this.toastService._badRequest("É necessário adicionar anexo") } } @@ -716,4 +707,3 @@ export class NewPublicationPage implements OnInit { } } - diff --git a/src/app/pages/publications/view-publications/view-publications.page.scss b/src/app/pages/publications/view-publications/view-publications.page.scss index 246c28064..1de677633 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.scss +++ b/src/app/pages/publications/view-publications/view-publications.page.scss @@ -122,13 +122,10 @@ ion-toolbar { .post-img { width: 100%; height: 100%; - max-height: 400px; min-height: 350px; min-width: 350px; - margin: 5px auto; - border-radius: 0px !important; overflow: hidden; background-color: white; @@ -136,6 +133,10 @@ ion-toolbar { justify-content: center; align-items: center; background: black; + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + -ms-border-radius: 0px !important; + -o-border-radius: 0px !important; } .post-video { width: 100%; diff --git a/src/app/services/socket-connection-mcr.service.spec.ts b/src/app/services/socket-connection-mcr.service.spec.ts new file mode 100644 index 000000000..b6b8c0eaa --- /dev/null +++ b/src/app/services/socket-connection-mcr.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { SocketConnectionMCRService } from './socket-connection-mcr.service'; + +describe('SocketConnectionMCRService', () => { + let service: SocketConnectionMCRService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(SocketConnectionMCRService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/socket-connection-mcr.service.ts b/src/app/services/socket-connection-mcr.service.ts new file mode 100644 index 000000000..aad2c24f0 --- /dev/null +++ b/src/app/services/socket-connection-mcr.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@angular/core'; +import * as signalR from "@microsoft/signalr" +import { SessionStore } from '../store/session.service'; + + +@Injectable({ + providedIn: 'root' +}) +export class SocketConnectionMCRService { + + constructor() { } + + connect() { + + var connection = new signalR.HubConnectionBuilder() + .withUrl("https://gdcmapi-dev.dyndns.info/FileHub", { + accessTokenFactory: () => SessionStore.user.Authorization + }).configureLogging(signalR.LogLevel.Information) + .build() + + + connection.on("ReceiveMessage", (message) => { + console.log(message) + }) + } + +} diff --git a/src/app/shared/API/middleware/middleware-service.service.ts b/src/app/shared/API/middleware/middleware-service.service.ts index e81114903..53f63828f 100644 --- a/src/app/shared/API/middleware/middleware-service.service.ts +++ b/src/app/shared/API/middleware/middleware-service.service.ts @@ -155,4 +155,28 @@ export class MiddlewareServiceService { return this.http.post(`${geturl}`, formData, options) } + + // =========================================================================== + + CMAPIFileContent({length, path, index, blobFile}) { + const headers = new HttpHeaders(); + headers.set('Authorization', 'Bearer ' + SessionStore.user.Authorization); + + //const geturl = environment.apiURL + 'Tasks/DelegateTask'; + const geturl = environment.apiURL + 'ObjectServer/UploadFiles'; + + let options = { + headers: headers + }; + + + const formData = new FormData(); + + formData.append("blobFile", blobFile); + formData.append("length", length); + formData.append("index", index.toString()); + formData.append("path", path); + + return this.http.post(`${geturl}`, formData, options) + } } diff --git a/src/app/shared/gabinete-digital/all-processes/all-processes.page.ts b/src/app/shared/gabinete-digital/all-processes/all-processes.page.ts index d1b9d0c98..ca65a4eca 100644 --- a/src/app/shared/gabinete-digital/all-processes/all-processes.page.ts +++ b/src/app/shared/gabinete-digital/all-processes/all-processes.page.ts @@ -1,8 +1,8 @@ import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core'; import { NavigationEnd, Router } from '@angular/router'; import { LoginUserRespose } from 'src/app/models/user.model'; -import { ThemeService } from 'src/app/services/theme.service' -import { TaskService } from 'src/app/services/task.service' +import { ThemeService } from 'src/app/services/theme.service'; +import { TaskService } from 'src/app/services/task.service'; @Component({ selector: 'app-all-processes', @@ -17,7 +17,7 @@ export class AllProcessesPage implements OnInit { hideSearchBtn: boolean = false; showSearch = false; searchSubject: string = ''; - + filterName: 'Para hoje' | 'Novos'| 'Lidos'| 'Não lidos'| 'OverdueTasks' | 'Todos' = 'Todos' /* miniSearch = new MiniSearch({ @@ -28,7 +28,7 @@ export class AllProcessesPage implements OnInit { AllProcess = [] ordinance: string = 'old' - + /** * @description Update List subcription */ @@ -55,7 +55,7 @@ export class AllProcessesPage implements OnInit { funx:() => { this.dynamicSearch() - + } }) @@ -103,13 +103,13 @@ export class AllProcessesPage implements OnInit { this.ordinance = orderBy; this.cdr.markForCheck() - this.dynamicSearch(); + this.dynamicSearch(); } - + async dynamicSearch() { if(this.showSearch && this.searchSubject) { - + const AllProcess = this.TaskService.AllProcess.filter((task) => { let subject = task.Folio || task.Subject || task.workflowInstanceDataFields.Subject subject = subject.toLowerCase(); @@ -137,7 +137,7 @@ export class AllProcessesPage implements OnInit { } this.cdr.markForCheck() - } + } goToProcess(serialNumber: string, workflowName: string, activityName: string) { diff --git a/src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts b/src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts index 43b4ec5a0..63482d90e 100644 --- a/src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts +++ b/src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts @@ -15,11 +15,11 @@ export class TaskDetailsPage implements OnInit { @Input() customDate = '' @Input() mergedArray = [] @Input() fulltask = new fullTask() - + @Output() openOptions = new EventEmitter(); @Output() goBack = new EventEmitter(); @Output() viewDocument = new EventEmitter(); - + constructor( public ThemeService: ThemeService ) { } diff --git a/src/app/shared/publication/new-publication/new-publication.page.html b/src/app/shared/publication/new-publication/new-publication.page.html index dd1bf0ef9..0b4e9dcd0 100644 --- a/src/app/shared/publication/new-publication/new-publication.page.html +++ b/src/app/shared/publication/new-publication/new-publication.page.html @@ -40,40 +40,45 @@ -
- Fotografia Anexada -
+
+ Anexos +
- +
+
+ - + - +
+ +
+
- +
- +

mais {{ seletedContent.length - displayLimit }}

- +

{{capturedImageTitle}}

-
@@ -102,7 +107,7 @@
--> -
+
@@ -115,7 +120,7 @@
-
+
diff --git a/src/app/shared/publication/new-publication/new-publication.page.ts b/src/app/shared/publication/new-publication/new-publication.page.ts index d941b1dc5..0ae3eccb3 100644 --- a/src/app/shared/publication/new-publication/new-publication.page.ts +++ b/src/app/shared/publication/new-publication/new-publication.page.ts @@ -14,6 +14,8 @@ import { FileValidatorService } from "src/app/services/file/file-validator.servi import { MiddlewareServiceService } from "src/app/shared/API/middleware/middleware-service.service" import { LakefsRepositoryService } from '../../repository/lakefs/lakefs-repository.service'; import { ok, err, Result } from 'neverthrow'; +import { SocketConnectionMCRService } from "src/app/services/socket-connection-mcr.service" +import { CMAPIService } from "src/app/shared/repository/CMAPI/cmapi.service" enum ActionType { newRapid = "1", @@ -72,7 +74,9 @@ export class NewPublicationPage implements OnInit { public checkFileType: checkFileTypeService, private FileValidatorService: FileValidatorService, private MiddlewareServiceService: MiddlewareServiceService, - private LakefsRepositoryService: LakefsRepositoryService + private LakefsRepositoryService: LakefsRepositoryService, + private SocketConnectionMCRService: SocketConnectionMCRService, + private CMAPIService: CMAPIService ) { this.publicationTitle = 'Nova Publicação'; @@ -80,6 +84,8 @@ export class NewPublicationPage implements OnInit { this.seletedContent = this.publication.Files; this.filecontent = true; } + + this.SocketConnectionMCRService.connect() } ngOnInit() { @@ -249,12 +255,14 @@ export class NewPublicationPage implements OnInit { const FileExtension = this.removeTextBeforeSlash(blobFile.mimeType,'/') + const file = new File([blobFile.blob], blobFile.name); + const newAttachment = new PublicationAttachmentEntity( { base64: value, extension: FileExtension, - blobFile: blobFile, - FileType: 'video' + blobFile: file, + FileType: this.checkFileType.checkFileType(FileExtension) } ) @@ -332,46 +340,9 @@ export class NewPublicationPage implements OnInit { if (this.publicationType == ActionType.edit) { - const loader = this.toastService.loading() - - this.publication = { - DateIndex: this.publication.DateIndex, - DocumentId: this.publication.DocumentId, - ProcessId: this.publication.ProcessId, - Title: this.pub.Title, - Message: this.pub.Message, - DatePublication: this.publication.DatePublication, - Files: this.seletedContent, - } - - - this.publication.Files = this.publication.Files.map( e => ({ - FileBase64: e.FileBase64, - FileExtension: e.FileExtension, - OriginalFileName: 'foto' - })) - - try { - - const response = await this.publications.UpdatePublication(this.publication.ProcessId, this.publication).toPromise() - - this.httpErroHandle.httpsSucessMessagge('Editar publicação') - console.log({ response }) - - this.goBack(); - - } catch (error) { - this.httpErroHandle.httpStatusHandle(error) - if (error.status == 404) { - this.PublicationFolderService.deletePost(this.publication.ProcessId, this.publication.DocumentId) - this.goBack(); - } - } finally { - loader.remove() - } -/* - else if (!this.PublicationFolderService.PublicationHasImage(this.publication)) { // + if (this.seletedContent.length >= 1) { + const loader = this.toastService.loading() this.publication = { DateIndex: this.publication.DateIndex, @@ -380,30 +351,44 @@ export class NewPublicationPage implements OnInit { Title: this.pub.Title, Message: this.pub.Message, DatePublication: this.publication.DatePublication, - OriginalFileName: this.publication.OriginalFileName, - Files: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgMAAAIJCAIAAAC3IqlmAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAABSKSURBVHhe7d1ncuNGo4bRu/8lfh5F5qToBdyWNJbHDYgAmETqPVXnh4PAhKp+iMDu/3v9+28AkikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEcHYen56Wq9VkOr25vfvfX7/Kv1Z/AIelBPDNnp6fV+v1dDa7u7//69dVGfor682m2gQOSwngpF5eX9ebh9l8cT8aXV1fV4N+q/liUT0IHJYSwHE9PD7OF8vReHJ9c1sN8T2NJ9PqMeGwlAAO6eMUfxm7b27vWk/17ODu/r56FjgsJYDdfZ7iv727/3XV61TPDq6ub15eX6unhgNSAujr+eVlvdnM5vP70ej65qYar4/K7UMclRLAlzYPv0/xH/BUz27KkUf12uCAlAB+K9+7F8u3U/xHPdWzm9nc7UMckRIQ6uMU/2Q6u7sfXV2f9FTPDspxSfX64YCUgAh/nOIf39zefu+pnh2Uw5TqHcEBKQE/0+bhYb5YjCeTMzzVs4PyFkrMqvcIh6IE/AQfp/gn0+lFnOrZzcPjY/Wu4VCUgMvzz138l3qq50/ly36p12w2r/5703K1qj4HOBQl4Nz9c4p/MRpPbu/uLv1Uz83t3XgyLcP6nz8RWK7W1Z81lfJ9/j0clhJwXl5eX99P8S9/xqme8vrLgct8sShvqnqnf3p4fKw2bBqNx9VWcChKwDd7eHybqGc6m5UR8/rm4k/13N7dl/eyWq+fnp+rd7pF6V9n88rBRLUVHIoScFIfp/h/xqme92/8t+WNLJbL/S/nlgOg6vEr5encPsSRKAFH9HGK/yed6nm7ujuflzd18CnhykdUPV3T9lNMsDMl4GA+TvH/sFM9ZYB+v7o74FTPbsqBRfUCmhZLtw9xFErA7h4en95P9cw/5mi79FM95S38c3X3G+7cX28eqpfUVBJbbQUHoQT09fT8/HGqZzyZ3t3fX/qpnuubt1M9H1d3z+H8e/l4q1fYVEJVbQUHoQS0K4Pj5uFhsfz3VE81Kl2Wq+u3Uz2lYe9Xd890rv/OuJa9UG0CB6EEvHl5ff15p3rKG3m/uvtw8Ku7R1KKW72RSnlfg25OhZ6UINfPOtVzez8aTaaz5WrYjfxnpXSrel9NZa9VW8H+lCBXnxkOztP73Zxvp3pKyb7l6u6RlGOy6p02lbdcbQX7U4JcfS5RnoP3uzl/n+pZrTc/+NdVD49P1Xtvmkyn1VawPyWIVo0y5+D9G//t/Wg8nc3eb+QPWsn95fW1+jSa7u5H1VawPyWIdg6Xhd9P9YzKV933Uz0Xc3X3SDrv0SofV7UJ7E8JopUhuBpoju39VM/9eDKZzRergdO0JRiNJ9Un1hR1nMRpKEG0aY8FUvZRvsK+3805Lk+0XK2sutWpHBhVn2HTau32IQ5MCaKtN5tqlNnT9fuMDZPpbLF8O9Vj7syhyodWfaRN88Wi2gr2pATRykhdjTKDvF3bff/hbhmbSlSctdjf03P3HikfeLUV7EkJ0lWjzBb/nOp5u5tzuVo/PD6GX909kupjbyr1rTaBPSlBuvK9vhpoKmX0XyxXTvWcTJ/bhzSYw1KCdJ1z3RTVJhzVeNJ9+5Br7xyWEqSbLxbVKNPkG+gp9VmyZrVeV1vBPpQgXZ+bVcrfVFtxPOX7fvX5N83m82or2IcSpOszw8Fs7rbF03l57b5oPBpPqq1gH0pA97hjqawTqz7/ptu7u2oT2IcS0H2zyq+r62qTQWazOYPc3N5Vu6BS9ki1yQFVu48ESkCvm1WqTQa5vbuvHo1zVu0+EigBvW5W2WeqOCW4LNXuI4ES0OtmleVq99sWleCyVLuPBErAm2osaNpnqSwluCzV7iOBEvDmV9eSNTe3u9+sogSXpdp9JFAC3nQO1n/9uqo26U8JLku1+0igBLyZTGfVcNBUbdKfElyWaveRQAl4s1ytq+GgafOw46xnSnBZqt1HAiXgzdPzczUcNO28VJYSXJZq95FACfitGg6adp5zQgkuS7X7SKAE/Na5ZE35g2qTnpTgslS7jwRKwG9396NqRGiqNumpTwmqTTgS+4JWSsBv09m8GhGadptzwuhzPuwLWikBv603m2pEaNptqSyjz/mwL2ilBPz2/PJSjQhNk+ms2qoPo8/5sC9opQT8qxoRmso4Um3Sh9HnfNgXtFIC/nWkJWuMPufDvqCVEvCv+9G4GhSaqk36MPqcD/uCVkrAv+aLRTUoND08Dp5zwuhzPuwLWikB/9o8PFSDQtN8say26rTz6NPn9dDqq+WIlYBWSsC/Xl5fq0GhaTQePOeEEpyeEjCIEvAfPZasua026aQEp6cEDKIE/MfN7V01LlR2WLJGCU5PCRhECfiP8WRSjQtNzy8v1VbbKcHpKQGDKAH/sVguq3GhabXeVFttpwSnpwQMogT8x8PjYzUuNE1nw+acUILTUwIGUQJq1bjQdHc/qjbZ7vQl+HV1PRqPZ/P5erN5fn4pyj+Ufy3/sfOS+M+gBAyiBNQOvmTNiUtwPxo/Pj1VD/Wp/K8+P6W+dErAIEpA7e7+wIPFKUuwWPb64VufyyEXTQkYRAmoTabTamhoenj88kt308lKMGjN/T5Ta1wuJWAQJaC2XK2qoaGp51fvD6cpwQ4/eSubVA/yYygBgygBtcenp2poaBpPJtVWW5ymBOvNsHtbiz7LtF0oJWAQJaBFNTQ0lQGl2mSLE5Tgq4GvU9mweqifQQkYRAlocdgla05Qgt0WWC7Wm2GXIi6FEjCIEtCiz32W/eecOEEJnp6fq217enl9/evXVfVoP4ASMIgS0GLa45xJ//Pyxy7BoAOUpj53zV4cJWAQJaDFat19KbXUotrqK8cuQXn8asNBvvdSwfXNbZ/PZyglYBAloMXzy0s1OjTdj/ouWXPsEux5THCMgbin8so/VwMtY3fnlOD9KQGDKAHtyiBVDRCV/vfvH7sExZbpJbb7xusE5XnXm4fq9ZQwdM720YcSMIgS0O6AS9acoAR73Dv0bT8p+Oo193/XWygBgygB7Ubj7iVren4TP0EJvhr4OpUNq4c6jcVyVb2SPy1X6+rvh1ICBlEC2s3m3dPybB/OPp2gBMXnCff++izGcAx95kfac1okJWAQJaBdn1F4Mp1WW7U6TQmubwbPO9T5A7pj6H/P1WQ6q7btTwkYRAlo9/L6Wg0QTT2XrDlNCYqeZfrQZ8rVgxv0Cos+5+haKQGDKAFfOtSSNScrQXFze9f54+fyBwe8X7O/MqxXr6SPPp9ekxIwiBLwpT4/vi2HDtVWTacsQVEKtWXS7PK/vuW20fvRsCU/Pz09P1/fDL6vVAkYRAn40njSff6keUd804lL8KEcr5TBdzqbr9brovxD+deD3Kq/g/IJ9EnmVx4eH4fWSwkYRAn4Up8lHmfz7ttgvqUE5+P65nbnCfI+9Zn/409KwCBKwJf63GTZZ8ma5BKUo5Cdf/9cGbT2shIwiBKwTTVGNJWRpdqkKbYEJQTlLVRvah+zed/fwSkBgygB2xxkyZrYEuywoGanPhdvCiVgECVgmz5L1nSe/cgswXLV6wfYO7i7H1XP1aQEDKIEbDOddf/MtXPICyzBlttY9/fy+tp5rKYEDKIEbFNG+WqYaOqcPiGtBH3up9pTOQ7bfl+pEjCIErBNGXGqYaKpc8maqBKUo6jqXRzJ9g9HCRhECejQuWRN59RvOSUYT4ZNK7SnLZNXKwGDKAEdbu+6l6zZ/gPakBL0X87zgL6avFoJGEQJ6NBnOswyZFdb/SmhBHf3e62qv4/W+0qVgEGUgA59fs00X2y7VebHl6DPBKhH1byvVAkYRAnosFp3r6S4fdr9n12C65ub/acV2l91X6kSMIgS0KEMc9VI0bR9yZofXIJfV9c7rJp5DE/PL3/eV6oEDKIEdNtzyZofXIJNj0m5T+bPGQOVgEGUgG59pjfYcobkp5ZgtV5XL/jbfZ7KUwIGUQK69Vnyd8uw+CNLsFgea1qhPX3cV6oEDKIEdJsv9lqy5ueVoIy21Us9K6XcSsAgSkC39aZ7RN6yXPsPK0HnPEvnQAkYRAno9vL6un2+s+L27q7a6tNPKsH2+2XPnxLQSgnoZZ8la769BOUFDFr68StbjnsuhRLQSgnopc+SNZuH9jvrv7cEn79/fn557XMT1Fe2/2biUigBrZSAXvZZsua7SlCetzkJRHmRnbOrNpWH2j7L3qVQAlopAb30W7KmfWr+bynB9qmQRuPuQ5xP1ze3T+WAovEgl0gJaKUE9PLn71e/8tW0zCcuQXm6PgP3ar25ue24+FFcXd90LtR8QZSAVkpAX50nVb5asuaUJRh6p/9kOttyW1T5X19d/LhQSkArJaCvPkvWtM45cZoS3N2XQ4Fd5gRdbx6+upK83myqP750SkArJaCvPkvWtA6dxy5BKdD+P/otj1BNtPfVBfCLpgS0UgL6ms3bF0r8U+t12qOWoHydP9TyAA+Pj+PJ79ottl5wvlxKQCsloK+dl6w5UgkOcijQVA4FZvMLmE9iN0pAKyWgr8enp2rIaGr9+dUxSnA/OtihQBQloJUSMMBuS9YctgTlObb/VoAtlIBWSsAAfWZraN59f8AS3I/Gj08OBXanBLRSAgbYbcmag5SgHAoslg4F9qUEtFICBthtyZr9SzAaT37SD32/kRLQSgkYYL3ZVKNGU3Pq5n1KcHV9c7brRF4iJaCVEjDA0/PzX8OXrNmnBG4QOiwloJUSMEyfJWuquaCNPufDvqCVEjDMDkvWGH3Oh31BKyVgmB2WrDH6nA/7glZKwDBllK8GjqY/l6x5en42+pwP+4JWSsAwm4deS9aUYIwn05vbjomsP1XPwpEoAa2UgGGeX147l6zZQfUsHIkS0EoJGKxzyZodVE/BkSgBrZSAwfosWTNU9RQciRLQSgkYrM+SNUNVT8GRKAGtlIDB+ixZM1T1FByJEtBKCRisz5I1Q1VPwZEoAa2UgF10LlkzVPX4HIkS0EoJ2EWfJWsGqR6fI1ECWikBu+izZM0g1eNzJEpAKyVgF32WrBmkjFCcRvXJN1X7mgRKwC76LFnz4a9fV31GH85Hta9JoATsYsuSNdc3t+PJZLFcPjz+Xm9SCS7L514mhxKwo48la35dXd/dj2bzeTlKeHl9rf7mgxJclmr3kUAJ2NHjU991JZXgslS7jwRKwNEpwWWpdh8JlICjU4LLUu0+EigBR6cEl6XafSRQAo5OCS5LtftIoAQcnRJclmr3kUAJODoluCzV7iOBEnB0SnBZqt1HAiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQDSKQFAOiUASKcEAOmUACCdEgCkUwKAdEoAkE4JANIpAUA6JQBIpwQA6ZQAIJ0SAKRTAoB0SgCQTgkA0ikBQDolAEinBADplAAgnRIApFMCgHRKAJBOCQCy/f33/wPavQjXs/ARnQAAAABJRU5ErkJggg==", - FileExtension: 'jpeg', + Files: this.seletedContent, } + + + this.publication.Files = this.publication.Files.map( e => ({ + FileBase64: e.FileBase64, + FileExtension: e.FileExtension, + OriginalFileName: 'foto' + })) + + try { + + const response = await this.publications.UpdatePublication(this.publication.ProcessId, this.publication).toPromise() + + this.httpErroHandle.httpsSucessMessagge('Editar publicação') + + this.goBack(); + + } catch (error) { + this.httpErroHandle.httpStatusHandle(error) + if (error.status == 404) { + this.PublicationFolderService.deletePost(this.publication.ProcessId, this.publication.DocumentId) + this.goBack(); + } + } finally { + loader.remove() + } + } else { - this.publication = { - DateIndex: this.publication.DateIndex, - DocumentId: this.publication.DocumentId, - ProcessId: this.publication.ProcessId, - Title: this.pub.Title, - Message: this.pub.Message, - DatePublication: this.publication.DatePublication, - OriginalFileName: this.publication.OriginalFileName, - Files: this.publication.Files, - FileExtension: this.publication.FileExtension, - } + this.toastService._badRequest("É necessário adicionar um anexo") + } - } */ } else { let time = new Date() - if (this.seletedContent.length > 0) { + if (this.seletedContent.length >= 1) { this.publication = { DateIndex: time, DocumentId: null, @@ -415,16 +400,14 @@ export class NewPublicationPage implements OnInit { Files: this.seletedContent, } - - // this.publicationFormMV.setDataToFrom(this.publication) - - // this.publicationFormMV.uploadVideosFiles() - this.publication.Files = this.publication.Files.map( e => ({ FileBase64: e.FileBase64, FileExtension: e.FileExtension, OriginalFileName: 'foto' })) + + // this.publicationFormMV.setDataToFrom(this.publication) + // this.publicationFormMV.uploadVideosFiles() const loader = this.toastService.loading() @@ -448,7 +431,7 @@ export class NewPublicationPage implements OnInit { } else { - + this.toastService._badRequest("É necessário adicionar um anexo") } } @@ -973,18 +956,19 @@ export class NewPublicationPage implements OnInit { class UploadFileUseCase { - LakefsRepositoryService: LakefsRepositoryService = window["LakefsRepositoryService"] + LakefsRepositoryService: CMAPIService = window["CMAPIService"] constructor() {} async execute(ChucksManager: ChucksManager): Promise> { - let path; + let path: string; + const length = ChucksManager.chunks.totalChunks.toString() function makeFrom({blobFile, index, path}) { const formData = new FormData(); formData.append("blobFile", blobFile); - formData.append("length", ChucksManager.chunks.totalChunks.toString()); + formData.append("length", length); formData.append("index", index.toString()); formData.append("path", path); @@ -999,7 +983,7 @@ class UploadFileUseCase { const form = makeFrom({blobFile, index, path}) - return await this.LakefsRepositoryService.uploadFile(form) + return await this.LakefsRepositoryService.FileContent({length, path, index, blobFile}) } if(!ChucksManager.hasPath()) { @@ -1010,10 +994,13 @@ class UploadFileUseCase { const blobFile = new File([blob], "test.mp4", { type: blob.type }); const form = makeFrom({blobFile, index: initIndex, path}) - const uploadRequest = await this.LakefsRepositoryService.uploadFile(form) + const uploadRequest = await this.LakefsRepositoryService.FileContent({length, path, index: initIndex, blobFile}) if(uploadRequest.isOk()) { + path = uploadRequest.value.path + ChucksManager.setPath(path) + ChucksManager.setResponse(initIndex, uploadRequest.value as any) } else { return err(ChucksManager) } @@ -1025,6 +1012,8 @@ class UploadFileUseCase { if(uploadRequest.isErr()) { return err(ChucksManager) + } else { + ChucksManager.setResponse(index, uploadRequest.value as any) } } @@ -1119,12 +1108,11 @@ class PublicationFormMV { private async upload(PublicationAttachmentEntity: PublicationAttachmentEntity) { const fileBlob = PublicationAttachmentEntity.blobFile; - const fileChunks = new Chunks({chunkSize: 1024 }) + const fileChunks = new Chunks({chunkSize: 100 }) fileChunks.setFile(fileBlob) PublicationAttachmentEntity.setChunkManger(fileChunks) - const ChucksManagers = new ChucksManager({chunks: fileChunks}) this.UploadFileUseCase.execute(ChucksManagers) @@ -1150,7 +1138,7 @@ class Chunks { private file: File constructor({chunkSize}) { - this.chunkSize = chunkSize + this.chunkSize = chunkSize * 1024 } get totalChunks () { @@ -1159,6 +1147,8 @@ class Chunks { // Function to read a chunk of the file readChunk(start: number, end: number): Promise { + const file = this.file + return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = () => { @@ -1168,7 +1158,8 @@ class Chunks { reject(new Error("Failed to read chunk")); } }; - reader.readAsArrayBuffer(this.file.slice(start, end)); + + reader.readAsArrayBuffer(file.slice(start, end)); }); } @@ -1196,11 +1187,11 @@ interface IUploadResponse { class ChucksManager { chunks: Chunks - uploads: IUploadResponse[] = [] - path: string ='' + uploads: {[key: string]: IUploadResponse } = {} + path: string = undefined get uploadsCount() { - return this.uploads.length + return Object.entries(this.uploads).length } uploadFunc: Function @@ -1215,4 +1206,8 @@ class ChucksManager { hasPath() { return this.path != undefined } + + setResponse(index, UploadResponse) { + this.uploads[index] = UploadResponse + } } diff --git a/src/app/shared/publication/view-publications/view-publications.page.html b/src/app/shared/publication/view-publications/view-publications.page.html index 29de9e485..0df78345c 100644 --- a/src/app/shared/publication/view-publications/view-publications.page.html +++ b/src/app/shared/publication/view-publications/view-publications.page.html @@ -58,6 +58,10 @@
+