more abstract helper for check_box_tag

This commit is contained in:
Alexander Meindl 2021-03-25 11:55:06 +01:00
parent 23de02faa5
commit 4c55b54481
6 changed files with 16 additions and 11 deletions

View File

@ -90,7 +90,7 @@ class DashboardAsyncBlocksController < ApplicationController
end end
def dashboard_with_invalid_block(exception) def dashboard_with_invalid_block(exception)
logger&.error "Invalid dashboard block for #{@block}: #{exception.message}" logger&.error "Invalid dashboard block for #{@block} (#{exception.class.name}): #{exception.message}"
respond_to do |format| respond_to do |format|
format.html do format.html do
render template: 'dashboards/block_error', layout: false render template: 'dashboards/block_error', layout: false

View File

@ -17,6 +17,7 @@ class DashboardsController < ApplicationController
helper :dashboards helper :dashboards
helper :additionals_issues helper :additionals_issues
helper :additionals_queries helper :additionals_queries
helper :additionals_settings
include AdditionalsRoutesHelper include AdditionalsRoutesHelper
include AdditionalsQueriesHelper include AdditionalsQueriesHelper

View File

@ -14,6 +14,9 @@ module AdditionalsSettingsHelper
end end
def additionals_settings_checkbox(name, options = {}) def additionals_settings_checkbox(name, options = {})
active_value = options.delete(:active_value).presence || @settings.present? && @settings[name]
tag_name = options.delete(:tag_name).presence || "settings[#{name}]"
label_title = options.delete(:label).presence || l("label_#{name}") label_title = options.delete(:label).presence || l("label_#{name}")
value = options.delete :value value = options.delete :value
value_is_bool = options.delete :value_is_bool value_is_bool = options.delete :value_is_bool
@ -26,14 +29,14 @@ module AdditionalsSettingsHelper
end end
checked = if custom_value && !value_is_bool checked = if custom_value && !value_is_bool
@settings[name] active_value
else else
Additionals.true? @settings[name] Additionals.true? active_value
end end
s = [label_tag("settings[#{name}]", label_title)] s = [label_tag(tag_name, label_title)]
s << hidden_field_tag("settings[#{name}]", 0, id: nil) if !custom_value || value_is_bool s << hidden_field_tag(tag_name, 0, id: nil) if !custom_value || value_is_bool
s << check_box_tag("settings[#{name}]", value, checked, options) s << check_box_tag(tag_name, value, checked, options)
safe_join s safe_join s
end end

View File

@ -1,6 +1,5 @@
div id="#{block}-settings" style="#{'display: none;' if hide}" div id="#{block}-settings" style="#{'display: none;' if hide}"
= form_tag(_update_layout_setting_dashboard_path(@project, @dashboard), remote: true) do = form_tag(_update_layout_setting_dashboard_path(@project, @dashboard), remote: true) do
= hidden_field_tag "settings[#{block}][me_only]", '0'
.box .box
p p
label label
@ -10,10 +9,10 @@ div id="#{block}-settings" style="#{'display: none;' if hide}"
settings[:max_entries].presence || DashboardContent::DEFAULT_MAX_ENTRIES, settings[:max_entries].presence || DashboardContent::DEFAULT_MAX_ENTRIES,
min: 1, max: 1000, required: true min: 1, max: 1000, required: true
p p
label = additionals_settings_checkbox :me_only,
= l :label_only_my_activities label: l(:label_only_my_activities),
' : active_value: settings[:me_only],
= check_box_tag "settings[#{block}][me_only]", '1', Additionals.true?(settings[:me_only]) tag_name: "settings[#{block}][me_only]"
p p
= submit_tag l(:button_save) = submit_tag l(:button_save)

View File

@ -15,6 +15,7 @@ module Additionals
helper :queries helper :queries
helper :additionals_queries helper :additionals_queries
helper :additionals_projects helper :additionals_projects
helper :additionals_settings
helper :dashboards helper :dashboards
include DashboardsHelper include DashboardsHelper

View File

@ -14,6 +14,7 @@ module Additionals
helper :issues helper :issues
helper :queries helper :queries
helper :additionals_queries helper :additionals_queries
helper :additionals_settings
helper :dashboards helper :dashboards
include DashboardsHelper include DashboardsHelper