diff --git a/app/controllers/conference_controller.rb b/app/controllers/conference_controller.rb new file mode 100644 index 00000000..7a872c26 --- /dev/null +++ b/app/controllers/conference_controller.rb @@ -0,0 +1,5 @@ +class ConferenceController < ApplicationController + def show + @conference = Conference.find_by_short_title(params[:id]) + end +end diff --git a/app/views/conference/show.html.haml b/app/views/conference/show.html.haml new file mode 100644 index 00000000..021d213f --- /dev/null +++ b/app/views/conference/show.html.haml @@ -0,0 +1,3 @@ += content_for :splash_logo do + = link_to @conference.title, "#", :class => 'navbar-brand' += render :partial => "home/conference_details", :locals => {:conference => @conference} \ No newline at end of file diff --git a/app/views/home/_conference_details.html.haml b/app/views/home/_conference_details.html.haml index 1653b3d8..335b25ed 100644 --- a/app/views/home/_conference_details.html.haml +++ b/app/views/home/_conference_details.html.haml @@ -20,6 +20,8 @@ = simple_format(conference.venue.description, class: 'lead') .col-md-2 .btn-group-vertical + - if !@conference || @conference != conference + = link_to "View Conference", conference_path(conference.short_title), :class =>"btn btn-default" - if conference.registration_open? - if conference.user_registered?(current_user) = link_to "Modify Registration", register_conference_path(conference.short_title), :class =>"btn btn-default" diff --git a/app/views/layouts/_navigation.html.haml b/app/views/layouts/_navigation.html.haml index a260104c..b6c4853f 100644 --- a/app/views/layouts/_navigation.html.haml +++ b/app/views/layouts/_navigation.html.haml @@ -7,8 +7,10 @@ %span.icon-bar %span.icon-bar %span.icon-bar + = yield(:splash_logo) = link_to CONFIG['name'], root_path, :class => 'navbar-brand', :title => "Open Source Event Manager" .collapse.navbar-collapse + = yield(:splash_header) - if @conference && !@conference.short_title.nil? %p.navbar-text = @conference.short_title diff --git a/config/routes.rb b/config/routes.rb index 1864cb64..606b9569 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,5 +1,7 @@ Osem::Application.routes.draw do + get 'conference/show' + devise_for :users, :controllers => { :registrations => :registrations }, :path => 'accounts' namespace :admin do @@ -62,7 +64,7 @@ Osem::Application.routes.draw do end end - resources :conference, :only => [] do + resources :conference, only: [:show] do resources :proposal do resources :event_attachment, :controller => "event_attachments" patch "/confirm" => "proposal#confirm" diff --git a/spec/controllers/conference_controller_spec.rb b/spec/controllers/conference_controller_spec.rb new file mode 100644 index 00000000..464288cd --- /dev/null +++ b/spec/controllers/conference_controller_spec.rb @@ -0,0 +1,11 @@ +require 'spec_helper' + +describe ConferenceController do + describe 'GET #show' do + it 'returns http success' do + get :show, id: 'sample' + expect(response).to be_success + end + end + +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index acfed143..027c7a9e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -44,6 +44,7 @@ RSpec.configure do |config| # Enables devise sign_in function config.include Devise::TestHelpers, type: :controller + config.include Devise::TestHelpers, type: :view # Use capybara-webkit as default javascript driver Capybara.javascript_driver = :webkit diff --git a/spec/views/conference/show.html.haml_spec.rb b/spec/views/conference/show.html.haml_spec.rb new file mode 100644 index 00000000..b822a73e --- /dev/null +++ b/spec/views/conference/show.html.haml_spec.rb @@ -0,0 +1,10 @@ +require 'spec_helper' +describe 'conference/show.html.haml' do + it 'renders conference details' do + @conference = create(:conference) + assign :conference, @conference + render + expect(render).to include("#{@conference.title}") + end + +end