Merge pull request #5062 from consul/admin_menu_links
Move admin menu methods to the component
This commit is contained in:
@@ -177,9 +177,5 @@
|
|||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
margin-#{$global-right}: 0;
|
margin-#{$global-right}: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.is-active {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,135 +1 @@
|
|||||||
<ul id="admin_menu" data-accordion-menu data-multi-open="true">
|
<%= link_list(*links, id: "admin_menu", data: { "accordion-menu": true, "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>
|
|
||||||
|
|||||||
@@ -2,6 +2,27 @@ class Admin::MenuComponent < ApplicationComponent
|
|||||||
include LinkListHelper
|
include LinkListHelper
|
||||||
delegate :can?, to: :helpers
|
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
|
private
|
||||||
|
|
||||||
def moderated_content?
|
def moderated_content?
|
||||||
@@ -77,6 +98,71 @@ class Admin::MenuComponent < ApplicationComponent
|
|||||||
controller_name == "managers" && controller.class.module_parent == Admin
|
controller_name == "managers" && controller.class.module_parent == Admin
|
||||||
end
|
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
|
def officers_link
|
||||||
[
|
[
|
||||||
t("admin.menu.poll_officers"),
|
t("admin.menu.poll_officers"),
|
||||||
@@ -109,6 +195,26 @@ class Admin::MenuComponent < ApplicationComponent
|
|||||||
]
|
]
|
||||||
end
|
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
|
def newsletters_link
|
||||||
[
|
[
|
||||||
t("admin.menu.newsletters"),
|
t("admin.menu.newsletters"),
|
||||||
@@ -141,6 +247,18 @@ class Admin::MenuComponent < ApplicationComponent
|
|||||||
]
|
]
|
||||||
end
|
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
|
def homepage_link
|
||||||
[
|
[
|
||||||
t("admin.menu.site_customization.homepage"),
|
t("admin.menu.site_customization.homepage"),
|
||||||
@@ -181,6 +299,20 @@ class Admin::MenuComponent < ApplicationComponent
|
|||||||
]
|
]
|
||||||
end
|
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
|
def hidden_proposals_link
|
||||||
[
|
[
|
||||||
t("admin.menu.hidden_proposals"),
|
t("admin.menu.hidden_proposals"),
|
||||||
@@ -237,6 +369,21 @@ class Admin::MenuComponent < ApplicationComponent
|
|||||||
]
|
]
|
||||||
end
|
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
|
def administrators_link
|
||||||
[
|
[
|
||||||
t("admin.menu.administrators"),
|
t("admin.menu.administrators"),
|
||||||
@@ -293,6 +440,29 @@ class Admin::MenuComponent < ApplicationComponent
|
|||||||
]
|
]
|
||||||
end
|
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
|
def settings_link
|
||||||
[
|
[
|
||||||
t("admin.menu.settings"),
|
t("admin.menu.settings"),
|
||||||
@@ -351,6 +521,24 @@ class Admin::MenuComponent < ApplicationComponent
|
|||||||
]
|
]
|
||||||
end
|
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
|
def administrator_tasks_link
|
||||||
[
|
[
|
||||||
t("admin.menu.administrator_tasks"),
|
t("admin.menu.administrator_tasks"),
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ describe "Budgets wizard, groups step", :admin do
|
|||||||
visit admin_budgets_wizard_budget_groups_path(budget)
|
visit admin_budgets_wizard_budget_groups_path(budget)
|
||||||
|
|
||||||
within "#side_menu" do
|
within "#side_menu" do
|
||||||
expect(page).to have_css ".is-active", exact_text: "Participatory budgets"
|
expect(page).to have_css "[aria-current]", exact_text: "Participatory budgets"
|
||||||
end
|
end
|
||||||
|
|
||||||
expect(page).to have_content "Continue to headings"
|
expect(page).to have_content "Continue to headings"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ describe "Budgets wizard, headings step", :admin do
|
|||||||
visit admin_budgets_wizard_budget_group_headings_path(budget, group)
|
visit admin_budgets_wizard_budget_group_headings_path(budget, group)
|
||||||
|
|
||||||
within "#side_menu" do
|
within "#side_menu" do
|
||||||
expect(page).to have_css ".is-active", exact_text: "Participatory budgets"
|
expect(page).to have_css "[aria-current]", exact_text: "Participatory budgets"
|
||||||
end
|
end
|
||||||
|
|
||||||
click_link "Go back to groups"
|
click_link "Go back to groups"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ describe "Budgets wizard, phases step", :admin do
|
|||||||
visit admin_budgets_wizard_budget_budget_phases_path(budget)
|
visit admin_budgets_wizard_budget_budget_phases_path(budget)
|
||||||
|
|
||||||
within "#side_menu" do
|
within "#side_menu" do
|
||||||
expect(page).to have_css ".is-active", exact_text: "Participatory budgets"
|
expect(page).to have_css "[aria-current]", exact_text: "Participatory budgets"
|
||||||
end
|
end
|
||||||
|
|
||||||
click_link "Go back to headings"
|
click_link "Go back to headings"
|
||||||
|
|||||||
Reference in New Issue
Block a user