Fixed merge conflicts
This commit is contained in:
parent
21ec7bb82a
commit
1efe20fe42
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# The logic to start up your application should be put in this
|
|
||||||
# script. The application will work only if it binds to
|
|
||||||
# $OPENSHIFT_INTERNAL_IP:8080
|
|
||||||
export PATH=$OPENSHIFT_RUNTIME_DIR/bin:$PATH
|
|
||||||
cd $OPENSHIFT_REPO_DIR
|
|
||||||
rails server -b $OPENSHIFT_INTERNAL_IP -p $OPENSHIFT_INTERNAL_PORT -d
|
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# The logic to stop your application should be put in this script.
|
|
||||||
kill -9 `ps -ef | grep "rails server" | grep -v grep | awk '{ print $2 }'` > /dev/null 2>&1
|
|
||||||
exit 0
|
|
2
Gemfile
2
Gemfile
@ -70,6 +70,6 @@ platforms 'mswin', 'mingw' do
|
|||||||
end
|
end
|
||||||
|
|
||||||
group :staging, :production do
|
group :staging, :production do
|
||||||
gem 'unicorn'
|
gem 'unicorn' if !(RbConfig::CONFIG['target_os'] =~ /mswin|mingw|cygwin/i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
398
Gemfile.lock
Normal file
398
Gemfile.lock
Normal file
@ -0,0 +1,398 @@
|
|||||||
|
GIT
|
||||||
|
remote: git://github.com/josevalim/rails-footnotes.git
|
||||||
|
revision: 087914beabb56c2e9979f63eeb0183591065dde3
|
||||||
|
specs:
|
||||||
|
rails-footnotes (4.0.2)
|
||||||
|
rails (>= 3.2)
|
||||||
|
|
||||||
|
GIT
|
||||||
|
remote: git://github.com/svenfuchs/i18n-active_record.git
|
||||||
|
revision: 2d9a22b6a4e5d809782cdbfa65b14d9e47aa27fc
|
||||||
|
specs:
|
||||||
|
i18n-active_record (0.0.2)
|
||||||
|
i18n (>= 0.5.0)
|
||||||
|
|
||||||
|
GEM
|
||||||
|
remote: http://rubygems.org/
|
||||||
|
specs:
|
||||||
|
actionmailer (4.0.0)
|
||||||
|
actionpack (= 4.0.0)
|
||||||
|
mail (~> 2.5.3)
|
||||||
|
actionpack (4.0.0)
|
||||||
|
activesupport (= 4.0.0)
|
||||||
|
builder (~> 3.1.0)
|
||||||
|
erubis (~> 2.7.0)
|
||||||
|
rack (~> 1.5.2)
|
||||||
|
rack-test (~> 0.6.2)
|
||||||
|
activemodel (4.0.0)
|
||||||
|
activesupport (= 4.0.0)
|
||||||
|
builder (~> 3.1.0)
|
||||||
|
activerecord (4.0.0)
|
||||||
|
activemodel (= 4.0.0)
|
||||||
|
activerecord-deprecated_finders (~> 1.0.2)
|
||||||
|
activesupport (= 4.0.0)
|
||||||
|
arel (~> 4.0.0)
|
||||||
|
activerecord-deprecated_finders (1.0.3)
|
||||||
|
activerecord-session_store (0.1.0)
|
||||||
|
actionpack (>= 4.0.0, < 5)
|
||||||
|
activerecord (>= 4.0.0, < 5)
|
||||||
|
railties (>= 4.0.0, < 5)
|
||||||
|
activesupport (4.0.0)
|
||||||
|
i18n (~> 0.6, >= 0.6.4)
|
||||||
|
minitest (~> 4.2)
|
||||||
|
multi_json (~> 1.3)
|
||||||
|
thread_safe (~> 0.1)
|
||||||
|
tzinfo (~> 0.3.37)
|
||||||
|
acts_as_list (0.4.0)
|
||||||
|
activerecord (>= 3.0)
|
||||||
|
addressable (2.3.6)
|
||||||
|
arel (4.0.2)
|
||||||
|
awesome_print (1.2.0)
|
||||||
|
bcrypt (3.1.7-x86-mingw32)
|
||||||
|
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)
|
||||||
|
callsite (0.0.11)
|
||||||
|
capistrano (2.15.5)
|
||||||
|
highline
|
||||||
|
net-scp (>= 1.0.0)
|
||||||
|
net-sftp (>= 2.0.0)
|
||||||
|
net-ssh (>= 2.0.14)
|
||||||
|
net-ssh-gateway (>= 1.1.0)
|
||||||
|
capybara (2.4.1)
|
||||||
|
mime-types (>= 1.16)
|
||||||
|
nokogiri (>= 1.3.3)
|
||||||
|
rack (>= 1.0.0)
|
||||||
|
rack-test (>= 0.5.4)
|
||||||
|
xpath (~> 2.0)
|
||||||
|
carmen (1.0.1)
|
||||||
|
unicode_utils (~> 1.4.0)
|
||||||
|
carmen-rails (1.0.1)
|
||||||
|
carmen (~> 1.0.0)
|
||||||
|
rails
|
||||||
|
carrierwave (0.10.0)
|
||||||
|
activemodel (>= 3.2.0)
|
||||||
|
activesupport (>= 3.2.0)
|
||||||
|
json (>= 1.7)
|
||||||
|
mime-types (>= 1.16)
|
||||||
|
carrierwave-imageoptimizer (1.2.1)
|
||||||
|
carrierwave (~> 0.8)
|
||||||
|
image_optimizer (~> 1.2)
|
||||||
|
celluloid (0.15.2)
|
||||||
|
timers (~> 1.1.0)
|
||||||
|
childprocess (0.5.3)
|
||||||
|
ffi (~> 1.0, >= 1.0.11)
|
||||||
|
chunky_png (1.3.1)
|
||||||
|
coderay (1.1.0)
|
||||||
|
coffee-rails (4.0.1)
|
||||||
|
coffee-script (>= 2.2.0)
|
||||||
|
railties (>= 4.0.0, < 5.0)
|
||||||
|
coffee-script (2.3.0)
|
||||||
|
coffee-script-source
|
||||||
|
execjs
|
||||||
|
coffee-script-source (1.7.1)
|
||||||
|
compass (0.12.7)
|
||||||
|
chunky_png (~> 1.2)
|
||||||
|
fssm (>= 0.2.7)
|
||||||
|
sass (~> 3.2.19)
|
||||||
|
compass-rails (1.1.7)
|
||||||
|
compass (>= 0.12.2)
|
||||||
|
sprockets (<= 2.11.0)
|
||||||
|
coveralls (0.7.0)
|
||||||
|
multi_json (~> 1.3)
|
||||||
|
rest-client
|
||||||
|
simplecov (>= 0.7)
|
||||||
|
term-ansicolor
|
||||||
|
thor
|
||||||
|
crack (0.4.2)
|
||||||
|
safe_yaml (~> 1.0.0)
|
||||||
|
cucumber (1.3.15)
|
||||||
|
builder (>= 2.1.2)
|
||||||
|
diff-lcs (>= 1.1.3)
|
||||||
|
gherkin (~> 2.12)
|
||||||
|
multi_json (>= 1.7.5, < 2.0)
|
||||||
|
multi_test (>= 0.1.1)
|
||||||
|
cucumber-rails (1.4.1)
|
||||||
|
capybara (>= 1.1.2, < 3)
|
||||||
|
cucumber (>= 1.3.8, < 2)
|
||||||
|
mime-types (~> 1.16)
|
||||||
|
nokogiri (~> 1.5)
|
||||||
|
rails (>= 3, < 5)
|
||||||
|
database_cleaner (1.3.0)
|
||||||
|
debug_inspector (0.0.2)
|
||||||
|
diff-lcs (1.2.5)
|
||||||
|
docile (1.1.5)
|
||||||
|
erubis (2.7.0)
|
||||||
|
execjs (2.2.1)
|
||||||
|
factory_girl (4.4.0)
|
||||||
|
activesupport (>= 3.0.0)
|
||||||
|
factory_girl_rails (4.4.1)
|
||||||
|
factory_girl (~> 4.4.0)
|
||||||
|
railties (>= 3.0.0)
|
||||||
|
faraday (0.9.0)
|
||||||
|
multipart-post (>= 1.2, < 3)
|
||||||
|
ffi (1.9.3-x86-mingw32)
|
||||||
|
font-awesome-rails (4.1.0.0)
|
||||||
|
railties (>= 3.2, < 5.0)
|
||||||
|
forgery (0.6.0)
|
||||||
|
formatador (0.2.5)
|
||||||
|
foundation-rails (5.3.1.0)
|
||||||
|
railties (>= 3.1.0)
|
||||||
|
sass (>= 3.2.0)
|
||||||
|
fssm (0.2.10)
|
||||||
|
geocoder (1.2.3)
|
||||||
|
gherkin (2.12.2-x86-mingw32)
|
||||||
|
multi_json (~> 1.3)
|
||||||
|
guard (2.6.1)
|
||||||
|
formatador (>= 0.2.4)
|
||||||
|
listen (~> 2.7)
|
||||||
|
lumberjack (~> 1.0)
|
||||||
|
pry (>= 0.9.12)
|
||||||
|
thor (>= 0.18.1)
|
||||||
|
guard-rspec (4.2.10)
|
||||||
|
guard (~> 2.1)
|
||||||
|
rspec (>= 2.14, < 4.0)
|
||||||
|
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)
|
||||||
|
highline (1.6.21)
|
||||||
|
hike (1.2.3)
|
||||||
|
httpauth (0.2.1)
|
||||||
|
i18n (0.6.11)
|
||||||
|
image_optimizer (1.2.1)
|
||||||
|
jquery-rails (3.1.1)
|
||||||
|
railties (>= 3.0, < 5.0)
|
||||||
|
thor (>= 0.14, < 2.0)
|
||||||
|
jquery-ui-rails (5.0.0)
|
||||||
|
railties (>= 3.2.16)
|
||||||
|
json (1.8.1)
|
||||||
|
jwt (0.1.13)
|
||||||
|
multi_json (>= 1.5)
|
||||||
|
launchy (2.4.2)
|
||||||
|
addressable (~> 2.3)
|
||||||
|
listen (2.7.9)
|
||||||
|
celluloid (>= 0.15.2)
|
||||||
|
rb-fsevent (>= 0.9.3)
|
||||||
|
rb-inotify (>= 0.9)
|
||||||
|
lumberjack (1.0.9)
|
||||||
|
mail (2.5.4)
|
||||||
|
mime-types (~> 1.16)
|
||||||
|
treetop (~> 1.4.8)
|
||||||
|
meta_request (0.3.3)
|
||||||
|
callsite (~> 0.0, >= 0.0.11)
|
||||||
|
rack-contrib (~> 1.1)
|
||||||
|
railties (>= 3.0.0, < 5.0.0)
|
||||||
|
method_source (0.8.2)
|
||||||
|
mime-types (1.25.1)
|
||||||
|
mini_magick (3.7.0)
|
||||||
|
subexec (~> 0.2.1)
|
||||||
|
mini_portile (0.6.0)
|
||||||
|
minitest (4.7.5)
|
||||||
|
multi_json (1.10.1)
|
||||||
|
multi_test (0.1.1)
|
||||||
|
multipart-post (2.0.0)
|
||||||
|
nested_form (0.3.2)
|
||||||
|
net-scp (1.2.1)
|
||||||
|
net-ssh (>= 2.6.5)
|
||||||
|
net-sftp (2.1.2)
|
||||||
|
net-ssh (>= 2.6.5)
|
||||||
|
net-ssh (2.9.1)
|
||||||
|
net-ssh-gateway (1.2.0)
|
||||||
|
net-ssh (>= 2.6.5)
|
||||||
|
netrc (0.7.7)
|
||||||
|
nokogiri (1.6.2.1-x86-mingw32)
|
||||||
|
mini_portile (= 0.6.0)
|
||||||
|
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.3)
|
||||||
|
activerecord (>= 3.0, < 5.0)
|
||||||
|
activesupport (>= 3.0, < 5.0)
|
||||||
|
pg (0.17.1-x86-mingw32)
|
||||||
|
polyglot (0.3.5)
|
||||||
|
pry (0.10.0-x86-mingw32)
|
||||||
|
coderay (~> 1.1.0)
|
||||||
|
method_source (~> 0.8.1)
|
||||||
|
slop (~> 3.4)
|
||||||
|
win32console (~> 1.3)
|
||||||
|
rack (1.5.2)
|
||||||
|
rack-contrib (1.1.0)
|
||||||
|
rack (>= 0.9.1)
|
||||||
|
rack-test (0.6.2)
|
||||||
|
rack (>= 1.0)
|
||||||
|
rails (4.0.0)
|
||||||
|
actionmailer (= 4.0.0)
|
||||||
|
actionpack (= 4.0.0)
|
||||||
|
activerecord (= 4.0.0)
|
||||||
|
activesupport (= 4.0.0)
|
||||||
|
bundler (>= 1.3.0, < 2.0)
|
||||||
|
railties (= 4.0.0)
|
||||||
|
sprockets-rails (~> 2.0.0)
|
||||||
|
rails-assets-cdn (0.1.0)
|
||||||
|
rails
|
||||||
|
rails_12factor (0.0.2)
|
||||||
|
rails_serve_static_assets
|
||||||
|
rails_stdout_logging
|
||||||
|
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.3.2)
|
||||||
|
rb-fsevent (0.9.4)
|
||||||
|
rb-inotify (0.9.5)
|
||||||
|
ffi (>= 0.5.0)
|
||||||
|
rest-client (1.7.2-x86-mingw32)
|
||||||
|
ffi (~> 1.9)
|
||||||
|
mime-types (>= 1.16, < 3.0)
|
||||||
|
netrc (~> 0.7)
|
||||||
|
rspec (3.0.0)
|
||||||
|
rspec-core (~> 3.0.0)
|
||||||
|
rspec-expectations (~> 3.0.0)
|
||||||
|
rspec-mocks (~> 3.0.0)
|
||||||
|
rspec-core (3.0.2)
|
||||||
|
rspec-support (~> 3.0.0)
|
||||||
|
rspec-expectations (3.0.2)
|
||||||
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
|
rspec-support (~> 3.0.0)
|
||||||
|
rspec-mocks (3.0.2)
|
||||||
|
rspec-support (~> 3.0.0)
|
||||||
|
rspec-rails (3.0.1)
|
||||||
|
actionpack (>= 3.0)
|
||||||
|
activesupport (>= 3.0)
|
||||||
|
railties (>= 3.0)
|
||||||
|
rspec-core (~> 3.0.0)
|
||||||
|
rspec-expectations (~> 3.0.0)
|
||||||
|
rspec-mocks (~> 3.0.0)
|
||||||
|
rspec-support (~> 3.0.0)
|
||||||
|
rspec-support (3.0.2)
|
||||||
|
rubyzip (1.1.6)
|
||||||
|
rvm-capistrano (1.5.3)
|
||||||
|
capistrano (~> 2.15.4)
|
||||||
|
safe_yaml (1.0.3)
|
||||||
|
sass (3.2.19)
|
||||||
|
sass-rails (4.0.3)
|
||||||
|
railties (>= 4.0.0, < 5.0)
|
||||||
|
sass (~> 3.2.0)
|
||||||
|
sprockets (~> 2.8, <= 2.11.0)
|
||||||
|
sprockets-rails (~> 2.0)
|
||||||
|
selenium-webdriver (2.42.0)
|
||||||
|
childprocess (>= 0.5.0)
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
rubyzip (~> 1.0)
|
||||||
|
websocket (~> 1.0.4)
|
||||||
|
simplecov (0.9.0)
|
||||||
|
docile (~> 1.1.0)
|
||||||
|
multi_json
|
||||||
|
simplecov-html (~> 0.8.0)
|
||||||
|
simplecov-html (0.8.0)
|
||||||
|
sitemap_generator (5.0.4)
|
||||||
|
builder
|
||||||
|
slop (3.6.0)
|
||||||
|
sorcery (0.8.6)
|
||||||
|
bcrypt (~> 3.1)
|
||||||
|
oauth (~> 0.4, >= 0.4.4)
|
||||||
|
oauth2 (>= 0.8.0, < 1.0.0)
|
||||||
|
sprockets (2.11.0)
|
||||||
|
hike (~> 1.2)
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
rack (~> 1.0)
|
||||||
|
tilt (~> 1.1, != 1.3.0)
|
||||||
|
sprockets-rails (2.0.1)
|
||||||
|
actionpack (>= 3.0)
|
||||||
|
activesupport (>= 3.0)
|
||||||
|
sprockets (~> 2.8)
|
||||||
|
subexec (0.2.3)
|
||||||
|
term-ansicolor (1.3.0)
|
||||||
|
tins (~> 1.0)
|
||||||
|
thor (0.19.1)
|
||||||
|
thread_safe (0.3.4)
|
||||||
|
tilt (1.4.1)
|
||||||
|
timers (1.1.0)
|
||||||
|
tins (1.3.0)
|
||||||
|
treetop (1.4.15)
|
||||||
|
polyglot
|
||||||
|
polyglot (>= 0.3.1)
|
||||||
|
tzinfo (0.3.40)
|
||||||
|
uglifier (2.5.3)
|
||||||
|
execjs (>= 0.3.0)
|
||||||
|
json (>= 1.8.0)
|
||||||
|
unicode_utils (1.4.0)
|
||||||
|
wdm (0.1.0)
|
||||||
|
webmock (1.18.0)
|
||||||
|
addressable (>= 2.3.6)
|
||||||
|
crack (>= 0.3.2)
|
||||||
|
websocket (1.0.7)
|
||||||
|
win32console (1.3.2-x86-mingw32)
|
||||||
|
wysiwyg-rails (1.1.6)
|
||||||
|
font-awesome-rails (= 4.1.0.0)
|
||||||
|
railties (>= 3.2, < 5.0)
|
||||||
|
xpath (2.0.0)
|
||||||
|
nokogiri (~> 1.3)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
x86-mingw32
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
activerecord-session_store
|
||||||
|
acts_as_list
|
||||||
|
awesome_print
|
||||||
|
better_errors
|
||||||
|
binding_of_caller
|
||||||
|
capistrano
|
||||||
|
capybara
|
||||||
|
carmen-rails
|
||||||
|
carrierwave
|
||||||
|
carrierwave-imageoptimizer
|
||||||
|
coffee-rails (~> 4.0.0)
|
||||||
|
compass-rails (~> 1.1.3)
|
||||||
|
coveralls
|
||||||
|
cucumber-rails
|
||||||
|
database_cleaner
|
||||||
|
factory_girl_rails
|
||||||
|
font-awesome-rails
|
||||||
|
forgery
|
||||||
|
foundation-rails
|
||||||
|
geocoder
|
||||||
|
guard-rspec
|
||||||
|
haml
|
||||||
|
haml-rails
|
||||||
|
i18n-active_record!
|
||||||
|
jquery-rails
|
||||||
|
jquery-ui-rails
|
||||||
|
launchy
|
||||||
|
meta_request
|
||||||
|
mini_magick
|
||||||
|
nested_form
|
||||||
|
oauth2 (~> 0.8.0)
|
||||||
|
paper_trail
|
||||||
|
pg
|
||||||
|
rails (= 4.0.0)
|
||||||
|
rails-assets-cdn
|
||||||
|
rails-footnotes!
|
||||||
|
rails_12factor
|
||||||
|
rspec
|
||||||
|
rspec-rails
|
||||||
|
rvm-capistrano
|
||||||
|
sass-rails (~> 4.0.0)
|
||||||
|
selenium-webdriver
|
||||||
|
simplecov
|
||||||
|
sitemap_generator
|
||||||
|
sorcery (>= 0.8.1)
|
||||||
|
uglifier (>= 1.3.0)
|
||||||
|
wdm (>= 0.1.0)
|
||||||
|
webmock
|
||||||
|
wysiwyg-rails
|
Binary file not shown.
37
app/assets/javascripts/editor.js.coffee
Normal file
37
app/assets/javascripts/editor.js.coffee
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#= require froala_editor.min.js
|
||||||
|
$ ->
|
||||||
|
$('[data-editable]').editable({inlineMode: true, blockTags: ["n", "p", "h2", "blockquote", "pre"], buttons: ["formatBlock", "bold", "italic", "underline", "insertOrderedList", "insertUnorderedList", "sep", "createLink", "insertImage", "insertVideo", "html", "undo", "redo"]})
|
||||||
|
$('[data-editor]').editable({inlineMode: false, blockTags: ["n", "p", "h2", "blockquote", "pre"], buttons: ["formatBlock", "bold", "italic", "underline", "insertOrderedList", "insertUnorderedList", "sep", "createLink", "html", "undo", "redo"]})
|
||||||
|
$('.field.country-select-field select').change () ->
|
||||||
|
$country = $(this)
|
||||||
|
country = $country.val()
|
||||||
|
$territory = $('.field.subregion-select-field 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'
|
||||||
|
$('img + input[type="file"]').change () ->
|
||||||
|
readURL(this);
|
||||||
|
return
|
||||||
|
|
||||||
|
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)
|
||||||
|
return
|
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
// Libraries
|
// Libraries
|
||||||
@import "compass";
|
@import "compass";
|
||||||
//@import "font-awesome";
|
@import "font-awesome";
|
||||||
@import "foundation_and_overrides";
|
@import "foundation_and_overrides";
|
||||||
|
|
||||||
// Local settings (also edit foundation_and_overrides.scss to modify global variables)
|
// Local settings (also edit foundation_and_overrides.scss to modify global variables)
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
//$header-font-family: 'alte_haas_groteskbold', 'Alte Haas Grotesk', sans-serif;//join("Open Sans", $body-font-family);
|
//$header-font-family: 'alte_haas_groteskbold', 'Alte Haas Grotesk', sans-serif;//join("Open Sans", $body-font-family);
|
||||||
$header-font-family: 'AlteHaasGroteskBold', sans-serif;//join("Open Sans", $body-font-family);
|
$header-font-family: 'AlteHaasGroteskBold', sans-serif;//join("Open Sans", $body-font-family);
|
||||||
$header-font-weight: bold;
|
$header-font-weight: bold;
|
||||||
|
$icons: FontAwesome;//join("Open Sans", $body-font-family);
|
||||||
// $header-font-style: normal;
|
// $header-font-style: normal;
|
||||||
// $header-font-color: #222;
|
// $header-font-color: #222;
|
||||||
// $header-line-height: 1.4;
|
// $header-line-height: 1.4;
|
||||||
@ -80,9 +81,9 @@ $body-font-family: 'Source Sans Pro', sans-serif;
|
|||||||
|
|
||||||
$primary-color: $color-1;
|
$primary-color: $color-1;
|
||||||
$secondary-color: $color-2;
|
$secondary-color: $color-2;
|
||||||
$alert-color: $color-4;
|
$alert-color: $color-3;
|
||||||
$success-color: $color-2;
|
$success-color: $color-2;
|
||||||
$warning-color: $color-3;
|
$warning-color: $color-4;
|
||||||
$info-color: $color-5;
|
$info-color: $color-5;
|
||||||
|
|
||||||
// We use these to make sure border radius matches unless we want it different.
|
// We use these to make sure border radius matches unless we want it different.
|
||||||
|
@ -286,6 +286,116 @@ ul.tags,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.org-mini-preview {
|
||||||
|
position: relative;
|
||||||
|
overflow: auto;
|
||||||
|
margin: 0;
|
||||||
|
background-color: $gray;
|
||||||
|
border: 0.25em solid lighten($black, 33);
|
||||||
|
|
||||||
|
&.portrait {
|
||||||
|
img {
|
||||||
|
float: left;
|
||||||
|
max-width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
float: right;
|
||||||
|
max-width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 0.9em;
|
||||||
|
line-height: 1.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
padding: 0.25em
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-list-select {
|
||||||
|
|
||||||
|
&.chosen {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
overflow: auto;
|
||||||
|
height: 25em;
|
||||||
|
border: 0.25em solid $gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
background-color: lighten($gray, 5);//rgba(225, 225, 225, 0.5);
|
||||||
|
margin: 0.25em;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: lighten($color-4, 25);//desaturate(lighten($organization-color, 33), 33);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.removable:hover {
|
||||||
|
background-color: desaturate(lighten($color-3, 16), 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.selected {
|
||||||
|
background-color: desaturate(lighten($organization-color, 33), 33);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.not-found {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0.25em;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
float: left;
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 0.8em;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include breakpoint(medium) {
|
||||||
|
&.chosen {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.choose {
|
||||||
|
li.selected {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#org-filter {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 1.25em;
|
||||||
|
padding: 0.333em;
|
||||||
|
border: 3px solid $gray;
|
||||||
|
margin-top: 0.5em;
|
||||||
|
outline: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
@include breakpoint(medium) {
|
@include breakpoint(medium) {
|
||||||
.organizations-index,
|
.organizations-index,
|
||||||
.conferences-index {
|
.conferences-index {
|
||||||
|
@ -406,6 +406,7 @@ main {
|
|||||||
+ em {
|
+ em {
|
||||||
display: block;
|
display: block;
|
||||||
color: $color-5;
|
color: $color-5;
|
||||||
|
font-weight: 600;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -428,14 +429,16 @@ main {
|
|||||||
|
|
||||||
figure {
|
figure {
|
||||||
margin: 2em 0 0;
|
margin: 2em 0 0;
|
||||||
|
|
||||||
img {
|
|
||||||
box-shadow: 0 0 2em $black;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.page-style-emphasize-banner & {
|
||||||
|
figure img {
|
||||||
|
box-shadow: 0 0 2em $black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.organizations-index &,
|
.organizations-index &,
|
||||||
.conferences-index & {
|
.conferences-index & {
|
||||||
height: 13vw;
|
height: 13vw;
|
||||||
|
@ -49,6 +49,28 @@
|
|||||||
color: $article-color;
|
color: $article-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&[id*="previous"],
|
||||||
|
&.less,
|
||||||
|
&.arrow-l {
|
||||||
|
&:before {
|
||||||
|
content: '\f053';
|
||||||
|
font-family: $icons;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 0.25em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&[id*="next"],
|
||||||
|
&.more,
|
||||||
|
&.arrow-r {
|
||||||
|
&:after {
|
||||||
|
content: '\f054';
|
||||||
|
font-family: $icons;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: 0.25em;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="file"] {
|
input[type="file"] {
|
||||||
@ -159,9 +181,9 @@ fieldset {
|
|||||||
font-size: 1.25em;
|
font-size: 1.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.text-area {
|
&.text-area-field {
|
||||||
label {
|
label {
|
||||||
top: 1px;
|
/*top: 1px;
|
||||||
right: 1px;
|
right: 1px;
|
||||||
bottom: 1px;
|
bottom: 1px;
|
||||||
left: 1px;
|
left: 1px;
|
||||||
@ -173,10 +195,15 @@ fieldset {
|
|||||||
background-color: rgba(255, 255, 255, 0.5);
|
background-color: rgba(255, 255, 255, 0.5);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: calc(100% - 2px);
|
width: calc(100% - 2px);
|
||||||
height: calc(100% - 2px);
|
height: calc(100% - 2px);*/
|
||||||
|
position: static;
|
||||||
|
background-color: #252528;
|
||||||
|
margin-top: 1em;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
position: relative;
|
background-color: inherit;
|
||||||
|
color: $white;
|
||||||
|
/*position: relative;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 1.25em;
|
font-size: 1.25em;
|
||||||
@ -185,10 +212,14 @@ fieldset {
|
|||||||
padding: 0 0.5em;
|
padding: 0 0.5em;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
border-radius: 0.5em;
|
border-radius: 0.5em;
|
||||||
box-shadow: 0 0 1em;
|
box-shadow: 0 0 1em;*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.froala-element {
|
||||||
|
min-height: 10em;
|
||||||
|
}
|
||||||
|
|
||||||
textarea:focus + label {
|
textarea:focus + label {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@ -250,6 +281,8 @@ fieldset {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.check-box-field {
|
&.check-box-field {
|
||||||
|
margin-bottom: 0;
|
||||||
|
|
||||||
div {
|
div {
|
||||||
float: left;
|
float: left;
|
||||||
font-size: 1.75em;
|
font-size: 1.75em;
|
||||||
@ -272,6 +305,11 @@ fieldset {
|
|||||||
content: '✓';
|
content: '✓';
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
label {
|
label {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@ -564,3 +602,26 @@ article {
|
|||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.error {
|
||||||
|
position: relative;
|
||||||
|
padding: 0.5em 1em;
|
||||||
|
background-color: $warning-color;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: '!';
|
||||||
|
position: absolute;
|
||||||
|
font-family: $header-font-family;
|
||||||
|
background-color: $alert-color;
|
||||||
|
color: $white;
|
||||||
|
font-size: 2em;
|
||||||
|
line-height: 1em;
|
||||||
|
width: 1em;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
right: -0.333em;
|
||||||
|
top: -0.333em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.help {
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
@ -115,47 +115,245 @@ class ConferencesController < ApplicationController
|
|||||||
next_step = nil
|
next_step = nil
|
||||||
if !session[:registration]
|
if !session[:registration]
|
||||||
session[:registration] = Hash.new
|
session[:registration] = Hash.new
|
||||||
|
session[:registration][:path] = Array.new
|
||||||
end
|
end
|
||||||
case params['step']
|
case params['step']
|
||||||
when 'register'
|
when 'register'
|
||||||
session[:registration][:email] = params[:email]
|
session[:registration][:email] = params[:email]
|
||||||
user = User.find_by(:email => params[:email]) || User.new(:email => params[:email], :role => 'unverified')
|
user = User.find_by(:email => params[:email])
|
||||||
registration = ConferenceRegistration.new(:conference_id => @conference.id, :is_attending => 'yes', :is_participant => params[:is_participant], :is_volunteer => params[:is_volunteer])
|
#registration = ConferenceRegistration.new(:conference_id => @conference.id, :is_attending => 'yes', :is_participant => params[:is_participant], :is_volunteer => params[:is_volunteer])
|
||||||
session[:registration][:user] = user
|
session[:registration][:user] = Hash.new
|
||||||
|
session[:registration][:organizations] = Array.new
|
||||||
|
session[:registration][:user][:id] = user ? user.id : nil
|
||||||
|
if user
|
||||||
|
user.organizations.each { |org| session[:registration][:organizations] << org.id }
|
||||||
|
end
|
||||||
|
session[:registration][:user][:firstname] = user ? (user.firstname || user.username) : nil
|
||||||
|
session[:registration][:user][:lastname] = user ? user.lastname : nil
|
||||||
|
session[:registration][:user][:username] = user ? user.username : nil
|
||||||
next_step = 'primary'
|
next_step = 'primary'
|
||||||
when 'primary'
|
when 'primary'
|
||||||
next_step = user.organizations.length > 0 ? 'questions' : 'organizations'
|
if !params[:firstname] || !params[:lastname]
|
||||||
session[:registration][:user].firstname = params[:firstname]
|
error = _'registration.register.no_name_error','Oh, c\'mon, please tell us your name. We promise not to share it with anyone, we just don\'t want to get you mixed up with someone else.'
|
||||||
session[:registration][:user].firstname = params[:lastname]
|
end
|
||||||
if !session[:registration][:user].role == 'unverified'
|
session[:registration][:user][:firstname] = params[:firstname]
|
||||||
session[:registration][:user].username = params[:username]
|
session[:registration][:user][:firstname] = params[:lastname]
|
||||||
|
session[:registration][:is_volunteer] = params[:is_volunteer]
|
||||||
|
session[:registration][:is_participant] = params[:is_participant]
|
||||||
|
if !session[:registration][:user][:id]
|
||||||
|
session[:registration][:user][:username] = params[:username] || (params[:firstname] + ' ' + params[:lastname])
|
||||||
|
end
|
||||||
|
|
||||||
|
if params[:is_volunteer]
|
||||||
|
next_step = 'volunteer_questions'
|
||||||
|
elsif params[:is_participant]
|
||||||
|
next_step = 'organizations'
|
||||||
|
else
|
||||||
|
error = _'registration.register.no_role_error',"Please let us know if you're attending the conference or volunteering (or both)"
|
||||||
|
end
|
||||||
|
when 'organizations'
|
||||||
|
session[:registration][:organizations] = Array.new
|
||||||
|
if params[:org].length > 0
|
||||||
|
params[:org].each { |org| session[:registration][:organizations] << org }
|
||||||
|
|
||||||
|
if params[:add_new_org]
|
||||||
|
session[:registration][:new_organization] ||= Array.new
|
||||||
|
session[:registration][:new_organization][0] ||= Hash.new
|
||||||
|
session[:registration][:new_org_index] = 0
|
||||||
|
if !session[:registration][:new_organization][0][:country]
|
||||||
|
my_location = lookup_ip_location
|
||||||
|
session[:registration][:new_organization][0][:country] = my_location.country_code
|
||||||
|
session[:registration][:new_organization][0][:territory] = my_location.province_code
|
||||||
|
session[:registration][:new_organization][0][:city] = my_location.city
|
||||||
|
end
|
||||||
|
next_step = 'new_organization'
|
||||||
|
else
|
||||||
|
next_step = 'questions'
|
||||||
|
end
|
||||||
|
elsif params[:add_new_org]
|
||||||
|
session[:registration][:questions] ||= Hash.new
|
||||||
|
next_step = 'questions'
|
||||||
|
else
|
||||||
|
error = _'registration.register.no_organization_error',"Please select an organization or enter a new one"
|
||||||
|
end
|
||||||
|
when 'new_organization'
|
||||||
|
if !params[:city]
|
||||||
|
message = _'register.new_organization.no_city_error','Please enter your organization\'s city'
|
||||||
|
end
|
||||||
|
if !params[:street]
|
||||||
|
message = _'register.new_organization.no_street_error','Please enter your organization\'s street address'
|
||||||
|
end
|
||||||
|
if !params[:organization_email]
|
||||||
|
message = _'register.new_organization.no_email_error','Please tell us your organization\'s email address. We need it so that we can send out invitaions for upcoming conferences. No spam, we promise, and you\'ll be able to edit your preferences before we start ending out email.'
|
||||||
|
elsif params[:organization_email].strip.casecmp(session[:registration][:email].strip)
|
||||||
|
message = _'register.new_organization.same_email_as_attendee_error','This email needs to be different than your own personal email, we need to keep in touch with your organization even if you\'re gone in years to come.'
|
||||||
|
end
|
||||||
|
if !params[:name]
|
||||||
|
message = _'register.new_organization.no_name_error','Please tell us your organization\'s name'
|
||||||
|
end
|
||||||
|
i = params[:new_org_index].to_i
|
||||||
|
session[:registration][:new_organization][i][:country] = params[:organization_country]
|
||||||
|
session[:registration][:new_organization][i][:territory] = params[:organization_territory]
|
||||||
|
session[:registration][:new_organization][i][:city] = params[:organization_city]
|
||||||
|
session[:registration][:new_organization][i][:street] = params[:organization_street]
|
||||||
|
session[:registration][:new_organization][i][:info] = params[:organization_info]
|
||||||
|
session[:registration][:new_organization][i][:email] = params[:organization_email]
|
||||||
|
session[:registration][:new_organization][i][:name] = params[:organization_name]
|
||||||
|
|
||||||
|
if params[:organization_logo]
|
||||||
|
if session[:registration][:new_organization][i][:organization_logo]
|
||||||
|
FileUtils.rm session[:registration][:new_organization][i][:organization_logo]
|
||||||
|
end
|
||||||
|
base_dir = File.join("public", "registration_data")
|
||||||
|
FileUtils.mkdir_p(base_dir) unless File.directory?(base_dir)
|
||||||
|
hash_dir = rand(36**16).to_s(36)
|
||||||
|
dir = File.join(base_dir, hash_dir)
|
||||||
|
while File.directory?(dir)
|
||||||
|
hash_dir = rand(36**16).to_s(36)
|
||||||
|
dir = File.join(base_dir, hash_dir)
|
||||||
|
end
|
||||||
|
FileUtils.mkdir_p(dir)
|
||||||
|
session[:registration][:new_organization][i][:organization_logo] = File.join("registration_data", hash_dir, params[:organization_logo].original_filename)
|
||||||
|
FileUtils.cp params[:organization_logo].tempfile.path, File.join("public", session[:registration][:new_organization][i][:organization_logo])
|
||||||
|
end
|
||||||
|
if params[:add_another_org] && params[:add_another_org].to_sym == :on
|
||||||
|
next_step = 'new_organization'
|
||||||
|
if params[:previous]
|
||||||
|
session[:registration][:new_org_index] = [0, i - 1].max
|
||||||
|
elsif !error
|
||||||
|
session[:registration][:new_org_index] = i + 1
|
||||||
|
session[:registration][:new_organization][i + 1] ||= Hash.new
|
||||||
|
if !session[:registration][:new_organization][i + 1][:country]
|
||||||
|
session[:registration][:new_organization][i + 1][:country] = session[:registration][:new_organization][i][:country]
|
||||||
|
session[:registration][:new_organization][i + 1][:territory] = session[:registration][:new_organization][i][:territory]
|
||||||
|
session[:registration][:new_organization][i + 1][:city] = session[:registration][:new_organization][i][:city]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if session[:registration][:new_organization][i + 1]
|
||||||
|
session[:registration][:new_organization] = session[:registration][:new_organization].first(i + 1)
|
||||||
|
end
|
||||||
|
next_step = 'questions'
|
||||||
|
end
|
||||||
|
when 'questions'
|
||||||
|
session[:registration][:questions] = params[:questions].deep_symbolize_keys
|
||||||
|
session[:registration][:is_workshop_host] = params[:is_workshop_host].to_i
|
||||||
|
if !params[:is_workshop_host].to_i.zero?
|
||||||
|
next_step = 'new_workshop'
|
||||||
|
session[:registration][:workshop] ||= Array.new
|
||||||
|
session[:registration][:workshop][0] ||= Hash.new
|
||||||
|
session[:registration][:workshop_index] = 0
|
||||||
|
else
|
||||||
|
next_step = 'submit'
|
||||||
|
end
|
||||||
|
when 'volunteer_questions'
|
||||||
|
session[:registration][:volunteer_questions] = params[:volunteer_questions].deep_symbolize_keys
|
||||||
|
if session[:registration][:is_participant]
|
||||||
|
next_step = 'organizations'
|
||||||
|
else
|
||||||
|
next_step = 'submit'
|
||||||
|
end
|
||||||
|
when 'new_workshop'
|
||||||
|
i = params[:workshop_index].to_i
|
||||||
|
session[:registration][:workshop][i][:title] = params[:workshop_title]
|
||||||
|
session[:registration][:workshop][i][:info] = params[:workshop_info]
|
||||||
|
session[:registration][:workshop][i][:stream] = params[:workshop_stream]
|
||||||
|
session[:registration][:workshop][i][:presentation_style] = params[:workshop_presentation_style]
|
||||||
|
|
||||||
|
if !params[:workshop_info]
|
||||||
|
error = _'registration.register.no_workshop_info_error','Please describe your workshop as best as you can to give other participants an idea of what to expect'
|
||||||
|
end
|
||||||
|
|
||||||
|
if !params[:workshop_title]
|
||||||
|
error = _'registration.register.no_workshop_title_error','Please give your workshop a title'
|
||||||
|
end
|
||||||
|
|
||||||
|
if params[:previous]
|
||||||
|
session[:registration][:workshop_index] = [0, i - 1].max
|
||||||
|
elsif params[:add_another_workshop]
|
||||||
|
next_step = 'new_workshop'
|
||||||
|
if !error
|
||||||
|
session[:registration][:workshop] ||= Array.new
|
||||||
|
session[:registration][:workshop][i + 1] ||= Hash.new
|
||||||
|
session[:registration][:workshop_index] = i + 1
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if session[:registration][:workshop][i + 1]
|
||||||
|
session[:registration][:workshop] = session[:registration][:workshop].first(i + 1)
|
||||||
|
end
|
||||||
|
next_step = 'submit'
|
||||||
|
end
|
||||||
|
when 'submit'
|
||||||
|
UserMailer.conference_registration_email(@conference, session[:registration]).deliver
|
||||||
|
session.delete(:registration)
|
||||||
|
next_step = 'thanks'
|
||||||
|
when 'cancel'
|
||||||
|
if params[:yes]
|
||||||
|
session.delete(:registration)
|
||||||
|
next_step = 'cancelled'
|
||||||
|
else
|
||||||
|
return {error: false, next_step: session[:registration][:path].pop}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
next_step
|
if params[:previous]
|
||||||
#if next_step
|
next_step = session[:registration][:path].pop
|
||||||
# redirect_to :action => :register, :step => next_step
|
else
|
||||||
#else
|
if !params[:cancel] && error
|
||||||
# do_404
|
return {error: true, message: error, next_step: params['step']}
|
||||||
#end
|
end
|
||||||
|
if session[:registration] && params['step']
|
||||||
|
session[:registration][:path] << params['step']
|
||||||
|
end
|
||||||
|
end
|
||||||
|
{error: false, next_step: params[:cancel] ? 'cancel' : next_step}
|
||||||
end
|
end
|
||||||
|
|
||||||
def register
|
def register
|
||||||
set_conference
|
set_conference
|
||||||
#template = params['step'] ? "register_#{params['step']}" : 'register'
|
data = register_submit
|
||||||
@register_step = request.post? ? register_submit : 'register'
|
@register_step = request.post? ? data[:next_step] : 'register'
|
||||||
|
@error_message = data[:error] ? data[:message] : nil
|
||||||
template = (@register_step == 'register' ? '' : 'register_') + @register_step
|
template = (@register_step == 'register' ? '' : 'register_') + @register_step
|
||||||
if !File.exists?(Rails.root.join("app", "views", params[:controller], "_#{template}.html.haml"))
|
if !File.exists?(Rails.root.join("app", "views", params[:controller], "_#{template}.html.haml"))
|
||||||
do_404
|
do_404
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
#if params['step'] != true
|
if session[:registration]
|
||||||
#session[:last_step] = params['step']
|
session[:registration][@register_step.to_sym] ||= Hash.new
|
||||||
#end
|
end
|
||||||
@register_step = template#params['step'] || true
|
@actions = nil
|
||||||
@register_content = render_to_string :partial => template
|
case @register_step
|
||||||
|
when 'register'
|
||||||
|
@actions = :next
|
||||||
|
when 'primary', 'organizations', 'new_organization', 'new_workshop', 'volunteer_questions'
|
||||||
|
@actions = [:previous, :cancel, :next]
|
||||||
|
when 'submit'
|
||||||
|
@actions = [:previous, :cancel, :submit]
|
||||||
|
when 'cancel'
|
||||||
|
@actions = [:no, :yes]
|
||||||
|
when 'questions'
|
||||||
|
@actions = [:previous, :cancel, :next]
|
||||||
|
@housing_options = {
|
||||||
|
'I will fend for myself thanks' => 'none',
|
||||||
|
'I will need a real bed' => 'bed',
|
||||||
|
'A couch or floor space will be fine' => 'couch',
|
||||||
|
'All I need is a backyard' => 'camp'
|
||||||
|
}
|
||||||
|
session[:registration][:questions][:housing] ||= 'couch'
|
||||||
|
@loaner_bike_options = {
|
||||||
|
'No' => 'no',
|
||||||
|
'Yes' => 'medium',
|
||||||
|
'Yes but a small one please' => 'small',
|
||||||
|
'Yes but a large one please' => 'large'
|
||||||
|
}
|
||||||
|
session[:registration][:questions][:loaner_bike] ||= 'medium'
|
||||||
|
session[:registration][:questions][:diet] ||= Hash.new
|
||||||
|
end
|
||||||
if request.xhr?
|
if request.xhr?
|
||||||
|
@register_content = render_to_string :partial => template
|
||||||
render :json => {status: 200, html: @register_content}
|
render :json => {status: 200, html: @register_content}
|
||||||
else
|
else
|
||||||
|
@register_template = template
|
||||||
render 'show'
|
render 'show'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
|
|
||||||
class PagesController < ApplicationController
|
class PagesController < ApplicationController
|
||||||
|
protect_from_forgery :except => :location_territories
|
||||||
#skip_before_filter :verify_authenticity_token, only: [:translate]
|
#skip_before_filter :verify_authenticity_token, only: [:translate]
|
||||||
|
|
||||||
def home
|
def home
|
||||||
@ -49,7 +50,10 @@ class PagesController < ApplicationController
|
|||||||
def location_territories
|
def location_territories
|
||||||
#render json: (Carmen:::RegionCollection.new(Carmen::Country.coded(params[:country])) || []).to_json
|
#render json: (Carmen:::RegionCollection.new(Carmen::Country.coded(params[:country])) || []).to_json
|
||||||
territories = {}
|
territories = {}
|
||||||
Carmen::Country.coded(params[:country]).subregions.each { |t| territories[t.code] = t.name }
|
country = Carmen::Country.coded(params[:country])
|
||||||
|
if country
|
||||||
|
country.subregions.each { |t| territories[t.code] = t.name }
|
||||||
|
end
|
||||||
render json: territories.to_json
|
render json: territories.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -431,6 +431,14 @@ module ApplicationHelper
|
|||||||
_(*a)
|
_(*a)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def lookup_ip
|
||||||
|
if request.remote_ip == '127.0.0.1'
|
||||||
|
session['remote_ip'] || (session['remote_ip'] = open("http://checkip.dyndns.org").first.gsub(/^.*\s([\d\.]+).*$/s, '\1').gsub(/[^\.\d]/, ''))
|
||||||
|
else
|
||||||
|
request.remote_ip
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def lookup_ip_location
|
def lookup_ip_location
|
||||||
if request.remote_ip == '127.0.0.1'
|
if request.remote_ip == '127.0.0.1'
|
||||||
Geocoder.search(session['remote_ip'] || (session['remote_ip'] = open("http://checkip.dyndns.org").first.gsub(/^.*\s([\d\.]+).*$/s, '\1').gsub(/[^\.\d]/, ''))).first
|
Geocoder.search(session['remote_ip'] || (session['remote_ip'] = open("http://checkip.dyndns.org").first.gsub(/^.*\s([\d\.]+).*$/s, '\1').gsub(/[^\.\d]/, ''))).first
|
||||||
@ -492,6 +500,11 @@ module ApplicationHelper
|
|||||||
subdomain == 'test'
|
subdomain == 'test'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def location(location)
|
||||||
|
territory = Carmen::Country.coded(location.country).subregions.coded(location.territory)
|
||||||
|
location.city + (territory ? ' ' + territory.name : '') + ', ' + Carmen::Country.coded(location.country).name
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def _form_field(type, name, value, options)
|
def _form_field(type, name, value, options)
|
||||||
if type == 'check_box'
|
if type == 'check_box'
|
||||||
|
@ -93,6 +93,7 @@ module BikeBikeFormHelper
|
|||||||
end
|
end
|
||||||
|
|
||||||
def country_select_tag(name, value, options={})
|
def country_select_tag(name, value, options={})
|
||||||
|
#options[:no_wrapper] = true
|
||||||
render_field(name, options = get_options(name, options), super(name, value, options), value)
|
render_field(name, options = get_options(name, options), super(name, value, options), value)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -292,7 +293,8 @@ module BikeBikeFormHelper
|
|||||||
end
|
end
|
||||||
|
|
||||||
def render_field(type, name, options, html, value = nil)
|
def render_field(type, name, options, html, value = nil)
|
||||||
if (options.has_key?(:no_wrapper) && options[:no_wrapper]) || options['type'] == 'hidden'
|
options.symbolize_keys!
|
||||||
|
if (options.has_key?(:no_wrapper) && options[:no_wrapper]) || /country/.match(name.to_s) && /^subregion_select/.match(type.to_s) || options[:type] == 'hidden'
|
||||||
return html
|
return html
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -306,7 +308,7 @@ module BikeBikeFormHelper
|
|||||||
template = template_exists?(type) ? type : 'default'
|
template = template_exists?(type) ? type : 'default'
|
||||||
params[:label_template] = options[:label] === false ? nil : get_label_template(type, options)
|
params[:label_template] = options[:label] === false ? nil : get_label_template(type, options)
|
||||||
params[:label_position] = options[:label] === false ? :none : label_position(type, options)
|
params[:label_position] = options[:label] === false ? :none : label_position(type, options)
|
||||||
|
|
||||||
render(template, params)
|
render(template, params)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,25 +1,31 @@
|
|||||||
class UserMailer < ActionMailer::Base
|
class UserMailer < ActionMailer::Base
|
||||||
default from: "from@example.com"
|
default from: "noreply@bikebike.org"
|
||||||
|
|
||||||
# Subject can be set in your I18n file at config/locales/en.yml
|
# Subject can be set in your I18n file at config/locales/en.yml
|
||||||
# with the following lookup:
|
# with the following lookup:
|
||||||
#
|
#
|
||||||
# en.user_mailer.activation_needed_email.subject
|
# en.user_mailer.activation_needed_email.subject
|
||||||
#
|
#
|
||||||
def activation_needed_email(email_address)
|
def activation_needed_email(email_address)
|
||||||
@greeting = "Hi"
|
@greeting = "Hi"
|
||||||
|
|
||||||
mail to: 'goodgodwin@hotmail.com'
|
mail to: 'goodgodwin@hotmail.com'
|
||||||
end
|
end
|
||||||
|
|
||||||
# Subject can be set in your I18n file at config/locales/en.yml
|
# Subject can be set in your I18n file at config/locales/en.yml
|
||||||
# with the following lookup:
|
# with the following lookup:
|
||||||
#
|
#
|
||||||
# en.user_mailer.activation_success_email.subject
|
# en.user_mailer.activation_success_email.subject
|
||||||
#
|
#
|
||||||
def activation_success_email
|
def activation_success_email
|
||||||
@greeting = "Hi"
|
@greeting = "Hi"
|
||||||
|
|
||||||
mail to: "to@example.org"
|
mail to: "to@example.org"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def conference_registration_email(conference, data)
|
||||||
|
@data = data
|
||||||
|
@conference = conference
|
||||||
|
mail to: data[:email], subject: 'Please confirm your registration for ' + conference.title
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -12,6 +12,18 @@ class Organization < ActiveRecord::Base
|
|||||||
accepts_nested_attributes_for :locations, :reject_if => proc {|l| l[id].blank?}
|
accepts_nested_attributes_for :locations, :reject_if => proc {|l| l[id].blank?}
|
||||||
accepts_nested_attributes_for :user_organization_relationships, :reject_if => proc {|u| u[:user_id].blank?}, :allow_destroy => true
|
accepts_nested_attributes_for :user_organization_relationships, :reject_if => proc {|u| u[:user_id].blank?}, :allow_destroy => true
|
||||||
|
|
||||||
|
def location
|
||||||
|
locations.first
|
||||||
|
end
|
||||||
|
|
||||||
|
def longitude
|
||||||
|
location.longitude
|
||||||
|
end
|
||||||
|
|
||||||
|
def latitude
|
||||||
|
location.latitude
|
||||||
|
end
|
||||||
|
|
||||||
def to_param
|
def to_param
|
||||||
slug
|
slug
|
||||||
end
|
end
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
.columns.medium-4.centered.align-bottom
|
.columns.medium-4.centered.align-bottom
|
||||||
%div
|
%div
|
||||||
- if @conference.registration_open
|
- if @conference.registration_open
|
||||||
%a.button{href: @conference.url(:register)}
|
%a.button.arrow-r{href: @conference.url(:register)}
|
||||||
=_'conference.Register_Now'
|
=_'conference.Register_Now'
|
||||||
- if params['controller'] != 'conferences'
|
- if params['controller'] != 'conferences'
|
||||||
%a.button.more{href: @conference.url}
|
%a.button.more{href: @conference.url}
|
||||||
|
@ -1,4 +1 @@
|
|||||||
= form_tag (@conference.url + '/register/').gsub(/\/\/+/, '/'), :method => :post do
|
= email_field_tag :email, session[:registration][:email]
|
||||||
= hidden_field_tag :step, @register_step
|
|
||||||
= email_field_tag :email
|
|
||||||
= form_actions :next
|
|
||||||
|
3
app/views/conferences/_register_cancel.html.haml
Normal file
3
app/views/conferences/_register_cancel.html.haml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
%h3=_'registration.cancel.title','Cancel Registration?'
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%p.help=_'registration.cancel.help','If you cancel now, you will lose the infomation you have submitted thus far, but you will be able to restart registration any time while registration is still open.'
|
3
app/views/conferences/_register_cancelled.html.haml
Normal file
3
app/views/conferences/_register_cancelled.html.haml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
%h3=_'registration.cancelled.title','Registration Cancelled'
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%p.help=_'registration.cancelled.help','Your registration has been cancelled but you can always restart the process while registration is still open.'
|
28
app/views/conferences/_register_new_organization.html.haml
Normal file
28
app/views/conferences/_register_new_organization.html.haml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
- org_index = session[:registration][:new_org_index]
|
||||||
|
= hidden_field_tag :new_org_index, org_index
|
||||||
|
- if session[:registration][:new_organization].length > 1
|
||||||
|
%h3=_'registration.new_organization.list.title','Your New Organizations'
|
||||||
|
%ul.columns.medium-10.medium-offset-1
|
||||||
|
- session[:registration][:new_organization].each_with_index do |new_organization, index|
|
||||||
|
- if new_organization[:title]
|
||||||
|
%li
|
||||||
|
- if index == org_index && new_organization[:title]
|
||||||
|
%strong=new_organization[:title]
|
||||||
|
- else
|
||||||
|
= new_organization[:title]
|
||||||
|
%h3=_'registration.new_organization.title','Your Organization Information'
|
||||||
|
.columns.medium-12= text_field_tag :organization_name, session[:registration][:new_organization][org_index][:name], :required => true
|
||||||
|
.columns.medium-12= text_area_tag :organization_info, session[:registration][:new_organization][org_index][:info], :data => {:editor => ""}
|
||||||
|
.columns.medium-7
|
||||||
|
= email_field_tag :organization_email, session[:registration][:new_organization][org_index][:email], :required => true
|
||||||
|
= text_field_tag :organization_street, session[:registration][:new_organization][org_index][:street], :required => true
|
||||||
|
= text_field_tag :organization_city, session[:registration][:new_organization][org_index][:city], :required => true
|
||||||
|
= country_select_tag :organization_country, session[:registration][:new_organization][org_index][:country], :required => true
|
||||||
|
= subregion_select_tag :organization_territory, session[:registration][:new_organization][org_index][:territory], session[:registration][:new_organization][org_index][:country] || 'US', html: {class: session[:registration][:new_organization][org_index][:country] ? 'can' : 'cant', data: {:country => session[:registration][:new_organization][org_index][:country]}}
|
||||||
|
.columns.medium-5
|
||||||
|
= image_field_tag :organization_logo
|
||||||
|
.columns
|
||||||
|
= check_box_tag :add_another_org, (org_index <= session[:registration][:new_organization].length - 1)
|
||||||
|
|
||||||
|
- content_for :footer_scripts do
|
||||||
|
= javascript_include_tag 'editor'
|
37
app/views/conferences/_register_new_workshop.html.haml
Normal file
37
app/views/conferences/_register_new_workshop.html.haml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
- workshop_index = session[:registration][:workshop_index]
|
||||||
|
= hidden_field_tag :workshop_index, workshop_index
|
||||||
|
- if session[:registration][:workshop].length > 1
|
||||||
|
%h3=_'registration.workshop.list.title','Your Workshops'
|
||||||
|
%ul.columns.medium-10.medium-offset-1
|
||||||
|
- session[:registration][:workshop].each_with_index do |workshop, index|
|
||||||
|
- if workshop[:title]
|
||||||
|
%li
|
||||||
|
- if index == workshop_index
|
||||||
|
%strong=workshop[:title]
|
||||||
|
- else
|
||||||
|
= workshop[:title]
|
||||||
|
%h3=_'registration.workshop.title','Workshop Information'
|
||||||
|
.columns.medium-10.medium-offset-1= text_field_tag :workshop_title, session[:registration][:workshop][workshop_index][:title], :required => true
|
||||||
|
.columns.medium-10.medium-offset-1= text_area_tag :workshop_info, session[:registration][:workshop][workshop_index][:info], :required => true, :data => {:editor => ""}
|
||||||
|
.columns.medium-5.medium-offset-1
|
||||||
|
%h4=_'registration.workshop.streams.title','Stream'
|
||||||
|
%p.help=_'registration.workshop.streams.help','Select the stream that best categorizes your workshop'
|
||||||
|
- streams = Hash.new
|
||||||
|
- streams[_'workshop_stream.select_one','Select a stream'] = ''
|
||||||
|
- WorkshopStream.all.each do |stream|
|
||||||
|
- streams[_'workshop_stream.' + stream.slug] = stream.slug
|
||||||
|
= select_tag :workshop_stream, options_for_select(streams, session[:registration][:workshop][workshop_index][:stream] || '')
|
||||||
|
.columns.medium-5.end
|
||||||
|
%h4=_'registration.workshop.styles.title','Presentation Style'
|
||||||
|
%p.help=_'registration.workshop.styles.help','Select the style that best describes how you will run your workshop'
|
||||||
|
- styles = Hash.new
|
||||||
|
- styles[_'workshop_presentation_style.select_one','Select a style'] = ''
|
||||||
|
- WorkshopPresentationStyle.all.each do |style|
|
||||||
|
- styles[_'workshop_presentation_style.' + style.slug] = style.slug
|
||||||
|
= select_tag :workshop_presentation_style, options_for_select(styles, session[:registration][:workshop][workshop_index][:presentation_style] || '')
|
||||||
|
.columns.medium-10.medium-offset-1
|
||||||
|
- #xx
|
||||||
|
= check_box_tag :add_another_workshop, "1", (workshop_index < session[:registration][:workshop].length - 1)
|
||||||
|
|
||||||
|
- content_for :footer_scripts do
|
||||||
|
= javascript_include_tag 'editor'
|
83
app/views/conferences/_register_organizations.html.haml
Normal file
83
app/views/conferences/_register_organizations.html.haml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
%h3
|
||||||
|
=_'register.organizations.title','Who do you Represent?'
|
||||||
|
%p=_'register.organizations.description','Please let us know where you\'re coming from! Find your organizations on the right, they are listed by how close they are to you right now.'
|
||||||
|
.columns.medium-6.medium-push-6
|
||||||
|
.org-list-select.choose
|
||||||
|
%h4=_'all_organizations','All Organizations'
|
||||||
|
%ul
|
||||||
|
- my_location = lookup_ip_location
|
||||||
|
- lids = Location.near(my_location.latitude.to_s+', '+my_location.longitude.to_s, 999999, order: 'distance').map{|l|l.id}
|
||||||
|
- orgs = Hash.new
|
||||||
|
-# orgs = Organization.joins(:locations_organization).where('locations_organizations.location_id' => lids)
|
||||||
|
-# orgs.each do |org|
|
||||||
|
- lids.each do |lid|
|
||||||
|
- org = Organization.joins(:locations_organization).where('locations_organizations.location_id' => lid).first
|
||||||
|
- if org && !orgs.has_key?(org.id)
|
||||||
|
- orgs[org.id] = org.id
|
||||||
|
%li{class: 'available', data: {id: org.id}}
|
||||||
|
%a{href: '#'}
|
||||||
|
%figure
|
||||||
|
= image_tag org.avatar.icon.url
|
||||||
|
%figcaption
|
||||||
|
%h6= org.name
|
||||||
|
%p= location(org.locations[0])
|
||||||
|
%input#org-filter{placeholder: (_'orgnizations_filter.placeholder','Filter by typing text here...')}
|
||||||
|
.columns.medium-6.medium-pull-6
|
||||||
|
.org-list-select.chosen
|
||||||
|
%h4=_'my_organizations','My Organizations'
|
||||||
|
%ul
|
||||||
|
- session[:registration][:organizations].each do |org_id|
|
||||||
|
- org = Organization.find(org_id.is_a?(Array) ? org_id.first : org_id)
|
||||||
|
%li.removable
|
||||||
|
%a{href: '#'}
|
||||||
|
%figure
|
||||||
|
= image_tag org.avatar.icon.url
|
||||||
|
%figcaption
|
||||||
|
%h6= org.name
|
||||||
|
%p= location(org.locations[0])
|
||||||
|
%input{type: 'hidden', name: "org[#{org.id}]", value: "#{org.id}"}
|
||||||
|
= check_box_tag :add_new_org
|
||||||
|
= check_box_tag :no_org
|
||||||
|
|
||||||
|
- content_for :dom_ready do
|
||||||
|
:plain
|
||||||
|
update_orgs();
|
||||||
|
$('#org-filter').keyup(function(){
|
||||||
|
var $this=$(this), search = $this.val().toLowerCase(), terms = search.split(/\s+/);
|
||||||
|
if (search) {
|
||||||
|
$('.org-list-select.choose li').each(function() {
|
||||||
|
var $li = $(this), content = $li.find('h6').html().toLowerCase() + '\n' + $li.find('p').html().toLowerCase(), found = true;
|
||||||
|
for (i = 0; i < terms.length && found; i++) {
|
||||||
|
found = (content.indexOf(terms[i]) >= 0);
|
||||||
|
}
|
||||||
|
$li.removeClass('not-found');
|
||||||
|
if (!found) {
|
||||||
|
$li.addClass('not-found');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$('.org-list-select.choose li').removeClass('not-found');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('.org-list-select').on('click', 'li a', function(e){e.preventDefault();
|
||||||
|
var $li = $(this).parent().clone();
|
||||||
|
if ($li.hasClass('selected')) {
|
||||||
|
$('.org-list-select.chosen li input[value="' + $li.data().id + '"]').parent().remove();
|
||||||
|
} else if ($li.hasClass('available')) {
|
||||||
|
$li.attr('class', 'removable').append('<input type="hidden" name="org[' + $li.data().id + ']" value="' + $li.data().id + '" />');
|
||||||
|
$('.org-list-select.chosen ul').append($li);
|
||||||
|
} else if ($li.hasClass('removable')) {
|
||||||
|
$(this).parent().remove();
|
||||||
|
}
|
||||||
|
update_orgs();
|
||||||
|
});
|
||||||
|
|
||||||
|
- content_for :scripts do
|
||||||
|
:plain
|
||||||
|
function update_orgs() {
|
||||||
|
$('.field-no-org').toggle($('.org-list-select.chosen li').length <= 0);
|
||||||
|
$('.org-list-select.choose li.selected').removeClass('selected');
|
||||||
|
$('.org-list-select.chosen li input').each(function() {
|
||||||
|
$('.org-list-select.choose li[data-id="' + $(this).val() + '"]').addClass('selected');
|
||||||
|
});
|
||||||
|
}
|
@ -1,14 +1,10 @@
|
|||||||
= form_tag (@conference.url + '/register/').gsub(/\/\/+/, '/'), :class => 'row', :method => :post do
|
.columns.medium-6= text_field_tag :firstname, session[:registration][:user][:firstname], :required => true
|
||||||
= hidden_field_tag :step, @register_step
|
.columns.medium-6= text_field_tag :lastname, session[:registration][:user][:lastname], :required => true
|
||||||
- user = session[:registration][:user]
|
- if !session[:registration][:user][:id]
|
||||||
.columns.medium-6= text_field_tag :firstname, user ? (user.firstname || user.username) : nil, :required => true
|
|
||||||
.columns.medium-6= text_field_tag :lastname, user ? user.lastname : nil, :required => true
|
|
||||||
.columns
|
.columns
|
||||||
= text_field_tag :username, user ? user.username : nil, :readonly => (user && user.username)
|
= text_field_tag :username, session[:registration][:user][:username]
|
||||||
.columns
|
.columns
|
||||||
%h3
|
%h3=_'registration.primary.role_title','Attending as:'
|
||||||
Attending as:
|
.columns.small-offset-1
|
||||||
.columns.small-offset-1
|
= check_box_tag :is_participant, session[:registration][:is_participant]
|
||||||
= check_box_tag :is_participant
|
= check_box_tag :is_volunteer, session[:registration][:is_volunteer]
|
||||||
= check_box_tag :is_volunteer
|
|
||||||
.columns= form_actions :next
|
|
||||||
|
34
app/views/conferences/_register_questions.html.haml
Normal file
34
app/views/conferences/_register_questions.html.haml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
%h3=_'registration.questions.title','Conference Participant Information'
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.questions.housing','Do you require housing?'
|
||||||
|
%p.help=_'registration.questions.housing.help','We will do our best to accommodate everyone but we will be working on a first come, first serve basis. If we cannot accommodate your needs, we will do our best to let you know ahead of time.'
|
||||||
|
.columns.medium-8.medium-offset-2.end
|
||||||
|
= select_tag '[questions][housing]', options_for_select(@housing_options, session[:registration][:questions][:housing])
|
||||||
|
%h5=_'registration.questions.housing_extra.title','Any else we should keep in mind?'
|
||||||
|
= text_area_tag '[questions][housing_extra]', session[:registration][:questions][:housing_extra], :label => false
|
||||||
|
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.questions.loaner_bike','Do you want to borrow a bike?'
|
||||||
|
%p.help=_'registration.questions.loaner_bike.help','Again, we will do our best to find you a suitable bike but it\'s on a first come, first serve basis.'
|
||||||
|
.columns.medium-8.medium-offset-2.end
|
||||||
|
= select_tag '[questions][loaner_bike]', options_for_select(@loaner_bike_options, session[:registration][:questions][:loaner_bike])
|
||||||
|
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.questions.diet','We\'ll be serving some food. Do you have any dietary restrictions?'
|
||||||
|
.columns.medium-8.medium-offset-2.end
|
||||||
|
= check_box_tag '[questions][diet][no_meat]', session[:registration][:questions][:diet][:no_meat]
|
||||||
|
= check_box_tag '[questions][diet][no_dairy]', session[:registration][:questions][:diet][:no_dairy]
|
||||||
|
= check_box_tag '[questions][diet][no_animal_products]', session[:registration][:questions][:diet][:no_animal_products]
|
||||||
|
= check_box_tag '[questions][diet][no_gluten]', session[:registration][:questions][:diet][:no_gluten]
|
||||||
|
= check_box_tag '[questions][diet][no_nuts]', session[:registration][:questions][:diet][:no_nuts]
|
||||||
|
%h5=_'registration.questions.diet_extra.title','Anything else?'
|
||||||
|
= text_area_tag '[questions][diet][diet_extra]', session[:registration][:questions][:diet_extra], :label => false
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.questions.workshop','Would you ilke to host a workshop?'
|
||||||
|
%p.help=_'registration.questions.workshop.help','Did you have an idea for a workshop that you\d like to help run? If so, we\'ll ask some follow-up questions on the following page.'
|
||||||
|
.columns.medium-8.medium-offset-2.end
|
||||||
|
= select_tag :is_workshop_host, options_for_select({(_'Yes') => 1, (_'No') => 0}, session[:registration][:is_workshop_host] || 0)
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.questions.other','Anything else we should know about your visit?'
|
||||||
|
.columns.medium-8.medium-offset-2.end
|
||||||
|
= text_area_tag '[questions][other]', session[:registration][:questions][:other], :label => false
|
3
app/views/conferences/_register_submit.html.haml
Normal file
3
app/views/conferences/_register_submit.html.haml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
%h3=_'registration.submit.title','Ready to Submit'
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%p.help=_'registration.submit.help','That\'s all we need to know right now, if you need to make any changes, please press the \'Previous\' button now. Otherwise just click \'Submit\' and you will get a confirmation email. YOU MUST CONFIRM once you get that email in order for us to know that you are coming. This is to confirm that you and your email address are real. We will send you occassional updates afterwards.'
|
6
app/views/conferences/_register_thanks.html.haml
Normal file
6
app/views/conferences/_register_thanks.html.haml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
%h3=_'registration.thanks.title','Thanks for submitting your registration'
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.thanks.remember_to_confirm','Remember to confirm your registration upon receiving the confirmation email'
|
||||||
|
%p.help
|
||||||
|
=_'registration.thanks.remember_to_confirm.help','If you experience any technical issues, please contact Godwin directly at'
|
||||||
|
%a{href: 'mailto:goodgodwin@hotmail.com'}='goodgodwin@hotmail.com'
|
@ -0,0 +1,31 @@
|
|||||||
|
%h3=_'registration.volunteer_questions.title','Conference Volunteer Information'
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.volunteer_questions.contact_info','Contact Information'
|
||||||
|
.columns.medium-8.medium-offset-2.end
|
||||||
|
%p.help=_'registration.volunteer_questions.contact.help','If you are housing guests, they will need your address and phone number, otherwise we will need your address to coordinate cooking. If you have additional concerns, please let us know in the comments below.'
|
||||||
|
= text_field_tag '[volunteer_questions][address]', session[:registration][:volunteer_questions][:address]
|
||||||
|
= text_field_tag '[volunteer_questions][phone_number]', session[:registration][:volunteer_questions][:phone_number]
|
||||||
|
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.volunteer_questions.has_kitchen','Do have a kitchen / cook space to offer?'
|
||||||
|
.columns.medium-8.medium-offset-2.end
|
||||||
|
= select_tag '[volunteer_questions][has_kitchen]', options_for_select({(_'Yes') => 1, (_'No') => 0}, session[:registration][:volunteer_questions][:has_kitchen] || 0)
|
||||||
|
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.volunteer_questions.has_housing','Do you have housing to offer for out of town attendees?'
|
||||||
|
.columns.medium-offset-2.medium-5
|
||||||
|
%h5=_'registration.volunteer_questions.beds','Spare Beds:'
|
||||||
|
.columns.medium-3.end
|
||||||
|
= number_field_tag '[volunteer_questions][beds]', session[:registration][:volunteer_questions][:beds] || 0, :label => false
|
||||||
|
.columns.medium-offset-2.medium-5
|
||||||
|
%h5=_'registration.volunteer_questions.couch_space','Number you can accomodate on couches/floor space:'
|
||||||
|
.columns.medium-3.end
|
||||||
|
= number_field_tag '[volunteer_questions][beds]', session[:registration][:volunteer_questions][:couch_space] || 0, :label => false
|
||||||
|
.columns.medium-offset-2.medium-5
|
||||||
|
%h5=_'registration.volunteer_questions.tents','Estimated number of tests you\'d be willing to have in your yard:'
|
||||||
|
.columns.medium-3.end
|
||||||
|
= number_field_tag '[volunteer_questions][tents]', session[:registration][:volunteer_questions][:tents] || 0, :label => false
|
||||||
|
.columns.medium-offset-1.end
|
||||||
|
%h4=_'registration.volunteer_questions.other','Anything else you\'d like to tell us?'
|
||||||
|
.columns.medium-8.medium-offset-2.end
|
||||||
|
= text_area_tag '[volunteer_questions][other]', session[:registration][:volunteer_questions][:other], :label => false
|
@ -5,13 +5,22 @@
|
|||||||
- description "#{@conference.title} conference in #{location_name} for DIY bicycle collectives, co-ops, and advocacy groups"
|
- description "#{@conference.title} conference in #{location_name} for DIY bicycle collectives, co-ops, and advocacy groups"
|
||||||
= render 'header'
|
= render 'header'
|
||||||
|
|
||||||
= tabs!
|
=# tabs!
|
||||||
|
|
||||||
%article.row
|
%article.row
|
||||||
.columns.large-10
|
.columns.large-10
|
||||||
- if @register_step
|
- if @register_step
|
||||||
%h2='Register!'
|
%h2='Register!'
|
||||||
= @register_content.html_safe
|
- if @actions
|
||||||
|
= form_tag (@conference.url + '/register/').gsub(/\/\/+/, '/'), :method => :post do
|
||||||
|
= hidden_field_tag :step, @register_step
|
||||||
|
- if @error_message
|
||||||
|
.columns.medium-8.medium-centered
|
||||||
|
%p.error=@error_message
|
||||||
|
= render @register_template
|
||||||
|
.columns= form_actions @actions
|
||||||
|
- else
|
||||||
|
= render @register_template
|
||||||
- else
|
- else
|
||||||
%h2=('About '+@conference.title)
|
%h2=('About '+@conference.title)
|
||||||
=p @conference, :info
|
=p @conference, :info
|
||||||
|
@ -6,19 +6,16 @@
|
|||||||
%title= (yield :title) + (content_for?(:title) ? ' | ' : '') + 'Bike!Bike!'
|
%title= (yield :title) + (content_for?(:title) ? ' | ' : '') + 'Bike!Bike!'
|
||||||
%meta{ name: 'description', content: (yield_or_default :description, 'Bike!Bike! conferences for DIY bicycle collectives, co-ops, and advocacy groups') }
|
%meta{ name: 'description', content: (yield_or_default :description, 'Bike!Bike! conferences for DIY bicycle collectives, co-ops, and advocacy groups') }
|
||||||
= csrf_meta_tags
|
= csrf_meta_tags
|
||||||
= yield :head
|
|
||||||
/[if lt IE 9]
|
/[if lt IE 9]
|
||||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
|
||||||
|
|
||||||
= stylesheet_link_tag '//fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic,700italic', 'application', media: 'all'
|
= stylesheet_link_tag '//fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic,700italic', 'application', media: 'all'
|
||||||
|
|
||||||
%link{ href: asset_path('favicon.ico'), rel: 'shortcut icon', type: 'image/x-icon' }
|
%link{ href: asset_path('favicon.ico'), rel: 'shortcut icon', type: 'image/x-icon' }
|
||||||
%link{ href: asset_path('favicon.ico'), rel: 'icon', type: 'image/x-icon' }
|
%link{ href: asset_path('favicon.ico'), rel: 'icon', type: 'image/x-icon' }
|
||||||
%link{ href: asset_path('apple-touch-icon.png'), rel: 'apple-touch-icon' }
|
%link{ href: asset_path('apple-touch-icon.png'), rel: 'apple-touch-icon' }
|
||||||
%link{ href: asset_path('apple-touch-icon-72x72.png'), rel: 'apple-touch-icon', sizes: '72x72' }
|
%link{ href: asset_path('apple-touch-icon-72x72.png'), rel: 'apple-touch-icon', sizes: '72x72' }
|
||||||
%link{ href: asset_path('apple-touch-icon-114x114.png'), rel: 'apple-touch-icon', sizes: '114x114' }
|
%link{ href: asset_path('apple-touch-icon-114x114.png'), rel: 'apple-touch-icon', sizes: '114x114' }
|
||||||
%link{ href: asset_path('apple-touch-icon-144x144.png'), rel: 'apple-touch-icon', sizes: '144x144' }
|
%link{ href: asset_path('apple-touch-icon-144x144.png'), rel: 'apple-touch-icon', sizes: '144x144' }
|
||||||
|
= yield :head
|
||||||
=# javascript_include_tag '//use.typekit.net/iqv7hcg.js'
|
=# javascript_include_tag '//use.typekit.net/iqv7hcg.js'
|
||||||
=# javascript_include_tag 'application'
|
=# javascript_include_tag 'application'
|
||||||
=# javascript_include_tag 'nested_form'
|
=# javascript_include_tag 'nested_form'
|
||||||
@ -43,15 +40,15 @@
|
|||||||
#content=yield
|
#content=yield
|
||||||
- else
|
- else
|
||||||
= yield
|
= yield
|
||||||
%footer
|
= yield :garbage
|
||||||
#footer
|
#footer
|
||||||
.container= render 'shared/footer'
|
%footer
|
||||||
|
.container= render 'shared/footer'
|
||||||
= javascript_include_tag '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'
|
= javascript_include_tag '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'
|
||||||
:javascript
|
:javascript
|
||||||
window.jQuery||document.write('<script src="/javascripts/jquery.min.js"><\/script>');(function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;e=o.createElement(i);r=o.getElementsByTagName(i)[0];e.src='//www.google-analytics.com/analytics.js';r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));ga('create','UA-42449204-1');ga('send','pageview');
|
window.jQuery||document.write('<script src="/javascripts/jquery.min.js"><\/script>');(function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;e=o.createElement(i);r=o.getElementsByTagName(i)[0];e.src='//www.google-analytics.com/analytics.js';r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));ga('create','UA-42449204-1');ga('send','pageview');!function(a,b,c,d){d&&a.addEventListener("DOMContentLoaded",function(){$.ajax({url:$("use").first().attr("xlink:href").replace(/^(.*)\#.*$/,"$1"),dataType:"text",success:function(a){$("body").append('<div class="hide">'+a+"</div>"),$("use").each(function(){$(this).attr("xlink:href",function(a,b){return b.replace(/^.*(#.*)$/,"$1")})})}})})}(document,navigator,{},/Trident\/[567]\b/.test(navigator.userAgent));
|
||||||
#{yield :scripts}
|
- if content_for?(:footer_scripts)
|
||||||
!function(a,b,c,d){d&&a.addEventListener("DOMContentLoaded",function(){$.ajax({url:$("use").first().attr("xlink:href").replace(/^(.*)\#.*$/,"$1"),dataType:"text",success:function(a){$("body").append('<div class="hide">'+a+"</div>"),$("use").each(function(){$(this).attr("xlink:href",function(a,b){return b.replace(/^.*(#.*)$/,"$1")})})}})})}(document,navigator,{},/Trident\/[567]\b/.test(navigator.userAgent));
|
= yield :footer_scripts
|
||||||
$(function(){
|
- if content_for?(:scripts) || content_for?(:dom_ready)
|
||||||
#{yield :dom_ready}
|
:javascript
|
||||||
});
|
#{content_for?(:scripts) ? "#{yield :scripts}" : ''}#{content_for?(:dom_ready) ? "$(function(){#{yield :dom_ready}});" : ''}
|
||||||
= yield :footer_scripts
|
|
||||||
|
@ -4,5 +4,5 @@
|
|||||||
%a.facebook-sign-in.button{href: '/oauth/facebook'}
|
%a.facebook-sign-in.button{href: '/oauth/facebook'}
|
||||||
= _ action.to_s
|
= _ action.to_s
|
||||||
- else
|
- else
|
||||||
%button{id: action.to_s, name: action.to_s, type: 'submit'}
|
%button{id: action.to_s, name: action.to_s, type: 'submit', formnovalidate: ([:cancel, :previous].include? action.to_sym)}
|
||||||
= _ action.to_s
|
= _ action.to_s
|
@ -4,7 +4,7 @@
|
|||||||
- if @options[:help]
|
- if @options[:help]
|
||||||
%p.help=_(("form.#{@options[:_controller]}.#{namekey}.help"), :w, 20)
|
%p.help=_(("form.#{@options[:_controller]}.#{namekey}.help"), :w, 20)
|
||||||
- @label = @label_template ? (render ('layouts/fields/label_' + @label_template)) : nil
|
- @label = @label_template ? (render ('layouts/fields/label_' + @label_template)) : nil
|
||||||
= @label_position == :before && @label ? @label : ''
|
= (@label_position == :before || @label_position == :inside) && @label ? @label : ''
|
||||||
- if @label_position != :inside
|
- if @label_position != :inside
|
||||||
%div=@html
|
%div=@html
|
||||||
= @label_position == :after && @label ? @label : ''
|
= @label_position == :after && @label ? @label : ''
|
||||||
|
6
app/views/organizations/_mini_preview.html.haml
Normal file
6
app/views/organizations/_mini_preview.html.haml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
= link_to organization do
|
||||||
|
%figure.org-mini-preview{:class => (organization.avatar.is_landscape? ? 'landscape' : 'portrait')}
|
||||||
|
= image_tag organization.avatar.preview.url
|
||||||
|
%figcaption
|
||||||
|
%h5= organization.name
|
||||||
|
%p= location(organization.locations[0])
|
@ -0,0 +1 @@
|
|||||||
|
= @data.to_json.to_s
|
@ -37,7 +37,7 @@ module I18n
|
|||||||
when 't', 'title'
|
when 't', 'title'
|
||||||
return (Forgery::LoremIpsum.sentences 1, options).capitalize
|
return (Forgery::LoremIpsum.sentences 1, options).capitalize
|
||||||
end
|
end
|
||||||
return nil
|
return method
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.note(key, behavior = nil, behavior_size = nil)
|
def self.note(key, behavior = nil, behavior_size = nil)
|
||||||
|
@ -14,7 +14,7 @@ BikeBike::Application.routes.draw do
|
|||||||
#resources :workshops, :param => 'slug'
|
#resources :workshops, :param => 'slug'
|
||||||
#get :register, :param => 'step'
|
#get :register, :param => 'step'
|
||||||
#post 'register/next' => 'conferences#register_submit'
|
#post 'register/next' => 'conferences#register_submit'
|
||||||
# match 'register(/:step)' => 'conferences#register', via: [:get, :post]
|
match 'register(/:step)' => 'conferences#register', via: [:get, :post]
|
||||||
#patch 'register/step/:step' => 'conferences#register_step'
|
#patch 'register/step/:step' => 'conferences#register_step'
|
||||||
#resources :registrations, :path => 'registration' do
|
#resources :registrations, :path => 'registration' do
|
||||||
# get :form, on: :collection
|
# get :form, on: :collection
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
class AddConfirmationTokenToConferenceRegistrations < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :conference_registrations, :confirmation_token, :string
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,5 @@
|
|||||||
|
class AddDataToConferenceRegistrations < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :conference_registrations, :data, :binary
|
||||||
|
end
|
||||||
|
end
|
@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20140714013645) do
|
ActiveRecord::Schema.define(version: 20140716002152) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
@ -64,6 +64,8 @@ ActiveRecord::Schema.define(version: 20140714013645) do
|
|||||||
t.boolean "is_confirmed"
|
t.boolean "is_confirmed"
|
||||||
t.boolean "is_participant"
|
t.boolean "is_participant"
|
||||||
t.boolean "is_volunteer"
|
t.boolean "is_volunteer"
|
||||||
|
t.string "confirmation_token"
|
||||||
|
t.binary "data"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "conference_types", force: true do |t|
|
create_table "conference_types", force: true do |t|
|
||||||
|
BIN
public/registration_data/1t3i4wgk5899kx2x/Thumbs.db
Normal file
BIN
public/registration_data/1t3i4wgk5899kx2x/Thumbs.db
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user