implement save search as default button
authorGalen Charlton <gmc@equinoxinitiative.org>
Mon, 20 Jan 2020 23:01:05 +0000 (18:01 -0500)
committerGalen Charlton <gmc@equinoxinitiative.org>
Mon, 20 Jan 2020 23:01:05 +0000 (18:01 -0500)
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/eg2/src/app/staff/acq/search/acq-search-form.component.html
Open-ILS/src/eg2/src/app/staff/acq/search/acq-search-form.component.ts
Open-ILS/src/eg2/src/app/staff/acq/search/invoice-results.component.html
Open-ILS/src/eg2/src/app/staff/acq/search/lineitem-results.component.html
Open-ILS/src/eg2/src/app/staff/acq/search/picklist-results.component.html
Open-ILS/src/eg2/src/app/staff/acq/search/purchase-order-results.component.html

index 0580d41..3a5e477 100644 (file)
 </div>
 <div class="row">
   <div class="col-lg-2">
-    <button class="form-control btn-success" (click)="submitSearch()" i18n>Search</button>
+    <button class="form-control btn btn-success" (click)="submitSearch()" i18n>Search</button>
+  </div>
+  <div class="col-lg-8"></div>
+  <div class="col-lg-2">
+    <button class="form-control btn btn-primary" (click)="saveSearchAsDefault()" i18n>Set As Default Search</button>
   </div>
 </div>
 </div>
index c745c01..2ef2da4 100644 (file)
@@ -5,6 +5,7 @@ import {StaffCommonModule} from '@eg/staff/common.module';
 import {IdlService, IdlObject} from '@eg/core/idl.service';
 import {PcrudService} from '@eg/core/pcrud.service';
 import {AcqSearchTerm} from './acq-search.service';
+import {ServerStoreService} from '@eg/core/server-store.service';
 
 @Component({
   selector: 'eg-acq-search-form',
@@ -15,6 +16,7 @@ import {AcqSearchTerm} from './acq-search.service';
 export class AcqSearchFormComponent implements OnInit, AfterViewInit {
 
     @Input() initialSearchTerms: AcqSearchTerm[] = [];
+    @Input() defaultSearchSetting = '';
 
     @Output() searchSubmitted = new EventEmitter<AcqSearchTerm[]>();
 
@@ -31,6 +33,7 @@ export class AcqSearchFormComponent implements OnInit, AfterViewInit {
         private router: Router,
         private route: ActivatedRoute,
         private pcrud: PcrudService,
+        private store: ServerStoreService,
         private idl: IdlService,
     ) {}
 
@@ -77,7 +80,16 @@ export class AcqSearchFormComponent implements OnInit, AfterViewInit {
             this.searchTerms = JSON.parse(JSON.stringify(this.initialSearchTerms)); // deep copy
             this.submitSearch();
         } else {
-            this.addSearchTerm();
+            this.store.getItem(this.defaultSearchSetting).then(
+                defaultSearch => {
+                    if (defaultSearch) {
+                        this.searchTerms = JSON.parse(JSON.stringify(defaultSearch));
+                        this.submitSearch();
+                    } else {
+                        this.addSearchTerm();
+                    }
+                }
+            );
         }
     }
 
@@ -118,4 +130,8 @@ export class AcqSearchFormComponent implements OnInit, AfterViewInit {
     submitSearch() {
         this.searchSubmitted.emit(this.searchTerms);
     }
+
+    saveSearchAsDefault() {
+        return this.store.setItem(this.defaultSearchSetting, this.searchTerms);
+    }
 }
index 0f778bc..e85c382 100644 (file)
@@ -1,4 +1,4 @@
-<eg-acq-search-form (searchSubmitted)="doSearch($event)" [initialSearchTerms]="initialSearchTerms"></eg-acq-search-form>
+<eg-acq-search-form (searchSubmitted)="doSearch($event)" [initialSearchTerms]="initialSearchTerms" defaultSearchSetting="eg.acq.search.default.invoices"></eg-acq-search-form>
 
 <ng-template #inv_identTmpl let-invoice="row">
   <a href="/eg/staff/acq/legacy/invoice/view/{{invoice.id()}}"
index 59dd86f..794fa40 100644 (file)
@@ -1,4 +1,4 @@
-<eg-acq-search-form (searchSubmitted)="doSearch($event)" [initialSearchTerms]="initialSearchTerms"></eg-acq-search-form>
+<eg-acq-search-form (searchSubmitted)="doSearch($event)" [initialSearchTerms]="initialSearchTerms" defaultSearchSetting="eg.acq.search.default.lineitems"></eg-acq-search-form>
 
 <ng-template #idTmpl let-lineitem="row">
   <a *ngIf="lineitem.purchase_order()" href="/eg/staff/acq/legacy/po/view/{{lineitem.purchase_order()}}?focus_li={{lineitem.id()}}"
index c66fbfd..9020e8d 100644 (file)
@@ -1,4 +1,4 @@
-<eg-acq-search-form (searchSubmitted)="doSearch($event)" [initialSearchTerms]="initialSearchTerms"></eg-acq-search-form>
+<eg-acq-search-form (searchSubmitted)="doSearch($event)" [initialSearchTerms]="initialSearchTerms" defaultSearchSetting="eg.acq.search.default.selectionlists"></eg-acq-search-form>
 
 <eg-string #createSelectionListString i18n-text text="Selection List Created">
 </eg-string>
index b9e83a5..6ee6bda 100644 (file)
@@ -1,4 +1,4 @@
-<eg-acq-search-form (searchSubmitted)="doSearch($event)" [initialSearchTerms]="initialSearchTerms"></eg-acq-search-form>
+<eg-acq-search-form (searchSubmitted)="doSearch($event)" [initialSearchTerms]="initialSearchTerms" defaultSearchSetting="eg.acq.search.default.purchaseorders"></eg-acq-search-form>
 
 <ng-template #nameTmpl let-purchaseorder="row">
   <a href="/eg/staff/acq/legacy/po/view/{{purchaseorder.id()}}"