Allow to hide macros with macro button and add help for hide role

This commit is contained in:
Alexander Meindl 2018-12-05 13:29:37 +01:00
parent 7406678a3f
commit 9b7c0a1810
15 changed files with 67 additions and 7 deletions

View File

@ -7,8 +7,14 @@ class AdditionalsMacro
# needs to run every request (for each user once)
permissions = build_permissions(options)
if options[:filtered].present?
options[:filtered] << 'hello_world'
else
options[:filtered] = ['hello_world']
end
all.each do |macro, macro_options|
next if macro == :hello_world
next if options[:filtered].include?(macro.to_s)
next unless macro_allowed(macro, permissions)
macro_list << macro.to_s
@ -38,8 +44,6 @@ class AdditionalsMacro
permission[:controller].present? &&
options[:controller_only].to_sym != permission[:controller]
false
elsif options[:project]
User.current.allowed_to?(permission[:permission], options[:project])
else
User.current.allowed_to?(permission[:permission], nil, global: true)
end

View File

@ -0,0 +1,15 @@
em.info
= l(:hidden_macros_in_toolbar_info)
br
p
= content_tag(:label, l(:label_hidden_macros_in_toolbar))
= hidden_field_tag('settings[hidden_macros_in_toolbar][]', '')
- @available_macros = AdditionalsMacro.all(only_names: true).each do |m|
label.block
- value = @settings[:hidden_macros_in_toolbar].present? ? @settings[:hidden_macros_in_toolbar].include?(m) : false
= check_box_tag('settings[hidden_macros_in_toolbar][]', m, value, id: nil)
= m
br

View File

@ -1,2 +1,17 @@
p
= f.check_box :hide
= f.check_box :hide, disabled: @role.users_visibility != 'members_of_visible_projects'
em.info
= t(:info_hidden_roles_html)
javascript:
$(function() {
$('#role_users_visibility').change(function() {
var uv = $("#role_users_visibility").val();
if (uv == 'members_of_visible_projects') {
$("#role_hide").prop('disabled', false);
} else {
$("#role_hide").prop('checked', false);
$("#role_hide").prop('disabled', true);
}
});
});

View File

@ -169,3 +169,6 @@ de:
additionals_query_list_defaults: Standard-Spalten Listenansicht
additionals_query_list_default_totals: Standard-Summen in der Listenansicht
field_hide: Verstecken
label_hidden_macros_in_toolbar: Versteckte Makros
hidden_macros_in_toolbar_info: Alle verfübaren Makros, die der angemeldete Benutzer verwenden kann, werden über den Makro-Button in der Wiki-Toolbar aufgelistet. Die hier markierten Makros werden nicht zur Auswahl angeboten.
info_hidden_roles_html: Versteckte Rollen können nur zusammen mit der Benutzersichtbarkeit "Mitglieder von sichtbaren Projekten" verwendet werden. Sofern der Benutzer in keiner Rolle ist, die dem aktuellen Benutzer sichtbar ist, wird diese Rolle inkl. Benutzer auf der Projektübersichtsseite und in Abfragelisten ausgeblendet.

View File

@ -169,3 +169,6 @@ en:
additionals_query_list_defaults: Default columns for list view
additionals_query_list_default_totals: Default sums for list view
field_hide: Hide
label_hidden_macros_in_toolbar: Hidden macros
hidden_macros_in_toolbar_info: Alle verfübaren Makros, die der angemeldete Benutzer verwenden kann, werden über den Makro-Button in der Wiki-Toolbar aufgelistet. Die hier markierten Makros werden nicht zur Auswahl angeboten.
info_hidden_roles_html: Versteckte Rollen können nur zusammen mit der Benutzersichtbarkeit "Mitglieder von sichtbaren Projekten" verwendet werden. Sofern der Benutzer in keiner Rolle ist, die dem aktuellen Benutzer sichtbar ist, wird diese Rolle inkl. Benutzer auf der Projektübersichtsseite und in Abfragelisten ausgeblendet.

View File

@ -169,3 +169,6 @@ es:
additionals_query_list_defaults: Columnas predeterminadas para la vista de lista
additionals_query_list_default_totals: Sumas predeterminadas para la vista de lista
field_hide: "Ocultar"
label_hidden_macros_in_toolbar: Hidden macros
hidden_macros_in_toolbar_info: Alle verfübaren Makros, die der angemeldete Benutzer verwenden kann, werden über den Makro-Button in der Wiki-Toolbar aufgelistet. Die hier markierten Makros werden nicht zur Auswahl angeboten.
info_hidden_roles_html: Versteckte Rollen können nur zusammen mit der Benutzersichtbarkeit "Mitglieder von sichtbaren Projekten" verwendet werden. Sofern der Benutzer in keiner Rolle ist, die dem aktuellen Benutzer sichtbar ist, wird diese Rolle inkl. Benutzer auf der Projektübersichtsseite und in Abfragelisten ausgeblendet.

View File

@ -169,3 +169,6 @@ fr:
additionals_query_list_defaults: "Colonnes par défaut pour la vue en liste"
additionals_query_list_default_totals: "Montants par défaut pour la vue en liste"
field_hide: "Cuir"
label_hidden_macros_in_toolbar: Hidden macros
hidden_macros_in_toolbar_info: Alle verfübaren Makros, die der angemeldete Benutzer verwenden kann, werden über den Makro-Button in der Wiki-Toolbar aufgelistet. Die hier markierten Makros werden nicht zur Auswahl angeboten.
info_hidden_roles_html: Versteckte Rollen können nur zusammen mit der Benutzersichtbarkeit "Mitglieder von sichtbaren Projekten" verwendet werden. Sofern der Benutzer in keiner Rolle ist, die dem aktuellen Benutzer sichtbar ist, wird diese Rolle inkl. Benutzer auf der Projektübersichtsseite und in Abfragelisten ausgeblendet.

