Integrate the splash page into the general layout
* Cleanup the CSS * Fix more views then you have fingers and toes * Introduce position(weight) for sponsor levels * Fix bootstrap/datatable integration
This commit is contained in:
parent
7acd16f923
commit
f2cdea4f1a
56 changed files with 1191 additions and 1266 deletions
3
Gemfile
3
Gemfile
|
|
@ -111,6 +111,9 @@ gem 'daemons'
|
||||||
# to encapsulate money in objects
|
# to encapsulate money in objects
|
||||||
gem 'money-rails'
|
gem 'money-rails'
|
||||||
|
|
||||||
|
# for lists
|
||||||
|
gem 'acts_as_list'
|
||||||
|
|
||||||
# Use guard and spring for testing in development
|
# Use guard and spring for testing in development
|
||||||
group :development do
|
group :development do
|
||||||
# rspec Guard rules
|
# rspec Guard rules
|
||||||
|
|
|
||||||
17
Gemfile.lock
17
Gemfile.lock
|
|
@ -36,6 +36,8 @@ GEM
|
||||||
activerecord (>= 3.0)
|
activerecord (>= 3.0)
|
||||||
activesupport (>= 3.0)
|
activesupport (>= 3.0)
|
||||||
awesome_nested_set (>= 2.0)
|
awesome_nested_set (>= 2.0)
|
||||||
|
acts_as_list (0.4.0)
|
||||||
|
activerecord (>= 3.0)
|
||||||
addressable (2.3.6)
|
addressable (2.3.6)
|
||||||
ahoy_matey (1.0.0)
|
ahoy_matey (1.0.0)
|
||||||
addressable
|
addressable
|
||||||
|
|
@ -166,10 +168,10 @@ GEM
|
||||||
i18n (0.6.11)
|
i18n (0.6.11)
|
||||||
inversion (0.12.3)
|
inversion (0.12.3)
|
||||||
loggability (~> 0.4)
|
loggability (~> 0.4)
|
||||||
jquery-datatables-rails (2.2.2)
|
jquery-datatables-rails (2.2.3)
|
||||||
jquery-rails
|
jquery-rails
|
||||||
sass-rails
|
sass-rails
|
||||||
jquery-rails (3.1.0)
|
jquery-rails (3.1.2)
|
||||||
railties (>= 3.0, < 5.0)
|
railties (>= 3.0, < 5.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
json (1.8.1)
|
json (1.8.1)
|
||||||
|
|
@ -193,7 +195,7 @@ GEM
|
||||||
open4
|
open4
|
||||||
rake
|
rake
|
||||||
mini_portile (0.6.0)
|
mini_portile (0.6.0)
|
||||||
minitest (5.4.2)
|
minitest (5.4.3)
|
||||||
momentjs-rails (2.8.1)
|
momentjs-rails (2.8.1)
|
||||||
railties (>= 3.1)
|
railties (>= 3.1)
|
||||||
monetize (0.3.0)
|
monetize (0.3.0)
|
||||||
|
|
@ -351,10 +353,10 @@ GEM
|
||||||
ruby-progressbar (1.5.1)
|
ruby-progressbar (1.5.1)
|
||||||
rubyzip (1.0.0)
|
rubyzip (1.0.0)
|
||||||
sass (3.2.19)
|
sass (3.2.19)
|
||||||
sass-rails (4.0.3)
|
sass-rails (4.0.4)
|
||||||
railties (>= 4.0.0, < 5.0)
|
railties (>= 4.0.0, < 5.0)
|
||||||
sass (~> 3.2.0)
|
sass (~> 3.2.2)
|
||||||
sprockets (~> 2.8, <= 2.11.0)
|
sprockets (~> 2.8, < 2.12)
|
||||||
sprockets-rails (~> 2.0)
|
sprockets-rails (~> 2.0)
|
||||||
shoulda (3.5.0)
|
shoulda (3.5.0)
|
||||||
shoulda-context (~> 1.0, >= 1.0.1)
|
shoulda-context (~> 1.0, >= 1.0.1)
|
||||||
|
|
@ -371,7 +373,7 @@ GEM
|
||||||
spring (1.1.2)
|
spring (1.1.2)
|
||||||
spring-commands-rspec (1.0.2)
|
spring-commands-rspec (1.0.2)
|
||||||
spring (>= 0.9.1)
|
spring (>= 0.9.1)
|
||||||
sprockets (2.11.0)
|
sprockets (2.11.3)
|
||||||
hike (~> 1.2)
|
hike (~> 1.2)
|
||||||
multi_json (~> 1.0)
|
multi_json (~> 1.0)
|
||||||
rack (~> 1.0)
|
rack (~> 1.0)
|
||||||
|
|
@ -417,6 +419,7 @@ DEPENDENCIES
|
||||||
active_model_serializers
|
active_model_serializers
|
||||||
activeuuid
|
activeuuid
|
||||||
acts_as_commentable_with_threading
|
acts_as_commentable_with_threading
|
||||||
|
acts_as_list
|
||||||
ahoy_matey
|
ahoy_matey
|
||||||
awesome_nested_set (~> 3.0.0.rc.5)
|
awesome_nested_set (~> 3.0.0.rc.5)
|
||||||
axlsx_rails
|
axlsx_rails
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,11 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#registrations-datatable').dataTable();
|
$('.datatable').DataTable({
|
||||||
|
// ajax: ...,
|
||||||
|
autoWidth: false,
|
||||||
|
pagingType: 'full_numbers'
|
||||||
});
|
});
|
||||||
$(document).ready(function() {
|
});
|
||||||
$('#users-datatable').dataTable();
|
});
|
||||||
});
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#events-datatable').dataTable();
|
|
||||||
});
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#buyers-datatable').dataTable();
|
|
||||||
});
|
|
||||||
} );
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
*= require osem-schedule-print
|
*= require osem-schedule-print
|
||||||
*= require osem-dashboard
|
*= require osem-dashboard
|
||||||
*= require osem-fonts
|
*= require osem-fonts
|
||||||
|
*= require osem-splash
|
||||||
*= require font-awesome
|
*= require font-awesome
|
||||||
*= require bootstrap-markdown.min
|
*= require bootstrap-markdown.min
|
||||||
*= require bootstrap-datetimepicker
|
*= require bootstrap-datetimepicker
|
||||||
|
|
|
||||||
59
app/assets/stylesheets/osem-admin.css.scss
Normal file
59
app/assets/stylesheets/osem-admin.css.scss
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
.flex-col {
|
||||||
|
display: flex;
|
||||||
|
display: -webkit-flex;
|
||||||
|
flex: 1 100%;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-grow {
|
||||||
|
display: flex;
|
||||||
|
-webkit-flex: 2;
|
||||||
|
flex: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-flex, .row-flex > div[class*='col-'] {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -moz-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: flex;
|
||||||
|
flex:1 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-flex-wrap {
|
||||||
|
-webkit-flex-flow: row wrap;
|
||||||
|
align-content: flex-start;
|
||||||
|
flex:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-flex > div[class*='col-'], .container-flex > div[class*='col-'] {
|
||||||
|
margin:-.2px; /* hack adjust for wrapping */
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-header-bigger {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mySidebar {
|
||||||
|
.fa {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
hr {
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dl-horizontal dt { white-space: normal; }
|
||||||
|
|
||||||
|
.table20 {
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media only screen and (max-width: 768px) {
|
||||||
|
.mySidebar ul.subNav {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -11,4 +11,49 @@
|
||||||
@include breakpoint(lg) {
|
@include breakpoint(lg) {
|
||||||
font-size: 5em;
|
font-size: 5em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dashbox {
|
||||||
|
padding-top: 20px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashbox .icon {
|
||||||
|
padding-left: 8px;
|
||||||
|
display: block;
|
||||||
|
font-size: 3.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashbox label {
|
||||||
|
display: block;
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todolist-missing span {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todolist-ok {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todolist-ok span {
|
||||||
|
color: #02A10F;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-submitter img {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#doughnut .tab-content {
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#submissions {
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.conferenceCheckboxes div {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,4 +44,4 @@
|
||||||
|
|
||||||
.fa-suse:before {
|
.fa-suse:before {
|
||||||
content: "a";
|
content: "a";
|
||||||
}
|
}
|
||||||
124
app/assets/stylesheets/osem-splash.css.scss
Normal file
124
app/assets/stylesheets/osem-splash.css.scss
Normal file
|
|
@ -0,0 +1,124 @@
|
||||||
|
#splash {
|
||||||
|
section {
|
||||||
|
padding-top: 60px;
|
||||||
|
padding-bottom: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
section:nth-child(even) {
|
||||||
|
background: none repeat scroll 0 0 #e0e0e0;
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
section:nth-child(odd) {
|
||||||
|
background: none repeat scroll 0 0 #ffffff;
|
||||||
|
color: #7b7b7b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#splash-banner{
|
||||||
|
background: none;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center center;
|
||||||
|
width: 100%;
|
||||||
|
background-size: cover;
|
||||||
|
min-height: 700px;
|
||||||
|
margin-top: -10px;
|
||||||
|
.container {
|
||||||
|
padding-top: 60px;
|
||||||
|
}
|
||||||
|
h1, h3{
|
||||||
|
color:#3399CC;
|
||||||
|
}
|
||||||
|
h3{
|
||||||
|
font-family: 'Coustard', serif;
|
||||||
|
font-weight: 600;
|
||||||
|
text-shadow: 0.2em 0.2em 0 #4A4F6A;
|
||||||
|
}
|
||||||
|
h1{
|
||||||
|
font-size: 5em;
|
||||||
|
font-weight: 700;
|
||||||
|
text-shadow:0.04em 0.04em 0 black;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
color: #fff;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#program {
|
||||||
|
.tracks:hover{
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#callforpapers {
|
||||||
|
.timer-box{
|
||||||
|
width: 130px;
|
||||||
|
margin: 35px 24px 20px 0;
|
||||||
|
border-radius: 50%;
|
||||||
|
border:4px solid #989797;
|
||||||
|
}
|
||||||
|
#cfp-date{
|
||||||
|
font-size: 40px;
|
||||||
|
color: #ff6633;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#location {
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center center;
|
||||||
|
width: 100%;
|
||||||
|
background-size: cover;
|
||||||
|
min-height: 500px;
|
||||||
|
h1,h2,p{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
h1,h2,li,p{
|
||||||
|
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#social-media{
|
||||||
|
i{
|
||||||
|
color: #4a4a4a;
|
||||||
|
}
|
||||||
|
i:hover{
|
||||||
|
color: #16a085;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-top-wrapper {
|
||||||
|
position: fixed;
|
||||||
|
opacity: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
overflow: hidden;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 99999999;
|
||||||
|
background-color: #424242;
|
||||||
|
width: 50px;
|
||||||
|
height: 48px;
|
||||||
|
line-height: 48px;
|
||||||
|
right: 30px;
|
||||||
|
bottom: 30px;
|
||||||
|
padding-top: 2px;
|
||||||
|
border-top-left-radius: 10px;
|
||||||
|
border-top-right-radius: 10px;
|
||||||
|
border-bottom-right-radius: 10px;
|
||||||
|
border-bottom-left-radius: 10px;
|
||||||
|
-webkit-transition: all 0.5s ease-in-out;
|
||||||
|
-moz-transition: all 0.5s ease-in-out;
|
||||||
|
-ms-transition: all 0.5s ease-in-out;
|
||||||
|
-o-transition: all 0.5s ease-in-out;
|
||||||
|
transition: all 0.5s ease-in-out;
|
||||||
|
i.fa {
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
&.show {
|
||||||
|
visibility:visible;
|
||||||
|
cursor:pointer;
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -17,158 +17,11 @@ body {
|
||||||
/* Set the fixed height of the footer here */
|
/* Set the fixed height of the footer here */
|
||||||
height: 60px;
|
height: 60px;
|
||||||
background-color: #f5f5f5;
|
background-color: #f5f5f5;
|
||||||
}
|
.container {
|
||||||
|
padding: 15px;
|
||||||
.container .text-muted {
|
|
||||||
margin: 20px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer > .container {
|
|
||||||
padding: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-header-bigger {
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: bold;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fa {
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mySidebar hr {
|
|
||||||
margin: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 768px) {
|
|
||||||
.mySidebar ul.subNav {
|
|
||||||
display: block;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.conferenceCheckboxes div {
|
.nav-tabs {
|
||||||
display: inline-block;
|
margin-bottom: 15px;
|
||||||
padding: 0px 10px 0px 0px;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.dashbox {
|
|
||||||
padding-top: 20px;
|
|
||||||
padding-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashbox .icon {
|
|
||||||
padding-left: 8px;
|
|
||||||
display: block;
|
|
||||||
font-size: 3.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashbox label {
|
|
||||||
display: block;
|
|
||||||
font-size: 1.1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.todolist-missing span {
|
|
||||||
color: #ff0000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.todolist-ok {
|
|
||||||
text-decoration: line-through;
|
|
||||||
}
|
|
||||||
|
|
||||||
.todolist-ok span {
|
|
||||||
color: #02A10F;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-submitter img {
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#doughnut .tab-content {
|
|
||||||
padding-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#submissions {
|
|
||||||
padding-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner-disp{
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center center;
|
|
||||||
width: 100%;
|
|
||||||
background-size: cover;
|
|
||||||
-webkit-background-size:cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
#location .with-background {
|
|
||||||
min-height: 500px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#splash-banner .with-background{
|
|
||||||
min-height: 700px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.location-links li{
|
|
||||||
display: inline-block;
|
|
||||||
margin-right: 2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner-text{
|
|
||||||
padding-top: 10%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pad{
|
|
||||||
padding-top: 35px;
|
|
||||||
padding-bottom: 35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dl-horizontal dt { white-space: normal; }
|
|
||||||
|
|
||||||
.equal, .equal > div[class*='col-'] {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -moz-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: flex;
|
|
||||||
flex:1 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row-flex, .row-flex > div[class*='col-'] {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -moz-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: flex;
|
|
||||||
flex:1 1 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row-flex-wrap {
|
|
||||||
-webkit-flex-flow: row wrap;
|
|
||||||
align-content: flex-start;
|
|
||||||
flex:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row-flex > div[class*='col-'], .container-flex > div[class*='col-'] {
|
|
||||||
margin:-.2px; /* hack adjust for wrapping */
|
|
||||||
}
|
|
||||||
|
|
||||||
.container-flex > div[class*='col-'] div,.row-flex > div[class*='col-'] div {
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-col {
|
|
||||||
display: flex;
|
|
||||||
display: -webkit-flex;
|
|
||||||
flex: 1 100%;
|
|
||||||
flex-flow: column nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-grow {
|
|
||||||
display: flex;
|
|
||||||
-webkit-flex: 2;
|
|
||||||
flex: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table20 {
|
|
||||||
width: 20%;
|
|
||||||
}
|
|
||||||
|
|
@ -1,265 +0,0 @@
|
||||||
@font-face {
|
|
||||||
font-family: 'Lato';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Lato Light'), local('Lato-Light'), url("fonts/Lato-Light.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Lato';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Lato Regular'), local('Lato-Regular'), url("fonts/Lato-Regular.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Lato';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Lato Bold'), local('Lato-Bold'), url("fonts/Lato-Bold.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Lato';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Lato Light Italic'), local('Lato-LightItalic'), url("fonts/Lato-LightItalic.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Lato';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Lato Italic'), local('Lato-Italic'), url("fonts/Lato-Italic.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Raleway';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Raleway Light'), local('Raleway-Light'), url("fonts/Raleway-Light.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Raleway';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Raleway'), url("fonts/Raleway.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Raleway';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Raleway Bold'), local('Raleway-Bold'), url("fonts/Raleway-Bold.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Coustard';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Coustard'), url("fonts/Coustard.woff") format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Coustard';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
src: local('Coustard-Black'), url("fonts/Coustard-Black.woff") format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
.splash {
|
|
||||||
background-color: #f2f2f2;
|
|
||||||
font-family: 'Lato';
|
|
||||||
font-weight: 300;
|
|
||||||
font-size: 16px;
|
|
||||||
color: #555;
|
|
||||||
margin-top: -10px;
|
|
||||||
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
/*-webkit-overflow-scrolling: touch;*/
|
|
||||||
|
|
||||||
|
|
||||||
/* Titles */
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
|
||||||
font-family: "Raleway";
|
|
||||||
font-weight: 300;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Links */
|
|
||||||
a {
|
|
||||||
color: #f85c37;
|
|
||||||
word-wrap: break-word;
|
|
||||||
|
|
||||||
-webkit-transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
-moz-transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
-ms-transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
-o-transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover,
|
|
||||||
a:focus {
|
|
||||||
color: #7b7b7b;
|
|
||||||
text-decoration: none;
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:before,
|
|
||||||
a:after {
|
|
||||||
-webkit-transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
-moz-transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
-ms-transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
-o-transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
transition: color 0.1s ease-in, background 0.1s ease-in;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
display: block;
|
|
||||||
height: 1px;
|
|
||||||
border: 0;
|
|
||||||
border-top: 1px solid #ccc;
|
|
||||||
margin: 1em 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
/* ==========================================================================
|
|
||||||
Wrap Sections
|
|
||||||
========================================================================== */
|
|
||||||
|
|
||||||
#splash-banner{
|
|
||||||
h1, h3{
|
|
||||||
color:#3399CC;
|
|
||||||
}
|
|
||||||
h3{
|
|
||||||
font-family: 'Coustard', serif;
|
|
||||||
font-weight: 600;
|
|
||||||
text-shadow: 0.2em 0.2em 0 #4A4F6A;
|
|
||||||
}
|
|
||||||
h1{
|
|
||||||
font-size: 5em;
|
|
||||||
font-weight: 700;
|
|
||||||
text-shadow:0.04em 0.04em 0 black;
|
|
||||||
}
|
|
||||||
p {
|
|
||||||
color: #fff;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#program{
|
|
||||||
.tracks:hover{
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#callforpapers{
|
|
||||||
.timer-box{
|
|
||||||
width: 130px;
|
|
||||||
margin: 35px 24px 20px 0;
|
|
||||||
border-radius: 50%;
|
|
||||||
border:4px solid #989797;
|
|
||||||
}
|
|
||||||
#cfp-date{
|
|
||||||
font-size: 40px;
|
|
||||||
font-family: 'Coustard', serif;
|
|
||||||
color: #ff6633;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#registration{
|
|
||||||
background-color: #e0e0e0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sponsors{
|
|
||||||
h2,h3,h4{
|
|
||||||
color: #fff;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
color: #fff;
|
|
||||||
background-color: #343b3d;
|
|
||||||
}
|
|
||||||
|
|
||||||
#social-media{
|
|
||||||
i{
|
|
||||||
color: #4a4a4a;
|
|
||||||
}
|
|
||||||
i:hover{
|
|
||||||
color: #16a085;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#location{
|
|
||||||
|
|
||||||
h1,h2,p{
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
h1,h2,li,p{
|
|
||||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#gallery{
|
|
||||||
min-height: 600px;
|
|
||||||
.item{
|
|
||||||
img {
|
|
||||||
height: 600px;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center center;
|
|
||||||
width: 100%;
|
|
||||||
background-size: cover;
|
|
||||||
-webkit-background-size:cover;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.modal-body{
|
|
||||||
i{
|
|
||||||
margin-top: 35%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#carousel-example-generic{
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.scroll-top-wrapper {
|
|
||||||
position: fixed;
|
|
||||||
opacity: 0;
|
|
||||||
visibility: hidden;
|
|
||||||
overflow: hidden;
|
|
||||||
text-align: center;
|
|
||||||
z-index: 99999999;
|
|
||||||
background-color: #424242;
|
|
||||||
width: 50px;
|
|
||||||
height: 48px;
|
|
||||||
line-height: 48px;
|
|
||||||
right: 30px;
|
|
||||||
bottom: 30px;
|
|
||||||
padding-top: 2px;
|
|
||||||
border-top-left-radius: 10px;
|
|
||||||
border-top-right-radius: 10px;
|
|
||||||
border-bottom-right-radius: 10px;
|
|
||||||
border-bottom-left-radius: 10px;
|
|
||||||
-webkit-transition: all 0.5s ease-in-out;
|
|
||||||
-moz-transition: all 0.5s ease-in-out;
|
|
||||||
-ms-transition: all 0.5s ease-in-out;
|
|
||||||
-o-transition: all 0.5s ease-in-out;
|
|
||||||
transition: all 0.5s ease-in-out;
|
|
||||||
|
|
||||||
i.fa {
|
|
||||||
line-height: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.show {
|
|
||||||
visibility:visible;
|
|
||||||
cursor:pointer;
|
|
||||||
opacity: 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,22 +1,65 @@
|
||||||
module Admin
|
module Admin
|
||||||
class SponsorshipLevelsController < Admin::BaseController
|
class SponsorshipLevelsController < Admin::BaseController
|
||||||
load_and_authorize_resource :conference, find_by: :short_title
|
load_and_authorize_resource :conference, find_by: :short_title
|
||||||
authorize_resource through: :conference
|
load_and_authorize_resource through: :conference
|
||||||
|
|
||||||
def index
|
def index
|
||||||
authorize! :index, SponsorshipLevel.new(conference_id: @conference.id)
|
authorize! :index, SponsorshipLevel.new(conference_id: @conference.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def edit; end
|
||||||
if @conference.update_attributes(params[:conference])
|
|
||||||
redirect_to(admin_conference_sponsorship_levels_path(
|
def new
|
||||||
conference_id: @conference.short_title),
|
@sponsorship_level = @conference.sponsorship_levels.new
|
||||||
notice: 'Sponsorship levels were successfully updated.')
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
@sponsorship_level = @conference.sponsorship_levels.new(sponsorship_level_params)
|
||||||
|
if @sponsorship_level.save
|
||||||
|
redirect_to(admin_conference_sponsorship_levels_path(conference_id: @conference.short_title),
|
||||||
|
notice: 'Sponsorship level successfully created.')
|
||||||
else
|
else
|
||||||
|
flash[:error] = "Creating Sponsorship Level failed: #{@sponsorship_level.errors.full_messages.join('. ')}."
|
||||||
|
render :new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
if @sponsorship_level.update_attributes(sponsorship_level_params)
|
||||||
redirect_to(admin_conference_sponsorship_levels_path(
|
redirect_to(admin_conference_sponsorship_levels_path(
|
||||||
conference_id: @conference.short_title),
|
conference_id: @conference.short_title),
|
||||||
alert: 'Sponsorship levels update failed')
|
notice: 'Sponsorship level successfully updated.')
|
||||||
|
else
|
||||||
|
flash[:error] = "Update Sponsorship level failed: #{@sponsorship_level.errors.full_messages.join('. ')}."
|
||||||
|
render :edit
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
if @sponsorship_level.destroy
|
||||||
|
redirect_to(admin_conference_sponsorship_levels_path(conference_id: @conference.short_title),
|
||||||
|
notice: 'Sponsorship level successfully deleted.')
|
||||||
|
else
|
||||||
|
redirect_to(admin_conference_sponsorship_levels_path(conference_id: @conference.short_title),
|
||||||
|
error: 'Deleting sponsorship level failed! ' \
|
||||||
|
"#{@sponsorship_level.errors.full_messages.join('. ')}.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def up
|
||||||
|
@sponsorship_level.move_higher
|
||||||
|
redirect_to(admin_conference_sponsorship_levels_path(conference_id: @conference.short_title))
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
@sponsorship_level.move_lower
|
||||||
|
redirect_to(admin_conference_sponsorship_levels_path(conference_id: @conference.short_title))
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def sponsorship_level_params
|
||||||
|
params[:sponsorship_level]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class Conference < ActiveRecord::Base
|
||||||
has_many :participants, through: :registrations, source: :user
|
has_many :participants, through: :registrations, source: :user
|
||||||
has_many :vdays, dependent: :destroy
|
has_many :vdays, dependent: :destroy
|
||||||
has_many :vpositions, dependent: :destroy
|
has_many :vpositions, dependent: :destroy
|
||||||
has_many :sponsorship_levels, dependent: :destroy
|
has_many :sponsorship_levels, -> { order('position ASC') }, dependent: :destroy
|
||||||
has_many :sponsors, dependent: :destroy
|
has_many :sponsors, dependent: :destroy
|
||||||
has_many :photos, dependent: :destroy
|
has_many :photos, dependent: :destroy
|
||||||
has_many :targets, dependent: :destroy
|
has_many :targets, dependent: :destroy
|
||||||
|
|
|
||||||
|
|
@ -2,5 +2,6 @@ class SponsorshipLevel < ActiveRecord::Base
|
||||||
attr_accessible :title, :conference_id
|
attr_accessible :title, :conference_id
|
||||||
validates_presence_of :title
|
validates_presence_of :title
|
||||||
belongs_to :conference
|
belongs_to :conference
|
||||||
|
acts_as_list scope: :conference
|
||||||
has_many :sponsors
|
has_many :sponsors
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
Events
|
Events
|
||||||
- if @events
|
- if @events
|
||||||
= "(#{@events.length})"
|
= "(#{@events.length})"
|
||||||
%table.table.table-striped.table-bordered.table-hover#events-datatable
|
%table.table.table-striped.table-bordered.table-hover.datatable
|
||||||
%thead
|
%thead
|
||||||
%th
|
%th
|
||||||
%b ID
|
%b ID
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
- if @conference.rooms.any?
|
- if @conference.rooms.any?
|
||||||
.row
|
.row
|
||||||
.col-md-12
|
.col-md-12
|
||||||
%table.table
|
%table.table#rooms
|
||||||
%thead
|
%thead
|
||||||
%th #
|
%th #
|
||||||
%th Name
|
%th Name
|
||||||
|
|
|
||||||
2
app/views/admin/sponsorship_levels/_form.html.haml
Normal file
2
app/views/admin/sponsorship_levels/_form.html.haml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
= f.input :title
|
||||||
|
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
<div class="nested-fields">
|
|
||||||
<%= f.inputs do %>
|
|
||||||
<%= f.input :title %>
|
|
||||||
<%= remove_association_link :sponsorship_level, f %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
8
app/views/admin/sponsorship_levels/edit.html.haml
Normal file
8
app/views/admin/sponsorship_levels/edit.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
%h1 Editing Sponsorship Level
|
||||||
|
|
||||||
|
.row
|
||||||
|
.col-md-8
|
||||||
|
= semantic_form_for @sponsorship_level, url: admin_conference_sponsorship_level_path(conference_id: @conference.short_title, id: @sponsorship_level.id) do |f|
|
||||||
|
= render 'form', f: f
|
||||||
|
|
||||||
|
= link_to 'Back', admin_conference_sponsorship_levels_path
|
||||||
|
|
@ -1,4 +1,29 @@
|
||||||
.col-md-9
|
%h1 Sponsorship Levels
|
||||||
= semantic_form_for(@conference, :url => admin_conference_sponsorship_level_path(@conference.short_title, @conference.sponsorship_levels)) do |f|
|
|
||||||
= dynamic_association :sponsorship_levels, "Sponsorship Levels", f
|
- if @conference.sponsorship_levels.any?
|
||||||
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}
|
.row
|
||||||
|
.col-md-12
|
||||||
|
%table.table#sponsorship_levels
|
||||||
|
%thead
|
||||||
|
%th Title
|
||||||
|
%th Position
|
||||||
|
%th Actions
|
||||||
|
%tbody
|
||||||
|
- @conference.sponsorship_levels.each_with_index do |sponsorship_level, index|
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
= sponsorship_level.title
|
||||||
|
%td
|
||||||
|
= sponsorship_level.position
|
||||||
|
.btn-group-vertical{role: "group"}
|
||||||
|
= link_to(up_admin_conference_sponsorship_level_path(@conference.short_title, sponsorship_level.id), method: :patch, class: 'btn btn-default btn-xs') do
|
||||||
|
%i.fa.fa-chevron-up
|
||||||
|
= link_to(down_admin_conference_sponsorship_level_path(@conference.short_title, sponsorship_level.id), method: :patch, class: 'btn btn-default btn-xs') do
|
||||||
|
%i.fa.fa-chevron-down
|
||||||
|
%td
|
||||||
|
= link_to 'Edit', edit_admin_conference_sponsorship_level_path(@conference.short_title, sponsorship_level.id),
|
||||||
|
method: :get, class: 'btn btn-primary'
|
||||||
|
= link_to 'Delete', admin_conference_sponsorship_level_path(@conference.short_title, sponsorship_level.id),
|
||||||
|
method: :delete, class: 'btn btn-danger', data: { confirm: "Do you really want to delete the sponsorship level #{sponsorship_level.title}?" }
|
||||||
|
|
||||||
|
= link_to 'New Sponsorship Level', new_admin_conference_sponsorship_level_path(@conference.short_title), class: 'btn btn-success'
|
||||||
|
|
|
||||||
7
app/views/admin/sponsorship_levels/new.html.haml
Normal file
7
app/views/admin/sponsorship_levels/new.html.haml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
%h1 New Sponsorship Level
|
||||||
|
.row
|
||||||
|
.col-md-8
|
||||||
|
= semantic_form_for @sponsorship_level, url: admin_conference_sponsorship_levels_path(conference_id: @conference.short_title) do |f|
|
||||||
|
= render 'form', f: f
|
||||||
|
|
||||||
|
= link_to 'Back', admin_conference_sponsorship_levels_path
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
= markdown(@ticket.description)
|
= markdown(@ticket.description)
|
||||||
|
|
||||||
%h4 The following persons bought this ticket:
|
%h4 The following persons bought this ticket:
|
||||||
%table.table#buyers-datatable
|
%table.table.table-striped.table-bordered.table-hover.datatable
|
||||||
%thead
|
%thead
|
||||||
%th #
|
%th #
|
||||||
%th Name
|
%th Name
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
.row
|
.row
|
||||||
.col-md-12
|
.col-md-12
|
||||||
%h2
|
.page-header
|
||||||
Users
|
%h2
|
||||||
- if @users
|
Users
|
||||||
= "(#{@users.length})"
|
- if @users
|
||||||
|
= "(#{@users.length})"
|
||||||
= link_to 'New User', new_admin_user_path, class: 'btn btn-success pull-right'
|
= link_to 'New User', new_admin_user_path, class: 'btn btn-success pull-right'
|
||||||
%table.table.table-striped.table-bordered.table-hover#users-datatable
|
.row
|
||||||
|
.col-md-12
|
||||||
|
%table.table.table-striped.table-bordered.table-hover.datatable
|
||||||
%thead
|
%thead
|
||||||
%th ID
|
%th ID
|
||||||
%th State
|
%th State
|
||||||
|
|
@ -53,4 +55,4 @@
|
||||||
disabled: true, class: 'btn btn-primary disabled btn-danger', role: 'button'
|
disabled: true, class: 'btn btn-primary disabled btn-danger', role: 'button'
|
||||||
- else
|
- else
|
||||||
= link_to 'Delete',admin_user_path(user), method: :delete,
|
= link_to 'Delete',admin_user_path(user), method: :delete,
|
||||||
data: { confirm: 'Are you sure ?' }, class: 'btn btn-primary btn-danger'
|
data: { confirm: 'Are you sure ?' }, class: 'btn btn-primary btn-danger'
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
%h1 Editing Commercial
|
.container
|
||||||
|
.row
|
||||||
.row
|
.col-md-12
|
||||||
.col-md-8
|
.page-header
|
||||||
= semantic_form_for @commercial, url: conference_proposal_commercial_path(conference_id: @conference.short_title, proposal_id: @event.id, id: @commercial.id) do |f|
|
%h1 Editing Commercial
|
||||||
= render 'form', f: f
|
.row
|
||||||
|
.col-md-12
|
||||||
= link_to 'Back', edit_conference_proposal_path(conference_id: @conference.short_title, id: @event.id)
|
= semantic_form_for @commercial, url: conference_proposal_commercial_path(conference_id: @conference.short_title, proposal_id: @event.id, id: @commercial.id) do |f|
|
||||||
|
= render 'form', f: f
|
||||||
|
= link_to 'Back', edit_conference_proposal_path(conference_id: @conference.short_title, id: @event.id)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
%h1 New Commercial
|
.container
|
||||||
.row
|
.row
|
||||||
.col-md-8
|
.col-md-12
|
||||||
= semantic_form_for @commercial, url: conference_proposal_commercials_path(conference_id: @conference.short_title, proposal_id: @event.id) do |f|
|
.page-header
|
||||||
= render 'form', f: f
|
%h1 New Commercial
|
||||||
|
.row
|
||||||
= link_to 'Back', edit_conference_proposal_path(conference_id: @conference.short_title, id: @event.id)
|
.col-md-12
|
||||||
|
= semantic_form_for @commercial, url: conference_proposal_commercials_path(conference_id: @conference.short_title, proposal_id: @event.id) do |f|
|
||||||
|
= render 'form', f: f
|
||||||
|
= link_to 'Back', edit_conference_proposal_path(conference_id: @conference.short_title, id: @event.id)
|
||||||
|
|
|
||||||
|
|
@ -2,41 +2,36 @@
|
||||||
%li
|
%li
|
||||||
%a.smoothscroll{ href: '#callforpapers' } Call For Papers
|
%a.smoothscroll{ href: '#callforpapers' } Call For Papers
|
||||||
|
|
||||||
%div.container#callforpapers.text-center
|
.container
|
||||||
%div.row
|
.row
|
||||||
%div.col-md-12
|
.col-md-12.text-center
|
||||||
%h1
|
%h1
|
||||||
Call For Papers
|
Call For Papers
|
||||||
- if !@conference.call_for_papers.description.blank?
|
- if !@conference.call_for_papers.description.blank?
|
||||||
.lead
|
= markdown(@conference.call_for_papers.description)
|
||||||
= markdown(@conference.call_for_papers.description)
|
.row
|
||||||
|
.col-md-12.text-center
|
||||||
|
.lead
|
||||||
|
= link_to "Submit Your Proposals Today", conference_proposal_index_path(@conference.short_title), class: 'btn btn-info', target: '_blank'
|
||||||
- if !@conference.call_for_papers.start_date.blank? && !@conference.call_for_papers.end_date.blank?
|
- if !@conference.call_for_papers.start_date.blank? && !@conference.call_for_papers.end_date.blank?
|
||||||
.lead Proposals will be accepted between
|
%p
|
||||||
#cfp-date
|
Proposals will be accepted between
|
||||||
|
%p#cfp-date
|
||||||
= date_string(@conference.call_for_papers.start_date, @conference.call_for_papers.end_date)
|
= date_string(@conference.call_for_papers.start_date, @conference.call_for_papers.end_date)
|
||||||
- if @conference.cfp_open?
|
.row
|
||||||
- if @conference.call_for_papers.end_date.to_time < Time.now
|
.col-md-8.col-md-offset-3.text-center
|
||||||
.lead Today is the last day. Hurry Up!
|
%div.col-md-2.timer-box
|
||||||
- else
|
%h2#days
|
||||||
.row
|
.lead Days
|
||||||
.col-md-8.col-md-offset-3
|
%div.col-md-2.timer-box
|
||||||
%div.col-md-2.timer-box
|
%h2#hours
|
||||||
%h2#days
|
.lead Hours
|
||||||
.lead Days
|
%div.col-md-2.timer-box
|
||||||
%div.col-md-2.timer-box
|
%h2#minutes
|
||||||
%h2#hours
|
.lead Minutes
|
||||||
.lead Hours
|
%div.col-md-2.timer-box
|
||||||
%div.col-md-2.timer-box
|
%h2#seconds
|
||||||
%h2#minutes
|
.lead Seconds
|
||||||
.lead Minutes
|
|
||||||
%div.col-md-2.timer-box
|
|
||||||
%h2#seconds
|
|
||||||
.lead Seconds
|
|
||||||
.row
|
|
||||||
.lead
|
|
||||||
= link_to "Submit Your Proposals Today", conference_proposal_index_path(@conference.short_title), class: 'btn btn-info', target: '_blank'
|
|
||||||
-else
|
|
||||||
%h3 Call for Papers is currently closed!
|
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
$( document ).ready(function(){
|
$( document ).ready(function(){
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
%div.row.text-center
|
|
||||||
%div.col-md-12
|
|
||||||
%h3 Keynote Speakers
|
|
||||||
- @keynote_speakers.each do |k|
|
|
||||||
%div{ class: (@keynote_speakers.count.to_i <= 2 ? "col-md-#{12/@keynote_speakers.count.to_i}" : "col-md-4") }
|
|
||||||
= image_tag(k.gravatar_url(size: '80'), class: 'img-circle') unless k.gravatar_url.blank?
|
|
||||||
%h4
|
|
||||||
= k.name
|
|
||||||
-unless k.biography.blank?
|
|
||||||
%p
|
|
||||||
= k.biography
|
|
||||||
|
|
@ -2,25 +2,19 @@
|
||||||
%li
|
%li
|
||||||
%a.smoothscroll{ href: '#location' } Location
|
%a.smoothscroll{ href: '#location' } Location
|
||||||
|
|
||||||
|
.container
|
||||||
%div.banner-disp{ style: ("background-image: url(#{@conference.venue.photo})" unless @conference.venue.photo.blank?), class:('with-background' unless @conference.venue.photo.blank?) }
|
.row
|
||||||
%div.container.text-center
|
.col-md-12.text-center
|
||||||
.div.row.col-md-12
|
|
||||||
- unless @conference.venue.name.blank?
|
- unless @conference.venue.name.blank?
|
||||||
%h1
|
%h1
|
||||||
%strong #{ @conference.venue.name }
|
%strong #{ @conference.venue.name }
|
||||||
- unless @conference.venue.address.blank?
|
- unless @conference.venue.address.blank?
|
||||||
%h2
|
= link_to("http://maps.google.com/maps?q=#{@conference.venue.address}") do
|
||||||
%strong #{ @conference.venue.address }
|
%h2
|
||||||
|
#{ @conference.venue.address }
|
||||||
- unless @conference.venue.description.blank?
|
- unless @conference.venue.description.blank?
|
||||||
.lead
|
.lead
|
||||||
= markdown(@conference.venue.description)
|
= markdown(@conference.venue.description)
|
||||||
%ul.location-links
|
- unless @conference.venue.website.blank?
|
||||||
- unless @conference.venue.address.blank?
|
%p.lead
|
||||||
%li
|
= link_to(@conference.venue.website, @conference.venue.website)
|
||||||
%b
|
|
||||||
= link_to 'View in Google Maps', "http://maps.google.com/maps?q=#{@conference.venue.address}", target: '_blank'
|
|
||||||
- unless @conference.venue.website.blank?
|
|
||||||
%li
|
|
||||||
%b
|
|
||||||
= link_to 'Visit Venue Website', @conference.venue.website, target: '_blank'
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
%div.container.text-center
|
.container
|
||||||
%h2 Lodging
|
.row
|
||||||
-unless @conference.splashpage.lodging_description.blank?
|
.col-md-12.text-center
|
||||||
.lead
|
%h2 Accommodation Deals
|
||||||
= markdown(@conference.splashpage.lodging_description)
|
%p.lead
|
||||||
|
We have prepared affordable accommodation deals for your visit.
|
||||||
%div.row.text-center
|
.row
|
||||||
- @conference.venue.lodgings.each do |r|
|
- @conference.venue.lodgings.each do |r|
|
||||||
%div{ class: (@conference.venue.lodgings.count.to_i <= 2 ? "col-md-#{12/@conference.venue.lodgings.count.to_i}" : "col-md-4") }
|
%div{ class: (@conference.venue.lodgings.count.to_i <= 2 ? "col-md-#{12/@conference.venue.lodgings.count.to_i}" : "col-md-4") }
|
||||||
.div.thumbnail
|
.div.thumbnail
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,36 @@
|
||||||
= content_for :splash_nav do
|
= content_for :splash_nav do
|
||||||
%li
|
%li
|
||||||
%a.smoothscroll{ href: '#program' } Program
|
=link_to('#program', class: 'smoothscroll') do
|
||||||
|
Program
|
||||||
|
|
||||||
%div.container.text-center
|
.container
|
||||||
%div.row
|
.row
|
||||||
%div.col-md-12
|
.col-md-12.text-center
|
||||||
%h1 Program
|
%h1 Program
|
||||||
- if @conference.call_for_papers and @conference.call_for_papers.schedule_public
|
- if @conference.splashpage and @conference.splashpage.include_tracks
|
||||||
%span You can check out our
|
.row
|
||||||
%span
|
.col-md-12
|
||||||
= link_to 'Schedule', conference_schedule_path(@conference.short_title), target: '_blank'
|
- @conference.tracks.each do |t|
|
||||||
- else
|
.tracks{ class: (@conference.tracks.count.to_i <= 2 ? "col-md-#{12/@conference.tracks.count.to_i}" : "col-md-4") }
|
||||||
%span The schedule is not ready yet. Stay tuned!
|
%h4.text-center
|
||||||
|
= t.name
|
||||||
- unless @keynote_speakers.blank?
|
%p
|
||||||
= render 'keynote_speakers'
|
= markdown(t.description)
|
||||||
|
- if @conference.call_for_papers and @conference.call_for_papers.schedule_public
|
||||||
-unless @conference.tracks.blank?
|
.row
|
||||||
- if @conference.splashpage.include_tracks
|
.col-md-12
|
||||||
= render 'tracks'
|
%p.text-center
|
||||||
|
Check out our
|
||||||
|
= link_to 'Schedule', conference_schedule_path(@conference.short_title)
|
||||||
|
- if !@keynote_speakers.blank?
|
||||||
|
%div.row.text-center
|
||||||
|
%div.col-md-12
|
||||||
|
%h3 Keynote Speakers
|
||||||
|
- @keynote_speakers.each do |k|
|
||||||
|
%div{ class: (@keynote_speakers.count.to_i <= 2 ? "col-md-#{12/@keynote_speakers.count.to_i}" : "col-md-4") }
|
||||||
|
= image_tag(k.gravatar_url(size: '80'), class: 'img-circle') unless k.gravatar_url.blank?
|
||||||
|
%h4
|
||||||
|
= k.name
|
||||||
|
-unless k.biography.blank?
|
||||||
|
%p
|
||||||
|
= k.biography
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,16 @@
|
||||||
= content_for :splash_nav do
|
= content_for :splash_nav do
|
||||||
%li
|
%li
|
||||||
%a.smoothscroll{ href: '#registration' } Registration
|
%a.smoothscroll{ href: '#registration' } Registration
|
||||||
%div.container.text-center
|
|
||||||
%div.row
|
.container
|
||||||
%h1 Registration
|
.row
|
||||||
- if !@conference.splashpage.registration_description.blank?
|
.col-md-12.text-center
|
||||||
.lead
|
%h1 Registration
|
||||||
= markdown(@conference.splashpage.registration_description)
|
%p.lead
|
||||||
- if @conference.registration_dates_given?
|
Going to
|
||||||
-if @conference.registration_period.end_date >= Date.today
|
= @conference.short_title
|
||||||
%h4 Registration period #{ date_string(@conference.registration_period.start_date, @conference.registration_period.end_date) }
|
is free of charge. We only ask you to
|
||||||
-else
|
= link_to "register yourself", new_conference_conference_registrations_path(@conference.short_title)
|
||||||
%h4 Registration is Closed, it was from #{ date_string(@conference.registration_period.start_date, @conference.registration_period.end_date) }
|
until
|
||||||
- if @conference.registration_open?
|
= @conference.registration_period.end_date
|
||||||
- if current_user && @conference.user_registered?(current_user)
|
|
||||||
= link_to "Modify Registration for #{@conference.short_title}", edit_conference_conference_registrations_path(@conference.short_title), class: "btn btn-success btn-lg", target: '_blank'
|
|
||||||
- else
|
|
||||||
= link_to "Register for #{@conference.short_title}", new_conference_conference_registrations_path(@conference.short_title), class: "btn btn-success btn-lg", target: '_blank'
|
|
||||||
- if @conference.tickets.any?
|
|
||||||
- if @conference.splashpage.include_tickets
|
|
||||||
= render 'tickets'
|
|
||||||
|
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
= content_for :splash_nav do
|
|
||||||
%li
|
|
||||||
%a.smoothscroll{ href: '#sponsors' } Sponsors
|
|
||||||
%div.container#sponsors.text-center
|
|
||||||
%div.row
|
|
||||||
%div.col-md-12
|
|
||||||
%h2 Sponsors
|
|
||||||
-if !@conference.splashpage.sponsor_description.blank?
|
|
||||||
.lead
|
|
||||||
= markdown(@conference.splashpage.sponsor_description)
|
|
||||||
-if @conference.contact && @conference.contact.sponsor_email.present?
|
|
||||||
%h3= mail_to "#{ @conference.contact.sponsor_email }", 'Become a Sponsor'
|
|
||||||
- if !@conference.sponsorship_levels.blank?
|
|
||||||
- @conference.sponsorship_levels.each do |l|
|
|
||||||
- if !l.sponsors.blank?
|
|
||||||
%div.row.text-center
|
|
||||||
%h4 #{l.title}
|
|
||||||
- l.sponsors.each_with_index do |r,index|
|
|
||||||
%div.text-center{ class: (l.sponsors.count.to_i <= 2 ? "col-md-#{12/l.sponsors.count.to_i}" : "col-md-4") }
|
|
||||||
- if !r.logo.blank?
|
|
||||||
= link_to image_tag(r.logo(:large), alt: "#{r.name} Logo", title: "#{r.description}"), "http://#{r.website_url}"
|
|
||||||
- unless index == 0
|
|
||||||
- if index%2 == 0
|
|
||||||
%div.clearfix.visible-md.visible-lg
|
|
||||||
33
app/views/conference/_sponsors.html.haml
Normal file
33
app/views/conference/_sponsors.html.haml
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
= content_for :splash_nav do
|
||||||
|
%li
|
||||||
|
%a.smoothscroll{ href: '#sponsors' } Sponsors
|
||||||
|
|
||||||
|
.container
|
||||||
|
.row
|
||||||
|
.col-md-12
|
||||||
|
%h2 Sponsors
|
||||||
|
%p.lead
|
||||||
|
whom without,
|
||||||
|
= @conference.short_title
|
||||||
|
wouldn't be possible!
|
||||||
|
- @conference.sponsorship_levels.each do |sponsorship_level|
|
||||||
|
-if sponsorship_level.sponsors.any?
|
||||||
|
.row
|
||||||
|
.col-md-12.text-center
|
||||||
|
%h3
|
||||||
|
= sponsorship_level.title
|
||||||
|
- sponsorship_level.sponsors.each_slice(3) do |slice|
|
||||||
|
.row
|
||||||
|
- slice.each do |sponsor|
|
||||||
|
.col-md-4
|
||||||
|
= link_to("http://#{sponsor.website_url}", class: 'thumbnail') do
|
||||||
|
= image_tag(sponsor.logo(:large), alt: "#{sponsor.name} Logo", title: "#{sponsor.description}")
|
||||||
|
-if @conference.contact and !@conference.contact.sponsor_email.blank?
|
||||||
|
.row
|
||||||
|
.col-md-12
|
||||||
|
%p.text-muted.text-center
|
||||||
|
%small
|
||||||
|
Want to sponsor #{@conference.short_title}?
|
||||||
|
= link_to("mailto: #{@conference.contact.sponsor_email}?subject=#{@conference.short_title}%20Sponsorship") do
|
||||||
|
Please contact us!
|
||||||
|
|
||||||
|
|
@ -1,15 +1,21 @@
|
||||||
%div.row
|
.container
|
||||||
%h3 Tickets
|
.row
|
||||||
-if @conference.splashpage.ticket_description.present?
|
.col-md-12.text-center
|
||||||
.lead
|
%h1
|
||||||
= markdown(@conference.splashpage.ticket_description)
|
Support
|
||||||
- @conference.tickets.each do |s|
|
=@conference.short_title
|
||||||
%div.col-md-6
|
%p.lead
|
||||||
|
To support our event you can purchase tickets
|
||||||
|
.row
|
||||||
|
- @conference.tickets.each do |ticket|
|
||||||
|
%div{ class: (@conference.tickets.count <= 2 ? "col-md-#{12/@conference.tickets.count}" : "col-md-4") }
|
||||||
- if ticket.title.present?
|
- if ticket.title.present?
|
||||||
%h4 #{ ticket.title }
|
%h4.text-center
|
||||||
|
=ticket.title
|
||||||
- if ticket.description.present?
|
- if ticket.description.present?
|
||||||
.lead
|
= markdown(ticket.description)
|
||||||
= markdown(ticket.description)
|
.text-center
|
||||||
%div.btn-group
|
.btn-group
|
||||||
= link_to "Buy Ticket", conference_tickets_path(@conference.short_title), class: 'btn btn-success'
|
= link_to(conference_tickets_path(@conference.short_title), class: 'btn btn-success') do
|
||||||
= button_tag "#{humanized_money_with_symbol ticket.price}", class: 'btn btn-success'
|
Buy Ticket
|
||||||
|
= "#{humanized_money_with_symbol ticket.price}"
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
%div.row.text-center
|
|
||||||
%div.col-md-12
|
|
||||||
%h2 Tracks
|
|
||||||
- @conference.tracks.each do |t|
|
|
||||||
%div.tracks{ class: (@conference.tracks.count.to_i <= 2 ? "col-md-#{12/@conference.tracks.count.to_i}" : "col-md-4") }
|
|
||||||
%h4
|
|
||||||
= t.name
|
|
||||||
%p
|
|
||||||
= markdown(t.description)
|
|
||||||
|
|
@ -1,60 +1,51 @@
|
||||||
= content_for :splash do
|
#splash
|
||||||
- if @conference.splashpage
|
- if @conference.splashpage
|
||||||
.splash
|
- if @conference.splashpage.include_banner?
|
||||||
- if @conference.splashpage.include_banner?
|
#splash-banner{ style: ("background-image: url(#{@conference.splashpage.banner_photo})" unless @conference.splashpage.banner_photo.blank?) }
|
||||||
%section{ id: 'splash-banner' }
|
.container
|
||||||
%div.banner-disp{ style: ("background-image: url(#{@conference.splashpage.banner_photo})" unless @conference.splashpage.banner_photo.blank?), class:('with-background' unless @conference.splashpage.banner_photo.blank?) }
|
.row
|
||||||
%div.container.text-center.banner-text
|
.col-md-12.text-center
|
||||||
.row
|
%h1= @conference.title
|
||||||
%h1
|
|
||||||
= @conference.title
|
|
||||||
- if @conference.start_date && @conference.end_date
|
- if @conference.start_date && @conference.end_date
|
||||||
.row
|
%h3= date_string(@conference.start_date, @conference.end_date)
|
||||||
%h3
|
|
||||||
= date_string(@conference.start_date, @conference.end_date)
|
|
||||||
|
|
||||||
- unless @conference.splashpage.banner_description.blank?
|
- unless @conference.splashpage.banner_description.blank?
|
||||||
.row-fluid
|
%p.lead
|
||||||
.col-md-12.lead
|
= markdown(@conference.splashpage.banner_description)
|
||||||
.lead
|
|
||||||
= markdown(@conference.splashpage.banner_description)
|
|
||||||
-unless @conference.photos.blank?
|
-unless @conference.photos.blank?
|
||||||
= link_to 'Gallery', gallery_photos_conference_path(@conference.short_title), class: 'btn btn-primary btn-lg', id: 'gallery-btn', remote: true
|
= link_to 'Gallery', gallery_photos_conference_path(@conference.short_title), class: 'btn btn-primary btn-lg', id: 'gallery-btn', remote: true
|
||||||
= render 'gallery'
|
= render 'gallery'
|
||||||
- if @conference.splashpage.include_program
|
|
||||||
%section{ id: 'program' }
|
- if @conference.splashpage.include_program
|
||||||
.pad
|
%section#program
|
||||||
= render 'program'
|
= render 'program'
|
||||||
|
|
||||||
- if @conference.splashpage.include_registrations
|
- if @conference.cfp_open? and @conference.call_for_papers.include_cfp_in_splash?
|
||||||
%section{ id: 'registration' }
|
%section#callforpapers
|
||||||
.pad
|
= render 'call_for_papers'
|
||||||
= render 'registration'
|
|
||||||
|
- if @conference.venue and @conference.splashpage.include_venue
|
||||||
|
#location{ style: ("background-image: url(#{@conference.venue.photo})" unless @conference.venue.photo.blank?) }
|
||||||
-unless @conference.call_for_papers.blank?
|
= render 'location'
|
||||||
- if @conference.call_for_papers.include_cfp_in_splash?
|
|
||||||
%section{ id:'callforpapers' }
|
- if @conference.registration_open? and @conference.splashpage.include_registrations
|
||||||
.pad
|
%section#registration
|
||||||
= render 'call_for_papers'
|
= render 'registration'
|
||||||
|
|
||||||
-unless @conference.venue.blank?
|
- if @conference.tickets.any? and @conference.splashpage.include_tickets
|
||||||
- if @conference.splashpage.include_venue
|
%section#tickets
|
||||||
%section{ id: 'location' }
|
= render 'tickets'
|
||||||
.pad
|
|
||||||
= render 'location'
|
- if @conference.venue.lodgings.any? and @conference.splashpage.include_lodgings
|
||||||
- unless @conference.venue.lodgings.empty?
|
%section#lodging
|
||||||
- if @conference.splashpage.include_lodgings
|
= render 'lodging'
|
||||||
= render 'lodging'
|
|
||||||
|
- if @conference.sponsors.any? and @conference.splashpage.include_sponsors
|
||||||
- if @conference.splashpage.include_sponsors
|
%section#sponsors
|
||||||
%section{ id: 'sponsors' }
|
= render 'sponsors'
|
||||||
.pad
|
|
||||||
= render 'sponsor'
|
- if @conference.splashpage.include_social_media
|
||||||
|
%section#social-media
|
||||||
- if @conference.splashpage.include_social_media
|
= render 'social_media'
|
||||||
%section{ id: 'social-media' }
|
|
||||||
.pad
|
// grmbl
|
||||||
= render 'social_media'
|
= render 'footer'
|
||||||
|
|
||||||
= render 'footer'
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,23 @@
|
||||||
.row
|
.container
|
||||||
.col-md-12
|
.row
|
||||||
= semantic_form_for(@registration, url: conference_conference_registrations_path(@conference.short_title)) do |f|
|
.col-md-12
|
||||||
.tabbable
|
= semantic_form_for(@registration, url: conference_conference_registrations_path(@conference.short_title)) do |f|
|
||||||
%ul.nav.nav-tabs
|
.tabbable
|
||||||
%li.active
|
%ul.nav.nav-tabs
|
||||||
= link_to 'Register', '#register-content', 'data-toggle' => 'tab'
|
%li.active
|
||||||
- if @conference.use_volunteers
|
= link_to 'Register', '#register-content', 'data-toggle' => 'tab'
|
||||||
%li
|
- if @conference.use_volunteers
|
||||||
= link_to 'Volunteer', '#volunteer-content', 'data-toggle' => 'tab'
|
%li
|
||||||
.tab-content
|
= link_to 'Volunteer', '#volunteer-content', 'data-toggle' => 'tab'
|
||||||
#register-content.tab-pane.active
|
.tab-content
|
||||||
= render 'conference_registrations/registration', f: f
|
#register-content.tab-pane.active
|
||||||
- if @conference.use_volunteers
|
= render 'conference_registrations/registration', f: f
|
||||||
#volunteer-content.tab-pane
|
- if @conference.use_volunteers
|
||||||
= render 'conference_registrations/volunteer', f: f
|
#volunteer-content.tab-pane
|
||||||
- if @conference.user_registered?(current_user)
|
= render 'conference_registrations/volunteer', f: f
|
||||||
= f.action :submit, button_html: { value: 'Update Registration', class: 'btn btn-primary' }
|
- if @conference.user_registered?(current_user)
|
||||||
= link_to 'Unregister', conference_conference_registrations_path(@conference.short_title),
|
= f.action :submit, button_html: { value: 'Update Registration', class: 'btn btn-primary' }
|
||||||
method: :delete, class: 'btn btn-danger', confirm: 'Are you sure you want to unregister?'
|
= link_to 'Unregister', conference_conference_registrations_path(@conference.short_title),
|
||||||
- else
|
method: :delete, class: 'btn btn-danger', confirm: 'Are you sure you want to unregister?'
|
||||||
= f.action :submit, button_html: { value: 'Register', class: 'btn btn-primary', id: 'register' }
|
- else
|
||||||
|
= f.action :submit, button_html: { value: 'Register', class: 'btn btn-primary', id: 'register' }
|
||||||
|
|
|
||||||
|
|
@ -1,126 +1,119 @@
|
||||||
%h1
|
.container
|
||||||
= @conference.title
|
.row
|
||||||
%small
|
.col-md-12
|
||||||
= date_string(@conference.start_date, @conference.end_date)
|
.page-header
|
||||||
- if @conference.venue.name and @conference.venue.website and @conference.venue.address
|
%h1
|
||||||
%p
|
= @conference.title
|
||||||
%small
|
%small
|
||||||
at
|
= date_string(@conference.start_date, @conference.end_date)
|
||||||
= link_to @conference.venue.name, @conference.venue.website
|
.row
|
||||||
,
|
.col-md-6
|
||||||
\#{link_to @conference.venue.address, "http://maps.google.com/maps?q=#{@conference.venue.address}"}
|
- if @conference.venue.name and @conference.venue.website and @conference.venue.address
|
||||||
.row
|
%p
|
||||||
.col-md-4
|
%small
|
||||||
.row
|
at
|
||||||
|
= link_to @conference.venue.name, @conference.venue.website
|
||||||
|
,
|
||||||
|
= link_to @conference.venue.address, "http://maps.google.com/maps?q=#{@conference.venue.address}"
|
||||||
|
.col-md-4
|
||||||
- if @conference.contact.facebook.present?
|
- if @conference.contact.facebook.present?
|
||||||
%div.col-md-3
|
= link_to "#{ @conference.contact.facebook }" do
|
||||||
= link_to "#{ @conference.contact.facebook }" do
|
%i.fa.fa-facebook-square
|
||||||
%i.fa.fa-facebook-square.fa-2x
|
|
||||||
- if @conference.contact.twitter.present?
|
- if @conference.contact.twitter.present?
|
||||||
%div.col-md-3
|
= link_to "#{ @conference.contact.twitter }" do
|
||||||
= link_to "#{ @conference.contact.twitter }" do
|
%i.fa.fa-twitter
|
||||||
%i.fa.fa-twitter.fa-2x
|
|
||||||
- if @conference.contact.instagram.present?
|
- if @conference.contact.instagram.present?
|
||||||
%div.col-md-3
|
= link_to "#{ @conference.contact.instagram }" do
|
||||||
= link_to "#{ @conference.contact.instagram }" do
|
%i.fa.fa-instagram
|
||||||
%i.fa.fa-instagram.fa-2x
|
|
||||||
- if @conference.contact.googleplus.present?
|
- if @conference.contact.googleplus.present?
|
||||||
%div.col-md-3
|
= link_to "#{ @conference.contact.googleplus }" do
|
||||||
= link_to "#{ @conference.contact.googleplus }" do
|
%i.fa.fa-google-plus-square
|
||||||
%i.fa.fa-google-plus-square.fa-2x
|
.row
|
||||||
|
.col-md-12
|
||||||
%br
|
- if @conference.tickets.any?
|
||||||
|
%h3
|
||||||
- if @conference.tickets.any?
|
Tickets
|
||||||
%h3
|
- if current_user.tickets.any?
|
||||||
Tickets
|
%p
|
||||||
- if current_user.tickets.any?
|
You have purchased the following tickets:
|
||||||
%p
|
= render partial: 'tickets_bought', locals: { tickets: current_user.tickets }
|
||||||
You have already purchased the following tickets:
|
- else
|
||||||
%p
|
= render partial: 'tickets', locals: { tickets: @conference.tickets }
|
||||||
If you would like to buy more tickets, please click
|
%p
|
||||||
= link_to 'here', conference_tickets_path(@conference.short_title)
|
If you would like to buy more tickets, please click
|
||||||
= render partial: 'tickets_bought', locals: { tickets: current_user.tickets }
|
= link_to 'here', conference_tickets_path(@conference.short_title)
|
||||||
|
.row
|
||||||
- else
|
.col-md-12
|
||||||
= render partial: 'tickets', locals: { tickets: @conference.tickets }
|
- if @conference.speakers.confirmed.any?
|
||||||
%br
|
%h3
|
||||||
- if @conference.speakers.confirmed.any?
|
= pluralize(@conference.speakers.confirmed.count, 'Speaker')
|
||||||
%h3
|
- @conference.speakers.confirmed.limit(12).each_slice(4) do |slice|
|
||||||
= pluralize(@conference.speakers.confirmed.count, 'Speaker')
|
|
||||||
- @conference.speakers.confirmed.limit(12).each_slice(4) do |slice|
|
|
||||||
.row
|
|
||||||
- slice.each do |speaker|
|
|
||||||
.col-md-3
|
|
||||||
.row
|
.row
|
||||||
.col-md-3
|
- slice.each do |speaker|
|
||||||
= image_tag(speaker.gravatar_url(size: '25'),
|
.col-md-3
|
||||||
title: "Yo #{speaker.name}!",
|
.row
|
||||||
alt: '', 'class' => 'img-circle img-responsive text-center')
|
.col-md-3
|
||||||
.col-md-9
|
= image_tag(speaker.gravatar_url(size: '25'),
|
||||||
|
title: "Yo #{speaker.name}!",
|
||||||
|
alt: '', 'class' => 'img-circle img-responsive text-center')
|
||||||
|
.col-md-9
|
||||||
|
%h4
|
||||||
|
= speaker.name
|
||||||
|
.row
|
||||||
|
.col-md-12
|
||||||
|
- if @conference.events.confirmed.any?
|
||||||
|
%h3
|
||||||
|
= pluralize(@conference.events.confirmed.count, 'Event')
|
||||||
|
%ul.list-unstyled
|
||||||
|
- @conference.events.confirmed.limit(10).each do |event|
|
||||||
|
%li
|
||||||
%h4
|
%h4
|
||||||
= speaker.name
|
= link_to event.title, conference_proposal_path(@conference.short_title, event.id)
|
||||||
%hr
|
%strong
|
||||||
|
presented by
|
||||||
- if @conference.events.confirmed.any?
|
= event.speaker_names
|
||||||
%h3
|
.row
|
||||||
= pluralize(@conference.events.confirmed.count, 'Event')
|
.col-md-12
|
||||||
%ul.list-unstyled
|
- if @conference.participants.any?
|
||||||
- @conference.events.confirmed.limit(10).each do |event|
|
%h3
|
||||||
%li
|
= pluralize(@conference.participants.count, 'Participant')
|
||||||
%h4
|
- @conference.participants.limit(36).each_slice(12) do |slice|
|
||||||
= link_to event.title, conference_proposal_path(@conference.short_title, event.id)
|
.row
|
||||||
%strong
|
- slice.each do |participant|
|
||||||
presented by
|
.col-md-1
|
||||||
= event.speaker_names
|
= image_tag(participant.gravatar_url(size: '25'),
|
||||||
%hr
|
title: "Yo #{participant.name}!",
|
||||||
|
alt: '', 'class' => 'img-circle img-responsive text-center')
|
||||||
- if @conference.participants.any?
|
.row
|
||||||
%h3
|
.col-md-12
|
||||||
= pluralize(@conference.participants.count, 'Participant')
|
- if @registration
|
||||||
- @conference.participants.limit(36).each_slice(12) do |slice|
|
%h2
|
||||||
.row
|
Congratulations! You are now registered for
|
||||||
- slice.each do |participant|
|
= "#{@conference.title}!"
|
||||||
.col-md-1
|
- if @conference.questions.any?
|
||||||
= image_tag(participant.gravatar_url(size: '25'),
|
%h3 Your answers to the registrations questions are:
|
||||||
title: "Yo #{participant.name}!",
|
- @conference.questions.each do |q|
|
||||||
alt: '', 'class' => 'img-circle img-responsive text-center')
|
%p
|
||||||
%hr
|
%b Question:
|
||||||
|
= q.title
|
||||||
- if @registration
|
%b Your Answer:
|
||||||
%h2
|
- @registration.qanswers.where(:question_id => q.id).each do |qa|
|
||||||
Congratulations! You are now registered for
|
= qa.answer.title
|
||||||
= "#{@conference.title}!"
|
- if @workshops.any?
|
||||||
|
%h3 You are registered for the following workshops:
|
||||||
- if @conference.questions.any?
|
%ul.list-unstyled
|
||||||
%h3 Your answers to the registrations questions are:
|
- @workshops.each do |workshop|
|
||||||
- @conference.questions.each do |q|
|
%li
|
||||||
%p
|
%h4
|
||||||
%b Question:
|
= link_to workshop.title, conference_proposal_path(@conference.short_title, workshop.id)
|
||||||
= q.title
|
%strong
|
||||||
|
presented by
|
||||||
%b Your Answer:
|
= workshop.speaker_names
|
||||||
- @registration.qanswers.where(:question_id => q.id).each do |qa|
|
%div
|
||||||
= qa.answer.title
|
= link_to 'Modify your Registration', edit_conference_conference_registrations_path(@conference.short_title), class: 'btn btn-success'
|
||||||
%br
|
= link_to 'Unregister', conference_conference_registrations_path(@conference.short_title),
|
||||||
|
method: :delete, class: 'btn btn-danger', confirm: 'Are you sure you want to unregister?'
|
||||||
- if @workshops.any?
|
- else
|
||||||
%h3 You are registered for the following workshops:
|
%p.lead
|
||||||
%ul.list-unstyled
|
= "Unfortunately you are not registered for #{@conference.title}. If you want to register click"
|
||||||
- @workshops.each do |workshop|
|
= link_to 'here.', new_conference_conference_registrations_path(@conference.short_title)
|
||||||
%li
|
|
||||||
%h4
|
|
||||||
= link_to workshop.title, conference_proposal_path(@conference.short_title, workshop.id)
|
|
||||||
%strong
|
|
||||||
presented by
|
|
||||||
= workshop.speaker_names
|
|
||||||
%br
|
|
||||||
|
|
||||||
%div
|
|
||||||
= link_to 'Modify your Registration', edit_conference_conference_registrations_path(@conference.short_title), class: 'btn btn-success'
|
|
||||||
= link_to 'Unregister', conference_conference_registrations_path(@conference.short_title),
|
|
||||||
method: :delete, class: 'btn btn-danger', confirm: 'Are you sure you want to unregister?'
|
|
||||||
- else
|
|
||||||
%p.lead
|
|
||||||
= "Unfortunately you are not registered for #{@conference.title}. If you want to register click"
|
|
||||||
= link_to 'here.', new_conference_conference_registrations_path(@conference.short_title)
|
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,28 @@
|
||||||
%h1 Edit your Account
|
.container
|
||||||
.row
|
.row
|
||||||
.col-md-12
|
.col-md-12
|
||||||
= semantic_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f|
|
.page-header
|
||||||
= f.inputs name: 'Account' do
|
%h1 Edit your Account
|
||||||
|
.row
|
||||||
|
.col-md-12
|
||||||
|
= semantic_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f|
|
||||||
= f.input :username, required: false, input_html: { autocomplete: 'off' }
|
= f.input :username, required: false, input_html: { autocomplete: 'off' }
|
||||||
= f.input :email, required: false, input_html: { autocomplete: 'off' }
|
= f.input :email, required: false, input_html: { autocomplete: 'off' }
|
||||||
= f.input :password, hint: "(Leave blank if you don't want to change it)", input_html: { autocomplete: 'off' }
|
= f.input :password, hint: "(Leave blank if you don't want to change it)", input_html: { autocomplete: 'off' }
|
||||||
= f.input :password_confirmation, input_html: { autocomplete: 'off' }
|
= f.input :password_confirmation, input_html: { autocomplete: 'off' }
|
||||||
= f.inputs name: 'OpenID' do
|
= f.inputs name: 'OpenID' do
|
||||||
%h4
|
%h4
|
||||||
Currently the following openIDs are associated with your account
|
Currently the following openIDs are associated with your account
|
||||||
- @openids.each do |openid|
|
- @openids.each do |openid|
|
||||||
%li= "#{openid.provider}:#{openid.email}"
|
%li= "#{openid.provider}:#{openid.email}"
|
||||||
%br
|
%br
|
||||||
%h4
|
%h4
|
||||||
To add an openID with a different email address to your account, sign in with your
|
To add an openID with a different email address to your account, sign in with your
|
||||||
openID while logged in to OSEM
|
openID while logged in to OSEM
|
||||||
- if User.omniauth_providers.present?
|
- if User.omniauth_providers.present?
|
||||||
#openidlinks
|
#openidlinks
|
||||||
= render 'devise/shared/openid'
|
= render 'devise/shared/openid'
|
||||||
= f.inputs name: 'Confirmation' do
|
= f.inputs name: 'Confirmation' do
|
||||||
= f.input :current_password, input_html: {autocomplete: 'off'},
|
= f.input :current_password, input_html: {autocomplete: 'off'},
|
||||||
hint: '(we need your current password to confirm password, email or username changes)'
|
hint: '(we need your current password to confirm password, email or username changes)'
|
||||||
= f.action :submit, as: :button, label: 'Update Account', button_html: {class: 'btn btn-primary'}
|
= f.action :submit, as: :button, label: 'Update Account', button_html: {class: 'btn btn-primary'}
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,34 @@
|
||||||
.row
|
.container
|
||||||
.col-md-6.col-md-offset-3
|
.row
|
||||||
.panel.panel-default
|
.col-md-6.col-md-offset-3
|
||||||
.panel-heading
|
.panel.panel-default
|
||||||
%h3.panel-title
|
.panel-heading
|
||||||
Sign Up
|
%h3.panel-title
|
||||||
.panel-body
|
Sign Up
|
||||||
= semantic_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
|
.panel-body
|
||||||
= f.input :username, required: true
|
= semantic_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
|
||||||
= f.input :email
|
= f.input :username, required: true
|
||||||
= f.input :name, required: true
|
= f.input :email
|
||||||
= f.input :password
|
= f.input :name, required: true
|
||||||
= f.input :password_confirmation
|
= f.input :password
|
||||||
%p.text-right
|
= f.input :password_confirmation
|
||||||
= f.action :submit, as: :button, label: 'Sign Up', button_html: {class: 'btn btn-success' }
|
%p.text-right
|
||||||
- unless omniauth_configured.empty?
|
= f.action :submit, as: :button, label: 'Sign Up', button_html: {class: 'btn btn-success' }
|
||||||
.row
|
- unless omniauth_configured.empty?
|
||||||
.col-md-4
|
.row
|
||||||
%hr
|
.col-md-4
|
||||||
.col-md-4
|
%hr
|
||||||
%h4.text-center
|
.col-md-4
|
||||||
or sign up using
|
%h4.text-center
|
||||||
.col-md-4
|
or sign up using
|
||||||
%hr
|
.col-md-4
|
||||||
.row
|
%hr
|
||||||
.col-md-12
|
.row
|
||||||
#openidlinks
|
.col-md-12
|
||||||
= render 'devise/shared/openid'
|
#openidlinks
|
||||||
%p.text-right
|
= render 'devise/shared/openid'
|
||||||
%a.small{"data-toggle" => "collapse", "data-target" => "#devise-help"}
|
%p.text-right
|
||||||
Need Help?
|
%a.small{"data-toggle" => "collapse", "data-target" => "#devise-help"}
|
||||||
#devise-help.collapse
|
Need Help?
|
||||||
= render 'devise/shared/links'
|
#devise-help.collapse
|
||||||
|
= render 'devise/shared/links'
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@
|
||||||
%ul
|
%ul
|
||||||
- if can? :update, @conference.sponsorship_levels.build
|
- if can? :update, @conference.sponsorship_levels.build
|
||||||
%li{:class=> "#{active_nav_li(admin_conference_sponsorship_levels_path(@conference.short_title))}" }
|
%li{:class=> "#{active_nav_li(admin_conference_sponsorship_levels_path(@conference.short_title))}" }
|
||||||
= link_to 'Sponsorship', admin_conference_sponsorship_levels_path(@conference.short_title)
|
= link_to 'Sponsorship Levels', admin_conference_sponsorship_levels_path(@conference.short_title)
|
||||||
- if can? :update, @conference.sponsors.build
|
- if can? :update, @conference.sponsors.build
|
||||||
%li{:class=> active_nav_li(admin_conference_sponsors_path(@conference.short_title))}
|
%li{:class=> active_nav_li(admin_conference_sponsors_path(@conference.short_title))}
|
||||||
= link_to 'Sponsors', admin_conference_sponsors_path(@conference.short_title)
|
= link_to 'Sponsors', admin_conference_sponsors_path(@conference.short_title)
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,11 @@
|
||||||
%p
|
%p
|
||||||
OSEM requires JavaScript to be enabled to function. Please turn on JavaScript in your browser's settings and reload the page to continue.
|
OSEM requires JavaScript to be enabled to function. Please turn on JavaScript in your browser's settings and reload the page to continue.
|
||||||
- flash.each do |type, message|
|
- flash.each do |type, message|
|
||||||
%div{:class=>"alert alert-dismissable #{bootstrap_class_for(type)}", :id=>"flash"}
|
.container
|
||||||
.button.close{"data-dismiss" => "alert", "aria-hidden"=>"true"}
|
.row
|
||||||
×
|
.col-md-12
|
||||||
%p
|
%div{:class=>"alert alert-dismissable #{bootstrap_class_for(type)}", :id=>"flash"}
|
||||||
= message
|
.button.close{"data-dismiss" => "alert", "aria-hidden"=>"true"}
|
||||||
|
×
|
||||||
|
%p
|
||||||
|
= message
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
%meta{:content => "", :name => "description"}
|
%meta{:content => "", :name => "description"}
|
||||||
%meta{:content => "", :name => "author"}
|
%meta{:content => "", :name => "author"}
|
||||||
= stylesheet_link_tag "application", :media => "all"
|
= stylesheet_link_tag "application", :media => "all"
|
||||||
= stylesheet_link_tag "splash" if content_for :splash
|
|
||||||
= javascript_include_tag "application"
|
= javascript_include_tag "application"
|
||||||
= csrf_meta_tags
|
= csrf_meta_tags
|
||||||
:javascript
|
:javascript
|
||||||
|
|
@ -25,23 +24,16 @@
|
||||||
|
|
||||||
= javascript_include_tag "//cdn.transifex.com/live.js"
|
= javascript_include_tag "//cdn.transifex.com/live.js"
|
||||||
= yield(:head)
|
= yield(:head)
|
||||||
%body{ data: (content_for?(:splash_nav) ? {spy: 'scroll', offset: 0, target: 'splash-nav'} : {} ) }
|
%body
|
||||||
= render 'layouts/navigation'
|
= render 'layouts/navigation'
|
||||||
-# Admin area
|
-# Admin area
|
||||||
- if controller.class.name.split("::").first=="Admin"
|
- if controller.class.name.split("::").first=="Admin"
|
||||||
= render 'layouts/admin'
|
= render 'layouts/admin'
|
||||||
-else
|
-else
|
||||||
.container#messages
|
#messages
|
||||||
.row
|
= render 'layouts/messages'
|
||||||
.col-md-12
|
#content
|
||||||
= render 'layouts/messages'
|
= yield
|
||||||
- if content_for :splash
|
|
||||||
#content
|
|
||||||
= yield :splash
|
|
||||||
-else
|
|
||||||
.container#content
|
|
||||||
= yield
|
|
||||||
|
|
||||||
#footer
|
#footer
|
||||||
.container
|
.container
|
||||||
%p.muted.text-center
|
%p.muted.text-center
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,35 @@
|
||||||
.row
|
.container
|
||||||
.col-md-12
|
.row
|
||||||
.tabbable
|
.col-md-12
|
||||||
%ul.nav.nav-tabs
|
.tabbable
|
||||||
%li.active
|
%ul.nav.nav-tabs
|
||||||
= link_to "Proposal", "#proposal-content", "data-toggle"=>"tab"
|
%li.active
|
||||||
%li
|
= link_to "Proposal", "#proposal-content", "data-toggle"=>"tab"
|
||||||
= link_to 'Commercials', '#commercials-content', 'data-toggle'=>'tab'
|
%li
|
||||||
.tab-content
|
= link_to 'Commercials', '#commercials-content', 'data-toggle'=>'tab'
|
||||||
#proposal-content.tab-pane.active
|
.tab-content
|
||||||
= render 'proposal/proposal_form'
|
#proposal-content.tab-pane.active
|
||||||
#commercials-content.tab-pane
|
= render 'proposal/proposal_form'
|
||||||
%p.text-muted
|
#commercials-content.tab-pane
|
||||||
You can add commercials for your event. These commercials will be displayed on the event detail site.
|
%p.text-muted
|
||||||
If you don't add a commercial, the conference commercial will be displayed!
|
You can add commercials for your event. These commercials will be displayed on the event detail site.
|
||||||
We currently support the following commercial types: YouTube, Vimeo, Instagram, Flickr, Speakerdeck and SlideShare.
|
If you don't add a commercial, the conference commercial will be displayed!
|
||||||
|
We currently support the following commercial types: YouTube, Vimeo, Instagram, Flickr, Speakerdeck and SlideShare.
|
||||||
- @event.commercials.each_slice(3) do |slice|
|
|
||||||
.row
|
- @event.commercials.each_slice(3) do |slice|
|
||||||
- slice.each do |commercial|
|
.row
|
||||||
.col-md-4
|
- slice.each do |commercial|
|
||||||
.thumbnail
|
.col-md-4
|
||||||
%h3.text-center
|
.thumbnail
|
||||||
= commercial.commercial_type
|
%h3.text-center
|
||||||
.flexvideo
|
= commercial.commercial_type
|
||||||
= render partial: 'shared/media_item', locals: { commercial_type: commercial.commercial_type, commercial_id: commercial.commercial_id }
|
.flexvideo
|
||||||
- if can? :update, commercial
|
= render partial: 'shared/media_item', locals: { commercial_type: commercial.commercial_type, commercial_id: commercial.commercial_id }
|
||||||
= link_to 'Edit', edit_conference_proposal_commercial_path(@conference.short_title, @event.id, commercial.id), class: 'btn btn-primary'
|
- if can? :update, commercial
|
||||||
- if can? :destroy, commercial
|
= link_to 'Edit', edit_conference_proposal_commercial_path(@conference.short_title, @event.id, commercial.id), class: 'btn btn-primary'
|
||||||
= link_to 'Delete', conference_proposal_commercial_path(@conference.short_title, @event.id, commercial.id),
|
- if can? :destroy, commercial
|
||||||
:method => :delete, :data => { :confirm => 'Are you sure?' }, class: 'btn btn-danger'
|
= link_to 'Delete', conference_proposal_commercial_path(@conference.short_title, @event.id, commercial.id),
|
||||||
- if can? :create, @event.commercials.new
|
:method => :delete, :data => { :confirm => 'Are you sure?' }, class: 'btn btn-danger'
|
||||||
%hr
|
- if can? :create, @event.commercials.new
|
||||||
= link_to 'Add Commercial', new_conference_proposal_commercial_path(@conference.short_title, @event.id), class: 'btn btn-primary'
|
%hr
|
||||||
|
= link_to 'Add Commercial', new_conference_proposal_commercial_path(@conference.short_title, @event.id), class: 'btn btn-primary'
|
||||||
|
|
|
||||||
|
|
@ -1,46 +1,47 @@
|
||||||
.row
|
.container
|
||||||
.col-md-12.page-header
|
|
||||||
%h1
|
|
||||||
= "My Proposals for #{@conference.title}"
|
|
||||||
- if @conference.cfp_open? || (current_user.has_role? :organizer, @conference)
|
|
||||||
= link_to "New Proposal", new_conference_proposal_path(@conference.short_title), :class => "btn btn-success pull-right"
|
|
||||||
- if current_user.proposal_count(@conference) > 0
|
|
||||||
.row
|
.row
|
||||||
.col-md-12
|
.col-md-12.page-header
|
||||||
%table.table.table-bordered.table-striped
|
%h1
|
||||||
%thead
|
= "My Proposals for #{@conference.title}"
|
||||||
%th
|
- if @conference.cfp_open? || (current_user.has_role? :organizer, @conference)
|
||||||
%b Title
|
= link_to "New Proposal", new_conference_proposal_path(@conference.short_title), :class => "btn btn-success pull-right"
|
||||||
%th
|
- if current_user.proposal_count(@conference) > 0
|
||||||
%b Status
|
.row
|
||||||
%th
|
.col-md-12
|
||||||
- @events.each do |event|
|
%table.table.table-bordered.table-striped
|
||||||
%tr
|
%thead
|
||||||
%td
|
%th
|
||||||
= link_to event.title, conference_proposal_path(@conference.short_title, event.id)
|
%b Title
|
||||||
%td
|
%th
|
||||||
- if event.state == 'new'
|
%b Status
|
||||||
Review pending
|
%th
|
||||||
- else
|
- @events.each do |event|
|
||||||
= event.state.humanize
|
%tr
|
||||||
- if event.state == 'confirmed' && event.require_registration == true
|
%td
|
||||||
(Pre-registered: #{pre_registered(event).count})
|
= link_to event.title, conference_proposal_path(@conference.short_title, event.id)
|
||||||
- if event.confirmed? && !@conference.user_registered?(current_user)
|
%td
|
||||||
%br
|
- if event.state == 'new'
|
||||||
= link_to "Register to attend", new_conference_conference_registrations_path(@conference.short_title), :style => "font-size:10px;"
|
Review pending
|
||||||
%td
|
- else
|
||||||
.pull-right
|
= event.state.humanize
|
||||||
- if event.transition_possible? :confirm
|
- if event.state == 'confirmed' && event.require_registration == true
|
||||||
= link_to 'Confirm',
|
(Pre-registered: #{pre_registered(event).count})
|
||||||
confirm_conference_proposal_path(@conference.short_title, event),
|
- if event.confirmed? && !@conference.user_registered?(current_user)
|
||||||
method: :patch, class: 'btn btn-mini btn-success', id: "confirm_proposal_#{event.id}"
|
%br
|
||||||
= link_to 'Edit', edit_conference_proposal_path(@conference.short_title, event.id),
|
= link_to "Register to attend", new_conference_conference_registrations_path(@conference.short_title), :style => "font-size:10px;"
|
||||||
class: 'btn btn-mini btn-primary', id: "edit_proposal_#{event.id}"
|
%td
|
||||||
- if event.transition_possible? :withdraw
|
.pull-right
|
||||||
= link_to 'Withdraw', conference_proposal_path(@conference.short_title, event.id), method: :delete,
|
- if event.transition_possible? :confirm
|
||||||
confirm: 'Are you sure you want to withdraw this proposal?', class: 'btn btn-mini btn-warning',
|
= link_to 'Confirm',
|
||||||
id: "delete_proposal_#{event.id}"
|
confirm_conference_proposal_path(@conference.short_title, event),
|
||||||
- if event.state == 'withdrawn' || event.state == 'rejected'
|
method: :patch, class: 'btn btn-mini btn-success', id: "confirm_proposal_#{event.id}"
|
||||||
= link_to 'Re-Submit',
|
= link_to 'Edit', edit_conference_proposal_path(@conference.short_title, event.id),
|
||||||
restart_conference_proposal_path(@conference.short_title, event.id),
|
class: 'btn btn-mini btn-primary', id: "edit_proposal_#{event.id}"
|
||||||
method: :patch, class: 'btn btn-mini btn-success', id: "review_event_#{event.id}"
|
- if event.transition_possible? :withdraw
|
||||||
|
= link_to 'Withdraw', conference_proposal_path(@conference.short_title, event.id), method: :delete,
|
||||||
|
confirm: 'Are you sure you want to withdraw this proposal?', class: 'btn btn-mini btn-warning',
|
||||||
|
id: "delete_proposal_#{event.id}"
|
||||||
|
- if event.state == 'withdrawn' || event.state == 'rejected'
|
||||||
|
= link_to 'Re-Submit',
|
||||||
|
restart_conference_proposal_path(@conference.short_title, event.id),
|
||||||
|
method: :patch, class: 'btn btn-mini btn-success', id: "review_event_#{event.id}"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
.row
|
.container
|
||||||
.col-md-12
|
.row
|
||||||
= simple_format(@conference.call_for_papers.description)
|
.col-md-12
|
||||||
.row
|
= simple_format(@conference.call_for_papers.description)
|
||||||
.col-md-12
|
.row
|
||||||
= render 'proposal_form'
|
.col-md-12
|
||||||
|
= render 'proposal_form'
|
||||||
|
|
|
||||||
|
|
@ -1,71 +1,72 @@
|
||||||
.row
|
.container
|
||||||
.col-md-12.page-header
|
.row
|
||||||
%h2
|
.col-md-12.page-header
|
||||||
= @event.title
|
%h2
|
||||||
- if @event.subtitle
|
= @event.title
|
||||||
%br
|
- if @event.subtitle
|
||||||
%small
|
%br
|
||||||
= @event.subtitle
|
%small
|
||||||
= link_to "Schedule", conference_schedule_path(@conference.short_title), :class =>"btn btn-success pull-right"
|
= @event.subtitle
|
||||||
- if can? :edit, @event
|
= link_to "Schedule", conference_schedule_path(@conference.short_title), :class =>"btn btn-success pull-right"
|
||||||
= link_to "Edit", edit_admin_conference_event_path(@conference.short_title, @event), :class => "btn btn-mini btn-primary pull-right"
|
- if can? :edit, @event
|
||||||
.row
|
= link_to "Edit", edit_admin_conference_event_path(@conference.short_title, @event), :class => "btn btn-mini btn-primary pull-right"
|
||||||
.col-md-3
|
.row
|
||||||
%p
|
.col-md-3
|
||||||
= simple_format(@event.abstract)
|
%p
|
||||||
%dl
|
= simple_format(@event.abstract)
|
||||||
%dt Date:
|
%dl
|
||||||
%dd= @event.start_time.strftime("%Y %B %e %H:%M") if @event.start_time
|
%dt Date:
|
||||||
%dt Duration:
|
%dd= @event.start_time.strftime("%Y %B %e %H:%M") if @event.start_time
|
||||||
%dd= show_time(@event.event_type.length)
|
%dt Duration:
|
||||||
%dt Room:
|
%dd= show_time(@event.event_type.length)
|
||||||
%dd
|
%dt Room:
|
||||||
- if @event.room_id
|
%dd
|
||||||
= @event.room.name
|
- if @event.room_id
|
||||||
%dt Conference:
|
= @event.room.name
|
||||||
%dd= @event.conference.title
|
%dt Conference:
|
||||||
%dt Language:
|
%dd= @event.conference.title
|
||||||
%dd= @event.language if @event.language
|
%dt Language:
|
||||||
%dt Track:
|
%dd= @event.language if @event.language
|
||||||
%dd
|
%dt Track:
|
||||||
- if @event.track_id
|
%dd
|
||||||
%span.label{:style =>"background-color: #{@event.track.color};"}
|
- if @event.track_id
|
||||||
= @event.track.name
|
%span.label{:style =>"background-color: #{@event.track.color};"}
|
||||||
%dt Difficulty:
|
= @event.track.name
|
||||||
%dd
|
%dt Difficulty:
|
||||||
- if @event.difficulty_level_id
|
%dd
|
||||||
%span.label{:style =>"background-color: #{@event.difficulty_level.color};"}
|
- if @event.difficulty_level_id
|
||||||
= @event.difficulty_level.title
|
%span.label{:style =>"background-color: #{@event.difficulty_level.color};"}
|
||||||
- if @event.require_registration
|
= @event.difficulty_level.title
|
||||||
= link_to "Registration required!", new_conference_conference_registrations_path(@conference.short_title), :class => "btn btn-xs btn-warning"
|
- if @event.require_registration
|
||||||
.col-md-9
|
= link_to "Registration required!", new_conference_conference_registrations_path(@conference.short_title), :class => "btn btn-xs btn-warning"
|
||||||
.row
|
.col-md-9
|
||||||
.col-md-12
|
.row
|
||||||
- if @event.commercials.empty?
|
.col-md-12
|
||||||
%h5.text-warning
|
- if @event.commercials.empty?
|
||||||
No video of the event yet, sorry!
|
%h5.text-warning
|
||||||
|
No video of the event yet, sorry!
|
||||||
|
- unless @conference.commercials.empty?
|
||||||
|
Meanwhile...
|
||||||
- unless @conference.commercials.empty?
|
- unless @conference.commercials.empty?
|
||||||
Meanwhile...
|
= render partial: 'shared/media_items', locals: { commercials: @conference.commercials }
|
||||||
- unless @conference.commercials.empty?
|
- else
|
||||||
= render partial: 'shared/media_items', locals: { commercials: @conference.commercials }
|
%p
|
||||||
- else
|
= render partial: 'shared/media_items', locals: { commercials: @event.commercials }
|
||||||
%p
|
.row
|
||||||
= render partial: 'shared/media_items', locals: { commercials: @event.commercials }
|
.speakerinfo
|
||||||
.row
|
.col-md-8
|
||||||
.speakerinfo
|
%h3
|
||||||
.col-md-8
|
by
|
||||||
%h3
|
= @speaker.name
|
||||||
by
|
(
|
||||||
= @speaker.name
|
= @speaker.email
|
||||||
(
|
)
|
||||||
= @speaker.email
|
- if @speaker.affiliation?
|
||||||
)
|
%br
|
||||||
- if @speaker.affiliation?
|
%span.muted
|
||||||
%br
|
from
|
||||||
%span.muted
|
= @speaker.affiliation
|
||||||
from
|
-if @speaker.biography?
|
||||||
= @speaker.affiliation
|
= simple_format(@speaker.biography)
|
||||||
-if @speaker.biography?
|
.col-md-4
|
||||||
= simple_format(@speaker.biography)
|
= image_tag @speaker.gravatar_url(:size => 200), :class => "img-responsive img-rounded"
|
||||||
.col-md-4
|
|
||||||
= image_tag @speaker.gravatar_url(:size => 200), :class => "img-responsive img-rounded"
|
|
||||||
|
|
|
||||||
|
|
@ -1,98 +1,99 @@
|
||||||
<div id="schedule-content">
|
<div class="container">
|
||||||
<h2> Schedule for <%= @conference.title %></h2>
|
<div id="schedule-content">
|
||||||
<ul class="nav nav-tabs">
|
<h2> Schedule for <%= @conference.title %></h2>
|
||||||
<% @dates.each do |date| %>
|
<ul class="nav nav-tabs">
|
||||||
<li <%= "class=active" if @dates.first == date %>>
|
<% @dates.each do |date| %>
|
||||||
<%= link_to date, "#" + "#{date}", "data-toggle" => "tab" %>
|
<li <%= "class=active" if @dates.first == date %>>
|
||||||
</li>
|
<%= link_to date, "#" + "#{date}", "data-toggle" => "tab" %>
|
||||||
<% end %>
|
</li>
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="tab-content">
|
|
||||||
<% @dates.each do |date| %>
|
|
||||||
<div class="tab-pane <%= 'active' if @dates.first == date %>" id ="<%= date %>" >
|
|
||||||
<table class="table table-bordered" id="schedule" width="100%">
|
|
||||||
<tr>
|
|
||||||
<th>Time</th>
|
|
||||||
<% @rooms.each do |room| %>
|
|
||||||
<th><%= room.name %></th>
|
|
||||||
<% end %>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<% span = {} %>
|
|
||||||
<% @rooms.each do |room| %>
|
|
||||||
<% span[room.id] = 1 %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% conf_start = DateTime.parse("#{date} 09:00") %>
|
|
||||||
<% conf_end = DateTime.parse("#{date} 19:00") %>
|
|
||||||
|
|
||||||
<% while conf_start < conf_end %>
|
|
||||||
<%-
|
|
||||||
start_hour = conf_start.hour
|
|
||||||
start_min = conf_start.min %>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="width:5%">
|
|
||||||
<%= conf_start.strftime("%H:%M") %>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<% @rooms.each do |room| %>
|
|
||||||
<% events_for_date = @events.find_all {|e| e.room_id == room.id && e.start_time && e.start_time.to_date == date } %>
|
|
||||||
<% event = events_for_date.find_all{|e| e.start_time.hour == start_hour && e.start_time.min == start_min } %>
|
|
||||||
<% if !event.empty? %>
|
|
||||||
<!-- There is an event, calculate the span and show it -->
|
|
||||||
<% span[room.id] = event[0].event_type.length / 15 %>
|
|
||||||
<td style="width: <%= 95 / @rooms.length %>%; cursor:pointer"
|
|
||||||
rowspan ="<%= span[room.id] %>"
|
|
||||||
class="event" role="button"
|
|
||||||
data-href="<%= url_for(conference_proposal_path(@conference.short_title, event[0].id)) %>">
|
|
||||||
<%- if speaker = event[0].speakers.first %>
|
|
||||||
<%= image_tag speaker.gravatar_url, :class => "img-circle pull-right",
|
|
||||||
:alt => speaker.name,
|
|
||||||
:title => speaker.name,
|
|
||||||
:style => "padding:8px;" %>
|
|
||||||
<%- end %>
|
|
||||||
<h5>
|
|
||||||
<span class="fa fa-comment"></span>
|
|
||||||
<%= event[0].title %>
|
|
||||||
<% unless event[0].subtitle.blank? %>
|
|
||||||
<span class="schedule-subtitle">
|
|
||||||
<%= event[0].subtitle %>
|
|
||||||
<span>
|
|
||||||
<% end %>
|
|
||||||
</h5>
|
|
||||||
</span>
|
|
||||||
<span class="schedule-speaker">
|
|
||||||
<span class="fa fa-user"></span>
|
|
||||||
<%= "#{speaker.name}" %>
|
|
||||||
</span>
|
|
||||||
<% if event[0].track%>
|
|
||||||
<span class="schedule-track">
|
|
||||||
<span class="fa fa-road"></span>
|
|
||||||
<span class="label" style="background-color:<%= event[0].track.color if event[0].track %>"><%= event[0].track.name %></span>
|
|
||||||
</span>
|
|
||||||
<% end -%>
|
|
||||||
</td>
|
|
||||||
<% span[room.id] = span[room.id] + 1 %>
|
|
||||||
<% elsif span[room.id] > 1 %>
|
|
||||||
<!-- span is <%= span[room.id] %> and bigger than 1, substract 1 from span -->
|
|
||||||
<% span[room.id] = ( span[room.id] - 1 ) if span[room.id] > 1 %>
|
|
||||||
<% end %>
|
|
||||||
<% if span[room.id] == 1 %>
|
|
||||||
<!-- span equals 1 show an empty td -->
|
|
||||||
<td style="width: <%= 95 / @rooms.length %>%">
|
|
||||||
</td>
|
|
||||||
<% end %>
|
|
||||||
<%end %>
|
|
||||||
</tr>
|
|
||||||
<% conf_start += 15.minutes %>
|
|
||||||
<%end %>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</ul>
|
||||||
|
|
||||||
|
<div class="tab-content">
|
||||||
|
<% @dates.each do |date| %>
|
||||||
|
<div class="tab-pane <%= 'active' if @dates.first == date %>" id ="<%= date %>" >
|
||||||
|
<table class="table table-bordered" id="schedule" width="100%">
|
||||||
|
<tr>
|
||||||
|
<th>Time</th>
|
||||||
|
<% @rooms.each do |room| %>
|
||||||
|
<th><%= room.name %></th>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% span = {} %>
|
||||||
|
<% @rooms.each do |room| %>
|
||||||
|
<% span[room.id] = 1 %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% conf_start = DateTime.parse("#{date} 09:00") %>
|
||||||
|
<% conf_end = DateTime.parse("#{date} 19:00") %>
|
||||||
|
|
||||||
|
<% while conf_start < conf_end %>
|
||||||
|
<%-
|
||||||
|
start_hour = conf_start.hour
|
||||||
|
start_min = conf_start.min %>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td style="width:5%">
|
||||||
|
<%= conf_start.strftime("%H:%M") %>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<% @rooms.each do |room| %>
|
||||||
|
<% events_for_date = @events.find_all {|e| e.room_id == room.id && e.start_time && e.start_time.to_date == date } %>
|
||||||
|
<% event = events_for_date.find_all{|e| e.start_time.hour == start_hour && e.start_time.min == start_min } %>
|
||||||
|
<% if !event.empty? %>
|
||||||
|
<!-- There is an event, calculate the span and show it -->
|
||||||
|
<% span[room.id] = event[0].event_type.length / 15 %>
|
||||||
|
<td style="width: <%= 95 / @rooms.length %>%; cursor:pointer"
|
||||||
|
rowspan ="<%= span[room.id] %>"
|
||||||
|
class="event" role="button"
|
||||||
|
data-href="<%= url_for(conference_proposal_path(@conference.short_title, event[0].id)) %>">
|
||||||
|
<%- if speaker = event[0].speakers.first %>
|
||||||
|
<%= image_tag speaker.gravatar_url, :class => "img-circle pull-right",
|
||||||
|
:alt => speaker.name,
|
||||||
|
:title => speaker.name,
|
||||||
|
:style => "padding:8px;" %>
|
||||||
|
<%- end %>
|
||||||
|
<h5>
|
||||||
|
<span class="fa fa-comment"></span>
|
||||||
|
<%= event[0].title %>
|
||||||
|
<% unless event[0].subtitle.blank? %>
|
||||||
|
<span class="schedule-subtitle">
|
||||||
|
<%= event[0].subtitle %>
|
||||||
|
<span>
|
||||||
|
<% end %>
|
||||||
|
</h5>
|
||||||
|
</span>
|
||||||
|
<span class="schedule-speaker">
|
||||||
|
<span class="fa fa-user"></span>
|
||||||
|
<%= "#{speaker.name}" %>
|
||||||
|
</span>
|
||||||
|
<% if event[0].track%>
|
||||||
|
<span class="schedule-track">
|
||||||
|
<span class="fa fa-road"></span>
|
||||||
|
<span class="label" style="background-color:<%= event[0].track.color if event[0].track %>"><%= event[0].track.name %></span>
|
||||||
|
</span>
|
||||||
|
<% end -%>
|
||||||
|
</td>
|
||||||
|
<% span[room.id] = span[room.id] + 1 %>
|
||||||
|
<% elsif span[room.id] > 1 %>
|
||||||
|
<!-- span is <%= span[room.id] %> and bigger than 1, substract 1 from span -->
|
||||||
|
<% span[room.id] = ( span[room.id] - 1 ) if span[room.id] > 1 %>
|
||||||
|
<% end %>
|
||||||
|
<% if span[room.id] == 1 %>
|
||||||
|
<!-- span equals 1 show an empty td -->
|
||||||
|
<td style="width: <%= 95 / @rooms.length %>%">
|
||||||
|
</td>
|
||||||
|
<% end %>
|
||||||
|
<%end %>
|
||||||
|
</tr>
|
||||||
|
<% conf_start += 15.minutes %>
|
||||||
|
<%end %>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<%= javascript_tag do %>
|
<%= javascript_tag do %>
|
||||||
jQuery( function($) {
|
jQuery( function($) {
|
||||||
$('tbody tr td[data-href]').addClass('clickable').mouseup(function(e) {
|
$('tbody tr td[data-href]').addClass('clickable').mouseup(function(e) {
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,38 @@
|
||||||
.row
|
.container
|
||||||
.col-sm-12.col-md-10.col-md-offset-1
|
.row
|
||||||
%h1
|
.col-md-12
|
||||||
Tickets
|
.page-header
|
||||||
%p.lead
|
%h1
|
||||||
Please buy a ticket if you want to support
|
Tickets
|
||||||
%b
|
%p.lead
|
||||||
= @conference.title
|
Please buy a ticket to support
|
||||||
!
|
%b
|
||||||
=form_tag(conference_ticket_purchases_path, method: :post) do |f|
|
= @conference.title
|
||||||
%table.table.table-hover
|
=form_tag(conference_ticket_purchases_path, method: :post) do |f|
|
||||||
%thead
|
%table.table.table-hover
|
||||||
%tr
|
%thead
|
||||||
%th Ticket
|
%tr
|
||||||
%th Quantity
|
%th Ticket
|
||||||
%th Price
|
%th Quantity
|
||||||
%th Total
|
%th Price
|
||||||
%tbody
|
%th Total
|
||||||
- @conference.tickets.each do |ticket|
|
%tbody
|
||||||
= render partial: 'ticket', f: f, locals: {ticket: ticket}
|
- @conference.tickets.each do |ticket|
|
||||||
%tr
|
= render partial: 'ticket', f: f, locals: {ticket: ticket}
|
||||||
%td
|
%tr
|
||||||
%td
|
%td
|
||||||
%td.col-sm-1.col-md-1.text-center
|
%td
|
||||||
%h4
|
%td.col-sm-1.col-md-1.text-center
|
||||||
Total
|
%h4
|
||||||
%td.col-sm-1.col-md-1.text-center
|
Total
|
||||||
%h4
|
%td.col-sm-1.col-md-1.text-center
|
||||||
%strong
|
%h4
|
||||||
%span{id: 'total_price'}
|
%strong
|
||||||
0
|
%span{id: 'total_price'}
|
||||||
.pull-right
|
0
|
||||||
= button_tag(type: 'submit', class: 'btn btn-success btn-lg') do
|
.pull-right
|
||||||
Support
|
= button_tag(type: 'submit', class: 'btn btn-success btn-lg') do
|
||||||
%i.fa.fa-shopping-cart
|
Support
|
||||||
= link_to 'Continue without a Ticket!', conference_conference_registrations_path(@conference.short_title),
|
%i.fa.fa-shopping-cart
|
||||||
class: 'btn btn-danger btn-sm'
|
= link_to 'Continue without a Ticket!', conference_conference_registrations_path(@conference.short_title),
|
||||||
|
class: 'btn btn-danger btn-sm'
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
%h1 Edit your profile
|
.container
|
||||||
.row
|
.row
|
||||||
.col-md-12
|
.col-md-12
|
||||||
= semantic_form_for(@user, url: user_path(@user.id)) do |f|
|
.page-header
|
||||||
= f.inputs name: 'Profile' do
|
%h1 Edit your profile
|
||||||
|
.row
|
||||||
|
.col-md-12
|
||||||
|
= semantic_form_for(@user, url: user_path(@user.id)) do |f|
|
||||||
= f.input :name, as: :string
|
= f.input :name, as: :string
|
||||||
= f.input :nickname, as: :string
|
= f.input :nickname, as: :string
|
||||||
= f.input :affiliation, as: :string,
|
= f.input :affiliation, as: :string,
|
||||||
|
|
@ -14,4 +17,4 @@
|
||||||
words. Biographies are limited to 150 words.
|
words. Biographies are limited to 150 words.
|
||||||
%br
|
%br
|
||||||
%br
|
%br
|
||||||
= f.action :submit, as: :button, label: 'Update', button_html: {class: 'btn btn-primary'}
|
= f.action :submit, as: :button, label: 'Update', button_html: {class: 'btn btn-primary'}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,24 @@
|
||||||
%h1
|
.container
|
||||||
= @user.name
|
.row
|
||||||
%h4
|
.col-md-12
|
||||||
= @user.biography
|
.page-header
|
||||||
|
%h1
|
||||||
- if @user.events.confirmed.any?
|
= image_tag(current_user.gravatar_url(size: '48'), title: "Yo #{current_user.name}!", :alt => '')
|
||||||
%h3
|
= @user.name
|
||||||
= "#{@user.name} presents #{pluralize(@user.events.confirmed.count, 'Event')}:"
|
%small
|
||||||
%ul.list-unstyled
|
= @user.nickname
|
||||||
- @user.events.confirmed.each do |event|
|
%p
|
||||||
%li
|
= @user.biography
|
||||||
%h4
|
.row
|
||||||
= link_to event.title, conference_proposal_path(event.conference.short_title, event.id)
|
.col-md-12
|
||||||
%strong
|
- if @user.events.confirmed.any?
|
||||||
at
|
%h3
|
||||||
= event.conference.title
|
= "#{@user.name} presents #{pluralize(@user.events.confirmed.count, 'Event')}:"
|
||||||
|
%ul.list-unstyled
|
||||||
|
- @user.events.confirmed.each do |event|
|
||||||
|
%li
|
||||||
|
%h4
|
||||||
|
= link_to event.title, conference_proposal_path(event.conference.short_title, event.id)
|
||||||
|
%strong
|
||||||
|
at
|
||||||
|
= event.conference.title
|
||||||
|
|
@ -48,7 +48,12 @@ Osem::Application.routes.draw do
|
||||||
|
|
||||||
resources :tracks, only: [:show, :update, :index]
|
resources :tracks, only: [:show, :update, :index]
|
||||||
|
|
||||||
resources :sponsorship_levels, only: [:show, :update, :index]
|
resources :sponsorship_levels, except: [:show] do
|
||||||
|
member do
|
||||||
|
patch :up
|
||||||
|
patch :down
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
resources :sponsors, only: [:show, :update, :index]
|
resources :sponsors, only: [:show, :update, :index]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddPositionToSponsorshipLevel < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :sponsorship_levels, :position, :integer
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20141109172204) do
|
ActiveRecord::Schema.define(version: 20141113134103) do
|
||||||
|
|
||||||
create_table "ahoy_events", force: true do |t|
|
create_table "ahoy_events", force: true do |t|
|
||||||
t.uuid "visit_id"
|
t.uuid "visit_id"
|
||||||
|
|
@ -423,6 +423,7 @@ ActiveRecord::Schema.define(version: 20141109172204) do
|
||||||
t.integer "conference_id"
|
t.integer "conference_id"
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
|
t.integer "position"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "subscriptions", force: true do |t|
|
create_table "subscriptions", force: true do |t|
|
||||||
|
|
|
||||||
|
|
@ -11,22 +11,22 @@ feature Room do
|
||||||
visit admin_conference_rooms_path(
|
visit admin_conference_rooms_path(
|
||||||
conference_id: conference.short_title)
|
conference_id: conference.short_title)
|
||||||
|
|
||||||
expect(page.has_content?('Room Name')).to be false
|
expect(page.has_no_table?('#rooms')).to be true
|
||||||
expect(page.has_content?('100')).to be false
|
|
||||||
|
|
||||||
# Add room
|
# Add room
|
||||||
click_link 'New Room'
|
click_link 'New Room'
|
||||||
|
|
||||||
fill_in 'room_name', with: 'Room Name'
|
fill_in 'room_name', with: 'Auditorium'
|
||||||
fill_in 'room_size', with: '100'
|
fill_in 'room_size', with: '100'
|
||||||
|
|
||||||
click_button 'Create Room'
|
click_button 'Create Room'
|
||||||
|
|
||||||
# Validations
|
# Validations
|
||||||
expect(flash).to eq('Room successfully created.')
|
expect(flash).to eq('Room successfully created.')
|
||||||
|
within('table#rooms') do
|
||||||
expect(page.has_content?('Room Name')).to be true
|
expect(page.has_content?('Auditorium')).to be true
|
||||||
expect(page.has_content?('100')).to be true
|
expect(page.assert_selector('tr', count: 2)).to be true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'updates a room', feature: true, js: true do
|
scenario 'updates a room', feature: true, js: true do
|
||||||
|
|
@ -35,17 +35,19 @@ feature Room do
|
||||||
visit edit_admin_conference_room_path(
|
visit edit_admin_conference_room_path(
|
||||||
conference_id: conference.short_title, id: room.id)
|
conference_id: conference.short_title, id: room.id)
|
||||||
|
|
||||||
fill_in 'room_name', with: 'Room Name'
|
fill_in 'room_name', with: 'Auditorium'
|
||||||
fill_in 'room_size', with: '100'
|
fill_in 'room_size', with: '100'
|
||||||
|
|
||||||
click_button 'Update Room'
|
click_button 'Update Room'
|
||||||
|
|
||||||
# Validations
|
# Validations
|
||||||
expect(flash).to eq('Room successfully updated.')
|
expect(flash).to eq('Room successfully updated.')
|
||||||
expect(page.has_content?('Room Name')).to be true
|
within('table#rooms') do
|
||||||
expect(page.has_content?('100')).to be true
|
expect(page.has_content?('Auditorium')).to be true
|
||||||
|
expect(page.assert_selector('tr', count: 2)).to be true
|
||||||
|
end
|
||||||
room.reload
|
room.reload
|
||||||
expect(room.name).to eq('Room Name')
|
expect(room.name).to eq('Auditorium')
|
||||||
expect(room.size).to eq(100)
|
expect(room.size).to eq(100)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -5,37 +5,51 @@ feature SponsorshipLevel do
|
||||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||||
|
|
||||||
shared_examples 'sponsorship levels' do
|
shared_examples 'sponsorship_levels' do
|
||||||
scenario 'adds and updates sponsorship level', feature: true, js: true do
|
scenario 'adds a sponsorship level', feature: true, js: true do
|
||||||
|
|
||||||
sign_in organizer
|
sign_in organizer
|
||||||
visit admin_conference_sponsorship_levels_path(
|
visit admin_conference_sponsorship_levels_path(
|
||||||
conference_id: conference.short_title)
|
conference_id: conference.short_title)
|
||||||
# Add sponsorship level
|
|
||||||
click_link 'Add sponsorship_level'
|
|
||||||
expect(page.all('div.nested-fields').count == 1).to be true
|
|
||||||
|
|
||||||
page.
|
expect(page.has_no_table?('#sponsorship_levels')).to be true
|
||||||
find('div.nested-fields:nth-of-type(1) div:nth-of-type(1) input').
|
|
||||||
set('Example sponsorship level')
|
|
||||||
|
|
||||||
click_button 'Update Conference'
|
# Add SponsorshipLevel
|
||||||
|
click_link 'New Sponsorship Level'
|
||||||
|
|
||||||
|
fill_in 'sponsorship_level_title', with: 'Platin'
|
||||||
|
|
||||||
|
click_button 'Create Sponsorship level'
|
||||||
|
|
||||||
# Validations
|
# Validations
|
||||||
expect(flash).to eq('Sponsorship levels were successfully updated.')
|
expect(flash).to eq('Sponsorship level successfully created.')
|
||||||
expect(find('div.nested-fields:nth-of-type(1) div:nth-of-type(1) input').
|
within('table#sponsorship_levels') do
|
||||||
value).to eq('Example sponsorship level')
|
expect(page.has_content?('Platin')).to be true
|
||||||
|
expect(page.assert_selector('tr', count: 2)).to be true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Remove sponsorship level
|
scenario 'updates a sponsorship level', feature: true, js: true do
|
||||||
click_link 'Remove sponsorship_level'
|
level = create(:sponsorship_level, conference_id: conference.id)
|
||||||
expect(page.all('div.nested-fields').count == 0).to be true
|
sign_in organizer
|
||||||
click_button 'Update Conference'
|
visit edit_admin_conference_sponsorship_level_path(
|
||||||
expect(flash).to eq('Sponsorship levels were successfully updated.')
|
conference_id: conference.short_title, id: level.id)
|
||||||
expect(page.all('div.nested-fields').count == 0).to be true
|
|
||||||
|
fill_in 'sponsorship_level_title', with: 'Gold'
|
||||||
|
|
||||||
|
click_button 'Update Sponsorship level'
|
||||||
|
|
||||||
|
# Validations
|
||||||
|
expect(flash).to eq('Sponsorship level successfully updated.')
|
||||||
|
within('table#sponsorship_levels') do
|
||||||
|
expect(page.has_content?('Gold')).to be true
|
||||||
|
expect(page.assert_selector('tr', count: 2)).to be true
|
||||||
|
end
|
||||||
|
level.reload
|
||||||
|
expect(level.title).to eq('Gold')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'organizer' do
|
describe 'organizer' do
|
||||||
it_behaves_like 'sponsorship levels'
|
it_behaves_like 'sponsorship_levels'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ describe 'conference/show.html.haml' do
|
||||||
@conference = create(:conference)
|
@conference = create(:conference)
|
||||||
|
|
||||||
@conference.splashpage = create(:splashpage,
|
@conference.splashpage = create(:splashpage,
|
||||||
banner_description: 'Lorem Ipsum',
|
banner_description: 'Banner Description',
|
||||||
sponsor_description: 'Lorem Ipsum Dolor',
|
sponsor_description: 'Sponsor Description',
|
||||||
registration_description: 'Lorem Ipsum Dolor',
|
registration_description: 'Registration Description',
|
||||||
include_registrations: true,
|
include_registrations: true,
|
||||||
include_program: true,
|
include_program: true,
|
||||||
include_sponsors: true,
|
include_sponsors: true,
|
||||||
|
|
@ -19,13 +19,13 @@ describe 'conference/show.html.haml' do
|
||||||
include_lodgings: true)
|
include_lodgings: true)
|
||||||
|
|
||||||
@conference.contact.update(sponsor_email: 'example@example.com',
|
@conference.contact.update(sponsor_email: 'example@example.com',
|
||||||
facebook: 'http://www.fbexample.com',
|
facebook: 'http://facebook.com',
|
||||||
googleplus: 'http://www.google-example.com',
|
googleplus: 'http://google.com',
|
||||||
instagram: 'http://instagram.com',
|
instagram: 'http://instagram.com',
|
||||||
twitter: 'http://twitter.com')
|
twitter: 'http://twitter.com')
|
||||||
|
|
||||||
@conference.registration_period = create(:registration_period,
|
@conference.registration_period = create(:registration_period,
|
||||||
start_date: Date.today,
|
start_date: Date.yesterday,
|
||||||
end_date: Date.tomorrow)
|
end_date: Date.tomorrow)
|
||||||
|
|
||||||
@conference.call_for_papers = create(:call_for_papers, conference: @conference,
|
@conference.call_for_papers = create(:call_for_papers, conference: @conference,
|
||||||
|
|
@ -43,8 +43,8 @@ describe 'conference/show.html.haml' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders banner component' do
|
it 'renders banner component' do
|
||||||
expect(view.content_for(:splash)).to include("#{@conference.splashpage.banner_description}")
|
expect(rendered).to match(/#{@conference.splashpage.banner_description}/)
|
||||||
expect(view.content_for(:splash)).to include("#{@conference.short_title}")
|
expect(rendered).to match(/#{@conference.short_title}/)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders program partial' do
|
it 'renders program partial' do
|
||||||
|
|
@ -52,45 +52,43 @@ describe 'conference/show.html.haml' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders registration partial' do
|
it 'renders registration partial' do
|
||||||
expect(view.content_for(:splash)).to include("#{@conference.splashpage.registration_description}")
|
|
||||||
expect(view).to render_template(partial: 'conference/_registration')
|
expect(view).to render_template(partial: 'conference/_registration')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders call_for_papers partial' do
|
it 'renders call_for_papers partial' do
|
||||||
expect(view.content_for(:splash)).to include("#{@conference.call_for_papers.description}")
|
expect(rendered).to match(/#{@conference.call_for_papers.description}/)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders sponsors partial' do
|
it 'renders sponsors partial' do
|
||||||
expect(view).to render_template(partial: 'conference/_sponsor')
|
expect(view).to render_template(partial: 'conference/_sponsors')
|
||||||
expect(view.content_for(:splash)).to include('Lorem Ipsum Dolor')
|
expect(rendered).to match(/example@example.com/)
|
||||||
expect(view.content_for(:splash)).to include('example@example.com')
|
expect(rendered).to match(/Platin/)
|
||||||
expect(view.content_for(:splash)).to include('Platin')
|
expect(rendered).to match(/Example sponsor/)
|
||||||
expect(view.content_for(:splash)).to include('Example sponsor')
|
expect(rendered).to match(/www.example.com/)
|
||||||
expect(view.content_for(:splash)).to include('http://www.example.com')
|
expect(rendered).to match(/Lorem Ipsum Dolor/)
|
||||||
expect(view.content_for(:splash)).to include('Lorem Ipsum Dolor')
|
expect(rendered).to match(/rails.jpg/)
|
||||||
expect(view.content_for(:splash)).to include('rails.jpg')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders social media partial' do
|
it 'renders social media partial' do
|
||||||
expect(view).to render_template('conference/_social_media')
|
expect(view).to render_template('conference/_social_media')
|
||||||
expect(view.content_for(:splash)).to include('http://www.fbexample.com')
|
expect(rendered).to match(/facebook.com/)
|
||||||
expect(view.content_for(:splash)).to include('http://www.google-example.com')
|
expect(rendered).to match(/google.com/)
|
||||||
expect(view.content_for(:splash)).to include('http://instagram.com')
|
expect(rendered).to match(/instagram.com/)
|
||||||
expect(view.content_for(:splash)).to include('http://twitter.com')
|
expect(rendered).to match(/twitter.com/)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders location partial' do
|
it 'renders location partial' do
|
||||||
expect(view).to render_template(partial: 'conference/_location')
|
expect(view).to render_template(partial: 'conference/_location')
|
||||||
expect(view.content_for(:splash)).to include('Suse Office')
|
expect(rendered).to match(/Suse Office/)
|
||||||
expect(view.content_for(:splash)).to include('Maxfeldstrasse 5 \n90409 Nuremberg')
|
expect(rendered).to match(/Maxfeldstrasse 5/)
|
||||||
expect(view.content_for(:splash)).to include('www.opensuse.org')
|
expect(rendered).to match(/www.opensuse.org/)
|
||||||
expect(view.content_for(:splash)).to include('Lorem Ipsum Dolor')
|
expect(rendered).to match(/Lorem Ipsum Dolor/)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders lodging partial' do
|
it 'renders lodging partial' do
|
||||||
expect(view).to render_template(partial: 'conference/_lodging')
|
expect(view).to render_template(partial: 'conference/_lodging')
|
||||||
expect(view.content_for(:splash)).to include('Example Hotel')
|
expect(rendered).to match(/Example Hotel/)
|
||||||
expect(view.content_for(:splash)).to include('Lorem Ipsum Dolor')
|
expect(rendered).to match(/Lorem Ipsum Dolor/)
|
||||||
expect(view.content_for(:splash)).to include('http://www.example.com')
|
expect(rendered).to match(/www.example.com/)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue