From b848e8d346a3382624593c5b236edfd3c7aa7d9c Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 6 Aug 2015 15:53:31 +0200 Subject: [PATCH 01/13] migration adding nickname to user --- db/migrate/20150806135245_add_nickname_to_user.rb | 5 +++++ db/schema.rb | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20150806135245_add_nickname_to_user.rb diff --git a/db/migrate/20150806135245_add_nickname_to_user.rb b/db/migrate/20150806135245_add_nickname_to_user.rb new file mode 100644 index 000000000..06bf046f9 --- /dev/null +++ b/db/migrate/20150806135245_add_nickname_to_user.rb @@ -0,0 +1,5 @@ +class AddNicknameToUser < ActiveRecord::Migration + def change + add_column :users, :nickname, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index f75de4884..70c3b6de1 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150806111435) do +ActiveRecord::Schema.define(version: 20150806135245) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -80,6 +80,7 @@ ActiveRecord::Schema.define(version: 20150806111435) do t.datetime "confirmed_at" t.datetime "confirmation_sent_at" t.string "unconfirmed_email" + t.string "nickname" end add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree From 515d083633d4c34ab2c71ce9457d8535515d83b9 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 6 Aug 2015 16:01:01 +0200 Subject: [PATCH 02/13] use custom layout for devise controllers --- app/controllers/application_controller.rb | 10 ++++++++ app/views/layouts/devise.html.erb | 28 +++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 app/views/layouts/devise.html.erb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ccf812e34..7551f3f1a 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -5,6 +5,7 @@ class ApplicationController < ActionController::Base respond_to :html before_action :set_locale + layout :set_layout # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. @@ -22,8 +23,17 @@ class ApplicationController < ActionController::Base I18n.locale = session[:locale] end + def set_layout + if devise_controller? + "devise" + else + "application" + end + end + def verify_captcha?(resource) return true unless recaptcha_keys? verify_recaptcha(model: resource) end + end diff --git a/app/views/layouts/devise.html.erb b/app/views/layouts/devise.html.erb new file mode 100644 index 000000000..e65fde2e7 --- /dev/null +++ b/app/views/layouts/devise.html.erb @@ -0,0 +1,28 @@ + + + + + + + <%= content_for?(:title) ? yield(:title) : "Participación" %> + <%= stylesheet_link_tag "application" %> + <%= javascript_include_tag "vendor/modernizr" %> + <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> + <%= csrf_meta_tags %> + + + + + + <% if notice %> +

<%= notice %>

+ <% end %> + + <% if alert %> +

<%= alert %>

