Update gems, use d3 gem, initial bootstrap v3 port

This commit is contained in:
Henne Vogelsang 2014-03-17 16:36:32 +01:00
parent 24e40a5c90
commit 587126218d
71 changed files with 798 additions and 10411 deletions

View file

@ -1,6 +1,6 @@
source 'https://rubygems.org' source 'https://rubygems.org'
gem 'rails', '3.2.15' gem 'rails', '3.2.17'
# Bundle edge Rails instead: # Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git' # gem 'rails', :git => 'git://github.com/rails/rails.git'
@ -8,9 +8,7 @@ gem 'rails', '3.2.15'
# Gems used only for assets and not required # Gems used only for assets and not required
# in production environments by default. # in production environments by default.
group :assets do group :assets do
gem 'sass-rails', '~> 3.2.3'
# gem 'coffee-rails', '~> 3.2.1' # gem 'coffee-rails', '~> 3.2.1'
gem 'bootstrap-sass'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes # See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platforms => :ruby gem 'therubyracer', :platforms => :ruby
@ -45,6 +43,8 @@ gem 'bcrypt-ruby', '~> 3.0.0'
#gem 'node' #gem 'node'
gem 'paper_trail' gem 'paper_trail'
gem 'formtastic-bootstrap' gem 'formtastic-bootstrap'
gem 'bootstrap-sass'
gem 'sass-rails', '>= 3.2'
gem 'cocoon' gem 'cocoon'
gem 'transitions', :require => ["transitions", "active_record/transitions"] gem 'transitions', :require => ["transitions", "active_record/transitions"]
gem 'acts_as_commentable_with_threading' gem 'acts_as_commentable_with_threading'
@ -53,3 +53,4 @@ gem 'prawn_rails'
gem 'gravtastic' gem 'gravtastic'
gem 'active_model_serializers' gem 'active_model_serializers'
gem 'axlsx_rails' gem 'axlsx_rails'
gem 'd3_rails'

View file

@ -1,13 +1,12 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
Ascii85 (1.0.2) actionmailer (3.2.17)
actionmailer (3.2.15) actionpack (= 3.2.17)
actionpack (= 3.2.15)
mail (~> 2.5.4) mail (~> 2.5.4)
actionpack (3.2.15) actionpack (3.2.17)
activemodel (= 3.2.15) activemodel (= 3.2.17)
activesupport (= 3.2.15) activesupport (= 3.2.17)
builder (~> 3.0.0) builder (~> 3.0.0)
erubis (~> 2.7.0) erubis (~> 2.7.0)
journey (~> 1.0.4) journey (~> 1.0.4)
@ -17,26 +16,25 @@ GEM
sprockets (~> 2.2.1) sprockets (~> 2.2.1)
active_model_serializers (0.8.1) active_model_serializers (0.8.1)
activemodel (>= 3.0) activemodel (>= 3.0)
activemodel (3.2.15) activemodel (3.2.17)
activesupport (= 3.2.15) activesupport (= 3.2.17)
builder (~> 3.0.0) builder (~> 3.0.0)
activerecord (3.2.15) activerecord (3.2.17)
activemodel (= 3.2.15) activemodel (= 3.2.17)
activesupport (= 3.2.15) activesupport (= 3.2.17)
arel (~> 3.0.2) arel (~> 3.0.2)
tzinfo (~> 0.3.29) tzinfo (~> 0.3.29)
activeresource (3.2.15) activeresource (3.2.17)
activemodel (= 3.2.15) activemodel (= 3.2.17)
activesupport (= 3.2.15) activesupport (= 3.2.17)
activesupport (3.2.15) activesupport (3.2.17)
i18n (~> 0.6, >= 0.6.4) i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0) multi_json (~> 1.0)
acts_as_commentable_with_threading (1.1.3) acts_as_commentable_with_threading (1.2.0)
activerecord (>= 3.0) activerecord (>= 3.0)
activesupport (~> 3.0) activesupport (>= 3.0)
awesome_nested_set (>= 2.0) awesome_nested_set (>= 2.0)
afm (0.2.0) arel (3.0.3)
arel (3.0.2)
awesome_nested_set (2.1.6) awesome_nested_set (2.1.6)
activerecord (>= 3.0.0) activerecord (>= 3.0.0)
axlsx (2.0.1) axlsx (2.0.1)
@ -47,7 +45,7 @@ GEM
axlsx axlsx
rails (>= 3.1) rails (>= 3.1)
bcrypt-ruby (3.0.1) bcrypt-ruby (3.0.1)
bootstrap-sass (2.3.2.2) bootstrap-sass (3.1.1.0)
sass (~> 3.2) sass (~> 3.2)
builder (3.0.4) builder (3.0.4)
cancan (1.6.10) cancan (1.6.10)
@ -58,16 +56,18 @@ GEM
rack-test (>= 0.5.4) rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0) selenium-webdriver (~> 2.0)
xpath (~> 0.1.4) xpath (~> 0.1.4)
childprocess (0.3.9) childprocess (0.5.1)
ffi (~> 1.0, >= 1.0.11) ffi (~> 1.0, >= 1.0.11)
climate_control (0.0.3) climate_control (0.0.3)
activesupport (>= 3.0) activesupport (>= 3.0)
cocaine (0.5.2) cocaine (0.5.3)
climate_control (>= 0.0.3, < 1.0) climate_control (>= 0.0.3, < 1.0)
cocoon (1.2.1) cocoon (1.2.5)
coderay (1.0.9) coderay (1.1.0)
d3_rails (3.4.3)
railties (>= 3.1.0)
daemons (1.1.9) daemons (1.1.9)
devise (2.2.7) devise (2.2.8)
bcrypt-ruby (~> 3.0) bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1) orm_adapter (~> 0.1)
railties (~> 3.1) railties (~> 3.1)
@ -76,26 +76,25 @@ GEM
erubis (2.7.0) erubis (2.7.0)
eventmachine (1.0.3) eventmachine (1.0.3)
execjs (2.0.2) execjs (2.0.2)
ffi (1.9.0) ffi (1.9.3)
formtastic (2.2.1) formtastic (2.2.1)
actionpack (>= 3.0) actionpack (>= 3.0)
formtastic-bootstrap (2.1.3) formtastic-bootstrap (3.0.0)
formtastic (~> 2.2) formtastic (>= 2.2)
gravtastic (3.2.6) gravtastic (3.2.6)
haml (4.0.3) haml (4.0.5)
tilt tilt
hashery (2.1.1)
hike (1.2.3) hike (1.2.3)
htmlentities (4.3.1) htmlentities (4.3.1)
i18n (0.6.5) i18n (0.6.9)
journey (1.0.4) journey (1.0.4)
jquery-fileupload-rails (0.4.1) jquery-fileupload-rails (0.4.1)
actionpack (>= 3.1) actionpack (>= 3.1)
railties (>= 3.1) railties (>= 3.1)
jquery-rails (3.0.4) jquery-rails (3.1.0)
railties (>= 3.0, < 5.0) railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0) thor (>= 0.14, < 2.0)
jquery-ui-rails (4.0.5) jquery-ui-rails (4.1.2)
railties (>= 3.1.0) railties (>= 3.1.0)
json (1.8.1) json (1.8.1)
libv8 (3.16.14.3) libv8 (3.16.14.3)
@ -103,36 +102,31 @@ GEM
mime-types (~> 1.16) mime-types (~> 1.16)
treetop (~> 1.4.8) treetop (~> 1.4.8)
method_source (0.8.2) method_source (0.8.2)
mime-types (1.25) mime-types (1.25.1)
mini_portile (0.5.1) mini_portile (0.5.2)
multi_json (1.8.2) multi_json (1.9.0)
mysql2 (0.3.13) mysql2 (0.3.15)
nokogiri (1.6.0) nokogiri (1.6.1)
mini_portile (~> 0.5.0) mini_portile (~> 0.5.0)
orm_adapter (0.4.0) orm_adapter (0.5.0)
paper_trail (2.7.2) paper_trail (3.0.0)
activerecord (~> 3.0) activerecord (>= 3.0, < 5.0)
railties (~> 3.0) activesupport (>= 3.0, < 5.0)
paperclip (3.5.1) paperclip (3.5.4)
activemodel (>= 3.0.0) activemodel (>= 3.0.0)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
cocaine (~> 0.5.0) cocaine (~> 0.5.3)
mime-types mime-types
pdf-reader (1.3.3) pdf-core (0.1.6)
Ascii85 (~> 1.0.0) polyglot (0.3.4)
afm (~> 0.2.0) prawn (0.15.0)
hashery (~> 2.0) pdf-core (~> 0.1.3)
ruby-rc4 ttfunk (~> 1.1.0)
ttfunk
polyglot (0.3.3)
prawn (0.12.0)
pdf-reader (>= 0.9.0)
ttfunk (~> 1.0.2)
prawn_rails (0.0.11) prawn_rails (0.0.11)
prawn (>= 0.11.1) prawn (>= 0.11.1)
railties (>= 3.0.0) railties (>= 3.0.0)
pry (0.9.12.2) pry (0.9.12.6)
coderay (~> 1.0.5) coderay (~> 1.0)
method_source (~> 0.8) method_source (~> 0.8)
slop (~> 3.4) slop (~> 3.4)
rack (1.4.5) rack (1.4.5)
@ -142,22 +136,22 @@ GEM
rack rack
rack-test (0.6.2) rack-test (0.6.2)
rack (>= 1.0) rack (>= 1.0)
rails (3.2.15) rails (3.2.17)
actionmailer (= 3.2.15) actionmailer (= 3.2.17)
actionpack (= 3.2.15) actionpack (= 3.2.17)
activerecord (= 3.2.15) activerecord (= 3.2.17)
activeresource (= 3.2.15) activeresource (= 3.2.17)
activesupport (= 3.2.15) activesupport (= 3.2.17)
bundler (~> 1.0) bundler (~> 1.0)
railties (= 3.2.15) railties (= 3.2.17)
railties (3.2.15) railties (3.2.17)
actionpack (= 3.2.15) actionpack (= 3.2.17)
activesupport (= 3.2.15) activesupport (= 3.2.17)
rack-ssl (~> 1.3.2) rack-ssl (~> 1.3.2)
rake (>= 0.8.7) rake (>= 0.8.7)
rdoc (~> 3.4) rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0) thor (>= 0.14.6, < 2.0)
rake (10.1.0) rake (10.1.1)
rdoc (3.12.2) rdoc (3.12.2)
json (~> 1.4) json (~> 1.4)
ref (1.0.5) ref (1.0.5)
@ -174,43 +168,42 @@ GEM
activesupport (>= 3.0) activesupport (>= 3.0)
railties (>= 3.0) railties (>= 3.0)
rspec (~> 2.11.0) rspec (~> 2.11.0)
ruby-rc4 (0.1.5)
rubyzip (1.0.0) rubyzip (1.0.0)
sass (3.2.12) sass (3.2.14)
sass-rails (3.2.6) sass-rails (3.2.6)
railties (~> 3.2.0) railties (~> 3.2.0)
sass (>= 3.1.10) sass (>= 3.1.10)
tilt (~> 1.3) tilt (~> 1.3)
selenium-webdriver (2.37.0) selenium-webdriver (2.40.0)
childprocess (>= 0.2.5) childprocess (>= 0.5.0)
multi_json (~> 1.0) multi_json (~> 1.0)
rubyzip (~> 1.0.0) rubyzip (~> 1.0)
websocket (~> 1.0.4) websocket (~> 1.0.4)
slop (3.4.6) slop (3.4.7)
sprockets (2.2.2) sprockets (2.2.2)
hike (~> 1.2) hike (~> 1.2)
multi_json (~> 1.0) multi_json (~> 1.0)
rack (~> 1.0) rack (~> 1.0)
tilt (~> 1.1, != 1.3.0) tilt (~> 1.1, != 1.3.0)
sqlite3 (1.3.8) sqlite3 (1.3.9)
therubyracer (0.12.0) therubyracer (0.12.1)
libv8 (~> 3.16.14.0) libv8 (~> 3.16.14.0)
ref ref
thin (1.5.1) thin (1.6.2)
daemons (>= 1.0.9) daemons (>= 1.0.9)
eventmachine (>= 0.12.6) eventmachine (>= 1.0.0)
rack (>= 1.0.0) rack (>= 1.0.0)
thor (0.18.1) thor (0.18.1)
tilt (1.4.1) tilt (1.4.1)
transitions (0.1.11) transitions (0.1.12)
treetop (1.4.15) treetop (1.4.15)
polyglot polyglot
polyglot (>= 0.3.1) polyglot (>= 0.3.1)
ttfunk (1.0.3) ttfunk (1.1.1)
tzinfo (0.3.38) tzinfo (0.3.38)
uglifier (2.2.1) uglifier (2.4.0)
execjs (>= 0.3.0) execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2) json (>= 1.8.0)
warden (1.2.3) warden (1.2.3)
rack (>= 1.0) rack (>= 1.0)
websocket (1.0.7) websocket (1.0.7)
@ -230,6 +223,7 @@ DEPENDENCIES
cancan cancan
capybara (= 1.1.2) capybara (= 1.1.2)
cocoon cocoon
d3_rails
devise (~> 2.2) devise (~> 2.2)
formtastic-bootstrap formtastic-bootstrap
gravtastic gravtastic
@ -243,9 +237,9 @@ DEPENDENCIES
prawn prawn
prawn_rails prawn_rails
pry pry
rails (= 3.2.15) rails (= 3.2.17)
rspec-rails (= 2.11.0) rspec-rails (= 2.11.0)
sass-rails (~> 3.2.3) sass-rails (>= 3.2)
sqlite3 sqlite3
therubyracer therubyracer
thin thin

