katalyst-navigation 1.3.1 → 1.3.3

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: faf8cc382bdaae60ca2a35d93dcdfe970e36d317912ed13038607e74cf68da45
4
- data.tar.gz: '05539e1025ee15510fb6952a3bfec19534daa834af0dd80f303081badb3a68cf'
3
+ metadata.gz: 0430e1c7846b906e84d20fd7c0302b9a602a0a4427a925b12590983ec07a15c2
4
+ data.tar.gz: 85387acf67b2842d791daf9f7272b067cca28991913e36541eb7c6ef6b9aedf3
5
5
  SHA512:
6
- metadata.gz: dd9484b91afa4c6e80347513fe063989b00f838b9b6ca7bd3ff448879f444a89a7789e9e3fe7216987f67ea23fa4ae036797841b6e8631be37b157b6000b807f
7
- data.tar.gz: 650999ce4d2ead2f82c80ec97458edbc326c0c43c57c62a5bb72f86f1c79c7c8c0adee7dba0653b4ea09b05d135677ad4de582209b13d7d9a66592ca8b49a058
6
+ metadata.gz: '034680c7620436686cf44504c3b22fd93a23301678c86a61fd2741719bdc8b16a561bb09d44b61256c33c41ee09a9418df071b1274615a38ab5a337f54049310'
7
+ data.tar.gz: db8060ce2d4bc572340af555630db50a3dc117f64c5f74b8faa85d9b674a2ec16c6f9ecede44eb16722059358ccdd6ef9d5a2d5fde1a5dede83ce5c21ade9d8d
@@ -42,7 +42,7 @@ export default class Item {
42
42
  * @returns {number} logical nesting depth of node in menu
43
43
  */
44
44
  get depth() {
45
- return parseInt(this.node.dataset[`navigationDepth`]);
45
+ return parseInt(this.node.dataset[`navigationDepth`]) || 0;
46
46
  }
47
47
 
48
48
  get #depthInput() {
@@ -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.1"
5
+ VERSION = "1.3.3"
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.1
4
+ version: 1.3.3
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-02 00:00:00.000000000 Z
11
+ date: 2022-11-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: