summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/member_expiration_date.js
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-08-18 19:41:18 -0500
committerDouwe Maan <douwe@selenight.nl>2016-08-18 19:41:18 -0500
commit4d07319b38b20609b385aa9510001b203f5b1224 (patch)
tree594dd6b1a64d276a93c2497c8d46452cde430cf8 /app/assets/javascripts/member_expiration_date.js
parent41529b925437b20206d00ea0e1fd82b144b8e513 (diff)
downloadgitlab-ce-4d07319b38b20609b385aa9510001b203f5b1224.tar.gz
Don’t add events in loop
Diffstat (limited to 'app/assets/javascripts/member_expiration_date.js')
-rw-r--r--app/assets/javascripts/member_expiration_date.js36
1 files changed, 17 insertions, 19 deletions
diff --git a/app/assets/javascripts/member_expiration_date.js b/app/assets/javascripts/member_expiration_date.js
index cb166024b59..1935af491f7 100644
--- a/app/assets/javascripts/member_expiration_date.js
+++ b/app/assets/javascripts/member_expiration_date.js
@@ -5,30 +5,28 @@
// datepicker, and make clicking on that element clear the field.
//
gl.MemberExpirationDate = function() {
- $('.js-access-expiration-date').each(function(i, element) {
- var expirationDateInput = $(element);
+ function toggleClearInput() {
+ $(this).closest('.clearable-input').toggleClass('has-value', $(this).val() !== '');
+ }
- if (expirationDateInput.hasClass('hasDatepicker')) { return; }
+ var inputs = $('.js-access-expiration-date');
- function toggleClearInput() {
- expirationDateInput.closest('.clearable-input').toggleClass('has-value', expirationDateInput.val() !== '');
- }
+ inputs.datepicker({
+ dateFormat: 'yy-mm-dd',
+ minDate: 1,
+ onSelect: toggleClearInput
+ });
- expirationDateInput.datepicker({
- dateFormat: 'yy-mm-dd',
- minDate: 1,
- onSelect: toggleClearInput
- });
+ inputs.next('.js-clear-input').on('click', function(event) {
+ event.preventDefault();
- expirationDateInput.on('blur', toggleClearInput);
+ var input = $(this).closest('.clearable-input').find('.js-access-expiration-date');
+ input.datepicker('setDate', null);
+ toggleClearInput.call(input);
+ });
- toggleClearInput();
+ inputs.on('blur', toggleClearInput);
- expirationDateInput.next('.js-clear-input').on('click', function(event) {
- event.preventDefault();
- expirationDateInput.datepicker('setDate', null);
- toggleClearInput();
- });
- });
+ inputs.each(toggleClearInput);
};
}).call(this);