mostrar los errores de carga
This commit is contained in:
parent
3ff64f365c
commit
0f7ffe0243
13 changed files with 42 additions and 44 deletions
|
@ -63,7 +63,7 @@ module ApplicationHelper
|
||||||
# Opciones por defecto para el campo de un formulario
|
# Opciones por defecto para el campo de un formulario
|
||||||
def field_options(attribute, metadata)
|
def field_options(attribute, metadata)
|
||||||
{
|
{
|
||||||
class: 'form-control',
|
class: "form-control #{invalid(metadata.post, attribute)}",
|
||||||
required: metadata.required,
|
required: metadata.required,
|
||||||
aria: {
|
aria: {
|
||||||
describedby: id_for_help(attribute),
|
describedby: id_for_help(attribute),
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
%small.feedback.form-text.text-muted{ id: id_for_help(*attribute) }
|
%small.feedback.form-text.text-muted{ id: id_for_help(*attribute) }
|
||||||
= post_help_t(*attribute, post: post)
|
= post_help_t(*attribute, post: post)
|
||||||
- if metadata.required
|
.invalid-feedback{ id: id_for_feedback(*attribute) }
|
||||||
.invalid-feedback{ id: id_for_feedback(*attribute) }
|
- if metadata.required
|
||||||
= t('posts.attributes.required.feedback')
|
= t('posts.attributes.required.feedback')
|
||||||
|
- metadata.errors.try :each do |error|
|
||||||
|
= error
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
- unless post.errors.empty?
|
- unless post.errors.empty?
|
||||||
.alert.alert-danger
|
.alert.alert-danger
|
||||||
%ul
|
%h4= t('.errors.title')
|
||||||
- post.errors.each do |key, error|
|
%p= t('.errors.help')
|
||||||
%li
|
|
||||||
%strong
|
|
||||||
= key.capitalize
|
|
||||||
= [error].flatten.join("\n")
|
|
||||||
|
|
||||||
-# TODO: habilitar form_for
|
-# TODO: habilitar form_for
|
||||||
:ruby
|
:ruby
|
||||||
|
@ -24,18 +20,16 @@
|
||||||
= render 'posts/submit', site: site, post: post
|
= render 'posts/submit', site: site, post: post
|
||||||
|
|
||||||
-# Dibuja cada atributo
|
-# Dibuja cada atributo
|
||||||
:ruby
|
- post.attributes.each do |attribute|
|
||||||
post.attributes.each do |attribute|
|
-# El borrador se muestra distinto
|
||||||
# El borrador se muestra distinto
|
- next if attribute == :draft
|
||||||
next if attribute == :draft
|
|
||||||
|
|
||||||
metadata = post.send(attribute)
|
- metadata = post.send(attribute)
|
||||||
type = metadata.type
|
- type = metadata.type
|
||||||
|
|
||||||
haml_io.write render("posts/attributes/#{type}",
|
= render("posts/attributes/#{type}",
|
||||||
post: post, attribute: attribute,
|
post: post, attribute: attribute,
|
||||||
metadata: metadata, site: site)
|
metadata: metadata, site: site)
|
||||||
end
|
|
||||||
|
|
||||||
-# Botones de guardado
|
-# Botones de guardado
|
||||||
= render 'posts/submit', site: site, post: post
|
= render 'posts/submit', site: site, post: post
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.form-group{ class: invalid(post, attribute) }
|
.form-group
|
||||||
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
||||||
|
|
||||||
.taggable{ data: { values: metadata.value.join(','),
|
.taggable{ data: { values: metadata.value.join(','),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.form-check{ class: invalid(post, attribute) }
|
.form-check
|
||||||
= check_box_tag "post[#{attribute}", metadata.value, metadata.value,
|
= check_box_tag "post[#{attribute}", metadata.value, metadata.value,
|
||||||
class: 'form-check-input',
|
class: "form-check-input #{invalid(post, attribute)}",
|
||||||
aria: { describedby: id_for_help(attribute) }
|
aria: { describedby: id_for_help(attribute) }
|
||||||
= label_tag "post_#{attribute}", post_label_t(attribute, post: post),
|
= label_tag "post_#{attribute}", post_label_t(attribute, post: post),
|
||||||
class: 'form-check-label'
|
class: 'form-check-label'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.form-group{ class: invalid(post, attribute) }
|
.form-group
|
||||||
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
||||||
= render 'posts/attribute_feedback',
|
= render 'posts/attribute_feedback',
|
||||||
post: post, attribute: attribute, metadata: metadata
|
post: post, attribute: attribute, metadata: metadata
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.form-group{ class: invalid(post, attribute) }
|
.form-group
|
||||||
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
||||||
= date_field 'post', attribute, value: metadata.value.strftime('%F'),
|
= date_field 'post', attribute, value: metadata.value.strftime('%F'),
|
||||||
**field_options(attribute, metadata)
|
**field_options(attribute, metadata)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.form-group{ class: invalid(post, attribute) }
|
.form-group
|
||||||
- if metadata.value['path'].present?
|
- if metadata.uploaded?
|
||||||
= image_tag url_for(metadata.static_file),
|
= image_tag url_for(metadata.static_file),
|
||||||
alt: metadata.value['description'],
|
alt: metadata.value['description'],
|
||||||
class: 'img-fluid',
|
class: 'img-fluid',
|
||||||
|
@ -13,14 +13,14 @@
|
||||||
.custom-file
|
.custom-file
|
||||||
= file_field(*field_name_for('post', attribute, :path),
|
= file_field(*field_name_for('post', attribute, :path),
|
||||||
**field_options(attribute, metadata),
|
**field_options(attribute, metadata),
|
||||||
class: 'custom-file-input', accept: 'image/*',
|
class: "custom-file-input #{invalid(post, attribute)}",
|
||||||
data: { preview: "#{attribute}-preview" })
|
accept: 'image/*', data: { preview: "#{attribute}-preview" })
|
||||||
= label_tag "post_#{attribute}_path",
|
= label_tag "post_#{attribute}_path",
|
||||||
post_label_t(attribute, :path, post: post), class: 'custom-file-label'
|
post_label_t(attribute, :path, post: post), class: 'custom-file-label'
|
||||||
= render 'posts/attribute_feedback',
|
= render 'posts/attribute_feedback',
|
||||||
post: post, attribute: [attribute, :path], metadata: metadata
|
post: post, attribute: [attribute, :path], metadata: metadata
|
||||||
|
|
||||||
.form-group{ class: invalid(post, attribute) }
|
.form-group
|
||||||
= label_tag "post_#{attribute}_description",
|
= label_tag "post_#{attribute}_description",
|
||||||
post_label_t(attribute, :description, post: post)
|
post_label_t(attribute, :description, post: post)
|
||||||
= text_field(*field_name_for('post', attribute, :description),
|
= text_field(*field_name_for('post', attribute, :description),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.form-group{ class: invalid(post, attribute) }
|
.form-group
|
||||||
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
||||||
= text_field 'post', attribute, value: metadata.value,
|
= text_field 'post', attribute, value: metadata.value,
|
||||||
**field_options(attribute, metadata)
|
**field_options(attribute, metadata)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.form-group{ class: invalid(post, attribute) }
|
.form-group
|
||||||
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
= label_tag "post_#{attribute}", post_label_t(attribute, post: post)
|
||||||
= text_field 'post', attribute, value: metadata.value,
|
= text_field 'post', attribute, value: metadata.value,
|
||||||
**field_options(attribute, metadata)
|
**field_options(attribute, metadata)
|
||||||
|
|
|
@ -21,16 +21,14 @@
|
||||||
-#
|
-#
|
||||||
TODO: Cambiar por un método que nos deje interactuar
|
TODO: Cambiar por un método que nos deje interactuar
|
||||||
directamente con los metadatos
|
directamente con los metadatos
|
||||||
:ruby
|
- @post.attributes.each do |attr|
|
||||||
@post.attributes.each do |attr|
|
- metadata = @post.send(attr)
|
||||||
metadata = @post.send(attr)
|
- next unless metadata.front_matter?
|
||||||
next unless metadata.front_matter?
|
|
||||||
|
|
||||||
haml_io.write render("posts/attribute_ro/#{metadata.type}",
|
= render("posts/attribute_ro/#{metadata.type}",
|
||||||
post: @post, attribute: attr,
|
post: @post, attribute: attr,
|
||||||
metadata: metadata,
|
metadata: metadata,
|
||||||
tags: all_html_tags)
|
tags: all_html_tags)
|
||||||
end
|
|
||||||
|
|
||||||
-# Mostrar todo lo que no va en el front_matter (el contenido)
|
-# Mostrar todo lo que no va en el front_matter (el contenido)
|
||||||
- @post.attributes.each do |attr|
|
- @post.attributes.each do |attr|
|
||||||
|
|
|
@ -245,6 +245,9 @@ en:
|
||||||
title: 'Edit %{site}'
|
title: 'Edit %{site}'
|
||||||
submit: 'Save changes'
|
submit: 'Save changes'
|
||||||
form:
|
form:
|
||||||
|
errors:
|
||||||
|
title: There're errors and we couldn't save your changes :(
|
||||||
|
help: Please, look for the invalid fields to fix them
|
||||||
help:
|
help:
|
||||||
name: "Your site's name. It can only contain numbers and letters."
|
name: "Your site's name. It can only contain numbers and letters."
|
||||||
design: 'Select the design for your site. You can change it later. We add more designs from time to time.'
|
design: 'Select the design for your site. You can change it later. We add more designs from time to time.'
|
||||||
|
@ -309,6 +312,7 @@ en:
|
||||||
save: 'Save'
|
save: 'Save'
|
||||||
save_draft: 'Save as draft'
|
save_draft: 'Save as draft'
|
||||||
invalid_help: 'Some fields need attention! Please search for the fields marked as invalid.'
|
invalid_help: 'Some fields need attention! Please search for the fields marked as invalid.'
|
||||||
|
sending_help: Saving, please wait...
|
||||||
attributes:
|
attributes:
|
||||||
date:
|
date:
|
||||||
label: Date
|
label: Date
|
||||||
|
@ -347,8 +351,6 @@ en:
|
||||||
image:
|
image:
|
||||||
multiple: 'You can select several images by holding the <kbd>Ctrl</kbd> or <kbd>Cmd</kbd> kbd in your kbdboard.'
|
multiple: 'You can select several images by holding the <kbd>Ctrl</kbd> or <kbd>Cmd</kbd> kbd in your kbdboard.'
|
||||||
url: 'The address must start with http:// or https://'
|
url: 'The address must start with http:// or https://'
|
||||||
invalid_help: It looks like the form is incomplete. Check the red-colored fields to complete it.
|
|
||||||
sending_help: Saving, please wait...
|
|
||||||
blank: Nothing
|
blank: Nothing
|
||||||
destroy: Delete
|
destroy: Delete
|
||||||
confirm_destroy: Are you sure?
|
confirm_destroy: Are you sure?
|
||||||
|
|
|
@ -254,6 +254,9 @@ es:
|
||||||
title: 'Editar %{site}'
|
title: 'Editar %{site}'
|
||||||
submit: 'Guardar cambios'
|
submit: 'Guardar cambios'
|
||||||
form:
|
form:
|
||||||
|
errors:
|
||||||
|
title: Hay errores y no pudimos guardar tus cambios :(
|
||||||
|
help: Por favor, busca los campos marcados como inválidos para resolverlos
|
||||||
help:
|
help:
|
||||||
name: 'El nombre de tu sitio que formará parte de la dirección (ejemplo.sutty.nl). Solo puede contener letras minúsculas, números y guiones.'
|
name: 'El nombre de tu sitio que formará parte de la dirección (ejemplo.sutty.nl). Solo puede contener letras minúsculas, números y guiones.'
|
||||||
title: 'El título de tu sitio puede ser lo que quieras.'
|
title: 'El título de tu sitio puede ser lo que quieras.'
|
||||||
|
@ -322,6 +325,7 @@ es:
|
||||||
save: 'Guardar'
|
save: 'Guardar'
|
||||||
save_draft: 'Guardar como borrador'
|
save_draft: 'Guardar como borrador'
|
||||||
invalid_help: '¡Te faltan completar algunos campos! Busca los que estén marcados como inválidos'
|
invalid_help: '¡Te faltan completar algunos campos! Busca los que estén marcados como inválidos'
|
||||||
|
sending_help: Guardando, por favor espera...
|
||||||
attributes:
|
attributes:
|
||||||
date:
|
date:
|
||||||
label: Fecha
|
label: Fecha
|
||||||
|
@ -360,8 +364,6 @@ es:
|
||||||
image:
|
image:
|
||||||
multiple: 'Puedes seleccionar varias imágenes usando la tecla <kbd>Ctrl</kbd> o <kbd>Cmd</kbd> en tu teclado.'
|
multiple: 'Puedes seleccionar varias imágenes usando la tecla <kbd>Ctrl</kbd> o <kbd>Cmd</kbd> en tu teclado.'
|
||||||
url: 'La dirección debe comenzar con http:// o https://'
|
url: 'La dirección debe comenzar con http:// o https://'
|
||||||
invalid_help: Parece que el formulario no está completo. Verifica los campos marcados en rojo para completarlo.
|
|
||||||
sending_help: Guardando, por favor espera...
|
|
||||||
blank: En blanco
|
blank: En blanco
|
||||||
destroy: Borrar
|
destroy: Borrar
|
||||||
confirm_destroy: ¿Estás segurx?
|
confirm_destroy: ¿Estás segurx?
|
||||||
|
|
Loading…
Reference in a new issue