This commit is contained in:
Peter Maquiran
2022-09-23 11:23:24 +01:00
113 changed files with 691545 additions and 784 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+370
View File
@@ -0,0 +1,370 @@
# Diff Summary
Date : 2022-07-27 09:00:31
Directory c:\\Users\\eudes.inacio\\GabineteDigital\\gabinete-digital-fo
Total : 1583 files, 195277 codes, 13780 comments, 33715 blanks, all 242772 lines
[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
## Languages
| language | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
| JavaScript | 27 | 85,023 | 1,194 | 13,421 | 99,638 |
| TypeScript | 873 | 49,674 | 2,661 | 13,285 | 65,620 |
| SCSS | 155 | 23,178 | 1,082 | 2,381 | 26,641 |
| HTML | 154 | 15,549 | 683 | 1,784 | 18,016 |
| Properties | 119 | 15,118 | 7,943 | 2,227 | 25,288 |
| XML | 233 | 3,745 | 0 | 223 | 3,968 |
| CSS | 3 | 2,064 | 42 | 301 | 2,407 |
| JSON | 10 | 582 | 153 | 4 | 739 |
| Markdown | 3 | 218 | 0 | 77 | 295 |
| JSON with Comments | 3 | 53 | 1 | 1 | 55 |
| YAML | 2 | 48 | 21 | 11 | 80 |
| Ignore | 1 | 25 | 0 | 0 | 25 |
## Directories
| path | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
| . | 1,583 | 195,277 | 13,780 | 33,715 | 242,772 |
| e2e | 4 | 57 | 2 | 11 | 70 |
| e2e\\src | 2 | 20 | 0 | 7 | 27 |
| nginx | 1 | 9 | 0 | 3 | 12 |
| resources | 1 | 6 | 0 | 3 | 9 |
| src | 1,553 | 194,229 | 13,454 | 33,582 | 241,265 |
| src\\app | 1,165 | 83,840 | 3,919 | 16,829 | 104,588 |
| src\\app\\Rules | 20 | 566 | 29 | 175 | 770 |
| src\\app\\animations | 1 | 1 | 1 | 1 | 3 |
| src\\app\\config | 1 | 6 | 2 | 0 | 8 |
| src\\app\\guards | 6 | 221 | 2 | 45 | 268 |
| src\\app\\home | 7 | 706 | 45 | 99 | 850 |
| src\\app\\index | 6 | 71 | 5 | 21 | 97 |
| src\\app\\modals | 126 | 7,469 | 269 | 1,424 | 9,162 |
| src\\app\\modals\\add-note | 6 | 290 | 6 | 43 | 339 |
| src\\app\\modals\\chat-options-features | 6 | 266 | 29 | 50 | 345 |
| src\\app\\modals\\create-process | 6 | 961 | 31 | 177 | 1,169 |
| src\\app\\modals\\dar-parecer | 6 | 337 | 3 | 45 | 385 |
| src\\app\\modals\\delegar | 6 | 465 | 8 | 72 | 545 |
| src\\app\\modals\\document-detail | 6 | 599 | 7 | 85 | 691 |
| src\\app\\modals\\document-set-up-meeting | 6 | 907 | 38 | 154 | 1,099 |
| src\\app\\modals\\document-viewer | 6 | 102 | 1 | 38 | 141 |
| src\\app\\modals\\eliminate-event | 6 | 110 | 0 | 26 | 136 |
| src\\app\\modals\\forward | 6 | 468 | 3 | 69 | 540 |
| src\\app\\modals\\group-icons | 6 | 119 | 36 | 47 | 202 |
| src\\app\\modals\\preview-camera | 6 | 251 | 23 | 87 | 361 |
| src\\app\\modals\\preview-photo | 6 | 87 | 0 | 28 | 115 |
| src\\app\\modals\\previewer | 6 | 70 | 1 | 26 | 97 |
| src\\app\\modals\\profile | 12 | 897 | 35 | 176 | 1,108 |
| src\\app\\modals\\profile\\edit-profile | 6 | 406 | 11 | 83 | 500 |
| src\\app\\modals\\set-room-owner | 6 | 299 | 20 | 57 | 376 |
| src\\app\\modals\\video-allowed | 6 | 73 | 2 | 26 | 101 |
| src\\app\\modals\\view-document | 6 | 193 | 3 | 48 | 244 |
| src\\app\\modals\\view-event | 6 | 774 | 13 | 117 | 904 |
| src\\app\\modals\\view-media | 6 | 201 | 10 | 53 | 264 |
| src\\app\\models | 51 | 1,284 | 70 | 189 | 1,543 |
| src\\app\\models\\agenda | 3 | 53 | 3 | 9 | 65 |
| src\\app\\models\\chat | 2 | 11 | 0 | 0 | 11 |
| src\\app\\models\\event | 1 | 10 | 0 | 3 | 13 |
| src\\app\\models\\permission | 5 | 31 | 0 | 6 | 37 |
| src\\app\\pages | 363 | 37,767 | 1,579 | 6,928 | 46,274 |
| src\\app\\pages\\agenda | 43 | 5,498 | 183 | 1,306 | 6,987 |
| src\\app\\pages\\agenda\\edit-event | 6 | 969 | 16 | 189 | 1,174 |
| src\\app\\pages\\agenda\\emend-message-modal | 6 | 149 | 1 | 31 | 181 |
| src\\app\\pages\\agenda\\evandre | 6 | 67 | 0 | 24 | 91 |
| src\\app\\pages\\agenda\\event-actions-popover | 6 | 254 | 5 | 57 | 316 |
| src\\app\\pages\\agenda\\new-event | 6 | 941 | 19 | 175 | 1,135 |
| src\\app\\pages\\agenda\\view-event | 6 | 861 | 13 | 158 | 1,032 |
| src\\app\\pages\\chat | 54 | 6,068 | 261 | 1,098 | 7,427 |
| src\\app\\pages\\chat\\edit-group | 6 | 398 | 0 | 49 | 447 |
| src\\app\\pages\\chat\\group-messages | 12 | 1,941 | 114 | 360 | 2,415 |
| src\\app\\pages\\chat\\group-messages\\group-contacts | 6 | 429 | 3 | 80 | 512 |
| src\\app\\pages\\chat\\messages | 12 | 1,809 | 73 | 350 | 2,232 |
| src\\app\\pages\\chat\\messages\\contacts | 6 | 335 | 15 | 70 | 420 |
| src\\app\\pages\\chat\\new-group | 18 | 851 | 33 | 153 | 1,037 |
| src\\app\\pages\\chat\\new-group\\contacts | 6 | 313 | 31 | 64 | 408 |
| src\\app\\pages\\chat\\new-group\\group-chat | 6 | 80 | 0 | 26 | 106 |
| src\\app\\pages\\events | 36 | 3,167 | 135 | 472 | 3,774 |
| src\\app\\pages\\events\\attachments | 6 | 195 | 5 | 31 | 231 |
| src\\app\\pages\\events\\attendees | 6 | 240 | 1 | 66 | 307 |
| src\\app\\pages\\events\\edit-event | 6 | 605 | 8 | 69 | 682 |
| src\\app\\pages\\events\\event-detail | 6 | 549 | 27 | 65 | 641 |
| src\\app\\pages\\events\\event-detail-modal | 6 | 527 | 30 | 65 | 622 |
| src\\app\\pages\\gabinete-digital | 144 | 16,804 | 607 | 2,760 | 20,171 |
| src\\app\\pages\\gabinete-digital\\despachos | 12 | 1,313 | 37 | 209 | 1,559 |
| src\\app\\pages\\gabinete-digital\\despachos-pr | 12 | 1,495 | 57 | 257 | 1,809 |
| src\\app\\pages\\gabinete-digital\\despachos-pr\\despacho-pr | 6 | 923 | 10 | 139 | 1,072 |
| src\\app\\pages\\gabinete-digital\\despachos\\despacho | 6 | 851 | 19 | 130 | 1,000 |
| src\\app\\pages\\gabinete-digital\\diplomas | 12 | 1,306 | 53 | 200 | 1,559 |
| src\\app\\pages\\gabinete-digital\\diplomas-assinar | 12 | 1,016 | 19 | 149 | 1,184 |
| src\\app\\pages\\gabinete-digital\\diplomas-assinar\\diploma-assinar | 6 | 572 | 6 | 75 | 653 |
| src\\app\\pages\\gabinete-digital\\diplomas-gerar | 12 | 1,194 | 23 | 184 | 1,401 |
| src\\app\\pages\\gabinete-digital\\diplomas-gerar\\diplomas-gerar | 6 | 683 | 3 | 104 | 790 |
| src\\app\\pages\\gabinete-digital\\diplomas\\diploma | 6 | 740 | 32 | 97 | 869 |
| src\\app\\pages\\gabinete-digital\\discart-expedient-modal | 6 | 114 | 0 | 28 | 142 |
| src\\app\\pages\\gabinete-digital\\event-list | 18 | 1,685 | 50 | 306 | 2,041 |
| src\\app\\pages\\gabinete-digital\\event-list\\approve-event | 6 | 696 | 17 | 132 | 845 |
| src\\app\\pages\\gabinete-digital\\event-list\\approve-event-modal | 6 | 520 | 7 | 87 | 614 |
| src\\app\\pages\\gabinete-digital\\expediente | 24 | 3,505 | 116 | 602 | 4,223 |
| src\\app\\pages\\gabinete-digital\\expediente\\book-meeting-modal | 6 | 983 | 19 | 188 | 1,190 |
| src\\app\\pages\\gabinete-digital\\expediente\\expedient-task-modal | 6 | 955 | 51 | 171 | 1,177 |
| src\\app\\pages\\gabinete-digital\\expediente\\expediente-detail | 6 | 1,076 | 28 | 162 | 1,266 |
| src\\app\\pages\\gabinete-digital\\expedientes-pr | 12 | 1,309 | 101 | 193 | 1,603 |
| src\\app\\pages\\gabinete-digital\\expedientes-pr\\expediente-pr | 6 | 854 | 77 | 123 | 1,054 |
| src\\app\\pages\\gabinete-digital\\pedidos | 12 | 1,618 | 90 | 251 | 1,959 |
| src\\app\\pages\\gabinete-digital\\pedidos\\pedido | 6 | 972 | 52 | 140 | 1,164 |
| src\\app\\pages\\gabinete-digital\\pendentes | 6 | 458 | 16 | 79 | 553 |
| src\\app\\pages\\inactivity | 6 | 564 | 36 | 144 | 744 |
| src\\app\\pages\\login | 6 | 446 | 3 | 85 | 534 |
| src\\app\\pages\\publications | 56 | 3,874 | 294 | 705 | 4,873 |
| src\\app\\pages\\publications\\edit-action | 6 | 412 | 3 | 55 | 470 |
| src\\app\\pages\\publications\\gallery | 12 | 320 | 2 | 51 | 373 |
| src\\app\\pages\\publications\\gallery\\image-modal | 6 | 101 | 0 | 27 | 128 |
| src\\app\\pages\\publications\\new-action | 6 | 439 | 18 | 71 | 528 |
| src\\app\\pages\\publications\\new-publication | 8 | 636 | 95 | 161 | 892 |
| src\\app\\pages\\publications\\publication-detail | 6 | 318 | 4 | 46 | 368 |
| src\\app\\pages\\publications\\view-publications | 12 | 805 | 99 | 153 | 1,057 |
| src\\app\\pages\\publications\\view-publications\\publication-detail | 6 | 339 | 6 | 55 | 400 |
| src\\app\\pages\\search | 18 | 1,346 | 60 | 358 | 1,764 |
| src\\app\\pages\\search\\organic-entity | 6 | 157 | 0 | 43 | 200 |
| src\\app\\pages\\search\\sender | 6 | 156 | 0 | 36 | 192 |
| src\\app\\pipes | 17 | 246 | 1 | 67 | 314 |
| src\\app\\resolvers | 1 | 11 | 0 | 2 | 13 |
| src\\app\\services | 166 | 10,395 | 906 | 2,982 | 14,283 |
| src\\app\\services\\agenda | 2 | 150 | 12 | 69 | 231 |
| src\\app\\services\\chat | 16 | 2,159 | 133 | 727 | 3,019 |
| src\\app\\services\\dom | 2 | 30 | 0 | 12 | 42 |
| src\\app\\services\\events | 36 | 2,952 | 188 | 444 | 3,584 |
| src\\app\\services\\events\\attachments | 6 | 196 | 5 | 31 | 232 |
| src\\app\\services\\events\\attendees | 6 | 241 | 1 | 62 | 304 |
| src\\app\\services\\events\\edit-event | 6 | 600 | 8 | 69 | 677 |
| src\\app\\services\\events\\event-detail | 6 | 544 | 27 | 67 | 638 |
| src\\app\\services\\events\\event-detail-modal | 6 | 522 | 30 | 64 | 616 |
| src\\app\\services\\file | 10 | 171 | 7 | 69 | 247 |
| src\\app\\services\\fileExprorer | 2 | 19 | 0 | 8 | 27 |
| src\\app\\services\\file\\custom-image-cache | 6 | 108 | 2 | 38 | 148 |
| src\\app\\services\\functions | 10 | 343 | 7 | 117 | 467 |
| src\\app\\services\\notification | 3 | 75 | 8 | 33 | 116 |
| src\\app\\services\\rules | 4 | 55 | 0 | 25 | 80 |
| src\\app\\shared | 361 | 23,530 | 917 | 4,434 | 28,881 |
| src\\app\\shared\\agenda | 36 | 4,451 | 110 | 865 | 5,426 |
| src\\app\\shared\\agenda\\approve-event | 6 | 511 | 35 | 108 | 654 |
| src\\app\\shared\\agenda\\edit-event | 6 | 925 | 16 | 175 | 1,116 |
| src\\app\\shared\\agenda\\edit-event-to-approve | 6 | 1,006 | 25 | 200 | 1,231 |
| src\\app\\shared\\agenda\\event-list | 6 | 335 | 5 | 49 | 389 |
| src\\app\\shared\\agenda\\new-event | 6 | 1,073 | 25 | 212 | 1,310 |
| src\\app\\shared\\agenda\\view-event | 6 | 601 | 4 | 121 | 726 |
| src\\app\\shared\\btn-modal-dismiss | 6 | 82 | 0 | 23 | 105 |
| src\\app\\shared\\btn-seguinte | 6 | 73 | 0 | 19 | 92 |
| src\\app\\shared\\chat | 60 | 5,340 | 223 | 1,035 | 6,598 |
| src\\app\\shared\\chat\\edit-group | 6 | 407 | 6 | 51 | 464 |
| src\\app\\shared\\chat\\empty-chat | 6 | 72 | 0 | 21 | 93 |
| src\\app\\shared\\chat\\group-messages | 12 | 2,024 | 117 | 384 | 2,525 |
| src\\app\\shared\\chat\\group-messages\\group-contacts | 6 | 507 | 30 | 102 | 639 |
| src\\app\\shared\\chat\\messages | 12 | 1,875 | 61 | 397 | 2,333 |
| src\\app\\shared\\chat\\messages\\contacts | 6 | 338 | 16 | 67 | 421 |
| src\\app\\shared\\chat\\new-group | 24 | 962 | 39 | 182 | 1,183 |
| src\\app\\shared\\chat\\new-group\\contacts | 6 | 312 | 31 | 61 | 404 |
| src\\app\\shared\\chat\\new-group\\group-chat | 6 | 80 | 0 | 24 | 104 |
| src\\app\\shared\\chat\\new-group\\group-contacts | 6 | 67 | 0 | 24 | 91 |
| src\\app\\shared\\empty-container | 6 | 72 | 0 | 21 | 93 |
| src\\app\\shared\\event | 6 | 276 | 7 | 88 | 371 |
| src\\app\\shared\\event\\attendee-modal | 6 | 276 | 7 | 88 | 371 |
| src\\app\\shared\\fingerprint | 6 | 154 | 32 | 51 | 237 |
| src\\app\\shared\\gabinete-digital | 90 | 5,978 | 252 | 983 | 7,213 |
| src\\app\\shared\\gabinete-digital\\all-processes | 6 | 443 | 17 | 82 | 542 |
| src\\app\\shared\\gabinete-digital\\despachos | 6 | 318 | 17 | 49 | 384 |
| src\\app\\shared\\gabinete-digital\\despachos-pr | 6 | 364 | 18 | 60 | 442 |
| src\\app\\shared\\gabinete-digital\\diplomas | 6 | 469 | 23 | 71 | 563 |
| src\\app\\shared\\gabinete-digital\\diplomas-assinar | 6 | 406 | 20 | 67 | 493 |
| src\\app\\shared\\gabinete-digital\\diplomas-gerar | 6 | 397 | 16 | 63 | 476 |
| src\\app\\shared\\gabinete-digital\\edit-event-to-approve | 6 | 902 | 28 | 171 | 1,101 |
| src\\app\\shared\\gabinete-digital\\events-to-approve | 6 | 463 | 18 | 67 | 548 |
| src\\app\\shared\\gabinete-digital\\expedientes-pr | 6 | 345 | 17 | 58 | 420 |
| src\\app\\shared\\gabinete-digital\\expedients | 6 | 358 | 17 | 58 | 433 |
| src\\app\\shared\\gabinete-digital\\generic | 18 | 634 | 11 | 99 | 744 |
| src\\app\\shared\\gabinete-digital\\generic\\task-detailde | 6 | 67 | 0 | 24 | 91 |
| src\\app\\shared\\gabinete-digital\\generic\\task-details | 6 | 323 | 2 | 36 | 361 |
| src\\app\\shared\\gabinete-digital\\generic\\task-list | 6 | 244 | 9 | 39 | 292 |
| src\\app\\shared\\gabinete-digital\\pedidos | 6 | 507 | 28 | 80 | 615 |
| src\\app\\shared\\gabinete-digital\\pendentes | 6 | 372 | 22 | 58 | 452 |
| src\\app\\shared\\header | 6 | 507 | 43 | 112 | 662 |
| src\\app\\shared\\header-pr | 6 | 124 | 0 | 35 | 159 |
| src\\app\\shared\\pin | 6 | 192 | 1 | 56 | 249 |
| src\\app\\shared\\popover | 96 | 4,154 | 107 | 787 | 5,048 |
| src\\app\\shared\\popover\\actions-options | 6 | 163 | 1 | 32 | 196 |
| src\\app\\shared\\popover\\bad-request | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\popover\\chat-options-popover | 6 | 228 | 0 | 44 | 272 |
| src\\app\\shared\\popover\\chat-popover | 6 | 236 | 5 | 39 | 280 |
| src\\app\\shared\\popover\\deploma-options | 6 | 310 | 9 | 61 | 380 |
| src\\app\\shared\\popover\\despachos-options | 6 | 445 | 1 | 76 | 522 |
| src\\app\\shared\\popover\\despachos-pr-options | 6 | 454 | 10 | 90 | 554 |
| src\\app\\shared\\popover\\diplomas-gerar-options | 6 | 268 | 4 | 48 | 320 |
| src\\app\\shared\\popover\\event-details-documents-options | 6 | 143 | 4 | 28 | 175 |
| src\\app\\shared\\popover\\group-duration | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\popover\\messages-options | 6 | 155 | 1 | 29 | 185 |
| src\\app\\shared\\popover\\opts-expediente | 6 | 480 | 50 | 81 | 611 |
| src\\app\\shared\\popover\\opts-expediente-pr | 6 | 447 | 8 | 82 | 537 |
| src\\app\\shared\\popover\\request-options | 6 | 431 | 10 | 76 | 517 |
| src\\app\\shared\\popover\\searched-document-options | 6 | 145 | 4 | 29 | 178 |
| src\\app\\shared\\popover\\success-message | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\publication | 30 | 2,108 | 117 | 357 | 2,582 |
| src\\app\\shared\\publication\\edit-action | 6 | 408 | 4 | 53 | 465 |
| src\\app\\shared\\publication\\new-action | 6 | 408 | 18 | 71 | 497 |
| src\\app\\shared\\publication\\new-publication | 6 | 510 | 16 | 92 | 618 |
| src\\app\\shared\\publication\\view-publications | 12 | 782 | 79 | 141 | 1,002 |
| src\\app\\shared\\publication\\view-publications\\publication-detail | 6 | 321 | 14 | 52 | 387 |
| src\\app\\store | 33 | 1,075 | 56 | 407 | 1,538 |
| src\\app\\store\\chat | 4 | 88 | 3 | 37 | 128 |
| src\\assets | 363 | 106,266 | 8,915 | 16,035 | 131,216 |
| src\\assets\\background | 4 | 29 | 0 | 4 | 33 |
| src\\assets\\gif | 3 | 60 | 0 | 0 | 60 |
| src\\assets\\gif\\theme | 3 | 60 | 0 | 0 | 60 |
| src\\assets\\gif\\theme\\blue | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\gif\\theme\\gov | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\gif\\theme\\tribunal | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\icon | 41 | 501 | 0 | 39 | 540 |
| src\\assets\\icon\\chat | 12 | 265 | 0 | 11 | 276 |
| src\\assets\\icon\\tab | 10 | 42 | 0 | 10 | 52 |
| src\\assets\\icon\\theme | 9 | 85 | 0 | 9 | 94 |
| src\\assets\\icon\\theme\\default | 2 | 26 | 0 | 2 | 28 |
| src\\assets\\icon\\theme\\gov | 7 | 59 | 0 | 7 | 66 |
| src\\assets\\images | 176 | 4,200 | 6 | 231 | 4,437 |
| src\\assets\\images\\Gabinete Digital_files | 2 | 1,250 | 6 | 62 | 1,318 |
| src\\assets\\images\\nav-hover | 7 | 29 | 0 | 7 | 36 |
| src\\assets\\images\\theme | 76 | 1,034 | 0 | 75 | 1,109 |
| src\\assets\\images\\theme\\blue | 1 | 7 | 0 | 1 | 8 |
| src\\assets\\images\\theme\\gov | 65 | 970 | 0 | 65 | 1,035 |
| src\\assets\\images\\theme\\tribunal | 10 | 57 | 0 | 9 | 66 |
| src\\assets\\js | 2 | 16 | 27 | 7 | 50 |
| src\\assets\\www | 134 | 101,369 | 8,875 | 15,729 | 125,973 |
| src\\assets\\www\\pdfjs | 134 | 101,369 | 8,875 | 15,729 | 125,973 |
| src\\assets\\www\\pdfjs\\build | 2 | 70,296 | 695 | 10,424 | 81,415 |
| src\\assets\\www\\pdfjs\\web | 132 | 31,073 | 8,180 | 5,305 | 44,558 |
| src\\assets\\www\\pdfjs\\web\\images | 9 | 150 | 0 | 9 | 159 |
| src\\assets\\www\\pdfjs\\web\\locale | 118 | 15,109 | 7,943 | 2,224 | 25,276 |
| src\\assets\\www\\pdfjs\\web\\locale\\ach | 1 | 126 | 64 | 18 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\af | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\ak | 1 | 59 | 56 | 16 | 131 |
| src\\assets\\www\\pdfjs\\web\\locale\\an | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\ar | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ast | 1 | 115 | 74 | 19 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\az | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\be | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\bg | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\bn-BD | 1 | 143 | 72 | 18 | 233 |
| src\\assets\\www\\pdfjs\\web\\locale\\bn-IN | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\br | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\brx | 1 | 119 | 74 | 19 | 212 |
| src\\assets\\www\\pdfjs\\web\\locale\\bs | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ca | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\cak | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\cs | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\csb | 1 | 79 | 28 | 28 | 135 |
| src\\assets\\www\\pdfjs\\web\\locale\\cy | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\da | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\de | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\el | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-CA | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-GB | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-US | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\eo | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-AR | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-CL | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-ES | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-MX | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\et | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\eu | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fa | 1 | 134 | 72 | 18 | 224 |
| src\\assets\\www\\pdfjs\\web\\locale\\ff | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\fi | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fy-NL | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ga-IE | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\gd | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\gl | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\gn | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\gu-IN | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\he | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hi-IN | 1 | 149 | 74 | 19 | 242 |
| src\\assets\\www\\pdfjs\\web\\locale\\hr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hsb | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hto | 1 | 56 | 56 | 16 | 128 |
| src\\assets\\www\\pdfjs\\web\\locale\\hu | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hy-AM | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ia | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\id | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\is | 1 | 150 | 72 | 18 | 240 |
| src\\assets\\www\\pdfjs\\web\\locale\\it | 1 | 154 | 3 | 2 | 159 |
| src\\assets\\www\\pdfjs\\web\\locale\\ja | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ka | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kab | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\km | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\kn | 1 | 114 | 62 | 18 | 194 |
| src\\assets\\www\\pdfjs\\web\\locale\\ko | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kok | 1 | 96 | 56 | 16 | 168 |
| src\\assets\\www\\pdfjs\\web\\locale\\ks | 1 | 97 | 56 | 16 | 169 |
| src\\assets\\www\\pdfjs\\web\\locale\\ku | 1 | 75 | 56 | 16 | 147 |
| src\\assets\\www\\pdfjs\\web\\locale\\lg | 1 | 41 | 56 | 16 | 113 |
| src\\assets\\www\\pdfjs\\web\\locale\\lij | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\lo | 1 | 63 | 72 | 18 | 153 |
| src\\assets\\www\\pdfjs\\web\\locale\\lt | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ltg | 1 | 139 | 64 | 18 | 221 |
| src\\assets\\www\\pdfjs\\web\\locale\\lv | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\meh | 1 | 16 | 74 | 19 | 109 |
| src\\assets\\www\\pdfjs\\web\\locale\\mk | 1 | 64 | 64 | 18 | 146 |
| src\\assets\\www\\pdfjs\\web\\locale\\mn | 1 | 11 | 56 | 16 | 83 |
| src\\assets\\www\\pdfjs\\web\\locale\\mr | 1 | 138 | 72 | 18 | 228 |
| src\\assets\\www\\pdfjs\\web\\locale\\ms | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\my | 1 | 109 | 72 | 18 | 199 |
| src\\assets\\www\\pdfjs\\web\\locale\\nb-NO | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ne-NP | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\nl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\nn-NO | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\nso | 1 | 59 | 56 | 16 | 131 |
| src\\assets\\www\\pdfjs\\web\\locale\\oc | 1 | 129 | 64 | 18 | 211 |
| src\\assets\\www\\pdfjs\\web\\locale\\pa-IN | 1 | 150 | 74 | 19 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\pl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\pt-BR | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\pt-PT | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\rm | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ro | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ru | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\rw | 1 | 10 | 56 | 16 | 82 |
| src\\assets\\www\\pdfjs\\web\\locale\\sah | 1 | 95 | 56 | 16 | 167 |
| src\\assets\\www\\pdfjs\\web\\locale\\sat | 1 | 63 | 56 | 16 | 135 |
| src\\assets\\www\\pdfjs\\web\\locale\\si | 1 | 118 | 72 | 18 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\sk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\sl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\son | 1 | 109 | 56 | 16 | 181 |
| src\\assets\\www\\pdfjs\\web\\locale\\sq | 1 | 147 | 74 | 19 | 240 |
| src\\assets\\www\\pdfjs\\web\\locale\\sr | 1 | 139 | 64 | 18 | 221 |
| src\\assets\\www\\pdfjs\\web\\locale\\sv-SE | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\sw | 1 | 57 | 56 | 16 | 129 |
| src\\assets\\www\\pdfjs\\web\\locale\\ta | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ta-LK | 1 | 6 | 56 | 16 | 78 |
| src\\assets\\www\\pdfjs\\web\\locale\\te | 1 | 130 | 74 | 19 | 223 |
| src\\assets\\www\\pdfjs\\web\\locale\\th | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tn | 1 | 12 | 56 | 16 | 84 |
| src\\assets\\www\\pdfjs\\web\\locale\\tr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tsz | 1 | 4 | 56 | 16 | 76 |
| src\\assets\\www\\pdfjs\\web\\locale\\uk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ur | 1 | 119 | 74 | 19 | 212 |
| src\\assets\\www\\pdfjs\\web\\locale\\uz | 1 | 98 | 56 | 16 | 170 |
| src\\assets\\www\\pdfjs\\web\\locale\\vi | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\wo | 1 | 53 | 56 | 16 | 125 |
| src\\assets\\www\\pdfjs\\web\\locale\\xh | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\zam | 1 | 19 | 56 | 16 | 91 |
| src\\assets\\www\\pdfjs\\web\\locale\\zh-CN | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\zh-TW | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\zu | 1 | 60 | 56 | 16 | 132 |
| src\\environments | 2 | 20 | 38 | 9 | 67 |
| src\\plugin | 10 | 1,104 | 164 | 216 | 1,484 |
| src\\style | 2 | 1,075 | 48 | 84 | 1,207 |
| src\\theme | 1 | 690 | 147 | 110 | 947 |
| test | 3 | 96 | 81 | 60 | 237 |
| typings | 1 | 0 | 4 | 1 | 5 |
[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,370 @@
# Summary
Date : 2022-07-27 09:00:31
Directory c:\\Users\\eudes.inacio\\GabineteDigital\\gabinete-digital-fo
Total : 1583 files, 195277 codes, 13780 comments, 33715 blanks, all 242772 lines
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
## Languages
| language | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
| JavaScript | 27 | 85,023 | 1,194 | 13,421 | 99,638 |
| TypeScript | 873 | 49,674 | 2,661 | 13,285 | 65,620 |
| SCSS | 155 | 23,178 | 1,082 | 2,381 | 26,641 |
| HTML | 154 | 15,549 | 683 | 1,784 | 18,016 |
| Properties | 119 | 15,118 | 7,943 | 2,227 | 25,288 |
| XML | 233 | 3,745 | 0 | 223 | 3,968 |
| CSS | 3 | 2,064 | 42 | 301 | 2,407 |
| JSON | 10 | 582 | 153 | 4 | 739 |
| Markdown | 3 | 218 | 0 | 77 | 295 |
| JSON with Comments | 3 | 53 | 1 | 1 | 55 |
| YAML | 2 | 48 | 21 | 11 | 80 |
| Ignore | 1 | 25 | 0 | 0 | 25 |
## Directories
| path | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
| . | 1,583 | 195,277 | 13,780 | 33,715 | 242,772 |
| e2e | 4 | 57 | 2 | 11 | 70 |
| e2e\\src | 2 | 20 | 0 | 7 | 27 |
| nginx | 1 | 9 | 0 | 3 | 12 |
| resources | 1 | 6 | 0 | 3 | 9 |
| src | 1,553 | 194,229 | 13,454 | 33,582 | 241,265 |
| src\\app | 1,165 | 83,840 | 3,919 | 16,829 | 104,588 |
| src\\app\\Rules | 20 | 566 | 29 | 175 | 770 |
| src\\app\\animations | 1 | 1 | 1 | 1 | 3 |
| src\\app\\config | 1 | 6 | 2 | 0 | 8 |
| src\\app\\guards | 6 | 221 | 2 | 45 | 268 |
| src\\app\\home | 7 | 706 | 45 | 99 | 850 |
| src\\app\\index | 6 | 71 | 5 | 21 | 97 |
| src\\app\\modals | 126 | 7,469 | 269 | 1,424 | 9,162 |
| src\\app\\modals\\add-note | 6 | 290 | 6 | 43 | 339 |
| src\\app\\modals\\chat-options-features | 6 | 266 | 29 | 50 | 345 |
| src\\app\\modals\\create-process | 6 | 961 | 31 | 177 | 1,169 |
| src\\app\\modals\\dar-parecer | 6 | 337 | 3 | 45 | 385 |
| src\\app\\modals\\delegar | 6 | 465 | 8 | 72 | 545 |
| src\\app\\modals\\document-detail | 6 | 599 | 7 | 85 | 691 |
| src\\app\\modals\\document-set-up-meeting | 6 | 907 | 38 | 154 | 1,099 |
| src\\app\\modals\\document-viewer | 6 | 102 | 1 | 38 | 141 |
| src\\app\\modals\\eliminate-event | 6 | 110 | 0 | 26 | 136 |
| src\\app\\modals\\forward | 6 | 468 | 3 | 69 | 540 |
| src\\app\\modals\\group-icons | 6 | 119 | 36 | 47 | 202 |
| src\\app\\modals\\preview-camera | 6 | 251 | 23 | 87 | 361 |
| src\\app\\modals\\preview-photo | 6 | 87 | 0 | 28 | 115 |
| src\\app\\modals\\previewer | 6 | 70 | 1 | 26 | 97 |
| src\\app\\modals\\profile | 12 | 897 | 35 | 176 | 1,108 |
| src\\app\\modals\\profile\\edit-profile | 6 | 406 | 11 | 83 | 500 |
| src\\app\\modals\\set-room-owner | 6 | 299 | 20 | 57 | 376 |
| src\\app\\modals\\video-allowed | 6 | 73 | 2 | 26 | 101 |
| src\\app\\modals\\view-document | 6 | 193 | 3 | 48 | 244 |
| src\\app\\modals\\view-event | 6 | 774 | 13 | 117 | 904 |
| src\\app\\modals\\view-media | 6 | 201 | 10 | 53 | 264 |
| src\\app\\models | 51 | 1,284 | 70 | 189 | 1,543 |
| src\\app\\models\\agenda | 3 | 53 | 3 | 9 | 65 |
| src\\app\\models\\chat | 2 | 11 | 0 | 0 | 11 |
| src\\app\\models\\event | 1 | 10 | 0 | 3 | 13 |
| src\\app\\models\\permission | 5 | 31 | 0 | 6 | 37 |
| src\\app\\pages | 363 | 37,767 | 1,579 | 6,928 | 46,274 |
| src\\app\\pages\\agenda | 43 | 5,498 | 183 | 1,306 | 6,987 |
| src\\app\\pages\\agenda\\edit-event | 6 | 969 | 16 | 189 | 1,174 |
| src\\app\\pages\\agenda\\emend-message-modal | 6 | 149 | 1 | 31 | 181 |
| src\\app\\pages\\agenda\\evandre | 6 | 67 | 0 | 24 | 91 |
| src\\app\\pages\\agenda\\event-actions-popover | 6 | 254 | 5 | 57 | 316 |
| src\\app\\pages\\agenda\\new-event | 6 | 941 | 19 | 175 | 1,135 |
| src\\app\\pages\\agenda\\view-event | 6 | 861 | 13 | 158 | 1,032 |
| src\\app\\pages\\chat | 54 | 6,068 | 261 | 1,098 | 7,427 |
| src\\app\\pages\\chat\\edit-group | 6 | 398 | 0 | 49 | 447 |
| src\\app\\pages\\chat\\group-messages | 12 | 1,941 | 114 | 360 | 2,415 |
| src\\app\\pages\\chat\\group-messages\\group-contacts | 6 | 429 | 3 | 80 | 512 |
| src\\app\\pages\\chat\\messages | 12 | 1,809 | 73 | 350 | 2,232 |
| src\\app\\pages\\chat\\messages\\contacts | 6 | 335 | 15 | 70 | 420 |
| src\\app\\pages\\chat\\new-group | 18 | 851 | 33 | 153 | 1,037 |
| src\\app\\pages\\chat\\new-group\\contacts | 6 | 313 | 31 | 64 | 408 |
| src\\app\\pages\\chat\\new-group\\group-chat | 6 | 80 | 0 | 26 | 106 |
| src\\app\\pages\\events | 36 | 3,167 | 135 | 472 | 3,774 |
| src\\app\\pages\\events\\attachments | 6 | 195 | 5 | 31 | 231 |
| src\\app\\pages\\events\\attendees | 6 | 240 | 1 | 66 | 307 |
| src\\app\\pages\\events\\edit-event | 6 | 605 | 8 | 69 | 682 |
| src\\app\\pages\\events\\event-detail | 6 | 549 | 27 | 65 | 641 |
| src\\app\\pages\\events\\event-detail-modal | 6 | 527 | 30 | 65 | 622 |
| src\\app\\pages\\gabinete-digital | 144 | 16,804 | 607 | 2,760 | 20,171 |
| src\\app\\pages\\gabinete-digital\\despachos | 12 | 1,313 | 37 | 209 | 1,559 |
| src\\app\\pages\\gabinete-digital\\despachos-pr | 12 | 1,495 | 57 | 257 | 1,809 |
| src\\app\\pages\\gabinete-digital\\despachos-pr\\despacho-pr | 6 | 923 | 10 | 139 | 1,072 |
| src\\app\\pages\\gabinete-digital\\despachos\\despacho | 6 | 851 | 19 | 130 | 1,000 |
| src\\app\\pages\\gabinete-digital\\diplomas | 12 | 1,306 | 53 | 200 | 1,559 |
| src\\app\\pages\\gabinete-digital\\diplomas-assinar | 12 | 1,016 | 19 | 149 | 1,184 |
| src\\app\\pages\\gabinete-digital\\diplomas-assinar\\diploma-assinar | 6 | 572 | 6 | 75 | 653 |
| src\\app\\pages\\gabinete-digital\\diplomas-gerar | 12 | 1,194 | 23 | 184 | 1,401 |
| src\\app\\pages\\gabinete-digital\\diplomas-gerar\\diplomas-gerar | 6 | 683 | 3 | 104 | 790 |
| src\\app\\pages\\gabinete-digital\\diplomas\\diploma | 6 | 740 | 32 | 97 | 869 |
| src\\app\\pages\\gabinete-digital\\discart-expedient-modal | 6 | 114 | 0 | 28 | 142 |
| src\\app\\pages\\gabinete-digital\\event-list | 18 | 1,685 | 50 | 306 | 2,041 |
| src\\app\\pages\\gabinete-digital\\event-list\\approve-event | 6 | 696 | 17 | 132 | 845 |
| src\\app\\pages\\gabinete-digital\\event-list\\approve-event-modal | 6 | 520 | 7 | 87 | 614 |
| src\\app\\pages\\gabinete-digital\\expediente | 24 | 3,505 | 116 | 602 | 4,223 |
| src\\app\\pages\\gabinete-digital\\expediente\\book-meeting-modal | 6 | 983 | 19 | 188 | 1,190 |
| src\\app\\pages\\gabinete-digital\\expediente\\expedient-task-modal | 6 | 955 | 51 | 171 | 1,177 |
| src\\app\\pages\\gabinete-digital\\expediente\\expediente-detail | 6 | 1,076 | 28 | 162 | 1,266 |
| src\\app\\pages\\gabinete-digital\\expedientes-pr | 12 | 1,309 | 101 | 193 | 1,603 |
| src\\app\\pages\\gabinete-digital\\expedientes-pr\\expediente-pr | 6 | 854 | 77 | 123 | 1,054 |
| src\\app\\pages\\gabinete-digital\\pedidos | 12 | 1,618 | 90 | 251 | 1,959 |
| src\\app\\pages\\gabinete-digital\\pedidos\\pedido | 6 | 972 | 52 | 140 | 1,164 |
| src\\app\\pages\\gabinete-digital\\pendentes | 6 | 458 | 16 | 79 | 553 |
| src\\app\\pages\\inactivity | 6 | 564 | 36 | 144 | 744 |
| src\\app\\pages\\login | 6 | 446 | 3 | 85 | 534 |
| src\\app\\pages\\publications | 56 | 3,874 | 294 | 705 | 4,873 |
| src\\app\\pages\\publications\\edit-action | 6 | 412 | 3 | 55 | 470 |
| src\\app\\pages\\publications\\gallery | 12 | 320 | 2 | 51 | 373 |
| src\\app\\pages\\publications\\gallery\\image-modal | 6 | 101 | 0 | 27 | 128 |
| src\\app\\pages\\publications\\new-action | 6 | 439 | 18 | 71 | 528 |
| src\\app\\pages\\publications\\new-publication | 8 | 636 | 95 | 161 | 892 |
| src\\app\\pages\\publications\\publication-detail | 6 | 318 | 4 | 46 | 368 |
| src\\app\\pages\\publications\\view-publications | 12 | 805 | 99 | 153 | 1,057 |
| src\\app\\pages\\publications\\view-publications\\publication-detail | 6 | 339 | 6 | 55 | 400 |
| src\\app\\pages\\search | 18 | 1,346 | 60 | 358 | 1,764 |
| src\\app\\pages\\search\\organic-entity | 6 | 157 | 0 | 43 | 200 |
| src\\app\\pages\\search\\sender | 6 | 156 | 0 | 36 | 192 |
| src\\app\\pipes | 17 | 246 | 1 | 67 | 314 |
| src\\app\\resolvers | 1 | 11 | 0 | 2 | 13 |
| src\\app\\services | 166 | 10,395 | 906 | 2,982 | 14,283 |
| src\\app\\services\\agenda | 2 | 150 | 12 | 69 | 231 |
| src\\app\\services\\chat | 16 | 2,159 | 133 | 727 | 3,019 |
| src\\app\\services\\dom | 2 | 30 | 0 | 12 | 42 |
| src\\app\\services\\events | 36 | 2,952 | 188 | 444 | 3,584 |
| src\\app\\services\\events\\attachments | 6 | 196 | 5 | 31 | 232 |
| src\\app\\services\\events\\attendees | 6 | 241 | 1 | 62 | 304 |
| src\\app\\services\\events\\edit-event | 6 | 600 | 8 | 69 | 677 |
| src\\app\\services\\events\\event-detail | 6 | 544 | 27 | 67 | 638 |
| src\\app\\services\\events\\event-detail-modal | 6 | 522 | 30 | 64 | 616 |
| src\\app\\services\\file | 10 | 171 | 7 | 69 | 247 |
| src\\app\\services\\fileExprorer | 2 | 19 | 0 | 8 | 27 |
| src\\app\\services\\file\\custom-image-cache | 6 | 108 | 2 | 38 | 148 |
| src\\app\\services\\functions | 10 | 343 | 7 | 117 | 467 |
| src\\app\\services\\notification | 3 | 75 | 8 | 33 | 116 |
| src\\app\\services\\rules | 4 | 55 | 0 | 25 | 80 |
| src\\app\\shared | 361 | 23,530 | 917 | 4,434 | 28,881 |
| src\\app\\shared\\agenda | 36 | 4,451 | 110 | 865 | 5,426 |
| src\\app\\shared\\agenda\\approve-event | 6 | 511 | 35 | 108 | 654 |
| src\\app\\shared\\agenda\\edit-event | 6 | 925 | 16 | 175 | 1,116 |
| src\\app\\shared\\agenda\\edit-event-to-approve | 6 | 1,006 | 25 | 200 | 1,231 |
| src\\app\\shared\\agenda\\event-list | 6 | 335 | 5 | 49 | 389 |
| src\\app\\shared\\agenda\\new-event | 6 | 1,073 | 25 | 212 | 1,310 |
| src\\app\\shared\\agenda\\view-event | 6 | 601 | 4 | 121 | 726 |
| src\\app\\shared\\btn-modal-dismiss | 6 | 82 | 0 | 23 | 105 |
| src\\app\\shared\\btn-seguinte | 6 | 73 | 0 | 19 | 92 |
| src\\app\\shared\\chat | 60 | 5,340 | 223 | 1,035 | 6,598 |
| src\\app\\shared\\chat\\edit-group | 6 | 407 | 6 | 51 | 464 |
| src\\app\\shared\\chat\\empty-chat | 6 | 72 | 0 | 21 | 93 |
| src\\app\\shared\\chat\\group-messages | 12 | 2,024 | 117 | 384 | 2,525 |
| src\\app\\shared\\chat\\group-messages\\group-contacts | 6 | 507 | 30 | 102 | 639 |
| src\\app\\shared\\chat\\messages | 12 | 1,875 | 61 | 397 | 2,333 |
| src\\app\\shared\\chat\\messages\\contacts | 6 | 338 | 16 | 67 | 421 |
| src\\app\\shared\\chat\\new-group | 24 | 962 | 39 | 182 | 1,183 |
| src\\app\\shared\\chat\\new-group\\contacts | 6 | 312 | 31 | 61 | 404 |
| src\\app\\shared\\chat\\new-group\\group-chat | 6 | 80 | 0 | 24 | 104 |
| src\\app\\shared\\chat\\new-group\\group-contacts | 6 | 67 | 0 | 24 | 91 |
| src\\app\\shared\\empty-container | 6 | 72 | 0 | 21 | 93 |
| src\\app\\shared\\event | 6 | 276 | 7 | 88 | 371 |
| src\\app\\shared\\event\\attendee-modal | 6 | 276 | 7 | 88 | 371 |
| src\\app\\shared\\fingerprint | 6 | 154 | 32 | 51 | 237 |
| src\\app\\shared\\gabinete-digital | 90 | 5,978 | 252 | 983 | 7,213 |
| src\\app\\shared\\gabinete-digital\\all-processes | 6 | 443 | 17 | 82 | 542 |
| src\\app\\shared\\gabinete-digital\\despachos | 6 | 318 | 17 | 49 | 384 |
| src\\app\\shared\\gabinete-digital\\despachos-pr | 6 | 364 | 18 | 60 | 442 |
| src\\app\\shared\\gabinete-digital\\diplomas | 6 | 469 | 23 | 71 | 563 |
| src\\app\\shared\\gabinete-digital\\diplomas-assinar | 6 | 406 | 20 | 67 | 493 |
| src\\app\\shared\\gabinete-digital\\diplomas-gerar | 6 | 397 | 16 | 63 | 476 |
| src\\app\\shared\\gabinete-digital\\edit-event-to-approve | 6 | 902 | 28 | 171 | 1,101 |
| src\\app\\shared\\gabinete-digital\\events-to-approve | 6 | 463 | 18 | 67 | 548 |
| src\\app\\shared\\gabinete-digital\\expedientes-pr | 6 | 345 | 17 | 58 | 420 |
| src\\app\\shared\\gabinete-digital\\expedients | 6 | 358 | 17 | 58 | 433 |
| src\\app\\shared\\gabinete-digital\\generic | 18 | 634 | 11 | 99 | 744 |
| src\\app\\shared\\gabinete-digital\\generic\\task-detailde | 6 | 67 | 0 | 24 | 91 |
| src\\app\\shared\\gabinete-digital\\generic\\task-details | 6 | 323 | 2 | 36 | 361 |
| src\\app\\shared\\gabinete-digital\\generic\\task-list | 6 | 244 | 9 | 39 | 292 |
| src\\app\\shared\\gabinete-digital\\pedidos | 6 | 507 | 28 | 80 | 615 |
| src\\app\\shared\\gabinete-digital\\pendentes | 6 | 372 | 22 | 58 | 452 |
| src\\app\\shared\\header | 6 | 507 | 43 | 112 | 662 |
| src\\app\\shared\\header-pr | 6 | 124 | 0 | 35 | 159 |
| src\\app\\shared\\pin | 6 | 192 | 1 | 56 | 249 |
| src\\app\\shared\\popover | 96 | 4,154 | 107 | 787 | 5,048 |
| src\\app\\shared\\popover\\actions-options | 6 | 163 | 1 | 32 | 196 |
| src\\app\\shared\\popover\\bad-request | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\popover\\chat-options-popover | 6 | 228 | 0 | 44 | 272 |
| src\\app\\shared\\popover\\chat-popover | 6 | 236 | 5 | 39 | 280 |
| src\\app\\shared\\popover\\deploma-options | 6 | 310 | 9 | 61 | 380 |
| src\\app\\shared\\popover\\despachos-options | 6 | 445 | 1 | 76 | 522 |
| src\\app\\shared\\popover\\despachos-pr-options | 6 | 454 | 10 | 90 | 554 |
| src\\app\\shared\\popover\\diplomas-gerar-options | 6 | 268 | 4 | 48 | 320 |
| src\\app\\shared\\popover\\event-details-documents-options | 6 | 143 | 4 | 28 | 175 |
| src\\app\\shared\\popover\\group-duration | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\popover\\messages-options | 6 | 155 | 1 | 29 | 185 |
| src\\app\\shared\\popover\\opts-expediente | 6 | 480 | 50 | 81 | 611 |
| src\\app\\shared\\popover\\opts-expediente-pr | 6 | 447 | 8 | 82 | 537 |
| src\\app\\shared\\popover\\request-options | 6 | 431 | 10 | 76 | 517 |
| src\\app\\shared\\popover\\searched-document-options | 6 | 145 | 4 | 29 | 178 |
| src\\app\\shared\\popover\\success-message | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\publication | 30 | 2,108 | 117 | 357 | 2,582 |
| src\\app\\shared\\publication\\edit-action | 6 | 408 | 4 | 53 | 465 |
| src\\app\\shared\\publication\\new-action | 6 | 408 | 18 | 71 | 497 |
| src\\app\\shared\\publication\\new-publication | 6 | 510 | 16 | 92 | 618 |
| src\\app\\shared\\publication\\view-publications | 12 | 782 | 79 | 141 | 1,002 |
| src\\app\\shared\\publication\\view-publications\\publication-detail | 6 | 321 | 14 | 52 | 387 |
| src\\app\\store | 33 | 1,075 | 56 | 407 | 1,538 |
| src\\app\\store\\chat | 4 | 88 | 3 | 37 | 128 |
| src\\assets | 363 | 106,266 | 8,915 | 16,035 | 131,216 |
| src\\assets\\background | 4 | 29 | 0 | 4 | 33 |
| src\\assets\\gif | 3 | 60 | 0 | 0 | 60 |
| src\\assets\\gif\\theme | 3 | 60 | 0 | 0 | 60 |
| src\\assets\\gif\\theme\\blue | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\gif\\theme\\gov | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\gif\\theme\\tribunal | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\icon | 41 | 501 | 0 | 39 | 540 |
| src\\assets\\icon\\chat | 12 | 265 | 0 | 11 | 276 |
| src\\assets\\icon\\tab | 10 | 42 | 0 | 10 | 52 |
| src\\assets\\icon\\theme | 9 | 85 | 0 | 9 | 94 |
| src\\assets\\icon\\theme\\default | 2 | 26 | 0 | 2 | 28 |
| src\\assets\\icon\\theme\\gov | 7 | 59 | 0 | 7 | 66 |
| src\\assets\\images | 176 | 4,200 | 6 | 231 | 4,437 |
| src\\assets\\images\\Gabinete Digital_files | 2 | 1,250 | 6 | 62 | 1,318 |
| src\\assets\\images\\nav-hover | 7 | 29 | 0 | 7 | 36 |
| src\\assets\\images\\theme | 76 | 1,034 | 0 | 75 | 1,109 |
| src\\assets\\images\\theme\\blue | 1 | 7 | 0 | 1 | 8 |
| src\\assets\\images\\theme\\gov | 65 | 970 | 0 | 65 | 1,035 |
| src\\assets\\images\\theme\\tribunal | 10 | 57 | 0 | 9 | 66 |
| src\\assets\\js | 2 | 16 | 27 | 7 | 50 |
| src\\assets\\www | 134 | 101,369 | 8,875 | 15,729 | 125,973 |
| src\\assets\\www\\pdfjs | 134 | 101,369 | 8,875 | 15,729 | 125,973 |
| src\\assets\\www\\pdfjs\\build | 2 | 70,296 | 695 | 10,424 | 81,415 |
| src\\assets\\www\\pdfjs\\web | 132 | 31,073 | 8,180 | 5,305 | 44,558 |
| src\\assets\\www\\pdfjs\\web\\images | 9 | 150 | 0 | 9 | 159 |
| src\\assets\\www\\pdfjs\\web\\locale | 118 | 15,109 | 7,943 | 2,224 | 25,276 |
| src\\assets\\www\\pdfjs\\web\\locale\\ach | 1 | 126 | 64 | 18 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\af | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\ak | 1 | 59 | 56 | 16 | 131 |
| src\\assets\\www\\pdfjs\\web\\locale\\an | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\ar | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ast | 1 | 115 | 74 | 19 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\az | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\be | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\bg | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\bn-BD | 1 | 143 | 72 | 18 | 233 |
| src\\assets\\www\\pdfjs\\web\\locale\\bn-IN | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\br | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\brx | 1 | 119 | 74 | 19 | 212 |
| src\\assets\\www\\pdfjs\\web\\locale\\bs | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ca | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\cak | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\cs | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\csb | 1 | 79 | 28 | 28 | 135 |
| src\\assets\\www\\pdfjs\\web\\locale\\cy | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\da | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\de | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\el | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-CA | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-GB | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-US | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\eo | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-AR | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-CL | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-ES | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-MX | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\et | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\eu | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fa | 1 | 134 | 72 | 18 | 224 |
| src\\assets\\www\\pdfjs\\web\\locale\\ff | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\fi | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fy-NL | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ga-IE | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\gd | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\gl | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\gn | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\gu-IN | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\he | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hi-IN | 1 | 149 | 74 | 19 | 242 |
| src\\assets\\www\\pdfjs\\web\\locale\\hr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hsb | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hto | 1 | 56 | 56 | 16 | 128 |
| src\\assets\\www\\pdfjs\\web\\locale\\hu | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hy-AM | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ia | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\id | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\is | 1 | 150 | 72 | 18 | 240 |
| src\\assets\\www\\pdfjs\\web\\locale\\it | 1 | 154 | 3 | 2 | 159 |
| src\\assets\\www\\pdfjs\\web\\locale\\ja | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ka | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kab | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\km | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\kn | 1 | 114 | 62 | 18 | 194 |
| src\\assets\\www\\pdfjs\\web\\locale\\ko | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kok | 1 | 96 | 56 | 16 | 168 |
| src\\assets\\www\\pdfjs\\web\\locale\\ks | 1 | 97 | 56 | 16 | 169 |
| src\\assets\\www\\pdfjs\\web\\locale\\ku | 1 | 75 | 56 | 16 | 147 |
| src\\assets\\www\\pdfjs\\web\\locale\\lg | 1 | 41 | 56 | 16 | 113 |
| src\\assets\\www\\pdfjs\\web\\locale\\lij | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\lo | 1 | 63 | 72 | 18 | 153 |
| src\\assets\\www\\pdfjs\\web\\locale\\lt | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ltg | 1 | 139 | 64 | 18 | 221 |
| src\\assets\\www\\pdfjs\\web\\locale\\lv | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\meh | 1 | 16 | 74 | 19 | 109 |
| src\\assets\\www\\pdfjs\\web\\locale\\mk | 1 | 64 | 64 | 18 | 146 |
| src\\assets\\www\\pdfjs\\web\\locale\\mn | 1 | 11 | 56 | 16 | 83 |
| src\\assets\\www\\pdfjs\\web\\locale\\mr | 1 | 138 | 72 | 18 | 228 |
| src\\assets\\www\\pdfjs\\web\\locale\\ms | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\my | 1 | 109 | 72 | 18 | 199 |
| src\\assets\\www\\pdfjs\\web\\locale\\nb-NO | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ne-NP | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\nl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\nn-NO | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\nso | 1 | 59 | 56 | 16 | 131 |
| src\\assets\\www\\pdfjs\\web\\locale\\oc | 1 | 129 | 64 | 18 | 211 |
| src\\assets\\www\\pdfjs\\web\\locale\\pa-IN | 1 | 150 | 74 | 19 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\pl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\pt-BR | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\pt-PT | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\rm | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ro | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ru | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\rw | 1 | 10 | 56 | 16 | 82 |
| src\\assets\\www\\pdfjs\\web\\locale\\sah | 1 | 95 | 56 | 16 | 167 |
| src\\assets\\www\\pdfjs\\web\\locale\\sat | 1 | 63 | 56 | 16 | 135 |
| src\\assets\\www\\pdfjs\\web\\locale\\si | 1 | 118 | 72 | 18 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\sk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\sl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\son | 1 | 109 | 56 | 16 | 181 |
| src\\assets\\www\\pdfjs\\web\\locale\\sq | 1 | 147 | 74 | 19 | 240 |
| src\\assets\\www\\pdfjs\\web\\locale\\sr | 1 | 139 | 64 | 18 | 221 |
| src\\assets\\www\\pdfjs\\web\\locale\\sv-SE | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\sw | 1 | 57 | 56 | 16 | 129 |
| src\\assets\\www\\pdfjs\\web\\locale\\ta | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ta-LK | 1 | 6 | 56 | 16 | 78 |
| src\\assets\\www\\pdfjs\\web\\locale\\te | 1 | 130 | 74 | 19 | 223 |
| src\\assets\\www\\pdfjs\\web\\locale\\th | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tn | 1 | 12 | 56 | 16 | 84 |
| src\\assets\\www\\pdfjs\\web\\locale\\tr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tsz | 1 | 4 | 56 | 16 | 76 |
| src\\assets\\www\\pdfjs\\web\\locale\\uk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ur | 1 | 119 | 74 | 19 | 212 |
| src\\assets\\www\\pdfjs\\web\\locale\\uz | 1 | 98 | 56 | 16 | 170 |
| src\\assets\\www\\pdfjs\\web\\locale\\vi | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\wo | 1 | 53 | 56 | 16 | 125 |
| src\\assets\\www\\pdfjs\\web\\locale\\xh | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\zam | 1 | 19 | 56 | 16 | 91 |
| src\\assets\\www\\pdfjs\\web\\locale\\zh-CN | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\zh-TW | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\zu | 1 | 60 | 56 | 16 | 132 |
| src\\environments | 2 | 20 | 38 | 9 | 67 |
| src\\plugin | 10 | 1,104 | 164 | 216 | 1,484 |
| src\\style | 2 | 1,075 | 48 | 84 | 1,207 |
| src\\theme | 1 | 690 | 147 | 110 | 947 |
| test | 3 | 96 | 81 | 60 | 237 |
| typings | 1 | 0 | 4 | 1 | 5 |
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,370 @@
# Summary
Date : 2022-07-27 09:18:26
Directory c:\\Users\\eudes.inacio\\GabineteDigital\\gabinete-digital-fo
Total : 1583 files, 195277 codes, 13780 comments, 33715 blanks, all 242772 lines
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
## Languages
| language | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
| JavaScript | 27 | 85,023 | 1,194 | 13,421 | 99,638 |
| TypeScript | 873 | 49,674 | 2,661 | 13,285 | 65,620 |
| SCSS | 155 | 23,178 | 1,082 | 2,381 | 26,641 |
| HTML | 154 | 15,549 | 683 | 1,784 | 18,016 |
| Properties | 119 | 15,118 | 7,943 | 2,227 | 25,288 |
| XML | 233 | 3,745 | 0 | 223 | 3,968 |
| CSS | 3 | 2,064 | 42 | 301 | 2,407 |
| JSON | 10 | 582 | 153 | 4 | 739 |
| Markdown | 3 | 218 | 0 | 77 | 295 |
| JSON with Comments | 3 | 53 | 1 | 1 | 55 |
| YAML | 2 | 48 | 21 | 11 | 80 |
| Ignore | 1 | 25 | 0 | 0 | 25 |
## Directories
| path | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
| . | 1,583 | 195,277 | 13,780 | 33,715 | 242,772 |
| e2e | 4 | 57 | 2 | 11 | 70 |
| e2e\\src | 2 | 20 | 0 | 7 | 27 |
| nginx | 1 | 9 | 0 | 3 | 12 |
| resources | 1 | 6 | 0 | 3 | 9 |
| src | 1,553 | 194,229 | 13,454 | 33,582 | 241,265 |
| src\\app | 1,165 | 83,840 | 3,919 | 16,829 | 104,588 |
| src\\app\\Rules | 20 | 566 | 29 | 175 | 770 |
| src\\app\\animations | 1 | 1 | 1 | 1 | 3 |
| src\\app\\config | 1 | 6 | 2 | 0 | 8 |
| src\\app\\guards | 6 | 221 | 2 | 45 | 268 |
| src\\app\\home | 7 | 706 | 45 | 99 | 850 |
| src\\app\\index | 6 | 71 | 5 | 21 | 97 |
| src\\app\\modals | 126 | 7,469 | 269 | 1,424 | 9,162 |
| src\\app\\modals\\add-note | 6 | 290 | 6 | 43 | 339 |
| src\\app\\modals\\chat-options-features | 6 | 266 | 29 | 50 | 345 |
| src\\app\\modals\\create-process | 6 | 961 | 31 | 177 | 1,169 |
| src\\app\\modals\\dar-parecer | 6 | 337 | 3 | 45 | 385 |
| src\\app\\modals\\delegar | 6 | 465 | 8 | 72 | 545 |
| src\\app\\modals\\document-detail | 6 | 599 | 7 | 85 | 691 |
| src\\app\\modals\\document-set-up-meeting | 6 | 907 | 38 | 154 | 1,099 |
| src\\app\\modals\\document-viewer | 6 | 102 | 1 | 38 | 141 |
| src\\app\\modals\\eliminate-event | 6 | 110 | 0 | 26 | 136 |
| src\\app\\modals\\forward | 6 | 468 | 3 | 69 | 540 |
| src\\app\\modals\\group-icons | 6 | 119 | 36 | 47 | 202 |
| src\\app\\modals\\preview-camera | 6 | 251 | 23 | 87 | 361 |
| src\\app\\modals\\preview-photo | 6 | 87 | 0 | 28 | 115 |
| src\\app\\modals\\previewer | 6 | 70 | 1 | 26 | 97 |
| src\\app\\modals\\profile | 12 | 897 | 35 | 176 | 1,108 |
| src\\app\\modals\\profile\\edit-profile | 6 | 406 | 11 | 83 | 500 |
| src\\app\\modals\\set-room-owner | 6 | 299 | 20 | 57 | 376 |
| src\\app\\modals\\video-allowed | 6 | 73 | 2 | 26 | 101 |
| src\\app\\modals\\view-document | 6 | 193 | 3 | 48 | 244 |
| src\\app\\modals\\view-event | 6 | 774 | 13 | 117 | 904 |
| src\\app\\modals\\view-media | 6 | 201 | 10 | 53 | 264 |
| src\\app\\models | 51 | 1,284 | 70 | 189 | 1,543 |
| src\\app\\models\\agenda | 3 | 53 | 3 | 9 | 65 |
| src\\app\\models\\chat | 2 | 11 | 0 | 0 | 11 |
| src\\app\\models\\event | 1 | 10 | 0 | 3 | 13 |
| src\\app\\models\\permission | 5 | 31 | 0 | 6 | 37 |
| src\\app\\pages | 363 | 37,767 | 1,579 | 6,928 | 46,274 |
| src\\app\\pages\\agenda | 43 | 5,498 | 183 | 1,306 | 6,987 |
| src\\app\\pages\\agenda\\edit-event | 6 | 969 | 16 | 189 | 1,174 |
| src\\app\\pages\\agenda\\emend-message-modal | 6 | 149 | 1 | 31 | 181 |
| src\\app\\pages\\agenda\\evandre | 6 | 67 | 0 | 24 | 91 |
| src\\app\\pages\\agenda\\event-actions-popover | 6 | 254 | 5 | 57 | 316 |
| src\\app\\pages\\agenda\\new-event | 6 | 941 | 19 | 175 | 1,135 |
| src\\app\\pages\\agenda\\view-event | 6 | 861 | 13 | 158 | 1,032 |
| src\\app\\pages\\chat | 54 | 6,068 | 261 | 1,098 | 7,427 |
| src\\app\\pages\\chat\\edit-group | 6 | 398 | 0 | 49 | 447 |
| src\\app\\pages\\chat\\group-messages | 12 | 1,941 | 114 | 360 | 2,415 |
| src\\app\\pages\\chat\\group-messages\\group-contacts | 6 | 429 | 3 | 80 | 512 |
| src\\app\\pages\\chat\\messages | 12 | 1,809 | 73 | 350 | 2,232 |
| src\\app\\pages\\chat\\messages\\contacts | 6 | 335 | 15 | 70 | 420 |
| src\\app\\pages\\chat\\new-group | 18 | 851 | 33 | 153 | 1,037 |
| src\\app\\pages\\chat\\new-group\\contacts | 6 | 313 | 31 | 64 | 408 |
| src\\app\\pages\\chat\\new-group\\group-chat | 6 | 80 | 0 | 26 | 106 |
| src\\app\\pages\\events | 36 | 3,167 | 135 | 472 | 3,774 |
| src\\app\\pages\\events\\attachments | 6 | 195 | 5 | 31 | 231 |
| src\\app\\pages\\events\\attendees | 6 | 240 | 1 | 66 | 307 |
| src\\app\\pages\\events\\edit-event | 6 | 605 | 8 | 69 | 682 |
| src\\app\\pages\\events\\event-detail | 6 | 549 | 27 | 65 | 641 |
| src\\app\\pages\\events\\event-detail-modal | 6 | 527 | 30 | 65 | 622 |
| src\\app\\pages\\gabinete-digital | 144 | 16,804 | 607 | 2,760 | 20,171 |
| src\\app\\pages\\gabinete-digital\\despachos | 12 | 1,313 | 37 | 209 | 1,559 |
| src\\app\\pages\\gabinete-digital\\despachos-pr | 12 | 1,495 | 57 | 257 | 1,809 |
| src\\app\\pages\\gabinete-digital\\despachos-pr\\despacho-pr | 6 | 923 | 10 | 139 | 1,072 |
| src\\app\\pages\\gabinete-digital\\despachos\\despacho | 6 | 851 | 19 | 130 | 1,000 |
| src\\app\\pages\\gabinete-digital\\diplomas | 12 | 1,306 | 53 | 200 | 1,559 |
| src\\app\\pages\\gabinete-digital\\diplomas-assinar | 12 | 1,016 | 19 | 149 | 1,184 |
| src\\app\\pages\\gabinete-digital\\diplomas-assinar\\diploma-assinar | 6 | 572 | 6 | 75 | 653 |
| src\\app\\pages\\gabinete-digital\\diplomas-gerar | 12 | 1,194 | 23 | 184 | 1,401 |
| src\\app\\pages\\gabinete-digital\\diplomas-gerar\\diplomas-gerar | 6 | 683 | 3 | 104 | 790 |
| src\\app\\pages\\gabinete-digital\\diplomas\\diploma | 6 | 740 | 32 | 97 | 869 |
| src\\app\\pages\\gabinete-digital\\discart-expedient-modal | 6 | 114 | 0 | 28 | 142 |
| src\\app\\pages\\gabinete-digital\\event-list | 18 | 1,685 | 50 | 306 | 2,041 |
| src\\app\\pages\\gabinete-digital\\event-list\\approve-event | 6 | 696 | 17 | 132 | 845 |
| src\\app\\pages\\gabinete-digital\\event-list\\approve-event-modal | 6 | 520 | 7 | 87 | 614 |
| src\\app\\pages\\gabinete-digital\\expediente | 24 | 3,505 | 116 | 602 | 4,223 |
| src\\app\\pages\\gabinete-digital\\expediente\\book-meeting-modal | 6 | 983 | 19 | 188 | 1,190 |
| src\\app\\pages\\gabinete-digital\\expediente\\expedient-task-modal | 6 | 955 | 51 | 171 | 1,177 |
| src\\app\\pages\\gabinete-digital\\expediente\\expediente-detail | 6 | 1,076 | 28 | 162 | 1,266 |
| src\\app\\pages\\gabinete-digital\\expedientes-pr | 12 | 1,309 | 101 | 193 | 1,603 |
| src\\app\\pages\\gabinete-digital\\expedientes-pr\\expediente-pr | 6 | 854 | 77 | 123 | 1,054 |
| src\\app\\pages\\gabinete-digital\\pedidos | 12 | 1,618 | 90 | 251 | 1,959 |
| src\\app\\pages\\gabinete-digital\\pedidos\\pedido | 6 | 972 | 52 | 140 | 1,164 |
| src\\app\\pages\\gabinete-digital\\pendentes | 6 | 458 | 16 | 79 | 553 |
| src\\app\\pages\\inactivity | 6 | 564 | 36 | 144 | 744 |
| src\\app\\pages\\login | 6 | 446 | 3 | 85 | 534 |
| src\\app\\pages\\publications | 56 | 3,874 | 294 | 705 | 4,873 |
| src\\app\\pages\\publications\\edit-action | 6 | 412 | 3 | 55 | 470 |
| src\\app\\pages\\publications\\gallery | 12 | 320 | 2 | 51 | 373 |
| src\\app\\pages\\publications\\gallery\\image-modal | 6 | 101 | 0 | 27 | 128 |
| src\\app\\pages\\publications\\new-action | 6 | 439 | 18 | 71 | 528 |
| src\\app\\pages\\publications\\new-publication | 8 | 636 | 95 | 161 | 892 |
| src\\app\\pages\\publications\\publication-detail | 6 | 318 | 4 | 46 | 368 |
| src\\app\\pages\\publications\\view-publications | 12 | 805 | 99 | 153 | 1,057 |
| src\\app\\pages\\publications\\view-publications\\publication-detail | 6 | 339 | 6 | 55 | 400 |
| src\\app\\pages\\search | 18 | 1,346 | 60 | 358 | 1,764 |
| src\\app\\pages\\search\\organic-entity | 6 | 157 | 0 | 43 | 200 |
| src\\app\\pages\\search\\sender | 6 | 156 | 0 | 36 | 192 |
| src\\app\\pipes | 17 | 246 | 1 | 67 | 314 |
| src\\app\\resolvers | 1 | 11 | 0 | 2 | 13 |
| src\\app\\services | 166 | 10,395 | 906 | 2,982 | 14,283 |
| src\\app\\services\\agenda | 2 | 150 | 12 | 69 | 231 |
| src\\app\\services\\chat | 16 | 2,159 | 133 | 727 | 3,019 |
| src\\app\\services\\dom | 2 | 30 | 0 | 12 | 42 |
| src\\app\\services\\events | 36 | 2,952 | 188 | 444 | 3,584 |
| src\\app\\services\\events\\attachments | 6 | 196 | 5 | 31 | 232 |
| src\\app\\services\\events\\attendees | 6 | 241 | 1 | 62 | 304 |
| src\\app\\services\\events\\edit-event | 6 | 600 | 8 | 69 | 677 |
| src\\app\\services\\events\\event-detail | 6 | 544 | 27 | 67 | 638 |
| src\\app\\services\\events\\event-detail-modal | 6 | 522 | 30 | 64 | 616 |
| src\\app\\services\\file | 10 | 171 | 7 | 69 | 247 |
| src\\app\\services\\fileExprorer | 2 | 19 | 0 | 8 | 27 |
| src\\app\\services\\file\\custom-image-cache | 6 | 108 | 2 | 38 | 148 |
| src\\app\\services\\functions | 10 | 343 | 7 | 117 | 467 |
| src\\app\\services\\notification | 3 | 75 | 8 | 33 | 116 |
| src\\app\\services\\rules | 4 | 55 | 0 | 25 | 80 |
| src\\app\\shared | 361 | 23,530 | 917 | 4,434 | 28,881 |
| src\\app\\shared\\agenda | 36 | 4,451 | 110 | 865 | 5,426 |
| src\\app\\shared\\agenda\\approve-event | 6 | 511 | 35 | 108 | 654 |
| src\\app\\shared\\agenda\\edit-event | 6 | 925 | 16 | 175 | 1,116 |
| src\\app\\shared\\agenda\\edit-event-to-approve | 6 | 1,006 | 25 | 200 | 1,231 |
| src\\app\\shared\\agenda\\event-list | 6 | 335 | 5 | 49 | 389 |
| src\\app\\shared\\agenda\\new-event | 6 | 1,073 | 25 | 212 | 1,310 |
| src\\app\\shared\\agenda\\view-event | 6 | 601 | 4 | 121 | 726 |
| src\\app\\shared\\btn-modal-dismiss | 6 | 82 | 0 | 23 | 105 |
| src\\app\\shared\\btn-seguinte | 6 | 73 | 0 | 19 | 92 |
| src\\app\\shared\\chat | 60 | 5,340 | 223 | 1,035 | 6,598 |
| src\\app\\shared\\chat\\edit-group | 6 | 407 | 6 | 51 | 464 |
| src\\app\\shared\\chat\\empty-chat | 6 | 72 | 0 | 21 | 93 |
| src\\app\\shared\\chat\\group-messages | 12 | 2,024 | 117 | 384 | 2,525 |
| src\\app\\shared\\chat\\group-messages\\group-contacts | 6 | 507 | 30 | 102 | 639 |
| src\\app\\shared\\chat\\messages | 12 | 1,875 | 61 | 397 | 2,333 |
| src\\app\\shared\\chat\\messages\\contacts | 6 | 338 | 16 | 67 | 421 |
| src\\app\\shared\\chat\\new-group | 24 | 962 | 39 | 182 | 1,183 |
| src\\app\\shared\\chat\\new-group\\contacts | 6 | 312 | 31 | 61 | 404 |
| src\\app\\shared\\chat\\new-group\\group-chat | 6 | 80 | 0 | 24 | 104 |
| src\\app\\shared\\chat\\new-group\\group-contacts | 6 | 67 | 0 | 24 | 91 |
| src\\app\\shared\\empty-container | 6 | 72 | 0 | 21 | 93 |
| src\\app\\shared\\event | 6 | 276 | 7 | 88 | 371 |
| src\\app\\shared\\event\\attendee-modal | 6 | 276 | 7 | 88 | 371 |
| src\\app\\shared\\fingerprint | 6 | 154 | 32 | 51 | 237 |
| src\\app\\shared\\gabinete-digital | 90 | 5,978 | 252 | 983 | 7,213 |
| src\\app\\shared\\gabinete-digital\\all-processes | 6 | 443 | 17 | 82 | 542 |
| src\\app\\shared\\gabinete-digital\\despachos | 6 | 318 | 17 | 49 | 384 |
| src\\app\\shared\\gabinete-digital\\despachos-pr | 6 | 364 | 18 | 60 | 442 |
| src\\app\\shared\\gabinete-digital\\diplomas | 6 | 469 | 23 | 71 | 563 |
| src\\app\\shared\\gabinete-digital\\diplomas-assinar | 6 | 406 | 20 | 67 | 493 |
| src\\app\\shared\\gabinete-digital\\diplomas-gerar | 6 | 397 | 16 | 63 | 476 |
| src\\app\\shared\\gabinete-digital\\edit-event-to-approve | 6 | 902 | 28 | 171 | 1,101 |
| src\\app\\shared\\gabinete-digital\\events-to-approve | 6 | 463 | 18 | 67 | 548 |
| src\\app\\shared\\gabinete-digital\\expedientes-pr | 6 | 345 | 17 | 58 | 420 |
| src\\app\\shared\\gabinete-digital\\expedients | 6 | 358 | 17 | 58 | 433 |
| src\\app\\shared\\gabinete-digital\\generic | 18 | 634 | 11 | 99 | 744 |
| src\\app\\shared\\gabinete-digital\\generic\\task-detailde | 6 | 67 | 0 | 24 | 91 |
| src\\app\\shared\\gabinete-digital\\generic\\task-details | 6 | 323 | 2 | 36 | 361 |
| src\\app\\shared\\gabinete-digital\\generic\\task-list | 6 | 244 | 9 | 39 | 292 |
| src\\app\\shared\\gabinete-digital\\pedidos | 6 | 507 | 28 | 80 | 615 |
| src\\app\\shared\\gabinete-digital\\pendentes | 6 | 372 | 22 | 58 | 452 |
| src\\app\\shared\\header | 6 | 507 | 43 | 112 | 662 |
| src\\app\\shared\\header-pr | 6 | 124 | 0 | 35 | 159 |
| src\\app\\shared\\pin | 6 | 192 | 1 | 56 | 249 |
| src\\app\\shared\\popover | 96 | 4,154 | 107 | 787 | 5,048 |
| src\\app\\shared\\popover\\actions-options | 6 | 163 | 1 | 32 | 196 |
| src\\app\\shared\\popover\\bad-request | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\popover\\chat-options-popover | 6 | 228 | 0 | 44 | 272 |
| src\\app\\shared\\popover\\chat-popover | 6 | 236 | 5 | 39 | 280 |
| src\\app\\shared\\popover\\deploma-options | 6 | 310 | 9 | 61 | 380 |
| src\\app\\shared\\popover\\despachos-options | 6 | 445 | 1 | 76 | 522 |
| src\\app\\shared\\popover\\despachos-pr-options | 6 | 454 | 10 | 90 | 554 |
| src\\app\\shared\\popover\\diplomas-gerar-options | 6 | 268 | 4 | 48 | 320 |
| src\\app\\shared\\popover\\event-details-documents-options | 6 | 143 | 4 | 28 | 175 |
| src\\app\\shared\\popover\\group-duration | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\popover\\messages-options | 6 | 155 | 1 | 29 | 185 |
| src\\app\\shared\\popover\\opts-expediente | 6 | 480 | 50 | 81 | 611 |
| src\\app\\shared\\popover\\opts-expediente-pr | 6 | 447 | 8 | 82 | 537 |
| src\\app\\shared\\popover\\request-options | 6 | 431 | 10 | 76 | 517 |
| src\\app\\shared\\popover\\searched-document-options | 6 | 145 | 4 | 29 | 178 |
| src\\app\\shared\\popover\\success-message | 6 | 83 | 0 | 24 | 107 |
| src\\app\\shared\\publication | 30 | 2,108 | 117 | 357 | 2,582 |
| src\\app\\shared\\publication\\edit-action | 6 | 408 | 4 | 53 | 465 |
| src\\app\\shared\\publication\\new-action | 6 | 408 | 18 | 71 | 497 |
| src\\app\\shared\\publication\\new-publication | 6 | 510 | 16 | 92 | 618 |
| src\\app\\shared\\publication\\view-publications | 12 | 782 | 79 | 141 | 1,002 |
| src\\app\\shared\\publication\\view-publications\\publication-detail | 6 | 321 | 14 | 52 | 387 |
| src\\app\\store | 33 | 1,075 | 56 | 407 | 1,538 |
| src\\app\\store\\chat | 4 | 88 | 3 | 37 | 128 |
| src\\assets | 363 | 106,266 | 8,915 | 16,035 | 131,216 |
| src\\assets\\background | 4 | 29 | 0 | 4 | 33 |
| src\\assets\\gif | 3 | 60 | 0 | 0 | 60 |
| src\\assets\\gif\\theme | 3 | 60 | 0 | 0 | 60 |
| src\\assets\\gif\\theme\\blue | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\gif\\theme\\gov | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\gif\\theme\\tribunal | 1 | 20 | 0 | 0 | 20 |
| src\\assets\\icon | 41 | 501 | 0 | 39 | 540 |
| src\\assets\\icon\\chat | 12 | 265 | 0 | 11 | 276 |
| src\\assets\\icon\\tab | 10 | 42 | 0 | 10 | 52 |
| src\\assets\\icon\\theme | 9 | 85 | 0 | 9 | 94 |
| src\\assets\\icon\\theme\\default | 2 | 26 | 0 | 2 | 28 |
| src\\assets\\icon\\theme\\gov | 7 | 59 | 0 | 7 | 66 |
| src\\assets\\images | 176 | 4,200 | 6 | 231 | 4,437 |
| src\\assets\\images\\Gabinete Digital_files | 2 | 1,250 | 6 | 62 | 1,318 |
| src\\assets\\images\\nav-hover | 7 | 29 | 0 | 7 | 36 |
| src\\assets\\images\\theme | 76 | 1,034 | 0 | 75 | 1,109 |
| src\\assets\\images\\theme\\blue | 1 | 7 | 0 | 1 | 8 |
| src\\assets\\images\\theme\\gov | 65 | 970 | 0 | 65 | 1,035 |
| src\\assets\\images\\theme\\tribunal | 10 | 57 | 0 | 9 | 66 |
| src\\assets\\js | 2 | 16 | 27 | 7 | 50 |
| src\\assets\\www | 134 | 101,369 | 8,875 | 15,729 | 125,973 |
| src\\assets\\www\\pdfjs | 134 | 101,369 | 8,875 | 15,729 | 125,973 |
| src\\assets\\www\\pdfjs\\build | 2 | 70,296 | 695 | 10,424 | 81,415 |
| src\\assets\\www\\pdfjs\\web | 132 | 31,073 | 8,180 | 5,305 | 44,558 |
| src\\assets\\www\\pdfjs\\web\\images | 9 | 150 | 0 | 9 | 159 |
| src\\assets\\www\\pdfjs\\web\\locale | 118 | 15,109 | 7,943 | 2,224 | 25,276 |
| src\\assets\\www\\pdfjs\\web\\locale\\ach | 1 | 126 | 64 | 18 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\af | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\ak | 1 | 59 | 56 | 16 | 131 |
| src\\assets\\www\\pdfjs\\web\\locale\\an | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\ar | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ast | 1 | 115 | 74 | 19 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\az | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\be | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\bg | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\bn-BD | 1 | 143 | 72 | 18 | 233 |
| src\\assets\\www\\pdfjs\\web\\locale\\bn-IN | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\br | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\brx | 1 | 119 | 74 | 19 | 212 |
| src\\assets\\www\\pdfjs\\web\\locale\\bs | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ca | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\cak | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\cs | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\csb | 1 | 79 | 28 | 28 | 135 |
| src\\assets\\www\\pdfjs\\web\\locale\\cy | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\da | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\de | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\el | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-CA | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-GB | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\en-US | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\eo | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-AR | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-CL | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-ES | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\es-MX | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\et | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\eu | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fa | 1 | 134 | 72 | 18 | 224 |
| src\\assets\\www\\pdfjs\\web\\locale\\ff | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\fi | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\fy-NL | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ga-IE | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\gd | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\gl | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\gn | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\gu-IN | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\he | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hi-IN | 1 | 149 | 74 | 19 | 242 |
| src\\assets\\www\\pdfjs\\web\\locale\\hr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hsb | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hto | 1 | 56 | 56 | 16 | 128 |
| src\\assets\\www\\pdfjs\\web\\locale\\hu | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\hy-AM | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ia | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\id | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\is | 1 | 150 | 72 | 18 | 240 |
| src\\assets\\www\\pdfjs\\web\\locale\\it | 1 | 154 | 3 | 2 | 159 |
| src\\assets\\www\\pdfjs\\web\\locale\\ja | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ka | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kab | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\km | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\kn | 1 | 114 | 62 | 18 | 194 |
| src\\assets\\www\\pdfjs\\web\\locale\\ko | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\kok | 1 | 96 | 56 | 16 | 168 |
| src\\assets\\www\\pdfjs\\web\\locale\\ks | 1 | 97 | 56 | 16 | 169 |
| src\\assets\\www\\pdfjs\\web\\locale\\ku | 1 | 75 | 56 | 16 | 147 |
| src\\assets\\www\\pdfjs\\web\\locale\\lg | 1 | 41 | 56 | 16 | 113 |
| src\\assets\\www\\pdfjs\\web\\locale\\lij | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\lo | 1 | 63 | 72 | 18 | 153 |
| src\\assets\\www\\pdfjs\\web\\locale\\lt | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ltg | 1 | 139 | 64 | 18 | 221 |
| src\\assets\\www\\pdfjs\\web\\locale\\lv | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\meh | 1 | 16 | 74 | 19 | 109 |
| src\\assets\\www\\pdfjs\\web\\locale\\mk | 1 | 64 | 64 | 18 | 146 |
| src\\assets\\www\\pdfjs\\web\\locale\\mn | 1 | 11 | 56 | 16 | 83 |
| src\\assets\\www\\pdfjs\\web\\locale\\mr | 1 | 138 | 72 | 18 | 228 |
| src\\assets\\www\\pdfjs\\web\\locale\\ms | 1 | 153 | 72 | 18 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\my | 1 | 109 | 72 | 18 | 199 |
| src\\assets\\www\\pdfjs\\web\\locale\\nb-NO | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ne-NP | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\nl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\nn-NO | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\nso | 1 | 59 | 56 | 16 | 131 |
| src\\assets\\www\\pdfjs\\web\\locale\\oc | 1 | 129 | 64 | 18 | 211 |
| src\\assets\\www\\pdfjs\\web\\locale\\pa-IN | 1 | 150 | 74 | 19 | 243 |
| src\\assets\\www\\pdfjs\\web\\locale\\pl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\pt-BR | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\pt-PT | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\rm | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ro | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ru | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\rw | 1 | 10 | 56 | 16 | 82 |
| src\\assets\\www\\pdfjs\\web\\locale\\sah | 1 | 95 | 56 | 16 | 167 |
| src\\assets\\www\\pdfjs\\web\\locale\\sat | 1 | 63 | 56 | 16 | 135 |
| src\\assets\\www\\pdfjs\\web\\locale\\si | 1 | 118 | 72 | 18 | 208 |
| src\\assets\\www\\pdfjs\\web\\locale\\sk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\sl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\son | 1 | 109 | 56 | 16 | 181 |
| src\\assets\\www\\pdfjs\\web\\locale\\sq | 1 | 147 | 74 | 19 | 240 |
| src\\assets\\www\\pdfjs\\web\\locale\\sr | 1 | 139 | 64 | 18 | 221 |
| src\\assets\\www\\pdfjs\\web\\locale\\sv-SE | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\sw | 1 | 57 | 56 | 16 | 129 |
| src\\assets\\www\\pdfjs\\web\\locale\\ta | 1 | 124 | 62 | 16 | 202 |
| src\\assets\\www\\pdfjs\\web\\locale\\ta-LK | 1 | 6 | 56 | 16 | 78 |
| src\\assets\\www\\pdfjs\\web\\locale\\te | 1 | 130 | 74 | 19 | 223 |
| src\\assets\\www\\pdfjs\\web\\locale\\th | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tl | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tn | 1 | 12 | 56 | 16 | 84 |
| src\\assets\\www\\pdfjs\\web\\locale\\tr | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\tsz | 1 | 4 | 56 | 16 | 76 |
| src\\assets\\www\\pdfjs\\web\\locale\\uk | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\ur | 1 | 119 | 74 | 19 | 212 |
| src\\assets\\www\\pdfjs\\web\\locale\\uz | 1 | 98 | 56 | 16 | 170 |
| src\\assets\\www\\pdfjs\\web\\locale\\vi | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\wo | 1 | 53 | 56 | 16 | 125 |
| src\\assets\\www\\pdfjs\\web\\locale\\xh | 1 | 113 | 56 | 16 | 185 |
| src\\assets\\www\\pdfjs\\web\\locale\\zam | 1 | 19 | 56 | 16 | 91 |
| src\\assets\\www\\pdfjs\\web\\locale\\zh-CN | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\zh-TW | 1 | 154 | 74 | 19 | 247 |
| src\\assets\\www\\pdfjs\\web\\locale\\zu | 1 | 60 | 56 | 16 | 132 |
| src\\environments | 2 | 20 | 38 | 9 | 67 |
| src\\plugin | 10 | 1,104 | 164 | 216 | 1,484 |
| src\\style | 2 | 1,075 | 48 | 84 | 1,207 |
| src\\theme | 1 | 690 | 147 | 110 | 947 |
| test | 3 | 96 | 81 | 60 | 237 |
| typings | 1 | 0 | 4 | 1 | 5 |
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
File diff suppressed because it is too large Load Diff
+36 -35
View File
@@ -7327,7 +7327,7 @@
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"devOptional": true "dev": true
}, },
"node_modules/argparse": { "node_modules/argparse": {
"version": "1.0.10", "version": "1.0.10",
@@ -7371,7 +7371,7 @@
"node_modules/array-find-index": { "node_modules/array-find-index": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
"integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
@@ -9190,7 +9190,7 @@
"node_modules/clone-response": { "node_modules/clone-response": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
"integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
"dependencies": { "dependencies": {
"mimic-response": "^1.0.0" "mimic-response": "^1.0.0"
} }
@@ -10697,7 +10697,7 @@
"node_modules/corser": { "node_modules/corser": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz",
"integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=",
"engines": { "engines": {
"node": ">= 0.4.0" "node": ">= 0.4.0"
} }
@@ -11369,7 +11369,7 @@
"node_modules/currently-unhandled": { "node_modules/currently-unhandled": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
"integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
"dependencies": { "dependencies": {
"array-find-index": "^1.0.1" "array-find-index": "^1.0.1"
}, },
@@ -11512,7 +11512,7 @@
"node_modules/decompress-response": { "node_modules/decompress-response": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
"integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
"dependencies": { "dependencies": {
"mimic-response": "^1.0.0" "mimic-response": "^1.0.0"
}, },
@@ -11889,7 +11889,7 @@
"node_modules/dep-graph": { "node_modules/dep-graph": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz", "resolved": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz",
"integrity": "sha512-/6yUWlSH0Uevjj6HWvO86rDeFzuYfzbaKDqifTEemwfwEPyBrODTb3ox/jFzqmc2+UmgJ3IDMS88BKEBh1Nm2Q==", "integrity": "sha1-+t6GqSeZqBPptCURzfPfpsyNvv4=",
"dependencies": { "dependencies": {
"underscore": "1.2.1" "underscore": "1.2.1"
}, },
@@ -11900,7 +11900,7 @@
"node_modules/dep-graph/node_modules/underscore": { "node_modules/dep-graph/node_modules/underscore": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz",
"integrity": "sha512-HRhh6FYh5I5/zTt7L9MnHRA/nlSFPiwymMCXEremmzT7tHR+8CNP0FXHPaUpafAPwvAlNrvZiH91kQwoo/CqUA==", "integrity": "sha1-/FxrB2VnPZKi1KyLTcCqiHAuK9Q=",
"engines": { "engines": {
"node": "*" "node": "*"
} }
@@ -11985,7 +11985,7 @@
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"devOptional": true, "dev": true,
"engines": { "engines": {
"node": ">=0.3.1" "node": ">=0.3.1"
} }
@@ -12161,7 +12161,7 @@
"node_modules/duplexer3": { "node_modules/duplexer3": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
"integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==" "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
}, },
"node_modules/duration": { "node_modules/duration": {
"version": "0.2.2", "version": "0.2.2",
@@ -12206,7 +12206,7 @@
"node_modules/editor": { "node_modules/editor": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz",
"integrity": "sha512-SoRmbGStwNYHgKfjOrX2L0mUvp9bUVv0uPppZSOMAntEbcFtoC3MKF5b3T6HQPXKIV+QGY3xPO3JK5it5lVkuw==" "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I="
}, },
"node_modules/ee-first": { "node_modules/ee-first": {
"version": "1.1.1", "version": "1.1.1",
@@ -12655,6 +12655,7 @@
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"optional": true, "optional": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
@@ -13345,7 +13346,7 @@
"node_modules/figures": { "node_modules/figures": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
"integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dependencies": { "dependencies": {
"escape-string-regexp": "^1.0.5" "escape-string-regexp": "^1.0.5"
}, },
@@ -14813,7 +14814,7 @@
"node_modules/import-lazy": { "node_modules/import-lazy": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
"integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
"engines": { "engines": {
"node": ">=4" "node": ">=4"
} }
@@ -15024,7 +15025,7 @@
"node_modules/inquirer/node_modules/cli-cursor": { "node_modules/inquirer/node_modules/cli-cursor": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
"integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dependencies": { "dependencies": {
"restore-cursor": "^2.0.0" "restore-cursor": "^2.0.0"
}, },
@@ -15043,12 +15044,12 @@
"node_modules/inquirer/node_modules/color-name": { "node_modules/inquirer/node_modules/color-name": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
}, },
"node_modules/inquirer/node_modules/has-flag": { "node_modules/inquirer/node_modules/has-flag": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"engines": { "engines": {
"node": ">=4" "node": ">=4"
} }
@@ -15056,7 +15057,7 @@
"node_modules/inquirer/node_modules/is-fullwidth-code-point": { "node_modules/inquirer/node_modules/is-fullwidth-code-point": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"engines": { "engines": {
"node": ">=4" "node": ">=4"
} }
@@ -15072,12 +15073,12 @@
"node_modules/inquirer/node_modules/mute-stream": { "node_modules/inquirer/node_modules/mute-stream": {
"version": "0.0.7", "version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==" "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
}, },
"node_modules/inquirer/node_modules/onetime": { "node_modules/inquirer/node_modules/onetime": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
"integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dependencies": { "dependencies": {
"mimic-fn": "^1.0.0" "mimic-fn": "^1.0.0"
}, },
@@ -15088,7 +15089,7 @@
"node_modules/inquirer/node_modules/restore-cursor": { "node_modules/inquirer/node_modules/restore-cursor": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
"integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dependencies": { "dependencies": {
"onetime": "^2.0.0", "onetime": "^2.0.0",
"signal-exit": "^3.0.2" "signal-exit": "^3.0.2"
@@ -15112,7 +15113,7 @@
"node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": { "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dependencies": { "dependencies": {
"ansi-regex": "^3.0.0" "ansi-regex": "^3.0.0"
}, },
@@ -18815,7 +18816,7 @@
"node_modules/json-buffer": { "node_modules/json-buffer": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
"integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
}, },
"node_modules/json-parse-better-errors": { "node_modules/json-parse-better-errors": {
"version": "1.0.2", "version": "1.0.2",
@@ -24163,7 +24164,7 @@
"node_modules/prepend-http": { "node_modules/prepend-http": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
"integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
"engines": { "engines": {
"node": ">=4" "node": ">=4"
} }
@@ -24268,7 +24269,7 @@
"node_modules/promzard": { "node_modules/promzard": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz",
"integrity": "sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==", "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=",
"dependencies": { "dependencies": {
"read": "1" "read": "1"
} }
@@ -25006,7 +25007,7 @@
"node_modules/read": { "node_modules/read": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
"integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
"dependencies": { "dependencies": {
"mute-stream": "~0.0.4" "mute-stream": "~0.0.4"
}, },
@@ -25593,7 +25594,7 @@
"node_modules/responselike": { "node_modules/responselike": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
"integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
"dependencies": { "dependencies": {
"lowercase-keys": "^1.0.0" "lowercase-keys": "^1.0.0"
} }
@@ -26231,7 +26232,7 @@
"node_modules/secure-compare": { "node_modules/secure-compare": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
"integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==" "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM="
}, },
"node_modules/select-hose": { "node_modules/select-hose": {
"version": "2.0.0", "version": "2.0.0",
@@ -29437,7 +29438,7 @@
"version": "8.3.0", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"devOptional": true, "dev": true,
"dependencies": { "dependencies": {
"arg": "^4.1.0", "arg": "^4.1.0",
"diff": "^4.0.1", "diff": "^4.0.1",
@@ -30051,7 +30052,7 @@
"node_modules/url-parse-lax": { "node_modules/url-parse-lax": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
"integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
"dependencies": { "dependencies": {
"prepend-http": "^2.0.0" "prepend-http": "^2.0.0"
}, },
@@ -31940,7 +31941,7 @@
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"devOptional": true, "dev": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@@ -37510,7 +37511,7 @@
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"devOptional": true "dev": true
}, },
"argparse": { "argparse": {
"version": "1.0.10", "version": "1.0.10",
@@ -39840,7 +39841,6 @@
}, },
"cordova-plugin-dbcopy": { "cordova-plugin-dbcopy": {
"version": "git+ssh://git@github.com/an-rahulpandey/cordova-plugin-dbcopy.git#861f585e4313db828d6b8c7d354c32c83373d0d2", "version": "git+ssh://git@github.com/an-rahulpandey/cordova-plugin-dbcopy.git#861f585e4313db828d6b8c7d354c32c83373d0d2",
"integrity": "sha512-8xIbT6265nNMm46nNkJWgvCSX6/6MoPLm5zWG/2KZIdHUUxz2PQ561y8aHVrfFUSQZ3zYHNAqC6ChrIJXIGTdA==",
"from": "cordova-plugin-dbcopy@git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git" "from": "cordova-plugin-dbcopy@git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git"
}, },
"cordova-plugin-device": { "cordova-plugin-device": {
@@ -41024,7 +41024,7 @@
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"devOptional": true "dev": true
}, },
"diff-sequences": { "diff-sequences": {
"version": "26.6.2", "version": "26.6.2",
@@ -41553,6 +41553,7 @@
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"optional": true "optional": true
} }
} }
@@ -54495,7 +54496,7 @@
"version": "8.3.0", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"devOptional": true, "dev": true,
"requires": { "requires": {
"arg": "^4.1.0", "arg": "^4.1.0",
"diff": "^4.0.1", "diff": "^4.0.1",
@@ -56466,7 +56467,7 @@
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"devOptional": true "dev": true
}, },
"yocto-queue": { "yocto-queue": {
"version": "0.1.0", "version": "0.1.0",
@@ -9,14 +9,14 @@
</div> </div>
<div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center"> <div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content"> <div class="logo-description-content">
<!-- <p class="logo-description-text">Presidente da República</p> --> <!-- <p class="logo-description-text">Calendário Partilhado</p> -->
<p class="logo-description-text tp-5">GABINETE DIGITAL</p> <p class="logo-description-text tp-5">GABINETE DIGITAL</p>
<div class="add-line"></div> <div class="add-line"></div>
</div> </div>
</div> </div>
<div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center"> <div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content"> <div class="logo-description-content">
<!-- <p class="logo-description-text color-white">Presidente da República</p> --> <!-- <p class="logo-description-text color-white">Calendário Partilhado</p> -->
<p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p> <p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p>
<div class="add-line-white"></div> <div class="add-line-white"></div>
</div> </div>
+4 -3
View File
@@ -8,14 +8,14 @@
</div> </div>
<div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center"> <div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content"> <div class="logo-description-content">
<!-- <p class="logo-description-text">Presidente da República</p> --> <!-- <p class="logo-description-text">Calendário Partilhado</p> -->
<p class="logo-description-text tp-5">GABINETE DIGITAL</p> <p class="logo-description-text tp-5">GABINETE DIGITAL</p>
<div class="add-line"></div> <div class="add-line"></div>
</div> </div>
</div> </div>
<div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center"> <div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content"> <div class="logo-description-content">
<!-- <p class="logo-description-text color-white">Presidente da República</p> --> <!-- <p class="logo-description-text color-white">Calendário Partilhado</p> -->
<p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p> <p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p>
<div class="add-line-white"></div> <div class="add-line-white"></div>
</div> </div>
@@ -45,7 +45,8 @@
</ion-buttons> </ion-buttons>
</div> </div>
<div class="line"></div> <div class="line"></div>
<ion-label (click)="asyncNotification()">{{notificationdata.length}} novas notificações</ion-label> <ion-label (click)="asyncNotification()" *ngIf="notificationdata">{{notificationdata.length}} novas notificações</ion-label>
<ion-label (click)="asyncNotification()" *ngIf="!notificationdata">0 novas notificações</ion-label>
</div> </div>
</ion-header> </ion-header>
@@ -40,7 +40,7 @@
<span class="date">{{loadedEvent.Location}}</span> <span class="date">{{loadedEvent.Location}}</span>
<div *ngIf="loadedEvent.Organizer"> <div *ngIf="loadedEvent.Organizer">
<div *ngIf="loadedEvent.Organizer.Name == 'Agenda do Presidente da República' "> <div *ngIf="loadedEvent.Organizer.Name == 'Agenda do Calendário Partilhado' ">
<span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #99e47b;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #99e47b;">{{loadedEvent.CalendarName}}</span>
<span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #958bfc;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #958bfc;">{{loadedEvent.CalendarName}}</span>
</div> </div>
+33 -2
View File
@@ -21,6 +21,7 @@ import { Event } from '../../models/event.model';
import { EditEventPage } from 'src/app/pages/agenda/edit-event/edit-event.page'; import { EditEventPage } from 'src/app/pages/agenda/edit-event/edit-event.page';
import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page'; import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page';
import { RouteService } from 'src/app/services/route.service'; import { RouteService } from 'src/app/services/route.service';
import { SessionStore } from 'src/app/store/session.service';
@Component({ @Component({
@@ -54,6 +55,8 @@ export class ViewEventPage implements OnInit {
header = true header = true
task: ExpedientTaskModalPageNavParamsTask; task: ExpedientTaskModalPageNavParamsTask;
LoadedDocument: any = null; LoadedDocument: any = null;
CalendarId
sesseionStora = SessionStore
constructor( constructor(
private modalController: ModalController, private modalController: ModalController,
@@ -74,6 +77,7 @@ export class ViewEventPage implements OnInit {
public ThemeService: ThemeService public ThemeService: ThemeService
) { ) {
this.eventId = this.navParams.get('eventId'); this.eventId = this.navParams.get('eventId');
this.CalendarId = this.navParams.get('CalendarId');
this.isEventEdited = false; this.isEventEdited = false;
this.loadedEvent = new Event(); this.loadedEvent = new Event();
this.eventBody = { BodyType: "1", Text: "" }; this.eventBody = { BodyType: "1", Text: "" };
@@ -127,11 +131,34 @@ export class ViewEventPage implements OnInit {
loadEvent() { loadEvent() {
const loader = this.toastService.loading(); const loader = this.toastService.loading();
if(this.sesseionStora.user.Profile == 'MDGPR' || this.sesseionStora.user.Profile == 'PR') {
this.eventsService.getEvent(this.eventId).subscribe(res => { this.eventsService.getEvent(this.eventId).subscribe(res => {
this.loadedEvent = res; this.loadedEvent = res;
this.addEventToDb(res); this.addEventToDb(res);
/* this.today = new Date(res.StartDate);
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]); */ loader.remove()
}, (error) => {
if (error.status === 0) {
this.getFromDb();
} else {
this.toastService.badRequest('Este evento já não existe na sua agenda')
loader.remove()
this.modalController.dismiss('Eevent not Foud');
this.RouteService.goBack();
}
loader.remove()
});
} else {
if(this.CalendarId) {
this.eventsService.genericGetEvent(this.eventId, this.CalendarId).subscribe(res => {
this.loadedEvent = res;
this.addEventToDb(res);
loader.remove() loader.remove()
}, (error) => { }, (error) => {
@@ -147,6 +174,10 @@ export class ViewEventPage implements OnInit {
}); });
} }
}
}
deleteEvent() { deleteEvent() {
const loader = this.toastService.loading() const loader = this.toastService.loading()
+14 -10
View File
@@ -14,28 +14,32 @@
</div> </div>
</ion-header> </ion-header>
<ion-content fullscreen> <ion-content fullscreen>
<div class="media d-flex align-items-center justify-center"> <div *ngIf="view" class="media d-flex align-items-center justify-center">
<div class="media-content w-100 d-flex align-items-center justify-center"> <div class="media-content w-100 d-flex align-items-center justify-center">
<ion-slides style="width: 100%; height: 100%;" [options]="sliderOpts"> <ion-slides style="width: 100%; height: 100%;" [options]="sliderOpts">
<ion-slide> <ion-slide>
<div class="swiper-zoom-container" > <div class="swiper-zoom-container" >
<div> <div style="overflow: scroll; width: 100%; height:100%;">
<img src="{{image}}"> <img src="{{image}}">
</div> </div>
<!-- <div *ngIf="type == 'application/pdf'"> </div>
<iframe width="100%" height="100%" [src]="base64Sanitize" type="application/vnd.openxmlformats-officedocument.wordprocessingml.document"></iframe> -->
<!-- <pdf-viewer [src]="image" <div *ngIf="!view" class="swiper-zoom-container" >
[render-text]="true" <img src="{{image}}">
[original-size]="false"
style="width: 400px; height: 500px"
></pdf-viewer> -->
<!-- </div> -->
</div> </div>
</ion-slide> </ion-slide>
</ion-slides> </ion-slides>
</div> </div>
</div> </div>
<ion-slides *ngIf="!view" style="width: 100%; height: 100%;" [options]="sliderOpts">
<ion-slide>
<div class="swiper-zoom-container" >
<img src="{{image}}">
</div>
</ion-slide>
</ion-slides>
</ion-content> </ion-content>
+10 -7
View File
@@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular'; import { ModalController, NavParams, Platform } from '@ionic/angular';
import { DomSanitizer} from '@angular/platform-browser'; import { DomSanitizer} from '@angular/platform-browser';
import { pdfDefaultOptions } from 'ngx-extended-pdf-viewer'; import { pdfDefaultOptions } from 'ngx-extended-pdf-viewer';
@@ -14,10 +14,10 @@ export class ViewMediaPage implements OnInit {
type: any; type: any;
name: string name: string
_updatedAt: string _updatedAt: string
view: boolean
sliderOpts = { sliderOpts = {
zoom: true, zoom: true
maxRation: 2
}; };
base64Sanitize:any = ""; base64Sanitize:any = "";
@@ -26,6 +26,7 @@ export class ViewMediaPage implements OnInit {
private modalController: ModalController, private modalController: ModalController,
private navParams:NavParams, private navParams:NavParams,
public sanitizer: DomSanitizer, public sanitizer: DomSanitizer,
private platform: Platform,
) { ) {
this.image = this.navParams.get('image') this.image = this.navParams.get('image')
@@ -39,6 +40,12 @@ export class ViewMediaPage implements OnInit {
console.log(this.image) console.log(this.image)
this.base64Sanitize = this.sanitizer.bypassSecurityTrustResourceUrl(this.image); this.base64Sanitize = this.sanitizer.bypassSecurityTrustResourceUrl(this.image);
if (this.platform.is('desktop')) {
this.view = true;
} else {
this.view = false;
}
} }
b64toBlob = (b64Data, contentType = '', sliceSize = 512) => { b64toBlob = (b64Data, contentType = '', sliceSize = 512) => {
@@ -61,10 +68,6 @@ export class ViewMediaPage implements OnInit {
return blob; return blob;
}; };
close(){ close(){
this.modalController.dismiss() this.modalController.dismiss()
} }
+7
View File
@@ -42,4 +42,11 @@ models.register({
}) })
// models.registerDynamic({
// type: 'indexedDB',
// version: 4,
// models: [MessageModel, DeleteMessageModel]
// })
window['MessageModel'] = MessageModel window['MessageModel'] = MessageModel
-3
View File
@@ -16,9 +16,6 @@ registerLocaleData(localeDe);
import { CalendarModule, DateAdapter } from 'angular-calendar'; import { CalendarModule, DateAdapter } from 'angular-calendar';
import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
import { EventsToApprovePage } from 'src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page';
import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/attendee-modal.module'; import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/attendee-modal.module';
import { HeaderPageModule } from 'src/app/shared/header/header.module'; import { HeaderPageModule } from 'src/app/shared/header/header.module';
+6 -6
View File
@@ -123,7 +123,7 @@
<ion-icon class="right-icons d-md-none" src="assets/images/icons-profile-calendar-pr.svg"></ion-icon> <ion-icon class="right-icons d-md-none" src="assets/images/icons-profile-calendar-pr.svg"></ion-icon>
</button> </button>
<button title="Visualizar a lista de Eventos para aprovação" class="btn-no-color cursor-pointer resize" (click)="viewEventsToApprove()" *ngIf="loggeduser.Profile != 'PR'"> <button title="Visualizar a lista de Eventos para aprovação" class="btn-no-color cursor-pointer resize" (click)="viewEventsToApprove()" *ngIf="p.userPermission([p.permissionList.Gabinete.aprove_event])">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="right-icons" src="assets/images/icons-received-event.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="right-icons" src="assets/images/icons-received-event.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && !mobileComponent.showEventList" class="right-icons" src="assets/images/theme/gov/icons-received-event.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && !mobileComponent.showEventList" class="right-icons" src="assets/images/theme/gov/icons-received-event.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && mobileComponent.showEventList" class="right-icons" src="assets/images/theme/gov/icons-received-event-selected.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && mobileComponent.showEventList" class="right-icons" src="assets/images/theme/gov/icons-received-event-selected.svg"></ion-icon>
@@ -154,7 +154,7 @@
<calendar <calendar
class="calendar-component" class="calendar-component"
[eventSource]="listToPresent" [eventSource]="CalendarStore.eventSource"
[calendarMode]="calendar.mode" [calendarMode]="calendar.mode"
[currentDate]="calendar.currentDate" [currentDate]="calendar.currentDate"
(onEventSelected)="onEventSelected($event)" (onEventSelected)="onEventSelected($event)"
@@ -229,11 +229,11 @@
<div class="calendar-title-container px-20 d-none d-md-flex" *ngIf="loggeduser.Profile == 'MDGPR'"> <div class="calendar-title-container px-20 d-none d-md-flex" *ngIf="loggeduser.Profile == 'MDGPR'">
<div class="calendar-title-description flex-grow-1 text-grey d-flex justify-center align-center"> <div class="calendar-title-description flex-grow-1 text-grey d-flex justify-center align-center">
<div *ngIf="loggeduser.Profile == 'PR' || loggeduser.Profile == 'MDGPR'">Calendário do MDGPR</div> <div *ngIf="loggeduser.Profile == 'PR' || loggeduser.Profile == 'MDGPR'">Meu Calendário</div>
</div> </div>
<div class="calendar-title-description text-black align-center"> <div class="calendar-title-description text-black align-center">
<div class="flex-grow-1 text-grey d-flex justify-center align-center"> <div class="flex-grow-1 text-grey d-flex justify-center align-center">
<div *ngIf="loggeduser.Profile == 'PR' || loggeduser.Profile == 'MDGPR'">Calendário do Presidente da República</div> <div *ngIf="loggeduser.Profile == 'PR' || loggeduser.Profile == 'MDGPR'">Calendário Partilhado</div>
</div> </div>
</div> </div>
</div> </div>
@@ -293,7 +293,7 @@
</div> </div>
</div> </div>
<div class="fs-timeline flex-grow-1 d-none d-md-block d-md-block text-black pr-20 width-100 height-100 overflow-y-auto" *ngIf="loggeduser.OwnerCalendars.length"> <div class="fs-timeline flex-grow-1 d-none d-md-block d-md-block text-black pr-20 width-100 height-100 overflow-y-auto" *ngIf="loggeduser.OwnerCalendars.length && loggeduser.Profile != 'PR' ">
<div *ngFor="let events of TimelineMDList | keyvalue;" > <div *ngFor="let events of TimelineMDList | keyvalue;" >
<div class="EventListBox-container" > <div class="EventListBox-container" >
@@ -334,7 +334,7 @@
</div> </div>
</div> </div>
<div class="sd-timeline flex-grow-1 d-none d-md-block timeline-md text-black pl-20 pr-20 width-100 height-100 overflow-y-auto" *ngIf="loggeduser.SharedCalendars.length != 0" > <div class="sd-timeline flex-grow-1 d-none d-md-block timeline-md text-black pl-20 pr-20 width-100 height-100 overflow-y-auto" *ngIf="loggeduser.SharedCalendars.length != 0 || loggeduser.Profile == 'PR' " >
<div *ngFor="let events of TimelinePRList | keyvalue;"> <div *ngFor="let events of TimelinePRList | keyvalue;">
<div class="EventListBox-container" > <div class="EventListBox-container" >
+9 -5
View File
@@ -9,6 +9,7 @@ import { DomSanitizer } from "@angular/platform-browser";
import { EventPerson } from 'src/app/models/eventperson.model'; import { EventPerson } from 'src/app/models/eventperson.model';
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'; import { removeDuplicate } from 'src/plugin/removeDuplicate.js';
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { environment } from 'src/environments/environment';
// showTimeline // showTimeline
import { setHours, setMinutes } from 'date-fns'; import { setHours, setMinutes } from 'date-fns';
@@ -33,6 +34,7 @@ import { SqliteService } from 'src/app/services/sqlite.service';
import { BackgroundService } from 'src/app/services/background.service'; import { BackgroundService } from 'src/app/services/background.service';
import { ThemeService } from 'src/app/services/theme.service' import { ThemeService } from 'src/app/services/theme.service'
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { PermissionService } from 'src/app/services/permission.service';
@Component({ @Component({
@@ -166,6 +168,7 @@ export class AgendaPage implements OnInit {
array = [] array = []
sessionStore = SessionStore; sessionStore = SessionStore;
environment
constructor( constructor(
private alertCtrl: AlertController, private alertCtrl: AlertController,
@@ -183,7 +186,8 @@ export class AgendaPage implements OnInit {
private platform: Platform, private platform: Platform,
private backgroundservice: BackgroundService, private backgroundservice: BackgroundService,
public ThemeService: ThemeService, public ThemeService: ThemeService,
private storage:Storage private storage:Storage,
public p: PermissionService
) { ) {
this.dateAdapter.setLocale('es'); this.dateAdapter.setLocale('es');
@@ -204,6 +208,8 @@ export class AgendaPage implements OnInit {
this.CalendarStore.ResetList([]) this.CalendarStore.ResetList([])
this.listToPresent = []
}) })
if (this.loggeduser.Profile == 'MDGPR') { if (this.loggeduser.Profile == 'MDGPR') {
@@ -251,8 +257,6 @@ export class AgendaPage implements OnInit {
ngOnInit() { ngOnInit() {
//this.getFromDB();
setTimeout(() => { setTimeout(() => {
const pathname = window.location.pathname const pathname = window.location.pathname
let realoadCounter = 0 let realoadCounter = 0
@@ -348,7 +352,7 @@ export class AgendaPage implements OnInit {
// calendar change date // calendar change date
this.eventSelectedDate = new Date(ev); this.eventSelectedDate = new Date(ev);
this.updateEventListBox() this.updateEventListBox();
}; };
@@ -1478,7 +1482,7 @@ export class AgendaPage implements OnInit {
// THIS LINE // THIS LINE
this.updateEventListBox() this.updateEventListBox();
} }
@@ -117,9 +117,9 @@
<div class="ion-input-class flex-grow-1 justify-center align-center material-inputs materia-top" [class.input-error]="Form?.get('Date')?.invalid && validateFrom "> <div class="ion-input-class flex-grow-1 justify-center align-center material-inputs materia-top" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<mat-form-field class="date-hour-picker"> <mat-form-field appearance="none" class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="picker1" <input matInput [ngxMatDatetimePicker]="picker1"
placeholder="Choose a date" placeholder="Data Inicio*"
[(ngModel)]="postEvent.StartDate" [(ngModel)]="postEvent.StartDate"
[disabled]="disabled" [disabled]="disabled"
[min]="currentDate" [min]="currentDate"
@@ -149,9 +149,9 @@
--> -->
<div (click)="openFim()" class="ion-input-class flex-grow-1 justify-center align-center materia-top" [class.input-error]="Form?.get('Date')?.invalid && validateFrom "> <div (click)="openFim()" class="ion-input-class flex-grow-1 justify-center align-center materia-top" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<mat-form-field class="date-hour-picker"> <mat-form-field appearance="none" class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="fim" <input matInput [ngxMatDatetimePicker]="fim"
placeholder="Choose a date" placeholder="Data de fim*"
[(ngModel)]="postEvent.EndDate" [(ngModel)]="postEvent.EndDate"
[disabled]="disabled" [disabled]="disabled"
[min]="currentDate" [min]="currentDate"
@@ -104,21 +104,6 @@ export class NewEventPage implements OnInit {
this.selectedDate = this.navParams.get('eventSelectedDate'); this.selectedDate = this.navParams.get('eventSelectedDate');
this.taskParticipants = this.navParams.get('attendees'); this.taskParticipants = this.navParams.get('attendees');
let now = new Date();
if(now.getMinutes() <= 30){
this.autoStartTime = new Date(now.setMinutes(30));
this.postEvent.StartDate = this.autoStartTime;
this.autoEndTime = new Date(this.autoStartTime.getTime() + 30 * 60000);
this.postEvent.EndDate = this.autoEndTime;
}
else{
this.autoStartTime = new Date(now.setHours(now.getHours()+1));
this.autoStartTime = new Date(this.autoStartTime.setMinutes(0));
this.postEvent.StartDate = this.autoStartTime;
this.autoEndTime = new Date(this.autoStartTime.getTime() + 30 * 60000);
this.postEvent.EndDate = this.autoEndTime;
}
} }
ngOnInit() { ngOnInit() {
@@ -40,12 +40,13 @@
<div class="content-location"> <div class="content-location">
<span class="date">{{loadedEvent.Location}}</span> <span class="date">{{loadedEvent.Location}}</span>
<div *ngIf="loadedEvent.Organizer"> <div *ngIf="loadedEvent.Organizer">
<div *ngIf="eventsService.isMyEvent(loadedEvent) == false">
<div *ngIf="eventsService.isMyEvent(loadedEvent) == false || sesseionStora.user.Profile =='PR'">
<span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #99e47b;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #99e47b;">{{loadedEvent.CalendarName}}</span>
<span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #958bfc;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #958bfc;">{{loadedEvent.CalendarName}}</span>
</div> </div>
<div *ngIf="eventsService.isMyEvent(loadedEvent) == true"> <div *ngIf="eventsService.isMyEvent(loadedEvent) == true && sesseionStora.user.Profile !='PR'">
<span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #ffb703;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #ffb703;">{{loadedEvent.CalendarName}}</span>
<span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #f05d5e;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #f05d5e;">{{loadedEvent.CalendarName}}</span>
</div> </div>
@@ -71,9 +71,10 @@ export class ViewEventPage implements OnInit {
public ThemeService: ThemeService, public ThemeService: ThemeService,
private RouteService: RouteService, private RouteService: RouteService,
private ionicStorage: Storage, private ionicStorage: Storage,
private CalendarService: CalendarService private CalendarService: CalendarService,
) { ) {
this.isEventEdited = false; this.isEventEdited = false;
this.loadedEvent = new Event(); this.loadedEvent = new Event();
this.eventBody = { BodyType: "1", Text: "" }; this.eventBody = { BodyType: "1", Text: "" };
-8
View File
@@ -7,16 +7,8 @@ import { IonicModule } from '@ionic/angular';
import { ChatPageRoutingModule } from './chat-routing.module'; import { ChatPageRoutingModule } from './chat-routing.module';
import { ChatPage } from './chat.page'; import { ChatPage } from './chat.page';
import { SharedModule } from 'src/app/shared/shared.module';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { GroupMessagesPage } from 'src/app/shared/chat/group-messages/group-messages.page';
import { MessagesPage } from 'src/app/shared/chat/messages/messages.page';
import { EmptyChatPage } from 'src/app/shared/chat/empty-chat/empty-chat.page';
import { ContactsPage } from 'src/app/shared/chat/messages/contacts/contacts.page';
import { NewGroupPage } from 'src/app/shared/chat/new-group/new-group.page';
import { GroupContactsPage } from 'src/app/shared/chat/group-messages/group-contacts/group-contacts.page';
import { PipesModule } from 'src/app/pipes/pipes.module'; import { PipesModule } from 'src/app/pipes/pipes.module';
import { EditGroupPage } from 'src/app/shared/chat/edit-group/edit-group.page';
import { ContactsPageModule } from 'src/app/shared/chat/messages/contacts/contacts.module'; import { ContactsPageModule } from 'src/app/shared/chat/messages/contacts/contacts.module';
import { GroupMessagesPageModule } from 'src/app/shared/chat/group-messages/group-messages.module'; import { GroupMessagesPageModule } from 'src/app/shared/chat/group-messages/group-messages.module';
+14 -10
View File
@@ -27,7 +27,8 @@
</button> </button>
</div> </div>
</div> </div>
<ion-toolbar>
<ion-toolbar [class.block-button]="showNewEvent || showNewGroup || showContacts">
<ion-segment [(ngModel)]="segment" (ionChange)="onSegmentChange()"> <ion-segment [(ngModel)]="segment" (ionChange)="onSegmentChange()">
<ion-segment-button value="Contactos"> <ion-segment-button value="Contactos">
Conversas Conversas
@@ -37,6 +38,7 @@
</ion-segment-button> </ion-segment-button>
</ion-segment> </ion-segment>
</ion-toolbar> </ion-toolbar>
<div class=" aside overflow-y-auto d-flex flex-wrap flex-grow-1"> <div class=" aside overflow-y-auto d-flex flex-wrap flex-grow-1">
<div class="width-100" [ngSwitch]="segment"> <div class="width-100" [ngSwitch]="segment">
<ion-list *ngSwitchCase="'Contactos'"> <ion-list *ngSwitchCase="'Contactos'">
@@ -57,7 +59,7 @@
<ion-label > <ion-label >
<span > <span >
<div > <div >
<div > <div [class.bold-message]="room.messageUnread == true">
{{room.name}} {{room.name}}
</div> </div>
</div> </div>
@@ -94,7 +96,7 @@
</div> </div>
</div> </div>
</ion-item-sliding> </ion-item-sliding>
<ion-item-sliding *ngIf="wsChatMethodsService.loadingWholeList == true"> <ion-item-sliding *ngIf="wsChatMethodsService.loadingWholeList == true && wsChatMethodsService._dm.length == 0">
<div *ngFor="let n of numSequence(8); let i = index;" class="item item-hover width-100 d-flex ion-no-padding ion-no-margin"> <div *ngFor="let n of numSequence(8); let i = index;" class="item item-hover width-100 d-flex ion-no-padding ion-no-margin">
<div class="item-icon"><ion-icon class="icon" slot="start" src="assets/icon/icons-chat-grey.svg"></ion-icon></div> <div class="item-icon"><ion-icon class="icon" slot="start" src="assets/icon/icons-chat-grey.svg"></ion-icon></div>
<div class="item-content flex-grow-1 cursor-pointer"> <div class="item-content flex-grow-1 cursor-pointer">
@@ -125,7 +127,7 @@
<div (click)="openGroupMessagesPage(group.id)" class="item-content flex-grow-1 cursor-pointer"> <div (click)="openGroupMessagesPage(group.id)" class="item-content flex-grow-1 cursor-pointer">
<div class="item-title-time"> <div class="item-title-time">
<div class="item-title" [class.item-title-active]="group.id ==idSelected"> <div class="item-title" [class.item-title-active]="group.id ==idSelected">
<ion-label>{{group.name.split('-').join(' ')}}</ion-label> <ion-label [class.bold-message]="group.messageUnread == true">{{group.name.split('-').join(' ')}}</ion-label>
</div> </div>
<div class="item-date" [class.item-date-active]="group.id ==idSelected" *ngIf="group.lastMessage && !group.customFields.countDownDate">{{group.duration}}</div> <div class="item-date" [class.item-date-active]="group.id ==idSelected" *ngIf="group.lastMessage && !group.customFields.countDownDate">{{group.duration}}</div>
<div class="item-date" [class.item-date-active]="group.id ==idSelected" *ngIf="group.customFields.countDownDate">{{group.countDownTime}}</div> <div class="item-date" [class.item-date-active]="group.id ==idSelected" *ngIf="group.customFields.countDownDate">{{group.countDownTime}}</div>
@@ -133,12 +135,13 @@
<div *ngIf="group.lastMessage" class="item-description d-flex align-items-center" [class.item-description-active]="group.id ==idSelected"> <div *ngIf="group.lastMessage" class="item-description d-flex align-items-center" [class.item-description-active]="group.id ==idSelected">
<div class="item-message" *ngIf="group.otherUserType == false">{{group.lastMessage.u.name}}: {{group.lastMessage.msg}} </div> <div class="item-message" *ngIf="group.otherUserType == false">{{group.lastMessage.u.name}}: {{group.lastMessage.msg}} </div>
<div *ngIf="group.otherUserType == true">{{group.userThatIsTyping}} está escrever ...</div> <div *ngIf="group.otherUserType == true">{{group.userThatIsTyping}} está escrever ...</div>
<div class="item-files add-ellipsis" *ngIf="group.lastMessage.file"> <div class="item-files add-ellipsis" *ngIf="group.lastMessage.file">
<fa-icon *ngIf="group.lastMessage.file.type != 'application/meeting' && group.lastMessage.file.type != 'application/audio'" icon="file-alt" class="file-icon" [class.set-active-item-font-to-white]="group.id == idSelected"></fa-icon> <fa-icon *ngIf="group.lastMessage.file.type != 'application/meeting' && group.lastMessage.file.type != 'application/audio'" icon="file-alt" class="file-icon" [class.set-active-item-font-to-white]="group.id == idSelected"></fa-icon>
<fa-icon *ngIf="group.lastMessage.file.type == 'application/audio'" icon="file-audio" class="file-icon" [class.set-active-item-font-to-white]="group.id == idSelected"></fa-icon> <fa-icon *ngIf="group.lastMessage.file.type == 'application/audio'" icon="file-audio" class="file-icon" [class.set-active-item-font-to-white]="group.id == idSelected"></fa-icon>
<span *ngIf="group.lastMessage.file.type == 'application/audio'" class="item-files-title"> audio </span> <span *ngIf="group.lastMessage.file.type == 'application/audio'" class="item-files-title"> audio </span>
<fa-icon *ngIf="group.lastMessage.file.type == 'application/meeting'" icon="calendar-alt" class="file-icon" [class.set-active-item-font-to-white]="group.id == idSelected"></fa-icon> <fa-icon *ngIf="group.lastMessage.file.type == 'application/meeting'" icon="calendar-alt" class="file-icon" [class.set-active-item-font-to-white]="group.id == idSelected"></fa-icon>
<span *ngIf="group.lastMessage.file.type != 'application/audio'" class="item-files-title"> {{ group.lastMessage.attachments[0].title }}</span> <span *ngIf="group.lastMessage.file.type != 'application/audio' && group.lastMessage.attachments" class="item-files-title"> {{ group.lastMessage.attachments[0].title }}</span>
</div> </div>
<div class="item-files" *ngIf="group.attachments"> <div class="item-files" *ngIf="group.attachments">
<div *ngIf="group.value.lastMessage.attachments[0].image_url"> <div *ngIf="group.value.lastMessage.attachments[0].image_url">
@@ -150,7 +153,7 @@
</div> </div>
</div> </div>
</ion-item-sliding> </ion-item-sliding>
<ion-item-sliding *ngIf="wsChatMethodsService.loadingWholeList == true"> <ion-item-sliding *ngIf="wsChatMethodsService.loadingWholeList == true && wsChatMethodsService._group.length == 0">
<div *ngFor="let n of numSequence(8); let i = index;" class="item item-hover width-100 d-flex ion-no-padding ion-no-margin"> <div *ngFor="let n of numSequence(8); let i = index;" class="item item-hover width-100 d-flex ion-no-padding ion-no-margin">
<div class="item-icon"><ion-icon class="icon" slot="start" src="assets/icon/icons-group-chat-grey.svg"></ion-icon></div> <div class="item-icon"><ion-icon class="icon" slot="start" src="assets/icon/icons-group-chat-grey.svg"></ion-icon></div>
<div class="item-content flex-grow-1 cursor-pointer"> <div class="item-content flex-grow-1 cursor-pointer">
@@ -196,6 +199,7 @@
<app-contacts <app-contacts
(openMessage)="openMessagesPage($event)" (openMessage)="openMessagesPage($event)"
(emptyTextDescriptionOpen)="emptyTextDescriptionOpen()"
*ngIf="showContacts" *ngIf="showContacts"
[style.display]="showContacts ? 'flex' : 'none'" [style.display]="showContacts ? 'flex' : 'none'"
class=" height-100 flex-column"> class=" height-100 flex-column">
@@ -203,6 +207,7 @@
<app-new-group <app-new-group
(addGroupMessage)="openGroupContactsPage($event)" (addGroupMessage)="openGroupContactsPage($event)"
(closeAllDesktopComponents)="closeAllDesktopComponents()"
[style.display]="showNewGroup ? 'flex' : 'none'" [style.display]="showNewGroup ? 'flex' : 'none'"
class=" height-100 flex-column"> class=" height-100 flex-column">
</app-new-group> </app-new-group>
@@ -238,6 +243,7 @@
</app-group-messages> </app-group-messages>
<app-new-event <app-new-event
*ngIf="showNewEvent"
[profile]="" [profile]=""
[roomId]="groupRoomId" [roomId]="groupRoomId"
[selectedSegment]=segment [selectedSegment]=segment
@@ -245,13 +251,11 @@
[taskParticipantsCc]="taskParticipantsCc" [taskParticipantsCc]="taskParticipantsCc"
[selectedDate]="eventSelectedDate" [selectedDate]="eventSelectedDate"
[eventAttendees]="contacts" [eventAttendees]="contacts"
(onAddEvent)="closeNewEventComponent()" (onAddEvent)="closeNewEventComponentAndOpenChat($event)"
(openAttendeesComponent)="openAttendeesComponent($event)" (openAttendeesComponent)="closeNewEventComponentAndOpenChat($event)"
(cloneAllmobileComponent)="closeNewEventComponent()"
[style.display]="showNewEvent ? 'flex' : 'none'" [style.display]="showNewEvent ? 'flex' : 'none'"
class=" height-100 flex-column"> class=" height-100 flex-column">
</app-new-event> </app-new-event>
<app-attendee-modal <app-attendee-modal
[adding]="adding" [adding]="adding"
[taskParticipants]="taskParticipants" [taskParticipants]="taskParticipants"
+10
View File
@@ -178,3 +178,13 @@ ion-content{
color: #fff !important; color: #fff !important;
background-color: #42b9fe !important; background-color: #42b9fe !important;
} }
.bold-message {
font-weight: bold;
}
.block-button {
pointer-events: none;
opacity: 0.2;
}
+50 -9
View File
@@ -125,6 +125,8 @@ export class ChatPage implements OnInit {
this.showLoader = true; this.showLoader = true;
this.segment = 'Contactos'
} }
ngOnInit() { ngOnInit() {
@@ -227,6 +229,9 @@ export class ChatPage implements OnInit {
} }
} }
openMessagesPage(rid) { openMessagesPage(rid) {
this.roomId = rid;
if (window.innerWidth < 701) { if (window.innerWidth < 701) {
this.openMessagesModal(rid); this.openMessagesModal(rid);
} }
@@ -234,7 +239,6 @@ export class ChatPage implements OnInit {
this.idSelected = rid; this.idSelected = rid;
this.closeAllDesktopComponents(); this.closeAllDesktopComponents();
this.showEmptyComponent = false; this.showEmptyComponent = false;
this.roomId = rid;
this.showMessages = true; this.showMessages = true;
} }
} }
@@ -273,6 +277,8 @@ export class ChatPage implements OnInit {
} }
openGroupMessagesPage(rid) { openGroupMessagesPage(rid) {
this.roomId = rid;
if (window.innerWidth < 701) { if (window.innerWidth < 701) {
this.openGroupMessagesModal(rid); this.openGroupMessagesModal(rid);
} }
@@ -280,7 +286,7 @@ export class ChatPage implements OnInit {
this.idSelected = rid; this.idSelected = rid;
this.closeAllDesktopComponents(); this.closeAllDesktopComponents();
this.showEmptyComponent = false; this.showEmptyComponent = false;
this.roomId = rid;
this.showGroupMessages = true; this.showGroupMessages = true;
} }
@@ -320,7 +326,6 @@ export class ChatPage implements OnInit {
async setIntervenient(data) { async setIntervenient(data) {
this.taskParticipants = removeDuplicate(data) this.taskParticipants = removeDuplicate(data)
} }
async setIntervenientCC(data) { async setIntervenientCC(data) {
@@ -338,13 +343,33 @@ export class ChatPage implements OnInit {
this.idSelected = ""; this.idSelected = "";
} }
async closeNewEventComponentAndOpenChat({roomId}) {
this.closeAllDesktopComponents();
console.log(roomId)
this.wsChatMethodsService._group.forEach((room)=>{
if(room.id == roomId) {
this.openGroupMessagesPage(roomId)
}
})
this.wsChatMethodsService._dm.forEach((room)=>{
if(room.id == roomId) {
this.openMessagesPage(roomId)
}
})
}
onSegmentChange() { onSegmentChange() {
//this.load(); this.wsChatMethodsService.getAllRooms();
} }
doRefresh(event) { doRefresh(event) {
setTimeout(() => { setTimeout(() => {
//this.load();
event.target.complete(); event.target.complete();
}, 1000); }, 1000);
} }
@@ -357,7 +382,6 @@ export class ChatPage implements OnInit {
}); });
} }
getDirectMessagesDB() { getDirectMessagesDB() {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
this.storageservice.get("rooms").then((rooms) =>{ this.storageservice.get("rooms").then((rooms) =>{
@@ -560,6 +584,11 @@ export class ChatPage implements OnInit {
} }
roomDataFileType(roomData) {
return roomData?.lastMessage?.file?.type || null
}
async transformGroups(data) { async transformGroups(data) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
let groupsArray = []; let groupsArray = [];
@@ -600,6 +629,12 @@ export class ChatPage implements OnInit {
} }
async emptyTextDescriptionOpen() {
this.closeAllDesktopComponents()
this.showEmptyComponent = true
}
async getGroups(event?) { async getGroups(event?) {
this.result = this.chatService.getAllPrivateGroups().subscribe(async (res: any) => { this.result = this.chatService.getAllPrivateGroups().subscribe(async (res: any) => {
// //
@@ -644,7 +679,15 @@ export class ChatPage implements OnInit {
cssClass: 'modal modal-desktop', cssClass: 'modal modal-desktop',
}); });
await modal.present(); await modal.present();
modal.onDidDismiss(); modal.onDidDismiss().then((Data) => {
// console.log(Data,'daatatatat');
// let data = Data.data
// let roomId = data.roomId
// this.openMessagesPage(roomId);
});
} }
async newGroup() { async newGroup() {
@@ -689,8 +732,6 @@ export class ChatPage implements OnInit {
async openGroupMessagesModal(roomId: any) { async openGroupMessagesModal(roomId: any) {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: GroupMessagesPage, component: GroupMessagesPage,
cssClass: 'modal modal-desktop isGroupChatOpened', cssClass: 'modal modal-desktop isGroupChatOpened',
@@ -13,8 +13,6 @@ import { ChatPopoverPageModule } from 'src/app/shared/popover/chat-popover/chat-
import { BtnModalDismissPageModule } from 'src/app/shared/btn-modal-dismiss/btn-modal-dismiss.module'; import { BtnModalDismissPageModule } from 'src/app/shared/btn-modal-dismiss/btn-modal-dismiss.module';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { ImageCropperModule } from 'ngx-image-cropper';
import { AngularCropperjsModule } from 'angular-cropperjs';
import { LettersAvatarModule } from "ngx-letters-avatar"; import { LettersAvatarModule } from "ngx-letters-avatar";
import { PipesModule } from 'src/app/pipes/pipes.module'; import { PipesModule } from 'src/app/pipes/pipes.module';
@@ -90,8 +90,12 @@
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="image" class="file-icon"></ion-icon> <ion-icon name="image" class="file-icon"></ion-icon>
<ion-label>{{"Imagem"}}</ion-label> <ion-label>{{"Imagem"}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0 " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0" class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == true " class="icon-download" src="assets/gif/theme/default/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == true" class="icon-download" src="assets/gif/theme/gov/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="msg.downloadAttachments == false && msg.downloadAttachmentsTemp >= 1 && msg.downloadLoader == false" src="assets/images/retry-svgrepo-com.svg" class="icon-download font-12"> </ion-icon>
</ion-item> </ion-item>
</div> </div>
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image" > <img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image" >
@@ -108,10 +112,11 @@
<div (click)="openPreview(msg)" class="file-details add-ellipsis cursor-pointer" *ngIf="msg.file"> <div (click)="openPreview(msg)" class="file-details add-ellipsis cursor-pointer" *ngIf="msg.file">
<div *ngIf="!msg.attachments[0].image_url"> <div *ngIf="!msg.attachments[0].image_url">
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="document" class="file-icon"></ion-icon> <ion-icon *ngIf="msg.attachments[0].type != 'webtrix'" name="document" class="file-icon"></ion-icon>
<ion-icon *ngIf="msg.attachments[0].type == 'webtrix'" src="assets/icon/webtrix.svg" class="file-icon"></ion-icon>
<ion-label>{{file.title}}</ion-label> <ion-label>{{file.title}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="msg.attachments[0].image_url"> <div *ngIf="msg.attachments[0].image_url">
@@ -130,8 +135,12 @@
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="mic-outline" class="file-icon"></ion-icon> <ion-icon name="mic-outline" class="file-icon"></ion-icon>
<ion-label>{{"Mensagem de voz"}}</ion-label> <ion-label>{{"Mensagem de voz"}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0 " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0" class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == true " class="icon-download" src="assets/gif/theme/default/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == true" class="icon-download" src="assets/gif/theme/gov/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="msg.downloadAttachments == false && msg.downloadAttachmentsTemp >= 1 && msg.downloadLoader == false" src="assets/images/retry-svgrepo-com.svg" class="icon-download font-12"> </ion-icon>
</ion-item> </ion-item>
</div> </div>
<div class="audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link"> <div class="audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link">
@@ -159,7 +168,7 @@
</div> </div>
<div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting"> <div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting">
<ion-label class="info-meeting-small">{{msg.u.name ?? ""}} criou esta reunião</ion-label><br /> <ion-label class="info-meeting-small">{{msg.u.name ?? ""}} criou esta reunião</ion-label><br />
<button (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br /> <button (click)="goToEvent(msg.file)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br />
<ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br /> <ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br />
<ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br /> <ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br />
</div> </div>
@@ -196,15 +205,6 @@
</div> </div>
{{last ? scrollToBottom() : ''}} {{last ? scrollToBottom() : ''}}
</div> </div>
<!-- <div *ngIf="msg.file">
<div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting">
<ion-label class="info-meeting-small">{{msg.u.name ?? ""}} criou esta reunião</ion-label><br />
<button (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br />
<ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br />
<ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br />
</div>
{{last ? scrollToBottom() : ''}}
</div> -->
</div> </div>
</div> </div>
<ion-fab horizontal="end" vertical="bottom" slot="fixed"> <ion-fab horizontal="end" vertical="bottom" slot="fixed">
@@ -150,7 +150,6 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
}) })
//this.loadFiles();
} }
setStatus(status: string) { setStatus(status: string) {
@@ -171,8 +170,11 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
ngAfterViewInit() { ngAfterViewInit() {
this.scrollChangeCallback = () => this.onContentScrolled(event); this.scrollChangeCallback = () => this.onContentScrolled(event);
window.addEventListener('scroll', this.scrollChangeCallback, true); window.addEventListener('scroll', this.scrollChangeCallback, true);
if(this.room?.customFields?.countDownDate) {
this.roomCountDownDate = this.timeService.countDownDate(this.room.customFields.countDownDate, this.room._id); this.roomCountDownDate = this.timeService.countDownDate(this.room.customFields.countDownDate, this.room._id);
} }
}
handlePress(id?: string) { handlePress(id?: string) {
this.selectedMsgId = id; this.selectedMsgId = id;
@@ -326,7 +328,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
this.loadFiles(); this.loadFiles();
} }
async goToEvent(eventId: any) { async goToEvent(event: any) {
let classs; let classs;
if (window.innerWidth < 701) { if (window.innerWidth < 701) {
classs = 'modal modal-desktop' classs = 'modal modal-desktop'
@@ -337,7 +339,8 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: ViewEventPage, component: ViewEventPage,
componentProps: { componentProps: {
eventId: eventId, eventId: event.id,
CalendarId: event.calendarId
}, },
cssClass: classs, cssClass: classs,
}); });
@@ -1055,7 +1058,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
return blob; return blob;
} }
openFile(pdfString, filename) { openFile(pdfString, filename, type) {
const blob = this.b64toBlob(pdfString, 'application/pdf') const blob = this.b64toBlob(pdfString, 'application/pdf')
let pathFile = '' let pathFile = ''
const fileName = filename const fileName = filename
@@ -1093,7 +1096,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
async openPreview(msg: MessageService) { async openPreview(msg: MessageService) {
if(msg.file.type === "application/webtrix") { if(msg?.file?.type === "application/webtrix") {
this.viewDocument(msg.file, msg.attachments.image_url) this.viewDocument(msg.file, msg.attachments.image_url)
} else { } else {
if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') { if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') {
@@ -1106,8 +1109,8 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
console.log(msg) if (msg?.file?.type == "application/img") {
if (msg.file.type == "application/img") {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: ViewMediaPage, component: ViewMediaPage,
cssClass: 'modal modal-desktop', cssClass: 'modal modal-desktop',
@@ -1121,10 +1124,25 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
modal.present(); modal.present();
} else { } else {
this.downloadFileFromBrowser("file", str) this.downloadFileFromBrowser("file", str)
this.downloadFileFromBrowser(msg.attachments[0].name, str)
} }
} else { } else {
this.openFile(str, msg.attachments[0].name); if (msg.file.type == "application/img") {
const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: msg.attachments[0].image_url,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present();
} else {
this.openFile(str, msg.attachments[0].name, msg.file.type);
}
} }
} }
} }
@@ -89,26 +89,24 @@ export class ContactsPage implements OnInit {
} }
close() { close() {
this.modalController.dismiss(); this.modalController.dismiss({});
} }
clicked(){ clicked() {}
}
createRoom(username:string){ createRoom(username:string){
let body = { let body = {
username: username, username: username,
} }
this.chatService.createRoom(body).subscribe(res => { this.chatService.createRoom(body).subscribe(async(res) => {
this.room = res['room']; this.room = res['room'];
await this.WsChatMethodsService.getAllRooms();
this.getDirectMessage(this.room._id); this.getDirectMessage(this.room._id);
this.WsChatMethodsService.getAllRooms()
}); });
} }
getDirectMessage(roomId:any) { getDirectMessage(roomId:any) {
@@ -121,6 +119,7 @@ export class ContactsPage implements OnInit {
this.openModal(this.dm._id); this.openModal(this.dm._id);
}); });
} }
async openModal(roomId:any){ async openModal(roomId:any){
this.close(); this.close();
@@ -137,26 +136,10 @@ export class ContactsPage implements OnInit {
} }
async openMessages(username:string){ async openMessages(username:string){
/* this.close(); */
let dm:any; let dm:any;
//Create new room
this.createRoom(username); this.createRoom(username);
//Get direct messages (dm)
/* this.getDirectMessage(this.room._id); */
/* const modal = await this.modalController.create({
component: MessagesPage,
cssClass: 'group-messages',
backdropDismiss: false,
componentProps: {
dm: dm,
},
});
await modal.present();
modal.onDidDismiss(); */
} }
} }
+18 -11
View File
@@ -54,7 +54,6 @@
<span class="time">{{msg.duration}}</span> <span class="time">{{msg.duration}}</span>
</div> </div>
<div> <div>
<!-- <div class="message-attachments"> -->
<div class="file"> <div class="file">
<ion-label *ngIf="msg.delate == false">{{msg.msg}}</ion-label> <ion-label *ngIf="msg.delate == false">{{msg.msg}}</ion-label>
<ion-label *ngIf="msg.delate == true">{{msg.msg}}</ion-label> <ion-label *ngIf="msg.delate == true">{{msg.msg}}</ion-label>
@@ -67,7 +66,6 @@
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon> <ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
</ion-label> </ion-label>
</div> </div>
<!-- </div> -->
{{last ? scrollToBottom() : ''}} {{last ? scrollToBottom() : ''}}
</div> </div>
</div> </div>
@@ -87,8 +85,12 @@
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="image" class="file-icon"></ion-icon> <ion-icon name="image" class="file-icon"></ion-icon>
<ion-label>{{"Imagem"}}</ion-label> <ion-label>{{"Imagem"}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0 " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0" class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == true " class="icon-download" src="assets/gif/theme/default/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == true" class="icon-download" src="assets/gif/theme/gov/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="msg.downloadAttachments == false && msg.downloadAttachmentsTemp >= 1 && msg.downloadLoader == false" src="assets/images/retry-svgrepo-com.svg" class="icon-download font-12"> </ion-icon>
</ion-item> </ion-item>
</div> </div>
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image"> <img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image">
@@ -107,10 +109,11 @@
<div *ngIf="!msg.attachments[0].image_url"> <div *ngIf="!msg.attachments[0].image_url">
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="document" class="file-icon"></ion-icon> <ion-icon *ngIf="msg.attachments[0].type != 'webtrix'" name="document" class="file-icon"></ion-icon>
<ion-icon *ngIf="msg.attachments[0].type == 'webtrix'" src="assets/icon/webtrix.svg" class="file-icon"></ion-icon>
<ion-label>{{file.title}}</ion-label> <ion-label>{{file.title}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
</ion-item> </ion-item>
</div> </div>
@@ -135,8 +138,12 @@
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="mic-outline" class="file-icon"></ion-icon> <ion-icon name="mic-outline" class="file-icon"></ion-icon>
<ion-label>{{"Mensagem de voz"}}</ion-label> <ion-label>{{"Mensagem de voz"}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0 " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0" class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == true " class="icon-download" src="assets/gif/theme/default/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == true" class="icon-download" src="assets/gif/theme/gov/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="msg.downloadAttachments == false && msg.downloadAttachmentsTemp >= 1 && msg.downloadLoader == false" src="assets/images/retry-svgrepo-com.svg" class="icon-download font-12"> </ion-icon>
</ion-item> </ion-item>
</div> </div>
<div class="file audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link"> <div class="file audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link">
@@ -167,7 +174,7 @@
</div> </div>
<div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting"> <div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting">
<ion-label class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br /> <ion-label class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br />
<button (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"> <button (click)="goToEvent(msg.file)" class="btn-no-color info-meeting-normal">
<ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label> <ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label>
</button><br /> </button><br />
<ion-label class="info-meeting-medium"> <ion-label class="info-meeting-medium">
@@ -185,7 +192,7 @@
<div *ngIf="msg.file && msg.delate == false"> <div *ngIf="msg.file && msg.delate == false">
<div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting"> <div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting">
<ion-label class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br /> <ion-label class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br />
<button (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"> <button (click)="goToEvent(msg.file)" class="btn-no-color info-meeting-normal">
<ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label> <ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label>
</button><br /> </button><br />
<ion-label class="info-meeting-medium"> <ion-label class="info-meeting-medium">
+56 -26
View File
@@ -38,7 +38,9 @@ import { DomSanitizer } from '@angular/platform-browser';
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http'; import { HttpErrorResponse } from '@angular/common/http';
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page'; import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { Filesystem, Directory } from '@capacitor/filesystem';
const IMAGE_DIR = 'stored-images'; const IMAGE_DIR = 'stored-images';
@@ -123,7 +125,6 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
private sqlservice: SqliteService, private sqlservice: SqliteService,
public wsChatMethodsService: WsChatMethodsService, public wsChatMethodsService: WsChatMethodsService,
private AttachmentsService: AttachmentsService, private AttachmentsService: AttachmentsService,
private CameraService: CameraService, private CameraService: CameraService,
private processesService: ProcessesService, private processesService: ProcessesService,
private storage: Storage, private storage: Storage,
@@ -133,6 +134,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
private sanitiser: DomSanitizer, private sanitiser: DomSanitizer,
private alertController: AlertController, private alertController: AlertController,
// private document: DocumentViewer // private document: DocumentViewer
private file: File,
private fileOpener: FileOpener,
) { ) {
this.loggedUser = authService.ValidatedUserChat['data']; this.loggedUser = authService.ValidatedUserChat['data'];
this.roomId = this.navParams.get('roomId'); this.roomId = this.navParams.get('roomId');
@@ -145,7 +148,6 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
} }
this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory({}) this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory({})
this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked
this.wsChatMethodsService.openRoom(this.roomId) this.wsChatMethodsService.openRoom(this.roomId)
@@ -158,6 +160,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
} }
ngOnInit() { ngOnInit() {
this.createDirectoryImage()
this.wsChatMethodsService.getAllRooms(); this.wsChatMethodsService.getAllRooms();
this.chatService.refreshtoken(); this.chatService.refreshtoken();
this.wsChatMethodsService.getUserOfRoom(this.roomId).then((value) => { this.wsChatMethodsService.getUserOfRoom(this.roomId).then((value) => {
@@ -335,7 +338,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
} catch (err) { } } catch (err) { }
} }
async goToEvent(eventId: any) { async goToEvent(event: any) {
let classs; let classs;
if (window.innerWidth < 701) { if (window.innerWidth < 701) {
classs = 'modal modal-desktop' classs = 'modal modal-desktop'
@@ -345,7 +349,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: ViewEventPage, component: ViewEventPage,
componentProps: { componentProps: {
eventId: eventId, eventId: event.id,
CalendarId: event.calendarId
}, },
cssClass: classs, cssClass: classs,
}); });
@@ -946,27 +951,27 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
} }
openFile(pdfString, filename, type) { openFile(pdfString, filename, type) {
// const blob = this.b64toBlob(pdfString, type) const blob = this.b64toBlob(pdfString, type)
// let pathFile = '' let pathFile = ''
// const fileName = filename const fileName = filename
// const contentFile = blob const contentFile = blob
// if (this.platform.is('ios')) { if (this.platform.is('ios')) {
// pathFile = this.file.documentsDirectory pathFile = this.file.documentsDirectory
// } else { } else {
// pathFile = this.file.externalRootDirectory pathFile = this.file.externalRootDirectory
// } }
//
//
//
// this.file this.file
// .writeFile(pathFile, fileName, contentFile, { replace: true }) .writeFile(pathFile, fileName, contentFile, { replace: true })
// .then(success => { .then(success => {
// this.fileOpener this.fileOpener
// .open(pathFile + fileName, type) .open(pathFile + fileName, type)
// .then(() => .then(() => console.log())
// .catch(e => .catch(e => console.error(e))
// }) })
// .catch(e => .catch(e => console.error(e))
} }
downloadFileFromBrowser(fileName: string, data: any): void { downloadFileFromBrowser(fileName: string, data: any): void {
@@ -996,6 +1001,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
console.log(msg) console.log(msg)
if (msg.file.type == "application/img") { if (msg.file.type == "application/img") {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: ViewMediaPage, component: ViewMediaPage,
@@ -1009,12 +1015,29 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
}); });
modal.present(); modal.present();
} else { } else {
this.downloadFileFromBrowser("file", str) this.downloadFileFromBrowser("file", str)
this.downloadFileFromBrowser(msg.attachments[0].name, str)
} }
} else {
if (msg.file.type == "application/img") {
const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: msg.attachments[0].image_url,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present();
} else { } else {
this.openFile(str, msg.attachments[0].name, msg.file.type); this.openFile(str, msg.attachments[0].name, msg.file.type);
} }
}
} }
} }
@@ -1059,6 +1082,13 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
// }); // });
// } // }
async createDirectoryImage() {
await Filesystem.mkdir({
path: IMAGE_DIR,
directory: Directory.Data,
recursive: true
});
}
} }
+5 -11
View File
@@ -2,7 +2,8 @@
<app-header></app-header> <app-header></app-header>
</ion-header> </ion-header>
<ion-header class="ion-no-border init-event-header"> <!-- <ion-header class="ion-no-border init-event-header"> -->
<ion-header class="ion-no-border">
<ion-label> <ion-label>
<p class="time ion-text-center">{{customDate}}</p> <p class="time ion-text-center">{{customDate}}</p>
</ion-label> </ion-label>
@@ -17,7 +18,8 @@
</ion-header> </ion-header>
<ion-content class="main " ng-controller="AppController"> <!-- <ion-content class="main " ng-controller="AppController"> -->
<ion-content ng-controller="AppController">
<ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)"> <ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-refresher-content> <ion-refresher-content>
</ion-refresher-content> </ion-refresher-content>
@@ -82,15 +84,7 @@
</ion-item> </ion-item>
</ion-list> </ion-list>
<!--
<div class="resume">
<div class="title">
Resumo para Amnahã
</div>
<div class="event-num">4 eventos ageandados para amanhã</div>
<div class="first-event-time">08:30 "Reunião Staff" no Palácio Presidencial</div>
</div>
-->
</div> </div>
</div> </div>
+12 -49
View File
@@ -1,4 +1,4 @@
import { Component, OnInit, LOCALE_ID, EventEmitter, Output, Renderer2, ElementRef } from '@angular/core'; import { Component, OnInit, EventEmitter, Output } from '@angular/core';
import { Event } from '../../models/event.model'; import { Event } from '../../models/event.model';
import { EventsService } from 'src/app/services/events.service'; import { EventsService } from 'src/app/services/events.service';
@@ -25,13 +25,13 @@ import { Storage } from '@ionic/storage';
import { PermissionList } from 'src/app/models/permission/permissionList'; import { PermissionList } from 'src/app/models/permission/permissionList';
import { PermissionService } from 'src/app/services/permission.service'; import { PermissionService } from 'src/app/services/permission.service';
import { ViewEventPage } from 'src/app/modals/view-event/view-event.page'; import { ViewEventPage } from 'src/app/modals/view-event/view-event.page';
import { ChangeProfileService } from 'src/app/services/change-profile.service';
@Component({ @Component({
selector: 'app-events', selector: 'app-events',
templateUrl: './events.page.html', templateUrl: './events.page.html',
styleUrls: ['./events.page.scss'], styleUrls: ['./events.page.scss'],
}) })
export class EventsPage implements OnInit { export class EventsPage implements OnInit {
/* Get current system date */
today = new Date(); today = new Date();
months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]; months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
@@ -39,25 +39,16 @@ export class EventsPage implements OnInit {
customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]); customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]);
/* Setting appropriate greeting according to the time */
grettings = ["Bom dia", "Boa tarde", "Boa noite"]; grettings = ["Bom dia", "Boa tarde", "Boa noite"];
greetting = ''; greetting = '';
timeDate = this.today.getHours() + ":" + this.today.getMinutes(); timeDate = this.today.getHours() + ":" + this.today.getMinutes();
/* Set segment variable */
segment: string; segment: string;
public profile: string; public profile: string;
currentEvent: any; currentEvent: any;
eventsList: Event[];
maxSubjectLength = 30; maxSubjectLength = 30;
officialeventsList: Event[];
personaleventsList: Event[];
prEventList: Event[];
mdEventList: Event[];
combinedEvents: Event[];
customText = false; customText = false;
totalEvent = 0; totalEvent = 0;
@@ -65,7 +56,6 @@ export class EventsPage implements OnInit {
showLoader: boolean; showLoader: boolean;
taskslist: DailyWorkTask[] = [];
expedientList: any; expedientList: any;
hideSearchBtn: boolean = false; hideSearchBtn: boolean = false;
@@ -82,8 +72,6 @@ export class EventsPage implements OnInit {
loggeduser: LoginUserRespose; loggeduser: LoginUserRespose;
/* existingScreenOrientation: string; */
permissionList = new PermissionList(); permissionList = new PermissionList();
constructor( constructor(
@@ -94,7 +82,6 @@ export class EventsPage implements OnInit {
private alertController: AlertService, private alertController: AlertService,
private authService: AuthService, private authService: AuthService,
private processes: ProcessesService, private processes: ProcessesService,
/* private gabineteService: GabineteDigitalPage, */
private modalController: ModalController, private modalController: ModalController,
private screenOrientation: ScreenOrientation, private screenOrientation: ScreenOrientation,
public platform: Platform, public platform: Platform,
@@ -104,12 +91,11 @@ export class EventsPage implements OnInit {
public ThemeService: ThemeService, public ThemeService: ThemeService,
private storage: Storage, private storage: Storage,
public p: PermissionService, public p: PermissionService,
private changeProfileService: ChangeProfileService,
) { ) {
/* this.existingScreenOrientation = this.screenOrientation.type; */
this.loggeduser = authService.ValidatedUser; this.loggeduser = authService.ValidatedUser;
this.prEventList = null;
this.platform.resize.subscribe(async () => { this.platform.resize.subscribe(async () => {
// //
@@ -124,6 +110,13 @@ export class EventsPage implements OnInit {
} }
} }
this.changeProfileService.registerCallback(() => {
this.listToPresent = [];
this.listToPresentexpediente = []
})
} }
ngOnInit() { ngOnInit() {
@@ -150,10 +143,6 @@ export class EventsPage implements OnInit {
this.hideSearch(); this.hideSearch();
}); });
//this.getEventsFromLocalDb();
//this.checkScreenOrientation();
} }
hideSearch() { hideSearch() {
@@ -172,32 +161,6 @@ export class EventsPage implements OnInit {
this.RefreshEvents(); this.RefreshEvents();
} }
// Lock to portrait
/* lockToPortrait() {
this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.PORTRAIT);
} */
// Lock to landscape
/* lockToLandscape() {
this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.LANDSCAPE);
} */
// Unlock screen orientation
/* unlockScreenOrientation() {
this.screenOrientation.unlock();
} */
/* checkScreenOrientation() {
if (window.innerWidth < 701) {
this.lockToPortrait();
}
else {
this.unlockScreenOrientation();
}
} */
async RefreshEvents() { async RefreshEvents() {
this.currentEvent = ""; this.currentEvent = "";
@@ -493,7 +456,7 @@ export class EventsPage implements OnInit {
// //
this.addProcessToDb(result); this.addProcessToDb(result);
const ExpedienteTask = result.map(e => this.expedienteTaskPipe.transform(e)) let ExpedienteTask = result.map(e => this.expedienteTaskPipe.transform(e))
this.listToPresentexpediente = ExpedienteTask; this.listToPresentexpediente = ExpedienteTask;
@@ -43,7 +43,7 @@ export class DespachoPrPage implements OnInit {
serialNumber: string; serialNumber: string;
caller: string; caller: string;
profile: string; profile: string;
intervenientes: any; intervenientes: any =[]
cc: any = []; cc: any = [];
constructor( constructor(
@@ -45,7 +45,7 @@ export class DespachoPage implements OnInit {
serialnumber: string; serialnumber: string;
caller: string; caller: string;
profile: string; profile: string;
intervenientes: any; intervenientes: any = []
cc: any = []; cc: any = [];
constructor(private activateRoute: ActivatedRoute, constructor(private activateRoute: ActivatedRoute,
@@ -23,7 +23,7 @@ export class DiplomaAssinarPage implements OnInit {
profile: string; profile: string;
task: any task: any
fulltask: any fulltask: any
intervenientes: any; intervenientes: any = []
cc: any = []; cc: any = [];
attachments:any; attachments:any;
customDate: any; customDate: any;
@@ -28,7 +28,7 @@ export class DiplomasGerarPage implements OnInit {
profile: string; profile: string;
task: any task: any
fulltask: any fulltask: any
intervenientes: any; intervenientes: any = []
cc: any = []; cc: any = [];
attachments:any; attachments:any;
customDate: any; customDate: any;
@@ -184,11 +184,14 @@ export class DiplomasGerarPage implements OnInit {
async sendExpedienteToPending() { async sendExpedienteToPending() {
const loader = this.toastService.loading()
this.despachoService.sendExpedienteToPending(this.serialnumber).subscribe(res => { this.despachoService.sendExpedienteToPending(this.serialnumber).subscribe(res => {
this.goBack(); this.goBack();
this.toastService.successMessage() this.toastService.successMessage()
loader.remove()
}, },
error => { error => {
loader.remove()
this.toastService.badRequest("Processo não enviado para despacho") this.toastService.badRequest("Processo não enviado para despacho")
}); });
@@ -32,7 +32,7 @@ export class DiplomaPage implements OnInit {
profile: string; profile: string;
task: any task: any
fulltask: any fulltask: any
intervenientes: any; intervenientes: any = []
cc: any = []; cc: any = [];
attachments: any; attachments: any;
customDate: any customDate: any
@@ -16,10 +16,10 @@
<ion-toolbar> <ion-toolbar>
<ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)"> <ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)">
<ion-segment-button value="validar" *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks])"> <ion-segment-button value="validar" *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks])">
Por validar ... Por validar
</ion-segment-button> </ion-segment-button>
<ion-segment-button value="assinados"> <ion-segment-button value="assinados">
Assinados PR ... Assinados PR
</ion-segment-button> </ion-segment-button>
</ion-segment> </ion-segment>
</ion-toolbar> </ion-toolbar>
@@ -59,9 +59,14 @@
<ion-label> <ion-label>
<p>{{customDate}}</p> <p>{{customDate}}</p>
<p *ngIf="toDateString(loadedEvent.workflowInstanceDataFields.StartDate) == toDateString(loadedEvent.workflowInstanceDataFields.EndDate)">das {{loadedEvent.workflowInstanceDataFields.StartDate | date: 'HH:mm'}} às {{loadedEvent.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p> <p *ngIf="toDateString(loadedEvent.workflowInstanceDataFields.StartDate) == toDateString(loadedEvent.workflowInstanceDataFields.EndDate)">das {{loadedEvent.workflowInstanceDataFields.StartDate | date: 'HH:mm'}} às {{loadedEvent.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p>
<p *ngIf="toDateString(loadedEvent.workflowInstanceDataFields.StartDate) != toDateString(loadedEvent.workflowInstanceDataFields.EndDate)">{{loadedEvent.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ loadedEvent.workflowInstanceDataFields.StartDate | date: 'dd/M/yy'}} </p> <p *ngIf="toDateString(loadedEvent.workflowInstanceDataFields.StartDate) != toDateString(loadedEvent.workflowInstanceDataFields.EndDate)">{{loadedEvent.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ loadedEvent.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} </p>
<p *ngIf="!loadedEvent.workflowInstanceDataFields.IsRecurring">(Não se repete)</p> <p>
<p *ngIf="loadedEvent.workflowInstanceDataFields.IsRecurring">Repete</p> <span *ngIf="loadedEvent.workflowInstanceDataFields.OccurrenceType == 0">Diário</span>
<span *ngIf="loadedEvent.workflowInstanceDataFields.OccurrenceType == 1">Semanal</span>
<span *ngIf="loadedEvent.workflowInstanceDataFields.OccurrenceType == 2">Mensal</span>
<span *ngIf="loadedEvent.workflowInstanceDataFields.OccurrenceType == 3">Anual</span>
<span *ngIf="loadedEvent.workflowInstanceDataFields.OccurrenceType == -1">(Não se repete)</span>
</p>
</ion-label> </ion-label>
</div> </div>
</div> </div>
@@ -19,7 +19,7 @@
Calendário MDGPR Calendário MDGPR
</ion-segment-button> </ion-segment-button>
<ion-segment-button value="PR"> <ion-segment-button value="PR">
Presidente da República Calendário Partilhado
</ion-segment-button> </ion-segment-button>
</ion-segment> </ion-segment>
</ion-toolbar> </ion-toolbar>
@@ -53,7 +53,7 @@ export class ExpedienteDetailPage implements OnInit {
serialNumber: string; serialNumber: string;
caller: string; caller: string;
profile: string; profile: string;
intervenientes: any; intervenientes: any = []
cc: any = []; cc: any = [];
documents: SearchList[] = []; documents: SearchList[] = [];
attachments: any; attachments: any;
@@ -324,12 +324,15 @@ export class ExpedienteDetailPage implements OnInit {
} }
sendExpedienteToPending() { sendExpedienteToPending() {
const loader = this.toastService.loading()
this.processes.SetTaskToPending(this.serialNumber).subscribe(res => { this.processes.SetTaskToPending(this.serialNumber).subscribe(res => {
this.toastService._successMessage('Processo enviado para pendentes') this.toastService._successMessage('Processo enviado para pendentes')
this.goBack(); this.goBack();
loader.remove()
}, },
(error) => { (error) => {
loader.remove()
this.toastService._badRequest('Processo não enviado para pendentes') this.toastService._badRequest('Processo não enviado para pendentes')
}); });
} }
@@ -39,7 +39,7 @@ export class ExpedientePrPage implements OnInit {
serialnumber: string; serialnumber: string;
caller:string; caller:string;
profile: string; profile: string;
intervenientes: any; intervenientes: any = [];
cc: any = []; cc: any = [];
loggeduser: LoginUserRespose; loggeduser: LoginUserRespose;
@@ -133,12 +133,15 @@ export class ExpedientePrPage implements OnInit {
} }
sendExpedienteToPending() { sendExpedienteToPending() {
const loader = this.toastService.loading()
this.processes.SetTaskToPending(this.serialnumber).subscribe(res=>{ this.processes.SetTaskToPending(this.serialnumber).subscribe(res=>{
this.toastService._successMessage('Processo enviado para pendentes') this.toastService._successMessage('Processo enviado para pendentes')
this.goBack(); this.goBack();
loader.remove()
}, },
(error)=>{ (error)=>{
loader.remove()
this.toastService._badRequest('Processo não enviado para pendentes') this.toastService._badRequest('Processo não enviado para pendentes')
}); });
} }
@@ -217,7 +217,7 @@
<p class="text-center exp-card-content">{{pedidosstore.countdeferimento}} <span class="title1">Documentos</span></p> <p class="text-center exp-card-content">{{pedidosstore.countdeferimento}} <span class="title1">Documentos</span></p>
</div> </div>
<div *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks, p.permissionList.Gabinete.pr_tasks])" (click)="openDespachosPrPage(); selectedElement='showDespachosPr'" [class.active]="selectedElement == 'showDespachosPr'" class="box-hover exp-card-long width-100 d-flex flex-column justify-center"> <!-- <div *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks, p.permissionList.Gabinete.pr_tasks])" (click)="openDespachosPrPage(); selectedElement='showDespachosPr'" [class.active]="selectedElement == 'showDespachosPr'" class="box-hover exp-card-long width-100 d-flex flex-column justify-center">
<div class="center-div"> <div class="center-div">
<div class="exp-card-icon"> <div class="exp-card-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-despachos-presidente.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-despachos-presidente.svg"></ion-icon>
@@ -226,14 +226,14 @@
<ion-icon *ngIf="ThemeService.currentTheme == 'tribunal' && selectedElement != 'showDespachosPr'" src="assets/images/theme/gov/icons-despachos-presidente.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'tribunal' && selectedElement != 'showDespachosPr'" src="assets/images/theme/gov/icons-despachos-presidente.svg"></ion-icon>
</div> </div>
<div class="exp-card-text"> <div class="exp-card-text">
<p class="text-center exp-card-title " *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks])">Despacho do Presidente da República</p> <p class="text-center exp-card-title " *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks])">Despacho do Calendário Partilhado</p>
<p class="text-center exp-card-title " *ngIf="p.userPermission([p.permissionList.Gabinete.pr_tasks])">Despachos criados por mim</p> <p class="text-center exp-card-title " *ngIf="p.userPermission([p.permissionList.Gabinete.pr_tasks])">Despachos criados por mim</p>
<p class="text-center exp-card-content">{{ despachoprstore.count }} <span class="title1">Documentos</span> </p> <p class="text-center exp-card-content">{{ despachoprstore.count }} <span class="title1">Documentos</span> </p>
</div> </div>
</div> </div>
</div> </div> -->
<div *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks])" (click)="openDiplomasPage('validar'); selectedElement='DiplomasPorValidar'" [class.active]="selectedElement == 'DiplomasPorValidar'" class="box-hover exp-card d-flex flex-column justify-center"> <!-- <div *ngIf="p.userPermission([p.permissionList.Gabinete.md_tasks])" (click)="openDiplomasPage('validar'); selectedElement='DiplomasPorValidar'" [class.active]="selectedElement == 'DiplomasPorValidar'" class="box-hover exp-card d-flex flex-column justify-center">
<div class="d-flex justify-center"> <div class="d-flex justify-center">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-diploma.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-diploma.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && selectedElement != 'DiplomasPorValidar' " src="assets/images/theme/gov/icons-expediente-diploma.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && selectedElement != 'DiplomasPorValidar' " src="assets/images/theme/gov/icons-expediente-diploma.svg"></ion-icon>
@@ -243,7 +243,7 @@
<p class="text-center exp-card-title " *ngIf="!p.userPermission([p.permissionList.Gabinete.pr_tasks])">Diplomas por Validar</p> <p class="text-center exp-card-title " *ngIf="!p.userPermission([p.permissionList.Gabinete.pr_tasks])">Diplomas por Validar</p>
<p class="text-center exp-card-title " *ngIf="p.userPermission([p.permissionList.Gabinete.pr_tasks])">Diplomas por Assinar</p> <p class="text-center exp-card-title " *ngIf="p.userPermission([p.permissionList.Gabinete.pr_tasks])">Diplomas por Assinar</p>
<p class="text-center exp-card-content">{{ deplomasStore.deplomasReviewCount }} <span class="title1">Documentos</span> </p> <p class="text-center exp-card-content">{{ deplomasStore.deplomasReviewCount }} <span class="title1">Documentos</span> </p>
</div> </div> -->
<div *ngIf="SessionStore.user.Profile == 'Consultant'" (click)="openDiplomaPorElaborar('gerarDiplomas'); selectedElement='gerarDiplomas'" [class.active]="selectedElement == 'gerarDiplomas'" class="box-hover exp-card d-flex flex-column justify-center"> <div *ngIf="SessionStore.user.Profile == 'Consultant'" (click)="openDiplomaPorElaborar('gerarDiplomas'); selectedElement='gerarDiplomas'" [class.active]="selectedElement == 'gerarDiplomas'" class="box-hover exp-card d-flex flex-column justify-center">
<div class="d-flex justify-center"> <div class="d-flex justify-center">
@@ -257,7 +257,7 @@
<p class="text-center exp-card-content">{{ deplomasStore.DiplomaGerarList.length }} <span class="title1">Documentos</span></p> <p class="text-center exp-card-content">{{ deplomasStore.DiplomaGerarList.length }} <span class="title1">Documentos</span></p>
</div> </div>
<!--
<div (click)="openDiplomasPage('assinados'); selectedElement='DiplomasAssinados'" [class.active]="selectedElement == 'DiplomasAssinados'" class="box-hover exp-card d-flex flex-column justify-center"> <div (click)="openDiplomasPage('assinados'); selectedElement='DiplomasAssinados'" [class.active]="selectedElement == 'DiplomasAssinados'" class="box-hover exp-card d-flex flex-column justify-center">
<div class="d-flex justify-center"> <div class="d-flex justify-center">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-diplomas-assinados-presidente.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-diplomas-assinados-presidente.svg"></ion-icon>
@@ -269,7 +269,7 @@
<p class="text-center exp-card-title " *ngIf="p.userPermission([p.permissionList.Gabinete.pr_tasks])" >Diplomas</p> <p class="text-center exp-card-title " *ngIf="p.userPermission([p.permissionList.Gabinete.pr_tasks])" >Diplomas</p>
<p class="text-center exp-card-content">{{ deplomasStore.countDiplomasAssinadoListCount }} <span class="title1">Documentos</span></p> <p class="text-center exp-card-content">{{ deplomasStore.countDiplomasAssinadoListCount }} <span class="title1">Documentos</span></p>
</div> </div>
-->
<div *ngIf="p.userPermission([p.permissionList.Gabinete.pr_tasks])" (click)="openDiplomasAssinarPage(); selectedElement='DiplomasParaAssinar'" [class.active]="selectedElement == 'DiplomasParaAssinar'" class="box-hover exp-card d-flex flex-column justify-center"> <div *ngIf="p.userPermission([p.permissionList.Gabinete.pr_tasks])" (click)="openDiplomasAssinarPage(); selectedElement='DiplomasParaAssinar'" [class.active]="selectedElement == 'DiplomasParaAssinar'" class="box-hover exp-card d-flex flex-column justify-center">
<div class="d-flex justify-center"> <div class="d-flex justify-center">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-diploma.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-diploma.svg"></ion-icon>
@@ -46,7 +46,7 @@ export class PedidoPage implements OnInit {
eventsList: Event[]; eventsList: Event[];
serialnumber: string; serialnumber: string;
caller: string; caller: string;
intervenientes: any; intervenientes: any = []
cc: any = []; cc: any = [];
loggeduser: LoginUserRespose; loggeduser: LoginUserRespose;
+1 -1
View File
@@ -37,7 +37,7 @@
</div> </div>
</form> </form>
<div class="msg-bottom d-flex"> <div class="msg-bottom d-flex">
<p class="msg-bottom-p">Uma iniciativa do Gabinete do Presidente da República</p> <p class="msg-bottom-p">Uma iniciativa do Gabinete do Calendário Partilhado</p>
</div> </div>
</div> </div>
+13 -1
View File
@@ -13,7 +13,11 @@ import { ThemeService } from 'src/app/services/theme.service';
import { StorageService } from 'src/app/services/storage.service'; import { StorageService } from 'src/app/services/storage.service';
import { PermissionService } from 'src/app/services/permission.service'; import { PermissionService } from 'src/app/services/permission.service';
import { PermissionList } from 'src/app/models/permission/permissionList'; import { PermissionList } from 'src/app/models/permission/permissionList';
import { MessageModel, DeleteMessageModel } from '../../models/beast-orm' import { MessageModel, DeleteMessageModel } from '../../models/beast-orm';
import { WsChatService } from 'src/app/services/chat/ws-chat.service';
import { Storage } from '@ionic/storage';
import { WsChatMethodsService } from 'src/app/services/chat/ws-chat-methods.service';
import { ChatService } from 'src/app/services/chat.service';
@Component({ @Component({
selector: 'app-login', selector: 'app-login',
templateUrl: './login.page.html', templateUrl: './login.page.html',
@@ -46,6 +50,10 @@ export class LoginPage implements OnInit {
public ThemeService: ThemeService, public ThemeService: ThemeService,
private storageservice: StorageService, private storageservice: StorageService,
public p: PermissionService, public p: PermissionService,
private WsChatService: WsChatService,
private storage: Storage,
public WsChatMethodsService: WsChatMethodsService,
private ChatService: ChatService
) {} ) {}
ngOnInit() { ngOnInit() {
@@ -124,6 +132,7 @@ export class LoginPage implements OnInit {
await this.authService.loginChat(attempt.ChatData.data); await this.authService.loginChat(attempt.ChatData.data);
await this.authService.loginToChatWs(); await this.authService.loginToChatWs();
this.ChatService.setheader()
} }
@@ -134,7 +143,9 @@ export class LoginPage implements OnInit {
} else { } else {
this.WsChatService.logout();
this.clearStoreService.clear(); this.clearStoreService.clear();
this.WsChatMethodsService.clearChat();
SessionStore.delete(); SessionStore.delete();
window.localStorage.clear(); window.localStorage.clear();
await MessageModel.deleteAll() await MessageModel.deleteAll()
@@ -148,6 +159,7 @@ export class LoginPage implements OnInit {
if(attempt.ChatData) { if(attempt.ChatData) {
await this.authService.loginChat(attempt.ChatData.data); await this.authService.loginChat(attempt.ChatData.data);
await this.authService.loginToChatWs(); await this.authService.loginToChatWs();
this.ChatService.setheader()
} }
this.getToken(); this.getToken();
@@ -31,7 +31,7 @@
<ion-datetime <ion-datetime
[(ngModel)]="folder.DateBegin" [(ngModel)]="folder.DateBegin"
class="d-block d-md-none" class="d-block d-md-none"
placeholder="Início" placeholder="Data início*"
displayFormat="D MMM YYYY H:mm" displayFormat="D MMM YYYY H:mm"
minuteValues="0,5,10,15,20,25,30,35,40,45,50,55" minuteValues="0,5,10,15,20,25,30,35,40,45,50,55"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez" monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
@@ -41,7 +41,7 @@
<mat-form-field appearance="none" class="date-hour-picker d-none d-md-block"> <mat-form-field appearance="none" class="date-hour-picker d-none d-md-block">
<input matInput [ngxMatDatetimePicker]="picker1" <input matInput [ngxMatDatetimePicker]="picker1"
placeholder="Choose a date" placeholder="Data inicio*"
[formControl]="dateControlStart" [formControl]="dateControlStart"
[min]="minDate" [min]="minDate"
[disabled]="disabled" [disabled]="disabled"
@@ -70,7 +70,7 @@
<ion-datetime <ion-datetime
class="d-block d-md-none" class="d-block d-md-none"
[(ngModel)]="folder.DateEnd" [(ngModel)]="folder.DateEnd"
placeholder="Fim" placeholder="Data de fim*"
displayFormat="D MMM YYYY H:mm" displayFormat="D MMM YYYY H:mm"
minuteValues="0,5,10,15,20,25,30,35,40,45,50,55" minuteValues="0,5,10,15,20,25,30,35,40,45,50,55"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez" monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
@@ -78,9 +78,9 @@
max="2025"> max="2025">
</ion-datetime> </ion-datetime>
<mat-form-field class="date-hour-picker d-none d-md-block"> <mat-form-field appearance="none" class="date-hour-picker d-none d-md-block">
<input matInput [ngxMatDatetimePicker]="fim" <input matInput [ngxMatDatetimePicker]="fim"
placeholder="Choose a date" placeholder="Data de fim*"
[formControl]="dateControlEnd" [formControl]="dateControlEnd"
[min]="endMinDate" [min]="endMinDate"
[disabled]="disabled" [disabled]="disabled"
@@ -75,14 +75,14 @@ export class NewActionPage implements OnInit {
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.folder.DateBegin = new Date().toISOString() // this.folder.DateBegin = new Date().toISOString()
this.folder.DateEnd = (new Date(new Date().getTime() + 15 * 60000)).toISOString() // this.folder.DateEnd = (new Date(new Date().getTime() + 15 * 60000)).toISOString()
} }
ngOnInit() { ngOnInit() {
this.segment = "Evento"; this.segment = "Evento";
this.setDefaultTime() // this.setDefaultTime()
} }
setDefaultTime() { setDefaultTime() {
+2 -2
View File
@@ -11,7 +11,7 @@
<ion-progress-bar type="indeterminate" class="loader" *ngIf="showLoader"></ion-progress-bar> <ion-progress-bar type="indeterminate" class="loader" *ngIf="showLoader"></ion-progress-bar>
<div class="top-box d-flex ion-justify-content-between"> <div class="top-box d-flex ion-justify-content-between pb-10">
<!-- search --> <!-- search -->
<div *ngIf="!showAdvanceSearch" class="icon-z icon-most-searched-word-open cursor-pointer" (click)="showHideAdvanceSearch(true)"> <div *ngIf="!showAdvanceSearch" class="icon-z icon-most-searched-word-open cursor-pointer" (click)="showHideAdvanceSearch(true)">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/theme/blue/icons-most-searched-words-open.svg" class="icon" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/theme/blue/icons-most-searched-words-open.svg" class="icon" slot="end"></ion-icon>
@@ -34,7 +34,7 @@
</div> </div>
<!-- Search drop down --> <!-- Search drop down -->
<div class="advance-search pa-0 pt-10 flex-md-grow-1" > <div class="advance-search pa-0 pt-10 pr-10 flex-md-grow-1" >
<ion-form [class.d-none]="!showSearchInput"> <ion-form [class.d-none]="!showSearchInput">
<div class="d-flex search-input-container ion-justify-content-between" > <div class="d-flex search-input-container ion-justify-content-between" >
+8 -2
View File
@@ -20,7 +20,7 @@ import { RoomService } from './chat/room.service';
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { InitialsService } from './functions/initials.service'; import { InitialsService } from './functions/initials.service';
import { PermissionService } from './permission.service'; import { PermissionService } from './permission.service';
import { WsChatMethodsService } from 'src/app/services/chat/ws-chat-methods.service';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
@@ -48,7 +48,8 @@ export class AuthService {
private AttachmentsService: AttachmentsService, private AttachmentsService: AttachmentsService,
private storage: Storage, private storage: Storage,
private initialsService: InitialsService, private initialsService: InitialsService,
public p: PermissionService, ) { public p: PermissionService,
public WsChatMethodsService: WsChatMethodsService, ) {
this.headers = new HttpHeaders(); this.headers = new HttpHeaders();
@@ -201,6 +202,11 @@ export class AuthService {
this.WsChatService.setStatus('online') this.WsChatService.setStatus('online')
setTimeout(() => {
this.WsChatMethodsService.getAllRooms();
}, 200);
// alert('wsLogin') // alert('wsLogin')
}).catch((message) => { }).catch((message) => {
+17 -11
View File
@@ -1,14 +1,13 @@
import { HttpHeaders, HttpParams } from '@angular/common/http'; import { HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { AuthService } from './auth.service';
import { HttpService } from './http.service'; import { HttpService } from './http.service';
import { StorageService } from './storage.service'; import { StorageService } from './storage.service';
import { HttpClient, HttpHeaderResponse } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { PermissionService } from './permission.service'; import { PermissionService } from './permission.service';
import { SessionStore } from '../store/session.service'; import { SessionStore } from '../store/session.service';
import { ChangeProfileService } from 'src/app/services/change-profile.service';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
@@ -24,19 +23,21 @@ export class ChatService {
constructor( constructor(
private http: HttpClient, private http: HttpClient,
private httpService: HttpService, private httpService: HttpService,
private authService: AuthService,
private storage: Storage, private storage: Storage,
private storageService: StorageService, private storageService: StorageService,
public p: PermissionService) { public p: PermissionService,
private changeProfileService: ChangeProfileService,) {
this.setheader() this.changeProfileService.registerCallback(() => {
this.setheader();
})
} }
getDocumentDetails(url: string) { getDocumentDetails(url: string) {
let headersc = new HttpHeaders(); let headersc = new HttpHeaders();
headersc = headersc.set('X-User-Id', this.loggedUserChat['data'].userId); headersc = headersc.set('X-User-Id', SessionStore.user.ChatData.data.userId);
headersc = headersc.set('X-Auth-Token', this.loggedUserChat['data'].authToken); headersc = headersc.set('X-Auth-Token', SessionStore.user.ChatData.data.authToken);
headersc = headersc.set('Sec-Fetch-Dest', 'attachment'); headersc = headersc.set('Sec-Fetch-Dest', 'attachment');
headersc = headersc.set('Sec-Fetch-Mode', 'navigate'); headersc = headersc.set('Sec-Fetch-Mode', 'navigate');
headersc = headersc.set('Cookie', 'rc_uid=fsMwcNdufWvdnChj7'); headersc = headersc.set('Cookie', 'rc_uid=fsMwcNdufWvdnChj7');
@@ -342,7 +343,6 @@ export class ChatService {
setheader() { setheader() {
try { try {
if (this.p.userPermission(this.p.permissionList.Chat.access)) { if (this.p.userPermission(this.p.permissionList.Chat.access)) {
this.loggedUserChat = this.authService.ValidatedUserChat;
this.headers = new HttpHeaders(); this.headers = new HttpHeaders();
if (this.p.userPermission(this.p.permissionList.Chat.access)) { if (this.p.userPermission(this.p.permissionList.Chat.access)) {
@@ -359,12 +359,14 @@ export class ChatService {
} }
} }
refreshtoken() { async refreshtoken() {
if(this.headers) {
this.headers = this.headers.set('Authorization', SessionStore.user.BasicAuthKey); this.headers = this.headers.set('Authorization', SessionStore.user.BasicAuthKey);
let options = { let options = {
headers: this.headers headers: this.headers
}; };
return this.http.get(environment.apiURL + 'UserAuthentication/RegenereChatToken', options).subscribe(async res => { return await this.http.get(environment.apiURL + 'UserAuthentication/RegenereChatToken', options).subscribe(async res => {
let data = { let data = {
status: res['status'], status: res['status'],
data: { data: {
@@ -378,6 +380,10 @@ export class ChatService {
// console.log(res) // console.log(res)
// console.log(SessionStore.user.ChatData) // console.log(SessionStore.user.ChatData)
}); });
} else {
this.setheader()
}
} }
} }
+11 -2
View File
@@ -56,7 +56,9 @@ export class MessageService {
messageSend = false messageSend = false
delate = false delate = false
delateRequest = false delateRequest = false
downloadLoader: boolean; downloadLoader: boolean = false
downloadAttachments = false;
downloadAttachmentsTemp = 0;
constructor(private storage: Storage, constructor(private storage: Storage,
private NfService: NfService, private NfService: NfService,
@@ -77,7 +79,7 @@ export class MessageService {
this.ts = ts this.ts = ts
this.u = u || { name: this.usernameToDisplayName(SessionStore.user.UserName), username: SessionStore.user.UserName, _id: ""} this.u = u || { name: this.usernameToDisplayName(SessionStore.user.UserName), username: SessionStore.user.UserName, _id: ""}
this.t = t this.t = t
this._id = _id this._id = _id || ""
this._updatedAt = _updatedAt || new Date().getTime() this._updatedAt = _updatedAt || new Date().getTime()
this.file = file this.file = file
this.temporaryData = temporaryData this.temporaryData = temporaryData
@@ -254,7 +256,14 @@ export class MessageService {
// save the changes to the storage // save the changes to the storage
this.save() this.save()
this.downloadLoader = false; this.downloadLoader = false;
this.downloadAttachments = true
this.downloadAttachmentsTemp++;
} }
}, ()=>{
// error
this.downloadLoader = false;
this.downloadAttachments = false
this.downloadAttachmentsTemp++;
}); });
} }
+84 -22
View File
@@ -39,6 +39,7 @@ export class RoomService {
name = '' name = ''
_updatedAt = {} _updatedAt = {}
hasLoadHistory = false hasLoadHistory = false
hasLoadHistoryMessageRF = []
restoreFromOffline = false restoreFromOffline = false
duration = '' duration = ''
isTyping = false isTyping = false
@@ -53,6 +54,8 @@ export class RoomService {
u u
sessionStore = SessionStore sessionStore = SessionStore
countDownTime = '' countDownTime = ''
chatOpen = false
messageUnread = false
scrollDown = () => { } scrollDown = () => { }
@@ -177,7 +180,7 @@ export class RoomService {
if(difference < 0) { if(difference < 0) {
this.deleteRoom() this.deleteRoom();
} else { } else {
setTimeout(() => { setTimeout(() => {
@@ -234,18 +237,20 @@ export class RoomService {
let IncomingChatMessageArgs = IncomingChatMessage.fields.args[0] let IncomingChatMessageArgs = IncomingChatMessage.fields.args[0]
let ChatMessage : ChatMessageInterface = this.fix_updatedAt(IncomingChatMessageArgs) let ChatMessage : ChatMessageInterface = this.fix_updatedAt(IncomingChatMessageArgs)
if(!this.messagesLocalReference.includes(ChatMessage.localReference)) { const allMessageIds = this.messages.map((e)=> e._id);
if(!this.messagesLocalReference.includes(ChatMessage.localReference) && !allMessageIds.includes(ChatMessage?._id)) {
this.messagesLocalReference.push(ChatMessage.localReference); this.messagesLocalReference.push(ChatMessage.localReference);
const message = await this.prepareCreate({message: ChatMessage, save: true}) const message = await this.prepareCreate({message: ChatMessage, save: true});
message.messageSend = true message.messageSend = true
this.lastMessage = message this.lastMessage = message;
this.calDateDuration(ChatMessage._updatedAt) this.calDateDuration(ChatMessage._updatedAt);
if (message.t == 'r') { if (message.t == 'r') {
this.name = message.msg this.name = message.msg;
} }
if(this.isSenderIsNotMe(ChatMessage)) { if(this.isSenderIsNotMe(ChatMessage)) {
@@ -257,6 +262,11 @@ export class RoomService {
message.addMessageDB() message.addMessageDB()
if(this.chatOpen == false) {
this.messageUnread = true
}
setTimeout(()=>{ setTimeout(()=>{
this.scrollDown() this.scrollDown()
}, 50) }, 50)
@@ -305,19 +315,17 @@ export class RoomService {
this.otherUserType = args[1] this.otherUserType = args[1]
this.readAllMessage() this.readAllMessage()
//
// alert(JSON.stringify(args))
} else if(args[0]?.method == 'viewMessage' || args[1]?.method == 'viewMessage') { } else if(args[0]?.method == 'viewMessage' || args[1]?.method == 'viewMessage') {
this.readAllMessage() this.readAllMessage()
} else if(args[0]?.method == 'deleteMessage' || args[1]?.method == 'deleteMessage') { } else if(args[0]?.method == 'deleteMessage' || args[1]?.method == 'deleteMessage') {
// alert('delete')
//
this.deleteMessage(args[1]?.method?._id) this.deleteMessage(args[1]?.method?._id)
} else { } else {
// alert('miss')
} }
@@ -470,7 +478,7 @@ export class RoomService {
async delateMessageToSendToOthers(userId) { async delateMessageToSendToOthers(userId) {
const deleteMessage = await DeleteMessageModel.all() const deleteMessage = await DeleteMessageModel.all();
const toSend = deleteMessage.filter((DeleteMessage:string[])=> ! DeleteMessage.includes(userId)) const toSend = deleteMessage.filter((DeleteMessage:string[])=> ! DeleteMessage.includes(userId))
@@ -486,8 +494,8 @@ export class RoomService {
this.WsChatService.deleteMessage(msgId).then(async() => { this.WsChatService.deleteMessage(msgId).then(async() => {
message.delateRequest = true message.delateRequest = true
await message.save() await message.save();
this.deleteMessage(msgId) this.deleteMessage(msgId);
}) })
} else { } else {
@@ -509,7 +517,7 @@ export class RoomService {
*/ */
async send({file = null, attachments = null, temporaryData = {}}) { async send({file = null, attachments = null, temporaryData = {}}) {
const localReference = uuidv4() const localReference = uuidv4();
let offlineChatMessage = { let offlineChatMessage = {
rid: this.id, rid: this.id,
@@ -522,9 +530,9 @@ export class RoomService {
this.message= '' this.message= ''
this.messagesLocalReference.push(localReference)
const message: MessageService = await this.prepareCreate({message:offlineChatMessage, save: environment.chatOffline}) const message: MessageService = await this.prepareCreate({message:offlineChatMessage, save: environment.chatOffline})
this.messagesLocalReference.push(localReference)
await message.addMessageDB() await message.addMessageDB()
message.send() message.send()
@@ -540,7 +548,9 @@ export class RoomService {
this.sortRoomList() this.sortRoomList()
} }
if(this.hasLoadHistory == false) {
this.hasLoadHistoryMessageRF.push(localReference)
}
} }
@@ -594,10 +604,13 @@ export class RoomService {
roomLeave() { roomLeave() {
this.setTypingOff() this.setTypingOff()
this.chatOpen = false
} }
open() { open() {
// this.typing(this.message) // this.typing(this.message)
this.chatOpen = true
this.messageUnread = false
} }
@@ -669,17 +682,17 @@ export class RoomService {
} }
await this.WsChatService.loadHistory(this.id, limit).then( async (chatHistory:chatHistory) => { await this.WsChatService.loadHistory(this.id, limit).then( async (chatHistory:chatHistory) => {
// console.log('load history', chatHistory)
// //
const messagesId = this.messages.map((message)=> message._id) const messagesId = this.messages.map((message)=> message._id)
chatHistory.result.messages.reverse().forEach(async(message: any) => { await chatHistory.result.messages.reverse().forEach(async(message: any) => {
if (!messagesId.includes(message._id)) { if (!messagesId.includes(message._id)) {
const messagesToSave = await this.prepareMessageCreateIfNotExist_iD({message: message}); const messagesToSave = await this.prepareMessageCreateIfNotExist_iD({message: message});
if(messagesToSave) { if(messagesToSave) {
await messagesToSave.addMessageDB() messagesToSave.addMessageDB()
} }
} }
@@ -693,6 +706,28 @@ export class RoomService {
}, 50) }, 50)
this.hasLoadHistory = true this.hasLoadHistory = true
this.messageReorder();
}
async messageReorder() {
const reorderMessage: MessageService[] = this.messages.filter((message) =>
this.hasLoadHistoryMessageRF.includes(message?.localReference)
);
await this.messages.forEach( async (message, i) => {
if(this.hasLoadHistoryMessageRF.includes(message?.localReference)) {
this.messages.splice(i, 1)
}
})
this.hasLoadHistoryMessageRF = [];
reorderMessage.forEach((message) => {
this.messages.push(message)
});
} }
@@ -706,8 +741,8 @@ export class RoomService {
await this.messages.forEach( async (message, index) => { await this.messages.forEach( async (message, index) => {
if(message._id) { if(message._id) {
if(message.viewed.length == 0) { if(message.viewed.length == 0) {
this.messages[index].viewed = membersIds this.messages[index].viewed = membersIds;
this.messages[index].received = membersIds this.messages[index].received = membersIds;
await this.messages[index].save() await this.messages[index].save()
} }
@@ -787,8 +822,34 @@ export class RoomService {
wewMessage.setData(message) wewMessage.setData(message)
wewMessage.loadHistory = this.hasLoadHistory wewMessage.loadHistory = this.hasLoadHistory
let found;
if(wewMessage.localReference != null) {
found = this.messages.find((MessageService, index) => {
if ( MessageService.localReference == wewMessage.localReference ) {
return true
} else {
return false
}
})
} else {
found = this.messages.find((MessageService, index) => {
if ( MessageService._id == wewMessage._id) {
return true
} else {
return false
}
})
}
if (!found) {
this.messages.push(wewMessage) this.messages.push(wewMessage)
return wewMessage return wewMessage
}
return wewMessage
} }
@@ -872,6 +933,7 @@ export class RoomService {
sendReadMessage() { sendReadMessage() {
this.WsChatService.readMessage(this.id) this.WsChatService.readMessage(this.id)
this.sendFalseTypingReadMessage('viewMessage', {}) this.sendFalseTypingReadMessage('viewMessage', {})
this.messageUnread = false
} }
} }
@@ -14,7 +14,6 @@ import { SortService } from '../functions/sort.service';
import { chatUser } from 'src/app/models/chatMethod'; import { chatUser } from 'src/app/models/chatMethod';
import { NfService } from 'src/app/services/chat/nf.service' import { NfService } from 'src/app/services/chat/nf.service'
import { ChangeProfileService } from '../change-profile.service'; import { ChangeProfileService } from '../change-profile.service';
import { AuthService } from '../auth.service';
import { ChatStorageService } from './chat-storage.service'; import { ChatStorageService } from './chat-storage.service';
import { ChatMethodsService } from './chat-methods.service'; import { ChatMethodsService } from './chat-methods.service';
import { AESEncrypt } from '../aesencrypt.service' import { AESEncrypt } from '../aesencrypt.service'
@@ -41,7 +40,7 @@ export class WsChatMethodsService {
users: chatUser[] = [] users: chatUser[] = []
sessionStore = SessionStore sessionStore = SessionStore
loggedUser: any;
delete = [] delete = []
@@ -56,7 +55,6 @@ export class WsChatMethodsService {
private NfService: NfService, private NfService: NfService,
private changeProfileService: ChangeProfileService, private changeProfileService: ChangeProfileService,
private chatService: ChatService, private chatService: ChatService,
private authService: AuthService,
private ChatStorageService: ChatStorageService, private ChatStorageService: ChatStorageService,
private ChatMethodsService:ChatMethodsService, private ChatMethodsService:ChatMethodsService,
private AESEncrypt: AESEncrypt, private AESEncrypt: AESEncrypt,
@@ -64,7 +62,7 @@ export class WsChatMethodsService {
private NetworkServiceService: NetworkServiceService, private NetworkServiceService: NetworkServiceService,
) { ) {
this.loggedUser = authService.ValidatedUserChat['data'];
this.loadChat() this.loadChat()
@@ -93,13 +91,6 @@ export class WsChatMethodsService {
}) })
// on change profile remove a rooms
this.changeProfileService.registerCallback(() => {
this.clearChat()
this.ReLoadChat()
this.storage.remove('Rooms');
})
} }
private loadChat() { private loadChat() {
@@ -173,8 +164,10 @@ export class WsChatMethodsService {
async getAllRooms () { async getAllRooms () {
this.loadingWholeList = true this.loadingWholeList = true
const rooms = await this.WsChatService.getRooms(); const rooms = await this.WsChatService.getRooms();
try {
await this.storage.remove('Rooms'); await this.storage.remove('Rooms');
} catch(e) {}
await rooms.result.update.forEach( async (roomData: room, index) => { await rooms.result.update.forEach( async (roomData: room, index) => {
const roomId = this.getRoomId(roomData); const roomId = this.getRoomId(roomData);
+12 -2
View File
@@ -78,7 +78,6 @@ export class WsChatService {
// //
if(message.result) { if(message.result) {
if(message.result.token) { if(message.result.token) {
this.isLogin = true this.isLogin = true
this.loginResponse = message this.loginResponse = message
@@ -106,6 +105,7 @@ export class WsChatService {
getRooms(roomOlder = 1480377601) { getRooms(roomOlder = 1480377601) {
//const requestId = uuidv4() //const requestId = uuidv4()
const requestId = uuidv4() const requestId = uuidv4()
const message = { const message = {
@@ -121,7 +121,6 @@ export class WsChatService {
this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ this.ws.registerCallback({type:'Onmessage', funx:(message)=>{
if(message.id == requestId) { // same request send if(message.id == requestId) { // same request send
resolve(message) resolve(message)
//
return true return true
} }
}}) }})
@@ -186,6 +185,7 @@ export class WsChatService {
logout() { logout() {
this.isLogin = false this.isLogin = false
this.ws.connected = false this.ws.connected = false
this.ws.disconnect()
} }
// send message to room // send message to room
@@ -749,6 +749,7 @@ export class WsChatService {
const data = JSON.parse(event.data) const data = JSON.parse(event.data)
// //
// console.log(data)
for (const [key, value] of Object.entries(this.wsCallbacks)) { for (const [key, value] of Object.entries(this.wsCallbacks)) {
if(value.type== 'Onmessage') { if(value.type== 'Onmessage') {
@@ -777,6 +778,15 @@ export class WsChatService {
onerror: (event: any) => { onerror: (event: any) => {
},
disconnect:() => {
if(this.socket) {
this.socket.onopen = (event: any) => {}
this.socket.onmessage = (event: any) => {}
this.socket.onclose = (event: any) => {}
this.socket.onerror = (event: any) => {}
this.socket.close()
}
} }
}} }}
@@ -254,6 +254,7 @@
placeholder="Choose a date" placeholder="Choose a date"
[(ngModel)]="eventProcess.workflowInstanceDataFields.LastOccurrence" [(ngModel)]="eventProcess.workflowInstanceDataFields.LastOccurrence"
[disabled]="disabled" [disabled]="disabled"
[min]="eventProcess.workflowInstanceDataFields.EndDate"
> >
<mat-datepicker-toggle id="last-occurrence" matSuffix [for]="occurrrence"></mat-datepicker-toggle> <mat-datepicker-toggle id="last-occurrence" matSuffix [for]="occurrrence"></mat-datepicker-toggle>
<ngx-mat-datetime-picker #occurrrence <ngx-mat-datetime-picker #occurrrence
@@ -109,6 +109,7 @@ export class EditEventPage implements OnInit {
} }
} }
if (this.postEvent.Attendees != null) {
const result = this.participantsPipe.transform(this.postEvent.Attendees) const result = this.participantsPipe.transform(this.postEvent.Attendees)
this.taskParticipants = result.taskParticipants this.taskParticipants = result.taskParticipants
this.taskParticipantsCc = result.taskParticipantsCc this.taskParticipantsCc = result.taskParticipantsCc
@@ -118,7 +119,7 @@ export class EditEventPage implements OnInit {
this.setIntervenient.emit(this.taskParticipants); this.setIntervenient.emit(this.taskParticipants);
this.setIntervenientCC.emit(this.taskParticipantsCc); this.setIntervenientCC.emit(this.taskParticipantsCc);
}
} }
this.initCalendarName = this.postEvent.CalendarName; this.initCalendarName = this.postEvent.CalendarName;
@@ -127,14 +128,10 @@ export class EditEventPage implements OnInit {
this.getRecurrenceTypes(); this.getRecurrenceTypes();
this.postEvent.EventRecurrence.Type = this.postEvent.EventRecurrence.Type.toString();
// this.postEvent.EventRecurrence.LastOccurrence = this.currentDate;
setTimeout(() => { setTimeout(() => {
this.postEvent.EventRecurrence.Type = this.postEvent.EventRecurrence.Type.toString(); this.postEvent.EventRecurrence.Type = this.postEvent.EventRecurrence.Type.toString();
}, 1000); }, 500);
} }
@@ -11,10 +11,10 @@
<ion-toolbar> <ion-toolbar>
<ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)"> <ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)">
<ion-segment-button value="MDGPR"> <ion-segment-button value="MDGPR">
Calendário do MDGPR Meu Calendário
</ion-segment-button> </ion-segment-button>
<ion-segment-button value="PR"> <ion-segment-button value="PR">
Presidente da República Calendário Partilhado
</ion-segment-button> </ion-segment-button>
</ion-segment> </ion-segment>
</ion-toolbar> </ion-toolbar>
@@ -123,9 +123,9 @@
<div class="ion-input-class flex-grow-1 justify-center align-center material-inputs materia-top" [class.input-error]="Form?.get('Date')?.invalid && validateFrom "> <div class="ion-input-class flex-grow-1 justify-center align-center material-inputs materia-top" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<mat-form-field class="date-hour-picker"> <mat-form-field appearance="none" class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="picker1" <input matInput [ngxMatDatetimePicker]="picker1"
placeholder="Choose a date" placeholder="Data Inicio*"
[(ngModel)]="postEvent.StartDate" [(ngModel)]="postEvent.StartDate"
[disabled]="disabled" [disabled]="disabled"
[min]="currentDate" [min]="currentDate"
@@ -155,9 +155,9 @@
--> -->
<div (click)="openFim()" class="ion-input-class flex-grow-1 justify-center align-center materia-top" [class.input-error]="Form?.get('Date')?.invalid && validateFrom "> <div (click)="openFim()" class="ion-input-class flex-grow-1 justify-center align-center materia-top" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<mat-form-field class="date-hour-picker"> <mat-form-field appearance="none" class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="fim" <input matInput [ngxMatDatetimePicker]="fim"
placeholder="Choose a date" placeholder="Data de fim*"
[(ngModel)]="postEvent.EndDate" [(ngModel)]="postEvent.EndDate"
[disabled]="disabled" [disabled]="disabled"
[min]="currentDate" [min]="currentDate"
@@ -133,22 +133,6 @@ export class NewEventPage implements OnInit {
this.loggeduser = userService.ValidatedUser; this.loggeduser = userService.ValidatedUser;
this.postEvent = new Event(); this.postEvent = new Event();
let now = new Date();
if(now.getMinutes() <= 30) {
this.autoStartTime = new Date(now.setMinutes(30));
this.postEvent.StartDate = this.autoStartTime;
this.autoEndTime = new Date(this.autoStartTime.getTime() + 30 * 60000);
this.postEvent.EndDate = this.autoEndTime;
}
else {
this.autoStartTime = new Date(now.setHours(now.getHours()+1));
this.autoStartTime = new Date(this.autoStartTime.setMinutes(0));
this.postEvent.StartDate = this.autoStartTime;
this.autoEndTime = new Date(this.autoStartTime.getTime() + 30 * 60000);
this.postEvent.EndDate = this.autoEndTime;
}
} }
ngOnInit() { ngOnInit() {
@@ -350,7 +334,7 @@ export class NewEventPage implements OnInit {
close() { close() {
this.deleteTemporaryData(); this.deleteTemporaryData();
this.cloneAllmobileComponent.emit(); this.cloneAllmobileComponent.emit({roomId:this.roomId});
this.clearContact.emit(); this.clearContact.emit();
this.setIntervenient.emit([]); this.setIntervenient.emit([]);
this.setIntervenientCC.emit([]); this.setIntervenientCC.emit([]);
@@ -475,8 +459,13 @@ export class NewEventPage implements OnInit {
"end": this.postEvent.EndDate, "end": this.postEvent.EndDate,
"venue": this.postEvent.Location, "venue": this.postEvent.Location,
"id": id, "id": id,
"calendarId": CalendarId
} }
if(this.roomId) {
this.chatMethodService.sendMessage(this.roomId,data); this.chatMethodService.sendMessage(this.roomId,data);
}
}, },
error => { error => {
loader.remove() loader.remove()
@@ -488,10 +477,12 @@ export class NewEventPage implements OnInit {
else if(this.loggeduser.Profile == 'PR') { else if(this.loggeduser.Profile == 'PR') {
const CalendarId = this.selectedCalendarId() const CalendarId = this.selectedCalendarId()
let loader = this.toastService.loading();
this.eventService.postEventGeneric(this.postEvent, this.postEvent.CalendarName, CalendarId).subscribe( this.eventService.postEventGeneric(this.postEvent, this.postEvent.CalendarName, CalendarId).subscribe(
(id) => { (id) => {
loader.remove()
const eventId: any = id; const eventId: any = id;
@@ -519,7 +510,24 @@ export class NewEventPage implements OnInit {
if(DocumentToSave.length == 0){ if(DocumentToSave.length == 0){
this.afterSave(); this.afterSave();
} }
this.toastService._successMessage('Evento criado');
let data = {
"subject": this.postEvent.Subject,
"start": this.postEvent.StartDate,
"end": this.postEvent.EndDate,
"venue": this.postEvent.Location,
"id": id,
"calendarId": CalendarId
}
if(this.roomId) {
this.chatMethodService.sendMessage(this.roomId,data);
}
this.toastService._successMessage('Evento criado') this.toastService._successMessage('Evento criado')
},()=>{
loader.remove()
this.showLoader = false
this.toastService._badRequest('Evento não criado')
}); });
} else { } else {
@@ -527,9 +535,11 @@ export class NewEventPage implements OnInit {
const CalendarId = this.selectedCalendarId() const CalendarId = this.selectedCalendarId()
let loader = this.toastService.loading();
this.eventService.postEventGeneric(this.postEvent, this.postEvent.CalendarName, CalendarId).subscribe( this.eventService.postEventGeneric(this.postEvent, this.postEvent.CalendarName, CalendarId).subscribe(
(id) => { (id) => {
loader.remove();
const eventId: any = id; const eventId: any = id;
@@ -557,7 +567,24 @@ export class NewEventPage implements OnInit {
if(DocumentToSave.length == 0){ if(DocumentToSave.length == 0){
this.afterSave(); this.afterSave();
} }
this.toastService._successMessage('Evento criado');
let data = {
"subject": this.postEvent.Subject,
"start": this.postEvent.StartDate,
"end": this.postEvent.EndDate,
"venue": this.postEvent.Location,
"id": id,
"calendarId": CalendarId
}
if(this.roomId) {
this.chatMethodService.sendMessage(this.roomId,data);
}
this.toastService._successMessage('Evento criado') this.toastService._successMessage('Evento criado')
},()=>{
loader.remove()
this.showLoader = false
this.toastService._badRequest('Evento não criado')
}); });
} }
@@ -580,7 +607,10 @@ export class NewEventPage implements OnInit {
afterSave() { afterSave() {
this.deleteTemporaryData(); this.deleteTemporaryData();
this.onAddEvent.emit(this.postEvent); this.onAddEvent.emit(Object.assign(this.postEvent, {
roomId: this.roomId
}));
this.GoBackEditOrAdd.emit(); this.GoBackEditOrAdd.emit();
this.setIntervenient.emit([]); this.setIntervenient.emit([]);
@@ -643,7 +673,7 @@ export class NewEventPage implements OnInit {
return true; return true;
} else { } else {
return false;
} }
} }
@@ -36,12 +36,13 @@
<span class="date">{{loadedEvent.Location}}</span> <span class="date">{{loadedEvent.Location}}</span>
<div *ngIf="loadedEvent.Organizer"> <div *ngIf="loadedEvent.Organizer">
<div *ngIf="eventsService.isMyEvent(loadedEvent) == false">
<div *ngIf="eventsService.isMyEvent(loadedEvent) == false || sesseionStora.user.Profile =='PR'">
<span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #99e47b;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #99e47b;">{{loadedEvent.CalendarName}}</span>
<span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #958bfc;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #958bfc;">{{loadedEvent.CalendarName}}</span>
</div> </div>
<div *ngIf="eventsService.isMyEvent(loadedEvent) == true"> <div *ngIf="eventsService.isMyEvent(loadedEvent) == true && sesseionStora.user.Profile !='PR'">
<span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #ffb703;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Oficial' " style="background-color: #ffb703;">{{loadedEvent.CalendarName}}</span>
<span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #f05d5e;">{{loadedEvent.CalendarName}}</span> <span class="label" *ngIf="loadedEvent.CalendarName == 'Pessoal' " style="background-color: #f05d5e;">{{loadedEvent.CalendarName}}</span>
</div> </div>
@@ -89,8 +89,12 @@
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="image" class="file-icon"></ion-icon> <ion-icon name="image" class="file-icon"></ion-icon>
<ion-label>{{"Imagem"}}</ion-label> <ion-label>{{"Imagem"}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0 " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0" class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == true " class="icon-download" src="assets/gif/theme/default/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == true" class="icon-download" src="assets/gif/theme/gov/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="msg.downloadAttachments == false && msg.downloadAttachmentsTemp >= 1 && msg.downloadLoader == false" src="assets/images/retry-svgrepo-com.svg" class="icon-download font-12"> </ion-icon>
</ion-item> </ion-item>
</div> </div>
</div> </div>
@@ -112,10 +116,11 @@
<div (click)="openPreview(msg)" class="file-details add-ellipsis cursor-pointer" *ngIf="msg.file"> <div (click)="openPreview(msg)" class="file-details add-ellipsis cursor-pointer" *ngIf="msg.file">
<div *ngIf="!msg.attachments[0].image_url"> <div *ngIf="!msg.attachments[0].image_url">
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="document" class="file-icon"></ion-icon> <ion-icon *ngIf="msg.attachments[0].type != 'webtrix'" name="document" class="file-icon"></ion-icon>
<ion-icon *ngIf="msg.attachments[0].type == 'webtrix'" src="assets/icon/webtrix.svg" class="file-icon"></ion-icon>
<ion-label>{{file.title}}</ion-label> <ion-label>{{file.title}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="msg.attachments[0].image_url"> <div *ngIf="msg.attachments[0].image_url">
@@ -134,8 +139,12 @@
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="mic-outline" class="file-icon"></ion-icon> <ion-icon name="mic-outline" class="file-icon"></ion-icon>
<ion-label>{{"Mensagem de voz"}}</ion-label> <ion-label>{{"Mensagem de voz"}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0 " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0" class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == true " class="icon-download" src="assets/gif/theme/default/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == true" class="icon-download" src="assets/gif/theme/gov/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="msg.downloadAttachments == false && msg.downloadAttachmentsTemp >= 1 && msg.downloadLoader == false" src="assets/images/retry-svgrepo-com.svg" class="icon-download font-12"> </ion-icon>
</ion-item> </ion-item>
</div> </div>
<div class="audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link"> <div class="audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link">
@@ -164,7 +173,7 @@
</div> </div>
<div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting"> <div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting">
<ion-label class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br /> <ion-label class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br />
<button (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br /> <button (click)="goToEvent(msg.file)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br />
<ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br /> <ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br />
<ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br /> <ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br />
</div> </div>
@@ -202,7 +211,7 @@
<!-- <div *ngIf="msg.file" > <!-- <div *ngIf="msg.file" >
<div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting"> <div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting">
<ion-label class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br /> <ion-label class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br />
<button (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br /> <button (click)="goToEvent(msg.file)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br />
<ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br /> <ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br />
<ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br /> <ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br />
</div> </div>
@@ -230,10 +239,8 @@
</ion-content> </ion-content>
<ion-footer> <ion-footer>
<!-- <div class="typing" *ngIf="wsChatMethodsService.getGroupRoom(roomId).otherUserType == true" >A escrever...</div> -->
<div class="typing" *ngIf="wsChatMethodsService.getGroupRoom(roomId).otherUserType == true"> <div class="typing" *ngIf="wsChatMethodsService.getGroupRoom(roomId).otherUserType == true">
{{ wsChatMethodsService.getGroupRoom(roomId).otherUserType }}
<ngx-letters-avatar *ngIf="showAvatar" <ngx-letters-avatar *ngIf="showAvatar"
[avatarName]= "wsChatMethodsService.getGroupRoom(roomId).name" [avatarName]= "wsChatMethodsService.getGroupRoom(roomId).name"
@@ -213,7 +213,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
} catch (err) { } } catch (err) { }
} }
async goToEvent(eventId: any) { async goToEvent(event: any) {
let classs; let classs;
if (window.innerWidth < 701) { if (window.innerWidth < 701) {
classs = 'modal modal-desktop' classs = 'modal modal-desktop'
@@ -224,7 +224,8 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: ViewEventPage, component: ViewEventPage,
componentProps: { componentProps: {
eventId: eventId, eventId: event.id,
CalendarId: event.calendarId
}, },
cssClass: classs, cssClass: classs,
}); });
@@ -1103,19 +1104,21 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
async openPreview(msg) { async openPreview(msg) {
if (msg.file.type === "application/webtrix") { if (msg.file.type === "application/webtrix") {
this.viewDocument(msg.file, msg.attachments.image_url) this.viewDocument(msg.file, msg.attachments.image_url)
} else { } else {
if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') { if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') {
this.downloadFileMsg(msg) this.downloadFileMsg(msg)
//this.testDownlod(msg)
} else { } else {
var str = msg.attachments[0].image_url; var str = msg.attachments[0].image_url;
str = str.substring(1, ((str.length) - 1)); str = str.substring(1, ((str.length) - 1));
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
console.log(msg) console.log(msg)
if (msg.file.type == "application/img") { if (msg.file.type == "application/img") {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
@@ -1136,17 +1139,6 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
this.openFile(str, msg.attachments[0].name, msg.file.type); this.openFile(str, msg.attachments[0].name, msg.file.type);
} }
/* const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: str,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present(); */
} }
} }
@@ -2,9 +2,9 @@
<ion-toolbar class="header-toolbar"> <ion-toolbar class="header-toolbar">
<div class="main-header"> <div class="main-header">
<div class="title-content"> <div class="title-content">
<div class="back-icon cursor-pointer"> <div class="back-icon cursor-pointer" (click)="close()">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " (click)="close()" slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " (click)="close()" slot="end" src='assets/images/theme/gov/icons-calendar-arrow-left.svg'></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' " slot="end" src='assets/images/theme/gov/icons-calendar-arrow-left.svg'></ion-icon>
</div> </div>
<div class="div-title"> <div class="div-title">
<ion-label class="title">Nova Conversa</ion-label> <ion-label class="title">Nova Conversa</ion-label>
@@ -40,7 +40,6 @@
<span class="icon"> <span class="icon">
<ion-icon class="{{user.status}}" slot="end" name="ellipse"></ion-icon> <ion-icon class="{{user.status}}" slot="end" name="ellipse"></ion-icon>
</span> </span>
</div> </div>
</ion-virtual-scroll> </ion-virtual-scroll>
@@ -27,6 +27,7 @@ export class ContactsPage implements OnInit {
sessionStore = SessionStore sessionStore = SessionStore
@Output() openMessage:EventEmitter<any> = new EventEmitter<any>(); @Output() openMessage:EventEmitter<any> = new EventEmitter<any>();
@Output() emptyTextDescriptionOpen:EventEmitter<any> = new EventEmitter<any>();
constructor( constructor(
private modalController: ModalController, private modalController: ModalController,
@@ -41,10 +42,12 @@ export class ContactsPage implements OnInit {
this.room=null; this.room=null;
} }
ngOnInit() { async ngOnInit() {
this.loadUsers(); this.loadUsers();
this.chatService.refreshtoken(); await this.chatService.refreshtoken();
this.loadUsers();
} }
onChange(event){ onChange(event){
@@ -106,7 +109,7 @@ export class ContactsPage implements OnInit {
} }
close() { close() {
this.modalController.dismiss(); this.emptyTextDescriptionOpen.emit();
} }
clicked() { clicked() {
+24 -12
View File
@@ -38,6 +38,7 @@
<div class="messages-list-item-wrapper container-width-100" <div class="messages-list-item-wrapper container-width-100"
*ngFor="let msg of wsChatMethodsService.getDmRoom(roomId).messages; index as i; let last = last"> *ngFor="let msg of wsChatMethodsService.getDmRoom(roomId).messages; index as i; let last = last">
<div class='message-item incoming-{{msg.u.username!=sessionStore.user.UserName}} max-width-45' *ngIf="msg.msg !=''"> <div class='message-item incoming-{{msg.u.username!=sessionStore.user.UserName}} max-width-45' *ngIf="msg.msg !=''">
<div class="message-item-options d-flex justify-content-end"> <div class="message-item-options d-flex justify-content-end">
<fa-icon [matMenuTriggerFor]="beforeMenu" icon="chevron-down" class="message-options-icon cursor-pointer"> <fa-icon [matMenuTriggerFor]="beforeMenu" icon="chevron-down" class="message-options-icon cursor-pointer">
@@ -89,8 +90,13 @@
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="image" class="file-icon"></ion-icon> <ion-icon name="image" class="file-icon"></ion-icon>
<ion-label>{{"Imagem"}}</ion-label> <ion-label>{{"Imagem"}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0 " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0" class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == true " class="icon-download" src="assets/gif/theme/default/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == true" class="icon-download" src="assets/gif/theme/gov/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="msg.downloadAttachments == false && msg.downloadAttachmentsTemp >= 1 && msg.downloadLoader == false" src="assets/images/retry-svgrepo-com.svg" class="icon-download font-12"> </ion-icon>
</ion-item> </ion-item>
</div> </div>
<img *ngIf="msg.attachments[0].image_url" src={{msg.attachments[0].image_url}} alt="image"> <img *ngIf="msg.attachments[0].image_url" src={{msg.attachments[0].image_url}} alt="image">
@@ -108,14 +114,18 @@
<div *ngIf="!msg.attachments[0].image_url"> <div *ngIf="!msg.attachments[0].image_url">
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="document" class="file-icon"></ion-icon>
<ion-icon *ngIf="msg.attachments[0].type != 'webtrix'" name="document" class="file-icon"></ion-icon>
<ion-icon *ngIf="msg.attachments[0].type == 'webtrix'" src="assets/icon/webtrix.svg" class="file-icon"></ion-icon>
<ion-label>{{ file.title}}</ion-label> <ion-label>{{ file.title}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="msg.attachments[0].image_url"> <div *ngIf="msg.attachments[0].image_url">
<span *ngIf="msg.file.type"> <span *ngIf="msg.file.type">
<fa-icon *ngIf="msg.file.type == 'application/pdf'" icon="file-pdf" class="pdf-icon"></fa-icon> <fa-icon *ngIf="msg.file.type == 'application/pdf'" icon="file-pdf" class="pdf-icon"></fa-icon>
<fa-icon *ngIf="msg.file.type == 'application/word'" icon="file-word" class="word-icon"> <fa-icon *ngIf="msg.file.type == 'application/word'" icon="file-word" class="word-icon">
@@ -137,8 +147,13 @@
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button"> <ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="mic-outline" class="file-icon"></ion-icon> <ion-icon name="mic-outline" class="file-icon"></ion-icon>
<ion-label>{{'Mensagem de voz'}}</ion-label> <ion-label>{{'Mensagem de voz'}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0 " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == false && msg.downloadAttachmentsTemp == 0" class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.downloadLoader == true " class="icon-download" src="assets/gif/theme/default/Blocks-loader.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.downloadLoader == true" class="icon-download" src="assets/gif/theme/gov/Blocks-loader.svg" slot="end"></ion-icon>s
<ion-icon *ngIf="msg.downloadAttachments == false && msg.downloadAttachmentsTemp >= 1 && msg.downloadLoader == false" src="assets/images/retry-svgrepo-com.svg" class="icon-download font-12"> </ion-icon>
</ion-item> </ion-item>
</div> </div>
<div class="audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link"> <div class="audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link">
@@ -164,13 +179,14 @@
{{last ? scrollToBottom() : ''}} {{last ? scrollToBottom() : ''}}
</div> </div>
</div> </div>
<div class="info-meeting" *ngIf="msg.file.type == 'application/meeting'"> <div class="info-meeting" *ngIf="msg.file.type == 'application/meeting'">
<ion-label *ngIf="msg.delate == true" class="info-meeting-small">Apagou a mensagem</ion-label><br /> <ion-label *ngIf="msg.delate == true" class="info-meeting-small">Apagou a mensagem</ion-label><br />
<ion-label *ngIf="msg.delate == false" class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br /> <ion-label *ngIf="msg.delate == false" class="info-meeting-small">{{msg.u.name}} criou esta reunião</ion-label><br />
<button *ngIf="msg.delate == false" (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"> <button *ngIf="msg.delate == false" (click)="goToEvent(msg.file)" class="btn-no-color info-meeting-normal">
<ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label> <ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label>
</button><br /> </button><br />
<ion-label *ngIf="msg.delate == false" class="info-meeting-medium"> <ion-label *ngIf="msg.delate == false" class="info-meeting-medium">
@@ -214,14 +230,10 @@
<div class="width-100 pl-20 pr-20"> <div class="width-100 pl-20 pr-20">
<span *ngIf="!lastAudioRecorded">{{durationDisplay}}</span> <span *ngIf="!lastAudioRecorded">{{durationDisplay}}</span>
<div class=" audioDiv d-flex width-100 mt-10 mb-10" *ngIf="lastAudioRecorded"> <div class=" audioDiv d-flex width-100 mt-10 mb-10" *ngIf="lastAudioRecorded">
<!-- <button class="audioButtonPlay" fill="clear" (click)="start(audioRecorded)" *ngIf="!isPlaying"> <ion-icon slot="icon-only" name="play"></ion-icon> </button>
<button class="audioButtonPlay" fill="clear" (click)="togglePlayer(true)" *ngIf="isPlaying"> <ion-icon slot="icon-only" name="pause"></ion-icon> </button> -->
<div (click)="start(audioRecorded)" *ngIf="!isPlaying" > <ion-icon slot="icon-only" name="play"></ion-icon> </div> <div (click)="start(audioRecorded)" *ngIf="!isPlaying" > <ion-icon slot="icon-only" name="play"></ion-icon> </div>
<div (click)="togglePlayer(isPlaying)" *ngIf="isPlaying"> <ion-icon slot="icon-only" name="pause"></ion-icon> </div> <div (click)="togglePlayer(isPlaying)" *ngIf="isPlaying"> <ion-icon slot="icon-only" name="pause"></ion-icon> </div>
<!-- <label>{{audioDuration}}</label> -->
<ion-range #range [(ngModel)]="audioProgress" max="100" (mouseup)="seek()"></ion-range> <ion-range #range [(ngModel)]="audioProgress" max="100" (mouseup)="seek()"></ion-range>
</div> </div>
<!-- <audio [src]="audioRecorded" class="d-flex width-100 mt-10 mb-10" *ngIf="lastAudioRecorded" controls controlsList="nodownload noplaybackrate"></audio> -->
</div> </div>
<div class="container width-100 d-flex"> <div class="container width-100 d-flex">
+35 -57
View File
@@ -27,11 +27,10 @@ import { DocumentViewer, DocumentViewerOptions } from '@ionic-native/document-vi
import { VoiceRecorder, RecordingData, GenericResponse } from 'capacitor-voice-recorder'; import { VoiceRecorder, RecordingData, GenericResponse } from 'capacitor-voice-recorder';
import { Filesystem, Directory } from '@capacitor/filesystem'; import { Filesystem, Directory } from '@capacitor/filesystem';
import { DomSanitizer } from '@angular/platform-browser'; import { DomSanitizer } from '@angular/platform-browser';
import { AlertController, Platform } from '@ionic/angular'; import { Platform } from '@ionic/angular';
import { File } from '@awesome-cordova-plugins/file/ngx'; import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
import { Howl } from 'howler'; import { Howl } from 'howler';
import { runInThisContext } from 'vm'; import { runInThisContext } from 'vm';
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page'; import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
@@ -49,8 +48,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
@ViewChild('scrollMe') private myScrollContainer: ElementRef; @ViewChild('scrollMe') private myScrollContainer: ElementRef;
@ViewChild('message-item') messageContainer: ElementRef; @ViewChild('message-item') messageContainer: ElementRef;
loggedUser: any;
messages: any; messages: any;
dm: any; dm: any;
userPresence = ''; userPresence = '';
@@ -100,6 +97,10 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
audioTimer: any; audioTimer: any;
@ViewChild('range', { static: false }) range: IonRange; @ViewChild('range', { static: false }) range: IonRange;
userName = ""; userName = "";
room: any = new Array();
roomName: any;
isAdmin = false;
roomCountDownDate: string;
constructor( constructor(
public popoverController: PopoverController, public popoverController: PopoverController,
@@ -123,12 +124,12 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
private platform: Platform, private platform: Platform,
private fileOpener: FileOpener, private fileOpener: FileOpener,
) { ) {
this.loggedUser = authService.ValidatedUserChat['data'];
this.checkAudioPermission() this.checkAudioPermission()
} }
ngOnChanges(changes: SimpleChanges): void { ngOnChanges(changes: SimpleChanges): void {
this.wsChatMethodsService.getAllRooms();
this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory({}) this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory({})
this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked
@@ -165,11 +166,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
} }
async ngOnInit() { async ngOnInit() {
this.wsChatMethodsService.getAllRooms(); this.wsChatMethodsService.getAllRooms();
alert(this.wsChatMethodsService.getDmRoom(this.roomId).name)
this.chatService.refreshtoken(); this.chatService.refreshtoken();
this.scrollToBottom(); this.scrollToBottom();
this.getChatMembers(); this.getChatMembers();
this.deleteRecording(); this.deleteRecording();
@@ -375,7 +376,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
return this.timeService.showDateDuration(start); return this.timeService.showDateDuration(start);
} }
async goToEvent(eventId: any) { async goToEvent(event: any) {
let classs; let classs;
if (window.innerWidth < 701) { if (window.innerWidth < 701) {
classs = 'modal modal-desktop' classs = 'modal modal-desktop'
@@ -385,7 +386,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: ViewEventPage, component: ViewEventPage,
componentProps: { componentProps: {
eventId: eventId, eventId: event.id,
CalendarId: event.calendarId
}, },
cssClass: classs, cssClass: classs,
}); });
@@ -441,22 +443,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
deleteMessage(msgId: string, msg: MessageService) { deleteMessage(msgId: string, msg: MessageService) {
this.wsChatMethodsService.getDmRoom(this.roomId).sendDeleteRequest(msgId) this.wsChatMethodsService.getDmRoom(this.roomId).sendDeleteRequest(msgId)
if (msg.file.type == "application/webtrix") {
// this.openViewDocumentModal(msg.file);
}
else {
var str = msg.attachments[0].image_url;
str = str.substring(1, ((str.length) - 1));
const encodedData = btoa(str);
let file = this.base64toBlob(encodedData, 'application/pdf')
let fileURL = URL.createObjectURL(file)
window.open(fileURL);
}
} }
base64toBlob(base64Data, contentType) { base64toBlob(base64Data, contentType) {
@@ -667,7 +653,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
const roomId = this.roomId const roomId = this.roomId
const image = await this.CameraService.takePicture(); const image = await this.CameraService.takePicture();
await this.fileService.saveImage(image) await this.fileService.saveImage(image);
const lastphoto: any = await this.fileService.loadFiles(); const lastphoto: any = await this.fileService.loadFiles();
const { capturedImage, capturedImageTitle } = await this.fileService.loadFileData(lastphoto); const { capturedImage, capturedImageTitle } = await this.fileService.loadFileData(lastphoto);
const base64 = await fetch(capturedImage); const base64 = await fetch(capturedImage);
@@ -1028,33 +1014,12 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') { if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') {
this.downloadFileMsg(msg) this.downloadFileMsg(msg)
/* } else if (msg.file.type === "application/pdf") {
const win = window.open("", "_blank");
let html = '';
html += '<html>';
html += '<body style="margin:0!important">';
html += '<iframe width="100%" height="100%" src="' + str + '" type="application/pdf" />';
html += '</body>';
html += '</html>';
setTimeout(() => {
win.document.write(html);
}, 0); */
//this.viewDocument(msg, msg.attachments.image_url)
} else { } else {
var str = msg.attachments[0].image_url; var str = msg.attachments[0].image_url;
str = str.substring(1, ((str.length) - 1)); str = str.substring(1, ((str.length) - 1));
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
console.log(msg) console.log(msg)
if (msg.file.type == "application/img") { if (msg.file.type == "application/img") {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
@@ -1079,19 +1044,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
} }
} }
}
testEditMessage(msg: MessageService) {
// msg.receptorReceive()
// alert('cool!')
}
start(track) { start(track) {
if (this.audioPlay) { if (this.audioPlay) {
this.audioPlay.stop(); this.audioPlay.stop();
@@ -1138,6 +1095,27 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}, 1000) }, 1000)
} }
async getRoomInfo() {
this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory({});
let room = await this.chatService.getRoomInfo(this.roomId).toPromise();
// console.log('ROOM',room)
this.room = room['room'];
if (this.room.name) {
this.roomName = this.room.name.split('-').join(' ');
}
if(SessionStore.user.ChatData.data.userId == this.room.u._id){
this.isAdmin = true
} else {
this.isAdmin = false
}
if (this.room.customFields.countDownDate) {
this.roomCountDownDate = this.room.customFields.countDownDate;
}
}
} }
+42 -11
View File
@@ -29,6 +29,8 @@ export class NewGroupPage implements OnInit{
@Input() groupName:string; @Input() groupName:string;
@Output() addGroupMessage:EventEmitter<any> = new EventEmitter<any>(); @Output() addGroupMessage:EventEmitter<any> = new EventEmitter<any>();
@Output() closeAllDesktopComponents:EventEmitter<any> = new EventEmitter<any>();
constructor( constructor(
private pickerController: PickerController, private pickerController: PickerController,
@@ -59,10 +61,8 @@ export class NewGroupPage implements OnInit{
} }
}); });
} }
_ionChange(event){ _ionChange(event){
@@ -77,7 +77,6 @@ export class NewGroupPage implements OnInit{
} }
close() { close() {
//this.modalController.dismiss();
this.addGroupMessage.emit(); this.addGroupMessage.emit();
} }
@@ -91,6 +90,9 @@ export class NewGroupPage implements OnInit{
let customFields = {} let customFields = {}
let res:any; let res:any;
const loader = this.toastService.loading();
if(this.thedate) { if(this.thedate) {
let customFields = { let customFields = {
"countDownDate":this.thedate "countDownDate":this.thedate
@@ -102,6 +104,8 @@ export class NewGroupPage implements OnInit{
} }
loader.remove();
// FsId // FsId
// DocId // DocId
@@ -109,7 +113,39 @@ export class NewGroupPage implements OnInit{
this.addGroupMessage.emit(res.result.rid); this.addGroupMessage.emit(res.result.rid);
await this.wsChatMethodsService.getAllRooms(); await this.wsChatMethodsService.getAllRooms();
if(!this.wsChatMethodsService.getGroupRoom(res.result.rid)) {
this.createGroupWithAttachmentsCath(res)
} else {
setTimeout(()=> { setTimeout(()=> {
this.createGroupWithAttachments(res)
}, 500)
}
} else {
this.toastService._badRequest('Existe um grupo com este nome!');
}
}
createGroupWithAttachmentsCath(res: any) {
if(!this.wsChatMethodsService.getGroupRoom(res.result.rid)) {
setTimeout(()=>{
this.createGroupWithAttachmentsCath(res)
}, 1500)
} else {
this.createGroupWithAttachments(res)
}
}
createGroupWithAttachments(res: any) {
this.wsChatMethodsService.getGroupRoom(res.result.rid).hasLoadHistory = true;
this.documents.forEach(element => { this.documents.forEach(element => {
this.wsChatMethodsService.getGroupRoom(res.result.rid).send({ this.wsChatMethodsService.getGroupRoom(res.result.rid).send({
file: { file: {
@@ -138,14 +174,9 @@ export class NewGroupPage implements OnInit{
}) })
}); });
}, 500) setTimeout(() => {
this.groupName = ""
} else { }, 150);
this.toastService._badRequest('Existe um grupo com este nome!');
}
} }
async addContacts(){ async addContacts(){
@@ -84,13 +84,13 @@
</div> </div>
<div <div
*ngIf="!skeletonLoader && allProcessesList.length == 0" *ngIf="!skeletonLoader && getAllProcessCount == 0"
class="empty-list d-flex height-100 align-center justify-content-center" class="empty-list d-flex height-100 align-center justify-content-center"
> >
<span>Lista vazia</span> <span>Lista vazia</span>
</div> </div>
<div *ngIf="skeletonLoader && allProcessesList.length == 0"> <div *ngIf="skeletonLoader && getAllProcessCount == 0">
<ion-list> <ion-list>
<ion-item> <ion-item>
@@ -80,6 +80,9 @@ export class AllProcessesPage implements OnInit {
get AllProcess() { get AllProcess() {
setTimeout(() => {
this.skeletonLoader = false;
}, 5000);
return this.expedientegbstore.list.concat(this.pedidosstore.listparecer).concat(this.pedidosstore.listdeferimento) return this.expedientegbstore.list.concat(this.pedidosstore.listparecer).concat(this.pedidosstore.listdeferimento)
.concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.listmd).concat(this.eventoaprovacaostore.listpr) .concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.listmd).concat(this.eventoaprovacaostore.listpr)
.concat(this.deplomasStore.diplomasParaAssinarList).concat(this.deplomasStore.diplomasAssinadoList).concat(this.despachoStore.list) .concat(this.deplomasStore.diplomasParaAssinarList).concat(this.deplomasStore.diplomasAssinadoList).concat(this.despachoStore.list)
@@ -111,6 +111,7 @@
placeholder="Choose a date" placeholder="Choose a date"
[(ngModel)]="startDate" [(ngModel)]="startDate"
[disabled]="disabled" [disabled]="disabled"
[min]="currentDate"
> >
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle> <mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle>
<ngx-mat-datetime-picker #picker1 <ngx-mat-datetime-picker #picker1
@@ -138,6 +139,7 @@
placeholder="Choose a date" placeholder="Choose a date"
[(ngModel)]="endDate" [(ngModel)]="endDate"
[disabled]="disabled" [disabled]="disabled"
[min]="currentDate"
> >
<mat-datepicker-toggle id="new-fim" matSuffix [for]="fim"></mat-datepicker-toggle> <mat-datepicker-toggle id="new-fim" matSuffix [for]="fim"></mat-datepicker-toggle>
<ngx-mat-datetime-picker #fim <ngx-mat-datetime-picker #fim
@@ -196,6 +198,7 @@
placeholder="Choose a date" placeholder="Choose a date"
[(ngModel)]="eventProcess.workflowInstanceDataFields.LastOccurrence" [(ngModel)]="eventProcess.workflowInstanceDataFields.LastOccurrence"
[disabled]="disabled" [disabled]="disabled"
[min]="endDate"
> >
<mat-datepicker-toggle id="last-occurrence" matSuffix [for]="occurrrence"></mat-datepicker-toggle> <mat-datepicker-toggle id="last-occurrence" matSuffix [for]="occurrrence"></mat-datepicker-toggle>
<ngx-mat-datetime-picker #occurrrence <ngx-mat-datetime-picker #occurrrence
@@ -51,6 +51,7 @@ export class EditEventToApproveComponent implements OnInit {
public stepSecond = 5; public stepSecond = 5;
recurringTypes: any; recurringTypes: any;
selectedRecurringType: any; selectedRecurringType: any;
currentDate = new Date()
showLoader = false showLoader = false
@@ -181,14 +182,54 @@ export class EditEventToApproveComponent implements OnInit {
} }
onSelectedRecurringChanged(ev:any){ onSelectedRecurringChanged(ev:any){
/*
this.calculetedLastOccurrence(ev);
if(ev.length > 1){ if(ev.length > 1){
this.selectedRecurringType = ev.filter(data => data != '-1'); this.postEvent.EventRecurrence.Type = ev.filter(data => data != '-1');
} }
if(ev.length == 0){ if(ev.length == 0){
this.selectedRecurringType = "-1"; this.postEvent.EventRecurrence.Type = "-1";
} */ }
}
calculetedLastOccurrence(type:number){
var valor;
var opcao: boolean;
if (type == 0) {
valor = 7;
opcao = true;
} else if(type == 1){
valor = 30;
opcao = true;
} else if(type == 2){
valor = 1;
opcao = false;
}else if(type == 3){
valor = 5;
opcao = false;
}
this.defineLastOccurrence(valor, opcao);
}
defineLastOccurrence(valor:number, opcao:boolean){
var time = new Date(this.endDate);
if (opcao == true) {
time.setDate(time.getDate() + valor);
this.eventProcess.workflowInstanceDataFields.LastOccurrence = time;
} else {
time = new Date(
time.getFullYear() + valor,
time.getMonth(),
time.getDate(),
time.getHours(),
time.getMinutes()
);
this.eventProcess.workflowInstanceDataFields.LastOccurrence = time;
}
} }
openLastOccurrence() { openLastOccurrence() {
@@ -237,6 +278,12 @@ export class EditEventToApproveComponent implements OnInit {
} }
}) })
this.startDate = new Date(this.startDate);
this.startDate.setHours(this.startDate.getHours() + 1);
this.endDate = new Date(this.endDate);
this.endDate.setHours(this.endDate.getHours() + 1);
const event: EventToApproveEdit = { const event: EventToApproveEdit = {
SerialNumber: this.eventProcess.serialNumber, SerialNumber: this.eventProcess.serialNumber,
Body: this.eventProcess.workflowInstanceDataFields.Body, Body: this.eventProcess.workflowInstanceDataFields.Body,
@@ -263,9 +310,9 @@ export class EditEventToApproveComponent implements OnInit {
this.eventsService.postEventToApproveEdit(event).subscribe(()=>{ this.eventsService.postEventToApproveEdit(event).subscribe(()=>{
this.toastService.successMessage('Evento editado'); this.toastService._successMessage('Evento editado');
}, error =>{ }, error =>{
this.toastService.badRequest('Evento não editado'); this.toastService._badRequest('Evento não editado');
}) })
@@ -273,16 +320,16 @@ export class EditEventToApproveComponent implements OnInit {
if(document['action'] == 'add') { if(document['action'] == 'add') {
delete document.action delete document.action
this.attachmentsService.setEventAttachmentById(document).subscribe(()=>{ this.attachmentsService.setEventAttachmentById(document).subscribe(()=>{
this.toastService.successMessage(); this.toastService._successMessage();
}, error =>{ }, error =>{
this.toastService.badRequest(); this.toastService._badRequest();
}); });
} else if(document['action'] == 'delete') { } else if(document['action'] == 'delete') {
delete document.action delete document.action
this.attachmentsService.deleteEventAttachmentById(document.Id).subscribe( res=>{ this.attachmentsService.deleteEventAttachmentById(document.Id).subscribe( res=>{
this.toastService.successMessage() this.toastService._successMessage()
}, error =>{ }, error =>{
this.toastService.badRequest() this.toastService._badRequest()
}) })
} }
@@ -10,10 +10,10 @@
<ion-toolbar> <ion-toolbar>
<ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)"> <ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)">
<ion-segment-button value="MDGPR"> <ion-segment-button value="MDGPR">
Calendário do MDGPR Meu Calendário
</ion-segment-button> </ion-segment-button>
<ion-segment-button value="PR"> <ion-segment-button value="PR">
Presidente da República Calendário Partilhado
</ion-segment-button> </ion-segment-button>
</ion-segment> </ion-segment>
</ion-toolbar> </ion-toolbar>
@@ -2,7 +2,7 @@
<ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar> <ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar>
<div class="title"> <div class="title">
<div class="thetitle"><ion-label >Expediente</ion-label></div> <div class="thetitle"><ion-label >Expediente</ion-label></div>
<div class="theicon"> <div class="theicon" (click)="refreshing()">
<button title="Atualizar" class="btn-no-color" (click)="refreshing()"> <button title="Atualizar" class="btn-no-color" (click)="refreshing()">
<ion-icon slot="end" class="title-icon font-awesome" name="reload-circle"></ion-icon> <ion-icon slot="end" class="title-icon font-awesome" name="reload-circle"></ion-icon>
</button> </button>
@@ -84,6 +84,7 @@ export class ExpedientesPrPage implements OnInit {
} }
refreshing() { refreshing() {
setTimeout(() => { setTimeout(() => {
this.LoadList(); this.LoadList();
}, 1000); }, 1000);
@@ -95,6 +95,7 @@ export class ExpedientsPage implements OnInit {
} }
doRefresh() { doRefresh() {
setTimeout(() => { setTimeout(() => {
this.LoadList(); this.LoadList();
}, 1000) }, 1000)
+16 -5
View File
@@ -24,14 +24,14 @@
</div> </div>
<div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center"> <div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content"> <div class="logo-description-content">
<!-- <p class="logo-description-text">Presidente da República</p> --> <!-- <p class="logo-description-text">Calendário Partilhado</p> -->
<p class="logo-description-text tp-5">GABINETE DIGITAL</p> <p class="logo-description-text tp-5">GABINETE DIGITAL</p>
<div class="add-line"></div> <div class="add-line"></div>
</div> </div>
</div> </div>
<div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center"> <div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content"> <div class="logo-description-content">
<!-- <p class="logo-description-text color-white">Presidente da República</p> --> <!-- <p class="logo-description-text color-white">Calendário Partilhado</p> -->
<p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p> <p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p>
<div class="add-line-white"></div> <div class="add-line-white"></div>
</div> </div>
@@ -56,13 +56,24 @@
<img *ngIf="ThemeService.currentTheme == 'tribunal' " src='assets/images/theme/tribunal/tribunal-constitucional.png' alt='logo'> <img *ngIf="ThemeService.currentTheme == 'tribunal' " src='assets/images/theme/tribunal/tribunal-constitucional.png' alt='logo'>
</div> </div>
<div class="logo-description d-flex align-center justify-content-center"> <div class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content"> <div class="logo-description-content">
<!-- <p class="logo-description-text">Presidente da República</p> --> <!-- <p class="logo-description-text">Calendário Partilhado</p> -->
<p class="logo-description-text">GABINETE DIGITAL</p>
<!-- <div *ngIf="ThemeService.currentTheme == 'default' " class="logo-description-content">
<p class="logo-description-text color-white">Calendário Partilhado</p>
<div class="add-line color-white" style="border-bottom-color: white;"></div>
<p class="logo-description-text color-white">GABINETE DIGITAL</p>
</div> -->
<div *ngIf="ThemeService.currentTheme == 'gov' " class="logo-description-content">
<p *ngIf="environment.presidencia" class="logo-description-text">Calendário Partilhado</p>
<p *ngIf="!environment.presidencia" class="logo-description-text">GABINETE DIGITAL</p>
<div class="add-line"></div> <div class="add-line"></div>
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="d-flex flex-1 pr-20 pl-50" *ngIf="p.userPermissionCount([permissionList.Agenda.access, permissionList.Gabinete.access, permissionList.Actions.access, permissionList.Chat.access]) >= 2 || (p.userPermission([permissionList.Agenda.access]) && loggeduser.OwnerCalendars.length != 0) || p.userPermission([permissionList.Gabinete.access])"> <div class="d-flex flex-1 pr-20 pl-50" *ngIf="p.userPermissionCount([permissionList.Agenda.access, permissionList.Gabinete.access, permissionList.Actions.access, permissionList.Chat.access]) >= 2 || (p.userPermission([permissionList.Agenda.access]) && loggeduser.OwnerCalendars.length != 0) || p.userPermission([permissionList.Gabinete.access])">
@@ -171,6 +182,6 @@
</div> </div>
</div> </div>
<div class="header-bottom-line"></div> <div [class.header-bottom-line] = "ThemeService.currentTheme == 'gov'" style="height: 5px;"></div>
<!-- {{ RouteService.history | json }} --> <!-- {{ RouteService.history | json }} -->
</div> </div>

Some files were not shown because too many files have changed in this diff Show More