Move link methods from view to component

This way the view is not as hard to read as it was.
This commit is contained in:
Javi Martín
2020-12-05 19:30:12 +01:00
parent 7680bfc94b
commit 1046ec5e78
2 changed files with 315 additions and 181 deletions

View File

@@ -36,26 +36,10 @@
<li>
<a href="#" class="booths-link"><%= t("admin.menu.title_booths") %></a>
<%= link_list(
[
t("admin.menu.poll_officers"),
admin_officers_path,
%w[officers officer_assignments].include?(controller_name)
],
[
t("admin.menu.poll_booths"),
admin_booths_path,
controller_name == "booths" && action_name != "available"
],
[
t("admin.menu.poll_booth_assignments"),
booth_assignments_admin_polls_path,
controller_name == "polls" && action_name == "booth_assignments" || controller_name == "booth_assignments" && action_name == "manage"
],
[
t("admin.menu.poll_shifts"),
available_admin_booths_path,
%w[shifts booths].include?(controller_name) && %w[available new].include?(action_name)
],
officers_link,
booths_link,
booth_assignments_link,
shifts_link,
id: "booths_menu", class: ("is-active" if booths?)
) %>
</li>
@@ -69,26 +53,10 @@
<li>
<a href="#" class="messages-link"><%= t("admin.menu.messaging_users") %></a>
<%= link_list(
[
t("admin.menu.newsletters"),
admin_newsletters_path,
controller_name == "newsletters"
],
[
t("admin.menu.admin_notifications"),
admin_admin_notifications_path,
controller_name == "admin_notifications"
],
[
t("admin.menu.system_emails"),
admin_system_emails_path,
controller_name == "system_emails"
],
[
t("admin.menu.emails_download"),
admin_emails_download_index_path,
controller_name == "emails_download"
],
newsletters_link,
admin_notifications_link,
system_emails_link,
emails_download_link,
id: "messaging_users_menu", class: ("is-active" if messages_menu_active?)
) %>
</li>
@@ -96,31 +64,11 @@
<li>
<a href="#" class="site-customization-link"><%= t("admin.menu.title_site_customization") %></a>
<%= link_list(
[
t("admin.menu.site_customization.homepage"),
admin_homepage_path,
homepage?
],
[
t("admin.menu.site_customization.pages"),
admin_site_customization_pages_path,
pages? || controller_name == "pages"
],
[
t("admin.menu.banner"),
admin_banners_path,
controller_name == "banners"
],
[
t("admin.menu.site_customization.information_texts"),
admin_site_customization_information_texts_path,
controller_name == "information_texts"
],
[
t("admin.menu.site_customization.documents"),
admin_site_customization_documents_path,
controller_name == "documents"
],
homepage_link,
pages_link,
banners_link,
information_texts_link,
documents_link,
class: ("is-active" if customization? && controller.class.parent != Admin::Poll::Questions::Answers)
) %>
</li>
@@ -128,47 +76,13 @@
<li>
<a href="#" class="moderated-content-link"><%= t("admin.menu.title_moderated_content") %></a>
<%= link_list(
(
[
t("admin.menu.hidden_proposals"),
admin_hidden_proposals_path,
controller_name == "hidden_proposals"
] if feature?(:proposals)
),
(
[
t("admin.menu.hidden_debates"),
admin_hidden_debates_path,
controller_name == "hidden_debates"
] if feature?(:debates)
),
(
[
t("admin.menu.hidden_budget_investments"),
admin_hidden_budget_investments_path,
controller_name == "hidden_budget_investments"
] if feature?(:budgets)
),
[
t("admin.menu.hidden_comments"),
admin_hidden_comments_path,
controller_name == "hidden_comments"
],
[
t("admin.menu.hidden_proposal_notifications"),
admin_hidden_proposal_notifications_path,
controller_name == "hidden_proposal_notifications"
],
[
t("admin.menu.hidden_users"),
admin_hidden_users_path,
controller_name == "hidden_users"
],
[
t("admin.menu.activity"),
admin_activity_path,
controller_name == "activity"
],
(hidden_proposals_link if feature?(:proposals)),
(hidden_debates_link if feature?(:debates)),
(hidden_budget_investments_link if feature?(:budgets)),
hidden_comments_link,
hidden_proposal_notifications_link,
hidden_users_link,
activity_link,
class: ("is-active" if moderated_content?)
) %>
</li>
@@ -176,41 +90,13 @@
<li>
<a href="#" class="profiles-link"><%= t("admin.menu.title_profiles") %></a>
<%= link_list(
[
t("admin.menu.administrators"),
admin_administrators_path,
controller_name == "administrators"
],
[
t("admin.menu.organizations"),
admin_organizations_path,
controller_name == "organizations"
],
[
t("admin.menu.officials"),
admin_officials_path,
controller_name == "officials"
],
[
t("admin.menu.moderators"),
admin_moderators_path,
controller_name == "moderators"
],
[
t("admin.menu.valuators"),
admin_valuators_path,
controller_name == "valuators"
],
[
t("admin.menu.managers"),
admin_managers_path,
controller_name == "managers"
],
[
t("admin.menu.users"),
admin_users_path,
controller_name == "users"
],
administrators_link,
organizations_link,
officials_link,
moderators_link,
valuators_link,
managers_link,
users_link,
class: ("is-active" if profiles?)
) %>
</li>
@@ -222,52 +108,20 @@
<li>
<a href="#" class="settings-link"><%= t("admin.menu.title_settings") %></a>
<%= link_list(
[
t("admin.menu.settings"),
admin_settings_path,
controller_name == "settings"
],
[
t("admin.menu.proposals_topics"),
admin_tags_path,
controller_name == "tags"
],
[
t("admin.menu.geozones"),
admin_geozones_path,
controller_name == "geozones"
],
[
t("admin.menu.site_customization.images"),
admin_site_customization_images_path,
controller_name == "images" && controller.class.parent != Admin::Poll::Questions::Answers
],
[
t("admin.menu.site_customization.content_blocks"),
admin_site_customization_content_blocks_path,
controller_name == "content_blocks"
],
[
t("admin.menu.local_census_records"),
admin_local_census_records_path,
local_census_records?
],
settings_link,
tags_link,
geozones_link,
images_link,
content_blocks_link,
local_census_records_link,
class: ("is-active" if settings?)
) %>
</li>
<li>
<a href="#" class="dashboard-link"><%= t("admin.menu.dashboard") %></a>
<%= link_list(
[
t("admin.menu.dashboard_actions"),
admin_dashboard_actions_path,
controller_name == "actions"
],
[
t("admin.menu.administrator_tasks"),
admin_dashboard_administrator_tasks_path,
controller_name == "administrator_tasks"
],
dashboard_actions_link,
administrator_tasks_link,
class: ("is-active" if dashboard?)
) %>
</li>

