scratch – Diff between revs 65 and 70

Subversion Repositories:
Rev:
Only display areas with differencesIgnore whitespace
Rev 65 Rev 70
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html lang="en"> 2 <html lang="en">
3 <head> 3 <head>
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <meta name="viewport" content="width=device-width, initial-scale=1">
7 <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 7 <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
8 <meta name="description" content="quick asset upload"> 8 <meta name="description" content="quick asset upload">
9 <meta name="author" content="Wizardry and Steamworks"> 9 <meta name="author" content="Wizardry and Steamworks">
10 <link rel="icon" href="favicon.ico"> 10 <link rel="icon" href="favicon.ico">
11   11  
12 <title>scratch</title> 12 <title>scratch</title>
13   13  
14 <!-- Bootstrap core CSS --> 14 <!-- Bootstrap core CSS -->
15 <link href="bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"> 15 <link href="bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
16 <!-- Font Awesome --> 16 <!-- Font Awesome -->
17 <link href="bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet"> 17 <link href="bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet">
18 18
19 <!-- DropZone --> 19 <!-- DropZone -->
20 <link href="bower_components/dropzone/dist/min/dropzone.min.css" rel="stylesheet"> 20 <link href="bower_components/dropzone/dist/min/dropzone.min.css" rel="stylesheet">
21 <!-- Local style --> 21 <!-- Local style -->
22 <link href="css/files/style.css" rel="stylesheet"> 22 <link href="css/files/style.css" rel="stylesheet">
-   23 <!-- Site-wide style CCS -->
-   24 <link href="css/style.css" rel="stylesheet">
23 </head> 25 </head>
24   26  
25 <body> 27 <body>
26   28  
27 <div class="container"> 29 <div class="container">
28   30  
29 <!-- Main component for a primary marketing message or call to action --> 31 <!-- Main component for a primary marketing message or call to action -->
-   32 <div class="paralax-background"></div>
30 <div class="jumbotron"> 33 <div class="jumbotron">
31 <h1>Scratch</h1> 34 <h1>Scratch</h1>
32 <p>Asset sharing platform.</p> 35 <p class="lead">Asset sharing platform</p>
33 </div> 36 </div>
34 37
35 <ul class="nav nav-tabs"> 38 <ul class="nav nav-tabs">
36 <li><a href="index.html">Home</a></li> 39 <li><a href="index.html">Home</a></li>
37 <li class="active"><a href="#">File</a></li> 40 <li class="active"><a href="#">File</a></li>
38 <li><a href="text.html">Text</a></li> 41 <li><a href="text.html">Text</a></li>
39 </ul> 42 </ul>
40 43
41 <div class="panel panel-default"> 44 <div class="panel panel-default">
42 <div class="panel-heading"> 45 <div class="panel-heading">
43 <div id="actions" class="row"> 46 <div id="actions" class="row">
44 <div class="col-lg-5"> 47 <div class="col-lg-5">
45 <div class="btn-group btn-group-justified" role="group"> 48 <div class="btn-group btn-group-justified" role="group">
46 <!-- The fileinput-button span is used to style the file input field as button --> 49 <!-- The fileinput-button span is used to style the file input field as button -->
47 <div class="btn-group" role="group"> 50 <div class="btn-group" role="group">
48 <button id="uploadbutton" type="button" class="btn btn-default"> 51 <button id="uploadbutton" type="button" class="btn btn-default">
49 <i class="glyphicon glyphicon-plus"></i> 52 <i class="glyphicon glyphicon-plus"></i>
50 <span>Add...</span> 53 <span>Add...</span>
51 </button> 54 </button>
52 </div> 55 </div>
53 <div class="btn-group" role="group"> 56 <div class="btn-group" role="group">
54 <button type="submit" class="btn btn-default start"> 57 <button type="submit" class="btn btn-default start">
55 <i class="glyphicon glyphicon-upload"></i> 58 <i class="glyphicon glyphicon-upload"></i>
56 <span>Upload All</span> 59 <span>Upload All</span>
57 </button> 60 </button>
58 </div> 61 </div>
59 <div class="btn-group" role="group"> 62 <div class="btn-group" role="group">
60 <button type="reset" class="btn btn-default cancel"> 63 <button type="reset" class="btn btn-default cancel">
61 <i class="glyphicon glyphicon-ban-circle"></i> 64 <i class="glyphicon glyphicon-ban-circle"></i>
62 <span>Cancel All</span> 65 <span>Cancel All</span>
63 </button> 66 </button>
64 </div> 67 </div>
65 </div> 68 </div>
66 </div> 69 </div>
67 </div> 70 </div>
68 </div> 71 </div>
69 <div class="panel-body" id="uploadpanel"> 72 <div class="panel-body" id="uploadpanel">
70 <div class="table table-striped files" id="previews"> 73 <div class="table table-striped files" id="previews">
71 <div id="template" class="file-row"> 74 <div id="template" class="file-row">
72 <!-- This is used as the file preview template --> 75 <!-- This is used as the file preview template -->
73 <div> 76 <div>
74 <span class="preview"><img src="img/fileholder.svg" width="58" alt="Upload file thumbnail" data-dz-thumbnail></span> 77 <span class="preview"><img src="img/fileholder.svg" width="58" alt="Upload file thumbnail" data-dz-thumbnail></span>
75 </div> 78 </div>
76 <div> 79 <div>
77 <p id="name" class="name" data-dz-name></p> 80 <p id="name" class="name" data-dz-name></p>
78 <div class="input-group"> 81 <div class="input-group">
79 <input id="URL" type="text" class="form-control" readonly> 82 <input id="URL" type="text" class="form-control" readonly>
80 <span class="input-group-btn"> 83 <span class="input-group-btn">
81 <button id="btn-clipboard" class="btn btn-default" type="button"><i class="glyphicon glyphicon-paperclip"></i></button> 84 <button id="btn-clipboard" class="btn btn-default" type="button"><i class="glyphicon glyphicon-paperclip"></i></button>
82 </span> 85 </span>
83 </div> 86 </div>
84 <strong class="error text-danger" data-dz-errormessage></strong> 87 <strong class="error text-danger" data-dz-errormessage></strong>
85 </div> 88 </div>
86 <div> 89 <div>
87 <p class="size" data-dz-size></p> 90 <p class="size" data-dz-size></p>
88 <div id="progress" class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"> 91 <div id="progress" class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">
89 <div class="progress-bar progress-bar-success" style="width:0%;" data-dz-uploadprogress></div> 92 <div class="progress-bar progress-bar-success" style="width:0%;" data-dz-uploadprogress></div>
90 </div> 93 </div>
91 </div> 94 </div>
92 <div> 95 <div>
93 <button id="start" class="btn btn-default start"> 96 <button id="start" class="btn btn-default start">
94 <i class="glyphicon glyphicon-upload"></i> 97 <i class="glyphicon glyphicon-upload"></i>
95 <span>Upload</span> 98 <span>Upload</span>
96 </button> 99 </button>
97 <button id="cancel" data-dz-remove class="btn btn-default cancel"> 100 <button id="cancel" data-dz-remove class="btn btn-default cancel">
98 <i class="glyphicon glyphicon-ban-circle"></i> 101 <i class="glyphicon glyphicon-ban-circle"></i>
99 <span>Cancel</span> 102 <span>Cancel</span>
100 </button> 103 </button>
101 <button id="remove" data-dz-remove class="btn btn-danger remove"> 104 <button id="remove" data-dz-remove class="btn btn-danger remove">
102 <i class="glyphicon glyphicon-remove"></i> 105 <i class="glyphicon glyphicon-remove"></i>
103 <span>Remove</span> 106 <span>Remove</span>
104 </button> 107 </button>
105 </div> 108 </div>
106 </div> 109 </div>
107   110  
108 </div> 111 </div>
109 </div> 112 </div>
110 <!-- The global file processing state --> 113 <!-- The global file processing state -->
111 <div class="fileupload-process"> 114 <div class="fileupload-process">
112 <div id="total-progress" class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"> 115 <div id="total-progress" class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">
113 <div class="progress-bar progress-bar-success" style="width:0%;" data-dz-uploadprogress></div> 116 <div class="progress-bar progress-bar-success" style="width:0%;" data-dz-uploadprogress></div>
114 </div> 117 </div>
115 </div> 118 </div>
116 </div> 119 </div>
117   120  
118 </div> <!-- /container --> 121 </div> <!-- /container -->
119 122
120 <div id="footer"> 123 <div id="footer">
121 <div class="container"> 124 <div class="container">
122 <p class="text-muted credit">Copyright <i class="glyphicon glyphicon-copyright-mark"></i> 2017 <a href="http://grimore.org">Wizardry and Steamworks</a>.</p> 125 <p class="text-muted credit">Copyright <i class="glyphicon glyphicon-copyright-mark"></i> 2017 <a href="http://grimore.org">Wizardry and Steamworks</a>.</p>
123 </div> 126 </div>
124 </div> 127 </div>
125   128  
126 <!-- jQuery --> 129 <!-- jQuery -->
127 <script src="bower_components/jquery/dist/jquery.min.js"></script> 130 <script src="bower_components/jquery/dist/jquery.min.js"></script>
128 <!-- BootStrap --> 131 <!-- BootStrap -->
129 <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script> 132 <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
130 133
131 <!-- DropZone --> 134 <!-- DropZone -->
132 <script src="bower_components/dropzone/dist/min/dropzone.min.js"></script> 135 <script src="bower_components/dropzone/dist/min/dropzone.min.js"></script>
133 <!-- Clipboard --> 136 <!-- Clipboard -->
134 <script src="bower_components/clipboard/dist/clipboard.min.js"></script> 137 <script src="bower_components/clipboard/dist/clipboard.min.js"></script>
135 <script> 138 <script>
136 $(document).ready(() => { 139 $(document).ready(() => {
137 // Get the template HTML and remove it from the doument 140 // Get the template HTML and remove it from the doument
138 var previewNode = document 141 var previewNode = document
139 .querySelector("#template"); 142 .querySelector("#template");
140 previewNode.id = ""; 143 previewNode.id = "";
141 var previewTemplate = previewNode 144 var previewTemplate = previewNode
142 .parentNode 145 .parentNode
143 .innerHTML; 146 .innerHTML;
144 previewNode 147 previewNode
145 .parentNode 148 .parentNode
146 .removeChild(previewNode); 149 .removeChild(previewNode);
147   150  
148 var myDropzone = new Dropzone('.panel-body', { // Make the whole body a dropzone 151 var myDropzone = new Dropzone('.panel-body', { // Make the whole body a dropzone
149 url: "file.php", // Set the url 152 url: "file.php", // Set the url
150 paramName: "file", 153 paramName: "file",
151 thumbnailWidth: 80, 154 thumbnailWidth: 80,
152 thumbnailHeight: 80, 155 thumbnailHeight: 80,
153 //parallelUploads: 20, 156 //parallelUploads: 20,
154 previewTemplate: previewTemplate, 157 previewTemplate: previewTemplate,
155 autoQueue: false, // Make sure the files aren't queued until manually added 158 autoQueue: false, // Make sure the files aren't queued until manually added
156 previewsContainer: "#previews", // Container to display the previews 159 previewsContainer: "#previews", // Container to display the previews
157 clickable: [ 160 clickable: [
158 "#uploadbutton", 161 "#uploadbutton",
159 "#uploadpanel" 162 "#uploadpanel"
160 ], 163 ],
161 //clickable: "#uploadbutton" // Element that should be used as click trigger to select files. 164 //clickable: "#uploadbutton" // Element that should be used as click trigger to select files.
162 }).on("addedfile", (file) => { 165 }).on("addedfile", (file) => {
163 // Hookup the start button 166 // Hookup the start button
164 file.previewElement.querySelector(".start").onclick = () => { 167 file.previewElement.querySelector(".start").onclick = () => {
165 myDropzone.enqueueFile(file); 168 myDropzone.enqueueFile(file);
166 }; 169 };
167 }).on("totaluploadprogress", (progress) => { 170 }).on("totaluploadprogress", (progress) => {
168 document 171 document
169 .querySelector("#total-progress .progress-bar") 172 .querySelector("#total-progress .progress-bar")
170 .style 173 .style
171 .width = progress + "%"; 174 .width = progress + "%";
172 }).on("sending", (file) => { 175 }).on("sending", (file) => {
173 // Show the total progress bar when upload starts 176 // Show the total progress bar when upload starts
174 document.querySelector("#total-progress") 177 document.querySelector("#total-progress")
175 .style 178 .style
176 .opacity = 1; 179 .opacity = 1;
177 180
178 // And disable the start button. 181 // And disable the start button.
179 file 182 file
180 .previewElement 183 .previewElement
181 .querySelector(".start") 184 .querySelector(".start")
182 .setAttribute("disabled", "disabled"); 185 .setAttribute("disabled", "disabled");
183 }).on("queuecomplete", (progress) => { 186 }).on("queuecomplete", (progress) => {
184 document.querySelector("#total-progress") 187 document.querySelector("#total-progress")
185 .style 188 .style
186 .opacity = "0"; 189 .opacity = "0";
187 }).on("success", (file, data) => { 190 }).on("success", (file, data) => {
188 191
189 var boxURLID = '_' + Math 192 var boxURLID = '_' + Math
190 .random() 193 .random()
191 .toString(36) 194 .toString(36)
192 .substr(2, 9); 195 .substr(2, 9);
193 file 196 file
194 .previewElement 197 .previewElement
195 .querySelector("#URL") 198 .querySelector("#URL")
196 .value = data; 199 .value = data;
197 200
198 file 201 file
199 .previewElement 202 .previewElement
200 .querySelector("#URL") 203 .querySelector("#URL")
201 .setAttribute('id', boxURLID) 204 .setAttribute('id', boxURLID)
202 205
203 // Clipboard button. 206 // Clipboard button.
204 clipButtonID = '_' + Math 207 clipButtonID = '_' + Math
205 .random() 208 .random()
206 .toString(36) 209 .toString(36)
207 .substr(2, 9); 210 .substr(2, 9);
208 file 211 file
209 .previewElement 212 .previewElement
210 .querySelector("#btn-clipboard") 213 .querySelector("#btn-clipboard")
211 .setAttribute('data-clipboard-target', '#' + boxURLID) 214 .setAttribute('data-clipboard-target', '#' + boxURLID)
212 215
213 file 216 file
214 .previewElement 217 .previewElement
215 .querySelector("#btn-clipboard") 218 .querySelector("#btn-clipboard")
216 .setAttribute('id', clipButtonID); 219 .setAttribute('id', clipButtonID);
217   220  
218 file 221 file
219 .previewElement 222 .previewElement
220 .querySelector(".start") 223 .querySelector(".start")
221 .setAttribute("disabled", "disabled"); 224 .setAttribute("disabled", "disabled");
222 file 225 file
223 .previewElement 226 .previewElement
224 .querySelector(".cancel") 227 .querySelector(".cancel")
225 .setAttribute("disabled", "disabled"); 228 .setAttribute("disabled", "disabled");
226 229
227 new Clipboard('#' + clipButtonID); 230 new Clipboard('#' + clipButtonID);
228 }); 231 });
229 232
230 document.querySelector("#actions .start").onclick = () => { 233 document.querySelector("#actions .start").onclick = () => {
231 myDropzone.enqueueFiles( 234 myDropzone.enqueueFiles(
232 myDropzone 235 myDropzone
233 .getFilesWithStatus(Dropzone.ADDED)); 236 .getFilesWithStatus(Dropzone.ADDED));
234 }; 237 };
235 238
236 document.querySelector("#actions .cancel").onclick = () => { 239 document.querySelector("#actions .cancel").onclick = () => {
237 myDropzone.removeAllFiles(true); 240 myDropzone.removeAllFiles(true);
238 }; 241 };
239 }); 242 });
-   243 </script>
-   244 <script>
-   245 var jumboHeight = $('.jumbotron').outerHeight();
-   246 function parallax(){
-   247 var scrolled = $(window).scrollTop();
-   248 $('.paralax-background').css('height', (jumboHeight-scrolled) + 'px');
-   249 }
-   250  
-   251 $(window).scroll(function(e){
-   252 parallax();
-   253 });
240 </script> 254 </script>
241 </body> 255 </body>
242 </html> 256 </html>
243   257