campaign: js for prefilling donation page
authorKai Michaelis <kai@gnupg.org>
Wed, 17 May 2017 13:04:53 +0000 (15:04 +0200)
committerKai Michaelis <kai@gnupg.org>
Wed, 17 May 2017 13:05:02 +0000 (15:05 +0200)
web/donate/donate.org
web/share/campaign/campaign.js

index cdd50b5..0970631 100644 (file)
       <!-- Custom amounts -->
       <div class="form-group">
         <div class="col-md-offset-2 col-md-6">
-          <div class="btn-group btn-group-xs" role="group" aria-label="suggested amounts">
+          <div class="btn-group btn-group-xs" role="group"
+               aria-label="suggested amounts">
             <a href="/cgi-bin/procdonate.cgi?mode=preset&s_amt=500&s_cur=eur"
-               class="btn btn-default">500&#x202f;€</a>
+               class="btn btn-default amount-btn-500">500&#x202f;€</a>
             <a href="/cgi-bin/procdonate.cgi?mode=preset&s_amt=200&s_cur=eur"
-               class="btn btn-default">200&#x202f;€</a>
+               class="btn btn-default amount-btn-200">200&#x202f;€</a>
             <a href="/cgi-bin/procdonate.cgi?mode=preset&s_amt=100&s_cur=eur"
-               class="btn btn-default">100&#x202f;€</a>
+               class="btn btn-default amount-btn-100">100&#x202f;€</a>
             <a href="/cgi-bin/procdonate.cgi?mode=preset&s_amt=50&s_cur=eur"
-               class="btn btn-default">50&#x202f;€</a>
+               class="btn btn-default amount-btn-50">50&#x202f;€</a>
             <a href="/cgi-bin/procdonate.cgi?mode=preset&s_amt=20&s_cur=eur"
-               class="btn btn-default">20&#x202f;€</a>
+               class="btn btn-default amount-btn-20">20&#x202f;€</a>
             <a href="/cgi-bin/procdonate.cgi?mode=preset&s_amt=10&s_cur=eur"
-               class="btn btn-default">10&#x202f;€</a>
+               class="btn btn-default amount-btn-10">10&#x202f;€</a>
             <a href="/cgi-bin/procdonate.cgi?mode=preset&s_amt=5&s_cur=eur"
-               class="btn btn-default">5&#x202f;€</a>
+               class="btn btn-default amount-btn-5">5&#x202f;€</a>
           </div>
           <span class="help-block">
             Suggested amounts.
index fd3c23c..ffba06f 100644 (file)
@@ -1,57 +1,70 @@
 /* For mobile devices in landscape orientation, the navbar is in the
    way of the video.  So hide it automatically then.  */
 $(document).ready(function() {
-    $(".navbar-fixed-top").autoHidingNavbar({
-       disableAutohide: true,
-       hideOffset: 20
-    });
-    check_autohide = function(event) {
-       let hide = (screen.width < 768) && (screen.height < screen.width);
-       $(".navbar-fixed-top").autoHidingNavbar("setDisableAutohide", !hide);
-       if (!hide) {
-           $(".navbar-fixed-top").autoHidingNavbar("show");
-       }
-    };
-    $(window).on('orientationchange', check_autohide);
-    check_autohide();
+  $(".navbar-fixed-top").autoHidingNavbar({
+    disableAutohide: true,
+    hideOffset: 20
+  });
+  check_autohide = function(event) {
+    let hide = (screen.width < 768) && (screen.height < screen.width);
+    $(".navbar-fixed-top").autoHidingNavbar("setDisableAutohide", !hide);
+    if (!hide) {
+      $(".navbar-fixed-top").autoHidingNavbar("show");
+    }
+  };
+  $(window).on('orientationchange', check_autohide);
+  check_autohide();
 });
 
-
+/* Random starting points for the testimonial carousel.  */
 $(document).ready(function() {
-    let nr_items_lg = 3 * $("#myCarousel div.item").length;
-    let nr_items_md = 2 * $("#myCarouselMedium div.item").length;
-    let nr_items_xs = 1 * $("#myCarouselSmall div.item").length;
-    let nr_items = Math.min(nr_items_lg, nr_items_md, nr_items_xs);
+  let nr_items_lg = 3 * $("#myCarousel div.item").length;
+  let nr_items_md = 2 * $("#myCarouselMedium div.item").length;
+  let nr_items_xs = 1 * $("#myCarouselSmall div.item").length;
+  let nr_items = Math.min(nr_items_lg, nr_items_md, nr_items_xs);
 
-    let active_item = Math.trunc(nr_items * Math.random());
+  let active_item = Math.trunc(nr_items * Math.random());
 
-    let active_slide_lg = Math.trunc(active_item / 3);
-    let active_slide_md = Math.trunc(active_item / 2);
-    let active_slide_xs = Math.trunc(active_item / 1);
+  let active_slide_lg = Math.trunc(active_item / 3);
+  let active_slide_md = Math.trunc(active_item / 2);
+  let active_slide_xs = Math.trunc(active_item / 1);
 
-    $("#myCarousel div.item").removeClass("active");
-    $("#myCarouselMedium div.item").removeClass("active");
-    $("#myCarouselSmall div.item").removeClass("active");
+  $("#myCarousel div.item").removeClass("active");
+  $("#myCarouselMedium div.item").removeClass("active");
+  $("#myCarouselSmall div.item").removeClass("active");
 
-    $("#myCarousel div.item").eq(active_slide_lg).addClass("active");
-    $("#myCarouselMedium div.item").eq(active_slide_md).addClass("active");
-    $("#myCarouselSmall div.item").eq(active_slide_xs).addClass("active");
+  $("#myCarousel div.item").eq(active_slide_lg).addClass("active");
+  $("#myCarouselMedium div.item").eq(active_slide_md).addClass("active");
+  $("#myCarouselSmall div.item").eq(active_slide_xs).addClass("active");
 });
 
+/* Advance carousel by swiping.  */
 $(document).ready(function() {
-    $('.carousel').bcSwipe({ threshold: 50 });
+  $('.carousel').bcSwipe({ threshold: 50 });
 });
 
+/* Defer loading Youtube iframe until the user clicks on the video.  */
+$(document).ready(function() {
+  /* For the video preview, we use this for devices without hover events.  */
+  if ("ontouchstart" in document.documentElement) {
+    $("body").addClass("touch");
+  }
 
+  /* Click handler for all videos.  */
+  $(".camp-video").one("click", function() {
+    let yt_id = $(this).data("embed");
+    $(this).html('<iframe class="embed-responsive-item" allowfullscreen src="https://www.youtube.com/embed/' + yt_id + '?autoplay=1&rel=0"></iframe>');
+  });
+});
+
+/* Fill donation amounts w/ javascript if possible.  */
 $(document).ready(function() {
-    /* For the video preview, we use this for devices without hover events.  */
-    if ("ontouchstart" in document.documentElement) {
-       $("body").addClass("touch");
-    }
+  let vals = ["500", "200", "100", "50", "10", "5"];
 
-    /* Click handler for all videos.  */
-    $(".camp-video").one("click", function() {
-       let yt_id = $(this).data("embed");
-       $(this).html('<iframe class="embed-responsive-item" allowfullscreen src="https://www.youtube.com/embed/' + yt_id + '?autoplay=1&rel=0"></iframe>');
+  for (let value of vals) {
+    $(".amount-btn-" + value.toString()).attr("href","#");
+    $(".amount-btn-" + value.toString()).one("onclick",function() {
+      $("#amountother").attr("value",value.toString());
     });
+  }
 });