add is login requied
This commit is contained in:
parent
9cc85a2525
commit
5b75d45910
@ -113,9 +113,8 @@ WHERE id = ${current_item.id}`;
|
||||
export let is_item_dialog_open = false;
|
||||
export let is_dialog_item_add = false;
|
||||
|
||||
let is_logedin = true;
|
||||
|
||||
export let data_access;
|
||||
let is_logedin = false;
|
||||
export let is_login_requied = true;
|
||||
|
||||
let access_level = "";
|
||||
/**
|
||||
@ -135,6 +134,11 @@ WHERE id = ${current_item.id}`;
|
||||
onMount(async () => {
|
||||
await load_db();
|
||||
is_loaded = true;
|
||||
if (!is_login_requied) {
|
||||
is_logedin = true;
|
||||
check_access = () => true;
|
||||
check_login = async () => [true, ""];
|
||||
}
|
||||
});
|
||||
$: cur_dialog_name = is_dialog_item_add
|
||||
? `Добавить в ${db_scheme[current_page].tables[current_table]}`
|
||||
@ -149,12 +153,14 @@ WHERE id = ${current_item.id}`;
|
||||
bind:is_view_open
|
||||
check_access={(name) => check_access(access_level, name, null)}
|
||||
on_logout={() => {
|
||||
if (is_login_requied) {
|
||||
is_logedin = false;
|
||||
// @ts-ignore
|
||||
access_level = "";
|
||||
current_page = "Запросы";
|
||||
current_table = "";
|
||||
current_view = "";
|
||||
}
|
||||
}}
|
||||
></NavBar>
|
||||
|
||||
|
@ -27,7 +27,9 @@
|
||||
|
||||
async function load_db() {
|
||||
// dev
|
||||
db = await Database.load(`sqlite:${await path.resolve()}/../db/data.db`);
|
||||
db = await Database.load(
|
||||
`sqlite:${await path.resolve()}/../db/data.db`,
|
||||
);
|
||||
|
||||
// db = await Database.load(`sqlite:${await path.resolve()}/db/data.db`);
|
||||
|
||||
@ -162,6 +164,7 @@ GROUP BY id;
|
||||
|
||||
let is_item_dialog_open = false;
|
||||
let is_dialog_item_add = false;
|
||||
let is_login_requied = false;
|
||||
|
||||
/**
|
||||
* @param {string} access_level
|
||||
@ -174,7 +177,10 @@ GROUP BY id;
|
||||
if (data_access[access_level] === true) return true;
|
||||
|
||||
// @ts-ignore
|
||||
if (Object.hasOwn(data_access[access_level], tab_name) && name === null)
|
||||
if (
|
||||
Object.hasOwn(data_access[access_level], tab_name) &&
|
||||
name === null
|
||||
)
|
||||
return true;
|
||||
|
||||
// @ts-ignore
|
||||
@ -210,10 +216,10 @@ insert into IdBuffer (id) values (${ar.join("), (")});`);
|
||||
<ScreenWrap
|
||||
{db}
|
||||
{db_scheme}
|
||||
{data_access}
|
||||
{load_db}
|
||||
{check_access}
|
||||
{check_login}
|
||||
{is_login_requied}
|
||||
bind:is_item_dialog_open
|
||||
bind:is_dialog_item_add
|
||||
bind:current_item
|
||||
@ -240,7 +246,9 @@ insert into IdBuffer (id) values (${ar.join("), (")});`);
|
||||
<h1>id {current_item.id}</h1>
|
||||
{/if}
|
||||
<Field name={"название"}>
|
||||
<TextInput bind:value={current_item.name}></TextInput>
|
||||
<TextInput
|
||||
bind:value={current_item.name}
|
||||
></TextInput>
|
||||
</Field>
|
||||
|
||||
<Field name={"Ингридиенты"} is_vertical={true}>
|
||||
@ -250,35 +258,48 @@ insert into IdBuffer (id) values (${ar.join("), (")});`);
|
||||
"select id, name from Ingredients where is_allowed = 1",
|
||||
)}
|
||||
on_change={async () => {
|
||||
await id_buffer(current_item.ingredients_ids);
|
||||
await id_buffer(
|
||||
current_item.ingredients_ids,
|
||||
);
|
||||
const query = `
|
||||
select sum(price) as value
|
||||
from Ingredients
|
||||
join IdBuffer on IdBuffer.id = Ingredients.id
|
||||
`;
|
||||
const price = await db.select(query);
|
||||
current_item.price = price[0].value;
|
||||
const price =
|
||||
await db.select(
|
||||
query,
|
||||
);
|
||||
current_item.price =
|
||||
price[0].value;
|
||||
}}
|
||||
></ItemList>
|
||||
</Field>
|
||||
|
||||
<Field name={"цена"}>
|
||||
<NumberInput bind:value={current_item.price}></NumberInput>
|
||||
<NumberInput
|
||||
bind:value={current_item.price}
|
||||
></NumberInput>
|
||||
</Field>
|
||||
<Field name={"разрешено"}>
|
||||
<Boolean bind:value={current_item.is_allowed}></Boolean>
|
||||
<Boolean
|
||||
bind:value={current_item.is_allowed}
|
||||
></Boolean>
|
||||
</Field>
|
||||
|
||||
<TableCudButtons
|
||||
{form}
|
||||
bind:is_dialog_item_add
|
||||
on_add={async () => {
|
||||
const las_id = await sql_insert_short(
|
||||
const las_id =
|
||||
await sql_insert_short(
|
||||
current_table,
|
||||
cur_cols,
|
||||
"returning id",
|
||||
);
|
||||
console.log(las_id.lastInsertId);
|
||||
console.log(
|
||||
las_id.lastInsertId,
|
||||
);
|
||||
|
||||
const query = `insert into PizzasIngredientsJoin (pizza_id, ingredient_id) values
|
||||
${current_item.ingredients_ids.map((el) => "(" + las_id.lastInsertId + "," + el + ")").join(",")}
|
||||
@ -293,7 +314,10 @@ insert into PizzasIngredientsJoin (pizza_id, ingredient_id) values
|
||||
${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")").join(",")}
|
||||
`;
|
||||
await db.execute(query);
|
||||
await sql_update_short(current_table, cur_cols);
|
||||
await sql_update_short(
|
||||
current_table,
|
||||
cur_cols,
|
||||
);
|
||||
}}
|
||||
on_delete={sql_delete_short}
|
||||
></TableCudButtons>
|
||||
@ -316,30 +340,50 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
>
|
||||
<Table
|
||||
{is_searching}
|
||||
search_query={db.select(search_query_result)}
|
||||
search_query={db.select(
|
||||
search_query_result,
|
||||
)}
|
||||
columns={["id", ...cur_cols]}
|
||||
query={db.select(`select * from ${current_table}`)}
|
||||
query={db.select(
|
||||
`select * from ${current_table}`,
|
||||
)}
|
||||
let:item
|
||||
let:index
|
||||
>
|
||||
<Tr
|
||||
{index}
|
||||
on_click={async () => {
|
||||
const ingredients_ids = await db.select(
|
||||
const ingredients_ids =
|
||||
await db.select(
|
||||
`select ingredient_id from PizzasIngredientsJoin where pizza_id = ${item.id}`,
|
||||
);
|
||||
open_item_edit(item);
|
||||
current_item.ingredients_ids = ingredients_ids.map(
|
||||
(/** @type {any} */ el) => el.ingredient_id,
|
||||
current_item.ingredients_ids =
|
||||
ingredients_ids.map(
|
||||
(
|
||||
/** @type {any} */ el,
|
||||
) =>
|
||||
el.ingredient_id,
|
||||
);
|
||||
}}
|
||||
>
|
||||
<Atd {item} names={["id", ...cur_cols]}></Atd>
|
||||
<Atd
|
||||
{item}
|
||||
names={[
|
||||
"id",
|
||||
...cur_cols,
|
||||
]}
|
||||
></Atd>
|
||||
</Tr>
|
||||
</Table>
|
||||
</TableButtonsWrap>
|
||||
{:else if current_table === "Ingredients"}
|
||||
{@const cur_cols = ["name", "price", "is_allowed", "weight"]}
|
||||
{@const cur_cols = [
|
||||
"name",
|
||||
"price",
|
||||
"is_allowed",
|
||||
"weight",
|
||||
]}
|
||||
<Dialog
|
||||
bind:is_open={is_item_dialog_open}
|
||||
name={cur_dialog_name}
|
||||
@ -350,18 +394,26 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
{/if}
|
||||
|
||||
<Field name={"название"}>
|
||||
<TextInput bind:value={current_item.name}></TextInput>
|
||||
<TextInput
|
||||
bind:value={current_item.name}
|
||||
></TextInput>
|
||||
</Field>
|
||||
|
||||
<Field name={"цена"}>
|
||||
<NumberInput bind:value={current_item.price}></NumberInput>
|
||||
<NumberInput
|
||||
bind:value={current_item.price}
|
||||
></NumberInput>
|
||||
</Field>
|
||||
<Field name={"разрешено"}>
|
||||
<Boolean bind:value={current_item.is_allowed}></Boolean>
|
||||
<Boolean
|
||||
bind:value={current_item.is_allowed}
|
||||
></Boolean>
|
||||
</Field>
|
||||
|
||||
<Field name={"Вес"}>
|
||||
<NumberInput is_float={true} bind:value={current_item.weight}
|
||||
<NumberInput
|
||||
is_float={true}
|
||||
bind:value={current_item.weight}
|
||||
></NumberInput>
|
||||
</Field>
|
||||
|
||||
@ -369,10 +421,16 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
{form}
|
||||
bind:is_dialog_item_add
|
||||
on_add={async () => {
|
||||
await sql_insert_short(current_table, cur_cols);
|
||||
await sql_insert_short(
|
||||
current_table,
|
||||
cur_cols,
|
||||
);
|
||||
}}
|
||||
on_save={async () => {
|
||||
await sql_update_short(current_table, cur_cols);
|
||||
await sql_update_short(
|
||||
current_table,
|
||||
cur_cols,
|
||||
);
|
||||
}}
|
||||
on_delete={sql_delete_short}
|
||||
></TableCudButtons>
|
||||
@ -396,14 +454,28 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
>
|
||||
<Table
|
||||
{is_searching}
|
||||
search_query={db.select(search_query_result)}
|
||||
search_query={db.select(
|
||||
search_query_result,
|
||||
)}
|
||||
columns={["id", ...cur_cols]}
|
||||
query={db.select(`select * from ${current_table}`)}
|
||||
query={db.select(
|
||||
`select * from ${current_table}`,
|
||||
)}
|
||||
let:item
|
||||
let:index
|
||||
>
|
||||
<Tr {index} on_click={() => open_item_edit(item)}>
|
||||
<Atd {item} names={["id", ...cur_cols]}></Atd>
|
||||
<Tr
|
||||
{index}
|
||||
on_click={() =>
|
||||
open_item_edit(item)}
|
||||
>
|
||||
<Atd
|
||||
{item}
|
||||
names={[
|
||||
"id",
|
||||
...cur_cols,
|
||||
]}
|
||||
></Atd>
|
||||
</Tr>
|
||||
</Table>
|
||||
</TableButtonsWrap>
|
||||
@ -419,7 +491,9 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
{/if}
|
||||
|
||||
<Field name={"дата"}>
|
||||
<DateInput bind:value={current_item.date}></DateInput>
|
||||
<DateInput
|
||||
bind:value={current_item.date}
|
||||
></DateInput>
|
||||
</Field>
|
||||
|
||||
<Field name={"пицца"}>
|
||||
@ -439,10 +513,16 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
{form}
|
||||
bind:is_dialog_item_add
|
||||
on_add={async () => {
|
||||
await sql_insert_short(current_table, ["pizza_id"]);
|
||||
await sql_insert_short(
|
||||
current_table,
|
||||
["pizza_id"],
|
||||
);
|
||||
}}
|
||||
on_save={async () => {
|
||||
await sql_update_short(current_table, cur_cols);
|
||||
await sql_update_short(
|
||||
current_table,
|
||||
cur_cols,
|
||||
);
|
||||
}}
|
||||
on_delete={sql_delete_short}
|
||||
></TableCudButtons>
|
||||
@ -464,14 +544,25 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
>
|
||||
<Table
|
||||
{is_searching}
|
||||
search_query={db.select(search_query_result)}
|
||||
search_query={db.select(
|
||||
search_query_result,
|
||||
)}
|
||||
columns={["id", ...cur_cols]}
|
||||
query={db.select(`select * from ${current_table}`)}
|
||||
query={db.select(
|
||||
`select * from ${current_table}`,
|
||||
)}
|
||||
let:item
|
||||
let:index
|
||||
>
|
||||
<Tr {index} on_click={() => open_item_edit(item)}>
|
||||
<Atd {item} names={["id", "date"]}></Atd>
|
||||
<Tr
|
||||
{index}
|
||||
on_click={() =>
|
||||
open_item_edit(item)}
|
||||
>
|
||||
<Atd
|
||||
{item}
|
||||
names={["id", "date"]}
|
||||
></Atd>
|
||||
<Td>
|
||||
{#await db.select(`select name from Pizzas where id = ${item.pizza_id}`) then data}
|
||||
{data[0].name}
|
||||
@ -492,13 +583,17 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
{/if}
|
||||
|
||||
<Field name={"дата"}>
|
||||
<DateInput bind:value={current_item.date}></DateInput>
|
||||
<DateInput
|
||||
bind:value={current_item.date}
|
||||
></DateInput>
|
||||
</Field>
|
||||
|
||||
<Field name={"ингидиент"}>
|
||||
<Select
|
||||
bind:value={current_item.ingredient_id}
|
||||
query={db.select("select id, name from Ingredients")}
|
||||
query={db.select(
|
||||
"select id, name from Ingredients",
|
||||
)}
|
||||
let:vtype
|
||||
>
|
||||
{vtype.name}
|
||||
@ -507,7 +602,9 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
</Field>
|
||||
|
||||
<Field name={"Количество"}>
|
||||
<NumberInput min={-999999999} bind:value={current_item.count}
|
||||
<NumberInput
|
||||
min={-999999999}
|
||||
bind:value={current_item.count}
|
||||
></NumberInput>
|
||||
</Field>
|
||||
|
||||
@ -515,10 +612,16 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
{form}
|
||||
bind:is_dialog_item_add
|
||||
on_add={async () => {
|
||||
await sql_insert_short(current_table, cur_cols);
|
||||
await sql_insert_short(
|
||||
current_table,
|
||||
cur_cols,
|
||||
);
|
||||
}}
|
||||
on_save={async () => {
|
||||
await sql_update_short(current_table, cur_cols);
|
||||
await sql_update_short(
|
||||
current_table,
|
||||
cur_cols,
|
||||
);
|
||||
}}
|
||||
on_delete={sql_delete_short}
|
||||
></TableCudButtons>
|
||||
@ -541,20 +644,32 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
>
|
||||
<Table
|
||||
{is_searching}
|
||||
search_query={db.select(search_query_result)}
|
||||
search_query={db.select(
|
||||
search_query_result,
|
||||
)}
|
||||
columns={["id", ...cur_cols]}
|
||||
query={db.select(`select * from ${current_table}`)}
|
||||
query={db.select(
|
||||
`select * from ${current_table}`,
|
||||
)}
|
||||
let:item
|
||||
let:index
|
||||
>
|
||||
<Tr {index} on_click={() => open_item_edit(item)}>
|
||||
<Atd {item} names={["id", "date"]}></Atd>
|
||||
<Tr
|
||||
{index}
|
||||
on_click={() =>
|
||||
open_item_edit(item)}
|
||||
>
|
||||
<Atd
|
||||
{item}
|
||||
names={["id", "date"]}
|
||||
></Atd>
|
||||
<Td>
|
||||
{#await db.select(`select name from Ingredients where id = ${item.ingredient_id}`) then data}
|
||||
{data[0].name}
|
||||
{/await}
|
||||
</Td>
|
||||
<Atd {item} names={["count"]}></Atd>
|
||||
<Atd {item} names={["count"]}
|
||||
></Atd>
|
||||
</Tr>
|
||||
</Table>
|
||||
</TableButtonsWrap>
|
||||
@ -562,7 +677,9 @@ ${current_item.ingredients_ids.map((el) => "(" + current_item.id + "," + el + ")
|
||||
{:else if is_view_open}
|
||||
{#if current_view === "IngredientsLeft"}
|
||||
<ViewTable
|
||||
query={db.select(`select * from IngredientsLeft`)}
|
||||
query={db.select(
|
||||
`select * from IngredientsLeft`,
|
||||
)}
|
||||
columns={["id", "ингридиент", "остатки"]}
|
||||
names={["id", "name", "count"]}
|
||||
></ViewTable>
|
||||
|
Loading…
x
Reference in New Issue
Block a user