card-mod-format 0.11.5 → 0.13.0

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: 7282ec52f287bd080b84b1a539733d85c17f859f1eccd038ff4cd67a1c572d55
4
- data.tar.gz: 1b36bb6b8d5b10512774e1dee08f3dd60a79bff24495a569ed91013fd3eacaa8
3
+ metadata.gz: 0b4d77f208c27acef729baedd337735e80be21270337e26b406d27af14638983
4
+ data.tar.gz: d299289e4b5dd0b622a614bdebee3d25ec0b9135b0bfe4bd576367b36c7bc745
5
5
  SHA512:
6
- metadata.gz: 901b4a5f4458f02650af6ebabb0af3e04deadbc392f3d69a118d29d54d30f3bfd44a0d90e842d45ee72d584a20f015079e7e3d48630e39cbd0e26addd90b057b
7
- data.tar.gz: 21c3fb950df2ed3004e9a21048b3a17ea3e66200dca345984e95b9e57672d497afd1ccc1a999af661bc4ca0a2b6200f4ab315a8243f5bfc27f11567298091032
6
+ metadata.gz: 6463aa97132bf67c91146a19ee245530497a2c1a7fbe9bd1cfe732e289ff764c9d34df54e64db2f72f0824df487c9f570aa5f837fb4465d81acb343174a999b4
7
+ data.tar.gz: 0f44f37aab77229428c58dd2e666d4556a67e0a9bf3773b780b014491fcc80c1fb42aa299f9d58c48c69f2ff5d14911b0d11c2d68d5961b3ddee4bf8544e1b95
@@ -40,6 +40,10 @@ class Card
40
40
  rendered = super
41
41
  rendered.is_a?(Array) ? output(rendered) : rendered
42
42
  end
43
+
44
+ def stylesheet_link_tag path
45
+ tag "link", href: path, media: "all", rel: "stylesheet", type: "text/css"
46
+ end
43
47
  end
44
48
  end
45
49
  end
@@ -0,0 +1,68 @@
1
+ format do
2
+ ONE_LINE_CHARACTER_LIMIT = 60
3
+
4
+ # override to customize by set
5
+ def chunk_list
6
+ :default
7
+ end
8
+
9
+ view :one_line_content do
10
+ with_nest_mode :compact do
11
+ one_line_content
12
+ end
13
+ end
14
+
15
+ # DEPRECATED
16
+ view :closed_content, :one_line_content
17
+
18
+ view :raw_one_line_content do
19
+ raw_one_line_content
20
+ end
21
+
22
+ view :label do
23
+ card.label.to_s
24
+ end
25
+
26
+ view :smart_label, cache: :never, unknown: true do
27
+ label_with_description render_label, label_description
28
+ end
29
+
30
+ def label_with_description label, description
31
+ return label unless description
32
+
33
+ "#{label} #{popover_link description}"
34
+ end
35
+
36
+ # TODO: move this into a nest once popovers are stub safe
37
+ def label_description
38
+ return unless (desc = card.field :description)
39
+
40
+ desc.format.render_core
41
+ end
42
+
43
+ def raw_one_line_content
44
+ cut_with_ellipsis render_raw
45
+ end
46
+
47
+ def one_line_content
48
+ Content.smart_truncate render_core
49
+ end
50
+
51
+ def cut_with_ellipsis text, limit=one_line_character_limit
52
+ if text.size <= limit
53
+ text
54
+ else
55
+ "#{text[0..(limit - 3)]}..."
56
+ end
57
+ end
58
+
59
+ def one_line_character_limit
60
+ voo.size || ONE_LINE_CHARACTER_LIMIT
61
+ end
62
+ end
63
+
64
+ format :html do
65
+ view :hidden_content_field, unknown: true, cache: :never do
66
+ hidden_field :content, class: "d0-card-content"
67
+ end
68
+ end
data/set/all/head.rb CHANGED
@@ -18,8 +18,6 @@ format :html do
18
18
 
19
19
  def views_in_head
20
20
  %i[meta_tags page_title_tag favicon_tag head_stylesheet
21
- decko_script_variables head_javascript html5shiv_tag
22
- script_config_and_initiation
23
21
  universal_edit_button rss_links]
24
22
  end
25
23
 
@@ -28,10 +26,6 @@ format :html do
28
26
  haml :meta_tags
