diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/registrations_controller.rb | 2 | ||||
| -rw-r--r-- | app/controllers/stop_area_copies_controller.rb | 2 | ||||
| -rw-r--r-- | app/helpers/routes_helper.rb | 1 | ||||
| -rw-r--r-- | app/helpers/rule_parameter_sets_helper.rb | 23 | ||||
| -rw-r--r-- | app/helpers/users_helper.rb | 8 | ||||
| -rw-r--r-- | app/models/rule_parameter_set.rb | 120 | ||||
| -rw-r--r-- | app/models/stop_area_copy.rb | 16 | ||||
| -rw-r--r-- | app/views/devise/mailer/invitation_instructions.fr.html.erb | 2 | ||||
| -rw-r--r-- | app/views/devise/passwords/edit.html.erb | 4 | ||||
| -rw-r--r-- | app/views/devise/passwords/new.html.erb | 4 | ||||
| -rw-r--r-- | app/views/help/group_of_lines.textile | 1 | ||||
| -rw-r--r-- | app/views/help/index.textile | 2 | ||||
| -rw-r--r-- | app/views/help/routes.textile | 16 | ||||
| -rw-r--r-- | app/views/layouts/_user_links.erb | 2 | ||||
| -rw-r--r-- | app/views/layouts/mailer.html.erb | 2 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/_column_fields.html.erb | 11 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/_form.html.erb | 34 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/show.html.erb | 73 |
18 files changed, 282 insertions, 41 deletions
diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index b02d3217a..f563fbb03 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -6,7 +6,7 @@ def accept_user_creation if !Rails.application.config.accept_user_creation - redirect_to root_path + redirect_to unauthenticated_root_path return false else return true diff --git a/app/controllers/stop_area_copies_controller.rb b/app/controllers/stop_area_copies_controller.rb index 7c1fac8d9..fb429595e 100644 --- a/app/controllers/stop_area_copies_controller.rb +++ b/app/controllers/stop_area_copies_controller.rb @@ -18,7 +18,7 @@ class StopAreaCopiesController < ChouetteController @stop_area_copy = StopAreaCopy.new(params[:stop_area_copy]) @stop_area = parent if @stop_area_copy.save - redirect_to referential_stop_area_path( @referential,parent ), notice: I18n.t("stop_area_copies.new.success") + redirect_to referential_stop_area_path( @referential,@stop_area_copy.copy ), notice: I18n.t("stop_area_copies.new.success") else flash[:error] = I18n.t("stop_area_copies.errors.copy_aborted") + "<br>" + @stop_area_copy.errors.full_messages.join("<br>") render :action => :new diff --git a/app/helpers/routes_helper.rb b/app/helpers/routes_helper.rb index bbb611506..b3d79262e 100644 --- a/app/helpers/routes_helper.rb +++ b/app/helpers/routes_helper.rb @@ -14,4 +14,3 @@ module RoutesHelper end end - diff --git a/app/helpers/rule_parameter_sets_helper.rb b/app/helpers/rule_parameter_sets_helper.rb new file mode 100644 index 000000000..538a5cddd --- /dev/null +++ b/app/helpers/rule_parameter_sets_helper.rb @@ -0,0 +1,23 @@ +module RuleParameterSetsHelper + + def unique( value) + return t("true") if value == "1" + t "false" + end + + def pattern(value) + return t("rule_parameter_sets.labels.free_char") if value == "0" + return t("rule_parameter_sets.labels.num_char") if value == "1" + return t("rule_parameter_sets.labels.alpha_char") if value == "2" + return t("rule_parameter_sets.labels.upper_char") if value == "3" + return t("rule_parameter_sets.labels.lower_char") if value == "4" + end + + def boolean_value(value) + return t("true") if value == "1" + t "false" + end + +end + + diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 0dfc1552f..11fd7af34 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -4,6 +4,14 @@ module UsersHelper image_tag user_image(user), :alt => "", :class => "preview", :width => size, :height => size end +# def user_default_avatar +# return "#{authenticated_root_url}#{image_path('icons/user.png')}" if Rails.application.config.relative_url_root.blank? +# relative_url_root = Rails.application.config.relative_url_root.gsub( /\//, '') +# "#{authenticated_root_url}#{image_path('icons/user.png')}". +# sub( Regexp.new("/#{relative_url_root}/#{relative_url_root}/"), "/#{relative_url_root}/"). +# sub( Regexp.new("/#{relative_url_root}//#{relative_url_root}/"), "/#{relative_url_root}/") +# end + def gravatar_hash(user) Digest::MD5.hexdigest( user.email) end diff --git a/app/models/rule_parameter_set.rb b/app/models/rule_parameter_set.rb index 0c7a98300..01c2e48a6 100644 --- a/app/models/rule_parameter_set.rb +++ b/app/models/rule_parameter_set.rb @@ -16,8 +16,43 @@ class RuleParameterSet < ActiveRecord::Base inter_connection_link_distance_max walk_default_speed_max walk_occasional_traveller_speed_max walk_frequent_traveller_speed_max walk_mobility_restricted_traveller_speed_max inter_access_link_distance_max inter_stop_duration_max facility_stop_area_distance_max - vehicle_journey_number_max vehicle_journey_number_min check_allowed_transport_modes) + check_allowed_transport_modes check_lines_in_groups check_line_routes + check_stop_parent check_connection_link_on_physical) end + + def self.validable_objects + [Chouette::Network,Chouette::Company,Chouette::GroupOfLine, + Chouette::StopArea,Chouette::AccessPoint,Chouette::AccessLink,Chouette::ConnectionLink, + Chouette::TimeTable,Chouette::Line,Chouette::Route, + Chouette::JourneyPattern,Chouette::VehicleJourney] + end + + def self.validable_object_names + ["network","company","group_of_line", + "stop_area","access_point","access_link","connection_link", + "time_table","line","route", + "journey_pattern","vehicle_journey"] + end + + def self.validable_columns + {"network" => ['objectid','name','registration_number'], + "company" => ['objectid','name','registration_number'], + "group_of_line" => ['objectid','name','registration_number'], + "stop_area" => ['objectid','name','registration_number','city_name','country_code','zip_code'], + "access_point" => ['objectid','name','city_name','country_code','zip_code'], + "access_link" => ['objectid','name','link_distance','default_duration'], + "connection_link" => ['objectid','name','link_distance','default_duration'], + "time_table" => ['objectid','comment','version'], + "line" => ['objectid','name','registration_number','number','published_name'], + "route" => ['objectid','name','number','published_name'], + "journey_pattern" => ['objectid','name','registration_number','published_name'], + "vehicle_journey" => ['objectid','published_journey_name','published_journey_identifier','number'] } + end + + def self.column_attribute_prefixes + %w( unique pattern min_size max_size ) + end + def self.all_modes Chouette::TransportMode.all.map { |m| m.to_s} end @@ -28,6 +63,14 @@ class RuleParameterSet < ActiveRecord::Base mode_attribute_prefixes.include?( $1) && self.class.all_modes.include?( $2) end + + def self.column_attribute?( method_name ) + pattern = /(\w+)_column_(\w+)_object_(\w+)/ + return false unless method_name.match( pattern) + return false unless validable_object_names.include?($3) + column_attribute_prefixes.include?( $1) && validable_columns[$3].include?( $2) + end + def self.mode_of_mode_attribute( method_name ) method_name.match( /(\w+)_mode_(\w+)/) $2 @@ -37,6 +80,20 @@ class RuleParameterSet < ActiveRecord::Base $1 end + def self.object_of_column_attribute( method_name ) + method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) + $3 + end + def self.column_of_column_attribute( method_name ) + method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) + $2 + end + def self.attribute_of_column_attribute( method_name ) + method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) + $1 + end + + def self.mode_parameter(name) name = name.to_s attr_accessible name @@ -52,6 +109,37 @@ class RuleParameterSet < ActiveRecord::Base ((self.parameters ||= {})["mode_#{mode}"] ||= {})[attribute_name] = prefix end end + + def self.column_parameter(obj,column,prefix) + name = "#{prefix}_column_#{column}_object_#{obj}" + attr_accessible name + define_method(name) do + attribute_name, column, obj = prefix, column, obj + self.parameters and self.parameters[obj] and + self.parameters[obj][column] and self.parameters[obj][column][attribute_name] + end + + define_method("#{name}=") do |key| + attribute_name, column, obj = prefix, column, obj + (((self.parameters ||= {})[obj] ||= {})[column]||= {})[attribute_name] = key + end + + end + + def self.object_parameter(clazz) + name = clazz.table_name.singularize + attr_accessible name + + parameter "check_#{clazz.table_name.singularize}" + validable_columns[name].each do |column| + column_attribute_prefixes.each do |prefix| + column_parameter name,column,prefix + end + + end + + end + def self.parameter(name) name = name.to_s attr_accessible name @@ -77,7 +165,11 @@ class RuleParameterSet < ActiveRecord::Base :inter_access_link_distance_max => 300, :inter_stop_duration_max => 40, :facility_stop_area_distance_max => 300, - :check_allowed_transport_modes => false + :check_allowed_transport_modes => false, + :check_lines_in_groups => false, + :check_line_routes => false, + :check_stop_parent => false, + :check_connection_link_on_physical => false } if mode && self.mode_default_params[ mode.to_sym] base.merge!( self.mode_default_params[ mode.to_sym]) @@ -231,21 +323,41 @@ class RuleParameterSet < ActiveRecord::Base def allowed(mode) return true unless self.check_allowed_transport_modes - puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s + # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s return self.send("allowed_transport_mode_#{mode}") == "1" end + + def selected(object) + # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s + return self.send("check_#{object}") == "1" + end + + def selected_column(object,column) + # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s + return self.send("unique_column_#{column}_object_#{object}") == "1" || + self.send("pattern_column_#{column}_object_#{object}") != "0" || + !self.send("min_size_column_#{column}_object_#{object}").empty? || + !self.send("max_size_column_#{column}_object_#{object}").empty? + end + all_modes.each do |mode| mode_attribute_prefixes.each do |prefix| mode_parameter "#{prefix}_mode_#{mode}".to_sym end end - + general_attributes.each do |attribute| parameter attribute.to_sym unless attribute == "stop_areas_area" || attribute == "check_allowed_transport_modes" validates attribute.to_sym, :numericality => true, :allow_nil => true, :allow_blank => true end end + + + validable_objects.each do |obj| + object_parameter obj + end + end diff --git a/app/models/stop_area_copy.rb b/app/models/stop_area_copy.rb index 796aba567..041d30eb9 100644 --- a/app/models/stop_area_copy.rb +++ b/app/models/stop_area_copy.rb @@ -5,7 +5,7 @@ class StopAreaCopy include ActiveModel::Conversion extend ActiveModel::Naming - attr_accessor :source_id, :hierarchy, :area_type, :source + attr_accessor :source_id, :hierarchy, :area_type, :source, :copy validates_presence_of :source_id, :hierarchy, :area_type @@ -40,17 +40,17 @@ class StopAreaCopy begin if self.valid? self.source ||= Chouette::StopArea.find self.source_id - copy = source.duplicate - copy.name = source.name - copy.area_type = self.area_type.camelcase + self.copy = source.duplicate + self.copy.name = source.name + self.copy.area_type = self.area_type.camelcase Chouette::StopArea.transaction do if self.hierarchy == "child" - copy.parent_id = source.id + self.copy.parent_id = source.id end - copy.save! + self.copy.save! if self.hierarchy == "parent" - source.parent_id = copy.id - source.save! + self.source.parent_id = copy.id + self.source.save! end end true diff --git a/app/views/devise/mailer/invitation_instructions.fr.html.erb b/app/views/devise/mailer/invitation_instructions.fr.html.erb index 7ef4e6c99..c932763f2 100644 --- a/app/views/devise/mailer/invitation_instructions.fr.html.erb +++ b/app/views/devise/mailer/invitation_instructions.fr.html.erb @@ -1,6 +1,6 @@ <p>Bonjour <%= @resource.email %>,</p> -<p>Ce message est une invitation pour accéder à <%= link_to nil, root_url %>, vous pouvez l'accepter en cliquant sur le lien suivant :</p> +<p>Ce message est une invitation pour accéder à <%= link_to nil, unauthenticated_root_url %>, vous pouvez l'accepter en cliquant sur le lien suivant :</p> <p><%= link_to "Accepter l'invitation", accept_invitation_url(@resource, :invitation_token => @resource.invitation_token) %></p> diff --git a/app/views/devise/passwords/edit.html.erb b/app/views/devise/passwords/edit.html.erb index e0cad44a2..0c5ba77cf 100644 --- a/app/views/devise/passwords/edit.html.erb +++ b/app/views/devise/passwords/edit.html.erb @@ -8,8 +8,8 @@ <%= f.input :password, :as => :password %> <%= f.input :password_confirmation, :as => :password %> - <div class="submit"> - <%= link_to t("cancel"), root_path, :class => "btn btn-default" %> + <div class="col-md-offset-2"> + <%= link_to t("cancel"), unauthenticated_root_path, :class => "btn btn-default" %> <%= f.button :submit, :value => t("devise.passwords.edit.commit"), :class => "btn-info" %> </div> <% end %> diff --git a/app/views/devise/passwords/new.html.erb b/app/views/devise/passwords/new.html.erb index 8f5ec0f10..498e24c4c 100644 --- a/app/views/devise/passwords/new.html.erb +++ b/app/views/devise/passwords/new.html.erb @@ -5,8 +5,8 @@ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name)) do |form| %> <%= form.input :email, :as => :email, placeholder: 'user@domain.com' %> - <div class="submit"> - <%= link_to t("cancel"), root_path, :class => "btn btn-default" %> + <div class="col-md-offset-2"> + <%= link_to t("cancel"), unauthenticated_root_path, :class => "btn btn-default" %> <%= form.button :submit, :value => t("devise.passwords.new.commit"), :class => "btn-info" %> </div> <% end %> diff --git a/app/views/help/group_of_lines.textile b/app/views/help/group_of_lines.textile index 9ab7d440a..8fd05c7ea 100644 --- a/app/views/help/group_of_lines.textile +++ b/app/views/help/group_of_lines.textile @@ -46,6 +46,7 @@ h3. Attributs d'un groupe de lignes * Nom : nom du groupe de lignes
* Commentaire : Champs de saisie libre pour identifier l'usage du groupe de lignes.
+* Numéro d'enregistrement : Le numéro d'enregistrement est unique. Aucune règle de nommage ne s'applique sur ce numéro. Celui-ci doit être unique sur l'ensemble des groupes de lignes.
diff --git a/app/views/help/index.textile b/app/views/help/index.textile index 19eeb63e2..b0d2fddcf 100644 --- a/app/views/help/index.textile +++ b/app/views/help/index.textile @@ -28,7 +28,7 @@ h4. Version 2.5.2 * Nouvelles foctionnalités : ** Ajout des particularités de monté/descente aux arrêts d'une séquence -** Ajout de tests sur les données pour l'export +** Ajout de points de contrôle sur les données pour l'export h4. Version 2.5.1 diff --git a/app/views/help/routes.textile b/app/views/help/routes.textile index eb1093340..0396898ae 100644 --- a/app/views/help/routes.textile +++ b/app/views/help/routes.textile @@ -47,6 +47,22 @@ On peut modifier une séquence d'arrêts en cliquant sur le bouton de modificati !2014-10-31_112543.png!
Modification des arrêts d'une séquence
+h3. Contraintes de montée - descente
+
+On peut ajouter des règles de montée ou de descente aux arrêts de la séquence d'arrêt (interdit ou à la demande); ces règles s'appliquent à toutes les courses de la séquence d'arrêt
+
+Les règles sont :
+
+* Non défini (par défaut)
+* Montée autorisée
+* Montée interdite
+* Montée sur réservation
+* Montée sur demande au conducteur
+* Descente autorisée
+* Descente interdite
+* Descente sur réservation
+* Descente sur demande au conducteur
+
h3. Supprimer une séquence d'arrêts
Il est possible de supprimer une séquence d'arrêts depuis la page de la ligne. Chaque élément de la liste des séquences d'arrêts en bas de la page est dotée d'un pictogramme de suppression. Il est à noter que la suppression de la séquence d'arrêts ne supprime par les arrêts qu'elle contient.
diff --git a/app/views/layouts/_user_links.erb b/app/views/layouts/_user_links.erb index 404f52172..bd9196b3f 100644 --- a/app/views/layouts/_user_links.erb +++ b/app/views/layouts/_user_links.erb @@ -1,5 +1,5 @@ <ul class="user"> - <li class="home"><%= link_to t('layouts.home'), root_path %></li> + <li class="home"><%= link_to t('layouts.home'), authenticated_root_path %></li> <% if user_signed_in? %> <li> | </li> diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb index 387221103..ac00bdfea 100644 --- a/app/views/layouts/mailer.html.erb +++ b/app/views/layouts/mailer.html.erb @@ -18,7 +18,7 @@ </div> <div style="color: #333333; text-align:center; font-size: 10px;"> - Envoyé par <%= link_to root_url, "Chouette" %> + Envoyé par <%= link_to "Chouette", unauthenticated_root_url %> </div> </body> </html> diff --git a/app/views/rule_parameter_sets/_column_fields.html.erb b/app/views/rule_parameter_sets/_column_fields.html.erb new file mode 100644 index 000000000..abb2af4a8 --- /dev/null +++ b/app/views/rule_parameter_sets/_column_fields.html.erb @@ -0,0 +1,11 @@ + <td></td> + <td><%= t("activerecord.attributes.#{obj.table_name.singularize}.#{column}") %></td> + <% suffix = "column_#{column}_object_#{obj.table_name.singularize}"%> + <td> <%= f.check_box "unique_#{suffix}".to_sym, :class => "special" %></td> + <% if obj.columns_hash[column].type == :string %> + <td><%= f.select "pattern_#{suffix}".to_sym, options_for_select([[t("rule_parameter_sets.labels.free_char"), "0"], [t("rule_parameter_sets.labels.num_char"), "1"], [t("rule_parameter_sets.labels.alpha_char"), "2"], [t("rule_parameter_sets.labels.upper_char"), "3"], [t("rule_parameter_sets.labels.lower_char"), "4"]]) %></td> + <% else %> + <td><%= t "rule_parameter_sets.labels.num_char" %></td> + <% end %> + <td><%= f.number_field "min_size_#{suffix}".to_sym, :class => "special" %></td> + <td><%= f.number_field "max_size_#{suffix}".to_sym, :class => "special" %></td> diff --git a/app/views/rule_parameter_sets/_form.html.erb b/app/views/rule_parameter_sets/_form.html.erb index 90d6850fb..abe4b0c96 100644 --- a/app/views/rule_parameter_sets/_form.html.erb +++ b/app/views/rule_parameter_sets/_form.html.erb @@ -15,11 +15,14 @@ <%= form.input :inter_stop_duration_max, :as => :number %> <%= form.input :facility_stop_area_distance_max, :as => :number %> - <%= form.input :vehicle_journey_number_min, :as => :number %> - <%= form.input :vehicle_journey_number_max, :as => :number %> + <%= form.input :check_lines_in_groups, :as => :boolean %> + <%= form.input :check_line_routes, :as => :boolean %> + <%= form.input :check_stop_parent, :as => :boolean %> + <%= form.input :check_connection_link_on_physical, :as => :boolean %> <%= form.input :check_allowed_transport_modes, :as => :boolean %> <table class="table table-striped table-condensed"> + <thead> <tr> <th><%= t("transport_modes.name") %></th> <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %> @@ -31,12 +34,39 @@ <% end %> <% end %> </tr> + </thead> + <tbody> <% Chouette::Line.transport_modes.map(&:to_s).each do |mode| %> <tr> <%= render :partial => "mode_fields", :locals => { :f => form, :mode => mode} %> </tr> <% end %> + </tbody> </table> + + <%= t("rule_parameter_sets.labels.columns_restrictions") %> + <table class="table table-bordered table-condensed"> + <% RuleParameterSet.validable_objects.each do |obj| %> + <thead> + <tr> + <th> <%= form.check_box "check_#{obj.table_name.singularize}".to_sym, :class => "special" %> <%= t("activerecord.models.#{obj.table_name.singularize}.one") %></th> + <th><%= RuleParameterSet.human_attribute_name("attribute") %></th> + <th><%= RuleParameterSet.human_attribute_name("unique") %></th> + <th><%= RuleParameterSet.human_attribute_name("string_type") %></th> + <th><%= RuleParameterSet.human_attribute_name("min_size") %></th> + <th><%= RuleParameterSet.human_attribute_name("max_size") %></th> + </tr> + </thead> + <tbody> + <% RuleParameterSet.validable_columns[obj.table_name.singularize].each do |col| %> + <tr class="<%= "columns_for_#{obj.table_name}" %>"> + <%= render :partial => "column_fields", :locals => { :f => form, :obj => obj, :column => col} %> + </tr> + <% end %> + </tbody> + <% end %> + </table> + <% end %> <%= form.actions do %> diff --git a/app/views/rule_parameter_sets/show.html.erb b/app/views/rule_parameter_sets/show.html.erb index 66e002b94..e86aa47ac 100644 --- a/app/views/rule_parameter_sets/show.html.erb +++ b/app/views/rule_parameter_sets/show.html.erb @@ -68,26 +68,33 @@ <label><%= t(".inter_stop_duration_max") %>: </label> <%= @rule_parameter_set.inter_stop_duration_max %> </p> - <% if @rule_parameter_set.vehicle_journey_number_min.present? && @rule_parameter_set.vehicle_journey_number_max.present? %> - <div class="attributes_group" > - <span class="title"><%= t(".vehicle_journey_number_bounds") %></span> - <div class="columns"> - <div class="two_columns"> - <label><%= t(".min_value") %> : </label> - <span class="value"><%= @rule_parameter_set.vehicle_journey_number_min %></span> - </div> - <div class="two_columns"> - <label><%= t(".max_value") %> : </label> - <span class="value"><%= @rule_parameter_set.vehicle_journey_number_max %></span> - </div> - </div> - </div> - <% end %> + <p> + <label><%= RuleParameterSet.human_attribute_name("check_lines_in_groups") %>: </label> + <%= boolean_value(@rule_parameter_set.check_lines_in_groups)%> + </p> + + <p> + <label><%= RuleParameterSet.human_attribute_name("check_line_routes") %>: </label> + <%= boolean_value(@rule_parameter_set.check_line_routes) %> + </p> + + <p> + <label><%= RuleParameterSet.human_attribute_name("check_stop_parent") %>: </label> + <%= boolean_value(@rule_parameter_set.check_stop_parent) %> + </p> + + <p> + <label><%= RuleParameterSet.human_attribute_name("check_connection_link_on_physical") %>: </label> + <%= boolean_value(@rule_parameter_set.check_connection_link_on_physical) %> + </p> + + </p> <label><%= RuleParameterSet.human_attribute_name("check_allowed_transport_modes") %>: </label> - <%= @rule_parameter_set.check_allowed_transport_modes ? t("true") : t("false") %> + <%= boolean_value(@rule_parameter_set.check_allowed_transport_modes) %> </p> + <div class="rule_parameter_by_mode"> <label><%= t(".rule_parameter_by_mode") %> <%= t(".modes_allowed") if @rule_parameter_set.check_allowed_transport_modes %> @@ -116,6 +123,40 @@ <% end %> </table> </div> + <div class="rule_parameter_by_object"> + <label><%= t("rule_parameter_sets.labels.columns_restrictions") %> </label> + <table class="table table-bordered table-condensed"> + <% RuleParameterSet.validable_objects.each do |obj| %> + <% if @rule_parameter_set.selected(obj.table_name.singularize) %> + <thead> + <tr> + <th> <%= t("activerecord.models.#{obj.table_name.singularize}.one") %></th> + <th><%= RuleParameterSet.human_attribute_name("attribute") %></th> + <th><%= RuleParameterSet.human_attribute_name("unique") %></th> + <th><%= RuleParameterSet.human_attribute_name("string_type") %></th> + <th><%= RuleParameterSet.human_attribute_name("min_size") %></th> + <th><%= RuleParameterSet.human_attribute_name("max_size") %></th> + </tr> + </thead> + <tbody> + <% RuleParameterSet.validable_columns[obj.table_name.singularize].each do |col| %> + <% if @rule_parameter_set.selected_column(obj.table_name.singularize,col)%> + <tr> + <td></td> + <td><%= t("activerecord.attributes.#{obj.table_name.singularize}.#{col}") %></td> + <% suffix = "column_#{col}_object_#{obj.table_name.singularize}"%> + <td><%= unique(@rule_parameter_set.send "unique_#{suffix}".to_sym) %></td> + <td><%= pattern(@rule_parameter_set.send "pattern_#{suffix}".to_sym) %></td> + <td><%= @rule_parameter_set.send "min_size_#{suffix}".to_sym %></td> + <td><%= @rule_parameter_set.send "max_size_#{suffix}".to_sym %></td> + </tr> + <% end %> + <% end %> + </tbody> + <% end %> + <% end %> + </table> + </div> </div> </div> |
