card-mod-edit 0.1 → 0.11.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: a7bdfc901290eeb41d413810325770cbb1a84550f5904ac31f040199bb6ea867
4
- data.tar.gz: 2bc78ed7d0e52c36cb1780cdf094d42923c5cc8acaffcfd860895b09cdad6e42
3
+ metadata.gz: c4585a2392445ad135ba9d2ca3d5281ac157e60c985a13065ab40fe616833dd1
4
+ data.tar.gz: 411c89a8efe8b6340e712265a7b57b2b4a32d97cb4a3ce767a06f647baa74891
5
5
  SHA512:
6
- metadata.gz: 837208fbdc76eabc11fc0994c0f6287266479d4e157ec7468eb6333bd628b897c11413a829c35d2bd44b68ce08f06365c9b63f38f717d9ae6695713c927d85cb
7
- data.tar.gz: 1fd91ea28bfbdc343dbf7f240b102e32e6d0249531ed212643d07b9f2bfbce262d553c55bc278dd23f98a4f5475a5697c30bb48de67e18924f72815b4fde06e7
6
+ metadata.gz: 0b593eeb1dcd1c28e11154cf4a2d97708901d5fdaf087441e641767070c74061b9d39bc89368b5f37f82c9f0070070a33d88076ce2fb29d096a4998244769735
7
+ data.tar.gz: ae37bbd8b63506434029f7acb2627070912a0bf2211ecc0e63140ff2941c8801516dcdc7c6a300ce6d1e9167b6f10b5d01d7f51daf2f580a64cde0269b3b6e51
data/set/all/bridge.rb CHANGED
@@ -1,11 +1,11 @@
1
- format :html do
2
- BRIDGE_TABS = { "Account" => :account_tab,
3
- "Guide" => :guide_tab,
4
- "Engage" => :engage_tab,
5
- "History" => :history_tab,
6
- "Related" => :related_tab,
7
- "Rules" => :rules_tab }.freeze
1
+ BRIDGE_TABS = { "Account" => :account_tab,
2
+ "Guide" => :guide_tab,
3
+ "Engage" => :engage_tab,
4
+ "History" => :history_tab,
5
+ "Related" => :related_tab,
6
+ "Rules" => :rules_tab }.freeze
8
7
 
8
+ format :html do
9
9
  wrapper :bridge do
10
10
  class_up "modal-dialog", "no-gaps"
11
11
  voo.hide! :modal_footer
@@ -1,6 +1,6 @@
1
1
  format :html do
2
2
  def visible_bridge_tabs
3
- BRIDGE_TABS.select do |_title, view|
3
+ Bridge::BRIDGE_TABS.select do |_title, view|
4
4
  send "show_#{view}?"
5
5
  end
6
6
  end
@@ -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_name.rb CHANGED
@@ -11,7 +11,7 @@ format :html do
11
11
 
12
12
  def name_form success_view=nil
13
13
  card_form({ action: :update, id: card.id },
14
- # "main-success" => "REDIRECT",
14
+ "data-main-success": JSON(redirect: true, view: ""),
15
15
  "data-update-origin": "true",
16
16
  success: edit_name_success(success_view)) do
