Browse Source

Implemented SM Login Functionality

master
AJITHKUMAR12 3 weeks ago
parent
commit
6c25bd9205
  1. 446
      src/main/java/com/gcc/communityHall/controller/SmController.java
  2. 44
      src/main/resources/templates/fragments/head-sm.html
  3. 98
      src/main/resources/templates/fragments/header-sm.html
  4. 13
      src/main/resources/templates/fragments/nav-sm.html
  5. 152
      src/main/resources/templates/fragments/smMenu.html
  6. 3
      src/main/resources/templates/officiallogin.html
  7. 1570
      src/main/resources/templates/sm/dashboard.html
  8. 2417
      src/main/resources/templates/sm/reports.html

446
src/main/java/com/gcc/communityHall/controller/SmController.java

@ -0,0 +1,446 @@
package com.gcc.communityHall.controller;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.gcc.communityHall.entity.ApplicationLogs;
import com.gcc.communityHall.entity.BookingHistory;
import com.gcc.communityHall.entity.GccBlockingDate;
import com.gcc.communityHall.entity.Login;
import com.gcc.communityHall.entity.LoginHallId;
import com.gcc.communityHall.entity.RefundTransaction;
import com.gcc.communityHall.entity.Settlement;
import com.gcc.communityHall.entity.SettlementHistory;
import com.gcc.communityHall.entity.SixMonthMailLog;
import com.gcc.communityHall.others.AppConfig;
import com.gcc.communityHall.paymentService.entity.RefundResponse;
import com.gcc.communityHall.paymentService.repository.TransRefundResRepository;
import com.gcc.communityHall.repository.ApplicationLogsRepository;
import com.gcc.communityHall.repository.BookingHistoryRepository;
import com.gcc.communityHall.repository.GccBlockingDateRepository;
import com.gcc.communityHall.repository.LoginHallIdRepository;
import com.gcc.communityHall.repository.LoginRepository;
import com.gcc.communityHall.repository.RefundTransactionRepository;
import com.gcc.communityHall.repository.SettlementHistoryRepository;
import com.gcc.communityHall.repository.SettlementRepository;
import com.gcc.communityHall.repository.SixMonthMailLogRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import com.gcc.communityHall.entity.BookingDetails;
import com.gcc.communityHall.entity.HallDetails;
import com.gcc.communityHall.entity.Users;
import com.gcc.communityHall.repository.BookingDetailsRepository;
import com.gcc.communityHall.repository.HallDetailsRepository;
import com.gcc.communityHall.repository.UsersRepository;
import com.gcc.communityHall.service.BookingService;
import com.gcc.communityHall.service.HallDetailService;
import com.gcc.communityHall.service.MailService;
import com.gcc.communityHall.service.ReasonMasterService;
import com.gcc.communityHall.service.UserService;
import jakarta.servlet.http.HttpSession;
import jakarta.transaction.Transactional;
@Controller
@RequestMapping("/communityhall/sm")
public class SmController {
@Autowired
HallDetailService hallDetailService;
@Autowired
ReasonMasterService reasonMasterService;
@Autowired
private BookingDetailsRepository bookingDetailsRepo;
@Autowired
private UsersRepository usersRepository;
@Autowired
private BookingService bookingService;
@Autowired
private UserService userService;
@Autowired
private BookingDetailsRepository bookingDetailsRepository;
@Autowired
private GccBlockingDateRepository blockingDateRepository;
@Autowired
private AppConfig appConfig;
@Autowired
private LoginRepository loginRepository;
@Autowired
private LoginHallIdRepository loginHallIdRepository;
@Autowired
private HallDetailsRepository hallDetailsRepository;
@Autowired
private SixMonthMailLogRepository sixMonthMailLogRepository;
@Autowired
private MailService mailService;
@Autowired
private BookingHistoryRepository bookingHistoryRepository;
@Autowired
private SettlementHistoryRepository settlementHistoryRepository;
@Autowired
private SettlementRepository settlementRepository;
@Autowired
private RefundTransactionRepository refundTransactionRepository;
@Autowired
private TransRefundResRepository transRefundResRepository;
@Autowired
private ApplicationLogsRepository applicationLogsRepository;
@GetMapping("/dashboard")
public String viewDashboard(
@RequestParam(required = false, defaultValue = "all zones") String zone,
Model model, HttpSession session) {
System.out.println("sm dashboard before condition");
String headquartersname = (String) session.getAttribute("usertype");
if (headquartersname != null && "sm".equals(headquartersname)) {
System.out.println("sm dashboard");
long mobileno = (long) session.getAttribute("mobileno");
model.addAttribute("mobileno", mobileno);
List<Map<String, Object>> getMonthCount = bookingDetailsRepository.getAllAdminmonthcount(zone);
List<Map<String, Object>> count = bookingDetailsRepository.getAdmincount(zone);
Map<String, Object> map = count.get(0);
model.addAttribute("mounthcount", getMonthCount);
model.addAttribute("APPROVED", map.get("approved_count"));
model.addAttribute("REJECTED", map.get("rejected_count"));
model.addAttribute("PENDING", map.get("pending_count"));
model.addAttribute("CANCELED", map.get("CANCELED"));
model.addAttribute("PAYMENT_FAILURE", map.get("PAYMENT_FAILURE"));
model.addAttribute("GCC_BLOCKED", map.get("GCC_BLOCKED"));
model.addAttribute("headquartersname", headquartersname);
model.addAttribute("zone", zone);
return "sm/dashboard";
} else {
// Token is invalid or not present, redirect to logout
session.invalidate(); // Invalidate the session to clear all session attributes
return "redirect:/communityhall/login";
}
}
@GetMapping("/Reports")
public String viewReports(Model model, HttpSession session) {
String headquartersname = (String) session.getAttribute("usertype");
if (headquartersname != null && "sm".equals(headquartersname)) {
long mobileno = (long) session.getAttribute("mobileno");
model.addAttribute("mobileno", mobileno);
model.addAttribute("headquartersname", headquartersname);
return "sm/reports";
} else {
session.invalidate(); // Invalidate the session to clear all session attributes
return "redirect:/communityhall/login";
}
}
@PostMapping("/getReport")
public String generateReport(Model model,
@RequestParam(name = "FromDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) String fromDate,
@RequestParam(name = "ToDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) String toDate,
@RequestParam(name = "request") String request,
@RequestParam(name = "userstatus", required = false) String userstatus,
@RequestParam(name = "usertype", required = false) String usertype,
@RequestParam(name = "bookingStatus", required = false) String bookingStatus,
@RequestParam(name = "refundStatus", required = false) String refundStatus,
@RequestParam(name = "paymentStatus", required = false) String paymentStatus,
@RequestParam(name = "filterby", required = false) String filterby,
@RequestParam(name = "zone1", required = false, defaultValue = "ALL") String zone,
@RequestParam(name = "division1", required = false, defaultValue = "ALL") String division,
@RequestParam(name = "hall1", required = false) Integer hallid,
@RequestParam(name = "basedon", required = false) String basedon,
@RequestParam(name = "bookingId", required = false) Long bookingId,
@RequestParam(name = "reporttype", required = false) String reporttype,
@RequestParam(name = "counterId", required = false) String counterId, HttpSession session)
throws JsonProcessingException {
String headquartersname = (String) session.getAttribute("usertype");
if (headquartersname != null && "sm".equals(headquartersname)) {
long mobileno = (long) session.getAttribute("mobileno");
model.addAttribute("mobileno", mobileno);
List<Users> userList = handleUserRequest(request, fromDate, toDate, userstatus, usertype);
List<Object[]> bookingList = handleBookingRequest(request, fromDate, toDate, bookingStatus, filterby,
bookingId, zone, division, hallid);
List<BookingDetails> bookingSettlementList = handleBookingSettlementRequest(request, fromDate, toDate,
refundStatus, filterby);
// List<Object[]> paymentList = request.equals("3") ?
// bookingService.getAllPaymentsDetails(fromDate, toDate,zone,division,hallid) :
// new ArrayList<>();
List<Object[]> paymentList = new ArrayList<>();
List<Object[]> extrapaymentList = new ArrayList<>();
if (request.equals("3")) {
if (paymentStatus == null || paymentStatus.isEmpty()) {
paymentList = bookingService.getAllPaymentsDetails(fromDate, toDate, null, zone, division, hallid);
} else {
paymentList = bookingService.getAllPaymentsDetails(fromDate, toDate, paymentStatus, zone, division,
hallid);
}
}
if (request.equals("8")) {
if (paymentStatus == null || paymentStatus.isEmpty()) {
extrapaymentList = bookingService.getAllExtraPaymentsDetails(fromDate, toDate, null, zone, division,
hallid);
} else {
extrapaymentList = bookingService.getAllExtraPaymentsDetails(fromDate, toDate, paymentStatus, zone,
division, hallid);
}
}
List<Object[]> userbookingList = request.equals("4")
? bookingService.getBookingUserDetailsReport(fromDate, toDate)
: new ArrayList<>();
// List<Object[]> hallbookingList = request.equals("5") ?
// bookingService.getBookingHallDetailsReport(fromDate, toDate) : new
// ArrayList<>();
// In your controller method
// Fetch booking count by zone
List<Object[]> totalcount = new ArrayList<>();
int totalBookings = 0;
if ("7".equals(request)) {
if ("zone".equals(basedon)) {
totalcount = bookingDetailsRepository.countBookingsByZone();
// Format zone data
totalcount = totalcount.stream()
.map(data -> new Object[] { "Zone-" + data[0], data[1] })
.collect(Collectors.toList());
} else if ("division".equals(basedon)) {
totalcount = bookingDetailsRepository.countBookingsByDivisions();
// Format division data
totalcount = totalcount.stream()
.map(data -> new Object[] { "Division-" + data[0], data[1] })
.collect(Collectors.toList());
}
totalBookings = totalcount.stream()
.mapToInt(data -> ((Number) data[1]).intValue())
.sum();
}
model.addAttribute("basedon", basedon);
model.addAttribute("totalcount", totalcount);
model.addAttribute("totalBookings", totalBookings);
List<Object[]> hallbookingList = handleBookingHallDetailsReportRequest(request, fromDate, toDate, filterby,
zone, division, hallid);
if ("9".equals(request)) {
if ("abstract".equals(reporttype)) {
List<Object[]> counterBookingList = new ArrayList<>();
counterBookingList = bookingService.getCounterWiseBookingCount(fromDate, toDate);
model.addAttribute("counterBookingList", counterBookingList);
// System.out.println("counterBookingList.." + counterBookingList);
List<Object[]> hallBookingByCounter = bookingService.getHallWiseBookingDetails(fromDate, toDate,
counterId);
// Convert to JSON for JS usage
String hallBookingJson = new ObjectMapper().writeValueAsString(hallBookingByCounter);
model.addAttribute("hallBookingJson", hallBookingJson);
List<Object[]> hallBookingDetails = bookingService.getBookingDetailsForAllHalls(fromDate, toDate,
counterId, hallid);
String hallBookingDetailsJson = new ObjectMapper().writeValueAsString(hallBookingDetails);
model.addAttribute("hallBookingDetailsJson", hallBookingDetailsJson);
} else {
List<Object[]> counterBookingList = new ArrayList<>();
counterBookingList = bookingService.getCounterWiseBookingDetails(fromDate, toDate);
model.addAttribute("counterBookingList", counterBookingList);
}
model.addAttribute("reporttype", reporttype);
}
model.addAttribute("filterby", filterby);
model.addAttribute("users", userList);
model.addAttribute("bookings", bookingList);
model.addAttribute("fromdate", fromDate);
model.addAttribute("todate", toDate);
model.addAttribute("userstatus", userstatus);
model.addAttribute("bookingSettlementList", bookingSettlementList);
model.addAttribute("usertype", usertype);
model.addAttribute("bookingStatus", bookingStatus);
model.addAttribute("refundStatus", refundStatus);
model.addAttribute("paymentStatus", paymentStatus);
model.addAttribute("request", request);
model.addAttribute("paymentLists", paymentList);
model.addAttribute("extrapaymentLists", extrapaymentList);
model.addAttribute("userbookingLists", userbookingList);
model.addAttribute("hallbookingLists", hallbookingList);
model.addAttribute("bookingId", bookingId);
model.addAttribute("zone1", zone);
model.addAttribute("division1", division);
model.addAttribute("hall1", hallid);
model.addAttribute("headquartersname", headquartersname);
return "sm/reports";
} else {
session.invalidate(); // Invalidate the session to clear all session attributes
return "redirect:/communityhall/login";
}
}
private List<Object[]> handleBookingHallDetailsReportRequest(String request, String fromDate, String toDate,
String filterby, String zone, String division, Integer hallid) {
if (!request.equals("5")) {
return new ArrayList<>();
}
if (filterby.isEmpty()) {
return bookingService.getBookingHallDetailsReportByBookingDate(fromDate, toDate, zone, division, hallid);
}
if ("1".equals(filterby)) {
return bookingService.getBookingHallDetailsReportByBookingDate(fromDate, toDate, zone, division, hallid);
}
if ("2".equals(filterby)) {
return bookingService.getBookingHallDetailsReportByEventDate(fromDate, toDate, zone, division, hallid);
}
return new ArrayList<>();
}
private List<Users> handleUserRequest(String request, String fromDate, String toDate, String userstatus,
String usertype) {
if (!request.equals("1")) {
return new ArrayList<>();
}
if ((userstatus != null && !userstatus.isEmpty()) && (usertype != null && !usertype.isEmpty())) {
return userService.getAllUsersWithFilters(fromDate, toDate, userstatus, usertype);
}
if (userstatus.isEmpty() && (usertype != null && !usertype.isEmpty())) {
return userService.getAllUsersWithTypeFilters(fromDate, toDate, usertype);
}
if (usertype.isEmpty() && (userstatus != null && !userstatus.isEmpty())) {
return userService.getAllUsersWithStatusFilters(fromDate, toDate, userstatus);
}
return userService.getAllUsers(fromDate, toDate);
}
private List<Object[]> handleBookingRequest(String request, String fromDate, String toDate, String bookingStatus,
String filterby, Long bookingId, String zone, String division, Integer hallid) {
if (!request.equals("2")) {
return new ArrayList<>();
}
if (filterby.isEmpty() && bookingStatus.isEmpty() && bookingId == null) {
return bookingService.getBookingDetailsByBookingDate(fromDate, toDate, zone, division, hallid);
}
if (bookingId != null && bookingStatus.isEmpty()) {
return bookingDetailsRepo.getAllBookingDetailsWithBookingId(fromDate, toDate, bookingId);
}
if (bookingId != null && !bookingStatus.isEmpty()) {
return bookingDetailsRepo.getAllBookingDetailsWithBookingIdwithbookingStatus(fromDate, toDate, bookingId,
bookingStatus);
}
if (bookingId == null && filterby.isEmpty() && !bookingStatus.isEmpty()) {
return bookingService.getBookingDetailsByBookingDateWithStatus(fromDate, toDate, bookingStatus, zone,
division, hallid);
}
if (!filterby.isEmpty()) {
if ("1".equals(filterby)) {
if (bookingStatus.isEmpty()) {
return bookingService.getBookingDetailsByBookingDate(fromDate, toDate, zone, division, hallid);
} else {
return bookingService.getBookingDetailsByBookingDateWithStatus(fromDate, toDate, bookingStatus,
zone, division, hallid);
}
}
if ("2".equals(filterby)) {
if (bookingStatus.isEmpty()) {
return bookingService.getBookingDetailsByEventDate(fromDate, toDate, zone, division, hallid);
} else {
return bookingService.getBookingDetailsByEventDateWithStatus(fromDate, toDate, bookingStatus, zone,
division, hallid);
}
}
}
// Handle default or error case
return new ArrayList<>();
}
private List<BookingDetails> handleBookingSettlementRequest(String request, String fromDate, String toDate,
String refundStatus, String filterby) {
if (!request.equals("6")) {
return new ArrayList<>();
}
if (filterby.isEmpty() && refundStatus.isEmpty()) {
return bookingService.getAllBookingsettlementDetailsByBookingDate(fromDate, toDate);
}
if (filterby.isEmpty() && !refundStatus.isEmpty()) {
return bookingService.getAllBookingsettlementDetailsByBookingDateWithStatus(fromDate, toDate, refundStatus);
}
if (!filterby.isEmpty()) {
if ("1".equals(filterby)) {
if (refundStatus.isEmpty()) {
return bookingService.getAllBookingsettlementDetailsByBookingDate(fromDate, toDate);
} else {
return bookingService.getAllBookingsettlementDetailsByBookingDateWithStatus(fromDate, toDate,
refundStatus);
}
}
if ("2".equals(filterby)) {
if (refundStatus.isEmpty()) {
return bookingService.getAllBookingsettlementDetailsByEventDate(fromDate, toDate);
} else {
return bookingService.getAllBookingsettlementDetailsByEventDateWithStatus(fromDate, toDate,
refundStatus);
}
}
}
// Handle default or error case
return new ArrayList<>();
}
@GetMapping("/logout")
public String viewLogout(Model model, HttpSession session) {
session.invalidate();
System.out.println("Logged out successfully");
return "redirect:/communityhall/login";
}
//sm
}

44
src/main/resources/templates/fragments/head-sm.html

@ -0,0 +1,44 @@
<head xmlns:th="http://www.w3.org/1999/xhtml">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title th:text="'GCC - '+communityHall">GCC</title>
<base th:href="${baseURL}" />
<meta name="description" content="GCC - Pet Registry">
<meta name="author" content="BonTon Softwares pvt Limited">
<meta name="robots" content="noindex, nofollow">
<!-- Open Graph Meta -->
<meta property="og:title" content="Pet Register">
<meta property="og:site_name" content="GCC">
<meta property="og:description" content="Greater Chennai Corporation - Pet Registry">
<meta property="og:type" content="website">
<meta property="og:url" content="">
<meta property="og:image" content="">
<!-- Icons -->
<!-- The following icons can be replaced with your own, they are used by desktop and mobile browsers -->
<link rel="shortcut icon" href="media/favicons/favicon.png">
<link rel="icon" type="image/png" sizes="192x192" href="media/favicons/favicon-192x192.png">
<link rel="apple-touch-icon" sizes="180x180" href="media/favicons/apple-touch-icon-180x180.png">
<!-- END Icons -->
<!-- Stylesheets -->
<!-- Page JS Plugins CSS -->
<link rel="stylesheet" href="js/plugins/datatables-bs5/css/dataTables.bootstrap5.min.css">
<link rel="stylesheet" href="js/plugins/datatables-buttons-bs5/css/buttons.bootstrap5.min.css">
<link rel="stylesheet" href="js/plugins/datatables-responsive-bs5/css/responsive.bootstrap5.min.css">
<!-- Page JS Plugins CSS -->
<link rel="stylesheet" href="js/plugins/sweetalert2/sweetalert2.min.css">
<!-- Dashmix framework -->
<link rel="stylesheet" id="css-main" href="css/dashmix.css">
<!-- You can include a specific file from css/themes/ folder to alter the default color theme of the template. eg: -->
<!-- <link rel="stylesheet" id="css-theme" href="assets/css/themes/xwork.min.css"> -->
<link rel="stylesheet" id="css-theme" href="css/themes/xinspire.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.min.css">
<!-- END Stylesheets -->
</head>

98
src/main/resources/templates/fragments/header-sm.html

@ -0,0 +1,98 @@
<header id="page-header" xmlns:th="http://www.w3.org/1999/xhtml">
<!-- Header Content -->
<div class="content-header">
<!-- Left Section -->
<div class="space-x-1">
<!-- Toggle Sidebar -->
<!-- Layout API, functionality initialized in Template._uiApiLayout()-->
<button type="button" class="btn btn-alt-secondary" data-toggle="layout" data-action="sidebar_toggle">
<i class="fa fa-fw fa-bars"></i>
</button>
<!-- END Toggle Sidebar -->
</div>
<!-- END Left Section -->
<div class="row pt-1" style="margin:0px;">
<!--<div class="col-2 text-center p-1">
<img src="assets/media/images/tamilnadu-logo.png" style="padding-top:2px;" width="30px" alt="Tamilnadu Logo">
</div>-->
<div class="col-2 text-center p-1">
<img src='media/images/logo-sm.png' width="37" alt="Logo Sm">
</div>
<div class="col-8 text-center p-0" style="font-size:15px;">
பெருநகர சென்னை மாநகராட்சி
</div>
<!--<div class="col-2 text-center p-1">
<img src='assets/media/images/logo-sm.png' width="32" alt="Logo Sm">
</div>-->
</div>
<!-- Right Section -->
<div class="space-x-1">
<!-- User Dropdown
<div class="dropdown d-inline-block">
<button type="button" class="btn btn-alt-secondary" id="page-header-user-btn">
<i class="far fa-fw fa-user me-1"></i>
<span class="d-none d-sm-inline ms-1" th:text="${adminname}"></span>
</button>
</div> -->
<div class="dropdown d-inline-block">
<button type="button" class="btn btn-alt-secondary dropdown-toggle" id="page-header-user-dropdown"
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="far fa-fw fa-user me-1"></i>
<span class="d-none d-sm-inline ms-1" th:text="${headquartersname}"></span>
</button>
<div class="dropdown-menu dropdown-menu-end p-0" aria-labelledby="page-header-user-dropdown">
<div class="bg-primary-dark rounded-top fw-semibold text-white text-center p-3">
User Options
</div>
<div class="p-2">
<a class="dropdown-item" href="javascript:resetPassword();">
<i class="far fa-fw fa-user me-1"></i> Reset Password
</a>
<div role="separator" class="dropdown-divider"></div>
<a class="dropdown-item" href="/communityhall/sm/logout">
<i class="far fa-fw fa-arrow-alt-circle-left me-1"></i> Sign Out
</a>
</div>
</div>
</div>
<!-- END User Dropdown -->
<!-- Header Search -->
<div id="page-header-search" class="overlay-header bg-header-dark">
<div class="bg-white-10">
<div class="content-header">
<form class="w-100" action="be_pages_generic_search.html" method="POST">
<div class="input-group">
<!-- Layout API, functionality initialized in Template._uiApiLayout() -->
<button type="button" class="btn btn-alt-primary" data-toggle="layout"
data-action="header_search_off">
<i class="fa fa-fw fa-times-circle"></i>
</button>
<input type="text" class="form-control border-0" placeholder="Search or hit ESC.."
id="page-header-search-input" name="page-header-search-input">
</div>
</form>
</div>
</div>
</div>
<!-- END Header Search -->
<!-- Header Loader -->
<!-- Please check out the Loaders page under Components category to see examples of showing/hiding it -->
<div id="page-header-loader" class="overlay-header bg-header-dark">
<div class="bg-white-10">
<div class="content-header">
<div class="w-100 text-center">
<i class="fa fa-fw fa-sun fa-spin text-white"></i>
</div>
</div>
</div>
</div>
<!-- END Header Loader -->
</header>

13
src/main/resources/templates/fragments/nav-sm.html

@ -0,0 +1,13 @@
<nav id="sidebar" aria-label="Main Navigation" xmlns:th="http://www.w3.org/1999/xhtml">
<!-- Side Header -->
<div th:replace="~{fragments/side-header :: div}"></div>
<!-- END Side Header -->
<!-- Sidebar Scrolling -->
<div class="js-sidebar-scroll">
<!-- Side Navigation -->
<div th:replace="~{fragments/smMenu :: div}"></div>
<!-- END Side Navigation -->
</div>
<!-- END Sidebar Scrolling -->
</nav>

152
src/main/resources/templates/fragments/smMenu.html

@ -0,0 +1,152 @@
<div class="content-side">
<ul class="nav-main">
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/sm/dashboard">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Dashboard</span>
</a>
</li>
<!-- <li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/approval-history">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">User Pending List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/user-approved">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">User Approval List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/user-reject">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">User Rejected List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/login-creation">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Log2312in Creation</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/halldetailslist">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Hall Details List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/GccblockingNew">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">GCC Blocking</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/ongoingevents">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Recent Events</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/viewUploadNoc">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Waiting For NOC </span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/bookingwaitinglist">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Waiting For NOC Approval</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/booking-list">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Booking Approved List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/rejected-list">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Booking Rejected List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/settlement-approved">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Settlement Approved List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/settlement-initiatedlist">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Settlement Initiated List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/collectionpending">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Collection Pending List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/settlement-list">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Settlement Pending List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/settlement-reject">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Settlement Rejected List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/settlementlist">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Settlement List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/settlement-completedlist">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Settlement Completed List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/refundfailed-list">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Refund Failed List</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/sixmonthold-transactions">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">6 Months Old Transactions</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/headquarters/Gccblocking">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Gcc Blocking</span>
</a>
</li> -->
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/sm/Reports">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Reports</span>
</a>
</li>
<li class="nav-main-item">
<a class="nav-main-link" href="/communityhall/sm/logout">
<i class="nav-main-link-icon fa fa-location-arrow"></i>
<span class="nav-main-link-name">Sign Out</span>
</a>
</li>
</ul>
</div>

3
src/main/resources/templates/officiallogin.html

@ -488,6 +488,9 @@
case "cro": case "cro":
window.location.href = "/communityhall/cro/booking-list"; window.location.href = "/communityhall/cro/booking-list";
break; break;
case "sm":
window.location.href = "/communityhall/sm/dashboard";
break;
default: default:
console.error("Invalid user type:", userType); console.error("Invalid user type:", userType);
} }

1570
src/main/resources/templates/sm/dashboard.html
File diff suppressed because it is too large
View File

2417
src/main/resources/templates/sm/reports.html
File diff suppressed because it is too large
View File

Loading…
Cancel
Save