View file

@ -19,8 +19,8 @@
//= require cocoon //= require cocoon
//= require bootstrap //= require bootstrap
//= require osem //= require osem
//= require d3.v3 //= require d3
//= require d3.v3.min
$(document).ready(function() { $(document).ready(function() {
$('a[disabled=disabled]').click(function(event){ $('a[disabled=disabled]').click(function(event){
return false; return false;

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,10 +1,12 @@
/* /*
*= require strap-on.css.scss *= require strap-on.css.scss
*= require formtastic-bootstrap *= require formtastic-bootstrap
*= require osem
*= require jquery-ui-1.9.2.custom *= require jquery-ui-1.9.2.custom
*= require jquery.fileupload-ui *= require jquery.fileupload-ui
*= require jquery-ui-timepicker-addon *= require jquery-ui-timepicker-addon
*= require jquery.dataTables_themeroller *= require jquery.dataTables_themeroller
*= require osem
*= require osem-rating
*= require osem-schedule
*= require osem-schedule-print *= require osem-schedule-print
*/ */

View file

@ -0,0 +1,18 @@
/* Styling for voting on proposals*/
.myrating.bright { background-image: image-url("star-bright.png"); }
.myrating.glow { background-image: image-url("star-glow.png"); }
.othersrating.bright { background-image: image-url("star-bright.png"); }
.avgrating.bright { background-image: image-url("star-bright.png"); }
.avgrating {
background: image-url("star.png") 0 0;
width: 26px;
height: 26px;
display: inline-block;
}
.myrating, .othersrating {
background: image-url("star.png") 0 0;
width: 26px;
height: 26px;
float: left;
}

View file

@ -0,0 +1,57 @@
#schedule td.event {
background-image: linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -o-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -moz-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -ms-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.24, rgb(247,250,242)),
color-stop(0.97, rgb(194,232,190)),
color-stop(1, rgb(194,232,190))
);
}
#schedule td.event:hover
{
background-image: linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -o-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -moz-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -ms-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.24, rgb(247,250,242)),
color-stop(0.97, rgb(83,171,74)),
color-stop(1, rgb(83,171,74))
);
}
.flexvideo {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
padding-top: 25px;
height: 0;
}
.flexvideo iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.schedule-title, .schedule-subtitle, .schedule-speaker, .schedule-track {
clear: none;
display: block;
}
.schedule-subtitle {
color: rgb(185, 74, 72);
}

View file

@ -1,207 +1,29 @@
/* Sticky footer styles html {
-------------------------------------------------- */ position: relative;
html,
body {
height: 100%;
/* The html and body elements cannot have any padding or margin. */
}
/* Styling for voting on proposals*/
.myrating.bright { background-image: url(../assets/star-bright.png); }
.myrating.glow { background-image: url(../assets/star-glow.png); }
.othersrating.bright { background-image: url(../assets/star-bright.png); }
.avgrating.bright { background-image: url(../assets/star-bright.png); }
.avgrating {
background: url(../assets/star.png) 0 0;
width: 26px;
height: 26px;
display: inline-block;
}
.myrating, .othersrating {
background: url(../assets/star.png) 0 0;
width: 26px;
height: 26px;
float: left;
}
/* Wrapper for page content to push down footer */
#wrap {
min-height: 100%; min-height: 100%;
height: auto !important; }
height: 100%; body {
/* Negative indent footer by it's height */ /* Margin bottom by footer height */
margin: 0 auto -60px; margin-bottom: 60px;
} }
/* Set the fixed height of the footer here */ body > #content {
#push, padding: 60px 15px 0;
#footer {
height: 60px;
} }
#footer { #footer {
position: absolute;
bottom: 0;
width: 100%;
/* Set the fixed height of the footer here */
height: 60px;
background-color: #f5f5f5; background-color: #f5f5f5;
} }
.container .credit { .container .text-muted {
margin: 20px 0; margin: 20px 0;
} }
/* Lastly, apply responsive CSS fixes as necessary */ #footer > .container {
@media (max-width: 767px) { padding: 15px;
#footer {
margin-left: -20px;
margin-right: -20px;
padding-left: 20px;
padding-right: 20px;
}
}
@media screen and (min-width: 980px) {
body { padding-top: 60px; }
}
.center {
margin:0 auto;
float:none;
}
textarea {
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box; /* Opera/IE 8+ */
width:100%;
}
div.dataTables_length label {
float: left;
text-align: left;
}
div.dataTables_length select {
width: 75px;
}
div.dataTables_filter label {
float: right;
}
div.dataTables_info {
padding-top: 8px;
}
div.dataTables_paginate {
float: right;
margin: 0;
}
table.table {
clear: both;
margin-bottom: 6px !important;
max-width: none !important;
}
table.table thead .sorting,
table.table thead .sorting_asc,
table.table thead .sorting_desc,
table.table thead .sorting_asc_disabled,
table.table thead .sorting_desc_disabled {
cursor: pointer;
*cursor: hand;
}
table.table thead .sorting { background: url('images/sort_both.png') no-repeat center right; }
table.table thead .sorting_asc { background: url('images/sort_asc.png') no-repeat center right; }
table.table thead .sorting_desc { background: url('images/sort_desc.png') no-repeat center right; }
table.table thead .sorting_asc_disabled { background: url('images/sort_asc_disabled.png') no-repeat center right; }
table.table thead .sorting_desc_disabled { background: url('images/sort_desc_disabled.png') no-repeat center right; }
table.dataTable th:active {
outline: none;
}
/* Scrolling */
div.dataTables_scrollHead table {
margin-bottom: 0 !important;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
div.dataTables_scrollHead table thead tr:last-child th:first-child,
div.dataTables_scrollHead table thead tr:last-child td:first-child {
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
div.dataTables_scrollBody table {
border-top: none;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody tbody tr:first-child th,
div.dataTables_scrollBody tbody tr:first-child td {
border-top: none;
}
div.dataTables_scrollFoot table {
border-top: none;
}
#schedule td.event {
background-image: linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -o-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -moz-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -ms-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(194,232,190) 97%, rgb(194,232,190) 100%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.24, rgb(247,250,242)),
color-stop(0.97, rgb(194,232,190)),
color-stop(1, rgb(194,232,190))
);
}
#schedule td.event:hover
{
background-image: linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -o-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -moz-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -ms-linear-gradient(bottom, rgb(247,250,242) 24%, rgb(83,171,74) 97%, rgb(83,171,74) 100%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.24, rgb(247,250,242)),
color-stop(0.97, rgb(83,171,74)),
color-stop(1, rgb(83,171,74))
);
}
.flexvideo {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
padding-top: 25px;
height: 0;
}
.flexvideo iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.schedule-title, .schedule-subtitle, .schedule-speaker, .schedule-track {
clear: none;
display: block;
}
.schedule-subtitle {
color: rgb(185, 74, 72);
} }

View file

@ -1,471 +0,0 @@
/***
Spectrum Colorpicker v1.0.1
https://github.com/bgrins/spectrum
Author: Brian Grinstead
License: MIT
***/
.sp-container {
position:absolute;
top:0;
left:0;
display:inline-block;
*display: inline;
*zoom: 1;
z-index: 2147483647;
overflow: hidden;
}
.sp-container.sp-flat {
position: relative;
}
/* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */
.sp-top {
position:relative;
width: 100%;
display:inline-block;
}
.sp-top-inner {
position:absolute;
top:0;
left:0;
bottom:0;
right:0;
}
.sp-color {
position: absolute;
top:0;
left:0;
bottom:0;
right:20%;
}
.sp-hue {
position: absolute;
top:0;
right:0;
bottom:0;
left:84%;
height: 100%;
}
.sp-fill {
padding-top: 80%;
}
.sp-sat, .sp-val {
position: absolute;
top:0;
left:0;
right:0;
bottom:0;
}
.sp-alpha-enabled .sp-top
{
margin-bottom: 18px;
}
.sp-alpha-enabled .sp-alpha
{
display: block;
}
.sp-alpha-handle
{
position:absolute;
top:-4px;
bottom: -4px;
width: 6px;
left: 50%;
cursor: pointer;
border: 1px solid black;
background: white;
opacity: .8;
}
.sp-alpha
{
display: none;
position: absolute;
bottom: -14px;
right: 0;
left: 0;
height: 8px;
}
.sp-alpha-inner{
border: solid 1px #333;
}
/* Don't allow text selection */
.sp-container, .sp-replacer, .sp-preview, .sp-dragger, .sp-slider, .sp-alpha, .sp-alpha-handle, .sp-container.sp-dragging .sp-input, .sp-container button {
-webkit-user-select:none;
-moz-user-select: -moz-none;
-o-user-select:none;
user-select: none;
}
.sp-container.sp-input-disabled .sp-input-container {
display: none;
}
.sp-container.sp-buttons-disabled .sp-button-container {
display: none;
}
.sp-palette-only .sp-picker-container {
display: none;
}
.sp-palette-disabled .sp-palette-container {
display: none;
}
.sp-initial-disabled .sp-initial {
display: none;
}
/* Gradients for hue, saturation and value instead of images. Not pretty... but it works */
.sp-sat {
background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0)));
background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0));
background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0));
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";
filter : progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81');
}
.sp-val {
background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0)));
background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0));
background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0));
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";
filter : progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000');
}
.sp-hue {
background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000));
background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
}
/* IE filters do not support multiple color stops.
Generate 6 divs, line them up, and do two color gradients for each.
Yes, really.
*/
.sp-1 {
height:17%;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00');
}
.sp-2 {
height:16%;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00');
}
.sp-3 {
height:17%;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff');
}
.sp-4 {
height:17%;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff');
}
.sp-5 {
height:16%;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff');
}
.sp-6 {
height:17%;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000');
}
/* Clearfix hack */
.sp-cf:before, .sp-cf:after { content: ""; display: table; }
.sp-cf:after { clear: both; }
.sp-cf { *zoom: 1; }
/* Mobile devices, make hue slider bigger so it is easier to slide */
@media (max-device-width: 480px) {
.sp-color { right: 40%; }
.sp-hue { left: 63%; }
.sp-fill { padding-top: 60%; }
}
.sp-dragger {
border-radius: 5px;
height: 5px;
width: 5px;
border: 1px solid #fff;
background: #000;
cursor: pointer;
position:absolute;
top:0;
left: 0;
}
.sp-slider {
position: absolute;
top:0;
cursor:pointer;
height: 3px;
left: -1px;
right: -1px;
border: 1px solid #000;
background: white;
opacity: .8;
}
/* Basic display options (colors, fonts, global widths) */
.sp-container {
border-radius: 0;
background-color: #ECECEC;
border: solid 1px #f0c49B;
padding: 0;
}
.sp-container, .sp-container button, .sp-container input, .sp-color, .sp-hue
{
font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.sp-top
{
margin-bottom: 3px;
}
.sp-color, .sp-hue
{
border: solid 1px #666;
}
/* Input */
.sp-input-container {
float:right;
width: 100px;
margin-bottom: 4px;
}
.sp-initial-disabled .sp-input-container {
width: 100%;
}
.sp-input {
font-size: 12px !important;
border: 1px inset;
padding: 4px 5px;
margin: 0;
width: 100%;
background:transparent;
border-radius: 3px;
color: #222;
}
.sp-input:focus {
border: 1px solid orange;
}
.sp-input.sp-validation-error
{
border: 1px solid red;
background: #fdd;
}
.sp-picker-container , .sp-palette-container
{
float:left;
position: relative;
padding: 10px;
padding-bottom: 300px;
margin-bottom: -290px;
}
.sp-picker-container
{
width: 172px;
border-left: solid 1px #fff;
}
/* Palettes */
.sp-palette-container
{
border-right: solid 1px #ccc;
}
.sp-palette .sp-thumb-el {
display: block;
position:relative;
float:left;
width: 24px;
height: 15px;
margin: 3px;
cursor: pointer;
border:solid 2px transparent;
}
.sp-palette .sp-thumb-el:hover, .sp-palette .sp-thumb-el.sp-thumb-active {
border-color: orange;
}
.sp-thumb-el
{
position:relative;
}
/* Initial */
.sp-initial
{
float: left;
border: solid 1px #333;
}
.sp-initial span {
width: 30px;
height: 25px;
border:none;
display:block;
float:left;
margin:0;
}
/* Buttons */
.sp-button-container {
float: right;
}
/* Replacer (the little preview div that shows up instead of the <input>) */
.sp-replacer {
margin:0;
overflow:hidden;
cursor:pointer;
padding: 4px;
display:inline-block;
*zoom: 1;
*display: inline;
border: solid 1px #91765d;
background: #eee;
color: #333;
vertical-align: middle;
}
.sp-replacer:hover, .sp-replacer.sp-active {
border-color: #F0C49B;
color: #111;
}
.sp-replacer.sp-disabled {
cursor:default;
border-color: silver;
color: silver;
}
.sp-dd {
padding: 2px 0;
height: 16px;
line-height: 16px;
float:left;
font-size:10px;
}
.sp-preview
{
position:relative;
width:25px;
height: 20px;
border: solid 1px #222;
margin-right: 5px;
float:left;
z-index: 0;
}
.sp-palette
{
*width: 220px;
max-width: 220px;
}
.sp-palette .sp-thumb-el
{
width:16px;
height: 16px;
margin:2px 1px;
border: solid 1px #d0d0d0;
}
.sp-container
{
padding-bottom:0;
}
/* Buttons: http://hellohappy.org/css3-buttons/ */
.sp-container button {
background-color: #eeeeee;
background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc);
background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);
background-image: -o-linear-gradient(top, #eeeeee, #cccccc);
background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);
background-image: linear-gradient(to bottom, #eeeeee, #cccccc);
border: 1px solid #ccc;
border-bottom: 1px solid #bbb;
border-radius: 3px;
color: #333;
font-size: 14px;
line-height: 1;
padding: 5px 4px;
text-align: center;
text-shadow: 0 1px 0 #eee;
vertical-align: middle;
}
.sp-container button:hover {
background-color: #dddddd;
background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb);
background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb);
background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb);
background-image: -o-linear-gradient(top, #dddddd, #bbbbbb);
background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb);
background-image: linear-gradient(to bottom, #dddddd, #bbbbbb);
border: 1px solid #bbb;
border-bottom: 1px solid #999;
cursor: pointer;
text-shadow: 0 1px 0 #ddd;
}
.sp-container button:active {
border: 1px solid #aaa;
border-bottom: 1px solid #888;
-webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
-moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
-ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
-o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
}
.sp-cancel
{
font-size: 11px;
color: #d93f3f !important;
margin:0;
padding:2px;
margin-right: 5px;
vertical-align: middle;
text-decoration:none;
}
.sp-cancel:hover
{
color: #d93f3f !important;
text-decoration: underline;
}
.sp-palette span:hover, .sp-palette span.sp-thumb-active
{
border-color: #000;
}
.sp-preview, .sp-alpha, .sp-thumb-el
{
position:relative;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);
}
.sp-preview-inner, .sp-alpha-inner, .sp-thumb-inner
{
display:block;
position:absolute;
top:0;left:0;bottom:0;right:0;
}
.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=);
}
.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=);
}

