nfg_ui 0.9.25.1 → 0.9.26

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: ec3b70ae7051efe92d40624061253b89244a822ed4e9c772cd84bbb8b49baa42
4
- data.tar.gz: b95dd56458f11d6f582a5ee6a431de1279a27139246117cc1d30a944f66d0974
3
+ metadata.gz: 82b64730f847483e3b6c20b79bbf114b0c355b3e86f7e9b04b373d54e022473e
4
+ data.tar.gz: 9241eb15472f1e0b230919776f5c1a683256f67fbacf6cc46ffe5b3141001466
5
5
  SHA512:
6
- metadata.gz: 684f1a8bf2f4835cc8a60954408d7adbb0ce7645b1cde5d2f4b42ce5eda8444db9322d9f66a6d33be37d5f51e00f120f83e3a7ad692c66ff98330d453617c0a7
7
- data.tar.gz: 503d701a92e750f0e66a39136a50857da0cb1a2b9499d17871d6b20680486fad5363db9fa5e3bb239ed0d1870aa39a8de96ccf6d3cc6026465c2c367f597048d
6
+ metadata.gz: f81a58ce5fd944f2ffe55b0d9c99567af5c2d41d7853fb50b700944a064fad56e03fc05b26c2607c38dcb71ad07a109cdfddad0cbb9c6e07b66f3a4d06fb6214
7
+ data.tar.gz: 37a9c02b3fbfb25869e5d6014c0ed524f65e7498250f5c249b640448feb81c4a945310324b90c0cacf1d355d36123b982fb5db2db760bcb6aaa4e6727dcc4977
@@ -5,9 +5,11 @@ module NfgUi
5
5
  module Patterns
6
6
  # PageHeader doc coming soon
7
7
  class PageHeader < NfgUi::Components::Base
8
- include NfgUi::Components::Utilities::Titleable
9
8
  include NfgUi::Components::Utilities::BrowserDetectable
9
+ include NfgUi::Components::Utilities::Iconable
10
10
  include NfgUi::Components::Utilities::Renderable
11
+ include NfgUi::Components::Utilities::ResourceThemeable
12
+ include NfgUi::Components::Utilities::Titleable
11
13
 
12
14
  include NfgUi::Components::Traits::PageHeader
13
15
 
@@ -24,14 +26,13 @@ module NfgUi
24
26
  options.fetch(:subtitle, nil)
25
27
  end
26
28
 
27
- # TODO: These resource_theme methods are just temporary placeholders.
28
- # They need to come from ResourceThemeable somehow.
29
29
  def resource_theme_icon
30
- 'heart-o'
31
- end
32
-
33
- def resource_theme_color
34
- 'primary'
30
+ # Prefer :icon in options over resource_theme_icon autolookup
31
+ # #icon is made available by Iconable,
32
+ # effectively allowing `icon: 'example'` to overwrite
33
+ # the auto resource_theme_icon version.
34
+ return icon if icon.present?
35
+ super
35
36
  end
36
37
 
37
38
  def render
@@ -52,9 +53,12 @@ module NfgUi
52
53
  })
53
54
  concat(NfgUi::Components::Elements::MediaBody.new({}, view_context).render {
54
55
  content_tag(:h2) do
55
- concat(title)
56
56
  if subtitle
57
+ concat(content_tag(:span, title, class: 'mr-2'))
57
58
  concat(content_tag(:small, subtitle, class: 'text-muted'))
59
+
60
+ else
61
+ concat(title)
58
62
  end
59
63
  end
60
64
  })
@@ -5,11 +5,14 @@ module NfgUi
5
5
  module Utilities
6
6
  # The library of dedicated theme resources in Evo & DMS
7
7
  module ResourceThemeable
8
- # attr_reader :view_context
9
-
8
+ # This method represents an existential question
9
+ # for the UX team at NFG
10
+ #
11
+ # For now, we are defaulting everything to primary
12
+ # However, the structure is in place to facilitate
13
+ # resource specific theming ala Donor Management.
10
14
  def resource_theme_color(object = nil)
11
- resource_theme_name = resource_theme_name(object)
12
- case resource_theme_name
15
+ case resource_theme_name(object)
13
16
  when 'Project'
14
17
  'primary'
15
18
  when 'Campaign'
@@ -19,29 +22,67 @@ module NfgUi
19
22
  end
20
23
  end
21
24
 
25
+ def resource_theme_icon(object = nil)
26
+ case resource_theme_name(object)
27
+ when 'Newsletter'
28
+ 'at'
29
+ when 'Report'
30
+ 'bar-chart'
31
+ when 'Campaign', 'Project', 'Cause', 'Event'
32
+ 'bullhorn'
33
+ when 'Entity'
34
+ 'cog'
35
+ when 'PaymentGatewayProfile'
36
+ 'credit-card'
37
+ when 'Donation', 'Order'
38
+ 'dollar'
39
+ when 'CustomContent', 'SiteContent'
40
+ 'file-text-o'
41
+ when 'Donor', 'Admin'
42
+ 'user'
43
+ when 'Integration'
44
+ 'exchange'
45
+ when 'RecurringDonation'
46
+ 'refresh'
47
+ else
48
+ 'heart-o'
49
+ end
50
+ end
51
+
22
52
  def resource_theme_name(object = nil)
53
+ # If an object is included:
23
54
  if object.present?
24
55
  if object.is_a?(String)
25
56
  object
26
57
  elsif object.is_a?(Class)
27
58
  object.name
59
+ elsif object.is_a?(Symbol)
60
+ object.to_s.classify
28
61
  else
29
62
  object.class.name
30
63
  end
64
+
65
+ # If this method was called from a view as a normal helper method,
66
+ # check for controller_name
67
+ elsif defined?(controller_name)
68
+ formatted_controller_name(controller_name)
69
+
70
+ # If this method was called from within a design system component
71
+ # then seek the defined view_context
72
+ elsif defined?(view_context)
73
+ formatted_controller_name(view_context.controller_name)
74
+
75
+ # If nothing responds, return an empty string
31
76
  else
32
- controller_name.split('/').last.classify
77
+ ''
33
78
  end
34
79
  end
35
80
 
36
- def resource_theme_icon(object = nil)
37
- case resource_theme_name(object)
38
- when 'Project'
39
- 'bullhorn'
40
- when 'Campaign'
41
- 'bullhorn'
42
- else
43
- 'heart-o'
44
- end
81
+ private
82
+
83
+ # Centralizes how we format the controller name for interpretation in our cases
84
+ def formatted_controller_name(controller_name_string)
85
+ controller_name_string.split('/').last.classify
45
86
  end
46
87
  end
47
88
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NfgUi
4
- VERSION = '0.9.25.1'
4
+ VERSION = '0.9.26'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nfg_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.25.1
4
+ version: 0.9.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Roehm
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-12-03 00:00:00.000000000 Z
12
+ date: 2019-12-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bootstrap