Browse Source

The working basics

development
Godwin 10 years ago
parent
commit
db60933506
  1. 2
      .travis.yml
  2. 130
      DB specs.txt
  3. 34
      Gemfile
  4. 238
      Gemfile.lock
  5. 2
      README.md
  6. 2
      Rakefile
  7. 10
      app/assets/fonts/README.md
  8. 29
      app/assets/fonts/glyphs/noun_project_592.svg
  9. BIN
      app/assets/images/Columbus-ohio-skyline-panorama.jpg
  10. BIN
      app/assets/images/Nola2013Banner-2.jpg
  11. BIN
      app/assets/images/Nola2013Banner.jpg
  12. BIN
      app/assets/images/Thumbs.db
  13. BIN
      app/assets/images/columbus.jpg
  14. BIN
      app/assets/images/columbus.png
  15. BIN
      app/assets/images/icon_24074.png
  16. BIN
      app/assets/images/poster.jpg
  17. BIN
      app/assets/images/t-dot.jpg
  18. BIN
      app/assets/images/translate_cursor-24.png
  19. BIN
      app/assets/images/translate_cursor-32.png
  20. BIN
      app/assets/images/translate_cursor.png
  21. BIN
      app/assets/images/vancity.jpg
  22. 175
      app/assets/javascripts/application.js.coffee
  23. 3
      app/assets/javascripts/conference_admins.js.coffee
  24. 3
      app/assets/javascripts/conference_host_organizations.js.coffee
  25. 3
      app/assets/javascripts/conference_registration_responses.js.coffee
  26. 3
      app/assets/javascripts/conference_registrations.js.coffee
  27. 3
      app/assets/javascripts/conference_registraton_form_fields.js.coffee
  28. 3
      app/assets/javascripts/conference_types.js.coffee
  29. 3
      app/assets/javascripts/conferences.js.coffee
  30. 3
      app/assets/javascripts/locations.js.coffee
  31. 3
      app/assets/javascripts/organization_statuses.js.coffee
  32. 3
      app/assets/javascripts/organizations.js.coffee
  33. 3
      app/assets/javascripts/registration_form_fields.js.coffee
  34. 121
      app/assets/javascripts/translate.js.coffee
  35. 3
      app/assets/javascripts/user_organization_relationships.js.coffee
  36. 3
      app/assets/javascripts/user_sessions.js.coffee
  37. 3
      app/assets/javascripts/users.js.coffee
  38. 3
      app/assets/javascripts/versions.js.coffee
  39. 3
      app/assets/javascripts/workshop_presentation_styles.js.coffee
  40. 3
      app/assets/javascripts/workshop_resources.js.coffee
  41. 3
      app/assets/javascripts/workshop_streams.js.coffee
  42. 37
      app/assets/javascripts/xapplication.xjs.xcoffee.erb
  43. 3
      app/assets/stylesheets/conference_admins.css.scss
  44. 3
      app/assets/stylesheets/conference_host_organizations.css.scss
  45. 3
      app/assets/stylesheets/conference_registration_responses.css.scss
  46. 3
      app/assets/stylesheets/conference_registrations.css.scss
  47. 3
      app/assets/stylesheets/conference_registraton_form_fields.css.scss
  48. 3
      app/assets/stylesheets/conference_types.css.scss
  49. 3
      app/assets/stylesheets/conferences.css.scss
  50. 1576
      app/assets/stylesheets/foundation_and_overrides.scss
  51. 3
      app/assets/stylesheets/locations.css.scss
  52. 3
      app/assets/stylesheets/organization_statuses.css.scss
  53. 3
      app/assets/stylesheets/organizations.css.scss
  54. 3
      app/assets/stylesheets/registration_form_fields.css.scss
  55. 376
      app/assets/stylesheets/sass/_layout.scss
  56. 529
      app/assets/stylesheets/sass/_typography.scss
  57. 69
      app/assets/stylesheets/scaffolds.css.scss
  58. 3
      app/assets/stylesheets/user_organization_relationships.css.scss
  59. 3
      app/assets/stylesheets/user_sessions.css.scss
  60. 3
      app/assets/stylesheets/users.css.scss
  61. 3
      app/assets/stylesheets/versions.css.scss
  62. 3
      app/assets/stylesheets/workshop_presentation_styles.css.scss
  63. 3
      app/assets/stylesheets/workshop_resources.css.scss
  64. 3
      app/assets/stylesheets/workshop_streams.css.scss
  65. 65
      app/assets/stylesheets/xapplication.css
  66. 58
      app/assets/stylesheets/xfoundation_and_overrides.css
  67. 1327
      app/assets/stylesheets/xfoundation_and_overrides.scss
  68. 37
      app/assets/xapplication.xjs.xcoffee
  69. 58
      app/controllers/conference_admins_controller.rb
  70. 58
      app/controllers/conference_host_organizations_controller.rb
  71. 58
      app/controllers/conference_registration_responses_controller.rb
  72. 58
      app/controllers/conference_registrations_controller.rb
  73. 58
      app/controllers/conference_registraton_form_fields_controller.rb
  74. 58
      app/controllers/conference_types_controller.rb
  75. 140
      app/controllers/conferences_controller.rb
  76. 58
      app/controllers/locations_controller.rb
  77. 58
      app/controllers/organization_statuses_controller.rb
  78. 96
      app/controllers/organizations_controller.rb
  79. 56
      app/controllers/pages_controller.rb
  80. 66
      app/controllers/registration_form_fields_controller.rb
  81. 58
      app/controllers/user_organization_relationships_controller.rb
  82. 21
      app/controllers/user_sessions_controller.rb
  83. 68
      app/controllers/users_controller.rb
  84. 2
      app/controllers/versions_controller.rb
  85. 58
      app/controllers/workshop_presentation_styles_controller.rb
  86. 58
      app/controllers/workshop_resources_controller.rb
  87. 58
      app/controllers/workshop_streams_controller.rb
  88. 483
      app/helpers/application_helper.rb
  89. 2
      app/helpers/conference_admins_helper.rb
  90. 2
      app/helpers/conference_host_organizations_helper.rb
  91. 2
      app/helpers/conference_registration_responses_helper.rb
  92. 2
      app/helpers/conference_registrations_helper.rb
  93. 2
      app/helpers/conference_registraton_form_fields_helper.rb
  94. 2
      app/helpers/conference_types_helper.rb
  95. 4
      app/helpers/conferences_helper.rb
  96. 2
      app/helpers/locations_helper.rb
  97. 2
      app/helpers/organization_statuses_helper.rb
  98. 3
      app/helpers/organizations_helper.rb
  99. 3
      app/helpers/pages_helper.rb
  100. 2
      app/helpers/registration_form_fields_helper.rb