17
17
  [hidden_edit_name_fields,
@@ -22,7 +22,7 @@ format :html do
22
22
  end
23
23
 
24
24
  def edit_name_success view=nil
25
- success = { id: "_self" }
25
+ success = { name: "_self", redirect: "" }
26
26
  success[:view] = view if view
27
27
  success
28
28
  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
- template.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
56
76
  end
57
77
 
58
- def type_field_options current_type
59
- types = grouped_types(current_type)
78
+ def simple_type_field_options
79
+ options_for_select grouped_types.flatten[1], current_type_value
80
+ end
60
81
 
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
82
+ def multi_type_field_options
83
+ grouped_options_for_select grouped_types, current_type_value
84
+ end
85
+
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
data/set/all/form.rb CHANGED
@@ -214,9 +214,16 @@ format :html do
214
214
  add_class opts, "card-form"
215
215
  add_class opts, "slotter" unless opts[:redirect] || opts[:no_slotter]
216
216
  add_class opts, "autosave" if action == :update
217
+ interpret_main_success_opts opts
217
218
  opts
218
219
  end
219
220
 
221
+ def interpret_main_success_opts opts
222
+ return unless (hash = opts.delete :main_success)
223
+
224
+ opts["data-main-success"] = JSON hash
225
+ end
226
+
220
227
  def card_form_url_and_action action
221
228
  case action
222
229
  when Symbol then [path(action: action), action]
@@ -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
 
@@ -49,7 +51,7 @@ format :html do
49
51
  add_class opts, "slotter btn btn-outline-danger ml-auto btn-sm"
50
52
  opts["data-confirm"] = delete_confirm opts
51
53
  opts[:path] = { action: :delete }
52
- opts[:path][:success] = delete_success(opts) unless opts.delete(:no_success)
54
+ opts[:path][:success] = delete_success(opts)
53
55
  opts[:remote] = true
54
56
  opts
55
57
  end
@@ -59,6 +61,12 @@ format :html do
59
61
  end
60
62
 
61
63
  def delete_success opts
62
- opts.delete(:success) || (main? ? "REDIRECT: *previous" : { view: :just_deleted })
64
+ if opts[:success]
65
+ opts.delete :success
66
+ elsif main?
67
+ { redirect: true, mark: "*previous" }
68
+ else
69
+ { view: :just_deleted }
70
+ end
63
71
  end
64
72
  end
data/set/all/new.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  format :html do
2
+ delegate :autoname?, to: :card
3
+
2
4
  view :new, perms: :create, unknown: true, cache: :never do
3
5
  new_view_frame_and_form new_form_opts
4
6
  end
@@ -73,7 +75,7 @@ format :html do
73
75
  end
74
76
 
75
77
  def new_form_opts
76
- { "main-success" => "REDIRECT" }
78
+ { "data-main-success": JSON(redirect: true) }
77
79
  end
78
80
 
79
81
  def new_view_title
@@ -88,7 +90,7 @@ format :html do
88
90
  end
89
91
 
90
92
  def new_success
91
- card.rule(:thanks) || "_self"
93
+ { mark: (card.rule(:thanks) || "_self") }
92
94
  end
93
95
 
94
96
  def new_in_modal_success; end
@@ -114,10 +116,6 @@ format :html do
114
116
  end
115
117
  end
116
118
 
117
- def autoname?
118
- @autoname.nil? ? (@autoname = card.rule_card :autoname).present? : @autoname
119
- end
120
-
121
119
  def needs_name?
122
120
  card.name.blank? && !autoname?
123
121
  end
@@ -0,0 +1,35 @@
1
+ format :html do
2
+ def quick_editor
3
+ @submit_on_change = true
4
+ super
5
+ end
6
+
7
+ def quick_form_opts
8
+ super.merge "data-update-foreign-slot":
9
+ ".card-slot.quick_edit-view.RIGHT-Xcontent_option_view"
10
+ end
11
+
12
+ def default_input_type
13
+ :radio
14
+ end
15
+
16
+ def raw_help_text
17
+ "edit interface for list cards"
18
+ end
19
+
20
+ # def option_label_text option_name
21
+ # super.downcase
22
+ # end
23
+
24
+ def quick_edit
25
+ card.left.prototype_default_card.try(:show_input_type?) ? super : ""
26
+ end
27
+ end
28
+
29
+ def option_names
30
+ left.prototype_default_card&.try(:input_type_content_options) || super
31
+ end
32
+
33
+ def supports_content_option_view?
34
+ item_name.in? ["checkbox", "radio", "filtered list"]
35
+ end
@@ -0,0 +1,12 @@
1
+ setting_opts group: :editing,
2
+ position: 3,
3
+ rule_type_editable: false,
4
+ short_help_text: "edit interface"
5
+
6
+ format :html do
7
+ def raw_help_text
8
+ "Configure [[https://ace.c9.io/|ace]], "\
9
+ "Decko's default code editor, using these available "\
10
+ "[[https://github.com/ajaxorg/ace/wiki/Configuring-Ace|options]]."
11
+ end
12
+ end
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.1'
4
+ version: 0.11.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
@@ -10,8 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-09-19 00:00:00.000000000 Z
14
- dependencies: []
13
+ date: 2021-05-05 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: card
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - '='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.101.4
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - '='
27
+ - !ruby/object:Gem::Version
28
+ version: 1.101.4
15
29
  description: ''
16
30
  email:
17
31
  - info@decko.org
@@ -40,14 +54,20 @@ files:
40
54
  - set/all/overlay_guide.haml
41
55
  - set/all/overlay_guide.rb
42
56
  - set/all/template_nest.rb
57
+ - set/right/input_type.rb
58
+ - set/self/input_type.rb
43
59
  - set/type/list.rb
44
60
  - set/type/plain_text.rb
45
61
  - set/type/pointer.rb
46
- homepage: http://decko.org
62
+ homepage: https://decko.org
47
63
  licenses:
48
- - GPL-2.0
49
64
  - GPL-3.0
50
65
  metadata:
66
+ source_code_uri: https://github.com/decko-commons/decko
67
+ homepage_uri: https://decko.org
68
+ bug_tracker_uri: https://github.com/decko-commons/decko/issues
69
+ wiki_uri: https://decko.org
70
+ documentation_url: http://docs.decko.org/
51
71
  card-mod: edit
52
72
  post_install_message:
53
73
  rdoc_options: []
@@ -57,15 +77,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
77
  requirements:
58
78
  - - ">="
59
79
  - !ruby/object:Gem::Version
60
- version: 2.3.0
80
+ version: '2.5'
61
81
  required_rubygems_version: !ruby/object:Gem::Requirement
62
82
  requirements:
63
83
  - - ">="
64
84
  - !ruby/object:Gem::Version
65
85
  version: '0'
66
86
  requirements: []
67
- rubygems_version: 3.0.3
87
+ rubygems_version: 3.1.4
68
88
  signing_key:
69
89
  specification_version: 4
70
- summary: Calendar editor
90
+ summary: Edit handling
71
91
  test_files: []