card-mod-script 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/db/migrate_core_cards/20200804112348_add_mod_script_assets_type.rb +30 -0
- data/file/mod_script_script_decko_machine_output/file.js +2710 -0
- data/file/mod_script_script_jquery_machine_output/file.js +12924 -0
- data/set/abstract/{script.rb → 00_script.rb} +7 -3
- data/set/abstract/01_asset_script.rb +25 -0
- data/set/abstract/01_java_script.rb +9 -0
- data/set/abstract/02_coffee_script.rb +25 -0
- data/set/abstract/03_asset_java_script.rb +4 -0
- data/set/abstract/04_asset_coffee_script.rb +4 -0
- data/set/abstract/script_asset_list.rb +32 -0
- data/set/all/head_javascript.rb +75 -0
- data/set/right/script.rb +18 -7
- data/set/type/coffee_script.rb +1 -23
- data/set/type/java_script.rb +1 -7
- data/set/type/local_script_folder_group.rb +2 -0
- data/set/type/local_script_manifest_group.rb +2 -0
- data/set/type/mod_script_assets.rb +21 -0
- metadata +38 -48
- data/lib/javascript/decko/autosave.js.coffee +0 -30
- data/lib/javascript/decko/bridge.js.coffee +0 -31
- data/lib/javascript/decko/card_menu.js.coffee +0 -26
- data/lib/javascript/decko/components.js.coffee +0 -51
- data/lib/javascript/decko/decko.js.coffee +0 -100
- data/lib/javascript/decko/doubleclick.js.coffee +0 -30
- data/lib/javascript/decko/editor.js.coffee +0 -55
- data/lib/javascript/decko/filter.js.coffee +0 -176
- data/lib/javascript/decko/filter_items.js.coffee +0 -128
- data/lib/javascript/decko/filter_links.js.coffee +0 -81
- data/lib/javascript/decko/follow.js.coffee +0 -22
- data/lib/javascript/decko/layout.js.coffee +0 -76
- data/lib/javascript/decko/link_editor.js.coffee +0 -61
- data/lib/javascript/decko/mod.js.coffee +0 -85
- data/lib/javascript/decko/modal.js.coffee +0 -113
- data/lib/javascript/decko/name_editor.js.coffee +0 -59
- data/lib/javascript/decko/navbox.js.coffee +0 -74
- data/lib/javascript/decko/nest_editor.js.coffee +0 -166
- data/lib/javascript/decko/nest_editor_name.js.coffee +0 -102
- data/lib/javascript/decko/nest_editor_options.js.coffee +0 -93
- data/lib/javascript/decko/nest_editor_rules.js.coffee +0 -3
- data/lib/javascript/decko/overlay.js.coffee +0 -57
- data/lib/javascript/decko/recaptcha.js.coffee +0 -19
- data/lib/javascript/decko/selectable_filtered_content.js.coffee +0 -12
- data/lib/javascript/decko/slot.js.coffee +0 -178
- data/lib/javascript/decko/slot_ready.js.coffee +0 -11
- data/lib/javascript/decko/slotter.js.coffee +0 -276
- data/lib/javascript/decko/upload.js.coffee +0 -57
- data/lib/javascript/jquery-ui.js +0 -10
- data/lib/javascript/jquery.autosize.js +0 -274
- data/lib/javascript/script_pointer_config.js.coffee +0 -80
- data/lib/javascript/script_pointer_list_editor.js.coffee +0 -67
- data/set/self/01_script_libraries.rb +0 -1
- data/set/self/script_decko.rb +0 -12
- data/set/self/script_editors.rb +0 -1
- data/set/self/script_jquery.rb +0 -10
- data/set/self/script_jquery_helper.rb +0 -14
- data/set/self/script_pointer_config.rb +0 -9
@@ -13,7 +13,7 @@ end
|
|
13
13
|
|
14
14
|
def standard_machine_input
|
15
15
|
js = format(:js)._render_core
|
16
|
-
js =
|
16
|
+
js = compress js if compress?
|
17
17
|
comment_with_source js
|
18
18
|
end
|
19
19
|
|
@@ -21,7 +21,7 @@ def comment_with_source js
|
|
21
21
|
"//#{name}\n#{js}"
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
24
|
+
def compress input
|
25
25
|
Uglifier.compile input
|
26
26
|
rescue StandardError => e
|
27
27
|
# CoffeeScript is compiled in a view
|
@@ -39,7 +39,7 @@ def compression_error_message e
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
def
|
42
|
+
def compress?
|
43
43
|
Cardio.config.compress_javascript
|
44
44
|
end
|
45
45
|
|
@@ -76,6 +76,10 @@ format :html do
|
|
76
76
|
process_content highlight(script)
|
77
77
|
end
|
78
78
|
|
79
|
+
view :javascript_include_tag do
|
80
|
+
javascript_include_tag card.machine_output_url # path(format: :js)
|
81
|
+
end
|
82
|
+
|
79
83
|
def highlight script
|
80
84
|
::CodeRay.scan(script, :js).div
|
81
85
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
require "coffee-script"
|
4
|
+
|
5
|
+
include_set Abstract::AssetFile
|
6
|
+
|
7
|
+
def compress?
|
8
|
+
@minimize
|
9
|
+
end
|
10
|
+
|
11
|
+
format :js do
|
12
|
+
view :source do
|
13
|
+
if @local
|
14
|
+
card.machine_output_url
|
15
|
+
else
|
16
|
+
source
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
format :html do
|
22
|
+
view :javascript_include_tag do
|
23
|
+
javascript_include_tag card.machine_output_url
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
require "coffee-script"
|
4
|
+
|
5
|
+
include_set Abstract::Script
|
6
|
+
|
7
|
+
format :html do
|
8
|
+
def ace_mode
|
9
|
+
:coffee
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
format do
|
14
|
+
view :core do
|
15
|
+
compile_coffee _render_raw
|
16
|
+
end
|
17
|
+
|
18
|
+
def compile_coffee script
|
19
|
+
::CoffeeScript.compile script
|
20
|
+
rescue StandardError => e
|
21
|
+
line_nr = e.to_s.match(/\[stdin\]:(\d*)/)&.capture(0)&.to_i
|
22
|
+
line = script.lines[line_nr - 1] if line_nr
|
23
|
+
raise Card::Error, "CoffeeScript::Error (#{card.name}): #{e.message}: #{line}"
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
include_set Abstract::Machine
|
2
|
+
include_set Abstract::MachineInput
|
3
|
+
include_set Abstract::AssetList
|
4
|
+
|
5
|
+
machine_input { standard_machine_input }
|
6
|
+
store_machine_output filetype: "js"
|
7
|
+
|
8
|
+
def new_asset_constants path
|
9
|
+
if path.ends_with? ".js.coffee"
|
10
|
+
coffeescript_constants
|
11
|
+
elsif path.ends_with? ".js"
|
12
|
+
javascript_constants
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def coffeescript_constants
|
17
|
+
{ type_id: CoffeeScriptID, set_module: Abstract::AssetCoffeeScript }
|
18
|
+
end
|
19
|
+
|
20
|
+
def javascript_constants
|
21
|
+
{ type_id: JavaScriptID, set_module: Abstract::AssetJavaScript }
|
22
|
+
end
|
23
|
+
|
24
|
+
def standard_machine_input
|
25
|
+
render_items_and_compress :js
|
26
|
+
end
|
27
|
+
|
28
|
+
format :html do
|
29
|
+
view :javascript_include_tag do
|
30
|
+
javascript_include_tag card.machine_output_url
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
format :html do
|
2
|
+
def views_in_head
|
3
|
+
super + %w[
|
4
|
+
decko_script_variables
|
5
|
+
head_javascript
|
6
|
+
html5shiv_tag
|
7
|
+
script_config_and_initiation
|
8
|
+
]
|
9
|
+
end
|
10
|
+
|
11
|
+
view :decko_script_variables, unknown: true, cache: :never, perms: :none do
|
12
|
+
javascript_tag do
|
13
|
+
decko_script_variables.each_with_object("") do |(k, v), string|
|
14
|
+
string << "#{k}=#{script_variable_to_js v};\n"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
view :head_javascript, unknown: true, cache: :never, perms: :none do
|
20
|
+
Array.wrap(head_javascript_paths).reject(&:empty?).join("\n")
|
21
|
+
end
|
22
|
+
|
23
|
+
view :html5shiv_tag, unknown: true, perms: :none do
|
24
|
+
nest :script_html5shiv_printshiv, view: :script_tag
|
25
|
+
end
|
26
|
+
|
27
|
+
view :script_config_and_initiation, unknown: true, perms: :none do
|
28
|
+
javascript_tag do
|
29
|
+
(mod_js_configs << trigger_slot_ready).join "\n\n"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
view :javascript_include_tag, unknown: true, perms: :none do
|
34
|
+
"\n<!-- javascript_include_tag not overridden for #{card.name} -->\n"
|
35
|
+
end
|
36
|
+
|
37
|
+
def decko_script_variables
|
38
|
+
{
|
39
|
+
"window.decko": { rootUrl: card_url("") },
|
40
|
+
"decko.doubleClick": Card.config.double_click,
|
41
|
+
"decko.cssPath": head_stylesheet_path,
|
42
|
+
"decko.currentUserId": (Auth.current_id if Auth.signed_in?)
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
46
|
+
def head_javascript_paths
|
47
|
+
return unless (asset_card = param_or_rule_card :script)
|
48
|
+
|
49
|
+
asset_card.item_cards.map do |script|
|
50
|
+
script.format(:html).render :javascript_include_tag
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def trigger_slot_ready
|
57
|
+
"$('document').ready(function() { $('.card-slot').trigger('slotReady'); })"
|
58
|
+
end
|
59
|
+
|
60
|
+
def script_variable_to_js value
|
61
|
+
return "'#{value}'" unless value.is_a? Hash
|
62
|
+
|
63
|
+
vars = value.each_with_object("") do |(k, v), string|
|
64
|
+
string << "#{k}: #{script_variable_to_js v}"
|
65
|
+
end
|
66
|
+
"{ #{vars} }"
|
67
|
+
end
|
68
|
+
|
69
|
+
def mod_js_configs
|
70
|
+
mod_js_config.map do |codename, js_decko_function|
|
71
|
+
config_json = escape_javascript Card::Rule.global_setting(codename)
|
72
|
+
"decko.#{js_decko_function}('#{config_json}')"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
data/set/right/script.rb
CHANGED
@@ -1,18 +1,29 @@
|
|
1
|
-
include_set Abstract::
|
2
|
-
|
3
|
-
store_machine_output filetype: "js"
|
1
|
+
include_set Abstract::Pointer
|
4
2
|
|
5
3
|
def ok_to_read
|
6
4
|
true
|
7
5
|
end
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
def refresh_output force: false
|
8
|
+
item_cards.each do |item_card|
|
9
|
+
# puts "refreshing #{item_card.name}".yellow
|
10
|
+
item_card.try :refresh_output, force: force
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def regenerate_machine_output
|
15
|
+
item_cards.each do |item_card|
|
16
|
+
item_card.try :regenerate_machine_output
|
17
|
+
end
|
13
18
|
end
|
14
19
|
|
15
20
|
format :html do
|
21
|
+
view :javascript_include_tag do
|
22
|
+
card.item_cards.map do |script|
|
23
|
+
script.format(:html).render :javascript_include_tag
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
16
27
|
def raw_help_text
|
17
28
|
"JavaScript (or CoffeeScript) for card's page."
|
18
29
|
end
|
data/set/type/coffee_script.rb
CHANGED
@@ -1,25 +1,3 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
include_set Abstract::Script
|
6
|
-
|
7
|
-
format :html do
|
8
|
-
def ace_mode
|
9
|
-
:coffee
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
format do
|
14
|
-
view :core do
|
15
|
-
compile_coffee _render_raw
|
16
|
-
end
|
17
|
-
|
18
|
-
def compile_coffee script
|
19
|
-
::CoffeeScript.compile script
|
20
|
-
rescue StandardError => e
|
21
|
-
line_nr = e.to_s.match(/\[stdin\]:(\d*)/)&.capture(0)&.to_i
|
22
|
-
line = script.lines[line_nr - 1] if line_nr
|
23
|
-
raise Card::Error, "CoffeeScript::Error (#{card.name}): #{e.message}: #{line}"
|
24
|
-
end
|
25
|
-
end
|
3
|
+
include_set Abstract::CoffeeScript
|
data/set/type/java_script.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
include_set Abstract::ModAssets
|
2
|
+
|
3
|
+
def subpath
|
4
|
+
"script"
|
5
|
+
end
|
6
|
+
|
7
|
+
def local_folder_group_type_id
|
8
|
+
::Card::LocalScriptFolderGroupID
|
9
|
+
end
|
10
|
+
|
11
|
+
def local_manifest_group_type_id
|
12
|
+
::Card::LocalScriptManifestGroupID
|
13
|
+
end
|
14
|
+
|
15
|
+
format :html do
|
16
|
+
view :javascript_include_tag do
|
17
|
+
card.item_cards.map do |icard|
|
18
|
+
nest icard, view: :javascript_include_tag
|
19
|
+
end.join("\n")
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: card-mod-script
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
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-
|
13
|
+
date: 2021-08-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: card
|
@@ -18,42 +18,56 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
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.
|
28
|
+
version: 1.103.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: card-mod-machines
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.
|
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.
|
42
|
+
version: 0.13.0
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: card-mod-assets
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - '='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.13.0
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - '='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 0.13.0
|
43
57
|
- !ruby/object:Gem::Dependency
|
44
58
|
name: card-mod-list
|
45
59
|
requirement: !ruby/object:Gem::Requirement
|
46
60
|
requirements:
|
47
61
|
- - '='
|
48
62
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
63
|
+
version: 0.13.0
|
50
64
|
type: :runtime
|
51
65
|
prerelease: false
|
52
66
|
version_requirements: !ruby/object:Gem::Requirement
|
53
67
|
requirements:
|
54
68
|
- - '='
|
55
69
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
70
|
+
version: 0.13.0
|
57
71
|
description: ''
|
58
72
|
email:
|
59
73
|
- info@decko.org
|
@@ -61,54 +75,30 @@ executables: []
|
|
61
75
|
extensions: []
|
62
76
|
extra_rdoc_files: []
|
63
77
|
files:
|
64
|
-
-
|
65
|
-
-
|
66
|
-
-
|
67
|
-
-
|
68
|
-
- lib/javascript/decko/decko.js.coffee
|
69
|
-
- lib/javascript/decko/doubleclick.js.coffee
|
70
|
-
- lib/javascript/decko/editor.js.coffee
|
71
|
-
- lib/javascript/decko/filter.js.coffee
|
72
|
-
- lib/javascript/decko/filter_items.js.coffee
|
73
|
-
- lib/javascript/decko/filter_links.js.coffee
|
74
|
-
- lib/javascript/decko/follow.js.coffee
|
75
|
-
- lib/javascript/decko/layout.js.coffee
|
76
|
-
- lib/javascript/decko/link_editor.js.coffee
|
77
|
-
- lib/javascript/decko/mod.js.coffee
|
78
|
-
- lib/javascript/decko/modal.js.coffee
|
79
|
-
- lib/javascript/decko/name_editor.js.coffee
|
80
|
-
- lib/javascript/decko/navbox.js.coffee
|
81
|
-
- lib/javascript/decko/nest_editor.js.coffee
|
82
|
-
- lib/javascript/decko/nest_editor_name.js.coffee
|
83
|
-
- lib/javascript/decko/nest_editor_options.js.coffee
|
84
|
-
- lib/javascript/decko/nest_editor_rules.js.coffee
|
85
|
-
- lib/javascript/decko/overlay.js.coffee
|
86
|
-
- lib/javascript/decko/recaptcha.js.coffee
|
87
|
-
- lib/javascript/decko/selectable_filtered_content.js.coffee
|
88
|
-
- lib/javascript/decko/slot.js.coffee
|
89
|
-
- lib/javascript/decko/slot_ready.js.coffee
|
90
|
-
- lib/javascript/decko/slotter.js.coffee
|
91
|
-
- lib/javascript/decko/upload.js.coffee
|
92
|
-
- lib/javascript/jquery-ui.js
|
93
|
-
- lib/javascript/jquery.autosize.js
|
78
|
+
- README.md
|
79
|
+
- db/migrate_core_cards/20200804112348_add_mod_script_assets_type.rb
|
80
|
+
- file/mod_script_script_decko_machine_output/file.js
|
81
|
+
- file/mod_script_script_jquery_machine_output/file.js
|
94
82
|
- lib/javascript/jquery.iframe-transport.js
|
95
83
|
- lib/javascript/script_html5shiv_printshiv.js
|
96
|
-
- lib/javascript/script_pointer_config.js.coffee
|
97
|
-
- lib/javascript/script_pointer_list_editor.js.coffee
|
98
84
|
- lib/javascript/theme-textmate.js
|
99
|
-
- set/abstract/
|
85
|
+
- set/abstract/00_script.rb
|
86
|
+
- set/abstract/01_asset_script.rb
|
87
|
+
- set/abstract/01_java_script.rb
|
88
|
+
- set/abstract/02_coffee_script.rb
|
89
|
+
- set/abstract/03_asset_java_script.rb
|
90
|
+
- set/abstract/04_asset_coffee_script.rb
|
91
|
+
- set/abstract/script_asset_list.rb
|
92
|
+
- set/all/head_javascript.rb
|
100
93
|
- set/right/script.rb
|
101
|
-
- set/self/01_script_libraries.rb
|
102
94
|
- set/self/script.rb
|
103
|
-
- set/self/script_decko.rb
|
104
|
-
- set/self/script_editors.rb
|
105
95
|
- set/self/script_html5shiv_printshiv.rb
|
106
|
-
- set/self/script_jquery.rb
|
107
|
-
- set/self/script_jquery_helper.rb
|
108
96
|
- set/self/script_mods.rb
|
109
|
-
- set/self/script_pointer_config.rb
|
110
97
|
- set/type/coffee_script.rb
|
111
98
|
- set/type/java_script.rb
|
99
|
+
- set/type/local_script_folder_group.rb
|
100
|
+
- set/type/local_script_manifest_group.rb
|
101
|
+
- set/type/mod_script_assets.rb
|
112
102
|
- vendor/jquery_file_upload/CONTRIBUTING.md
|
113
103
|
- vendor/jquery_file_upload/LICENSE.txt
|
114
104
|
- vendor/jquery_file_upload/README.md
|
@@ -210,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
200
|
- !ruby/object:Gem::Version
|
211
201
|
version: '0'
|
212
202
|
requirements: []
|
213
|
-
rubygems_version: 3.
|
203
|
+
rubygems_version: 3.1.6
|
214
204
|
signing_key:
|
215
205
|
specification_version: 4
|
216
206
|
summary: JavaScript, CoffeeScript, etc.
|