[open-ils-commits] [GIT] Evergreen ILS branch master updated. 593901297aee361be563d524a15a431035e1adfd

Evergreen Git git at git.evergreen-ils.org
Fri Jan 3 14:56:04 EST 2020


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, master has been updated
       via  593901297aee361be563d524a15a431035e1adfd (commit)
       via  d8d169f3ab86bd75e3c265d64690a6fe830b7a49 (commit)
       via  621b895def1a5bce7e0398f668b907314b79c127 (commit)
       via  f7d44220f0a4449bd81ec74aeba8dde643282c3c (commit)
       via  bb61f6a28184ea76a301514960ec56860f3dc341 (commit)
       via  37c9c2ff75d459ddddeb4ad43ed1b79f27d5381d (commit)
       via  b65c0b85e0b069a627eb7f7ce271ec2529591d83 (commit)
      from  75c6b77aabfd5fc0c1db36aa3b7b4f0d7357dd4a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 593901297aee361be563d524a15a431035e1adfd
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Fri Jan 3 11:02:29 2020 -0500

    LP#1858138: (follow-up) flesh creator and editor in sandbox's acp grid
    
    Doing so ensures that the usrnames are displayed in the respective
    grid columns rather than the au ID.
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
    Signed-off-by: Bill Erickson <berickxx at gmail.com>