2
.travis.yml

@ -5,4 +5,4 @@ before_install:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
before_script:
- psql -c 'create database starterapp_test;' -U postgres
- psql -c 'create database bikebike_test;' -U postgres

130
DB specs.txt

@ -0,0 +1,130 @@
conference
- title : string
- slug : string
- start_date : datetime
- end_date : datetime
- info : text
- poster : *image
- banner : *image
- workshop_schedule_published : boolean
- registration_open : boolean
- meals_provided : boolean
- meal_info : *text
- conference_type : [conference_type]
- host_organizations : NtoN[organization]
- locations : *NtoN[location]
- registration_form_fields : *NtoN[registration_form_field]
- workshop_resources : *NtoN[workshop_resource]
*conference_type
- title : string
- slug : string
- info : text
event
- title : string
- slug : string
- conference : [conference]
- info : text
- location : *[location]
- start_time : *datetime
- end_time : *datetime
*location
- title : *string
- latitude : *float
- longitude : *float
- country : *string
- territory : *string
- city : *string
- street : *string
- postal_code : *string
*organization
- name : string
- slug : string
- email_address : string
- shop_status : list(string)
- year_founded : integer
- info : text
- url : string
- logo : image
- icon : image
- requires_approval : boolean
- secret_question : *string
- secret_answer : *string(hashed)
- location : [location]
- members : NtoN[user_organization_replationship]
registration_form_field
- title : string
- slug : string
- required : boolean
- field_type : list(string)
- options : *string
- other_option : *boolean
- retired : boolean
request
- comment : text
- object : Nto1[object]
- is_invite : boolean
- state : list(string)
*user_organization_relationship
- user : [user]
- organization : [organization]
- relationship : string
workshop
- title : string
- slug : string
- info : text
- conference : [conference]
- stream : [workshop_stream]
- presentation_style : [presentation_style]
- requested_resources : NtoN[workshop_resource]
- facilitators : NtoN[user]
- min_facilitators : integer
- location : *[location]
- start_time : *datetime
- end_time : *datetime
*workshop_presentation_style
- name : string
- slug : string
- info : text
*workshop_resource
- name : string
- slug : string
- info : text
*workshop_stream
- name : string
- slug : string
- info : text
rails g scaffold organization name:string slug:string email_address:string url:string year_founded:integer info:text logo:string avatar:string requires_approval:boolean secret_question:string secret_answer:string location_id:integer user_organization_replationship_id:integer
organization_status:string
user_organization_replationship_id:integer
conference title:string slug:string start_date:datetime end_date:datetime info:text poster:string banner:string workshop_schedule_published:boolean registration_open:boolean meals_provided:boolean meal_info:text travel_info:text conference_type:conference_type_id
conference_hosts_organizations conference_id:integer organization_id:integer
- host_organizations : NtoN[organization]
- locations : *NtoN[location]
- registration_form_fields : *NtoN[registration_form_field]
- workshop_resources : *NtoN[workshop_resource]
registration_form_field
- title : string
- help : text
- required : boolean
- field_type : list(string)
- options : string
- retired : boolean

34
Gemfile

@ -1,8 +1,10 @@
source 'https://rubygems.org'
source 'http://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.0'
#gem 'nokogiri', :git => '/nokogiri/'
# Servers
# gem 'puma'
# gem 'unicorn'
@ -29,6 +31,7 @@ gem 'pg'
gem 'haml'
# gem 'http_accept_language'
gem 'jquery-rails'
gem 'jquery-ui-rails'
# gem 'resque', require: 'resque/server' # Resque web interface
# Assets
@ -36,14 +39,32 @@ gem 'coffee-rails', '~> 4.0.0'
gem 'haml_assets'
gem 'handlebars_assets'
gem 'i18n-js'
gem 'i18n-active_record',
:git => 'git://github.com/svenfuchs/i18n-active_record.git',
:require => 'i18n/active_record'
gem 'jquery-turbolinks'
gem 'sass-rails', '~> 4.0.0'
gem 'therubyracer'
gem 'compass-rails', '~> 2.0.alpha.0'
gem 'zurb-foundation'
gem "compass-rails", "~> 1.1.3"
gem 'foundation-rails'
gem 'turbolinks'
gem 'uglifier', '>= 1.3.0'
#gem 'rails_12factor', group: :production
gem 'bcrypt-ruby', git: 'https://github.com/codahale/bcrypt-ruby.git'
gem 'sorcery', '>= 0.8.1'
gem 'oauth2', '~> 0.8.0'
gem 'ruby-drupal-hash'
gem 'redis'
gem 'carrierwave'
gem 'carrierwave-imageoptimizer'
gem 'mini_magick'
gem 'carmen-rails', '~> 1.0.0', github: 'jim/carmen-rails'
gem 'nested_form'
gem 'acts_as_list'
#gem 'jcrop-rails'
#gem 'rmagick'
gem 'geocoder'
gem 'forgery'
gem 'paper_trail'
group :development, :test do
gem 'debugger'
@ -55,10 +76,13 @@ group :development, :test do
end
group :development do
#gem 'perftools.rb'
gem 'bullet'
gem 'better_errors'
gem 'binding_of_caller'
gem 'meta_request'
gem 'haml-rails'
gem 'awesome_print'
end
group :test do

