shahilsaha

Untitled

Dec 12th, 2024
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ================= admin.js -----------------------
  2. import RestaurantPage from "./nav/navRestaurant.js";
  3. // import { ReviewPage } from "./nav/navReviews.js";
  4.  
  5. async function onLoad() {
  6.     await RestaurantPage();
  7. }
  8. onLoad();
  9.  
  10. // ---------------- nav-restaurant.js ----------------------
  11. import {
  12.     InitTable,
  13.     RefreshTable,
  14. } from "../../componentScripts/tableManager.js";
  15. import { MODAL_CONFIGS, TABLE_COLS } from "../../utils/constants.js";
  16. import { BindTo } from "../../utils/eventManager.js";
  17. import { OpenModal } from "../../utils/htmlHelper.js";
  18. import { fetchAllRestaurants } from "../../utils/routerUtils/fetcher.js";
  19.  
  20. let restaurantTable;
  21.  
  22. class RestaurantPage {
  23.  
  24.     constructor() {
  25.         this.restaurantTable = null;
  26.         document
  27.             .getElementById("btnAddRestaurant")
  28.             .addEventListener("click", this.OnAddButtonClick.bind(this));
  29.  
  30.         document
  31.             .getElementById("btnUpdateRestaurant")
  32.             .addEventListener("click", this.OnUpdateButtonClick.bind(this));
  33.  
  34.     }
  35.  
  36.     static async create() {
  37.         const instance = new RestaurantPage();
  38.         await instance.initialize(instance);
  39.         return instance;
  40.     }
  41.  
  42.     async initialize(instance) {
  43.         this.page = instance;
  44.         await this.CreateTable();
  45.  
  46.     }
  47.  
  48.     async Add() {
  49.         console.log("New restaurants added");
  50.         const data = await fetchAllRestaurants();
  51.         RefreshTable(this.restaurantTable, data);
  52.     }
  53.  
  54.     async Update() {}
  55.  
  56.     async CreateTable() {
  57.         const res_data = await fetchAllRestaurants();
  58.         this.restaurantTable = InitTable("table", TABLE_COLS.restaurants, {
  59.             height: "70%",
  60.             data: res_data,
  61.         });
  62.     }
  63.    
  64.     async OnAddButtonClick() {
  65.         await OpenModal(MODAL_CONFIGS.add.src);
  66.         BindTo("FOnRestaurantAddedSignature", this.Add);
  67.     }
  68.     async OnUpdateButtonClick() {
  69.         await OpenModal(MODAL_CONFIGS.update.src, () => {
  70.             document.addEventListener("FOnRestaurantUpdatedSignature", this.Update);
  71.         });
  72.     }
  73. }
  74.  
  75. export default async function onLoad() {
  76.     const page = await RestaurantPage.create();
  77. }
  78.  
Advertisement
Add Comment
Please, Sign In to add comment