diff --git a/javascript/solution/client-details/index.js b/javascript/solution/client-details/index.js index 704318a..d2401fa 100644 --- a/javascript/solution/client-details/index.js +++ b/javascript/solution/client-details/index.js @@ -1,5 +1,5 @@ -import IOBrowser from '@interopio/browser'; -import IOWorkspaces from '@interopio/workspaces-api'; +import IOBrowser from "@interopio/browser"; +import IOWorkspaces from "@interopio/workspaces-api"; const setFields = (client) => { const elementName = document.querySelectorAll("[data-name]")[0]; @@ -42,9 +42,9 @@ const start = async () => { if (context.client) { setFields(context.client); myWorkspace.setTitle(context.client.name); - }; + } }); - }; + } }; -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/solution/clients/index.html b/javascript/solution/clients/index.html index 953a22a..7b3bbce 100644 --- a/javascript/solution/clients/index.html +++ b/javascript/solution/clients/index.html @@ -49,4 +49,4 @@

Clients

- + \ No newline at end of file diff --git a/javascript/solution/clients/index.js b/javascript/solution/clients/index.js index 5ceab46..deb0e1b 100644 --- a/javascript/solution/clients/index.js +++ b/javascript/solution/clients/index.js @@ -1,10 +1,12 @@ -import IOBrowserPlatform from '@interopio/browser-platform'; -import IOWorkspaces from '@interopio/workspaces-api'; -import { setupApplications } from './plugins/applicationsPlugin.js'; -import { setupLayouts } from './plugins/layoutsPlugin.js'; +import IOBrowserPlatform from "@interopio/browser-platform"; +import IOWorkspaces from "@interopio/workspaces-api"; +import { setupApplications } from "./plugins/applicationsPlugin.js"; +import { setupLayouts } from "./plugins/layoutsPlugin.js"; const setupClients = (clients) => { - const table = document.getElementById("clientsTable").getElementsByTagName("tbody")[0]; + const table = document + .getElementById("clientsTable") + .getElementsByTagName("tbody")[0]; const addRowCell = (row, cellData, cssClass) => { const cell = document.createElement("td"); @@ -13,7 +15,7 @@ const setupClients = (clients) => { if (cssClass) { cell.className = cssClass; - }; + } row.appendChild(cell); }; @@ -66,12 +68,15 @@ const clientClickedHandler = async (client) => { }; try { - const workspace = await io.workspaces.restoreWorkspace("Client Space", restoreConfig); + const workspace = await io.workspaces.restoreWorkspace( + "Client Space", + restoreConfig + ); await raiseNotificationOnWorkspaceOpen(client.name, workspace); - } catch(error) { + } catch (error) { console.error(error.message); - }; + } }; // let counter = 1; @@ -96,7 +101,7 @@ const clientClickedHandler = async (client) => { const raiseNotificationOnWorkspaceOpen = async (clientName, workspace) => { const options = { title: "New Workspace", - body: `A new Workspace for ${clientName} was opened!`, + body: `A new Workspace for ${clientName} was opened!` }; const notification = await io.notifications.raise(options); @@ -110,7 +115,7 @@ const raiseNotificationOnWorkspaceOpen = async (clientName, workspace) => { const start = async () => { if ("serviceWorker" in navigator) { navigator.serviceWorker.register("/service-worker.js"); - }; + } const clientsResponse = await fetch("http://localhost:8080/api/clients"); const clients = await clientsResponse.json(); @@ -229,13 +234,13 @@ const start = async () => { definitions: [ { name: "Setup Applications", - config: { url: "http://localhost:8080/api/applications"}, + config: { url: "http://localhost:8080/api/applications" }, start: setupApplications, critical: true }, { name: "Setup Workspace Layouts", - config: { url: "http://localhost:8080/api/layouts"}, + config: { url: "http://localhost:8080/api/layouts" }, start: setupLayouts, critical: true } @@ -281,4 +286,4 @@ const start = async () => { // ); }; -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/solution/clients/plugins/applicationsPlugin.js b/javascript/solution/clients/plugins/applicationsPlugin.js index df732cd..066fd8c 100644 --- a/javascript/solution/clients/plugins/applicationsPlugin.js +++ b/javascript/solution/clients/plugins/applicationsPlugin.js @@ -10,7 +10,7 @@ export const setupApplications = async (io, { url }) => { const appDefinitions = await fetchAppDefinitions(url); await io.appManager.inMemory.import(appDefinitions); - } catch(error) { + } catch (error) { console.error(error.message); - }; -}; \ No newline at end of file + } +}; diff --git a/javascript/solution/clients/plugins/layoutsPlugin.js b/javascript/solution/clients/plugins/layoutsPlugin.js index a078021..7cb54e1 100644 --- a/javascript/solution/clients/plugins/layoutsPlugin.js +++ b/javascript/solution/clients/plugins/layoutsPlugin.js @@ -12,5 +12,5 @@ export const setupLayouts = async (io, { url }) => { await io.layouts.import(layoutDefinitions); } catch (error) { console.error(error.message); - }; -}; \ No newline at end of file + } +}; diff --git a/javascript/solution/portfolio-downloader/index.js b/javascript/solution/portfolio-downloader/index.js index 2a26daa..000e9eb 100644 --- a/javascript/solution/portfolio-downloader/index.js +++ b/javascript/solution/portfolio-downloader/index.js @@ -1,16 +1,20 @@ -import IOBrowser from '@interopio/browser'; +import IOBrowser from "@interopio/browser"; const intentHandler = (context) => { if (!context) { return; - }; + } setupTitle(context.data.clientName); - const dataToWrite = JSON.stringify({ - date: new Date(Date.now()).toLocaleString("en-US"), - portfolio: context.data.portfolio - }, null, 4); + const dataToWrite = JSON.stringify( + { + date: new Date(Date.now()).toLocaleString("en-US"), + portfolio: context.data.portfolio + }, + null, + 4 + ); const blob = new Blob([dataToWrite], { type: "application/json" }); const download = document.getElementById("download"); const href = URL.createObjectURL(blob); @@ -40,6 +44,6 @@ async function start() { toggleIOAvailable(); io.intents.register("ExportPortfolio", intentHandler); -}; +} -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/solution/stocks/details/index.js b/javascript/solution/stocks/details/index.js index cfdd65a..9244aab 100644 --- a/javascript/solution/stocks/details/index.js +++ b/javascript/solution/stocks/details/index.js @@ -1,4 +1,4 @@ -import IOBrowser from '@interopio/browser'; +import IOBrowser from "@interopio/browser"; const setFields = (stock) => { const elementTitle = document.querySelector(".text-center"); @@ -13,7 +13,8 @@ const setFields = (stock) => { const elementBloomberg = document.querySelectorAll("[data-bloomberg]")[0]; elementBloomberg.innerText = stock.Bloomberg; - const elementDescription = document.querySelectorAll("[data-description]")[0]; + const elementDescription = + document.querySelectorAll("[data-description]")[0]; elementDescription.innerText = stock.Description; const elementExchange = document.querySelectorAll("[data-exchange]")[0]; @@ -65,14 +66,14 @@ const start = async () => { selectedStock = context.stock; setFields(selectedStock); - }; + } myWindow.onContextUpdated((context) => { if (context.stock) { selectedStock = context.stock; setFields(selectedStock); - }; + } }); const subscription = await io.interop.subscribe("LivePrices"); @@ -80,10 +81,12 @@ const start = async () => { const streamDataHandler = (streamData) => { if (!selectedStock) { return; - }; + } const updatedStocks = streamData.data.stocks; - const selectedStockPrice = updatedStocks.find(updatedStock => updatedStock.RIC === selectedStock.RIC); + const selectedStockPrice = updatedStocks.find( + (updatedStock) => updatedStock.RIC === selectedStock.RIC + ); updateStockPrices(selectedStockPrice.Bid, selectedStockPrice.Ask); }; @@ -97,4 +100,4 @@ const start = async () => { // io.contexts.subscribe("SelectedClient", updateHandler); }; -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/solution/stocks/index.js b/javascript/solution/stocks/index.js index 910516e..7ee2230 100644 --- a/javascript/solution/stocks/index.js +++ b/javascript/solution/stocks/index.js @@ -1,5 +1,5 @@ -import IOBrowser from '@interopio/browser'; -import IOWorkspaces from '@interopio/workspaces-api'; +import IOBrowser from "@interopio/browser"; +import IOWorkspaces from "@interopio/workspaces-api"; let clientPortfolioStocks; let clientName; @@ -76,7 +76,9 @@ const generateStockPrices = (handleNewPrices) => { }; const setupStocks = (stocks) => { - const table = document.getElementById("stocksTable").getElementsByTagName("tbody")[0]; + const table = document + .getElementById("stocksTable") + .getElementsByTagName("tbody")[0]; table.innerHTML = ""; @@ -87,7 +89,7 @@ const setupStocks = (stocks) => { if (cssClass) { cell.className = cssClass; - }; + } row.appendChild(cell); }; @@ -128,7 +130,7 @@ const newPricesHandler = (priceUpdate) => { if (!row) { return; - }; + } const bidElement = row.children[2]; bidElement.innerText = stock.Bid; @@ -139,7 +141,7 @@ const newPricesHandler = (priceUpdate) => { if (priceStream) { priceStream.push(priceUpdate); - }; + } }; const stockClickedHandler = async (stock) => { @@ -172,21 +174,27 @@ const stockClickedHandler = async (stock) => { let detailsWindow; const myWorkspace = await io.workspaces.getMyWorkspace(); - let detailsWorkspaceWindow = myWorkspace.getWindow(window => window.appName === "Stock Details"); + let detailsWorkspaceWindow = myWorkspace.getWindow( + (window) => window.appName === "Stock Details" + ); if (detailsWorkspaceWindow) { detailsWindow = detailsWorkspaceWindow.getGdWindow(); } else { const myId = io.windows.my().id; - const myImmediateParent = myWorkspace.getWindow(window => window.id === myId).parent; + const myImmediateParent = myWorkspace.getWindow( + (window) => window.id === myId + ).parent; const group = await myImmediateParent.parent.addGroup(); - detailsWorkspaceWindow = await group.addWindow({ appName: "Stock Details" }); + detailsWorkspaceWindow = await group.addWindow({ + appName: "Stock Details" + }); await detailsWorkspaceWindow.forceLoad(); detailsWindow = detailsWorkspaceWindow.getGdWindow(); - }; + } detailsWindow.updateContext({ stock }); }; @@ -197,7 +205,7 @@ const exportPortfolioButtonHandler = async (portfolio) => { if (!intents) { return; - }; + } const intentRequest = { intent: "ExportPortfolio", @@ -213,11 +221,10 @@ const exportPortfolioButtonHandler = async (portfolio) => { } }; - const start = async () => { if ("serviceWorker" in navigator) { navigator.serviceWorker.register("/service-worker.js"); - }; + } const stocksResponse = await fetch("http://localhost:8080/api/portfolio"); const stocks = await stocksResponse.json(); @@ -306,23 +313,25 @@ const start = async () => { myWorkspace.onContextUpdated((context) => { if (context.client) { const clientPortfolio = context.client.portfolio; - clientPortfolioStocks = stocks.filter((stock) => clientPortfolio.includes(stock.RIC)); + clientPortfolioStocks = stocks.filter((stock) => + clientPortfolio.includes(stock.RIC) + ); clientName = context.client.name; setupStocks(clientPortfolioStocks); - }; + } }); - }; + } const exportPortfolioButton = document.getElementById("exportPortfolio"); exportPortfolioButton.onclick = () => { if (!clientPortfolioStocks) { return; - }; + } exportPortfolioButtonHandler(clientPortfolioStocks); }; }; -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/start/client-details/index.js b/javascript/start/client-details/index.js index b76c24a..1fbe003 100644 --- a/javascript/start/client-details/index.js +++ b/javascript/start/client-details/index.js @@ -1,7 +1,8 @@ // TODO: Chapter 2 -// import IOBrowser from '@interopio/browser'; +// import IOBrowser from "@interopio/browser"; + // TODO: Chapter 9.3 -// import IOWorkspaces from '@interopio/workspaces-api'; +// import IOWorkspaces from "@interopio/workspaces-api"; const setFields = (client) => { const elementName = document.querySelectorAll("[data-name]")[0]; @@ -31,8 +32,7 @@ const setFields = (client) => { const start = async () => { // TODO: Chapter 2 - // TODO: Chapter 9.5 }; -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/start/clients/index.html b/javascript/start/clients/index.html index 166b057..a1c5796 100644 --- a/javascript/start/clients/index.html +++ b/javascript/start/clients/index.html @@ -50,4 +50,4 @@