238
Gemfile.lock

@ -1,5 +1,26 @@
GIT
remote: git://github.com/jim/carmen-rails.git
revision: 076dd251e075d07408e0b5268f886956ef2a347c
specs:
carmen-rails (1.0.0)
carmen (~> 1.0.0)
rails
GIT
remote: git://github.com/svenfuchs/i18n-active_record.git
revision: 55507cf59f8f2173d38e07e18df0e90d25b1f0f6
specs:
i18n-active_record (0.0.2)
i18n (>= 0.5.0)
GIT
remote: https://github.com/codahale/bcrypt-ruby.git
revision: df09e4c73f2f3d9a134b2abf536ca5f159f33075
specs:
bcrypt-ruby (3.1.2)
GEM
remote: https://rubygems.org/
remote: http://rubygems.org/
specs:
actionmailer (4.0.0)
actionpack (= 4.0.0)
@ -25,98 +46,133 @@ GEM
multi_json (~> 1.3)
thread_safe (~> 0.1)
tzinfo (~> 0.3.37)
acts_as_list (0.4.0)
activerecord (>= 3.0)
addressable (2.3.5)
arel (4.0.0)
arel (4.0.2)
atomic (1.1.14)
better_errors (1.0.1)
awesome_print (1.2.0)
better_errors (1.1.0)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
builder (3.1.4)
bullet (4.6.0)
uniform_notifier
bullet (4.8.0)
activesupport
uniform_notifier (>= 1.4.0)
callsite (0.0.11)
capybara (2.1.0)
capybara (2.2.1)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
childprocess (0.3.9)
carmen (1.0.0)
unicode_utils (~> 1.4.0)
carrierwave (0.9.0)
activemodel (>= 3.2.0)
activesupport (>= 3.2.0)
json (>= 1.7)
carrierwave-imageoptimizer (1.2.1)
carrierwave (~> 0.8)
image_optimizer (~> 1.2)
childprocess (0.5.1)
ffi (~> 1.0, >= 1.0.11)
chronic (0.10.2)
chunky_png (1.2.8)
coderay (1.0.9)
chunky_png (1.3.0)
coderay (1.1.0)
coffee-rails (4.0.1)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.0)
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.6.3)
coffee-script-source (1.7.0)
columnize (0.3.6)
compass (0.12.2)
chunky_png (~> 1.2)
fssm (>= 0.2.7)
sass (~> 3.1)
compass-rails (2.0.alpha.0)
compass (>= 0.12.2, < 0.14)
compass-rails (1.1.3)
compass (>= 0.12.2)
coveralls (0.7.0)
multi_json (~> 1.3)
rest-client
simplecov (>= 0.7)
term-ansicolor
thor
crack (0.4.1)
safe_yaml (~> 0.9.0)
crack (0.4.2)
safe_yaml (~> 1.0.0)
daemons (1.1.9)
database_cleaner (1.2.0)
debug_inspector (0.0.2)
debugger (1.6.2)
debugger (1.6.5)
columnize (>= 0.3.1)
debugger-linecache (~> 1.2.0)
debugger-ruby_core_source (~> 1.2.3)
debugger-ruby_core_source (~> 1.3.1)
debugger-linecache (1.2.0)
debugger-ruby_core_source (1.2.3)
debugger-ruby_core_source (1.3.1)
delorean (2.1.0)
chronic
diff-lcs (1.2.4)
diff-lcs (1.2.5)
docile (1.1.3)
email_spec (1.5.0)
launchy (~> 2.1)
mail (~> 2.2)
erubis (2.7.0)
eventmachine (1.0.3)
eventmachine (1.0.3-x86-mingw32)
execjs (2.0.2)
factory_girl (4.2.0)
factory_girl (4.4.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.2.1)
factory_girl (~> 4.2.0)
factory_girl_rails (4.4.0)
factory_girl (~> 4.4.0)
railties (>= 3.0.0)
faker (1.2.0)
i18n (~> 0.5)
ffi (1.9.0-x86-mingw32)
faraday (0.9.0)
multipart-post (>= 1.2, < 3)
ffi (1.9.3-x86-mingw32)
forgery (0.5.0)
foundation-rails (5.1.1.0)
railties (>= 3.1.0)
sass (>= 3.2.0)
fssm (0.2.10)
haml (4.0.3)
geocoder (1.1.9)
haml (4.0.5)
tilt
haml-rails (0.5.1)
actionpack (~> 4.0.0)
activesupport (~> 4.0.0)
haml (>= 3.1, < 5.0)
railties (~> 4.0.0)
haml_assets (0.2.2)
haml
tilt
handlebars_assets (0.14.1)
handlebars_assets (0.15)
execjs (>= 1.2.9)
multi_json
sprockets (>= 2.0.3)
tilt
hike (1.2.3)
i18n (0.6.5)
httpauth (0.2.1)
i18n (0.6.9)
i18n-js (2.1.2)
i18n
jquery-rails (3.0.4)
image_optimizer (1.2.1)
jquery-rails (3.1.0)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
jquery-turbolinks (2.0.1)
jquery-turbolinks (2.0.2)
railties (>= 3.1.0)
turbolinks
launchy (2.3.0)
jquery-ui-rails (4.2.0)
railties (>= 3.2.16)
json (1.8.1)
jwt (0.1.11)
multi_json (>= 1.5)
launchy (2.4.2)
addressable (~> 2.3)
mail (2.5.4)
mime-types (~> 1.16)
@ -126,16 +182,36 @@ GEM
rack-contrib
railties
method_source (0.8.2)
mime-types (1.25)
mini_portile (0.5.1)
mime-types (1.25.1)
mini_magick (3.7.0)
subexec (~> 0.2.1)
mini_portile (0.5.2)
minitest (4.7.5)
multi_json (1.8.2)
nokogiri (1.6.0-x86-mingw32)
multi_json (1.8.4)
multipart-post (2.0.0)
nested_form (0.3.2)
nokogiri (1.6.1)
mini_portile (~> 0.5.0)
nokogiri (1.6.1-x86-mingw32)
mini_portile (~> 0.5.0)
pg (0.17.0-x86-mingw32)
oauth (0.4.7)
oauth2 (0.8.1)
faraday (~> 0.8)
httpauth (~> 0.1)
jwt (~> 0.1.4)
multi_json (~> 1.0)
rack (~> 1.2)
paper_trail (3.0.0)
activerecord (>= 3.0, < 5.0)
activesupport (>= 3.0, < 5.0)
pg (0.17.1-x86-mingw32)
polyglot (0.3.3)
pry (0.9.12.2-x86-mingw32)
coderay (~> 1.0.5)
pry (0.9.12.6)
coderay (~> 1.0)
method_source (~> 0.8)
slop (~> 3.4)
pry (0.9.12.6-x86-mingw32)
coderay (~> 1.0)
method_source (~> 0.8)
slop (~> 3.4)
win32console (~> 1.3)
@ -157,50 +233,57 @@ GEM
rails_12factor (0.0.2)
rails_serve_static_assets
rails_stdout_logging
rails_serve_static_assets (0.0.1)
rails_serve_static_assets (0.0.2)
rails_stdout_logging (0.0.3)
railties (4.0.0)
actionpack (= 4.0.0)
activesupport (= 4.0.0)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (10.1.0)
ref (1.0.5)
rake (10.1.1)
redis (3.0.7)
rest-client (1.6.7)
mime-types (>= 1.16)
rspec (2.14.1)
rspec-core (~> 2.14.0)
rspec-expectations (~> 2.14.0)
rspec-mocks (~> 2.14.0)
rspec-core (2.14.6)
rspec-expectations (2.14.3)
rspec-core (2.14.7)
rspec-expectations (2.14.5)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.14.4)
rspec-rails (2.14.0)
rspec-mocks (2.14.5)
rspec-rails (2.14.1)
actionpack (>= 3.0)
activemodel (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 2.14.0)
rspec-expectations (~> 2.14.0)
rspec-mocks (~> 2.14.0)
rubyzip (1.0.0)
safe_yaml (0.9.7)
sass (3.2.12)
ruby-drupal-hash (0.0.3)
rubyzip (1.1.0)
safe_yaml (1.0.1)
sass (3.2.14)
sass-rails (4.0.1)
railties (>= 4.0.0, < 5.0)
sass (>= 3.1.10)
sprockets-rails (~> 2.0.0)
selenium-webdriver (2.37.0)
selenium-webdriver (2.39.0)
childprocess (>= 0.2.5)
multi_json (~> 1.0)
rubyzip (~> 1.0.0)
rubyzip (~> 1.0)
websocket (~> 1.0.4)
simplecov (0.7.1)
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
slop (3.4.6)
sprockets (2.10.0)
simplecov (0.8.2)
docile (~> 1.1.0)
multi_json
simplecov-html (~> 0.8.0)
simplecov-html (0.8.0)
slop (3.4.7)
sorcery (0.8.5)
bcrypt-ruby (>= 3.0)
oauth (~> 0.4.4)
oauth2 (>= 0.8.0, < 1.0.0)
sprockets (2.10.1)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
@ -209,49 +292,53 @@ GEM
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (~> 2.8)
term-ansicolor (1.2.2)
tins (~> 0.8)
therubyracer (0.11.0beta1-x86-mingw32)
ref
thin (1.5.1)
subexec (0.2.3)
term-ansicolor (1.3.0)
tins (~> 1.0)
thin (1.6.1)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
eventmachine (>= 1.0.0)
rack (>= 1.0.0)
thor (0.18.1)
thread_safe (0.1.3)
atomic
tilt (1.4.1)
tins (0.12.0)
tins (1.0.0)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
turbolinks (1.3.0)
turbolinks (2.2.1)
coffee-rails
tzinfo (0.3.38)
uglifier (2.2.1)
uglifier (2.4.0)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
uniform_notifier (1.3.0)
webmock (1.15.0)
json (>= 1.8.0)
unicode_utils (1.4.0)
uniform_notifier (1.4.0)
webmock (1.17.3)
addressable (>= 2.2.7)
crack (>= 0.3.2)
websocket (1.0.7)
win32console (1.3.2-x86-mingw32)
xpath (2.0.0)
nokogiri (~> 1.3)
zurb-foundation (4.3.2)
sass (>= 3.2.0)
PLATFORMS
x86-mingw32
DEPENDENCIES
acts_as_list
awesome_print
bcrypt-ruby!
better_errors
binding_of_caller
bullet
capybara
carmen-rails (~> 1.0.0)!
carrierwave
carrierwave-imageoptimizer
coffee-rails (~> 4.0.0)
compass-rails (~> 2.0.alpha.0)
compass-rails (~> 1.1.3)
coveralls
database_cleaner
debugger
@ -259,27 +346,38 @@ DEPENDENCIES
email_spec
factory_girl_rails
faker
forgery
foundation-rails
geocoder
haml
haml-rails
haml_assets
handlebars_assets
i18n-active_record!
i18n-js
jquery-rails
jquery-turbolinks
jquery-ui-rails
launchy
meta_request
mini_magick
nested_form
oauth2 (~> 0.8.0)
paper_trail
pg
pry
pry-rails
rails (= 4.0.0)
rails_12factor
redis
rspec
rspec-rails
ruby-drupal-hash
sass-rails (~> 4.0.0)
selenium-webdriver
simplecov
therubyracer
sorcery (>= 0.8.1)
thin
turbolinks
uglifier (>= 1.3.0)
webmock
zurb-foundation

