From e7902523f82d961d3e3230e1e959776bad096a14 Mon Sep 17 00:00:00 2001 From: echarp Date: Fri, 7 Mar 2014 22:21:52 +0100 Subject: [PATCH] =?UTF-8?q?Messages=20affich=C3=A9s=20fa=C3=A7on=20gritter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 2 + app/assets/images/alert.png | Bin 0 -> 47876 bytes app/assets/javascripts/application.js | 1 + app/assets/javascripts/events.js.coffee | 11 ++-- app/assets/javascripts/flash.js.coffee | 6 ++ app/assets/stylesheets/all.css.sass | 3 + app/assets/stylesheets/application.css | 1 + app/assets/stylesheets/scaffolds.css.scss | 69 ---------------------- app/controllers/notes_controller.rb | 2 +- app/views/layouts/_flash.html.haml | 4 +- config/locales/fr.yml | 2 + config/locales/gflash.en.yml | 12 ++++ config/locales/gflash.fr.yml | 12 ++++ 14 files changed, 48 insertions(+), 78 deletions(-) create mode 100644 app/assets/images/alert.png create mode 100644 app/assets/javascripts/flash.js.coffee delete mode 100644 app/assets/stylesheets/scaffolds.css.scss create mode 100644 config/locales/gflash.en.yml create mode 100644 config/locales/gflash.fr.yml diff --git a/Gemfile b/Gemfile index e8157d1d..5f560163 100644 --- a/Gemfile +++ b/Gemfile @@ -43,6 +43,7 @@ end gem 'haml-rails' gem 'compass-rails', '1.1.3' gem 'modernizr-rails' +gem 'gritter' gem 'activeadmin', github: 'gregbell/active_admin' gem 'rails-i18n' gem 'devise-i18n' diff --git a/Gemfile.lock b/Gemfile.lock index cc21fe0d..86e2e0f1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -101,6 +101,7 @@ GEM formtastic (2.3.0.rc2) actionpack (>= 3.0) fssm (0.2.10) + gritter (1.1.0) guard (2.5.1) formatador (>= 0.2.4) listen (~> 2.6) @@ -251,6 +252,7 @@ DEPENDENCIES compass-rails (= 1.1.3) devise-i18n font-awesome-rails + gritter guard-bundler guard-livereload guard-minitest diff --git a/app/assets/images/alert.png b/app/assets/images/alert.png new file mode 100644 index 0000000000000000000000000000000000000000..ecff8f598ffd4c636cbae216c48e8215e2438bae GIT binary patch literal 47876 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 literal 0 HcmV?d00001 diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index e834774a..9e2fadda 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -15,4 +15,5 @@ //= require jquery.turbolinks //= require turbolinks //= require modernizr +//= require gritter //= require_tree . diff --git a/app/assets/javascripts/events.js.coffee b/app/assets/javascripts/events.js.coffee index c3e57ba8..721fba75 100644 --- a/app/assets/javascripts/events.js.coffee +++ b/app/assets/javascripts/events.js.coffee @@ -1,11 +1,8 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ -# $(document).ready -> $('form.region_selector select').change -> this.form.submit() - selector = $('main form.region_selector + h2') - year = selector.html().substr selector.html().search(/\d{4}'+year+'<') + $('main form.region_selector + h2').each -> + selector = $(this) + year = selector.html().substr selector.html().search(/\d{4}'+year+'<') diff --git a/app/assets/javascripts/flash.js.coffee b/app/assets/javascripts/flash.js.coffee new file mode 100644 index 00000000..c5c63c5e --- /dev/null +++ b/app/assets/javascripts/flash.js.coffee @@ -0,0 +1,6 @@ +$(document).ready -> + $('#flash_messages .flash').removeClass('flash').each -> + jQuery.gritter.add + image: "/assets/#{$(this).attr('class')}.png", + title: $(this).children('h2').text(), + text: $(this).children('p').text() diff --git a/app/assets/stylesheets/all.css.sass b/app/assets/stylesheets/all.css.sass index 71c10911..0d9ba95b 100644 --- a/app/assets/stylesheets/all.css.sass +++ b/app/assets/stylesheets/all.css.sass @@ -35,6 +35,9 @@ a:link, a:visited a:hover, a:active, a:focus color: #2E97FF +.js #flash_messages + display: none + header.top position: relative h1 diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 3192ec89..a3ea6c2f 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -8,6 +8,7 @@ * You're free to add application-wide styles to this file and they'll appear at the top of the * compiled file, but it's generally better to create a new file per style scope. * + *= require gritter *= require_self *= require_tree . */ diff --git a/app/assets/stylesheets/scaffolds.css.scss b/app/assets/stylesheets/scaffolds.css.scss deleted file mode 100644 index 6ec6a8ff..00000000 --- a/app/assets/stylesheets/scaffolds.css.scss +++ /dev/null @@ -1,69 +0,0 @@ -body { - background-color: #fff; - color: #333; - font-family: verdana, arial, helvetica, sans-serif; - font-size: 13px; - line-height: 18px; -} - -p, ol, ul, td { - font-family: verdana, arial, helvetica, sans-serif; - font-size: 13px; - line-height: 18px; -} - -pre { - background-color: #eee; - padding: 10px; - font-size: 11px; -} - -a { - color: #000; - &:visited { - color: #666; - } - &:hover { - color: #fff; - background-color: #000; - } -} - -div { - &.field, &.actions { - margin-bottom: 10px; - } -} - -#notice { - color: green; -} - -.field_with_errors { - padding: 2px; - background-color: red; - display: table; -} - -#error_explanation { - width: 450px; - border: 2px solid red; - padding: 7px; - padding-bottom: 0; - margin-bottom: 20px; - background-color: #f0f0f0; - h2 { - text-align: left; - font-weight: bold; - padding: 5px 5px 5px 15px; - font-size: 12px; - margin: -7px; - margin-bottom: 0px; - background-color: #c00; - color: #fff; - } - ul li { - font-size: 12px; - list-style: square; - } -} diff --git a/app/controllers/notes_controller.rb b/app/controllers/notes_controller.rb index 06d18139..e6389e53 100644 --- a/app/controllers/notes_controller.rb +++ b/app/controllers/notes_controller.rb @@ -5,7 +5,7 @@ class NotesController < InheritedResources::Base create! do |format| format.html { @note.author = current_user - create!(notice: 'Dude! Nice job creating that note.') { moderations_url } + create!(notice: t(:added, scope: [:notes, :actions])) { moderations_url } } end end diff --git a/app/views/layouts/_flash.html.haml b/app/views/layouts/_flash.html.haml index b67eec4e..0f9e2786 100644 --- a/app/views/layouts/_flash.html.haml +++ b/app/views/layouts/_flash.html.haml @@ -1,3 +1,5 @@ #flash_messages - flash.each do |key, value| - .flash(class="#{key}")= value + .flash(class="#{key}") + %h2=t key, scope: [:gflash, :titles] + %p= value diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 6245b4e5..a6ea4b91 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -155,6 +155,8 @@ fr: new: back: Modération title: Ajout d'une note de modération + actions: + added: La note a bien été ajoutée, merci! users: sign_in: title: Identification diff --git a/config/locales/gflash.en.yml b/config/locales/gflash.en.yml new file mode 100644 index 00000000..89ec54f0 --- /dev/null +++ b/config/locales/gflash.en.yml @@ -0,0 +1,12 @@ +en: + gflash: + # + # These are the translations for the different titles. + # + titles: + alert: "Your attention" + notice: "Notice" + success: "Success" + warning: "Warning" + error: "Error" + progress: "Progress" diff --git a/config/locales/gflash.fr.yml b/config/locales/gflash.fr.yml new file mode 100644 index 00000000..8ce0c324 --- /dev/null +++ b/config/locales/gflash.fr.yml @@ -0,0 +1,12 @@ +fr: + gflash: + # + # These are the translations for the different titles. + # + titles: + alert: "Votre attention" + notice: "Information" + success: "Succès" + warning: "Attention" + error: "Erreur" + progress: "Progrès"