Clients

- + \ No newline at end of file diff --git a/javascript/start/clients/index.js b/javascript/start/clients/index.js index 7147a9d..069f28b 100644 --- a/javascript/start/clients/index.js +++ b/javascript/start/clients/index.js @@ -1,14 +1,19 @@ // TODO: Chapter 2 -// import IOBrowserPlatform from '@interopio/browser-platform'; +// import IOBrowserPlatform from "@interopio/browser-platform"; + // TODO: Chapter 9.3 -// import IOWorkspaces from '@interopio/workspaces-api'; +// import IOWorkspaces from "@interopio/workspaces-api"; + // TODO: Chapter 8.2 -// import { setupApplications } from './plugins/applicationsPlugin.js'; +// import { setupApplications } from "./plugins/applicationsPlugin.js"; + // TODO: Chapter 9.2 -// import { setupLayouts } from './plugins/layoutsPlugin.js'; +// import { setupLayouts } from "./plugins/layoutsPlugin.js"; const setupClients = (clients) => { - const table = document.getElementById("clientsTable").getElementsByTagName("tbody")[0]; + const table = document + .getElementById("clientsTable") + .getElementsByTagName("tbody")[0]; const addRowCell = (row, cellData, cssClass) => { const cell = document.createElement("td"); @@ -17,7 +22,7 @@ const setupClients = (clients) => { if (cssClass) { cell.className = cssClass; - }; + } row.appendChild(cell); }; @@ -53,15 +58,10 @@ const setupClients = (clients) => { const clientClickedHandler = (client) => { // TODO: Chapter 4.2 - // TODO: Chapter 4.3 - // TODO: Chapter 5.1 - // TODO: Chapter 6.3 - // TODO: Chapter 9.4 - }; let counter = 1; @@ -102,4 +102,4 @@ const start = async () => { // TODO: Chapter 6.2 }; -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/start/clients/plugins/applicationsPlugin.js b/javascript/start/clients/plugins/applicationsPlugin.js index b5d44ab..bdeb0f8 100644 --- a/javascript/start/clients/plugins/applicationsPlugin.js +++ b/javascript/start/clients/plugins/applicationsPlugin.js @@ -7,4 +7,4 @@ const fetchAppDefinitions = async (url) => { export const setupApplications = async (io, { url }) => { // TODO Chapter 8.2 -}; \ No newline at end of file +}; diff --git a/javascript/start/clients/plugins/layoutsPlugin.js b/javascript/start/clients/plugins/layoutsPlugin.js index 913db31..63703f7 100644 --- a/javascript/start/clients/plugins/layoutsPlugin.js +++ b/javascript/start/clients/plugins/layoutsPlugin.js @@ -7,4 +7,4 @@ const fetchWorkspaceLayoutDefinitions = async (url) => { export const setupLayouts = async (io, { url }) => { // TODO Chapter 9.2 -}; \ No newline at end of file +}; diff --git a/javascript/start/portfolio-downloader/index.js b/javascript/start/portfolio-downloader/index.js index fa26777..dc5979b 100644 --- a/javascript/start/portfolio-downloader/index.js +++ b/javascript/start/portfolio-downloader/index.js @@ -1,17 +1,21 @@ // TODO: Chapter 2 -// import IOBrowser from '@interopio/browser'; +// import IOBrowser from "@interopio/browser"; const intentHandler = (context) => { if (!context) { return; - }; + } setupTitle(context.data.clientName); - const dataToWrite = JSON.stringify({ - date: new Date(Date.now()).toLocaleString("en-US"), - portfolio: context.data.portfolio - }, null, 4); + const dataToWrite = JSON.stringify( + { + date: new Date(Date.now()).toLocaleString("en-US"), + portfolio: context.data.portfolio + }, + null, + 4 + ); const blob = new Blob([dataToWrite], { type: "application/json" }); const download = document.getElementById("download"); const href = URL.createObjectURL(blob); @@ -36,9 +40,7 @@ const setupTitle = (clientName) => { async function start() { // TODO: Chapter 2 - // TODO: Chapter 10.1 +} -}; - -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/start/stocks/details/index.js b/javascript/start/stocks/details/index.js index 0dec39b..19dd86b 100644 --- a/javascript/start/stocks/details/index.js +++ b/javascript/start/stocks/details/index.js @@ -1,5 +1,5 @@ // TODO: Chapter 2 -// import IOBrowser from '@interopio/browser'; +// import IOBrowser from "@interopio/browser"; const setFields = (stock) => { const elementTitle = document.querySelector(".text-center"); @@ -14,7 +14,8 @@ const setFields = (stock) => { const elementBloomberg = document.querySelectorAll("[data-bloomberg]")[0]; elementBloomberg.innerText = stock.Bloomberg; - const elementDescription = document.querySelectorAll("[data-description]")[0]; + const elementDescription = + document.querySelectorAll("[data-description]")[0]; elementDescription.innerText = stock.Description; const elementExchange = document.querySelectorAll("[data-exchange]")[0]; @@ -67,4 +68,4 @@ const start = async () => { // TODO: Chapter 9.6 }; -start().catch(console.error); \ No newline at end of file +start().catch(console.error); diff --git a/javascript/start/stocks/index.js b/javascript/start/stocks/index.js index 0495cc4..4c50468 100644 --- a/javascript/start/stocks/index.js +++ b/javascript/start/stocks/index.js @@ -1,7 +1,8 @@ // TODO: Chapter 2 -// import IOBrowser from '@interopio/browser'; +// import IOBrowser from "@interopio/browser"; + // TODO: Chapter 9.3 -// import IOWorkspaces from '@interopio/workspaces-api'; +// import IOWorkspaces from "@interopio/workspaces-api"; let clientPortfolioStocks; let clientName; @@ -78,7 +79,9 @@ const generateStockPrices = (handleNewPrices) => { }; const setupStocks = (stocks) => { - const table = document.getElementById("stocksTable").getElementsByTagName("tbody")[0]; + const table = document + .getElementById("stocksTable") + .getElementsByTagName("tbody")[0]; table.innerHTML = ""; @@ -89,7 +92,7 @@ const setupStocks = (stocks) => { if (cssClass) { cell.className = cssClass; - }; + } row.appendChild(cell); }; @@ -130,7 +133,7 @@ const newPricesHandler = (priceUpdate) => { if (!row) { return; - }; + } const bidElement = row.children[2]; bidElement.innerText = stock.Bid; @@ -157,11 +160,10 @@ const exportPortfolioButtonHandler = async (portfolio) => { // TODO: Chapter 10.2 }; - const start = async () => { if ("serviceWorker" in navigator) { navigator.serviceWorker.register("/service-worker.js"); - }; + } const stocksResponse = await fetch("http://localhost:8080/api/portfolio"); const stocks = await stocksResponse.json(); @@ -195,4 +197,4 @@ const start = async () => { // }; }; -start().catch(console.error); \ No newline at end of file +start().catch(console.error);