# encoding: UTF-8 module Wice module GridViewHelper # View helper to render the list of saved queries and the form to create a new query. # Parameters: # * :extra_parameters - a hash of additional parameters to use when creating a new query object. # Read section "Adding Application Specific Logic to Saving/Restoring Queries" in README for more details. def saved_queries_panel(grid, opts = {}) unless grid.kind_of? WiceGrid raise WiceGridArgumentError.new("saved_queries_panel: the parameter must be a WiceGrid instance.") end options = {:extra_parameters => {}} opts.assert_valid_keys(options.keys) options.merge!(opts) grid_name = grid.name id_and_name = "#{grid_name}_saved_query_name" base_path_to_query_controller = create_serialized_query_url(:grid_name => grid_name) parameters = grid.get_state_as_parameter_value_pairs options[:extra_parameters].each do |k, v| parameters << [ CGI.unescape({:extra => {k => ''}}.to_query.sub(/=$/,'')) , v.to_s ] end parameters << ['authenticity_token', form_authenticity_token] (%!

#{WiceGridNlMessageProvider.get_message(:SAVED_QUERY_PANEL_TITLE)}

! + saved_queries_list(grid_name, grid.saved_query, options[:extra_parameters]) + %!
! + if block_given? view, ids = yield view else '' end + text_field_tag(id_and_name, '', :size => 20, :onkeydown=>'', :id => id_and_name) + button_to_function(WiceGridNlMessageProvider.get_message(:SAVE_QUERY_BUTTON_LABEL), "#{grid_name}_save_query()" ) + '
' + javascript_tag do JsAdaptor.call_to_save_query_and_key_event_initialization_for_saving_queries( id_and_name, grid_name, base_path_to_query_controller, parameters.to_json, ids.to_json ) end ).html_safe end def saved_queries_list(grid_name, saved_query = nil, extra_parameters = nil) #:nodoc: link_title = WiceGridNlMessageProvider.get_message(:SAVED_QUERY_LINK_TITLE) deletion_confirmation = WiceGridNlMessageProvider.get_message(:SAVED_QUERY_DELETION_CONFIRMATION) deletion_link_title = WiceGridNlMessageProvider.get_message(:SAVED_QUERY_DELETION_LINK_TITLE) query_store_model = ::Wice::get_query_store_model currently_loaded_query_id = saved_query ? saved_query.id : nil with = extra_parameters.nil? ? nil : "'" + {:extra => extra_parameters}.to_query + "'" %!' end end end