From 1fccd67c6c6d202253e54b5ad716c0ea34751ee3 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Tue, 23 Nov 2021 10:20:17 +0200
Subject: [PATCH] Add expandedOnInstancePage option

---
 .../components/main_layout/InstanceHomePageTable.js    | 10 +++++++---
 .../components/perspectives/sampo/InstanceHomePage.js  |  7 ++++---
 src/client/reducers/sampo/perspective1.js              |  3 ++-
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/client/components/main_layout/InstanceHomePageTable.js b/src/client/components/main_layout/InstanceHomePageTable.js
index 37bd4349..e64fb34a 100644
--- a/src/client/components/main_layout/InstanceHomePageTable.js
+++ b/src/client/components/main_layout/InstanceHomePageTable.js
@@ -75,9 +75,13 @@ const styles = theme => ({
 class InstanceHomePageTable extends React.Component {
   constructor (props) {
     super(props)
-    this.state = {
-      expandedRows: new Set()
-    }
+    const expandedRows = new Set()
+    props.properties.forEach(prop => {
+      if (prop.expandedOnInstancePage) {
+        expandedRows.add(prop.id)
+      }
+    })
+    this.state = { expandedRows }
   }
 
   componentDidMount = () => {
diff --git a/src/client/components/perspectives/sampo/InstanceHomePage.js b/src/client/components/perspectives/sampo/InstanceHomePage.js
index 10897dc0..0173c831 100644
--- a/src/client/components/perspectives/sampo/InstanceHomePage.js
+++ b/src/client/components/perspectives/sampo/InstanceHomePage.js
@@ -135,7 +135,7 @@ class InstanceHomePage extends React.Component {
   getLocalIDFromURL = () => {
     const locationArr = this.props.routeProps.location.pathname.split('/')
     let localID = locationArr.pop()
-    this.props.perspectiveConfig.instancePageTabs.map(tab => {
+    this.props.perspectiveConfig.instancePageTabs.forEach(tab => {
       if (localID === tab.id) {
         localID = locationArr.pop() // pop again if tab id
       }
@@ -147,7 +147,7 @@ class InstanceHomePage extends React.Component {
     const { instanceTableData } = this.props.perspectiveState
     const visibleRows = []
     const instanceClass = instanceTableData.type ? instanceTableData.type.id : ''
-    rows.map(row => {
+    rows.forEach(row => {
       if ((has(row, 'onlyForClass') && row.onlyForClass === instanceClass) ||
        !has(row, 'onlyForClass')) {
         visibleRows.push(row)
@@ -161,7 +161,8 @@ class InstanceHomePage extends React.Component {
     const { instanceTableData, fetching } = perspectiveState
     const resultClass = perspectiveConfig.id
     const defaultInstancePageTab = perspectiveConfig.defaultInstancePageTab
-      ? perspectiveConfig.defaultInstancePageTab : 'table'
+      ? perspectiveConfig.defaultInstancePageTab
+      : 'table'
     const hasTableData = this.hasTableData()
     return (
       <div className={classes.root}>
diff --git a/src/client/reducers/sampo/perspective1.js b/src/client/reducers/sampo/perspective1.js
index 842d401c..36ad1c82 100644
--- a/src/client/reducers/sampo/perspective1.js
+++ b/src/client/reducers/sampo/perspective1.js
@@ -133,7 +133,8 @@ export const INITIAL_STATE = {
       sortValues: true,
       numberedList: false,
       minWidth: 220,
-      collapsedMaxWords: 12
+      collapsedMaxWords: 12,
+      expandedOnInstancePage: true
     },
     {
       id: 'language',
-- 
GitLab