View file

@ -1,15 +1,8 @@
$navbarBackground: #299a0b; $navbar-default-bg: #299a0b;
$navbarBackgroundHighlight: #299a0b; $navbar-default-link-active-bg: #DFE0DF;
$navbarBorder: 1px solid #d4d4d4; $navbar-default-border: 1px solid #d4d4d4;
$navbarText: #ffffff; $navbar-default-color: #ffffff;
$navbarLinkColor: white; $navbar-default-link-color: #ffffff;
$navbarLinkColorHover: black; $navbar-default-link-hover-color: #000000;
$navbarLinkBackgroundActive: #DFE0DF;
@import "bootstrap"; @import "bootstrap";
@import "bootstrap-responsive";
/* Set to navbarBackgroundHighlight otherwise */
.navbar .nav > li > a {
text-shadow: none;
}

View file

@ -1,8 +1,7 @@
.container-fluid .row-fluid
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@cfp, :url => admin_conference_cfp_update_path(@conference.short_title),:html => {:multipart => true}) do |f| = semantic_form_for(@cfp, :url => admin_conference_cfp_update_path(@conference.short_title),:html => {:multipart => true}) do |f|
= f.input :start_date, :as => :string, :input_html => { :id => "conference-start-datepicker", :readonly => "readonly" } = f.input :start_date, :as => :string, :input_html => { :id => "conference-start-datepicker", :readonly => "readonly" }
= f.input :end_date, :as => :string, :input_html => { :id => "conference-end-datepicker", :readonly => "readonly" } = f.input :end_date, :as => :string, :input_html => { :id => "conference-end-datepicker", :readonly => "readonly" }

View file

@ -1,8 +1,5 @@
.well.sidebar-nav .well.sidebar-nav
%ul.nav.nav-list %ul.nav.nav-pills.nav-stacked
%li.nav-header
=@conference.short_title
Settings
%li{:class=> active_nav_li(admin_conference_path(@conference.short_title))} %li{:class=> active_nav_li(admin_conference_path(@conference.short_title))}
= link_to "Conference", admin_conference_path(@conference.short_title) = link_to "Conference", admin_conference_path(@conference.short_title)
%li{:class=> active_nav_li(admin_conference_venue_info_path(@conference.short_title))} %li{:class=> active_nav_li(admin_conference_venue_info_path(@conference.short_title))}

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@conference, :url => admin_conference_path(@conference.short_title),:html => {:multipart => true}) do |f| = semantic_form_for(@conference, :url => admin_conference_path(@conference.short_title),:html => {:multipart => true}) do |f|
= f.input :title, :hint => "The full name of the conference, such as 'OpenSUSE Conference 2013'" = f.input :title, :hint => "The full name of the conference, such as 'OpenSUSE Conference 2013'"
= f.input :short_title, :hint => "A short title, such as 'osc2013', to be used in URLs" = f.input :short_title, :hint => "A short title, such as 'osc2013', to be used in URLs"

View file

@ -1,5 +1,4 @@
.container-fluid .row
.row-fluid
.span3 .span3
= render 'admin/conference/sidebar', :activated => "Diet" = render 'admin/conference/sidebar', :activated => "Diet"
.span9 .span9

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@conference, :url => admin_conference_difficulty_levels_path(@conference.short_title)) do |f| = semantic_form_for(@conference, :url => admin_conference_difficulty_levels_path(@conference.short_title)) do |f|
= f.input :use_difficulty_levels, :label => false = f.input :use_difficulty_levels, :label => false
= dynamic_association :difficulty_levels, "Difficulty_Levels", f = dynamic_association :difficulty_levels, "Difficulty_Levels", f

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= link_to "Template Help", "#", :id => "template-help-link" = link_to "Template Help", "#", :id => "template-help-link"
#template-help #template-help
Valid attributes: Valid attributes:
@ -25,7 +24,6 @@
%tr %tr
%td {eventtitle} %td {eventtitle}
%td The title of an accepted or rejected proposal %td The title of an accepted or rejected proposal
= semantic_form_for(@settings, :url => admin_conference_email_settings_path(@conference.short_title),:html => {:multipart => true}) do |f| = semantic_form_for(@settings, :url => admin_conference_email_settings_path(@conference.short_title),:html => {:multipart => true}) do |f|
= f.input :send_on_registration, :label => false, :hint => "Send an email when the user registers for the conference?" = f.input :send_on_registration, :label => false, :hint => "Send an email when the user registers for the conference?"
= f.input :registration_subject = f.input :registration_subject

View file

@ -1,9 +1,7 @@
.row-fluid .row
.row .col-md-12
.span12 = link_to "Show Events Stats", "#", :id => "events-stats-link", :class => "btn btn-default pull-right"
%h5{:style=>"text-align: right"} .clearfix
= link_to "Events Stats", "#", :id => "events-stats-link", :class => "btn btn-success"
#events-stats #events-stats
.span12 .span12
%table.table.table-bordered.table-striped %table.table.table-bordered.table-striped
@ -16,7 +14,6 @@
Total Total
%br %br
No & Time No & Time
%tr %tr
%td %td
%b Total %b Total

View file

@ -1,15 +1,14 @@
.row-fluid .row
.span10 .col-md-12
%h3 %h3
= @event.title = @event.title
%br %br
%span.muted %small
= @event.subtitle = @event.subtitle
.span2 = link_to "Edit", edit_admin_conference_event_path(@conference.short_title, @event), :class => "btn btn-mini btn-default pull-right"
= link_to "Edit", edit_admin_conference_event_path(@conference.short_title, @event), :class => "btn btn-mini btn-primary"
.row-fluid .row
.span12 .col-md-12
%table.table %table.table
%tr %tr
%td{:style => "width:15%"} %td{:style => "width:15%"}
@ -161,7 +160,7 @@
= link_to "Delete", conference_proposal_event_attachment_path(@conference.short_title, @event.id, a.id), = link_to "Delete", conference_proposal_event_attachment_path(@conference.short_title, @event.id, a.id),
:method => :delete, :confirm => "Are you sure you want to delete this attachment? It's permanant!" :method => :delete, :confirm => "Are you sure you want to delete this attachment? It's permanant!"
.row-fluid .row
= link_to "Comments (#{@comment_count})", "#", :id => "event-comment-link" = link_to "Comments (#{@comment_count})", "#", :id => "event-comment-link"
#comments-div #comments-div
%hr %hr

View file

@ -1,2 +1 @@
.container = render 'proposal/form'
= render 'proposal/form'

View file

@ -1,7 +1,7 @@
= render :partial => "events_stats" = render :partial => "events_stats"
.row-fluid .row
.span12 .col-md-12
%h2 %h2
Events Events
- if @events - if @events

View file

@ -8,7 +8,7 @@
#proposal-content.tab-pane.active #proposal-content.tab-pane.active
= render 'proposal' = render 'proposal'
#history-content.tab-pane #history-content.tab-pane
.span12 .col-md-12
%table.table %table.table
%thead %thead
%th %th

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@conference, :url => admin_conference_eventtype_update_path(@conference.short_title)) do |f| = semantic_form_for(@conference, :url => admin_conference_eventtype_update_path(@conference.short_title)) do |f|
= dynamic_association :event_types, "Event Types", f = dynamic_association :event_types, "Event Types", f
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"} = f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}

View file

@ -1,15 +1,14 @@
.row-fluid .row
.span6 .col-md-12
%h2 .page-header
%h1
People People
- if @people - if @people
= "(#{@people.length})" = "(#{@people.length})"
.span6 = link_to "New person", new_admin_person_path, :class => "btn btn-success pull-right"
.pull-right{:style=>"margin-top:20px; margin-bottom:20px;"}
= link_to "New person", new_admin_person_path, :class => "btn btn-success"
.row-fluid .row
.span12 .col-md-12
.well .well
%table.table.table-striped.table-bordered.table-hover#people %table.table.table-striped.table-bordered.table-hover#people
%thead %thead

View file

@ -1,8 +1,8 @@
.row-fluid .row
.span6 .col-md-6
%legend Question %legend Question
= f.input :title, :label => "Your Question" = f.input :title, :label => "Your Question"
= f.input :question_type = f.input :question_type
= f.input :global, :label => "Make Global", :hint => "(Global questions are available for selection to all conferences)" = f.input :global, :label => "Make Global", :hint => "(Global questions are available for selection to all conferences)"
.span6 .col-md-6
= dynamic_association :answers, "Answers", f, :hint => "Insert your answers in the order you want them to appear" = dynamic_association :answers, "Answers", f, :hint => "Insert your answers in the order you want them to appear"

View file

