aaf-lipstick 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/lipstick.rb +1 -0
- data/lib/lipstick/helpers.rb +1 -0
- data/lib/lipstick/helpers/form_helper.rb +11 -8
- data/lib/lipstick/helpers/pagination_link_renderer.rb +3 -2
- data/lib/lipstick/helpers/sortable_helper.rb +41 -0
- data/lib/lipstick/sortable.rb +44 -0
- data/lib/lipstick/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75906600a085f50a0b3d80772c1d5940ae298870
|
4
|
+
data.tar.gz: d6ade2c9c85ad0216b717a27b7e347ac596b4846
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4defc3c82b44fcac690d1b148cb61a80d02ba38f2b91414b13d112de03f0c07d621cf74c5861df692bbd7afd6decfde9a71e0390dbfe5025f011b85201cc223f
|
7
|
+
data.tar.gz: 77cb1e383a77d6a872f1dedb8145ecee7206a83524bb406b3d337fe843f4748adc27523217411a8870c4c0717d7a7e7a2af568883389f3aa8fca97c66524170f
|
data/lib/lipstick.rb
CHANGED
data/lib/lipstick/helpers.rb
CHANGED
@@ -35,21 +35,24 @@ module Lipstick
|
|
35
35
|
form_tag(url_for_options, options) { yield }
|
36
36
|
end
|
37
37
|
|
38
|
-
def search_form_tag(filter, url: nil
|
38
|
+
def search_form_tag(filter, url: nil,
|
39
|
+
placeholder: 'Search within these entries')
|
39
40
|
form_tag(url, method: :get) do
|
40
|
-
field_block { search_form_input_tag(filter) }
|
41
|
+
field_block { search_form_input_tag(filter, placeholder) }
|
41
42
|
end
|
42
43
|
end
|
43
44
|
|
44
|
-
def search_form_input_tag(filter)
|
45
|
+
def search_form_input_tag(filter, placeholder)
|
45
46
|
content_tag('div', class: 'row') do
|
46
|
-
content_tag('div', grouped_search_field(
|
47
|
+
content_tag('div', grouped_search_field(
|
48
|
+
filter, placeholder
|
49
|
+
), class: 'col-lg-12')
|
47
50
|
end
|
48
51
|
end
|
49
52
|
|
50
|
-
def search_filter_text_field(filter)
|
53
|
+
def search_filter_text_field(filter, placeholder)
|
51
54
|
orig_text_field_tag(:filter, filter,
|
52
|
-
placeholder:
|
55
|
+
placeholder: placeholder,
|
53
56
|
autocomplete: 'off',
|
54
57
|
class: 'form-control')
|
55
58
|
end
|
@@ -61,9 +64,9 @@ module Lipstick
|
|
61
64
|
end
|
62
65
|
end
|
63
66
|
|
64
|
-
def grouped_search_field(filter)
|
67
|
+
def grouped_search_field(filter, placeholder)
|
65
68
|
content_tag('div', class: 'input-group') do
|
66
|
-
concat(search_filter_text_field(filter))
|
69
|
+
concat(search_filter_text_field(filter, placeholder))
|
67
70
|
concat(content_tag('span', search_button, class: 'input-group-btn'))
|
68
71
|
end
|
69
72
|
end
|
@@ -121,8 +121,9 @@ module Lipstick
|
|
121
121
|
li_opts = {}
|
122
122
|
li_opts[:class] = 'active' if page == current
|
123
123
|
|
124
|
-
url_opts = template.params.permit(
|
125
|
-
|
124
|
+
url_opts = template.params.permit(
|
125
|
+
:page, :per_page, :filter, :direction, :sort_by
|
126
|
+
).merge(page: page)
|
126
127
|
opts = opts.merge(href: template.url_for(url_opts))
|
127
128
|
|
128
129
|
template.content_tag('li', li_opts) do
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Lipstick
|
4
|
+
module Helpers
|
5
|
+
module SortableHelper
|
6
|
+
include ActionView::Helpers
|
7
|
+
|
8
|
+
def sortable_link(name, param_name = nil)
|
9
|
+
param_name ||= name.parameterize.underscore.downcase
|
10
|
+
direction = Lipstick::Sortable.direction(params[:direction])
|
11
|
+
opposite_direction =
|
12
|
+
Lipstick::Sortable.opposite_direction(params[:direction])
|
13
|
+
|
14
|
+
if params[:sort_by] == param_name
|
15
|
+
sortable_active_link(name, param_name, direction, opposite_direction)
|
16
|
+
else
|
17
|
+
link_to name, sort_by: param_name, direction: direction
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def sortable_active_link(name, param_name, direction, opposite_direction)
|
24
|
+
link_to sort_by: param_name, direction: opposite_direction do
|
25
|
+
concat("#{name} ")
|
26
|
+
concat(
|
27
|
+
content_tag('div', class: 'glyphicon') do
|
28
|
+
content_tag('div',
|
29
|
+
class: "glyphicon-chevron-#{icon(direction)}") do
|
30
|
+
end
|
31
|
+
end
|
32
|
+
)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def icon(direction)
|
37
|
+
direction == 'asc' ? 'up' : 'down'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Lipstick
|
4
|
+
module Sortable
|
5
|
+
class << self
|
6
|
+
DIRECTIONS = %w[asc desc].freeze
|
7
|
+
|
8
|
+
def direction(direction)
|
9
|
+
direction = DIRECTIONS.find { |x| x == direction&.downcase }
|
10
|
+
direction ||= DIRECTIONS.first
|
11
|
+
|
12
|
+
direction
|
13
|
+
end
|
14
|
+
|
15
|
+
def opposite_direction(direction)
|
16
|
+
(DIRECTIONS - [direction(direction)]).first
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module ClassMethods
|
21
|
+
attr_reader :sortable_by_cases, :sortable_by_else
|
22
|
+
|
23
|
+
def sortable_by(sort_cases, sort_else)
|
24
|
+
@sortable_by_cases = sort_cases
|
25
|
+
@sortable_by_else = sort_else
|
26
|
+
end
|
27
|
+
|
28
|
+
def sortable_sort(sort_by, direction)
|
29
|
+
sort_by = sort_by&.to_sym
|
30
|
+
direction = Lipstick::Sortable.direction(direction)
|
31
|
+
|
32
|
+
if sort_by && sortable_by_cases.key?(sort_by)
|
33
|
+
sortable_by_cases[sort_by].call(direction)
|
34
|
+
else
|
35
|
+
sortable_by_else.call(direction)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.included(base)
|
41
|
+
base.extend(ClassMethods)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/lipstick/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aaf-lipstick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shaun Mangelsdorf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: erubis
|
@@ -321,9 +321,11 @@ files:
|
|
321
321
|
- lib/lipstick/helpers/layout_helper.rb
|
322
322
|
- lib/lipstick/helpers/nav_helper.rb
|
323
323
|
- lib/lipstick/helpers/pagination_link_renderer.rb
|
324
|
+
- lib/lipstick/helpers/sortable_helper.rb
|
324
325
|
- lib/lipstick/images.rb
|
325
326
|
- lib/lipstick/images/email_banner.rb
|
326
327
|
- lib/lipstick/images/processor.rb
|
328
|
+
- lib/lipstick/sortable.rb
|
327
329
|
- lib/lipstick/version.rb
|
328
330
|
homepage: https://github.com/ausaccessfed/aaf-lipstick
|
329
331
|
licenses:
|