Keyboard shortcuts

This commit is contained in:
Liyas Thomas
2019-11-14 16:28:17 +05:30
parent 00c6e22861
commit 009eae83a6
5 changed files with 62 additions and 3 deletions

View File

@@ -494,6 +494,7 @@ fieldset.yellow legend {
display: none; display: none;
} }
kbd,
select, select,
input, input,
option, option,

View File

@@ -27,13 +27,19 @@
class="icon" class="icon"
@click="removeFolder" @click="removeFolder"
v-tooltip="'Delete folder'" v-tooltip="'Delete folder'"
v-close-popover
> >
<i class="material-icons">delete</i> <i class="material-icons">delete</i>
<span>Delete</span> <span>Delete</span>
</button> </button>
</div> </div>
<div> <div>
<button class="icon" @click="editFolder" v-tooltip="'Edit folder'"> <button
class="icon"
@click="editFolder"
v-tooltip="'Edit folder'"
v-close-popover
>
<i class="material-icons">edit</i> <i class="material-icons">edit</i>
<span>Edit</span> <span>Edit</span>
</button> </button>

View File

@@ -28,6 +28,7 @@
class="icon" class="icon"
@click="removeRequest" @click="removeRequest"
v-tooltip="'Delete request'" v-tooltip="'Delete request'"
v-close-popover
> >
<i class="material-icons">delete</i> <i class="material-icons">delete</i>
<span>Delete</span> <span>Delete</span>
@@ -38,6 +39,7 @@
class="icon" class="icon"
@click="$emit('edit-request')" @click="$emit('edit-request')"
v-tooltip="'Edit request'" v-tooltip="'Edit request'"
v-close-popover
> >
<i class="material-icons">edit</i> <i class="material-icons">edit</i>
<span>Edit</span> <span>Edit</span>

View File

@@ -40,6 +40,16 @@
<i class="material-icons">more_vert</i> <i class="material-icons">more_vert</i>
</button> </button>
<template slot="popover"> <template slot="popover">
<div>
<button
class="icon"
@click="showShortcuts = true"
v-close-popover
>
<i class="material-icons">keyboard</i>
<span>Shortcuts</span>
</button>
</div>
<div> <div>
<a <a
href="https://opencollective.com/postwoman" href="https://opencollective.com/postwoman"
@@ -210,6 +220,33 @@
> >
</p> </p>
</footer> </footer>
<modal v-if="showShortcuts" @close="showShortcuts = false">
<div slot="header">
<ul>
<li>
<div class="flex-wrap">
<h3 class="title">Shortcuts</h3>
<div>
<button class="icon" @click="showShortcuts = false">
<i class="material-icons">close</i>
</button>
</div>
</div>
</li>
</ul>
</div>
<div slot="body">
<ul>
<li>
<span>
<kbd>Save to Collection:</kbd>
<kbd>Ctrl</kbd><kbd>S</kbd>
</span>
</li>
</ul>
</div>
<div slot="footer"></div>
</modal>
</div> </div>
</template> </template>
@@ -219,10 +256,12 @@
import intializePwa from "../assets/js/pwa"; import intializePwa from "../assets/js/pwa";
import logo from "../components/logo"; import logo from "../components/logo";
import * as version from "../.postwoman/version.json"; import * as version from "../.postwoman/version.json";
import modal from "../components/modal";
export default { export default {
components: { components: {
logo logo,
modal
}, },
methods: { methods: {
@@ -240,7 +279,8 @@ export default {
// that can be called to show the user the installation // that can be called to show the user the installation
// prompt. // prompt.
showInstallPrompt: null, showInstallPrompt: null,
version: {} version: {},
showShortcuts: false
}; };
}, },

View File

@@ -1942,6 +1942,13 @@ export default {
}, },
mounted() { mounted() {
this.observeRequestButton(); this.observeRequestButton();
this._keyListener = function(e) {
if (e.key === "s" && (e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.saveRequest();
}
};
document.addEventListener("keydown", this._keyListener.bind(this));
}, },
created() { created() {
this.urlExcludes = this.$store.state.postwoman.settings.URL_EXCLUDES || { this.urlExcludes = this.$store.state.postwoman.settings.URL_EXCLUDES || {
@@ -1974,6 +1981,9 @@ export default {
this.setRouteQueryState(); this.setRouteQueryState();
} }
); );
},
beforeDestroy() {
document.removeEventListener('keydown', this._keyListener);
} }
}; };
</script> </script>