@atlassian/aui 9.3.22 → 9.3.23
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/LICENSE.md +1 -1
- package/README.md +7 -9
- package/dist/aui/aui-css-deprecations.js.map +1 -1
- package/dist/aui/aui-prototyping-browserfocus.css +1 -1
- package/dist/aui/aui-prototyping.css +9 -9
- package/dist/aui/aui-prototyping.js +2 -2
- package/dist/aui/aui-prototyping.js.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.css +9 -9
- package/dist/aui/aui-prototyping.nodeps.js +2 -2
- package/dist/aui/aui-prototyping.nodeps.js.map +1 -1
- package/entry/aui.batch.components.js +21 -21
- package/entry/aui.batch.page.js +3 -3
- package/entry/aui.batch.patterns.js +20 -20
- package/entry/aui.batch.prototyping.js +3 -11
- package/entry/aui.component.nav.js +1 -1
- package/entry/aui.component.progressbar.js +4 -1
- package/entry/aui.side-effects.js +2 -2
- package/entry/behaviours/aui.behaviour.format.js +1 -1
- package/entry/behaviours/aui.behaviour.i18n.js +1 -1
- package/entry/behaviours/aui.behaviour.keyboard-shortcuts.js +1 -1
- package/entry/behaviours/aui.behaviour.progressive-data-set.js +1 -1
- package/entry/behaviours/aui.behaviour.version.js +1 -1
- package/entry/deprecated/aui.component.inline-dialog1.js +1 -1
- package/package.json +1 -1
- package/src/js/aui/alphanum.js +1 -1
- package/src/js/aui/banner.js +2 -2
- package/src/js/aui/blanket.js +7 -11
- package/src/js/aui/button.js +5 -5
- package/src/js/aui/checkbox-multiselect.js +79 -76
- package/src/js/aui/clone.js +1 -1
- package/src/js/aui/close-button.js +2 -6
- package/src/js/aui/contain-dropdown.js +5 -5
- package/src/js/aui/contains.js +1 -1
- package/src/js/aui/cookie.js +12 -16
- package/src/js/aui/date-picker.js +84 -69
- package/src/js/aui/debounce.js +5 -8
- package/src/js/aui/dialog.js +206 -172
- package/src/js/aui/dialog2.js +9 -8
- package/src/js/aui/dropdown2.js +211 -181
- package/src/js/aui/escape-html.js +2 -2
- package/src/js/aui/escape.js +1 -1
- package/src/js/aui/event.js +4 -8
- package/src/js/aui/expander.js +9 -7
- package/src/js/aui/flag.js +15 -17
- package/src/js/aui/focus-manager.js +19 -18
- package/src/js/aui/form-notification.js +14 -13
- package/src/js/aui/form-validation/basic-validators.js +39 -30
- package/src/js/aui/form-validation/validator-register.js +9 -5
- package/src/js/aui/form-validation.js +17 -14
- package/src/js/aui/format.js +9 -6
- package/src/js/aui/forms/create-forms-component-body.js +6 -9
- package/src/js/aui/forms/custom-checkbox.js +2 -6
- package/src/js/aui/forms/custom-radio.js +2 -6
- package/src/js/aui/forms.js +4 -8
- package/src/js/aui/header-async.js +1 -1
- package/src/js/aui/header.js +2 -2
- package/src/js/aui/i18n.js +2 -5
- package/src/js/aui/index-of.js +1 -1
- package/src/js/aui/inline-dialog.js +171 -117
- package/src/js/aui/inline-dialog2.js +60 -50
- package/src/js/aui/internal/add-id.js +1 -1
- package/src/js/aui/internal/alignment.js +57 -49
- package/src/js/aui/internal/amdify.js +0 -1
- package/src/js/aui/internal/animation.js +2 -5
- package/src/js/aui/internal/attributes.js +2 -3
- package/src/js/aui/internal/browser.js +5 -6
- package/src/js/aui/internal/constants.js +1 -3
- package/src/js/aui/internal/deduplicateIDs.js +8 -7
- package/src/js/aui/internal/deprecation/deprecated-adg2-icons.js +132 -132
- package/src/js/aui/internal/deprecation.js +53 -31
- package/src/js/aui/internal/detect-children-change.js +3 -2
- package/src/js/aui/internal/elements.js +2 -5
- package/src/js/aui/internal/enforcer.js +11 -13
- package/src/js/aui/internal/globalize.js +3 -3
- package/src/js/aui/internal/has-touch.js +1 -2
- package/src/js/aui/internal/header/create-header.js +54 -28
- package/src/js/aui/internal/i18n/aui.js +8 -5
- package/src/js/aui/internal/i18n/aui_af.js +31 -31
- package/src/js/aui/internal/i18n/aui_ar.js +31 -31
- package/src/js/aui/internal/i18n/aui_ar_DZ.js +31 -31
- package/src/js/aui/internal/i18n/aui_az.js +31 -31
- package/src/js/aui/internal/i18n/aui_bg.js +31 -31
- package/src/js/aui/internal/i18n/aui_bs.js +31 -31
- package/src/js/aui/internal/i18n/aui_ca.js +31 -31
- package/src/js/aui/internal/i18n/aui_cs.js +31 -31
- package/src/js/aui/internal/i18n/aui_da.js +31 -31
- package/src/js/aui/internal/i18n/aui_de.js +31 -31
- package/src/js/aui/internal/i18n/aui_el.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_AU.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_GB.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_NZ.js +31 -31
- package/src/js/aui/internal/i18n/aui_eo.js +31 -31
- package/src/js/aui/internal/i18n/aui_es.js +31 -31
- package/src/js/aui/internal/i18n/aui_et.js +31 -31
- package/src/js/aui/internal/i18n/aui_eu.js +31 -31
- package/src/js/aui/internal/i18n/aui_fa.js +31 -31
- package/src/js/aui/internal/i18n/aui_fi.js +31 -31
- package/src/js/aui/internal/i18n/aui_fo.js +31 -31
- package/src/js/aui/internal/i18n/aui_fr.js +31 -31
- package/src/js/aui/internal/i18n/aui_fr_CH.js +31 -31
- package/src/js/aui/internal/i18n/aui_gl.js +31 -31
- package/src/js/aui/internal/i18n/aui_he.js +31 -31
- package/src/js/aui/internal/i18n/aui_hr.js +31 -31
- package/src/js/aui/internal/i18n/aui_hu.js +31 -31
- package/src/js/aui/internal/i18n/aui_hy.js +31 -31
- package/src/js/aui/internal/i18n/aui_id.js +31 -31
- package/src/js/aui/internal/i18n/aui_is.js +31 -31
- package/src/js/aui/internal/i18n/aui_it.js +31 -31
- package/src/js/aui/internal/i18n/aui_ja.js +31 -31
- package/src/js/aui/internal/i18n/aui_ko.js +31 -31
- package/src/js/aui/internal/i18n/aui_kz.js +31 -31
- package/src/js/aui/internal/i18n/aui_lt.js +31 -31
- package/src/js/aui/internal/i18n/aui_lv.js +31 -31
- package/src/js/aui/internal/i18n/aui_ml.js +31 -31
- package/src/js/aui/internal/i18n/aui_ms.js +31 -31
- package/src/js/aui/internal/i18n/aui_nl.js +31 -31
- package/src/js/aui/internal/i18n/aui_no.js +31 -31
- package/src/js/aui/internal/i18n/aui_pl.js +31 -31
- package/src/js/aui/internal/i18n/aui_pt.js +31 -31
- package/src/js/aui/internal/i18n/aui_pt_BR.js +31 -31
- package/src/js/aui/internal/i18n/aui_rm.js +31 -31
- package/src/js/aui/internal/i18n/aui_ro.js +31 -31
- package/src/js/aui/internal/i18n/aui_ru.js +31 -31
- package/src/js/aui/internal/i18n/aui_sk.js +31 -31
- package/src/js/aui/internal/i18n/aui_sl.js +31 -31
- package/src/js/aui/internal/i18n/aui_sq.js +31 -31
- package/src/js/aui/internal/i18n/aui_sr.js +31 -31
- package/src/js/aui/internal/i18n/aui_sr_SR.js +31 -31
- package/src/js/aui/internal/i18n/aui_sv.js +31 -31
- package/src/js/aui/internal/i18n/aui_ta.js +31 -31
- package/src/js/aui/internal/i18n/aui_th.js +31 -31
- package/src/js/aui/internal/i18n/aui_tj.js +31 -31
- package/src/js/aui/internal/i18n/aui_tr.js +31 -31
- package/src/js/aui/internal/i18n/aui_uk.js +31 -31
- package/src/js/aui/internal/i18n/aui_vi.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_CN.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_HK.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_TW.js +31 -31
- package/src/js/aui/internal/log.js +2 -6
- package/src/js/aui/internal/mediaQuery.js +2 -3
- package/src/js/aui/internal/select/option.js +3 -3
- package/src/js/aui/internal/select/suggestion-model.js +1 -1
- package/src/js/aui/internal/select/suggestions-model.js +4 -5
- package/src/js/aui/internal/select/suggestions-view.js +17 -12
- package/src/js/aui/internal/state.js +2 -3
- package/src/js/aui/is-clipped.js +2 -2
- package/src/js/aui/key-code.js +1 -1
- package/src/js/aui/label.js +6 -6
- package/src/js/aui/layer.js +100 -98
- package/src/js/aui/messages.js +51 -38
- package/src/js/aui/navigation.js +7 -9
- package/src/js/aui/on-text-resize.js +7 -5
- package/src/js/aui/params.js +11 -8
- package/src/js/aui/polyfills/custom-event.js +7 -7
- package/src/js/aui/polyfills/placeholder.js +4 -4
- package/src/js/aui/populate-parameters.js +4 -4
- package/src/js/aui/progress-indicator.js +35 -27
- package/src/js/aui/progressive-data-set.js +13 -8
- package/src/js/aui/query-input.js +1 -1
- package/src/js/aui/restful-table/class-names.js +1 -1
- package/src/js/aui/restful-table/data-keys.js +1 -1
- package/src/js/aui/restful-table/edit-row.js +63 -63
- package/src/js/aui/restful-table/entry-model.js +6 -13
- package/src/js/aui/restful-table/event-handlers.js +4 -8
- package/src/js/aui/restful-table/event-names.js +1 -1
- package/src/js/aui/restful-table/row.js +41 -23
- package/src/js/aui/restful-table.js +101 -72
- package/src/js/aui/result-set.js +5 -5
- package/src/js/aui/results-list.js +3 -3
- package/src/js/aui/select.js +65 -49
- package/src/js/aui/select2.js +14 -6
- package/src/js/aui/sidebar.js +81 -51
- package/src/js/aui/spin.js +61 -49
- package/src/js/aui/spinner.js +11 -12
- package/src/js/aui/tables-sortable.js +21 -10
- package/src/js/aui/tabs.js +108 -77
- package/src/js/aui/to-init.js +1 -1
- package/src/js/aui/toggle.js +55 -43
- package/src/js/aui/tooltip.js +32 -31
- package/src/js/aui/trigger.js +20 -18
- package/src/js/aui/truncating-progressive-data-set.js +1 -1
- package/src/js/aui/unbind-text-resize.js +1 -1
- package/src/js/aui/unique-id.js +1 -1
- package/src/js/aui/when-i-type.js +66 -39
- package/src/js/aui-css-deprecations.js +50 -50
- package/src/js/jquery/jquery.hotkeys.js +124 -49
- package/src/js/jquery/jquery.moveto.js +18 -12
- package/src/less/adg-fancy-file-input.less +2 -3
- package/src/less/adg-header-quicksearch.less +4 -1
- package/src/less/adg-iconfont.less +242 -242
- package/src/less/adgs-icons.less +262 -262
- package/src/less/aui-appheader.less +10 -6
- package/src/less/aui-buttons.less +6 -5
- package/src/less/aui-date-picker.less +9 -6
- package/src/less/aui-experimental-expander.less +8 -8
- package/src/less/aui-experimental-labels.less +4 -3
- package/src/less/aui-experimental-progress-indicator.less +10 -4
- package/src/less/aui-experimental-progress-tracker.less +9 -6
- package/src/less/aui-experimental-restfultable.less +11 -3
- package/src/less/aui-experimental-tables-sortable.less +5 -3
- package/src/less/aui-experimental-tooltip.less +1 -1
- package/src/less/aui-link.less +0 -1
- package/src/less/aui-lozenge.less +6 -3
- package/src/less/aui-navigation.less +13 -13
- package/src/less/aui-page-layout.less +3 -4
- package/src/less/aui-page-typography.less +8 -3
- package/src/less/aui-reset.less +22 -6
- package/src/less/aui-select2.less +11 -8
- package/src/less/aui-sidebar-badges.less +1 -2
- package/src/less/aui-sidebar-config.less +7 -2
- package/src/less/aui-sidebar-grouping.less +16 -6
- package/src/less/aui-sidebar-navigation.less +7 -5
- package/src/less/aui-sidebar-skeleton.less +4 -3
- package/src/less/aui-skip-link.less +2 -1
- package/src/less/aui-spinner.less +2 -2
- package/src/less/aui-toggle.less +2 -2
- package/src/less/aui-toolbar2.less +1 -1
- package/src/less/checkbox-multiselect.less +13 -13
- package/src/less/dialog.less +3 -3
- package/src/less/dialog2.less +12 -11
- package/src/less/dropdown2-temp.css +4 -4
- package/src/less/dropdown2.less +3 -3
- package/src/less/form-notification.less +10 -6
- package/src/less/forms-current.less +6 -5
- package/src/less/forms-legacy.less +4 -2
- package/src/less/forms-radios-and-checkboxes.less +9 -11
- package/src/less/forms.less +2 -4
- package/src/less/iconfont-mixin.less +7 -4
- package/src/less/imports/aui-theme/adg/adg-colors.less +40 -40
- package/src/less/imports/aui-theme/adg/adg-neutral-dark.less +20 -20
- package/src/less/imports/aui-theme/adg/adg-neutral-light.less +20 -20
- package/src/less/imports/aui-theme/components/buttons.less +5 -1
- package/src/less/imports/aui-theme/components/dropdown.less +3 -1
- package/src/less/imports/aui-theme/components/form-notification.less +2 -1
- package/src/less/imports/aui-theme/components/forms.less +16 -1
- package/src/less/imports/aui-theme/components/inline-dialog2.less +1 -1
- package/src/less/imports/aui-theme/components/navigation.less +3 -3
- package/src/less/imports/aui-theme/components/progress-tracker.less +6 -2
- package/src/less/imports/aui-theme/components/tables.less +3 -2
- package/src/less/imports/aui-theme/components/toggle.less +8 -3
- package/src/less/imports/aui-theme/core/colors.less +12 -4
- package/src/less/imports/aui-theme/core/icons.less +22 -22
- package/src/less/imports/aui-theme/core/text.less +6 -3
- package/src/less/imports/mixins/dropdown2-trigger-chevron-icon.less +0 -1
- package/src/less/imports/mixins/focus.less +12 -4
- package/src/less/imports/mixins/media-queries.less +2 -2
- package/src/less/imports/mixins/shadows.less +3 -1
- package/src/less/imports/mixins/tab-indicator.less +2 -2
- package/src/less/imports/mixins.less +11 -4
- package/src/less/inline-dialog.less +21 -19
- package/src/less/layer.less +0 -2
- package/src/less/messages.less +2 -1
- package/src/less/single-select.less +14 -9
- package/src/less/tables.less +3 -2
- package/src/less/tabs.less +4 -3
|
@@ -5,7 +5,7 @@ import classNames from './class-names';
|
|
|
5
5
|
import dataKeys from './data-keys';
|
|
6
6
|
import events from './event-names';
|
|
7
7
|
import { I18n } from '../i18n';
|
|
8
|
-
import {appendStatusSpinner, removeStatusSpinner} from './spinner';
|
|
8
|
+
import { appendStatusSpinner, removeStatusSpinner } from './spinner';
|
|
9
9
|
|
|
10
10
|
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
|
|
11
11
|
|
|
@@ -18,9 +18,9 @@ export default Backbone.View.extend({
|
|
|
18
18
|
|
|
19
19
|
// delegate events
|
|
20
20
|
events: {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
focusin: '_focus',
|
|
22
|
+
click: '_focus',
|
|
23
|
+
keyup: '_handleKeyUpEvent',
|
|
24
24
|
},
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -50,20 +50,19 @@ export default Backbone.View.extend({
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
this.fieldFocusSelector = options.fieldFocusSelector;
|
|
53
|
-
this
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
.on(this._event.SAVE, (focusUpdated) => !this.disabled && this.submit(focusUpdated))
|
|
53
|
+
this.on(this._event.CANCEL, () => {
|
|
54
|
+
if (!this.isCreateRow) {
|
|
55
|
+
this.disabled = true;
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
.on(this._event.SAVE, (focusUpdated) => !this.disabled && this.submit(focusUpdated))
|
|
60
59
|
.on(this._event.FOCUS, (name) => this.focus(name))
|
|
61
60
|
.on(this._event.BLUR, () => {
|
|
62
61
|
this.$el.removeClass(this.classNames.FOCUSED);
|
|
63
62
|
this.disable();
|
|
64
63
|
})
|
|
65
64
|
.on(this._event.SUBMIT_STARTED, () => this._submitStarted())
|
|
66
|
-
.on(this._event.SUBMIT_FINISHED, () => this._submitFinished())
|
|
65
|
+
.on(this._event.SUBMIT_FINISHED, () => this._submitFinished());
|
|
67
66
|
},
|
|
68
67
|
|
|
69
68
|
/**
|
|
@@ -73,13 +72,11 @@ export default Backbone.View.extend({
|
|
|
73
72
|
*/
|
|
74
73
|
defaultColumnRenderer: function (data) {
|
|
75
74
|
if (data.allowEdit !== false) {
|
|
76
|
-
return $("<input type='text' />")
|
|
77
|
-
|
|
78
|
-
.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
'aria-label': data.ariaLabel
|
|
82
|
-
});
|
|
75
|
+
return $("<input type='text' />").addClass('text').attr({
|
|
76
|
+
'name': data.name,
|
|
77
|
+
'value': data.value,
|
|
78
|
+
'aria-label': data.ariaLabel,
|
|
79
|
+
});
|
|
83
80
|
} else if (data.value) {
|
|
84
81
|
return document.createTextNode(data.value);
|
|
85
82
|
}
|
|
@@ -124,9 +121,7 @@ export default Backbone.View.extend({
|
|
|
124
121
|
*/
|
|
125
122
|
_submitStarted: function () {
|
|
126
123
|
this.submitting = true;
|
|
127
|
-
this.showLoading()
|
|
128
|
-
.disable()
|
|
129
|
-
.delegateEvents({});
|
|
124
|
+
this.showLoading().disable().delegateEvents({});
|
|
130
125
|
|
|
131
126
|
return this;
|
|
132
127
|
},
|
|
@@ -138,9 +133,7 @@ export default Backbone.View.extend({
|
|
|
138
133
|
*/
|
|
139
134
|
_submitFinished: function () {
|
|
140
135
|
this.submitting = false;
|
|
141
|
-
this.hideLoading()
|
|
142
|
-
.enable()
|
|
143
|
-
.delegateEvents(this.events);
|
|
136
|
+
this.hideLoading().enable().delegateEvents(this.events);
|
|
144
137
|
|
|
145
138
|
return this;
|
|
146
139
|
},
|
|
@@ -159,7 +152,6 @@ export default Backbone.View.extend({
|
|
|
159
152
|
return this;
|
|
160
153
|
},
|
|
161
154
|
|
|
162
|
-
|
|
163
155
|
/**
|
|
164
156
|
* Returns true if row has focused class
|
|
165
157
|
*
|
|
@@ -185,7 +177,6 @@ export default Backbone.View.extend({
|
|
|
185
177
|
if (name) {
|
|
186
178
|
$focus = this.$el.find(this.fieldFocusSelector(name));
|
|
187
179
|
} else {
|
|
188
|
-
|
|
189
180
|
$error = this.$el.find(this.classNames.ERROR + ':first');
|
|
190
181
|
|
|
191
182
|
if ($error.length === 0) {
|
|
@@ -216,7 +207,9 @@ export default Backbone.View.extend({
|
|
|
216
207
|
$submit = this.$el.find(':submit');
|
|
217
208
|
|
|
218
209
|
if ($submit.length) {
|
|
219
|
-
$replacementSubmit = $(
|
|
210
|
+
$replacementSubmit = $(
|
|
211
|
+
"<input type='submit' class='" + this.classNames.SUBMIT + "' />"
|
|
212
|
+
)
|
|
220
213
|
.addClass($submit.attr('class'))
|
|
221
214
|
.val($submit.val())
|
|
222
215
|
.data(this.dataKeys.ENABLED_SUBMIT, $submit);
|
|
@@ -225,9 +218,7 @@ export default Backbone.View.extend({
|
|
|
225
218
|
}
|
|
226
219
|
}
|
|
227
220
|
|
|
228
|
-
this.$el.addClass(this.classNames.DISABLED)
|
|
229
|
-
.find(':submit')
|
|
230
|
-
.attr('disabled', 'disabled');
|
|
221
|
+
this.$el.addClass(this.classNames.DISABLED).find(':submit').attr('disabled', 'disabled');
|
|
231
222
|
|
|
232
223
|
return this;
|
|
233
224
|
},
|
|
@@ -252,9 +243,7 @@ export default Backbone.View.extend({
|
|
|
252
243
|
}
|
|
253
244
|
}
|
|
254
245
|
|
|
255
|
-
this.$el.removeClass(this.classNames.DISABLED)
|
|
256
|
-
.find(':submit')
|
|
257
|
-
.removeAttr('disabled');
|
|
246
|
+
this.$el.removeClass(this.classNames.DISABLED).find(':submit').removeAttr('disabled');
|
|
258
247
|
|
|
259
248
|
return this;
|
|
260
249
|
},
|
|
@@ -296,9 +285,7 @@ export default Backbone.View.extend({
|
|
|
296
285
|
*/
|
|
297
286
|
serializeObject: function () {
|
|
298
287
|
var $el = this.$el;
|
|
299
|
-
return $el.serializeObject ?
|
|
300
|
-
$el.serializeObject() :
|
|
301
|
-
$el.serialize();
|
|
288
|
+
return $el.serializeObject ? $el.serializeObject() : $el.serialize();
|
|
302
289
|
},
|
|
303
290
|
|
|
304
291
|
mapSubmitParams: function (params) {
|
|
@@ -345,7 +332,7 @@ export default Backbone.View.extend({
|
|
|
345
332
|
|
|
346
333
|
instance.model = new instance._modelClass(); // reset
|
|
347
334
|
|
|
348
|
-
instance.render({errors: {}, values: {}}); // pulls in instance's model for create row
|
|
335
|
+
instance.render({ errors: {}, values: {} }); // pulls in instance's model for create row
|
|
349
336
|
instance.trigger(instance._event.FOCUS);
|
|
350
337
|
}
|
|
351
338
|
|
|
@@ -361,7 +348,7 @@ export default Backbone.View.extend({
|
|
|
361
348
|
instance.trigger(instance._event.SUBMIT_FINISHED);
|
|
362
349
|
},
|
|
363
350
|
|
|
364
|
-
silent: true
|
|
351
|
+
silent: true,
|
|
365
352
|
});
|
|
366
353
|
|
|
367
354
|
return this;
|
|
@@ -391,7 +378,8 @@ export default Backbone.View.extend({
|
|
|
391
378
|
|
|
392
379
|
if (errors) {
|
|
393
380
|
$.each(errors, function (name, msg) {
|
|
394
|
-
instance.$el
|
|
381
|
+
instance.$el
|
|
382
|
+
.find("[name='" + name + "']")
|
|
395
383
|
.closest('td')
|
|
396
384
|
.append(instance.renderError(name, msg));
|
|
397
385
|
});
|
|
@@ -400,20 +388,21 @@ export default Backbone.View.extend({
|
|
|
400
388
|
return this;
|
|
401
389
|
},
|
|
402
390
|
|
|
403
|
-
|
|
404
391
|
/**
|
|
405
392
|
* Handles rendering of row
|
|
406
393
|
*
|
|
407
394
|
* @param {Object} renderData
|
|
408
395
|
* ... {Object} vales - Values of fields
|
|
409
396
|
*/
|
|
410
|
-
render: function
|
|
397
|
+
render: function (renderData) {
|
|
411
398
|
var instance = this;
|
|
412
399
|
|
|
413
400
|
this.$el.empty();
|
|
414
401
|
|
|
415
402
|
if (this.allowReorder) {
|
|
416
|
-
$('<td class="' + this.classNames.ORDER + '" />')
|
|
403
|
+
$('<td class="' + this.classNames.ORDER + '" />')
|
|
404
|
+
.append(this.renderDragHandle())
|
|
405
|
+
.appendTo(instance.$el);
|
|
417
406
|
}
|
|
418
407
|
|
|
419
408
|
$.each(this.columns, function (i, column) {
|
|
@@ -421,9 +410,14 @@ export default Backbone.View.extend({
|
|
|
421
410
|
var $cell;
|
|
422
411
|
var value = renderData.values[column.id];
|
|
423
412
|
var args = [
|
|
424
|
-
{
|
|
413
|
+
{
|
|
414
|
+
name: column.id,
|
|
415
|
+
ariaLabel: column.inputAriaLabel ? column.inputAriaLabel : column.header,
|
|
416
|
+
value: value,
|
|
417
|
+
allowEdit: column.allowEdit,
|
|
418
|
+
},
|
|
425
419
|
renderData.values,
|
|
426
|
-
instance.model
|
|
420
|
+
instance.model,
|
|
427
421
|
];
|
|
428
422
|
if (value) {
|
|
429
423
|
instance.$el.attr('data-' + column.id, value); // helper for webdriver testing
|
|
@@ -432,12 +426,11 @@ export default Backbone.View.extend({
|
|
|
432
426
|
if (instance.isCreateRow && column.createView) {
|
|
433
427
|
// TODO AUI-1058 - The row's model should be guaranteed to be in the correct state by this point.
|
|
434
428
|
contents = new column.createView({
|
|
435
|
-
model: instance.model
|
|
429
|
+
model: instance.model,
|
|
436
430
|
}).render(args[0]);
|
|
437
|
-
|
|
438
431
|
} else if (column.editView) {
|
|
439
432
|
contents = new column.editView({
|
|
440
|
-
model: instance.model
|
|
433
|
+
model: instance.model,
|
|
441
434
|
}).render(args[0]);
|
|
442
435
|
} else {
|
|
443
436
|
contents = instance.defaultColumnRenderer.apply(instance, args);
|
|
@@ -479,23 +472,30 @@ export default Backbone.View.extend({
|
|
|
479
472
|
var $operations = $('<td class="aui-restfultable-operations" />');
|
|
480
473
|
|
|
481
474
|
if (update) {
|
|
482
|
-
$operations
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
475
|
+
$operations
|
|
476
|
+
.append(
|
|
477
|
+
$('<input class="aui-button aui-button-primary" type="submit" />').attr({
|
|
478
|
+
accesskey: this.submitAccessKey,
|
|
479
|
+
value: I18n.getText('aui.words.update'),
|
|
480
|
+
})
|
|
481
|
+
)
|
|
482
|
+
.append(
|
|
483
|
+
$('<a class="aui-button aui-button-link" href="#" />')
|
|
484
|
+
.addClass(this.classNames.CANCEL)
|
|
485
|
+
.text(I18n.getText('aui.words.cancel'))
|
|
486
|
+
.attr({
|
|
487
|
+
accesskey: this.cancelAccessKey,
|
|
488
|
+
})
|
|
489
|
+
);
|
|
492
490
|
} else {
|
|
493
|
-
$operations.append(
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
491
|
+
$operations.append(
|
|
492
|
+
$('<input class="aui-button aui-button-primary" type="submit" />').attr({
|
|
493
|
+
accesskey: this.submitAccessKey,
|
|
494
|
+
value: I18n.getText('aui.words.add'),
|
|
495
|
+
})
|
|
496
|
+
);
|
|
497
497
|
}
|
|
498
498
|
|
|
499
499
|
return $operations.add($(`<td class="${this.classNames.STATUS}" />`));
|
|
500
|
-
}
|
|
500
|
+
},
|
|
501
501
|
});
|
|
@@ -40,10 +40,8 @@ var EntryModel = Backbone.Model.extend({
|
|
|
40
40
|
var error = options.error; // we override, so store original
|
|
41
41
|
var success = options.success;
|
|
42
42
|
|
|
43
|
-
|
|
44
43
|
// override error handler to provide some defaults
|
|
45
44
|
options.error = function (model, xhr) {
|
|
46
|
-
|
|
47
45
|
var data = $.parseJSON(xhr.responseText || xhr.data);
|
|
48
46
|
|
|
49
47
|
// call original error handler
|
|
@@ -54,25 +52,23 @@ var EntryModel = Backbone.Model.extend({
|
|
|
54
52
|
|
|
55
53
|
// if it is a new model, we don't have to worry about updating only changed attributes because they are all new
|
|
56
54
|
if (this.isNew()) {
|
|
57
|
-
|
|
58
55
|
// call super
|
|
59
56
|
Backbone.Model.prototype.save.call(this, attributes, options);
|
|
60
57
|
|
|
61
|
-
|
|
58
|
+
// only go to server if something has changed
|
|
62
59
|
} else if (attributes) {
|
|
63
60
|
// create temporary model
|
|
64
61
|
Model = EntryModel.extend({
|
|
65
|
-
url: this.url()
|
|
62
|
+
url: this.url(),
|
|
66
63
|
});
|
|
67
64
|
|
|
68
65
|
syncModel = new Model({
|
|
69
|
-
id: this.id
|
|
66
|
+
id: this.id,
|
|
70
67
|
});
|
|
71
68
|
|
|
72
69
|
syncModel.save = Backbone.Model.prototype.save;
|
|
73
70
|
|
|
74
71
|
options.success = function (model, xhr) {
|
|
75
|
-
|
|
76
72
|
// update original model with saved attributes
|
|
77
73
|
instance.clear().set(model.toJSON());
|
|
78
74
|
|
|
@@ -112,7 +108,7 @@ var EntryModel = Backbone.Model.extend({
|
|
|
112
108
|
data: options.data || {},
|
|
113
109
|
contentType: 'application/json',
|
|
114
110
|
success(data) {
|
|
115
|
-
if (instance.collection){
|
|
111
|
+
if (instance.collection) {
|
|
116
112
|
instance.collection.remove(instance);
|
|
117
113
|
}
|
|
118
114
|
if (options.success) {
|
|
@@ -124,13 +120,12 @@ var EntryModel = Backbone.Model.extend({
|
|
|
124
120
|
if (options.error) {
|
|
125
121
|
options.error.call(instance, xhr);
|
|
126
122
|
}
|
|
127
|
-
}
|
|
123
|
+
},
|
|
128
124
|
});
|
|
129
125
|
|
|
130
126
|
return this;
|
|
131
127
|
},
|
|
132
128
|
|
|
133
|
-
|
|
134
129
|
/**
|
|
135
130
|
* A more complex lookup for changed attributes then default backbone one.
|
|
136
131
|
*
|
|
@@ -141,7 +136,6 @@ var EntryModel = Backbone.Model.extend({
|
|
|
141
136
|
var current = this.toJSON();
|
|
142
137
|
|
|
143
138
|
$.each(attributes, function (name, value) {
|
|
144
|
-
|
|
145
139
|
if (!current[name]) {
|
|
146
140
|
if (typeof value === 'string') {
|
|
147
141
|
if ($.trim(value) !== '') {
|
|
@@ -155,7 +149,6 @@ var EntryModel = Backbone.Model.extend({
|
|
|
155
149
|
changed[name] = value;
|
|
156
150
|
}
|
|
157
151
|
} else if (current[name] && current[name] !== value) {
|
|
158
|
-
|
|
159
152
|
if (typeof value === 'object') {
|
|
160
153
|
if (!isEqual(value, current[name])) {
|
|
161
154
|
changed[name] = value;
|
|
@@ -207,7 +200,7 @@ var EntryModel = Backbone.Model.extend({
|
|
|
207
200
|
|
|
208
201
|
// call super
|
|
209
202
|
Backbone.Model.prototype.fetch.call(this, options);
|
|
210
|
-
}
|
|
203
|
+
},
|
|
211
204
|
});
|
|
212
205
|
|
|
213
206
|
export default EntryModel;
|
|
@@ -9,7 +9,7 @@ const $eventTarget = $(eventRoot);
|
|
|
9
9
|
* @param {String} name - name of event
|
|
10
10
|
* @param {Array} args - args for event handler
|
|
11
11
|
*/
|
|
12
|
-
function triggerEvt
|
|
12
|
+
function triggerEvt(name, args) {
|
|
13
13
|
$eventTarget.trigger(name, args);
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ function triggerEvt (name, args) {
|
|
|
19
19
|
* @param {String} name
|
|
20
20
|
* @param {Function} func
|
|
21
21
|
*/
|
|
22
|
-
function bindEvt
|
|
22
|
+
function bindEvt(name, func) {
|
|
23
23
|
$eventTarget.bind(name, func);
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -33,7 +33,7 @@ function bindEvt (name, func) {
|
|
|
33
33
|
* @param inst
|
|
34
34
|
* @param args
|
|
35
35
|
*/
|
|
36
|
-
function triggerEvtForInst
|
|
36
|
+
function triggerEvtForInst(evt, inst, args) {
|
|
37
37
|
$(inst).trigger(evt, args);
|
|
38
38
|
triggerEvt(evt, args);
|
|
39
39
|
if (inst.id) {
|
|
@@ -41,8 +41,4 @@ function triggerEvtForInst (evt, inst, args) {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
export {
|
|
45
|
-
bindEvt,
|
|
46
|
-
triggerEvt,
|
|
47
|
-
triggerEvtForInst
|
|
48
|
-
};
|
|
44
|
+
export { bindEvt, triggerEvt, triggerEvtForInst };
|
|
@@ -4,7 +4,7 @@ import { I18n } from '../i18n';
|
|
|
4
4
|
import classNames from './class-names';
|
|
5
5
|
import dataKeys from './data-keys';
|
|
6
6
|
import events from './event-names';
|
|
7
|
-
import {appendStatusSpinner, removeStatusSpinner} from './spinner';
|
|
7
|
+
import { appendStatusSpinner, removeStatusSpinner } from './spinner';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* An abstract class that gives the required behaviour for RestfulTable rows.
|
|
@@ -14,7 +14,7 @@ export default Backbone.View.extend({
|
|
|
14
14
|
tagName: 'tr',
|
|
15
15
|
|
|
16
16
|
events: {
|
|
17
|
-
'click .aui-restfultable-editable': 'edit'
|
|
17
|
+
'click .aui-restfultable-editable': 'edit',
|
|
18
18
|
},
|
|
19
19
|
|
|
20
20
|
initialize: function (options) {
|
|
@@ -28,8 +28,10 @@ export default Backbone.View.extend({
|
|
|
28
28
|
this.allowDelete = options.allowDelete;
|
|
29
29
|
|
|
30
30
|
if (!this.events['click .aui-restfultable-editable']) {
|
|
31
|
-
throw new Error(
|
|
32
|
-
'
|
|
31
|
+
throw new Error(
|
|
32
|
+
'It appears you have overridden the events property. To add events you will need to use' +
|
|
33
|
+
'a work around. https://github.com/documentcloud/backbone/issues/244'
|
|
34
|
+
);
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
this.index = options.index || 0;
|
|
@@ -37,12 +39,11 @@ export default Backbone.View.extend({
|
|
|
37
39
|
this.allowReorder = options.allowReorder;
|
|
38
40
|
this.$el = $(this.el);
|
|
39
41
|
|
|
40
|
-
this
|
|
41
|
-
.on(this._event.
|
|
42
|
-
.on(this._event.FOCUS, field => this.focus(field))
|
|
42
|
+
this.on(this._event.CANCEL, () => (this.disabled = true))
|
|
43
|
+
.on(this._event.FOCUS, (field) => this.focus(field))
|
|
43
44
|
.on(this._event.BLUR, () => this.unfocus())
|
|
44
45
|
.on(this._event.MODAL, () => this.$el.addClass(this.classNames.ACTIVE))
|
|
45
|
-
.on(this._event.MODELESS, () => this.$el.removeClass(this.classNames.ACTIVE))
|
|
46
|
+
.on(this._event.MODELESS, () => this.$el.removeClass(this.classNames.ACTIVE));
|
|
46
47
|
},
|
|
47
48
|
|
|
48
49
|
/**
|
|
@@ -86,7 +87,7 @@ export default Backbone.View.extend({
|
|
|
86
87
|
},
|
|
87
88
|
error: function () {
|
|
88
89
|
instance.hideLoading();
|
|
89
|
-
}
|
|
90
|
+
},
|
|
90
91
|
});
|
|
91
92
|
|
|
92
93
|
return this;
|
|
@@ -113,7 +114,7 @@ export default Backbone.View.extend({
|
|
|
113
114
|
if (error) {
|
|
114
115
|
error.apply(this, arguments);
|
|
115
116
|
}
|
|
116
|
-
}
|
|
117
|
+
},
|
|
117
118
|
});
|
|
118
119
|
|
|
119
120
|
return this;
|
|
@@ -178,7 +179,9 @@ export default Backbone.View.extend({
|
|
|
178
179
|
if ($(e.target).is('.' + this.classNames.EDITABLE)) {
|
|
179
180
|
field = $(e.target).attr('data-field-name');
|
|
180
181
|
} else {
|
|
181
|
-
field = $(e.target)
|
|
182
|
+
field = $(e.target)
|
|
183
|
+
.closest('.' + this.classNames.EDITABLE)
|
|
184
|
+
.attr('data-field-name');
|
|
182
185
|
}
|
|
183
186
|
this.trigger(this._event.ROW_EDIT, field);
|
|
184
187
|
return this;
|
|
@@ -194,7 +197,8 @@ export default Backbone.View.extend({
|
|
|
194
197
|
if (this.allowDelete !== false) {
|
|
195
198
|
return $("<a href='#' class='aui-button' />")
|
|
196
199
|
.addClass(this.classNames.DELETE)
|
|
197
|
-
.text(I18n.getText('aui.words.delete'))
|
|
200
|
+
.text(I18n.getText('aui.words.delete'))
|
|
201
|
+
.on('click', function (e) {
|
|
198
202
|
e.preventDefault();
|
|
199
203
|
instance.destroy();
|
|
200
204
|
});
|
|
@@ -215,7 +219,7 @@ export default Backbone.View.extend({
|
|
|
215
219
|
() => {}
|
|
216
220
|
);
|
|
217
221
|
} else {
|
|
218
|
-
throw new Error('deleteConfirmationCallback needs to return a Promise')
|
|
222
|
+
throw new Error('deleteConfirmationCallback needs to return a Promise');
|
|
219
223
|
}
|
|
220
224
|
} else {
|
|
221
225
|
this.model.destroy();
|
|
@@ -227,20 +231,29 @@ export default Backbone.View.extend({
|
|
|
227
231
|
*
|
|
228
232
|
* @return Row
|
|
229
233
|
*/
|
|
230
|
-
render: function
|
|
234
|
+
render: function () {
|
|
231
235
|
var instance = this;
|
|
232
236
|
var renderData = this.model.toJSON();
|
|
233
|
-
var $opsCell = $("<td class='aui-restfultable-operations' />").append(
|
|
237
|
+
var $opsCell = $("<td class='aui-restfultable-operations' />").append(
|
|
238
|
+
this.renderOperations({}, renderData)
|
|
239
|
+
);
|
|
234
240
|
var $throbberCell = $(`<td class="${this.classNames.STATUS}" />`);
|
|
235
241
|
// restore state
|
|
236
242
|
this.$el
|
|
237
|
-
.removeClass(
|
|
243
|
+
.removeClass(
|
|
244
|
+
this.classNames.DISABLED +
|
|
245
|
+
' ' +
|
|
246
|
+
this.classNames.FOCUSED +
|
|
247
|
+
' ' +
|
|
248
|
+
this.classNames.EDIT_ROW
|
|
249
|
+
)
|
|
238
250
|
.addClass(this.classNames.READ_ONLY)
|
|
239
251
|
.empty();
|
|
240
252
|
|
|
241
|
-
|
|
242
253
|
if (this.allowReorder) {
|
|
243
|
-
$('<td class="' + this.classNames.ORDER + '" />')
|
|
254
|
+
$('<td class="' + this.classNames.ORDER + '" />')
|
|
255
|
+
.append(this.renderDragHandle())
|
|
256
|
+
.appendTo(instance.$el);
|
|
244
257
|
}
|
|
245
258
|
|
|
246
259
|
this.$el.attr('data-id', this.model.id); // helper for webdriver testing
|
|
@@ -250,7 +263,11 @@ export default Backbone.View.extend({
|
|
|
250
263
|
var $cell = $('<td />');
|
|
251
264
|
var value = renderData[column.id];
|
|
252
265
|
var fieldName = column.fieldName || column.id;
|
|
253
|
-
var args = [
|
|
266
|
+
var args = [
|
|
267
|
+
{ name: fieldName, value: value, allowEdit: column.allowEdit },
|
|
268
|
+
renderData,
|
|
269
|
+
instance.model,
|
|
270
|
+
];
|
|
254
271
|
|
|
255
272
|
if (value) {
|
|
256
273
|
instance.$el.attr('data-' + column.id, value); // helper for webdriver testing
|
|
@@ -258,7 +275,7 @@ export default Backbone.View.extend({
|
|
|
258
275
|
|
|
259
276
|
if (column.readView) {
|
|
260
277
|
contents = new column.readView({
|
|
261
|
-
model: instance.model
|
|
278
|
+
model: instance.model,
|
|
262
279
|
}).render(args[0]);
|
|
263
280
|
} else {
|
|
264
281
|
contents = instance.defaultColumnRenderer.apply(instance, args);
|
|
@@ -275,9 +292,10 @@ export default Backbone.View.extend({
|
|
|
275
292
|
|
|
276
293
|
if (!contents || !$.trim(contents)) {
|
|
277
294
|
$cell.addClass(instance.classNames.NO_VALUE);
|
|
278
|
-
$editableRegion.html(
|
|
295
|
+
$editableRegion.html(
|
|
296
|
+
$('<em />').text(this.emptyText || I18n.getText('aui.enter.value'))
|
|
297
|
+
);
|
|
279
298
|
}
|
|
280
|
-
|
|
281
299
|
} else {
|
|
282
300
|
$cell.append(contents);
|
|
283
301
|
}
|
|
@@ -298,5 +316,5 @@ export default Backbone.View.extend({
|
|
|
298
316
|
this.$el.trigger(this._event.CONTENT_REFRESHED, [this.$el]);
|
|
299
317
|
|
|
300
318
|
return this;
|
|
301
|
-
}
|
|
319
|
+
},
|
|
302
320
|
});
|