decidim-feeds 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '09f7b4dc0873ec6a7bc3486e3135646c3541ccbe9e627a112de580aa3463656c'
4
- data.tar.gz: 125c99d7b8603b83241fa701ea58909a75fd4aa88f793f652f6dd76acb216b25
3
+ metadata.gz: 04631ba9274836ca413d9ee1b8862b5dc200d6e6683d2bad48369570d9fae18d
4
+ data.tar.gz: d36479520b21b03cba5354421d52f734b987ee4f99d38d6492440099d29aa119
5
5
  SHA512:
6
- metadata.gz: 2c3c2480f3fb5c205625989f52df1f0e78b0fd025a49ef623783cc88ea7dd416e7003aed3fefedd622f7e96037f94fc62a8c504458c84f3eb5c0525377d84767
7
- data.tar.gz: daccd381f32ed898385d5e230574146069a93806b631fc7532516a56517f78d2de0a67d009d05d65eee64420a51330bf954860ab0ada4b06e70439a6c8b0239f
6
+ metadata.gz: 8d77d68af018574dfea9be283a41442f7900318b7bf53bd26081bb5921563c56bbb47ccd00440a05fa59c99ff30a6b0361eb0cbee822db20c3f9d126cf15fe23
7
+ data.tar.gz: a7b7f9379f6a7c4dcb5687bc5d1a25cebb249359aeb5b350d465bf7fec683ac972daf717296f76c135ad74253d173d190eb6aef1d9e3c68fe11eef4179bc5b48
data/README.md CHANGED
@@ -1,19 +1,21 @@
1
- # Decidim::Feeds participatory space (under development)
1
+ # Decidim::Feeds participatory space
2
2
 
3
3
  This Feeds module adds a simple Feeds Participatory Space to hold a feed component.
4
4
 
5
- **The module is currently in development and not yet ready.**
6
-
7
5
  ## Usage
8
6
 
9
- Feeds will be available as a Participatory Space.
7
+ Feeds will be available as a Participatory Space. This space is very simple and currently just a container for posts.
8
+
9
+ Find more information about posts in the README of the [posts module](https://github.com/DecidimAustria/decidim-module-posts)
10
+
11
+ It is planned to allow users to create groups for their posts and the groups will be implemented as individual feeds. So users should be able to create new feeds including a posts and meetings component. This is currently partly implemented but not finished.
10
12
 
11
13
  ## Installation
12
14
 
13
15
  Add this line to your application's Gemfile:
14
16
 
15
17
  ```ruby
16
- gem "decidim-feeds", git: "https://github.com/DecidimAustria/decidim-module-feeds.git", branch: "main"
18
+ gem "decidim-feeds"
17
19
  ```
18
20
 
19
21
  And then execute:
@@ -5,12 +5,12 @@ module Decidim
5
5
  # A command with all the business logic when creating a new participatory
6
6
  # feed in the system.
7
7
  class CreateFeed < Decidim::Command
8
+ include ::Decidim::MultipleAttachmentsMethods
8
9
  # Public: Initializes the command.
9
10
  #
10
11
  # form - A form object with the params.
11
12
  def initialize(form)
12
13
  @form = form
13
- @author = author
14
14
  end
15
15
 
16
16
  # Executes the command. Broadcasts these events:
@@ -22,6 +22,11 @@ module Decidim
22
22
  def call
23
23
  return broadcast(:invalid) if form.invalid?
24
24
 
25
+ if process_attachments?
26
+ build_attachments
27
+ return broadcast(:invalid) if attachments_invalid?
28
+ end
29
+
25
30
  if feed.persisted?
26
31
  # link_participatory_processes(feed)
27
32
  # Decidim::ContentBlocksCreator.new(feed).create_default!
@@ -47,9 +52,9 @@ module Decidim
47
52
  Feed,
48
53
  form.current_user,
49
54
  organization: form.current_organization,
50
- title: { I18n.locale => form.title },
51
- slug: form.title.parameterize,
52
- created_by: form.current_user
55
+ title: form.title,
56
+ slug: form.title[I18n.locale.to_s].parameterize,
57
+ created_by: form.current_user # TODO: created_by is a string, that makes no sense
53
58
  )
54
59
  end
55
60
 
@@ -85,6 +90,12 @@ module Decidim
85
90
  # def link_participatory_processes(feed)
86
91
  # feed.link_participatory_space_resources(participatory_processes(feed), "included_participatory_processes")
87
92
  # end
93
+
94
+ def first_attachment_weight
95
+ return 1 if feed.documents.count.zero?
96
+
97
+ feed.documents.count
98
+ end
88
99
  end
89
100
  end
90
101
  end
@@ -5,7 +5,7 @@ module Decidim
5
5
  # A command with all the business logic when creating a new participatory
6
6
  # feed in the system.
7
7
  class UpdateFeed < Decidim::Command
8
- include ::Decidim::AttachmentAttributesMethods
8
+ include ::Decidim::MultipleAttachmentsMethods
9
9
 
10
10
  # Public: Initializes the command.
11
11
  #
@@ -14,6 +14,7 @@ module Decidim
14
14
  def initialize(feed, form)
15
15
  @feed = feed
16
16
  @form = form
17
+ @attached_to = feed
17
18
  end
18
19
 
19
20
  # Executes the command. Broadcasts these events:
@@ -25,8 +26,15 @@ module Decidim
25
26
  def call
26
27
  return broadcast(:invalid) if form.invalid?
27
28
 
29
+ if process_attachments?
30
+ build_attachments
31
+ return broadcast(:invalid) if attachments_invalid?
32
+ end
33
+
28
34
  update_feed
29
35
  # link_participatory_processes(@feed)
36
+ document_cleanup!(include_all_attachments: true)
37
+ create_attachments if process_attachments?
30
38
 
31
39
  if @feed.valid?
32
40
  broadcast(:ok, @feed)
@@ -6,31 +6,31 @@ module Decidim
6
6
  module FeedBreadcrumb
7
7
  extend ActiveSupport::Concern
8
8
 
9
- private
9
+ # private
10
10
 
11
- def current_participatory_space_breadcrumb_item
12
- return {} if current_participatory_space.blank?
11
+ # def current_participatory_space_breadcrumb_item
12
+ # return {} if current_participatory_space.blank?
13
13
 
14
- dropdown_cell = current_participatory_space_manifest.breadcrumb_cell
14
+ # dropdown_cell = current_participatory_space_manifest.breadcrumb_cell
15
15
 
