card-mod-script 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +7 -0
  2. data/lib/javascript/decko/autosave.js.coffee +30 -0
  3. data/lib/javascript/decko/bridge.js.coffee +31 -0
  4. data/lib/javascript/decko/card_menu.js.coffee +26 -0
  5. data/lib/javascript/decko/components.js.coffee +51 -0
  6. data/lib/javascript/decko/decko.js.coffee +100 -0
  7. data/lib/javascript/decko/doubleclick.js.coffee +30 -0
  8. data/lib/javascript/decko/editor.js.coffee +55 -0
  9. data/lib/javascript/decko/filter.js.coffee +176 -0
  10. data/lib/javascript/decko/filter_items.js.coffee +128 -0
  11. data/lib/javascript/decko/filter_links.js.coffee +81 -0
  12. data/lib/javascript/decko/follow.js.coffee +22 -0
  13. data/lib/javascript/decko/layout.js.coffee +76 -0
  14. data/lib/javascript/decko/link_editor.js.coffee +61 -0
  15. data/lib/javascript/decko/mod.js.coffee +85 -0
  16. data/lib/javascript/decko/modal.js.coffee +110 -0
  17. data/lib/javascript/decko/name_editor.js.coffee +51 -0
  18. data/lib/javascript/decko/navbox.js.coffee +74 -0
  19. data/lib/javascript/decko/nest_editor.js.coffee +166 -0
  20. data/lib/javascript/decko/nest_editor_name.js.coffee +102 -0
  21. data/lib/javascript/decko/nest_editor_options.js.coffee +93 -0
  22. data/lib/javascript/decko/nest_editor_rules.js.coffee +3 -0
  23. data/lib/javascript/decko/overlay.js.coffee +57 -0
  24. data/lib/javascript/decko/recaptcha.js.coffee +19 -0
  25. data/lib/javascript/decko/selectable_filtered_content.js.coffee +12 -0
  26. data/lib/javascript/decko/slot.js.coffee +172 -0
  27. data/lib/javascript/decko/slot_ready.js.coffee +11 -0
  28. data/lib/javascript/decko/slotter.js.coffee +269 -0
  29. data/lib/javascript/decko/upload.js.coffee +57 -0
  30. data/lib/javascript/jquery-ui.js +10 -0
  31. data/lib/javascript/jquery.autosize.js +274 -0
  32. data/lib/javascript/jquery.iframe-transport.js +185 -0
  33. data/lib/javascript/script_html5shiv_printshiv.js +1 -0
  34. data/lib/javascript/script_pointer_config.js.coffee +80 -0
  35. data/lib/javascript/script_pointer_list_editor.js.coffee +67 -0
  36. data/lib/javascript/theme-textmate.js +130 -0
  37. data/set/abstract/script.rb +85 -0
  38. data/set/right/script.rb +19 -0
  39. data/set/self/01_script_libraries.rb +1 -0
  40. data/set/self/script.rb +1 -0
  41. data/set/self/script_decko.rb +12 -0
  42. data/set/self/script_editors.rb +1 -0
  43. data/set/self/script_html5shiv_printshiv.rb +11 -0
  44. data/set/self/script_jquery.rb +10 -0
  45. data/set/self/script_jquery_helper.rb +14 -0
  46. data/set/self/script_mods.rb +1 -0
  47. data/set/self/script_pointer_config.rb +9 -0
  48. data/set/type/coffee_script.rb +25 -0
  49. data/set/type/java_script.rb +9 -0
  50. data/vendor/jquery_file_upload/CONTRIBUTING.md +15 -0
  51. data/vendor/jquery_file_upload/LICENSE.txt +21 -0
  52. data/vendor/jquery_file_upload/README.md +107 -0
  53. data/vendor/jquery_file_upload/angularjs.html +211 -0
  54. data/vendor/jquery_file_upload/basic-plus.html +226 -0
  55. data/vendor/jquery_file_upload/basic.html +136 -0
  56. data/vendor/jquery_file_upload/bower-version-update.js +16 -0
  57. data/vendor/jquery_file_upload/bower.json +64 -0
  58. data/vendor/jquery_file_upload/cors/postmessage.html +75 -0
  59. data/vendor/jquery_file_upload/cors/result.html +24 -0
  60. data/vendor/jquery_file_upload/css/jquery-ui-demo-ie8.css +21 -0
  61. data/vendor/jquery_file_upload/css/jquery-ui-demo.css +67 -0
  62. data/vendor/jquery_file_upload/css/jquery.fileupload-noscript.css +22 -0
  63. data/vendor/jquery_file_upload/css/jquery.fileupload-ui-noscript.css +17 -0
  64. data/vendor/jquery_file_upload/css/jquery.fileupload-ui.css +57 -0
  65. data/vendor/jquery_file_upload/css/jquery.fileupload.css +37 -0
  66. data/vendor/jquery_file_upload/css/style.css +15 -0
  67. data/vendor/jquery_file_upload/img/loading.gif +0 -0
  68. data/vendor/jquery_file_upload/img/progressbar.gif +0 -0
  69. data/vendor/jquery_file_upload/index.html +255 -0
  70. data/vendor/jquery_file_upload/jquery-ui.html +252 -0
  71. data/vendor/jquery_file_upload/js/app.js +101 -0
  72. data/vendor/jquery_file_upload/js/cors/jquery.postmessage-transport.js +126 -0
  73. data/vendor/jquery_file_upload/js/cors/jquery.xdr-transport.js +89 -0
  74. data/vendor/jquery_file_upload/js/jquery.fileupload-angular.js +437 -0
  75. data/vendor/jquery_file_upload/js/jquery.fileupload-audio.js +113 -0
  76. data/vendor/jquery_file_upload/js/jquery.fileupload-image.js +326 -0
  77. data/vendor/jquery_file_upload/js/jquery.fileupload-jquery-ui.js +161 -0
  78. data/vendor/jquery_file_upload/js/jquery.fileupload-process.js +178 -0
  79. data/vendor/jquery_file_upload/js/jquery.fileupload-ui.js +714 -0
  80. data/vendor/jquery_file_upload/js/jquery.fileupload-validate.js +125 -0
  81. data/vendor/jquery_file_upload/js/jquery.fileupload-video.js +113 -0
  82. data/vendor/jquery_file_upload/js/jquery.fileupload.js +1486 -0
  83. data/vendor/jquery_file_upload/js/jquery.iframe-transport.js +224 -0
  84. data/vendor/jquery_file_upload/js/main.js +75 -0
  85. data/vendor/jquery_file_upload/js/vendor/jquery.ui.widget.js +748 -0
  86. data/vendor/jquery_file_upload/package.json +55 -0
  87. data/vendor/jquery_file_upload/server/gae-go/app.yaml +12 -0
  88. data/vendor/jquery_file_upload/server/gae-go/app/main.go +361 -0
  89. data/vendor/jquery_file_upload/server/gae-go/static/favicon.ico +0 -0
  90. data/vendor/jquery_file_upload/server/gae-go/static/robots.txt +2 -0
  91. data/vendor/jquery_file_upload/server/gae-python/app.yaml +17 -0
  92. data/vendor/jquery_file_upload/server/gae-python/main.py +204 -0
  93. data/vendor/jquery_file_upload/server/gae-python/static/favicon.ico +0 -0
  94. data/vendor/jquery_file_upload/server/gae-python/static/robots.txt +2 -0
  95. data/vendor/jquery_file_upload/server/php/Dockerfile +38 -0
  96. data/vendor/jquery_file_upload/server/php/UploadHandler.php +1411 -0
  97. data/vendor/jquery_file_upload/server/php/docker-compose.yml +9 -0
  98. data/vendor/jquery_file_upload/server/php/index.php +15 -0
  99. data/vendor/jquery_file_upload/test/index.html +172 -0
  100. data/vendor/jquery_file_upload/test/test.js +1292 -0
  101. data/vendor/jquery_rails/CHANGELOG.md +359 -0
  102. data/vendor/jquery_rails/CONTRIBUTING.md +132 -0
  103. data/vendor/jquery_rails/Gemfile +22 -0
  104. data/vendor/jquery_rails/MIT-LICENSE +21 -0
  105. data/vendor/jquery_rails/README.md +75 -0
  106. data/vendor/jquery_rails/Rakefile +59 -0
  107. data/vendor/jquery_rails/VERSIONS.md +62 -0
  108. data/vendor/jquery_rails/jquery-rails.gemspec +26 -0
  109. data/vendor/jquery_rails/lib/jquery-rails.rb +1 -0
  110. data/vendor/jquery_rails/lib/jquery/assert_select.rb +149 -0
  111. data/vendor/jquery_rails/lib/jquery/rails.rb +8 -0
  112. data/vendor/jquery_rails/lib/jquery/rails/engine.rb +6 -0
  113. data/vendor/jquery_rails/lib/jquery/rails/version.rb +9 -0
  114. data/vendor/jquery_rails/test/assert_select_jquery_test.rb +85 -0
  115. data/vendor/jquery_rails/test/test_helper.rb +6 -0
  116. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.js +11008 -0
  117. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.js +5 -0
  118. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.map +1 -0
  119. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.js +9814 -0
  120. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.js +4 -0
  121. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.map +1 -0
  122. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.js +10364 -0
  123. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.js +2 -0
  124. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.map +1 -0
  125. data/vendor/jquery_rails/vendor/assets/javascripts/jquery_ujs.js +555 -0
  126. metadata +212 -0
