card-mod-script 0.14.1 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/data/real.yml +50 -0
  3. data/lib/ansi2html.rb +69 -0
  4. data/lib/card/mod/script.rb +1 -0
  5. data/set/abstract/00_script.rb +4 -4
  6. data/set/abstract/02_coffee_script.rb +9 -1
  7. data/set/all/head_javascript.rb +13 -22
  8. data/set/right/script.rb +1 -1
  9. data/set/type/coffee_script.rb +6 -0
  10. data/set/type/java_script.rb +6 -0
  11. data/set/type/local_script_folder_group.rb +2 -0
  12. data/set/type/local_script_manifest_group.rb +2 -0
  13. data/set/type_plus_right/mod/script.rb +1 -5
  14. data/set/type_plus_right/set/script.rb +3 -1
  15. metadata +13 -119
  16. data/assets/script/decko/autosave.js.coffee +0 -30
  17. data/assets/script/decko/bridge.js.coffee +0 -31
  18. data/assets/script/decko/card_menu.js.coffee +0 -26
  19. data/assets/script/decko/components.js.coffee +0 -49
  20. data/assets/script/decko/decko.js.coffee +0 -82
  21. data/assets/script/decko/doubleclick.js.coffee +0 -30
  22. data/assets/script/decko/editor.js.coffee +0 -57
  23. data/assets/script/decko/filter.js.coffee +0 -183
  24. data/assets/script/decko/filter_items.js.coffee +0 -128
  25. data/assets/script/decko/filter_links.js.coffee +0 -81
  26. data/assets/script/decko/follow.js.coffee +0 -22
  27. data/assets/script/decko/layout.js.coffee +0 -76
  28. data/assets/script/decko/link_editor.js.coffee +0 -61
  29. data/assets/script/decko/mod.js.coffee +0 -79
  30. data/assets/script/decko/modal.js.coffee +0 -113
  31. data/assets/script/decko/name_editor.js.coffee +0 -40
  32. data/assets/script/decko/navbox.js.coffee +0 -74
  33. data/assets/script/decko/nest_editor.js.coffee +0 -166
  34. data/assets/script/decko/nest_editor_name.js.coffee +0 -102
  35. data/assets/script/decko/nest_editor_options.js.coffee +0 -93
  36. data/assets/script/decko/nest_editor_rules.js.coffee +0 -3
  37. data/assets/script/decko/overlay.js.coffee +0 -54
  38. data/assets/script/decko/pointer_config.js.coffee +0 -79
  39. data/assets/script/decko/pointer_list_editor.js.coffee +0 -67
  40. data/assets/script/decko/recaptcha.js.coffee +0 -19
  41. data/assets/script/decko/selectable_filtered_content.js.coffee +0 -12
  42. data/assets/script/decko/slot.js.coffee +0 -182
  43. data/assets/script/decko/slot_ready.js.coffee +0 -12
  44. data/assets/script/decko/slotter.js.coffee +0 -268
  45. data/assets/script/decko/type_editor.js.coffee +0 -21
  46. data/assets/script/decko/upload.js.coffee +0 -64
  47. data/assets/script/jquery-ui.min.js +0 -13
  48. data/assets/script/jquery.autosize.js +0 -274
  49. data/assets/script/manifest.yml +0 -57
  50. data/db/migrate_core_cards/20200804112348_add_mod_script_assets_type.rb +0 -30
  51. data/vendor/jquery_file_upload/LICENSE.txt +0 -20
  52. data/vendor/jquery_file_upload/README.md +0 -224
  53. data/vendor/jquery_file_upload/SECURITY.md +0 -227
  54. data/vendor/jquery_file_upload/VULNERABILITIES.md +0 -118
  55. data/vendor/jquery_file_upload/cors/postmessage.html +0 -85
  56. data/vendor/jquery_file_upload/cors/result.html +0 -26
  57. data/vendor/jquery_file_upload/css/jquery.fileupload-noscript.css +0 -22
  58. data/vendor/jquery_file_upload/css/jquery.fileupload-ui-noscript.css +0 -17
  59. data/vendor/jquery_file_upload/css/jquery.fileupload-ui.css +0 -68
  60. data/vendor/jquery_file_upload/css/jquery.fileupload.css +0 -36
  61. data/vendor/jquery_file_upload/docker-compose.yml +0 -55
  62. data/vendor/jquery_file_upload/img/loading.gif +0 -0
  63. data/vendor/jquery_file_upload/img/progressbar.gif +0 -0
  64. data/vendor/jquery_file_upload/index.html +0 -357
  65. data/vendor/jquery_file_upload/js/cors/jquery.postmessage-transport.js +0 -126
  66. data/vendor/jquery_file_upload/js/cors/jquery.xdr-transport.js +0 -97
  67. data/vendor/jquery_file_upload/js/demo.js +0 -75
  68. data/vendor/jquery_file_upload/js/jquery.fileupload-audio.js +0 -101
  69. data/vendor/jquery_file_upload/js/jquery.fileupload-image.js +0 -347
  70. data/vendor/jquery_file_upload/js/jquery.fileupload-process.js +0 -170
  71. data/vendor/jquery_file_upload/js/jquery.fileupload-ui.js +0 -759
  72. data/vendor/jquery_file_upload/js/jquery.fileupload-validate.js +0 -119
  73. data/vendor/jquery_file_upload/js/jquery.fileupload-video.js +0 -101
  74. data/vendor/jquery_file_upload/js/jquery.fileupload.js +0 -1604
  75. data/vendor/jquery_file_upload/js/jquery.iframe-transport.js +0 -227
  76. data/vendor/jquery_file_upload/js/vendor/jquery.ui.widget.js +0 -805
  77. data/vendor/jquery_file_upload/package-lock.json +0 -6853
  78. data/vendor/jquery_file_upload/package.json +0 -116
  79. data/vendor/jquery_file_upload/server/gae-python/app.yaml +0 -18
  80. data/vendor/jquery_file_upload/server/gae-python/main.py +0 -204
  81. data/vendor/jquery_file_upload/server/gae-python/static/favicon.ico +0 -0
  82. data/vendor/jquery_file_upload/server/gae-python/static/robots.txt +0 -2
  83. data/vendor/jquery_file_upload/server/php/Dockerfile +0 -44
  84. data/vendor/jquery_file_upload/server/php/UploadHandler.php +0 -1480
  85. data/vendor/jquery_file_upload/server/php/index.php +0 -15
  86. data/vendor/jquery_file_upload/server/php/php.ini +0 -5
  87. data/vendor/jquery_file_upload/test/index.html +0 -49
  88. data/vendor/jquery_file_upload/test/unit.js +0 -989
  89. data/vendor/jquery_file_upload/test/vendor/chai.js +0 -10854
  90. data/vendor/jquery_file_upload/test/vendor/mocha.css +0 -325
  91. data/vendor/jquery_file_upload/test/vendor/mocha.js +0 -18178
  92. data/vendor/jquery_file_upload/wdio/LICENSE.txt +0 -20
  93. data/vendor/jquery_file_upload/wdio/assets/black+white-3x2.jpg +0 -0
  94. data/vendor/jquery_file_upload/wdio/assets/black+white-60x40.gif +0 -0
  95. data/vendor/jquery_file_upload/wdio/conf/chrome.js +0 -40
  96. data/vendor/jquery_file_upload/wdio/conf/firefox.js +0 -25
  97. data/vendor/jquery_file_upload/wdio/hooks/index.js +0 -36
  98. data/vendor/jquery_file_upload/wdio/test/pages/file-upload.js +0 -79
  99. data/vendor/jquery_file_upload/wdio/test/specs/01-file-upload.js +0 -25
  100. data/vendor/jquery_file_upload/wdio/wdio.conf.js +0 -4
  101. data/vendor/jquery_rails/CHANGELOG.md +0 -359
  102. data/vendor/jquery_rails/CONTRIBUTING.md +0 -132
  103. data/vendor/jquery_rails/Gemfile +0 -22
  104. data/vendor/jquery_rails/MIT-LICENSE +0 -21
  105. data/vendor/jquery_rails/README.md +0 -75
  106. data/vendor/jquery_rails/Rakefile +0 -59
  107. data/vendor/jquery_rails/VERSIONS.md +0 -62
  108. data/vendor/jquery_rails/jquery-rails.gemspec +0 -26
  109. data/vendor/jquery_rails/lib/jquery/assert_select.rb +0 -149
  110. data/vendor/jquery_rails/lib/jquery/rails/engine.rb +0 -6
  111. data/vendor/jquery_rails/lib/jquery/rails/version.rb +0 -9
  112. data/vendor/jquery_rails/lib/jquery/rails.rb +0 -8
  113. data/vendor/jquery_rails/lib/jquery-rails.rb +0 -1
  114. data/vendor/jquery_rails/test/assert_select_jquery_test.rb +0 -85
  115. data/vendor/jquery_rails/test/test_helper.rb +0 -6
  116. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.js +0 -11008
  117. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.js +0 -5
  118. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.map +0 -1
  119. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.js +0 -9814
  120. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.js +0 -4
  121. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.map +0 -1
  122. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.js +0 -10364
  123. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.js +0 -2
  124. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.map +0 -1
  125. data/vendor/jquery_rails/vendor/assets/javascripts/jquery_ujs.js +0 -555
