adt-js-components 1.0.3 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adt-js-components",
3
- "version": "1.0.3",
3
+ "version": "1.0.6",
4
4
  "description": "JavaScript components for Nette framework",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -9,7 +9,9 @@ const locale = document.querySelector('html').getAttribute('lang');
9
9
  function initTime(input, options) {
10
10
  $(input).timepicker({
11
11
  scrollDefault: 'now',
12
- timeFormat: options.format
12
+ timeFormat: options.format,
13
+ minTime: options.minTime,
14
+ maxTime: options.maxTime
13
15
  });
14
16
  }
15
17
 
@@ -20,18 +22,19 @@ function initDate(input, options) {
20
22
  time_24hr: true,
21
23
  locale: require(`flatpickr/dist/l10n/${locale}.js`).default[locale],
22
24
  defaultDate: options.value,
23
- minDate: options.minDate
25
+ minDate: options.minDate ? new Date(options.minDate) : null,
26
+ maxDate: options.maxDate ? new Date(options.maxDate) : null
24
27
  });
25
28
  }
26
29
 
27
30
  function run(options) {
28
31
  $.nette.ext('live').after(function($el) {
29
32
  $el.find('[data-adt-date-input]').each(function() {
30
- var options = $(this).data('adt-date-input');
33
+ const data = $(this).data('adt-date-input');
34
+
35
+ const options = $(this).data('adt-date-input');
31
36
  options.type = $(this).attr('type');
32
- options.value = $(this).attr('value');
33
- options.minDate = $(this).data('min-date') !== undefined ? $(this).data('min-date') : null;
34
-
37
+
35
38
  $(this).attr('type', 'text');
36
39
  if (options.type === 'time') {
37
40
  initTime(this, options);
@@ -3,32 +3,39 @@ const Scrollparent = require("scrollparent");
3
3
  function run(options) {
4
4
  $.nette.ext("submitForm", {
5
5
  before: function (xhr, settings) {
6
- if (settings.nette) {
6
+ if (settings.nette && settings.nette.form && settings.nette.form.attr('data-adt-submit-form') !== undefined) {
7
+ settings.nette.form.data('enabledButtons', settings.nette.form.find('button:enabled'));
7
8
  settings.nette.form.find('button').prop('disabled', true);
8
- settings.nette.el.find('.js-spinner').removeClass('d-none');
9
- settings.nette.form.find('.js-error').remove();
9
+ settings.nette.el.css('width', settings.nette.el.outerWidth());
10
+ settings.nette.el.data('originalContent', settings.nette.el.html());
11
+ settings.nette.el.html('<span class="spinner-border spinner-border-sm"></span>');
12
+ settings.nette.form.find('.alert-danger').remove();
10
13
  settings.nette.form.find('.is-invalid').removeClass('is-invalid');
11
14
  }
12
15
  },
13
16
  success: function (payload, status, xhr, settings) {
14
17
  // if there is no redirect, we will enable buttons
15
- if (!payload.redirect && settings.nette) {
16
- settings.nette.el.find('.js-spinner').addClass('d-none');
17
- settings.nette.form.find('button').prop('disabled', false);
18
+ if (!payload.redirect && settings.nette && settings.nette.form && settings.nette.form.attr('data-adt-submit-form') !== undefined) {
19
+ settings.nette.el.html(settings.nette.el.data('originalContent'));
20
+ settings.nette.form.data('enabledButtons').each(function () {
21
+ $(this).prop('disabled', false);
22
+ });
18
23
  }
19
24
  },
20
25
  error: function (xhr, status, error, settings) {
21
- if (settings.nette) {
22
- settings.nette.form.find('.js-errors').append('<div class="alert alert-danger js-error">' + xhr.responseJSON['error'] + '</div>');
26
+ if (settings.nette && settings.nette.form && settings.nette.form.attr('data-adt-submit-form') !== undefined) {
27
+ settings.nette.form.prepend('<div class="alert alert-danger">' + xhr.responseText + '</div>');
23
28
 
24
- settings.nette.el.find('.js-spinner').addClass('d-none');
25
- settings.nette.form.find('button').prop('disabled', false);
29
+ settings.nette.el.html(settings.nette.el.data('originalContent'));
30
+ settings.nette.form.data('enabledButtons').each(function () {
31
+ $(this).prop('disabled', false);
32
+ });
26
33
  }
27
34
  },
28
35
  complete: function (xhr, status, settings) {
29
36
  // if there are errors we will scroll to first of them
30
- if (settings.nette && settings.nette.form.find('.js-error').length > 0) {
31
- const $error = settings.nette.form.find('.js-error:first');
37
+ if (settings.nette && settings.nette.form && settings.nette.form.attr('data-adt-submit-form') !== undefined && settings.nette.form.find('.alert-danger').length > 0) {
38
+ const $error = settings.nette.form.find('.alert-danger:first');
32
39
 
33
40
  // we have to find first scrollable element (it can be document or modal for example)
34
41
  let scrollParent = Scrollparent($error[0]);