[open-ils-commits] [GIT] Evergreen ILS branch rel_3_3 updated. 4ab843f4988f147ef1f5e8fcd8643d3ad8998c4d
Evergreen Git
git at git.evergreen-ils.org
Mon Dec 30 10:18:10 EST 2019
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, rel_3_3 has been updated
via 4ab843f4988f147ef1f5e8fcd8643d3ad8998c4d (commit)
from 2874b3d6f15c8bede787f2c319d64835b58a7b15 (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 4ab843f4988f147ef1f5e8fcd8643d3ad8998c4d
Author: Bill Erickson <berickxx at gmail.com>
Date: Thu Dec 26 13:18:26 2019 -0500
LP1857350 Org selector sorts by display value
When displaying the org unit selector, sort each set of children by the
display label (defaults to shortname).
Fixes issues with the org server sortTree function and adds a unit test
to test the repaired sort function.
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/org.service.ts b/Open-ILS/src/eg2/src/app/core/org.service.ts
index c666957d2c..f99b210556 100644
--- a/Open-ILS/src/eg2/src/app/core/org.service.ts
+++ b/Open-ILS/src/eg2/src/app/core/org.service.ts
@@ -150,11 +150,11 @@ export class OrgService {
if (!sortField) { sortField = 'shortname'; }
if (!node) { node = this.orgTree; }
node.children(
- node.children.sort((a, b) => {
+ node.children().sort((a, b) => {
return a[sortField]() < b[sortField]() ? -1 : 1;
})
);
- node.children.forEach(n => this.sortTree(n));
+ node.children().forEach(n => this.sortTree(sortField, n));
}
absorbTree(node?: IdlObject): void {
diff --git a/Open-ILS/src/eg2/src/app/core/org.spec.ts b/Open-ILS/src/eg2/src/app/core/org.spec.ts
index 78c2f26657..e764ec74f4 100644
--- a/Open-ILS/src/eg2/src/app/core/org.spec.ts
+++ b/Open-ILS/src/eg2/src/app/core/org.spec.ts
@@ -61,6 +61,12 @@ describe('OrgService', () => {
expect(orgService.root().id()).toEqual(1);
});
+ it('should sort tree by shortname', () => {
+ initTestData();
+ orgService.sortTree('shortname');
+ expect(orgService.root().children()[0].shortname()).toEqual('A');
+ });
+
});
diff --git a/Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts b/Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts
index f455c36bf3..334902ec21 100644
--- a/Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts
+++ b/Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts
@@ -100,6 +100,8 @@ export class OrgSelectComponent implements OnInit {
// Does not fire on initialOrg
@Output() onChange = new EventEmitter<IdlObject>();
+ sortedOrgs: IdlObject[] = [];
+
constructor(
private auth: AuthService,
private store: StoreService,
@@ -109,6 +111,14 @@ export class OrgSelectComponent implements OnInit {
ngOnInit() {
+ // Sort the tree and reabsorb to propagate the sorted nodes to the
+ // org.list() used by this component.
+ this.org.sortTree(this.displayField);
+ this.org.absorbTree();
+ // Maintain our own copy of the org list in case the org service
+ // is sorted in a different manner by other parts of the code.
+ this.sortedOrgs = this.org.list();
+
// Apply a default org unit if desired and possible.
if (!this.startOrg && this.applyDefault && this.auth.user()) {
// note: ws_ou defaults to home_ou on the server
@@ -186,7 +196,7 @@ export class OrgSelectComponent implements OnInit {
),
map(term => {
- let orgs = this.org.list().filter(org =>
+ let orgs = this.sortedOrgs.filter(org =>
this.hidden.filter(id => org.id() === id).length === 0
);
diff --git a/Open-ILS/src/eg2/src/test_data/eg_mock.js b/Open-ILS/src/eg2/src/test_data/eg_mock.js
index 3db357974f..d0588f5c06 100644
--- a/Open-ILS/src/eg2/src/test_data/eg_mock.js
+++ b/Open-ILS/src/eg2/src/test_data/eg_mock.js
@@ -30,11 +30,13 @@ window._eg_mock_data = {
org2.id(2);
org2.parent_ou(1);
org2.ou_type(type2);
+ org2.shortname('B'); // to test sorting
var org3 = idlService.create('aou');
org3.id(3);
org3.parent_ou(1);
org3.ou_type(type2);
+ org3.shortname('A'); // to test sorting
var org4 = idlService.create('aou');
org4.id(4);
-----------------------------------------------------------------------
Summary of changes:
Open-ILS/src/eg2/src/app/core/org.service.ts | 4 ++--
Open-ILS/src/eg2/src/app/core/org.spec.ts | 6 ++++++
.../src/eg2/src/app/share/org-select/org-select.component.ts | 12 +++++++++++-
Open-ILS/src/eg2/src/test_data/eg_mock.js | 2 ++
4 files changed, 21 insertions(+), 3 deletions(-)
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list