2
README.md

@ -1,4 +1,4 @@
Starter App [![Build Status](https://travis-ci.org/diowa/ruby2-rails4-bootstrap-heroku.png?branch=master)](https://travis-ci.org/diowa/ruby2-rails4-bootstrap-heroku) [![Dependency Status](https://gemnasium.com/diowa/ruby2-rails4-bootstrap-heroku.png)](https://gemnasium.com/diowa/ruby2-rails4-bootstrap-heroku) [![Code Climate](https://codeclimate.com/github/diowa/ruby2-rails4-bootstrap-heroku.png)](https://codeclimate.com/github/diowa/ruby2-rails4-bootstrap-heroku) [![Coverage Status](https://coveralls.io/repos/diowa/ruby2-rails4-bootstrap-heroku/badge.png?branch=master)](https://coveralls.io/r/diowa/ruby2-rails4-bootstrap-heroku)
Bike!Bike!
===========
This is a starter web application based on the following technology stack:

2
Rakefile

@ -3,4 +3,4 @@
require File.expand_path('../config/application', __FILE__)
Starterapp::Application.load_tasks
BikeBike::Application.load_tasks

10
app/assets/fonts/README.md

@ -0,0 +1,10 @@
Bike!Bike! Icon Font
===========
To add to the icon font:
* Go to icomoon.io/app/
* Import the .svg in this folder
* Add you own svg icons
* Genreate and download the font
* Unzip and overwrite the contents into this directory

29
app/assets/fonts/glyphs/noun_project_592.svg

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="100px" height="58.526px" viewBox="0 0 100 58.526" enable-background="new 0 0 100 58.526" xml:space="preserve">
<path d="M98.878,38.354L100,38.296c-0.674-10.46-9.368-18.738-19.999-18.738c-3.3,0-6.409,0.802-9.154,2.214l-4.568-8.047
l1.211-2.686c0.25,0.049,0.469,0.075,0.645,0.075c1.176,0,5.174-3.63,4.408-5.579c-0.33-0.84-2.259-0.038-4.673,0.469
c-0.538,0.113-2.193,0.104-3.152,0c-2.233-0.242-4.194-0.762-4.565,0.259c-0.446,1.233,2.614,3.072,5.181,4.095l-0.654,1.451H32.187
l0.972-2.71l-0.265-0.095l1.489-4.151L34.34,4.838l0-0.001c-0.598-0.206-1.923-0.877-2.208-1.643
c-0.063-0.171-0.119-0.449,0.133-0.878c0.472-0.806,4.493-0.834,8.604-0.06L41.182,0.6c-2.083-0.392-8.988-1.491-10.369,0.863
c-0.448,0.765-0.538,1.566-0.26,2.317c0.314,0.847,1.046,1.482,1.737,1.919l-0.982,2.738l-0.265-0.095L26.489,21.04
c-2.335-0.953-4.889-1.482-7.566-1.482c-1.016,0-2.013,0.077-2.988,0.223l0.184,1.109C6.998,22.245,0,30.106,0,39.604
c0,10.451,8.472,18.923,18.923,18.923c7.83,0,14.548-4.755,17.426-11.535l1.027,0.453c1.025-2.408,1.593-5.058,1.593-7.841
c0-7.59-4.22-14.193-10.44-17.597l0.99-2.76l18.15,20.153c-0.65,0.892-1.043,1.983-1.043,3.172c0,2.989,2.423,5.413,5.413,5.413
c0.22,0,0.437-0.018,0.649-0.043l0.851,3.226h-1.23v2.247h4.795v-2.247h-1.822L54.31,47.48c1.773-0.823,3.017-2.576,3.121-4.635
l3.868-0.41c1.367,9.105,9.215,16.091,18.702,16.091c10.45,0,18.923-8.472,18.923-18.923c0-0.424-0.02-0.843-0.047-1.261
C98.878,38.347,98.878,38.35,98.878,38.354z M34.476,39.604c0,8.59-6.963,15.554-15.553,15.554S3.37,48.193,3.37,39.604
c0-8.589,6.963-15.553,15.553-15.553c2.274,0,4.433,0.493,6.38,1.37l-2.558,7.132l-3.009,4.622c-0.25-0.081-0.512-0.136-0.789-0.136
c-1.417,0-2.565,1.148-2.565,2.564c0,1.417,1.148,2.565,2.565,2.565c1.417,0,2.565-1.148,2.565-2.565
c0-0.522-0.158-1.008-0.427-1.414l3.125-4.8l2.6-7.189C31.396,28.905,34.476,33.894,34.476,39.604z M53.19,37.285
c-0.372-0.081-0.756-0.126-1.151-0.126c-0.186,0-0.368,0.01-0.548,0.027l-0.953-3.613h1.371v-2.246h-4.795v2.246h1.682l1.066,4.045
c-0.182,0.08-0.353,0.178-0.524,0.276L30.38,16.846l1-2.789h32.283L53.19,37.285z M60.004,40.879l-2.742,0.291
c-0.324-1.202-1.048-2.239-2.025-2.957l10.185-22.586l3.961,6.977c-5.66,3.543-9.427,9.831-9.427,17
C59.955,40.033,59.976,40.457,60.004,40.879z M64.448,39.604c0-5.495,2.853-10.321,7.154-13.087l6.264,11.033
c-0.396,0.411-0.672,0.934-0.78,1.517l-12.618,1.34C64.455,40.14,64.448,39.873,64.448,39.604z M80.001,55.157
c-7.747,0-14.168-5.665-15.354-13.077l12.614-1.339c0.446,1.074,1.505,1.83,2.74,1.83c1.64,0,2.969-1.328,2.969-2.968
c0-1.639-1.329-2.968-2.969-2.968c-0.23,0-0.453,0.032-0.669,0.082l-6.265-11.035c2.087-1.042,4.441-1.632,6.934-1.632
c8.59,0,15.553,6.964,15.553,15.553C95.554,48.193,88.591,55.157,80.001,55.157z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
app/assets/images/Columbus-ohio-skyline-panorama.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
app/assets/images/Nola2013Banner-2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
app/assets/images/Nola2013Banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 KiB

BIN
app/assets/images/Thumbs.db

Binary file not shown.

BIN
app/assets/images/columbus.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
app/assets/images/columbus.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

BIN
app/assets/images/icon_24074.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
app/assets/images/poster.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 KiB

BIN
app/assets/images/t-dot.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
app/assets/images/translate_cursor-24.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
app/assets/images/translate_cursor-32.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
app/assets/images/translate_cursor.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
app/assets/images/vancity.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 KiB

175
app/assets/javascripts/application.js.coffee

@ -0,0 +1,175 @@
#= require jquery
#= require jquery_ujs
#= require jquery.ui.sortable
#= require jquery.turbolinks
#= require turbolinks
#= require foundation
# FRONT END
# JS HANDLEBARS TEMPLATES
# require handlebars.runtime
# require jquery_nested_form
# I18n
#= require i18n
#= require i18n/translations
# ALL THE REST
#= require_tree .
'use strict'
I18n.defaultLocale = '<%= I18n.default_locale %>'
I18n.locale = $('html').attr 'lang'
try Typekit.load() catch
startSpinner = ->
$('#loading-spinner').show()
stopSpinner = ->
$('#loading-spinner').fadeOut()
# Turbolinks Spinner
document.addEventListener 'page:fetch', startSpinner
document.addEventListener 'page:receive', stopSpinner
readURL = (input) ->
reader = null
if input.files && input.files[0]
reader = new FileReader()
reader.readAsDataURL input.files[0]
reader.onload = (e) ->
$(input).prev().attr('src', e.target.result)
createOverlay = () ->
if $('#overlay').length > 0
$('#overlay').remove()
$('body').append('<div id="overlay" class="loading"><div id="overlay-inner"></div></div>')
$('#overlay-dlg')
setOverlayHTML = (html) ->
$('#overlay-inner').append('<div id="overlay-dlg">' + html + '</div>');
$('#overlay').removeAttr('class').click(destroyOverlay)
destroyOverlay = () ->
$('#overlay').remove()
selectA = (type, event, $emptyObj) ->
event.preventDefault()
# = $(this)
$overlay = createOverlay()
objs = []
$('.' + type + '-select-field.added input.' + type + '-id').each () -> obj.push($(this).val())
$.post $emptyObj.data().url + (if type == 'organization' then '/nonhosts' else '/nonmembers'), {added: objs},
(html) ->
setOverlayHTML(html).addClass('' + type + '-select')
$('#select-' + type + '-list a').click (event) ->
event.preventDefault()
$this = $(this)
$old_field = $emptyObj.closest('.field')
$field = $old_field.clone()
oldID = parseInt($old_field.find('input[type="hidden"]').attr('name').match(/\[(\d+)\]\[id\]/)[1])
newID = oldID + 1
$field.find('input.' + type + '-id').val($this.data().id)
$field.find('.' + type + 'name').html($this.find('.' + type + 'name').html()).before('<img src="' + $this.find('img').attr('src') + '" />')
$field.find('.select-' + type + '').remove()
$field.removeClass('new').addClass('added')
$old_field.html (i, html) ->
pregex = new RegExp('\\[' + oldID + '\\]', 'g');
aregex = new RegExp('_' + oldID + '_', 'g');
html.replace(pregex, '[' + newID + ']').replace(aregex, '_' + newID + '_')
$field.insertBefore($old_field)
$('a.select-' + type + '').click (event) -> selectA(type, event, $(this))
destroyOverlay()
return
, 'html'
updateFormField = () ->
$form = $('form#new_registration_form_field')
$field_type = $form.find('#registration_form_field_field_type')
field_type = $field_type.val()
$form.find('.registration-form-field-field').hide()
$form.find('.registration-form-field-field.field-type-' + field_type).show()
updateFormFieldForm = () ->
$('form #registration_form_field_field_type').change updateFormField
updateFormField()
$('form#new_registration_form_field').submit (event) ->
event.preventDefault()
$form = $(this)
serialized = $form.serialize()
$.post $form.attr('action'), serialized,
(json) ->
$form.replaceWith(json.form)
$('#registration-form-field-list').html(json.list)
updateFormFieldForm()
, 'json'
updateFormFieldList = () ->
$('#registration-form-field-list .add-form-field').click () ->
$.post 'form/add-field', {field: $(this).data().id},
(json) ->
$('#conference-form').html(json.form)
$('#registration-form-field-list').html(json.list)
#console.log json
updateFormFieldList()
return
$('#conference-form .remove-form-field').click () ->
$.post 'form/remove-field', {field: $(this).data().id},
(json) ->
$('#conference-form').html(json.form)
$('#registration-form-field-list').html(json.list)
updateFormFieldList()
return
$ ->
$(document).foundation();
$('.field.country-select select').change () ->
$country = $(this)
country = $country.val()
$territory = $('.field.subregion-select select')
if $territory.data().country == country
$territory.removeClass('can cant').addClass('can')
return
$.post '/location/territories', {country: country},
(json) ->
$territory.html('')
if json && Object.keys(json).length
$.each json, (code, name) ->
$territory.append($('<option>').text(name).attr('value', code))
return
$territory.removeClass('can cant').addClass('can')
$territory.data().country = country
else
$territory.removeClass('can cant').addClass('cant')
return
, 'json'
return
$('img + input[type="file"]').change () ->
readURL(this);
$('a.select-user, a.select-organization').click (event) -> selectA($(this).attr('class').match(/(^|\s)select\-([^\s]+)/)[2], event, $(this))
updateFormFieldForm()
updateFormFieldList()
$('ul.sortable').sortable
handle: '.drag-sort',
items: 'li',
update: (event, props) ->
$(this).children().each (index, child) ->
$(child).find('.sortable-position').val(index + 1)
url = $(this).data().url
if url
data = $(this).find('input, select, textarea').serialize()
$.post url, data#,
# (json) ->
# console.log json
#, 'json'

3
app/assets/javascripts/conference_admins.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/conference_host_organizations.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/conference_registration_responses.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/conference_registrations.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/conference_registraton_form_fields.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/conference_types.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/conferences.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/locations.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/organization_statuses.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/organizations.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/registration_form_fields.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

121
app/assets/javascripts/translate.js.coffee

@ -0,0 +1,121 @@
# I18n
#= require i18n
#= require i18n/translations
'use strict'
$(document).ready ->
$('#translation-control form').unbind('submit').bind('submit', (event)->
event.preventDefault()
event.stopPropagation()
$form = $(this)
serialized = $form.serialize()
$form.find('select, button, textarea').prop 'disabled', true
$.post $form.attr('action'), serialized,
(json) ->
if json.success
$span = $('.translate-me[data-translate-key="' + json.key + '"]')
$span.html(json.translation)
$span.attr('data-translate-untranslated', json.translation)
$span.removeClass 'untranslated'
else if json.test
console.log json.test
$form.find('select, button, textarea').prop 'disabled', false
return
, 'json'
return
)
$('.translate-me').click (event)->
if event.altKey
event.preventDefault()
key = $(this).attr('data-translate-key')
$('#translationkey').val key
resetTranslation key
$('#translationvalue').focus()
return
#$('#translationvalue, #translationkey').focus ->
$('#translation-control *').focus ->
key = $('#translationkey').val()
selectTranslation key
updateTranslation key
return
$('#translationkey').change (event)->
#$('#translationvalue').val('')
key = $('#translationkey').val()
selectTranslation key
resetTranslation key
#$('#translation').focus()
#console.log event
return
# $('#translationvalue, #translationkey').blur ->
$('#translation-control *').blur ->
selectTranslation()
return
$('#translationvalue').bind 'input propertychange', ()->
updateTranslation $('#translationkey').val()
return
return
selectTranslation = (key)->
$span = $('.translate-me.selected');
$span.removeClass 'selected'
$span.removeClass 'preview'
$('#translatevars').hide()
$('#translatepluralizations').hide()
$('#translatevars ul').html ''
$('#translationhascount').val('0')
if key
$target = $('.translate-me[data-translate-key="' + key + '"]')
if !$target || !$target.length
return
vars = $target.addClass('selected').data().vars
if vars
keys = Object.keys(vars)
if keys.length
for i in [0...keys.length]
$('#translatevars ul').append ('<li class="var-' + keys[i] + '" title="Value: ' + vars[keys[i]] + '">' + keys[i] + '</li>')
if keys[i] == 'count'
$('#translatepluralizations').show()
$('#translationhascount').val('1')
$('#translatevars').show()
else
$span.html ()->
$(this).attr('data-translate-untranslated')
return
updateTranslation = (key)->
$span = $('.translate-me[data-translate-key="' + key + '"]')
val = $('#translationvalue').val()
is_preview = ($span.hasClass 'preview')
$('#translatevars li').removeClass('used')
if val
if !is_preview
$span.addClass 'preview'
if !$span || !$span.length
return
vars = $span.data().vars
keys = Object.keys(vars)
for i in [0...keys.length]
_var = new RegExp('%{' + keys[i] + '}')
if val.match _var
# console.log 'Match!'
$('#translatevars li.var-' + keys[i]).addClass('used')
val = val.replace _var, vars[keys[i]]
else
if is_preview
$span.removeClass 'preview'
$span.html (val || $span.attr('data-translate-untranslated'))
return
resetTranslation = (key)->
$target = $('.translate-me[data-translate-key="' + key + '"]')
if $target && $target.length
translated = $target.data().translateTranslated
counts = ['zero', 'one', 'two', 'few', 'many']
for i in counts
val = translated[key + '.' + i]
$('#translationvalue_' + i).val(val || '')
$('#translationpluralization_' + i).prop('checked', !!val)
val = (translated[key] || translated[key + '.other'])
$('#translationvalue').val(val || '')
return

3
app/assets/javascripts/user_organization_relationships.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/user_sessions.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/users.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/versions.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/workshop_presentation_styles.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/workshop_resources.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

3
app/assets/javascripts/workshop_streams.js.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

37
app/assets/javascripts/xapplication.xjs.xcoffee.erb

@ -0,0 +1,37 @@
#= require jquery
#= require jquery_ujs
#= require jquery.turbolinks
#= require turbolinks
#= require foundation
# FRONT END
# JS HANDLEBARS TEMPLATES
# require handlebars.runtime
# I18n
#= require i18n
#= require i18n/translations
# ALL THE REST
#= require_tree .
'use strict'
I18n.defaultLocale = '<%= I18n.default_locale %>'
I18n.locale = $('html').attr 'lang'
startSpinner = ->
$('#loading-spinner').show()
stopSpinner = ->
$('#loading-spinner').fadeOut()
# Turbolinks Spinner
document.addEventListener 'page:fetch', startSpinner
document.addEventListener 'page:receive', stopSpinner
alert('123');
$ ->
$(document).foundation();

3
app/assets/stylesheets/conference_admins.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the conference_admins controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/conference_host_organizations.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the conference_host_organizations controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/conference_registration_responses.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the conference_registration_responses controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/conference_registrations.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the conference_registrations controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/conference_registraton_form_fields.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the conference_registraton_form_fields controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/conference_types.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the conference_types controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/conferences.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the conferences controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

1576
app/assets/stylesheets/foundation_and_overrides.scss

File diff suppressed because it is too large

3
app/assets/stylesheets/locations.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the Locations controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/organization_statuses.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the organization_statuses controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/organizations.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the organizations controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

3
app/assets/stylesheets/registration_form_fields.css.scss

@ -0,0 +1,3 @@
// Place all the styles related to the registration_form_fields controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

376
app/assets/stylesheets/sass/_layout.scss

@ -4,38 +4,370 @@
*/
#main-container, #footer, #nav-inner {
max-width: $large-screen;
margin: 0 auto;
html, #footer .container {
background-color: $primary-color
}
$body-background-color: #EEE;
$main-container-background-color: #F4F4F4;
$content-background-color: #FFF;
$layout-border-color: #DDD;
body {
background-color: $body-background-color;
height: auto;
}
#footer {
//margin-top: 5em;
}
main {
padding-bottom: 5em;
background-color: $white;
body.page-style-form & {
//background-color: $color-5;
}
.no-banner & {
//border-top: 0.25em solid $primary-color;
}
/*.no-banner &:before {
content: '///////////////';
color: #CCC;
font-weight: 100;
font-family: $header-font-family;
letter-spacing: 0.33333em;
font-size: 1em;
text-align: center;
display: block;
font-style: italic;
}*/
}
$body-background-color: $white;
//$main-container-background-color: #F4F4F4;
//$content-background-color: #FFF;
//$layout-border-color: #DDD;
$translation-control-background-color: $black !default;
$translation-control-text-color: $black !default;
#translation-control {
position: fixed;
padding: 0.75em;
background-color: $translation-control-background-color;
height: 3.75em;
overflow: visible;
z-index: 2;
width: 100%;
top: 0;
.row {
max-width: none;
}
select, button {
height: 2.66667em;
margin: 0;
}
select {
}
textarea {
margin: 0 0 0.5em;
min-height: 2.66667em;
}
button {
line-height: 0em;
font-size: 0.875em;
}
input, label {
margin: 0.75em 0 0 0.5em;
}
+ .top-bar {
margin-top: 3.75em;
}
}
#translatepluralizations {
display: none;
background-color: $translation-control-background-color;
color: $translation-control-text-color;
padding: 0.5em;
label {
color: inherit;
}
}
#translatevars {
display: none;
//position: absolute;
background-color: $translation-control-background-color;
color: $translation-control-text-color;
z-index: 1;
padding: 0.5em;
//margin-top: 0.5em;
ul {
list-style: none;
margin: 0;
display: inline-block;
}
li {
font-family: monospace;
font-size: 0.9em;
display: inline-block;
margin-right: 0.5em;
&:before {
content: '%{';
}
&:after {
content: '}';
}
&.used {
text-decoration: line-through;
}
}
}
#banner {
//min-height: 5em;
//background-color: rgba($black, 0.125);
position: relative;
color: $black;
//border-top: 0.25em solid $primary-color;
padding: 1em 0;
margin-bottom: 2.5em;
text-align: center;
&.has-image {
padding: 0;
margin-bottom: 5em;
color: #FFF;
background-size: cover;
background-position: center 75%;
min-height: 25em;
box-shadow: inset 0 10em 50em -5em #000;
text-shadow: 0 0.1em 0.75em #000;
text-align: left;
&:before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 100%;
height: 100%;
background-color: $primary-color;
opacity: 0.5;
}
&:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 1.1em;
background-image: linear-gradient(45deg, $white 25%, transparent 25%), linear-gradient(-45deg, transparent 75%, $white 75%);
background-image: -ms-linear-gradient(45deg, $white 25%, transparent 25%), -ms-linear-gradient(-45deg, transparent 75%, $white 75%);
background-image: -moz-linear-gradient(56deg, $white 25%, transparent 25%), -moz-linear-gradient(-56deg, transparent 75%, $white 75%);
background-image: -ms-linear-gradient(56deg, $white 25%, transparent 25%), -ms-linear-gradient(-56deg, transparent 75%, $white 75%);
background-image: -webkit-linear-gradient(56deg, $white 20%, transparent 25%), -webkit-linear-gradient(-56deg, transparent 75%, $white 80%);
background-repeat: repeat-x;
background-size: 1.25em 1.1em;
background-position: 0 bottom;
//padding-top: 0.6em;
//margin-top: 5em;
}
body.organizations & {
border-color: $organization-color;
&:before {
background-color: $organization-color;
}
&.has-image {
h1 {
color: #FFF;
}
h2 {
color: #CCC;
}
}
}
.page-style-emphasize-banner & {
padding-top: $topbar-height;
}
h1 {
color: $color-3;
}
h2, em {
color: $color-2;
}
}
figure img {
margin-bottom: -2.5em;
box-shadow: 0 0.1em 0.75em #000;
position: relative;
z-index: 1;
}
h1, h2 {
line-height: 1em;
}
.info {
padding-top: 5%;
}
p {
line-height: 1.3333em;
margin-top: 1.5em;
//box-shadow: 0 0 5em 1em #000;
//background-color: rgba(#000, 0.7);
//border-radius: 1em;
}
.button {
color: inherit;
background-color: $primary-color;// rgba(0, 0, 0, 0.75);
}
}
#main-container {
background-color: $main-container-background-color;
border: 1px solid $layout-border-color;
border-top: 0;
.top-bar {
.name h1 a {
text-shadow:
0 -3px $black, 0 1px $black,
0 3px $color-1, 0 4px $black,
0 6px $color-2, 0 7px $black,
0 9px $color-3, 0 10px $black,
0 12px $color-4, 0 13px $black,
0 15px $color-5, 0 16px $black;
-webkit-transition: text-shadow 333ms ease-in-out;
-moz-transition: text-shadow 333ms ease-in-out;
-ms-transition: text-shadow 333ms ease-in-out;
transition: text-shadow 333ms ease-in-out;
line-height: 2em;
padding-left: 0;
&:hover {
<