Skip to content

Commit

Permalink
Merge pull request #5062 from consul/admin_menu_links
Browse files Browse the repository at this point in the history
Move admin menu methods to the component
  • Loading branch information
javierm committed Jan 12, 2023
2 parents b717bfb + b74d82e commit d27bfb2
Show file tree
Hide file tree
Showing 6 changed files with 194 additions and 144 deletions.
4 changes: 0 additions & 4 deletions app/assets/stylesheets/admin/menu.scss
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,5 @@
font-weight: normal;
margin-#{$global-right}: 0;
}

.is-active {
border-bottom: 0;
}
}
}
136 changes: 1 addition & 135 deletions app/components/admin/menu_component.html.erb
Original file line number Diff line number Diff line change
@@ -1,135 +1 @@
<ul id="admin_menu" data-accordion-menu data-multi-open="true">
<% if feature?(:proposals) %>
<li class="<%= "is-active" if controller_name == "proposals" %>">
<%= link_to t("admin.menu.proposals"), admin_proposals_path, class: "proposals-link" %>
</li>
<% end %>
<% if feature?(:debates) %>
<li class="<%= "is-active" if controller_name == "debates" %>">
<%= link_to t("admin.menu.debates"), admin_debates_path, class: "debates-link" %>
</li>
<% end %>

<li class="<%= "is-active" if controller_name == "comments" %>">
<%= link_to t("admin.menu.comments"), admin_comments_path, class: "comments-link" %>
</li>

<% if feature?(:polls) %>
<li class="<%= "is-active" if polls? %>">
<%= link_to t("admin.menu.polls"), admin_polls_path, class: "polls-link" %>
</li>
<% end %>
<% if feature?(:legislation) %>
<li class="<%= "is-active" if controller.class.module_parent == Admin::Legislation %>">
<%= link_to t("admin.menu.legislation"), admin_legislation_processes_path, class: "legislation-link" %>
</li>
<% end %>
<% if feature?(:budgets) %>
<li class="<%= "is-active" if budgets? %>">
<%= link_to t("admin.menu.budgets"), admin_budgets_path, class: "budgets-link" %>
</li>
<% end %>

<li>
<a href="#" class="booths-link"><%= t("admin.menu.title_booths") %></a>
<%= link_list(
officers_link,
booths_link,
booth_assignments_link,
shifts_link,
id: "booths_menu", class: ("is-active" if booths?)
) %>
</li>

<% if feature?(:signature_sheets) %>
<li class="<%= "is-active" if controller_name == "signature_sheets" %>">
<%= link_to t("admin.menu.signature_sheets"), admin_signature_sheets_path, class: "signature-sheets-link" %>
</li>
<% end %>

<li>
<a href="#" class="messages-link"><%= t("admin.menu.messaging_users") %></a>
<%= link_list(
newsletters_link,
admin_notifications_link,
system_emails_link,
emails_download_link,
id: "messaging_users_menu", class: ("is-active" if messages_menu_active?)
) %>
</li>

<li>
<a href="#" class="site-customization-link"><%= t("admin.menu.title_site_customization") %></a>
<%= link_list(
homepage_link,
pages_link,
banners_link,
information_texts_link,
documents_link,
class: ("is-active" if customization? && controller.class.module_parent != Admin::Poll::Questions::Answers)
) %>
</li>