29
27
  end
30
28
 
31
- view :html5shiv_tag, unknown: true, perms: :none do
32
- nest :script_html5shiv_printshiv, view: :script_tag
33
- end
34
-
35
29
  view :page_title_tag, unknown: true, perms: :none do
36
30
  content_tag(:title) { render :page_title }
37
31
  end
@@ -56,40 +50,6 @@ format :html do
56
50
  tag "link", href: href, media: "all", rel: "stylesheet", type: "text/css"
57
51
  end
58
52
 
59
- view :head_javascript, unknown: true, cache: :never, perms: :none do
60
- Array.wrap(head_javascript_paths).map do |path|
61
- javascript_include_tag path
62
- end
63
- end
64
-
65
- view :decko_script_variables, unknown: true, cache: :never, perms: :none do
66
- string = ""
67
- decko_script_variables.each do |k, v|
68
- string += "#{k}=#{script_variable_to_js v};\n"
69
- end
70
- javascript_tag { string }
71
- end
72
-
73
- def decko_script_variables
74
- {
75
- "window.decko": { rootUrl: card_url("") },
76
- "decko.doubleClick": Card.config.double_click,
77
- "decko.cssPath": head_stylesheet_path,
78
- "decko.currentUserId": (Auth.current_id if Auth.signed_in?)
79
-
80
- }
81
- end
82
-
83
- def script_variable_to_js value
84
- if value.is_a? Hash
85
- string = "{"
86
- value.each { |k, v| string += "#{k}:#{script_variable_to_js v}" }
87
- "#{string}}"
88
- else
89
- "'#{value}'"
90
- end
91
- end
92
-
93
53
  def param_or_rule_card setting
94
54
  if params[setting]
95
55
  Card[params[setting]]
@@ -98,10 +58,10 @@ format :html do
98
58
  end
99
59
  end
100
60
 
101
- def debug_or_machine_path setting, &block
61
+ def debug_or_machine_path setting, debug_lambda, machine_path_lambda
102
62
  return unless (asset_card = param_or_rule_card setting)
103
-
104
- debug_path(setting, asset_card, &block) || asset_card.machine_output_url
63
+ debug_path(setting, asset_card, &debug_lambda) ||
64
+ machine_path_lambda.call(asset_card.machine_output_url)
105
65
  end
106
66
 
107
67
  def debug_path setting, asset_card
@@ -110,37 +70,6 @@ format :html do
110
70
  yield asset_card
111
71
  end
112
72
 
113
- def head_stylesheet_path
114
- debug_or_machine_path :style do |style_card|
115
- path mark: style_card.name, item: :import, format: :css
116
- end
117
- end
118
-
119
- def head_javascript_paths
120
- debug_or_machine_path :script do |script_card|
121
- script_card.item_cards.map do |script|
122
- script.format(:js).render :source
123
- end
124
- end
125
- end
126
-
127
- view :script_config_and_initiation, unknown: true, perms: :none do
128
- javascript_tag do
129
- (mod_js_configs << trigger_slot_ready).join "\n\n"
130
- end
131
- end
132
-
133
- def mod_js_configs
134
- mod_js_config.map do |codename, js_decko_function|
135
- config_json = escape_javascript Card::Rule.global_setting(codename)
136
- "decko.#{js_decko_function}('#{config_json}')"
137
- end
138
- end
139
-
140
- def trigger_slot_ready
141
- "$('document').ready(function() { $('.card-slot').trigger('slotReady'); })"
142
- end
143
-
144
73
  # TODO: move to rss mod
145
74
  view :rss_links, unknown: true, perms: :none do
146
75
  render :rss_link_tag if rss_link?
@@ -149,4 +78,12 @@ format :html do
149
78
  def rss_link?
150
79
  Card.config.rss_enabled && respond_to?(:rss_link_tag)
151
80
  end
81
+
82
+ def head_stylesheet_path
83
+ debug_or_machine_path(
84
+ :style,
85
+ ->(style_card) { path mark: style_card.name, item: :import, format: :css },
86
+ ->(machine_path) { machine_path }
87
+ )
88
+ end
152
89
  end
data/set/all/json.rb CHANGED
@@ -9,7 +9,7 @@ format :json do
9
9
  end
10
10
 
11
11
  def default_item_view
