Sha256: 17622ea1b2aa2da994ebd8ca6de235513033a0dcb8582c88c0ecbc7c81e0d752
Contents?: true
Size: 1.17 KB
Versions: 2
Compression:
Stored size: 1.17 KB
Contents
# frozen_string_literal: true module Katalyst module Navigation # STI base class for menu items (headings, links and buttons) class Item < ApplicationRecord belongs_to :menu, inverse_of: :items, class_name: "Katalyst::Navigation::Menu" after_initialize :initialize_tree attr_accessor :parent, :children, :index, :depth TARGETS = %i[self _top _blank kpop].index_by(&:itself).freeze enum method: TARGETS, _prefix: :target def self.permitted_params %i[ title url visible target type ] end def layout? is_a? Layout end # Entrypoint for combining additional options based on attribute rules def item_options options_for_target end def options_for_target return {} if target == "self" options = { target: target } unless target == "_blank" || target == "_top" options = { data: { turbo: true, turbo_frame: target } } end options end private def initialize_tree self.parent ||= nil self.children ||= [] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
katalyst-navigation-1.3.4 | app/models/katalyst/navigation/item.rb |
katalyst-navigation-1.3.3 | app/models/katalyst/navigation/item.rb |