comindware.core.ui
Version:
Comindware Core UI provides the basic components like editors, lists, dropdowns, popups that we so desperately need while creating Marionette-based single-page applications.
43 lines (38 loc) • 1.49 kB
JavaScript
import { helpers } from 'utils';
import LocalizationService from '../../services/LocalizationService';
import LoadingView from '../../views/LoadingView';
export default Marionette.Behavior.extend({
initialize(options, view) {
helpers.ensureOption(options, 'region');
this.loadingViewOptions = {
text: options.text || LocalizationService.get('CORE.VIEWS.BEHAVIORS.LOADING.DEFAULTLOADINGSMALL')
};
view.loading = {
setLoading: this.setLoading.bind(this)
};
},
setLoading(visible) {
if (typeof visible === 'boolean') {
if (visible) {
const view = new LoadingView(this.loadingViewOptions);
view.once('attach', view.el.classList.add('visible-loader'));
this.view.getRegion(this.options.region).show(view);
} else {
this.view.getRegion(this.options.region).reset();
}
} else if (visible instanceof Promise) {
this.setLoading(true);
Promise.resolve(visible).then(
() => {
this.setLoading(false);
},
() => {
//noinspection JSPotentiallyInvalidUsageOfThis
this.setLoading(false);
}
);
} else {
helpers.throwError('Invalid argument format.', 'FormatError');
}
}
});