summaryrefslogtreecommitdiffstats
path: root/app/views
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2019-10-19 11:42:20 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2019-10-19 11:42:20 +0000
commit45f039187df03e8925cb0d08ccc1838c9ea2d5c2 (patch)
tree3bbb8958c71b24e65123c0e8f29d6f15726424d5 /app/views
parentecd9d9ba2f43f2f5a88c1d34d34d07dae40dfe4e (diff)
downloadredmine-45f039187df03e8925cb0d08ccc1838c9ea2d5c2.tar.gz
redmine-45f039187df03e8925cb0d08ccc1838c9ea2d5c2.zip
Option to switch between table list and board list (#29482).
Patch by Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@18765 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/views')
-rw-r--r--app/views/projects/_board.html.erb3
-rw-r--r--app/views/projects/_list.html.erb35
-rw-r--r--app/views/projects/index.html.erb7
-rw-r--r--app/views/queries/_form.html.erb21
-rw-r--r--app/views/queries/_query_form.html.erb25
5 files changed, 83 insertions, 8 deletions
diff --git a/app/views/projects/_board.html.erb b/app/views/projects/_board.html.erb
new file mode 100644
index 000000000..7d63a533d
--- /dev/null
+++ b/app/views/projects/_board.html.erb
@@ -0,0 +1,3 @@
+<div id="projects-index">
+ <%= render_project_hierarchy(@entries) %>
+</div>
diff --git a/app/views/projects/_list.html.erb b/app/views/projects/_list.html.erb
new file mode 100644
index 000000000..8a1efc204
--- /dev/null
+++ b/app/views/projects/_list.html.erb
@@ -0,0 +1,35 @@
+<div class="autoscroll">
+<table class="list projects odd-even <%= @query.css_classes %>">
+<thead>
+ <tr>
+ <% @query.inline_columns.each do |column| %>
+ <%= column_header(@query, column) %>
+ <% end %>
+ </tr>
+</thead>
+<tbody>
+<% grouped_project_list(entries, @query) do |entry, level, group_name, group_count, group_totals| -%>
+ <% if group_name %>
+ <% reset_cycle %>
+ <tr class="group open">
+ <td colspan="<%= @query.inline_columns.size %>">
+ <span class="expander" onclick="toggleRowGroup(this);">&nbsp;</span>
+ <span class="name"><%= group_name %></span>
+ <% if group_count %>
+ <span class="count"><%= group_count %></span>
+ <% end %>
+ <span class="totals"><%= group_totals %></span>
+ <%= link_to_function("#{l(:button_collapse_all)}/#{l(:button_expand_all)}",
+ "toggleAllRowGroups(this)", :class => 'toggle-all') %>
+ </td>
+ </tr>
+ <% end %>
+ <tr id="project-<%= entry.id %>" class="<%= cycle('odd', 'even') %> <%= entry.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
+ <% @query.inline_columns.each do |column| %>
+ <%= content_tag('td', column_content(column, entry), :class => column.css_classes) %>
+ <% end %>
+ </tr>
+<% end -%>
+</tbody>
+</table>
+</div>
diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb
index 3c2543b43..067c9bdee 100644
--- a/app/views/projects/index.html.erb
+++ b/app/views/projects/index.html.erb
@@ -11,12 +11,11 @@
<% end %>
<% if @query.valid? %>
- <% if @projects.empty? %>
+ <% if @entries.empty? %>
<p class="nodata"><%= l(:label_no_data) %></p>
<% else %>
- <div id="projects-index">
- <%= render_project_hierarchy(@projects) %>
- </div>
+ <%= render :partial => @query.display_type, :locals => { :entries => @entries }%>
+ <span class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></span>
<% end %>
<% end %>
diff --git a/app/views/queries/_form.html.erb b/app/views/queries/_form.html.erb
index a2dd9f589..12a1d0202 100644
--- a/app/views/queries/_form.html.erb
+++ b/app/views/queries/_form.html.erb
@@ -29,12 +29,18 @@
<% end %>
<fieldset id="options"><legend><%= l(:label_options) %></legend>
-<p><label for="query_default_columns"><%=l(:label_default_columns)%></label>
+ <% if @query.available_display_types.size > 1 %>
+ <p><label for='display_type'><%= l(:label_display_type) %></label>
+ <%= available_display_types_tags(@query) %>
+ </p>
+<% end %>
+
+<p id ="default_columns"><label for="query_default_columns"><%=l(:label_default_columns)%></label>
<%= check_box_tag 'default_columns', 1, @query.has_default_columns?, :id => 'query_default_columns',
:data => {:disables => "#columns, .block_columns input"} %></p>
<% unless params[:gantt] %>
- <p><label for="query_group_by"><%= l(:field_group_by) %></label>
+ <p id="group_by"><label id="group_by" for="query_group_by"><%= l(:field_group_by) %></label>
<%= select 'query', 'group_by', @query.groupable_columns.collect {|c| [c.caption, c.name.to_s]}, :include_blank => true %></p>
<% unless @query.available_block_columns.empty? %>
@@ -99,4 +105,15 @@ $(document).ready(function(){
$("input.disable-unless-private").attr('disabled', !private_checked);
}).trigger('change');
});
+
+$(function ($) {
+ $('#display_type').change(function (e) {
+ var option = $(e.target).val()
+ if (option == 'board') {
+ $('fieldset#columns, fieldset#sort, p#default_columns, p#group_by').hide();
+ } else {
+ $('fieldset#columns, fieldset#sort, p#default_columns, p#group_by').show();
+ }
+ }).change()
+});
<% end %>
diff --git a/app/views/queries/_query_form.html.erb b/app/views/queries/_query_form.html.erb
index 65bcc3eb5..62d156684 100644
--- a/app/views/queries/_query_form.html.erb
+++ b/app/views/queries/_query_form.html.erb
@@ -14,8 +14,14 @@
<% if @query.available_columns.any? %>
<fieldset id="options" class="collapsible collapsed">
<legend onclick="toggleFieldset(this);" class="icon icon-collapsed"><%= l(:label_options) %></legend>
- <div style="display: none;">
- <table>
+ <div class="hidden">
+ <% if @query.available_display_types.size > 1 %>
+ <div>
+ <span class="field"><label for='display_type'><%= l(:label_display_type) %></label></span>
+ <%= available_display_types_tags(@query) %>
+ </div>
+ <% end %>
+ <table id="list" class="<%= 'hidden' if (@query.display_type == 'board') %>">
<% if @query.available_columns.any? %>
<tr>
<td class="field"><%= l(:field_column_names) %></td>
@@ -65,3 +71,18 @@
</div>
<%= error_messages_for @query %>
+
+<%= javascript_tag do %>
+$(function ($) {
+ $('#display_type').change(function (e) {
+ var option = $(e.target).val()
+ if (option == 'board') {
+ $('table#list').hide();
+ } else {
+ $('table#list').show();
+ }
+
+ })
+});
+
+<% end %>