@atlassian/aui 9.3.21 → 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 +1 -1
- package/dist/aui/aui-css-deprecations.js.map +1 -1
- package/dist/aui/aui-prototyping-browserfocus.css +1 -353
- package/dist/aui/aui-prototyping-darkmode.css +1 -262
- package/dist/aui/aui-prototyping.css +10 -10
- package/dist/aui/aui-prototyping.js +7 -7
- package/dist/aui/aui-prototyping.js.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.css +10 -10
- package/dist/aui/aui-prototyping.nodeps.js +9 -9
- 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 +3 -7
- 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
- package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-base-themes.css +0 -797
- package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-base-themes.js +0 -26
- package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-theme-import-map.js +0 -51
- package/entry/token-themes-generated/npm/themes/dark-future.js +0 -7
- package/entry/token-themes-generated/npm/themes/dark-new-input-border.js +0 -7
- package/entry/token-themes-generated/npm/themes/dark.js +0 -395
- package/entry/token-themes-generated/npm/themes/legacy-dark.js +0 -395
- package/entry/token-themes-generated/npm/themes/legacy-light.js +0 -395
- package/entry/token-themes-generated/npm/themes/light-future.js +0 -7
- package/entry/token-themes-generated/npm/themes/light-new-input-border.js +0 -7
- package/entry/token-themes-generated/npm/themes/light.js +0 -395
- package/entry/token-themes-generated/npm/themes/shape.js +0 -15
- package/entry/token-themes-generated/npm/themes/spacing.js +0 -27
- package/entry/token-themes-generated/npm/themes/typography-adg3.js +0 -50
- package/entry/token-themes-generated/npm/themes/typography-minor3.js +0 -41
|
@@ -13,12 +13,12 @@ import CustomReadView from './restful-table/custom-read-view';
|
|
|
13
13
|
import dataKeys from './restful-table/data-keys';
|
|
14
14
|
import EditRow from './restful-table/edit-row';
|
|
15
15
|
import EntryModel from './restful-table/entry-model';
|
|
16
|
-
import {triggerEvtForInst} from './restful-table/event-handlers';
|
|
16
|
+
import { triggerEvtForInst } from './restful-table/event-handlers';
|
|
17
17
|
import events from './restful-table/event-names';
|
|
18
18
|
import globalize from './internal/globalize';
|
|
19
19
|
import Row from './restful-table/row';
|
|
20
20
|
import { I18n } from './i18n';
|
|
21
|
-
import {spinner} from './restful-table/spinner';
|
|
21
|
+
import { spinner } from './restful-table/spinner';
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* A table whose entries/rows can be retrieved, added and updated via REST (CRUD).
|
|
@@ -84,15 +84,26 @@ var RestfulTable = Backbone.View.extend({
|
|
|
84
84
|
this.$tbody = $('<tbody/>');
|
|
85
85
|
|
|
86
86
|
if (!this.$table.length) {
|
|
87
|
-
throw new Error(
|
|
87
|
+
throw new Error(
|
|
88
|
+
'RestfulTable: Init failed! The table you have specified [' +
|
|
89
|
+
this.$table.selector +
|
|
90
|
+
'] cannot be found.'
|
|
91
|
+
);
|
|
88
92
|
}
|
|
89
93
|
|
|
90
94
|
if (!this.options.columns) {
|
|
91
|
-
throw new Error(
|
|
95
|
+
throw new Error(
|
|
96
|
+
"RestfulTable: Init failed! You haven't provided any columns to render."
|
|
97
|
+
);
|
|
92
98
|
}
|
|
93
99
|
|
|
94
|
-
if (
|
|
95
|
-
|
|
100
|
+
if (
|
|
101
|
+
this.options.deleteConfirmationCallback &&
|
|
102
|
+
!(this.options.deleteConfirmationCallback instanceof Function)
|
|
103
|
+
) {
|
|
104
|
+
throw new Error(
|
|
105
|
+
'RestfulTable: Init failed! deleteConfirmationCallback is not a function'
|
|
106
|
+
);
|
|
96
107
|
}
|
|
97
108
|
|
|
98
109
|
// Let user know the table is loading
|
|
@@ -100,7 +111,11 @@ var RestfulTable = Backbone.View.extend({
|
|
|
100
111
|
this.options.columns.forEach(function (column) {
|
|
101
112
|
var header = $.isFunction(column.header) ? column.header() : column.header;
|
|
102
113
|
if (typeof header === 'undefined') {
|
|
103
|
-
logger.warn(
|
|
114
|
+
logger.warn(
|
|
115
|
+
'You have not specified [header] for column [' +
|
|
116
|
+
column.id +
|
|
117
|
+
']. Using id for now...'
|
|
118
|
+
);
|
|
104
119
|
header = column.id;
|
|
105
120
|
}
|
|
106
121
|
|
|
@@ -134,7 +149,9 @@ var RestfulTable = Backbone.View.extend({
|
|
|
134
149
|
this.$tbody.sortable({
|
|
135
150
|
handle: '.' + this.classNames.DRAG_HANDLE,
|
|
136
151
|
helper: function (e, elt) {
|
|
137
|
-
var helper = $('<div/>')
|
|
152
|
+
var helper = $('<div/>')
|
|
153
|
+
.attr('class', elt.attr('class'))
|
|
154
|
+
.addClass(instance.classNames.MOVEABLE);
|
|
138
155
|
elt.children().each(function () {
|
|
139
156
|
var $td = $(this);
|
|
140
157
|
|
|
@@ -144,11 +161,16 @@ var RestfulTable = Backbone.View.extend({
|
|
|
144
161
|
var borderRight = parseInt(0 + $td.css('border-right-width'), 10);
|
|
145
162
|
var width = $td[0].clientWidth + borderLeft + borderRight;
|
|
146
163
|
|
|
147
|
-
helper.append(
|
|
164
|
+
helper.append(
|
|
165
|
+
$('<div/>')
|
|
166
|
+
.html($td.html())
|
|
167
|
+
.attr('class', $td.attr('class'))
|
|
168
|
+
.width(width)
|
|
169
|
+
);
|
|
148
170
|
});
|
|
149
171
|
|
|
150
172
|
helper = $("<div class='aui-restfultable-readonly'/>").append(helper); // Basically just to get the styles.
|
|
151
|
-
helper.css({left: elt.offset().left}); // To align with the other table rows, since we've locked scrolling on x.
|
|
173
|
+
helper.css({ left: elt.offset().left }); // To align with the other table rows, since we've locked scrolling on x.
|
|
152
174
|
helper.appendTo(document.body);
|
|
153
175
|
|
|
154
176
|
return helper;
|
|
@@ -160,7 +182,8 @@ var RestfulTable = Backbone.View.extend({
|
|
|
160
182
|
// Make sure that when we start dragging widths do not change
|
|
161
183
|
ui.item
|
|
162
184
|
.addClass(instance.classNames.MOVEABLE)
|
|
163
|
-
.children()
|
|
185
|
+
.children()
|
|
186
|
+
.each(function (i) {
|
|
164
187
|
$(this).width($this.eq(i).width());
|
|
165
188
|
});
|
|
166
189
|
|
|
@@ -169,7 +192,7 @@ var RestfulTable = Backbone.View.extend({
|
|
|
169
192
|
|
|
170
193
|
ui.placeholder.html(td).css({
|
|
171
194
|
height: cachedHeight,
|
|
172
|
-
visibility: 'visible'
|
|
195
|
+
visibility: 'visible',
|
|
173
196
|
});
|
|
174
197
|
|
|
175
198
|
// Stop hover effects etc from occuring as we move the mouse (while dragging) over other rows
|
|
@@ -179,7 +202,8 @@ var RestfulTable = Backbone.View.extend({
|
|
|
179
202
|
if ($(ui.item[0]).is(':visible')) {
|
|
180
203
|
ui.item
|
|
181
204
|
.removeClass(instance.classNames.MOVEABLE)
|
|
182
|
-
.children()
|
|
205
|
+
.children()
|
|
206
|
+
.attr('style', '');
|
|
183
207
|
|
|
184
208
|
ui.placeholder.removeClass(instance.classNames.ROW);
|
|
185
209
|
|
|
@@ -192,7 +216,7 @@ var RestfulTable = Backbone.View.extend({
|
|
|
192
216
|
row: instance.getRowFromElement(ui.item[0]),
|
|
193
217
|
item: ui.item,
|
|
194
218
|
nextItem: ui.item.next(),
|
|
195
|
-
prevItem: ui.item.prev()
|
|
219
|
+
prevItem: ui.item.prev(),
|
|
196
220
|
};
|
|
197
221
|
|
|
198
222
|
instance.move(context);
|
|
@@ -202,7 +226,7 @@ var RestfulTable = Backbone.View.extend({
|
|
|
202
226
|
containment: 'document',
|
|
203
227
|
cursor: 'move',
|
|
204
228
|
scroll: true,
|
|
205
|
-
zIndex: 8000
|
|
229
|
+
zIndex: 8000,
|
|
206
230
|
});
|
|
207
231
|
|
|
208
232
|
// Prevent text selection while reordering.
|
|
@@ -212,7 +236,6 @@ var RestfulTable = Backbone.View.extend({
|
|
|
212
236
|
}
|
|
213
237
|
|
|
214
238
|
if (this.options.allowCreate !== false) {
|
|
215
|
-
|
|
216
239
|
// Create row responsible for adding new entries ...
|
|
217
240
|
this._createRow = new this.options.views.editRow({
|
|
218
241
|
columns: this.options.columns,
|
|
@@ -220,16 +243,19 @@ var RestfulTable = Backbone.View.extend({
|
|
|
220
243
|
model: this.options.model.extend({
|
|
221
244
|
url: function () {
|
|
222
245
|
return instance.options.resources.self;
|
|
223
|
-
}
|
|
246
|
+
},
|
|
224
247
|
}),
|
|
225
248
|
cancelAccessKey: this.options.cancelAccessKey,
|
|
226
249
|
submitAccessKey: this.options.submitAccessKey,
|
|
227
250
|
allowReorder: this.options.allowReorder,
|
|
228
|
-
fieldFocusSelector: this.options.fieldFocusSelector
|
|
251
|
+
fieldFocusSelector: this.options.fieldFocusSelector,
|
|
229
252
|
});
|
|
230
253
|
this._createRow.on(this._event.CREATED, function (values) {
|
|
231
|
-
if (
|
|
232
|
-
|
|
254
|
+
if (
|
|
255
|
+
(typeof instance.options.addPosition === 'undefined' &&
|
|
256
|
+
instance.options.createPosition === 'bottom') ||
|
|
257
|
+
instance.options.addPosition === 'bottom'
|
|
258
|
+
) {
|
|
233
259
|
instance.addRow(values);
|
|
234
260
|
} else {
|
|
235
261
|
instance.addRow(values, 0);
|
|
@@ -240,12 +266,13 @@ var RestfulTable = Backbone.View.extend({
|
|
|
240
266
|
});
|
|
241
267
|
this._createRow.render({
|
|
242
268
|
errors: {},
|
|
243
|
-
values: {}
|
|
269
|
+
values: {},
|
|
244
270
|
});
|
|
245
271
|
|
|
246
272
|
// ... and appends it as the first row
|
|
247
|
-
this.$create = $('<tbody class="' + this.classNames.CREATE + '" />')
|
|
248
|
-
|
|
273
|
+
this.$create = $('<tbody class="' + this.classNames.CREATE + '" />').append(
|
|
274
|
+
this._createRow.el
|
|
275
|
+
);
|
|
249
276
|
|
|
250
277
|
// Manage which row has focus
|
|
251
278
|
this._applyFocusCoordinator(this._createRow);
|
|
@@ -285,25 +312,25 @@ var RestfulTable = Backbone.View.extend({
|
|
|
285
312
|
},
|
|
286
313
|
|
|
287
314
|
move: function (context) {
|
|
288
|
-
|
|
289
315
|
var instance = this;
|
|
290
316
|
|
|
291
317
|
var createRequest = function (afterElement) {
|
|
292
318
|
if (!afterElement.length) {
|
|
293
319
|
return {
|
|
294
|
-
position: 'First'
|
|
320
|
+
position: 'First',
|
|
295
321
|
};
|
|
296
322
|
} else {
|
|
297
323
|
var afterModel = instance.getRowFromElement(afterElement).model;
|
|
298
324
|
return {
|
|
299
|
-
after: afterModel.url()
|
|
325
|
+
after: afterModel.url(),
|
|
300
326
|
};
|
|
301
327
|
}
|
|
302
328
|
};
|
|
303
329
|
|
|
304
330
|
if (context.row) {
|
|
305
|
-
|
|
306
|
-
|
|
331
|
+
var data = instance.options.reverseOrder
|
|
332
|
+
? createRequest(context.nextItem)
|
|
333
|
+
: createRequest(context.prevItem);
|
|
307
334
|
|
|
308
335
|
$.ajax({
|
|
309
336
|
url: context.row.model.url() + '/move',
|
|
@@ -320,8 +347,12 @@ var RestfulTable = Backbone.View.extend({
|
|
|
320
347
|
},
|
|
321
348
|
error: function (xhr) {
|
|
322
349
|
var responseData = $.parseJSON(xhr.responseText || xhr.data);
|
|
323
|
-
triggerEvtForInst(instance._event.SERVER_ERROR, instance, [
|
|
324
|
-
|
|
350
|
+
triggerEvtForInst(instance._event.SERVER_ERROR, instance, [
|
|
351
|
+
responseData,
|
|
352
|
+
xhr,
|
|
353
|
+
this,
|
|
354
|
+
]);
|
|
355
|
+
},
|
|
325
356
|
});
|
|
326
357
|
|
|
327
358
|
// shows loading indicator (spinner)
|
|
@@ -354,7 +385,7 @@ var RestfulTable = Backbone.View.extend({
|
|
|
354
385
|
Backbone.Collection.prototype.remove.apply(this, args);
|
|
355
386
|
this.tableRows = undefined;
|
|
356
387
|
return this;
|
|
357
|
-
}
|
|
388
|
+
},
|
|
358
389
|
});
|
|
359
390
|
|
|
360
391
|
return new RowsAwareCollection([], {
|
|
@@ -362,7 +393,8 @@ var RestfulTable = Backbone.View.extend({
|
|
|
362
393
|
// sort models in collection based on dom ordering
|
|
363
394
|
var index;
|
|
364
395
|
|
|
365
|
-
var currentTableRows =
|
|
396
|
+
var currentTableRows =
|
|
397
|
+
this && this.tableRows !== undefined ? this.tableRows : instance.getRows();
|
|
366
398
|
currentTableRows.some(function (item, i) {
|
|
367
399
|
if (item.model.id === row.id) {
|
|
368
400
|
index = i;
|
|
@@ -370,7 +402,7 @@ var RestfulTable = Backbone.View.extend({
|
|
|
370
402
|
}
|
|
371
403
|
});
|
|
372
404
|
return index;
|
|
373
|
-
}
|
|
405
|
+
},
|
|
374
406
|
});
|
|
375
407
|
},
|
|
376
408
|
|
|
@@ -387,7 +419,7 @@ var RestfulTable = Backbone.View.extend({
|
|
|
387
419
|
this.hideGlobalLoading();
|
|
388
420
|
if (entries && entries.length) {
|
|
389
421
|
// Empty the models collection
|
|
390
|
-
this._models.reset([], {silent: true});
|
|
422
|
+
this._models.reset([], { silent: true });
|
|
391
423
|
// Add all the entries to collection and render them
|
|
392
424
|
this.renderRows(entries);
|
|
393
425
|
// show message to user if we have no entries
|
|
@@ -399,16 +431,12 @@ var RestfulTable = Backbone.View.extend({
|
|
|
399
431
|
}
|
|
400
432
|
|
|
401
433
|
// Ok, lets let everyone know that we are done...
|
|
402
|
-
this.$table
|
|
403
|
-
.append(this.$thead);
|
|
434
|
+
this.$table.append(this.$thead);
|
|
404
435
|
|
|
405
436
|
if (this.options.createPosition === 'bottom') {
|
|
406
|
-
this.$table.append(this.$tbody)
|
|
407
|
-
.append(this.$create);
|
|
437
|
+
this.$table.append(this.$tbody).append(this.$create);
|
|
408
438
|
} else {
|
|
409
|
-
this.$table
|
|
410
|
-
.append(this.$create)
|
|
411
|
-
.append(this.$tbody);
|
|
439
|
+
this.$table.append(this.$create).append(this.$tbody);
|
|
412
440
|
}
|
|
413
441
|
|
|
414
442
|
this.$table.trigger(this._event.INITIALIZED, [this]);
|
|
@@ -427,8 +455,13 @@ var RestfulTable = Backbone.View.extend({
|
|
|
427
455
|
*/
|
|
428
456
|
showGlobalLoading: function () {
|
|
429
457
|
if (!this.$loading) {
|
|
430
|
-
this.$loading =
|
|
431
|
-
'<
|
|
458
|
+
this.$loading = $(
|
|
459
|
+
'<div class="aui-restfultable-init">' +
|
|
460
|
+
'<span class="aui-restfultable-loading">' +
|
|
461
|
+
spinner +
|
|
462
|
+
this.options.loadingMsg +
|
|
463
|
+
'</span></div>'
|
|
464
|
+
);
|
|
432
465
|
}
|
|
433
466
|
|
|
434
467
|
if (!this.$loading.is(':visible')) {
|
|
@@ -449,7 +482,6 @@ var RestfulTable = Backbone.View.extend({
|
|
|
449
482
|
return this;
|
|
450
483
|
},
|
|
451
484
|
|
|
452
|
-
|
|
453
485
|
/**
|
|
454
486
|
* Adds row to collection and renders it
|
|
455
487
|
*
|
|
@@ -462,14 +494,16 @@ var RestfulTable = Backbone.View.extend({
|
|
|
462
494
|
var model;
|
|
463
495
|
|
|
464
496
|
if (!values.id) {
|
|
465
|
-
throw new Error(
|
|
466
|
-
'
|
|
467
|
-
|
|
497
|
+
throw new Error(
|
|
498
|
+
'RestfulTable.addRow: to add a row values object must contain an id. ' +
|
|
499
|
+
'Maybe you are not returning it from your restend point?' +
|
|
500
|
+
'Recieved:' +
|
|
501
|
+
JSON.stringify(values)
|
|
502
|
+
);
|
|
468
503
|
}
|
|
469
504
|
|
|
470
505
|
model = new this.options.model(values);
|
|
471
506
|
|
|
472
|
-
|
|
473
507
|
view = this._renderRow(model, index);
|
|
474
508
|
|
|
475
509
|
this._models.add(model);
|
|
@@ -574,16 +608,14 @@ var RestfulTable = Backbone.View.extend({
|
|
|
574
608
|
* @return {RestfulTable}
|
|
575
609
|
*/
|
|
576
610
|
showNoEntriesMsg: function () {
|
|
577
|
-
|
|
578
611
|
if (this.$noEntries) {
|
|
579
612
|
this.$noEntries.remove();
|
|
580
613
|
}
|
|
581
614
|
|
|
582
615
|
this.$noEntries = $('<tr>')
|
|
583
616
|
.addClass(this.classNames.NO_ENTRIES)
|
|
584
|
-
.append(
|
|
585
|
-
.attr('colspan', this.getColumnCount())
|
|
586
|
-
.text(this.options.noEntriesMsg)
|
|
617
|
+
.append(
|
|
618
|
+
$('<td>').attr('colspan', this.getColumnCount()).text(this.options.noEntriesMsg)
|
|
587
619
|
)
|
|
588
620
|
.appendTo(this.$tbody);
|
|
589
621
|
|
|
@@ -643,7 +675,7 @@ var RestfulTable = Backbone.View.extend({
|
|
|
643
675
|
allowEdit: this.options.allowEdit,
|
|
644
676
|
allowDelete: this.options.allowDelete,
|
|
645
677
|
allowReorder: this.options.allowReorder,
|
|
646
|
-
deleteConfirmationCallback: this.options.deleteConfirmationCallback
|
|
678
|
+
deleteConfirmationCallback: this.options.deleteConfirmationCallback,
|
|
647
679
|
});
|
|
648
680
|
|
|
649
681
|
this.removeNoEntriesMsg();
|
|
@@ -656,7 +688,6 @@ var RestfulTable = Backbone.View.extend({
|
|
|
656
688
|
$row = view.render().$el;
|
|
657
689
|
|
|
658
690
|
if (index !== -1) {
|
|
659
|
-
|
|
660
691
|
if (typeof index === 'number' && $rows.length !== 0) {
|
|
661
692
|
$row.insertBefore($rows[index]);
|
|
662
693
|
} else {
|
|
@@ -706,7 +737,6 @@ var RestfulTable = Backbone.View.extend({
|
|
|
706
737
|
* @return {Boolean}
|
|
707
738
|
*/
|
|
708
739
|
isRowBeingEdited: function (row) {
|
|
709
|
-
|
|
710
740
|
var isBeingEdited = false;
|
|
711
741
|
|
|
712
742
|
this.editRows.some(function (editRow) {
|
|
@@ -764,7 +794,6 @@ var RestfulTable = Backbone.View.extend({
|
|
|
764
794
|
* @return {RestfulTable}
|
|
765
795
|
*/
|
|
766
796
|
_shiftFocusAfterEdit: function () {
|
|
767
|
-
|
|
768
797
|
if (this.editRows.length > 0) {
|
|
769
798
|
this.editRows[this.editRows.length - 1].trigger(this._event.FOCUS);
|
|
770
799
|
} else if (this._createRow) {
|
|
@@ -812,18 +841,19 @@ var RestfulTable = Backbone.View.extend({
|
|
|
812
841
|
fieldFocusSelector: this.options.fieldFocusSelector,
|
|
813
842
|
model: row.model,
|
|
814
843
|
cancelAccessKey: this.options.cancelAccessKey,
|
|
815
|
-
submitAccessKey: this.options.submitAccessKey
|
|
844
|
+
submitAccessKey: this.options.submitAccessKey,
|
|
816
845
|
});
|
|
817
846
|
var values = row.model.toJSON();
|
|
818
847
|
|
|
819
848
|
values.update = true;
|
|
820
|
-
editRow
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
849
|
+
editRow
|
|
850
|
+
.render({
|
|
851
|
+
errors: {},
|
|
852
|
+
update: true,
|
|
853
|
+
values: values,
|
|
854
|
+
})
|
|
825
855
|
.on(instance._event.UPDATED, function (model, focusUpdated) {
|
|
826
|
-
instance._removeEditRow
|
|
856
|
+
instance._removeEditRow(this);
|
|
827
857
|
this.off();
|
|
828
858
|
row.render().delegateEvents(); // render and rebind events
|
|
829
859
|
row.trigger(instance._event.UPDATED); // trigger blur fade out
|
|
@@ -837,18 +867,18 @@ var RestfulTable = Backbone.View.extend({
|
|
|
837
867
|
.on(instance._event.FINISHED_EDITING, function () {
|
|
838
868
|
instance._removeEditRow(this);
|
|
839
869
|
row.render().delegateEvents();
|
|
840
|
-
this.off();
|
|
870
|
+
this.off(); // avoid any other updating, blurring, finished editing, cancel events being fired
|
|
841
871
|
})
|
|
842
872
|
.on(instance._event.CANCEL, function () {
|
|
843
873
|
instance._removeEditRow(this);
|
|
844
|
-
this.off();
|
|
874
|
+
this.off(); // avoid any other updating, blurring, finished editing, cancel events being fired
|
|
845
875
|
row.render().delegateEvents(); // render and re` events
|
|
846
876
|
instance._shiftFocusAfterEdit();
|
|
847
877
|
})
|
|
848
878
|
.on(instance._event.BLUR, function () {
|
|
849
879
|
instance.dismissEditRows(); // dismiss edit rows that have no changes
|
|
850
880
|
if (instance._saveEditRowOnBlur()) {
|
|
851
|
-
this.trigger(instance._event.SAVE, false);
|
|
881
|
+
this.trigger(instance._event.SAVE, false); // save row, which if successful will call the updated event above
|
|
852
882
|
}
|
|
853
883
|
});
|
|
854
884
|
|
|
@@ -868,7 +898,6 @@ var RestfulTable = Backbone.View.extend({
|
|
|
868
898
|
return editRow;
|
|
869
899
|
},
|
|
870
900
|
|
|
871
|
-
|
|
872
901
|
/**
|
|
873
902
|
* Renders all specified rows
|
|
874
903
|
*
|
|
@@ -887,7 +916,7 @@ var RestfulTable = Backbone.View.extend({
|
|
|
887
916
|
return model;
|
|
888
917
|
});
|
|
889
918
|
|
|
890
|
-
this._models.add(models, {silent: true});
|
|
919
|
+
this._models.add(models, { silent: true });
|
|
891
920
|
this._models.comparator = comparator;
|
|
892
921
|
this.removeNoEntriesMsg();
|
|
893
922
|
this.$tbody.append(els);
|
|
@@ -906,19 +935,19 @@ var RestfulTable = Backbone.View.extend({
|
|
|
906
935
|
allowEdit: true,
|
|
907
936
|
views: {
|
|
908
937
|
editRow: EditRow,
|
|
909
|
-
row: Row
|
|
938
|
+
row: Row,
|
|
910
939
|
},
|
|
911
940
|
Collection: Backbone.Collection.extend({
|
|
912
941
|
url: options.resources.self,
|
|
913
|
-
model: options.model || EntryModel
|
|
942
|
+
model: options.model || EntryModel,
|
|
914
943
|
}),
|
|
915
944
|
allowReorder: false,
|
|
916
945
|
fieldFocusSelector: function (name) {
|
|
917
946
|
return ':input[name=' + name + '], #' + name;
|
|
918
947
|
},
|
|
919
|
-
loadingMsg: options.loadingMsg || I18n.getText('aui.words.loading')
|
|
948
|
+
loadingMsg: options.loadingMsg || I18n.getText('aui.words.loading'),
|
|
920
949
|
};
|
|
921
|
-
}
|
|
950
|
+
},
|
|
922
951
|
});
|
|
923
952
|
|
|
924
953
|
RestfulTable.ClassNames = classNames;
|
package/src/js/aui/result-set.js
CHANGED
|
@@ -3,7 +3,7 @@ import globalize from './internal/globalize';
|
|
|
3
3
|
|
|
4
4
|
var ResultSet = Backbone.Model.extend({
|
|
5
5
|
initialize: function (options) {
|
|
6
|
-
this.set('active', null, {silent: true});
|
|
6
|
+
this.set('active', null, { silent: true });
|
|
7
7
|
this.collection = new Backbone.Collection();
|
|
8
8
|
this.collection.bind('reset', this.setActive, this);
|
|
9
9
|
this.source = options.source;
|
|
@@ -20,8 +20,8 @@ var ResultSet = Backbone.Model.extend({
|
|
|
20
20
|
},
|
|
21
21
|
|
|
22
22
|
setActive: function () {
|
|
23
|
-
var id =
|
|
24
|
-
var model =
|
|
23
|
+
var id = arguments[0] instanceof Backbone.Collection ? false : arguments[0];
|
|
24
|
+
var model = id ? this.collection.get(id) : this.collection.first();
|
|
25
25
|
this.set('active', model || null);
|
|
26
26
|
return this.get('active');
|
|
27
27
|
},
|
|
@@ -35,14 +35,14 @@ var ResultSet = Backbone.Model.extend({
|
|
|
35
35
|
|
|
36
36
|
prev: function () {
|
|
37
37
|
var current = this.collection.indexOf(this.get('active'));
|
|
38
|
-
var i = (
|
|
38
|
+
var i = (current === 0 ? this.get('length') : current) - 1;
|
|
39
39
|
var prev = this.collection.at(i);
|
|
40
40
|
return this.setActive(prev && prev.id);
|
|
41
41
|
},
|
|
42
42
|
|
|
43
43
|
each: function () {
|
|
44
44
|
return this.collection.each.apply(this.collection, arguments);
|
|
45
|
-
}
|
|
45
|
+
},
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
globalize('ResultSet', ResultSet);
|
|
@@ -5,12 +5,12 @@ import ResultSet from './result-set';
|
|
|
5
5
|
|
|
6
6
|
var ResultsList = Backbone.View.extend({
|
|
7
7
|
events: {
|
|
8
|
-
'click [data-id]': 'setSelection'
|
|
8
|
+
'click [data-id]': 'setSelection',
|
|
9
9
|
},
|
|
10
10
|
|
|
11
11
|
initialize: function (options) {
|
|
12
12
|
if (!this.model) {
|
|
13
|
-
this.model = new ResultSet({source: options.source});
|
|
13
|
+
this.model = new ResultSet({ source: options.source });
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
if (!(this.model instanceof ResultSet)) {
|
|
@@ -70,7 +70,7 @@ var ResultsList = Backbone.View.extend({
|
|
|
70
70
|
|
|
71
71
|
_shouldShow: function (query) {
|
|
72
72
|
return query === '' || !(this._hiddenQuery && this._hiddenQuery === query);
|
|
73
|
-
}
|
|
73
|
+
},
|
|
74
74
|
});
|
|
75
75
|
|
|
76
76
|
globalize('ResultsList', ResultsList);
|