16
- items = current_participatory_space.ancestors.map do |participatory_space|
17
- {
18
- label: participatory_space.title,
19
- url: Decidim::ResourceLocatorPresenter.new(participatory_space).path,
20
- active: false,
21
- dropdown_cell:,
22
- resource: participatory_space
23
- }
24
- end
16
+ # items = current_participatory_space.ancestors.map do |participatory_space|
17
+ # {
18
+ # label: participatory_space.title,
19
+ # url: Decidim::ResourceLocatorPresenter.new(participatory_space).path,
20
+ # active: false,
21
+ # dropdown_cell:,
22
+ # resource: participatory_space
23
+ # }
24
+ # end
25
25
 
26
- items << {
27
- label: current_participatory_space.title,
28
- url: Decidim::ResourceLocatorPresenter.new(current_participatory_space).path,
29
- active: true,
30
- dropdown_cell:,
31
- resource: current_participatory_space
32
- }
33
- end
26
+ # items << {
27
+ # label: current_participatory_space.title,
28
+ # url: Decidim::ResourceLocatorPresenter.new(current_participatory_space).path,
29
+ # active: true,
30
+ # dropdown_cell:,
31
+ # resource: current_participatory_space
32
+ # }
33
+ # end
34
34
  end
35
35
  end
36
36
  end
@@ -5,7 +5,7 @@ module Decidim
5
5
  # A controller that holds the logic to show Feeds in a public layout.
6
6
  class FeedsController < Decidim::Feeds::ApplicationController
7
7
  include ParticipatorySpaceContext
8
- include FeedBreadcrumb
8
+ # include FeedBreadcrumb
9
9
  include FormFactory
10
10
 
11
11
  participatory_space_layout only: :show
@@ -25,6 +25,8 @@ module Decidim
25
25
  def show
26
26
  enforce_permission_to :read, :feed, feed: current_participatory_space
27
27
 
28
+ @feed = current_feed
29
+
28
30
  @posts_component = current_feed.components.find_by(manifest_name: "posts")
29
31
 
30
32
  if @posts_component.nil?
@@ -7,12 +7,14 @@ module Decidim
7
7
  #
8
8
  class FeedForm < Form
9
9
  include TranslatableAttributes
10
+ include AttachmentAttributes
10
11
 
11
12
  mimic :feed
12
13
 
13
14
  translatable_attribute :title, String
14
15
 
15
16
  attribute :created_by, String
17
+ attribute :attachment, AttachmentForm
16
18
 
17
19
  # attribute :participatory_processes_ids, Array[Integer]
18
20
  # attribute :included_at, Decidim::Attributes::LocalizedDate
@@ -24,6 +26,8 @@ module Decidim
24
26
 
25
27
  # validate :same_type_organization, if: ->(form) { form.decidim_feeds_type_id }
26
28
 
29
+ attachments_attribute :documents
30
+
27
31
  validates :title, translatable_presence: true
28
32
 
29
33
  # validates :banner_image, passthru: { to: Decidim::Feed }
@@ -48,6 +52,20 @@ module Decidim
48
52
  # &.sort_by { |arr| arr[0] }
49
53
  # end
50
54
 
55
+ def map_model(model)
56
+ self.title = model.title # translated_attribute(model.title)
57
+ # self.slug = model.slug
58
+ self.documents = model.attachments
59
+ end
60
+
61
+ def has_attachments?
62
+ feed.has_attachments? && errors[:documents].empty? && documents.present?
63
+ end
64
+
65
+ def has_error_in_attachments?
66
+ errors[:documents].present?
67
+ end
68
+
51
69
  private
52
70
 
53
71
  # def organization_participatory_processes
@@ -17,14 +17,14 @@ module Decidim
17
17
  components = participatory_space.components.published.or(Decidim::Component.where(id: try(:current_component)))
18
18
 
19
19
  [
20
- *(if participatory_space.members.not_ceased.any?
21
- [{
22
- name: t("feed_member_menu_item", scope: "layouts.decidim.feed_navigation"),
23
- url: decidim_feeds.feed_feed_members_path(participatory_space),
24
- active: is_active_link?(decidim_feeds.feed_feed_members_path(participatory_space), :inclusive)
25
- }]
26
- end
27
- )
20
+ # *(if participatory_space.members.not_ceased.any?
21
+ # [{
22
+ # name: t("feed_member_menu_item", scope: "layouts.decidim.feed_navigation"),
23
+ # url: decidim_feeds.feed_feed_members_path(participatory_space),
24
+ # active: is_active_link?(decidim_feeds.feed_feed_members_path(participatory_space), :inclusive)
25
+ # }]
26
+ # end
27
+ # )
28
28
  ] + components.map do |component|
