card-mod-search 0.13.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d2c41c085b8eb301c35162e9420fc6ce64c6f6358882cc72435ec58bb9ff3599
4
- data.tar.gz: ae45ad7dc3c8ac26cbf354cbc629ed774ba0413445d0050c7e3ac0de9a7f99a6
3
+ metadata.gz: 6d71f9c2f41da5531f7869b4a9164a06cebbc58b0bfa7585ba51aa28407622d0
4
+ data.tar.gz: e7e03c62bc64626164fba8789a5bab61040a3a2902dddad67ad96cc1f8846a5d
5
5
  SHA512:
6
- metadata.gz: 69a8ab993b649b68a7a55f36becd95eb79b15ffdd1bba11883d8fe3c58f806529dbbddae172d76e3f2a80044afea247388d57e0ae7817586d8c29cadf4176074
7
- data.tar.gz: 1435084c74d3b0e08f706990fee28e153f46c3d2afd084b2f7eb9d237c13000f30ba7dd59f1cca021346eb3884f882aa318cb6a24bd2ba6754157c8c079e62b5
6
+ metadata.gz: 7465ca832ed477fc2a3d6665c26dac1caac9d8a10c602b46751a39cb8725b62f88de4663b0b00d5fd0eafd5f4b93a3b9de03b75b193f039420485612ee062e14
7
+ data.tar.gz: f80dc473d2607546a3267e94613a2bc6f2d48557c6b1677414c390b40f72ead61b8157e564257618e5d2aab2dcce942ceba87827d1e23b972cbed043d3aefb0e
@@ -25,7 +25,7 @@ class Card
25
25
  @filter_cql[cql_key] << val
26
26
  end
27
27
  else
28
- send("#{key}_cql", value)
28
+ send "#{key}_cql", value
29
29
  end
30
30
  end
31
31
 
@@ -85,7 +85,7 @@ format :html do
85
85
  end
86
86
 
87
87
  def filter_label_from_name field
88
- Card.fetch_name(field) { field.to_s.titleize }
88
+ Card.fetch_name(field) { field.to_s.sub(/^\*/, "").titleize }
89
89
  end
90
90
 
91
91
  def filter_action_path
@@ -22,6 +22,7 @@ format :html do
22
22
  view :filtered_content, template: :haml, wrap: :slot
23
23
 
24
24
  view :filtered_results do
25
+ class_up "card-slot", "_filter-result-slot"
25
26
  wrap { render_core }
26
27
  end
27
28
 
@@ -13,9 +13,7 @@ end
13
13
 
14
14
  def item_type
15
15
  type = cql_hash[:type]
16
- return if type.is_a?(Array) || type.is_a?(Hash)
17
-
18
- type
16
+ type unless type.is_a?(Array) || type.is_a?(Hash)
19
17
  end
20
18
 
21
19
  # for override, eg when required subqueries are known to be missing
@@ -0,0 +1,11 @@
1
+ def cql_content
2
+ { referred_to_by: "_" }
3
+ end
4
+
5
+ def item_cards args={}
6
+ standard_item_cards args
7
+ end
8
+
9
+ def count
10
+ item_strings.size
11
+ end
@@ -0,0 +1,59 @@
1
+ format do
2
+ view :core, cache: :never do
3
+ _render search_result_view
4
+ end
5
+
6
+ def search_result_view
7
+ case search_with_params
8
+ when Exception then :search_error
9
+ when Integer then :search_count
10
+ when nest_mode == :template then :raw
11
+ else :card_list
12
+ end
13
+ end
14
+ end
15
+
16
+ format :rss do
17
+ view :feed_body do
18
+ case raw_feed_items
19
+ when Exception then @xml.item(render!(:search_error))
20
+ when Integer then @xml.item(render!(:search_count))
21
+ else super()
22
+ end
23
+ end
24
+
25
+ def raw_feed_items
26
+ @raw_feed_items ||= search_with_params
27
+ end
28
+ end
29
+
30
+ format :html do
31
+ view :core do
32
+ _render search_result_view
33
+ end
34
+
35
+ view :bar do
36
+ voo.hide :one_line_content
37
+ super()
38
+ end
39
+
40
+ view :one_line_content, cache: :never do
41
+ if depth > max_depth
42
+ "..."
43
+ else
44
+ search_params[:limit] = closed_limit
45
+ _render_core hide: "paging", items: { view: :link }
46
+ # TODO: if item is queryified to be "name", then that should work.
47
+ # otherwise use link
48
+ end
49
+ end
50
+
51
+ def rss_link_tag
52
+ path_opts = { format: :rss }
53
+ Array(search_params[:vars]).compact.each { |k, v| opts["_#{k}"] = v }
54
+ tag "link", rel: "alternate",
55
+ type: "application/rss+xml",
56
+ title: "RSS",
57
+ href: path(path_opts)
58
+ end
59
+ end
data/set/self/recent.rb CHANGED
@@ -27,9 +27,3 @@ format :rss do
27
27
  render_blank
28
28
  end
29
29
  end
