From fc50604011f018a829cf553b4ce752ebdf3f9aed Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Tue, 21 Jun 2022 17:51:33 +0200 Subject: [PATCH] add sections in menu of lots --- .../static/js/main_inventory.build.js | 27 ++++++++++++++----- ereuse_devicehub/static/js/main_inventory.js | 27 ++++++++++++++----- 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/ereuse_devicehub/static/js/main_inventory.build.js b/ereuse_devicehub/static/js/main_inventory.build.js index 16bb720a..c6bbbfe9 100644 --- a/ereuse_devicehub/static/js/main_inventory.build.js +++ b/ereuse_devicehub/static/js/main_inventory.build.js @@ -681,17 +681,32 @@ async function processSelectedDevices() { return lot; }); - let lotsList = []; - lotsList.push(lots.filter(lot => lot.state == "true").sort((a, b) => a.name.localeCompare(b.name))); - lotsList.push(lots.filter(lot => lot.state == "indetermined").sort((a, b) => a.name.localeCompare(b.name))); - lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); - lotsList = lotsList.flat(); // flat array listHTML.html(""); - lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); + let lot_temporary = lots.filter(lot => !lot.transfer); + appendMenu(lot_temporary, listHTML, templateLot, selectedDevices, actions, 'Temporary'); + + let lot_incoming = lots.filter(lot => lot.transfer && lot.transfer == 'Incoming'); + appendMenu(lot_incoming, listHTML, templateLot, selectedDevices, actions, 'Incoming'); + + let lot_outgoing = lots.filter(lot => lot.transfer && lot.transfer == 'Outgoing'); + appendMenu(lot_outgoing, listHTML, templateLot, selectedDevices, actions, 'Outgoing'); + lotsSearcher.enable(); + } catch (error) { console.log(error); listHTML.html("
  • Error feching devices and lots
    (see console for more details)
  • "); } } + +function appendMenu(lots, listHTML, templateLot, selectedDevices, actions, title) { + let lotsList = []; + lotsList.push(lots.filter(lot => lot.state == "true").sort((a, b) => a.name.localeCompare(b.name))); + lotsList.push(lots.filter(lot => lot.state == "indetermined").sort((a, b) => a.name.localeCompare(b.name))); + lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); + lotsList = lotsList.flat(); // flat array + + listHTML.append("
  • " + title + "
  • "); + lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); +} diff --git a/ereuse_devicehub/static/js/main_inventory.js b/ereuse_devicehub/static/js/main_inventory.js index fd693d44..46b2f61f 100644 --- a/ereuse_devicehub/static/js/main_inventory.js +++ b/ereuse_devicehub/static/js/main_inventory.js @@ -646,17 +646,30 @@ async function processSelectedDevices() { return lot; }) - let lotsList = []; - lotsList.push(lots.filter(lot => lot.state == "true").sort((a, b) => a.name.localeCompare(b.name))); - lotsList.push(lots.filter(lot => lot.state == "indetermined").sort((a, b) => a.name.localeCompare(b.name))); - lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); - lotsList = lotsList.flat(); // flat array - listHTML.html(""); - lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); + let lot_temporary = lots.filter(lot => !lot.transfer); + appendMenu(lot_temporary, listHTML, templateLot, selectedDevices, actions, 'Temporary'); + + let lot_incoming = lots.filter(lot => lot.transfer && lot.transfer == 'Incoming'); + appendMenu(lot_incoming, listHTML, templateLot, selectedDevices, actions, 'Incoming'); + + let lot_outgoing = lots.filter(lot => lot.transfer && lot.transfer == 'Outgoing'); + appendMenu(lot_outgoing, listHTML, templateLot, selectedDevices, actions, 'Outgoing'); + lotsSearcher.enable(); } catch (error) { console.log(error); listHTML.html("
  • Error feching devices and lots
    (see console for more details)
  • "); } } + +function appendMenu(lots, listHTML, templateLot, selectedDevices, actions, title) { + let lotsList = []; + lotsList.push(lots.filter(lot => lot.state == "true").sort((a, b) => a.name.localeCompare(b.name))); + lotsList.push(lots.filter(lot => lot.state == "indetermined").sort((a, b) => a.name.localeCompare(b.name))); + lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); + lotsList = lotsList.flat(); // flat array + + listHTML.append("
  • " + title + "
  • "); + lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); +}