ohif-viewer/Packages/ohif-select-tree/client/components/selectTreeCommon/selectTreeCommon.js
2017-10-12 13:25:22 -03:00

45 lines
1.4 KiB
JavaScript

import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { Tracker } from 'meteor/tracker';
Template.selectTreeCommon.events({
'click .select-tree-common label'(event, instance) {
event.preventDefault();
// Get the clicked label
const $target = $(event.currentTarget);
// Store the offset position for further use
$target.data('offset', $target.offset());
// Build the input selector based on the label target
const inputSelector = '#' + $target.attr('for');
// Get the tree instance
const treeInstance = instance.data.treeInstance;
// Check if the input is not rendered
if (!$(inputSelector).length) {
// Change the search terms with the clicked label string
treeInstance.$('.tree-search input').val($target.text()).trigger('input');
// Wait for options rerendering
Tracker.afterFlush(() => {
const $treeRoot = treeInstance.$('.select-tree-root:first').first();
$treeRoot.addClass('common-clicked');
// Wait for components initialization
Meteor.defer(() => $(inputSelector).click());
});
}
}
});
Template.selectTreeCommon.helpers({
// Get the common items
items() {
return Template.instance().data.treeInstance.getCommonItems();
}
});