12
- params[:item] || :name
12
+ :name
13
13
  end
14
14
 
15
15
  def max_depth
@@ -41,7 +41,7 @@ format :json do
41
41
  def page_details obj
42
42
  return obj unless obj.is_a? Hash
43
43
 
44
- obj.merge url: request_url, timestamp: Time.now.to_s
44
+ obj.merge url: request_url, requested_at: Time.now.to_s
45
45
  end
46
46
 
47
47
  view :status, unknown: true, perms: :none do
@@ -84,7 +84,7 @@ format :json do
84
84
  # NOCACHE because sometimes item_cards is dynamic.
85
85
  # could be safely cached for non-dynamic lists
86
86
  view :items, cache: :never do
87
- listing item_cards, view: :atom
87
+ listing item_cards, view: (voo_items_view || :atom)
88
88
  end
89
89
 
90
90
  view :links do
@@ -155,7 +155,9 @@ format :json do
155
155
  links: _render_links,
156
156
  ancestors: _render_ancestors,
157
157
  html_url: path,
158
- type: nest(card.type_card, view: :nucleus)
158
+ type: nest(card.type_card, view: :nucleus),
159
+ created_at: card.created_at,
160
+ updated_at: card.updated_at
159
161
  end
160
162
  end
161
163
 
data/set/all/links.rb CHANGED
@@ -63,16 +63,17 @@ format do
63
63
 
64
64
  def resource_type resource
65
65
  case resource
66
- when /^https?:/ then "external-link"
66
+ when /^https?:/ then "external-link"
67
67
  when %r{^/} then "internal-link"
68
- when /^mailto:/ then "email-link"
68
+ when /^mailto:/ then "email-link"
69
69
  when RESOURCE_TYPE_REGEXP then "#{Regexp.last_match(1)}-link"
70
70
  end
71
71
  end
72
72
 
73
73
  def clean_resource resource, resource_type
74
74
  if resource_type == "internal-link"
75
- contextualize_path resource[1..-1]
75
+ # remove initial slash; #contextualize_path handles relative root
76
+ contextualize_path resource.sub(%r{^/}, "")
76
77
  else
77
78
  resource
78
79
  end
data/set/all/menu.rb CHANGED
@@ -102,7 +102,7 @@ format :html do
102
102
 
103
103
  def edit_link view=:edit, opts={}
104
104
  link_to_view view, opts.delete(:link_text) || menu_icon,
105
- edit_link_opts(opts.reverse_merge(modal: :lg))
105
+ edit_link_opts(modal: (opts[:modal] || :lg))
106
106
  end
107
107
 
108
108
  # @param modal [Symbol] modal size
data/set/all/rss.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "builder"
2
+
1
3
  format :rss do
2
4
  attr_accessor :xml
3
5
 
data/set/all/text.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "htmlentities"
2
+
1
3
  format :text do
2
4
  view :core do
3
5
  HTMLEntities.new.decode strip_tags(super()).to_s
data/set/type/json.rb CHANGED
@@ -1,4 +1,4 @@
1
- # include_set Abstract::Pointer
1
+ require "coderay"
2
2
 
3
3
  event :validate_json, :validate, on: :save, changed: :content do
4
4
  check_json_syntax if content.present?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card-mod-format
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.5
4
+ version: 0.13.0
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: 2021-05-10 00:00:00.000000000 Z
13
+ date: 2021-08-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: card
@@ -18,28 +18,28 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.101.5
21
+ version: 1.103.0
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.5
28
+ version: 1.103.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: card-mod-content
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.11.5
35
+ version: 0.13.0
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.11.5
42
+ version: 0.13.0
43
43
  description: ''
44
44
  email:
45
45
  - info@decko.org
@@ -61,6 +61,7 @@ files:
61
61
  - lib/card/path/cast_params.rb
62
62
  - set/all/active_card.rb
63
63
  - set/all/base.rb
64
+ - set/all/content.rb
64
65
  - set/all/css.rb
65
66
  - set/all/csv.rb
66
67
  - set/all/demo.rb
@@ -124,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
125
  - !ruby/object:Gem::Version
125
126
  version: '0'
126
127
  requirements: []
127
- rubygems_version: 3.1.4
128
+ rubygems_version: 3.1.6
128
129
  signing_key:
129
130
  specification_version: 4
130
131
  summary: format