Index: lams_common/src/java/org/lamsfoundation/lams/util/WebUtil.java =================================================================== diff -u -r53b1f5c6dcfb9e0d74e56c9647da69f07b889a55 -rd7075108a6a77341ebefaa6dfdb8ce46f9d87c4a --- lams_common/src/java/org/lamsfoundation/lams/util/WebUtil.java (.../WebUtil.java) (revision 53b1f5c6dcfb9e0d74e56c9647da69f07b889a55) +++ lams_common/src/java/org/lamsfoundation/lams/util/WebUtil.java (.../WebUtil.java) (revision d7075108a6a77341ebefaa6dfdb8ce46f9d87c4a) @@ -465,6 +465,7 @@ userJSON.put("firstName", user.getFirstName()); userJSON.put("lastName", user.getLastName()); userJSON.put("login", user.getLogin()); + userJSON.put("email", user.getEmail()); userJSON.put("portraitId", user.getPortraitUuid() == null ? null : user.getPortraitUuid().toString()); return userJSON; } Index: lams_monitoring/web/css/components-monitoring.css =================================================================== diff -u -r432fd5e118d63c8dab4bce32210b55f752cf0776 -rd7075108a6a77341ebefaa6dfdb8ce46f9d87c4a --- lams_monitoring/web/css/components-monitoring.css (.../components-monitoring.css) (revision 432fd5e118d63c8dab4bce32210b55f752cf0776) +++ lams_monitoring/web/css/components-monitoring.css (.../components-monitoring.css) (revision d7075108a6a77341ebefaa6dfdb8ce46f9d87c4a) @@ -977,112 +977,112 @@ cursor: pointer; } -#canvas-container .portrait-sm { +.monitoring-page-wrapper .portrait-sm { width: 35px; height: 35px; display: inline-block; background-repeat: no-repeat; background-size: cover; } -#canvas-container .portrait-md { +.monitoring-page-wrapper .portrait-md { width: 80px; height: 80px; display: inline-block; background-repeat: no-repeat; background-size: cover; } -#canvas-container .portrait-lg { +.monitoring-page-wrapper .portrait-lg { width: 200px; height: 200px; display: inline-block; background-repeat: no-repeat; background-size: cover; } -#canvas-container .portrait-xl { +.monitoring-page-wrapper .portrait-xl { width: 400px; height: 400px; display: inline-block; background-repeat: no-repeat; background-size: cover; } -#canvas-container .portrait-container-sm { +.monitoring-page-wrapper .portrait-container-sm { height: 38px; margin-top: 3px; } -#canvas-container .leader-display { +.monitoring-page-wrapper .leader-display { margin: 0px; } -#canvas-container .leader-display h4 { +.monitoring-page-wrapper .leader-display h4 { margin-bottom: 0px; } -#canvas-container .popover-link { +.monitoring-page-wrapper .popover-link { color: #337ab7 !important; } -#canvas-container .popover-link:hover { +.monitoring-page-wrapper .popover-link:hover { color: #0E9AEF !important; } -#canvas-container .popover-link:focus { +.monitoring-page-wrapper .popover-link:focus { color: #0E9AEF !important; } -#canvas-container .popover-title { +.monitoring-page-wrapper .popover-title { background-color: #dddddd; } -#canvas-container .popover-content-with-portrait { +.monitoring-page-wrapper .popover-content-with-portrait { min-height: 220px; min-width: 220px; } -.portrait-color-0 { +.monitoring-page-wrapper .portrait-color-0 { color: #001f3f; } -.portrait-color-1 { +.monitoring-page-wrapper .portrait-color-1 { color: #FF851B; } -.portrait-color-2 { +.monitoring-page-wrapper .portrait-color-2 { color: #85144b; } -.portrait-color-3 { +.monitoring-page-wrapper .portrait-color-3 { color: #111111; } -.portrait-color-4 { +.monitoring-page-wrapper .portrait-color-4 { color: #3D9970; } -.portrait-color-5 { +.monitoring-page-wrapper .portrait-color-5 { color: #0074D9; } -.portrait-color-6 { +.monitoring-page-wrapper .portrait-color-6 { color: #FF4136; } -.portrait-sm-lineheight { +.monitoring-page-wrapper .portrait-sm-lineheight { line-height: 32px; vertical-align: top; } -.portrait-generic-sm { +.monitoring-page-wrapper .portrait-generic-sm { display: inline-block; height: 35px; vertical-align: middle; } -.portrait-generic-sm:before { +.monitoring-page-wrapper .portrait-generic-sm:before { content: "\f2be"; font-family: FontAwesome; font-style: normal; @@ -1091,13 +1091,13 @@ line-height: 35px; } -.portrait-generic-md { +.monitoring-page-wrapper .portrait-generic-md { display: inline-block; height: 80px; vertical-align: middle; } -.portrait-generic-md:before { +.monitoring-page-wrapper .portrait-generic-md:before { content: "\f2be"; font-family: FontAwesome; font-style: normal; @@ -1106,13 +1106,13 @@ line-height: 65px; } -.portrait-generic-lg { +.monitoring-page-wrapper .portrait-generic-lg { display: inline-block; height: 200px; vertical-align: middle; } -.portrait-generic-lg:before { +.monitoring-page-wrapper .portrait-generic-lg:before { content: "\f2be"; font-family: FontAwesome; font-style: normal; @@ -1121,25 +1121,48 @@ line-height: 200px; } +.monitoring-page-wrapper .portrait-round { + border-radius: 50%; +} .learners-accordion-item-template { display: none; } -#learners-accordion .accordion-body { - background-color: #F6F5FA; -} - #learners-accordion .no-progress { display: none; + text-align: center; + position: relative; + top: 33%; } -#learners-accordion .vertical-timeline { + +#learners-accordion .learners-accordion-login, +#learners-accordion .learners-accordion-email { + color: #BEC4D1; +} + +#learners-accordion .learners-accordion-login .fa-user, +#learners-accordion .learners-accordion-email .fa-envelope { + margin-right: 10px; +} + +#learners-accordion .learners-accordion-portrait > div { + border-radius: 10px; +} + +#learners-accordion .vertical-timeline-container { display: none; + background-color: #F6F5FA; + padding-top: 5px; + border-radius: 10px; +} + +#learners-accordion .vertical-timeline { transform: translateX(-25%); } -#learners-accordion .vertical-timeline:before { +#learnersc-accordion .vertical-timeline:before { bottom: 30px; -} \ No newline at end of file +} Index: lams_monitoring/web/includes/javascript/monitorLesson5.js =================================================================== diff -u -r432fd5e118d63c8dab4bce32210b55f752cf0776 -rd7075108a6a77341ebefaa6dfdb8ce46f9d87c4a --- lams_monitoring/web/includes/javascript/monitorLesson5.js (.../monitorLesson5.js) (revision 432fd5e118d63c8dab4bce32210b55f752cf0776) +++ lams_monitoring/web/includes/javascript/monitorLesson5.js (.../monitorLesson5.js) (revision d7075108a6a77341ebefaa6dfdb8ce46f9d87c4a) @@ -2258,15 +2258,24 @@ itemHeaderId = 'learners-accordion-heading-' + learner.id, itemCollapseId = 'learners-accordion-collapse-' + learner.id, item = itemTemplate.clone().data('user-id', learner.id).appendTo(learnersAccordion), - portrait = learner.portraitId ? null : $(definePortrait(learner.portraitId, learner.id, STYLE_SMALL, true, LAMS_URL)).addClass('me-2'); + portraitSmall = $(definePortrait(learner.portraitId, learner.id, STYLE_SMALL, true, LAMS_URL)).addClass('me-2'), + portraitLarge = learner.portraitId ? $(definePortrait(learner.portraitId, learner.id, STYLE_LARGE, false, LAMS_URL)) : null; $('.accordion-header', item).attr('id', itemHeaderId) .find('.accordion-button').attr('data-bs-target', '#' + itemCollapseId).attr('aria-controls', itemCollapseId) .html('' + learner.firstName + ' ' + learner.lastName + '') - .prepend(portrait == null ? '' : portrait); + .prepend(portraitSmall); + $('.learners-accordion-name', item).text(learner.firstName + ' ' + learner.lastName); + $('.learners-accordion-login', item).html('' + learner.login); + $('.learners-accordion-email', item).html('' + learner.email); + if (portraitLarge) { + $('.learners-accordion-portrait', item).append(portraitLarge); + } + $('.accordion-collapse', item).attr('id', itemCollapseId).attr('data-bs-parent', '#learners-accordion') .on('show.bs.collapse', function () { let learnerId = $(this).closest('.accordion-item').data('user-id'), - timeline = $('.vertical-timeline', this).empty(), + timelineContainer = $('.vertical-timeline-container', this), + timeline = $('.vertical-timeline', timelineContainer).empty(), noProgressLabel = $('.no-progress', this); $.ajax({ @@ -2279,7 +2288,6 @@ 'success' : function(response) { if (!response) { noProgressLabel.show(); - timeline.hide(); return; } noProgressLabel.hide(); @@ -2291,7 +2299,7 @@ icon = $('
').addClass('timeline-icon').appendTo(innerEntry), content = $('
').addClass('timeline-label').appendTo(innerEntry), title = $('

