Skip to content

Commit 5ffbada

Browse files
authored
add hotkeys for organization application review (#17988)
a -> open approve modal d -> open defer modal r -> open request more info modal ! -> open decline modal
1 parent 52d80d4 commit 5ffbada

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

warehouse/admin/static/js/warehouse.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,36 @@ if (editModalForm !== null) {
265265
}
266266
}
267267

268+
$(document).ready(function() {
269+
const modalHotKeyBindings = document.querySelectorAll("button[data-hotkey-binding]");
270+
var keyBindings = new Map();
271+
function bindHotKeys() {
272+
document.onkeyup = hotKeys;
273+
}
274+
function unbindHotKeys() {
275+
document.onkeyup = function(){};
276+
}
277+
function hotKeys(e) {
278+
console.log(e);
279+
if (keyBindings.has(String(e.which))) {
280+
unbindHotKeys();
281+
$(keyBindings.get(String(e.which))).modal("show");
282+
$(keyBindings.get(String(e.which))).on("hidden.bs.modal", bindHotKeys);
283+
}
284+
}
285+
modalHotKeyBindings.forEach(function(modalHotKeyBinding) {
286+
if (! modalHotKeyBinding.disabled) {
287+
keyBindings.set(modalHotKeyBinding.dataset.hotkeyBinding, modalHotKeyBinding.dataset.target);
288+
}
289+
});
290+
const inputs = document.querySelectorAll("input");
291+
inputs.forEach(function(input) {
292+
input.addEventListener("focusin", unbindHotKeys);
293+
input.addEventListener("focusout", bindHotKeys);
294+
});
295+
document.onkeyup = bindHotKeys;
296+
});
297+
268298
// Link Checking
269299
const links = document.querySelectorAll("a[data-check-link-url]");
270300
links.forEach(function(link){

warehouse/admin/templates/admin/organization_applications/detail.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ <h2 class="card-title">Actions</h2>
6464
type="button"
6565
class="btn btn-primary btn-block"
6666
data-toggle="modal"
67+
data-hotkey-binding=65
6768
data-target="#approveModal" {{ 'disabled' if not request.has_permission(Permissions.AdminOrganizationsWrite) or organization_application.status.value in ['approved', 'declined'] }}
6869
title="Approve organization request"
6970
>
@@ -74,6 +75,7 @@ <h2 class="card-title">Actions</h2>
7475
type="button"
7576
class="btn btn-info btn-block"
7677
data-toggle="modal"
78+
data-hotkey-binding=82
7779
data-target="#requestMoreInfoModal" {{ 'disabled' if not request.has_permission(Permissions.AdminOrganizationsWrite) or organization_application.status.value in ['approved', 'declined'] }}
7880
title="Request more information on this organization request"
7981
>
@@ -84,6 +86,7 @@ <h2 class="card-title">Actions</h2>
8486
type="button"
8587
class="btn btn-danger btn-block"
8688
data-toggle="modal"
89+
data-hotkey-binding=49
8790
data-target="#declineModal" {{ 'disabled' if not request.has_permission(Permissions.AdminOrganizationsWrite) or organization_application.status.value in ['approved', 'declined'] }}
8891
title="Decline organization request"
8992
>
@@ -94,6 +97,7 @@ <h2 class="card-title">Actions</h2>
9497
type="button"
9598
class="btn btn-secondary btn-block"
9699
data-toggle="modal"
100+
data-hotkey-binding=68
97101
data-target="#deferModal" {{ 'disabled' if not request.has_permission(Permissions.AdminOrganizationsWrite) or organization_application.status in ['deferred', 'approved', 'declined'] }}
98102
title="Defer organization request"
99103
>
@@ -261,7 +265,7 @@ <h4 class="modal-title" id="requestMoreInfoModalLabel">
261265
<label for="requestMoreInfoModalMessage">
262266
Message
263267
</label>
264-
<textarea id="requestMoreInfoModalMessage" class="form-control" name="message" placeholder="Information you are requesting" rows=16></textarea>
268+
<textarea id="requestMoreInfoModalMessage" class="form-control" name="message" placeholder="Information you are requesting" rows=8></textarea>
265269
<span id="requestMoreInfoModalMessageHelpBlock">
266270
This message will be included in the notification email.
267271
</span>

0 commit comments

Comments
 (0)