diff --git a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
index b295fce48e..13cd009d60 100644
--- a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
@@ -222,7 +222,7 @@ export class SandboxComponent implements OnInit {
             return this.pcrud.search('acp',
                 query, {
                 flesh: 1,
-                flesh_fields: {acp: ['location', 'status']},
+                flesh_fields: {acp: ['location', 'status', 'creator', 'editor']},
                 offset: pager.offset,
                 limit: pager.limit,
                 order_by: orderBy

commit d8d169f3ab86bd75e3c265d64690a6fe830b7a49
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Fri Jan 3 10:35:56 2020 -0500

    LP#1858138: remove remaining uses of showLinkSelector
    
    Now that showLinkSelector is deprecated and does nothing,
    remove current uses of it.
    
    To test
    -------
    [1] Apply the patch.
    [2] Visit Angular admin interfaces that have grids that
        refer to linked IDL classes, e.g.,
    
        - Local Admin -> Carousels (carousel type)
        - Server Admin -> Weights Association (circ weights and hold
                                               weights)
        - Local Admin -> Item Tags (copy tag type)
        - Acq Admin -> EDI Accounts (provider)
    
    [3] Verify that the columns for linked fields display the
        appropriate selector field rather than the numeric ID.
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>

diff --git a/Open-ILS/src/eg2/src/app/staff/admin/local/admin-carousel.component.html b/Open-ILS/src/eg2/src/app/staff/admin/local/admin-carousel.component.html
index 64714af755..b73a969114 100644
--- a/Open-ILS/src/eg2/src/app/staff/admin/local/admin-carousel.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/admin/local/admin-carousel.component.html
@@ -41,7 +41,7 @@
 <eg-translate #translator></eg-translate>
 
 <eg-grid #grid idlClass="{{idlClass}}" [dataSource]="dataSource" 
-    [sortable]="true" persistKey="{{persistKey}}" [showLinkSelectors]="true">
+    [sortable]="true" persistKey="{{persistKey}}">
   <eg-grid-toolbar-button [disabled]="!canCreate" 
     label="New {{idlClassDef.label}}" i18n-label [action]="createNew">
   </eg-grid-toolbar-button>
diff --git a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
index 26da699522..d456ae08a3 100644
--- a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
@@ -265,7 +265,6 @@
   [dataSource]="acpSource"
   [filterable]="true"
   [sortable]="true"
-  [showLinkSelectors]="true"
   [stickyHeader]="true"
   showFields="barcode,location,circ_lib,price,dummy_title,create_date"
 >
diff --git a/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html b/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html
index c7479d62db..00bc67a47b 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html
@@ -34,7 +34,7 @@
 </ng-container>
 
 <eg-grid #grid idlClass="{{idlClass}}" [dataSource]="dataSource" 
-    [sortable]="true" persistKey="{{persistKey}}" [showLinkSelectors]="true">
+    [sortable]="true" persistKey="{{persistKey}}">
   <eg-grid-toolbar-button [disabled]="!canCreate" 
     label="New {{idlClassDef.label}}" i18n-label (onClick)="createNew()">
   </eg-grid-toolbar-button>

commit 621b895def1a5bce7e0398f668b907314b79c127
Author: Bill Erickson <berickxx at gmail.com>
Date:   Thu Jan 2 16:31:31 2020 -0500

    LP1858138 Sandbox example of simple grid filtering
    
    Adds a trimmed down grid example demonstrating consistent filtering and
    link selector display for auto and manual fields without requiring any
    additional grid markup to define basic column behevior.
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
index ed1b5813b4..26da699522 100644
--- a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
@@ -404,3 +404,15 @@
   </div>
 </div>
 
+<div class="mt-4 mb-4">
+  <h4>Grid Stock Selector Display and Filtering</h4>
+  <eg-grid #eventsGrid idlClass="atevdef"
+    [dataSource]="eventsDataSource"
+    showFields="name,hook,validator,reactor"
+    [sortable]="true" [filterable]="true">
+    <!-- demo how explicit fields and auto fields support link field selector
+         display and filtering consisently without additional biolerplate -->
+    <eg-grid-column name="name"></eg-grid-column>
+    <eg-grid-column name="hook"></eg-grid-column>
+  </eg-grid>
+</div>
diff --git a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
index 0dc8ee05f6..b295fce48e 100644
--- a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
@@ -63,6 +63,7 @@ export class SandboxComponent implements OnInit {
 
     btSource: GridDataSource = new GridDataSource();
     acpSource: GridDataSource = new GridDataSource();
+    eventsDataSource: GridDataSource = new GridDataSource();
     editSelected: (rows: IdlObject[]) => void;
     @ViewChild('acpGrid', { static: true }) acpGrid: GridComponent;
     @ViewChild('acpEditDialog', { static: true }) editDialog: FmRecordEditorComponent;
@@ -228,6 +229,33 @@ export class SandboxComponent implements OnInit {
             });
         };
 
+        this.eventsDataSource.getRows = (pager: Pager, sort: any[]) => {
+
+            const orderEventsBy: any = {atevdef: 'name'};
+            if (sort.length) {
+                orderEventsBy.atevdef = sort[0].name + ' ' + sort[0].dir;
+            }
+
+            const base: Object = {};
+            base[this.idl.classes['atevdef'].pkey] = {'!=' : null};
+            const query: any = new Array();
+            query.push(base);
+
+            Object.keys(this.eventsDataSource.filters).forEach(key => {
+                Object.keys(this.eventsDataSource.filters[key]).forEach(key2 => {
+                    query.push(this.eventsDataSource.filters[key][key2]);
+                });
+            });
+
+            return this.pcrud.search('atevdef', query, {
+                flesh: 1,
+                flesh_fields: {atevdef: ['hook', 'validator', 'reactor']},
+                offset: pager.offset,
+                limit: pager.limit,
+                order_by: orderEventsBy
+            });
+        };
+
         this.editSelected = (idlThings: IdlObject[]) => {
 
             // Edit each IDL thing one at a time

commit f7d44220f0a4449bd81ec74aeba8dde643282c3c
Author: Bill Erickson <berickxx at gmail.com>
Date:   Thu Jan 2 16:28:46 2020 -0500

    LP1858138 Link selector consolidation/repairs
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/Open-ILS/src/eg2/src/app/core/idl.service.ts b/Open-ILS/src/eg2/src/app/core/idl.service.ts
index fee3bd9637..040bbba8da 100644
--- a/Open-ILS/src/eg2/src/app/core/idl.service.ts
+++ b/Open-ILS/src/eg2/src/app/core/idl.service.ts
@@ -168,7 +168,7 @@ export class IdlService {
             const classDef = this.classes[idlClass];
 
             if (classDef.pkey) {
-                let selector = classDef.field_map[classDef.pkey].selector;
+                const selector = classDef.field_map[classDef.pkey].selector;
                 if (selector) { return selector; }
 
                 // No selector defined in the IDL, try 'name'.

commit bb61f6a28184ea76a301514960ec56860f3dc341
Author: Bill Erickson <berickxx at gmail.com>
Date:   Thu Jan 2 16:22:34 2020 -0500

    LP1858138 Grid IDL field definition repairs and more
    
    * Deprecate showLinkSelectors, since FormatService now performs that
      logic under the covers.  Includes deprecation console warning.
    
    * Fix Grid field IDL class extraction off-by-one error.  The code was
      stamping the source field with the class of the field's link target
      instead of the class the field actually belonged to.
    
    * Allow for IDL field info extraction from the 'name' attribute when no
      'path' attribute is defined.
    
    * Avoid console errors when clearing combobox values in grid filters.
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid-filter-control.component.ts b/Open-ILS/src/eg2/src/app/share/grid/grid-filter-control.component.ts
index f5931b4059..8ed77f7c7d 100644
--- a/Open-ILS/src/eg2/src/app/share/grid/grid-filter-control.component.ts
+++ b/Open-ILS/src/eg2/src/app/share/grid/grid-filter-control.component.ts
@@ -62,9 +62,16 @@ export class GridFilterControlComponent implements OnInit {
         col.isFiltered = true;
         this.context.reload();
     }
+
     applyLinkFilter($event, col: GridColumn) {
-        col.filterValue = $event.id;
-        this.applyFilter(col);
+        if ($event) {
+            col.filterValue = $event.id;
+            this.applyFilter(col);
+
+        } else {
+            // Value was cleared from the combobox
+            this.clearFilter(col);
+        }
     }
 
     // TODO: this was copied from date-select and
diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid.component.ts b/Open-ILS/src/eg2/src/app/share/grid/grid.component.ts
index 0d2321f116..e3decc643f 100644
--- a/Open-ILS/src/eg2/src/app/share/grid/grid.component.ts
+++ b/Open-ILS/src/eg2/src/app/share/grid/grid.component.ts
@@ -89,18 +89,6 @@ export class GridComponent implements OnInit, AfterViewInit, OnDestroy {
     // Pass in a default page size.  May be overridden by settings.
     @Input() pageSize: number;
 
-    // If true and an idlClass is specificed, the grid assumes
-    // datatype=link fields that link to classes which define a selector
-    // are fleshed with the linked object.  And, instead of displaying
-    // the raw field value, displays the selector value from the linked
-    // object.  The caller is responsible for fleshing the appropriate
-    // fields in the GridDataSource getRows handler.
-    //
-    // This only applies to auto-generated columns.
-    //
-    // For example, idlClass="aou" and field="ou_type", the display
-    // value will be ou_type().name() since "name" is the selector
-    // field on the "aout" class.
     @Input() showLinkSelectors: boolean;
 
     @Input() disablePaging: boolean;
@@ -155,7 +143,6 @@ export class GridComponent implements OnInit, AfterViewInit, OnDestroy {
         this.context.isMultiSortable = this.multiSortable === true;
         this.context.useLocalSort = this.useLocalSort === true;
         this.context.disableSelect = this.disableSelect === true;
-        this.context.showLinkSelectors = this.showLinkSelectors === true;
         this.context.disableMultiSelect = this.disableMultiSelect === true;
         this.context.rowFlairIsEnabled = this.rowFlairIsEnabled  === true;
         this.context.showDeclaredFieldsOnly = this.showDeclaredFieldsOnly;
@@ -182,6 +169,11 @@ export class GridComponent implements OnInit, AfterViewInit, OnDestroy {
         this.context.cellClassCallback =
             this.cellClassCallback || function() { return ''; };
 
+        if (this.showLinkSelectors) {
+            console.debug(
+                'showLinkSelectors is deprecated and no longer has any effect');
+        }
+
         this.context.init();
     }
 
diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid.ts b/Open-ILS/src/eg2/src/app/share/grid/grid.ts
index 01b5c09aa8..87dfc2bd9a 100644
--- a/Open-ILS/src/eg2/src/app/share/grid/grid.ts
+++ b/Open-ILS/src/eg2/src/app/share/grid/grid.ts
@@ -176,23 +176,32 @@ export class GridColumnSet {
 
         let idlParent;
         let idlField;
-        let idlClass = this.idl.classes[this.idlClass];
+        let idlClass;
+        let nextIdlClass = this.idl.classes[this.idlClass];
 
         const pathParts = dotpath.split(/\./);
 
         for (let i = 0; i < pathParts.length; i++) {
+
             const part = pathParts[i];
             idlParent = idlField;
+            idlClass = nextIdlClass;
             idlField = idlClass.field_map[part];
 
-            if (idlField) {
-                if (idlField['class'] && (
-                    idlField.datatype === 'link' ||
-                    idlField.datatype === 'org_unit')) {
-                    idlClass = this.idl.classes[idlField['class']];
-                }
-            } else {
-                return null;
+            if (!idlField) { return null; } // invalid IDL path
+
+            if (i === pathParts.length - 1) {
+                // No more links to process.
+                break;
+            }
+
+            if (idlField['class'] && (
+                idlField.datatype === 'link' ||
+                idlField.datatype === 'org_unit')) {
+                // The link class on the current field refers to the
+                // class of the link destination, not the current field.
+                // Mark it for processing during the next iteration.
+                nextIdlClass = this.idl.classes[idlField['class']];
             }
         }
 
@@ -215,8 +224,8 @@ export class GridColumnSet {
 
     applyColumnDefaults(col: GridColumn) {
 
-        if (!col.idlFieldDef && col.path) {
-            const idlInfo = this.idlInfoFromDotpath(col.path);
+        if (!col.idlFieldDef) {
+            const idlInfo = this.idlInfoFromDotpath(col.path || col.name);
             if (idlInfo) {
                 col.idlFieldDef = idlInfo.idlField;
                 col.idlClass = idlInfo.idlClass.name;
@@ -479,7 +488,6 @@ export class GridContext {
     defaultVisibleFields: string[];
     defaultHiddenFields: string[];
     overflowCells: boolean;
-    showLinkSelectors: boolean;
     disablePaging: boolean;
     showDeclaredFieldsOnly: boolean;
 
@@ -1057,14 +1065,6 @@ export class GridContext {
             col.isIndex = (field.name === pkeyField);
             col.isAuto = true;
 
-            if (this.showLinkSelectors) {
-                const selector = this.idl.getLinkSelector(
-                    this.columnSet.idlClass, field.name);
-                if (selector) {
-                    col.path = field.name + '.' + selector;
-                }
-            }
-
             if (this.showDeclaredFieldsOnly) {
                 col.hidden = true;
             }

commit 37c9c2ff75d459ddddeb4ad43ed1b79f27d5381d
Author: Bill Erickson <berickxx at gmail.com>
Date:   Thu Jan 2 16:17:59 2020 -0500

    LP1858138 Link selector consolidation/repairs
    
    Move more of the IDL link class selector extraction logic into the IDL
    service.
    
    Avoid using 'name' as a fall-through selector field when no 'name' field
    exists on the class.
    
    Teach the idl service to log warnings on invalid class and field name
    combinations in selector lookups.
    
    Modify fm-editor and combobox to use the new idl link selector
    functions.
    
    While we're in there, avoid unnecessary API calls from the combobox
    by preventing async data lookups with a search term of "_CLICK_".
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/Open-ILS/src/eg2/src/app/core/idl.service.ts b/Open-ILS/src/eg2/src/app/core/idl.service.ts
index b5abf61d78..fee3bd9637 100644
--- a/Open-ILS/src/eg2/src/app/core/idl.service.ts
+++ b/Open-ILS/src/eg2/src/app/core/idl.service.ts
@@ -140,6 +140,12 @@ export class IdlService {
     getLinkSelector(fmClass: string, field: string): string {
         let fieldDef = this.classes[fmClass].field_map[field];
 
+        if (!fieldDef) {
+            console.warn(
+                `No such field "${field}" for IDL class "${fmClass}"`);
+            return null;
+        }
+
         if (fieldDef.map) {
             // For mapped fields, we want the selector field on the
             // remotely linked object instead of the directly
@@ -149,11 +155,27 @@ export class IdlService {
         }
 
         if (fieldDef.class) {
-            const classDef = this.classes[fieldDef.class];
+            return this.getClassSelector(fieldDef.class);
+        }
+        return null;
+    }
+
+    // Return the selector field for the class.  If no selector is
+    // defined, use 'name' if it exists as a field on the class.
+    getClassSelector(idlClass: string): string {
+
+        if (idlClass) {
+            const classDef = this.classes[idlClass];
+
             if (classDef.pkey) {
-                return classDef.field_map[classDef.pkey].selector || null;
+                let selector = classDef.field_map[classDef.pkey].selector;
+                if (selector) { return selector; }
+
+                // No selector defined in the IDL, try 'name'.
+                if ('name' in classDef.field_map) { return 'name'; }
             }
         }
+
         return null;
     }
 
diff --git a/Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts b/Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts
index ea49034a57..3d9860471f 100644
--- a/Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts
+++ b/Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts
@@ -173,7 +173,7 @@ export class ComboboxComponent implements ControlValueAccessor, OnInit {
             }
 
             if (!this.idlField) {
-                this.idlField = classDef.field_map[classDef.pkey].selector || 'name';
+                this.idlField = this.idl.getClassSelector(this.idlClass);
             }
 
             this.asyncDataSource = term => {
@@ -332,8 +332,12 @@ export class ComboboxComponent implements ControlValueAccessor, OnInit {
 
         let searchTerm: string;
         searchTerm = term;
-        if (searchTerm === '_CLICK_' && this.asyncSupportsEmptyTermClick) {
-            searchTerm = '';
+        if (searchTerm === '_CLICK_') {
+            if (this.asyncSupportsEmptyTermClick) {
+                searchTerm = '';
+            } else {
+                return of();
+            }
         }
 
         return new Observable(observer => {
diff --git a/Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.ts b/Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.ts
index 6b6d3eb670..58c400fcf1 100644
--- a/Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.ts
+++ b/Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.ts
@@ -399,24 +399,13 @@ export class FmRecordEditorComponent
         });
     }
 
-    // Returns the name of the field on a class (typically via a linked
-    // field) that acts as the selector value for display / search.
-    getClassSelector(class_: string): string {
-        if (class_) {
-            const linkedClass = this.idl.classes[class_];
-            return linkedClass.pkey ?
-                linkedClass.field_map[linkedClass.pkey].selector : null;
-        }
-        return null;
-    }
-
     private flattenLinkedValues(field: any, list: IdlObject[]): ComboboxEntry[] {
         const class_ = field.class;
         const fieldOptions = this.fieldOptions[field.name] || {};
         const idField = this.idl.classes[class_].pkey;
 
         const selector = fieldOptions.linkedSearchField
-            || this.getClassSelector(class_) || idField;
+            || this.idl.getClassSelector(class_) || idField;
 
         return list.map(item => {
             return {id: item[idField](), label: item[selector]()};
@@ -499,7 +488,7 @@ export class FmRecordEditorComponent
                 // field.  Otherwise, avoid the network lookup and let the
                 // bare value (usually an ID) be displayed.
                 const selector = fieldOptions.linkedSearchField ||
-                    this.getClassSelector(field.class);
+                    this.idl.getClassSelector(field.class);
 
                 if (selector && selector !== field.name) {
                     promise = this.pcrud.retrieve(field.class, idToFetch)
@@ -544,7 +533,7 @@ export class FmRecordEditorComponent
         }
 
         const selector = fieldOptions.linkedSearchField ||
-            this.getClassSelector(field.class);
+            this.idl.getClassSelector(field.class);
 
         if (!selector && !fieldOptions.preloadLinkedValues) {
             // User probably expects an async data source, but we can't

commit b65c0b85e0b069a627eb7f7ce271ec2529591d83
Author: Bill Erickson <berickxx at gmail.com>
Date:   Thu Jan 2 15:19:16 2020 -0500

    LP1858138 Action/Trigger IDL selector additions
    
    Adds selector field entries for Action/Trigger hook, collector,
    validator, reactor, and cleanup classes for ease of admin page building.
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml
index bb01086e3c..75b52a7597 100644
--- a/Open-ILS/examples/fm_IDL.xml
+++ b/Open-ILS/examples/fm_IDL.xml
@@ -1322,7 +1322,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 	<class id="ath" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::hook" oils_persist:tablename="action_trigger.hook" reporter:label="Trigger Hook Point">
 		<fields oils_persist:primary="key">
-			<field reporter:label="Hook Key" name="key" reporter:datatype="text"/>
+			<field reporter:label="Hook Key" name="key" reporter:datatype="text" reporter:selector="key"/>
 			<field reporter:label="Core Type" name="core_type" reporter:datatype="text"/>
 			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 			<field reporter:label="Passive" name="passive"  reporter:datatype="bool"/>
@@ -1340,7 +1340,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 	<class id="atcol" controller="open-ils.cstore" oils_obj:fieldmapper="action_trigger::collector" oils_persist:tablename="action_trigger.collector" reporter:label="Trigger Environment Collector">
 		<fields oils_persist:primary="module">
-			<field reporter:label="Module Name" name="module" reporter:datatype="text"/>
+			<field reporter:label="Module Name" name="module" reporter:datatype="text" reporter:selector="module"/>
 			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
@@ -1348,7 +1348,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 	<class id="atval" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::validator" oils_persist:tablename="action_trigger.validator" reporter:label="Trigger Condition Validator">
 		<fields oils_persist:primary="module">
-			<field reporter:label="Module Name" name="module" reporter:datatype="text"/>
+			<field reporter:label="Module Name" name="module" reporter:datatype="text" reporter:selector="module"/>
 			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
@@ -1364,7 +1364,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 	<class id="atreact" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::reactor" oils_persist:tablename="action_trigger.reactor" reporter:label="Trigger Event Reactor">
 		<fields oils_persist:primary="module">
-			<field reporter:label="Module Name" name="module" reporter:datatype="text"/>
+			<field reporter:label="Module Name" name="module" reporter:datatype="text" reporter:selector="module"/>
 			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
@@ -1380,7 +1380,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 	<class id="atclean" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action_trigger::cleanup" oils_persist:tablename="action_trigger.cleanup" reporter:label="Trigger Event Cleanup">
 		<fields oils_persist:primary="module">
-			<field reporter:label="Module Name" name="module" reporter:datatype="text"/>
+			<field reporter:label="Module Name" name="module" reporter:datatype="text" reporter:selector="module"/>
 			<field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>

-----------------------------------------------------------------------

Summary of changes:
 Open-ILS/examples/fm_IDL.xml                       | 10 +++---
 Open-ILS/src/eg2/src/app/core/idl.service.ts       | 26 ++++++++++++--
 .../src/app/share/combobox/combobox.component.ts   | 10 ++++--
 .../src/app/share/fm-editor/fm-editor.component.ts | 17 ++-------
 .../share/grid/grid-filter-control.component.ts    | 11 ++++--
 .../src/eg2/src/app/share/grid/grid.component.ts   | 18 +++-------
 Open-ILS/src/eg2/src/app/share/grid/grid.ts        | 40 +++++++++++-----------
 .../admin/local/admin-carousel.component.html      |  2 +-
 .../src/app/staff/sandbox/sandbox.component.html   | 13 ++++++-
 .../eg2/src/app/staff/sandbox/sandbox.component.ts | 30 +++++++++++++++-
 .../share/admin-page/admin-page.component.html     |  2 +-
 11 files changed, 116 insertions(+), 63 deletions(-)


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list