From 205830c3833eaca6ab7796a3c4caa249a17582cf Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Thu, 21 May 2020 18:50:53 -0400 Subject: [PATCH] Created event bus, fixed use item, receivingItemDialog non-working. --- scripts/system/inventory/package-lock.json | 5 + scripts/system/inventory/package.json | 1 + scripts/system/inventory/public/inventory.js | 23 ++- scripts/system/inventory/src/App.vue | 182 ++++++++++++++---- .../inventory/src/components/ItemIterator.vue | 17 +- .../system/inventory/src/plugins/event-bus.js | 12 ++ 6 files changed, 185 insertions(+), 55 deletions(-) create mode 100644 scripts/system/inventory/src/plugins/event-bus.js diff --git a/scripts/system/inventory/package-lock.json b/scripts/system/inventory/package-lock.json index 56278096ed..82c1bbfd6e 100644 --- a/scripts/system/inventory/package-lock.json +++ b/scripts/system/inventory/package-lock.json @@ -1022,6 +1022,11 @@ "postcss": "^7.0.0" } }, + "@mdi/font": { + "version": "4.8.95", + "resolved": "https://registry.npmjs.org/@mdi/font/-/font-4.8.95.tgz", + "integrity": "sha512-mfEjd6kkuheZ15CBU7g/q+De9+dah/SEgVH0uZsgCJTSYa+CkXIen35aNyHoixgcEfPV4Or0NLJvyYM5CXUnbQ==" + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", diff --git a/scripts/system/inventory/package.json b/scripts/system/inventory/package.json index dfc4806f5b..a79eafab84 100644 --- a/scripts/system/inventory/package.json +++ b/scripts/system/inventory/package.json @@ -8,6 +8,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@mdi/font": "^4.8.95", "core-js": "^3.6.4", "vue": "^2.6.11", "vuedraggable": "^2.23.2", diff --git a/scripts/system/inventory/public/inventory.js b/scripts/system/inventory/public/inventory.js index 336d92e705..aa217b6462 100644 --- a/scripts/system/inventory/public/inventory.js +++ b/scripts/system/inventory/public/inventory.js @@ -13,12 +13,16 @@ var AppUi = Script.require('appUi'); var ui; var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); +// VARIABLES var inventoryDataSettingString = "inventoryApp.data"; var inventoryData; var inventorySettingsString = "inventoryApp.settings"; var inventorySettings; +var RECEIVING_ITEM_QUEUE_LIMIT = 5; +var receivingItemQueue = []; + // APP EVENT AND MESSAGING ROUTING function onWebAppEventReceived(event) { @@ -50,6 +54,10 @@ function onWebAppEventReceived(event) { sendNearbyUsers(); } + if (eventJSON.command == "web-to-script-request-receiving-item-queue") { + sendReceivingItemQueue(); + } + } } @@ -73,7 +81,7 @@ function onMessageReceived(channel, message, sender, localOnly) { // Window.alert("Passed 0 " + messageJSON.recipient + " vs " + MyAvatar.sessionUUID); if (messageJSON.command == "share-item" && messageJSON.recipient == MyAvatar.sessionUUID) { // We are receiving an item. // Window.alert("Passed 1 " + messageJSON.recipient + " vs " + MyAvatar.sessionUUID); - receivingItem(sender, messageJSON.type, messageJSON.name, messageJSON.url); + pushReceivedItemToQueue(sender, messageJSON.type, messageJSON.name, messageJSON.url); } } // print("Message received:"); @@ -131,7 +139,7 @@ function loadSettings() { inventorySettings = Settings.getValue(inventorySettingsString); } -function receivingItem(sender, type, name, url) { +function pushReceivedItemToQueue(sender, type, name, url) { var packageRequest = { "sender": sender, "data": { @@ -141,7 +149,15 @@ function receivingItem(sender, type, name, url) { } } - sendToWeb("script-to-web-receiving-item", packageRequest); + if (receivingItemQueue.length === RECEIVING_ITEM_QUEUE_LIMIT) { + receivingItemQueue = receivingItemQueue.slice(1, 5); + } + + receivingItemQueue.push(packageRequest); +} + +function sendReceivingItemQueue() { + sendToWeb("script-to-web-receiving-item-queue", receivingItemQueue); } function sendNearbyUsers() { @@ -220,6 +236,7 @@ function shareItem(data) { function initializeInventoryApp() { sendSettings(); sendInventory(); + sendReceivingItemQueue(); } function onOpened() { diff --git a/scripts/system/inventory/src/App.vue b/scripts/system/inventory/src/App.vue index aa867c445e..583c98d5e5 100644 --- a/scripts/system/inventory/src/App.vue +++ b/scripts/system/inventory/src/App.vue @@ -25,11 +25,26 @@ - + + + + mdi-tray-full + + +