Sha256: 88771ca5fd3c6c261de1d096e38f3c1d3c5a65dac551b8d521537e8193baf0bc

Contents?: true

Size: 975 Bytes

Versions: 3

Compression:

Stored size: 975 Bytes

Contents

module Trestle
  module NavigationHelper
    def current_navigation_item?(item)
      current_page?(item.path) || (item.admin && current_admin?(item.admin))
    end

    def current_admin?(admin)
      respond_to?(:admin) &&
        self.admin.respond_to?(:name) &&
        self.admin.name == admin.name
    end

    def navigation_group_collapsed?(group)
      if collapsed_navigation_groups.include?(group.id)
        # Explicitly collapsed by user
        true
      elsif group.collapse?
        # Default to collapsed unless expanded by user
        !expanded_navigation_groups.include?(group.id)
      end
    end

  private
    def collapsed_navigation_groups
      @collapsed_navigation_groups ||= navigation_groups(:collapsed)
    end

    def expanded_navigation_groups
      @expanded_navigation_groups ||= navigation_groups(:expanded)
    end

    def navigation_groups(state)
      cookies["trestle:navigation:#{state}"].try(:split, ",") || []
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trestle-0.10.0 app/helpers/trestle/navigation_helper.rb
trestle-0.10.0.pre2 app/helpers/trestle/navigation_helper.rb
trestle-0.10.0.pre app/helpers/trestle/navigation_helper.rb