diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 293c994b6..27e12a2a1 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -3,7 +3,12 @@ module Admin load_and_authorize_resource def index - @settings = Setting.unscoped + @settings = SettingEntry.unscoped + @validation_settings = SettingEntry.with_group('domain_validation') + @expiration_settings = SettingEntry.with_group('domain_expiration') + @other_settings = SettingEntry.with_group('other') + @billing_settings = SettingEntry.with_group('billing') + @contacts_settings = SettingEntry.with_group('contacts') end def create diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index bd3afb170..d86e0dd90 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -18,6 +18,10 @@ class SettingEntry < ApplicationRecord send(method) end + def self.with_group(group_name) + SettingEntry.where(group: group_name) + end + def self.groups SettingEntry.all.pluck(:group).uniq end diff --git a/app/views/admin/settings/_setting_row.haml b/app/views/admin/settings/_setting_row.haml index befd5b9d9..bc3e47d6b 100644 --- a/app/views/admin/settings/_setting_row.haml +++ b/app/views/admin/settings/_setting_row.haml @@ -1,9 +1,8 @@ -- value = Setting.send(var) -%tr{class: (@errors && @errors.has_key?(var.to_s) && "danger")} - %td.col-md-6= var.to_s.humanize - - if [TrueClass, FalseClass].include?(value.class) +%tr{class: (@errors && @errors.has_key?(setting.code) && "danger")} + %td.col-md-6= setting.code.humanize + - if [TrueClass, FalseClass].include?(setting.value.class) %td.col-md-6 - = hidden_field_tag("[settings][#{var}]", '', id: nil) - = check_box_tag("[settings][#{var}]", true, value) + = hidden_field_tag("[settings][#{setting.code}]", '', id: nil) + = check_box_tag("[settings][#{setting.code}]", true, value) - else - %td.col-md-6= text_field_tag("[settings][#{var}]", value, class: 'form-control') + %td.col-md-6= text_field_tag("[settings][#{setting.code}]", setting.value, class: 'form-control') diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml index 9eb236b65..30a53da33 100644 --- a/app/views/admin/settings/index.haml +++ b/app/views/admin/settings/index.haml @@ -9,20 +9,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :admin_contacts_min_count - = render 'setting_row', var: :admin_contacts_max_count - = render 'setting_row', var: :tech_contacts_min_count - = render 'setting_row', var: :tech_contacts_max_count - = render 'setting_row', var: :orphans_contacts_in_months - = render 'setting_row', var: :ds_data_allowed - = render 'setting_row', var: :key_data_allowed - = render 'setting_row', var: :dnskeys_min_count - = render 'setting_row', var: :dnskeys_max_count - = render 'setting_row', var: :nameserver_required - = render 'setting_row', var: :ns_min_count - = render 'setting_row', var: :ns_max_count - = render 'setting_row', var: :expire_pending_confirmation - = render 'setting_row', var: :legal_document_is_mandatory + - @validation_settings.each do |setting| + = render 'setting_row', setting: setting .panel.panel-default .panel-heading @@ -30,10 +18,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :days_to_renew_domain_before_expire - = render 'setting_row', var: :expire_warning_period - = render 'setting_row', var: :redemption_grace_period - = render 'setting_row', var: :expiration_reminder_mail + - @expiration_settings.each do |setting| + = render 'setting_row', setting: setting .panel.panel-default .panel-heading @@ -41,15 +27,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :transfer_wait_time - = render 'setting_row', var: :ds_digest_type - = render 'setting_row', var: :client_side_status_editing_enabled - = render 'setting_row', var: :api_ip_whitelist_enabled - = render 'setting_row', var: :registrar_ip_whitelist_enabled - = render 'setting_row', var: :request_confrimation_on_registrant_change_enabled - = render 'setting_row', var: :request_confirmation_on_domain_deletion_enabled - = render 'setting_row', var: :address_processing - = render 'setting_row', var: :dispute_period_in_months + - @other_settings.each do |setting| + = render 'setting_row', setting: setting %tr %td.col-md-6= label_tag :default_language %td.col-md-6 @@ -63,25 +42,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :invoice_number_min - = render 'setting_row', var: :invoice_number_max - = render 'setting_row', var: :directo_monthly_number_min - = render 'setting_row', var: :directo_monthly_number_max - = render 'setting_row', var: :directo_monthly_number_last - = render 'setting_row', var: :days_to_keep_invoices_active - = render 'setting_row', var: :days_to_keep_overdue_invoices_active - = render 'setting_row', var: :minimum_deposit - = render 'setting_row', var: :directo_receipt_payment_term - = render 'setting_row', var: :directo_receipt_product_name - = render 'setting_row', var: :directo_sales_agent - = render 'setting_row', var: :registry_billing_email - = render 'setting_row', var: :registry_invoice_contact - = render 'setting_row', var: :registry_vat_no - = render 'setting_row', var: :registry_vat_prc - = render 'setting_row', var: :registry_bank - = render 'setting_row', var: :registry_bank_code - = render 'setting_row', var: :registry_iban - = render 'setting_row', var: :registry_swift + - @billing_settings.each do |setting| + = render 'setting_row', setting: setting .panel.panel-default .panel-heading @@ -89,17 +51,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :registry_juridical_name - = render 'setting_row', var: :registry_reg_no - = render 'setting_row', var: :registry_email - = render 'setting_row', var: :registry_phone - = render 'setting_row', var: :registry_url - = render 'setting_row', var: :registry_street - = render 'setting_row', var: :registry_city - = render 'setting_row', var: :registry_state - = render 'setting_row', var: :registry_zip - = render 'setting_row', var: :registry_country_code - = render 'setting_row', var: :registry_whois_disclaimer + - @contacts_settings.each do |setting| + = render 'setting_row', setting: setting .row .col-md-12.text-right