Facet filtering modified:

- Author and Subjects substituted by Creator and Keyword
- Facet labels now separated by "|" instead of comma
This commit is contained in:
Porras-Bernardez 2024-08-09 16:17:30 +02:00
parent cc62df68da
commit 110c2db8bf
6 changed files with 89 additions and 40 deletions

83
package-lock.json generated
View File

@ -14,7 +14,7 @@
"axios": "^1.2.2", "axios": "^1.2.2",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"dayjs": "^1.10.7", "dayjs": "^1.10.7",
"dompurify": "^3.1.5", "dompurify": "^3.1.6",
"leaflet": "^1.7.1", "leaflet": "^1.7.1",
"qs": "^6.10.1", "qs": "^6.10.1",
"rxjs": "^7.5.5", "rxjs": "^7.5.5",
@ -2504,6 +2504,7 @@
"resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz",
"integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@types/trusted-types": "*" "@types/trusted-types": "*"
} }
@ -3972,10 +3973,11 @@
"peer": true "peer": true
}, },
"node_modules/assert-never": { "node_modules/assert-never": {
"version": "1.2.1", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.3.0.tgz",
"integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", "integrity": "sha512-9Z3vxQ+berkL/JJo0dK+EY3Lp0s3NtSnP3VCLsh5HDcZPrh0M+KQRK5sWhUeyPPH+/RCxZqOxLMR+YC6vlviEQ==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true "peer": true
}, },
"node_modules/async": { "node_modules/async": {
@ -4143,6 +4145,7 @@
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
"integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@babel/types": "^7.9.6" "@babel/types": "^7.9.6"
@ -4310,12 +4313,13 @@
} }
}, },
"node_modules/braces": { "node_modules/braces": {
"version": "3.0.2", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"fill-range": "^7.0.1" "fill-range": "^7.1.1"
}, },
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -5582,6 +5586,7 @@
"resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
"integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true "peer": true
}, },
"node_modules/dom-converter": { "node_modules/dom-converter": {
@ -5644,9 +5649,10 @@
} }
}, },
"node_modules/dompurify": { "node_modules/dompurify": {
"version": "3.1.5", "version": "3.1.6",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz",
"integrity": "sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==" "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==",
"license": "(MPL-2.0 OR Apache-2.0)"
}, },
"node_modules/domutils": { "node_modules/domutils": {
"version": "2.8.0", "version": "2.8.0",
@ -6658,10 +6664,11 @@
} }
}, },
"node_modules/fill-range": { "node_modules/fill-range": {
"version": "7.0.1", "version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"to-regex-range": "^5.0.1" "to-regex-range": "^5.0.1"
}, },
@ -7838,6 +7845,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=0.12.0" "node": ">=0.12.0"
} }
@ -8048,6 +8056,7 @@
"resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
"integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true "peer": true
}, },
"node_modules/js-tokens": { "node_modules/js-tokens": {
@ -10416,13 +10425,14 @@
"dev": true "dev": true
}, },
"node_modules/pug": { "node_modules/pug": {
"version": "3.0.2", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz",
"integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", "integrity": "sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"pug-code-gen": "^3.0.2", "pug-code-gen": "^3.0.3",
"pug-filters": "^4.0.0", "pug-filters": "^4.0.0",
"pug-lexer": "^5.0.1", "pug-lexer": "^5.0.1",
"pug-linker": "^4.0.0", "pug-linker": "^4.0.0",
@ -10437,6 +10447,7 @@
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
"integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"constantinople": "^4.0.1", "constantinople": "^4.0.1",
@ -10445,27 +10456,29 @@
} }
}, },
"node_modules/pug-code-gen": { "node_modules/pug-code-gen": {
"version": "3.0.2", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz",
"integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", "integrity": "sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"constantinople": "^4.0.1", "constantinople": "^4.0.1",
"doctypes": "^1.1.0", "doctypes": "^1.1.0",
"js-stringify": "^1.0.2", "js-stringify": "^1.0.2",
"pug-attrs": "^3.0.0", "pug-attrs": "^3.0.0",
"pug-error": "^2.0.0", "pug-error": "^2.1.0",
"pug-runtime": "^3.0.0", "pug-runtime": "^3.0.1",
"void-elements": "^3.1.0", "void-elements": "^3.1.0",
"with": "^7.0.0" "with": "^7.0.0"
} }
}, },
"node_modules/pug-error": { "node_modules/pug-error": {
"version": "2.0.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz",
"integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true "peer": true
}, },
"node_modules/pug-filters": { "node_modules/pug-filters": {
@ -10544,6 +10557,7 @@
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
"integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true "peer": true
}, },
"node_modules/pug-strip-comments": { "node_modules/pug-strip-comments": {
@ -12009,6 +12023,7 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"is-number": "^7.0.0" "is-number": "^7.0.0"
}, },
@ -12406,6 +12421,7 @@
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
"integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true, "peer": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
@ -12983,10 +12999,11 @@
} }
}, },
"node_modules/webpack-dev-server/node_modules/ws": { "node_modules/webpack-dev-server/node_modules/ws": {
"version": "8.16.0", "version": "8.18.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
"integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"
}, },
@ -13146,6 +13163,7 @@
"resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
"integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
"dev": true, "dev": true,
"license": "MIT",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@babel/parser": "^7.9.6", "@babel/parser": "^7.9.6",
@ -13265,10 +13283,11 @@
"dev": true "dev": true
}, },
"node_modules/ws": { "node_modules/ws": {
"version": "7.5.9", "version": "7.5.10",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=8.3.0" "node": ">=8.3.0"
}, },