29
29
  {
30
30
  name: decidim_escape_translated(component.name),
@@ -12,7 +12,7 @@ module Decidim
12
12
  include Decidim::HasAttachments
13
13
  # include Decidim::HasAttachmentCollections
14
14
  # include Decidim::Publicable
15
- # include Decidim::ScopableParticipatorySpace
15
+ include Decidim::ScopableParticipatorySpace
16
16
  # include Decidim::Followable
17
17
  # include Decidim::HasReference
18
18
  # include Decidim::HasPrivateUsers
@@ -41,17 +41,18 @@ module Decidim
41
41
  validates :slug, uniqueness: { scope: :organization }
42
42
  validates :slug, presence: true, format: { with: Decidim::Feeds::Feed.slug_format }
43
43
 
44
- searchable_fields({
45
- # scope_id: :decidim_scope_id,
46
- participatory_space: :itself,
47
- A: :title,
48
- # B: :subtitle,
49
- # C: :short_description,
50
- # D: :description,
51
- datetime: :created_at
52
- },
53
- index_on_create: true,
54
- index_on_update: true
44
+ searchable_fields(
45
+ {
46
+ # scope_id: :decidim_scope_id,
47
+ participatory_space: :itself,
48
+ A: :title,
49
+ # B: :subtitle,
50
+ # C: :short_description,
51
+ # D: :description,
52
+ datetime: :created_at
53
+ },
54
+ index_on_create: true,
55
+ index_on_update: true
55
56
  )
56
57
 
57
58
  # Overwriting existing method Decidim::HasPrivateUsers.public_spaces
@@ -0,0 +1,97 @@
1
+ document.addEventListener('DOMContentLoaded', function () {
2
+ console.log('feeds.js has loaded');
3
+
4
+ const button = document.querySelector('.feeds_popup_btn');
5
+ const popup = document.getElementById('feeds_popup');
6
+
7
+ if (button && popup) {
8
+ const isTouchDevice = 'ontouchstart' in document.documentElement;
9
+ let hideTimeout; // Reference for debounce or timeout management
10
+
11
+ // Utility to toggle the popup's visibility
12
+ const showPopup = function (e) {
13
+ e.preventDefault();
14
+ const btn_icon = button.querySelector('.icon');
15
+ if (!btn_icon) {
16
+ console.error('Button icon not found for positioning');
17
+ return;
18
+ }
19
+
20
+ const rect = btn_icon.getBoundingClientRect();
21
+ popup.style.left = `${rect.left - 36}px`;
22
+ popup.classList.remove('hidden');
23
+ button.setAttribute('aria-expanded', 'true');
24
+ };
25
+
26
+ const hidePopup = function () {
27
+ popup.classList.add('hidden');
28
+ button.setAttribute('aria-expanded', 'false');
29
+ button.focus(); // Return focus to the button
30
+ };
31
+
32
+ // Debounce utility to handle rapid mouse events
33
+ const debounce = (callback, delay) => {
34
+ clearTimeout(hideTimeout);
35
+ hideTimeout = setTimeout(callback, delay);
36
+ };
37
+
38
+ if (isTouchDevice) {
39
+ button.addEventListener('touchstart', function (e) {
40
+ if (!popup.classList.contains('hidden')) {
41
+ hidePopup();
42
+ } else {
43
+ showPopup(e);
44
+ }
45
+ e.preventDefault();
46
+ });
47
+ } else {
48
+ // Prevent default click behavior
49
+ button.addEventListener('click', function (e) {
50
+ e.preventDefault();
51
+ });
52
+
53
+ // Show popup on mouseenter
54
+ button.addEventListener('mouseenter', showPopup);
55
+
56
+ // Hide popup on mouseleave with debounce
57
+ button.addEventListener('mouseleave', function () {
58
+ debounce(() => {
59
+ if (!popup.matches(':hover')) {
60
+ hidePopup();
61
+ }
62
+ }, 150);
63
+ });
64
+
65
+ // Hide popup when mouse leaves popup area
66
+ popup.addEventListener('mouseleave', hidePopup);
67
+
68
+ // Clear hide timeout if re-entering popup
69
+ popup.addEventListener('mouseenter', function () {
70
+ clearTimeout(hideTimeout);
71
+ });
72
+
73
+ // Add keyboard support for Enter and Escape
74
+ button.addEventListener('keydown', function (e) {
75
+ if (e.key === 'Enter') {
76
+ // Toggle popup visibility on Enter
77
+ if (!popup.classList.contains('hidden')) {
78
+ hidePopup();
79
+ } else {
80
+ showPopup(e);
81
+ // Focus the first focusable element in the popup for accessibility
82
+ const firstFocusable = popup.querySelector(
83
+ 'a, button, input, [tabindex="0"]'
84
+ );
85
+ if (firstFocusable) firstFocusable.focus();
86
+ }
87
+ }
88
+ });
89
+
90
+ document.addEventListener('keydown', function (e) {
91
+ if (e.key === 'Escape' && !popup.classList.contains('hidden')) {
92
+ hidePopup();
93
+ }
94
+ });
95
+ }
96
+ }
97
+ });
@@ -1,3 +1,7 @@
1
1
  /* css for decidim_feeds */
2
2
 
3
3
  @import '_variables.scss';
4
+
5
+ .text-feeds-host {
6
+ color: red;
7
+ }
@@ -1,18 +1,30 @@
1
1
  <div class="form__wrapper">
2
- <div class="card" data-component="accordion" id="accordion-title">
3
- <div class="card-divider">
4
- <button class="card-divider-button" data-open="true" data-controls="panel-title" type="button">
5
- <%= icon "arrow-right-s-line" %>
6
- <h2 class="card-title" id="title">
7
- <%= t("title", scope: "decidim.feeds.feeds.form") %>
8
- </h2>
9
- </button>
10
- </div>
11
-
12
- <div id="panel-title" class="card-section">
13
- <div class="row column">
14
- <%= form.text_field :title, autofocus: true, aria: { label: :title } %>
15
- </div>
2
+ <div id="panel-title" class="card-section">
3
+ <div class="row column">
4
+ <%= form.translated_one_locale :text_field, :title, current_locale, autofocus: true, aria: { label: :title } %>
16
5
  </div>
17
6
  </div>
7
+
8
+ <%= form.upload :documents,
9
+ titled: true,
10
+ label: false,
11
+ button_label: t("add_logo", scope: "decidim.feeds.feeds.form"),
12
+ button_edit_label: I18n.t("replace_logo", scope: "decidim.feeds.feeds.form"),
13
+ multiple: true,
14
+ # modal_only: false,
15
+ # show_current: true,
16
+ #label: false,
17
+ # id: field_id,
18
+ # disabled:,
19
+ # attribute:,
20
+ # resource_name: @object_name,
21
+ # resource_class: options[:resource_class]&.to_s || resource_class(attribute),
22
+ # show_current: true,
23
+ # max_file_size:,
24
+ # help: help_messages,
25
+ # label: label_for(attribute),
26
+ # button_label:,
27
+ # button_edit_label: I18n.t("decidim.forms.upload.labels.replace"),
28
+ button_class: "button button__sm button__transparent-primary w-full",
29
+ required: false %>
18
30
  </div>
@@ -0,0 +1,42 @@
1
+ <div id="feeds_popup" class="feeds_popup flex gap-2 fixed bottom-[5.5rem] left-4 z-[1000] hidden">
2
+ <div class="flex flex-col rounded-2xl shadow px-2 py-4 bg-white">
3
+ <nav aria-label="<%= t("decidim.feeds.feeds.menu.title") %>">
4
+ <ul class="flex flex-col gap-4 min-w-[80px]">
5
+ <li class="flex flex-col items-center gap-1">
6
+ <%= link_to decidim_feeds.feeds_path, class:'flex flex-col items-center' do %>
7
+ <%= icon "group-2-line", class: 'w-[24px] h-auto' %>
8
+ <span class="text-sm text-center"><%= t("decidim.feeds.feeds.menu.all") %></span>
9
+ <% end %>
10
+ </li>
11
+ <li class="flex flex-col items-center gap-1">
12
+ <%= link_to decidim_feeds.new_feed_path, class:'flex flex-col items-center' do %>
13
+ <%= icon "add-circle-line", class: 'w-[24px] h-auto' %>
14
+ <span class="text-sm text-center"><%= t("decidim.feeds.feeds.menu.new") %></span>
15
+ <% end %>
16
+ </li>
17
+ <li class="flex flex-col items-center gap-1">
18
+ <%= link_to decidim_feeds.new_feed_path, class:'flex flex-col items-center' do %>
19
+ <%= icon "settings-3-line", class: 'w-[24px] h-auto' %>
20
+ <span class="text-sm text-center"><%= t("decidim.feeds.feeds.menu.manage") %></span>
21
+ <% end %>
22
+ </li>
23
+ </ul>
24
+ </nav>
25
+ </div>
26
+ <div class="flex flex-col gap-2 rounded-2xl shadow px-2 py-4 bg-white">
27
+ <span class="text-sm font-bold text-center max-w-[80px]">
28
+ <%= t("decidim.feeds.feeds.menu.myGroups") %>
29
+ </span>
30
+ <nav aria-label="<%= t("decidim.feeds.feeds.menu.myGroups") %>">
31
+ <ul class="flex flex-col gap-4">
32
+ <li class="flex flex-col items-center gap-1">
33
+ <%= link_to '/', class:'flex flex-col items-center' do %>
34
+ <%= icon "group-2-line", class: 'w-[48px] h-auto' %>
35
+ <span class="text-sm text-center sr-only">NAME</span>
36
+ <% end %>
37
+ </li>
38
+ </ul>
39
+ </nav>
40
+ </div>
41
+ </div>
42
+ <%= append_javascript_pack_tag "decidim_feeds" %>
@@ -0,0 +1,36 @@
1
+ <%# add_decidim_meta_tags({
2
+ image_url: current_participatory_space.attached_uploader(:hero_image).path,
3
+ description: translated_attribute(current_participatory_space.short_description),
4
+ url: feed_url(current_participatory_space),
5
+ twitter_handler: current_organization.twitter_handler
6
+ }) %>
7
+
8
+
9
+
10
+ <%
11
+ edit_link(
12
+ resource_locator(current_participatory_space).edit,
13
+ :update,
14
+ :feed,
15
+ feed: current_participatory_space
16
+ )
17
+ %>
18
+
19
+
20
+ <%= link_to t(".show_posts"), decidim_feed_posts_path(current_participatory_space, @posts_component) %>
21
+ <%= link_to t(".edit"), edit_feed_path(@current_feed) %>
22
+
23
+ <div class="participatory-space__container">
24
+
25
+ <%= participatory_space_floating_help %>
26
+
27
+ <% active_content_blocks.each do |content_block| %>
28
+ <% next unless content_block.manifest %>
29
+ <%= cell content_block.manifest.cell, content_block %>
30
+ <% end %>
31
+
32
+ </div>
33
+
34
+ <section class="participatory-space__block-reference">
35
+ <%= resource_reference(current_participatory_space) %>
36
+ </section>
@@ -0,0 +1,12 @@
1
+ <aside class="!relative !top-0 !bottom-0 !right-0">
2
+ <nav>
3
+ <ul class="flex flex-col gap-4">
4
+ <li class="flex flex-col items-center gap-1">
5
+ <%= link_to decidim_feeds.new_feed_path, class:'flex flex-col items-center' do %>
6
+ <%= icon "add-circle-line", class: 'w-[24px] h-auto' %>
7
+ <span class="text-sm text-center"><%= t("decidim.feeds.feeds.index.new_feed") %></span>
8
+ <% end %>
9
+ </li>
10
+ </ul>
11
+ </nav>
12
+ </aside>
@@ -1,10 +1,27 @@
1
- <div>
2
- <%= decidim_form_for(@form, html: { class: "form form-defaults edit_feed feed_form_admin" }) do |f| %>
3
- <%= render partial: "form", object: f %>
4
- <div class="item__edit-sticky">
5
- <div class="item__edit-sticky-container">
6
- <%= f.submit t("feeds.edit.update", scope: "decidim.feeds"), class: "button button__sm button__secondary" %>
1
+ <main class="feeds__main w-full xl:max-w-screen-xl 2xl:max-w-screen-2xl mx-auto p-4 lg:p-16">
2
+ <div class="feeds__container grow min-h-[calc(100vh-72px)]">
3
+ <div class="feeds__body flex-grow flex flex-wrap gap-4 items-start">
4
+ <div class="card__grid-home w-full lg:grid-cols-8 xl:grid-cols-12 gap-6">
5
+ <div class="p-2 gap-4 md:col-start-1 md:col-end-4 lg:col-start-2 lg:col-end-8 xl:col-start-2 xl:col-end-10">
6
+ <%= link_to decidim_feeds.feeds_path, class:'flex items-center gap-1' do %>
7
+ <%= icon "arrow-left-circle-line", class: 'w-[24px] h-auto' %>
8
+ <span class="text-sm text-center"><%= t("decidim.feeds.feeds.nav.back") %></span>
9
+ <% end %>
10
+ </div>
11
+ <div class="p-2 gap-4 md:col-start-1 md:col-end-4 lg:col-start-2 lg:col-end-8 xl:col-start-2 xl:col-end-10">
12
+ <h1 class="text-xl font-bold mb-2 uppercase">
13
+ <%= t "feeds.edit.title", scope: "decidim.feeds" %>
14
+ </h1>
15
+ <%= decidim_form_for(@form, html: { class: "form form-defaults edit_feed feed_form_admin" }) do |f| %>
16
+ <%= render partial: "form", object: f %>
17
+ <div class="item__edit-sticky">
18
+ <div class="item__edit-sticky-container">
19
+ <%= f.submit t("feeds.edit.update", scope: "decidim.feeds"), class: "button button__sm button__secondary" %>
20
+ </div>
21
+ </div>
22
+ <% end %>
23
+ </div>
7
24
  </div>
