summaryrefslogtreecommitdiffstats
path: root/app/views/queries
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2013-07-11 17:45:10 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2013-07-11 17:45:10 +0000
commit888c3581eb0fbfc5ede87a24f7f03bfa4f7d810b (patch)
tree17bb48e3b640635b2fa62b85e2b10ccaf5b4f65c /app/views/queries
parent4545b906b4c58e2bd1d201fd18a49249aa571dfc (diff)
downloadredmine-888c3581eb0fbfc5ede87a24f7f03bfa4f7d810b.tar.gz
redmine-888c3581eb0fbfc5ede87a24f7f03bfa4f7d810b.zip
Role based custom queries (#1019).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11994 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/views/queries')
-rw-r--r--app/views/queries/_form.html.erb23
-rw-r--r--app/views/queries/index.api.rsb2
2 files changed, 21 insertions, 4 deletions
diff --git a/app/views/queries/_form.html.erb b/app/views/queries/_form.html.erb
index 1070b4716..116821529 100644
--- a/app/views/queries/_form.html.erb
+++ b/app/views/queries/_form.html.erb
@@ -6,15 +6,22 @@
<%= text_field 'query', 'name', :size => 80 %></p>
<% if User.current.admin? || User.current.allowed_to?(:manage_public_queries, @project) %>
-<p><label for="query_is_public"><%=l(:field_is_public)%></label>
-<%= check_box 'query', 'is_public',
- :onchange => (User.current.admin? ? nil : 'if (this.checked) {$("#query_is_for_all").removeAttr("checked"); $("#query_is_for_all").attr("disabled", true);} else {$("#query_is_for_all").removeAttr("disabled");}') %></p>
+<p><label><%=l(:field_visible)%></label>
+ <label class="block"><%= radio_button 'query', 'visibility', Query::VISIBILITY_PRIVATE %> <%= l(:label_visibility_private) %></label>
+ <label class="block"><%= radio_button 'query', 'visibility', Query::VISIBILITY_ROLES %> <%= l(:label_visibility_roles) %>:</label>
+ <% Role.givable.sorted.each do |role| %>
+ <label class="block role-visibility"><%= check_box_tag 'query[role_ids][]', role.id, @query.roles.include?(role), :id => nil %> <%= role.name %></label>
+ <% end %>
+ <label class="block"><%= radio_button 'query', 'visibility', Query::VISIBILITY_PUBLIC %> <%= l(:label_visibility_public) %></label>
+ <%= hidden_field_tag 'query[role_ids][]', '' %>
+</p>
<% end %>
<p><label for="query_is_for_all"><%=l(:field_is_for_all)%></label>
<%= check_box_tag 'query_is_for_all', 1, @query.project.nil?,
:disabled => (!@query.new_record? && (@query.project.nil? || (@query.is_public? && !User.current.admin?))) %></p>
+<fieldset><legend><%= l(:label_options) %></legend>
<p><label for="query_default_columns"><%=l(:label_default_columns)%></label>
<%= check_box_tag 'default_columns', 1, @query.has_default_columns?, :id => 'query_default_columns',
:onclick => 'if (this.checked) {$("#columns").hide();} else {$("#columns").show();}' %></p>
@@ -24,6 +31,7 @@
<p><label><%= l(:button_show) %></label>
<%= available_block_columns_tags(@query) %></p>
+</fieldset>
</div>
<fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend>
@@ -53,3 +61,12 @@
<% end %>
</div>
+
+<%= javascript_tag do %>
+$(document).ready(function(){
+ $("input[name='query[visibility]']").change(function(){
+ var checked = $('#query_visibility_1').is(':checked');
+ $("input[name='query[role_ids][]'][type=checkbox]").attr('disabled', !checked);
+ }).trigger('change');
+});
+<% end %>
diff --git a/app/views/queries/index.api.rsb b/app/views/queries/index.api.rsb
index 800b4964e..cdf8e4020 100644
--- a/app/views/queries/index.api.rsb
+++ b/app/views/queries/index.api.rsb
@@ -3,7 +3,7 @@ api.array :queries, api_meta(:total_count => @query_count, :offset => @offset, :
api.query do
api.id query.id
api.name query.name
- api.is_public query.is_public
+ api.is_public query.is_public?
api.project_id query.project_id
end
end