|
297 | 297 | itemListLayout: LAYOUTS.itemListLayout[0].name |
298 | 298 | } |
299 | 299 | }; |
300 | | - var lastImage=null; |
301 | | - var changeTimer; |
302 | | - |
303 | | - function shuffle(a,first,last) { |
304 | | - var j, x, i; |
305 | | - for (i = a.length - 1; i > 0; i--) { |
306 | | - j = Math.floor(Math.random() * (i + 1)); |
307 | | - x = a[i]; |
308 | | - a[i] = a[j]; |
309 | | - a[j] = x; |
310 | | - } |
311 | | - if(last==a[0]||first==a[a.length-1]) return shuffle(a,first,last); |
312 | | - else return a; |
313 | | - } |
314 | | - |
315 | | - |
316 | | - function randomizeArray(sent){ |
317 | | - shuffle(sent,null,null); |
318 | | - var dup=Array.from(sent); |
319 | | - shuffle(dup,null,sent[sent.length - 1]); |
320 | | - sent.push(...dup); |
321 | | - shuffle(dup,sent[0],sent[sent.length - 1]); |
322 | | - sent.push(...dup); |
323 | | - } |
324 | | - |
325 | | - function changeImage(carouselImages,random){ |
326 | | - var oldState=carouselImages; |
327 | | - if(random){ |
328 | | - carouselImages=[carouselImages[Math.floor(Math.random() * carouselImages.length)]]; |
329 | | - |
330 | | - if(carouselImages[0]!=lastImage[0]){ |
331 | | - lastImage=carouselImages; |
332 | | - appendOneImage(carouselImages); |
333 | | - }else changeImage(oldState); |
334 | | - }else{ |
335 | | - var index=carouselImages.indexOf(lastImage[0]); |
336 | | - var sendIndex=0; |
337 | | - if(index==-1||index==carouselImages.length-1)carouselImages=[carouselImages[0]]; |
338 | | - else {carouselImages=[carouselImages[index+1]];sendIndex=index+1;} |
339 | | - lastImage=carouselImages; |
340 | | - var isHome=(new URLSearchParams(window.location.search).get('fid').split("=")[0]=="launcherPluginv"); |
341 | | - var storagePlace=(isHome)?"carouselLastImageHome":"carouselLastImage"; |
342 | | - buildfire.localStorage.setItem(storagePlace,sendIndex, function(e,r){ |
343 | | - appendOneImage(carouselImages); |
344 | | - }); |
345 | | - } |
346 | | - |
347 | | - } |
348 | | - function appendOneImage(carouselImages){ |
349 | | - var carouselContainer = document.getElementById("carousel"); |
350 | | - var myImg=document.getElementById("one_img_home"); |
351 | | - |
352 | | - if(myImg==null){ |
353 | | - carouselContainer.innerHTML = ''; |
354 | | - var img = document.createElement('img'); |
355 | | - img.setAttribute("id", "one_img_home"); |
356 | | - img.setAttribute("src", buildfire.imageLib.cropImage(carouselImages[0].iconUrl, { |
357 | | - width: window.innerWidth, |
358 | | - height: Math.ceil(9 * (window.innerWidth) / 16) |
359 | | - })); |
360 | | - carouselContainer.appendChild(img); |
361 | | - img.addEventListener("click", function () { |
362 | | - buildfire.actionItems.execute(carouselImages[0], function (err, result) { |
363 | | - if (err) { |
364 | | - console.warn('Error openning slider action: ', err); |
365 | | - } |
366 | | - }); |
367 | | - }); |
368 | | - }else{ |
369 | | - myImg.setAttribute("src", buildfire.imageLib.cropImage(carouselImages[0].iconUrl, { |
370 | | - width: window.innerWidth, |
371 | | - height: Math.ceil(9 * (window.innerWidth) / 16) |
372 | | - })); |
373 | | - myImg.removeEventListener("click",function(){}); |
374 | | - myImg.addEventListener("click", function () { |
375 | | - buildfire.actionItems.execute(carouselImages[0], function (err, result) { |
376 | | - if (err) { |
377 | | - console.warn('Error openning slider action: ', err); |
378 | | - } |
379 | | - }); |
380 | | - }); |
381 | | - } |
382 | | - } |
| 300 | + |
383 | 301 | WidgetHome.renderCarousel = function(){ |
384 | 302 | carouselContainer = document.getElementById("carousel"); |
385 | | - if(changeTimer) clearInterval(changeTimer); |
386 | | - if(carouselContainer != null){ |
| 303 | + if (carouselContainer != null){ |
387 | 304 | if ( WidgetHome.data.content && WidgetHome.data.content.carouselImages) { |
388 | 305 | var speed = WidgetHome.data.content.speed ? WidgetHome.data.content.speed : 5000 |
389 | 306 | var order = WidgetHome.data.content.order ? WidgetHome.data.content.order : 0 |
390 | 307 | var display = WidgetHome.data.content.display ? WidgetHome.data.content.display : 0 |
391 | 308 | var carouselImages = WidgetHome.data.content.carouselImages; |
392 | | - var isHome=(new URLSearchParams(window.location.search).get('fid').split("=")[0]=="launcherPluginv"); |
393 | | - var storagePlace=(isHome)?"carouselLastImageHome":"carouselLastImage"; |
394 | | - if(order == 0 && display== 1 && carouselImages.length > 1){ |
395 | | - buildfire.localStorage.getItem(storagePlace, function(e,r) { |
396 | | - var images=carouselImages; |
397 | | - var sendIndex=0; |
398 | | - if(r==null){ |
399 | | - carouselImages=[carouselImages[0]]; |
400 | | - }else{ |
401 | | - var index=Number(r); |
402 | | - if(index==-1||index==carouselImages.length-1)carouselImages=[carouselImages[0]]; |
403 | | - else {carouselImages=[carouselImages[index+1]];sendIndex=index+1;} |
404 | | - } |
405 | | - buildfire.localStorage.setItem(storagePlace,sendIndex, function(e,r){ |
406 | | - lastImage=carouselImages; |
407 | | - if(speed!=0)changeTimer=setInterval(changeImage, speed,images,false); |
408 | | - }); |
409 | | - }); |
410 | | - } |
411 | | - else if(order == 1 && display== 1 && carouselImages.length > 1){ |
412 | | - if(speed!=0){ |
413 | | - changeTimer=setInterval(changeImage, speed,carouselImages,true); |
414 | | - } |
415 | | - carouselImages=[carouselImages[Math.floor(Math.random() * carouselImages.length)]]; |
416 | | - lastImage=carouselImages; |
417 | | - buildfire.localStorage.removeItem(storagePlace); |
418 | | - |
419 | | - }else if(order == 1 && display== 0 && carouselImages.length > 1){ |
420 | | - randomizeArray(carouselImages); |
421 | | - buildfire.localStorage.removeItem(storagePlace); |
422 | | - } |
423 | | - |
424 | | - if (carouselImages.length > 1) { |
425 | 309 | setTimeout(()=>{ |
426 | 310 | WidgetHome.view = new buildfire.components.carousel.view({ |
427 | 311 | selector: carouselContainer, |
428 | 312 | items: carouselImages, |
429 | | - loop: (speed!=0), |
430 | | - infinite:false, |
431 | | - autoInterval:speed |
| 313 | + loop: (speed != 0), |
| 314 | + infinite: false, |
| 315 | + autoInterval: speed, |
| 316 | + order: order, |
| 317 | + display: display |
432 | 318 | }); |
433 | | - },100) |
434 | | - |
435 | | - } else { |
436 | | - appendOneImage(carouselImages); |
437 | | - } |
438 | | - |
| 319 | + }, 100) |
439 | 320 | carouselContainer.classList.remove('hide'); |
440 | 321 | } else { |
441 | 322 | carouselContainer.classList.add('hide'); |
442 | 323 | } |
443 | 324 | } |
444 | | - |
445 | 325 | } |
446 | 326 |
|
447 | | - |
448 | 327 | WidgetHome.init = function (cb) { |
449 | 328 | Buildfire.spinner.show(); |
450 | 329 | var success = function (result) { |
|
0 commit comments