katalyst-navigation 1.3.2 → 1.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7355ef157efbf9879accdafa63efa35f02815aa29be531d9e4f73289c130e433
4
- data.tar.gz: 32cb8173a0f397d3b36491b35687b4a4848d5e7deed554742e5310d2a33b7a35
3
+ metadata.gz: c8641b8fd17205d9daa4beaf83301081e559193179c236ada502f251c577555b
4
+ data.tar.gz: 3fa8331ed9c531013405915b57dd998440b385ceaf662fe72cbe74a88d29bb4f
5
5
  SHA512:
6
- metadata.gz: 52ec419f941ed4f1fb101206552c4bfde580a9c9afe8a50b63ca68ea2e569f6356a2feba27230bd9f7a6fec29f7c571703e7faee22007609aab393a0b21c7ba0
7
- data.tar.gz: 0dbf4578c6b223b5fc6ab8f506cf4e45a392811ad181272352a64bdae83242367f927c7fa673349247f791b69387d08072c8f55b5609fa19d637880f2bf81c71
6
+ metadata.gz: 673b6803479f9d2b772e9bfbf0fbd05734794e334a4f9f14ace81dd83e8aca6c79554704595aa0bcbe8fdf92d5b309bffe4a5eba3c153dc6c83a5615bf6a3699
7
+ data.tar.gz: 325eea3d0caab65ea72dd948adcfc6a94f847d2d2ba158d281b75281edaf6b7204608fb01e001861709592acfbd545a2b0fabf122ed50cf43e06ca98d2d71797
@@ -46,11 +46,11 @@ module Katalyst
46
46
  end
47
47
 
48
48
  def render_link(link)
49
- link_to(link.title, link.url)
49
+ link_to(link.title, link.url, link.item_options)
50
50
  end
51
51
 
52
52
  def render_button(link)
53
- link_to(link.title, link.url, method: link.http_method)
53
+ link_to(link.title, link.url, link.item_options)
54
54
  end
55
55
 
56
56
  private
@@ -14,6 +14,17 @@ module Katalyst
14
14
  def self.permitted_params
15
15
  super + %i[http_method]
16
16
  end
17
+
18
+ def options_for_target
19
+ options = super
20
+
21
+ if target == "_blank" || target == "_top" || target == "self"
22
+ options.deep_merge!({ data: { method: http_method } })
23
+ else
24
+ options.deep_merge!({ data: { turbo_method: http_method } })
25
+ end
26
+ options
27
+ end
17
28
  end
18
29
  end
19
30
  end
@@ -10,12 +10,16 @@ module Katalyst
10
10
 
11
11
  attr_accessor :parent, :children, :index, :depth
12
12
 
13
+ TARGETS = %i[self _top _blank kpop].index_by(&:itself).freeze
14
+
15
+ enum method: TARGETS, _prefix: :target
16
+
13
17
  def self.permitted_params
14
18
  %i[
15
19
  title
16
20
  url
17
21
  visible
18
- new_tab
22
+ target
19
23
  type
20
24
  ]
21
25
  end
@@ -24,6 +28,22 @@ module Katalyst
24
28
  is_a? Layout
25
29
  end
26
30
 
31
+ # Entrypoint for combining additional options based on attribute rules
32
+ def item_options
33
+ options_for_target
34
+ end
35
+
36
+ def options_for_target
37
+ return {} if target == "self"
38
+
39
+ options = { target: target }
40
+
41
+ unless target == "_blank" || target == "_top"
42
+ options = { data: { turbo: true, turbo_frame: target } }
43
+ end
44
+ options
45
+ end
46
+
27
47
  private
28
48
 
29
49
  def initialize_tree
@@ -9,6 +9,7 @@ class CreateKatalystNavigationItems < ActiveRecord::Migration[7.0]
9
9
  t.string :title
10
10
  t.string :url
11
11
  t.string :http_method
12
+ t.string :target
12
13
  t.boolean :visible, default: true
13
14
 
14
15
  t.timestamps
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Katalyst
4
4
  module Navigation
5
- VERSION = "1.3.2"
5
+ VERSION = "1.3.4"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katalyst-navigation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katalyst Interactive
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-08 00:00:00.000000000 Z
11
+ date: 2023-05-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -82,7 +82,6 @@ files:
82
82
  - lib/katalyst/navigation/config.rb
83
83
  - lib/katalyst/navigation/engine.rb
84
84
  - lib/katalyst/navigation/version.rb
85
- - lib/tasks/yarn.rake
86
85
  - spec/factories/katalyst/navigation/items.rb
87
86
  - spec/factories/katalyst/navigation/menus.rb
88
87
  homepage: https://github.com/katalyst/navigation
data/lib/tasks/yarn.rake DELETED
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :yarn do
4
- desc "Install npm packages with yarn"
5
- task install: :environment do
6
- sh "yarn install"
7
- end
8
-
9
- desc "Lint JS/SCSS files using yarn (prettier)"
10
- task lint: :install do
11
- sh "yarn lint"
12
- end
13
-
14
- desc "Autoformat JS/SCSS files using yarn (prettier)"
15
- task format: :install do
16
- sh "yarn format"
17
- end
18
- end