Merged in [19135] from jennifer@painless-security.com:

Improve visibility of other sessions for group of selected session in schedule editor. Fixes #3219.
 - Legacy-Id: 19144
Note: SVN reference [19135] has been migrated to Git commit 45916f2c3c
This commit is contained in:
Robert Sparks 2021-06-23 14:33:16 +00:00
commit cfbd63deca
4 changed files with 20 additions and 2 deletions

View file

@ -108,8 +108,15 @@ class EditMeetingScheduleTests(IetfSeleniumTestCase):
# select - show session info
s2_element = self.driver.find_element_by_css_selector('#session{}'.format(s2.pk))
s2b_element = self.driver.find_element_by_css_selector('#session{}'.format(s2b.pk))
self.assertNotIn('other-session-selected', s2b_element.get_attribute('class'))
s2_element.click()
# other session for group should be flagged for highlighting
s2b_element = self.driver.find_element_by_css_selector('#session{}'.format(s2b.pk))
self.assertIn('other-session-selected', s2b_element.get_attribute('class'))
# other session for group should appear in the info panel
session_info_container = self.driver.find_element_by_css_selector('.session-info-container')
self.assertIn(s2.group.acronym, session_info_container.find_element_by_css_selector(".title").text)
self.assertEqual(session_info_container.find_element_by_css_selector(".other-session .time").text, "not yet scheduled")
@ -118,6 +125,7 @@ class EditMeetingScheduleTests(IetfSeleniumTestCase):
self.driver.find_element_by_css_selector('.scheduling-panel').click()
self.assertEqual(session_info_container.find_elements_by_css_selector(".title"), [])
self.assertNotIn('other-session-selected', s2b_element.get_attribute('class'))
# unschedule

View file

@ -1168,6 +1168,11 @@ a.fc-event, .fc-event, .fc-content, .fc-title, .fc-event-container {
.edit-meeting-schedule .session.selected {
cursor: grabbing;
outline: #0000ff solid 0.2em; /* blue, width matches margin on .session */
}
.edit-meeting-schedule .session.other-session-selected {
outline: #00008b solid 0.2em; /* darkblue, width matches margin on .session */
}
.edit-meeting-schedule .read-only .session.selected {
@ -1190,6 +1195,7 @@ a.fc-event, .fc-event, .fc-content, .fc-title, .fc-event-container {
}
.edit-meeting-schedule .session.highlight {
outline-color: #ff8c00; /* darkorange */
background-color: #f3f3f3;
}
@ -1431,7 +1437,6 @@ a.fc-event, .fc-event, .fc-content, .fc-title, .fc-event-container {
height: 19px;
top: 0px;
font-size: 13px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;

View file

@ -40,6 +40,7 @@ jQuery(document).ready(function () {
// selecting
function selectSessionElement(element) {
sessions.removeClass("other-session-selected");
if (element) {
sessions.not(element).removeClass("selected");
jQuery(element).addClass("selected");
@ -54,8 +55,11 @@ jQuery(document).ready(function () {
sessionInfoContainer.find(".time").text(jQuery(element).closest(".timeslot").data('scheduledatlabel'));
sessionInfoContainer.find(".other-session").each(function () {
let scheduledAt = sessions.filter("#session" + this.dataset.othersessionid).closest(".timeslot").data('scheduledatlabel');
let otherSessionElement = sessions.filter("#session" + this.dataset.othersessionid).first();
let scheduledAt = otherSessionElement.closest(".timeslot").data('scheduledatlabel');
let timeElement = jQuery(this).find(".time");
otherSessionElement.addClass("other-session-selected");
if (scheduledAt)
timeElement.text(timeElement.data("scheduled").replace("{time}", scheduledAt));
else

View file

@ -10,6 +10,7 @@
.parent-{{ parent.acronym }} { background-image: linear-gradient(to right, {{ parent.scheduling_color }} 0.4em, transparent 0.5em); }
.parent-{{ parent.acronym }}.hidden-parent { filter: blur(3px); }{# blur masks contents but keeps the parent color visible #}
.parent-{{ parent.acronym }}.selected { background-color: {{ parent.light_scheduling_color }}; }
.parent-{{ parent.acronym }}.other-session-selected { background-color: {{ parent.light_scheduling_color }}; }
{% endfor %}
{% endblock morecss %}