Sha256: e4588056341b1587d2730e0f29b1500078d9c9f8c27c7dc0c72d45fe90a7561d

Contents?: true

Size: 1.42 KB

Versions: 42

Compression:

Stored size: 1.42 KB

Contents

module PgAssociable
  module Helpers
    MAX_RESULTS = 8

    def pg_respond_abrir_modal
      src = clase_modelo.new.decorate.new_object_url
      turbo_frame_id = "modal_content_#{params[:id]}"
      content = ModalContentComponent.new(src:, turbo_frame_id:).render_in(view_context)
      modal = AsociableModalComponent.new(modal_id: params[:id]).with_content(content)
      render turbo_stream: turbo_stream.append_all('body', modal)
    end

    def pg_respond_buscar
      partial = 'pg_associable/resultados_inline'
      resultados_prefix = 'resultados-inline'
      query = params[:query]
      timeout_id = params[:timeout_id]
      @collection = search_in_scope(query)
      render turbo_stream:
        turbo_stream.update("#{resultados_prefix}-#{params[:id]}",
                            partial:, locals: { collection: @collection, query:, timeout_id:, clase_modelo: })
    end

    def search_in_scope(query)
      scope = policy_scope(clase_modelo).kept

      if clase_modelo.ransackable_attributes.include?('search')
        scope.ransack(search_cont: query).result
      else
        Rails.logger.warn("WARNING: #{clase_modelo} should implement a 'search' ransacker")

        if scope.respond_to?(:query)
          Rails.logger.warn("DEPRECATED WARNING: #{clase_modelo}#query is deprecated in favor of 'search' ransacker")
          scope.query(query)
        else
          scope.where(id: query)
        end
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
pg_rails-7.6.35 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.34 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.33 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.32 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.31 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.30 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.29 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.28 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.27 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.26 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.25 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.24 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.24.pre.5 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.24.pre.4 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.24.pre.3 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.23 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.22 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.22.pre.3 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.22.pre.2 pg_associable/app/helpers/pg_associable/helpers.rb
pg_rails-7.6.22.pre.1 pg_associable/app/helpers/pg_associable/helpers.rb