diff options
author | Thomas Steur <tsteur@users.noreply.github.com> | 2020-09-09 08:42:44 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-09 08:42:44 +0300 |
commit | aaf2e659a694ab4007ecea6178b8db0ad481f43a (patch) | |
tree | 2c037295ae80d1db9483cc3198b5aa78df190bac /plugins/CoreHome/javascripts | |
parent | d89a202cfbb502083882fbfbb999d8c9ec77b4cb (diff) |
Update donations widget (#16405)
* Update donations widget
* fix some tests
* fix some tests
* update css
* fix test
* improve wording
* fix tests
Diffstat (limited to 'plugins/CoreHome/javascripts')
-rw-r--r-- | plugins/CoreHome/javascripts/donate.js | 142 |
1 files changed, 0 insertions, 142 deletions
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)); |