@@ -1,116 +0,0 @@
1
- {
2
- "name": "blueimp-file-upload",
3
- "version": "10.32.0",
4
- "title": "jQuery File Upload",
5
- "description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.",
6
- "keywords": [
7
- "jquery",
8
- "file",
9
- "upload",
10
- "widget",
11
- "multiple",
12
- "selection",
13
- "drag",
14
- "drop",
15
- "progress",
16
- "preview",
17
- "cross-domain",
18
- "cross-site",
19
- "chunk",
20
- "resume",
21
- "gae",
22
- "go",
23
- "python",
24
- "php",
25
- "bootstrap"
26
- ],
27
- "homepage": "https://github.com/blueimp/jQuery-File-Upload",
28
- "author": {
29
- "name": "Sebastian Tschan",
30
- "url": "https://blueimp.net"
31
- },
32
- "repository": {
33
- "type": "git",
34
- "url": "git://github.com/blueimp/jQuery-File-Upload.git"
35
- },
36
- "license": "MIT",
37
- "peerDependencies": {
38
- "jquery": ">=1.7"
39
- },
40
- "optionalDependencies": {
41
- "blueimp-canvas-to-blob": "3",
42
- "blueimp-load-image": "5",
43
- "blueimp-tmpl": "3"
44
- },
45
- "devDependencies": {
46
- "eslint": "7",
47
- "eslint-config-blueimp": "2",
48
- "eslint-config-prettier": "8",
49
- "eslint-plugin-jsdoc": "36",
50
- "eslint-plugin-prettier": "4",
51
- "prettier": "2",
52
- "stylelint": "13",
53
- "stylelint-config-prettier": "8",
54
- "stylelint-config-recommended": "5"
55
- },
56
- "stylelint": {
57
- "extends": [
58
- "stylelint-config-recommended",
59
- "stylelint-config-prettier"
60
- ],
61
- "ignoreFiles": [
62
- "css/*.min.css",
63
- "css/vendor/*",
64
- "test/vendor/*"
65
- ]
66
- },
67
- "eslintConfig": {
68
- "extends": [
69
- "blueimp",
70
- "plugin:jsdoc/recommended",
71
- "plugin:prettier/recommended"
72
- ],
73
- "env": {
74
- "browser": true
75
- }
76
- },
77
- "eslintIgnore": [
78
- "*.min.js",
79
- "test/vendor"
80
- ],
81
- "prettier": {
82
- "arrowParens": "avoid",
83
- "proseWrap": "always",
84
- "singleQuote": true,
85
- "trailingComma": "none"
86
- },
87
- "scripts": {
88
- "lint": "stylelint '**/*.css' && eslint .",
89
- "unit": "docker-compose run --rm mocha",
90
- "wdio": "docker-compose run --rm wdio",
91
- "test": "npm run lint && npm run unit && npm run wdio && npm run wdio -- conf/firefox.js",
92
- "posttest": "docker-compose down -v",
93
- "preversion": "npm test",
94
- "postversion": "git push --tags origin master && npm publish"
95
- },
96
- "files": [
97
- "css/jquery.fileupload-noscript.css",
98
- "css/jquery.fileupload-ui-noscript.css",
99
- "css/jquery.fileupload-ui.css",
100
- "css/jquery.fileupload.css",
101
- "img/loading.gif",
102
- "img/progressbar.gif",
103
- "js/cors/jquery.postmessage-transport.js",
104
- "js/cors/jquery.xdr-transport.js",
105
- "js/vendor/jquery.ui.widget.js",
106
- "js/jquery.fileupload-audio.js",
107
- "js/jquery.fileupload-image.js",
108
- "js/jquery.fileupload-process.js",
109
- "js/jquery.fileupload-ui.js",
110
- "js/jquery.fileupload-validate.js",
111
- "js/jquery.fileupload-video.js",
112
- "js/jquery.fileupload.js",
113
- "js/jquery.iframe-transport.js"
114
- ],
115
- "main": "js/jquery.fileupload.js"
116
- }
@@ -1,18 +0,0 @@
1
- runtime: python27
2
- api_version: 1
3
- threadsafe: true
4
-
5
- libraries:
6
- - name: PIL
7
- version: latest
8
-
9
- handlers:
10
- - url: /(favicon\.ico|robots\.txt)
11
- static_files: static/\1
12
- upload: static/(.*)
13
- expiration: '1d'
14
- - url: /.*
15
- script: main.app
16
-
17
- automatic_scaling:
18
- max_instances: 1
@@ -1,204 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # jQuery File Upload Plugin GAE Python Example
4
- # https://github.com/blueimp/jQuery-File-Upload
5
- #
6
- # Copyright 2011, Sebastian Tschan
7
- # https://blueimp.net
8
- #
9
- # Licensed under the MIT license:
10
- # https://opensource.org/licenses/MIT
11
- #
12
-
13
- from google.appengine.api import memcache, images
14
- import json
15
- import os
16
- import re
17
- import urllib
18
- import webapp2
19
-
20
- DEBUG=os.environ.get('SERVER_SOFTWARE', '').startswith('Dev')
21
- WEBSITE = 'https://blueimp.github.io/jQuery-File-Upload/'
22
- MIN_FILE_SIZE = 1 # bytes
23
- # Max file size is memcache limit (1MB) minus key size minus overhead:
24
- MAX_FILE_SIZE = 999000 # bytes
25
- IMAGE_TYPES = re.compile('image/(gif|p?jpeg|(x-)?png)')
26
- ACCEPT_FILE_TYPES = IMAGE_TYPES
27
- THUMB_MAX_WIDTH = 80
28
- THUMB_MAX_HEIGHT = 80
29
- THUMB_SUFFIX = '.'+str(THUMB_MAX_WIDTH)+'x'+str(THUMB_MAX_HEIGHT)+'.png'
30
- EXPIRATION_TIME = 300 # seconds
31
- # If set to None, only allow redirects to the referer protocol+host.
32
- # Set to a regexp for custom pattern matching against the redirect value:
33
- REDIRECT_ALLOW_TARGET = None
34
-
35
- class CORSHandler(webapp2.RequestHandler):
36
- def cors(self):
37
- headers = self.response.headers
38
- headers['Access-Control-Allow-Origin'] = '*'
39
- headers['Access-Control-Allow-Methods'] =\
40
- 'OPTIONS, HEAD, GET, POST, DELETE'
41
- headers['Access-Control-Allow-Headers'] =\
42
- 'Content-Type, Content-Range, Content-Disposition'
43
-
44
- def initialize(self, request, response):
45
- super(CORSHandler, self).initialize(request, response)
46
- self.cors()
47
-
48
- def json_stringify(self, obj):
49
- return json.dumps(obj, separators=(',', ':'))
50
-
51
- def options(self, *args, **kwargs):
52
- pass
53
-
54
- class UploadHandler(CORSHandler):
55
- def validate(self, file):
56
- if file['size'] < MIN_FILE_SIZE:
57
- file['error'] = 'File is too small'
58
- elif file['size'] > MAX_FILE_SIZE:
59
- file['error'] = 'File is too big'
60
- elif not ACCEPT_FILE_TYPES.match(file['type']):
61
- file['error'] = 'Filetype not allowed'
62
- else:
63
- return True
64
- return False
65
-
66
- def validate_redirect(self, redirect):
67
- if redirect:
68
- if REDIRECT_ALLOW_TARGET:
69
- return REDIRECT_ALLOW_TARGET.match(redirect)
70
- referer = self.request.headers['referer']
71
- if referer:
72
- from urlparse import urlparse
73
- parts = urlparse(referer)
74
- redirect_allow_target = '^' + re.escape(
75
- parts.scheme + '://' + parts.netloc + '/'
76
- )
77
- return re.match(redirect_allow_target, redirect)
78
- return False
79
-
80
- def get_file_size(self, file):
81
- file.seek(0, 2) # Seek to the end of the file
82
- size = file.tell() # Get the position of EOF
83
- file.seek(0) # Reset the file position to the beginning
84
- return size
85
-
86
- def write_blob(self, data, info):
87
- key = urllib.quote(info['type'].encode('utf-8'), '') +\
88
- '/' + str(hash(data)) +\
89
- '/' + urllib.quote(info['name'].encode('utf-8'), '')
90
- try:
91
- memcache.set(key, data, time=EXPIRATION_TIME)
92
- except: #Failed to add to memcache
93
- return (None, None)
94
- thumbnail_key = None
95
- if IMAGE_TYPES.match(info['type']):
96
- try:
97
- img = images.Image(image_data=data)
98
- img.resize(
99
- width=THUMB_MAX_WIDTH,
100
- height=THUMB_MAX_HEIGHT
101
- )
102
- thumbnail_data = img.execute_transforms()
103
- thumbnail_key = key + THUMB_SUFFIX
104
- memcache.set(
105
- thumbnail_key,
106
- thumbnail_data,
107
- time=EXPIRATION_TIME
108
- )
109
- except: #Failed to resize Image or add to memcache
110
- thumbnail_key = None
111
- return (key, thumbnail_key)
112
-
113
- def handle_upload(self):
114
- results = []
115
- for name, fieldStorage in self.request.POST.items():
116
- if type(fieldStorage) is unicode:
117
- continue
118
- result = {}
119
- result['name'] = urllib.unquote(fieldStorage.filename)
120
- result['type'] = fieldStorage.type
121
- result['size'] = self.get_file_size(fieldStorage.file)
122
- if self.validate(result):
123
- key, thumbnail_key = self.write_blob(
124
- fieldStorage.value,
125
- result
126
- )
127
- if key is not None:
128
- result['url'] = self.request.host_url + '/' + key
129
- result['deleteUrl'] = result['url']
130
- result['deleteType'] = 'DELETE'
131
- if thumbnail_key is not None:
132
- result['thumbnailUrl'] = self.request.host_url +\
133
- '/' + thumbnail_key
134
- else:
135
- result['error'] = 'Failed to store uploaded file.'
136
- results.append(result)
137
- return results
138
-
139
- def head(self):
140
- pass
141
-
142
- def get(self):
143
- self.redirect(WEBSITE)
144
-
145
- def post(self):
146
- if (self.request.get('_method') == 'DELETE'):
147
- return self.delete()
148
- result = {'files': self.handle_upload()}
149
- s = self.json_stringify(result)
150
- redirect = self.request.get('redirect')
151
- if self.validate_redirect(redirect):
152
- return self.redirect(str(
153
- redirect.replace('%s', urllib.quote(s, ''), 1)
154
- ))
155
- if 'application/json' in self.request.headers.get('Accept'):
156
- self.response.headers['Content-Type'] = 'application/json'
157
- self.response.write(s)
158
-
159
- class FileHandler(CORSHandler):
160
- def normalize(self, str):
161
- return urllib.quote(urllib.unquote(str), '')
162
-
163
- def get(self, content_type, data_hash, file_name):
164
- content_type = self.normalize(content_type)
165
- file_name = self.normalize(file_name)
166
- key = content_type + '/' + data_hash + '/' + file_name
167
- data = memcache.get(key)
168
- if data is None:
169
- return self.error(404)
170
- # Prevent browsers from MIME-sniffing the content-type:
171
- self.response.headers['X-Content-Type-Options'] = 'nosniff'
172
- content_type = urllib.unquote(content_type)
173
- if not IMAGE_TYPES.match(content_type):
174
- # Force a download dialog for non-image types:
175
- content_type = 'application/octet-stream'
176
- elif file_name.endswith(THUMB_SUFFIX):
177
- content_type = 'image/png'
178
- self.response.headers['Content-Type'] = content_type
179
- # Cache for the expiration time:
180
- self.response.headers['Cache-Control'] = 'public,max-age=%d' \
181
- % EXPIRATION_TIME
182
- self.response.write(data)
183
-
184
- def delete(self, content_type, data_hash, file_name):
185
- content_type = self.normalize(content_type)
186
- file_name = self.normalize(file_name)
187
- key = content_type + '/' + data_hash + '/' + file_name
188
- result = {key: memcache.delete(key)}
189
- content_type = urllib.unquote(content_type)
190
- if IMAGE_TYPES.match(content_type):
191
- thumbnail_key = key + THUMB_SUFFIX
192
- result[thumbnail_key] = memcache.delete(thumbnail_key)
193
- if 'application/json' in self.request.headers.get('Accept'):
194
- self.response.headers['Content-Type'] = 'application/json'
195
- s = self.json_stringify(result)
196
- self.response.write(s)
197
-
198
- app = webapp2.WSGIApplication(
199
- [
200
- ('/', UploadHandler),
201
- ('/(.+)/([^/]+)/([^/]+)', FileHandler)
202
- ],
203
- debug=DEBUG
204
- )
@@ -1,2 +0,0 @@
1
- User-agent: *
2
- Disallow:
@@ -1,44 +0,0 @@
1
- FROM php:8.0.11-apache
2
-
3
- # Enable the Apache Headers module:
4
- RUN ln -s /etc/apache2/mods-available/headers.load \
5
- /etc/apache2/mods-enabled/headers.load
6
-
7
- # Enable the Apache Rewrite module:
8
- RUN ln -s /etc/apache2/mods-available/rewrite.load \
9
- /etc/apache2/mods-enabled/rewrite.load
10
-
11
- # Install GD, Imagick and ImageMagick as image conversion options:
12
- RUN DEBIAN_FRONTEND=noninteractive \
13
- apt-get update && apt-get install -y --no-install-recommends \
14
- libpng-dev \
15
- libjpeg-dev \
16
- libmagickwand-dev \
17
- imagemagick \
18
- && pecl install \
19
- imagick \
20
- && docker-php-ext-enable \
21
- imagick \
22
- && docker-php-ext-configure \
23
- gd --with-jpeg=/usr/include/ \
24
- && docker-php-ext-install \
25
- gd \
26
- # Uninstall obsolete packages:
27
- && apt-get autoremove -y \
28
- libpng-dev \
29
- libjpeg-dev \
30
- libmagickwand-dev \
31
- # Remove obsolete files:
32
- && apt-get clean \
33
- && rm -rf \
34
- /tmp/* \
35
- /usr/share/doc/* \
36
- /var/cache/* \
37
- /var/lib/apt/lists/* \
38
- /var/tmp/*
39
-
40
- # Use the default development configuration:
41
- RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
42
-
43
- # Add a custom configuration file:
44
- COPY php.ini "$PHP_INI_DIR/conf.d/"