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