LP1806087 Ang catalog pending tabs offer manual redirect
authorBill Erickson <berickxx@gmail.com>
Thu, 21 Feb 2019 18:12:52 +0000 (13:12 -0500)
committerDan Wells <dbw2@calvin.edu>
Fri, 1 Mar 2019 21:57:44 +0000 (16:57 -0500)
Instead of sending users to the AngJS versions of not-yet-implemented
tabs from the Angular catalog, show a message indicating the tab is not
yet implemented and offer a link to open the requested record tab in a
new browser tab.  This better clarifies what is happening and helps to
avoid situations where the back-button is confusingly hijacked via
intermediate redirect.

We now also open the "View" link for copies in a new tab as well for
consistency with the modified "Edit" link.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/src/eg2/src/app/staff/catalog/record/copies.component.html
Open-ILS/src/eg2/src/app/staff/catalog/record/record.component.html
Open-ILS/src/eg2/src/app/staff/catalog/record/record.component.ts

index e60fb24..dd5718e 100644 (file)
@@ -7,9 +7,11 @@
 <ng-template #barcodeTemplate let-copy="row">
   <div>{{copy.barcode}}</div>
   <div>
-  <a class="pl-1" href="/eg/staff/cat/item/{{copy.id}}" i18n>View</a>
+  <a class="pl-1" target="_blank" 
+    href="/eg/staff/cat/item/{{copy.id}}" i18n>View</a>
   | 
-  <a class="pl-1" href="/eg/staff/cat/item/{{copy.id}}/edit" i18n>Edit</a>
+  <a class="pl-1" target="_blank"
+    href="/eg/staff/cat/item/{{copy.id}}/edit" i18n>Edit</a>
   </div>
 </ng-template>
 
index d138523..0bfc6fb 100644 (file)
       </ngb-tab>
       <!-- NOTE some tabs send the user over to the AngJS app -->
       <ngb-tab title="MARC Edit" i18n-title id="marc_edit">
+        <ng-template ngbTabContent>
+          <div class="alert alert-info mt-3" i18n>
+            MARC Edit not yet implemented.  See the
+            <a target="_blank"
+              href="/eg/staff/cat/catalog/record/{{recordId}}/marc_edit">
+              AngularJS MARC Edit Tab.
+            </a>
+          </div>
+        </ng-template>
       </ngb-tab>
       <ngb-tab title="MARC View" i18n-title id="marc_html">
         <ng-template ngbTabContent>
         </ng-template>
       </ngb-tab>
       <ngb-tab title="View Holds" i18n-title id="holds">
+        <ng-template ngbTabContent>
+          <div class="alert alert-info mt-3" i18n>
+            Holds tab not yet implemented.  See the
+            <a target="_blank"
+              href="/eg/staff/cat/catalog/record/{{recordId}}/holds">
+              AngularJS Holds Tab.
+            </a>
+          </div>
+        </ng-template>
       </ngb-tab>
       <ngb-tab title="Monograph Parts" i18n-title id="monoparts">
         <ng-template ngbTabContent>
         </ng-template>
       </ngb-tab>
       <ngb-tab title="Holdings View" i18n-title id="holdings">
+        <ng-template ngbTabContent>
+          <div class="alert alert-info mt-3" i18n>
+            Holdings not yet implemented.  See the
+            <a target="_blank"
+              href="/eg/staff/cat/catalog/record/{{recordId}}/holdings">
+              AngularJS Holdings Tab.
+            </a>
+          </div>
+        </ng-template>
       </ngb-tab>
       <ngb-tab title="Conjoined Items" i18n-title id="conjoined">
+        <ng-template ngbTabContent>
+          <div class="alert alert-info mt-3" i18n>
+            Conjoined Items not yet implemented.  See the
+            <a target="_blank"
+              href="/eg/staff/cat/catalog/record/{{recordId}}/conjoined">
+              AngularJS Conjoined Items Tab.
+            </a>
+          </div>
+        </ng-template>
       </ngb-tab>
     </ngb-tabset>
   </div>
index e6832f1..2a98e36 100644 (file)
@@ -10,13 +10,6 @@ import {StaffCatalogService} from '../catalog.service';
 import {BibSummaryComponent} from '@eg/staff/share/bib-summary/bib-summary.component';
 import {StoreService} from '@eg/core/store.service';
 
-const ANGJS_TABS: any = {
-    marc_edit: true,
-    holds: true,
-    holdings: true,
-    conjoined: true
-};
-
 @Component({
   selector: 'eg-catalog-record',
   templateUrl: 'record.component.html'
@@ -47,9 +40,6 @@ export class RecordComponent implements OnInit {
             this.store.getLocalItem('eg.cat.default_record_tab')
             || 'catalog';
 
-        // TODO: Implement default tab handling for tabs that require
-        // and AngJS redirect.
-
         // Watch for URL record ID changes
         // This includes the initial route.
         // When applying the default configured tab, no navigation occurs
@@ -63,11 +53,6 @@ export class RecordComponent implements OnInit {
 
             if (!this.recordTab) {
                 this.recordTab = this.defaultTab || 'catalog';
-                // On initial load, if the default tab is set to one of
-                // the AngularJS tabs, redirect the user there.
-                if (this.recordTab in ANGJS_TABS) {
-                    return this.routeToTab();
-                }
             }
 
             this.loadRecord();
@@ -91,16 +76,6 @@ export class RecordComponent implements OnInit {
     }
 
     routeToTab() {
-
-        // Route to the AngularJS catalog tab
-        if (this.recordTab in ANGJS_TABS) {
-            const angjsBase = '/eg/staff/cat/catalog/record';
-
-            window.location.href =
-                `${angjsBase}/${this.recordId}/${this.recordTab}`;
-            return;
-        }
-
         const url =
             `/staff/catalog/record/${this.recordId}/${this.recordTab}`;