@@ -0,0 +1 @@
1
+ !function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=T.elements;return"string"==typeof e?e.split(" "):e}function a(e){var t=N[e[b]];return t||(t={},S++,e[b]=S,N[S]=t),t}function o(e,n,r){if(n||(n=t),p)return n.createElement(e);r||(r=a(n));var o;return o=r.cache[e]?r.cache[e].cloneNode():E.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),o.canHaveChildren&&!y.test(e)?r.frag.appendChild(o):o}function i(e,n){if(e||(e=t),p)return e.createDocumentFragment();n=n||a(e);for(var o=n.frag.cloneNode(),i=0,c=r(),l=c.length;l>i;i++)o.createElement(c[i]);return o}function c(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return T.shivMethods?o(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/\w+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(T,t.frag)}function l(e){e||(e=t);var r=a(e);return!T.shivCSS||h||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),p||c(e,r),e}function u(e){for(var t,n=e.getElementsByTagName("*"),a=n.length,o=RegExp("^(?:"+r().join("|")+")$","i"),i=[];a--;)t=n[a],o.test(t.nodeName)&&i.push(t.applyElement(s(t)));return i}function s(e){for(var t,n=e.attributes,r=n.length,a=e.ownerDocument.createElement(x+":"+e.nodeName);r--;)t=n[r],t.specified&&a.setAttribute(t.nodeName,t.nodeValue);return a.style.cssText=e.style.cssText,a}function m(e){for(var t,n=e.split("{"),a=n.length,o=RegExp("(^|[\\s,>+~])("+r().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),i="$1"+x+"\\:$2";a--;)t=n[a]=n[a].split("}"),t[t.length-1]=t[t.length-1].replace(o,i),n[a]=t.join("}");return n.join("{")}function d(e){for(var t=e.length;t--;)e[t].removeNode()}function f(e){function t(){clearTimeout(i._removeSheetTimer),r&&r.removeNode(!0),r=null}var r,o,i=a(e),c=e.namespaces,l=e.parentWindow;return!C||e.printShived?e:("undefined"==typeof c[x]&&c.add(x),l.attachEvent("onbeforeprint",function(){t();for(var a,i,c,l=e.styleSheets,s=[],d=l.length,f=Array(d);d--;)f[d]=l[d];for(;c=f.pop();)if(!c.disabled&&F.test(c.media)){try{a=c.imports,i=a.length}catch(h){i=0}for(d=0;i>d;d++)f.push(a[d]);try{s.push(c.cssText)}catch(h){}}s=m(s.reverse().join("")),o=u(e),r=n(e,s)}),l.attachEvent("onafterprint",function(){d(o),clearTimeout(i._removeSheetTimer),i._removeSheetTimer=setTimeout(t,500)}),e.printShived=!0,e)}var h,p,v="3.6.2",g=e.html5||{},y=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,E=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,b="_html5shiv",S=0,N={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",h="hidden"in e,p=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){h=!0,p=!0}}();var T={elements:g.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:v,shivCSS:g.shivCSS!==!1,supportsUnknownElements:p,shivMethods:g.shivMethods!==!1,type:"default",shivDocument:l,createElement:o,createDocumentFragment:i};e.html5=T,l(t);var F=/^$|\b(?:all|print)\b/,x="html5shiv",C=!p&&function(){var n=t.documentElement;return!("undefined"==typeof t.namespaces||"undefined"==typeof t.parentWindow||"undefined"==typeof n.applyElement||"undefined"==typeof n.removeNode||"undefined"==typeof e.attachEvent)}();T.type+=" print",T.shivPrint=f,f(t)}(this,document);
@@ -0,0 +1,80 @@
1
+ $.extend decko.editorContentFunctionMap,
2
+ 'select.pointer-select': ->
3
+ pointerContent @val()
4
+ 'select.pointer-multiselect': ->
5
+ pointerContent @val()
6
+ '.pointer-radio-list': ->
7
+ pointerContent @find('input:checked').val()
8
+ '.pointer-list-ul': ->
9
+ pointerContent @find('input').map( -> $(this).val() )
10
+ '.pointer-link-list-ul': ->
11
+ decko.linkListContent @find('.input-group')
12
+ '._nest-list-ul': ->
13
+ decko.nestListContent @find('.input-group')
14
+ '.pointer-checkbox-list': ->
15
+ pointerContent @find('input:checked').map( -> $(this).val() )
16
+ '.pointer-select-list': ->
17
+ pointerContent @find('.pointer-select select').map( -> $(this).val() )
18
+ '._pointer-filtered-list': ->
19
+ pointerContent @find('._filtered-list-item').map( -> $(this).data('cardName') )
20
+ '._pointer-list': ->
21
+ pointerContent @find('._pointer-item').map( -> $(this).val() )
22
+ # can't find evidence that the following is in use: #efm
23
+ # '.pointer-mixed': ->
24
+ # element = '.pointer-checkbox-sublist input:checked,\
25
+ # .pointer-sublist-ul input'
26
+ # pointerContent @find(element).map( -> $(this).val() )
27
+ # must happen after pointer-list-ul, I think
28
+ '.perm-editor': -> permissionsContent this
29
+
30
+ decko.editorInitFunctionMap['.pointer-list-editor'] = ->
31
+ @sortable({handle: '.handle', cancel: ''})
32
+ decko.initPointerList @find('input')
33
+
34
+ decko.editorInitFunctionMap['._pointer-filtered-list'] = ->
35
+ @sortable({handle: '._handle', cancel: ''})
36
+
37
+ $.extend decko,
38
+ initPointerList: (input) ->
39
+ decko.initAutoCardPlete input
40
+
41
+ initAutoCardPlete: (input) ->
42
+ optionsCard = input.data 'options-card'
43
+ return unless !!optionsCard
44
+ path = optionsCard + '.json?view=name_match'
45
+ input.autocomplete { source: decko.slotPath(path) }
46
+
47
+ pointerContent: (vals) ->
48
+ list = $.map $.makeArray(vals), (v) -> if v then '[[' + v + ']]'
49
+ $.makeArray(list).join "\n"
50
+
51
+ linkListContent: (input_groups) ->
52
+ vals = input_groups.map( ->
53
+ v = $(this).find('input._reference').val()
54
+ title = $(this).find('input._title').val()
55
+ v += "|#{title}" if title.length > 0
56
+ v
57
+ )
58
+ list = $.map $.makeArray(vals), (v) -> if v then '[[' + v + ']]'
59
+ $.makeArray(list).join "\n"
60
+
61
+ nestListContent: (input_groups) ->
62
+ vals = input_groups.map( ->
63
+ v = $(this).find('input._reference').val()
64
+ options = $(this).find('input._nest-options').val()
65
+ v += "|#{options}" if options.length > 0
66
+ v
67
+ )
68
+ list = $.map $.makeArray(vals), (v) -> if v then '{{' + v + '}}'
69
+ $.makeArray(list).join "\n"
70
+
71
+
72
+ pointerContent = (vals) ->
73
+ decko.pointerContent vals
74
+ # deprecated. backwards compatibility
75
+
76
+ permissionsContent = (ed) ->
77
+ return '_left' if ed.find('#inherit').is(':checked')
78
+ groups = ed.find('.perm-group input:checked').map( -> $(this).val() )
79
+ indivs = ed.find('.perm-indiv input' ).map( -> $(this).val() )
80
+ pointerContent $.makeArray(groups).concat($.makeArray(indivs))
@@ -0,0 +1,67 @@
1
+ $(window).ready ->
2
+ # add pointer item when clicking on "add another" button
3
+ $('body').on 'click', '._pointer-item-add', (event)->
4
+ decko.addPointerItem this
5
+ event.preventDefault() # Prevent link from following its href
6
+
7
+ # add pointer item when you hit enter in an item
8
+ $('body').on 'keydown', '.pointer-item-text', (event)->
9
+ if event.key == 'Enter'
10
+ decko.addPointerItem this
11
+ event.preventDefault() # was triggering extra item in unrelated pointer
12
+
13
+ # enable/disable add
14
+ $('body').on 'keyup', '.pointer-item-text', (_event)->
15
+ decko.updateAddItemButton this
16
+
17
+ $('body').on 'click', '.pointer-item-delete', ->
18
+ item = $(this).closest 'li'
19
+ list = item.closest('ul')
20
+ if list.find('.pointer-li').length > 1
21
+ item.remove()
22
+ else
23
+ item.find('input').val ''
24
+ decko.updateAddItemButton(list)
25
+
26
+ decko.slotReady (slot) ->
27
+ slot.find('.pointer-list-editor').each ->
28
+ decko.updateAddItemButton this
29
+
30
+ $.extend decko,
31
+ addPointerItem: (el) ->
32
+ slot = $(el).slot()
33
+ slot.trigger "slotDestroy"
34
+ # why is this necessary?
35
+ # this can have a lot of side effects in a multi-card form.
36
+
37
+ newInput = decko.nextPointerInput decko.lastPointerItem(el)
38
+ newInput.val ''
39
+
40
+ slot.trigger "slotReady"
41
+ decko.initializeEditors slot
42
+ # should be (but is not) handled by slotReady
43
+ # without this, "add another" was breaking tinymce editors in same slot
44
+
45
+ newInput.first().focus()
46
+ decko.updateAddItemButton el
47
+ decko.initPointerList newInput
48
+
49
+ nextPointerInput: (lastItem)->
50
+ lastInputs = lastItem.find 'input'
51
+ all_empty = true
52
+ for input in lastInputs
53
+ all_empty = all_empty and $(input).val() == ''
54
+ return lastInputs if all_empty
55
+
56
+ newItem = lastItem.clone()
57
+ lastItem.after newItem
58
+ newItem.attr("data-index", parseInt(lastItem.attr("data-index") + 1))
59
+ newItem.find 'input'
60
+
61
+ lastPointerItem: (el)->
62
+ $(el).closest('.content-editor').find '.pointer-li:last'
63
+
64
+ updateAddItemButton: (el)->
65
+ button = $(el).closest('.content-editor').find '._pointer-item-add'
66
+ disabled = decko.lastPointerItem(el).find('input').val() == ''
67
+ button.prop 'disabled', disabled
@@ -0,0 +1,130 @@
1
+ define("ace/theme/textmate",["require","exports","module","ace/lib/dom"], function(require, exports, module) {
2
+ "use strict";
3
+
4
+ exports.isDark = false;
5
+ exports.cssClass = "ace-tm";
6
+ exports.cssText = ".ace-tm .ace_gutter {\
7
+ background: #f0f0f0;\
8
+ color: #333;\
9
+ }\
10
+ .ace-tm .ace_print-margin {\
11
+ width: 1px;\
12
+ background: #e8e8e8;\
13
+ }\
14
+ .ace-tm .ace_fold {\
15
+ background-color: #6B72E6;\
16
+ }\
17
+ .ace-tm {\
18
+ background-color: #FFFFFF;\
19
+ color: black;\
20
+ }\
21
+ .ace-tm .ace_cursor {\
22
+ color: black;\
23
+ }\
24
+ .ace-tm .ace_invisible {\
25
+ color: rgb(191, 191, 191);\
26
+ }\
27
+ .ace-tm .ace_storage,\
28
+ .ace-tm .ace_keyword {\
29
+ color: blue;\
30
+ }\
31
+ .ace-tm .ace_constant {\
32
+ color: rgb(197, 6, 11);\
33
+ }\
34
+ .ace-tm .ace_constant.ace_buildin {\
35
+ color: rgb(88, 72, 246);\
36
+ }\
37
+ .ace-tm .ace_constant.ace_language {\
38
+ color: rgb(88, 92, 246);\
39
+ }\
40
+ .ace-tm .ace_constant.ace_library {\
41
+ color: rgb(6, 150, 14);\
42
+ }\
43
+ .ace-tm .ace_invalid {\
44
+ background-color: rgba(255, 0, 0, 0.1);\
45
+ color: red;\
46
+ }\
47
+ .ace-tm .ace_support.ace_function {\
48
+ color: rgb(60, 76, 114);\
49
+ }\
50
+ .ace-tm .ace_support.ace_constant {\
51
+ color: rgb(6, 150, 14);\
52
+ }\
53
+ .ace-tm .ace_support.ace_type,\
54
+ .ace-tm .ace_support.ace_class {\
55
+ color: rgb(109, 121, 222);\
56
+ }\
57
+ .ace-tm .ace_keyword.ace_operator {\
58
+ color: rgb(104, 118, 135);\
59
+ }\
60
+ .ace-tm .ace_string {\
61
+ color: rgb(3, 106, 7);\
62
+ }\
63
+ .ace-tm .ace_comment {\
64
+ color: rgb(76, 136, 107);\
65
+ }\
66
+ .ace-tm .ace_comment.ace_doc {\
67
+ color: rgb(0, 102, 255);\
68
+ }\
69
+ .ace-tm .ace_comment.ace_doc.ace_tag {\
70
+ color: rgb(128, 159, 191);\
71
+ }\
72
+ .ace-tm .ace_constant.ace_numeric {\
73
+ color: rgb(0, 0, 205);\
74
+ }\
75
+ .ace-tm .ace_variable {\
76
+ color: rgb(49, 132, 149);\
77
+ }\
78
+ .ace-tm .ace_xml-pe {\
79
+ color: rgb(104, 104, 91);\
80
+ }\
81
+ .ace-tm .ace_entity.ace_name.ace_function {\
82
+ color: #0000A2;\
83
+ }\
84
+ .ace-tm .ace_heading {\
85
+ color: rgb(12, 7, 255);\
86
+ }\
87
+ .ace-tm .ace_list {\
88
+ color:rgb(185, 6, 144);\
89
+ }\
90
+ .ace-tm .ace_meta.ace_tag {\
91
+ color:rgb(0, 22, 142);\
92
+ }\
93
+ .ace-tm .ace_string.ace_regex {\
94
+ color: rgb(255, 0, 0)\
95
+ }\
96
+ .ace-tm .ace_marker-layer .ace_selection {\
97
+ background: rgb(181, 213, 255);\
98
+ }\
99
+ .ace-tm.ace_multiselect .ace_selection.ace_start {\
100
+ box-shadow: 0 0 3px 0px white;\
101
+ border-radius: 2px;\
102
+ }\
103
+ .ace-tm .ace_marker-layer .ace_step {\
104
+ background: rgb(252, 255, 0);\
105
+ }\
106
+ .ace-tm .ace_marker-layer .ace_stack {\
107
+ background: rgb(164, 229, 101);\
108
+ }\
109
+ .ace-tm .ace_marker-layer .ace_bracket {\
110
+ margin: -1px 0 0 -1px;\
111
+ border: 1px solid rgb(192, 192, 192);\
112
+ }\
113
+ .ace-tm .ace_marker-layer .ace_active-line {\
114
+ background: rgba(0, 0, 0, 0.07);\
115
+ }\
116
+ .ace-tm .ace_gutter-active-line {\
117
+ background-color : #dcdcdc;\
118
+ }\
119
+ .ace-tm .ace_marker-layer .ace_selected-word {\
120
+ background: rgb(250, 250, 255);\
121
+ border: 1px solid rgb(200, 200, 250);\
122
+ }\
123
+ .ace-tm .ace_indent-guide {\
124
+ background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\
125
+ }\
126
+ ";
127
+
128
+ var dom = require("../lib/dom");
129
+ dom.importCssString(exports.cssText, exports.cssClass);
130
+ });
@@ -0,0 +1,85 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require "uglifier"
4
+
5
+ def self.included host_class
6
+ host_class.include_set Abstract::Machine
7
+ host_class.include_set Abstract::MachineInput
8
+
9
+ host_class.machine_input { standard_machine_input }
10
+ host_class.store_machine_output filetype: "js"
11
+ end
12
+
13
+ def standard_machine_input
14
+ js = format(:js)._render_core
15
+ js = compress_js js if compress_js?
16
+ comment_with_source js
17
+ end
18
+
19
+ def comment_with_source js
20
+ "//#{name}\n#{js}"
21
+ end
22
+
23
+ def compress_js input
24
+ Uglifier.compile input
25
+ rescue => e
26
+ # CoffeeScript is compiled in a view
27
+ # If there is a CoffeeScript syntax error we get the rescued view here
28
+ # and the error that the rescued view is no valid Javascript
29
+ # To get the original error we have to refer to Card::Error.current
30
+ raise Card::Error, compression_error_message(e)
31
+ end
32
+
33
+ def compression_error_message e
34
+ if Card::Error.current
35
+ Card::Error.current.message
36
+ else
37
+ "JavaScript::SyntaxError (#{name}): #{e.message}"
38
+ end
39
+ end
40
+
41
+ def compress_js?
42
+ Cardio.config.compress_javascript
43
+ end
44
+
45
+ def clean_html?
46
+ false
47
+ end
48
+
49
+ format do
50
+ def chunk_list
51
+ # turn off autodetection of uri's
52
+ :nest_only
53
+ end
54
+
55
+ # def default_nest_view
56
+ # :raw
57
+ # end
58
+ end
59
+
60
+ format :html do
61
+ def input_type
62
+ :ace_editor
63
+ end
64
+
65
+ def ace_mode
66
+ :javascript
67
+ end
68
+
69
+ def content_changes action, diff_type, hide_diff=false
70
+ wrap_with(:pre) { super }
71
+ end
72
+
73
+ view :core do
74
+ script = card.format(:js).render_core
75
+ process_content highlight(script)
76
+ end
77
+
78
+ def highlight script
79
+ ::CodeRay.scan(script, :js).div
80
+ end
81
+ end
82
+
83
+ def diff_args
84
+ { diff_format: :text }
85
+ end
@@ -0,0 +1,19 @@
1
+ include_set Abstract::Machine
2
+
3
+ store_machine_output filetype: "js"
4
+
5
+ def ok_to_read
6
+ true
7
+ end
8
+
9
+ view :javascript_include_tag do
10
+ %(
11
+ <script src="#{card.machine_output_url}" type="text/javascript"></script>
12
+ )
13
+ end
14
+
15
+ format :html do
16
+ def raw_help_text
17
+ "JavaScript (or CoffeeScript) for card's page."
18
+ end
19
+ end
@@ -0,0 +1 @@
1
+ include_set Abstract::CodePointer
@@ -0,0 +1 @@
1
+ setting_opts group: :webpage, position: 5
@@ -0,0 +1,12 @@
1
+ include_set Abstract::CodeFile
2
+
3
+ def source_files
4
+ %w[mod editor name_editor autosave doubleclick layout navbox upload
5
+ slot modal overlay recaptcha slotter bridge
6
+ nest_editor nest_editor_rules nest_editor_options nest_editor_name
7
+ link_editor
8
+ components decko follow card_menu slot_ready
9
+ filter filter_links filter_items selectable_filtered_content].map do |n|
10
+ "decko/#{n}.js.coffee"
11
+ end
12
+ end
@@ -0,0 +1 @@
1
+ include_set Abstract::CodePointer
@@ -0,0 +1,11 @@
1
+ include_set Abstract::CodeFile
2
+
3
+ format :html do
4
+ view :script_tag, perms: :none do
5
+ <<-HTML.strip_heredoc
6
+ <!--[if lt IE 9]>
7
+ #{javascript_include_tag card.machine_output_url}
8
+ <![endif]-->
9
+ HTML
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ include_set Abstract::CodeFile
2
+
3
+ def source_files
4
+ ["vendor/jquery_rails/vendor/assets/javascripts/jquery3.js",
5
+ "vendor/jquery_rails/vendor/assets/javascripts/jquery_ujs.js"]
6
+ end
7
+
8
+ def source_dir
9
+ ""
10
+ end
@@ -0,0 +1,14 @@
1
+ include_set Abstract::CodeFile
2
+ Self::ScriptLibraries.add_item :script_jquery_helper
3
+
4
+ def source_files
5
+ # jquery-ui includes all interaction components, the dialog and the autocomplete widget
6
+ # and all dependencies for those
7
+ # decko depends on autocomplete, sortable, jquery.autosize and jquery.fileupload
8
+ # the dialog widget is not used in decko but in wikirate
9
+ # don't know if iframe-transport is needed but it used to be there
10
+ %w[jquery-ui.js
11
+ jquery.autosize.js
12
+ ../../vendor/jquery_file_upload/js/jquery.fileupload.js
13
+ ../../vendor/jquery_file_upload/js/jquery.iframe-transport.js]
14
+ end