30
-
31
- format :json do
32
- def items_for_export
33
- card.item_cards limit: 20
34
- end
35
- end
data/set/self/search.rb CHANGED
@@ -63,7 +63,7 @@ format :json do
63
63
  !exact.virtual? &&
64
64
  exact.ok?(:create)
65
65
 
66
- [h(exact.name), CGI.escape(exact.name)]
66
+ [h(exact.name), ERB::Util.url_encode(exact.name)]
67
67
  end
68
68
 
69
69
  def new_item_of_type exact
@@ -1,81 +1,9 @@
1
1
  include_set Type::Json
2
2
  include_set Abstract::CqlSearch
3
+ include_set Abstract::SearchViews
3
4
 
4
5
  format do
5
- view :core, cache: :never do
6
- _render search_result_view
7
- end
8
-
9
6
  def chunk_list
10
7
  :query
11
8
  end
12
-
13
- def search_result_view
14
- case search_with_params
15
- when Exception then :search_error
16
- when Integer then :search_count
17
- when nest_mode == :template then :raw
18
- else :card_list
19
- end
20
- end
21
- end
22
-
23
- format :json do
24
- def items_for_export
25
- return [] if card.content.empty? || unexportable_tag?(card.name.tag_name.key)
26
-
27
- card.item_cards
28
- end
29
-
30
- # avoid running the search from +:content_options (huge results)
31
- # and +:structure (errors)
32
- # TODO: make this configurable in set mods
33
- def unexportable_tag? tag_key
34
- %i[content_options structure].map { |code| code.cardname.key }.include? tag_key
35
- end
36
- end
37
-
38
- format :rss do
39
- view :feed_body do
40
- case raw_feed_items
41
- when Exception then @xml.item(render!(:search_error))
42
- when Integer then @xml.item(render!(:search_count))
43
- else super()
44
- end
45
- end
46
-
47
- def raw_feed_items
48
- @raw_feed_items ||= search_with_params
49
- end
50
- end
51
-
52
- format :html do
53
- view :core do
54
- _render search_result_view
55
- end
56
-
57
- view :bar do
58
- voo.hide :one_line_content
59
- super()
60
- end
61
-
62
- view :one_line_content, cache: :never do
63
- if depth > max_depth
64
- "..."
65
- else
66
- search_params[:limit] = closed_limit
67
- _render_core hide: "paging", items: { view: :link }
68
- # TODO: if item is queryified to be "name", then that should work.
69
- # otherwise use link
70
- end
71
- end
72
-
73
- def rss_link_tag
74
- path_opts = { format: :rss }
75
- Array(search_params[:vars]).compact.each { |k, v| opts["_#{k}"] = v }
76
- tag "link", rel: "alternate",
77
- type: "application/rss+xml",
78
- title: "RSS",
79
- href: path(path_opts)
80
- end
81
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card-mod-search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-08-06 00:00:00.000000000 Z
13
+ date: 2021-12-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: card
@@ -18,28 +18,28 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.103.1
21
+ version: 1.104.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 1.103.1
28
+ version: 1.104.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: card-mod-collection
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.13.1
35
+ version: 0.14.0
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.13.1
42
+ version: 0.14.0
43
43
  description: ''
44
44
  email:
45
45
  - info@decko.org
@@ -59,14 +59,15 @@ files:
59
59
  - set/abstract/03_filter/query_construction.rb
60
60
  - set/abstract/03_filter/quick_filters.haml
61
61
  - set/abstract/03_filter/selectable_filtered_content.haml
62
- - set/abstract/04_right_filter_form.rb
63
62
  - set/abstract/05_search.rb
64
63
  - set/abstract/05_search/checkbox_item.haml
65
64
  - set/abstract/05_search/select_item.haml
66
65
  - set/abstract/05_search/views.rb
67
66
  - set/abstract/06_cql_search.rb
67
+ - set/abstract/filter_list.rb
68
68
  - set/abstract/filterable.rb
69
69
  - set/abstract/filterable_bar.rb
70
+ - set/abstract/search_views.rb
70
71
  - set/right/children.rb
71
72
  - set/right/created.rb
72
73
  - set/right/edited.rb
@@ -108,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
109
  - !ruby/object:Gem::Version
109
110
  version: '0'
110
111
  requirements: []
111
- rubygems_version: 3.1.6
112
+ rubygems_version: 3.2.15
112
113
  signing_key:
113
114
  specification_version: 4
114
115
  summary: search
@@ -1,26 +0,0 @@
1
- # To be included in a field card to get a filter for the parent.
2
- # The core view renders a filter for the left card.
3
-
4
- include_set Set::Abstract::Filter
5
-
6
- def virtual?
7
- new?
8
- end
9
-
10
- format :html do
11
- def filter_action_path
12
- path mark: card.name.left, view: filter_view
13
- end
14
-
15
- view :core, cache: :never do
16
- filter_fields slot_selector: filter_selector
17
- end
18
-
19
- def filter_view
20
- :filter_result
21
- end
22
-
23
- def filter_selector
24
- ".#{filter_view}-view"
25
- end
26
- end