8
25
  </div>
9
- <% end %>
10
- </div>
26
+ </div>
27
+ </main>
@@ -1,5 +1,39 @@
1
- <% @feeds.each do |feed| %>
2
- <%= link_to translated_attribute(feed.title), feed %>
3
- <% end %>
4
-
5
- <%= link_to t(".new_feed"), new_feed_path %>
1
+ <main class="feeds__main flex w-full xl:max-w-screen-xl 2xl:max-w-screen-2xl mx-auto p-4 lg:p-16 lg:flex-row lg:gap-4 lg:justify-between">
2
+ <div class="feeds__container grow min-h-[calc(100vh-72px)]">
3
+ <div class="feeds__body flex-grow flex flex-wrap gap-4 items-start">
4
+ <div class="card__grid-home w-full lg:grid-cols-8 xl:grid-cols-12 gap-6">
5
+ <div class="p-2 gap-4 md:col-start-1 md:col-end-4 lg:col-start-2 lg:col-end-8 xl:col-start-2 xl:col-end-10">
6
+ <h1 class="text-xl mb-2 uppercase"><%= t("decidim.feeds.feeds.index.all_feeds") %></h1>
7
+ <ul class="flex gap-2 flex-wrap">
8
+ <% @feeds.each do |feed| %>
9
+ <li>
10
+ <%= link_to feed, class:'flex flex-col items-center' do %>
11
+ <% if feed.attachments.any? %>
12
+ <%= image_tag feed.attachments.first.file.url, class: 'w-[48px] h-auto' %>
13
+ <% else %>
14
+ <%= icon "group-2-line", class: 'w-[48px] h-auto' %>
15
+ <% end %>
16
+ <span class="text-sm text-center"><%=translated_attribute(feed.title)%></span>
17
+ <% end %>
18
+ </li>
19
+ <% end %>
20
+ </ul>
21
+ </div>
22
+ <div class="p-2 gap-4 md:col-start-1 md:col-end-4 lg:col-start-2 lg:col-end-8 xl:col-start-2 xl:col-end-10">
23
+ <h2 class="text-xl font-bold mb-2 uppercase"><%= t("decidim.feeds.feeds.index.my_feeds") %></h2>
24
+ <ul class="flex gap-2 flex-wrap">
25
+ <% @feeds.each do |feed| %>
26
+ <li>
27
+ <%= link_to feed, class:'flex flex-col items-center' do %>
28
+ <%= icon "group-2-line", class: 'w-[48px] h-auto' %>
29
+ <span class="text-sm text-center"><%=translated_attribute(feed.title)%></span>
30
+ <% end %>
31
+ </li>
32
+ <% end %>
33
+ </ul>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <%= render partial: "decidim/feeds/feeds/sidebar" %>
39
+ </main>
@@ -1,20 +1,31 @@
1
1
  <% add_decidim_page_title(t("feeds.new.title", scope: "decidim.feeds")) %>
