[ 
https://issues.apache.org/jira/browse/BEAM-14145?focusedWorklogId=754030&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-754030
 ]

ASF GitHub Bot logged work on BEAM-14145:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 07/Apr/22 12:46
            Start Date: 07/Apr/22 12:46
    Worklog Time Spent: 10m 
      Work Description: bullet03 commented on code in PR #17205:
URL: https://github.com/apache/beam/pull/17205#discussion_r845091808


##########
website/www/site/assets/js/quotes-slider.js:
##########
@@ -10,33 +10,99 @@
 // License for the specific language governing permissions and limitations 
under
 // the License.
 
-var slider = new KeenSlider("#my-keen-slider", {
-  loop: true,
-  created: function (instance) {
-    var dots_wrapper = document.getElementById("dots");
-    var slides = document.querySelectorAll(".keen-slider__slide");
-    slides.forEach(function (t, idx) {
-      var dot = document.createElement("button");
-      dot.classList.add("dot");
-      dots_wrapper.appendChild(dot);
-      dot.addEventListener("click", function () {
-        instance.moveToSlide(idx);
-      });
+function calcBodyWidth() {
+  return window.innerWidth && document.documentElement.clientWidth ?
+    Math.min(window.innerWidth, document.documentElement.clientWidth) :
+    window.innerWidth ||
+    document.documentElement.clientWidth ||
+    document.getElementsByTagName('body')[0].clientWidth;
+}
+
+(function () {
+
+  var CountOfSlides = {
+    min: 1,
+    renderedOnDesktop: 3,
+  }
+
+  var Selectors = {
+    desktopSlider: '.quotes-desktop.keen-slider-JS',
+    mobileSlider: '.quote-mobile.keen-slider-JS',
+    oneSlide: '.keen-slider__slide',
+  }
+
+  var classOneSlideExtra = 'wrap-slide';
+  var classOneSlide = 'keen-slider__slide';
+  var classVisible = 'visible';
+
+  var tabletWidth = 1024;
+  var bodyWidth = calcBodyWidth();
+  var isDesktopWidth = bodyWidth >= tabletWidth;
+
+  var currentSliderSelector = isDesktopWidth ? Selectors.desktopSlider : 
Selectors.mobileSlider;
+  var currentSliderDOM = document.querySelector(currentSliderSelector);
+  currentSliderDOM.classList.add(classVisible);
+
+  var slidesDOM = currentSliderDOM.querySelectorAll(".keen-slider__slide");
+  var actualCountOfSlides = 
currentSliderDOM.querySelectorAll(Selectors.oneSlide).length;
+
+  // create and add additional div wrappers over group of 3 cards
+  if (isDesktopWidth) {
+    var numOfExtraGroupWrappers = Math.ceil(actualCountOfSlides / 
CountOfSlides.renderedOnDesktop);
+    var extraGroupWrappers = new 
Array(numOfExtraGroupWrappers).fill(null).map(() => {
+      var extraGroupWrapperDOM = document.createElement('div');
+      extraGroupWrapperDOM.classList.add(classOneSlide, classOneSlideExtra);
+      return extraGroupWrapperDOM;
+    });
+    slidesDOM.forEach((oneSlideDOM, idx) => {
+      oneSlideDOM.classList.remove(classOneSlide);
+      extraGroupWrappers[Math.floor(idx / 
CountOfSlides.renderedOnDesktop)].append(oneSlideDOM);
+    });
+    extraGroupWrappers.forEach((oneExtraGroupWrapper) => {
+      currentSliderDOM.append(oneExtraGroupWrapper);
     });
-    updateClasses(instance);
-  },
-  slideChanged(instance) {
-    updateClasses(instance);
   }
-});
 
-function updateClasses(instance) {
-  var slide = instance.details().relativeSlide;
+  var isNeedLoop = true;
+  if (isDesktopWidth && actualCountOfSlides <= 
CountOfSlides.renderedOnDesktop) {
+    isNeedLoop = false;
+  }
+  if (!isDesktopWidth && actualCountOfSlides === CountOfSlides.min) {
+    isNeedLoop = false;
+  }
 
-  var dots = document.querySelectorAll(".dot");
-  dots.forEach(function (dot, idx) {
-    idx === slide
-      ? dot.classList.add("dot--active")
-      : dot.classList.remove("dot--active");
+  var slider = new KeenSlider(currentSliderSelector, {

Review Comment:
   done





Issue Time Tracking
-------------------

    Worklog Id:     (was: 754030)
    Time Spent: 1h 50m  (was: 1h 40m)

> [Website] Add carousel on the Home Page for They tried it out section
> ---------------------------------------------------------------------
>
>                 Key: BEAM-14145
>                 URL: https://issues.apache.org/jira/browse/BEAM-14145
>             Project: Beam
>          Issue Type: Improvement
>          Components: website
>            Reporter: Aydar Zaynutdinov
>            Assignee: Bulat Safiullin
>            Priority: P3
>              Labels: website
>         Attachments: image-2022-03-23-05-45-05-105.png, 
> image-2022-03-24-11-13-06-901.png
>
>          Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> Need to add a carousel on the Home Page for They tried it out section.
>  
> !image-2022-03-23-05-45-05-105.png|width=503,height=233!
>  * Carousel similar to [Istio: |http://example.com/] 
> [https://istio.io/latest/]
>  * Show 3 cards at once, no autorotation
>  * Users can look at other cards by using the dots below the menu 
> !image-2022-03-24-11-13-06-901.png|width=400,height=227!
>  
> Add 2 more logos to carousel: 
> Google Cloud Dataflow: 
> "Google Cloud Dataflow is a fully managed service for executing Apache Beam 
> pipelines within the Google Cloud Platform ecosystem." 
> Scio: 
> "Scio is a Scala API for Apache Beam and Google Cloud Dataflow inspired by 
> Apache Spark and Scalding."
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to