lib/cm_admin/view_helpers/navigation_helper.rb



require 'pagy'
module CmAdmin
  module ViewHelpers
    module NavigationHelper
      include Pagy::Frontend
      def navigation_links(navigation_type)
        CmAdmin.config.cm_admin_models.map do |model|
          next unless model.is_visible_on_sidebar

          path = CmAdmin::Engine.mount_path + '/' + model.name.underscore.pluralize
          if policy([:cm_admin, model.name.classify.constantize]).index?
            if navigation_type == 'sidebar'
              content_tag(:a, href: path) do
                content_tag(:div, class: 'menu-item') do
                  content_tag(:span, class: 'menu-icon') do
                    concat tag.i class: model.icon_name.to_s
                  end +
                      model.model_name.titleize.pluralize
                end
              end
            elsif navigation_type == 'quick_links'
              content_tag(:a, href: path, class: 'visible') do
                content_tag(:div, class: 'result-item') do
                  content_tag(:div, class: 'result-text') do
                    content_tag(:span, class: 'result-icon') do
                      concat tag.i class: model.icon_name.to_s
                    end +
                      content_tag(:span) do
                        model.model_name.titleize.pluralize
                      end
                  end
                end
              end
            end
          end
        end.join.html_safe
      end
    end
  end
end