').addClass('timeline-title').text(activity.name).appendTo(content); - + switch(activity.status){ case 0: icon.addClass('bg-primary');break; case 1: icon.addClass('bg-success');break; @@ -2313,7 +2321,7 @@ } }); - timeline.show(); + timelineContainer.show(); } }); }); @@ -2361,6 +2369,26 @@ } } + +var popupWidth = 1280, + popupHeight = 720; + +// launches a popup from the page +function launchPopup(url,title) { + var wd = null; + if(wd && wd.open && !wd.closed){ + wd.close(); + } + + var left = ((screen.width / 2) - (popupWidth / 2)); + var top = ((screen.height / 2) - (popupHeight / 2)); + + wd = window.open(url,title,'resizable,width='+popupWidth+',height='+popupHeight + +',scrollbars' + + ",top=" + top + ",left=" + left); + wd.window.focus(); +} + /* gradebook dialog windows on the ipad do not update the grid width properly using setGridWidth. Calling this is -- setting the grid to parentWidth-1 and the width of the parent to parentWidth+1, leading to growing width window -- that overflows the dialog window. Keep the main grids slightly smaller than their containers and all is well. Index: lams_monitoring/web/monitor-learners-tab.jsp =================================================================== diff -u -r7ecadc30076e09aa7a50a2c495344c56622f5105 -rd7075108a6a77341ebefaa6dfdb8ce46f9d87c4a --- lams_monitoring/web/monitor-learners-tab.jsp (.../monitor-learners-tab.jsp) (revision 7ecadc30076e09aa7a50a2c495344c56622f5105) +++ lams_monitoring/web/monitor-learners-tab.jsp (.../monitor-learners-tab.jsp) (revision d7075108a6a77341ebefaa6dfdb8ce46f9d87c4a) @@ -11,9 +11,26 @@

-
-
No progress yet
-
+
+
+
+
+
+

+ +

+
+
+ +
+
+
+
+
No progress yet
+
+
+
+