brightcontent 2.0.0.alpha2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/MIT-LICENSE +20 -0
- data/README.md +44 -0
- data/Rakefile +14 -0
- data/brightcontent.gemspec +21 -0
- data/core/.gitignore +9 -0
- data/core/Gemfile +17 -0
- data/core/Gemfile.lock +163 -0
- data/core/MIT-LICENSE +20 -0
- data/core/README.md +44 -0
- data/core/Rakefile +14 -0
- data/core/app/assets/images/brightcontent/.gitkeep +0 -0
- data/core/app/assets/images/brightcontent/glyphicons-halflings-white.png +0 -0
- data/core/app/assets/images/brightcontent/glyphicons-halflings.png +0 -0
- data/core/app/assets/javascripts/brightcontent/bootstrap.min.js +6 -0
- data/core/app/assets/javascripts/brightcontent/brightcontent.js +17 -0
- data/core/app/assets/javascripts/brightcontent/custom.js +1 -0
- data/core/app/assets/javascripts/brightcontent/main.js +3 -0
- data/core/app/assets/stylesheets/brightcontent/bootstrap-responsive.min.css +9 -0
- data/core/app/assets/stylesheets/brightcontent/bootstrap.min.css +9 -0
- data/core/app/assets/stylesheets/brightcontent/brightcontent.css +17 -0
- data/core/app/assets/stylesheets/brightcontent/custom.css +1 -0
- data/core/app/assets/stylesheets/brightcontent/main.css +44 -0
- data/core/app/controllers/brightcontent/admin_users_controller.rb +6 -0
- data/core/app/controllers/brightcontent/application_controller.rb +22 -0
- data/core/app/controllers/brightcontent/base_controller.rb +27 -0
- data/core/app/controllers/brightcontent/sessions_controller.rb +24 -0
- data/core/app/helpers/brightcontent/application_helper.rb +4 -0
- data/core/app/helpers/brightcontent/base_helper.rb +17 -0
- data/core/app/models/brightcontent/admin_user.rb +7 -0
- data/core/app/views/brightcontent/application/_menu.html.erb +3 -0
- data/core/app/views/brightcontent/application/_show_flash_names.html.erb +5 -0
- data/core/app/views/brightcontent/base/_form.html.erb +10 -0
- data/core/app/views/brightcontent/base/_list.html.erb +8 -0
- data/core/app/views/brightcontent/base/_list_actions.html.erb +2 -0
- data/core/app/views/brightcontent/base/edit.html.erb +3 -0
- data/core/app/views/brightcontent/base/index.html.erb +22 -0
- data/core/app/views/brightcontent/base/new.html.erb +3 -0
- data/core/app/views/brightcontent/sessions/new.html.erb +12 -0
- data/core/app/views/layouts/brightcontent/application.html.erb +53 -0
- data/core/brightcontent-core.gemspec +31 -0
- data/core/config/initializers/simple_form.rb +142 -0
- data/core/config/initializers/simple_form_bootstrap.rb +45 -0
- data/core/config/initializers/will_paginate.rb +28 -0
- data/core/config/routes.rb +9 -0
- data/core/db/migrate/20121206121725_create_brightcontent_admin_users.rb +12 -0
- data/core/lib/brightcontent/core/version.rb +5 -0
- data/core/lib/brightcontent/core.rb +32 -0
- data/core/lib/brightcontent/default_actions.rb +19 -0
- data/core/lib/brightcontent/engine.rb +9 -0
- data/core/lib/brightcontent/pagination.rb +24 -0
- data/core/lib/brightcontent/rails/routes.rb +16 -0
- data/core/lib/brightcontent/routes_parser.rb +38 -0
- data/core/lib/brightcontent-core.rb +1 -0
- data/core/lib/generators/brightcontent/install_generator.rb +34 -0
- data/core/lib/generators/brightcontent/resource_generator.rb +22 -0
- data/core/lib/generators/brightcontent/templates/brightcontent_controller.rb +2 -0
- data/core/lib/generators/brightcontent/templates/initializer.rb +8 -0
- data/core/script/rails +8 -0
- data/core/spec/dummy/README.rdoc +261 -0
- data/core/spec/dummy/Rakefile +7 -0
- data/core/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/core/spec/dummy/app/assets/javascripts/brightcontent/custom.js +1 -0
- data/core/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/core/spec/dummy/app/assets/stylesheets/brightcontent/custom.css +1 -0
- data/core/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/core/spec/dummy/app/controllers/brightcontent/blogs_controller.rb +2 -0
- data/core/spec/dummy/app/controllers/pages_controller.rb +8 -0
- data/core/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/core/spec/dummy/app/mailers/.gitkeep +0 -0
- data/core/spec/dummy/app/models/.gitkeep +0 -0
- data/core/spec/dummy/app/models/blog.rb +3 -0
- data/core/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/core/spec/dummy/app/views/pages/index.html.erb +1 -0
- data/core/spec/dummy/config/application.rb +59 -0
- data/core/spec/dummy/config/boot.rb +10 -0
- data/core/spec/dummy/config/database.yml +25 -0
- data/core/spec/dummy/config/environment.rb +5 -0
- data/core/spec/dummy/config/environments/development.rb +37 -0
- data/core/spec/dummy/config/environments/production.rb +67 -0
- data/core/spec/dummy/config/environments/test.rb +37 -0
- data/core/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/core/spec/dummy/config/initializers/brightcontent.rb +3 -0
- data/core/spec/dummy/config/initializers/inflections.rb +15 -0
- data/core/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/core/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/core/spec/dummy/config/initializers/session_store.rb +8 -0
- data/core/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/core/spec/dummy/config/locales/en.yml +5 -0
- data/core/spec/dummy/config/routes.rb +7 -0
- data/core/spec/dummy/config.ru +4 -0
- data/core/spec/dummy/db/migrate/20121206225720_create_blogs.rb +10 -0
- data/core/spec/dummy/db/schema.rb +30 -0
- data/core/spec/dummy/lib/assets/.gitkeep +0 -0
- data/core/spec/dummy/public/404.html +26 -0
- data/core/spec/dummy/public/422.html +26 -0
- data/core/spec/dummy/public/500.html +25 -0
- data/core/spec/dummy/public/favicon.ico +0 -0
- data/core/spec/dummy/script/rails +6 -0
- data/core/spec/factories.rb +16 -0
- data/core/spec/features/login_spec.rb +29 -0
- data/core/spec/features/menu_spec.rb +27 -0
- data/core/spec/features/resources_form_spec.rb +51 -0
- data/core/spec/features/resources_index_spec.rb +50 -0
- data/core/spec/lib/brightcontent/routes_parser_spec.rb +34 -0
- data/core/spec/spec_helper.rb +18 -0
- data/core/spec/support/acceptance_helper.rb +8 -0
- data/lib/brightcontent.rb +2 -0
- data/lib/tasks/release.rake +0 -0
- data/lib/tasks/rspec.rake +5 -0
- data/pages/.gitignore +9 -0
- data/pages/Gemfile +5 -0
- data/pages/Gemfile.lock +173 -0
- data/pages/MIT-LICENSE +20 -0
- data/pages/README.md +35 -0
- data/pages/Rakefile +14 -0
- data/pages/app/assets/images/brightcontent/.gitkeep +0 -0
- data/pages/app/controllers/brightcontent/pages_controller.rb +16 -0
- data/pages/app/helpers/brightcontent/pages_helper.rb +13 -0
- data/pages/app/models/brightcontent/page.rb +27 -0
- data/pages/app/views/brightcontent/pages/_form_field_parent_id.html.erb +1 -0
- data/pages/app/views/brightcontent/pages/_list_field_name.html.erb +1 -0
- data/pages/brightcontent-pages.gemspec +26 -0
- data/pages/config/routes.rb +3 -0
- data/pages/db/migrate/20121207132810_create_brightcontent_pages.rb +16 -0
- data/pages/lib/brightcontent/pages/engine.rb +14 -0
- data/pages/lib/brightcontent/pages/methods.rb +9 -0
- data/pages/lib/brightcontent/pages/version.rb +5 -0
- data/pages/lib/brightcontent/pages.rb +10 -0
- data/pages/lib/brightcontent-pages.rb +1 -0
- data/pages/lib/generators/brightcontent/pages/install_generator.rb +15 -0
- data/pages/script/rails +8 -0
- data/pages/spec/dummy/README.rdoc +261 -0
- data/pages/spec/dummy/Rakefile +7 -0
- data/pages/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/pages/spec/dummy/app/assets/javascripts/brightcontent/custom.js +1 -0
- data/pages/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/pages/spec/dummy/app/assets/stylesheets/brightcontent/custom.css +1 -0
- data/pages/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/pages/spec/dummy/app/controllers/brightcontent/blogs_controller.rb +2 -0
- data/pages/spec/dummy/app/controllers/pages_controller.rb +8 -0
- data/pages/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/pages/spec/dummy/app/mailers/.gitkeep +0 -0
- data/pages/spec/dummy/app/models/.gitkeep +0 -0
- data/pages/spec/dummy/app/models/blog.rb +3 -0
- data/pages/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/pages/spec/dummy/app/views/pages/index.html.erb +1 -0
- data/pages/spec/dummy/config/application.rb +59 -0
- data/pages/spec/dummy/config/boot.rb +10 -0
- data/pages/spec/dummy/config/database.yml +25 -0
- data/pages/spec/dummy/config/environment.rb +5 -0
- data/pages/spec/dummy/config/environments/development.rb +37 -0
- data/pages/spec/dummy/config/environments/production.rb +67 -0
- data/pages/spec/dummy/config/environments/test.rb +37 -0
- data/pages/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/pages/spec/dummy/config/initializers/brightcontent.rb +3 -0
- data/pages/spec/dummy/config/initializers/inflections.rb +15 -0
- data/pages/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/pages/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/pages/spec/dummy/config/initializers/session_store.rb +8 -0
- data/pages/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/pages/spec/dummy/config/locales/en.yml +5 -0
- data/pages/spec/dummy/config/routes.rb +6 -0
- data/pages/spec/dummy/config.ru +4 -0
- data/pages/spec/dummy/db/schema.rb +44 -0
- data/pages/spec/dummy/lib/assets/.gitkeep +0 -0
- data/pages/spec/dummy/public/404.html +26 -0
- data/pages/spec/dummy/public/422.html +26 -0
- data/pages/spec/dummy/public/500.html +25 -0
- data/pages/spec/dummy/public/favicon.ico +0 -0
- data/pages/spec/dummy/script/rails +6 -0
- data/pages/spec/factories.rb +16 -0
- data/pages/spec/features/menu_spec.rb +16 -0
- data/pages/spec/features/pages_spec.rb +18 -0
- data/pages/spec/models/brightcontent/page_spec.rb +49 -0
- data/pages/spec/spec_helper.rb +18 -0
- data/pages/spec/support/acceptance_helper.rb +8 -0
- metadata +253 -0
data/.gitignore
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2012 YOURNAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
___ _ _ _ ___ _ _
|
2
|
+
| _ )_ _(_)__ _| |_| |_ / __|___ _ _| |_ ___ _ _| |
|
3
|
+
| _ \ '_| / _` | ' \ _| (__/ _ \ ' \ _/ -_) ' \ _|
|
4
|
+
|___/_| |_\__, |_||_\__|\___\___/_||_\__\___|_||_\__|
|
5
|
+
|___/
|
6
|
+
|
7
|
+
|
8
|
+
Brightcontent, yet another rails CMS / admin panel
|
9
|
+
|
10
|
+
* For *developers*, to make a *custom CMS* for *non-technical users*
|
11
|
+
* No standard 'cms-modules', we hate those, making custom is easy enough
|
12
|
+
* Build in the rails way, use your normals models, only controllers and views are provided
|
13
|
+
* Only exception: Page model is provided with tree structure, draft, hidden and pretty urls like `/services/cleaning/houses`
|
14
|
+
* Rails 3.1+ only
|
15
|
+
|
16
|
+
Installation
|
17
|
+
------------
|
18
|
+
|
19
|
+
Include the gem in your Gemfile:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
gem "brightcontent", :git => "git://github.com/stexy/brightcontent.git"
|
23
|
+
bundle install
|
24
|
+
```
|
25
|
+
|
26
|
+
Generate the initializer, copy migrations and edit routes file. This can be done via a generator. Migrate the database afterwards:
|
27
|
+
|
28
|
+
$ rails generate brightcontent:install
|
29
|
+
$ rake db:migrate
|
30
|
+
|
31
|
+
Go to `/admin` and login with default user (email: `admin@example.com` / password: `password`).
|
32
|
+
|
33
|
+
Add a resource to Brightcontent
|
34
|
+
-------------------------------
|
35
|
+
|
36
|
+
Lets say, we want to add projects. Just create the `Project` model the rails way:
|
37
|
+
$ rails g model Project name:string description:text
|
38
|
+
$ rake db:migrate
|
39
|
+
|
40
|
+
To add the resource to brightcontent run:
|
41
|
+
|
42
|
+
$ rails generate brightcontent:resource Project
|
43
|
+
|
44
|
+
Gratz! Projects can now be controlled with Brightcontent.
|
data/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'bundler'
|
8
|
+
Bundler::GemHelper.install_tasks
|
9
|
+
|
10
|
+
Dir[File.expand_path('../lib/tasks/**/*', __FILE__)].each do |task|
|
11
|
+
load task
|
12
|
+
end
|
13
|
+
|
14
|
+
task :default => :spec
|
@@ -0,0 +1,21 @@
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
2
|
+
$:.push File.expand_path("..", __FILE__)
|
3
|
+
|
4
|
+
require "core/lib/brightcontent/core/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "brightcontent"
|
8
|
+
s.version = Brightcontent::Core::VERSION
|
9
|
+
s.email = "developers@brightin.nl"
|
10
|
+
s.homepage = "http://brightin.nl"
|
11
|
+
s.summary = "Brightcontent gem"
|
12
|
+
s.description = "Brightcontent, yet another Rails CMS / admin panel"
|
13
|
+
s.authors = ["Developers at Brightin"]
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- spec/*`.split("\n")
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
|
19
|
+
s.add_dependency "brightcontent-core"
|
20
|
+
s.add_dependency "brightcontent-pages"
|
21
|
+
end
|
data/core/.gitignore
ADDED
data/core/Gemfile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
|
3
|
+
# Declare your gem's dependencies in brightcontent.gemspec.
|
4
|
+
# Bundler will treat runtime dependencies like base dependencies, and
|
5
|
+
# development dependencies will be added by default to the :development group.
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
# jquery-rails is used by the dummy application
|
9
|
+
# gem "jquery-rails"
|
10
|
+
|
11
|
+
# Declare any dependencies that are still in development here instead of in
|
12
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
13
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
14
|
+
# your gem to rubygems.org.
|
15
|
+
|
16
|
+
# To use debugger
|
17
|
+
# gem 'debugger'
|
data/core/Gemfile.lock
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
brightcontent-core (2.0.0.alpha2)
|
5
|
+
bcrypt-ruby
|
6
|
+
bootstrap-wysihtml5-rails
|
7
|
+
inherited_resources
|
8
|
+
jquery-rails
|
9
|
+
rails (~> 3.2.9)
|
10
|
+
simple_form
|
11
|
+
will_paginate
|
12
|
+
|
13
|
+
GEM
|
14
|
+
remote: http://rubygems.org/
|
15
|
+
specs:
|
16
|
+
actionmailer (3.2.9)
|
17
|
+
actionpack (= 3.2.9)
|
18
|
+
mail (~> 2.4.4)
|
19
|
+
actionpack (3.2.9)
|
20
|
+
activemodel (= 3.2.9)
|
21
|
+
activesupport (= 3.2.9)
|
22
|
+
builder (~> 3.0.0)
|
23
|
+
erubis (~> 2.7.0)
|
24
|
+
journey (~> 1.0.4)
|
25
|
+
rack (~> 1.4.0)
|
26
|
+
rack-cache (~> 1.2)
|
27
|
+
rack-test (~> 0.6.1)
|
28
|
+
sprockets (~> 2.2.1)
|
29
|
+
activemodel (3.2.9)
|
30
|
+
activesupport (= 3.2.9)
|
31
|
+
builder (~> 3.0.0)
|
32
|
+
activerecord (3.2.9)
|
33
|
+
activemodel (= 3.2.9)
|
34
|
+
activesupport (= 3.2.9)
|
35
|
+
arel (~> 3.0.2)
|
36
|
+
tzinfo (~> 0.3.29)
|
37
|
+
activeresource (3.2.9)
|
38
|
+
activemodel (= 3.2.9)
|
39
|
+
activesupport (= 3.2.9)
|
40
|
+
activesupport (3.2.9)
|
41
|
+
i18n (~> 0.6)
|
42
|
+
multi_json (~> 1.0)
|
43
|
+
addressable (2.3.2)
|
44
|
+
arel (3.0.2)
|
45
|
+
bcrypt-ruby (3.0.1)
|
46
|
+
bootstrap-wysihtml5-rails (0.3.1.13)
|
47
|
+
railties (>= 3.0)
|
48
|
+
builder (3.0.4)
|
49
|
+
capybara (2.0.1)
|
50
|
+
mime-types (>= 1.16)
|
51
|
+
nokogiri (>= 1.3.3)
|
52
|
+
rack (>= 1.0.0)
|
53
|
+
rack-test (>= 0.5.4)
|
54
|
+
selenium-webdriver (~> 2.0)
|
55
|
+
xpath (~> 1.0.0)
|
56
|
+
childprocess (0.3.6)
|
57
|
+
ffi (~> 1.0, >= 1.0.6)
|
58
|
+
diff-lcs (1.1.3)
|
59
|
+
erubis (2.7.0)
|
60
|
+
factory_girl (4.1.0)
|
61
|
+
activesupport (>= 3.0.0)
|
62
|
+
factory_girl_rails (4.1.0)
|
63
|
+
factory_girl (~> 4.1.0)
|
64
|
+
railties (>= 3.0.0)
|
65
|
+
ffi (1.2.0)
|
66
|
+
has_scope (0.5.1)
|
67
|
+
hike (1.2.1)
|
68
|
+
i18n (0.6.1)
|
69
|
+
inherited_resources (1.3.1)
|
70
|
+
has_scope (~> 0.5.0)
|
71
|
+
responders (~> 0.6)
|
72
|
+
journey (1.0.4)
|
73
|
+
jquery-rails (2.1.4)
|
74
|
+
railties (>= 3.0, < 5.0)
|
75
|
+
thor (>= 0.14, < 2.0)
|
76
|
+
json (1.7.5)
|
77
|
+
launchy (2.1.2)
|
78
|
+
addressable (~> 2.3)
|
79
|
+
libwebsocket (0.1.7.1)
|
80
|
+
addressable
|
81
|
+
websocket
|
82
|
+
mail (2.4.4)
|
83
|
+
i18n (>= 0.4.0)
|
84
|
+
mime-types (~> 1.16)
|
85
|
+
treetop (~> 1.4.8)
|
86
|
+
mime-types (1.19)
|
87
|
+
multi_json (1.5.0)
|
88
|
+
nokogiri (1.5.6)
|
89
|
+
polyglot (0.3.3)
|
90
|
+
rack (1.4.1)
|
91
|
+
rack-cache (1.2)
|
92
|
+
rack (>= 0.4)
|
93
|
+
rack-ssl (1.3.2)
|
94
|
+
rack
|
95
|
+
rack-test (0.6.2)
|
96
|
+
rack (>= 1.0)
|
97
|
+
rails (3.2.9)
|
98
|
+
actionmailer (= 3.2.9)
|
99
|
+
actionpack (= 3.2.9)
|
100
|
+
activerecord (= 3.2.9)
|
101
|
+
activeresource (= 3.2.9)
|
102
|
+
activesupport (= 3.2.9)
|
103
|
+
bundler (~> 1.0)
|
104
|
+
railties (= 3.2.9)
|
105
|
+
railties (3.2.9)
|
106
|
+
actionpack (= 3.2.9)
|
107
|
+
activesupport (= 3.2.9)
|
108
|
+
rack-ssl (~> 1.3.2)
|
109
|
+
rake (>= 0.8.7)
|
110
|
+
rdoc (~> 3.4)
|
111
|
+
thor (>= 0.14.6, < 2.0)
|
112
|
+
rake (10.0.3)
|
113
|
+
rdoc (3.12)
|
114
|
+
json (~> 1.4)
|
115
|
+
responders (0.9.3)
|
116
|
+
railties (~> 3.1)
|
117
|
+
rspec-core (2.12.2)
|
118
|
+
rspec-expectations (2.12.1)
|
119
|
+
diff-lcs (~> 1.1.3)
|
120
|
+
rspec-mocks (2.12.1)
|
121
|
+
rspec-rails (2.12.0)
|
122
|
+
actionpack (>= 3.0)
|
123
|
+
activesupport (>= 3.0)
|
124
|
+
railties (>= 3.0)
|
125
|
+
rspec-core (~> 2.12.0)
|
126
|
+
rspec-expectations (~> 2.12.0)
|
127
|
+
rspec-mocks (~> 2.12.0)
|
128
|
+
rubyzip (0.9.9)
|
129
|
+
selenium-webdriver (2.27.2)
|
130
|
+
childprocess (>= 0.2.5)
|
131
|
+
libwebsocket (~> 0.1.3)
|
132
|
+
multi_json (~> 1.0)
|
133
|
+
rubyzip
|
134
|
+
simple_form (2.0.4)
|
135
|
+
actionpack (~> 3.0)
|
136
|
+
activemodel (~> 3.0)
|
137
|
+
sprockets (2.2.2)
|
138
|
+
hike (~> 1.2)
|
139
|
+
multi_json (~> 1.0)
|
140
|
+
rack (~> 1.0)
|
141
|
+
tilt (~> 1.1, != 1.3.0)
|
142
|
+
sqlite3 (1.3.6)
|
143
|
+
thor (0.16.0)
|
144
|
+
tilt (1.3.3)
|
145
|
+
treetop (1.4.12)
|
146
|
+
polyglot
|
147
|
+
polyglot (>= 0.3.1)
|
148
|
+
tzinfo (0.3.35)
|
149
|
+
websocket (1.0.6)
|
150
|
+
will_paginate (3.0.3)
|
151
|
+
xpath (1.0.0)
|
152
|
+
nokogiri (~> 1.3)
|
153
|
+
|
154
|
+
PLATFORMS
|
155
|
+
ruby
|
156
|
+
|
157
|
+
DEPENDENCIES
|
158
|
+
brightcontent-core!
|
159
|
+
capybara
|
160
|
+
factory_girl_rails
|
161
|
+
launchy
|
162
|
+
rspec-rails
|
163
|
+
sqlite3
|
data/core/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2012 YOURNAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/core/README.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
___ _ _ _ ___ _ _
|
2
|
+
| _ )_ _(_)__ _| |_| |_ / __|___ _ _| |_ ___ _ _| |
|
3
|
+
| _ \ '_| / _` | ' \ _| (__/ _ \ ' \ _/ -_) ' \ _|
|
4
|
+
|___/_| |_\__, |_||_\__|\___\___/_||_\__\___|_||_\__|
|
5
|
+
|___/
|
6
|
+
|
7
|
+
|
8
|
+
Brightcontent, yet another rails CMS / admin panel
|
9
|
+
|
10
|
+
* For *developers*, to make a *custom CMS* for *non-technical users*
|
11
|
+
* No standard 'cms-modules', we hate those, making custom is easy enough
|
12
|
+
* Build in the rails way, use your normals models, only controllers and views are provided
|
13
|
+
* Only exception: Page model is provided with tree structure, draft, hidden and pretty urls like `/services/cleaning/houses`
|
14
|
+
* Rails 3.1+ only
|
15
|
+
|
16
|
+
Installation
|
17
|
+
------------
|
18
|
+
|
19
|
+
Include the gem in your Gemfile:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
gem "brightcontent", :git => "git://github.com/stexy/brightcontent.git"
|
23
|
+
bundle install
|
24
|
+
```
|
25
|
+
|
26
|
+
Generate the initializer, copy migrations and edit routes file. This can be done via a generator. Migrate the database afterwards:
|
27
|
+
|
28
|
+
$ rails generate brightcontent:install
|
29
|
+
$ rake db:migrate
|
30
|
+
|
31
|
+
Go to `/admin` and login with default user (email: `admin@example.com` / password: `password`).
|
32
|
+
|
33
|
+
Add a resource to Brightcontent
|
34
|
+
-------------------------------
|
35
|
+
|
36
|
+
Lets say, we want to add projects. Just create the `Project` model the rails way:
|
37
|
+
$ rails g model Project name:string description:text
|
38
|
+
$ rake db:migrate
|
39
|
+
|
40
|
+
To add the resource to brightcontent run:
|
41
|
+
|
42
|
+
$ rails generate brightcontent:resource Project
|
43
|
+
|
44
|
+
Gratz! Projects can now be controlled with Brightcontent.
|
data/core/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
8
|
+
load 'rails/tasks/engine.rake'
|
9
|
+
|
10
|
+
require 'rspec/core/rake_task'
|
11
|
+
RSpec::Core::RakeTask.new(:spec)
|
12
|
+
task :default => :spec
|
13
|
+
|
14
|
+
Bundler::GemHelper.install_tasks
|
File without changes
|
Binary file
|
Binary file
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/*!
|
2
|
+
* Bootstrap.js by @fat & @mdo
|
3
|
+
* Copyright 2012 Twitter, Inc.
|
4
|
+
* http://www.apache.org/licenses/LICENSE-2.0.txt
|
5
|
+
*/
|
6
|
+
!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()},e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")},e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=n,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},to:function(t){var n=this.$element.find(".item.active"),r=n.parent().children(),i=r.index(n),s=this;if(t>r.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){s.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",e(r[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0]});if(i.hasClass("active"))return;if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}},e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e(document).on("click.carousel.data-api","[data-slide]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data());i.carousel(s),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning)return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning)return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=typeof n=="object"&&n;i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;return n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=e(n),r.length||(r=t.parent()),r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||(s.toggleClass("open"),n.focus()),!1},keydown:function(t){var n,r,s,o,u,a;if(!/(38|40|27)/.test(t.keyCode))return;n=e(this),t.preventDefault(),t.stopPropagation();if(n.is(".disabled, :disabled"))return;o=i(n),u=o.hasClass("open");if(!u||u&&t.keyCode==27)return n.click();r=e("[role=menu] li:not(.divider) a",o);if(!r.length)return;a=r.index(r.filter(":focus")),t.keyCode==38&&a>0&&a--,t.keyCode==40&&a<r.length-1&&a++,~a||(a=0),r.eq(a).focus()}},e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e(document).on("click.dropdown.data-api touchstart.dropdown.data-api",r).on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(e){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,e.proxy(this.removeBackdrop,this)):this.removeBackdrop()):t&&t()}},e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):this.options.trigger!="manual"&&(i=this.options.trigger=="hover"?"mouseenter":"focus",s=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this))),this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,t,this.$element.data()),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(!n.options.delay||!n.options.delay.show)return n.show();clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){n.hoverState=="in"&&n.show()},n.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var e,t,n,r,i,s,o;if(this.hasContent()&&this.enabled){e=this.tip(),this.setContent(),this.options.animation&&e.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,t=/in/.test(s),e.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),n=this.getPosition(t),r=e[0].offsetWidth,i=e[0].offsetHeight;switch(t?s.split(" ")[1]:s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}e.offset(o).addClass(s).addClass("in")}},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function r(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip();return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?r():n.detach(),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(t){return e.extend({},t?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);n[n.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content > *")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-content")||(typeof n.content=="function"?n.content.call(t[0]):n.content),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var t=e(this),n=t.data("target")||t.attr("href"),r=/^#\w/.test(n)&&e(n);return r&&r.length&&[[r.position().top,n]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}},e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}},e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=e(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:t.top+t.height,left:t.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=!~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},blur:function(e){var t=this;setTimeout(function(){t.hide()},150)},click:function(e){e.stopPropagation(),e.preventDefault(),this.select()},mouseenter:function(t){this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")}},e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;t.preventDefault(),n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))},e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// the compiled file.
|
9
|
+
//
|
10
|
+
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
11
|
+
// GO AFTER THE REQUIRES BELOW.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require bootstrap-wysihtml5
|
16
|
+
//= require bootstrap-wysihtml5/locales/nl-NL
|
17
|
+
//= require_tree .
|
@@ -0,0 +1 @@
|
|
1
|
+
/* Use this file for custom Javascript */
|
@@ -0,0 +1,9 @@
|
|
1
|
+
/*!
|
2
|
+
* Bootstrap Responsive v2.2.1
|
3
|
+
*
|
4
|
+
* Copyright 2012 Twitter, Inc
|
5
|
+
* Licensed under the Apache License v2.0
|
6
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
*
|
8
|
+
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
9
|
+
*/.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
|