View File

@@ -67,4 +67,284 @@ class Admin::MenuComponent < ApplicationComponent
def messages_sections
%w[newsletters emails_download admin_notifications system_emails]
end
def officers_link
[
t("admin.menu.poll_officers"),
admin_officers_path,
%w[officers officer_assignments].include?(controller_name)
]
end
def booths_link
[
t("admin.menu.poll_booths"),
admin_booths_path,
controller_name == "booths" && action_name != "available"
]
end
def booth_assignments_link
[
t("admin.menu.poll_booth_assignments"),
booth_assignments_admin_polls_path,
controller_name == "polls" && action_name == "booth_assignments" || controller_name == "booth_assignments" && action_name == "manage"
]
end
def shifts_link
[
t("admin.menu.poll_shifts"),
available_admin_booths_path,
%w[shifts booths].include?(controller_name) && %w[available new].include?(action_name)
]
end
def newsletters_link
[
t("admin.menu.newsletters"),
admin_newsletters_path,
controller_name == "newsletters"
]
end
def admin_notifications_link
[
t("admin.menu.admin_notifications"),
admin_admin_notifications_path,
controller_name == "admin_notifications"
]
end
def system_emails_link
[
t("admin.menu.system_emails"),
admin_system_emails_path,
controller_name == "system_emails"
]
end
def emails_download_link
[
t("admin.menu.emails_download"),
admin_emails_download_index_path,
controller_name == "emails_download"
]
end
def homepage_link
[
t("admin.menu.site_customization.homepage"),
admin_homepage_path,
homepage?
]
end
def pages_link
[
t("admin.menu.site_customization.pages"),
admin_site_customization_pages_path,
pages? || controller_name == "pages"
]
end
def banners_link
[
t("admin.menu.banner"),
admin_banners_path,
controller_name == "banners"
]
end
def information_texts_link
[
t("admin.menu.site_customization.information_texts"),
admin_site_customization_information_texts_path,
controller_name == "information_texts"
]
end
def documents_link
[
t("admin.menu.site_customization.documents"),
admin_site_customization_documents_path,
controller_name == "documents"
]
end
def hidden_proposals_link
[
t("admin.menu.hidden_proposals"),
admin_hidden_proposals_path,
controller_name == "hidden_proposals"
]
end
def hidden_debates_link
[
t("admin.menu.hidden_debates"),
admin_hidden_debates_path,
controller_name == "hidden_debates"
]
end
def hidden_budget_investments_link
[
t("admin.menu.hidden_budget_investments"),
admin_hidden_budget_investments_path,
controller_name == "hidden_budget_investments"
]
end
def hidden_comments_link
[
t("admin.menu.hidden_comments"),
admin_hidden_comments_path,
controller_name == "hidden_comments"
]
end
def hidden_proposal_notifications_link
[
t("admin.menu.hidden_proposal_notifications"),
admin_hidden_proposal_notifications_path,
controller_name == "hidden_proposal_notifications"
]
end
def hidden_users_link
[
t("admin.menu.hidden_users"),
admin_hidden_users_path,
controller_name == "hidden_users"
]
end
def activity_link
[
t("admin.menu.activity"),
admin_activity_path,
controller_name == "activity"
]
end
def administrators_link
[
t("admin.menu.administrators"),
admin_administrators_path,
controller_name == "administrators"
]
end
def organizations_link
[
t("admin.menu.organizations"),
admin_organizations_path,
controller_name == "organizations"
]
end
def officials_link
[
t("admin.menu.officials"),
admin_officials_path,
controller_name == "officials"
]
end
def moderators_link
[
t("admin.menu.moderators"),
admin_moderators_path,
controller_name == "moderators"
]
end
def valuators_link
[
t("admin.menu.valuators"),
admin_valuators_path,
controller_name == "valuators"
]
end
def managers_link
[
t("admin.menu.managers"),
admin_managers_path,
controller_name == "managers"
]
end
def users_link
[
t("admin.menu.users"),
admin_users_path,
controller_name == "users"
]
end
def settings_link
[
t("admin.menu.settings"),
admin_settings_path,
controller_name == "settings"
]
end
def tags_link
[
t("admin.menu.proposals_topics"),
admin_tags_path,
controller_name == "tags"
]
end
def geozones_link
[
t("admin.menu.geozones"),
admin_geozones_path,
controller_name == "geozones"
]
end
def images_link
[
t("admin.menu.site_customization.images"),
admin_site_customization_images_path,
controller_name == "images" && controller.class.parent != Admin::Poll::Questions::Answers
]
end
def content_blocks_link
[
t("admin.menu.site_customization.content_blocks"),
admin_site_customization_content_blocks_path,
controller_name == "content_blocks"
]
end
def local_census_records_link
[
t("admin.menu.local_census_records"),
admin_local_census_records_path,
local_census_records?
]
end
def administrator_tasks_link
[
t("admin.menu.administrator_tasks"),
admin_dashboard_administrator_tasks_path,
controller_name == "administrator_tasks"
]
end
def dashboard_actions_link
[
t("admin.menu.dashboard_actions"),
admin_dashboard_actions_path,
controller_name == "actions"
]
end
end