69 lines
1.4 KiB
TypeScript
69 lines
1.4 KiB
TypeScript
namespace mod_control.rental
|
|
{
|
|
|
|
/**
|
|
*/
|
|
export function setup
|
|
(
|
|
platform : lib_mvc.type_model<mod_platform.rental.web.type_state>
|
|
) : Promise<void>
|
|
{
|
|
let context_dom : HTMLElement = platform.state.element_dom;
|
|
context_dom.querySelector(".rental_start").addEventListener
|
|
(
|
|
"click",
|
|
(event) =>
|
|
{
|
|
const bike_name : string = lib_call.convey
|
|
(
|
|
platform.state.model.state.id,
|
|
[
|
|
x => lib_string.coin(".rental[rel=\"{{rel}}\"] > .rental_bike > input", {"rel": x}),
|
|
x => (document.querySelector(x) as HTMLInputElement),
|
|
x => x.value,
|
|
]
|
|
);
|
|
mod_model.rental.start(platform.state.model, bike_name);
|
|
}
|
|
);
|
|
context_dom.querySelector(".rental_open > button").addEventListener
|
|
(
|
|
"click",
|
|
(event) =>
|
|
{
|
|
mod_model.rental.open(platform.state.model);
|
|
}
|
|
);
|
|
context_dom.querySelector(".rental_pause > button").addEventListener
|
|
(
|
|
"click",
|
|
(event) =>
|
|
{
|
|
mod_model.rental.pause(platform.state.model);
|
|
}
|
|
);
|
|
context_dom.querySelector(".rental_finish > button").addEventListener
|
|
(
|
|
"click",
|
|
(event) =>
|
|
{
|
|
mod_model.rental.end(platform.state.model);
|
|
}
|
|
);
|
|
return Promise.resolve<void>(undefined);
|
|
}
|
|
|
|
|
|
/**
|
|
*/
|
|
export function implementation_control
|
|
(
|
|
) : lib_mvc.type_control<mod_platform.rental.web.type_state>
|
|
{
|
|
return {
|
|
"setup": (model) => setup(model),
|
|
};
|
|
}
|
|
|
|
}
|