From 56e1d320d86493d342a3ab8da49e7a9825e0745a Mon Sep 17 00:00:00 2001 From: benpankow Date: Sat, 9 Sep 2017 18:09:17 -0500 Subject: [PATCH 1/3] Add group contact info to meeting time panel --- sass/panels/meeting-times.scss | 8 ++ src/panels/meeting-times.js | 138 +++++++++++++++++++++++++-------- 2 files changed, 113 insertions(+), 33 deletions(-) diff --git a/sass/panels/meeting-times.scss b/sass/panels/meeting-times.scss index 9010140..1ee314d 100644 --- a/sass/panels/meeting-times.scss +++ b/sass/panels/meeting-times.scss @@ -16,6 +16,14 @@ td, th { width: calc(100% / 3); } +td.small { + font-size: .8em; +} + +td.xsmall { + font-size: .75em; +} + .dot-container { text-align: center; diff --git a/src/panels/meeting-times.js b/src/panels/meeting-times.js index f6a51ed..48b12f7 100644 --- a/src/panels/meeting-times.js +++ b/src/panels/meeting-times.js @@ -20,6 +20,7 @@ var MeetingTimesPanel = React.createClass({ return { index: 0, groups: [], + displayingMeetings: true, error: null }; }, @@ -49,19 +50,24 @@ var MeetingTimesPanel = React.createClass({ }, nextPage: function() { - var newIndex = this.state.index + ROWS_PER_PAGE; - newIndex = newIndex >= this.state.groups.length ? 0 : newIndex; - this.setState({index: newIndex}); + var newIndex = this.state.index; + var displayingMeetings = !this.state.displayingMeetings; + if (displayingMeetings) { + newIndex = newIndex + ROWS_PER_PAGE; + newIndex = newIndex >= this.state.groups.length ? 0 : newIndex; + } + this.setState({index: newIndex, displayingMeetings: displayingMeetings}); }, componentDidMount: function() { this.updateMeetingTimes(); setInterval(this.updateMeetingTimes, REFRESH_TIMES_MS); - setInterval(this.nextPage, SWITCH_PAGE_MS); + setInterval(this.nextPage, SWITCH_PAGE_MS / 10); }, render: function() { var index = this.state.index; + var displayingMeetings = this.state.displayingMeetings; var error = this.state.error; var body = null; if(error){ @@ -72,45 +78,111 @@ var MeetingTimesPanel = React.createClass({ else { var pageTimes = this.state.groups.slice(index, index + ROWS_PER_PAGE); var items = pageTimes.map(function(meeting) { - var location = meeting.meetingLoc ? meeting.meetingLoc : 'TBA'; - var meeting_time = moment(meeting.meetingTime, 'h:mm A', true); - meeting_time = meeting_time.isValid() ? time.formatTime(meeting_time, true) : undefined; - var meeting_date = time.formatMeetingDate(meeting.meetingDay) || meeting.meetingDay; - var fulltime = (meeting_date && meeting_time) ? - (meeting_date + ', ' + meeting_time) : 'TBA'; - return - {meeting.name} - {location} - {fulltime} - ; + if (displayingMeetings) { + var location = meeting.meetingLoc ? meeting.meetingLoc : 'TBA'; + var meeting_time = moment(meeting.meetingTime, 'h:mm A', true); + meeting_time = meeting_time.isValid() ? time.formatTime(meeting_time, true) : undefined; + var meeting_date = time.formatMeetingDate(meeting.meetingDay) || meeting.meetingDay; + + var fulltime = (meeting_date && meeting_time) ? + (meeting_date + ', ' + meeting_time) : 'TBA'; + return + {meeting.name} + {location} + {fulltime} + ; + } + else { + var location = meeting.meetingLoc ? meeting.meetingLoc : 'TBA'; + var meeting_time = moment(meeting.meetingTime, 'h:mm A', true); + meeting_time = meeting_time.isValid() ? time.formatTime(meeting_time, true) : undefined; + var meeting_date = time.formatMeetingDate(meeting.meetingDay) || meeting.meetingDay; + + var chairs = meeting.chairs.replace(' and ', ',').split(','); + var chair_name = 'N/A'; + if (chairs.length > 0) { + var name_split = $.trim(chairs[0]); + chair_name = name_split; + } + + var chair_contacts = meeting.chairContact.split(','); + var display_contact = 'N/A'; + if (chairs.length > 0) { + display_contact = chair_contacts[0]; + } + + var name_class = ''; + if (chair_name.length > 17) { + name_class = 'xsmall'; + } + else if (chair_name.length > 14) { + name_class = 'small'; + } + + var fulltime = (meeting_date && meeting_time) ? + (meeting_date + ', ' + meeting_time) : 'TBA'; + return + {meeting.name} + {chair_name} + {display_contact} + ; + } + }); var dots = []; for (var i = 0; i < this.state.groups.length; i += ROWS_PER_PAGE) { var dotClass = classNames({ dot: true, - active: i == index + active: displayingMeetings && i == index }); dots.push(); + + var dotClass2 = classNames({ + dot: true, + active: !displayingMeetings && i == index + }); + dots.push(); } - body =
- - - - - - - - - - {items} - -
NameLocationTime
-
- {dots} -
-
; + if (displayingMeetings) { + body =
+ + + + + + + + + + {items} + +
NameLocationTime
+
+ {dots} +
+
; + } + else { + body =
+ + + + + + + + + + {items} + +
NameChairContact
+
+ {dots} +
+
; + } } return
From b411a1a79f5e160f67a9448b3b2c95d808338397 Mon Sep 17 00:00:00 2001 From: benpankow Date: Sat, 9 Sep 2017 18:11:02 -0500 Subject: [PATCH 2/3] Fix debug timing --- src/panels/meeting-times.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/meeting-times.js b/src/panels/meeting-times.js index 48b12f7..788a8d5 100644 --- a/src/panels/meeting-times.js +++ b/src/panels/meeting-times.js @@ -62,7 +62,7 @@ var MeetingTimesPanel = React.createClass({ componentDidMount: function() { this.updateMeetingTimes(); setInterval(this.updateMeetingTimes, REFRESH_TIMES_MS); - setInterval(this.nextPage, SWITCH_PAGE_MS / 10); + setInterval(this.nextPage, SWITCH_PAGE_MS); }, render: function() { From 6b3078ac63378c93e72d5c1f5e69d79dcaaf484a Mon Sep 17 00:00:00 2001 From: benpankow Date: Mon, 11 Sep 2017 10:59:38 -0500 Subject: [PATCH 3/3] Remove location/time calculation for chair table --- src/panels/meeting-times.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/panels/meeting-times.js b/src/panels/meeting-times.js index 788a8d5..2e866a8 100644 --- a/src/panels/meeting-times.js +++ b/src/panels/meeting-times.js @@ -93,11 +93,6 @@ var MeetingTimesPanel = React.createClass({ ; } else { - var location = meeting.meetingLoc ? meeting.meetingLoc : 'TBA'; - var meeting_time = moment(meeting.meetingTime, 'h:mm A', true); - meeting_time = meeting_time.isValid() ? time.formatTime(meeting_time, true) : undefined; - var meeting_date = time.formatMeetingDate(meeting.meetingDay) || meeting.meetingDay; - var chairs = meeting.chairs.replace(' and ', ',').split(','); var chair_name = 'N/A'; if (chairs.length > 0) {