Added czech translations. UI tweak on booking form.
This commit is contained in:
Vendored
-2
@@ -249,8 +249,6 @@ button.list-group-item-primary.active {
|
|||||||
transform: translateY(-1px);
|
transform: translateY(-1px);
|
||||||
}
|
}
|
||||||
.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {
|
.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {
|
||||||
color: #fff;
|
|
||||||
background-color: #5f61e6;
|
|
||||||
border-color: #5f61e6;
|
border-color: #5f61e6;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
|
|||||||
@@ -303,6 +303,17 @@ pub enum SlotType {
|
|||||||
Day
|
Day
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Display for SlotType {
|
||||||
|
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||||
|
write!(f, "{}", match self {
|
||||||
|
SlotType::Quarter => {"Quarter an hour"}
|
||||||
|
SlotType::Half => {"Half an hour"}
|
||||||
|
SlotType::Hour => {"Hour"}
|
||||||
|
SlotType::Day => {"Day"}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn def_true() -> bool {
|
fn def_true() -> bool {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,7 +99,39 @@ lazy_static! {
|
|||||||
("Approved", "Potvrzená"),
|
("Approved", "Potvrzená"),
|
||||||
("Canceled", "Zrušená"),
|
("Canceled", "Zrušená"),
|
||||||
("Booking detail", "Detail rezervace"),
|
("Booking detail", "Detail rezervace"),
|
||||||
("State", "Stav")
|
("State", "Stav"),
|
||||||
|
("Date can't be in past", "Datum nesmí být v minulosti"),
|
||||||
|
("Enter your username", "Zadejte své uživatelské jméno"),
|
||||||
|
("Hours must be in HH:MM - HH:MM format", "Hodiny musí být zadány ve tvaru HH:MM - HH:MM"),
|
||||||
|
("Edit profile", "Upravit profil"),
|
||||||
|
("Get emails", "Dostávat e-maily"),
|
||||||
|
("Enter username", "Zadejte uživatelské jméno"),
|
||||||
|
("Verify password", "Ověření hesla"),
|
||||||
|
("Enter email", "Zadejte e-mail"),
|
||||||
|
("Old password", "Staré heslo"),
|
||||||
|
("New password", "Nové heslo"),
|
||||||
|
("Enter new password", "Zadejte nové heslo"),
|
||||||
|
("Passwords doesn't match", "Hesla se neshodují"),
|
||||||
|
("Edit company", "Upravit organizaci"),
|
||||||
|
("Enter Name", "Zadejte jméno"),
|
||||||
|
("Enter Street", "Zadejte ulici"),
|
||||||
|
("Enter House number", "Číslo domu"),
|
||||||
|
("Enter ZIP code", "Zadejte PSČ"),
|
||||||
|
("Enter City", "Zadejte město"),
|
||||||
|
("Street", "Ulice"),
|
||||||
|
("House number", "Číslo domu"),
|
||||||
|
("ZIP code", "PSČ"),
|
||||||
|
("City", "Město"),
|
||||||
|
("Edit property", "Upravit předmět"),
|
||||||
|
("Quarter an hour", "Čtvrthodna"),
|
||||||
|
("Half an hour", "Půlhodina"),
|
||||||
|
("Hour", "Hodina"),
|
||||||
|
("Day", "Den"),
|
||||||
|
("Time slot", "Časový slot"),
|
||||||
|
("Active", "Aktivní"),
|
||||||
|
("Are you sure you want to delete property ", "Opravdu chcete smazat předmět "),
|
||||||
|
("Delete property", "Smazat předmět"),
|
||||||
|
("Are you sure you want to delete user ", "Opravdu chcete smazat uživatele ")
|
||||||
])),
|
])),
|
||||||
("sk", HashMap::from( [
|
("sk", HashMap::from( [
|
||||||
("Dashboard", "Prehlad"),
|
("Dashboard", "Prehlad"),
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use crate::backend::data::User;
|
|||||||
use crate::backend::user::{ChangePwd, get_user};
|
use crate::backend::user::{ChangePwd, get_user};
|
||||||
use crate::components::data_form::DataForm;
|
use crate::components::data_form::DataForm;
|
||||||
use crate::components::modal_box::DialogOpener;
|
use crate::components::modal_box::DialogOpener;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn change_password(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoView {
|
pub fn change_password(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoView {
|
||||||
@@ -24,7 +25,7 @@ pub fn change_password(user: ReadSignal<User>, opener: DialogOpener) -> impl Int
|
|||||||
Err(_) => ""
|
Err(_) => ""
|
||||||
}})
|
}})
|
||||||
}}>
|
}}>
|
||||||
<label for="oldPw" class="form-label">"Old password"</label>
|
<label for="oldPw" class="form-label">{trl("Old password")}</label>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
id="oldPw"
|
id="oldPw"
|
||||||
@@ -37,7 +38,7 @@ pub fn change_password(user: ReadSignal<User>, opener: DialogOpener) -> impl Int
|
|||||||
</Suspense>
|
</Suspense>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="newPw" class="form-label">"New password"</label>
|
<label for="newPw" class="form-label">{trl("New password")}</label>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
id="newPw"
|
id="newPw"
|
||||||
@@ -49,7 +50,7 @@ pub fn change_password(user: ReadSignal<User>, opener: DialogOpener) -> impl Int
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="verPw" class="form-label">"Verify password"</label>
|
<label for="verPw" class="form-label">{trl("Verify password")}</label>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
id="verPw"
|
id="verPw"
|
||||||
|
|||||||
+11
-10
@@ -3,6 +3,7 @@ use crate::backend::company::UpdateCompany;
|
|||||||
use crate::components::modal_box::DialogOpener;
|
use crate::components::modal_box::DialogOpener;
|
||||||
use leptos::*;
|
use leptos::*;
|
||||||
use crate::components::data_form::DataForm;
|
use crate::components::data_form::DataForm;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn CompanyEdit(
|
pub fn CompanyEdit(
|
||||||
@@ -16,12 +17,12 @@ pub fn CompanyEdit(
|
|||||||
<input type="hidden" value={move || company.get().id()} name="company[id]"/>
|
<input type="hidden" value={move || company.get().id()} name="company[id]"/>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="nameWithTitle" class="form-label">"Name"</label>
|
<label for="nameWithTitle" class="form-label">{trl("Name")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="nameWithTitle"
|
id="nameWithTitle"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter Name"
|
placeholder={trl("Enter Name")}
|
||||||
prop:value={move || company.get().name}
|
prop:value={move || company.get().name}
|
||||||
name="company[name]"
|
name="company[name]"
|
||||||
/>
|
/>
|
||||||
@@ -29,23 +30,23 @@ pub fn CompanyEdit(
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="street" class="form-label">"Street"</label>
|
<label for="street" class="form-label">{trl("Street")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="street"
|
id="street"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter Street"
|
placeholder={trl("Enter Street")}
|
||||||
prop:value={move || company.get().street}
|
prop:value={move || company.get().street}
|
||||||
name="company[street]"
|
name="company[street]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4 mb-3">
|
<div class="col-4 mb-3">
|
||||||
<label for="houseNumber" class="form-label">"House number"</label>
|
<label for="houseNumber" class="form-label">{trl("House number")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="houseNumber"
|
id="houseNumber"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter House number"
|
placeholder={trl("Enter House number")}
|
||||||
prop:value={move || company.get().house_number}
|
prop:value={move || company.get().house_number}
|
||||||
name="company[house_number]"
|
name="company[house_number]"
|
||||||
/>
|
/>
|
||||||
@@ -53,23 +54,23 @@ pub fn CompanyEdit(
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-4 mb-3">
|
<div class="col-4 mb-3">
|
||||||
<label for="zip" class="form-label">"ZIP code"</label>
|
<label for="zip" class="form-label">{trl("ZIP code")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="zip"
|
id="zip"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter ZIP code"
|
placeholder={trl("Enter ZIP code")}
|
||||||
prop:value={move || company.get().zip_code}
|
prop:value={move || company.get().zip_code}
|
||||||
name="company[zip_code]"
|
name="company[zip_code]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="city" class="form-label">"City"</label>
|
<label for="city" class="form-label">{trl("City")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="city"
|
id="city"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter City"
|
placeholder={trl("Enter City")}
|
||||||
prop:value={move || company.get().city}
|
prop:value={move || company.get().city}
|
||||||
name="company[city]"
|
name="company[city]"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use crate::backend::data::WeekHours;
|
|||||||
use crate::backend::opening_hours::UpdateHours;
|
use crate::backend::opening_hours::UpdateHours;
|
||||||
use crate::components::data_form::DataForm;
|
use crate::components::data_form::DataForm;
|
||||||
use crate::components::modal_box::DialogOpener;
|
use crate::components::modal_box::DialogOpener;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn EditHours(opener: DialogOpener, hours: ReadSignal<WeekHours>) -> impl IntoView {
|
pub fn EditHours(opener: DialogOpener, hours: ReadSignal<WeekHours>) -> impl IntoView {
|
||||||
@@ -13,7 +14,7 @@ pub fn EditHours(opener: DialogOpener, hours: ReadSignal<WeekHours>) -> impl Int
|
|||||||
<input type="hidden" value={move || hours.get().day().to_string()} name="hours[day]"/>
|
<input type="hidden" value={move || hours.get().day().to_string()} name="hours[day]"/>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="hours" class="form-label">"Hours"</label>
|
<label for="hours" class="form-label">{trl("Hours")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="hours"
|
id="hours"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use crate::backend::data::User;
|
|||||||
use crate::backend::user::{get_user, UpdateProfile};
|
use crate::backend::user::{get_user, UpdateProfile};
|
||||||
use crate::components::data_form::DataForm;
|
use crate::components::data_form::DataForm;
|
||||||
use crate::components::modal_box::DialogOpener;
|
use crate::components::modal_box::DialogOpener;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn ProfileEdit(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoView {
|
pub fn ProfileEdit(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoView {
|
||||||
@@ -14,12 +15,12 @@ pub fn ProfileEdit(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoVie
|
|||||||
<input type="hidden" prop:value={move || user.get().login} name="user[login]"/>
|
<input type="hidden" prop:value={move || user.get().login} name="user[login]"/>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="name" class="form-label">"Full name"</label>
|
<label for="name" class="form-label">{trl("Full name")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="name"
|
id="name"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter Full name"
|
placeholder={trl("Enter full name")}
|
||||||
prop:value={move || user.get().full_name}
|
prop:value={move || user.get().full_name}
|
||||||
name="user[full_name]"
|
name="user[full_name]"
|
||||||
/>
|
/>
|
||||||
@@ -32,7 +33,7 @@ pub fn ProfileEdit(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoVie
|
|||||||
type="text"
|
type="text"
|
||||||
id="name"
|
id="name"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter email"
|
placeholder={trl("Enter email")}
|
||||||
prop:value={move || user.get().email.unwrap_or("".to_string())}
|
prop:value={move || user.get().email.unwrap_or("".to_string())}
|
||||||
name="user[email]"
|
name="user[email]"
|
||||||
/>
|
/>
|
||||||
@@ -48,7 +49,7 @@ pub fn ProfileEdit(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoVie
|
|||||||
prop:checked={move || user.get().get_emails}
|
prop:checked={move || user.get().get_emails}
|
||||||
name="user[get_emails]"
|
name="user[get_emails]"
|
||||||
/>
|
/>
|
||||||
<label class="form-check-label" for="getMail">"Get emails"</label>
|
<label class="form-check-label" for="getMail">{trl("Get emails")}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Suspense fallback=move || view! {<div></div>}>
|
<Suspense fallback=move || view! {<div></div>}>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use crate::backend::data::ResProperty;
|
|||||||
use crate::backend::property::DeleteProperty;
|
use crate::backend::property::DeleteProperty;
|
||||||
use crate::components::data_form::QuestionDialog;
|
use crate::components::data_form::QuestionDialog;
|
||||||
use crate::components::modal_box::DialogOpener;
|
use crate::components::modal_box::DialogOpener;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn property_delete(property: ReadSignal<ResProperty>, opener: DialogOpener) -> impl IntoView {
|
pub fn property_delete(property: ReadSignal<ResProperty>, opener: DialogOpener) -> impl IntoView {
|
||||||
@@ -11,7 +12,7 @@ pub fn property_delete(property: ReadSignal<ResProperty>, opener: DialogOpener)
|
|||||||
view! {
|
view! {
|
||||||
<QuestionDialog opener=opener action=del_property title="Delete property">
|
<QuestionDialog opener=opener action=del_property title="Delete property">
|
||||||
<input type="hidden" prop:value={move || property.get().id()} name="id"/>
|
<input type="hidden" prop:value={move || property.get().id()} name="id"/>
|
||||||
<div>"Are you sure you want to delete property "{move || property.get().name}"?"</div>
|
<div>{trl("Are you sure you want to delete property ")}{move || property.get().name}"?"</div>
|
||||||
</QuestionDialog>
|
</QuestionDialog>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+13
-12
@@ -3,6 +3,7 @@ use crate::backend::data::{ResProperty, SlotType};
|
|||||||
use crate::backend::property::{CreateProperty, EditProperty};
|
use crate::backend::property::{CreateProperty, EditProperty};
|
||||||
use crate::components::data_form::DataForm;
|
use crate::components::data_form::DataForm;
|
||||||
use crate::components::modal_box::DialogOpener;
|
use crate::components::modal_box::DialogOpener;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
||||||
@@ -11,12 +12,12 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|||||||
<input type="hidden" prop:value={move || property.get().id()} name="property[id]"/>
|
<input type="hidden" prop:value={move || property.get().id()} name="property[id]"/>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="name" class="form-label">"Name"</label>
|
<label for="name" class="form-label">{trl("Name")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="name"
|
id="name"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter name"
|
placeholder={trl("Enter name")}
|
||||||
prop:value={move || property.get().name}
|
prop:value={move || property.get().name}
|
||||||
name="property[name]"
|
name="property[name]"
|
||||||
/>
|
/>
|
||||||
@@ -24,12 +25,12 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="description" class="form-label">"Description"</label>
|
<label for="description" class="form-label">{trl("Description")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="name"
|
id="name"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter description"
|
placeholder={trl("Enter description")}
|
||||||
prop:value={move || property.get().description}
|
prop:value={move || property.get().description}
|
||||||
name="property[description]"
|
name="property[description]"
|
||||||
/>
|
/>
|
||||||
@@ -37,7 +38,7 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="price" class="form-label">"Price"</label>
|
<label for="price" class="form-label">{trl("Price")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="name"
|
id="name"
|
||||||
@@ -50,13 +51,13 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="slot" class="form-label">{move || format!("Time slot {:?}", property.get().slot)}</label>
|
<label for="slot" class="form-label">{trl("Time slot")}</label>
|
||||||
<select id="slot" name="property[slot]" class="form-select">
|
<select id="slot" name="property[slot]" class="form-select">
|
||||||
<option prop:value={move || format!("{:?}", property.get().slot)}>{move || format!("{:?}", property.get().slot)}</option>
|
<option prop:value={move || format!("{:?}", property.get().slot)}>{trl(&property.get().slot.to_string())}</option>
|
||||||
<option value="Quarter" selected=move || property.get().slot == SlotType::Quarter>"Quarter an hour"</option>
|
<option value="Quarter" selected=move || property.get().slot == SlotType::Quarter>{trl("Quarter an hour")}</option>
|
||||||
<option value="Half" selected=move || property.get().slot == SlotType::Half>"Half an hour"</option>
|
<option value="Half" selected=move || property.get().slot == SlotType::Half>{trl("Half an hour")}</option>
|
||||||
<option value="Hour" selected=move || property.get().slot == SlotType::Hour>"Hour"</option>
|
<option value="Hour" selected=move || property.get().slot == SlotType::Hour>{trl("Hour")}</option>
|
||||||
<option value="Day" selected=move || property.get().slot == SlotType::Day>"Day"</option>
|
<option value="Day" selected=move || property.get().slot == SlotType::Day>{trl("Day")}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -74,7 +75,7 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|||||||
on:change=move |ev| active_str.set(if event_target_checked(&ev)
|
on:change=move |ev| active_str.set(if event_target_checked(&ev)
|
||||||
{ "true".to_string() } else { "false".to_string() })
|
{ "true".to_string() } else { "false".to_string() })
|
||||||
/>
|
/>
|
||||||
<label for="active" class="form-label">"Active"</label>
|
<label for="active" class="form-label">{trl("Active")}</label>
|
||||||
<input type="hidden" prop:value=active_str name="property[active]"/>
|
<input type="hidden" prop:value=active_str name="property[active]"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use crate::backend::data::User;
|
|||||||
use crate::backend::user::DeleteUser;
|
use crate::backend::user::DeleteUser;
|
||||||
use crate::components::data_form::QuestionDialog;
|
use crate::components::data_form::QuestionDialog;
|
||||||
use crate::components::modal_box::DialogOpener;
|
use crate::components::modal_box::DialogOpener;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn user_delete(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoView {
|
pub fn user_delete(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoView {
|
||||||
@@ -11,7 +12,7 @@ pub fn user_delete(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoVie
|
|||||||
view! {
|
view! {
|
||||||
<QuestionDialog opener=opener action=del_user title="Delete user">
|
<QuestionDialog opener=opener action=del_user title="Delete user">
|
||||||
<input type="hidden" prop:value={move || user.get().id()} name="id"/>
|
<input type="hidden" prop:value={move || user.get().id()} name="id"/>
|
||||||
<div>"Are you sure you want to delete user "{move || user.get().full_name}"?"</div>
|
<div>{trl("Are you sure you want to delete user ")}{move || user.get().full_name}"?"</div>
|
||||||
</QuestionDialog>
|
</QuestionDialog>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ use leptos::*;
|
|||||||
use crate::backend::user::CreateUser;
|
use crate::backend::user::CreateUser;
|
||||||
use crate::components::data_form::DataForm;
|
use crate::components::data_form::DataForm;
|
||||||
use crate::components::modal_box::DialogOpener;
|
use crate::components::modal_box::DialogOpener;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn user_edit(opener: DialogOpener) -> impl IntoView {
|
pub fn user_edit(opener: DialogOpener) -> impl IntoView {
|
||||||
@@ -11,12 +12,12 @@ pub fn user_edit(opener: DialogOpener) -> impl IntoView {
|
|||||||
//<input type="hidden" value={move || company.get().id()} name="company[id]"/>
|
//<input type="hidden" value={move || company.get().id()} name="company[id]"/>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="username" class="form-label">"Username"</label>
|
<label for="username" class="form-label">{trl("Username")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="username"
|
id="username"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Enter username"
|
placeholder={trl("Enter username")}
|
||||||
prop:value={move || opener.empty()}
|
prop:value={move || opener.empty()}
|
||||||
name="user[login]"
|
name="user[login]"
|
||||||
/>
|
/>
|
||||||
@@ -24,7 +25,7 @@ pub fn user_edit(opener: DialogOpener) -> impl IntoView {
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="password" class="form-label">"Password"</label>
|
<label for="password" class="form-label">{trl("Password")}</label>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
id="password"
|
id="password"
|
||||||
@@ -36,7 +37,7 @@ pub fn user_edit(opener: DialogOpener) -> impl IntoView {
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="passwordVer" class="form-label">"Verify password"</label>
|
<label for="passwordVer" class="form-label">{trl("Verify password")}</label>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
id="passwordVer"
|
id="passwordVer"
|
||||||
@@ -48,7 +49,7 @@ pub fn user_edit(opener: DialogOpener) -> impl IntoView {
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col mb-3">
|
<div class="col mb-3">
|
||||||
<label for="fullName" class="form-label">"Full name"</label>
|
<label for="fullName" class="form-label">{trl("Full name")}</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="fullName"
|
id="fullName"
|
||||||
@@ -93,7 +94,7 @@ pub fn user_edit(opener: DialogOpener) -> impl IntoView {
|
|||||||
prop:checked={move || opener.not_checked()}
|
prop:checked={move || opener.not_checked()}
|
||||||
name="user[get_emails]"
|
name="user[get_emails]"
|
||||||
/>
|
/>
|
||||||
<label for="geEmails" class="form-label">"Get emails"</label>
|
<label for="geEmails" class="form-label">{trl("Get emails")}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</DataForm>
|
</DataForm>
|
||||||
|
|||||||
Reference in New Issue
Block a user