ember-arcgis-page-layout
Version:
Page Layout infrastructure components
64 lines (53 loc) • 1.45 kB
JavaScript
/**
* bs-drawer:component.js
*
*
*/
import Ember from 'ember';
import layout from './template';
export default Ember.Component.extend({
layout:layout,
tagName: 'div',
classNames: ['bs-drawer', 'editor-drawer','drawer','dw-sx-10', 'dw-sm-6', 'dw-md-4', 'fold'],
classNameBindings:['drawerInside'],
hasBackUrl: Ember.computed.match('backRoute', /^http/),
hasBackRoute: Ember.computed('backRoute', function(){
let br = this.get('backRoute');
if(br && br.indexOf('http') === -1){
return true;
}else{
return false;
}
}),
hasBackAction: Ember.computed.notEmpty('onGoBack'),
eventBus: Ember.inject.service('event-bus'),
init: function(){
this._super(...arguments);
this.get('eventBus').on('hideDrawer', this, 'hideDrawer');
this.get('eventBus').on('showDrawer', this, 'showDrawer');
},
didInsertElement(){
this._super(...arguments);
//instantiate the drawer so that potential calls
//to this.$().drawer('hide'); do not end up showing it
this.$().drawer({toggle:false});
},
/**
* Remove handlers
*/
willDestroyElement: function(){
this.get('eventBus').off('hideDrawer', this, 'hideDrawer');
this.get('eventBus').off('showDrawer', this, 'showDrawer');
},
hideDrawer: function(){
this.$().drawer('hide');
},
showDrawer: function(){
this.$().drawer('show');
},
actions: {
goBack(){
this.get('onGoBack')();
}
}
});