diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 1b45fd1..12d465b 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -1,61 +1,62 @@ class Admin::SettingsController < Admin::BaseController before_action :fetch_configuration_settings, only: [:edit, :update, :reset] # GET /admin/settings def index @settings = ConfigurationSetting.last || ConfigurationSetting.new end # GET /admin/settings/new def new @setting = ConfigurationSetting.new end # GET /admin/settings/1/edit def edit end # POST /admin/settings def create @setting = ConfigurationSetting.new(fetch_params) if @setting.save flash[:success] = 'Configuration Submitted' redirect_to admin_settings_path else flash[:error] = 'Configuration was not submitted' render :new end end # PATCH /admin/settings/1/update def update if fetch_params.present? && @setting.update_attributes(fetch_params) flash[:success] = 'Configuration Submitted' redirect_to admin_settings_path else flash[:error] = 'Configuration was not submitted' render :edit end end # DELETE /admin/settings/1/reset def reset @setting.destroy redirect_to admin_settings_path end private def fetch_configuration_settings @setting = ConfigurationSetting.find(params[:id]) end def fetch_params params.require(:configuration_setting). permit( job: [:storage, :pool, :messages, :priority, :'Write Bootstrap'], client: [:catalog, :file_retention, :file_retention_period_type, :job_retention, - :job_retention_period_type, :autoprune] + :job_retention_period_type, :autoprune], + pool: [:full, :differential, :incremental] ) end end diff --git a/app/views/admin/settings/_form.html.erb b/app/views/admin/settings/_form.html.erb index 66aa233..f4c48fd 100644 --- a/app/views/admin/settings/_form.html.erb +++ b/app/views/admin/settings/_form.html.erb @@ -1,53 +1,79 @@ -
- <%= bootstrap_form_for(@setting, url: path, layout: :horizontal, - label_col: 'col-xs-5', control_col: 'col-xs-6') do |f| %> -
-
-

Job

+<%= bootstrap_form_for(@setting, url: path, layout: :horizontal, + label_col: 'col-xs-5', control_col: 'col-xs-5') do |f| %> +
+
+
+
+

Client

+
+
+ <%= f.fields_for :client do |c| %> + <%= c.text_field :catalog, :value => @setting.current_client_settings[:catalog] %> + <%= c.number_field :file_retention, + :value => @setting.current_client_settings[:file_retention] %> + <%= c.select :file_retention_period_type, + options_for_select(ConfigurationSetting::RETENTION_PERIODS, + @setting.current_client_settings[:file_retention_period_type]) %> + <%= c.number_field :job_retention, + :value => @setting.current_client_settings[:job_retention] %> + <%= c.select :job_retention_period_type, + options_for_select(ConfigurationSetting::RETENTION_PERIODS, + @setting.current_client_settings[:job_retention_period_type]) %> + <%= c.select :autoprune, ConfigurationSetting::AUTOPRUNE_OPTIONS, + :value => @setting.current_client_settings[:autoprune] %> + <% end %>
- <%= f.fields_for :job do |jb| %> - <%= jb.select :storage, - options_for_select(Storage.available_options, @setting.current_job_settings[:storage]) %> - <%= jb.select :pool, - options_for_select(Pool.available_options, @setting.current_job_settings[:pool]) %> - <%= jb.text_field :messages, :value => @setting.current_job_settings[:messages] %> - <%= jb.text_field :'Write Bootstrap', - :value => @setting.current_job_settings[:'Write Bootstrap'] %> - <%= jb.number_field :priority, :value => @setting.current_job_settings[:priority] %> - <% end %> +
+
+
+

Job

+
-
-
-

Client

+
+ + <%= f.fields_for :job do |jb| %> + <%= jb.select :storage, + options_for_select(Storage.available_options, @setting.current_job_settings[:storage]) %> + <%= jb.select :pool, + options_for_select(Pool.available_options, @setting.current_job_settings[:pool]) %> + <%= jb.text_field :messages, :value => @setting.current_job_settings[:messages] %> + <%= jb.text_field :'Write Bootstrap', + :value => @setting.current_job_settings[:'Write Bootstrap'] %> + <%= jb.number_field :priority, :value => @setting.current_job_settings[:priority] %> + <% end %>
- <%= f.fields_for :client do |c| %> - <%= c.text_field :catalog, :value => @setting.current_client_settings[:catalog] %> - <%= c.number_field :file_retention, - :value => @setting.current_client_settings[:file_retention] %> - <%= c.select :file_retention_period_type, - options_for_select(ConfigurationSetting::RETENTION_PERIODS, - @setting.current_client_settings[:file_retention_period_type]) %> - <%= c.number_field :job_retention, - :value => @setting.current_client_settings[:job_retention] %> - <%= c.select :job_retention_period_type, - options_for_select(ConfigurationSetting::RETENTION_PERIODS, - @setting.current_client_settings[:job_retention_period_type]) %> - <%= c.select :autoprune, ConfigurationSetting::AUTOPRUNE_OPTIONS, - :value => @setting.current_client_settings[:autoprune] %> - <% end %> - -
- -
-
- <%= f.submit class: 'btn btn-success' %> +
+
+
+

Pool

+
+
+ <%= f.fields_for :pool do |p| %> + <%= p.select :full, + options_for_select(Pool.available_options, @setting.current_pool_settings[:full]) %> + <%= p.select :differential, + options_for_select(Pool.available_options, + @setting.current_pool_settings[:differential]) %> + <%= p.select :incremental, + options_for_select(Pool.available_options, + @setting.current_pool_settings[:incremental]) %> + <% end %>
+
+ +
+
+ <%= link_to 'Cancel', admin_settings_path %> +
+
+ <%= f.submit class: 'btn btn-success' %> +
+
-
- <% end %> -
+
+<% end %> diff --git a/app/views/admin/settings/edit.html.erb b/app/views/admin/settings/edit.html.erb index 0b07f3e..bc5cc62 100644 --- a/app/views/admin/settings/edit.html.erb +++ b/app/views/admin/settings/edit.html.erb @@ -1,5 +1,3 @@

Settings

<%= render partial: 'form', locals: { path: admin_setting_path } %> - -<%= link_to 'Cancel', admin_settings_path %> diff --git a/app/views/admin/settings/index.html.erb b/app/views/admin/settings/index.html.erb index 12ae87d..3c934f3 100644 --- a/app/views/admin/settings/index.html.erb +++ b/app/views/admin/settings/index.html.erb @@ -1,42 +1,48 @@

Settings

<% if !@settings.persisted? %> <% end %>

Client Settings

Job Settings

+
+

Pool Settings

+
<%= table_for(ConfigurationSetting.current_job_settings) %>
<%= table_for(ConfigurationSetting.current_client_settings) %>
+
+ <%= table_for(ConfigurationSetting.current_pool_settings) %> +
<%= link_to 'Change Config', @settings.persisted? ? edit_admin_setting_path(@settings) : new_admin_setting_path, class: 'btn btn-primary', role: 'button' %>
<% if @settings.persisted? %>
<%= link_to 'Restore to defaults', reset_admin_setting_path(@settings), method: :delete, data: { confirm: 'This will reset the configuration to the defaults' }, class: 'btn btn-danger', role: 'button' %>
<% end %>
diff --git a/app/views/admin/settings/new.html.erb b/app/views/admin/settings/new.html.erb index 3054847..4f39564 100644 --- a/app/views/admin/settings/new.html.erb +++ b/app/views/admin/settings/new.html.erb @@ -1,5 +1,3 @@

Settings

<%= render partial: 'form', locals: { path: admin_settings_path } %> - -<%= link_to 'Cancel', admin_settings_path %>