+ <% end %> + + <%= yield %> + + + \ No newline at end of file From 23a21d14f2874813db8647dd1cad6b400570cf68 Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 6 Aug 2015 16:03:54 +0200 Subject: [PATCH 03/13] Migration for user.use_nickname --- .../20150806140048_add_use_nickname_to_users.rb | 5 +++++ db/schema.rb | 13 +++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20150806140048_add_use_nickname_to_users.rb diff --git a/db/migrate/20150806140048_add_use_nickname_to_users.rb b/db/migrate/20150806140048_add_use_nickname_to_users.rb new file mode 100644 index 000000000..032a791cd --- /dev/null +++ b/db/migrate/20150806140048_add_use_nickname_to_users.rb @@ -0,0 +1,5 @@ +class AddUseNicknameToUsers < ActiveRecord::Migration + def change + add_column :users, :use_nickname, :boolean, null: false, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 70c3b6de1..e5f6f9c0a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150806135245) do +ActiveRecord::Schema.define(version: 20150806140048) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -62,18 +62,18 @@ ActiveRecord::Schema.define(version: 20150806135245) do add_index "tags", ["name"], name: "index_tags_on_name", unique: true, using: :btree create_table "users", force: :cascade do |t| - t.string "email", default: "", null: false - t.string "encrypted_password", default: "", null: false + t.string "email", default: "", null: false + t.string "encrypted_password", default: "", null: false t.string "reset_password_token" t.datetime "reset_password_sent_at" t.datetime "remember_created_at" - t.integer "sign_in_count", default: 0, null: false + t.integer "sign_in_count", default: 0, null: false t.datetime "current_sign_in_at" t.datetime "last_sign_in_at" t.string "current_sign_in_ip" t.string "last_sign_in_ip" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false t.string "first_name" t.string "last_name" t.string "confirmation_token" @@ -81,6 +81,7 @@ ActiveRecord::Schema.define(version: 20150806135245) do t.datetime "confirmation_sent_at" t.string "unconfirmed_email" t.string "nickname" + t.boolean "use_nickname", default: false, null: false end add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree From 72c33330cf2f99d729fc815df2d7ef29a4ea564b Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 6 Aug 2015 16:53:18 +0200 Subject: [PATCH 04/13] Adds nickname-related validations & name to User --- app/models/user.rb | 6 +++++- spec/models/user_spec.rb | 46 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index da1c3ab8d..2c0c2756b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -2,7 +2,11 @@ class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :confirmable, :recoverable, :rememberable, :trackable, :validatable + validates :first_name, presence: true, unless: :use_nickname? + validates :last_name, presence: true, unless: :use_nickname? + validates :nickname, presence: true, if: :use_nickname? + def name - "#{first_name} #{last_name}" + use_nickname? ? nickname : "#{first_name} #{last_name}" end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 80c91c2d4..bad3ac182 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1,4 +1,50 @@ require 'rails_helper' describe User do + subject { build(:user) } + + it "is valid" do + expect(subject).to be_valid + end + + describe 'use_nickname' do + describe 'when true' do + before { subject.use_nickname = true } + + it "activates the validation of nickname" do + subject.nickname = nil + expect(subject).to_not be_valid + + subject.nickname = "dredd" + expect(subject).to be_valid + end + + it "calculates the name using the nickname" do + subject.nickname = "dredd" + expect(subject.name).to eq("dredd") + end + end + + describe 'when false' do + before { subject.use_nickname = false } + + it "activates the validation of first_name and last_name" do + subject.first_name = nil + subject.last_name = nil + expect(subject).to_not be_valid + + subject.first_name = "Joseph" + subject.last_name = "Dredd" + expect(subject).to be_valid + end + + it "calculates the name using first_name and last_name" do + subject.first_name = "Joseph" + subject.last_name = "Dredd" + expect(subject.name).to eq("Joseph Dredd") + end + end + end + + end From b1acbeb39d0997683efbcbc3495f9668aa6457a1 Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 6 Aug 2015 18:31:26 +0200 Subject: [PATCH 05/13] Adds i18n-tasks --- Gemfile | 1 + Gemfile.lock | 18 ++++++- config/i18n-tasks.yml | 106 ++++++++++++++++++++++++++++++++++++++++++ spec/i18n_spec.rb | 17 +++++++ 4 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 config/i18n-tasks.yml create mode 100644 spec/i18n_spec.rb diff --git a/Gemfile b/Gemfile index a0e612360..d96ea4e03 100644 --- a/Gemfile +++ b/Gemfile @@ -51,6 +51,7 @@ group :development, :test do gem 'launchy' gem 'quiet_assets' gem 'letter_opener_web', '~> 1.2.0' + gem 'i18n-tasks' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index e1390d4ab..bc4dd1e27 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,6 +94,10 @@ GEM docile (1.1.5) domain_name (0.5.24) unf (>= 0.0.5, < 1.0.0) + easy_translate (0.5.0) + json + thread + thread_safe erubis (2.7.0) execjs (2.5.2) factory_girl (4.5.0) @@ -106,9 +110,18 @@ GEM sass (>= 3.3.0, < 3.5) globalid (0.3.5) activesupport (>= 4.1.0) + highline (1.7.3) http-cookie (1.0.2) domain_name (~> 0.5) i18n (0.7.0) + i18n-tasks (0.8.6) + activesupport + easy_translate (>= 0.5.0) + erubis + highline + i18n + term-ansicolor + terminal-table (>= 1.5.1) jbuilder (2.3.1) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) @@ -221,7 +234,9 @@ GEM sprockets (>= 2.8, < 4.0) term-ansicolor (1.3.2) tins (~> 1.0) + terminal-table (1.5.2) thor (0.19.1) + thread (0.2.2) thread_safe (0.3.5) tilt (1.4.1) tins (1.5.4) @@ -264,6 +279,7 @@ DEPENDENCIES devise factory_girl_rails foundation-rails + i18n-tasks jbuilder (~> 2.0) jquery-rails launchy @@ -283,4 +299,4 @@ DEPENDENCIES web-console (~> 2.0) BUNDLED WITH - 1.10.5 + 1.10.6 diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml new file mode 100644 index 000000000..f9b28d6a2 --- /dev/null +++ b/config/i18n-tasks.yml @@ -0,0 +1,106 @@ +# i18n-tasks finds and manages missing and unused translations: https://github.com/glebm/i18n-tasks + +# The "main" locale. +base_locale: en +## All available locales are inferred from the data by default. Alternatively, specify them explicitly: +# locales: [es, fr] +## Reporting locale, default: en. Available: en, ru. +# internal_locale: en + +# Read and write translations. +data: + ## Translations are read from the file system. Supported format: YAML, JSON. + ## Provide a custom adapter: + # adapter: I18n::Tasks::Data::FileSystem + + # Locale files or `File.find` patterns where translations are read from: + read: + ## Default: + # - config/locales/%{locale}.yml + ## More files: + # - config/locales/**/*.%{locale}.yml + ## Another gem (replace %#= with %=): + # - "<%#= %x[bundle show vagrant].chomp %>/templates/locales/%{locale}.yml" + - config/locales/%{locale}.yml + - config/locales/devise_views.%{locale}.yml + - config/locales/responders.%{locale}.yml + + # Locale files to write new keys to, based on a list of key pattern => file rules. Matched from top to bottom: + # `i18n-tasks normalize -p` will force move the keys according to these rules + write: + ## For example, write devise and simple form keys to their respective files: + # - ['{devise, simple_form}.*', 'config/locales/\1.%{locale}.yml'] + ## Catch-all default: + # - config/locales/%{locale}.yml + + ## Specify the router (see Readme for details). Valid values: conservative_router, pattern_router, or a custom class. + # router: convervative_router + + yaml: + write: + # do not wrap lines at 80 characters + line_width: -1 + + ## Pretty-print JSON: + # json: + # write: + # indent: ' ' + # space: ' ' + # object_nl: "\n" + # array_nl: "\n" + +# Find translate calls +search: + ## Paths or `File.find` patterns to search in: + # paths: + # - app/ + + ## Root directories for relative keys resolution. + # relative_roots: + # - app/controllers + # - app/helpers + # - app/mailers + # - app/presenters + # - app/views + + ## Files or `File.fnmatch` patterns to exclude from search. Some files are always excluded regardless of this setting: + ## %w(*.jpg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less *.yml *.json) + exclude: + - app/assets/images + - app/assets/fonts + + ## Alternatively, the only files or `File.fnmatch patterns` to search in `paths`: + ## If specified, this settings takes priority over `exclude`, but `exclude` still applies. + # include: ["*.rb", "*.html.slim"] + + ## Default scanner finds t() and I18n.t() calls. + # scanner: I18n::Tasks::Scanners::PatternWithScopeScanner + +## Google Translate +# translation: +# # Get an API key and set billing info at https://code.google.com/apis/console to use Google Translate +# api_key: "AbC-dEf5" + +## Do not consider these keys missing: +# ignore_missing: +# - 'errors.messages.{accepted,blank,invalid,too_short,too_long}' +# - '{devise,simple_form}.*' + +## Consider these keys used: +# ignore_unused: +# - 'activerecord.attributes.*' +# - '{devise,kaminari,will_paginate}.*' +# - 'simple_form.{yes,no}' +# - 'simple_form.{placeholders,hints,labels}.*' +# - 'simple_form.{error_notification,required}.:' + +## Exclude these keys from the `i18n-tasks eq-base' report: +# ignore_eq_base: +# all: +# - common.ok +# fr,es: +# - common.brand + +## Ignore these keys completely: +# ignore: +# - kaminari.* diff --git a/spec/i18n_spec.rb b/spec/i18n_spec.rb new file mode 100644 index 000000000..5237b7240 --- /dev/null +++ b/spec/i18n_spec.rb @@ -0,0 +1,17 @@ +require 'i18n/tasks' + +RSpec.describe 'I18n' do + let(:i18n) { I18n::Tasks::BaseTask.new } + let(:missing_keys) { i18n.missing_keys } + let(:unused_keys) { i18n.unused_keys } + + it 'does not have missing keys' do + expect(missing_keys).to be_empty, + "Missing #{missing_keys.leaves.count} i18n keys, run `i18n-tasks missing' to show them" + end + + it 'does not have unused keys' do + expect(unused_keys).to be_empty, + "#{unused_keys.leaves.count} unused i18n keys, run `i18n-tasks unused' to show them" + end +end From 17fb44c70bb98e4b4ae3edf32f3bf5170342e2ec Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 6 Aug 2015 18:31:44 +0200 Subject: [PATCH 06/13] Moves i18n initialisation to application.rb --- config/application.rb | 5 +++++ config/initializers/i18n.rb | 6 ------ 2 files changed, 5 insertions(+), 6 deletions(-) delete mode 100644 config/initializers/i18n.rb diff --git a/config/application.rb b/config/application.rb index 4055e45b6..cc325bc6c 100644 --- a/config/application.rb +++ b/config/application.rb @@ -20,6 +20,11 @@ module Participacion # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] config.i18n.default_locale = :es + config.i18n.available_locales = [:en, :es] + + # Add the new directories to the locales load path + config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] + config.assets.paths << Rails.root.join("app", "assets", "fonts") # Do not swallow errors in after_commit/after_rollback callbacks. diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb deleted file mode 100644 index 9aa77cd8b..000000000 --- a/config/initializers/i18n.rb +++ /dev/null @@ -1,6 +0,0 @@ -I18n.available_locales = [:en, :es] - -I18n.default_locale = :es - -# Add the new directories to the locales load path -I18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] From 5710a5e1348d49b55929075b9c978a13bd08cb4d Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 6 Aug 2015 18:53:40 +0200 Subject: [PATCH 07/13] Adds missing i18n labels and removes unused ones --- config/locales/devise_views.es.yml | 4 ++-- config/locales/en.yml | 13 +++++++------ config/locales/es.yml | 13 ++++++++----- config/locales/responders.en.yml | 10 +++++----- config/locales/responders.es.yml | 10 +++++----- 5 files changed, 27 insertions(+), 23 deletions(-) diff --git a/config/locales/devise_views.es.yml b/config/locales/devise_views.es.yml index 1fa6fe880..e7adee639 100644 --- a/config/locales/devise_views.es.yml +++ b/config/locales/devise_views.es.yml @@ -55,7 +55,7 @@ es: new: title: "Registrarse" first_name_label: "Nombre" - last_name_label: "Apellido" + last_name_label: "Apellidos" email_label: "Email" password_label: "Contraseña" min_length: "(mínimo %{min} caracteres)" @@ -80,4 +80,4 @@ es: signin_with_provider: "Entrar con %{provider}" new_password: "¿Olvidaste tu contraseña?" new_confirmation: "¿No has recibido instrucciones para confirmar tu cuenta?" - new_unlock: "¿No has recibido instrucciones para desbloquear?" \ No newline at end of file + new_unlock: "¿No has recibido instrucciones para desbloquear?" diff --git a/config/locales/en.yml b/config/locales/en.yml index caf4bdbad..4907f14c0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -20,12 +20,9 @@ en: votes: votes comment: Comment comments: Comments - agree: I agree - disagree: I disagree - leave_comment: Comment form: one_error: error - plural_errors: errors + multiple_errors: errors not_saved: "prohibited this debate from being saved:" debate_title: Debate title title_instructions: "SBe clear and precise with the title, but make it informative" @@ -56,12 +53,16 @@ en: agree: I agree disagree: I disagree supports: Supports - notice_thanks: "Thanks for voting." - notice_already_registered: "Your vote is already registered." account: show: title: "My account" save_changes_submit: "Save changes" + change_credentials_link: "Change my credentials" + first_name_label: "First Name" + last_name_label: "Last Name" + recaptcha: + errors: + verification_failed: "The captcha verification failed" shared: tags_cloud: tags: Tags diff --git a/config/locales/es.yml b/config/locales/es.yml index 98f75bac7..f9f41995e 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -20,11 +20,9 @@ es: votes: votos comment: Comentario comments: Comentarios - agree: Estoy de acuerdo - disagree: No estoy de acuerdo form: one_error: error - plural_errors: errores + multiple_errors: errores not_saved: "impidieron guardar el debate:" debate_title: Título del debate title_instructions: "Sé claro y conciso a la hora de poner un título, pero recuerda que debe explicar bien tu idea, ¡es tu carta de entrada!" @@ -55,12 +53,17 @@ es: agree: Estoy de acuerdo disagree: No estoy de acuerdo supports: Apoyos - notice_thanks: "Gracias por votar." - notice_already_registered: "Tu voto ya ha sido registrado." account: show: title: "Mi cuenta" save_changes_submit: "Guardar cambios" + change_credentials_link: "Cambiar mi contraseña" + first_name_label: "Nombre" + last_name_label: "Apellidos" + recaptcha: + errors: + verification_failed: "La verificación por captcha falló" shared: tags_cloud: tags: Etiquetas + diff --git a/config/locales/responders.en.yml b/config/locales/responders.en.yml index cd0d93fe8..41c13a326 100644 --- a/config/locales/responders.en.yml +++ b/config/locales/responders.en.yml @@ -4,12 +4,12 @@ en: create: notice: '%{resource_name} was successfully created.' # alert: '%{resource_name} could not be created.' - update: - notice: '%{resource_name} was successfully updated.' + # update: + # notice: '%{resource_name} was successfully updated.' # alert: '%{resource_name} could not be updated.' - destroy: - notice: '%{resource_name} was successfully destroyed.' - alert: '%{resource_name} could not be destroyed.' + # destroy: + # notice: '%{resource_name} was successfully destroyed.' + # alert: '%{resource_name} could not be destroyed.' save_changes: notice: "Saved" diff --git a/config/locales/responders.es.yml b/config/locales/responders.es.yml index ad8012f9e..e11fbccbc 100644 --- a/config/locales/responders.es.yml +++ b/config/locales/responders.es.yml @@ -3,10 +3,10 @@ es: actions: create: notice: "%{resource_name} creado correctamente." - update: - notice: "%{resource_name} actualizado correctamente." - destroy: - notice: "%{resource_name} borrado correctamente." - alert: "%{resource_name} no ha podido ser borrado." + # update: + # notice: "%{resource_name} actualizado correctamente." + # destroy: + # notice: "%{resource_name} borrado correctamente." + # alert: "%{resource_name} no ha podido ser borrado." save_changes: notice: "Cambios guardados" From 17a741d838ea4489528aac7a59bad23f9fc623cc Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 6 Aug 2015 18:54:03 +0200 Subject: [PATCH 08/13] Adds nickname support in the registration form --- app/controllers/registrations_controller.rb | 4 ++-- app/views/devise/registrations/new.html.erb | 16 +++++++++++++++- config/locales/devise_views.en.yml | 2 ++ config/locales/devise_views.es.yml | 2 ++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index c0113de42..4991cdf70 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -15,7 +15,7 @@ class RegistrationsController < Devise::RegistrationsController private def sign_up_params - params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation) + params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :use_nickname, :nickname) end -end \ No newline at end of file +end diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb index ebeae271b..c7cd839a2 100644 --- a/app/views/devise/registrations/new.html.erb +++ b/app/views/devise/registrations/new.html.erb @@ -21,6 +21,20 @@ +
+
+ <%= f.check_box :use_nickname %> + <%= t("devise_views.registrations.new.use_nickname_label") %> +
+
+ +
+
+ <%= f.label :nickname, t("devise_views.registrations.new.nickname_label") %> + <%= f.text_field :nickname, placeholder: t("devise_views.registrations.new.nickname_label") %> +
+
+
<%= f.label :email, t("devise_views.registrations.new.email_label") %> @@ -58,4 +72,4 @@
- \ No newline at end of file + diff --git a/config/locales/devise_views.en.yml b/config/locales/devise_views.en.yml index d07d487ad..7675a204e 100644 --- a/config/locales/devise_views.en.yml +++ b/config/locales/devise_views.en.yml @@ -56,6 +56,8 @@ en: title: "Sign up" first_name_label: "First name" last_name_label: "Last name" + nickname_label: "Nickname" + use_nickname_label: "Use nickname" email_label: "Email" password_label: "Password" min_length: "(%{min} characters minimum)" diff --git a/config/locales/devise_views.es.yml b/config/locales/devise_views.es.yml index e7adee639..63e3159e0 100644 --- a/config/locales/devise_views.es.yml +++ b/config/locales/devise_views.es.yml @@ -56,6 +56,8 @@ es: title: "Registrarse" first_name_label: "Nombre" last_name_label: "Apellidos" + nickname_label: "Pseudónimo" + use_nickname_label: "Usar pseudónimo" email_label: "Email" password_label: "Contraseña" min_length: "(mínimo %{min} caracteres)" From c4c764df380b30938587710b1a5e53005613a177 Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 6 Aug 2015 19:19:45 +0200 Subject: [PATCH 09/13] Adds nickname and use_nickname to "my profile" --- app/controllers/account_controller.rb | 2 +- app/views/account/show.html.erb | 9 +++++++++ config/locales/en.yml | 2 ++ config/locales/es.yml | 2 ++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index fa626ece9..494068476 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -17,7 +17,7 @@ class AccountController < ApplicationController end def account_params - params.require(:account).permit(:first_name, :last_name) + params.require(:account).permit(:first_name, :last_name, :nickname, :use_nickname) end end diff --git a/app/views/account/show.html.erb b/app/views/account/show.html.erb index b3d45d967..da568a9b9 100644 --- a/app/views/account/show.html.erb +++ b/app/views/account/show.html.erb @@ -1,11 +1,20 @@

