mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 00:02:20 -05:00 
			
		
		
		
	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
					
				
							
								
								
									
										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": {
 | 
			
		||||
      "version": "0.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,7 @@
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@primer/octicons": "9.4.0",
 | 
			
		||||
    "clipboard": "2.0.4",
 | 
			
		||||
    "dropzone": "5.7.0",
 | 
			
		||||
    "fomantic-ui": "2.8.4",
 | 
			
		||||
    "highlight.js": "9.18.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>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
          <td><a href="./plugins/dropzone/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/archive/v4.2.0.tar.gz">dropzone.js-4.2.0.tar.gz</a></td>
 | 
			
		||||
          <td><a href="./js/dropzone.js">dropzone.js</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/master.tar.gz">dropzone-master.tar.gz</a></td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
          <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) {
 | 
			
		||||
	ctx.Data["RequireDropzone"] = true
 | 
			
		||||
	ctx.Data["IsAttachmentEnabled"] = setting.AttachmentEnabled
 | 
			
		||||
	ctx.Data["AttachmentAllowedTypes"] = setting.AttachmentAllowedTypes
 | 
			
		||||
	ctx.Data["AttachmentMaxSize"] = setting.AttachmentMaxSize
 | 
			
		||||
 | 
			
		||||
@ -474,7 +474,6 @@ func DeleteFilePost(ctx *context.Context, form auth.DeleteRepoFileForm) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func renderUploadSettings(ctx *context.Context) {
 | 
			
		||||
	ctx.Data["RequireDropzone"] = true
 | 
			
		||||
	ctx.Data["RequireTribute"] = true
 | 
			
		||||
	ctx.Data["RequireSimpleMDE"] = true
 | 
			
		||||
	ctx.Data["UploadAllowedTypes"] = strings.Join(setting.Repository.Upload.AllowedTypes, ",")
 | 
			
		||||
 | 
			
		||||
@ -697,7 +697,6 @@ func ViewIssue(ctx *context.Context) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.Data["RequireHighlightJS"] = true
 | 
			
		||||
	ctx.Data["RequireDropzone"] = true
 | 
			
		||||
	ctx.Data["RequireTribute"] = true
 | 
			
		||||
	ctx.Data["RequireSimpleMDE"] = true
 | 
			
		||||
	renderAttachmentSettings(ctx)
 | 
			
		||||
 | 
			
		||||
@ -29,9 +29,6 @@
 | 
			
		||||
{{if .RequireDatetimepicker}}
 | 
			
		||||
	<script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js"></script>
 | 
			
		||||
{{end}}
 | 
			
		||||
{{if .RequireDropzone}}
 | 
			
		||||
	<script src="{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js"></script>
 | 
			
		||||
{{end}}
 | 
			
		||||
{{if .RequireU2F}}
 | 
			
		||||
	<script src="{{StaticUrlPrefix}}/vendor/plugins/u2f/index.js"></script>
 | 
			
		||||
{{end}}
 | 
			
		||||
 | 
			
		||||
@ -86,8 +86,8 @@
 | 
			
		||||
		window.config = {
 | 
			
		||||
			AppSubUrl: '{{AppSubUrl}}',
 | 
			
		||||
			StaticUrlPrefix: '{{StaticUrlPrefix}}',
 | 
			
		||||
			csrf: '{{.CsrfToken}}',
 | 
			
		||||
			Datetimepicker: {{if .RequireDatetimepicker}}true{{else}}false{{end}},
 | 
			
		||||
			Dropzone: {{if .RequireDropzone}}true{{else}}false{{end}},
 | 
			
		||||
			HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
 | 
			
		||||
			Minicolors: {{if .RequireMinicolors}}true{{else}}false{{end}},
 | 
			
		||||
			SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
 | 
			
		||||
@ -124,9 +124,6 @@
 | 
			
		||||
{{end}}
 | 
			
		||||
{{if .RequireDatetimepicker}}
 | 
			
		||||
	<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}}
 | 
			
		||||
	<style class="list-search-style"></style>
 | 
			
		||||
{{if .PageIsUserProfile}}
 | 
			
		||||
 | 
			
		||||
@ -9,6 +9,7 @@ var urlsToCache = [
 | 
			
		||||
  '{{StaticUrlPrefix}}/js/jquery.js?v={{MD5 AppVer}}',
 | 
			
		||||
  '{{StaticUrlPrefix}}/js/swagger.js?v={{MD5 AppVer}}',
 | 
			
		||||
  '{{StaticUrlPrefix}}/js/userheatmap.js',
 | 
			
		||||
  '{{StaticUrlPrefix}}/js/dropzone.js',
 | 
			
		||||
  '{{StaticUrlPrefix}}/vendor/plugins/codemirror/addon/mode/loadmode.js',
 | 
			
		||||
  '{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/meta.js',
 | 
			
		||||
  '{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js',
 | 
			
		||||
@ -21,6 +22,7 @@ var urlsToCache = [
 | 
			
		||||
  '{{StaticUrlPrefix}}/css/index.css?v={{MD5 AppVer}}',
 | 
			
		||||
  '{{StaticUrlPrefix}}/css/swagger.css?v={{MD5 AppVer}}',
 | 
			
		||||
  '{{StaticUrlPrefix}}/css/userheatmap.css',
 | 
			
		||||
  '{{StaticUrlPrefix}}/css/dropzone.css',
 | 
			
		||||
  '{{StaticUrlPrefix}}/fomantic/semantic.min.css?v={{MD5 AppVer}}',
 | 
			
		||||
  '{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.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 initClipboard from './features/clipboard.js';
 | 
			
		||||
import initUserHeatmap from './features/userHeatmap.js';
 | 
			
		||||
import createDropzone from './features/dropzone.js';
 | 
			
		||||
 | 
			
		||||
import ActivityTopAuthors from './components/ActivityTopAuthors.vue';
 | 
			
		||||
 | 
			
		||||
const { AppSubUrl, StaticUrlPrefix } = window.config;
 | 
			
		||||
const { AppSubUrl, StaticUrlPrefix, csrf } = window.config;
 | 
			
		||||
 | 
			
		||||
function htmlEncode(text) {
 | 
			
		||||
  return jQuery('<div />').text(text).html();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let csrf;
 | 
			
		||||
let previewFileModes;
 | 
			
		||||
let simpleMDEditor;
 | 
			
		||||
const commentMDEditors = {};
 | 
			
		||||
let codeMirrorEditor;
 | 
			
		||||
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
 | 
			
		||||
$.fn.tab.settings.silent = true;
 | 
			
		||||
 | 
			
		||||
@ -867,7 +862,7 @@ function initRepository() {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // Edit issue or comment content
 | 
			
		||||
    $('.edit-content').click(function (event) {
 | 
			
		||||
    $('.edit-content').click(async function (event) {
 | 
			
		||||
      $(this).closest('.dropdown').find('.menu').toggle('visible');
 | 
			
		||||
      const $segment = $(this).closest('.header').next();
 | 
			
		||||
      const $editContentZone = $segment.find('.edit-content-zone');
 | 
			
		||||
@ -883,12 +878,14 @@ function initRepository() {
 | 
			
		||||
        issuesTribute.attach($textarea.get());
 | 
			
		||||
        emojiTribute.attach($textarea.get());
 | 
			
		||||
 | 
			
		||||
        let dz;
 | 
			
		||||
        const $dropzone = $editContentZone.find('.dropzone');
 | 
			
		||||
        $dropzone.data('saved', false);
 | 
			
		||||
        const $files = $editContentZone.find('.comment-files');
 | 
			
		||||
        if ($dropzone.length > 0) {
 | 
			
		||||
          $dropzone.data('saved', false);
 | 
			
		||||
 | 
			
		||||
          const filenameDict = {};
 | 
			
		||||
          $dropzone.dropzone({
 | 
			
		||||
          dz = await createDropzone($dropzone[0], {
 | 
			
		||||
            url: $dropzone.data('upload-url'),
 | 
			
		||||
            headers: { 'X-Csrf-Token': csrf },
 | 
			
		||||
            maxFiles: $dropzone.data('max-file'),
 | 
			
		||||
@ -927,15 +924,14 @@ function initRepository() {
 | 
			
		||||
              });
 | 
			
		||||
              this.on('reload', () => {
 | 
			
		||||
                $.getJSON($editContentZone.data('attachment-url'), (data) => {
 | 
			
		||||
                  const drop = $dropzone.get(0).dropzone;
 | 
			
		||||
                  drop.removeAllFiles(true);
 | 
			
		||||
                  dz.removeAllFiles(true);
 | 
			
		||||
                  $files.empty();
 | 
			
		||||
                  $.each(data, function () {
 | 
			
		||||
                    const imgSrc = `${$dropzone.data('upload-url')}/${this.uuid}`;
 | 
			
		||||
                    drop.emit('addedfile', this);
 | 
			
		||||
                    drop.emit('thumbnail', this, imgSrc);
 | 
			
		||||
                    drop.emit('complete', this);
 | 
			
		||||
                    drop.files.push(this);
 | 
			
		||||
                    dz.emit('addedfile', this);
 | 
			
		||||
                    dz.emit('thumbnail', this, imgSrc);
 | 
			
		||||
                    dz.emit('complete', this);
 | 
			
		||||
                    dz.files.push(this);
 | 
			
		||||
                    filenameDict[this.name] = {
 | 
			
		||||
                      submitted: true,
 | 
			
		||||
                      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
 | 
			
		||||
        const $editContentForm = $editContentZone.find('.ui.comment.form');
 | 
			
		||||
@ -967,7 +963,7 @@ function initRepository() {
 | 
			
		||||
        $editContentZone.find('.cancel.button').click(() => {
 | 
			
		||||
          $renderContent.show();
 | 
			
		||||
          $editContentZone.hide();
 | 
			
		||||
          $dropzone.get(0).dropzone.emit('reload');
 | 
			
		||||
          dz.emit('reload');
 | 
			
		||||
        });
 | 
			
		||||
        $editContentZone.find('.save.button').click(() => {
 | 
			
		||||
          $renderContent.show();
 | 
			
		||||
@ -1003,8 +999,8 @@ function initRepository() {
 | 
			
		||||
            } else {
 | 
			
		||||
              $content.find('.ui.small.images').html(data.attachments);
 | 
			
		||||
            }
 | 
			
		||||
            $dropzone.get(0).dropzone.emit('submit');
 | 
			
		||||
            $dropzone.get(0).dropzone.emit('reload');
 | 
			
		||||
            dz.emit('submit');
 | 
			
		||||
            dz.emit('reload');
 | 
			
		||||
          });
 | 
			
		||||
        });
 | 
			
		||||
      } else {
 | 
			
		||||
@ -2366,8 +2362,6 @@ function initTemplateSearch() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$(document).ready(async () => {
 | 
			
		||||
  csrf = $('meta[name=_csrf]').attr('content');
 | 
			
		||||
 | 
			
		||||
  // Show exact time
 | 
			
		||||
  $('.time-since').each(function () {
 | 
			
		||||
    $(this)
 | 
			
		||||
@ -2421,7 +2415,7 @@ $(document).ready(async () => {
 | 
			
		||||
  if ($dropzone.length > 0) {
 | 
			
		||||
    const filenameDict = {};
 | 
			
		||||
 | 
			
		||||
    new Dropzone('#dropzone', {
 | 
			
		||||
    await createDropzone('#dropzone', {
 | 
			
		||||
      url: $dropzone.data('upload-url'),
 | 
			
		||||
      headers: { 'X-Csrf-Token': csrf },
 | 
			
		||||
      maxFiles: $dropzone.data('max-file'),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user