govuk_admin_template 3.3.2 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +82 -11
- data/app/views/layouts/govuk_admin_template.html.erb +16 -3
- data/lib/govuk_admin_template/config.rb +19 -0
- data/lib/govuk_admin_template/engine.rb +4 -0
- data/lib/govuk_admin_template/version.rb +1 -1
- data/lib/govuk_admin_template/view_helpers.rb +14 -0
- data/lib/govuk_admin_template.rb +2 -0
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b753aff3e74434c378a51ccf64763abee3cb0926
|
4
|
+
data.tar.gz: f64165ce6992c9a5c2a693ca7e9e4b1701219d37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d364ccd057fb188e6d0f7237cfcdd255197d559f114fd56c492f662ed666885c77d47a1b6c51c632641438136082f15c60ba2129df3954ed47e22b529e1c129
|
7
|
+
data.tar.gz: f51cd8a59cad0869c31de60b8ad491ed32f13570021a820386bd35ddaba165ce06bfb6d4c07175c08863afee42205ab4b4312ff8d743d02a493ab63cc1654f78
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -13,32 +13,37 @@ This gem provides (via a Rails engine):
|
|
13
13
|
* Google Analytics tracking code (Universal Analytics), using the "GOV.UK apps" profile
|
14
14
|
|
15
15
|
[Apps using this gem](https://github.com/search?q=govuk_admin_template+user%3Aalphagov+filename%3AGemfile) include:
|
16
|
-
* [
|
16
|
+
* [Collections publisher](https://github.com/alphagov/collections-publisher)
|
17
|
+
* [Imminence](https://github.com/alphagov/imminence)
|
17
18
|
* [Maslow](https://github.com/alphagov/maslow)
|
19
|
+
* [Panopticon](https://github.com/alphagov/panopticon)
|
18
20
|
* [Publisher](https://github.com/alphagov/publisher)
|
21
|
+
* [Search admin](https://github.com/alphagov/search-admin)
|
19
22
|
* [Sign on](https://github.com/alphagov/signonotron2)
|
20
|
-
* [
|
21
|
-
* [Imminence](https://github.com/alphagov/imminence)
|
23
|
+
* [Specialist publisher](https://github.com/alphagov/specialist-publisher)
|
22
24
|
* [Support](https://github.com/alphagov/support)
|
25
|
+
* [Transition](https://github.com/alphagov/transition)
|
23
26
|
* [Travel advice publisher](https://github.com/alphagov/travel-advice-publisher)
|
24
|
-
* [Specialist publisher](https://github.com/alphagov/specialist-publisher)
|
25
|
-
* [Search admin](https://github.com/alphagov/search-admin)
|
26
27
|
|
27
28
|
## Usage
|
28
29
|
|
29
|
-
Firstly, include the gem in your Gemfile, pinned to the appropriate version and run
|
30
|
+
Firstly, include the gem in your Gemfile, pinned to the appropriate version and run `bundle`:
|
31
|
+
|
30
32
|
```ruby
|
31
|
-
|
33
|
+
# Gemfile
|
34
|
+
gem 'govuk_admin_template', '~> 3.3'
|
32
35
|
```
|
33
36
|
|
34
37
|
At the top of `application.scss` include the styles (this provides all the mixins and variables from the gem as well as from bootstrap — [bootstrap mixins](https://github.com/twbs/bootstrap-sass/blob/master/vendor/assets/stylesheets/bootstrap/_mixins.scss)):
|
35
38
|
```css
|
39
|
+
/* application.scss */
|
36
40
|
@import 'govuk_admin_template';
|
37
41
|
```
|
38
42
|
|
39
43
|
In `application.html.erb` after any content blocks you want to include, render the base template:
|
40
44
|
```erb
|
41
|
-
|
45
|
+
# views/layouts/application.html.rb
|
46
|
+
<%= render template: 'layouts/govuk_admin_template' %>
|
42
47
|
```
|
43
48
|
|
44
49
|
The [base template](app/views/layouts/govuk_admin_template.html.erb) includes:
|
@@ -49,23 +54,42 @@ The [base template](app/views/layouts/govuk_admin_template.html.erb) includes:
|
|
49
54
|
* header HTML
|
50
55
|
* footer HTML
|
51
56
|
|
52
|
-
You will also need to include your styles
|
57
|
+
You will also need to include your styles and javascripts:
|
58
|
+
|
53
59
|
```erb
|
60
|
+
# views/layouts/application.html.rb
|
54
61
|
<% content_for :head do %>
|
55
|
-
<%= stylesheet_link_tag "application", :
|
62
|
+
<%= stylesheet_link_tag "application", media: "all" %>
|
63
|
+
<%= javascript_include_tag 'application' %>
|
56
64
|
<% end %>
|
57
65
|
```
|
58
66
|
|
59
67
|
It is recommended that the style guide is also made available within your app at the route `/style-guide`. Add this to your `config/routes.rb` file:
|
60
68
|
|
61
69
|
```ruby
|
62
|
-
|
70
|
+
# config/routes.rb
|
71
|
+
if Rails.env.development?
|
72
|
+
mount GovukAdminTemplate::Engine, at: "/style-guide"
|
73
|
+
end
|
63
74
|
```
|
64
75
|
|
65
76
|
The gem source includes a [dummy app](spec/dummy) configured to behave like an app using the gem. If you have the gem checked out it can be run from the `spec\dummy` directory using `rails s`.
|
66
77
|
|
67
78
|
For Javascript usage, available modules and writing modules, see the [Javascript guide](JAVASCRIPT.md).
|
68
79
|
|
80
|
+
### Configuration
|
81
|
+
|
82
|
+
You can configure the gem with a config block in an initializer:
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
# config/initializers/govuk_admin_template.rb
|
86
|
+
GovukAdminTemplate.configure do |c|
|
87
|
+
c.app_title = "My Publisher"
|
88
|
+
c.show_flash = true
|
89
|
+
c.show_signout = true
|
90
|
+
end
|
91
|
+
```
|
92
|
+
|
69
93
|
### Content blocks
|
70
94
|
|
71
95
|
The gem [uses nested layouts](http://guides.rubyonrails.org/layouts_and_rendering.html#using-nested-layouts) for customisation.
|
@@ -88,6 +112,7 @@ The gem [uses nested layouts](http://guides.rubyonrails.org/layouts_and_renderin
|
|
88
112
|
|
89
113
|
Example navbar_items:
|
90
114
|
```erb
|
115
|
+
# views/layouts/application.html.rb
|
91
116
|
<% content_for :navbar_items do %>
|
92
117
|
<li>
|
93
118
|
<a href="#">navbar_item</a>
|
@@ -130,6 +155,52 @@ GovukAdminTemplate.environment_style = [preview|production|development]
|
|
130
155
|
GovukAdminTemplate.environment_label = [Preview|Staging|Production|Development]
|
131
156
|
```
|
132
157
|
|
158
|
+
## Flash messages
|
159
|
+
|
160
|
+
Turn on flash messages in the config:
|
161
|
+
|
162
|
+
```ruby
|
163
|
+
# config/initializers/govuk_admin_template.rb
|
164
|
+
GovukAdminTemplate.configure do |c|
|
165
|
+
c.show_flash = true
|
166
|
+
end
|
167
|
+
```
|
168
|
+
|
169
|
+
Use like this:
|
170
|
+
|
171
|
+
```ruby
|
172
|
+
# app/controllers/my_controller.rb
|
173
|
+
class MyController < ApplicationController
|
174
|
+
def create
|
175
|
+
if thing.save
|
176
|
+
flash[:success] = "Your thing has been created!"
|
177
|
+
else
|
178
|
+
flash[:danger] = "Sorry, it did not work."
|
179
|
+
end
|
180
|
+
|
181
|
+
redirect_to :back
|
182
|
+
end
|
183
|
+
end
|
184
|
+
```
|
185
|
+
|
186
|
+
We support `:success`, `:info`, `:warning` and `:danger`:
|
187
|
+
|
188
|
+
![Flash types](docs/flash-types.png)
|
189
|
+
|
190
|
+
In Rails 4, you can register your types to allow them to be used as arguments
|
191
|
+
to `redirect_to`.
|
192
|
+
|
193
|
+
```ruby
|
194
|
+
# app/controllers/application_controller.rb
|
195
|
+
class ApplicationController < ActionController::Base
|
196
|
+
add_flash_types :success, :info, :warning, :danger
|
197
|
+
end
|
198
|
+
|
199
|
+
# Now this works:
|
200
|
+
redirect_to :back, success: "Well done!"
|
201
|
+
redirect_to :back, danger: "This didn't work."
|
202
|
+
```
|
203
|
+
|
133
204
|
## Development
|
134
205
|
|
135
206
|
Clone the repository and run `bundle`.
|
@@ -2,6 +2,7 @@
|
|
2
2
|
environment_style = GovukAdminTemplate.environment_style
|
3
3
|
environment_label = GovukAdminTemplate.environment_label
|
4
4
|
app_home_path = content_for?(:app_home_path) ? yield(:app_home_path) : root_path
|
5
|
+
app_title = content_for?(:app_title) ? yield(:app_title) : GovukAdminTemplate::Config.app_title
|
5
6
|
%>
|
6
7
|
<!DOCTYPE html>
|
7
8
|
<!--[if lte IE 7]><html class="no-js lte-ie7" lang="en"><![endif]-->
|
@@ -9,7 +10,7 @@
|
|
9
10
|
<!--[if gt IE 8]><!--><html class="no-js" lang="en"><!--<![endif]-->
|
10
11
|
<head>
|
11
12
|
<meta charset="utf-8">
|
12
|
-
<title><%= content_for?(:page_title) ? yield(:page_title) :
|
13
|
+
<title><%= content_for?(:page_title) ? yield(:page_title) : app_title %></title>
|
13
14
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
14
15
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
15
16
|
<script>(function(d){d.className=d.className.replace(/^no-js\b/,'js');}(document.documentElement));</script>
|
@@ -59,20 +60,28 @@
|
|
59
60
|
<span class="icon-bar"></span>
|
60
61
|
</a>
|
61
62
|
<% end %>
|
62
|
-
<%= link_to
|
63
|
+
<%= link_to app_title, app_home_path, :class => 'navbar-brand' %>
|
63
64
|
<% if environment_label %>
|
64
65
|
<div class="environment-label">
|
65
66
|
<%= environment_label %>
|
66
67
|
</div>
|
67
68
|
<% end %>
|
68
69
|
</div>
|
69
|
-
<% if content_for?(:navbar_right) || content_for?(:navbar_items) %>
|
70
|
+
<% if GovukAdminTemplate::Config.show_signout || content_for?(:navbar_right) || content_for?(:navbar_items) %>
|
70
71
|
<nav role="navigation" class="collapse navbar-collapse">
|
71
72
|
<% if content_for?(:navbar_items) %>
|
72
73
|
<ul class="nav navbar-nav">
|
73
74
|
<%= yield :navbar_items %>
|
74
75
|
</ul>
|
75
76
|
<% end %>
|
77
|
+
|
78
|
+
<% if GovukAdminTemplate::Config.show_signout %>
|
79
|
+
<div class="navbar-text pull-right">
|
80
|
+
<%= link_to current_user.name, Plek.current.find('signon') %>
|
81
|
+
• <%= link_to 'Sign out', '/auth/gds/sign_out' %>
|
82
|
+
</div>
|
83
|
+
<% end %>
|
84
|
+
|
76
85
|
<% if content_for?(:navbar_right) %>
|
77
86
|
<div class="navbar-text pull-right">
|
78
87
|
<%= yield :navbar_right %>
|
@@ -85,6 +94,10 @@
|
|
85
94
|
<% end %>
|
86
95
|
<section class="<%= content_for?(:full_width) ? 'container-fluid' : 'container' %>">
|
87
96
|
<main role="main">
|
97
|
+
<% if GovukAdminTemplate::Config.show_flash %>
|
98
|
+
<%= display_flash_message %>
|
99
|
+
<% end %>
|
100
|
+
|
88
101
|
<%= content_for?(:content) ? yield(:content) : yield %>
|
89
102
|
</main>
|
90
103
|
<footer class="page-footer">
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module GovukAdminTemplate
|
2
|
+
def self.configure
|
3
|
+
yield(Config)
|
4
|
+
end
|
5
|
+
|
6
|
+
module Config
|
7
|
+
# Name of your application
|
8
|
+
mattr_accessor :app_title
|
9
|
+
@@app_title = "GOV.UK"
|
10
|
+
|
11
|
+
# Show flash-messages
|
12
|
+
# Default: false
|
13
|
+
mattr_accessor :show_flash
|
14
|
+
|
15
|
+
# Show username and signout link in the top right corner
|
16
|
+
# Default: false
|
17
|
+
mattr_accessor :show_signout
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module GovukAdminTemplate
|
2
|
+
module ViewHelpers
|
3
|
+
def display_flash_message
|
4
|
+
html = []
|
5
|
+
|
6
|
+
flash.each do |type, message|
|
7
|
+
next unless type.to_sym.in?(%i[success info warning danger])
|
8
|
+
html << content_tag(:div, message, class: "alert alert-#{type}")
|
9
|
+
end
|
10
|
+
|
11
|
+
html.join.html_safe
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/govuk_admin_template.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_admin_template
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: bootstrap-sass
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.3.
|
33
|
+
version: 3.3.5
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.3.
|
40
|
+
version: 3.3.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: jquery-rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,8 +174,10 @@ files:
|
|
174
174
|
- app/views/layouts/govuk_admin_template.html.erb
|
175
175
|
- config/routes.rb
|
176
176
|
- lib/govuk_admin_template.rb
|
177
|
+
- lib/govuk_admin_template/config.rb
|
177
178
|
- lib/govuk_admin_template/engine.rb
|
178
179
|
- lib/govuk_admin_template/version.rb
|
180
|
+
- lib/govuk_admin_template/view_helpers.rb
|
179
181
|
homepage: https://github.com/alphagov/govuk_admin_template
|
180
182
|
licenses: []
|
181
183
|
metadata: {}
|