View File

@ -169,3 +169,6 @@ it:
additionals_query_list_defaults: "Colonne predefinite per la vista elenco"
additionals_query_list_default_totals: "Importi predefiniti per la vista elenco"
field_hide: "Nascondi"
label_hidden_macros_in_toolbar: Hidden macros
hidden_macros_in_toolbar_info: Alle verfübaren Makros, die der angemeldete Benutzer verwenden kann, werden über den Makro-Button in der Wiki-Toolbar aufgelistet. Die hier markierten Makros werden nicht zur Auswahl angeboten.
info_hidden_roles_html: Versteckte Rollen können nur zusammen mit der Benutzersichtbarkeit "Mitglieder von sichtbaren Projekten" verwendet werden. Sofern der Benutzer in keiner Rolle ist, die dem aktuellen Benutzer sichtbar ist, wird diese Rolle inkl. Benutzer auf der Projektübersichtsseite und in Abfragelisten ausgeblendet.

View File

@ -169,3 +169,6 @@ ja:
additionals_query_list_defaults: Default columns for list view
additionals_query_list_default_totals: Default sums for list view
field_hide: Hide
label_hidden_macros_in_toolbar: Hidden macros
hidden_macros_in_toolbar_info: Alle verfübaren Makros, die der angemeldete Benutzer verwenden kann, werden über den Makro-Button in der Wiki-Toolbar aufgelistet. Die hier markierten Makros werden nicht zur Auswahl angeboten.
info_hidden_roles_html: Versteckte Rollen können nur zusammen mit der Benutzersichtbarkeit "Mitglieder von sichtbaren Projekten" verwendet werden. Sofern der Benutzer in keiner Rolle ist, die dem aktuellen Benutzer sichtbar ist, wird diese Rolle inkl. Benutzer auf der Projektübersichtsseite und in Abfragelisten ausgeblendet.

View File

@ -169,3 +169,6 @@
additionals_query_list_defaults: Default columns for list view
additionals_query_list_default_totals: Default sums for list view
field_hide: Hide
label_hidden_macros_in_toolbar: Hidden macros
hidden_macros_in_toolbar_info: Alle verfübaren Makros, die der angemeldete Benutzer verwenden kann, werden über den Makro-Button in der Wiki-Toolbar aufgelistet. Die hier markierten Makros werden nicht zur Auswahl angeboten.
info_hidden_roles_html: Versteckte Rollen können nur zusammen mit der Benutzersichtbarkeit "Mitglieder von sichtbaren Projekten" verwendet werden. Sofern der Benutzer in keiner Rolle ist, die dem aktuellen Benutzer sichtbar ist, wird diese Rolle inkl. Benutzer auf der Projektübersichtsseite und in Abfragelisten ausgeblendet.

View File

@ -169,3 +169,6 @@ zh:
additionals_query_list_defaults: Default columns for list view
additionals_query_list_default_totals: Default sums for list view
field_hide: Hide
label_hidden_macros_in_toolbar: Hidden macros
hidden_macros_in_toolbar_info: Alle verfübaren Makros, die der angemeldete Benutzer verwenden kann, werden über den Makro-Button in der Wiki-Toolbar aufgelistet. Die hier markierten Makros werden nicht zur Auswahl angeboten.
info_hidden_roles_html: Versteckte Rollen können nur zusammen mit der Benutzersichtbarkeit "Mitglieder von sichtbaren Projekten" verwendet werden. Sofern der Benutzer in keiner Rolle ist, die dem aktuellen Benutzer sichtbar ist, wird diese Rolle inkl. Benutzer auf der Projektübersichtsseite und in Abfragelisten ausgeblendet.

View File

@ -9,6 +9,7 @@ global_wiki_footer: ''
global_wiki_header: ''
global_wiki_sidebar: ''
google_maps_api_key: ''
hidden_macros_in_toolbar:
invisible_captcha: 0
issue_assign_to_me: 0
issue_assign_to_x: ''

View File

@ -41,6 +41,7 @@ module Additionals
tabs << { name: 'general', partial: 'additionals/settings/general', label: :label_general }
tabs << { name: 'content', partial: 'additionals/settings/overview', label: :label_overview_page }
tabs << { name: 'wiki', partial: 'additionals/settings/wiki', label: :label_wiki }
tabs << { name: 'macros', partial: 'additionals/settings/macros', label: :label_macro_plural }
tabs << { name: 'rules', partial: 'additionals/settings/issues', label: :label_issue_plural }
tabs << { name: 'projects', partial: 'additionals/settings/projects', label: :label_project_plural }
tabs << { name: 'users', partial: 'additionals/settings/users', label: :label_user_plural }

View File

@ -15,7 +15,7 @@ module Additionals
return if @additionals_macro_list
@additionals_macro_list = AdditionalsMacro.all(project: @project,
@additionals_macro_list = AdditionalsMacro.all(filtered: Additionals.settings[:hidden_macros_in_toolbar].to_a,
only_names: true,
controller_only: controller_name)

View File

@ -27,8 +27,8 @@ class AdditionalsMacroTest < Additionals::TestCase
assert available_macros.include?('child_pages')
end
def test_with_project
available_macros = AdditionalsMacro.all(project: projects(:projects_004), only_names: true)
def test_with_filter
available_macros = AdditionalsMacro.all(filtered: 'child_pages', only_names: true)
assert available_macros.exclude?('child_pages')
end