From e11ec9104c041fedecc00632a3d1d3ab6fc63f0a Mon Sep 17 00:00:00 2001
From: Florian Spreckelsen <f.spreckelsen@indiscale.com>
Date: Tue, 25 May 2021 13:51:09 +0000
Subject: [PATCH] FIX: Repair entity sizing with long property values

---
 CHANGELOG.md                 |  3 +++
 src/core/css/webcaosdb.css   |  8 ++++++++
 src/core/js/edit_mode.js     |  2 +-
 src/core/js/ext_map.js       |  1 +
 src/core/js/form_elements.js | 15 +++++----------
 src/core/xsl/entity.xsl      |  2 +-
 6 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index a950799a..3046befb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -39,6 +39,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * #160 - Entity preview for Safari 11
 * Several minor cosmetic flaws
 * Fixed edit mode for Safari 11.
+* Displaying issues with long lists in property values
+* An issue whereby a grey container would appear above the map when
+  changing the map view.
 
 ### Security (in case of vulnerabilities)
 
diff --git a/src/core/css/webcaosdb.css b/src/core/css/webcaosdb.css
index 892c86b9..fb86c816 100644
--- a/src/core/css/webcaosdb.css
+++ b/src/core/css/webcaosdb.css
@@ -200,6 +200,14 @@ h5 {
     margin: auto;
 }
 
+.caosdb-f-main-entities {
+    max-width: 100%;
+}
+
+.caosdb-f-main-entities-edit {
+    max-width: calc(100% - 240px);
+}
+
 .caosdb-entity-preview .caosdb-entity-panel-body {
     overflow-y: auto;
     max-height: 250px;
diff --git a/src/core/js/edit_mode.js b/src/core/js/edit_mode.js
index 056c9d8f..8644fff2 100644
--- a/src/core/js/edit_mode.js
+++ b/src/core/js/edit_mode.js
@@ -1745,7 +1745,7 @@ var edit_mode = new function() {
 
     this.toggle_edit_panel = function() {
         //$(".caosdb-f-main").toggleClass("container-fluid").toggleClass("container");
-        //$(".caosdb-f-main-entities").toggleClass("col-xs-8");
+        $(".caosdb-f-main-entities").toggleClass("caosdb-f-main-entities-edit");
         $(".caosdb-f-edit").toggle();//.toggleClass("col-xs-4");
         this._toggle_min_width_warning();
     }
diff --git a/src/core/js/ext_map.js b/src/core/js/ext_map.js
index 231515f7..719d4f77 100644
--- a/src/core/js/ext_map.js
+++ b/src/core/js/ext_map.js
@@ -990,6 +990,7 @@ var caosdb_map = new function () {
                 // TODO split in smaller pieces and move callback to separate function
                 this.change_map_view = (view) => {
                     if (this._map) {
+			this._map._container.remove();
                         this._map.remove();
                     }
 
diff --git a/src/core/js/form_elements.js b/src/core/js/form_elements.js
index 09c09bfd..94607ab0 100644
--- a/src/core/js/form_elements.js
+++ b/src/core/js/form_elements.js
@@ -802,18 +802,16 @@ var form_elements = new function () {
 
 
     this.add_help = function (field, config) {
-        var help_button = $('<i data-trigger="click focus" data-bs-toggle="popover" class="caosdb-f-form-help pull-right bi-info-circle-fill"></i>')
+        var help_button = $('<a tabindex="0" role="button" data-bs-trigger="focus" data-bs-toggle="popover"><i class="caosdb-f-form-help pull-right bi-info-circle-fill"></i></a>')
             .css({
                 "cursor": "pointer"
             });
 
         if (typeof config === "string" || config instanceof String) {
-            help_button.attr("data-content", config);
-            //TODO this needs to be fixed
-            //help_button.popover();
+            help_button.attr("data-bs-content", config);
+            help_button.popover();
         } else {
-            //TODO this needs to be fixed
-            //help_button.popover(config);
+            help_button.popover(config);
         }
 
 
@@ -1299,10 +1297,7 @@ var form_elements = new function () {
      */
     this._make_field_wrapper = function (name) {
         caosdb_utils.assert_string(name, "param `name`");
-        return $('<div class="row caosdb-f-field" data-field-name="' + name + '" />')
-            .css({
-                "padding": "0"
-            })[0];
+        return $('<div class="row caosdb-f-field" data-field-name="' + name + '" />')[0];
     }
 
     /**
diff --git a/src/core/xsl/entity.xsl b/src/core/xsl/entity.xsl
index 57d90042..95f50319 100644
--- a/src/core/xsl/entity.xsl
+++ b/src/core/xsl/entity.xsl
@@ -269,7 +269,7 @@
         </dl>
       </div>
       <!-- property value -->
-      <div class="col caosdb-f-property-value">
+      <div class="col-sm-6 col-md-8 caosdb-f-property-value">
         <xsl:apply-templates mode="property-value" select="."/>
       </div>
     </div>
-- 
GitLab