#1080 Offset & limit
This commit is contained in:
parent
c38f900de0
commit
1cb464c4f6
@ -75,7 +75,9 @@ class DmsfController < ApplicationController
|
||||
@dmsf_pages = Paginator.new @dmsf_count, per_page_option, params['page']
|
||||
render layout: !request.xhr?
|
||||
}
|
||||
format.api
|
||||
format.api {
|
||||
@offset, @limit = api_offset_and_limit
|
||||
}
|
||||
format.csv {
|
||||
send_data query_to_csv(@query.dmsf_nodes, @query), type: 'text/csv; header=present', filename: 'dmsf.csv'
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%= render partial: 'query_rows', locals: { query: query } %>
|
||||
<%= render partial: 'query_rows', locals: { query: query, dmsf_pages: dmsf_pages } %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@ -20,7 +20,12 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
%>
|
||||
|
||||
<% query.dmsf_nodes.each do |node| %>
|
||||
<% options = {} %>
|
||||
<% if dmsf_pages %>
|
||||
<% options[:offset] = dmsf_pages.offset %>
|
||||
<% options[:limit] = dmsf_pages.per_page %>
|
||||
<% end %>
|
||||
<% query.dmsf_nodes(options).each do |node| %>
|
||||
<% system = node.title =~ /^\./ %>
|
||||
<% @idnt ||= 0 %>
|
||||
<tr id="<%= node.id %>span" class="<%= cycle('odd', 'even') %> <%= node.css_classes(query.deleted) %> <%= params[:classes] %> <%= @idnt > 0 ? "idnt idnt-#{@idnt}" : nil %>">
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
// Add rows
|
||||
$('#<%= params[:row_id] %>').after('<%= escape_javascript(render(partial: 'dmsf/query_rows', locals: { query: @query })) %>');
|
||||
$('#<%= params[:row_id] %>').after('<%= escape_javascript(render(partial: 'dmsf/query_rows', locals: { query: @query, dmsf_pages: nil })) %>');
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
api.dmsf do
|
||||
|
||||
api.array :dmsf_nodes, api_meta(total_count: @query.dmsf_nodes.count) do
|
||||
@query.dmsf_nodes.each do |node|
|
||||
api.array :dmsf_nodes, api_meta(total_count: @query.dmsf_nodes(offset: @offset, limit: @limit).count) do
|
||||
@query.dmsf_nodes(offset: @offset, limit: @limit).each do |node|
|
||||
api.node do
|
||||
api.id node.id
|
||||
api.title node.title
|
||||
|
||||
@ -94,7 +94,7 @@
|
||||
<%= form_tag(dmsf_folder_path(d: @project, folder_id: @folder), method: :get, id: 'query_form') do %>
|
||||
<%= render partial: 'queries/query_form' %>
|
||||
<% end %>
|
||||
<%= render partial: 'query_list', locals: { query: @query } %>
|
||||
<%= render partial: 'query_list', locals: { query: @query, dmsf_pages: @dmsf_pages } %>
|
||||
<span class="pagination"><%= pagination_links_full @dmsf_pages, @dmsf_count %></span>
|
||||
|
||||
<%= context_menu %>
|
||||
|
||||
@ -218,9 +218,28 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
||||
def test_show
|
||||
@role.add_permission! :view_dmsf_files
|
||||
@role.add_permission! :view_dmsf_folders
|
||||
@role.add_permission! :file_manipulation
|
||||
get :show, params: { id: @project.id }
|
||||
assert_response :success
|
||||
assert_select 'tr.dmsf_tree'
|
||||
# New file link
|
||||
assert_select 'a.icon-add'
|
||||
# Filters
|
||||
assert_select 'fieldset#filters'
|
||||
# Options
|
||||
assert_select 'fieldset#options'
|
||||
# The main table
|
||||
assert_select 'table.dmsf'
|
||||
# CSV export
|
||||
assert_select 'a.csv'
|
||||
end
|
||||
|
||||
def test_show_without_file_manipulation
|
||||
@role.add_permission! :view_dmsf_files
|
||||
@role.add_permission! :view_dmsf_folders
|
||||
get :show, params: { id: @project.id }
|
||||
assert_response :success
|
||||
# New file link should be missing
|
||||
assert_select 'a.icon-add', false, 'Adding files is not allowed'
|
||||
end
|
||||
|
||||
def test_show_csv
|
||||
|
||||
@ -92,6 +92,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest
|
||||
get "/projects/#{@project1.identifier}/dmsf.xml?key=#{token.value}&limit=1&offset=2"
|
||||
assert_response :success
|
||||
assert_equal 'application/xml', @response.content_type
|
||||
puts response.body
|
||||
# <?xml version="1.0" encoding="UTF-8"?>
|
||||
# <dmsf>
|
||||
# <dmsf_nodes total_count="1" type="array">
|
||||
@ -99,10 +100,11 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest
|
||||
# <id>7</id>
|
||||
# <title>folder7</title>
|
||||
# <type>folder</type>
|
||||
# <filename/>
|
||||
# </node>
|
||||
# </dmsf_nodes>
|
||||
# </dmsf>
|
||||
assert_select 'dmsf > dmsf_nodes', count: 1
|
||||
assert_select 'dmsf > dmsf_nodes > node', count: 1
|
||||
assert_select 'dmsf > dmsf_nodes > node > id', text: @folder7.id.to_s
|
||||
assert_select 'dmsf > dmsf_nodes > node > title', text: @folder7.title
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user