1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-19 13:19:43 +02:00
documize/gui/app/components/ui-select.js
Harvey Kandola b31ab712c1 upgraded Ember and integrated Bootstrap 4
Upgraded to Ember JS 2.16.x release. This upgrade uses the new JavaScript modules API syntax.

Integrated Bootstrap 4 Beta 2 via package.json and associated popper.js library. Overridden Bootstrap styles using bootstrap.scss -- this file selectively imports the modules we need.
2017-11-16 13:28:05 +00:00

49 lines
No EOL
1.6 KiB
JavaScript

// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { reads } from '@ember/object/computed';
import Component from '@ember/component';
export default Component.extend({
cssClass: "",
content: [],
prompt: null,
optionValuePath: 'id',
optionLabelPath: 'name',
action() {}, // action to fire on change
// action: Ember.K, // action to fire on change
// shadow the passed-in `selection` to avoid
// leaking changes to it via a 2-way binding
_selection: reads('selection'),
actions: {
change() {
const selectEl = this.$('select')[0];
const selectedIndex = selectEl.selectedIndex;
const content = this.get('content');
// decrement index by 1 if we have a prompt
const hasPrompt = !!this.get('prompt');
const contentIndex = hasPrompt ? selectedIndex - 1 : selectedIndex;
const selection = content[contentIndex];
// set the local, shadowed selection to avoid leaking
// changes to `selection` out via 2-way binding
this.set('_selection', selection);
const changeCallback = this.get('action');
changeCallback(selection);
}
}
});