2
-
3
- <div class="item_show__header">
4
- <h1 class="item_show__header-title">
5
- <%= t "feeds.new.title", scope: "decidim.feeds" %>
6
- </h1>
7
- </div>
8
-
9
- <div class="item__edit item__edit-1col">
10
- <div class="item__edit-form">
11
- <%= decidim_form_for(@form, html: { class: "form-defaults form new_feed feed_form" }) do |f| %>
12
- <%= render partial: "form", object: f %>
13
- <div class="item__edit-sticky">
14
- <div class="item__edit-sticky-container">
15
- <%= f.submit t("feeds.new.create", scope: "decidim.feeds"), class: "button button__sm button__secondary" %>
2
+ <main class="feeds__main w-full xl:max-w-screen-xl 2xl:max-w-screen-2xl mx-auto p-4 lg:p-16">
3
+ <div class="feeds__container grow min-h-[calc(100vh-72px)]">
4
+ <div class="feeds__body flex-grow flex flex-wrap gap-4 items-start">
5
+ <div class="card__grid-home w-full lg:grid-cols-8 xl:grid-cols-12 gap-6">
6
+ <div class="p-2 gap-4 md:col-start-1 md:col-end-4 lg:col-start-2 lg:col-end-8 xl:col-start-2 xl:col-end-10">
7
+ <%= link_to decidim_feeds.feeds_path, class:'flex items-center gap-1' do %>
8
+ <%= icon "arrow-left-circle-line", class: 'w-[24px] h-auto' %>
9
+ <span class="text-sm text-center"><%= t("decidim.feeds.feeds.nav.back") %></span>
10
+ <% end %>
11
+ </div>
12
+ <div class="p-2 gap-4 md:col-start-1 md:col-end-4 lg:col-start-2 lg:col-end-8 xl:col-start-2 xl:col-end-10">
13
+ <h1 class="text-xl font-bold mb-2 uppercase">
14
+ <%= t "feeds.new.title", scope: "decidim.feeds" %>
15
+ </h1>
16
+ <%= decidim_form_for(@form, html: { class: "form-defaults form new_feed feed_form" }) do |f| %>
17
+ <%= render partial: "form", object: f %>
18
+ <div class="item__edit-sticky">
19
+ <div class="item__edit-sticky-container">
20
+ <%= f.submit class: "button button__sm button__secondary" do %>
21
+ <%= t("feeds.new.create", scope: "decidim.feeds") %>
22
+ <%= icon "arrow-right-line", class: '' %>
23
+ <% end %>
24
+ </div>
25
+ </div>
26
+ <% end %>
16
27
  </div>
17
28
  </div>
18
- <% end %>
29
+ </div>
19
30
  </div>
20
- </div>
31
+ </main>
@@ -1,33 +1,34 @@
1
- <%# add_decidim_meta_tags({
2
- image_url: current_participatory_space.attached_uploader(:hero_image).path,
3
- description: translated_attribute(current_participatory_space.short_description),
4
- url: feed_url(current_participatory_space),
5
- twitter_handler: current_organization.twitter_handler
6
- }) %>
1
+ <% add_decidim_page_title(t("feeds.edit.update", scope: "decidim.feeds")) %>
2
+ <main class="feeds__main flex w-full xl:max-w-screen-xl 2xl:max-w-screen-2xl mx-auto p-4 lg:p-16 lg:flex-row lg:gap-4 lg:justify-between">
3
+ <div class="grow min-h-[calc(100vh-72px)]">
4
+ <div class="feeds__body flex-grow flex flex-wrap gap-4 items-start">
5
+ <div class="card__grid-home w-full lg:grid-cols-8 xl:grid-cols-12 gap-6">
6
+ <div class="p-2 gap-4 md:col-start-1 md:col-end-4 lg:col-start-2 lg:col-end-8 xl:col-start-2 xl:col-end-10">
7
+ <%= link_to decidim_feeds.feeds_path, class:'flex items-center gap-1' do %>
8
+ <%= icon "arrow-left-circle-line", class: 'w-[24px] h-auto' %>
9
+ <span class="text-sm text-center"><%= t("decidim.feeds.feeds.nav.back") %></span>
10
+ <% end %>
11
+ </div>
12
+ <div class="p-2 gap-4 md:col-start-1 md:col-end-4 lg:col-start-2 lg:col-end-8 xl:col-start-2 xl:col-end-10">
13
+ <div class="flex justify-between pb-4">
14
+ <%= link_to decidim_feed_posts_path(current_participatory_space, @posts_component) do %>
15
+ <h1 class="mb-2 flex gap-4 align-baseline">
16
+ <%= icon "group-2-line", class: 'w-[48px] h-auto' %>
17
+ <span class="text-xl font-bold uppercase"><%= translated_attribute @feed.title %></span>
18
+ </h1>
19
+ <% end %>
20
+ <%= link_to decidim_feeds.edit_feed_path(@feed), class:'flex flex-col items-center' do %>
21
+ <%= icon "settings-3-line", class: 'w-[24px] h-auto' %>
22
+ <span class="text-sm text-center"><%= t("decidim.feeds.feeds.menu.edit") %></span>
23
+ <% end %>
24
+ </div>
25
+ <p class="text-pretty py-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sapien ornare vitae amet.</p>
26
+ <div class="flex gap-4 py-4">
27
+ <%= link_to t(".show_posts"), decidim_feed_posts_path(current_participatory_space, @posts_component), class: "button button__sm button__transparent-primary self-end" %>
28
+ </div>
7
29
 
