diff --git a/Gemfile b/Gemfile index 0909b79..c765e30 100644 --- a/Gemfile +++ b/Gemfile @@ -24,6 +24,8 @@ group :assets do end gem 'jquery-rails' +gem 'jquery-ui-rails' +gem "raptor-editor-rails" # To use ActiveModel has_secure_password # gem 'bcrypt-ruby', '~> 3.0.0' diff --git a/Gemfile.lock b/Gemfile.lock index a263397..8e8bbfe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,6 +78,9 @@ GEM jquery-rails (2.1.4) railties (>= 3.0, < 5.0) thor (>= 0.14, < 2.0) + jquery-ui-rails (4.0.1) + jquery-rails + railties (>= 3.1.0) json (1.7.6) kaminari (0.14.1) actionpack (>= 3.0.0) @@ -130,6 +133,8 @@ GEM rdoc (~> 3.4) thor (>= 0.14.6, < 2.0) rake (10.0.3) + raptor-editor-rails (0.2.1) + rails (> 3.1) rdoc (3.12) json (~> 1.4) redcarpet (2.2.2) @@ -182,12 +187,14 @@ DEPENDENCIES gravatar_image_tag haml jquery-rails + jquery-ui-rails kaminari mysql2 nokogiri pg pygments.rb rails (= 3.2.9) + raptor-editor-rails redcarpet rmagick rvm-capistrano diff --git a/app/assets/images/plaquettes/Capture d’écran 2013-03-07 à 11.58.00.png b/app/assets/images/plaquettes/Capture d’écran 2013-03-07 à 11.58.00.png new file mode 100644 index 0000000..0b56e6d Binary files /dev/null and b/app/assets/images/plaquettes/Capture d’écran 2013-03-07 à 11.58.00.png differ diff --git a/app/assets/images/plaquettes/insectes_01.jpg b/app/assets/images/plaquettes/insectes_01.jpg new file mode 100644 index 0000000..efb9f7d Binary files /dev/null and b/app/assets/images/plaquettes/insectes_01.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_1/1.jpg b/app/assets/images/plaquettes/insectes_jeu_1/1.jpg new file mode 100755 index 0000000..f3ba711 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_1/1.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_1/2.jpg b/app/assets/images/plaquettes/insectes_jeu_1/2.jpg new file mode 100755 index 0000000..5b9eecc Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_1/2.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_1/3.jpg b/app/assets/images/plaquettes/insectes_jeu_1/3.jpg new file mode 100755 index 0000000..282ff76 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_1/3.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_1/4.jpg b/app/assets/images/plaquettes/insectes_jeu_1/4.jpg new file mode 100755 index 0000000..cb5f228 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_1/4.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_1/5.jpg b/app/assets/images/plaquettes/insectes_jeu_1/5.jpg new file mode 100755 index 0000000..3c5b35d Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_1/5.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_1/6.jpg b/app/assets/images/plaquettes/insectes_jeu_1/6.jpg new file mode 100755 index 0000000..cb5f228 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_1/6.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_1/7.jpg b/app/assets/images/plaquettes/insectes_jeu_1/7.jpg new file mode 100755 index 0000000..3c5b35d Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_1/7.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_1/8.jpg b/app/assets/images/plaquettes/insectes_jeu_1/8.jpg new file mode 100755 index 0000000..282ff76 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_1/8.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_2/1.jpg b/app/assets/images/plaquettes/insectes_jeu_2/1.jpg new file mode 100755 index 0000000..a90a61c Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_2/1.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_2/2.jpg b/app/assets/images/plaquettes/insectes_jeu_2/2.jpg new file mode 100755 index 0000000..9f8ce07 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_2/2.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_2/3.jpg b/app/assets/images/plaquettes/insectes_jeu_2/3.jpg new file mode 100755 index 0000000..b02f94c Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_2/3.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_2/4.jpg b/app/assets/images/plaquettes/insectes_jeu_2/4.jpg new file mode 100755 index 0000000..f9f8a96 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_2/4.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_2/5.jpg b/app/assets/images/plaquettes/insectes_jeu_2/5.jpg new file mode 100755 index 0000000..76d7c89 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_2/5.jpg differ diff --git a/app/assets/images/plaquettes/insectes_jeu_2/6.jpg b/app/assets/images/plaquettes/insectes_jeu_2/6.jpg new file mode 100755 index 0000000..61c5403 Binary files /dev/null and b/app/assets/images/plaquettes/insectes_jeu_2/6.jpg differ diff --git a/app/assets/javascripts/plaquettes.js b/app/assets/javascripts/plaquettes.js new file mode 100644 index 0000000..084949a --- /dev/null +++ b/app/assets/javascripts/plaquettes.js @@ -0,0 +1,135 @@ +//= require jquery +//= require jquery_ujs +//= require jquery-ui + + + + + +$(document).ready(function(){ + + function initialize_jeu_1(){ + var element = $("#insectes_jeu_1") + + var html = element.find(".sortable").html(); + + element.find(".sortable").sortable(); + element.find(".sortable").disableSelection(); + + element.find(".verif").bind("click", function(){ + + var win = true; + + var i = 0; + + element.find("img").each(function(){ + i = i+1; + if(i != $(this).data("order")){ + win = false; + } + + + + }); + if(win == true){ + element.find(".win").show(); + element.find(".loose").hide(); + }else{ + element.find(".win").hide(); + element.find(".loose").show(); + } + }); + + + + element.find(".reset").click(function(){ + element.find(".sortable").html(html); + element.find(".sortable").sortable("refresh"); + element.find(".win").hide(); + element.find(".loose").hide(); + + }); + + } + + + function initialize_jeu_2(){ + var element = $("#insectes_jeu_2") + + var html = element.find(".sortable").html(); + + + element.find(".receptable").sortable({ + connectWith: '.labels,.receptable', + items: '.label', + tolerance:"pointer", + receive: function(event, ui) { + + if ($(this).children().length > 1) { + var child = $(this).children().not(ui.item)[0] + + element.find(".labels").append(child); + + } + } + }); + element.find(".receptable ul").disableSelection(); + + element.find(".labels").sortable({ + connectWith: '.receptable', + tolerance:"pointer", + items: '.label', + receive: function(event, ui){ui.item.attr('style','');} + + + + }); + element.find(".labels").disableSelection(); + + element.find(".verif").bind("click", function(){ + + var win = true; + + var i = 0; + + element.find("img").each(function(){ + i = i+1; + if(i != $(this).data("order")){ + win = false; + } + + + + }); + if(win == true){ + element.find(".win").show(); + element.find(".loose").hide(); + }else{ + element.find(".win").hide(); + element.find(".loose").show(); + } + }); + + + + element.find(".reset").click(function(){ + element.find(".sortable").html(html); + element.find(".sortable").sortable("refresh"); + element.find(".win").hide(); + element.find(".loose").hide(); + + }); + + } + + initialize_jeu_1(); + initialize_jeu_2(); + + + + +}); + + + + diff --git a/app/assets/stylesheets/plaquettes.css.scss b/app/assets/stylesheets/plaquettes.css.scss new file mode 100644 index 0000000..2183d2d --- /dev/null +++ b/app/assets/stylesheets/plaquettes.css.scss @@ -0,0 +1,109 @@ +/* + + *= require_self + + */ + + h3{ + margin-top:6em; + border-bottom:1px dotted #b0cf81; + padding-bottom:0.2em; + + } + #main{ + padding:1em; +max-width:1024px; + margin:auto; + a{ + color: #5890CD; + text-decoration:none; + + &:hover{ + text-decoration:underline; + } + } + table{ + border-collapse:collapse; + td{ + min-width:60px; + + + } + td, th{ + border: 1px solid #c9c9c9; + padding:5px; + text-align:left; + } + } + + } + body{ + font-family: "Lucida Grande", "Verdana"; + + color:#303030; + padding:0px; + margin:0px; + } + + #footer{ + + } + +#insectes_jeu_2{ + .labels{ + min-height:100px; + + .label{ + background:#555555; + display:inline-block; + margin-left:5px; + margin-bottom:5px; + padding:0.5em 1em; + color:white; + border-radius:1.2em; + + + + } + + } + .image{ + float:left; + width:300px; + height:200px; + padding:0em; + padding-bottom:2em !important; + + + img{ + max-width:100%; + max-height:100%; + } + position:relative; + text-align:center; + padding-bottom:1em; + + .receptable{ + border:1px solid black; + + .label{ + text-align:center; + position:absolute; + padding-bottom:0.5em; + bottom:0px; + left:0px; + right:0px; + } + + position:absolute; + top:0px; + bottom:0px; + left:0px; + right:0px; + + } + } + +} + + diff --git a/app/controllers/plaquettes_controller.rb b/app/controllers/plaquettes_controller.rb new file mode 100644 index 0000000..06c9dbf --- /dev/null +++ b/app/controllers/plaquettes_controller.rb @@ -0,0 +1,13 @@ +# -*- encoding : utf-8 -*- + + +class PlaquettesController < ApplicationController + + + def show + + + render :template => "plaquettes/"+params[:slug].to_s + + end +end diff --git a/app/helpers/plaquettes_helper.rb b/app/helpers/plaquettes_helper.rb new file mode 100644 index 0000000..fa7b5c6 --- /dev/null +++ b/app/helpers/plaquettes_helper.rb @@ -0,0 +1,19 @@ +# -*- encoding : utf-8 -*- +module PlaquettesHelper + + def jeux_sortable_img(jeux, nbr, style="width:150px;") + image_tag('plaquettes/'+jeux.to_s+"/"+nbr.to_s+".jpg", :"data-order" => nbr, :style => style) + end + + + def jeux_receptable_element(jeux,nbr, style ="") + + raw("
")+image_tag('plaquettes/'+jeux.to_s+"/"+nbr.to_s+".jpg", :"data-order" => nbr, :style => style)+raw("
") + + end + def jeux_receptable_label(label,nbr, style ="width:200px;") + + raw("
#{label}
") + + end +end diff --git a/app/views/layouts/plaquettes.html.haml b/app/views/layouts/plaquettes.html.haml new file mode 100644 index 0000000..41fa2aa --- /dev/null +++ b/app/views/layouts/plaquettes.html.haml @@ -0,0 +1,16 @@ +!!! +%html + %head + %title Le Pic Vert - Votre avis sur les sorties du Pic Vert + = stylesheet_link_tag "plaquettes", :media => "all" + = javascript_include_tag "plaquettes" + = csrf_meta_tags + + + + %body + + + #main=yield + + diff --git a/app/views/plaquettes/insectes.html.haml b/app/views/plaquettes/insectes.html.haml new file mode 100644 index 0000000..becb896 --- /dev/null +++ b/app/views/plaquettes/insectes.html.haml @@ -0,0 +1,71 @@ +%h1 Le mur à insectes + +%p Fabriqué principalement avec des matériaux naturels, le « mur à insectes » du Château de Longpra abrite un grand nombre de petites bêtes, principalement des INSECTES. + +%p Tout d’abord un insecte dispose de 6 pattes et d’un corps composé de 3 parties (la tête, le thorax et l’abdomen). + +=image_tag("plaquettes/insectes_01.jpg", :style => "display:block; margin:auto;") + + +%p Dans la nature, certains insectes ne trouvent plus de quoi s’abriter ou pondre leurs œufs (bois mort, tiges creuses…) c’est pourquoi on peut les aider en leur fabriquant des abris. + +%p + Certains de ces insectes peuvent être très utiles à l’Homme, notamment au jardinier. + Par exemple au Château de Longpra il y a de très beaux rosiers, mais qui sont souvent grignoté par les pucerons. + La coccinelle, qui raffole des pucerons, est un très bon allier pour le jardinier. En fabriquant des gites à coccinelles, on peut lutter contre les pucerons sans utiliser de produits chimiques. C’est une petite chaîne alimentaire. + De même, en abritant certaines abeilles, on peut favoriser la pollinisation. + +%p La plupart des abeilles sauvages (90%) à l’inverse des abeilles domestiques ne vivent pas en groupe. Elles ne fabriquent pas de miel, mai un mélange de nectar et de pollen nécessaire à l’alimentation de leur larve. + +#insectes_jeu_1 + %h2 Jeu 1 + + .response{:style => "height:2em;"} + .win{:style => "display:none;"} + %p Bravo ! Tu as gagné, tu peux tirer les cheveux à l'animatrice ! + .loose{:style => "display:none;"} + %p Perdu, tu dois donner 10€ à l'animatrice, c'est la vie ! + %button.verif Vérifier + %button.reset Remettre à zero + .sortable{:style => "height:200px;"} + + =jeux_sortable_img("insectes_jeu_1", 4) + =jeux_sortable_img("insectes_jeu_1", 3) + + =jeux_sortable_img("insectes_jeu_1", 2) + =jeux_sortable_img("insectes_jeu_1", 5) + =jeux_sortable_img("insectes_jeu_1", 1) + + + +#insectes_jeu_2 + + %h2 Jeu 2 + .labels + =jeux_receptable_label("Guêpe", 1) + =jeux_receptable_label("Ornithorynque bleu", 2) + =jeux_receptable_label("Moucheron funanbule", 3) + =jeux_receptable_label("Sarkoglyphte à tête bruni", 4) + =jeux_receptable_label("Fourmillier brun", 5) + =jeux_receptable_label("Pitbull musqué", 6) + + %p{:style => "clear:both;"} + %div.images + =jeux_receptable_element("insectes_jeu_2", 1) + =jeux_receptable_element("insectes_jeu_2", 2) + =jeux_receptable_element("insectes_jeu_2", 3) + =jeux_receptable_element("insectes_jeu_2", 4) + + =jeux_receptable_element("insectes_jeu_2", 5) + =jeux_receptable_element("insectes_jeu_2", 6) + + + + + +%p{:style => "clear:both;"} +%br +%br +%br +%br +%br \ No newline at end of file diff --git a/config/environments/production.rb b/config/environments/production.rb index 9b3481e..ddadd4c 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -49,7 +49,7 @@ Survey::Application.configure do # config.action_controller.asset_host = "http://assets.example.com" # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) - config.assets.precompile += %w( admin.js admin.css forum.css forum.js ) + config.assets.precompile += %w( admin.js admin.css forum.css forum.js plaquettes.css plaquettes.js ) # Disable delivery errors, bad email addresses will be ignored # config.action_mailer.raise_delivery_errors = false diff --git a/config/routes.rb b/config/routes.rb index 5cfb7ad..12b124c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,7 @@ # -*- encoding : utf-8 -*- Survey::Application.routes.draw do + match 'plaquettes/:slug.:f' => 'plaquettes#show', :as => :plaquette, :f => "html" get "forum_user/index" @@ -36,8 +37,14 @@ Survey::Application.routes.draw do resources :topics - - resources :newsletters + resources :newsletters do + member do + get "select_recipients" + post "select_recipients" + post "send_test" + post "send_newsletter" + end + end resources :newsgroups