View File

@ -17,7 +17,7 @@
"axios": "^1.2.2", "axios": "^1.2.2",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"dayjs": "^1.10.7", "dayjs": "^1.10.7",
"dompurify": "^3.1.5", "dompurify": "^3.1.6",
"leaflet": "^1.7.1", "leaflet": "^1.7.1",
"qs": "^6.10.1", "qs": "^6.10.1",
"rxjs": "^7.5.5", "rxjs": "^7.5.5",

View File

@ -21,8 +21,22 @@ export default class ActiveFacetCategory extends Vue {
// @Prop([String]) // @Prop([String])
// alias; // alias;
/**
* The alias for the Active facet box will be set depending on the name of the category.
* This will allow to display the customised terms "creator" and "keyword" instead of the values currently used in the OpenSearch index: "author" and "subjects"
* TODO: This should be corrected directly in the index
*/
get alias(): string { get alias(): string {
return this.categoryName == "doctype" ? "datatype" : this.categoryName; // return this.categoryName == "doctype" ? "datatype" : this.categoryName;
// console.log("getAlias!");
switch (this.categoryName) {
case "author":
return "creator";
case "subjects":
return "keyword";
default:
return this.categoryName;
}
} }
// get filterItems(): Array<string> { // get filterItems(): Array<string> {

View File

@ -3,7 +3,7 @@
<input v-bind:id="alias" v-bind:name="alias" type="checkbox" checked="checked" class="css-checkbox" @click.prevent="deactivateFacetCategory()" /> <input v-bind:id="alias" v-bind:name="alias" type="checkbox" checked="checked" class="css-checkbox" @click.prevent="deactivateFacetCategory()" />
<label v-bind:for="alias" class="css-label"> <label v-bind:for="alias" class="css-label">
<span>{{ alias + ": " }}</span> <span>{{ alias + ": " }}</span>
<a v-if="filterItems && filterItems.length > 0" class="gbaterm">{{ filterItems.join(", ") }}</a> <a v-if="filterItems && filterItems.length > 0" class="gsaterm">{{ filterItems.join(" | ") }}</a>
</label> </label>
</div> </div>
</template> </template>
@ -18,7 +18,7 @@ th,
td { td {
border-bottom: 0px solid #e1e1e1; border-bottom: 0px solid #e1e1e1;
} }
.gbaterm { .gsaterm {
color: #0099cc; color: #0099cc;
border: 1px solid rgb(200, 210, 255); border: 1px solid rgb(200, 210, 255);
padding: 4px; padding: 4px;

View File

@ -19,9 +19,23 @@ export default class FacetCategory extends Vue {
}) })
filterName!: string; filterName!: string;
/**
* The alias for the Active facet box will be set depending on the name of the category.
* This will allow to display the customised terms "creator" and "keyword" instead of the values currently used in the OpenSearch index: "author" and "subjects"
* TODO: This should be corrected directly in the index
*/
get alias(): string { get alias(): string {
// console.log("filterName:", this.filterName); // console.log("filterName:", this.filterName);
return this.filterName == "datatype" ? "doctype" : this.filterName; // return this.filterName == "datatype" ? "doctype" : this.filterName;
switch (this.filterName) {
case "author":
return "creator";
case "subjects":
return "keyword";
default:
return this.filterName;
}
} }
// get filterItems(): Array<FilterItem> { // get filterItems(): Array<FilterItem> {
@ -54,8 +68,9 @@ export default class FacetCategory extends Vue {
@Emit("filter") @Emit("filter")
activateItem(filterItem: FacetItem): FacetItem { activateItem(filterItem: FacetItem): FacetItem {
// console.log("ActivateItem"); console.log("Emit: ActivateItem");
filterItem.category = this.alias; // filterItem.category = this.alias;
filterItem.category = this.filterName;
filterItem.active = true; filterItem.active = true;
// this.$emit("filter", filterItem); // this.$emit("filter", filterItem);
return filterItem; return filterItem;

View File

@ -2,7 +2,8 @@
<div class="card panel-default"> <div class="card panel-default">
<!-- <h3 class="panel-title filterViewModelName">{{ filterName }}</h3> --> <!-- <h3 class="panel-title filterViewModelName">{{ filterName }}</h3> -->
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title titlecase filterViewModelName">{{ filterName }}</h3> <h3 class="panel-title titlecase filterViewModelName">{{ alias }}</h3>
<!-- <h3 class="panel-title titlecase filterViewModelName">{{ filterName }}</h3> -->
</div> </div>
<div class="panel-body"> <div class="panel-body">
<!-- e.g.language --> <!-- e.g.language -->