diff --git a/app/assets/javascripts/page_tags.js b/app/assets/javascripts/page_tags.js index b4d6e07b..64f6cf8a 100644 --- a/app/assets/javascripts/page_tags.js +++ b/app/assets/javascripts/page_tags.js @@ -1,8 +1,9 @@ $(document).ready(function () { $('.js-add-tag').click(function() { var clicked_tag = $(this).find('.badge').data('badge-caption'); + var chips_reference = $(this).closest('.input-field').find('.chips'); - M.Chips.getInstance($('.chips')).addChip({tag: clicked_tag}); + M.Chips.getInstance(chips_reference).addChip({ tag: clicked_tag }); return false; }); }); diff --git a/app/models/page_data/page_tag.rb b/app/models/page_data/page_tag.rb index f6e2d6c5..6c728361 100644 --- a/app/models/page_data/page_tag.rb +++ b/app/models/page_data/page_tag.rb @@ -4,4 +4,5 @@ class PageTag < ApplicationRecord # Delimiter to be used wherever we want to allow submitting multiple tags in a single string SUBMISSION_DELIMITER = ',,,|||,,,' + end diff --git a/app/views/content/form/field_types/_tags.html.erb b/app/views/content/form/field_types/_tags.html.erb index 42d87881..14e817da 100644 --- a/app/views/content/form/field_types/_tags.html.erb +++ b/app/views/content/form/field_types/_tags.html.erb @@ -4,10 +4,11 @@ label <%= f.label field[:id], field[:label] if field[:label] %> -
+
<%= - hidden_field_tag 'field[value]', page.page_tags.join(PageTag::SUBMISSION_DELIMITER), - id: 'hidden_page_tags_value' + hidden_field_tag 'field[value]', + page.page_tags.join(PageTag::SUBMISSION_DELIMITER), + class: 'hidden_page_tags_value' %>
@@ -30,18 +31,20 @@
<%= content_for :javascript do %> function update_hidden_page_tag_value(e) { - var chips = M.Chips.getInstance($('.chips')).chipsData.map(function (c) { + var chips = M.Chips.getInstance($(e).parent().find('.chips')).chipsData.map(function (c) { return c['tag']; }); - var hidden_input = $('#hidden_page_tags_value').first(); + var hidden_input = $(e).parent().find('.hidden_page_tags_value'); hidden_input.val(chips.join('<%= PageTag::SUBMISSION_DELIMITER %>')); // Trigger autosave manually hidden_input.closest('form').submit(); + + M.toast({ html: "Saving changes..." }); } - var chips = $('.chips-autocomplete').chips({ + var chips = $('#chips-for-<%= page.id %>').chips({ placeholder: 'Add tags', secondaryPlaceholder: '+ Tag', autocompleteOptions: { diff --git a/app/views/content/list/_dense_cards.html.erb b/app/views/content/list/_dense_cards.html.erb index 4ccb3b14..3532218c 100644 --- a/app/views/content/list/_dense_cards.html.erb +++ b/app/views/content/list/_dense_cards.html.erb @@ -17,7 +17,7 @@
<% end %> - +
<%= ContentFormatterService.show(text: content.name.presence || 'Untitled', viewing_user: current_user) %>