From 4a5efd26978f833ad1ad47346c44ff39bc48b09d Mon Sep 17 00:00:00 2001 From: zinyando Date: Tue, 19 Jul 2016 18:14:53 +0200 Subject: [PATCH] Use tether service in dropdown menu --- app/app/components/dropdown-menu.js | 70 +++++++++++++++-------------- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/app/app/components/dropdown-menu.js b/app/app/components/dropdown-menu.js index 38fb9f9d..6f82ca24 100644 --- a/app/app/components/dropdown-menu.js +++ b/app/app/components/dropdown-menu.js @@ -1,11 +1,11 @@ // Copyright 2016 Documize Inc. . All rights reserved. // -// This software (Documize Community Edition) is licensed under +// 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 . +// by contacting . // // https://documize.com @@ -13,40 +13,44 @@ import Ember from 'ember'; import stringUtil from '../utils/string'; export default Ember.Component.extend({ - target: null, - open: "click", - position: 'bottom right', - contentId: "", - drop: null, + target: null, + open: "click", + position: 'bottom right', + contentId: "", + drop: null, + tether: Ember.inject.service(), - didReceiveAttrs() { - this.set("contentId", 'dropdown-menu-' + stringUtil.makeId(10)); + didReceiveAttrs() { + this.set("contentId", 'dropdown-menu-' + stringUtil.makeId(10)); - // if (this.session.get('isMobile')) { - // this.set('open', "click"); - // } - }, + // if (this.session.get('isMobile')) { + // this.set('open', "click"); + // } + }, - didInsertElement() { - this._super(...arguments); - let self = this; + didInsertElement() { + this._super(...arguments); + let self = this; - let drop = new Drop({ - target: document.getElementById(self.get('target')), - content: self.$(".dropdown-menu")[0], - classes: 'drop-theme-menu', - position: self.get('position'), - openOn: self.get('open'), - tetherOptions: { - offset: "5px 0", - targetOffset: "10px 0" - } - }); + let drop = this.get('tether').createDrop({ + target: document.getElementById(self.get('target')), + content: self.$(".dropdown-menu")[0], + classes: 'drop-theme-menu', + position: self.get('position'), + openOn: self.get('open'), + tetherOptions: { + offset: "5px 0", + targetOffset: "10px 0" + } + }); - self.set('drop', drop); - }, + self.set('drop', drop); + }, - willDestroyElement() { - this.get('drop').destroy(); - } -}); \ No newline at end of file + willDestroyElement() { + let drop = this.get('drop'); + if (drop) { + drop.destroy(); + } + } +});