Module: Pagy::ItemsExtra::FrontendAddOn
- Included in:
- Frontend
- Defined in:
- lib/pagy/extras/items.rb
Overview
Additions for the Frontend module
Constant Summary collapse
- ITEMS_TOKEN =
'__pagy_items__'
Instance Method Summary collapse
-
#pagy_items_selector_js(pagy, id: nil, item_name: nil) ⇒ Object
Return the items selector HTML.
Instance Method Details
#pagy_items_selector_js(pagy, id: nil, item_name: nil) ⇒ Object
Return the items selector HTML. For example “Show [20] items per page”
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/pagy/extras/items.rb', line 39 def pagy_items_selector_js(pagy, id: nil, item_name: nil) return '' unless pagy.vars[:items_extra] id = %( id="#{id}") if id vars = pagy.vars items = vars[:items] vars[:items] = ITEMS_TOKEN url_token = pagy_url_for(pagy, PAGE_TOKEN) vars[:items] = items # restore the items items_input = %(<input name="items" type="number" min="1" max="#{vars[:max_items]}" value="#{ items}" style="padding: 0; text-align: center; width: #{items.to_s.length + 1}rem;">#{JSTools::A_TAG}) %(<span#{id} class="pagy items-selector-js" #{ pagy_data(pagy, :selector, pagy.from, url_token) }><label>#{ pagy_t('pagy.items_selector_js', item_name: item_name || pagy_t('pagy.item_name', count: items), items_input:, count: items) }</label></span>) end |