@ -1,23 +1,21 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
.pull-right .pull-right
%b= link_to "Create New Question","#", "data-toggle" => "modal", "data-target" => "#new-question", :class => "btn btn-success" %b= link_to "Create New Question","#", "data-toggle" => "modal", "data-target" => "#new-question", :class => "btn btn-success"
%br %br
%br %br
- if @questions.count > 0 - if @questions.count > 0
= semantic_form_for(@conference, :url => admin_conference_questions_update_conference_path(@conference.short_title), :method => 'put') do |f| = semantic_form_for(@conference, :url => admin_conference_questions_update_conference_path(@conference.short_title), :method => 'put') do |f|
.questions{:id => "myquestions"} .questions{:id => "myquestions"}
= render :partial => "questions" = render :partial => "questions"
= f.submit "Update Questions for #{@conference.short_title}", :class => "btn btn-primary", :confirm => "Are you sure you want to make these changes?" = f.submit "Update Questions for #{@conference.short_title}", :class => "btn btn-primary", :confirm => "Are you sure you want to make these changes?"
.modal.hide.fade{:id => "new-question", "role" => "dialog", "aria-hidden" => "true"}
.modal.fade{:id => "new-question", "role" => "dialog", "aria-hidden" => "true"}
.modal-dialog
.modal-content
.modal-header .modal-header
%h3{:id => "new-question-header"} %h3{:id => "new-question-header"}
Add new question Add new question

View file

@ -1,13 +1,11 @@
.container-fluid .row
.row-fluid .col-md-12
.span12
%h3 %h3
Edit registration of #{@person.public_name} (#{@person.email}) for #{@conference.title} Edit registration of #{@person.public_name} (#{@person.email}) for #{@conference.title}
%br %br
.row-fluid .row
.span12 .col-md-12
= semantic_form_for(@registration, :url => admin_conference_registrations_edit_path(@conference.short_title, @registration.id), :html => { :method => :put }) do |f| = semantic_form_for(@registration, :url => admin_conference_registrations_edit_path(@conference.short_title, @registration.id), :html => { :method => :put }) do |f|
= f.inputs "Personal Information" do = f.inputs "Personal Information" do
= f.fields_for :person do |p| = f.fields_for :person do |p|
= p.input :first_name, :as => :string = p.input :first_name, :as => :string
@ -16,25 +14,21 @@
= p.text_field :irc_nickname, :as => :string = p.text_field :irc_nickname, :as => :string
= p.label :Affiliation = p.label :Affiliation
= p.text_field :company, :placeholder => "Company/User Group/nothing", :as => :string = p.text_field :company, :placeholder => "Company/User Group/nothing", :as => :string
= f.inputs "Registration Information" do = f.inputs "Registration Information" do
- if @conference.use_supporter_levels? and @conference.supporter_levels.length > 0 - if @conference.use_supporter_levels? and @conference.supporter_levels.length > 0
= f.semantic_fields_for :supporter_registration do |reg| = f.semantic_fields_for :supporter_registration do |reg|
= reg.input :supporter_level, :as => :select, :collection => @conference.supporter_levels = reg.input :supporter_level, :as => :select, :collection => @conference.supporter_levels
= reg.input :code, :label => "Confirmation or registration code (if applicable)" = reg.input :code, :label => "Confirmation or registration code (if applicable)"
%span#supporter-link.help-block %span#supporter-link.help-block
= f.input :attending_with_partner, :label => false = f.input :attending_with_partner, :label => false
= f.input :using_affiliated_lodging, :label => false = f.input :using_affiliated_lodging, :label => false
= f.input :handicapped_access_required, :label => false = f.input :handicapped_access_required, :label => false
= f.input :other_special_needs, :label => "Any other special needs?", :input_html => {:rows => 2, :class => "span6"} = f.input :other_special_needs, :label => "Any other special needs?", :input_html => {:rows => 2, :class => "span6"}
- if @conference.social_events.count > 0 - if @conference.social_events.count > 0
= f.inputs "Are you planning to attend any of the parties?" do = f.inputs "Are you planning to attend any of the parties?" do
%br Yes, I'll be attending... %br Yes, I'll be attending...
%br %br
= f.input :social_events, :as => :check_boxes, :label => false, :collection => @conference.social_events = f.input :social_events, :as => :check_boxes, :label => false, :collection => @conference.social_events
= f.action :submit, :button_html => { :value => "Edit Registration", :class => "btn btn-primary" } = f.action :submit, :button_html => { :value => "Edit Registration", :class => "btn btn-primary" }
:javascript :javascript
$("#registration_supporter_registration_attributes_supporter_level_id").change(function () { $("#registration_supporter_registration_attributes_supporter_level_id").change(function () {

View file

@ -1,9 +1,9 @@
.row .row
.span12 .col-md-12
%h3 %h3
Create new account and registration Create new account and registration
.row .row
.span12 .col-md-12
= semantic_form_for(@registration, :url => admin_conference_registrations_new_path(@conference.short_title), :html => { :method => :put }) do |f| = semantic_form_for(@registration, :url => admin_conference_registrations_new_path(@conference.short_title), :html => { :method => :put }) do |f|
= f.inputs "Your details" do = f.inputs "Your details" do

View file

@ -1,16 +1,15 @@
.row-fluid .row
.span12 .col-md-12
.pull-right{:style=>"margin-top:20px; margin-bottom:20px;"} .page-header
= link_to "New", admin_conference_registrations_new_path(@conference.short_title), :class => "btn btn-primary"
= link_to "Export PDF", admin_conference_registrations_path(@conference.short_title, :format => :pdf), :class => "btn btn-success"
= link_to "Export xlsx", {:format => :xlsx}, :class => "btn btn-success"
.row-fluid
.span12
%h2 %h2
Registrations Registrations
- if @registrations - if @registrations
= "(#{@registrations.length})" = "(#{@registrations.length})"
= " - Attended (#{@attended})" = " - Attended (#{@attended})"
.btn-group.pull-right
= link_to "New", admin_conference_registrations_new_path(@conference.short_title), :class => "btn btn-default"
= link_to "Export PDF", admin_conference_registrations_path(@conference.short_title, :format => :pdf), :class => "btn btn-default"
= link_to "Export XLS", {:format => :xlsx}, :class => "btn btn-default"
%table.table.table-bordered.table-striped.table-hover#registrations %table.table.table-bordered.table-striped.table-hover#registrations
%thead %thead
%th %th

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@conference, :url => admin_conference_rooms_update_path(@conference.short_title)) do |f| = semantic_form_for(@conference, :url => admin_conference_rooms_update_path(@conference.short_title)) do |f|
= dynamic_association :rooms, "Rooms", f = dynamic_association :rooms, "Rooms", f
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"} = f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@conference, :url => admin_conference_social_events_path(@conference.short_title)) do |f| = semantic_form_for(@conference, :url => admin_conference_social_events_path(@conference.short_title)) do |f|
= dynamic_association :social_events, "Social Events", f = dynamic_association :social_events, "Social Events", f
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"} = f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}

View file

@ -1,5 +1,5 @@
.row-fluid .row
.span4 .col-md-4
- if @registered > 0 - if @registered > 0
- if @attendees > 0 - if @attendees > 0
%h4{:style => "text-indent: 25px"}= "Registrations - Attendees (#{(@attendees.to_f / @registered * 100).round }%)" %h4{:style => "text-indent: 25px"}= "Registrations - Attendees (#{(@attendees.to_f / @registered * 100).round }%)"
@ -11,30 +11,29 @@
- else - else
%h5 There are no registrations yet. %h5 There are no registrations yet.
.col-md-4
.span4
- if @registered > 0 - if @registered > 0
%h4{:style => "text-indent: 10px"}= "Attendance of pre-registered" %h4{:style => "text-indent: 10px"}= "Attendance of pre-registered"
.row-fluid .row-fluid
.span12#registered_attended .span12#registered_attended
= render :partial => "registered_attended" = render :partial => "registered_attended"
.span4 .col-md-4
- if @registered > 0 - if @registered > 0
%h4{:style => "text-indent: 25px"}= "% of pre-registered" %h4{:style => "text-indent: 25px"}= "% of pre-registered"
.row-fluid .row-fluid
.span12#preregistered_onsite .span12#preregistered_onsite
= render :partial => "preregistered_onsite" = render :partial => "preregistered_onsite"
.row-fluid .row
.span6 .col-md-6
- if @registered > 0 - if @registered > 0
%h4= "Other Info" %h4= "Other Info"
.row-fluid .row-fluid
.span12#other_info .span12#other_info
= render :partial => "other_info" = render :partial => "other_info"
.span6 .col-md-6
- if @registered > 0 - if @registered > 0
%h4{:style => "text-indent: 98px"}= "Registrations over time" %h4{:style => "text-indent: 98px"}= "Registrations over time"
.row-fluid .row-fluid

View file

@ -1,5 +1,5 @@
.row-fluid .row
.span12 .col-md-12
%ul.nav.nav-tabs#myTab %ul.nav.nav-tabs#myTab
%li.active %li.active
%a{:href=>"#registrations", "data-toggle"=>"tab"} Registrations %a{:href=>"#registrations", "data-toggle"=>"tab"} Registrations

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@conference, :url => admin_conference_supporter_levels_path(@conference.short_title)) do |f| = semantic_form_for(@conference, :url => admin_conference_supporter_levels_path(@conference.short_title)) do |f|
= f.input :use_supporter_levels, :label => false = f.input :use_supporter_levels, :label => false
= dynamic_association :supporter_levels, "Supporter Levels", f = dynamic_association :supporter_levels, "Supporter Levels", f

View file

@ -7,12 +7,12 @@
= f.input :code_is_valid, :as => :boolean, :label => false = f.input :code_is_valid, :as => :boolean, :label => false
= f.action :submit, :button_html => { :value => "Save", :class => "btn btn-primary" } = f.action :submit, :button_html => { :value => "Save", :class => "btn btn-primary" }
.row-fluid .row
.span12 .col-md-12
.pull-right{:style=>"margin-top:20px; margin-bottom:20px;"} .pull-right{:style=>"margin-top:20px; margin-bottom:20px;"}
= link_to "New Supporter", "#", :id => "new-supporter-button", :class => "btn btn-success" = link_to "New Supporter", "#", :id => "new-supporter-button", :class => "btn btn-success"
.row-fluid .row
.span12 .col-md-12
%h2 Supporters %h2 Supporters
.well .well
%table.table.table-striped#supporters %table.table.table-striped#supporters

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@conference, :url => admin_conference_tracks_update_path(@conference.short_title)) do |f| = semantic_form_for(@conference, :url => admin_conference_tracks_update_path(@conference.short_title)) do |f|
= dynamic_association :tracks, "Tracks", f = dynamic_association :tracks, "Tracks", f
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"} = f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}

View file

@ -1,6 +1,5 @@
.container-fluid .row
.row-fluid .col-md-12
.span12
%h2 %h2
Users Users
- if @users - if @users
@ -57,7 +56,6 @@
%br %br
%button{:class=> "btn btn-danger", "data-dismiss"=> "modal", "aria-hidden"=>"true"} %button{:class=> "btn btn-danger", "data-dismiss"=> "modal", "aria-hidden"=>"true"}
Cancel Cancel
- else - else
= "Give #{user.public_name} (#{user.email}) the following roles:" = "Give #{user.public_name} (#{user.email}) the following roles:"
= semantic_form_for(user, :url => admin_user_path(user), :method => :put) do |f| = semantic_form_for(user, :url => admin_user_path(user), :method => :put) do |f|

View file

@ -1,8 +1,7 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@venue, :url => admin_conference_venue_update_path(@conference.short_title),:html => {:multipart => true}) do |f| = semantic_form_for(@venue, :url => admin_conference_venue_update_path(@conference.short_title),:html => {:multipart => true}) do |f|
= f.input :name, :input_html => {:rows => 1} = f.input :name, :input_html => {:rows => 1}
= f.input :address, :input_html => {:rows => 1} = f.input :address, :input_html => {:rows => 1}

