ndr_ui 2.1.1 → 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/README.md +1 -1
- data/app/assets/javascripts/ndr_ui/datepicker.js +1 -1
- data/app/assets/javascripts/ndr_ui/timeago.js +1 -1
- data/app/assets/stylesheets/ndr_ui/datepicker.scss +1 -1
- data/app/builders/ndr_ui/bootstrap/label_tooltips.rb +11 -1
- data/app/helpers/ndr_ui/bootstrap_helper.rb +52 -4
- data/app/helpers/ndr_ui/css_helper.rb +1 -1
- data/config/routes.rb +3 -0
- data/lib/ndr_ui/engine.rb +7 -1
- data/lib/ndr_ui/version.rb +1 -1
- data/vendor/assets/datepicker-scss-fix/bootstrap-datepicker-scss-fix.scss +1 -0
- metadata +31 -23
- data/vendor/assets/bootstrap-datepicker.scss +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 948171552053d8201249a7ad4d0b1aff5743a844c01339dfac66f7458307e03f
|
4
|
+
data.tar.gz: 27d8fa3cc83c56584f3c5a2caf786216143794b3632d867f1cb8fd25412b76fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3c9dd26dc4dec27e06208b20f8c606466dd0fff4570e32874b76fd44a9a9b65eba252449f66aeb322f0cb6f00584dd4b7650f8780897b157c2c809a95131c7f
|
7
|
+
data.tar.gz: 32d327a35c5656866922cdcf7c0f2a9badcfa47ca53f5a064b85eed5f507ec6c3b76ae1a247072cea612dcc5c2695480130d4ad27a7ffa2cb511e368c13eaaa0
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# NdrUi [](https://github.com/publichealthengland/ndr_ui/actions?query=workflow%3Atest) [](https://rubygems.org/gems/ndr_ui) [](https://www.rubydoc.info/gems/ndr_ui)
|
2
2
|
|
3
3
|
This is the Public Health England (PHE) National Disease Registration (NDR) User Interface rubygem,
|
4
4
|
providing a set of core features:
|
@@ -1 +1 @@
|
|
1
|
-
//= require
|
1
|
+
//= require js/bootstrap-datepicker
|
@@ -13,7 +13,17 @@ module NdrUi
|
|
13
13
|
# See the source code for ActionView::Helpers::Tags::Label for more.
|
14
14
|
#
|
15
15
|
# QUESTION: Parameterise the tooltip so we're not just bound to a question_tooltip ?
|
16
|
-
def label(method,
|
16
|
+
def label(method, content_or_options = nil, options = nil, &block)
|
17
|
+
options ||= {}
|
18
|
+
|
19
|
+
content_is_options = content_or_options.is_a?(Hash)
|
20
|
+
if content_is_options
|
21
|
+
options.merge! content_or_options
|
22
|
+
text = nil
|
23
|
+
else
|
24
|
+
text = content_or_options
|
25
|
+
end
|
26
|
+
|
17
27
|
tooltip_text = options.delete(:tooltip)
|
18
28
|
|
19
29
|
super(method, text, options) do |builder|
|
@@ -227,9 +227,15 @@ module NdrUi
|
|
227
227
|
if horizontal = options.delete(:horizontal)
|
228
228
|
# set the form html class for horizontal bootstrap forms
|
229
229
|
options[:html][:class] ||= ''
|
230
|
-
|
230
|
+
classes = (options[:html][:class].split(' ') << 'form-horizontal').uniq.join(' ')
|
231
|
+
options[:html][:class] = classes
|
231
232
|
end
|
232
233
|
|
234
|
+
# stimuls controller, default `form_controller`
|
235
|
+
options[:html][:'data-controller'] ||= ''
|
236
|
+
controllers = (options[:html][:'data-controller'].split(' ') << 'form').uniq.join(' ')
|
237
|
+
options[:html][:'data-controller'] = controllers
|
238
|
+
|
233
239
|
# We switch autocomplete off by default
|
234
240
|
raise 'autocomplete should be defined an html option' if options[:autocomplete]
|
235
241
|
options[:html][:autocomplete] ||= 'off'
|
@@ -258,6 +264,11 @@ module NdrUi
|
|
258
264
|
options[:html][:class] = classes
|
259
265
|
end
|
260
266
|
|
267
|
+
# stimuls controller, default `form_controller`
|
268
|
+
options[:html][:'data-controller'] ||= ''
|
269
|
+
controllers = (options[:html][:'data-controller'].split(' ') << 'form').uniq.join(' ')
|
270
|
+
options[:html][:'data-controller'] = controllers
|
271
|
+
|
261
272
|
# We switch autocomplete off by default
|
262
273
|
raise 'autocomplete should be defined an html option' if options[:autocomplete]
|
263
274
|
options[:html][:autocomplete] ||= 'off'
|
@@ -434,6 +445,36 @@ module NdrUi
|
|
434
445
|
content_tag(:div, capture(&block), class: 'btn-group')
|
435
446
|
end
|
436
447
|
|
448
|
+
# Creates a Boostrap 'New' link.
|
449
|
+
#
|
450
|
+
# ==== Signatures
|
451
|
+
#
|
452
|
+
# new_link(path, options = {})
|
453
|
+
#
|
454
|
+
# ==== Examples
|
455
|
+
#
|
456
|
+
# <%= new_link('#') %>
|
457
|
+
# # => <a title="New" class="btn btn-primary btn-xs" href="#">
|
458
|
+
# <span class="glyphicon glyphicon-plus-sign"></span>
|
459
|
+
# </a>
|
460
|
+
#
|
461
|
+
# <%= new_link(Post.new) %>
|
462
|
+
# # => <a title="New" class="btn btn-primary btn-xs" href="/posts/new">
|
463
|
+
# <span class="glyphicon glyphicon-plus-sign"></span>
|
464
|
+
# </a>
|
465
|
+
#
|
466
|
+
def new_link(path, options = {})
|
467
|
+
return unless options.delete(:skip_authorization) || ndr_can?(:new, path)
|
468
|
+
|
469
|
+
path = new_polymorphic_path(path) if can_generate_polymorphic_path?(path)
|
470
|
+
|
471
|
+
defaults = {
|
472
|
+
icon: 'plus-sign', title: 'New', path: path, class: 'btn btn-primary btn-xs'
|
473
|
+
}
|
474
|
+
|
475
|
+
link_to_with_icon(defaults.merge(options))
|
476
|
+
end
|
477
|
+
|
437
478
|
# Creates a Boostrap 'Details' link.
|
438
479
|
#
|
439
480
|
# ==== Signatures
|
@@ -448,7 +489,7 @@ module NdrUi
|
|
448
489
|
# </a>
|
449
490
|
#
|
450
491
|
def details_link(path, options = {})
|
451
|
-
return unless ndr_can?(:read, path)
|
492
|
+
return unless options.delete(:skip_authorization) || ndr_can?(:read, path)
|
452
493
|
|
453
494
|
link_to_with_icon({ icon: 'share-alt', title: 'Details', path: path }.merge(options))
|
454
495
|
end
|
@@ -467,7 +508,7 @@ module NdrUi
|
|
467
508
|
# </a>
|
468
509
|
#
|
469
510
|
def edit_link(path, options = {})
|
470
|
-
return unless ndr_can?(:edit, path)
|
511
|
+
return unless options.delete(:skip_authorization) || ndr_can?(:edit, path)
|
471
512
|
|
472
513
|
path = edit_polymorphic_path(path) if path.is_a?(ActiveRecord::Base)
|
473
514
|
|
@@ -488,7 +529,7 @@ module NdrUi
|
|
488
529
|
# <span class="glyphicon glyphicon-trash icon-white"></span>
|
489
530
|
# </a>'
|
490
531
|
def delete_link(path, options = {})
|
491
|
-
return unless ndr_can?(:delete, path)
|
532
|
+
return unless options.delete(:skip_authorization) || ndr_can?(:delete, path)
|
492
533
|
|
493
534
|
defaults = {
|
494
535
|
icon: 'trash icon-white', title: 'Delete', path: path,
|
@@ -563,5 +604,12 @@ module NdrUi
|
|
563
604
|
|
564
605
|
can?(action, subject, *extra_args)
|
565
606
|
end
|
607
|
+
|
608
|
+
def can_generate_polymorphic_path?(path)
|
609
|
+
case path
|
610
|
+
when Array, ActiveRecord::Base then true
|
611
|
+
else false
|
612
|
+
end
|
613
|
+
end
|
566
614
|
end
|
567
615
|
end
|
@@ -3,7 +3,7 @@ module NdrUi
|
|
3
3
|
module CssHelper
|
4
4
|
# This method merges the specified css_classes into the options hash
|
5
5
|
def css_class_options_merge(options, css_classes = [], &block)
|
6
|
-
options.symbolize_keys
|
6
|
+
options = options.symbolize_keys
|
7
7
|
css_classes += options[:class].split(' ') if options.include?(:class)
|
8
8
|
yield(css_classes) if block_given?
|
9
9
|
options[:class] = css_classes.join(' ') unless css_classes.empty?
|
data/config/routes.rb
CHANGED
data/lib/ndr_ui/engine.rb
CHANGED
@@ -6,7 +6,13 @@ module NdrUi
|
|
6
6
|
class Engine < ::Rails::Engine
|
7
7
|
isolate_namespace NdrUi
|
8
8
|
|
9
|
-
|
9
|
+
# Hook into host app's asset pipeline, allowing all the gem's assets
|
10
|
+
# to be complied alongside. This allows the gem's assets to be referenced
|
11
|
+
# directly by templates without issue, rather than needing to go via
|
12
|
+
# an asset manifest in the host.
|
13
|
+
initializer 'ndr_ui.assets.precompile' do |app|
|
14
|
+
app.config.assets.precompile += %w(*.scss *.js *.gif)
|
15
|
+
end
|
10
16
|
|
11
17
|
# We configure the generator of the host app
|
12
18
|
config.app_generators do |g|
|
data/lib/ndr_ui/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
./../bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.css
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ndr_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NDR Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -31,33 +31,33 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '7.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: sprockets
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
39
|
+
version: '4.0'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
46
|
+
version: '4.0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
name: sass
|
48
|
+
name: bootstrap-sass
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - "
|
51
|
+
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 3.4.1
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - "
|
58
|
+
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: 3.4.1
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: jquery-rails
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,22 +118,16 @@ dependencies:
|
|
118
118
|
name: ndr_dev_support
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '3.1'
|
124
121
|
- - ">="
|
125
122
|
- !ruby/object:Gem::Version
|
126
|
-
version:
|
123
|
+
version: 5.10.2
|
127
124
|
type: :development
|
128
125
|
prerelease: false
|
129
126
|
version_requirements: !ruby/object:Gem::Requirement
|
130
127
|
requirements:
|
131
|
-
- - "~>"
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '3.1'
|
134
128
|
- - ">="
|
135
129
|
- !ruby/object:Gem::Version
|
136
|
-
version:
|
130
|
+
version: 5.10.2
|
137
131
|
- !ruby/object:Gem::Dependency
|
138
132
|
name: simplecov
|
139
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,6 +156,20 @@ dependencies:
|
|
162
156
|
- - "~>"
|
163
157
|
- !ruby/object:Gem::Version
|
164
158
|
version: 1.1.0
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: puma
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
165
173
|
description: Provides Rails applications with additional support for the Twitter Bootstrap
|
166
174
|
UI framework
|
167
175
|
email: []
|
@@ -287,7 +295,7 @@ files:
|
|
287
295
|
- vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.vi.min.js
|
288
296
|
- vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.zh-CN.min.js
|
289
297
|
- vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.zh-TW.min.js
|
290
|
-
- vendor/assets/bootstrap-datepicker.scss
|
298
|
+
- vendor/assets/datepicker-scss-fix/bootstrap-datepicker-scss-fix.scss
|
291
299
|
- vendor/assets/jquery-timeago-1.5.3/jquery.timeago.js
|
292
300
|
- vendor/assets/jquery-timeago-1.5.3/locales/README.md
|
293
301
|
- vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.af.js
|
@@ -367,14 +375,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
367
375
|
requirements:
|
368
376
|
- - ">="
|
369
377
|
- !ruby/object:Gem::Version
|
370
|
-
version: 2.
|
378
|
+
version: 2.6.0
|
371
379
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
372
380
|
requirements:
|
373
381
|
- - ">="
|
374
382
|
- !ruby/object:Gem::Version
|
375
383
|
version: '0'
|
376
384
|
requirements: []
|
377
|
-
rubygems_version: 3.
|
385
|
+
rubygems_version: 3.1.6
|
378
386
|
signing_key:
|
379
387
|
specification_version: 4
|
380
388
|
summary: NDR UI Rails Engine
|
@@ -1 +0,0 @@
|
|
1
|
-
./bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.css
|