From aaf2e659a694ab4007ecea6178b8db0ad481f43a Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Wed, 9 Sep 2020 17:42:44 +1200 Subject: Update donations widget (#16405) * Update donations widget * fix some tests * fix some tests * update css * fix test * improve wording * fix tests --- plugins/CoreHome/javascripts/donate.js | 142 --------------------------------- 1 file changed, 142 deletions(-) delete mode 100644 plugins/CoreHome/javascripts/donate.js (limited to 'plugins/CoreHome/javascripts') diff --git a/plugins/CoreHome/javascripts/donate.js b/plugins/CoreHome/javascripts/donate.js deleted file mode 100644 index c0ab5ddfc2..0000000000 --- a/plugins/CoreHome/javascripts/donate.js +++ /dev/null @@ -1,142 +0,0 @@ -/*! - * Matomo - free/libre analytics platform - * - * @link https://matomo.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */ -(function ($) { - - $(document).ready(function () { - - var donateAmounts = [0, 30, 60, 90, 120]; - - // returns the space between each donation amount in the donation slider - var getTickWidth = function (slider) { - var effectiveSliderWidth = $('.slider-range', slider).width() - $('.slider-position', slider).width(); - return effectiveSliderWidth / (donateAmounts.length - 1); - }; - - // returns the position index on a slider based on a x coordinate value - var getPositionFromPageCoord = function (slider, pageX) { - return Math.round((pageX - $('.slider-range', slider).offset().left) / getTickWidth(slider)); - }; - - // set's the correct amount text & smiley face image based on the position of the slider - var setSmileyFaceAndAmount = function (slider, pos) { - // set text yearly amount - $('.slider-donate-amount', slider).text('$' + donateAmounts[pos] + '/' + _pk_translate('Intl_Year_Short')); - - // set the right smiley face - $('.slider-smiley-face').attr('src', 'plugins/Morpheus/images/smileyprog_' + pos + '.png'); - - // set the hidden option input for paypal - var option = Math.max(1, pos); - $('.piwik-donate-call input[name=os0]').val("Option " + option); - }; - - // move's a slider's position to a specific spot - var moveSliderPosition = function (slider, to) { - // make sure 'to' is valid - if (to < 0) { - to = 0; - } - else if (to >= donateAmounts.length) { - to = donateAmounts.length - 1; - } - - // set the slider position - var left = to * getTickWidth(slider); - if (left == 0) { - left = -1; // at position 0 we move one pixel left to cover up some of slider bar - } - - $('.slider-position', slider).css({ - left: left + 'px' - }); - - // reset the smiley face & amount based on the new position - setSmileyFaceAndAmount(slider, to); - }; - - // when a slider is clicked, set the amount & smiley face appropriately - $('body').on('click', '.piwik-donate-slider>.slider-range', function (e) { - var slider = $(this).parent(), - currentPageX = $('.slider-position', this).offset().left, - currentPos = getPositionFromPageCoord(slider, currentPageX), - pos = getPositionFromPageCoord(slider, e.pageX); - - // if the closest position is the current one, use the other position since - // the user obviously wants to move the slider. - if (currentPos == pos) { - // if click is to right, go forward one, else backwards one - if (e.pageX > currentPageX) { - ++pos; - } - else { - --pos; - } - } - - moveSliderPosition(slider, pos); - }); - - // when the smiley icon is clicked, move the position up one to demonstrate how to use the slider - $('body').on('click', '.piwik-donate-slider .slider-smiley-face,.piwik-donate-slider .slider-donate-amount', - function (e) { - var slider = $(this).closest('.piwik-donate-slider'), - currentPageX = $('.slider-position', slider).offset().left, - currentPos = getPositionFromPageCoord(slider, currentPageX); - - moveSliderPosition(slider, currentPos + 1); - } - ); - - // stores the current slider being dragged - var draggingSlider = false; - - // start dragging on mousedown for a slider's position bar - $('body').on('mousedown', '.piwik-donate-slider .slider-position', function () { - draggingSlider = $(this).parent().parent(); - }); - - // move the slider position if currently dragging when the mouse moves anywhere over the entire page - $('body').on('mousemove', function (e) { - if (draggingSlider) { - var slider = draggingSlider.find('.slider-range'), - sliderPos = slider.find('.slider-position'), - left = e.pageX - slider.offset().left; - - // only move slider if the mouse x-coord is still on the slider (w/ some padding for borders) - if (left <= slider.width() - sliderPos.width() + 2 - && left >= -2) { - sliderPos.css({left: left + 'px'}); - - var closestPos = Math.round(left / getTickWidth(draggingSlider)); - setSmileyFaceAndAmount(draggingSlider, closestPos); - } - } - }); - - // stop dragging and normalize a slider's position on mouseup over the entire page - $('body').on('mouseup', function () { - if (draggingSlider) { - var sliderPos = $('.slider-position', draggingSlider), - slider = sliderPos.parent(); - - if (sliderPos.length) { - // move the slider to the nearest donation amount position - var pos = getPositionFromPageCoord(draggingSlider, sliderPos.offset().left); - moveSliderPosition(draggingSlider, pos); - } - - draggingSlider = false; // stop dragging - } - }); - - // event for programmatically changing the position - $('body').on('piwik:changePosition', '.piwik-donate-slider', function (e, data) { - moveSliderPosition(this, data.position); - }); - }); - -}(jQuery)); -- cgit v1.2.3