Index: lams_central/web/css/components.css =================================================================== diff -u -r0a61360ea0ff74fb89766166cae19bdd18403694 -r72bf0041a18e7e902404c65e55e167bf6ff84269 --- lams_central/web/css/components.css (.../components.css) (revision 0a61360ea0ff74fb89766166cae19bdd18403694) +++ lams_central/web/css/components.css (.../components.css) (revision 72bf0041a18e7e902404c65e55e167bf6ff84269) @@ -1,7 +1,7 @@ /* For Boostrap 3 & 5 compability */ .img-responsive { - max-width: 100%; - height: auto; + max-width: 100%; + height: auto; } body.component { @@ -11,7 +11,7 @@ body.component .btn-success, body.component .btn-success:hover { - color: #fff; + color: #fff; } body.component .form-select-sm, @@ -54,27 +54,27 @@ } body.component .dialogContainer { - display: none; - -webkit-overflow-scrolling: touch !important; - overflow: auto; + display: none; + -webkit-overflow-scrolling: touch !important; + overflow: auto; } body.component .dialogContainer iframe { - width: 100%; - height: calc(100% - 10px); - border: none; + width: 100%; + height: calc(100% - 10px); + border: none; } body.component .dialogContainer .dialogTitle { text-align: center; - font-weight: 500; + font-weight: 500; } body.component .dialogContainer .modal-body { - height: 100%; - max-height: calc(100% - 56px); - padding: 10px; - overflow: auto; + height: 100%; + max-height: calc(100% - 56px); + padding: 10px; + overflow: auto; } body.component .dialogContainer .bottom-buttons { @@ -222,47 +222,47 @@ } body.component .portrait-round { - border-radius: 50%; + border-radius: 50%; } body.component .cke_textarea_inline { - /* From bootstrap form-control */ - display: block; - width: 100%; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: var(--bs-white); - background-image: none; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; - -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - border: thin solid var(--bs-secondary); - overflow: hidden; - /* keeps floating objects within ckeditor area */ - /* LAMS - min height is set in ckconfig_custom.js but keep the default here too so that most fields - * are the right size and only the ones where the height is overridden does the size change. */ - min-height: 60px; - -webkit-appearance: textfield; + /* From bootstrap form-control */ + display: block; + width: 100%; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: var(--bs-white); + background-image: none; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; + -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + border: thin solid var(--bs-secondary); + overflow: hidden; + /* keeps floating objects within ckeditor area */ + /* LAMS - min height is set in ckconfig_custom.js but keep the default here too so that most fields + * are the right size and only the ones where the height is overridden does the size change. */ + min-height: 60px; + -webkit-appearance: textfield; } body.component .cke_textarea_inline:focus { - border-color: var(--bs-blue); - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + border-color: var(--bs-blue); + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); } body.component .cke_float { - width: 70% !important; + width: 70% !important; } /** Overwrite CKEditor's default CSS, so that content in an editor is displayed the same way as in real life */ body.component .cke_widget_inline { - display: block !important; + display: block !important; } body.component .btn { @@ -429,6 +429,25 @@ overflow: hidden; } +.component-page-wrapper #lesson-name { + font-size: 2rem; + margin-left: 1.8rem; +} + +.component-page-wrapper #sidebar-opener-button { + font-size: 2rem; + margin-top: .3rem; + color: var(--bs-blue); + cursor: pointer; +} + +.component-page-wrapper .component-page-content { + min-height: 100%; + padding: 1rem 4rem 2rem 8rem; + transition: all .3s ease; + vertical-align: top; +} + .component-page-wrapper .component-sidebar { position: absolute; height: initial; @@ -443,15 +462,15 @@ transition: all .3s ease; transform: translateX(-7rem); z-index: 1; - + } .component-page-wrapper .component-sidebar.active { transform: translateX(0); } .component-page-wrapper .component-sidebar .lams-logo { - width: 3.6rem; + width: 3.6rem; margin-bottom: 1.2rem; } @@ -499,7 +518,7 @@ } /* Unused or used in assessment rewritten authoring */ -/* +/* .content-left { -ms-flex: 0 0 26.5rem; @@ -636,11 +655,6 @@ content: "\f054"; } -.component-page-content { - width: 100%; - min-height: 100%; - padding: 1.5rem 4.8rem; -} .banner-box-col { box-shadow: 0px 20px 20px #2E384D1A; Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LearnerController.java =================================================================== diff -u -r3d9c6d823f8b59f95278f92c1c88038b21511f80 -r72bf0041a18e7e902404c65e55e167bf6ff84269 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LearnerController.java (.../LearnerController.java) (revision 3d9c6d823f8b59f95278f92c1c88038b21511f80) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LearnerController.java (.../LearnerController.java) (revision 72bf0041a18e7e902404c65e55e167bf6ff84269) @@ -148,9 +148,8 @@ public LearnerController() { FluxRegistry.initFluxMap(LEARNER_TIMELINE_FLUX_NAME, CommonConstants.ACTIVITY_ENTERED_SINK_NAME, - (LearnerActivityCompleteFluxItem item, - LearnerActivityCompleteFluxItem key) -> item.getLessonId() == key.getLessonId() - && item.getUserId() == key.getUserId(), + (LearnerActivityCompleteFluxItem item, LearnerActivityCompleteFluxItem key) -> + item.getLessonId() == key.getLessonId() && item.getUserId() == key.getUserId(), (LearnerActivityCompleteFluxItem item) -> { ObjectNode responseJSON = null; try { @@ -184,18 +183,16 @@ *
* * @param mapping - * An ActionMapping class that will be used by the Action class to tell the ActionServlet where to send - * the end-user. - * + * An ActionMapping class that will be used by the Action class to tell the ActionServlet where to send the + * end-user. * @param form - * The ActionForm class that will contain any data submitted by the end-user via a form. + * The ActionForm class that will contain any data submitted by the end-user via a form. * @param request - * A standard Servlet HttpServletRequest class. + * A standard Servlet HttpServletRequest class. * @param response - * A standard Servlet HttpServletResponse class. + * A standard Servlet HttpServletResponse class. * @return An ActionForward class that will be returned to the ActionServlet indicating where the user is to go - * next. - * + * next. * @throws IOException * @throws ServletException */ @@ -328,7 +325,8 @@ response.setStatus(HttpServletResponse.SC_NO_CONTENT); return null; } - + Lesson lesson = lessonService.getLesson(lessonId); + responseJSON.put("lessonName", lesson.getLessonName()); responseJSON.set("messages", getProgressBarMessages()); response.setContentType("application/json;charset=utf-8"); @@ -490,8 +488,9 @@ if (activity.getChildActivities() != null) { for (ActivityURL childActivity : activity.getChildActivities()) { - activityJSON.withArray("childActivities").add( - activityProgressToJSON(childActivity, currentActivityId, lessonId, learnerId, monitorMode)); + activityJSON.withArray("childActivities") + .add(activityProgressToJSON(childActivity, currentActivityId, lessonId, learnerId, + monitorMode)); } } Index: lams_learning/web/includes/javascript/learnerPage.js =================================================================== diff -u --- lams_learning/web/includes/javascript/learnerPage.js (revision 0) +++ lams_learning/web/includes/javascript/learnerPage.js (revision 72bf0041a18e7e902404c65e55e167bf6ff84269) @@ -0,0 +1,16 @@ + +// refresh progress bar on first/next activity load +function initLearnerPage(toolSessionId, userId) { + $.ajax({ + url : LAMS_URL + 'learning/learner/getLearnerProgress.do', + data : { + 'toolSessionID' : toolSessionId, + 'userID' : userId + }, + cache : false, + dataType : 'json', + success : function(result){ + $('#lesson-name').text(result.lessonName); + } + }); +} \ No newline at end of file Index: lams_monitoring/web/css/components-monitoring.css =================================================================== diff -u -r4fedcb4cf4ff6424821847b4280f18fa25a17f22 -r72bf0041a18e7e902404c65e55e167bf6ff84269 --- lams_monitoring/web/css/components-monitoring.css (.../components-monitoring.css) (revision 4fedcb4cf4ff6424821847b4280f18fa25a17f22) +++ lams_monitoring/web/css/components-monitoring.css (.../components-monitoring.css) (revision 72bf0041a18e7e902404c65e55e167bf6ff84269) @@ -11,7 +11,7 @@ height: 3rem; border-color: var(--bs-gray-300); border-bottom-width: 2px; - cursor: pointer; + cursor: pointer; } body.component .dialogContainer .dialogListItem:hover { @@ -36,7 +36,7 @@ } body.component .dialogContainer .dialogListItem.dialogListItemSelected { - background-color: rgba(0, 145, 74, 0.1) !important; + background-color: rgba(0, 145, 74, 0.1) !important; } body.component .dialogContainer #classMonitorSearchRow { @@ -52,38 +52,26 @@ cursor: pointer; } -.monitoring-page-content { - min-height: 100%; - padding: 1rem 4rem 2rem 8rem; - transition: all .3s ease; - vertical-align: top; -} - -.monitoring-page-wrapper #lesson-name { - font-size: 2rem; - margin-left: 1.8rem; -} - .monitoring-page-wrapper #sequenceSearchPhraseContainer { width: 20rem; margin-left: 1rem; } .monitoring-page-wrapper #sequenceSearchPhrase { width: 15rem; -} +} .monitoring-page-wrapper #sequenceSearchPhraseButton { border: none; height: 3rem; -} +} .monitoring-page-wrapper #sequenceSearchPhraseClearIcon { display: none; } .monitoring-page-wrapper .component-sidebar.active.expanded { - width: 25rem; + width: 25rem; } .monitoring-page-wrapper .component-sidebar.active.expanded ~ .monitoring-page-content.active { @@ -161,7 +149,7 @@ } .monitoring-page-wrapper #sequence-tab-content { - text-align: center; + text-align: center; } .monitoring-page-wrapper #sequence-tab-content .countdown-timeout { @@ -203,7 +191,7 @@ } .monitoring-page-wrapper #sequence-tab-content #required-tasks .dropdown-menu { - padding: 0; + padding: 0; } .monitoring-page-wrapper #sequence-tab-content #required-tasks .dropdown-item { @@ -238,7 +226,7 @@ .monitoring-page-wrapper #sequence-tab-content #canvas-container.svg-learner-draggable-area.force-completing, .monitoring-page-wrapper #sequence-tab-content #canvas-container.svg-learner-draggable-area.force-completing div#sequenceCanvas svg.svg-learning-design, .monitoring-page-wrapper #sequence-tab-content #canvas-container.svg-learner-draggable-area.force-completing div#sequenceCanvas svg.svg-learning-design * { - cursor: wait !important; + cursor: wait !important; } .monitoring-page-wrapper #sequence-tab-content #canvas-container div#sequenceCanvas div.learner-icon-container { @@ -263,12 +251,12 @@ } .monitoring-page-wrapper #sequence-tab-content #canvas-container div#sequenceCanvas div.portrait-generic-sm.learner-icon.learner-searched - { +{ border: none; } .monitoring-page-wrapper #sequence-tab-content #canvas-container div#sequenceCanvas div.portrait-generic-sm.learner-icon.learner-searched::before - { +{ border: red 3px solid; border-radius: 25px; } @@ -345,7 +333,7 @@ } .monitoring-page-wrapper #learners-accordion .no-progress { - display: none; + display: none; text-align: center; position: relative; top: 33%; Index: lams_monitoring/web/monitor.jsp =================================================================== diff -u -re0ca5962f24c57a3a693dc5046f8489ab23f5776 -r72bf0041a18e7e902404c65e55e167bf6ff84269 --- lams_monitoring/web/monitor.jsp (.../monitor.jsp) (revision e0ca5962f24c57a3a693dc5046f8489ab23f5776) +++ lams_monitoring/web/monitor.jsp (.../monitor.jsp) (revision 72bf0041a18e7e902404c65e55e167bf6ff84269) @@ -10,943 +10,934 @@