diff --git a/modules/sendmail/mail_form.php b/modules/sendmail/mail_form.php index bd926c59eb34a549f9fe8a2351df878ed0197003..ba5a59132f3b0f9fdece0fd9cd19eed3a6adccc1 100755 --- a/modules/sendmail/mail_form.php +++ b/modules/sendmail/mail_form.php @@ -169,7 +169,7 @@ if ($mode == 'add') { } } } else { - $userEntitiesMails = \Entity\models\EntityModel::getWithUserEntities(['where' => ['user_id = ?'], 'data' => [$_SESSION['user']['UserId']]); + $userEntitiesMails = \Entity\models\EntityModel::getWithUserEntities(['where' => ['user_id = ?'], 'data' => [$_SESSION['user']['UserId']]]); if (empty($userEntitiesMails)) { $content .= '<option value="" >'._NO_SENDER.'</option>'; } else { diff --git a/sql/1904.sql b/sql/1904.sql index bb7142e60cdc407e22c1df8535db01912448a80c..514e5e5604846a8907fb2b9776a06fa045ee719a 100644 --- a/sql/1904.sql +++ b/sql/1904.sql @@ -5,7 +5,7 @@ -- -- -- -- -- *************************************************************************-- -UPDATE parameters SET param_value_string = '19.04.3' WHERE id = 'database_version'; +UPDATE parameters SET param_value_string = '19.04.6' WHERE id = 'database_version'; DELETE FROM parameters WHERE id = 'QrCodePrefix'; INSERT INTO parameters (id, description, param_value_int) VALUES ('QrCodePrefix', 'Si activé (1), ajoute "Maarch_" dans le contenu des QrCode générés. (Utilisable avec MaarchCapture >= 1.4)', 0); @@ -316,7 +316,16 @@ DO $$ BEGIN UPDATE res_letterbox SET external_reference = NULL WHERE external_link is not NULL; END IF; END$$; - +DO $$ BEGIN + IF (SELECT count(attname) FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'res_letterbox') AND attname = 'scan_date') = 0 THEN + ALTER TABLE res_letterbox ADD COLUMN scan_date timestamp without time zone; + ALTER TABLE res_letterbox ADD COLUMN scan_user CHARACTER VARYING (50) DEFAULT NULL::character varying; + ALTER TABLE res_letterbox ADD COLUMN scan_location CHARACTER VARYING (255) DEFAULT NULL::character varying; + ALTER TABLE res_letterbox ADD COLUMN scan_wkstation CHARACTER VARYING (255) DEFAULT NULL::character varying; + ALTER TABLE res_letterbox ADD COLUMN scan_batch CHARACTER VARYING (50) DEFAULT NULL::character varying; + ALTER TABLE res_letterbox ADD COLUMN scan_postmark CHARACTER VARYING (50) DEFAULT NULL::character varying; + END IF; +END$$; /* RE-CREATE VIEW*/ CREATE OR REPLACE VIEW res_view_letterbox AS @@ -398,6 +407,12 @@ CREATE OR REPLACE VIEW res_view_letterbox AS r.custom_f3 AS doc_custom_f3, r.custom_f4 AS doc_custom_f4, r.custom_f5 AS doc_custom_f5, + r.scan_date, + r.scan_user, + r.scan_location, + r.scan_wkstation, + r.scan_batch, + r.scan_postmark, f.foldertype_id, ft.foldertype_label, f.custom_t1 AS fold_custom_t1, diff --git a/src/frontend/app/folder/document-list/folder-document-list.component.html b/src/frontend/app/folder/document-list/folder-document-list.component.html index a09453b9c0b851e96b5bcb70778f06f23e9dd42f..b276fce86704911fb2f919cc317243685ea66918 100644 --- a/src/frontend/app/folder/document-list/folder-document-list.component.html +++ b/src/frontend/app/folder/document-list/folder-document-list.component.html @@ -35,7 +35,7 @@ [checked]="selectedRes.length == allResInBasket.length && selectedRes.length > 0" [indeterminate]="selectedRes.length > 0 && selectedRes.length < allResInBasket.length" style="margin: 10px;padding-right: 10px;" title="{{lang.selectAllResInBasket}}" - (change)="toggleAllRes($event)"></mat-checkbox> {{allResInBasket.length}} + (change)="toggleAllRes($event)"></mat-checkbox> {{resultsLength}} {{lang.records | ucfirst}} <small *ngIf="selectedRes.length > 0">({{selectedRes.length}} {{lang.selected}})</small> diff --git a/src/frontend/app/folder/document-list/folder-document-list.component.ts b/src/frontend/app/folder/document-list/folder-document-list.component.ts index e0cb16709a1dad1249f8373d8245c56935c710e1..e0b9018ef26e37aa4b759da589c565e9c4417f11 100644 --- a/src/frontend/app/folder/document-list/folder-document-list.component.ts +++ b/src/frontend/app/folder/document-list/folder-document-list.component.ts @@ -69,7 +69,7 @@ export class FolderDocumentListComponent implements OnInit { thumbnailUrl: string = ''; - selectedRes: number[] = []; + selectedRes: Array<number> = []; allResInBasket: number[] = []; selectedDiffusionTab: number = 0; folderInfo: any = { @@ -157,7 +157,7 @@ export class FolderDocumentListComponent implements OnInit { // Flip flag to show that loading has finished. this.isLoadingResults = false; data = this.processPostData(data); - this.resultsLength = data.count; + this.resultsLength = data.countResources; //this.allResInBasket = data.count; //this.headerService.setHeader('Dossier : ' + this.folderInfo.label); return data.resources; @@ -240,12 +240,9 @@ export class FolderDocumentListComponent implements OnInit { } }); - if (this.selectedRes.indexOf(element['res_id']) === -1) { - element['checked'] = false; - } else { - element['checked'] = true; - } + element['checked'] = this.selectedRes.indexOf(element['res_id']) !== -1; }); + return data; } @@ -278,14 +275,22 @@ export class FolderDocumentListComponent implements OnInit { unclassify() { this.http.request('DELETE', '../../rest/folders/' + this.folderInfo.id + '/resources', { body: { resources: this.selectedRes } }).pipe( - tap(() => this.notify.success(this.lang.removedFromFolder)) + tap((data: any) => { + this.notify.success(this.lang.removedFromFolder); + this.resultsLength = data.countResources; + this.data.forEach((resource: any, key: number) => { + if (this.selectedRes.indexOf(resource.res_id) != -1) { + this.data.splice(key, 1); + } + }); + }) ).subscribe(); } } export interface BasketList { folder: any; resources: any[]; - count: number + countResources: number; } export class ResultListHttpDao { diff --git a/src/frontend/app/folder/folder-tree.component.ts b/src/frontend/app/folder/folder-tree.component.ts index a24220c81d24938e123b07ecdc8edfaae21fd98c..1ec1cf45c5fac6ac520f2405096eafa0c9d8d2a3 100644 --- a/src/frontend/app/folder/folder-tree.component.ts +++ b/src/frontend/app/folder/folder-tree.component.ts @@ -91,7 +91,7 @@ export class FolderTreeComponent implements OnInit { this.flatNodeMap.set(flatNode, node); this.nestedNodeMap.set(node, flatNode); return flatNode; - } + }; treeControl = new FlatTreeControl<any>( node => node.level, node => node.expandable); @@ -177,8 +177,10 @@ export class FolderTreeComponent implements OnInit { flatToNestedObject(data: any) { const nested = data.reduce((initial: any, value: any, index: any, original: any) => { if (value.parent_id === 0) { - if (initial.left.length) this.checkLeftOvers(initial.left, value) - delete value.parent_id + if (initial.left.length) { + this.checkLeftOvers(initial.left, value); + } + delete value.parent_id; value.root = true; initial.nested.push(value) } @@ -191,7 +193,7 @@ export class FolderTreeComponent implements OnInit { } } return index < original.length - 1 ? initial : initial.nested - }, { nested: [], left: [] }) + }, { nested: [], left: [] }); return nested; } @@ -208,7 +210,7 @@ export class FolderTreeComponent implements OnInit { } findParent(possibleParents: any, possibleChild: any): any { - let found = false + let found = false; for (let i = 0; i < possibleParents.length; i++) { if (possibleParents[i].id === possibleChild.parent_id) { found = true; @@ -315,8 +317,7 @@ export class FolderTreeComponent implements OnInit { for (let i = startIndex; i >= 0; i--) { const currentNode = this.treeControl.dataNodes[i]; if (currentNode.level < currentLevel) { - const nestedNode = this.flatNodeMap.get(currentNode); - return nestedNode; + return this.flatNodeMap.get(currentNode); } } return null; diff --git a/src/frontend/app/separator/print-separator/print-separator.component.ts b/src/frontend/app/separator/print-separator/print-separator.component.ts index 95921a3b89d10718dd3f77b3d8db74ef62aeac3f..719f9ef17cced68041d01391afe3e17619dfa762 100644 --- a/src/frontend/app/separator/print-separator/print-separator.component.ts +++ b/src/frontend/app/separator/print-separator/print-separator.component.ts @@ -11,7 +11,7 @@ declare function $j(selector: any): any; @Component({ templateUrl: "print-separator.component.html", styleUrls: ['print-separator.component.scss'], - providers: [NotificationService], + providers: [NotificationService, AppService], }) export class PrintSeparatorComponent implements OnInit { @@ -29,7 +29,7 @@ export class PrintSeparatorComponent implements OnInit { type : 'qrcode', target: 'entities', entities: [] - } + }; @ViewChild('snav') sidenavLeft: MatSidenav; @ViewChild('snav2') sidenavRight: MatSidenav;