View file

@ -1,7 +1,7 @@
<div class="nested-fields"> <div class="nested-fields">
<%= f.inputs do %> <%= f.inputs do %>
<%= f.date_select :day %> <%= f.date_select :day %>
<%= f.input :description, :input_html => {:rows => "2", :class => "span8"} %> <%= f.input :description, :input_html => {:rows => "2", :class => "col-md-8"} %>
<%= remove_association_link :vday, f %> <%= remove_association_link :vday, f %>
<% end %> <% end %>
</div> </div>

View file

@ -1,7 +1,7 @@
<div class="nested-fields"> <div class="nested-fields">
<%= f.inputs do %> <%= f.inputs do %>
<%= f.input :title %> <%= f.input :title %>
<%= f.input :description, :input_html => {:rows => "2", :class => "span8"}%> <%= f.input :description, :input_html => {:rows => "2", :class => "col-md-8"}%>
<%= f.input :vdays, :collection => @conference.vdays.map {|x| [x.day, x.id]}, :label => "Position is required for the following days:"%> <%= f.input :vdays, :collection => @conference.vdays.map {|x| [x.day, x.id]}, :label => "Position is required for the following days:"%>
<%= remove_association_link :vposition, f %> <%= remove_association_link :vposition, f %>
<% end %> <% end %>

View file

@ -1,17 +1,16 @@
.container-fluid .row
.row-fluid .col-md-3
.span3
= render 'admin/conference/sidebar' = render 'admin/conference/sidebar'
.span9 .col-md-9
= semantic_form_for(@conference, :url => admin_conference_volunteers_update_path(@conference.short_title)) do |f| = semantic_form_for(@conference, :url => admin_conference_volunteers_update_path(@conference.short_title)) do |f|
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"} = f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}
%br %br
%br %br
= f.input :use_volunteers, :label => "Enable Volunteering" = f.input :use_volunteers, :label => "Enable Volunteering"
.row-fluid .row
.span6 .col-md-6
= f.input :use_vdays, :label => false = f.input :use_vdays, :label => false
= dynamic_association :vdays, "Volunteer Days", f = dynamic_association :vdays, "Volunteer Days", f
.span6 .col-md-6
= f.input :use_vpositions, :label => false = f.input :use_vpositions, :label => false
= dynamic_association :vpositions, "Volunteer positions", f = dynamic_association :vpositions, "Volunteer positions", f

View file

@ -1,15 +1,15 @@
.row .row
.span12 .col-md-12
%h3 %h3
Registration for Registration for
= @conference.title = @conference.title
- if @person.proposal_count(@conference) > 0 - if @person.proposal_count(@conference) > 0
.row .row
.span12 .col-md-12
%i %i
Please note: Registration is not automatically performed for speakers. If you're scheduled to speak at the conference, you still need to register! Please note: Registration is not automatically performed for speakers. If you're scheduled to speak at the conference, you still need to register!
.row .row
.span12 .col-md-12
= f.inputs :name => "Your Details" do = f.inputs :name => "Your Details" do
%br %br
Your public name (required) Your public name (required)

View file

@ -1,5 +1,5 @@
.row .row
.span12 .col-md-12
= f.input :volunteer, :label => "Click here if you want to become a volunteer at #{@conference.short_title}", :input_html => {:maxlength => 15, :size => 40} = f.input :volunteer, :label => "Click here if you want to become a volunteer at #{@conference.short_title}", :input_html => {:maxlength => 15, :size => 40}
= f.fields_for :person do |p| = f.fields_for :person do |p|
= render :partial => 'devise/registrations/volunteerperson', :locals => {:p => p} = render :partial => 'devise/registrations/volunteerperson', :locals => {:p => p}

View file

@ -1,5 +1,5 @@
.row .row
.span12 .col-md-12
= semantic_form_for(@registration, :url => register_conference_path(@conference.short_title), :html => { :method => :put }) do |f| = semantic_form_for(@registration, :url => register_conference_path(@conference.short_title), :html => { :method => :put }) do |f|
.tabbable .tabbable
%ul.nav.nav-tabs %ul.nav.nav-tabs

View file

@ -1,5 +0,0 @@
<p>Welcome <%= @resource.email %>!</p>
<p>You can confirm your account email through the link below:</p>
<p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>

View file

@ -1,8 +0,0 @@
<p>Hello <%= @resource.email %>!</p>
<p>Someone has requested a link to change your password, and you can do this through the link below.</p>
<p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>
<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>

View file

@ -1,7 +0,0 @@
<p>Hello <%= @resource.email %>!</p>
<p>Your account has been locked due to an excessive amount of unsuccessful sign in attempts.</p>
<p>Click the link below to unlock your account:</p>
<p><%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %></p>

View file

@ -1,16 +0,0 @@
<h2>Change your password</h2>
<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>
<%= f.hidden_field :reset_password_token %>
<div><%= f.label :password, "New password" %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation, "Confirm new password" %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.submit "Change my password" %></div>
<% end %>
<%= render "devise/shared/links" %>

View file

@ -1,12 +0,0 @@
<h2>Forgot your password?</h2>
<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.submit "Send me reset password instructions" %></div>
<% end %>
<%= render "devise/shared/links" %>

View file

@ -1,21 +0,0 @@
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password, :autocomplete => "off" %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password %></div>
<div><%= f.submit "Update" %></div>
<% end %>
<h3>Cancel my account</h3>
<p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %>.</p>
<%= link_to "Back", :back %>

View file

@ -1,20 +0,0 @@
<% if false %>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= f.fields_for :person do |p| %>
<h2><%= p.label :first_name %></h2>
<p><%= p.text_field :first_name %></p>
<h2><%= p.label :last_name %></h2>
<p><%= p.text_field :last_name %></p>
<% end %>
<div><%= f.submit "Update" %></div>
<% end %>
<% end %>
<%= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= f.fields_for :person do |p| %>
<%= f.inputs :first_name, :last_name, :for => :person %>
<% end %>
<div><%= f.submit "Update" %></div>
<% end %>

View file

@ -1,18 +0,0 @@
<%= devise_error_messages! %>
<%= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= f.inputs :name => "Profile" do %>
<%= f.fields_for :person do |p| %>
<%= f.inputs :first_name, :last_name, :for => :person %>
<% end %>
<% end %>
<%= f.inputs :name => "Account" do %>
<%= f.input :email %>
<%= 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 :current_password, :input_html => {:autocomplete => "off"}, :hint => "(we need your current password to confirm your changes)" %>
<% end %>
<div><%= f.submit "Update" %></div>
<% end %>

View file

