Files
discourse-data-explorer/assets/javascripts/discourse/views/admin-plugins-explorer.js.es6
T

55 lines
1.4 KiB
JavaScript

export default Ember.View.extend({
_bindGrippie: function() {
const $editPane = this.$().find('.query-editor');
if (!$editPane.length) {
return;
}
const oldGrippie = this.get('grippie');
if (oldGrippie) {
oldGrippie.off('mousedown mousemove mouseup');
$editPane.off('mousemove mouseup');
}
const $grippie = $editPane.find('.grippie');
const $targets = $editPane.find('.ace-wrapper,.grippie-target');
const $body = $('body');
const self = this;
this.set('grippie', $grippie);
const mousemove = function(e) {
const diff = self.get('startY') - e.screenY;
const newHeight = self.get('startSize') - diff;
Em.Logger.debug("new height", newHeight);
$targets.height(newHeight);
self.appEvents.trigger('ace:resize');
};
let mouseup;
mouseup = function(e) {
mousemove(e);
Em.Logger.debug("mouseup");
$body.off('mousemove', mousemove);
$body.off('mouseup', mouseup);
self.set('startY', null);
self.set('startSize', null);
};
$grippie.on('mousedown', function(e) {
self.set('startY', e.screenY);
self.set('startSize', $targets.height());
$body.on('mousemove', mousemove);
$body.on('mouseup', mouseup);
e.preventDefault();
});
}.on('didInsertElement'),
_cleanup: function() {
this.get('grippie').off('mousedown');
this.set('grippie', null);
}.on('willDestroyElement')
});