2 Commits
2b24d862ea
...
1d865bbbcc
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
1d865bbbcc |
MTM Mayor Module Updated
|
3 years ago |
|
|
b586ca0bc8 |
App Security Updated
|
3 years ago |
23 changed files with 809 additions and 90 deletions
-
BIN.DS_Store
-
BINsrc/.DS_Store
-
2src/main/java/in/gov/chennaicorporation/gccoffice/configuration/DataSourceConfig.java
-
6src/main/java/in/gov/chennaicorporation/gccoffice/configuration/SecurityConfig.java
-
39src/main/java/in/gov/chennaicorporation/gccoffice/configuration/WebMvcConfig.java
-
18src/main/java/in/gov/chennaicorporation/gccoffice/controller/CustomErrorController.java
-
283src/main/java/in/gov/chennaicorporation/gccoffice/interceptor/AppInterceptor.java
-
44src/main/java/in/gov/chennaicorporation/gccoffice/mtm/controller/MayorController.java
-
191src/main/java/in/gov/chennaicorporation/gccoffice/mtm/data/MTMOfficer.java
-
3src/main/java/in/gov/chennaicorporation/gccoffice/repository/AppModuleAccessRepository.java
-
3src/main/java/in/gov/chennaicorporation/gccoffice/repository/AppModuleRepository.java
-
4src/main/java/in/gov/chennaicorporation/gccoffice/repository/MenuItemAccessRepository.java
-
5src/main/java/in/gov/chennaicorporation/gccoffice/repository/MenuItemRepository.java
-
6src/main/java/in/gov/chennaicorporation/gccoffice/repository/SubMenuItemAccessRepository.java
-
4src/main/java/in/gov/chennaicorporation/gccoffice/repository/SubMenuItemRepository.java
-
4src/main/resources/application.properties
-
BINsrc/main/resources/static/assets/.DS_Store
-
BINsrc/main/resources/static/assets/images/403.png
-
57src/main/resources/templates/error-403.html
-
4src/main/resources/templates/fragments/modules/mtm/event_search_form.html
-
38src/main/resources/templates/index.html
-
2src/main/resources/templates/modules/mtm/mayor/by-event-list.html
-
186src/main/resources/templates/modules/mtm/mayor/by-officer-list.html
@ -0,0 +1,191 @@ |
|||||
|
package in.gov.chennaicorporation.gccoffice.mtm.data; |
||||
|
|
||||
|
import com.fasterxml.jackson.annotation.JsonCreator; |
||||
|
import com.fasterxml.jackson.annotation.JsonProperty; |
||||
|
|
||||
|
public class MTMOfficer { |
||||
|
private String mapId; |
||||
|
private String petitionNumber; |
||||
|
private String mtmEventsPetitionId; |
||||
|
private String mtmEvents; |
||||
|
private String offID; |
||||
|
private String status; |
||||
|
private String mtmComplaintTypes; |
||||
|
private String isDelete; |
||||
|
private String isActive; |
||||
|
private String createdBy; |
||||
|
private String cDate; |
||||
|
private String officerName; |
||||
|
private String eventName; |
||||
|
private String officerPetitionCount; |
||||
|
private String officerCompletedCount; |
||||
|
private String officerPendingCount; |
||||
|
|
||||
|
@JsonCreator |
||||
|
public MTMOfficer( |
||||
|
@JsonProperty("mapId") String mapId, |
||||
|
@JsonProperty("petitionNumber") String petitionNumber, |
||||
|
@JsonProperty("mtmEventsPetitionId") String mtmEventsPetitionId, |
||||
|
@JsonProperty("mtmEvents") String mtmEvents, |
||||
|
@JsonProperty("offID") String offID, |
||||
|
@JsonProperty("status") String status, |
||||
|
@JsonProperty("mtmComplaintTypes") String mtmComplaintTypes, |
||||
|
@JsonProperty("isDelete") String isDelete, |
||||
|
@JsonProperty("isActive") String isActive, |
||||
|
@JsonProperty("createdBy") String createdBy, |
||||
|
@JsonProperty("cDate") String cDate, |
||||
|
@JsonProperty("officer_name") String officerName, |
||||
|
@JsonProperty("event_name") String eventName, |
||||
|
@JsonProperty("officer_petition_count") String officerPetitionCount, |
||||
|
@JsonProperty("officer_completed_count") String officerCompletedCount, |
||||
|
@JsonProperty("officer_pending_count") String officerPendingCount |
||||
|
) { |
||||
|
this.mapId = mapId; |
||||
|
this.petitionNumber = petitionNumber; |
||||
|
this.mtmEventsPetitionId = mtmEventsPetitionId; |
||||
|
this.mtmEvents = mtmEvents; |
||||
|
this.offID = offID; |
||||
|
this.status = status; |
||||
|
this.mtmComplaintTypes = mtmComplaintTypes; |
||||
|
this.isDelete = isDelete; |
||||
|
this.isActive = isActive; |
||||
|
this.createdBy = createdBy; |
||||
|
this.cDate = cDate; |
||||
|
this.officerName = officerName; |
||||
|
this.eventName = eventName; |
||||
|
this.officerPetitionCount = officerPetitionCount; |
||||
|
this.officerCompletedCount = officerCompletedCount; |
||||
|
this.officerPendingCount = officerPendingCount; |
||||
|
} |
||||
|
|
||||
|
public String getMapId() { |
||||
|
return mapId; |
||||
|
} |
||||
|
|
||||
|
public void setMapId(String mapId) { |
||||
|
this.mapId = mapId; |
||||
|
} |
||||
|
|
||||
|
public String getPetitionNumber() { |
||||
|
return petitionNumber; |
||||
|
} |
||||
|
|
||||
|
public void setPetitionNumber(String petitionNumber) { |
||||
|
this.petitionNumber = petitionNumber; |
||||
|
} |
||||
|
|
||||
|
public String getMtmEventsPetitionId() { |
||||
|
return mtmEventsPetitionId; |
||||
|
} |
||||
|
|
||||
|
public void setMtmEventsPetitionId(String mtmEventsPetitionId) { |
||||
|
this.mtmEventsPetitionId = mtmEventsPetitionId; |
||||
|
} |
||||
|
|
||||
|
public String getMtmEvents() { |
||||
|
return mtmEvents; |
||||
|
} |
||||
|
|
||||
|
public void setMtmEvents(String mtmEvents) { |
||||
|
this.mtmEvents = mtmEvents; |
||||
|
} |
||||
|
|
||||
|
public String getOffID() { |
||||
|
return offID; |
||||
|
} |
||||
|
|
||||
|
public void setOffID(String offID) { |
||||
|
this.offID = offID; |
||||
|
} |
||||
|
|
||||
|
public String getStatus() { |
||||
|
return status; |
||||
|
} |
||||
|
|
||||
|
public void setStatus(String status) { |
||||
|
this.status = status; |
||||
|
} |
||||
|
|
||||
|
public String getMtmComplaintTypes() { |
||||
|
return mtmComplaintTypes; |
||||
|
} |
||||
|
|
||||
|
public void setMtmComplaintTypes(String mtmComplaintTypes) { |
||||
|
this.mtmComplaintTypes = mtmComplaintTypes; |
||||
|
} |
||||
|
|
||||
|
public String getIsDelete() { |
||||
|
return isDelete; |
||||
|
} |
||||
|
|
||||
|
public void setIsDelete(String isDelete) { |
||||
|
this.isDelete = isDelete; |
||||
|
} |
||||
|
|
||||
|
public String getIsActive() { |
||||
|
return isActive; |
||||
|
} |
||||
|
|
||||
|
public void setIsActive(String isActive) { |
||||
|
this.isActive = isActive; |
||||
|
} |
||||
|
|
||||
|
public String getCreatedBy() { |
||||
|
return createdBy; |
||||
|
} |
||||
|
|
||||
|
public void setCreatedBy(String createdBy) { |
||||
|
this.createdBy = createdBy; |
||||
|
} |
||||
|
|
||||
|
public String getcDate() { |
||||
|
return cDate; |
||||
|
} |
||||
|
|
||||
|
public void setcDate(String cDate) { |
||||
|
this.cDate = cDate; |
||||
|
} |
||||
|
|
||||
|
public String getOfficerName() { |
||||
|
return officerName; |
||||
|
} |
||||
|
|
||||
|
public void setOfficerName(String officerName) { |
||||
|
this.officerName = officerName; |
||||
|
} |
||||
|
|
||||
|
public String getEventName() { |
||||
|
return eventName; |
||||
|
} |
||||
|
|
||||
|
public void setEventName(String eventName) { |
||||
|
this.eventName = eventName; |
||||
|
} |
||||
|
|
||||
|
public String getOfficerPetitionCount() { |
||||
|
return officerPetitionCount; |
||||
|
} |
||||
|
|
||||
|
public void setOfficerPetitionCount(String officerPetitionCount) { |
||||
|
this.officerPetitionCount = officerPetitionCount; |
||||
|
} |
||||
|
|
||||
|
public String getOfficerCompletedCount() { |
||||
|
return officerCompletedCount; |
||||
|
} |
||||
|
|
||||
|
public void setOfficerCompletedCount(String officerCompletedCount) { |
||||
|
this.officerCompletedCount = officerCompletedCount; |
||||
|
} |
||||
|
|
||||
|
public String getOfficerPendingCount() { |
||||
|
return officerPendingCount; |
||||
|
} |
||||
|
|
||||
|
public void setOfficerPendingCount(String officerPendingCount) { |
||||
|
this.officerPendingCount = officerPendingCount; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
After Width: 1000 | Height: 1080 | Size: 106 KiB |
@ -0,0 +1,57 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en" dir=""> |
||||
|
<html xmlns:th="http://www.thymeleaf.org"> |
||||
|
<head th:replace="~{fragments/modules/base/head :: head}"></head> |
||||
|
<body> |
||||
|
<!--[if lt IE 8]> |
||||
|
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> |
||||
|
<![endif]--> |
||||
|
|
||||
|
<div class="auth-wrapper"> |
||||
|
<div class="container-fluid h-100"> |
||||
|
<div class="row flex-row h-100 bg-white"> |
||||
|
<div class="col-xl-6 col-lg-6 col-md-5 p-0 d-md-block d-lg-block d-sm-none d-none"> |
||||
|
<div class="lavalite-bg authentication-form mx-auto text-center"> |
||||
|
<div class="logo-centered" style="padding-top: 30px;"></div> |
||||
|
<img src="/assets/images/403.png" width="90%"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-xl-6 col-lg-6 col-md-7 my-auto p-0"> |
||||
|
<div class="authentication-form mx-auto text-center"> |
||||
|
<div class="logo-centered"> |
||||
|
<a href="/"><img src="/assets/images/logo.png" alt="Greater Chennai Corporation" class="header-brand-img" width="100%"></a> |
||||
|
</div> |
||||
|
<h3>Greater Chennai Corporation</h3> |
||||
|
<!-- Content --> |
||||
|
<div class="flex-grow-1 d-flex align-items-center p-5 bg-body-light"> |
||||
|
<div class="w-100"> |
||||
|
<p class="text-danger fs-4 fw-bold text-uppercase mb-2" th:utext="${errorStatus}"> |
||||
|
403 Error |
||||
|
</p> |
||||
|
<h1 class="fw-bold mb-2" th:utext="${errorError}"> |
||||
|
403 - Access Denied |
||||
|
</h1> |
||||
|
<p class="fs-4 fw-medium text-muted mb-5" th:utext="${errorMessage}"> |
||||
|
Oops, You don`t have permission to access this page. |
||||
|
</p> |
||||
|
<a class="btn btn-lg btn-alt-danger" href="#" onclick="goBack()"> |
||||
|
<i class="fa fa-arrow-left opacity-50 me-1"></i> Back |
||||
|
</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- END Content --> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<script th:replace="~{fragments/modules/base/script :: script}"></script> |
||||
|
<script> |
||||
|
function goBack() { |
||||
|
history.go(-1); // This will go back one step in the browser's history |
||||
|
return false; // Prevent the default link behavior |
||||
|
} |
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,186 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en" dir=""> |
||||
|
<html xmlns:th="http://www.thymeleaf.org"> |
||||
|
<head th:replace="~{fragments/modules/base/head :: head}"></head> |
||||
|
<body> |
||||
|
<!--[if lt IE 8]> |
||||
|
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> |
||||
|
<![endif]--> |
||||
|
|
||||
|
<div class="wrapper"> |
||||
|
<!-- header top menu Start --> |
||||
|
<header th:replace="~{fragments/modules/base/header :: header}"></header> |
||||
|
<!-- header top menu end --> |
||||
|
|
||||
|
<div class="page-wrap"> |
||||
|
<!--=============== Left Menu side Start ================--> |
||||
|
<div th:replace="~{fragments/modules/base/menu :: menu}"></div> |
||||
|
<!--=============== Left side End ================--> |
||||
|
<div class="main-content"> |
||||
|
<div class="container-fluid"> |
||||
|
<div class="page-header"> |
||||
|
<div class="row align-items-end"> |
||||
|
<div class="col-lg-6"> |
||||
|
<div class="page-header-title"> |
||||
|
<i class="fas fa-th-large bg-blue"></i> |
||||
|
<div class="d-inline"> |
||||
|
<h5>Officer`s report based on complaint`s</h5> |
||||
|
<span>Makkalai Thedi Mayoral Module</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-lg-6"> |
||||
|
<nav class="breadcrumb-container" aria-label="breadcrumb"> |
||||
|
<ol class="breadcrumb"> |
||||
|
<li class="breadcrumb-item"> |
||||
|
<a href="/index"><i class="ik ik-home"></i></a> |
||||
|
</li> |
||||
|
<li class="breadcrumb-item">Makkalai Thedi Mayoral </li> |
||||
|
<li class="breadcrumb-item">Mayor</li> |
||||
|
<li class="breadcrumb-item active" aria-current="page">Petition List</li> |
||||
|
</ol> |
||||
|
</nav> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<hr> |
||||
|
<div class="row"> |
||||
|
<div class="col-md-12"> |
||||
|
<div class="card"> |
||||
|
|
||||
|
<div class="card-block"> |
||||
|
<div th:replace="~{fragments/modules/mtm/event_search_form :: div}"></div> |
||||
|
<div> |
||||
|
<table id="assetDatatable" class="table table-striped table-bordered table-hover dataTable" role="grid" width="100%"> |
||||
|
<thead class="thead-dark"> |
||||
|
<tr class="table-bordered"> |
||||
|
<th class="text-center no-sort">S.No</th> |
||||
|
<th class="">Officer`s</th> |
||||
|
<th class="">Off ID</th> |
||||
|
<th class="">Event</th> |
||||
|
<th class="text-center">Total</th> |
||||
|
<th class="text-center">Completed</th> |
||||
|
<th class="text-center">Pending</th> |
||||
|
</tr> |
||||
|
</theadclass="thead-dark"> |
||||
|
<tbody> |
||||
|
<tr th:each="officers, i : ${officerTableList}" class="${officerTableList}"> |
||||
|
<td th:text="${i.index + 1}">0</td> |
||||
|
<td th:text="${officers.officerName}"></td> |
||||
|
<td th:text="${officers.offID}"></td> |
||||
|
<td th:text="${officers.eventName}"></td> |
||||
|
<td th:text="${officers.officerPetitionCount}"></td> |
||||
|
<td th:text="${officers.officerCompletedCount}"></td> |
||||
|
<td th:text="${officers.officerPendingCount}"></td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
<tfoot class="thead-dark"> |
||||
|
<tr> |
||||
|
<th class="text-center no-sort">S.No</th> |
||||
|
<th class="">Officer`s</th> |
||||
|
<th class="">Event</th> |
||||
|
<th class="">Off ID</th> |
||||
|
<th class="text-center">Total</th> |
||||
|
<th class="text-center">Completed</th> |
||||
|
<th class="text-center">Pending</th> |
||||
|
</tr> |
||||
|
</tfoot> |
||||
|
</table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<footer th:replace="~{fragments/modules/base/footer :: footer}"></footer> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div th:replace="~{fragments/modules/mtm/modal-box :: div}"></div> |
||||
|
|
||||
|
<div th:replace="~{fragments/modules/base/app_module_menu_box :: div}"></div> |
||||
|
|
||||
|
<script th:replace="~{fragments/modules/base/script :: script}"></script> |
||||
|
<script th:replace="~{fragments/modules/mtm/script :: script}"></script> |
||||
|
<script th:inline="javascript"> |
||||
|
//var qrAssetFeedbackApiUrl = "[[${qrAssetFeedbackApiUrl}]]"; |
||||
|
|
||||
|
$(document).ready(function() { |
||||
|
|
||||
|
// DataTables buttons configuration |
||||
|
var buttons = [ |
||||
|
{ |
||||
|
extend: 'pageLength', |
||||
|
className: 'btn btn-warning' |
||||
|
}, |
||||
|
{ |
||||
|
title: 'Data export', |
||||
|
extend: 'copyHtml5', |
||||
|
text: 'Copy', |
||||
|
className: 'btn btn-secondary', |
||||
|
id: 'copyBtn', |
||||
|
exportOptions: { |
||||
|
columns: ':not(.export-hidden)', // Exclude columns with class 'export-hidden' |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
extend: 'excelHtml5', |
||||
|
text: 'Excel', |
||||
|
className: 'btn btn-secondary', |
||||
|
id: 'excelBtn', |
||||
|
title: 'Complaint List', |
||||
|
exportOptions: { |
||||
|
columns: ':not(.export-hidden)', // Exclude columns with class 'export-hidden' |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
extend: 'csvHtml5', |
||||
|
text: 'CSV', |
||||
|
className: 'btn btn-secondary', |
||||
|
id: 'csvBtn', |
||||
|
title: 'Complaint List', |
||||
|
exportOptions: { |
||||
|
columns: ':not(.export-hidden)', // Exclude columns with class 'export-hidden' |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
extend: 'pdfHtml5', |
||||
|
text: 'PDF', |
||||
|
className: 'btn btn-secondary', |
||||
|
id: 'pdfBtn', |
||||
|
title: 'Complaint List', |
||||
|
exportOptions: { |
||||
|
columns: ':not(.export-hidden)', // Exclude columns with class 'export-hidden' |
||||
|
}, |
||||
|
|
||||
|
} |
||||
|
]; |
||||
|
|
||||
|
$('#assetDatatable').DataTable( { |
||||
|
dom: 'Bftip', |
||||
|
columnDefs: [ |
||||
|
{ targets: 'no-sort', orderable: false } |
||||
|
], |
||||
|
lengthMenu: [ |
||||
|
[ 50, 100, 200, 500, -1 ], |
||||
|
[ '50 rows', '100 rows', '200 rows','500 rows', 'Show all' ] |
||||
|
], |
||||
|
scrollY: '50vh', |
||||
|
fixedColumns: { |
||||
|
left: 1, |
||||
|
right: 1 |
||||
|
}, |
||||
|
buttons: [buttons], |
||||
|
responsive: true, |
||||
|
searching: false, |
||||
|
select: false, |
||||
|
processing: false, |
||||
|
} ); |
||||
|
} ); |
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue