mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-27 17:41:13 +02:00
68 lines
1.5 KiB
JavaScript
68 lines
1.5 KiB
JavaScript
Demo.DemoStepView = Ember.View.extend({
|
|
keyDown: function(ev) {
|
|
var cursor = this.get('controller.cursor'),
|
|
currentLength = this.get('controller.commandLog.length');
|
|
|
|
switch(ev.keyCode) {
|
|
// Down arrow
|
|
case 40:
|
|
if (cursor === 0) {
|
|
return;
|
|
}
|
|
|
|
this.incrementProperty('controller.cursor');
|
|
break;
|
|
|
|
// Up arrow
|
|
case 38:
|
|
if ((currentLength + cursor) === 0) {
|
|
return;
|
|
}
|
|
|
|
this.decrementProperty('controller.cursor');
|
|
break;
|
|
|
|
// command + k
|
|
case 75:
|
|
if (ev.metaKey) {
|
|
this.set('controller.logs', '');
|
|
this.set('controller.notCleared', false);
|
|
}
|
|
break;
|
|
|
|
// escape
|
|
case 27:
|
|
this.get('controller').transitionTo('index');
|
|
break;
|
|
}
|
|
},
|
|
|
|
deFocus: function() {
|
|
var element = this.$().find('input.shell');
|
|
|
|
// defocus while loading
|
|
if (this.get('controller.isLoading')) {
|
|
element.blur();
|
|
}
|
|
|
|
}.observes('controller.isLoading'),
|
|
|
|
focus: function() {
|
|
var element = this.$().find('input.shell');
|
|
element.focus();
|
|
}.observes('controller.cursor'),
|
|
|
|
submitted: function() {
|
|
var element = this.$();
|
|
|
|
// Focus the input
|
|
element.find('input.shell')[0].focus();
|
|
|
|
// guarantees that the log is scrolled when updated
|
|
Ember.run.scheduleOnce('afterRender', this, function() {
|
|
window.scrollTo(0, document.body.scrollHeight);
|
|
});
|
|
|
|
}.observes('controller.logs.length')
|
|
});
|