PluginProbe
HurryTimer – An Scarcity and Urgency Countdown Timer for WordPress & WooCommerce / 1.1.1
HurryTimer – An Scarcity and Urgency Countdown Timer for WordPress & WooCommerce v1.1.1
2.15.0 trunk 1.0.0 1.0.1 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.1.2 2.1.3 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 All 62 releases
hurrytimer / admin / js / src / admin.js

admin.js in HurryTimer – An Scarcity and Urgency Countdown Timer for WordPress & WooCommerce 1.1.1, at admin/js/src/admin.js

135 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function ($) {
2 'use strict';
3 // Input toggle
4 // ------------------------------------------------
5 $('.js-hrytmr-input-toggle').each(function () {
6 const $el = $(this);
7 $el.hide();
8 const toggle = $('<span class="hrytmr-input-toggle"></span>');
9 $el.before(toggle);
10 if ($el.is(':checked')) {
11 toggle.addClass('is-on');
12 }
13 toggle.on('click', function () {
14 $(this).toggleClass('is-on');
15 $el.prop('checked', !$el.is(':checked'));
16 });
17 });
18
19 // Preview evergreen countdown timer duration.
20 // ------------------------------------------------------------
21 $('.js-htmr-duration').on('keyup', function () {
22 var $help = $('.js-htmr-end-after-help');
23 var durationArray = [];
24 $('.js-htmr-duration').each(function () {
25 durationArray.push(parseInt($(this).val()) || 0)
26 });
27 $help.find('span').each(function (i, e) {
28 $(this).text(durationArray[i])
29 });
30 });
31
32 // Preview normal countdown timer end datetime.
33 // ------------------------------------------------------------
34 $('.js-htmr-datetime').on('change', function () {
35 var $help = $('.js-htmr-end-datetime-help');
36 var $el = $(this);
37 $help.find('span').text(parseInt($el.val()) || 0)
38 });
39
40 // Handle tabs
41 $('.hrytmr-tabs__nav a').on('click', function (e) {
42 const $el = $(this);
43 $el.parent().addClass('active').siblings().removeClass('active');
44 $el.closest('.hrytmr-tabs').find($el.attr('href')).addClass("active").siblings().removeClass('active');
45 e.preventDefault();
46 });
47
48 // Datetime picker
49 // ------------------------------------------------------------
50 $(".hrytmr-datetime").datetimepicker({
51 controlType: "select",
52 dateFormat: "yy-mm-dd",
53 timeFormat: "hh:mm TT",
54 });
55
56 // Handle mode toggle
57 $('.hrytmr-form__mode input[name="mode"]').on('change', function () {
58 var $el = $(this);
59 if (!$el.is(':checked')) {
60 return;
61 }
62 var evergreenContainerClass = 'hrytmr-form__schedule--evergreen';
63 var normalContainerClass = 'hrytmr-form__schedule--normal';
64 var value = +$el.val();
65 var $container = $el.closest('.hrytmr-form__mode');
66 if (value === 2) {
67 $container.siblings('.' + evergreenContainerClass).removeClass('is-hidden');
68 $container.siblings('.' + normalContainerClass).addClass('is-hidden');
69 }
70 else {
71 $container.siblings('.' + evergreenContainerClass).addClass('is-hidden');
72 $container.siblings('.' + normalContainerClass).removeClass('is-hidden');
73 }
74 }).trigger('change');
75
76 // Handle products type dropdown
77 // ------------------------------------------------------------
78 var isLoaded = false;
79 $('#js-hrytmr-products-type').on('change', function () {
80 const $autocompleteLabel = $('.js-hrytmr-products-type-label');
81 if ($(this).find('option:selected').data('show-autocomplete')) {
82 $autocompleteLabel.text($(this).find('option:selected').text());
83 $autocompleteLabel.closest('.form-field').removeClass("is-hidden");
84 }
85 else {
86 $autocompleteLabel.closest('.form-field').addClass("is-hidden");
87 }
88 if (isLoaded) {
89 $('#hrytmr-products-autocomplete-input').val(null).trigger('change');
90 }
91 isLoaded = true;
92
93 }).trigger('change');
94
95
96 // Search for products/Categories
97 // ------------------------------------------------------------
98 $('#hrytmr-products-autocomplete-input').select2({
99 placeholder: 'Search...',
100 width: '500',
101 ajax: {
102 url: ajax_object.ajax_url,
103 dataType: 'json',
104 data: function (params) {
105 return {
106 action: 'search_products',
107 search: params.term,
108 exclude: $(this).val(),
109 productsSelection: $('#js-hrytmr-products-type').val(),
110 type: "public"
111 }
112 }
113 }
114 });
115
116 // Color picker
117 // ------------------------------------------------------------
118 $('.js-hrytmr-color-input').wpColorPicker();
119
120 // Toggle `redirect` action
121 // ------------------------------------------------------------
122 $("#js-hrytmr-end-action").on("change", function () {
123 var $redirectUrlField = $("#js-hrytmr-end-action-redirect-url-field");
124 if (parseInt($(this).val()) === 3) {
125 $redirectUrlField.removeClass('is-hidden');
126 }
127 else {
128 $redirectUrlField.addClass('is-hidden');
129 }
130 }).trigger('change');
131
132 })
133 (jQuery);
134
135