adt-js-components 1.1.3 → 1.2.0
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/README.md +17 -0
- package/package.json +4 -2
- package/src/SubmitForm/index.js +26 -1
package/README.md
CHANGED
|
@@ -93,6 +93,23 @@ Attribute `data-adt-submit-form` must be included in your HTML!
|
|
|
93
93
|
AdtJsComponents.initSubmitForm();
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
+
On each submit before and after callback can be added.
|
|
97
|
+
Before callback is invoked before submit and form is not submitted if the function return false.
|
|
98
|
+
After callback is invoked after successed submit.
|
|
99
|
+
|
|
100
|
+
```html
|
|
101
|
+
<script>
|
|
102
|
+
function myConfirm() {
|
|
103
|
+
return confirm('Do you realy want to submit the form?');
|
|
104
|
+
}
|
|
105
|
+
function myAlert() {
|
|
106
|
+
alert('Data was saved.');
|
|
107
|
+
}
|
|
108
|
+
</script>
|
|
109
|
+
|
|
110
|
+
<button ... data-adt-submit-form-before-callback="myConfirm" data-adt-submit-form-after-callback="myAlert">Submit</button>
|
|
111
|
+
```
|
|
112
|
+
|
|
96
113
|
### Ajax Select
|
|
97
114
|
|
|
98
115
|
Attribute `data-adt-ajax-select` must be included in your HTML!
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adt-js-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "JavaScript components for Nette framework",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,9 +22,11 @@
|
|
|
22
22
|
"scrollparent": "^2.0.1",
|
|
23
23
|
"tinymce": "^5.7.0",
|
|
24
24
|
"tinymce-i18n": "^20.12.25",
|
|
25
|
-
"jquery": "^3.4.1",
|
|
26
25
|
"nette.ajax.js": "^2.3.0"
|
|
27
26
|
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"jquery": "^3.4.1"
|
|
29
|
+
},
|
|
28
30
|
"author": "Apps Dev Team",
|
|
29
31
|
"license": "MIT",
|
|
30
32
|
"bugs": {
|
package/src/SubmitForm/index.js
CHANGED
|
@@ -22,6 +22,10 @@ function scrollToFirstError(form) {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
function run(options) {
|
|
25
|
+
|
|
26
|
+
// Unregister ext "redirect", for own implemenation in ext "submitForm".succcess
|
|
27
|
+
$.nette.ext('redirect', null);
|
|
28
|
+
|
|
25
29
|
$.nette.ext('live').after(function($el) {
|
|
26
30
|
$el.find('[data-adt-submit-form]').find('input, textarea, select').on('input', function(e) {
|
|
27
31
|
this.classList.remove('is-invalid');
|
|
@@ -66,6 +70,14 @@ function run(options) {
|
|
|
66
70
|
$.nette.ext("submitForm", {
|
|
67
71
|
before: function (xhr, settings) {
|
|
68
72
|
if (settings.nette && settings.nette.form && settings.nette.form.attr('data-adt-submit-form') !== undefined) {
|
|
73
|
+
|
|
74
|
+
let beforeCallback = settings.nette.el.attr('data-adt-submit-form-before-callback');
|
|
75
|
+
if (beforeCallback) {
|
|
76
|
+
if (!window[beforeCallback]()) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
69
81
|
settings.nette.form.data('enabledButtons', settings.nette.form.find('button:enabled'));
|
|
70
82
|
settings.nette.form.find('button').prop('disabled', true);
|
|
71
83
|
settings.nette.el.css('width', settings.nette.el.outerWidth());
|
|
@@ -76,8 +88,21 @@ function run(options) {
|
|
|
76
88
|
}
|
|
77
89
|
},
|
|
78
90
|
success: function (payload, status, xhr, settings) {
|
|
91
|
+
if (settings.nette && settings.nette.el) {
|
|
92
|
+
let afterCallback = settings.nette.el.attr('data-adt-submit-form-after-callback');
|
|
93
|
+
if (afterCallback) {
|
|
94
|
+
window[afterCallback]();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Own implementation redirecting (same as in nette.ajax.js ext "redirect"), but after our afterCallback
|
|
99
|
+
if (payload.redirect) {
|
|
100
|
+
window.location.href = payload.redirect;
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
|
|
79
104
|
// if there is no redirect, we will enable buttons
|
|
80
|
-
if (
|
|
105
|
+
if (settings.nette && settings.nette.form && settings.nette.form.attr('data-adt-submit-form') !== undefined) {
|
|
81
106
|
settings.nette.el.html(settings.nette.el.data('originalContent'));
|
|
82
107
|
settings.nette.form.data('enabledButtons').each(function () {
|
|
83
108
|
$(this).prop('disabled', false);
|