From eb7a1321adf91d81a99071bea4baff2daec9ac7e Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Fri, 22 Feb 2019 19:40:49 +0100
Subject: [PATCH] improve context menu actions

---
 .../app/actions/actions-list.component.html      |  6 +++---
 src/frontend/app/list/basket-list.component.html |  4 ++--
 src/frontend/app/list/basket-list.component.ts   | 16 +++++++++++-----
 3 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/frontend/app/actions/actions-list.component.html b/src/frontend/app/actions/actions-list.component.html
index 6652d7a6fae..565bcf3d075 100644
--- a/src/frontend/app/actions/actions-list.component.html
+++ b/src/frontend/app/actions/actions-list.component.html
@@ -6,11 +6,11 @@
     [style.top]="contextMenuPosition.y"></span>
 
 <mat-menu #menu="matMenu">
-    <div style="text-align: center;font-size: 10px;opacity: 0.5;margin-top:-15px;">
-        <ng-container *ngIf="!contextMode || (contextMode && this.selectedRes.length > 0)">
+    <div style="text-align: center;font-size: 10px;opacity: 0.5;margin-top:-15px;padding:5px;">
+        <ng-container *ngIf="!contextMode || (contextMode && this.selectedRes.length > 1)">
             {{selectedRes.length}} {{lang.selectedElements}}
         </ng-container>
-        <ng-container *ngIf="contextMode && this.selectedRes.length == 0">
+        <ng-container *ngIf="contextMode && this.selectedRes.length == 1">
             {{this.contextMenuTitle}}
         </ng-container>
     </div>
diff --git a/src/frontend/app/list/basket-list.component.html b/src/frontend/app/list/basket-list.component.html
index bf8fbad878f..56a41ae901d 100644
--- a/src/frontend/app/list/basket-list.component.html
+++ b/src/frontend/app/list/basket-list.component.html
@@ -72,11 +72,11 @@
                             <!-- Primary Info Line -->
                             <div class="resultRow newRow" [class.resultRow-mobile]="mobileMode">
                                 <div *ngIf="!mobileMode" class="checkThis">
-                                    <mat-checkbox color="primary" [checked]="row.checked" (change)="toggleRes($event,row.res_id)"
+                                    <mat-checkbox color="primary" [checked]="row.checked" (change)="toggleRes($event,row)"
                                         (click)="$event.stopPropagation();"></mat-checkbox>
                                 </div>
                                 <div class="resultCol" [class]="data.cssClasses.join(' ')" *ngFor="let data of displayedMainData"
-                                    (click)="launchEvent();" style="cursor: pointer;">
+                                     style="cursor: pointer;">
                                     <span *ngIf="data.value == 'alt_identifier'">
                                         <mat-icon [ngStyle]="{'color': row.priorityColor}" color="primary" class="{{row.statusImage.charAt(0)}}{{row.statusImage.charAt(1)}} {{row.statusImage}} {{row.statusImage.charAt(0)}}{{row.statusImage.charAt(1)}}-2x"
                                             title="{{row.statusLabel}}" style="cursor: crosshair;" (click)="$event.stopPropagation();filterThis(row.statusLabel)"></mat-icon><br />
diff --git a/src/frontend/app/list/basket-list.component.ts b/src/frontend/app/list/basket-list.component.ts
index 4e5530b48ed..e9186d4acc6 100755
--- a/src/frontend/app/list/basket-list.component.ts
+++ b/src/frontend/app/list/basket-list.component.ts
@@ -327,14 +327,16 @@ export class BasketListComponent implements OnInit {
         return data;
     }
 
-    toggleRes(e: any, resId: any) {
+    toggleRes(e: any, row: any) {
         if (e.checked) {
-            if (this.selectedRes.indexOf(resId) === -1) {
-                this.selectedRes.push(resId);
+            if (this.selectedRes.indexOf(row.res_id) === -1) {
+                this.selectedRes.push(row.res_id);
+                row.checked = true;
             }
         } else {
-            let index = this.selectedRes.indexOf(resId);
+            let index = this.selectedRes.indexOf(row.res_id);
             this.selectedRes.splice(index, 1);
+            row.checked = false;
         }
     }
 
@@ -353,7 +355,11 @@ export class BasketListComponent implements OnInit {
     }
 
     open({ x, y }: MouseEvent, row: any) {
-    
+        let thisSelect = { checked : true };
+        let thisDeselect = { checked : false };
+        row.checked = true;
+        this.toggleAllRes(thisDeselect);
+        this.toggleRes(thisSelect, row);
         this.actionsList.open(x, y, row)
 
         // prevents default
-- 
GitLab