|
29 | 29 | '<a href="{shaderUrl}" class="shader-tile">' +
|
30 | 30 | '<img class="shader-image" src="{previewUrl}"/>' +
|
31 | 31 | '<span class="shader-name">{shaderTitle}</span></a>',
|
32 |
| - contentWrapper = null, |
| 32 | + userContent = null, |
33 | 33 | /**
|
34 | 34 | * Stores Helpers instance.
|
35 | 35 | *
|
|
93 | 93 | */
|
94 | 94 | rebuildList() {
|
95 | 95 | this.shadersListContainer = document.getElementById('divShaders');
|
96 |
| - this.shadersTable = this.shadersListContainer.querySelector('table'); |
97 |
| - this.shadersListRows = helpers.collectionToArray(this.shadersListContainer.querySelectorAll('tr')); |
| 96 | + this.shadersTable = this.shadersListContainer.querySelector( |
| 97 | + 'table' |
| 98 | + ); |
| 99 | + this.shadersListRows = helpers.collectionToArray( |
| 100 | + this.shadersListContainer.querySelectorAll('tr') |
| 101 | + ); |
98 | 102 | this.shadersListHeadRow = this.shadersListRows[0];
|
99 | 103 | // Add small preview images to shaders list.
|
100 | 104 | // Images are shown on hover.
|
|
125 | 129 | */
|
126 | 130 | init() {
|
127 | 131 | document.body.classList.add('alternate-profile');
|
| 132 | + |
128 | 133 | this.tilesWrapper = document.createElement('div');
|
129 | 134 | this.tilesWrapper.classList.add('tiles-wrapper');
|
130 |
| - contentWrapper = document.getElementById('contentScroll'); |
131 |
| - document.body.insertBefore(this.tilesWrapper, contentWrapper); |
| 135 | + |
| 136 | + userContent = document.getElementById('userContent'); |
| 137 | + |
| 138 | + document |
| 139 | + .getElementById('content') |
| 140 | + .insertBefore(this.tilesWrapper, userContent); |
| 141 | + |
132 | 142 | this.userShaders = this.getShaders();
|
133 | 143 | // Need to wait for user's shaders to load.
|
134 | 144 | // This is a hot fix.
|
|
148 | 158 | * @returns {ShaderTile[]}
|
149 | 159 | */
|
150 | 160 | getShaders() {
|
151 |
| - return helpers.collectionToArray(document.querySelectorAll('#divShaders tr + tr')).map(function parseRow(tr) { |
152 |
| - var linkElement = tr.querySelector('td + td a'), |
153 |
| - link = linkElement.getAttribute('href'), |
154 |
| - status = tr.lastElementChild.previousElementSibling.textContent; |
155 |
| - return new ShaderTile( |
156 |
| - { |
157 |
| - id: link.replace('/view/', ''), |
158 |
| - link: link, |
159 |
| - title: linkElement.textContent, |
160 |
| - statusOrginal: status, |
161 |
| - status: status.replace(/(\s+|\+)/g, '').toLowerCase() |
162 |
| - }, |
163 |
| - this |
164 |
| - ); |
165 |
| - }, this); |
| 161 | + return helpers |
| 162 | + .collectionToArray( |
| 163 | + document.querySelectorAll('#divShaders tr + tr') |
| 164 | + ) |
| 165 | + .map(function parseRow(tr) { |
| 166 | + var linkElement = tr.querySelector('td + td a'), |
| 167 | + link = linkElement.getAttribute('href'), |
| 168 | + status = |
| 169 | + tr.lastElementChild.previousElementSibling |
| 170 | + .textContent; |
| 171 | + return new ShaderTile( |
| 172 | + { |
| 173 | + id: link.replace('/view/', ''), |
| 174 | + link: link, |
| 175 | + title: linkElement.textContent, |
| 176 | + statusOrginal: status, |
| 177 | + status: status |
| 178 | + .replace(/(\s+|\+)/g, '') |
| 179 | + .toLowerCase() |
| 180 | + }, |
| 181 | + this |
| 182 | + ); |
| 183 | + }, this); |
166 | 184 | }
|
167 | 185 | /**
|
168 | 186 | * Adds header with links to shaders' groups.
|
169 | 187 | */
|
170 | 188 | addSecondHeader() {
|
171 |
| - var SECOND_HEADER_CONTENT = '<a href="#contentScroll">Original part</a>', |
| 189 | + var SECOND_HEADER_CONTENT = |
| 190 | + '<a href="#contentScroll">Original part</a>', |
172 | 191 | secondHeaderElement = document.createElement('div'),
|
173 | 192 | contents = '',
|
174 | 193 | headerAnchors = [],
|
|
177 | 196 | orginalPartAnchor.setAttribute('href', '#contentScroll');
|
178 | 197 | orginalPartAnchor.textContent = 'Orginal part';
|
179 | 198 | headerAnchors.push(orginalPartAnchor);
|
180 |
| - helpers.collectionToArray(document.querySelectorAll('.tiles-wrapper > ul')).forEach((tilesList, i) => { |
181 |
| - var attr = tilesList.getAttribute('data-status'), |
182 |
| - anchor = document.createElement('a'); |
183 |
| - |
184 |
| - tilesList.setAttribute('id', 'toy-list-' + i); |
185 |
| - anchor.href = '#toy-list-' + i; |
186 |
| - anchor.textContent = attr; |
187 |
| - headerAnchors.push(anchor); |
188 |
| - }); |
| 199 | + helpers |
| 200 | + .collectionToArray( |
| 201 | + document.querySelectorAll('.tiles-wrapper > ul') |
| 202 | + ) |
| 203 | + .forEach((tilesList, i) => { |
| 204 | + var attr = tilesList.getAttribute('data-status'), |
| 205 | + anchor = document.createElement('a'); |
| 206 | + |
| 207 | + tilesList.setAttribute('id', 'toy-list-' + i); |
| 208 | + anchor.href = '#toy-list-' + i; |
| 209 | + anchor.textContent = attr; |
| 210 | + headerAnchors.push(anchor); |
| 211 | + }); |
189 | 212 | secondHeaderElement.classList.add('toyPlugHeader');
|
190 |
| - headerAnchors.forEach(anchor => { |
| 213 | + headerAnchors.forEach((anchor) => { |
191 | 214 | secondHeaderElement.appendChild(anchor);
|
192 | 215 | });
|
193 | 216 | document.body.prepend(secondHeaderElement);
|
|
213 | 236 | */
|
214 | 237 | createHTML() {
|
215 | 238 | var tile = document.createElement('li'),
|
216 |
| - targetElement = this.tilesView.tilesWrapper.querySelector('.list.' + this.shader.status); |
| 239 | + targetElement = this.tilesView.tilesWrapper.querySelector( |
| 240 | + '.list.' + this.shader.status |
| 241 | + ); |
217 | 242 |
|
218 | 243 | if (!targetElement) {
|
219 | 244 | let list = document.createElement('ul'),
|
|
227 | 252 | }
|
228 | 253 |
|
229 | 254 | tile.classList.add('shader');
|
230 |
| - tile.innerHTML = TILE_TEMPLATE.replace('{previewUrl}', getPreviewUrlById(this.shader.id)) |
| 255 | + tile.innerHTML = TILE_TEMPLATE.replace( |
| 256 | + '{previewUrl}', |
| 257 | + getPreviewUrlById(this.shader.id) |
| 258 | + ) |
231 | 259 | .replace('{shaderUrl}', getShaderUrlById(this.shader.id))
|
232 | 260 | .replace('{shaderTitle}', this.shader.title);
|
233 | 261 | targetElement.appendChild(tile);
|
|
265 | 293 | i = 0;
|
266 | 294 |
|
267 | 295 | if (me.loading) {
|
268 |
| - window.alert('Please wait while we are processing your request!'); |
| 296 | + window.alert( |
| 297 | + 'Please wait while we are processing your request!' |
| 298 | + ); |
269 | 299 | return;
|
270 | 300 | }
|
271 | 301 |
|
272 | 302 | this.textContent = me.loadingCaption;
|
273 |
| - ids = helpers.collectionToArray(document.querySelectorAll('#divShaders tr + tr')).map(function getShaderIdFromURL(tr) { |
274 |
| - var linkElement = tr.querySelector('a'), |
275 |
| - link = linkElement.getAttribute('href'); |
276 |
| - return link.replace('/view/', ''); |
277 |
| - }, this); |
| 303 | + ids = helpers |
| 304 | + .collectionToArray( |
| 305 | + document.querySelectorAll('#divShaders tr + tr') |
| 306 | + ) |
| 307 | + .map(function getShaderIdFromURL(tr) { |
| 308 | + var linkElement = tr.querySelector('a'), |
| 309 | + link = linkElement.getAttribute('href'); |
| 310 | + return link.replace('/view/', ''); |
| 311 | + }, this); |
278 | 312 | me.numShaders = ids.length;
|
279 | 313 |
|
280 | 314 | if (ids.length > 0) {
|
|
300 | 334 | httpReq,
|
301 | 335 | str = '';
|
302 | 336 |
|
303 |
| - me.button.textContent = me.loadingCaption + ' ' + me.downloadResults.length + '/' + (me.numShaders + 1); |
| 337 | + me.button.textContent = |
| 338 | + me.loadingCaption + |
| 339 | + ' ' + |
| 340 | + me.downloadResults.length + |
| 341 | + '/' + |
| 342 | + (me.numShaders + 1); |
304 | 343 |
|
305 | 344 | try {
|
306 | 345 | httpReq = new window.XMLHttpRequest();
|
|
318 | 357 | } else {
|
319 | 358 | me.loading = false;
|
320 | 359 | me.button.textContent = me.downloadCaption;
|
321 |
| - window.ToyPlug.common.downloadJson(me.downloadResults[0].info.username + '.json', JSON.stringify(me.downloadResults)); |
| 360 | + window.ToyPlug.common.downloadJson( |
| 361 | + me.downloadResults[0].info.username + '.json', |
| 362 | + JSON.stringify(me.downloadResults) |
| 363 | + ); |
322 | 364 | }
|
323 | 365 | },
|
324 | 366 | false
|
|
332 | 374 | );
|
333 | 375 | httpReq.open('POST', '/shadertoy', true);
|
334 | 376 | httpReq.responseType = 'json';
|
335 |
| - httpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); |
| 377 | + httpReq.setRequestHeader( |
| 378 | + 'Content-Type', |
| 379 | + 'application/x-www-form-urlencoded' |
| 380 | + ); |
336 | 381 | str = '{ "shaders" : ["' + request.join('","') + '"] }';
|
337 | 382 | str = 's=' + encodeURIComponent(str);
|
338 | 383 | httpReq.send(str);
|
|
0 commit comments