From 049ddd85cb1536e0198227fdfa5836c04f7ce78f Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Thu, 22 Aug 2019 16:15:45 +0300
Subject: [PATCH] Manuscripts: add facets for physical dimensions

---
 src/client/reducers/manuscriptsFacets.js | 135 ++++++++++++++++++++++-
 src/server/sparql/FacetConfigsMMM.js     |  49 ++++++++
 2 files changed, 183 insertions(+), 1 deletion(-)

diff --git a/src/client/reducers/manuscriptsFacets.js b/src/client/reducers/manuscriptsFacets.js
index f65e142f..ed8054b1 100644
--- a/src/client/reducers/manuscriptsFacets.js
+++ b/src/client/reducers/manuscriptsFacets.js
@@ -168,6 +168,25 @@ export const INITIAL_STATE = {
       containerClass: 'ten',
       filterType: 'uriFilter',
       uriFilter: null,
+      priority: 19,
+    },
+    height: {
+      id: 'height',
+      label: 'Height',
+      // predicate: defined in backend
+      distinctValueCount: 0,
+      values: [],
+      flatValues: [],
+      sortBy: 'instanceCount',
+      sortDirection: 'desc',
+      sortButton: true,
+      spatialFilterButton: false,
+      isFetching: false,
+      searchField: true,
+      containerClass: 'three',
+      type: 'integer',
+      filterType: 'integerFilter',
+      integerFilter: null,
       priority: 11
     },
     width: {
@@ -187,7 +206,121 @@ export const INITIAL_STATE = {
       type: 'integer',
       filterType: 'integerFilter',
       integerFilter: null,
-      priority: 10
+      priority: 12
+    },
+    folios: {
+      id: 'folios',
+      label: 'Folios',
+      // predicate: defined in backend
+      distinctValueCount: 0,
+      values: [],
+      flatValues: [],
+      sortBy: 'instanceCount',
+      sortDirection: 'desc',
+      sortButton: true,
+      spatialFilterButton: false,
+      isFetching: false,
+      searchField: true,
+      containerClass: 'three',
+      type: 'integer',
+      filterType: 'integerFilter',
+      integerFilter: null,
+      priority: 13
+    },
+    lines: {
+      id: 'lines',
+      label: 'Lines',
+      // predicate: defined in backend
+      distinctValueCount: 0,
+      values: [],
+      flatValues: [],
+      sortBy: 'instanceCount',
+      sortDirection: 'desc',
+      sortButton: true,
+      spatialFilterButton: false,
+      isFetching: false,
+      searchField: true,
+      containerClass: 'three',
+      type: 'integer',
+      filterType: 'integerFilter',
+      integerFilter: null,
+      priority: 14
+    },
+    columns: {
+      id: 'columns',
+      label: 'Columns',
+      // predicate: defined in backend
+      distinctValueCount: 0,
+      values: [],
+      flatValues: [],
+      sortBy: 'instanceCount',
+      sortDirection: 'desc',
+      sortButton: true,
+      spatialFilterButton: false,
+      isFetching: false,
+      searchField: true,
+      containerClass: 'three',
+      type: 'integer',
+      filterType: 'integerFilter',
+      integerFilter: null,
+      priority: 15
+    },
+    miniatures: {
+      id: 'miniatures',
+      label: 'Miniatures',
+      // predicate: defined in backend
+      distinctValueCount: 0,
+      values: [],
+      flatValues: [],
+      sortBy: 'instanceCount',
+      sortDirection: 'desc',
+      sortButton: true,
+      spatialFilterButton: false,
+      isFetching: false,
+      searchField: true,
+      containerClass: 'three',
+      type: 'integer',
+      filterType: 'integerFilter',
+      integerFilter: null,
+      priority: 16
+    },
+    decoratedInitials: {
+      id: 'decoratedInitials',
+      label: 'Decorated initials',
+      // predicate: defined in backend
+      distinctValueCount: 0,
+      values: [],
+      flatValues: [],
+      sortBy: 'instanceCount',
+      sortDirection: 'desc',
+      sortButton: true,
+      spatialFilterButton: false,
+      isFetching: false,
+      searchField: true,
+      containerClass: 'three',
+      type: 'integer',
+      filterType: 'integerFilter',
+      integerFilter: null,
+      priority: 17
+    },
+    historiatedInitials: {
+      id: 'historiatedInitials',
+      label: 'Historiated initials',
+      // predicate: defined in backend
+      distinctValueCount: 0,
+      values: [],
+      flatValues: [],
+      sortBy: 'instanceCount',
+      sortDirection: 'desc',
+      sortButton: true,
+      spatialFilterButton: false,
+      isFetching: false,
+      searchField: true,
+      containerClass: 'three',
+      type: 'integer',
+      filterType: 'integerFilter',
+      integerFilter: null,
+      priority: 18
     },
     collection: {
       id: 'collection',
diff --git a/src/server/sparql/FacetConfigsMMM.js b/src/server/sparql/FacetConfigsMMM.js
index f5ae479e..65a4b67e 100644
--- a/src/server/sparql/FacetConfigsMMM.js
+++ b/src/server/sparql/FacetConfigsMMM.js
@@ -120,6 +120,13 @@ export const facetConfigs = {
       predicate: 'crm:P45_consists_of',
       type: 'list',
     },
+    height: {
+      id: 'height',
+      facetValueFilter: '',
+      labelPath: 'mmm-schema:height/crm:P90_has_value',
+      predicate: 'mmm-schema:height/crm:P90_has_value',
+      type: 'integer',
+    },
     width: {
       id: 'width',
       facetValueFilter: '',
@@ -127,6 +134,48 @@ export const facetConfigs = {
       predicate: 'mmm-schema:width/crm:P90_has_value',
       type: 'integer',
     },
+    folios: {
+      id: 'folios',
+      facetValueFilter: '',
+      labelPath: 'mmm-schema:folios/crm:P90_has_value',
+      predicate: 'mmm-schema:folios/crm:P90_has_value',
+      type: 'integer',
+    },
+    lines: {
+      id: 'lines',
+      facetValueFilter: '',
+      labelPath: 'mmm-schema:lines/crm:P90_has_value',
+      predicate: 'mmm-schema:lines/crm:P90_has_value',
+      type: 'integer',
+    },
+    columns: {
+      id: 'columns',
+      facetValueFilter: '',
+      labelPath: 'mmm-schema:columns/crm:P90_has_value',
+      predicate: 'mmm-schema:columns/crm:P90_has_value',
+      type: 'integer',
+    },
+    miniatures: {
+      id: 'miniatures',
+      facetValueFilter: '',
+      labelPath: 'mmm-schema:miniatures/crm:P90_has_value',
+      predicate: 'mmm-schema:miniatures/crm:P90_has_value',
+      type: 'integer',
+    },
+    decoratedInitials: {
+      id: 'folios',
+      facetValueFilter: '',
+      labelPath: 'mmm-schema:decorated_initials/crm:P90_has_value',
+      predicate: 'mmm-schema:decorated_initials/crm:P90_has_value',
+      type: 'integer',
+    },
+    historiatedInitials: {
+      id: 'folios',
+      facetValueFilter: '',
+      labelPath: 'mmm-schema:historiated_initials/crm:P90_has_value',
+      predicate: 'mmm-schema:historiated_initials/crm:P90_has_value',
+      type: 'integer',
+    },
     collection: {
       id: 'collection',
       facetValueFilter: '',
-- 
GitLab