8
- <%
9
- edit_link(
10
- resource_locator(current_participatory_space).edit,
11
- :update,
12
- :feed,
13
- feed: current_participatory_space
14
- )
15
- %>
16
-
17
- <%= link_to t(".show_posts"), decidim_feed_posts_path(current_participatory_space, @posts_component) %>
18
- <%= link_to t(".edit"), edit_feed_path(@current_feed) %>
19
-
20
- <div class="participatory-space__container">
21
-
22
- <%= participatory_space_floating_help %>
23
-
24
- <% active_content_blocks.each do |content_block| %>
25
- <% next unless content_block.manifest %>
26
- <%= cell content_block.manifest.cell, content_block %>
27
- <% end %>
28
-
29
- </div>
30
-
31
- <section class="participatory-space__block-reference">
32
- <%= resource_reference(current_participatory_space) %>
33
- </section>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </main>
@@ -3,8 +3,19 @@ bs:
3
3
  decidim:
4
4
  feeds:
5
5
  feeds:
6
+ nav:
7
+ back: Nazad
8
+ menu:
9
+ title: Upravljanje Feedovima
10
+ all: Sve
11
+ new: Novo
12
+ manage: Upravljaj
13
+ edit: Uredi
14
+ myGroups: Moje Grupe
6
15
  index:
7
16
  new_feed: Novi Feed
17
+ all_feeds: Svi Feedovi
18
+ my_feeds: Moji Feedovi
8
19
  show:
9
20
  show_posts: Prikazi postove
10
21
  edit: Uredi
@@ -14,18 +25,28 @@ bs:
14
25
  create: Kreiraj Feed
15
26
  edit:
16
27
  update: Ažuriraj Feed
28
+ title: Uredi Feed
17
29
  form:
18
30
  title: Naslov
31
+ add_logo: Dodaj Logo
32
+ replace_logo: Zamijeni Logo
19
33
  create:
20
34
  error: Kreiranje feeda nije uspjelo
21
35
  success: Feed uspješno kreiran
22
36
  update:
23
37
  success: Feed uspješno ažuriran
24
38
  error: Ažuriranje feeda nije uspjelo
39
+ user:
40
+ filter:
41
+ title: Pretraga
42
+ name: Ime
43
+ interest: Interes
44
+ block: Stube / Zgrada / Kvart
45
+ noUser: Nema korisnika
25
46
  admin:
26
47
  feeds:
27
48
  index:
28
- new_info_page_info: "Za Feeds UI, potrebna vam je stranica s URL slugom \"info\""
49
+ new_info_page_info: 'Za Feeds UI, potrebna vam je stranica s URL slugom "info"'
29
50
  new_info_page_button: Kreiraj novu info stranicu
30
51
  form:
31
52
  title: Naslov
@@ -37,7 +58,7 @@ bs:
37
58
  feeds:
38
59
  name: Feed
39
60
  survey:
40
- participated: "%{count} odgovora"
61
+ participated: '%{count} odgovora'
41
62
  shared:
42
63
  flag_modal:
43
64
  report: Prijavi
@@ -3,29 +3,50 @@ de:
3
3
  decidim:
4
4
  feeds:
5
5
  feeds:
6
+ nav:
7
+ back: Zurück
8
+ menu:
9
+ title: Gruppenverwaltung
10
+ all: Alle
11
+ new: Neue
12
+ manage: Verwalten
13
+ edit: Bearbeiten
14
+ myGroups: Meine Gruppen
6
15
  index:
7
- new_feed: Neuer Feed
16
+ new_feed: Neue Gruppe
17
+ all_feeds: Alle Gruppen
18
+ my_feeds: Meine Gruppen
8
19
  show:
9
20
  show_posts: Beiträge anzeigen
10
21
  edit: Bearbeiten
11
22
  posts_component_not_found: Beitragskomponente nicht gefunden
12
23
  new:
13
- title: Neuer Feed
14
- create: Feed erstellen
24
+ title: Neue Gruppe
25
+ create: Gruppe erstellen
15
26
  edit:
16
- update: Feed aktualisieren
27
+ update: Gruppe aktualisieren
28
+ title: Gruppe bearbeiten
17
29
  form:
18
30
  title: Titel
31
+ add_logo: Logo hinzufügen
32
+ replace_logo: Logo ersetzen
19
33
  create:
20
34
  error: Feed-Erstellung fehlgeschlagen
21
35
  success: Feed erfolgreich erstellt
22
36
  update:
23
37
  success: Feed erfolgreich aktualisiert
24
38
  error: Feed-Aktualisierung fehlgeschlagen
39
+ user:
40
+ filter:
41
+ title: Suche
42
+ name: Name
43
+ interest: Interesse
44
+ block: Stiege / Gebäude / Bezirk
45
+ noUser: Keine Benutzer gefunden
25
46
  admin:
26
47
  feeds:
27
48
  index:
28
- new_info_page_info: "Für die Feeds UI benötigen sie eine Seite mit dem URL Slug \"info\""
49
+ new_info_page_info: 'Für die Feeds UI benötigen sie eine Seite mit dem URL Slug "info"'
29
50
  new_info_page_button: Neue Info-Seite erstellen
30
51
  form:
31
52
  title: Titel
@@ -37,7 +58,7 @@ de:
37
58
  feeds:
38
59
  name: Feed
39
60
  survey:
40
- participated: "%{count} Antworten"
61
+ participated: '%{count} Antworten'
41
62
  shared:
42
63
  flag_modal:
43
64
  report: Melden
@@ -3,8 +3,19 @@ en:
3
3
  decidim:
4
4
  feeds:
5
5
  feeds:
6
+ nav:
7
+ back: Back
8
+ menu:
9
+ title: Groups Management
10
+ all: All
11
+ new: New
12
+ manage: Manage
13
+ edit: Edit
14
+ myGroups: My Groups
6
15
  index:
