diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index 45e70e15..b4a462b9 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -69,18 +69,30 @@ class DmsfController < ApplicationController render_404 return end - respond_to do |format| - format.html { - @dmsf_count = @query.dmsf_count - @dmsf_pages = Paginator.new @dmsf_count, per_page_option, params['page'] - render layout: !request.xhr? - } - 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' - } + if @query.valid? + respond_to do |format| + format.html { + @dmsf_count = @query.dmsf_count + @dmsf_pages = Paginator.new @dmsf_count, per_page_option, params['page'] + render layout: !request.xhr? + } + 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' + } + end + else + respond_to do |format| + format.html { + @dmsf_count = 0 + @dmsf_pages = Paginator.new @dmsf_count, per_page_option, params['page'] + render layout: !request.xhr? + } + format.any(:atom, :csv, :pdf) { head 422 } + format.api { render_validation_errors(@query) } + end end end diff --git a/app/models/dmsf_query.rb b/app/models/dmsf_query.rb index 709d7cce..3e8eff9e 100644 --- a/app/models/dmsf_query.rb +++ b/app/models/dmsf_query.rb @@ -132,6 +132,12 @@ class DmsfQuery < Query @statement end + def validate_query_filters + # Skip validation for empty title (default filter) + filters.delete('title') + super + end + ###################################################################################################################### # New diff --git a/app/views/dmsf/show.html.erb b/app/views/dmsf/show.html.erb index 21609a6c..152ff335 100644 --- a/app/views/dmsf/show.html.erb +++ b/app/views/dmsf/show.html.erb @@ -75,8 +75,14 @@ <%= hidden_field_tag('folder_id', @folder.id) if @folder %> <%= render partial: 'queries/query_form' %> <% end %> -<%= render partial: 'query_list', locals: { query: @query, dmsf_pages: @dmsf_pages } %> -<%= pagination_links_full @dmsf_pages, @dmsf_count %> +<% if @query.valid? %> + <% if @dmsf_count == 0 %> +

<%= l(:label_no_data) %>

+ <% else %> + <%= render partial: 'query_list', locals: { query: @query, dmsf_pages: @dmsf_pages } %> + <%= pagination_links_full @dmsf_pages, @dmsf_count %> + <% end %> +<% end %> <%= context_menu %>