@ -1,5 +1,5 @@
.container .row
.row-fluid .col-md-12
= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| = semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f|
= f.inputs :name => "Profile" do = f.inputs :name => "Profile" do
= f.fields_for :person do |p| = f.fields_for :person do |p|
@ -8,8 +8,6 @@
= p.input :public_name, :as => :string = p.input :public_name, :as => :string
= p.input :irc_nickname, :label => "IRC nick:", :as => :string = p.input :irc_nickname, :label => "IRC nick:", :as => :string
= p.input :company, :label => "Affiliation", :as => :string, :hint => "This could be a company, a user group, or nothing at all." = p.input :company, :label => "Affiliation", :as => :string, :hint => "This could be a company, a user group, or nothing at all."
= image_tag current_user.person.avatar(:small)
= p.input :avatar, :label => "Picture", :hint => "Upload a new picture."
= p.input :biography, :input_html => {:rows => 5, "onkeyup" => "word_count(this, 'biography-count', 150)"}, :for => :person = p.input :biography, :input_html => {:rows => 5, "onkeyup" => "word_count(this, 'biography-count', 150)"}, :for => :person
You have used You have used
%span#biography-count #{current_user.person.biography_word_count} %span#biography-count #{current_user.person.biography_word_count}
@ -17,7 +15,6 @@
%br %br
%br %br
= render :partial => 'devise/registrations/volunteerperson', :locals => {:p => p} = render :partial => 'devise/registrations/volunteerperson', :locals => {:p => p}
= f.inputs :name => "Account" do = f.inputs :name => "Account" do
= f.input :email, :required => false = f.input :email, :required => false
= 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"}

View file

@ -1,18 +0,0 @@
<h2>Sign up</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render "devise/shared/links" %>

View file

@ -1,14 +1,15 @@
.container .row
%h2.text-center .page-header
Sign Up %h1.text-center Sign Up
.row-fluid .col-md-5.col-md-offset-1
.well.span3.offset2 .well
= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| = semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
= f.input :email = f.input :email
= f.input :password = f.input :password
= f.input :password_confirmation = f.input :password_confirmation
= f.action :submit, :as => :button, :label => "Sign Up", :button_html => {:class => "btn btn-primary"} = f.action :submit, :as => :button, :label => "Sign Up", :button_html => {:class => "btn btn-primary"}
.well.span3.offset2 .col-md-3.col-md-offset-2
.well
%h4 %h4
Already have an account? Already have an account?
= render "devise/shared/links" = render "devise/shared/links"

View file

@ -1,18 +0,0 @@
/
<h2>Sign in</h2>
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<div><%= f.submit "Sign in" %></div>
<% end %>
<%= render "devise/shared/links" %>

View file

@ -1,15 +0,0 @@
.container
%h2.text-center
Sign In
.row-fluid
.well.span3.offset2
= semantic_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
= f.input :email
= f.input :password
- if devise_mapping.rememberable?
= f.input :remember_me, :as=> :boolean, :label => false
= f.action :submit, :as => :button, :label => "Sign In", :button_html => {:class => "btn btn-primary"}
.well.span3.offset2
%h4
No account?
= render "devise/shared/links"

View file

@ -1,22 +0,0 @@
- if controller_name != 'sessions'
= button_to "Sign In", new_session_path(resource_name), :method => :get, :class => "btn btn-primary", :style=> "margin-top: 5px"
- if devise_mapping.registerable? && controller_name != 'registrations'
= button_to "Sign Up", new_registration_path(resource_name), :method => :get, :class => "btn btn-primary", :style=> "margin-top: 5px"
- if devise_mapping.recoverable? && controller_name != 'passwords'
= link_to "Forgot your password?", new_password_path(resource_name)
%br
- if devise_mapping.confirmable? && controller_name != 'confirmations'
= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name)
%br
- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name)
%br
- if devise_mapping.omniauthable?
- resource_class.omniauth_providers.each do |provider|
= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider)

View file

@ -1,12 +0,0 @@
<h2>Resend unlock instructions</h2>
<%= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.submit "Resend unlock instructions" %></div>
<% end %>
<%= render "devise/shared/links" %>

View file

@ -1,55 +0,0 @@
<div class="row">
<div class="span12">
<h2 class="text-center">Upcoming Conferences</h2>
</div>
</div>
<% @current.each do |conference| %>
<div class="row-fluid" style="margin-top: 30px;">
<div clas="span12">
<div class="well">
<div class="row">
<div class="span4 text-center">
<%= image_tag conference.logo(:original) %>
</div>
<div class="span6">
<h3>
<%= conference.title %>
<br>
<span class="muted"><%= conference.date_range_string %></span>
</h3>
<% if conference.venue.name and conference.venue.website and conference.venue.address %>
<p>
<small>
<%= link_to conference.venue.name, conference.venue.website %>,
<%= link_to conference.venue.address, "http://maps.google.com/maps?q=#{conference.venue.address}" %>
</small>
<% end -%>
<% if conference.venue.description %>
<%= simple_format(conference.venue.description, class: 'lead') %>
<% end -%>
</div>
<div class="span2">
<ul class="nav nav-tabs nav-stacked">
<% if conference.registration_open? %>
<%- if conference.user_registered?(current_user) %>
<li><%= link_to "Modify Registration", register_conference_path(conference.short_title) %></li>
<%- else %>
<li><%= link_to "Register", register_conference_path(conference.short_title) %></li>
<% end %>
<% end %>
<li><%= link_to "Schedule", conference_schedule_path(conference.short_title) %></li>
<%- if !current_user.nil? && current_user.person.proposal_count(conference) > 0 %>
<li><%= link_to "View My Proposals", conference_proposal_index_path(conference.short_title) %></li>
<%- elsif conference.cfp_open? %>
<li><%= link_to "Submit Proposal", conference_proposal_index_path(conference.short_title) %></li>
<% end %>
</ul>
</div>
</div>
</div>
</div>
</div>
<% end %>

View file

@ -0,0 +1,36 @@
.row
.col-md-12.page-header
%h2.text-center Upcoming Conferences
- @current.each do |conference|
.row
.col-md-12
.well
.row
.col-md-4.text-center
= image_tag(conference.logo(:original), class: 'img-responsive')
.col-md-6
%h3
= conference.title
%small
%b
= conference.date_range_string
- if conference.venue.name and conference.venue.website and conference.venue.address
%p
%small
= link_to conference.venue.name, conference.venue.website
,
\#{link_to conference.venue.address, "http://maps.google.com/maps?q=#{conference.venue.address}"}
- if conference.venue.description
= simple_format(conference.venue.description, class: 'lead')
.col-md-2
.btn-group-vertical
- if conference.registration_open?
- if conference.user_registered?(current_user)
= link_to "Modify Registration", register_conference_path(conference.short_title), :class =>"btn btn-default"
- else
= link_to "Register", register_conference_path(conference.short_title), :class =>"btn btn-success"
= link_to "Schedule", conference_schedule_path(conference.short_title), :class =>"btn btn-default"
- if !current_user.nil? && current_user.person.proposal_count(conference) > 0
= link_to "View My Proposals", conference_proposal_index_path(conference.short_title), :class =>"btn btn-default"
- elsif conference.cfp_open?
= link_to "Submit Proposal", conference_proposal_index_path(conference.short_title), :class =>"btn btn-default"

View file

@ -0,0 +1,30 @@
%ul.nav.navbar-nav
%li{:class=> active_nav_li(admin_conference_path(@conference.short_title))}
= link_to(admin_conference_path(@conference.short_title)) do
%span.glyphicon.glyphicon-wrench
Settings
%li{:class=> active_nav_li(admin_conference_registrations_path(@conference.short_title))}
= link_to(admin_conference_registrations_path(@conference.short_title)) do
%span.glyphicon.glyphicon-user
Registrations
- if @conference.use_supporter_levels? and @conference.supporter_levels.length > 0
%li{:class=> active_nav_li(admin_conference_supporters_path(@conference.short_title))}
= link_to(admin_conference_supporters_path(@conference.short_title)) do
%span.glyphicon.glyphicon-star
Supporters
%li{:class=> active_nav_li(admin_conference_events_path(@conference.short_title))}
= link_to(admin_conference_events_path(@conference.short_title)) do
%span.glyphicon.glyphicon-comment
Events
%li{:class=> active_nav_li(admin_conference_stats_path(@conference.short_title))}
= link_to(admin_conference_stats_path(@conference.short_title)) do
%span.glyphicon.glyphicon-tasks
Statistics
%li{:class=> active_nav_li(admin_conference_volunteers_list_path(@conference.short_title))}
= link_to(admin_conference_volunteers_list_path(@conference.short_title)) do
%span.glyphicon.glyphicon-user
Volunteers
%li
= link_to(admin_conference_schedule_path(@conference.short_title), :target => "_blank") do
%span.glyphicon.glyphicon-calendar
Schedule

View file

