[PATCH conductor] Adding required fields indicator for user form

Jozef Zigmund jzigmund at redhat.com
Thu Dec 1 10:23:56 UTC 2011


On Thursday 24 November 2011 15:52:00 ifarkas at redhat.com wrote:
> From: Imre Farkas <ifarkas at redhat.com>
> 
> ---
>  src/app/helpers/application_helper.rb |   18 ++++++++++++++++++
>  src/app/views/users/_form.html.haml   |    8 ++++----
>  src/app/views/users/edit.html.haml    |    2 +-
>  src/app/views/users/new.html.haml     |    2 +-
>  4 files changed, 24 insertions(+), 6 deletions(-)
> 
> diff --git a/src/app/helpers/application_helper.rb
> b/src/app/helpers/application_helper.rb index cbb7a43..2c6aa05 100644
> --- a/src/app/helpers/application_helper.rb
> +++ b/src/app/helpers/application_helper.rb
> @@ -161,4 +161,22 @@ module ApplicationHelper
>    end
> 
>    module_function :count_uptime
> +
> +  class FormBuilderWithRequiredFields < ActionView::Helpers::FormBuilder
> +
> +    def label(method, text = nil, options = {}, &block)
> +      text << ' *' if required?(object, method, options)
> +      super(method, text, options, &block)
> +    end
> +
> +    private
> +
> +    def required?(object, attribute, options)
> +      return options[:required] if options.has_key?(:required)
> +      object.class.validators_on(attribute).map(&:class).include?
> ActiveModel::Validations::PresenceValidator +    end
> +
> +  end
> +
>  end
> +

pls remove this new line on EOF ^^

> diff --git a/src/app/views/users/_form.html.haml
> b/src/app/views/users/_form.html.haml index 665a35c..e3b8945 100644
> --- a/src/app/views/users/_form.html.haml
> +++ b/src/app/views/users/_form.html.haml
> @@ -9,17 +9,17 @@
>      = form.label :last_name, t(:last_name)
>      = form.text_field :last_name, :class =>"check_change"
>    %p
> -    = form.label :email, t(:email)
> +    = form.label :email, t(:email), :required => true
>      = form.text_field :email, :class =>"check_change"
>  %fieldset
>    %p
> -    = form.label :login, t(:choose_name)
> +    = form.label :login, t(:choose_name), :required => true
>      = form.text_field :login, :class => "em check_change"
>    %p
> -    = form.label :password, form.object.new_record? ? t(:choose_password) :
> t(:change_password) +    = form.label :password, form.object.new_record? ?
> t(:choose_password) : t(:change_password), :required =>
> form.object.new_record? = form.password_field :password
>    %p
> -    = form.label :password_confirmation, t(:confirm_password)
> +    = form.label :password_confirmation, t(:confirm_password), :required =>
> form.object.new_record? = form.password_field :password_confirmation
> 
>  -if check_privilege(Privilege::MODIFY, User)
> diff --git a/src/app/views/users/edit.html.haml
> b/src/app/views/users/edit.html.haml index 70bf0c4..81e42db 100644
> --- a/src/app/views/users/edit.html.haml
> +++ b/src/app/views/users/edit.html.haml
> @@ -21,5 +21,5 @@
>            %dd#email= @user.email
>            %dt=t'users.show.username'
>            %dd#login= @user.login
> -    = form_for @user, :url => user_path(@user), :html => { :method => :put,
> :class => 'generic' } do |f| +    = form_for @user, :url =>
> user_path(@user), :builder =>
> ApplicationHelper::FormBuilderWithRequiredFields, :html => { :method =>
> :put, :class => 'generic' } do |f| = render :partial => "form", :locals =>
> { :form => f, :cancel_path => users_path } diff --git
> a/src/app/views/users/new.html.haml b/src/app/views/users/new.html.haml
> index e6e914d..b612564 100644
> --- a/src/app/views/users/new.html.haml
> +++ b/src/app/views/users/new.html.haml
> @@ -23,7 +23,7 @@
>            %dd#email &nbsp;
>            %dt=t'users.show.username'
>            %dd#login &nbsp;
> -    = form_for @user, :url => users_path, :html => {:class => 'generic'} do
> |f| +    = form_for @user, :url => users_path, :builder =>
> ApplicationHelper::FormBuilderWithRequiredFields, :html => {:class =>
> 'generic'} do |f| -if current_user
>          = render :partial => "form", :locals => { :form => f }
>        -else


One small inline note, it works fine, so ACK.



More information about the aeolus-devel mailing list