diff --git a/Gemfile b/Gemfile
index cb94d85..c1cb864 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,8 +5,14 @@ source "http://rubygems.org"
# development dependencies will be added by default to the :development group.
gemspec
-# jquery-rails is used by the dummy application
-gem "jquery-rails"
+group :assets do
+ gem 'sass-rails'
+ #gem 'bourbon'
+ gem 'coffee-script'
+ gem 'therubyracer', :platforms => :ruby
+ gem 'less-rails'
+ gem 'twitter-bootstrap-rails'
+end
gem 'couch_potato' , :git => 'git://github.com/bterkuile/couch_potato.git'
gem 'simply_stored' , :git => 'git://github.com/bterkuile/simply_stored.git'
@@ -14,18 +20,16 @@ gem 'devise', '2.0.4'
gem 'devise_simply_stored'
gem 'tinymce-rails'
gem 'haml-rails'
+gem 'slim-rails'
gem 'paperclip'
gem 'email_validator'
-group :assets do
- gem 'sass-rails'
- gem 'bourbon'
- gem 'coffee-script'
-end
# Declare any dependencies that are still in development here instead of in
# your gemspec. These might include edge Rails or gems from your path or
# Git. Remember to move these dependencies to your gemspec before releasing
# your gem to rubygems.org.
+# jquery-rails is used by the dummy application
+gem "jquery-rails"
# To use debugger
group :test do
gem 'steak'
diff --git a/Gemfile.lock b/Gemfile.lock
index 66c6186..33533d3 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -83,6 +83,7 @@ GEM
coffee-script-source
execjs
coffee-script-source (1.4.0)
+ commonjs (0.2.6)
couchrest (1.1.3)
mime-types (~> 1.15)
multi_json (~> 1.0)
@@ -121,6 +122,12 @@ GEM
railties (>= 3.1.0, < 5.0)
thor (~> 0.14)
json (1.6.7)
+ less (2.2.2)
+ commonjs (~> 0.2.6)
+ less-rails (2.2.6)
+ actionpack (>= 3.1)
+ less (~> 2.2.0)
+ libv8 (3.3.10.4)
libwebsocket (0.1.6.1)
websocket
mail (2.4.4)
@@ -192,6 +199,14 @@ GEM
libwebsocket (~> 0.1.3)
multi_json (~> 1.0)
rubyzip
+ slim (1.3.4)
+ temple (~> 0.5.5)
+ tilt (~> 1.3.3)
+ slim-rails (1.0.3)
+ actionpack (~> 3.0)
+ activesupport (~> 3.0)
+ railties (~> 3.0)
+ slim (~> 1.0)
slop (3.3.3)
sprockets (2.2.1)
hike (~> 1.2)
@@ -201,6 +216,9 @@ GEM
steak (2.0.0)
capybara (>= 1.0.0)
rspec-rails (>= 2.5.0)
+ temple (0.5.5)
+ therubyracer (0.10.2)
+ libv8 (~> 3.3.10)
thin (1.5.0)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
@@ -212,6 +230,10 @@ GEM
treetop (1.4.12)
polyglot
polyglot (>= 0.3.1)
+ twitter-bootstrap-rails (2.1.6)
+ actionpack (>= 3.1)
+ execjs
+ railties (>= 3.1)
tzinfo (0.3.35)
warden (1.1.1)
rack (>= 1.0)
@@ -223,7 +245,6 @@ PLATFORMS
ruby
DEPENDENCIES
- bourbon
cmtool!
coffee-script
couch_potato!
@@ -233,10 +254,14 @@ DEPENDENCIES
factory_girl_rails
haml-rails
jquery-rails
+ less-rails
paperclip
pry
sass-rails
simply_stored!
+ slim-rails
steak
+ therubyracer
thin
tinymce-rails
+ twitter-bootstrap-rails
diff --git a/app/assets/javascripts/cmtool/application.js b/app/assets/javascripts/cmtool/application.js
index f4fe179..e80588f 100644
--- a/app/assets/javascripts/cmtool/application.js
+++ b/app/assets/javascripts/cmtool/application.js
@@ -13,5 +13,6 @@
//= require jquery
//= require jquery_ujs
//= require jquery-ui
+//= require twitter/bootstrap
//= require tinymce-jquery
//= require_directory .
diff --git a/app/assets/stylesheets/cmtool/_jquery-ui.css.sass b/app/assets/stylesheets/cmtool/_jquery-ui.css.sass
deleted file mode 100644
index e85fa92..0000000
--- a/app/assets/stylesheets/cmtool/_jquery-ui.css.sass
+++ /dev/null
@@ -1,1433 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
-
-/* Layout helpers
- *----------------------------------
-
-.ui-helper-hidden
- display: none
-
-.ui-helper-hidden-accessible
- position: absolute !important
- clip: rect(1px 1px 1px 1px)
- clip: rect(1px, 1px, 1px, 1px)
-
-.ui-helper-reset
- margin: 0
- padding: 0
- border: 0
- outline: 0
- line-height: 1.3
- text-decoration: none
- font-size: 100%
- list-style: none
-
-.ui-helper-clearfix
- &:after
- content: "."
- display: block
- height: 0
- clear: both
- visibility: hidden
- display: inline-block
-
-/* required comment for clearfix to work in Opera \
-
-* html .ui-helper-clearfix
- height: 1%
-
-.ui-helper-clearfix
- display: block
-
-/* end clearfix
-
-.ui-helper-zfix
- width: 100%
- height: 100%
- top: 0
- left: 0
- position: absolute
- opacity: 0
- filter: Alpha(Opacity = 0)
-
-/* Interaction Cues
- *----------------------------------
-
-.ui-state-disabled
- cursor: default !important
-
-/* Icons
- *----------------------------------
-
-/* states and images
-
-.ui-icon
- display: block
- text-indent: -99999px
- overflow: hidden
- background-repeat: no-repeat
-
-/* Misc visuals
- *----------------------------------
-
-/* Overlays
-
-.ui-widget-overlay
- position: absolute
- top: 0
- left: 0
- width: 100%
- height: 100%
-
-/*
- * jQuery UI CSS Framework 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
-
-/* Component containers
- *----------------------------------
-
-.ui-widget
- font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif
- font-size: 1.1em
- .ui-widget
- font-size: 1em
- input, select, textarea, button
- font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif
- font-size: 1em
-
-.ui-widget-content
- border: 1px solid #dddddd
- background: #eeeeee image-url("cmtool/ui/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x
- color: #333333
- a
- color: #333333
-
-.ui-widget-header
- border: 1px solid #e78f08
- background: #f6a828 image-url("cmtool/ui/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x
- color: #ffffff
- font-weight: bold
- a
- color: #ffffff
-
-/* Interaction states
- *----------------------------------
-
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default
- border: 1px solid #cccccc
- background: #f6f6f6 image-url("cmtool/ui/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x
- font-weight: bold
- color: #1c94c4
-
-.ui-state-default a
- color: #1c94c4
- text-decoration: none
- &:link, &:visited
- color: #1c94c4
- text-decoration: none
-
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus
- border: 1px solid #fbcb09
- background: #fdf5ce image-url("cmtool/ui/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x
- font-weight: bold
- color: #c77405
-
-.ui-state-hover a
- color: #c77405
- text-decoration: none
- &:hover
- color: #c77405
- text-decoration: none
-
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active
- border: 1px solid #fbd850
- background: white image-url("cmtool/ui/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x
- font-weight: bold
- color: #eb8f00
-
-.ui-state-active a
- color: #eb8f00
- text-decoration: none
- &:link, &:visited
- color: #eb8f00
- text-decoration: none
-
-.ui-widget :active
- outline: none
-
-/* Interaction Cues
- *----------------------------------
-
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight
- border: 1px solid #fed22f
- background: #ffe45c image-url("cmtool/ui/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x
- color: #363636
-
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a
- color: #363636
-
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error
- border: 1px solid #cd0a0a
- background: #b81900 image-url("cmtool/ui/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat
- color: #ffffff
-
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a, .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text
- color: #ffffff
-
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary
- font-weight: bold
-
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary
- opacity: .7
- filter: Alpha(Opacity = 70)
- font-weight: normal
-
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled
- opacity: .35
- filter: Alpha(Opacity = 35)
- background-image: none
-
-/* Icons
- *----------------------------------
-
-/* states and images
-
-.ui-icon
- width: 16px
- height: 16px
- background-image: image-url("cmtool/ui/ui-icons_222222_256x240.png")
-
-.ui-widget-content .ui-icon
- background-image: image-url("cmtool/ui/ui-icons_222222_256x240.png")
-
-.ui-widget-header .ui-icon
- background-image: image-url("cmtool/ui/ui-icons_ffffff_256x240.png")
-
-.ui-state-default .ui-icon, .ui-state-hover .ui-icon, .ui-state-focus .ui-icon, .ui-state-active .ui-icon
- background-image: image-url("cmtool/ui/ui-icons_ef8c08_256x240.png")
-
-.ui-state-highlight .ui-icon
- background-image: image-url("cmtool/ui/ui-icons_228ef1_256x240.png")
-
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon
- background-image: image-url("cmtool/ui/ui-icons_ffd27a_256x240.png")
-
-/* positioning
-
-.ui-icon-carat-1-n
- background-position: 0 0
-
-.ui-icon-carat-1-ne
- background-position: -16px 0
-
-.ui-icon-carat-1-e
- background-position: -32px 0
-
-.ui-icon-carat-1-se
- background-position: -48px 0
-
-.ui-icon-carat-1-s
- background-position: -64px 0
-
-.ui-icon-carat-1-sw
- background-position: -80px 0
-
-.ui-icon-carat-1-w
- background-position: -96px 0
-
-.ui-icon-carat-1-nw
- background-position: -112px 0
-
-.ui-icon-carat-2-n-s
- background-position: -128px 0
-
-.ui-icon-carat-2-e-w
- background-position: -144px 0
-
-.ui-icon-triangle-1-n
- background-position: 0 -16px
-
-.ui-icon-triangle-1-ne
- background-position: -16px -16px
-
-.ui-icon-triangle-1-e
- background-position: -32px -16px
-
-.ui-icon-triangle-1-se
- background-position: -48px -16px
-
-.ui-icon-triangle-1-s
- background-position: -64px -16px
-
-.ui-icon-triangle-1-sw
- background-position: -80px -16px
-
-.ui-icon-triangle-1-w
- background-position: -96px -16px
-
-.ui-icon-triangle-1-nw
- background-position: -112px -16px
-
-.ui-icon-triangle-2-n-s
- background-position: -128px -16px
-
-.ui-icon-triangle-2-e-w
- background-position: -144px -16px
-
-.ui-icon-arrow-1-n
- background-position: 0 -32px
-
-.ui-icon-arrow-1-ne
- background-position: -16px -32px
-
-.ui-icon-arrow-1-e
- background-position: -32px -32px
-
-.ui-icon-arrow-1-se
- background-position: -48px -32px
-
-.ui-icon-arrow-1-s
- background-position: -64px -32px
-
-.ui-icon-arrow-1-sw
- background-position: -80px -32px
-
-.ui-icon-arrow-1-w
- background-position: -96px -32px
-
-.ui-icon-arrow-1-nw
- background-position: -112px -32px
-
-.ui-icon-arrow-2-n-s
- background-position: -128px -32px
-
-.ui-icon-arrow-2-ne-sw
- background-position: -144px -32px
-
-.ui-icon-arrow-2-e-w
- background-position: -160px -32px
-
-.ui-icon-arrow-2-se-nw
- background-position: -176px -32px
-
-.ui-icon-arrowstop-1-n
- background-position: -192px -32px
-
-.ui-icon-arrowstop-1-e
- background-position: -208px -32px
-
-.ui-icon-arrowstop-1-s
- background-position: -224px -32px
-
-.ui-icon-arrowstop-1-w
- background-position: -240px -32px
-
-.ui-icon-arrowthick-1-n
- background-position: 0 -48px
-
-.ui-icon-arrowthick-1-ne
- background-position: -16px -48px
-
-.ui-icon-arrowthick-1-e
- background-position: -32px -48px
-
-.ui-icon-arrowthick-1-se
- background-position: -48px -48px
-
-.ui-icon-arrowthick-1-s
- background-position: -64px -48px
-
-.ui-icon-arrowthick-1-sw
- background-position: -80px -48px
-
-.ui-icon-arrowthick-1-w
- background-position: -96px -48px
-
-.ui-icon-arrowthick-1-nw
- background-position: -112px -48px
-
-.ui-icon-arrowthick-2-n-s
- background-position: -128px -48px
-
-.ui-icon-arrowthick-2-ne-sw
- background-position: -144px -48px
-
-.ui-icon-arrowthick-2-e-w
- background-position: -160px -48px
-
-.ui-icon-arrowthick-2-se-nw
- background-position: -176px -48px
-
-.ui-icon-arrowthickstop-1-n
- background-position: -192px -48px
-
-.ui-icon-arrowthickstop-1-e
- background-position: -208px -48px
-
-.ui-icon-arrowthickstop-1-s
- background-position: -224px -48px
-
-.ui-icon-arrowthickstop-1-w
- background-position: -240px -48px
-
-.ui-icon-arrowreturnthick-1-w
- background-position: 0 -64px
-
-.ui-icon-arrowreturnthick-1-n
- background-position: -16px -64px
-
-.ui-icon-arrowreturnthick-1-e
- background-position: -32px -64px
-
-.ui-icon-arrowreturnthick-1-s
- background-position: -48px -64px
-
-.ui-icon-arrowreturn-1-w
- background-position: -64px -64px
-
-.ui-icon-arrowreturn-1-n
- background-position: -80px -64px
-
-.ui-icon-arrowreturn-1-e
- background-position: -96px -64px
-
-.ui-icon-arrowreturn-1-s
- background-position: -112px -64px
-
-.ui-icon-arrowrefresh-1-w
- background-position: -128px -64px
-
-.ui-icon-arrowrefresh-1-n
- background-position: -144px -64px
-
-.ui-icon-arrowrefresh-1-e
- background-position: -160px -64px
-
-.ui-icon-arrowrefresh-1-s
- background-position: -176px -64px
-
-.ui-icon-arrow-4
- background-position: 0 -80px
-
-.ui-icon-arrow-4-diag
- background-position: -16px -80px
-
-.ui-icon-extlink
- background-position: -32px -80px
-
-.ui-icon-newwin
- background-position: -48px -80px
-
-.ui-icon-refresh
- background-position: -64px -80px
-
-.ui-icon-shuffle
- background-position: -80px -80px
-
-.ui-icon-transfer-e-w
- background-position: -96px -80px
-
-.ui-icon-transferthick-e-w
- background-position: -112px -80px
-
-.ui-icon-folder-collapsed
- background-position: 0 -96px
-
-.ui-icon-folder-open
- background-position: -16px -96px
-
-.ui-icon-document
- background-position: -32px -96px
-
-.ui-icon-document-b
- background-position: -48px -96px
-
-.ui-icon-note
- background-position: -64px -96px
-
-.ui-icon-mail-closed
- background-position: -80px -96px
-
-.ui-icon-mail-open
- background-position: -96px -96px
-
-.ui-icon-suitcase
- background-position: -112px -96px
-
-.ui-icon-comment
- background-position: -128px -96px
-
-.ui-icon-person
- background-position: -144px -96px
-
-.ui-icon-print
- background-position: -160px -96px
-
-.ui-icon-trash
- background-position: -176px -96px
-
-.ui-icon-locked
- background-position: -192px -96px
-
-.ui-icon-unlocked
- background-position: -208px -96px
-
-.ui-icon-bookmark
- background-position: -224px -96px
-
-.ui-icon-tag
- background-position: -240px -96px
-
-.ui-icon-home
- background-position: 0 -112px
-
-.ui-icon-flag
- background-position: -16px -112px
-
-.ui-icon-calendar
- background-position: -32px -112px
-
-.ui-icon-cart
- background-position: -48px -112px
-
-.ui-icon-pencil
- background-position: -64px -112px
-
-.ui-icon-clock
- background-position: -80px -112px
-
-.ui-icon-disk
- background-position: -96px -112px
-
-.ui-icon-calculator
- background-position: -112px -112px
-
-.ui-icon-zoomin
- background-position: -128px -112px
-
-.ui-icon-zoomout
- background-position: -144px -112px
-
-.ui-icon-search
- background-position: -160px -112px
-
-.ui-icon-wrench
- background-position: -176px -112px
-
-.ui-icon-gear
- background-position: -192px -112px
-
-.ui-icon-heart
- background-position: -208px -112px
-
-.ui-icon-star
- background-position: -224px -112px
-
-.ui-icon-link
- background-position: -240px -112px
-
-.ui-icon-cancel
- background-position: 0 -128px
-
-.ui-icon-plus
- background-position: -16px -128px
-
-.ui-icon-plusthick
- background-position: -32px -128px
-
-.ui-icon-minus
- background-position: -48px -128px
-
-.ui-icon-minusthick
- background-position: -64px -128px
-
-.ui-icon-close
- background-position: -80px -128px
-
-.ui-icon-closethick
- background-position: -96px -128px
-
-.ui-icon-key
- background-position: -112px -128px
-
-.ui-icon-lightbulb
- background-position: -128px -128px
-
-.ui-icon-scissors
- background-position: -144px -128px
-
-.ui-icon-clipboard
- background-position: -160px -128px
-
-.ui-icon-copy
- background-position: -176px -128px
-
-.ui-icon-contact
- background-position: -192px -128px
-
-.ui-icon-image
- background-position: -208px -128px
-
-.ui-icon-video
- background-position: -224px -128px
-
-.ui-icon-script
- background-position: -240px -128px
-
-.ui-icon-alert
- background-position: 0 -144px
-
-.ui-icon-info
- background-position: -16px -144px
-
-.ui-icon-notice
- background-position: -32px -144px
-
-.ui-icon-help
- background-position: -48px -144px
-
-.ui-icon-check
- background-position: -64px -144px
-
-.ui-icon-bullet
- background-position: -80px -144px
-
-.ui-icon-radio-off
- background-position: -96px -144px
-
-.ui-icon-radio-on
- background-position: -112px -144px
-
-.ui-icon-pin-w
- background-position: -128px -144px
-
-.ui-icon-pin-s
- background-position: -144px -144px
-
-.ui-icon-play
- background-position: 0 -160px
-
-.ui-icon-pause
- background-position: -16px -160px
-
-.ui-icon-seek-next
- background-position: -32px -160px
-
-.ui-icon-seek-prev
- background-position: -48px -160px
-
-.ui-icon-seek-end
- background-position: -64px -160px
-
-.ui-icon-seek-start, .ui-icon-seek-first
- background-position: -80px -160px
-
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead
-
-.ui-icon-stop
- background-position: -96px -160px
-
-.ui-icon-eject
- background-position: -112px -160px
-
-.ui-icon-volume-off
- background-position: -128px -160px
-
-.ui-icon-volume-on
- background-position: -144px -160px
-
-.ui-icon-power
- background-position: 0 -176px
-
-.ui-icon-signal-diag
- background-position: -16px -176px
-
-.ui-icon-signal
- background-position: -32px -176px
-
-.ui-icon-battery-0
- background-position: -48px -176px
-
-.ui-icon-battery-1
- background-position: -64px -176px
-
-.ui-icon-battery-2
- background-position: -80px -176px
-
-.ui-icon-battery-3
- background-position: -96px -176px
-
-.ui-icon-circle-plus
- background-position: 0 -192px
-
-.ui-icon-circle-minus
- background-position: -16px -192px
-
-.ui-icon-circle-close
- background-position: -32px -192px
-
-.ui-icon-circle-triangle-e
- background-position: -48px -192px
-
-.ui-icon-circle-triangle-s
- background-position: -64px -192px
-
-.ui-icon-circle-triangle-w
- background-position: -80px -192px
-
-.ui-icon-circle-triangle-n
- background-position: -96px -192px
-
-.ui-icon-circle-arrow-e
- background-position: -112px -192px
-
-.ui-icon-circle-arrow-s
- background-position: -128px -192px
-
-.ui-icon-circle-arrow-w
- background-position: -144px -192px
-
-.ui-icon-circle-arrow-n
- background-position: -160px -192px
-
-.ui-icon-circle-zoomin
- background-position: -176px -192px
-
-.ui-icon-circle-zoomout
- background-position: -192px -192px
-
-.ui-icon-circle-check
- background-position: -208px -192px
-
-.ui-icon-circlesmall-plus
- background-position: 0 -208px
-
-.ui-icon-circlesmall-minus
- background-position: -16px -208px
-
-.ui-icon-circlesmall-close
- background-position: -32px -208px
-
-.ui-icon-squaresmall-plus
- background-position: -48px -208px
-
-.ui-icon-squaresmall-minus
- background-position: -64px -208px
-
-.ui-icon-squaresmall-close
- background-position: -80px -208px
-
-.ui-icon-grip-dotted-vertical
- background-position: 0 -224px
-
-.ui-icon-grip-dotted-horizontal
- background-position: -16px -224px
-
-.ui-icon-grip-solid-vertical
- background-position: -32px -224px
-
-.ui-icon-grip-solid-horizontal
- background-position: -48px -224px
-
-.ui-icon-gripsmall-diagonal-se
- background-position: -64px -224px
-
-.ui-icon-grip-diagonal-se
- background-position: -80px -224px
-
-/* Misc visuals
- *----------------------------------
-
-/* Corner radius
-
-.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl
- -moz-border-radius-topleft: 4px
- -webkit-border-top-left-radius: 4px
- -khtml-border-top-left-radius: 4px
- border-top-left-radius: 4px
-
-.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr
- -moz-border-radius-topright: 4px
- -webkit-border-top-right-radius: 4px
- -khtml-border-top-right-radius: 4px
- border-top-right-radius: 4px
-
-.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl
- -moz-border-radius-bottomleft: 4px
- -webkit-border-bottom-left-radius: 4px
- -khtml-border-bottom-left-radius: 4px
- border-bottom-left-radius: 4px
-
-.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br
- -moz-border-radius-bottomright: 4px
- -webkit-border-bottom-right-radius: 4px
- -khtml-border-bottom-right-radius: 4px
- border-bottom-right-radius: 4px
-
-/* Overlays
-
-.ui-widget-overlay
- background: #666666 image-url("cmtool/ui/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat
- opacity: .50
- filter: Alpha(Opacity = 50)
-
-.ui-widget-shadow
- margin: -5px 0 0 -5px
- padding: 5px
- background: black image-url("cmtool/ui/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x
- opacity: .20
- filter: Alpha(Opacity = 20)
- -moz-border-radius: 5px
- -khtml-border-radius: 5px
- -webkit-border-radius: 5px
- border-radius: 5px
-
-/*
- * * jQuery UI Resizable 1.8.16
- * *
- * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * * Dual licensed under the MIT or GPL Version 2 licenses.
- * * http://jquery.org/license
- * *
- * * http://docs.jquery.com/UI/Resizable#theming
-
-.ui-resizable
- position: relative
-
-.ui-resizable-handle
- position: absolute
- font-size: 0.1px
- z-index: 99999
- display: block
-
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle
- display: none
-
-.ui-resizable-n
- cursor: n-resize
- height: 7px
- width: 100%
- top: -5px
- left: 0
-
-.ui-resizable-s
- cursor: s-resize
- height: 7px
- width: 100%
- bottom: -5px
- left: 0
-
-.ui-resizable-e
- cursor: e-resize
- width: 7px
- right: -5px
- top: 0
- height: 100%
-
-.ui-resizable-w
- cursor: w-resize
- width: 7px
- left: -5px
- top: 0
- height: 100%
-
-.ui-resizable-se
- cursor: se-resize
- width: 12px
- height: 12px
- right: 1px
- bottom: 1px
-
-.ui-resizable-sw
- cursor: sw-resize
- width: 9px
- height: 9px
- left: -5px
- bottom: -5px
-
-.ui-resizable-nw
- cursor: nw-resize
- width: 9px
- height: 9px
- left: -5px
- top: -5px
-
-.ui-resizable-ne
- cursor: ne-resize
- width: 9px
- height: 9px
- right: -5px
- top: -5px
-
-/*
- * * jQuery UI Selectable 1.8.16
- * *
- * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * * Dual licensed under the MIT or GPL Version 2 licenses.
- * * http://jquery.org/license
- * *
- * * http://docs.jquery.com/UI/Selectable#theming
-
-.ui-selectable-helper
- position: absolute
- z-index: 100
- border: 1px dotted black
-
-/*
- * jQuery UI Accordion 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
-/* IE/Win - Fix animation bug - #4615
-
-.ui-accordion
- width: 100%
- .ui-accordion-header
- cursor: pointer
- position: relative
- margin-top: 1px
- zoom: 1
- .ui-accordion-li-fix
- display: inline
- .ui-accordion-header-active
- border-bottom: 0 !important
- .ui-accordion-header a
- display: block
- font-size: 1em
- padding: .5em .5em .5em .7em
-
-.ui-accordion-icons .ui-accordion-header a
- padding-left: 2.2em
-
-.ui-accordion
- .ui-accordion-header .ui-icon
- position: absolute
- left: .5em
- top: 50%
- margin-top: -8px
- .ui-accordion-content
- padding: 1em 2.2em
- border-top: 0
- margin-top: -2px
- position: relative
- top: 1px
- margin-bottom: 2px
- overflow: auto
- display: none
- zoom: 1
- .ui-accordion-content-active
- display: block
-
-/*
- * jQuery UI Autocomplete 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
-
-.ui-autocomplete
- position: absolute
- cursor: default
-
-/* workarounds
-
-* html .ui-autocomplete
- width: 1px
-
-/* without this, the menu expands to 100% in IE6
-
-/*
- * jQuery UI Menu 1.8.16
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
-
-.ui-menu
- list-style: none
- padding: 2px
- margin: 0
- display: block
- float: left
- .ui-menu
- margin-top: -3px
- .ui-menu-item
- margin: 0
- padding: 0
- zoom: 1
- float: left
- clear: left
- width: 100%
- a
- text-decoration: none
- display: block
- padding: .2em .4em
- line-height: 1.5
- zoom: 1
- &.ui-state-hover, &.ui-state-active
- font-weight: normal
- margin: -1px
-
-/*
- * jQuery UI Button 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
-
-.ui-button
- display: inline-block
- position: relative
- padding: 0
- margin-right: .1em
- text-decoration: none !important
- cursor: pointer
- text-align: center
- zoom: 1
- overflow: visible
-
-/* the overflow property removes extra width in IE
-
-.ui-button-icon-only
- width: 2.2em
-
-/* to make room for the icon, a width needs to be set here
-
-button.ui-button-icon-only
- width: 2.4em
-
-/* button elements seem to need a little more width
-
-.ui-button-icons-only
- width: 3.4em
-
-button.ui-button-icons-only
- width: 3.7em
-
-/*button text element
-
-.ui-button .ui-button-text
- display: block
- line-height: 1.4
-
-.ui-button-text-only .ui-button-text
- padding: .4em 1em
-
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text
- padding: .4em
- text-indent: -9999999px
-
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text
- padding: .4em 1em .4em 2.1em
-
-.ui-button-text-icon-secondary .ui-button-text
- padding: .4em 2.1em .4em 1em
-
-.ui-button-text-icons .ui-button-text
- padding: .4em 2.1em .4em 1em
- padding-left: 2.1em
- padding-right: 2.1em
-
-/* no icon support for input elements, provide padding by default
-
-input.ui-button
- padding: .4em 1em
-
-/*button icon element(s)
-
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon
- position: absolute
- top: 50%
- margin-top: -8px
-
-.ui-button-icon-only .ui-icon
- left: 50%
- margin-left: -8px
-
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary
- left: .5em
-
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary
- right: .5em
-
-/*button sets
-
-.ui-buttonset
- margin-right: 7px
- .ui-button
- margin-left: 0
- margin-right: -0.3em
-
-/* workarounds
-
-button.ui-button::-moz-focus-inner
- border: 0
- padding: 0
-
-/* reset extra padding in Firefox
-/*
- * jQuery UI Dialog 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
-
-.ui-dialog
- position: absolute
- padding: .2em
- width: 300px
- overflow: hidden
- .ui-dialog-titlebar
- padding: .4em 1em
- position: relative
- .ui-dialog-title
- float: left
- margin: .1em 16px .1em 0
- .ui-dialog-titlebar-close
- position: absolute
- right: .3em
- top: 50%
- width: 19px
- margin: -10px 0 0 0
- padding: 1px
- height: 18px
- span
- display: block
- margin: 1px
- &:hover, &:focus
- padding: 0
- .ui-dialog-content
- position: relative
- border: 0
- padding: .5em 1em
- background: none
- overflow: auto
- zoom: 1
- .ui-dialog-buttonpane
- text-align: left
- border-width: 1px 0 0 0
- background-image: none
- margin: .5em 0 0 0
- padding: .3em 1em .5em .4em
- .ui-dialog-buttonset
- float: right
- button
- margin: .5em .4em .5em 0
- cursor: pointer
- .ui-resizable-se
- width: 14px
- height: 14px
- right: 3px
- bottom: 3px
-
-.ui-draggable .ui-dialog-titlebar
- cursor: move
-
-/*
- * jQuery UI Slider 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
-
-.ui-slider
- position: relative
- text-align: left
- .ui-slider-handle
- position: absolute
- z-index: 2
- width: 1.2em
- height: 1.2em
- cursor: default
- .ui-slider-range
- position: absolute
- z-index: 1
- font-size: .7em
- display: block
- border: 0
- background-position: 0 0
-
-.ui-slider-horizontal
- height: .8em
- .ui-slider-handle
- top: -0.3em
- margin-left: -0.6em
- .ui-slider-range
- top: 0
- height: 100%
- .ui-slider-range-min
- left: 0
- .ui-slider-range-max
- right: 0
-
-.ui-slider-vertical
- width: .8em
- height: 100px
- .ui-slider-handle
- left: -0.3em
- margin-left: 0
- margin-bottom: -0.6em
- .ui-slider-range
- left: 0
- width: 100%
- .ui-slider-range-min
- bottom: 0
- .ui-slider-range-max
- top: 0
-
-/*
- * * jQuery UI Tabs 1.8.16
- * *
- * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * * Dual licensed under the MIT or GPL Version 2 licenses.
- * * http://jquery.org/license
- * *
- * * http://docs.jquery.com/UI/Tabs#theming
-
-.ui-tabs
- position: relative
- padding: .2em
- zoom: 1
- .ui-tabs-nav
- margin: 0
- padding: .2em .2em 0
- li
- list-style: none
- float: left
- position: relative
- top: 1px
- margin: 0 .2em 1px 0
- border-bottom: 0 !important
- padding: 0
- white-space: nowrap
- a
- float: left
- padding: .5em 1em
- text-decoration: none
- &.ui-tabs-selected
- margin-bottom: 0
- padding-bottom: 1px
- a
- cursor: text
- &.ui-state-disabled a, &.ui-state-processing a
- cursor: text
- a
- cursor: pointer
- &.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a
- cursor: pointer
- .ui-tabs-panel
- display: block
- border-width: 0
- padding: 1em 1.4em
- background: none
- .ui-tabs-hide
- display: none !important
-
-/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed")
-
-/* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere...
-
-/*
- * jQuery UI Datepicker 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
-
-.ui-datepicker
- width: 17em
- padding: .2em .2em 0
- display: none
- .ui-datepicker-header
- position: relative
- padding: .2em 0
- .ui-datepicker-prev, .ui-datepicker-next
- position: absolute
- top: 2px
- width: 1.8em
- height: 1.8em
- .ui-datepicker-prev-hover, .ui-datepicker-next-hover
- top: 1px
- .ui-datepicker-prev
- left: 2px
- .ui-datepicker-next
- right: 2px
- .ui-datepicker-prev-hover
- left: 1px
- .ui-datepicker-next-hover
- right: 1px
- .ui-datepicker-prev span, .ui-datepicker-next span
- display: block
- position: absolute
- left: 50%
- margin-left: -8px
- top: 50%
- margin-top: -8px
- .ui-datepicker-title
- margin: 0 2.3em
- line-height: 1.8em
- text-align: center
- select
- font-size: 1em
- margin: 1px 0
- select
- &.ui-datepicker-month-year
- width: 100%
- &.ui-datepicker-month, &.ui-datepicker-year
- width: 49%
- table
- width: 100%
- font-size: .9em
- border-collapse: collapse
- margin: 0 0 .4em
- th
- padding: .7em .3em
- text-align: center
- font-weight: bold
- border: 0
- td
- border: 0
- padding: 1px
- span, a
- display: block
- padding: .2em
- text-align: right
- text-decoration: none
- .ui-datepicker-buttonpane
- background-image: none
- margin: .7em 0 0 0
- padding: 0 .2em
- border-left: 0
- border-right: 0
- border-bottom: 0
- button
- float: right
- margin: .5em .2em .4em
- cursor: pointer
- padding: .2em .6em .3em .6em
- width: auto
- overflow: visible
- &.ui-datepicker-current
- float: left
- &.ui-datepicker-multi
- width: auto
-
-/* with multiple calendars
-
-.ui-datepicker-multi .ui-datepicker-group
- float: left
- table
- width: 95%
- margin: 0 auto .4em
-
-.ui-datepicker-multi-2 .ui-datepicker-group
- width: 50%
-
-.ui-datepicker-multi-3 .ui-datepicker-group
- width: 33.3%
-
-.ui-datepicker-multi-4 .ui-datepicker-group
- width: 25%
-
-.ui-datepicker-multi
- .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-group-middle .ui-datepicker-header
- border-left-width: 0
- .ui-datepicker-buttonpane
- clear: left
-
-.ui-datepicker-row-break
- clear: both
- width: 100%
- font-size: 0em
-
-/* RTL support
-
-.ui-datepicker-rtl
- direction: rtl
- .ui-datepicker-prev
- right: 2px
- left: auto
- .ui-datepicker-next
- left: 2px
- right: auto
- .ui-datepicker-prev:hover
- right: 1px
- left: auto
- .ui-datepicker-next:hover
- left: 1px
- right: auto
- .ui-datepicker-buttonpane
- clear: right
- button
- float: left
- &.ui-datepicker-current
- float: right
- .ui-datepicker-group
- float: right
- .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-group-middle .ui-datepicker-header
- border-right-width: 0
- border-left-width: 1px
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3
-
-.ui-datepicker-cover
- display: none
- /*sorry for IE5
- position: absolute
- /*must have
- z-index: -1
- /*must have
- filter: mask()
- /*must have
- top: -4px
- /*must have
- left: -4px
- /*must have
- width: 200px
- /*must have
- height: 200px
- /*must have
-
-/*
- ** jQuery UI Progressbar 1.8.16
- **
- ** Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- ** Dual licensed under the MIT or GPL Version 2 licenses.
- ** http://jquery.org/license
- **
- ** http://docs.jquery.com/UI/Progressbar#theming
-
-.ui-progressbar
- height: 2em
- text-align: left
- .ui-progressbar-value
- margin: -1px
- height: 100%
diff --git a/app/assets/stylesheets/cmtool/application.css b/app/assets/stylesheets/cmtool/application.css
index a56fc9e..a4d07a3 100644
--- a/app/assets/stylesheets/cmtool/application.css
+++ b/app/assets/stylesheets/cmtool/application.css
@@ -9,5 +9,6 @@
* compiled file, but it's generally better to create a new file per style scope.
*
*= require_self
+ *= require 'bootstrap-devise-rails'
*= require_directory .
*/
diff --git a/app/assets/stylesheets/cmtool/bootstrap_and_overrides.css.less b/app/assets/stylesheets/cmtool/bootstrap_and_overrides.css.less
new file mode 100644
index 0000000..02564dc
--- /dev/null
+++ b/app/assets/stylesheets/cmtool/bootstrap_and_overrides.css.less
@@ -0,0 +1,32 @@
+@import "twitter/bootstrap/bootstrap";
+body { padding-top: 60px; }
+@import "twitter/bootstrap/responsive";
+
+// Set the correct sprite paths
+@iconSpritePath: asset-path("twitter/bootstrap/glyphicons-halflings");
+@iconWhiteSpritePath: asset-path("twitter/bootstrap/glyphicons-halflings-white");
+
+// Set the Font Awesome (Font Awesome is default. You can disable by commenting below lines)
+// Note: If you use asset_path() here, your compiled boostrap_and_overrides.css will not
+// have the proper paths. So for now we use the absolute path.
+@fontAwesomeEotPath: asset-path("fontawesome-webfont.eot");
+@fontAwesomeWoffPath: asset-path("fontawesome-webfont.woff");
+@fontAwesomeTtfPath: asset-path("fontawesome-webfont.ttf");
+@fontAwesomeSvgPath: asset-path("fontawesome-webfont.svg");
+
+// Font Awesome
+@import "fontawesome";
+
+// Glyphicons
+//@import "twitter/bootstrap/sprites.less";
+
+// Your custom LESS stylesheets goes here
+//
+// Since bootstrap was imported above you have access to its mixins which
+// you may use and inherit here
+//
+// If you'd like to override bootstrap's own variables, you can do so here as well
+// See http://twitter.github.com/bootstrap/customize.html#variables for their names and documentation
+//
+// Example:
+// @linkColor: #ff0000;
diff --git a/app/assets/stylesheets/cmtool/form_errors.css.sass b/app/assets/stylesheets/cmtool/form_errors.css.sass
index c3598b8..e9efc6d 100644
--- a/app/assets/stylesheets/cmtool/form_errors.css.sass
+++ b/app/assets/stylesheets/cmtool/form_errors.css.sass
@@ -1,7 +1,5 @@
-@import jquery-ui
#errorExplanation
background-color: #faa
border: 2px solid #800
padding: 8px
- @extend .ui-state-error
diff --git a/app/helpers/cmtool/application_helper.rb b/app/helpers/cmtool/application_helper.rb
index 8820d91..d6391dd 100644
--- a/app/helpers/cmtool/application_helper.rb
+++ b/app/helpers/cmtool/application_helper.rb
@@ -1,9 +1,35 @@
module Cmtool
module ApplicationHelper
+ # Return the title of the application
+ def application_title
+ 'Cmtool'
+ end
+
+
+ # Standard return content when empty listing is found
+ # called with the model as argument
+ # = no_content_given Album
+ def no_content_given(model)
+ t('helpers.no_content_given', models: model.model_name.human_plural)
+ end
+
+ # overwrite i18n l, to handle nil values
+ def l(*args)
+ return '' unless args.first
+ super(*args)
+ end
+
def site_title
'Cmtool'
end
+
+ # Set the page title, allow setting a resource title like:
+ # - title :index, Album
+ # or
+ # - title :show, Album
+ # or normal text behaviour:
+ # - title "Home"
def title(*args)
content_for :title do
if args.first.is_a?(Symbol) && (args[1].respond_to?(:model_name) || args[1].class.respond_to?(:model_name))
diff --git a/app/views/cmtool/pages/index.html.haml b/app/views/cmtool/pages/index.html.haml
index c50efc5..c422414 100644
--- a/app/views/cmtool/pages/index.html.haml
+++ b/app/views/cmtool/pages/index.html.haml
@@ -1,5 +1,5 @@
- title :index, Page
-%table.index-table
+%table.index-table.table.table-striped
%thead
%tr
%th= Page.human_attribute_name(:name)
diff --git a/app/views/layouts/cmtool/application.html.slim b/app/views/layouts/cmtool/application.html.slim
new file mode 100644
index 0000000..7e36496
--- /dev/null
+++ b/app/views/layouts/cmtool/application.html.slim
@@ -0,0 +1,83 @@
+doctype html
+html lang="en"
+ head
+ title= content_for?(:title) ? yield(:title) : application_title
+ meta charset="utf-8"
+ meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"
+ meta name="viewport" content="width=device-width, initial-scale=1.0"
+ link href="/favicon.ico" rel="shortcut icon"
+ = csrf_meta_tags
+ javascript:
+ var tinymce_language = '#{I18n.locale}';
+
+ /! Le HTML5 shim, for IE6-8 support of HTML elements
+ /[if lt IE 9]
+ = javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js"
+ = stylesheet_link_tag "cmtool/application", :media => "all"
+ = javascript_include_tag "cmtool/application"
+ = yield(:head)
+ javascript:
+ $(function(){
+ //Onload
+ #{yield(:onload_javascript)}
+ });
+
+ body
+ .navbar.navbar-fixed-top
+ .navbar-inner
+ .container
+ a.btn.btn-navbar data-target=".nav-collapse" data-toggle="collapse"
+ span.icon-bar
+ span.icon-bar
+ span.icon-bar
+ a.brand href=root_path = application_title
+ .container.nav-collapse
+ - if user_signed_in?
+ ul.nav
+ li[ class=(controller_name == 'pages' ? 'ui-state-active' : 'ui-state-default') ]=link_to Page.model_name.human_plural, cmtool.pages_path
+ li[ class=(controller_name == 'news' ? 'ui-state-active' : 'ui-state-default') ]=link_to Cmtool::News.model_name.human_plural, cmtool.news_index_path
+ li[ class=(controller_name == 'keywords' ? 'ui-state-active' : 'ui-state-default') ]=link_to Cmtool::Keyword.model_name.human_plural, cmtool.keywords_path
+ li[ class=(controller_name == 'faqs' ? 'ui-state-active' : 'ui-state-default') ]=link_to Cmtool::Faq.model_name.human_plural, cmtool.faqs_path
+ li[ class=(controller_name == 'quotes' ? 'ui-state-active' : 'ui-state-default') ]=link_to Cmtool::Quote.model_name.human_plural, cmtool.quotes_path
+ li[ class=(%w[contact_forms demo_requests call_requests newsletter_subscriptions].include?(controller_name) ? ['ui-state-active', 'parent'] : ['ui-state-default', 'parent']) ]
+ span.title= t('cmtool.menu.forms.title')
+ ul.child-menu
+ li[ class=(controller_name == 'contact_forms' ? 'ui-state-active' : 'ui-state-default') ]=link_to Cmtool::ContactForm.model_name.human_plural, cmtool.contact_forms_path
+ li[ class=(controller_name == 'newsletter_subscriptions' ? 'ui-state-active' : 'ui-state-default') ]=link_to Cmtool::NewsletterSubscription.model_name.human_plural, cmtool.newsletter_subscriptions_path
+ li[ class=(controller_name == 'users' ? 'ui-state-active' : 'ui-state-default') ]=link_to User.model_name.human_plural, cmtool.users_path
+ li[ class=(controller_name == 'images' ? 'ui-state-active' : 'ui-state-default') ]=link_to Cmtool::Image.model_name.human_plural, cmtool.images_path
+ li[ class=(controller_name == 'directories' ? 'ui-state-active' : 'ui-state-default') ]=link_to Cmtool::Directory.model_name.human_plural, cmtool.directories_path
+ .btn-group.pull-right
+ a.btn.dropdown-toggle[data-toggle="dropdown" href="#"]
+ i.icon-user
+ = current_user.email
+ span.caret
+ ul.dropdown-menu
+ li.log-out= link_to t('helpers.links.logout'), destroy_user_session_path
+
+ .container
+
+ .content
+ - if flash[:alert].present?
+ .alert.alert-error
+ a.close data-dismiss="alert" ×
+ div= flash[:alert]
+ - if flash[:notice].present?
+ .alert.alert-success
+ a.close data-dismiss="alert" ×
+ div= flash[:notice]
+ .row
+ .span9
+ = content_for?(:content) ? yield(:content) : yield
+ .span3
+ .well.sidebar-nav
+ h3= content_for?(:page_title) ? yield(:page_title) : application_title
+ ul.nav.nav-list
+ li.nav-header Links
+ li= link_to "Home", root_path
+ = yield :sidebar
+
+ footer
+ p © KPN 2012
+ = yield :footer
+ #hidden-html.hide= yield :hidden_html
diff --git a/app/views/layouts/cmtool/devise.html.slim b/app/views/layouts/cmtool/devise.html.slim
new file mode 100644
index 0000000..8a59d72
--- /dev/null
+++ b/app/views/layouts/cmtool/devise.html.slim
@@ -0,0 +1,3 @@
+- content_for :content do
+ .devise= yield
+= render :template => 'layouts/application'
diff --git a/vendor/assets/devise/.sass-cache/7ede1f82605657b07dc1ea1aa5b2ecca40d4b017/devise.css.sassc b/vendor/assets/devise/.sass-cache/7ede1f82605657b07dc1ea1aa5b2ecca40d4b017/devise.css.sassc
new file mode 100644
index 0000000..802127c
Binary files /dev/null and b/vendor/assets/devise/.sass-cache/7ede1f82605657b07dc1ea1aa5b2ecca40d4b017/devise.css.sassc differ
diff --git a/vendor/assets/devise/bootstrap-devise-rails.css.less b/vendor/assets/devise/bootstrap-devise-rails.css.less
new file mode 100644
index 0000000..8e8935b
--- /dev/null
+++ b/vendor/assets/devise/bootstrap-devise-rails.css.less
@@ -0,0 +1,51 @@
+// require 'twitter/bootstrap/bootstrap'
+@import "twitter/bootstrap/variables";
+@import "twitter/bootstrap/mixins";
+@import "twitter/bootstrap/alerts";
+@import "twitter/bootstrap/buttons";
+@import "twitter/bootstrap/forms";
+.devise {
+ br { display:none; }
+ // Copied from forms.less's legend
+ > h2, > h3 {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: @baseLineHeight * 1.5;
+ font-size: @baseFontSize * 1.5;
+ line-height: @baseLineHeight * 2;
+ color: @grayDark;
+ border: 0;
+ border-bottom: 1px solid #eee;
+ }
+ > h2, >h3 {
+ margin-bottom: @baseLineHeight;
+ }
+ form {
+ // Base form styles
+ margin:0;
+ label[for=user_remember_me] { display: inline; }
+ input[type=submit] {
+ .btn-primary;
+ .btn-large;
+ margin:6px 0;
+ }
+ i { display: block; }
+ // Errors
+ #error_explanation {
+ h2 {
+ line-height: @baseLineHeight;
+ font-size: 14px;
+ .alert-error;
+ }
+ ul { margin-bottom: 0; }
+ .alert;
+ .alert-error;
+ }
+ .field_with_errors {
+ .control-group .error;
+ }
+ }
+ a:last-of-type:after { content: ''; }
+ a:after { content: '\0020\007c'; }
+}
diff --git a/vendor/assets/devise/devise.css.sass b/vendor/assets/devise/devise.css.sass
new file mode 100644
index 0000000..620981e
--- /dev/null
+++ b/vendor/assets/devise/devise.css.sass
@@ -0,0 +1,119 @@
+$baseline: 14px
+$gray: #666
+$wellBackground: #f5f5f5
+$baseBorderRadius: 4px
+$grayDark: #333
+$baseLineHeight: 20px
+@mixin transition($transitions...)
+ transition: $transitions
+@mixin box-shadow($shadows...)
+ box-shadow: $shadows
+@mixin border-radius($str)
+ border-radius: $str
+@mixin opacity($str)
+ opacity: $str
+@mixin well
+ min-height: 20px
+ padding: 19px
+ margin-bottom: 20px
+ background-color: $wellBackground
+ border: 1px solid darken($wellBackground, 7%)
+ +border-radius($baseBorderRadius)
+ +box-shadow(inset 0 1px 1px rgba(0,0,0,.05))
+ blockquote
+ border-color: #ddd
+ border-color: rgba(0,0,0,.15)
+@mixin close
+ float: right
+ font-size: 20px
+ font-weight: bold
+ line-height: $baseLineHeight
+ color: black
+ text-shadow: 0 1px 0 rgba(255,255,255,1)
+ +opacity(.20)
+ &:hover
+ color: black
+ text-decoration: none
+ cursor: pointer
+ +opacity(.40)
+.devise
+ form
+ // This is all copy/pasted. I can't get element-based rulesets to work
+ input[type=email]
+ display: inline-block
+ width: 210px
+ margin: 0
+ padding: 4px
+ font-size: 13px
+ line-height: $baseline
+ height: $baseline
+ color: $gray
+ border: 1px solid #ccc
+ +border-radius(3px)
+
+ // Focus states
+ input[type=email]
+ +transition(border linear .2s, box-shadow linear .2s)
+ +box-shadow(inset 0 1px 3px rgba(0,0,0,.1))
+ &:focus
+ outline: none
+ border-color: rgba(82,168,236,.8)
+ +box-shadow(inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6))
+ margin-top: 20px
+ //.columns(7)
+ //.offset(4)
+ //.well
+ +well
+ h2
+ margin-left: 150px
+ margin-bottom: 15px
+ font-size: 20px
+ font-weight: normal
+ color: $grayDark
+ form
+ div
+ margin-bottom: baseline
+ a
+ margin: 0
+ &:after
+ content: '\0000a0'
+ &:before
+ content: none
+ br, i
+ display: none
+ input
+ margin-left: 20px
+ //* Oh, dear... *
+ label[for=user_remember_me]
+ padding: 0
+ position: relative
+ left: 130px
+ input[type=submit]
+ margin-left: 150px
+ //+btn
+ //+primary
+ a, h3, p
+ margin-left: 150px
+ p
+ a
+ margin: 0
+ &:before
+ content: none
+ a:before, p:before
+ content: '\002022\0000a0'
+ #error_explanation
+ //.alert-message.error
+ //.block-message
+ margin-left: 150px
+
+ text-shadow: none
+ h2
+ font-size: 13px
+ line-height: 18px
+ font-weight: bold
+ margin: 0 0 6px 0
+ h2, li
+ color: white
+ a
+ +close
+ //.alert-message.close
diff --git a/vendor/assets/devise/devise.js.coffee b/vendor/assets/devise/devise.js.coffee
new file mode 100644
index 0000000..d571a04
--- /dev/null
+++ b/vendor/assets/devise/devise.js.coffee
@@ -0,0 +1,14 @@
+$ ->
+ $('.close').live 'click', (e) ->
+ e.preventDefault()
+ $(this).parent().hide()
+ $('.devise form div i').each ->
+ $this = $(this)
+ text = $this.text()
+ sibling = $this.prev('label')
+ a = $("").text("*").attr('title', text)
+ a.prependTo(sibling)
+ devise_errors = $('.devise #error_explanation')
+ if devise_errors.length
+ close_link = $('').addClass('close').attr('href', '#').text('\u00d7')
+ devise_errors.prepend(close_link)