@ -1,74 +1,50 @@
%a.btn.btn-navbar{"data-target" => ".nav-collapse", "data-toggle" => "collapse", :id => "mobmenu" } .navbar.navbar-default.navbar-fixed-top{:role=>"navigation"}
%span.icon-th .container
= link_to "OSEM", root_path, :class => 'brand', :title => "Open Source Event Manager" .navbar-header
%button{"data-target"=>".navbar-collapse", "data-toggle"=>"collapse", :class=>"navbar-toggle", :type=>"button"}
%span.sr-only
Toggle navigation
%span.icon-bar
%span.icon-bar
%span.icon-bar
= link_to "OSEM", root_path, :class => 'navbar-brand', :title => "Open Source Event Manager"
.collapse.navbar-collapse
- if @conference && !@conference.short_title.nil? - if @conference && !@conference.short_title.nil?
%span.brand %p.navbar-text
= @conference.short_title = @conference.short_title
.nav-collapse.collapse
/ The Admin Menu for Conferences /
- if user_signed_in? - if user_signed_in?
- if has_role?(current_user, "admin") || has_role?(current_user, "organizer") - if has_role?(current_user, "admin") || has_role?(current_user, "organizer")
- if controller.class.name.split("::").first=="Admin" - if controller.class.name.split("::").first=="Admin"
- if @conference and !@conference.short_title.nil? - if @conference and not @conference.short_title.nil?
%ul.nav = render 'layouts/admin_menu'
%li.nav-header.hidden-desktop %ul.nav.navbar-nav.navbar-right
= @conference.short_title
%li{:class=> active_nav_li(admin_conference_path(@conference.short_title))}
= link_to(admin_conference_path(@conference.short_title)) do
%i.icon-wrench
Settings
%li{:class=> active_nav_li(admin_conference_registrations_path(@conference.short_title))}
= link_to(admin_conference_registrations_path(@conference.short_title)) do
%i.icon-user
Registrations
- if @conference.use_supporter_levels? and @conference.supporter_levels.length > 0
%li{:class=> active_nav_li(admin_conference_supporters_path(@conference.short_title))}
= link_to(admin_conference_supporters_path(@conference.short_title)) do
%i.icon-star
Supporters
%li{:class=> active_nav_li(admin_conference_events_path(@conference.short_title))}
= link_to(admin_conference_events_path(@conference.short_title)) do
%i.icon-comment
Events
%li{:class=> active_nav_li(admin_conference_stats_path(@conference.short_title))}
= link_to(admin_conference_stats_path(@conference.short_title)) do
%i.icon-tasks
Statistics
%li{:class=> active_nav_li(admin_conference_volunteers_list_path(@conference.short_title))}
= link_to(admin_conference_volunteers_list_path(@conference.short_title)) do
%i.icon-user
Volunteers
%li
= link_to(admin_conference_schedule_path(@conference.short_title), :target => "_blank") do
%i.icon-calendar
Schedule
%ul.nav.hidden-desktop
= render 'layouts/user_menu'
%ul.nav.pull-right.visible-desktop
%li.dropdown %li.dropdown
%a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"} %a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"}
#{current_user.person.public_name} (#{current_user.email}) - if not current_user.person.public_name.empty?
#{current_user.person.public_name}
-else
#{current_user.email}
= image_tag(current_user.person.gravatar_url(:size => "18"), :title => "Yo #{current_user.person.public_name}!") = image_tag(current_user.person.gravatar_url(:size => "18"), :title => "Yo #{current_user.person.public_name}!")
%b.caret %b.caret
%ul.dropdown-menu{:style => "padding: 15px;"} %ul.dropdown-menu
= render 'layouts/user_menu' = render 'layouts/user_menu'
- else - else
%ul.nav.pull-right %ul.nav.navbar-nav.navbar-right
- if current_page?(new_registration_path('user')) - if current_page?(new_registration_path('user'))
%li.active %li.active
= link_to(new_registration_path('user')) do = link_to(new_registration_path('user')) do
%i.icon-heart %span.glyphicon.glyphicon-heart
Sign Up Sign Up
- else - else
%li %li
= link_to(new_registration_path('user')) do = link_to(new_registration_path('user')) do
%i.icon-heart %span.glyphicon.glyphicon-heart
Sign Up Sign Up
%li.dropdown.visible-desktop %li.dropdown.visible-desktop
%a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"} %a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"}
%i.icon-user.icon-2x %span.glyphicon.glyphicon-user
Sign In Sign In
%i.icon-angle-down %span.caret
.dropdown-menu{:style => "padding: 17px;"} .dropdown-menu{:style => "padding: 17px;"}
= form_tag user_session_path do = form_tag user_session_path do
= text_field_tag 'user[email]' = text_field_tag 'user[email]'
@ -79,5 +55,5 @@
%button.btn.btn-block Sign in %button.btn.btn-block Sign in
%br %br
= link_to "Forgot your password?", new_password_path('user') = link_to "Forgot your password?", new_password_path('user')
%li.hidden-desktop %li.hidden-lg
= link_to('Sign In', new_user_session_path) = link_to('Sign In', new_user_session_path)

View file

@ -1,5 +1,3 @@
%li.nav-header
= current_user.person.public_name if current_user.person
%li %li
= link_to(edit_user_registration_path) do = link_to(edit_user_registration_path) do
%i.icon-wrench %i.icon-wrench
@ -15,7 +13,7 @@
Sign out Sign out
-if has_role?(current_user, "admin") || has_role?(current_user, "organizer") -if has_role?(current_user, "admin") || has_role?(current_user, "organizer")
%li.divider %li.divider
%li.nav-header %li.dropdown-header
Conferences Conferences
- @conferences.each do |conference| - @conferences.each do |conference|
%li %li
@ -28,7 +26,7 @@
%i.icon-plus %i.icon-plus
New Conference New Conference
%li.divider %li.divider
%li.nav-header %li.dropdown-header
People People
%li %li
= link_to(admin_users_path) do = link_to(admin_users_path) do

View file

@ -17,14 +17,10 @@
}); });
= yield(:head) = yield(:head)
%body %body
#wrap
.navbar.navbar-fixed-top
.navbar-inner
.container-fluid
= render 'layouts/navigation' = render 'layouts/navigation'
.container#messages .container#messages
.row .row
.span12 .col-md-12
= render 'layouts/messages' = render 'layouts/messages'
%noscript %noscript
:css :css
@ -37,11 +33,10 @@
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.
.container#content .container#content
= yield = yield
#push
#footer #footer
.container .container
%p.muted.credit.text-center %p.muted.text-center
OSEM is (C) 2013 OSEM is (C) 2013
= link_to "Matt Barringer", "http://incoherent.de" = link_to "Matt Barringer", "http://incoherent.de"
and released under the GPL. You can get the source code from and released under the GPL. You can get the source code from

View file

@ -1,5 +1,5 @@
.row .row
.span12 .col-md-12
.tabbable .tabbable
%ul.nav.nav-tabs %ul.nav.nav-tabs
%li.active %li.active

View file

@ -1,2 +1 @@
.container = render 'form'
= render 'form'

View file

@ -1,14 +1,12 @@
.container-fluid .row
.row-fluid .col-md-12.page-header
.span13 %h1
%h2.pull-left
= "My Proposals for #{@conference.title}" = "My Proposals for #{@conference.title}"
.pull-right{:style=>"margin-top:20px;"}
- if @conference.cfp_open? || organizer_or_admin? - if @conference.cfp_open? || organizer_or_admin?
= link_to "New Proposal", new_conference_proposal_path(@conference.short_title), :class => "btn btn-primary" = link_to "New Proposal", new_conference_proposal_path(@conference.short_title), :class => "btn btn-primary pull-right"
- if @person.proposal_count(@conference) > 0 - if @person.proposal_count(@conference) > 0
.row-fluid .row
.span12 .col-md-12
%table.table.table-bordered.table-striped %table.table.table-bordered.table-striped
%thead %thead
%th %th

View file

@ -1,6 +1,6 @@
.row .row
.span12 .col-md-12
= simple_format(@conference.call_for_papers.description) = simple_format(@conference.call_for_papers.description)
.row .row
.span12 .col-md-12
= render 'proposal_form' = render 'proposal_form'

View file

@ -1,13 +1,13 @@
.row .row
.span12 .col-md-12.page-header
%h2 %h2
= @event.title = @event.title
- if @event.subtitle - if @event.subtitle
%br %br
%span.muted %small
= @event.subtitle = @event.subtitle
.row-fluid .row
.span3 .col-md-3
%p %p
= simple_format(@event.abstract) = simple_format(@event.abstract)
%dl %dl
@ -22,31 +22,32 @@
- if @event.track_id - if @event.track_id
%span.label{:style =>"background-color: #{@event.track.color};"} %span.label{:style =>"background-color: #{@event.track.color};"}
= @event.track.name = @event.track.name
.span9 .col-md-9
-unless @event.video_id -unless @event.video_id
.row-fluid .row
.span12 .col-md-12
%h5.text-error %h5.text-error
No video of the event yet, sorry! Meanwhile... No video of the event yet, sorry! Meanwhile...
.row-fluid .row
.span12.flexvideo .col-md-12
.flexvideo
-if @event.video_id -if @event.video_id
%iframe{:width=>"560", :height=>"315", :frameborder=>"0", :allowfullscreen=>"true", :src=>"http://www.youtube.com/embed/#{@event.video_id}?rel=0"} %iframe{:width=>"560", :height=>"315", :frameborder=>"0", :allowfullscreen=>"true", :src=>"http://www.youtube.com/embed/#{@event.video_id}?rel=0"}
-else -else
%iframe{:width=>"560", :height=>"315", :frameborder=>"0", :allowfullscreen=>"true", :src=>"http://www.youtube.com/embed/Eiv4e5ZxTmg?rel=0"} %iframe{:width=>"560", :height=>"315", :frameborder=>"0", :allowfullscreen=>"true", :src=>"http://www.youtube.com/embed/Eiv4e5ZxTmg?rel=0"}
.row-fluid .row
.span8 .col-md-8
%h3 %h3
by by
= @speaker.public_name = @speaker.public_name
- if @speaker.company - if @speaker.company?
%br %br
%span.muted %span.muted
from from
= @speaker.company = @speaker.company
-if @speaker.biography -if @speaker.biography?
= simple_format(@speaker.biography) = simple_format(@speaker.biography)
.span4 .col-md-4
= image_tag @speaker.gravatar_url(:size => 200), :class => "img-rounded pull-right", :style => "margin: 8px;" = image_tag @speaker.gravatar_url(:size => 200), :class => "img-responsive img-rounded"