diff --git a/src/lib/components/recipe-details/recipelist-value-editor.svelte b/src/lib/components/recipe-details/recipelist-value-editor.svelte index 15e4d04..41754f9 100644 --- a/src/lib/components/recipe-details/recipelist-value-editor.svelte +++ b/src/lib/components/recipe-details/recipelist-value-editor.svelte @@ -12,7 +12,10 @@ latestRecipeToppingData, recipeDataEvent, toppingGroupFromServerQuery, - toppingListFromServerQuery + toppingListFromServerQuery, + toppingGroupFromMachineQuery, + toppingListFromMachineQuery, + referenceFromPage } from '$lib/core/stores/recipeStore'; import { onMount } from 'svelte'; import { addNotification } from '$lib/core/stores/noti'; @@ -189,8 +192,13 @@ // recipelist-value-editor.svelte?t=1773541064272:57 GET requested data: {"mat_id":9501,"mat_type":"cup","mat_name":"CUP paper (9501)","params":{},"toppings":[{"ListGroupID":[1,0,0,0],"defaultIDSelect":1,"groupID":"1","isUse":true},{"ListGroupID":[6,0,0,0],"defaultIDSelect":31,"groupID":"6","isUse":true},{"ListGroupID":[7,0,0,0],"defaultIDSelect":33,"groupID":"7","isUse":true},{"ListGroupID":[0,0,0,0],"defaultIDSelect":0,"groupID":"0","isUse":false},{"ListGroupID":[0,0,0,0],"defaultIDSelect":0,"groupID":"0","isUse":false},{"ListGroupID":[0,0,0,0],"defaultIDSelect":0,"groupID":"0","isUse":false},{"ListGroupID":[530,0,0,0],"defaultIDSelect":532,"groupID":"530","isUse":true},{"ListGroupID":[500,0,0,0],"defaultIDSelect":502,"groupID":"500","isUse":true}],"current_topping_list":[],"has_mix_ord":false,"feed":{"pattern":0,"parameter":0},"water":{"cold":0,"yield":0},"powder":{"gram":0,"time":0},"syrup":{"gram":0,"time":0},"stir_time":0} onMount(() => { - categories = get(toppingGroupFromServerQuery); - topping_lists = get(toppingListFromServerQuery); + let refFrom = get(referenceFromPage); + categories = get( + refFrom === 'overview' ? toppingGroupFromServerQuery : toppingGroupFromMachineQuery + ); + topping_lists = get( + refFrom === 'overview' ? toppingListFromServerQuery : toppingListFromMachineQuery + ); return recipeDataEvent.subscribe((event) => { if (event !== null && event.index !== undefined && event.index === row_id) { @@ -230,7 +238,7 @@ diff --git a/src/lib/components/recipe-details/recipelist-value.svelte b/src/lib/components/recipe-details/recipelist-value.svelte index 66caa53..3557b18 100644 --- a/src/lib/components/recipe-details/recipelist-value.svelte +++ b/src/lib/components/recipe-details/recipelist-value.svelte @@ -16,7 +16,10 @@ latestRecipeToppingData, recipeDataEvent, toppingGroupFromServerQuery, - toppingListFromServerQuery + toppingListFromServerQuery, + toppingGroupFromMachineQuery, + toppingListFromMachineQuery, + referenceFromPage } from '$lib/core/stores/recipeStore'; import { get } from 'svelte/store'; @@ -106,9 +109,14 @@ } function getToppingDisplay() { + let refFrom = get(referenceFromPage); let current_row_topping = currentToppings[getToppingSlot()]; - let groupQuery = get(toppingGroupFromServerQuery); - let listQuery = get(toppingListFromServerQuery); + let groupQuery = get( + refFrom === 'overview' ? toppingGroupFromServerQuery : toppingGroupFromMachineQuery + ); + let listQuery = get( + refFrom === 'overview' ? toppingListFromServerQuery : toppingListFromMachineQuery + ); // console.log(JSON.stringify(groupQuery[0])); // console.log(JSON.stringify(listQuery[0])); diff --git a/src/lib/core/client/server.ts b/src/lib/core/client/server.ts index 9833aee..226a30f 100644 --- a/src/lib/core/client/server.ts +++ b/src/lib/core/client/server.ts @@ -4,6 +4,8 @@ import { sendMessage } from '../handlers/ws_messageSender'; import { auth } from '../stores/auth'; import { extractCookieOnNonBrowser } from '$lib/helpers/cookie'; import { browser } from '$app/environment'; +import { permission } from '../stores/permissions'; +import { addNotification } from '../stores/noti'; export async function getRecipes() { if (browser && !get(departmentStore)) { @@ -14,6 +16,14 @@ export async function getRecipes() { let countryTarget = get(departmentStore); let country = ''; + let countryPerm = `document.read.${countryTarget}`; + let user_perms = get(permission); + + if (!user_perms.includes(countryPerm)) { + addNotification('ERR:Invalid permission'); + return []; + } + // if (!countryTarget && !browser) { // countryTarget = extractCookieOnNonBrowser()['department']; // } diff --git a/src/lib/core/stores/recipeStore.ts b/src/lib/core/stores/recipeStore.ts index b61cdce..f35ec51 100644 --- a/src/lib/core/stores/recipeStore.ts +++ b/src/lib/core/stores/recipeStore.ts @@ -20,6 +20,8 @@ export const materialData = writable(); export const recipeFromMachine = writable(null); export const recipeFromMachineLoading = writable(false); export const recipeFromMachineError = writable(null); +export const toppingListFromMachineQuery = writable([]); +export const toppingGroupFromMachineQuery = writable([]); export const recipeFromServerQuery = writable({}); export const materialFromServerQuery = writable([]); diff --git a/src/routes/(authed)/recipe/overview/+page.svelte b/src/routes/(authed)/recipe/overview/+page.svelte index 766f9a1..d2938cf 100644 --- a/src/routes/(authed)/recipe/overview/+page.svelte +++ b/src/routes/(authed)/recipe/overview/+page.svelte @@ -17,6 +17,7 @@ import { auth } from '$lib/core/stores/auth.js'; import { get } from 'svelte/store'; import { getRecipes } from '$lib/core/client/server.js'; + import { permission } from '$lib/core/stores/permissions'; let data: { recipes: RecipeOverview[] } = $state({ recipes: [] @@ -32,6 +33,7 @@ // do load recipe // loadRecipe(); referenceFromPage.set('overview'); + await getRecipes(); }); diff --git a/src/routes/(authed)/tools/brew/+page.svelte b/src/routes/(authed)/tools/brew/+page.svelte index 026bd72..c7a2eee 100644 --- a/src/routes/(authed)/tools/brew/+page.svelte +++ b/src/routes/(authed)/tools/brew/+page.svelte @@ -11,7 +11,9 @@ recipeFromMachine, recipeFromMachineLoading, recipeFromMachineQuery, - referenceFromPage + toppingListFromMachineQuery, + referenceFromPage, + toppingGroupFromMachineQuery } from '$lib/core/stores/recipeStore'; import DataTable from '../../recipe/overview/data-table.svelte'; import { handleIncomingMessages } from '$lib/core/handlers/messageHandler'; @@ -313,6 +315,9 @@ recipeFromMachineQuery.set(currentQuery); materialFromMachineQuery.set(currentMaterialsQuery); + + toppingListFromMachineQuery.set(devRecipe['Topping']['ToppingList']); + toppingGroupFromMachineQuery.set(devRecipe['Topping']['ToppingGroup']); } }