* feat: add the nested sidebar with some elements * feat: create a tabbed nav item menu * feat: add the tabbed nav_item partial to the views that need tabbed nav items * fix: change variable back * feat: style the sidebar a bit more * chore: add some more styles * feat: add a spec for the nested navigational items * refactor: a more dynamic tabbed admin helper * feat: add some more nav items * fix: controller for reports * refactor: shorthand if statement * chore: add the whitespace back * refactor: rubocop fixes * chore: use any * chore: remove whitespace * refactor: rename the variable * refactor: use a DSL style admin helper * chore: variable renaming and routes * rubocop: fixes * refactor: move files to more apt places * chore: keep overview as it was previously * Update app/views/admin/secrets/index.html.erb Co-authored-by: Michael Kohl <me@citizen428.net> * Update app/views/admin/shared/_tabbed_navbar.erb Co-authored-by: Michael Kohl <me@citizen428.net> * Update app/views/admin/badges/index.html.erb Co-authored-by: Michael Kohl <me@citizen428.net> * chore: disable blocklength * refactor: move the logic to the model instead of in the view * chore: remove get_ prefix * chore: move the request mangling to a helper that finds the controller and scope * Update app/helpers/admin_helper.rb Co-authored-by: rhymes <rhymes@hey.com> * Update app/helpers/admin_helper.rb Co-authored-by: rhymes <rhymes@hey.com> * refactor: Address feedback * oops * oops use tr * feat: update specs * fix: badge achievements Co-authored-by: Michael Kohl <me@citizen428.net> Co-authored-by: rhymes <rhymes@hey.com>
23 lines
439 B
Ruby
23 lines
439 B
Ruby
class Menu
|
|
# Used to build the data structure for the Admin Menu model.
|
|
|
|
def self.define(&block)
|
|
builder = new
|
|
builder.instance_exec(&block)
|
|
builder.items
|
|
end
|
|
|
|
attr_reader :items
|
|
|
|
def initialize
|
|
@items = {}
|
|
end
|
|
|
|
def scope(name, children)
|
|
@items[name] = children
|
|
end
|
|
|
|
def item(name:, controller: name, children: [])
|
|
{ name: name, controller: controller.tr(" ", "_"), children: children }
|
|
end
|
|
end
|