<li>
<a href="#" class="moderated-content-link"><%= t("admin.menu.title_moderated_content") %></a>
<%= link_list(
(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>

<li>
<a href="#" class="profiles-link"><%= t("admin.menu.title_profiles") %></a>
<%= link_list(
administrators_link,
organizations_link,
officials_link,
moderators_link,
valuators_link,
managers_link,
(sdg_managers_link if feature?(:sdg)),
users_link,
class: ("is-active" if profiles?)
) %>
</li>

<li class="<%= "is-active" if controller_name == "stats" %>">
<%= link_to t("admin.menu.stats"), admin_stats_path, class: "stats-link" %>
</li>

<li>
<a href="#" class="settings-link"><%= t("admin.menu.title_settings") %></a>
<%= link_list(
settings_link,
tenants_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(
dashboard_actions_link,
administrator_tasks_link,
class: ("is-active" if dashboard?)
) %>
</li>
<% if ::MachineLearning.enabled? %>
<li class="<%= "is-active" if controller_name == "machine_learning" %>">
<%= link_to t("admin.menu.machine_learning"), admin_machine_learning_path, class: "ml-link" %>
</li>
<% end %>
</ul>
<%= link_list(*links, id: "admin_menu", data: { "accordion-menu": true, "multi-open": true }) %>
192 changes: 190 additions & 2 deletions app/components/admin/menu_component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,27 @@ class Admin::MenuComponent < ApplicationComponent
include LinkListHelper
delegate :can?, to: :helpers

def links
[
(proposals_link if feature?(:proposals)),
(debates_link if feature?(:debates)),
comments_link,
(polls_link if feature?(:polls)),
(legislation_link if feature?(:legislation)),
(budgets_link if feature?(:budgets)),
booths_links,
(signature_sheets_link if feature?(:signature_sheets)),
messages_links,
site_customization_links,
moderated_content_links,
profiles_links,
stats_link,
settings_links,
dashboard_links,
(machine_learning_link if ::MachineLearning.enabled?)
]
end

private

def moderated_content?
Expand Down Expand Up @@ -70,11 +91,76 @@ def messages_sections
end

def sdg_managers?
controller_name == "managers" && controller.class.module_parent == Admin::SDG
controller_name == "managers" && controller.class.module_parent == Admin::SDG
end

def managers?
controller_name == "managers" && controller.class.module_parent == Admin
controller_name == "managers" && controller.class.module_parent == Admin
end

def proposals_link
[
t("admin.menu.proposals"),
admin_proposals_path,
controller_name == "proposals",
class: "proposals-link"
]
end

def debates_link
[
t("admin.menu.debates"),
admin_debates_path,
controller_name == "debates",
class: "debates-link"
]
end

def polls_link
[
t("admin.menu.polls"),
admin_polls_path,
polls?,
class: "polls-link"
]
end

def comments_link
[
t("admin.menu.comments"),
admin_comments_path,
controller_name == "comments",
class: "comments-link"
]
end

def legislation_link
[
t("admin.menu.legislation"),
admin_legislation_processes_path,
controller.class.module_parent == Admin::Legislation,
class: "legislation-link"
]
end

def budgets_link
[
t("admin.menu.budgets"),
admin_budgets_path,
budgets?,
class: "budgets-link"
]
end

def booths_links
link_to(t("admin.menu.title_booths"), "#", class: "booths-link") +
link_list(
officers_link,
booths_link,
booth_assignments_link,
shifts_link,
id: "booths_menu", class: ("is-active" if booths?)
)
end

def officers_link
Expand Down Expand Up @@ -109,6 +195,26 @@ def shifts_link
]
end

def signature_sheets_link
[
t("admin.menu.signature_sheets"),
admin_signature_sheets_path,
controller_name == "signature_sheets",
class: "signature-sheets-link"
]
end

def messages_links
link_to(t("admin.menu.messaging_users"), "#", class: "messages-link") +
link_list(
newsletters_link,
admin_notifications_link,
system_emails_link,
emails_download_link,
id: "messaging_users_menu", class: ("is-active" if messages_menu_active?)
)
end

def newsletters_link
[
t("admin.menu.newsletters"),
Expand Down Expand Up @@ -141,6 +247,18 @@ def emails_download_link
]
end

def site_customization_links
link_to(t("admin.menu.title_site_customization"), "#", class: "site-customization-link") +
link_list(
homepage_link,
pages_link,
banners_link,
information_texts_link,
documents_link,
class: ("is-active" if customization? && controller.class.module_parent != Admin::Poll::Questions::Answers)
)
end

def homepage_link
[
t("admin.menu.site_customization.homepage"),
Expand Down Expand Up @@ -181,6 +299,20 @@ def documents_link
]
end

def moderated_content_links
link_to(t("admin.menu.title_moderated_content"), "#", class: "moderated-content-link") +
link_list(
(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?)
)
end

def hidden_proposals_link
[
t("admin.menu.hidden_proposals"),
Expand Down Expand Up @@ -237,6 +369,21 @@ def activity_link
]
end

def profiles_links
link_to(t("admin.menu.title_profiles"), "#", class: "profiles-link") +
link_list(
administrators_link,
organizations_link,
officials_link,
moderators_link,
valuators_link,
managers_link,
(sdg_managers_link if feature?(:sdg)),
users_link,
class: ("is-active" if profiles?)
)
end

def administrators_link
[
t("admin.menu.administrators"),
Expand Down Expand Up @@ -293,6 +440,29 @@ def users_link
]
end

def stats_link
[
t("admin.menu.stats"),
admin_stats_path,
controller_name == "stats",
class: "stats-link"
]
end

def settings_links
link_to(t("admin.menu.title_settings"), "#", class: "settings-link") +
link_list(
settings_link,
tenants_link,
tags_link,
geozones_link,
images_link,
content_blocks_link,
local_census_records_link,
class: ("is-active" if settings?)
)
end

def settings_link
[
t("admin.menu.settings"),
Expand Down Expand Up @@ -351,6 +521,24 @@ def local_census_records_link
]
end

def dashboard_links
link_to(t("admin.menu.dashboard"), "#", class: "dashboard-link") +
link_list(
dashboard_actions_link,
administrator_tasks_link,
class: ("is-active" if dashboard?)
)
end

def machine_learning_link
[
t("admin.menu.machine_learning"),
admin_machine_learning_path,
controller_name == "machine_learning",
class: "ml-link"
]
end

def administrator_tasks_link
[
t("admin.menu.administrator_tasks"),
Expand Down
Loading

0 comments on commit d27bfb2

Please sign in to comment.