7
16
  new_feed: New Feed
17
+ all_feeds: All Feeds
18
+ my_feeds: My Feeds
8
19
  show:
9
20
  show_posts: Show posts
10
21
  edit: Edit
@@ -14,18 +25,28 @@ en:
14
25
  create: Create Feed
15
26
  edit:
16
27
  update: Update Feed
28
+ title: Edit Feed
17
29
  form:
18
30
  title: Title
31
+ add_logo: Add Logo
32
+ replace_logo: Replace Logo
19
33
  create:
20
34
  error: Feed creation failed
21
35
  success: Feed created successfully
22
36
  update:
23
37
  success: Feed updated successfully
24
38
  error: Feed update failed
39
+ user:
40
+ filter:
41
+ title: Search
42
+ name: Name
43
+ interest: Interest
44
+ block: Staircase / Building / District
45
+ noUser: No users found
25
46
  admin:
26
47
  feeds:
27
48
  index:
28
- new_info_page_info: "For the Feeds UI, you need a page with the URL slug \"info\""
49
+ new_info_page_info: 'For the Feeds UI, you need a page with the URL slug "info"'
29
50
  new_info_page_button: Create new info page
30
51
  form:
31
52
  title: Title
@@ -37,7 +58,7 @@ en:
37
58
  feeds:
38
59
  name: Feed
39
60
  survey:
40
- participated: "%{count} responses"
61
+ participated: '%{count} responses'
41
62
  shared:
42
63
  flag_modal:
43
64
  report: Report
@@ -3,8 +3,19 @@ hr:
3
3
  decidim:
4
4
  feeds:
5
5
  feeds:
6
+ nav:
7
+ back: Nazad
8
+ menu:
9
+ title: Upravljanje Feedovima
10
+ all: Sve
11
+ new: Novo
12
+ manage: Upravljaj
13
+ edit: Uredi
14
+ myGroups: Moje Grupe
6
15
  index:
7
16
  new_feed: Novi Feed
17
+ all_feeds: Svi Feedovi
18
+ my_feeds: Moji Feedovi
8
19
  show:
9
20
  show_posts: Prikazi postove
10
21
  edit: Uredi
@@ -14,18 +25,28 @@ hr:
14
25
  create: Kreiraj Feed
15
26
  edit:
16
27
  update: Ažuriraj Feed
28
+ title: Uredi Feed
17
29
  form:
18
30
  title: Naslov
31
+ add_logo: Dodaj Logo
32
+ replace_logo: Zamijeni Logo
19
33
  create:
20
34
  error: Kreiranje feeda nije uspjelo
21
35
  success: Feed uspješno kreiran
22
36
  update:
23
37
  success: Feed uspješno ažuriran
24
38
  error: Ažuriranje feeda nije uspjelo
39
+ user:
40
+ filter:
41
+ title: Pretraga
42
+ name: Ime
43
+ interest: Interes
44
+ block: Stube / Zgrada / Kvart
45
+ noUser: Nema korisnika
25
46
  admin:
26
47
  feeds:
27
48
  index:
28
- new_info_page_info: "Za Feeds UI, potrebna vam je stranica s URL slugom \"info\""
49
+ new_info_page_info: 'Za Feeds UI, potrebna vam je stranica s URL slugom "info"'
29
50
  new_info_page_button: Kreiraj novu info stranicu
30
51
  form:
31
52
  title: Naslov
@@ -37,7 +58,7 @@ hr:
37
58
  feeds:
38
59
  name: Feed
39
60
  survey:
40
- participated: "%{count} odgovora"
61
+ participated: '%{count} odgovora'
41
62
  shared:
42
63
  flag_modal:
43
64
  report: Prijavi
@@ -3,8 +3,19 @@ it:
3
3
  decidim:
4
4
  feeds:
5
5
  feeds:
6
+ nav:
7
+ back: Indietro
8
+ menu:
9
+ title: Gestione dei gruppi
10
+ all: Tutti
11
+ new: Nuovo
12
+ manage: Gestisci
13
+ edit: Modifica
14
+ myGroups: I miei gruppi
6
15
  index:
7
16
  new_feed: Nuovo feed
17
+ all_feeds: Tutti i feed
18
+ my_feeds: I miei feed
8
19
  show:
9
20
  show_posts: Mostra post
10
21
  edit: Modifica
@@ -14,18 +25,28 @@ it:
14
25
  create: Crea feed
15
26
  edit:
16
27
  update: Aggiorna feed
28
+ title: Modifica feed
17
29
  form:
18
30
  title: Titolo
31
+ add_logo: Aggiungi Logo
32
+ replace_logo: Sostituisci Logo
19
33
  create:
20
34
  error: Creazione del feed fallita
21
35
  success: Feed creato con successo
22
36
  update:
23
37
  success: Feed aggiornato con successo
24
38
  error: Aggiornamento del feed fallito
39
+ user:
40
+ filter:
41
+ title: Cerca
42
+ name: Nome
43
+ interest: Interesse
44
+ block: Scala / Edificio / Quartiere
45
+ noUser: Nessun utente trovato
25
46
  admin:
26
47
  feeds:
27
48
  index:
28
- new_info_page_info: "Per l'interfaccia utente dei feed, è necessaria una pagina con lo slug URL \"info\""
49
+ new_info_page_info: 'Per l''interfaccia utente dei feed, è necessaria una pagina con lo slug URL "info"'
29
50
  new_info_page_button: Crea nuova pagina di informazioni
30
51
  form:
31
52
  title: Titolo
@@ -37,7 +58,7 @@ it:
37
58
  feeds:
38
59
  name: Feed
39
60
  survey:
40
- participated: "%{count} risposte"
61
+ participated: '%{count} risposte'
41
62
  shared:
42
63
  flag_modal:
43
64
  report: Segnala
@@ -3,8 +3,19 @@ sr:
3
3
  decidim:
4
4
  feeds:
5
5
  feeds:
6
+ nav:
7
+ back: Nazad
8
+ menu:
9
+ title: Upravljanje Feedovima
10
+ all: Sve
11
+ new: Novo
12
+ manage: Upravljaj
13
+ edit: Uredi
14
+ myGroups: Moje Grupe
6
15
  index:
7
16
  new_feed: Novi Feed
17
+ all_feeds: Svi Feedovi
18
+ my_feeds: Moji Feedovi
8
19
  show:
9
20
  show_posts: Prikazi postove
10
21
  edit: Uredi
@@ -14,18 +25,28 @@ sr:
14
25
  create: Kreiraj Feed
15
26
  edit:
