From 79eec652d1c083f88d545b4c79088e67514155dc Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Wed, 7 Jan 2015 23:18:07 -0500 Subject: [PATCH 1/5] VRFS-1985 wip start session from Find Session screen --- .../javascripts/dialog/sessionStartDialog.js | 85 +++++++++++++++++++ .../javascripts/scheduled_session.js.erb | 60 ++++++------- web/app/assets/javascripts/sessionList.js | 17 +++- web/app/assets/javascripts/ui_helper.js | 7 ++ .../stylesheets/dialogs/base_dialog.css.scss | 16 +++- .../dialogs/sessionStartDialog.css.scss | 17 ++++ web/app/views/clients/_findSession.html.erb | 2 +- .../views/clients/_scheduledSession.html.erb | 4 +- web/app/views/dialogs/_dialogs.html.haml | 1 + .../dialogs/_sessionStartDialog.html.slim | 44 ++++++++++ .../features/session_start_dialog_spec.rb | 0 11 files changed, 214 insertions(+), 39 deletions(-) create mode 100644 web/app/assets/javascripts/dialog/sessionStartDialog.js create mode 100644 web/app/assets/stylesheets/dialogs/sessionStartDialog.css.scss create mode 100644 web/app/views/dialogs/_sessionStartDialog.html.slim create mode 100644 web/spec/features/session_start_dialog_spec.rb diff --git a/web/app/assets/javascripts/dialog/sessionStartDialog.js b/web/app/assets/javascripts/dialog/sessionStartDialog.js new file mode 100644 index 000000000..3937585fa --- /dev/null +++ b/web/app/assets/javascripts/dialog/sessionStartDialog.js @@ -0,0 +1,85 @@ +(function(context,$) { + + "use strict"; + context.JK = context.JK || {}; + context.JK.SessionStartDialog = function(app, session) { + var logger = context.JK.logger; + var sessionUtils = context.JK.SessionUtils; + var $dialog = null; + var dialogId = 'session-start-dialog'; + var $btnStartSession = null; + + function beforeShow(data) { + } + + function afterShow(data) { + } + + function afterHide() { + } + + function showDialog() { + return app.layout.showDialog(dialogId); + } + + function events() { + $btnStartSession.unbind('click'); + $btnStartSession.click(function(e) { + context.location = '/client#/session/' + session.id; + app.layout.closeDialog(dialogId); + }); + } + + function initializeSessionDetails() { + $dialog.find('#session-start-type-disp').html('Now!'); + $dialog.find('#session-name-disp').html(session.name); + $dialog.find('#session-description-disp').html(session.description); + + if (session.music_notations && session.music_notations.length > 0) { + $dialog.find('#session-notations-disp').html("Notations: " + session.music_notations.join(', ')); + } + + if (session.band) { + $dialog.find('#session-band-disp').html(band.name); + } + else { + $dialog.find('#session-band-disp').html('N/A'); + } + + $dialog.find('#session-language-disp').html(session.language_description); + + var sessionInvitedString = ''; + $dialog.find('#session-invited-disp').html(sessionInvitedString); + + $dialog.find('#session-instruments-me-disp').html('TBD'); + + $dialog.find('#session-instruments-rsvp-disp').html('TBD'); + + $dialog.find('#session-musician-access-disp').html('Musicians: ' + session.musician_access_description); + $dialog.find('#session-fans-access-disp').html('Fans: ' + session.fan_access_description); + $dialog.find('#session-policy-disp').html(session.legal_policy); + } + + function initialize() { + + var dialogBindings = { + 'beforeShow' : beforeShow, + 'afterShow' : afterShow, + 'afterHide': afterHide + }; + + app.bindDialog(dialogId, dialogBindings); + + $dialog = $('[layout-id="' + dialogId + '"]'); + $btnStartSession = $dialog.find('.btnStartSession'); + + initializeSessionDetails(); + events(); + } + + this.initialize = initialize; + this.showDialog = showDialog; + } + + return this; +})(window,jQuery); \ No newline at end of file diff --git a/web/app/assets/javascripts/scheduled_session.js.erb b/web/app/assets/javascripts/scheduled_session.js.erb index ebbd6a9b3..969f9449d 100644 --- a/web/app/assets/javascripts/scheduled_session.js.erb +++ b/web/app/assets/javascripts/scheduled_session.js.erb @@ -200,14 +200,14 @@ createSessionSettings.startDate = createSessionSettings.startDate || (new Date().toDateString()); - $("#session-start-date").val(createSessionSettings.startDate); + $screen.find("#session-start-date").val(createSessionSettings.startDate); toggleDate(true); toggleStartTime(); toggleStepStatus(); sessionUtils.defaultTimezone($timezoneList); if(firstTimeShown) { firstTimeShown = false; - $('#session-when-start-scheduled').iCheck('check'); + $screen.find('#session-when-start-scheduled').iCheck('check'); } } @@ -217,7 +217,7 @@ function beforeShowStep3() { rest.getBands(context.JK.currentUserId) .done(function(result) { - var options = $("#session-band-list"); + var options = $screen.find("#session-band-list"); options.empty(); options.append($("