<%= t("account.show.title") %>

<%= form_for @account, as: :account, url: account_path do |f| %> + <%= f.label :first_name, t("account.show.first_name_label") %> <%= f.text_field :first_name %> <%= f.label :last_name, t("account.show.last_name_label") %> <%= f.text_field :last_name %> +
+ <%= f.check_box :use_nickname %> + <%= t("account.show.use_nickname_label") %> +
+ + <%= f.label :nickname, t("account.show.nickname_label") %> + <%= f.text_field :nickname %> + <%= f.submit t("account.show.save_changes_submit"), class: "button radius" %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 4907f14c0..f1496837b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -60,6 +60,8 @@ en: change_credentials_link: "Change my credentials" first_name_label: "First Name" last_name_label: "Last Name" + use_nickname_label: "Use nickname" + nickname_label: "Nickname" recaptcha: errors: verification_failed: "The captcha verification failed" diff --git a/config/locales/es.yml b/config/locales/es.yml index f9f41995e..995d92fb8 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -60,6 +60,8 @@ es: change_credentials_link: "Cambiar mi contraseña" first_name_label: "Nombre" last_name_label: "Apellidos" + use_nickname_label: "Usar pseudónimo" + nickname_label: "Pseudónimo" recaptcha: errors: verification_failed: "La verificación por captcha falló" From f9cb8151ff6b282b87526b40144f2fc1bb693e84 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Thu, 6 Aug 2015 20:53:14 +0200 Subject: [PATCH 10/13] Adds styles for authentication pages --- app/assets/images/auth_bg.jpg | Bin 0 -> 117870 bytes app/assets/images/logo_madrid_white.png | Bin 0 -> 4068 bytes app/assets/stylesheets/debates.scss | 37 +++++++++++- app/views/devise/confirmations/new.html.erb | 34 +++++++---- app/views/devise/passwords/new.html.erb | 44 ++++++-------- app/views/devise/sessions/new.html.erb | 62 +++++++++----------- app/views/layouts/devise.html.erb | 13 +++- 7 files changed, 113 insertions(+), 77 deletions(-) create mode 100644 app/assets/images/auth_bg.jpg create mode 100644 app/assets/images/logo_madrid_white.png diff --git a/app/assets/images/auth_bg.jpg b/app/assets/images/auth_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3dd6271a5fe8b9544d945e2c727b6261dc3fadcb GIT binary patch literal 117870 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/logo_madrid_white.png b/app/assets/images/logo_madrid_white.png new file mode 100644 index 0000000000000000000000000000000000000000..92751473393c100ec43c75690fe6d3bc94bed31d GIT binary patch literal 4068 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 literal 0 HcmV?d00001 diff --git a/app/assets/stylesheets/debates.scss b/app/assets/stylesheets/debates.scss index de42fa1ce..d593314f8 100644 --- a/app/assets/stylesheets/debates.scss +++ b/app/assets/stylesheets/debates.scss @@ -611,14 +611,45 @@ header { // 08.1. Login // - - - - - - - - - - - - +.auth-page { + background: url('auth_bg.jpg'); + margin-top: $line-height; + + @media (min-width: 480px) { + margin-top: $line-height*2; + } + + h1 { + + a { + color: white; + font-family: 'Lato'; + font-size: rem-calc(20); + font-weight: lighter; + line-height: $line-height*4; + padding-left: rem-calc(6); + + span { + font-size: rem-calc(16); + font-weight: lighter; + vertical-align: top; + } + + @media (min-width: 480px) { + font-size: rem-calc(30); + span { + font-size: rem-calc(20); + } + } + } + } +} + .auth { - background: $background; - box-shadow: 0px -4px 5px $background; min-height: $line-height*20; .panel { background: white; - margin-top: $line-height*2; h1 { font-size: rem-calc(30); diff --git a/app/views/devise/confirmations/new.html.erb b/app/views/devise/confirmations/new.html.erb index 065ea4383..8379bfeb4 100644 --- a/app/views/devise/confirmations/new.html.erb +++ b/app/views/devise/confirmations/new.html.erb @@ -1,16 +1,24 @@ -

<%= t("devise_views.confirmations.title") %>

+
+
+
+

<%= t("devise_views.confirmations.title") %>

-<%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %> - <%= devise_error_messages! %> + <%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %> + <%= devise_error_messages! %> -
- <%= f.label :email, t("devise_views.confirmations.email_label") %>
- <%= f.email_field :email, autofocus: true, value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %> +
+
+ <%= f.label :email, t("devise_views.confirmations.email_label") %> + <%= f.email_field :email, autofocus: true, placeholder: t("devise_views.confirmations.email_label"), value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %> +
+ +
+ <%= f.submit(t("devise_views.confirmations.submit"), class: "button radius expand") %> +
+
+ <% end %> + + <%= render "devise/shared/links" %> +
- -
- <%= f.submit(t("devise_views.confirmations.submit"), class: "button radius") %> -
-<% end %> - -<%= render "devise/shared/links" %> +
\ No newline at end of file diff --git a/app/views/devise/passwords/new.html.erb b/app/views/devise/passwords/new.html.erb index 8a70d0362..b09e0435a 100644 --- a/app/views/devise/passwords/new.html.erb +++ b/app/views/devise/passwords/new.html.erb @@ -1,28 +1,22 @@ -
-
-
-
-

<%= t("devise_views.passwords.new.title") %>

+
+
+
+

<%= t("devise_views.passwords.new.title") %>

+ <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %> + <%= devise_error_messages! %> +
+
+ <%= f.label :email, t("devise_views.passwords.new.email_label") %> + <%= f.email_field :email, autofocus: true, placeholder: t("devise_views.passwords.new.email_label") %> +
- <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %> - <%= devise_error_messages! %> +
+ <%= f.submit t("devise_views.passwords.new.send_submit"), class: "button radius expand" %> +
+
+ <% end %> -
-
- <%= f.label :email, t("devise_views.passwords.new.email_label") %> - <%= f.email_field :email, autofocus: true, placeholder: t("devise_views.passwords.new.email_label") %> -
-
- -
-
- <%= f.submit t("devise_views.passwords.new.send_submit"), class: "button radius" %> -
-
- <% end %> - - <%= render "devise/shared/links" %> -
-
-
+ <%= render "devise/shared/links" %> +
+
\ No newline at end of file diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb index fbe91ca68..1ff533073 100644 --- a/app/views/devise/sessions/new.html.erb +++ b/app/views/devise/sessions/new.html.erb @@ -1,42 +1,34 @@ -
-
-
-
-

<%= t("devise_views.sessions.new.title") %>

+
+
+
+

<%= t("devise_views.sessions.new.title") %>

- <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> -
-
- <%= f.label :email, t("devise_views.sessions.new.email_label") %> - <%= f.email_field :email, autofocus: true, placeholder: t("devise_views.sessions.new.email_label") %> -
-
+ <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> +
+
+ <%= f.label :email, t("devise_views.sessions.new.email_label") %> + <%= f.email_field :email, autofocus: true, placeholder: t("devise_views.sessions.new.email_label") %> +
-
-
- <%= f.label :password, t("devise_views.sessions.new.password_label") %> - <%= f.password_field :password, autocomplete: "off", placeholder: t("devise_views.sessions.new.password_label") %> -
-
+
+ <%= f.label :password, t("devise_views.sessions.new.password_label") %> + <%= f.password_field :password, autocomplete: "off", placeholder: t("devise_views.sessions.new.password_label") %> +
- <% if devise_mapping.rememberable? -%> -
-
- <%= f.check_box :remember_me %> - <%= f.label :remember_me, t("devise_views.sessions.new.remember_me") %> -
-
- <% end -%> - -
-
- <%= f.submit(t("devise_views.sessions.new.submit"), class: "button radius expand") %> -
-
- <% end %> - - <%= render "devise/shared/links" %> + <% if devise_mapping.rememberable? -%> +
+ <%= f.check_box :remember_me %> + <%= f.label :remember_me, t("devise_views.sessions.new.remember_me") %>
+ <% end -%> + +
+ <%= f.submit(t("devise_views.sessions.new.submit"), class: "button radius expand") %> +
+ <% end %> + + <%= render "devise/shared/links" %>
+
\ No newline at end of file diff --git a/app/views/layouts/devise.html.erb b/app/views/layouts/devise.html.erb index e65fde2e7..fe73e5553 100644 --- a/app/views/layouts/devise.html.erb +++ b/app/views/layouts/devise.html.erb @@ -12,7 +12,7 @@ - + <% if notice %>

<%= notice %>

@@ -22,6 +22,17 @@

<%= alert %>

<% end %> +
+
+

+ <%= link_to root_path do %> + <%= image_tag('logo_madrid_white.png', class: 'left', size: '96x96') %> + <%= t("layouts.header.open_gov", open: "#{t('layouts.header.open')}").html_safe %> | <%= t("layouts.header.participation") %> + <% end %> +

+
+
+ <%= yield %> From 6e59df2a3b914615d017f04f7911e0eceb5893c2 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 6 Aug 2015 15:50:36 +0200 Subject: [PATCH 11/13] adds link to debate description --- app/views/debates/_debate.html.erb | 2 +- app/views/debates/_featured_debate.html.erb | 2 +- spec/features/debates_spec.rb | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/debates/_debate.html.erb b/app/views/debates/_debate.html.erb index e86136728..f31328ec9 100644 --- a/app/views/debates/_debate.html.erb +++ b/app/views/debates/_debate.html.erb @@ -13,7 +13,7 @@ t("debates.debate.comment"), t("debates.debate.comments")) %>

