mirror of
https://github.com/documize/community.git
synced 2025-07-19 13:19:43 +02:00
1. Modals wrapped 2. Toolbar icon actions: click and link-to navigation 3. Moved components into sub-folders 4. Replaced Bootstrap Tooltip and Dropdown libs with Ember specific add-ons And more. Co-Authored-By: Saul S <sauls8t@users.noreply.github.com> Co-Authored-By: McMatts <matt@documize.com>
47 lines
1.5 KiB
JavaScript
47 lines
1.5 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: "",
|
|
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);
|
|
}
|
|
}
|
|
});
|