alchemy-form 0.1.12 → 0.2.1
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/CHANGELOG.md +24 -0
- package/assets/stylesheets/form/alchemy_form.scss +2 -16
- package/assets/stylesheets/form/elements/_button.scss +52 -0
- package/assets/stylesheets/form/{alchemy_code_input.scss → elements/_code_input.scss} +1 -1
- package/assets/stylesheets/form/{alchemy_feedback_input.scss → elements/_feedback_input.scss} +6 -8
- package/assets/stylesheets/form/{alchemy_field.scss → elements/_field.scss} +1 -1
- package/assets/stylesheets/form/{alchemy_field_array.scss → elements/_field_array.scss} +2 -2
- package/assets/stylesheets/form/{alchemy_field_translatable.scss → elements/_field_translatable.scss} +1 -1
- package/assets/stylesheets/form/elements/_form.scss +16 -0
- package/assets/stylesheets/form/{alchemy_pager.scss → elements/_pager.scss} +1 -1
- package/assets/stylesheets/form/{query_builder.scss → elements/_query_builder.scss} +14 -8
- package/assets/stylesheets/form/{alchemy_select.scss → elements/_select.scss} +2 -2
- package/assets/stylesheets/form/elements/_state.scss +8 -0
- package/assets/stylesheets/form/{alchemy_table.scss → elements/_table.scss} +2 -2
- package/assets/stylesheets/form/elements/_tabs.scss +47 -0
- package/assets/stylesheets/form/{alchemy_toggle.scss → elements/_toggle.scss} +1 -1
- package/assets/stylesheets/form/elements/index.scss +14 -0
- package/controller/form_api_controller.js +6 -2
- package/element/00_form_base.js +16 -8
- package/element/05_feedback_input.js +4 -13
- package/element/10_alchemy_field_custom.js +13 -15
- package/element/10_dataprovider.js +282 -0
- package/element/15_alchemy_field_entry.js +8 -10
- package/element/20_query_builder_base.js +4 -13
- package/element/25_query_builder_data.js +2 -2
- package/element/30_tab_base.js +29 -0
- package/element/40_stateful.js +125 -0
- package/element/al_button.js +147 -0
- package/element/{code_input.js → al_code_input.js} +1 -10
- package/element/{alchemy_field.js → al_field.js} +18 -25
- package/element/{alchemy_field_array.js → al_field_array.js} +7 -18
- package/element/{alchemy_field_array_entry.js → al_field_array_entry.js} +7 -9
- package/element/{alchemy_field_schema.js → al_field_schema.js} +3 -3
- package/element/{alchemy_field_translatable.js → al_field_translatable.js} +6 -17
- package/element/{alchemy_field_translatable_entry.js → al_field_translatable_entry.js} +2 -4
- package/element/{alchemy_form.js → al_form.js} +11 -18
- package/element/{alchemy_label.js → al_label.js} +1 -10
- package/element/{number_input.js → al_number_input.js} +2 -2
- package/element/{alchemy_pager.js → al_pager.js} +49 -41
- package/element/{alchemy_password_input.js → al_password_input.js} +0 -0
- package/element/{query_builder.js → al_query_builder.js} +3 -12
- package/element/{query_builder_entry.js → al_query_builder_entry.js} +52 -16
- package/element/{query_builder_group.js → al_query_builder_group.js} +7 -7
- package/element/{query_builder_value.js → al_query_builder_value.js} +16 -7
- package/element/{query_builder_variable.js → al_query_builder_variable.js} +1 -1
- package/element/{alchemy_select.js → al_select.js} +64 -118
- package/element/{alchemy_select_item.js → al_select_item.js} +15 -9
- package/element/al_state.js +26 -0
- package/element/{string_input.js → al_string_input.js} +2 -2
- package/element/al_tab_button.js +138 -0
- package/element/al_tab_context.js +102 -0
- package/element/al_tab_list.js +66 -0
- package/element/al_tab_panel.js +44 -0
- package/element/{alchemy_table.js → al_table.js} +187 -174
- package/element/{alchemy_toggle.js → al_toggle.js} +1 -10
- package/helper/form_actions/00_form_action.js +15 -4
- package/helper/form_actions/url_action.js +3 -2
- package/helper/query_builder_variable_definition/boolean_variable_definition.js +1 -1
- package/helper_field/query_builder_field.js +2 -2
- package/package.json +2 -2
- package/view/form/elements/alchemy_button.hwk +1 -0
- package/view/form/elements/alchemy_field.hwk +4 -4
- package/view/form/elements/alchemy_field_array.hwk +2 -2
- package/view/form/elements/alchemy_field_schema.hwk +2 -2
- package/view/form/elements/alchemy_field_translatable.hwk +2 -2
- package/view/form/elements/alchemy_field_translatable_entry.hwk +2 -2
- package/view/form/elements/query_builder.hwk +1 -1
- package/view/form/elements/query_builder_entry.hwk +20 -11
- package/view/form/elements/query_builder_value.hwk +2 -2
- package/view/form/elements/query_builder_variable.hwk +2 -2
- package/view/form/inputs/edit/belongs_to.hwk +2 -2
- package/view/form/inputs/edit/boolean.hwk +2 -2
- package/view/form/inputs/edit/enum.hwk +2 -2
- package/view/form/inputs/edit/has_and_belongs_to_many.hwk +2 -2
- package/view/form/inputs/edit/html.hwk +2 -2
- package/view/form/inputs/edit/query_builder.hwk +2 -2
- package/view/form/inputs/edit/query_builder_assignment.hwk +2 -2
- package/view/form/inputs/edit/query_builder_value.hwk +2 -2
- package/view/form/inputs/edit/query_builder_variable.hwk +2 -2
- package/view/form/inputs/edit/schema.hwk +2 -2
- package/view/form/inputs/edit/sourcecode.hwk +2 -2
- package/view/form/inputs/edit_inline/boolean.hwk +2 -2
- package/view/form/inputs/view/string.hwk +6 -1
- package/view/form/inputs/view_inline/datetime.hwk +8 -4
- package/view/form/inputs/view_inline/string.hwk +6 -1
- package/view/form/wrappers/default/default.hwk +2 -2
- package/helper/widgets/alchemy_field_widget.js +0 -112
- package/helper/widgets/alchemy_form_widget.js +0 -183
- package/helper/widgets/alchemy_table_widget.js +0 -67
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-field element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
@@ -16,15 +16,6 @@ const Field = Function.inherits('Alchemy.Element.Form.Base', 'Field');
|
|
|
16
16
|
*/
|
|
17
17
|
Field.setTemplateFile('form/elements/alchemy_field');
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* The stylesheet to load for this element
|
|
21
|
-
*
|
|
22
|
-
* @author Jelle De Loecker <jelle@develry.be>
|
|
23
|
-
* @since 0.1.0
|
|
24
|
-
* @version 0.1.0
|
|
25
|
-
*/
|
|
26
|
-
Field.setStylesheetFile('form/alchemy_field');
|
|
27
|
-
|
|
28
19
|
/**
|
|
29
20
|
* Use a new Renderer scope for the contents
|
|
30
21
|
*
|
|
@@ -98,19 +89,19 @@ Field.setAttribute('readonly', {boolean: true});
|
|
|
98
89
|
Field.setAssignedProperty('widget_settings');
|
|
99
90
|
|
|
100
91
|
/**
|
|
101
|
-
* Get the parent
|
|
92
|
+
* Get the parent al-form element
|
|
102
93
|
*
|
|
103
94
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
104
95
|
* @since 0.1.0
|
|
105
|
-
* @version 0.
|
|
96
|
+
* @version 0.2.0
|
|
106
97
|
*/
|
|
107
98
|
Field.enforceProperty(function alchemy_form(new_value) {
|
|
108
99
|
|
|
109
100
|
if (new_value == null) {
|
|
110
|
-
new_value = this.queryUp('
|
|
101
|
+
new_value = this.queryUp('al-form');
|
|
111
102
|
|
|
112
103
|
if (!new_value && this.field_context) {
|
|
113
|
-
new_value = this.field_context.queryUp('
|
|
104
|
+
new_value = this.field_context.queryUp('al-form');
|
|
114
105
|
}
|
|
115
106
|
|
|
116
107
|
if (!new_value && this.alchemy_field_schema && this.alchemy_field_schema.alchemy_field) {
|
|
@@ -131,16 +122,16 @@ Field.enforceProperty(function alchemy_form(new_value) {
|
|
|
131
122
|
Field.addElementGetter('error_area', '.error-area');
|
|
132
123
|
|
|
133
124
|
/**
|
|
134
|
-
* Get the optional
|
|
125
|
+
* Get the optional al-field-schema it belongs to
|
|
135
126
|
*
|
|
136
127
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
137
128
|
* @since 0.1.0
|
|
138
|
-
* @version 0.
|
|
129
|
+
* @version 0.2.0
|
|
139
130
|
*/
|
|
140
131
|
Field.enforceProperty(function alchemy_field_schema(new_value, old_value) {
|
|
141
132
|
|
|
142
133
|
if (!new_value) {
|
|
143
|
-
new_value = this.queryUp('
|
|
134
|
+
new_value = this.queryUp('al-field-schema');
|
|
144
135
|
}
|
|
145
136
|
|
|
146
137
|
return new_value;
|
|
@@ -189,7 +180,7 @@ Field.enforceProperty(function schema(new_value, old_value) {
|
|
|
189
180
|
}
|
|
190
181
|
}
|
|
191
182
|
|
|
192
|
-
// See if the
|
|
183
|
+
// See if the al-form element has an explicit schema instance
|
|
193
184
|
if (!new_value && this.alchemy_form) {
|
|
194
185
|
new_value = this.alchemy_form.schema;
|
|
195
186
|
}
|
|
@@ -535,7 +526,7 @@ Field.setProperty(function original_value() {
|
|
|
535
526
|
*
|
|
536
527
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
537
528
|
* @since 0.1.0
|
|
538
|
-
* @version 0.
|
|
529
|
+
* @version 0.2.0
|
|
539
530
|
*/
|
|
540
531
|
Field.setProperty(function value_element() {
|
|
541
532
|
|
|
@@ -543,11 +534,11 @@ Field.setProperty(function value_element() {
|
|
|
543
534
|
|
|
544
535
|
// Translations always get preference
|
|
545
536
|
if (this.is_translatable) {
|
|
546
|
-
input = this.querySelector('
|
|
537
|
+
input = this.querySelector('al-field-translatable');
|
|
547
538
|
} else if (this.is_array) {
|
|
548
|
-
input = this.querySelector('
|
|
539
|
+
input = this.querySelector('al-field-array');
|
|
549
540
|
} else if (this.contains_schema) {
|
|
550
|
-
input = this.querySelector('
|
|
541
|
+
input = this.querySelector('al-field-schema');
|
|
551
542
|
}
|
|
552
543
|
|
|
553
544
|
if (!input) {
|
|
@@ -779,7 +770,7 @@ Field.setMethod(function removeErrors() {
|
|
|
779
770
|
*
|
|
780
771
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
781
772
|
* @since 0.1.0
|
|
782
|
-
* @version 0.1
|
|
773
|
+
* @version 0.2.1
|
|
783
774
|
*/
|
|
784
775
|
Field.setMethod(function retained() {
|
|
785
776
|
|
|
@@ -790,12 +781,14 @@ Field.setMethod(function retained() {
|
|
|
790
781
|
id += this.alchemy_form.id + '-';
|
|
791
782
|
}
|
|
792
783
|
|
|
793
|
-
|
|
784
|
+
if (this.field_name) {
|
|
785
|
+
id += this.field_name.slug();
|
|
786
|
+
}
|
|
794
787
|
|
|
795
788
|
this.id = id;
|
|
796
789
|
}
|
|
797
790
|
|
|
798
|
-
let label = this.querySelector('.form-field-info
|
|
791
|
+
let label = this.querySelector('.form-field-info al-label');
|
|
799
792
|
|
|
800
793
|
if (label && this.value_element) {
|
|
801
794
|
let v_id = this.id + '_fv';
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-field-array element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
6
6
|
* @version 0.1.0
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
FieldArray.super.call(this);
|
|
10
|
-
});
|
|
8
|
+
const FieldArray = Function.inherits('Alchemy.Element.Form.FieldCustom', 'FieldArray');
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* The template to use for the content of this element
|
|
@@ -18,25 +16,16 @@ var FieldArray = Function.inherits('Alchemy.Element.Form.FieldCustom', function
|
|
|
18
16
|
*/
|
|
19
17
|
FieldArray.setTemplateFile('form/elements/alchemy_field_array');
|
|
20
18
|
|
|
21
|
-
/**
|
|
22
|
-
* The stylesheet to load for this element
|
|
23
|
-
*
|
|
24
|
-
* @author Jelle De Loecker <jelle@develry.be>
|
|
25
|
-
* @since 0.1.0
|
|
26
|
-
* @version 0.1.0
|
|
27
|
-
*/
|
|
28
|
-
FieldArray.setStylesheetFile('form/alchemy_field_array');
|
|
29
|
-
|
|
30
19
|
/**
|
|
31
20
|
* Get the live value
|
|
32
21
|
*
|
|
33
22
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
34
23
|
* @since 0.1.0
|
|
35
|
-
* @version 0.
|
|
24
|
+
* @version 0.2.0
|
|
36
25
|
*/
|
|
37
26
|
FieldArray.setProperty(function value() {
|
|
38
27
|
|
|
39
|
-
let entries = this.queryAllNotNested('
|
|
28
|
+
let entries = this.queryAllNotNested('al-field-array-entry'),
|
|
40
29
|
result = [],
|
|
41
30
|
entry,
|
|
42
31
|
i;
|
|
@@ -58,7 +47,7 @@ FieldArray.setProperty(function value() {
|
|
|
58
47
|
*
|
|
59
48
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
60
49
|
* @since 0.1.0
|
|
61
|
-
* @version 0.
|
|
50
|
+
* @version 0.2.0
|
|
62
51
|
*/
|
|
63
52
|
FieldArray.setMethod(function introduced() {
|
|
64
53
|
|
|
@@ -68,7 +57,7 @@ FieldArray.setMethod(function introduced() {
|
|
|
68
57
|
|
|
69
58
|
e.preventDefault();
|
|
70
59
|
|
|
71
|
-
let entry = e.target.queryUp('
|
|
60
|
+
let entry = e.target.queryUp('al-field-array-entry');
|
|
72
61
|
|
|
73
62
|
entry.remove();
|
|
74
63
|
});
|
|
@@ -89,7 +78,7 @@ FieldArray.setMethod(function introduced() {
|
|
|
89
78
|
throw new Error('Unable to add new entry for field "' + alchemy_field.field_title + '", no view files found');
|
|
90
79
|
}
|
|
91
80
|
|
|
92
|
-
let new_entry = that.createElement('
|
|
81
|
+
let new_entry = that.createElement('al-field-array-entry');
|
|
93
82
|
|
|
94
83
|
new_entry.alchemy_field_array = that;
|
|
95
84
|
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-field-array-entry element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
6
6
|
* @version 0.1.0
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
FieldArrayEntry.super.call(this);
|
|
10
|
-
});
|
|
8
|
+
const FieldArrayEntry = Function.inherits('Alchemy.Element.Form.FieldEntry', 'FieldArrayEntry');
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* The template to use for the content of this element
|
|
@@ -19,16 +17,16 @@ var FieldArrayEntry = Function.inherits('Alchemy.Element.Form.FieldEntry', funct
|
|
|
19
17
|
FieldArrayEntry.setTemplateFile('form/elements/alchemy_field_array_entry');
|
|
20
18
|
|
|
21
19
|
/**
|
|
22
|
-
* Get a reference to the
|
|
20
|
+
* Get a reference to the al-field-array parent
|
|
23
21
|
*
|
|
24
22
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
25
23
|
* @since 0.1.0
|
|
26
|
-
* @version 0.
|
|
24
|
+
* @version 0.2.0
|
|
27
25
|
*/
|
|
28
26
|
FieldArrayEntry.enforceProperty(function alchemy_field_array(new_value, old_value) {
|
|
29
27
|
|
|
30
28
|
if (!new_value) {
|
|
31
|
-
new_value = this.queryUp('
|
|
29
|
+
new_value = this.queryUp('al-field-array');
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
return new_value;
|
|
@@ -39,7 +37,7 @@ FieldArrayEntry.enforceProperty(function alchemy_field_array(new_value, old_valu
|
|
|
39
37
|
*
|
|
40
38
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
41
39
|
* @since 0.1.3
|
|
42
|
-
* @version 0.
|
|
40
|
+
* @version 0.2.0
|
|
43
41
|
*/
|
|
44
42
|
FieldArrayEntry.setProperty(function index() {
|
|
45
43
|
|
|
@@ -59,7 +57,7 @@ FieldArrayEntry.setProperty(function index() {
|
|
|
59
57
|
for (let i = 0; i < container.entries_element.children.length; i++) {
|
|
60
58
|
child = container.entries_element.children[i];
|
|
61
59
|
|
|
62
|
-
if (child.tagName == '
|
|
60
|
+
if (child.tagName == 'AL-FIELD-ARRAY-ENTRY') {
|
|
63
61
|
counter++;
|
|
64
62
|
}
|
|
65
63
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-field-schema element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
@@ -98,11 +98,11 @@ FieldSchema.setProperty(function sub_fields() {
|
|
|
98
98
|
*
|
|
99
99
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
100
100
|
* @since 0.1.0
|
|
101
|
-
* @version 0.
|
|
101
|
+
* @version 0.2.0
|
|
102
102
|
*/
|
|
103
103
|
FieldSchema.setProperty(function value() {
|
|
104
104
|
|
|
105
|
-
let entries = this.queryAllNotNested('
|
|
105
|
+
let entries = this.queryAllNotNested('al-field'),
|
|
106
106
|
result = {},
|
|
107
107
|
entry,
|
|
108
108
|
i;
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-field-translatable element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
6
6
|
* @version 0.1.0
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
FieldTranslatable.super.call(this);
|
|
10
|
-
});
|
|
8
|
+
const FieldTranslatable = Function.inherits('Alchemy.Element.Form.FieldCustom', 'FieldTranslatable');
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* The template to use for the content of this element
|
|
@@ -18,25 +16,16 @@ var FieldTranslatable = Function.inherits('Alchemy.Element.Form.FieldCustom', fu
|
|
|
18
16
|
*/
|
|
19
17
|
FieldTranslatable.setTemplateFile('form/elements/alchemy_field_translatable');
|
|
20
18
|
|
|
21
|
-
/**
|
|
22
|
-
* The stylesheet to load for this element
|
|
23
|
-
*
|
|
24
|
-
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
25
|
-
* @since 0.1.0
|
|
26
|
-
* @version 0.1.0
|
|
27
|
-
*/
|
|
28
|
-
FieldTranslatable.setStylesheetFile('form/alchemy_field_translatable');
|
|
29
|
-
|
|
30
19
|
/**
|
|
31
20
|
* Get the live value
|
|
32
21
|
*
|
|
33
22
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
34
23
|
* @since 0.1.0
|
|
35
|
-
* @version 0.
|
|
24
|
+
* @version 0.2.0
|
|
36
25
|
*/
|
|
37
26
|
FieldTranslatable.setProperty(function value() {
|
|
38
27
|
|
|
39
|
-
let entries = this.queryAllNotNested('
|
|
28
|
+
let entries = this.queryAllNotNested('al-field-translatable-entry'),
|
|
40
29
|
result = {},
|
|
41
30
|
entry,
|
|
42
31
|
i;
|
|
@@ -58,12 +47,12 @@ FieldTranslatable.setProperty(function value() {
|
|
|
58
47
|
*
|
|
59
48
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
60
49
|
* @since 0.1.0
|
|
61
|
-
* @version 0.
|
|
50
|
+
* @version 0.2.0
|
|
62
51
|
*/
|
|
63
52
|
FieldTranslatable.setMethod(function showPrefix(prefix) {
|
|
64
53
|
|
|
65
54
|
let buttons = this.queryAllNotNested('.prefix-buttons button'),
|
|
66
|
-
entries = this.queryAllNotNested('
|
|
55
|
+
entries = this.queryAllNotNested('al-field-translatable-entry'),
|
|
67
56
|
element,
|
|
68
57
|
i;
|
|
69
58
|
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-field-translatable-entry element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
6
6
|
* @version 0.1.0
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
FieldTranslatableEntry.super.call(this);
|
|
10
|
-
});
|
|
8
|
+
const FieldTranslatableEntry = Function.inherits('Alchemy.Element.Form.FieldEntry', 'FieldTranslatableEntry');
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* The template to use for the content of this element
|
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-form element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
6
6
|
* @version 0.1.0
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* The stylesheet to load for this element
|
|
12
|
-
*
|
|
13
|
-
* @author Jelle De Loecker <jelle@develry.be>
|
|
14
|
-
* @since 0.1.0
|
|
15
|
-
* @version 0.1.0
|
|
16
|
-
*/
|
|
17
|
-
Form.setStylesheetFile('form/alchemy_form');
|
|
8
|
+
const Form = Function.inherits('Alchemy.Element.Form.Base', 'Form');
|
|
18
9
|
|
|
19
10
|
/**
|
|
20
11
|
* The attribute to use for the route
|
|
@@ -97,11 +88,11 @@ Form.setProperty(function main_error_area() {
|
|
|
97
88
|
*
|
|
98
89
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
99
90
|
* @since 0.1.0
|
|
100
|
-
* @version 0.
|
|
91
|
+
* @version 0.2.0
|
|
101
92
|
*/
|
|
102
93
|
Form.setProperty(function value() {
|
|
103
94
|
|
|
104
|
-
let fields = this.queryAllNotNested('
|
|
95
|
+
let fields = this.queryAllNotNested('al-field'),
|
|
105
96
|
result = {},
|
|
106
97
|
field,
|
|
107
98
|
key,
|
|
@@ -162,13 +153,13 @@ Form.setMethod(Hawkejs.SERIALIZE_FORM, function serializeForm() {
|
|
|
162
153
|
*
|
|
163
154
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
164
155
|
* @since 0.1.0
|
|
165
|
-
* @version 0.1
|
|
156
|
+
* @version 0.2.1
|
|
166
157
|
*/
|
|
167
158
|
Form.setMethod(async function submit() {
|
|
168
159
|
|
|
169
160
|
let result;
|
|
170
161
|
|
|
171
|
-
if (
|
|
162
|
+
if (this.model) {
|
|
172
163
|
let model = alchemy.getModel(this.model);
|
|
173
164
|
|
|
174
165
|
if (model) {
|
|
@@ -192,6 +183,8 @@ Form.setMethod(async function submit() {
|
|
|
192
183
|
throw err;
|
|
193
184
|
}
|
|
194
185
|
}
|
|
186
|
+
|
|
187
|
+
return result;
|
|
195
188
|
});
|
|
196
189
|
|
|
197
190
|
/**
|
|
@@ -282,7 +275,7 @@ Form.setMethod(async function showViolations(err) {
|
|
|
282
275
|
*
|
|
283
276
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
284
277
|
* @since 0.1.0
|
|
285
|
-
* @version 0.
|
|
278
|
+
* @version 0.2.0
|
|
286
279
|
*
|
|
287
280
|
* @param {String} path
|
|
288
281
|
*
|
|
@@ -304,9 +297,9 @@ Form.setMethod(function findFieldByPath(path) {
|
|
|
304
297
|
}
|
|
305
298
|
|
|
306
299
|
if (current.config && current.config.is_array) {
|
|
307
|
-
query = '
|
|
300
|
+
query = 'al-field-array-entry:nth-child(' + (Number(piece) + 1) + ') .field > *';
|
|
308
301
|
} else {
|
|
309
|
-
query = '
|
|
302
|
+
query = 'al-field[field-name="' + piece + '"]';
|
|
310
303
|
}
|
|
311
304
|
|
|
312
305
|
current = current.queryAllNotNested(query)[0];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-label custom element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
@@ -7,15 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
const AlchemyLabel = Function.inherits('Alchemy.Element.Form.Base', 'Label');
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
* The stylesheet to load for this element
|
|
12
|
-
*
|
|
13
|
-
* @author Jelle De Loecker <jelle@develry.be>
|
|
14
|
-
* @since 0.1.0
|
|
15
|
-
* @version 0.1.0
|
|
16
|
-
*/
|
|
17
|
-
AlchemyLabel.setStylesheetFile('form/alchemy_form');
|
|
18
|
-
|
|
19
10
|
/**
|
|
20
11
|
* The linked element
|
|
21
12
|
*
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-number-input custom element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.3
|
|
6
6
|
* @version 0.1.3
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
const NumberInput = Function.inherits('Alchemy.Element.Form.FeedbackInput', 'NumberInput');
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* The hawkejs template to use
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-pager element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.0
|
|
@@ -12,41 +12,32 @@ const Pager = Function.inherits('Alchemy.Element.Form.Base', 'Pager');
|
|
|
12
12
|
*
|
|
13
13
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
14
14
|
* @since 0.1.0
|
|
15
|
-
* @version 0.
|
|
15
|
+
* @version 0.2.0
|
|
16
16
|
*/
|
|
17
17
|
Pager.setTemplate(`<ul>
|
|
18
18
|
<li class="afp-first">
|
|
19
19
|
<a href="#" aria-label="First page">
|
|
20
|
-
<al-
|
|
20
|
+
<al-icon icon-name="left-to-line"></al-icon>
|
|
21
21
|
</a>
|
|
22
22
|
</li>
|
|
23
23
|
<li class="afp-prev">
|
|
24
24
|
<a href="#" aria-label="Previous page">
|
|
25
|
-
<al-
|
|
25
|
+
<al-icon icon-name="left"></al-icon>
|
|
26
26
|
</a>
|
|
27
27
|
</li>
|
|
28
28
|
|
|
29
29
|
<li class="afp-next">
|
|
30
30
|
<a href="#" aria-label="Next page">
|
|
31
|
-
<al-
|
|
31
|
+
<al-icon icon-name="right"></al-icon>
|
|
32
32
|
</a>
|
|
33
33
|
</li>
|
|
34
34
|
<li class="afp-last">
|
|
35
35
|
<a href="#" aria-label="Last page">
|
|
36
|
-
<al-
|
|
36
|
+
<al-icon icon-name="right-to-line"></al-icon>
|
|
37
37
|
</a>
|
|
38
38
|
</li>
|
|
39
39
|
</ul>`, true);
|
|
40
40
|
|
|
41
|
-
/**
|
|
42
|
-
* The stylesheet to load for this element
|
|
43
|
-
*
|
|
44
|
-
* @author Jelle De Loecker <jelle@develry.be>
|
|
45
|
-
* @since 0.1.0
|
|
46
|
-
* @version 0.1.0
|
|
47
|
-
*/
|
|
48
|
-
Pager.setStylesheetFile('form/alchemy_pager');
|
|
49
|
-
|
|
50
41
|
/**
|
|
51
42
|
* Pager links
|
|
52
43
|
*
|
|
@@ -176,7 +167,7 @@ Pager.setMethod(function getVisiblePagesElements() {
|
|
|
176
167
|
*
|
|
177
168
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
178
169
|
* @since 0.1.0
|
|
179
|
-
* @version 0.
|
|
170
|
+
* @version 0.2.0
|
|
180
171
|
*
|
|
181
172
|
* @param {Number} page
|
|
182
173
|
* @param {Number} amount_of_pages
|
|
@@ -209,7 +200,8 @@ Pager.setMethod(function showPage(page, amount_of_pages) {
|
|
|
209
200
|
nr,
|
|
210
201
|
i;
|
|
211
202
|
|
|
212
|
-
|
|
203
|
+
// Create let scope
|
|
204
|
+
if (true) {
|
|
213
205
|
let first_anchor = this.link_first.children[0],
|
|
214
206
|
prev_anchor = this.link_prev.children[0],
|
|
215
207
|
next_anchor = this.link_next.children[0],
|
|
@@ -217,46 +209,59 @@ Pager.setMethod(function showPage(page, amount_of_pages) {
|
|
|
217
209
|
data,
|
|
218
210
|
url;
|
|
219
211
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
212
|
+
if (url_param) {
|
|
213
|
+
data = {};
|
|
214
|
+
data[url_param] = {page: 1};
|
|
215
|
+
url = RURL.parse(src);
|
|
216
|
+
url.param(data);
|
|
217
|
+
first_anchor.setAttribute('href', url);
|
|
218
|
+
}
|
|
224
219
|
|
|
225
|
-
first_anchor.
|
|
220
|
+
first_anchor.dataset.page = 1;
|
|
226
221
|
|
|
227
222
|
let prev = page - 1;
|
|
228
223
|
|
|
229
224
|
if (prev < 1) prev = 1;
|
|
230
225
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
226
|
+
if (url_param) {
|
|
227
|
+
data = {};
|
|
228
|
+
data[url_param] = {page: prev};
|
|
229
|
+
url = RURL.parse(src);
|
|
230
|
+
url.param(data);
|
|
231
|
+
prev_anchor.setAttribute('href', url);
|
|
232
|
+
}
|
|
235
233
|
|
|
236
|
-
prev_anchor.
|
|
234
|
+
prev_anchor.dataset.page = prev;
|
|
237
235
|
|
|
238
236
|
let next = page + 1;
|
|
239
237
|
|
|
240
238
|
if (next > amount_of_pages) {
|
|
241
239
|
next_anchor.href = '#';
|
|
242
240
|
next_anchor.disabled = true;
|
|
241
|
+
next_anchor.removeAttribute('data-page');
|
|
243
242
|
} else {
|
|
244
243
|
next_anchor.disabled = false;
|
|
245
244
|
|
|
245
|
+
if (url_param) {
|
|
246
|
+
data = {};
|
|
247
|
+
data[url_param] = {page: next};
|
|
248
|
+
url = RURL.parse(src);
|
|
249
|
+
url.param(data);
|
|
250
|
+
next_anchor.setAttribute('href', url);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
next_anchor.dataset.page = next;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if (url_param) {
|
|
246
257
|
data = {};
|
|
247
|
-
data[url_param] = {page:
|
|
258
|
+
data[url_param] = {page: amount_of_pages};
|
|
248
259
|
url = RURL.parse(src);
|
|
249
260
|
url.param(data);
|
|
250
|
-
|
|
251
|
-
next_anchor.setAttribute('href', url);
|
|
261
|
+
last_anchor.setAttribute('href', url);
|
|
252
262
|
}
|
|
253
263
|
|
|
254
|
-
|
|
255
|
-
data[url_param] = {page: amount_of_pages};
|
|
256
|
-
url = RURL.parse(src);
|
|
257
|
-
url.param(data);
|
|
258
|
-
|
|
259
|
-
last_anchor.setAttribute('href', url);
|
|
264
|
+
last_anchor.dataset.page = amount_of_pages;
|
|
260
265
|
}
|
|
261
266
|
|
|
262
267
|
for (i = 0; i < page_links.length; i++) {
|
|
@@ -316,13 +321,16 @@ Pager.setMethod(function introduced() {
|
|
|
316
321
|
|
|
317
322
|
this.addEventListener('click', function onClick(e) {
|
|
318
323
|
|
|
319
|
-
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
let page_nr_el = e.target.queryParents('[data-page]');
|
|
324
|
+
let page_nr_el = e.target.queryUp('[data-page]');
|
|
324
325
|
|
|
325
326
|
if (!page_nr_el) {
|
|
327
|
+
|
|
328
|
+
let anchor = e.target.queryUp('a');
|
|
329
|
+
|
|
330
|
+
if (anchor && anchor.href == '#') {
|
|
331
|
+
e.preventDefault();
|
|
332
|
+
}
|
|
333
|
+
|
|
326
334
|
return;
|
|
327
335
|
}
|
|
328
336
|
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The al-toggle custom element
|
|
3
3
|
*
|
|
4
4
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.1.6
|
|
@@ -14,16 +14,7 @@ const QueryBuilder = Function.inherits('Alchemy.Element.Form.Base', 'QueryBuilde
|
|
|
14
14
|
* @since 0.1.6
|
|
15
15
|
* @version 0.1.6
|
|
16
16
|
*/
|
|
17
|
-
QueryBuilder.setTemplate(`<
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* The stylesheet to load for this element
|
|
21
|
-
*
|
|
22
|
-
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
23
|
-
* @since 0.1.6
|
|
24
|
-
* @version 0.1.6
|
|
25
|
-
*/
|
|
26
|
-
QueryBuilder.setStylesheetFile('form/query_builder');
|
|
17
|
+
QueryBuilder.setTemplate(`<al-query-builder-group></al-query-builder-group>`, {plain_html: true, render_immediate: true});
|
|
27
18
|
|
|
28
19
|
/**
|
|
29
20
|
* The dataprovider used to get the variables
|
|
@@ -41,7 +32,7 @@ QueryBuilder.setAssignedProperty('dataprovider');
|
|
|
41
32
|
* @since 0.1.6
|
|
42
33
|
* @version 0.1.6
|
|
43
34
|
*/
|
|
44
|
-
QueryBuilder.addElementGetter('root_group', ':scope >
|
|
35
|
+
QueryBuilder.addElementGetter('root_group', ':scope > al-query-builder-group');
|
|
45
36
|
|
|
46
37
|
/**
|
|
47
38
|
* Get/set the value
|