Move dropzone.js to npm/webpack (#10645)
- unvendor dropzone and upgrade it from 4.2.0 to 5.7.0 - make `csrf` available on window.config
This commit is contained in:
parent
0c2148c037
commit
9d3e69e867
14 changed files with 38 additions and 2196 deletions
5
package-lock.json
generated
5
package-lock.json
generated
|
@ -3927,6 +3927,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dropzone": {
|
||||||
|
"version": "5.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.7.0.tgz",
|
||||||
|
"integrity": "sha512-kOltiZXH5cO/72I22JjE+w6BoT6uaVLfWdFMsi1PMKFkU6BZWpqRwjnsRm0o6ANGTBuZar5Piu7m/CbKqRPiYg=="
|
||||||
|
},
|
||||||
"duplexer2": {
|
"duplexer2": {
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@primer/octicons": "9.4.0",
|
"@primer/octicons": "9.4.0",
|
||||||
"clipboard": "2.0.4",
|
"clipboard": "2.0.4",
|
||||||
|
"dropzone": "5.7.0",
|
||||||
"fomantic-ui": "2.8.4",
|
"fomantic-ui": "2.8.4",
|
||||||
"highlight.js": "9.18.1",
|
"highlight.js": "9.18.1",
|
||||||
"jquery": "3.4.1",
|
"jquery": "3.4.1",
|
||||||
|
|
6
public/vendor/librejs.html
vendored
6
public/vendor/librejs.html
vendored
|
@ -61,9 +61,9 @@
|
||||||
<td><a href="https://github.com/Ranks/emojify.js/archive/1.1.0.tar.gz">emojify-1.1.0.tar.gz</a></td>
|
<td><a href="https://github.com/Ranks/emojify.js/archive/1.1.0.tar.gz">emojify-1.1.0.tar.gz</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="./plugins/dropzone/dropzone.js">dropzone.js</a></td>
|
<td><a href="./js/dropzone.js">dropzone.js</a></td>
|
||||||
<td><a href="https://github.com/enyo/dropzone/blob/master/LICENSE">Expat</a></td>
|
<td><a href="https://github.com/enyo/dropzone/blob/master/LICENSE">MIT</a></td>
|
||||||
<td><a href="https://github.com/enyo/dropzone/archive/v4.2.0.tar.gz">dropzone.js-4.2.0.tar.gz</a></td>
|
<td><a href="https://github.com/enyo/dropzone/archive/master.tar.gz">dropzone-master.tar.gz</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="./highlight.js">highlight.js</a></td>
|
<td><a href="./highlight.js">highlight.js</a></td>
|
||||||
|
|
20
public/vendor/plugins/dropzone/LICENSE
vendored
20
public/vendor/plugins/dropzone/LICENSE
vendored
|
@ -1,20 +0,0 @@
|
||||||
(c) Copyright 2012 Matias Meno
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
a copy of this software and associated documentation files (the
|
|
||||||
"Software"), to deal in the Software without restriction, including
|
|
||||||
without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
distribute, sublicense, and/or sell copies of the Software, and to
|
|
||||||
permit persons to whom the Software is furnished to do so, subject to
|
|
||||||
the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
|
||||||
included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
||||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
388
public/vendor/plugins/dropzone/dropzone.css
vendored
388
public/vendor/plugins/dropzone/dropzone.css
vendored
|
@ -1,388 +0,0 @@
|
||||||
/*
|
|
||||||
* The MIT License
|
|
||||||
* Copyright (c) 2012 Matias Meno <m@tias.me>
|
|
||||||
*/
|
|
||||||
@-webkit-keyframes passing-through {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(40px);
|
|
||||||
-moz-transform: translateY(40px);
|
|
||||||
-ms-transform: translateY(40px);
|
|
||||||
-o-transform: translateY(40px);
|
|
||||||
transform: translateY(40px); }
|
|
||||||
30%, 70% {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transform: translateY(0px);
|
|
||||||
-moz-transform: translateY(0px);
|
|
||||||
-ms-transform: translateY(0px);
|
|
||||||
-o-transform: translateY(0px);
|
|
||||||
transform: translateY(0px); }
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(-40px);
|
|
||||||
-moz-transform: translateY(-40px);
|
|
||||||
-ms-transform: translateY(-40px);
|
|
||||||
-o-transform: translateY(-40px);
|
|
||||||
transform: translateY(-40px); } }
|
|
||||||
@-moz-keyframes passing-through {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(40px);
|
|
||||||
-moz-transform: translateY(40px);
|
|
||||||
-ms-transform: translateY(40px);
|
|
||||||
-o-transform: translateY(40px);
|
|
||||||
transform: translateY(40px); }
|
|
||||||
30%, 70% {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transform: translateY(0px);
|
|
||||||
-moz-transform: translateY(0px);
|
|
||||||
-ms-transform: translateY(0px);
|
|
||||||
-o-transform: translateY(0px);
|
|
||||||
transform: translateY(0px); }
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(-40px);
|
|
||||||
-moz-transform: translateY(-40px);
|
|
||||||
-ms-transform: translateY(-40px);
|
|
||||||
-o-transform: translateY(-40px);
|
|
||||||
transform: translateY(-40px); } }
|
|
||||||
@keyframes passing-through {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(40px);
|
|
||||||
-moz-transform: translateY(40px);
|
|
||||||
-ms-transform: translateY(40px);
|
|
||||||
-o-transform: translateY(40px);
|
|
||||||
transform: translateY(40px); }
|
|
||||||
30%, 70% {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transform: translateY(0px);
|
|
||||||
-moz-transform: translateY(0px);
|
|
||||||
-ms-transform: translateY(0px);
|
|
||||||
-o-transform: translateY(0px);
|
|
||||||
transform: translateY(0px); }
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(-40px);
|
|
||||||
-moz-transform: translateY(-40px);
|
|
||||||
-ms-transform: translateY(-40px);
|
|
||||||
-o-transform: translateY(-40px);
|
|
||||||
transform: translateY(-40px); } }
|
|
||||||
@-webkit-keyframes slide-in {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(40px);
|
|
||||||
-moz-transform: translateY(40px);
|
|
||||||
-ms-transform: translateY(40px);
|
|
||||||
-o-transform: translateY(40px);
|
|
||||||
transform: translateY(40px); }
|
|
||||||
30% {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transform: translateY(0px);
|
|
||||||
-moz-transform: translateY(0px);
|
|
||||||
-ms-transform: translateY(0px);
|
|
||||||
-o-transform: translateY(0px);
|
|
||||||
transform: translateY(0px); } }
|
|
||||||
@-moz-keyframes slide-in {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(40px);
|
|
||||||
-moz-transform: translateY(40px);
|
|
||||||
-ms-transform: translateY(40px);
|
|
||||||
-o-transform: translateY(40px);
|
|
||||||
transform: translateY(40px); }
|
|
||||||
30% {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transform: translateY(0px);
|
|
||||||
-moz-transform: translateY(0px);
|
|
||||||
-ms-transform: translateY(0px);
|
|
||||||
-o-transform: translateY(0px);
|
|
||||||
transform: translateY(0px); } }
|
|
||||||
@keyframes slide-in {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: translateY(40px);
|
|
||||||
-moz-transform: translateY(40px);
|
|
||||||
-ms-transform: translateY(40px);
|
|
||||||
-o-transform: translateY(40px);
|
|
||||||
transform: translateY(40px); }
|
|
||||||
30% {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transform: translateY(0px);
|
|
||||||
-moz-transform: translateY(0px);
|
|
||||||
-ms-transform: translateY(0px);
|
|
||||||
-o-transform: translateY(0px);
|
|
||||||
transform: translateY(0px); } }
|
|
||||||
@-webkit-keyframes pulse {
|
|
||||||
0% {
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
-ms-transform: scale(1);
|
|
||||||
-o-transform: scale(1);
|
|
||||||
transform: scale(1); }
|
|
||||||
10% {
|
|
||||||
-webkit-transform: scale(1.1);
|
|
||||||
-moz-transform: scale(1.1);
|
|
||||||
-ms-transform: scale(1.1);
|
|
||||||
-o-transform: scale(1.1);
|
|
||||||
transform: scale(1.1); }
|
|
||||||
20% {
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
-ms-transform: scale(1);
|
|
||||||
-o-transform: scale(1);
|
|
||||||
transform: scale(1); } }
|
|
||||||
@-moz-keyframes pulse {
|
|
||||||
0% {
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
-ms-transform: scale(1);
|
|
||||||
-o-transform: scale(1);
|
|
||||||
transform: scale(1); }
|
|
||||||
10% {
|
|
||||||
-webkit-transform: scale(1.1);
|
|
||||||
-moz-transform: scale(1.1);
|
|
||||||
-ms-transform: scale(1.1);
|
|
||||||
-o-transform: scale(1.1);
|
|
||||||
transform: scale(1.1); }
|
|
||||||
20% {
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
-ms-transform: scale(1);
|
|
||||||
-o-transform: scale(1);
|
|
||||||
transform: scale(1); } }
|
|
||||||
@keyframes pulse {
|
|
||||||
0% {
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
-ms-transform: scale(1);
|
|
||||||
-o-transform: scale(1);
|
|
||||||
transform: scale(1); }
|
|
||||||
10% {
|
|
||||||
-webkit-transform: scale(1.1);
|
|
||||||
-moz-transform: scale(1.1);
|
|
||||||
-ms-transform: scale(1.1);
|
|
||||||
-o-transform: scale(1.1);
|
|
||||||
transform: scale(1.1); }
|
|
||||||
20% {
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
-ms-transform: scale(1);
|
|
||||||
-o-transform: scale(1);
|
|
||||||
transform: scale(1); } }
|
|
||||||
.dropzone, .dropzone * {
|
|
||||||
box-sizing: border-box; }
|
|
||||||
|
|
||||||
.dropzone {
|
|
||||||
min-height: 150px;
|
|
||||||
border: 2px solid rgba(0, 0, 0, 0.3);
|
|
||||||
background: white;
|
|
||||||
padding: 20px 20px; }
|
|
||||||
.dropzone.dz-clickable {
|
|
||||||
cursor: pointer; }
|
|
||||||
.dropzone.dz-clickable * {
|
|
||||||
cursor: default; }
|
|
||||||
.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
|
|
||||||
cursor: pointer; }
|
|
||||||
.dropzone.dz-started .dz-message {
|
|
||||||
display: none; }
|
|
||||||
.dropzone.dz-drag-hover {
|
|
||||||
border-style: solid; }
|
|
||||||
.dropzone.dz-drag-hover .dz-message {
|
|
||||||
opacity: 0.5; }
|
|
||||||
.dropzone .dz-message {
|
|
||||||
text-align: center;
|
|
||||||
margin: 2em 0; }
|
|
||||||
.dropzone .dz-preview {
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: top;
|
|
||||||
margin: 16px;
|
|
||||||
min-height: 100px; }
|
|
||||||
.dropzone .dz-preview:hover {
|
|
||||||
z-index: 1000; }
|
|
||||||
.dropzone .dz-preview:hover .dz-details {
|
|
||||||
opacity: 1; }
|
|
||||||
.dropzone .dz-preview.dz-file-preview .dz-image {
|
|
||||||
border-radius: 20px;
|
|
||||||
background: #999;
|
|
||||||
background: linear-gradient(to bottom, #eee, #ddd); }
|
|
||||||
.dropzone .dz-preview.dz-file-preview .dz-details {
|
|
||||||
opacity: 1; }
|
|
||||||
.dropzone .dz-preview.dz-image-preview {
|
|
||||||
background: white; }
|
|
||||||
.dropzone .dz-preview.dz-image-preview .dz-details {
|
|
||||||
-webkit-transition: opacity 0.2s linear;
|
|
||||||
-moz-transition: opacity 0.2s linear;
|
|
||||||
-ms-transition: opacity 0.2s linear;
|
|
||||||
-o-transition: opacity 0.2s linear;
|
|
||||||
transition: opacity 0.2s linear; }
|
|
||||||
.dropzone .dz-preview .dz-remove {
|
|
||||||
font-size: 14px;
|
|
||||||
text-align: center;
|
|
||||||
display: block;
|
|
||||||
cursor: pointer;
|
|
||||||
border: none; }
|
|
||||||
.dropzone .dz-preview .dz-remove:hover {
|
|
||||||
text-decoration: underline; }
|
|
||||||
.dropzone .dz-preview:hover .dz-details {
|
|
||||||
opacity: 1; }
|
|
||||||
.dropzone .dz-preview .dz-details {
|
|
||||||
z-index: 20;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
opacity: 0;
|
|
||||||
font-size: 13px;
|
|
||||||
min-width: 100%;
|
|
||||||
max-width: 100%;
|
|
||||||
padding: 2em 1em;
|
|
||||||
text-align: center;
|
|
||||||
color: rgba(0, 0, 0, 0.9);
|
|
||||||
line-height: 150%; }
|
|
||||||
.dropzone .dz-preview .dz-details .dz-size {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
font-size: 16px; }
|
|
||||||
.dropzone .dz-preview .dz-details .dz-filename {
|
|
||||||
white-space: nowrap; }
|
|
||||||
.dropzone .dz-preview .dz-details .dz-filename:hover span {
|
|
||||||
border: 1px solid rgba(200, 200, 200, 0.8);
|
|
||||||
background-color: rgba(255, 255, 255, 0.8); }
|
|
||||||
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis; }
|
|
||||||
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
|
|
||||||
border: 1px solid transparent; }
|
|
||||||
.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
|
|
||||||
background-color: rgba(255, 255, 255, 0.4);
|
|
||||||
padding: 0 0.4em;
|
|
||||||
border-radius: 3px; }
|
|
||||||
.dropzone .dz-preview:hover .dz-image img {
|
|
||||||
-webkit-transform: scale(1.05, 1.05);
|
|
||||||
-moz-transform: scale(1.05, 1.05);
|
|
||||||
-ms-transform: scale(1.05, 1.05);
|
|
||||||
-o-transform: scale(1.05, 1.05);
|
|
||||||
transform: scale(1.05, 1.05);
|
|
||||||
-webkit-filter: blur(8px);
|
|
||||||
filter: blur(8px); }
|
|
||||||
.dropzone .dz-preview .dz-image {
|
|
||||||
border-radius: 20px;
|
|
||||||
overflow: hidden;
|
|
||||||
width: 120px;
|
|
||||||
height: 120px;
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
z-index: 10; }
|
|
||||||
.dropzone .dz-preview .dz-image img {
|
|
||||||
display: block; }
|
|
||||||
.dropzone .dz-preview.dz-success .dz-success-mark {
|
|
||||||
-webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
||||||
-moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
||||||
-ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
||||||
-o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
||||||
animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
|
||||||
.dropzone .dz-preview.dz-error .dz-error-mark {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
||||||
-moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
||||||
-ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
||||||
-o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
||||||
animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
|
||||||
.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
|
|
||||||
pointer-events: none;
|
|
||||||
opacity: 0;
|
|
||||||
z-index: 500;
|
|
||||||
position: absolute;
|
|
||||||
display: block;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
margin-left: -27px;
|
|
||||||
margin-top: -27px; }
|
|
||||||
.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
|
|
||||||
display: block;
|
|
||||||
width: 54px;
|
|
||||||
height: 54px; }
|
|
||||||
.dropzone .dz-preview.dz-processing .dz-progress {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transition: all 0.2s linear;
|
|
||||||
-moz-transition: all 0.2s linear;
|
|
||||||
-ms-transition: all 0.2s linear;
|
|
||||||
-o-transition: all 0.2s linear;
|
|
||||||
transition: all 0.2s linear; }
|
|
||||||
.dropzone .dz-preview.dz-complete .dz-progress {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transition: opacity 0.4s ease-in;
|
|
||||||
-moz-transition: opacity 0.4s ease-in;
|
|
||||||
-ms-transition: opacity 0.4s ease-in;
|
|
||||||
-o-transition: opacity 0.4s ease-in;
|
|
||||||
transition: opacity 0.4s ease-in; }
|
|
||||||
.dropzone .dz-preview:not(.dz-processing) .dz-progress {
|
|
||||||
-webkit-animation: pulse 6s ease infinite;
|
|
||||||
-moz-animation: pulse 6s ease infinite;
|
|
||||||
-ms-animation: pulse 6s ease infinite;
|
|
||||||
-o-animation: pulse 6s ease infinite;
|
|
||||||
animation: pulse 6s ease infinite; }
|
|
||||||
.dropzone .dz-preview .dz-progress {
|
|
||||||
opacity: 1;
|
|
||||||
z-index: 1000;
|
|
||||||
pointer-events: none;
|
|
||||||
position: absolute;
|
|
||||||
height: 16px;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
margin-top: -8px;
|
|
||||||
width: 80px;
|
|
||||||
margin-left: -40px;
|
|
||||||
background: rgba(255, 255, 255, 0.9);
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
border-radius: 8px;
|
|
||||||
overflow: hidden; }
|
|
||||||
.dropzone .dz-preview .dz-progress .dz-upload {
|
|
||||||
background: #333;
|
|
||||||
background: linear-gradient(to bottom, #666, #444);
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
width: 0;
|
|
||||||
-webkit-transition: width 300ms ease-in-out;
|
|
||||||
-moz-transition: width 300ms ease-in-out;
|
|
||||||
-ms-transition: width 300ms ease-in-out;
|
|
||||||
-o-transition: width 300ms ease-in-out;
|
|
||||||
transition: width 300ms ease-in-out; }
|
|
||||||
.dropzone .dz-preview.dz-error .dz-error-message {
|
|
||||||
display: block; }
|
|
||||||
.dropzone .dz-preview.dz-error:hover .dz-error-message {
|
|
||||||
opacity: 1;
|
|
||||||
pointer-events: auto; }
|
|
||||||
.dropzone .dz-preview .dz-error-message {
|
|
||||||
pointer-events: none;
|
|
||||||
z-index: 1000;
|
|
||||||
position: absolute;
|
|
||||||
display: block;
|
|
||||||
display: none;
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transition: opacity 0.3s ease;
|
|
||||||
-moz-transition: opacity 0.3s ease;
|
|
||||||
-ms-transition: opacity 0.3s ease;
|
|
||||||
-o-transition: opacity 0.3s ease;
|
|
||||||
transition: opacity 0.3s ease;
|
|
||||||
border-radius: 8px;
|
|
||||||
font-size: 13px;
|
|
||||||
top: 130px;
|
|
||||||
left: -10px;
|
|
||||||
width: 140px;
|
|
||||||
background: #be2626;
|
|
||||||
background: linear-gradient(to bottom, #be2626, #a92222);
|
|
||||||
padding: 0.5em 1.2em;
|
|
||||||
color: white; }
|
|
||||||
.dropzone .dz-preview .dz-error-message:after {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: -6px;
|
|
||||||
left: 64px;
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
border-left: 6px solid transparent;
|
|
||||||
border-right: 6px solid transparent;
|
|
||||||
border-bottom: 6px solid #be2626; }
|
|
1752
public/vendor/plugins/dropzone/dropzone.js
vendored
1752
public/vendor/plugins/dropzone/dropzone.js
vendored
File diff suppressed because it is too large
Load diff
|
@ -18,7 +18,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func renderAttachmentSettings(ctx *context.Context) {
|
func renderAttachmentSettings(ctx *context.Context) {
|
||||||
ctx.Data["RequireDropzone"] = true
|
|
||||||
ctx.Data["IsAttachmentEnabled"] = setting.AttachmentEnabled
|
ctx.Data["IsAttachmentEnabled"] = setting.AttachmentEnabled
|
||||||
ctx.Data["AttachmentAllowedTypes"] = setting.AttachmentAllowedTypes
|
ctx.Data["AttachmentAllowedTypes"] = setting.AttachmentAllowedTypes
|
||||||
ctx.Data["AttachmentMaxSize"] = setting.AttachmentMaxSize
|
ctx.Data["AttachmentMaxSize"] = setting.AttachmentMaxSize
|
||||||
|
|
|
@ -474,7 +474,6 @@ func DeleteFilePost(ctx *context.Context, form auth.DeleteRepoFileForm) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func renderUploadSettings(ctx *context.Context) {
|
func renderUploadSettings(ctx *context.Context) {
|
||||||
ctx.Data["RequireDropzone"] = true
|
|
||||||
ctx.Data["RequireTribute"] = true
|
ctx.Data["RequireTribute"] = true
|
||||||
ctx.Data["RequireSimpleMDE"] = true
|
ctx.Data["RequireSimpleMDE"] = true
|
||||||
ctx.Data["UploadAllowedTypes"] = strings.Join(setting.Repository.Upload.AllowedTypes, ",")
|
ctx.Data["UploadAllowedTypes"] = strings.Join(setting.Repository.Upload.AllowedTypes, ",")
|
||||||
|
|
|
@ -697,7 +697,6 @@ func ViewIssue(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Data["RequireHighlightJS"] = true
|
ctx.Data["RequireHighlightJS"] = true
|
||||||
ctx.Data["RequireDropzone"] = true
|
|
||||||
ctx.Data["RequireTribute"] = true
|
ctx.Data["RequireTribute"] = true
|
||||||
ctx.Data["RequireSimpleMDE"] = true
|
ctx.Data["RequireSimpleMDE"] = true
|
||||||
renderAttachmentSettings(ctx)
|
renderAttachmentSettings(ctx)
|
||||||
|
|
|
@ -29,9 +29,6 @@
|
||||||
{{if .RequireDatetimepicker}}
|
{{if .RequireDatetimepicker}}
|
||||||
<script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js"></script>
|
<script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js"></script>
|
||||||
{{end}}
|
{{end}}
|
||||||
{{if .RequireDropzone}}
|
|
||||||
<script src="{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js"></script>
|
|
||||||
{{end}}
|
|
||||||
{{if .RequireU2F}}
|
{{if .RequireU2F}}
|
||||||
<script src="{{StaticUrlPrefix}}/vendor/plugins/u2f/index.js"></script>
|
<script src="{{StaticUrlPrefix}}/vendor/plugins/u2f/index.js"></script>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
|
@ -86,8 +86,8 @@
|
||||||
window.config = {
|
window.config = {
|
||||||
AppSubUrl: '{{AppSubUrl}}',
|
AppSubUrl: '{{AppSubUrl}}',
|
||||||
StaticUrlPrefix: '{{StaticUrlPrefix}}',
|
StaticUrlPrefix: '{{StaticUrlPrefix}}',
|
||||||
|
csrf: '{{.CsrfToken}}',
|
||||||
Datetimepicker: {{if .RequireDatetimepicker}}true{{else}}false{{end}},
|
Datetimepicker: {{if .RequireDatetimepicker}}true{{else}}false{{end}},
|
||||||
Dropzone: {{if .RequireDropzone}}true{{else}}false{{end}},
|
|
||||||
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
|
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
|
||||||
Minicolors: {{if .RequireMinicolors}}true{{else}}false{{end}},
|
Minicolors: {{if .RequireMinicolors}}true{{else}}false{{end}},
|
||||||
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
|
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
|
||||||
|
@ -124,9 +124,6 @@
|
||||||
{{end}}
|
{{end}}
|
||||||
{{if .RequireDatetimepicker}}
|
{{if .RequireDatetimepicker}}
|
||||||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.css">
|
<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.css">
|
||||||
{{end}}
|
|
||||||
{{if .RequireDropzone}}
|
|
||||||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.css">
|
|
||||||
{{end}}
|
{{end}}
|
||||||
<style class="list-search-style"></style>
|
<style class="list-search-style"></style>
|
||||||
{{if .PageIsUserProfile}}
|
{{if .PageIsUserProfile}}
|
||||||
|
|
|
@ -9,6 +9,7 @@ var urlsToCache = [
|
||||||
'{{StaticUrlPrefix}}/js/jquery.js?v={{MD5 AppVer}}',
|
'{{StaticUrlPrefix}}/js/jquery.js?v={{MD5 AppVer}}',
|
||||||
'{{StaticUrlPrefix}}/js/swagger.js?v={{MD5 AppVer}}',
|
'{{StaticUrlPrefix}}/js/swagger.js?v={{MD5 AppVer}}',
|
||||||
'{{StaticUrlPrefix}}/js/userheatmap.js',
|
'{{StaticUrlPrefix}}/js/userheatmap.js',
|
||||||
|
'{{StaticUrlPrefix}}/js/dropzone.js',
|
||||||
'{{StaticUrlPrefix}}/vendor/plugins/codemirror/addon/mode/loadmode.js',
|
'{{StaticUrlPrefix}}/vendor/plugins/codemirror/addon/mode/loadmode.js',
|
||||||
'{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/meta.js',
|
'{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/meta.js',
|
||||||
'{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js',
|
'{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js',
|
||||||
|
@ -21,6 +22,7 @@ var urlsToCache = [
|
||||||
'{{StaticUrlPrefix}}/css/index.css?v={{MD5 AppVer}}',
|
'{{StaticUrlPrefix}}/css/index.css?v={{MD5 AppVer}}',
|
||||||
'{{StaticUrlPrefix}}/css/swagger.css?v={{MD5 AppVer}}',
|
'{{StaticUrlPrefix}}/css/swagger.css?v={{MD5 AppVer}}',
|
||||||
'{{StaticUrlPrefix}}/css/userheatmap.css',
|
'{{StaticUrlPrefix}}/css/userheatmap.css',
|
||||||
|
'{{StaticUrlPrefix}}/css/dropzone.css',
|
||||||
'{{StaticUrlPrefix}}/fomantic/semantic.min.css?v={{MD5 AppVer}}',
|
'{{StaticUrlPrefix}}/fomantic/semantic.min.css?v={{MD5 AppVer}}',
|
||||||
'{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css',
|
'{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css',
|
||||||
'{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.css',
|
'{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.css',
|
||||||
|
|
9
web_src/js/features/dropzone.js
Normal file
9
web_src/js/features/dropzone.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
export default async function createDropzone(el, opts) {
|
||||||
|
const [{ default: Dropzone }] = await Promise.all([
|
||||||
|
import(/* webpackChunkName: "dropzone" */'dropzone'),
|
||||||
|
import(/* webpackChunkName: "dropzone" */'dropzone/dist/dropzone.css'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
Dropzone.autoDiscover = false;
|
||||||
|
return new Dropzone(el, opts);
|
||||||
|
}
|
|
@ -15,27 +15,22 @@ import initHighlight from './features/highlight.js';
|
||||||
import initGitGraph from './features/gitGraph.js';
|
import initGitGraph from './features/gitGraph.js';
|
||||||
import initClipboard from './features/clipboard.js';
|
import initClipboard from './features/clipboard.js';
|
||||||
import initUserHeatmap from './features/userHeatmap.js';
|
import initUserHeatmap from './features/userHeatmap.js';
|
||||||
|
import createDropzone from './features/dropzone.js';
|
||||||
|
|
||||||
import ActivityTopAuthors from './components/ActivityTopAuthors.vue';
|
import ActivityTopAuthors from './components/ActivityTopAuthors.vue';
|
||||||
|
|
||||||
const { AppSubUrl, StaticUrlPrefix } = window.config;
|
const { AppSubUrl, StaticUrlPrefix, csrf } = window.config;
|
||||||
|
|
||||||
function htmlEncode(text) {
|
function htmlEncode(text) {
|
||||||
return jQuery('<div />').text(text).html();
|
return jQuery('<div />').text(text).html();
|
||||||
}
|
}
|
||||||
|
|
||||||
let csrf;
|
|
||||||
let previewFileModes;
|
let previewFileModes;
|
||||||
let simpleMDEditor;
|
let simpleMDEditor;
|
||||||
const commentMDEditors = {};
|
const commentMDEditors = {};
|
||||||
let codeMirrorEditor;
|
let codeMirrorEditor;
|
||||||
let hljs;
|
let hljs;
|
||||||
|
|
||||||
// Disable Dropzone auto-discover because it's manually initialized
|
|
||||||
if (typeof (Dropzone) !== 'undefined') {
|
|
||||||
Dropzone.autoDiscover = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Silence fomantic's error logging when tabs are used without a target content element
|
// Silence fomantic's error logging when tabs are used without a target content element
|
||||||
$.fn.tab.settings.silent = true;
|
$.fn.tab.settings.silent = true;
|
||||||
|
|
||||||
|
@ -867,7 +862,7 @@ function initRepository() {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Edit issue or comment content
|
// Edit issue or comment content
|
||||||
$('.edit-content').click(function (event) {
|
$('.edit-content').click(async function (event) {
|
||||||
$(this).closest('.dropdown').find('.menu').toggle('visible');
|
$(this).closest('.dropdown').find('.menu').toggle('visible');
|
||||||
const $segment = $(this).closest('.header').next();
|
const $segment = $(this).closest('.header').next();
|
||||||
const $editContentZone = $segment.find('.edit-content-zone');
|
const $editContentZone = $segment.find('.edit-content-zone');
|
||||||
|
@ -883,12 +878,14 @@ function initRepository() {
|
||||||
issuesTribute.attach($textarea.get());
|
issuesTribute.attach($textarea.get());
|
||||||
emojiTribute.attach($textarea.get());
|
emojiTribute.attach($textarea.get());
|
||||||
|
|
||||||
|
let dz;
|
||||||
const $dropzone = $editContentZone.find('.dropzone');
|
const $dropzone = $editContentZone.find('.dropzone');
|
||||||
$dropzone.data('saved', false);
|
|
||||||
const $files = $editContentZone.find('.comment-files');
|
const $files = $editContentZone.find('.comment-files');
|
||||||
if ($dropzone.length > 0) {
|
if ($dropzone.length > 0) {
|
||||||
|
$dropzone.data('saved', false);
|
||||||
|
|
||||||
const filenameDict = {};
|
const filenameDict = {};
|
||||||
$dropzone.dropzone({
|
dz = await createDropzone($dropzone[0], {
|
||||||
url: $dropzone.data('upload-url'),
|
url: $dropzone.data('upload-url'),
|
||||||
headers: { 'X-Csrf-Token': csrf },
|
headers: { 'X-Csrf-Token': csrf },
|
||||||
maxFiles: $dropzone.data('max-file'),
|
maxFiles: $dropzone.data('max-file'),
|
||||||
|
@ -927,15 +924,14 @@ function initRepository() {
|
||||||
});
|
});
|
||||||
this.on('reload', () => {
|
this.on('reload', () => {
|
||||||
$.getJSON($editContentZone.data('attachment-url'), (data) => {
|
$.getJSON($editContentZone.data('attachment-url'), (data) => {
|
||||||
const drop = $dropzone.get(0).dropzone;
|
dz.removeAllFiles(true);
|
||||||
drop.removeAllFiles(true);
|
|
||||||
$files.empty();
|
$files.empty();
|
||||||
$.each(data, function () {
|
$.each(data, function () {
|
||||||
const imgSrc = `${$dropzone.data('upload-url')}/${this.uuid}`;
|
const imgSrc = `${$dropzone.data('upload-url')}/${this.uuid}`;
|
||||||
drop.emit('addedfile', this);
|
dz.emit('addedfile', this);
|
||||||
drop.emit('thumbnail', this, imgSrc);
|
dz.emit('thumbnail', this, imgSrc);
|
||||||
drop.emit('complete', this);
|
dz.emit('complete', this);
|
||||||
drop.files.push(this);
|
dz.files.push(this);
|
||||||
filenameDict[this.name] = {
|
filenameDict[this.name] = {
|
||||||
submitted: true,
|
submitted: true,
|
||||||
uuid: this.uuid
|
uuid: this.uuid
|
||||||
|
@ -948,7 +944,7 @@ function initRepository() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$dropzone.get(0).dropzone.emit('reload');
|
dz.emit('reload');
|
||||||
}
|
}
|
||||||
// Give new write/preview data-tab name to distinguish from others
|
// Give new write/preview data-tab name to distinguish from others
|
||||||
const $editContentForm = $editContentZone.find('.ui.comment.form');
|
const $editContentForm = $editContentZone.find('.ui.comment.form');
|
||||||
|
@ -967,7 +963,7 @@ function initRepository() {
|
||||||
$editContentZone.find('.cancel.button').click(() => {
|
$editContentZone.find('.cancel.button').click(() => {
|
||||||
$renderContent.show();
|
$renderContent.show();
|
||||||
$editContentZone.hide();
|
$editContentZone.hide();
|
||||||
$dropzone.get(0).dropzone.emit('reload');
|
dz.emit('reload');
|
||||||
});
|
});
|
||||||
$editContentZone.find('.save.button').click(() => {
|
$editContentZone.find('.save.button').click(() => {
|
||||||
$renderContent.show();
|
$renderContent.show();
|
||||||
|
@ -1003,8 +999,8 @@ function initRepository() {
|
||||||
} else {
|
} else {
|
||||||
$content.find('.ui.small.images').html(data.attachments);
|
$content.find('.ui.small.images').html(data.attachments);
|
||||||
}
|
}
|
||||||
$dropzone.get(0).dropzone.emit('submit');
|
dz.emit('submit');
|
||||||
$dropzone.get(0).dropzone.emit('reload');
|
dz.emit('reload');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -2366,8 +2362,6 @@ function initTemplateSearch() {
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(async () => {
|
$(document).ready(async () => {
|
||||||
csrf = $('meta[name=_csrf]').attr('content');
|
|
||||||
|
|
||||||
// Show exact time
|
// Show exact time
|
||||||
$('.time-since').each(function () {
|
$('.time-since').each(function () {
|
||||||
$(this)
|
$(this)
|
||||||
|
@ -2421,7 +2415,7 @@ $(document).ready(async () => {
|
||||||
if ($dropzone.length > 0) {
|
if ($dropzone.length > 0) {
|
||||||
const filenameDict = {};
|
const filenameDict = {};
|
||||||
|
|
||||||
new Dropzone('#dropzone', {
|
await createDropzone('#dropzone', {
|
||||||
url: $dropzone.data('upload-url'),
|
url: $dropzone.data('upload-url'),
|
||||||
headers: { 'X-Csrf-Token': csrf },
|
headers: { 'X-Csrf-Token': csrf },
|
||||||
maxFiles: $dropzone.data('max-file'),
|
maxFiles: $dropzone.data('max-file'),
|
||||||
|
|
Loading…
Reference in a new issue