16
27
  update: Ažuriraj Feed
28
+ title: Uredi Feed
17
29
  form:
18
30
  title: Naslov
31
+ add_logo: Dodaj Logo
32
+ replace_logo: Zamijeni Logo
19
33
  create:
20
34
  error: Kreiranje feeda nije uspelo
21
35
  success: Feed uspešno kreiran
22
36
  update:
23
37
  success: Feed uspešno ažuriran
24
38
  error: Ažuriranje feeda nije uspelo
39
+ user:
40
+ filter:
41
+ title: Pretraga
42
+ name: Ime
43
+ interest: Interes
44
+ block: Stube / Zgrada / Kvart
45
+ noUser: Nema korisnika
25
46
  admin:
26
47
  feeds:
27
48
  index:
28
- new_info_page_info: "Za Feeds UI, potrebna vam je stranica s URL slugom \"info\""
49
+ new_info_page_info: 'Za Feeds UI, potrebna vam je stranica s URL slugom "info"'
29
50
  new_info_page_button: Kreiraj novu info stranicu
30
51
  form:
31
52
  title: Naslov
@@ -37,7 +58,7 @@ sr:
37
58
  feeds:
38
59
  name: Feed
39
60
  survey:
40
- participated: "%{count} odgovora"
61
+ participated: '%{count} odgovora'
41
62
  shared:
42
63
  flag_modal:
43
64
  report: Prijavi
@@ -72,4 +93,4 @@ sr:
72
93
  fields:
73
94
  title: Naslov
74
95
  created_at: Kreirano
75
- actions: Akcije
96
+ actions: Akcije
@@ -3,8 +3,19 @@ tr:
3
3
  decidim:
4
4
  feeds:
5
5
  feeds:
6
+ nav:
7
+ back: Geri
8
+ menu:
9
+ title: Feed Yönetimi
10
+ all: Tümü
11
+ new: Yeni
12
+ manage: Yönet
13
+ edit: Düzenle
14
+ myGroups: Gruplarım
6
15
  index:
7
16
  new_feed: Yeni Feed
17
+ all_feeds: Tüm Feedler
18
+ my_feeds: Benim Feedlerim
8
19
  show:
9
20
  show_posts: Gönderileri Göster
10
21
  edit: Düzenle
@@ -14,18 +25,28 @@ tr:
14
25
  create: Feed Oluştur
15
26
  edit:
16
27
  update: Feed'i Güncelle
28
+ title: Feed'i Düzenle
17
29
  form:
18
30
  title: Başlık
31
+ add_logo: Logo Ekle
32
+ replace_logo: Logo Değiştir
19
33
  create:
20
34
  error: Feed oluşturma başarısız oldu
21
35
  success: Feed başarıyla oluşturuldu
22
36
  update:
23
37
  success: Feed başarıyla güncellendi
24
38
  error: Feed güncelleme başarısız oldu
39
+ user:
40
+ filter:
41
+ title: Ara
42
+ name: İsim
43
+ interest: İlgi
44
+ block: Merdiven / Bina / Mahalle
45
+ noUser: Kullanıcı bulunamadı
25
46
  admin:
26
47
  feeds:
27
48
  index:
28
- new_info_page_info: "Feeds UI için \"info\" URL slug'ına sahip bir sayfaya ihtiyacınız var"
49
+ new_info_page_info: 'Feeds UI için "info" URL slug''ına sahip bir sayfaya ihtiyacınız var'
29
50
  new_info_page_button: Yeni bilgi sayfası oluştur
30
51
  form:
31
52
  title: Başlık
@@ -37,7 +58,7 @@ tr:
37
58
  feeds:
38
59
  name: Feed
39
60
  survey:
40
- participated: "%{count} yanıt"
61
+ participated: '%{count} yanıt'
41
62
  shared:
42
63
  flag_modal:
43
64
  report: Rapor Et
@@ -76,6 +76,11 @@ module Decidim
76
76
  Decidim.icons.register(name: "translate", icon: "translate", category: "editor", description: "", engine: :feeds)
77
77
  Decidim.icons.register(name: "file-2-line", icon: "file-2-line", category: "editor", description: "", engine: :feeds)
78
78
  Decidim.icons.register(name: "dislike", icon: "heart-fill", description: "Dislike", category: "action", engine: :feeds)
79
+ Decidim.icons.register(name: "settings-3-line", icon: "settings-3-line", description: "", category: "action", engine: :feeds)
80
+ Decidim.icons.register(name: "add-circle-line", icon: "add-circle-line", description: "", category: "action", engine: :feeds)
81
+ Decidim.icons.register(name: "arrow-left-circle-line", icon: "arrow-left-circle-line", description: "", category: "action", engine: :feeds)
82
+ Decidim.icons.register(name: "user-unfollow-line", icon: "user-unfollow-line", description: "", category: "action", engine: :feeds)
83
+ Decidim.icons.register(name: "admin-line", icon: "admin-line", description: "", category: "action", engine: :feeds)
79
84
  end
80
85
 
81
86
  end
@@ -10,9 +10,9 @@ module Decidim
10
10
 
11
11
  feed = create_feed!
12
12
 
13
- seed_components_manifests!(participatory_space: current_feed)
13
+ seed_components_manifests!(participatory_space: feed)
14
14
 
15
- # Decidim::ContentBlocksCreator.new(current_feed).create_default!
15
+ # Decidim::ContentBlocksCreator.new(feed).create_default!
16
16
  end
17
17
 
18
18
  # def create_content_block!
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  # This holds the decidim-meetings version.
5
5
  module Feeds
6
- VERSION = "1.0.0"
6
+ VERSION = "1.0.1"
7
7
  COMPAT_DECIDIM_VERSION = [">= 0.28.0", "< 0.29"].freeze
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-feeds
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Rusa
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-10-26 00:00:00.000000000 Z
12
+ date: 2025-05-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: decidim-core
@@ -85,6 +85,9 @@ files:
85
85
  - app/views/decidim/feeds/admin/feeds/index.html.erb
86
86
  - app/views/decidim/feeds/admin/feeds/new.html.erb
87
87
  - app/views/decidim/feeds/feeds/_form.html.erb
88
+ - app/views/decidim/feeds/feeds/_menu-popup.html.erb
89
+ - app/views/decidim/feeds/feeds/_show.html.erb
90
+ - app/views/decidim/feeds/feeds/_sidebar.html.erb
88
91
  - app/views/decidim/feeds/feeds/edit.html.erb
89
92
  - app/views/decidim/feeds/feeds/index.html.erb
90
93
  - app/views/decidim/feeds/feeds/new.html.erb