From bb8efcb61677084782bd422052d4e2241374d095 Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Fri, 23 Nov 2012 18:02:58 +0100 Subject: [PATCH] Leiden top Amsterdam CS moving towards twitter bootstrap --- Gemfile | 18 +- Gemfile.lock | 27 +- app/assets/javascripts/cmtool/application.js | 1 + .../stylesheets/cmtool/_jquery-ui.css.sass | 1433 ----------------- app/assets/stylesheets/cmtool/application.css | 1 + .../cmtool/bootstrap_and_overrides.css.less | 32 + .../stylesheets/cmtool/form_errors.css.sass | 2 - app/helpers/cmtool/application_helper.rb | 26 + app/views/cmtool/pages/index.html.haml | 2 +- .../layouts/cmtool/application.html.slim | 83 + app/views/layouts/cmtool/devise.html.slim | 3 + .../devise.css.sassc | Bin 0 -> 18213 bytes .../devise/bootstrap-devise-rails.css.less | 51 + vendor/assets/devise/devise.css.sass | 119 ++ vendor/assets/devise/devise.js.coffee | 14 + 15 files changed, 368 insertions(+), 1444 deletions(-) delete mode 100644 app/assets/stylesheets/cmtool/_jquery-ui.css.sass create mode 100644 app/assets/stylesheets/cmtool/bootstrap_and_overrides.css.less create mode 100644 app/views/layouts/cmtool/application.html.slim create mode 100644 app/views/layouts/cmtool/devise.html.slim create mode 100644 vendor/assets/devise/.sass-cache/7ede1f82605657b07dc1ea1aa5b2ecca40d4b017/devise.css.sassc create mode 100644 vendor/assets/devise/bootstrap-devise-rails.css.less create mode 100644 vendor/assets/devise/devise.css.sass create mode 100644 vendor/assets/devise/devise.js.coffee 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 0000000000000000000000000000000000000000..802127ca96a60a6a56f87ac014a1b5753b8ab1b0 GIT binary patch literal 18213 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 F{{po@ETaGb literal 0 HcmV?d00001 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)