From 236215e061ca9f28de0760cafaeb5aafa69ded06 Mon Sep 17 00:00:00 2001 From: Alok Kumar <59380269+AlokSP@users.noreply.github.com> Date: Mon, 8 Jun 2026 12:15:30 +0530 Subject: [PATCH 1/7] Training - Modules --- .../com/health/controller/HomeController.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/src/main/java/com/health/controller/HomeController.java b/src/main/java/com/health/controller/HomeController.java index 3dd361e..2ee9234 100644 --- a/src/main/java/com/health/controller/HomeController.java +++ b/src/main/java/com/health/controller/HomeController.java @@ -7975,6 +7975,95 @@ public String getShareLinkofProjectReportDoc_ExcelByToken(HttpServletRequest req /************************ Project Report End ********************************/ + /********************** + * New Training Module Start + ******************************/ + + @GetMapping("/Training-Modules") + public String newHstTrainingModules(@RequestParam(name = "week_new", required = false, defaultValue = "0") int week, + @RequestParam(name = "lannew", required = false, defaultValue = "0") int lang, HttpServletRequest req, + @RequestParam(name = "page", defaultValue = "0") int page, Model model, Principal principal) { + + User usr = getUser(principal); + logger.info("{} {} {}", usr.getUsername(), req.getMethod(), req.getRequestURI()); + model.addAttribute("userInfo", usr); + + model.addAttribute("week", week); + model.addAttribute("language", lang); + Week localWeek = null; + Language localLan = null; + + Pageable pageable = PageRequest.of(page, 10); + String weekIdStr = String.valueOf(week); + String lanIdStr = String.valueOf(lang); + + getPackageAndLanguageData(model, weekIdStr, lanIdStr); + + if (week != 0) { + localWeek = weekService.findByWeekId(week); + + model.addAttribute("weekforQuery", localWeek); + } + if (lang != 0) { + localLan = lanService.getById(lang); + model.addAttribute("lanforQuery", localLan); + } + + List weekTitleList = localWeek != null ? new ArrayList<>(localWeek.getWeekTitles()) + : weekTitleVideoService.findAll(); + List packlan_list = localLan != null ? new ArrayList<>(localLan.getPackageLanguages()) + : packLanService.findAll(); + + List tutorialswithWeekAndPackage = tutorialWithWeekAndPackageService + .findByWeekTitlesAndPackageLanguages(weekTitleList, packlan_list); + + List weekTitleVideoList = tutorialswithWeekAndPackage.stream() + .map(TutorialWithWeekAndPackage::getWeekTitle).distinct().collect(Collectors.toList()); + + List finalWeekTitleVideoList = getEnglishTrainingMouduleFirst(weekTitleVideoList); + + int start = (int) pageable.getOffset(); + int end = Math.min((start + pageable.getPageSize()), finalWeekTitleVideoList.size()); + + List sublist = finalWeekTitleVideoList.subList(start, end); + + List weekTitleVideoView = new ArrayList(); + + Page weekTitleVidePage = new PageImpl<>(sublist, pageable, finalWeekTitleVideoList.size()); + for (WeekTitleVideo temp : weekTitleVidePage) { + { + weekTitleVideoView.add(temp); + } + } + + int totalPages = 0; + + if (weekTitleVidePage != null) { + totalPages = weekTitleVidePage.getTotalPages(); + } else { + totalPages = 1; + } + + int firstPage = page + 1 > 2 ? page + 1 - 2 : 1; + int lastPage = page + 1 < totalPages - 5 ? page + 1 + 5 : totalPages; + + model.addAttribute("weekTitleVidePageList", weekTitleVidePage); + + model.addAttribute("currentPage", page); + model.addAttribute("firstPage", firstPage); + model.addAttribute("lastPage", lastPage); + model.addAttribute("totalPages", totalPages); + + model.addAttribute("userInfo", usr); + + // model.addAttribute("weekTitleVideoList", finalWeekTitleVideoList); + + return "hstTrainingModuleList"; + + } + + /********************* New Training Module End ********************************/ + @GetMapping("/trainingModules") public String hstTrainingModules(@RequestParam(name = "week", required = false, defaultValue = "") String weekName, @RequestParam(name = "lan", required = false, defaultValue = "") String langName, HttpServletRequest req, From 4b0df679761e456585a706a5e4c53428f1028955 Mon Sep 17 00:00:00 2001 From: Alok Kumar <59380269+AlokSP@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:56:05 +0530 Subject: [PATCH 2/7] hstTrainingModuleList page, common Items and Model --- .../com/health/config/SecurityConfig.java | 2 +- .../com/health/controller/AjaxController.java | 101 +++++++ .../com/health/controller/HomeController.java | 37 ++- src/main/resources/static/js/ajaxSupport.js | 156 ++++++++++ .../common/commonItemsHSTTrainingModule.html | 76 +++++ .../templates/hstTrainingModuleList.html | 277 ++++++++++++++++++ 6 files changed, 642 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/templates/hstTrainingModuleList.html diff --git a/src/main/java/com/health/config/SecurityConfig.java b/src/main/java/com/health/config/SecurityConfig.java index 806589f..ecc520e 100644 --- a/src/main/java/com/health/config/SecurityConfig.java +++ b/src/main/java/com/health/config/SecurityConfig.java @@ -63,7 +63,7 @@ public static BCryptPasswordEncoder passwordEncoder() { "/check-deployment", "/training-resources/view-share/**", "/loadDistrictAndFileTypeByState/**", "/loadStateAndFileTypeByDistrict/**", "/loadStateAndDistrictByFileType/**", "/Project-Reports/**", "/downloadProjectReport/**", "/project-reports/view-share/**", "/shared-Project-Report/**", - "/shared-project-report-file/**", }; + "/shared-project-report-file/**", "/Training-Modules/**", "/load_lan_by_week", "/load_week_by_language", }; /** * url matcher for SUPERADMIN diff --git a/src/main/java/com/health/controller/AjaxController.java b/src/main/java/com/health/controller/AjaxController.java index ddaf5b4..47c9b25 100644 --- a/src/main/java/com/health/controller/AjaxController.java +++ b/src/main/java/com/health/controller/AjaxController.java @@ -1397,6 +1397,107 @@ public String downloadManager(@RequestParam(name = "zipUrl") String zipUrl, Http * Training_Module_View End **********************************/ + /*************************************** + * New Training Module Start + *******************************/ + + @RequestMapping("/load_lan_by_week") + public @ResponseBody ArrayList> getNewLanguageByWeek( + @RequestParam(value = "weekId") int weekId, @RequestParam(value = "languageId") int languageId, + Optional packageId) { + + ArrayList> arlist = new ArrayList<>(); + + Map languages = new TreeMap<>(); + + Week week = weekId != 0 ? weekService.findByWeekId(weekId) : null; + + Language language = languageId != 0 ? langService.getById(languageId) : null; + PackageLanguage packLanguage = null; + if (packageId != null && packageId.isPresent()) { + PackageContainer packageContainer = packageContainerService.findByPackageId(packageId.get()); + if (packageContainer != null && language != null) { + packLanguage = packLanService.findByPackageContainerAndLan(packageContainer, language.getLangName()); + } + } + + List tutorials = new ArrayList<>(); + + if (packLanguage != null) { + + tutorials = new ArrayList<>(packLanguage.getTutorialsWithWeekAndPack()); + } + + else { + + List weekTitleList = week != null ? new ArrayList<>(week.getWeekTitles()) + : weekTitleVideoService.findAll(); + List packlan_list = packLanService.findAll(); + + tutorials = tutorialWithPackageAndService.findByWeekTitlesAndPackageLanguages(weekTitleList, packlan_list); + } + + for (TutorialWithWeekAndPackage temp : tutorials) { + Language lan = temp.getPackageLanguage().getLan(); + languages.put(lan.getLangName(), lan.getLanId()); + } + + arlist.add(languages); + return arlist; + + } + + @RequestMapping("/load_week_by_language") + public @ResponseBody ArrayList> getNewWeekByLanguage( + @RequestParam(value = "weekId") int weekId, @RequestParam(value = "languageId") int languageId, + Optional packageId) { + + ArrayList> arlist = new ArrayList<>(); + + Map weeks = new TreeMap<>((w1, w2) -> { + int num1 = ServiceUtility.extractInteger(w1); + int num2 = ServiceUtility.extractInteger(w2); + return Integer.compare(num1, num2); + }); + + Week week = weekId != 0 ? weekService.findByWeekId(weekId) : null; + + Language language = languageId != 0 ? langService.getById(languageId) : null; + + PackageLanguage packLanguage = null; + if (packageId != null && packageId.isPresent()) { + PackageContainer packageContainer = packageContainerService.findByPackageId(packageId.get()); + if (packageContainer != null && language != null) { + packLanguage = packLanService.findByPackageContainerAndLan(packageContainer, language.getLangName()); + } + } + + List tutorials = new ArrayList<>(); + if (packLanguage != null) { + + tutorials = new ArrayList<>(packLanguage.getTutorialsWithWeekAndPack()); + } else { + + List weekTitleList = weekTitleVideoService.findAll(); + List packlan_list = language != null ? new ArrayList<>(language.getPackageLanguages()) + : packLanService.findAll(); + tutorials = tutorialWithPackageAndService.findByWeekTitlesAndPackageLanguages(weekTitleList, packlan_list); + } + + for (TutorialWithWeekAndPackage temp : tutorials) { + Week weekTemp = temp.getWeekTitle().getWeek(); + weeks.put(weekTemp.getWeekName(), weekTemp.getWeekId()); + } + + arlist.add(weeks); + return arlist; + + } + + /*************************************** + * New Training Module End + **********************************/ + /********************* * Delete Tutorial of Training Module and HST Start **************************/ diff --git a/src/main/java/com/health/controller/HomeController.java b/src/main/java/com/health/controller/HomeController.java index 2ee9234..4810d1a 100644 --- a/src/main/java/com/health/controller/HomeController.java +++ b/src/main/java/com/health/controller/HomeController.java @@ -901,6 +901,33 @@ private void getPackageAndLanguageData(Model model) { getPackageAndLanguageData(model, "", ""); } + private void getNewPackageAndLanguageData(Model model, int weekId, int lanId) { + List packageList = packLanService.findAllDistinctEnabledPackageContainers(); + model.addAttribute("packageList", packageList); + + ArrayList> arlist = ajaxController.getNewLanguageByWeek(weekId, lanId, null); + ArrayList> arlist1 = ajaxController.getNewWeekByLanguage(weekId, lanId, null); + Map languages = arlist.get(0); + Map weeks = arlist1.get(0); + + model.addAttribute("weekListNew", weeks); + model.addAttribute("languagesNew", languages); + model.addAttribute("localWeekNew", weekId); + + model.addAttribute("localLanguageNew", lanId); + + model.addAttribute("languageCount", languages.size()); + + boolean downloadPackageFlag = !packageList.isEmpty(); + + model.addAttribute("downloadPackageFlag", downloadPackageFlag); + + } + + private void getNewPackageAndLanguageData(Model model) { + getNewPackageAndLanguageData(model, 0, 0); + } + private void getModelTrainingResource(Model model, int topicId, int lanId, int fileTypeId) { ArrayList> arlist = ajaxController.getLanAndFileTypeByTopic(topicId, lanId, fileTypeId); @@ -7980,8 +8007,8 @@ public String getShareLinkofProjectReportDoc_ExcelByToken(HttpServletRequest req ******************************/ @GetMapping("/Training-Modules") - public String newHstTrainingModules(@RequestParam(name = "week_new", required = false, defaultValue = "0") int week, - @RequestParam(name = "lannew", required = false, defaultValue = "0") int lang, HttpServletRequest req, + public String newHstTrainingModules(@RequestParam(name = "week", required = false, defaultValue = "0") int week, + @RequestParam(name = "lang", required = false, defaultValue = "0") int lang, HttpServletRequest req, @RequestParam(name = "page", defaultValue = "0") int page, Model model, Principal principal) { User usr = getUser(principal); @@ -7994,10 +8021,8 @@ public String newHstTrainingModules(@RequestParam(name = "week_new", required = Language localLan = null; Pageable pageable = PageRequest.of(page, 10); - String weekIdStr = String.valueOf(week); - String lanIdStr = String.valueOf(lang); - getPackageAndLanguageData(model, weekIdStr, lanIdStr); + getNewPackageAndLanguageData(model, week, lang); if (week != 0) { localWeek = weekService.findByWeekId(week); @@ -8047,7 +8072,7 @@ public String newHstTrainingModules(@RequestParam(name = "week_new", required = int firstPage = page + 1 > 2 ? page + 1 - 2 : 1; int lastPage = page + 1 < totalPages - 5 ? page + 1 + 5 : totalPages; - model.addAttribute("weekTitleVidePageList", weekTitleVidePage); + model.addAttribute("weekTitleVideoView", weekTitleVideoView); model.addAttribute("currentPage", page); model.addAttribute("firstPage", firstPage); diff --git a/src/main/resources/static/js/ajaxSupport.js b/src/main/resources/static/js/ajaxSupport.js index c531817..4f2324a 100644 --- a/src/main/resources/static/js/ajaxSupport.js +++ b/src/main/resources/static/js/ajaxSupport.js @@ -2844,6 +2844,162 @@ $(".deleteTrainingModuleTutorial-btn").click(function(){ /************************************Assign Video End ********************************************** */ + + +/*********** Trianing Module New Page Code Start******************************************************/ + + function loadLanguageByWeek(weekId, languageId){ + + $.ajax({ + type : "GET", + url : projectPath+"load_lan_by_week", + data : { + "weekId":weekId, + "languageId":languageId, + + + }, + contentType : "application/json", + success : function(resultarlist) { + var result= resultarlist[0]; + + console.log(result); + var html = ''; + html += ''; + $.each(result , function( value ,key ) { + var selected=(languageId==key)?"selected":""; + html += ``; + }) + $("#lang_new").prop('disabled',false); + $('#lang_new').html(html); + + + if (weekId !== "") { + $("#weekresetdivnew").show(); + } else { + $("#weekresetdivnew").hide(); + } + + }, + error : function(err) { + console.log("not working. ERROR: "+ JSON.stringify(err)); + } + }); + + } + + $('#week_new').change(function() { + var weekId = $(this).val(); + var languageId = $("#lang_new").val(); + + loadLanguageByWeek(weekId, languageId); + + + }); + + $( "#weekresetnew" ).click(function() { + + var weekId = ""; + $("#week_new").val(""); + var languageId = $("#lang_new").val(); + + loadLanguageByWeek(weekId, languageId); + + return false; + + }); + + + + function loadWeekByLanguage(weekId, languageId){ + + $.ajax({ + type : "GET", + url : projectPath+"load_week_by_language", + data : { + "weekId":weekId, + "languageId":languageId, + + + }, + contentType : "application/json", + success : function(resultarlist) { + var result= resultarlist[0]; + + console.log(result); + var html = ''; + html += ''; + $.each(result , function( value ,key ) { + var selected=(weekId==key)?"selected":""; + html += ``; + }) + $("#week_new").prop('disabled',false); + $('#week_new').html(html); + + + if (languageId !== "") { + $("#languageresetdivnew").show(); + } else { + $("#languageresetdivnew").hide(); + } + + }, + error : function(err) { + console.log("not working. ERROR: "+ JSON.stringify(err)); + } + }); + + } + + $('#lang_new').change(function() { + var languageId = $(this).val(); + var weekId = $("#week_new").val(); + + loadWeekByLanguage(weekId, languageId); + + + }); + + $( "#languageresetnew" ).click(function() { + + var languageId = ""; + $("#lang_new").val(""); + var weekId = $("#week_new").val(); + + loadWeekByLanguage(weekId, languageId); + + return false; + + }); + + + + + + + $( "#btnClearFormnew" ).click(function() { + + + var languageId = ""; + $("#lang_new").val(""); + var weekId =""; + $("#week_new").val(""); + + loadLanguageByWeek(weekId, languageId); + loadWeekByLanguage(weekId, languageId); + + return false; + + }); + + + + + + +/***************Trainig Module New Page Code End******************************************************/ + + /******************************** Trainig Resource Start ***************************************/ $("#catIdTR").change(function() { diff --git a/src/main/resources/templates/common/commonItemsHSTTrainingModule.html b/src/main/resources/templates/common/commonItemsHSTTrainingModule.html index c0b0515..0581cca 100644 --- a/src/main/resources/templates/common/commonItemsHSTTrainingModule.html +++ b/src/main/resources/templates/common/commonItemsHSTTrainingModule.html @@ -136,6 +136,82 @@

Mentor Content:

+ + +
+
+

Mentor Content

+
+ +
+ + + +
+ +
+ +
+
+ + + +
+ +
+ +
+
+
+ +
+
+ + +
+ +
+ + + +
+ + +  + + + + + +
+
\ No newline at end of file diff --git a/src/main/resources/templates/hstTrainingModuleList.html b/src/main/resources/templates/hstTrainingModuleList.html new file mode 100644 index 0000000..2e57fc9 --- /dev/null +++ b/src/main/resources/templates/hstTrainingModuleList.html @@ -0,0 +1,277 @@ + + + + + + +
+ +
+
+
+
+ + + + +

No Content found for query:

+
Week:
+ +
Language:
+

+ + + +
+ + + + + +
+ + + + + + + \ No newline at end of file From ab0621e237e08cd62c62653347db6f8da1b180a0 Mon Sep 17 00:00:00 2001 From: Alok Kumar <59380269+AlokSP@users.noreply.github.com> Date: Thu, 2 Jul 2026 21:50:50 +0530 Subject: [PATCH 3/7] Mentor Content Tutorials on cards, thumbnail card body design and play button --- .../templates/hstTrainingModuleList.html | 344 +++++++++++++++--- 1 file changed, 295 insertions(+), 49 deletions(-) diff --git a/src/main/resources/templates/hstTrainingModuleList.html b/src/main/resources/templates/hstTrainingModuleList.html index 2e57fc9..0a37c51 100644 --- a/src/main/resources/templates/hstTrainingModuleList.html +++ b/src/main/resources/templates/hstTrainingModuleList.html @@ -1,9 +1,12 @@ + +
-
-
-
- -
-
+
- +
- + + + +
+ +
+ +

No Content found for query:


Week:
Language:
@@ -99,6 +112,11 @@
Language: 0}" aria-label="Page navigation example" class="navbar fixed-bottom navbar-brand" style="left: auto; right: 5px">
    @@ -116,6 +134,234 @@
    Language:
- - - - - Package Download End - - - - -
-
- - -
- -
-

Mentor Content:

-
- -
- -
- -
-
- -
- -
- -
-
- -
- - - Package Download Start + +
+
+ + + + + + + + + + + +
+
+ +
+ + + + + + + + + + + + +
+ + Package Download End + + + + +
+
+ + +
+ +
+

Mentor Content:

+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ + + - -
-
- - -
-
-

Mentor Content

-
- -
- - - -
- - -
- - - -
- - -
-
- -
-
- - -
- -
- - - -
- - -  - - - - - -
-
- - + +
+
+ + +
+
+

Mentor Content

+
+ +
+ + + +
+ + +
+ + + +
+ + +
+
+ +
+
+ + +
+ +
+ + + +
+ + +   + + + + + +
+
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/common/trail.html b/src/main/resources/templates/common/trail.html index f8bad6f..37f3f05 100644 --- a/src/main/resources/templates/common/trail.html +++ b/src/main/resources/templates/common/trail.html @@ -95,6 +95,7 @@ + diff --git a/src/main/resources/templates/hstTrainingModuleList.html b/src/main/resources/templates/hstTrainingModuleList.html index 49ed8c4..1dab818 100644 --- a/src/main/resources/templates/hstTrainingModuleList.html +++ b/src/main/resources/templates/hstTrainingModuleList.html @@ -6,6 +6,7 @@ +