VRFS-1828 VRFS-1829 add date/time info to Find Session screen, fix RSVP dialog issues

This commit is contained in:
Brian Smith 2014-07-01 00:36:06 -04:00
parent b033b84425
commit 0ece384569
9 changed files with 124 additions and 106 deletions

View File

@ -442,6 +442,10 @@ module JamRuby
end
end
def scheduled_end_time
end
def timezone_description
self.get_timezone.to_s
end

View File

@ -20,9 +20,13 @@
.done(function(response) {
if (response) {
$('.session-name', $screen).html(response.name);
$('.scheduled-start', $screen).html(response.scheduled_start);
if (response.recurring_mode !== null) {
var timestamp = new Date(response.scheduled_start).toDateString() + ', ' +
context.JK.formatUtcTime(new Date(response.scheduled_start), false);
$('.scheduled-start', $screen).html(timestamp);
if (response.recurring_mode !== null && response.recurring_mode === 'weekly') {
$('.schedule-recurrence', $screen).html("Recurs " + response.recurring_mode + " on this day at this time");
}
}

View File

@ -98,7 +98,8 @@
context._.each(sessionList, function (session) {
session.scheduled_start = new Date(session.scheduled_start).toDateString() + ', ' +
getFormattedTime(new Date(session.scheduled_start), false);
context.JK.formatUtcTime(new Date(session.scheduled_start), false);
var options = {
id: session.id,
name: session.name,
@ -311,7 +312,7 @@
var moveToFinish = function() {
app.layout.closeDialog('confirm');
createSessionSettings.startDate = new Date(session.scheduled_start).toDateString();
createSessionSettings.startTime = getFormattedTime(new Date(session.scheduled_start), false);
createSessionSettings.startTime = context.JK.formatUtcTime(new Date(session.scheduled_start), false);
createSessionSettings.genresValues = session.genres;
createSessionSettings.genres = [session.genre_id];
createSessionSettings.timezone.label = session.timezone_description;
@ -547,7 +548,7 @@
data.legal_terms = true;
data.language = createSessionSettings.language.value;
if (createSessionSettings.createType == 'quick-start' || createSessionSettings.createType == 'immediately') {
data.start = new Date().toDateString() + ' ' + getFormattedTime(new Date(), false);
data.start = new Date().toDateString() + ' ' + context.JK.formatUtcTime(new Date(), false);
data.duration = "30";
}
else if (createSessionSettings.createType == 'rsvp') {
@ -856,30 +857,6 @@
}
function getFormattedTime(date, change) {
if (change) {
date.setMinutes(Math.ceil(date.getMinutes() / 30) * 30);
}
var h12h = date.getHours();
var m12h = date.getMinutes();
var ampm;
if (h12h >= 0 && h12h < 12) {
if (h12h === 0) {
h12h = 12; // 0 becomes 12
}
ampm = "AM";
}
else {
if (h12h > 12) {
h12h -= 12; // 13-23 becomes 1-11
}
ampm = "PM";
}
var timeString = ("00" + h12h).slice(-2) + ":" + ("00" + m12h).slice(-2) + " " + ampm;
return timeString;
}
function toggleDate() {
var selectedDate = new Date($('#session-start-date').val());
var currentDate = new Date();
@ -889,7 +866,7 @@
currentDate.getMonth() == selectedDate.getMonth() &&
currentDate.getDate() == selectedDate.getDate()) {
var timeString = getFormattedTime(currentDate, true);
var timeString = context.JK.formatUtcTime(currentDate, true);
startIndex = defaultTimeArray.indexOf(timeString);
}
$startTimeList.empty();

View File

@ -169,7 +169,7 @@
}
}
if ( (openRsvps || hasInvitation) && openSlots && !hasApprovedRsvp && !currentUserHasRsvp ) {
if ( (openRsvps || hasInvitation) && openSlots && !hasApprovedRsvp && currentUserHasRsvp ) {
showRsvpLink = true;
}
else {
@ -184,6 +184,12 @@
}
var sessionVals = buildSessionObject(session, notationFileHtml, rsvpUsersHtml, openSlotsHtml, latencyHtml);
// format scheduled start time
sessionVals.scheduled_start = new Date(session.scheduled_start).toDateString() + ', ' +
context.JK.formatUtcTime(new Date(session.scheduled_start), false);// + '-' +
//context.JK.formatUtcTime(new Date(session.scheduled_start + session.scheduled_duration), false);
sessionVals.rsvp_link_display_style = showRsvpLink ? "block" : "none";
var row = context.JK.fillTemplate($inactiveSessionTemplate.html(), sessionVals);

View File

@ -520,6 +520,30 @@
return date.toLocaleTimeString();
}
context.JK.formatUtcTime = function(date, change) {
if (change) {
date.setMinutes(Math.ceil(date.getMinutes() / 30) * 30);
}
var h12h = date.getHours();
var m12h = date.getMinutes();
var ampm;
if (h12h >= 0 && h12h < 12) {
if (h12h === 0) {
h12h = 12; // 0 becomes 12
}
ampm = "AM";
}
else {
if (h12h > 12) {
h12h -= 12; // 13-23 becomes 1-11
}
ampm = "PM";
}
var timeString = ("00" + h12h).slice(-2) + ":" + ("00" + m12h).slice(-2) + " " + ampm;
return timeString;
}
context.JK.prettyPrintElements = function ($elements) {
$.each($elements, function (index, item) {
var $item = $(item);

View File

@ -6,7 +6,7 @@
border: 1px solid $ColorScreenPrimary;
color:#fff;
min-width: 400px;
min-height: 450px;
min-height: 375px;
z-index: 100;
h2 {

View File

@ -172,7 +172,7 @@ small, .small {font-size:11px;}
.bold {font-weight:bold;}
.rsvp-instruments {
height:80px;
height:auto;
overflow:auto;
background-color:#202020;
padding:8px;

View File

@ -1,78 +1,78 @@
<!-- Find Session Screen -->
<div layout="screen" layout-id="findSession" id="findSession" class="screen secondary">
<div class="content">
<div class="content-head">
<div class="content-icon">
<%= image_tag "content/icon_search.png", :size => "19x19" %>
</div>
<div class="content">
<div class="content-head">
<div class="content-icon">
<%= image_tag "content/icon_search.png", :size => "19x19" %>
</div>
<h1>find a session</h1>
<h1>find a session</h1>
<%= render "screen_navigation" %>
</div>
<div class="content-body">
<div class="content-body-scroller">
<form id="find-session-form">
<div class="session-filter">
<div style="min-width:770px;">
<div class="left ml35" style="padding-top:3px;">Filter Session List:</div>
<!-- genre filter -->
<div id="find-session-genre" class="left ml10">
<%= render "genreSelector" %>
</div>
<!-- date filter -->
<div class="search-box">
<input type="text" id="session-date-filter" placeholder="Any Date" />
</div>
<!-- language filter -->
<div class="language">
<select id="session-language-filter">
<% music_session_languages.each do |language| %>
<option value="<%= language[:id] %>"><%= language[:label] %></option>
<% end %>
</select>
</div>
<!-- keyword filter -->
<div class="search-box">
<input id="session-keyword-srch" type="text" name="search" placeholder="Search by Keyword" />
</div>
<div class="right mr10">
<a id="btn-refresh" href="/client#/findSession" style="text-decoration:none;" class="button-grey">REFRESH<span class="extra"></span></a>
</div>
</div>
</div>
<div class="content-scroller">
<div class="content-wrapper" style="padding-left:35px;padding-top:10px;">
<div id="sessions-active">
<%= render :partial => "sessionList", :locals => {:title => "current, active sessions", :category => "sessions-active"} %>
<br />
<div id="no-active-sessions">
No active public sessions found.
</div>
</div>
<div id="sessions-scheduled" class="mt35">
<%= render :partial => "sessionList", :locals => {:title => "future, scheduled sessions", :category => "sessions-scheduled"} %>
<br />
<div id="no-scheduled-sessions">
No scheduled sessions found.
</div>
</div>
<span class="btn-next-wrapper"><a href="/api/sessions/nindex/clientid?page=1" class="btn-next">Next</a></span>
</div>
</div>
</form>
<div id="end-of-session-list" class="end-of-list">
No more sessions.
</div>
</div>
</div>
<%= render "screen_navigation" %>
</div>
<div class="content-body">
<div class="content-body-scroller">
<form id="find-session-form">
<div class="session-filter">
<div style="min-width:770px;">
<div class="left ml35" style="padding-top:3px;">Filter Session List:</div>
<!-- genre filter -->
<div id="find-session-genre" class="left ml10">
<%= render "genreSelector" %>
</div>
<!-- date filter -->
<div class="search-box">
<input type="text" id="session-date-filter" placeholder="Any Date" />
</div>
<!-- language filter -->
<div class="language">
<select id="session-language-filter">
<% music_session_languages.each do |language| %>
<option value="<%= language[:id] %>"><%= language[:label] %></option>
<% end %>
</select>
</div>
<!-- keyword filter -->
<div class="search-box">
<input id="session-keyword-srch" type="text" name="search" placeholder="Search by Keyword" />
</div>
<div class="right mr10">
<a id="btn-refresh" href="/client#/findSession" style="text-decoration:none;" class="button-grey">REFRESH<span class="extra"></span></a>
</div>
</div>
</div>
<div class="content-scroller">
<div class="content-wrapper" style="padding-left:35px;padding-top:10px;">
<div id="sessions-active">
<%= render :partial => "sessionList", :locals => {:title => "current, active sessions", :category => "sessions-active"} %>
<br />
<div id="no-active-sessions">
No active public sessions found.
</div>
</div>
<div id="sessions-scheduled" class="mt35">
<%= render :partial => "sessionList", :locals => {:title => "future, scheduled sessions", :category => "sessions-scheduled"} %>
<br />
<div id="no-scheduled-sessions">
No scheduled sessions found.
</div>
</div>
<span class="btn-next-wrapper"><a href="/api/sessions/nindex/clientid?page=1" class="btn-next">Next</a></span>
</div>
</div>
</form>
<div id="end-of-session-list" class="end-of-list">
No more sessions.
</div>
</div>
</div>
</div>
</div>
<!-- active session template -->
@ -160,6 +160,9 @@
<td>Notation Files:</td>
<td>{notation_files}</td>
</tr>
<tr>
<td colspan="2">{scheduled_start}</td>
</tr>
</table>
</td>
<td width="35%">
@ -243,4 +246,5 @@
{latency_text}
</td>
</tr>
<tr><td><div style='height:5px;'>&nbsp;</div></td></tr>
</script>

View File

@ -20,8 +20,7 @@
%br/
%br/
.left
%a.button-orange{:href => 'TBD', :rel => 'external', :target => '_blank'} HELP
%a.button-grey{:href => 'TBD', :rel => 'external', :target => '_blank'} HELP
.right
%a.button-grey{:id => 'btnCancel', 'layout-action' => 'close'} CANCEL
%a.button-orange{:id => 'btnSubmitRsvp'} SUBMIT RSVP
%br{:clear => "all"}/
%a.button-orange{:id => 'btnSubmitRsvp'} SUBMIT RSVP