card-mod-edit 0.11.0 → 0.11.1

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: d7c1aadcdae71b37abafb105dd2d635ba8d06ca6b2f20793707744041d2fec7d
4
- data.tar.gz: '01279e5c1dabf13847d565f9d2a41f20fc904d312b3a335b7ce2faff9455a7cc'
3
+ metadata.gz: 060450e130a1d097fe4898887562bbf3f63ffc586724461b085a0265fdc01789
4
+ data.tar.gz: 4ad0b9deff35af5955453f20422f9aa23a3fcf05f77e7f10ac2ecad83906d63c
5
5
  SHA512:
6
- metadata.gz: '098b0b886b4dab71ac825eac10506eba393452b8f63855f14b9d05a36fb992d1ea93aba9aba5ffa246e80036d4a9a9ba6c615218b74ccb1ac6781fac4870e0e0'
7
- data.tar.gz: 59f19e636b580403d624a2510b072c5a7e6951c240b77e644f33de46051ead1119eb31d135ef6c62e9a47e76e9f312619e5727e2724203b2f53b63f1bef020f7
6
+ metadata.gz: 357b106327c36d6dd1ddd47421b3cbfe1ce55aaef42d3ee006ba3106ec19c2218a67f791dbf64db8d356db38e82ac697e95fd1be254283420ba914ea1f6211cd
7
+ data.tar.gz: 4773e3bd9b7430bf8a83d8423eec6cb02fd448aeba7591d4b05227d4b4f3bdd111006aab200657dbe005a3f628ab3e5cca5f3b0de6658f9610a2b6bdec5fcea2
@@ -34,11 +34,9 @@ format :html do
34
34
  end
35
35
 
36
36
  def show_discussion?
37
- d_card = discussion_card
38
- return unless d_card
37
+ return unless (d_card = discussion_card)
39
38
 
40
- permission_task = d_card.new_card? ? :update : :read
41
- d_card.ok? permission_task
39
+ d_card.ok? discussion_permission_task(d_card)
42
40
  end
43
41
 
44
42
  def discussion_card?
@@ -50,4 +48,11 @@ format :html do
50
48
 
51
49
  card.fetch :discussion, skip_modules: true, new: {}
52
50
  end
51
+
52
+ private
53
+
54
+ def discussion_permission_task d_card=nil
55
+ d_card ||= discussion_card
56
+ d_card.new_card? ? :update : :read
57
+ end
53
58
  end
data/set/all/edit_type.rb CHANGED
@@ -42,60 +42,78 @@ format :html do
42
42
  end
43
43
  end
44
44
 
45
+ def type_field args={}
46
+ @no_current_type = args.delete :no_current_type # just a test artifact?
47
+ action_view.select_tag "card[type]", type_field_options,
48
+ args.merge("data-select2-id": "#{unique_id}-#{Time.now.to_i}")
49
+ end
50
+
51
+ private
52
+
53
+ def raw_type_options
54
+ return @raw_type_options if @raw_type_options
55
+ options = Auth.createable_types
56
+ if !@no_current_type && card.real? && !options.include?(card.type_name)
57
+ # current type should be an option on existing cards,
58
+ # regardless of create perms
59
+ options.push(card.type_name).sort!
60
+ end
61
+ @raw_type_options = ::Set.new options
62
+ end
63
+
45
64
  def wrap_type_formgroup
46
65
  formgroup "Type", input: "type", class: "type-formgroup", help: false do
47
66
  output [yield, hidden_field_tag(:assign, true)]
48
67
  end
49
68
  end
50
69
 
51
- def type_field args={}
52
- typelist = Auth.createable_types
53
- current_type = type_field_current_value args, typelist
54
- action_view.select_tag "card[type]", type_field_options(current_type),
55
- args.merge("data-select2-id": "#{unique_id}-#{Time.now.to_i}")
70
+ def type_field_options
71
+ if grouped_types.size == 1
72
+ simple_type_field_options
73
+ else
74
+ multi_type_field_options
75
+ end
76
+ end
77
+
78
+ def simple_type_field_options
79
+ options_for_select grouped_types.flatten[1], current_type_value
56
80
  end
57
81
 
58
- def type_field_options current_type
59
- types = grouped_types(current_type)
82
+ def multi_type_field_options
83
+ grouped_options_for_select grouped_types, current_type_value
84
+ end
60
85
 
61
- if types.size == 1
62
- options_for_select types.flatten[1], current_type
63
- else
64
- grouped_options_for_select types, current_type
65
- end
86
+ def current_type_value
87
+ return if @no_current_type
88
+
89
+ @current_type_value ||= card.type_name_or_default
66
90
  end
67
91
 
68
- def grouped_types current_type
92
+ def grouped_types
69
93
  groups = Hash.new { |h, k| h[k] = [] }
70
- allowed = ::Set.new Auth.createable_types
71
- allowed << current_type if current_type
72
94
 
73
- visible_cardtype_groups.each_pair do |name, items|
95
+ visible_cardtype_groups.each_pair.with_object(groups) do |(name, items), grps|
74
96
  if name == "Custom"
75
- Auth.createable_types.each do |type|
76
- groups["Custom"] << type unless ::Card::Set::Self::Cardtype::GROUP_MAP[type]
77
- end
97
+ custom_grouped_types grps
78
98
  else
79
- items.each do |i|
80
- groups[name] << i if allowed.include?(i)
81
- end
99
+ standard_grouped_types grps, name, items
82
100
  end
83
101
  end
84
- groups
85
102
  end
86
103
 
87
- def visible_cardtype_groups
88
- ::Card::Set::Self::Cardtype::GROUP
104
+ def custom_grouped_types groups
105
+ Auth.createable_types.each do |type|
106
+ groups["Custom"] << type unless ::Card::Set::Self::Cardtype::GROUP_MAP[type]
107
+ end
89
108
  end
90
109
 
91
- def type_field_current_value args, typelist
92
- return if args.delete :no_current_type
93
-
94
- if !card.new_card? && !typelist.include?(card.type_name)
95
- # current type should be an option on existing cards,
96
- # regardless of create perms
97
- typelist.push(card.type_name).sort!
110
+ def standard_grouped_types groups, name, items
111
+ items.each do |i|
112
+ groups[name] << i if raw_type_options.include?(i)
98
113
  end
99
- card.type_name_or_default
114
+ end
115
+
116
+ def visible_cardtype_groups
117
+ ::Card::Set::Self::Cardtype::GROUP
100
118
  end
101
119
  end
data/set/all/editor.rb CHANGED
@@ -24,9 +24,8 @@ format :html do
24
24
 
25
25
  # move somewhere more accessible?
26
26
  def with_card mark
27
- return nil unless (card = Card[mark])
28
-
29
- yield card
27
+ card = Card[mark]
28
+ yield card if card
30
29
  rescue Card::Error::CodenameNotFound
31
30
  nil
32
31
  end
@@ -42,6 +42,8 @@ format :html do
42
42
  end
43
43
 
44
44
  def delete_button opts={}
45
+ return unless card.real?
46
+
45
47
  link_to "Delete", delete_button_opts(opts)
46
48
  end
47
49
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card-mod-edit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-12-24 00:00:00.000000000 Z
13
+ date: 2021-03-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: card
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.101.0
21
+ version: 1.101.1
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 1.101.0
28
+ version: 1.101.1
29
29
  description: ''
30
30
  email:
31
31
  - info@decko.org