- <%= debate.description %> + <%= link_to debate.description, debate %>
<%= render "shared/tags", debate: debate %> diff --git a/app/views/debates/_featured_debate.html.erb b/app/views/debates/_featured_debate.html.erb index a90a26657..708053a19 100644 --- a/app/views/debates/_featured_debate.html.erb +++ b/app/views/debates/_featured_debate.html.erb @@ -12,7 +12,7 @@ t("debates.show.comment"), t("debates.show.comments")) %>

- <%= featured_debate.description %> + <%= link_to featured_debate.description, featured_debate %>
<%= render "shared/tags", debate: featured_debate %> diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index 8f46af8ba..f8b96e2ed 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -12,7 +12,7 @@ feature 'Debates' do featured_debates.each do |debate| within('#featured-debates') do expect(page).to have_content debate.title - expect(page).to have_content debate.description + expect(page).to have_css("a[href='#{debate_path(debate)}']", text: debate.description) end end @@ -20,7 +20,7 @@ feature 'Debates' do debates.each do |debate| within('#debates') do expect(page).to have_content debate.title - expect(page).to have_content debate.description + expect(page).to have_css("a[href='#{debate_path(debate)}']", text: debate.description) end end end From 724cffa4ce4e75e573913f2725565973dbb6bc9e Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Thu, 6 Aug 2015 17:59:05 +0200 Subject: [PATCH 12/13] Updates icons fonts --- app/assets/fonts/icons.eot | Bin 3948 -> 4036 bytes app/assets/fonts/icons.svg | 1 + app/assets/fonts/icons.ttf | Bin 3792 -> 3880 bytes app/assets/fonts/icons.woff | Bin 2828 -> 2920 bytes app/assets/stylesheets/icons.scss | 3 +++ 5 files changed, 4 insertions(+) diff --git a/app/assets/fonts/icons.eot b/app/assets/fonts/icons.eot index 456f00160aa062fcaf6138237a1e33ca2140cbfe..0bb2d0d644deedf8be5f2befa4d3c91dccd279b6 100644 GIT binary patch delta 457 zcmYjMJxD@f6utL7(XVH{*HGY)Ss6YTDJ!f%sG%PSLg+^t`r%<_q}HQ?iiXyv$iAR0 zFd76K`dOovil(G3A~zS&A)*!w>^@r>?me7y@BPkqij8*;^PK|VRuX2PDV>j|68-Uz zSIq+`)d0{iJTN!}elP>bMdD3?@wSe@_w)q-P7x1=;+k$NHLntXp&E&3YkIj1BJJmB z&LXj`g~=294}drTQ1!VO*5*y`$pWuM`%Vrw>E@jFT(OmqR(&Af&|a(I6W2C%2*N(i zdkns;#lx2oPXVBYI7aoAwRL>NTk<)jc|Ra^s#G+eo>Tl^U=>IJc+R(P{6_&QIx~Qu zp$8TIiZdAFJwmVOBuy7Q#Eyksl(|nl_`{ojQ-LXAt5vSP%`j;v|rD+YFhvR delta 370 zcmX>i|3;22ho6Dr0^dY7GnT7$TR%>8$W7M0_?Ll!ZwmthgN(b2s~dwg0~?S(1;|(M z57syG{~fb|fq^js$PY`-O)QZ3DO?2PUjbsT^u*$V|Nj}7f$DpJ@*L?om1%}LA~P5m zm>n1xI2UB3CZ@2w_5MFufKj&oAY%nk56~QZmqi-&u{aUftv{^ zz`$_vd21sw&BOo}=KxWY*D&fb@=d + diff --git a/app/assets/fonts/icons.ttf b/app/assets/fonts/icons.ttf index c6e67d6def01ce6afb0a0c7a1bcba44ba2fe8399..f69b18def69502806d382e2072346656bd3b690d 100644 GIT binary patch delta 443 zcmX|+J4ixt6vof_U(@UBx)cayS&G&WnuQhga4>@)lwLFxaWPX$O;XUN8XF?Y|I*N6 zG)OHy)~L0q7Yz+bON-PHQHuq3G-x>I@cTZ_$2qsAeB&A*0O(;I1PJ(i6QjuvdlA5( zBeh}JJLH2tPy$GA#Ag4v!{z^;IRU_F;;CRvP8dtgE5wgfBVjq2D3>V-q!;qVaCCKH za^Lg=Ab0`PpOKI}uXxYBlJ`XAjzmIhvckb?Xt|aIYb2J+s9rEbd`xVME(c{@R=S`7 zE3r8yXA&?4+vN9DI4;LRr{Q)A)Dz=UVmX<@E4-uw4#@XZpQ8u!OU0u(L*Ex@8OZ>5 zMQ8eNGG{uA{b=9=IEzufhrNOYfInb65n~%D@g26y15C-=ggT}uoq2?udJMq=qgcQk z7%8XLz?7C22im#@(cS54!tQFvf_QD$Xtd&%DB3D>;#|~fG&Wo`s&4Ee$wn0oQbjxP hXWa+7`MtiC`nP_CPKrw=^z%*X5cR{wEfsuiMftR6yftew|%`L>YSoh*z1_r(@Kv5ZY7gsk1YX&wTe+rPV;2*4S zWIu>U|@D& zVBlPkk(!vo^49x5Q0@*8n`LCA)+e&)GqD0SivR^wGIC2Q*bg#R0Qo>m7*uldlM{I+ zaUKC0paA5{-Jzz7T(Ca{A*Y9+v8AU-oN^cfjgfP9GCK=HwF OKJM5r5RGtXYa;+GSzjFh diff --git a/app/assets/fonts/icons.woff b/app/assets/fonts/icons.woff index a0a43bada8bf54fc9c7473fb8b84ebafdb2aacd2..32638055d5b021763d4c813d5b639f6da209fdf8 100644 GIT binary patch delta 2764 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

tNR{T3dq@`N;94Bbc37O~{1_Eq;ZT}^IL z?^-1fI(`}_I-PLSe!s>qyJN~TbU##^-N8|xJHMMUwVF1H@-r3|7+02%y;hKpkicSa z_u?)C*7l!S#hr3OCUj)2d66tdDbb4Q5K5XE<;~miZV*bbk?WVv{k1DvX9Ay zOBlKu30*bzFneuv=Yd@sV=QI#JnzJLhC2D!Y&n|`KHS@98r|64+bvx6<1?~vRW(wz z!OU|25!anC`q_GorPlU*hfE4pjweIFU5V37U>_yJ*LH`$oRE$mbr+l@2!*41g}$5c zLTSGd!&F`KQq7b_HLK>(M(4m7JqDFp+q6vDFh~|I_X2WjDQTp4fqv8VF)P>%RpoW~P5uG-oS2}a47y1-^~GE0 z$C708^0EZt%yu^Un9nS3zl8W{n6k2VP%$E129eU*os(R`MBnQrMsk`J6{*Fx|0b!8 zv7el3_agE~5HFwg^iodGwiGR3^q~NrC9@`Z+_>dPk7z2{po%MrqYdGw*hSih!uB{y zHJ!zk6HvI9(lE-dBkZee0&`Egtz_c6G#3F)5ge@_QM$=BR8d*_$~5YOewG&e6pI@l zi#{)0hIeUs3ZG1c9OZC-{U#egIx&$_lCW`g*_qFNfRa%C^$}diKdJm%a@9$u) zpdgy25i5T18O&8?je1q}OO1xwa_B}wPiS-jCNkOfDNnO5bCbi&*A7i4Vi9~^>%C-6<7(p)Z7ZDoU}4^AfeQu8 zjt<=%{kN*PF=JPHH(Otd1e^%5X0AxePsmdi2{SbusASz0G}F%^jEx&FYhE%nyeh?> z6FXqY_oPRHZI)kav-)WyNzJ&pFR-Td$uDEp!OMAKHysnQ(-9s03j?u;f#rjC)>(=sa6jo6MHOQL|UgJF|%PtcmXkciu5Px+WO*+yahR> z9@MnO7iESjDIq)S%x#CZ(;siHmC1 zZJm2qQ~C#d_`{xh;PH4*AaEzvNME37&0~k&CaAirR~;^jwtfS4Syc7;ur?q zgZ(k{W1Pw=sK&a6`ryDI;`=H2An^M!&K~^#9>6+)yV>2%q_F6`TG)&w3?BIJZC`1X zH@$%1atsbQaOSv>smrNO0&oBT``ep;s@`>~fxx|UlNrWe(xot~eO?Ae$AwaA?6hOJ zeqj+t_?LCB(jKDIBY*ox8FWu&Jm9`06P~Xbpo%~FrtZ^Rgpl#je z5&yVp_F5Oe+Nn_3YIa>)Q+ZJqnNgdGj5d2~-eq5sQA(uN6FVErk>-tPLSaa5?N;0K ytQI}*8g;i$-kYU{i$ Date: Thu, 6 Aug 2015 17:59:22 +0200 Subject: [PATCH 13/13] Adds styles for debate new --- app/assets/stylesheets/debates.scss | 140 ++++++++++++++++++++++++-- app/assets/stylesheets/variables.scss | 36 ++++++- app/views/debates/_form.html.erb | 74 ++++++++------ app/views/debates/new.html.erb | 22 +++- config/locales/en.yml | 11 +- config/locales/es.yml | 12 ++- 6 files changed, 242 insertions(+), 53 deletions(-) diff --git a/app/assets/stylesheets/debates.scss b/app/assets/stylesheets/debates.scss index d593314f8..9c0aceb5d 100644 --- a/app/assets/stylesheets/debates.scss +++ b/app/assets/stylesheets/debates.scss @@ -5,13 +5,16 @@ // 03. Header // 04. Footer // 05. Debates -// 05.1. Debates Index -// 05.2. Debates Show +// 05.1. Debates index +// 05.2. Debate show +// 05.3. Debate new // 06. Comments // 07. Tags // 08. Login and Sign Up // 08.1. Login // 08.2. Sign Up +// 09. Forms +// 10. Alerts // // 01. Variables @@ -162,6 +165,12 @@ header { // 05. Debates // - - - - - - - - - - - - - - - - - - - - - - - - - +@mixin back { + color: $text-light; + font-size: rem-calc(13); + line-height: $line-height; +} + @mixin votes { border-top: 1px solid $votes-border; padding: rem-calc(14) rem-calc(12); @@ -244,7 +253,7 @@ header { } } -// 05.1. Debates Index +// 05.1. Debates index // - - - - - - - - - - - - .debate-featured { @@ -414,7 +423,7 @@ header { } } -// 05.2. Debates Show +// 05.2. Debate show // - - - - - - - - - - - - .debate-show { @@ -422,9 +431,7 @@ header { padding: 0 rem-calc(12); .back { - color: $text-light; - font-size: rem-calc(13); - line-height: $line-height; + @include back; } .icon-angle-left { @@ -497,6 +504,61 @@ header { } } +// 05.3. Debate new +// - - - - - - - - - - - - + +.debate-new { + background: white; + padding-top: $line-height; + + .back { + @include back; + } + + h1 { + clear: both; + font-size: rem-calc(36); + font-weight: bold; + line-height: $line-height*2; + margin-bottom: $line-height; + } + + .icon-comment-quotes { + color: $debates; + font-size: rem-calc(60); + line-height: $line-height; + opacity: .5; + } + + h2 { + clear: both; + font-size: rem-calc(20); + font-weight: bold; + line-height: $line-height; + margin: 0; + } + + .recommendations { + list-style-type: none; + margin-left: 0; + margin-top: $line-height; + + li { + font-size: rem-calc(12); + margin: rem-calc(12) 0; + + &:before { + color: $debates; + content: "l "; + font-family: "icons" !important; + } + } + } +} + + + + // 06. Comments // - - - - - - - - - - - - - - - - - - - - - - - - - @@ -658,7 +720,71 @@ header { } } +// 09. Forms +// - - - - - - - - - - - - - - - - - - - - - - - - - + +form { + + label { + font-weight: bold; + line-height: $line-height; + } + + input[type]:not([type=submit]) { + background: $input-bg; + height: $line-height*2; + margin-bottom: rem-calc(16); + } + + .note { + display: block; + font-size: rem-calc(13); + margin-bottom: rem-calc(12); + } + + .ckeditor { + margin-bottom: $line-height; + min-height: $line-height*14; + } + + .checkbox { + display: inline-block; + font-size: rem-calc(14); + line-height: $line-height*2; + margin: 0 0 0 rem-calc(6); + vertical-align: top; + } +} +// 10. Alerts +// - - - - - - - - - - - - - - - - - - - - - - - - - + +.alert-box { + + &.success { + background-color: $success-bg; + border-color: $success-border; + color: $success-color; + } + + &.info { + background-color: $info-bg; + border-color: $info-border; + color: $info-color; + } + + &.warning { + background-color: $warning-bg; + border-color: $warning-border; + color: $warning-color; + } + + &.alert { + background-color: $alert-bg; + border-color: $alert-border; + color: $alert-color; + } +} diff --git a/app/assets/stylesheets/variables.scss b/app/assets/stylesheets/variables.scss index 79de3eaf9..f9607af9c 100644 --- a/app/assets/stylesheets/variables.scss +++ b/app/assets/stylesheets/variables.scss @@ -2,21 +2,23 @@ // // 01. Fonts // 02. Colors +// 03. Forms +// 04. Alerts // // 01. Fonts -// - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - $font-family-sans-serif: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif; $line-height: rem-calc(24); // 02. Colors -// - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - $background: #EDEFF0; $border: #DEE0E3; $brand: #0077B9; - +$check: #46DB91; $debates: #008CCF; $comments-bg: #F1F1F1; @@ -39,7 +41,31 @@ $votes-background: #0081B3; $votes-border: #005b80; $votes-like: #7BD2A8; $votes-like-act: #5D9E7F; -$votes-neutral: #CCCCCC; +$votes-neutral: #CCCCCC; $votes-text: #FFFFFF; $votes-unlike: #EF8585; -$votes-unlike-act: #BD6A6A; \ No newline at end of file +$votes-unlike-act: #BD6A6A; + +// 03. Forms +// - - - - - - - - - - - - - - - - - - - - - - - - - + +$input-bg: #F8F8F8; + +// 04. Alerts +// - - - - - - - - - - - - - - - - - - - - - - - - - + +$success-bg: #DFF0D8; +$success-border: #D6E9C6; +$success-color: #3C763D; + +$info-bg: #D9EDF7; +$info-border: #BCE8F1; +$info-color: #31708F; + +$warning-bg: #FCF8E3; +$warning-border: #FAEBCC; +$warning-color: #8A6D3B; + +$alert-bg: #F2DEDE; +$alert-border: #EBCCD1; +$alert-color: #A94442; diff --git a/app/views/debates/_form.html.erb b/app/views/debates/_form.html.erb index 28a0419a8..c38d2c476 100644 --- a/app/views/debates/_form.html.erb +++ b/app/views/debates/_form.html.erb @@ -1,37 +1,47 @@ <%= form_for(@debate) do |f| %> - <% if @debate.errors.any? %> -

-

<%= pluralize(@debate.errors.count, t("debates.form.one_error"), t("debates.form.multiple_errors")) %> <%= t("debates.form.not_saved") %>:

-
    - <% @debate.errors.full_messages.each do |message| %> -
  • <%= message %>
  • - <% end %> -
-
- <% end %> - -

<%= t("debates.form.debate_title") %>

-

<%= t("debates.form.title_instructions") %>

- <%= f.text_field :title, maxlength: Debate::TITLE_LENGTH %> - -
-

<%= t("debates.form.debate_text") %>

-

<%= t("debates.form.text_instructions") %>

- <%= f.cktext_area :description, ckeditor: { language: I18n.locale } %> -
- <%= f.label :tag_list, t("debates.form.tags_label") %>
- <%= f.text_field :tag_list, value: @debate.tag_list.to_s %> -
- - <% if @debate.new_record? %> - <%= f.check_box :terms_of_service %> - <%= t("debates.form.accept_terms") %> + <% if @debate.errors.any? %> +
+

<%= pluralize(@debate.errors.count, t("debates.form.error"), t("debates.form.errors")) %> <%= t("debates.form.not_saved") %>

+
    + <% @debate.errors.full_messages.each do |message| %> +
  • <%= message %>
  • + <% end %> +
+
<% end %> - <%= render 'shared/captcha', resource: @debate %> +
+
+ <%= f.label :title, t("debates.form.debate_title") %> + <%= t("debates.form.title_instructions") %> + <%= f.text_field :title, maxlength: Debate::TITLE_LENGTH %> +
-
- <%= f.submit(class: "button radius") %> +
+ <%= f.label :description, t("debates.form.debate_text") %> + <%= t("debates.form.text_instructions") %> + <%= f.cktext_area :description, ckeditor: { language: I18n.locale } %> +
+ +
+ <%= f.label :tag_list, t("debates.form.tags_label") %> + <%= t("debates.form.tags_instructions") %> + <%= f.text_field :tag_list, value: @debate.tag_list.to_s %> +
+ +
+ <% if @debate.new_record? %> + <%= f.check_box :terms_of_service %> + <%= t("debates.form.accept_terms") %> + <% end %> +
+ +
+ <%= render 'shared/captcha', resource: @debate %> +
+ +
+ <%= f.submit(class: "button radius") %> +
-
-<% end %> +<% end %> \ No newline at end of file diff --git a/app/views/debates/new.html.erb b/app/views/debates/new.html.erb index 55ae3876f..c341d178d 100644 --- a/app/views/debates/new.html.erb +++ b/app/views/debates/new.html.erb @@ -1,5 +1,21 @@ -

<%= t("debates.new.publish_new") %>

+
-<%= render "form" %> +
+ <%= link_to debates_path, class: "left back" do %> + + <%= t("debates.new.back_link") %> + <% end %> +

<%= t("debates.new.publish_new") %>

+ <%= render "form" %> +
-<%= link_to t("debates.new.back_link"), debates_path %> +
+ +

<%= t("debates.new.recommendations_title") %>

+
    +
  • <%= t("debates.new.recommendation_one") %>
  • +
  • <%= t("debates.new.recommendation_two") %>
  • +
  • <%= t("debates.new.recommendation_three") %>
  • +
+
+
\ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index caf4bdbad..2a8562a6e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -24,14 +24,15 @@ en: disagree: I disagree leave_comment: Comment form: - one_error: error - plural_errors: errors + error: error + errors: errors not_saved: "prohibited this debate from being saved:" debate_title: Debate title title_instructions: "SBe clear and precise with the title, but make it informative" debate_text: Ellaborate your opinion text_instructions: "Explain your opinion, go into details, tell us what's the purpose of your idea" - tags_label: "Topics (comma separated)" + tags_label: Topics + tags_instructions: Comma separated accept_terms: I accept the privacy policy and the legal terms show: back_link: Back @@ -47,6 +48,10 @@ en: new: publish_new: Publish new debate back_link: Back + recommendations_tite: Tips for creating a debate + recommendation_one: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore" + recommendation_two: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore" + recommendation_three: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore" comments_helper: comment_link: Comment comment_button: Publish comment diff --git a/config/locales/es.yml b/config/locales/es.yml index 98f75bac7..d5869b284 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -22,15 +22,17 @@ es: comments: Comentarios agree: Estoy de acuerdo disagree: No estoy de acuerdo + leave_comment: Comentar form: - one_error: error - plural_errors: errores + error: error + errors: errores not_saved: "impidieron guardar el debate:" debate_title: Título del debate title_instructions: "Sé claro y conciso a la hora de poner un título, pero recuerda que debe explicar bien tu idea, ¡es tu carta de entrada!" debate_text: Describe tu opinión text_instructions: "Explica con todo el detalle que puedas y de una manera sencilla la idea y que crees que conseguiríamos con ella" - tags_label: "Temas (separados por comas)" + tags_label: Temas + tags_instructions: Separados por comas accept_terms: Acepto la política de privacidad y el aviso legal show: back_link: Volver @@ -46,6 +48,10 @@ es: new: publish_new: Publicar debate nuevo back_link: Volver + recommendations_title: Recomendaciones para crear un debate + recommendation_one: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore" + recommendation_two: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore" + recommendation_three: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore" comments_helper: comment_link: Comentar comment_button: Publicar comentario