| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- import { formscreen } from "./formscreen";
- import { product_give_back_request } from "./product_give_back_request.js";
- import { product_reservations_request } from "./product_reservations_request";
- import { searcher } from "./searcher.js";
- export class product_all_rents extends formscreen {
- #target;
- constructor(target) {
- super();
- this.#target = target;
- }
- get _name() {
- return _("all-rents");
- }
- get _has_submit() {
- return false;
- }
- #create_single(target) {
- const container = document.createElement("div");
- container.classList.add("reservation-info");
-
- if (target.phone_number !== null) {
- const phone_icon = document.createElement("span");
- phone_icon.classList.add("material-icons");
- phone_icon.innerText = "phone";
- const phone_number = document.createElement("span");
- phone_number.classList.add("numbers")
- phone_number.innerText = target.phone_number;
- const phone_number_container = document.createElement("p");
- phone_number_container.appendChild(phone_icon);
- phone_number_container.appendChild(phone_number);
- container.appendChild(phone_number_container);
- }
- if (target.email !== null) {
- const email_icon = document.createElement("span");
- email_icon.classList.add("material-icons");
- email_icon.innerText = "mail";
- const email = document.createElement("span");
- email.innerText = target.email;
- const email_container = document.createElement("p");
- email_container.appendChild(email_icon);
- email_container.appendChild(email);
- container.appendChild(email_container);
- }
- return container;
- }
- #create_single_button(target) {
- const button = document.createElement("button");
- button.classList.add("material-icons");
- button.classList.add("give-back-button");
- button.innerText = "save_alt";
- button.addEventListener("click", async () => {
- try {
- this._info = _("processing");
- const request = new product_give_back_request(target);
- const response = await request.connect();
- if (!response.result) {
- throw new Error(_(response.cause));
- }
- this._refresh();
- searcher.reload();
- } catch (error) {
- this._error = String(error);
- }
- });
- return button;
- }
- _process() {
- return;
- }
- async _build_form() {
- try {
- this._info = _("loading");
- const request = new product_reservations_request(this.#target);
- const response = await request.connect();
- const list = document.createElement("div");
- list.classList.add("reservations-list");
- let empty = true;
- response.collection.forEach(count => {
- const item = document.createElement("div");
- item.classList.add("reservation");
- const left = this.#create_single(count);
- const right = this.#create_single_button(count);
- empty = false;
- item.appendChild(left);
- item.appendChild(right);
- list.appendChild(item);
- });
-
- this._append_child(list);
-
- if (empty) {
- this._success = "not-found-any-reservations";
- } else {
- this._clear_results();
- }
- } catch (error) {
- this._error = String(error);
- }
- }
- }
|