From 424fe990327f9048e471234a27db7c380c31a888 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Gaya?= <sebastien.gaya@gmail.com>
Date: Mon, 26 Dec 2022 16:00:28 +0100
Subject: [PATCH] summernote config link for credit

---
 .../javascripts/application/plugins/summernote.js  | 14 +++++++++++---
 .../application/featured_image/_edit.html.erb      |  2 +-
 .../communication/blocks/components/_edit.html.erb |  2 ++
 .../blocks/components/rich_text/_edit.html.erb     |  2 +-
 .../blocks/templates/call_to_action/_edit.html.erb |  3 ++-
 .../blocks/templates/chapter/_edit.html.erb        |  3 ++-
 .../blocks/templates/gallery/_edit.html.erb        |  3 ++-
 .../blocks/templates/image/_edit.html.erb          |  3 ++-
 8 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/app/assets/javascripts/application/plugins/summernote.js b/app/assets/javascripts/application/plugins/summernote.js
index 99cbf9a10..eb7c0d24f 100644
--- a/app/assets/javascripts/application/plugins/summernote.js
+++ b/app/assets/javascripts/application/plugins/summernote.js
@@ -4,6 +4,14 @@ $(function () {
 
     var configs = [];
 
+    configs['link'] = {
+        toolbar: [
+            ['insert', ['link', 'unlink']]
+        ],
+        followingToolbar: true,
+        disableDragAndDrop: true
+    };
+
     configs['mini'] = {
         toolbar: [
             ['font', ['bold', 'italic']],
@@ -110,9 +118,9 @@ $(function () {
     });
 
     // https://github.com/summernote/summernote/issues/4170
-    $("button[data-toggle='dropdown']").each(function (index) { 
-        $(this).removeAttr("data-toggle").attr("data-bs-toggle", "dropdown"); 
-    }); 
+    $("button[data-toggle='dropdown']").each(function (index) {
+        $(this).removeAttr("data-toggle").attr("data-bs-toggle", "dropdown");
+    });
 
     window.SUMMERNOTE_CONFIGS = configs;
 });
diff --git a/app/views/admin/application/featured_image/_edit.html.erb b/app/views/admin/application/featured_image/_edit.html.erb
index 515439022..75f1e93e8 100644
--- a/app/views/admin/application/featured_image/_edit.html.erb
+++ b/app/views/admin/application/featured_image/_edit.html.erb
@@ -20,7 +20,7 @@
                 label: t('featured_image.credit.label'),
                 hint: t('featured_image.credit.hint'),
                 input_html: {
-                  data: { 'summernote-config' => 'mini' }
+                  data: { 'summernote-config' => 'link' }
                 } %>
     <%= render 'admin/communication/unsplash/selector', about: about, f:f %>
   </div>
diff --git a/app/views/admin/communication/blocks/components/_edit.html.erb b/app/views/admin/communication/blocks/components/_edit.html.erb
index cb20d4e05..b2bc336a1 100644
--- a/app/views/admin/communication/blocks/components/_edit.html.erb
+++ b/app/views/admin/communication/blocks/components/_edit.html.erb
@@ -18,6 +18,7 @@ label ||= t "#{i18n_component}.label", default: ''
 placeholder ||= t "#{i18n_component}.placeholder", default: ''
 hint ||= t "#{i18n_component}.hint", default: ''
 none ||= t "#{i18n_component}.none", default: ''
+summernote_config ||= "mini-list"
 partial = "admin/communication/blocks/components/#{component.kind}/edit"
 
 local_assigns[:template] = template
@@ -29,5 +30,6 @@ local_assigns[:label] = label
 local_assigns[:placeholder] = placeholder
 local_assigns[:hint] = hint
 local_assigns[:none] ||= t "#{i18n_component}.none", default: ''
+local_assigns[:summernote_config] ||= summernote_config
 %>
 <%= render partial, **local_assigns %>
diff --git a/app/views/admin/communication/blocks/components/rich_text/_edit.html.erb b/app/views/admin/communication/blocks/components/rich_text/_edit.html.erb
index a90649c19..afda9a4b9 100644
--- a/app/views/admin/communication/blocks/components/rich_text/_edit.html.erb
+++ b/app/views/admin/communication/blocks/components/rich_text/_edit.html.erb
@@ -7,6 +7,6 @@
   <textarea :id="<%= dom_id.html_safe %>"
             class="form-control summernote-vue"
             v-model="<%= model %>.<%= property %>"
-            data-summernote-config="mini-list"
+            data-summernote-config="<%= summernote_config %>"
             placeholder="<%= placeholder %>"></textarea>
 </div>
diff --git a/app/views/admin/communication/blocks/templates/call_to_action/_edit.html.erb b/app/views/admin/communication/blocks/templates/call_to_action/_edit.html.erb
index 2ba94fadd..99b3faffa 100644
--- a/app/views/admin/communication/blocks/templates/call_to_action/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/call_to_action/_edit.html.erb
@@ -15,7 +15,8 @@
           placeholder: t('admin.communication.blocks.components.image.alt.placeholder') %>
     <%= block_component_edit :credit,
           label: t('admin.communication.blocks.components.image.credit.label'),
-          placeholder: t('admin.communication.blocks.components.image.credit.placeholder') %>
+          placeholder: t('admin.communication.blocks.components.image.credit.placeholder'),
+          summernote_config: 'link' %>
   </div>
 </div>
 
diff --git a/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb b/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb
index 13cd9af8b..60946dd47 100644
--- a/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb
@@ -20,7 +20,8 @@
               placeholder: t('admin.communication.blocks.components.image.alt.placeholder') %>
         <%= block_component_edit :credit,
               label: t('admin.communication.blocks.components.image.credit.label'),
-              placeholder: t('admin.communication.blocks.components.image.credit.placeholder') %>
+              placeholder: t('admin.communication.blocks.components.image.credit.placeholder'),
+              summernote_config: 'link' %>
       </div>
     </div>
   </div>
diff --git a/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb b/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
index efe17b6fe..39fef19e1 100644
--- a/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
@@ -55,7 +55,8 @@
             <%= block_component_edit :credit,
                   template: @element,
                   label: t('admin.communication.blocks.components.image.credit.label'),
-                  placeholder: t('admin.communication.blocks.components.image.credit.placeholder') %>
+                  placeholder: t('admin.communication.blocks.components.image.credit.placeholder'),
+                  summernote_config: 'link' %>
             <%= block_component_edit :text,
                 template: @element %>
           </div>
diff --git a/app/views/admin/communication/blocks/templates/image/_edit.html.erb b/app/views/admin/communication/blocks/templates/image/_edit.html.erb
index 343c8d38a..34a40b665 100644
--- a/app/views/admin/communication/blocks/templates/image/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/image/_edit.html.erb
@@ -8,7 +8,8 @@
           placeholder: t('admin.communication.blocks.components.image.alt.placeholder') %>
     <%= block_component_edit :credit,
           label: t('admin.communication.blocks.components.image.credit.label'),
-          placeholder: t('admin.communication.blocks.components.image.credit.placeholder') %>
+          placeholder: t('admin.communication.blocks.components.image.credit.placeholder'),
+          summernote_config: 'link' %>
     <%= block_component_edit :text %>
   </div>
 </div>
-- 
GitLab