diff --git a/ereuse_devicehub/static/js/main_inventory.build.js b/ereuse_devicehub/static/js/main_inventory.build.js index 4ee7afe9..16bb720a 100644 --- a/ereuse_devicehub/static/js/main_inventory.build.js +++ b/ereuse_devicehub/static/js/main_inventory.build.js @@ -26,8 +26,10 @@ $(document).ready(() => { newTrade(show_trade_form); } else { $(".deviceSelect").on("change", deviceSelect); - } // $('#selectLot').selectpicker(); + } + ; + select_shift(); // $('#selectLot').selectpicker(); }); class TableController { @@ -239,6 +241,26 @@ function addTag() { $("#addTagAlertModal").click(); } +function select_shift() { + const chkboxes = $('.deviceSelect'); + var lastChecked = null; + chkboxes.click(function (e) { + if (!lastChecked) { + lastChecked = this; + return; + } + + if (e.shiftKey) { + const start = chkboxes.index(this); + const end = chkboxes.index(lastChecked); + chkboxes.slice(Math.min(start, end), Math.max(start, end) + 1).prop("checked", lastChecked.checked); + } + + lastChecked = this; + }); + selectorController("softInit"); +} + function newTrade(action) { let title = "Trade "; const user_to = $("#user_to").data("email"); diff --git a/ereuse_devicehub/static/js/main_inventory.js b/ereuse_devicehub/static/js/main_inventory.js index f59bf588..fd693d44 100644 --- a/ereuse_devicehub/static/js/main_inventory.js +++ b/ereuse_devicehub/static/js/main_inventory.js @@ -13,7 +13,8 @@ $(document).ready(() => { newTrade(show_trade_form); } else { $(".deviceSelect").on("change", deviceSelect); - } + }; + select_shift(); // $('#selectLot').selectpicker(); }) @@ -229,6 +230,27 @@ function addTag() { $("#addTagAlertModal").click(); } +function select_shift() { + const chkboxes = $(".deviceSelect"); + let lastChecked = null; + chkboxes.click(function(e) { + if (!lastChecked) { + lastChecked = this; + return; + } + + if (e.shiftKey) { + const start = chkboxes.index(this); + const end = chkboxes.index(lastChecked); + + chkboxes.slice(Math.min(start,end), Math.max(start,end)+ 1).prop("checked", lastChecked.checked); + } + + lastChecked = this; + }); + selectorController("softInit"); +} + function newTrade(action) { let title = "Trade " const user_to = $("#user_to").data("email");