flipper-ui 0.17.2 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/docs/ui/README.md +15 -5
- data/examples/ui/basic.ru +19 -0
- data/flipper-ui.gemspec +1 -2
- data/lib/flipper/ui.rb +0 -3
- data/lib/flipper/ui/action.rb +2 -1
- data/lib/flipper/ui/actions/feature.rb +5 -2
- data/lib/flipper/ui/actions/features.rb +1 -0
- data/lib/flipper/ui/actions/file.rb +1 -1
- data/lib/flipper/ui/assets/javascripts/application.coffee +5 -3
- data/lib/flipper/ui/configuration.rb +14 -10
- data/lib/flipper/ui/decorators/feature.rb +39 -13
- data/lib/flipper/ui/public/css/application.css +20 -6493
- data/lib/flipper/ui/public/js/application.js +5 -5
- data/lib/flipper/ui/util.rb +40 -0
- data/lib/flipper/ui/views/add_actor.erb +1 -1
- data/lib/flipper/ui/views/add_feature.erb +1 -1
- data/lib/flipper/ui/views/add_group.erb +1 -1
- data/lib/flipper/ui/views/feature.erb +198 -179
- data/lib/flipper/ui/views/features.erb +42 -36
- data/lib/flipper/ui/views/layout.erb +4 -14
- data/lib/flipper/version.rb +1 -1
- data/spec/flipper/ui/actions/actors_gate_spec.rb +0 -4
- data/spec/flipper/ui/actions/feature_spec.rb +14 -16
- data/spec/flipper/ui/actions/features_spec.rb +1 -5
- data/spec/flipper/ui/actions/file_spec.rb +0 -10
- data/spec/flipper/ui/actions/groups_gate_spec.rb +0 -6
- data/spec/flipper/ui/actions/percentage_of_actors_gate_spec.rb +0 -2
- data/spec/flipper/ui/actions/percentage_of_time_gate_spec.rb +0 -2
- data/spec/flipper/ui/configuration_spec.rb +21 -34
- data/spec/flipper/ui/decorators/feature_spec.rb +0 -30
- metadata +5 -121
- data/lib/flipper/ui/assets/stylesheets/.DS_Store +0 -0
- data/lib/flipper/ui/assets/stylesheets/application.scss +0 -19
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_alert.scss +0 -51
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_badge.scss +0 -47
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_breadcrumb.scss +0 -38
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_button-group.scss +0 -166
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_buttons.scss +0 -143
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_card.scss +0 -270
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_carousel.scss +0 -191
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_close.scss +0 -34
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_code.scss +0 -56
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_custom-forms.scss +0 -297
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_dropdown.scss +0 -131
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_forms.scss +0 -333
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_functions.scss +0 -86
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_grid.scss +0 -52
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_images.scss +0 -42
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_input-group.scss +0 -159
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_jumbotron.scss +0 -16
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_list-group.scss +0 -115
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_mixins.scss +0 -42
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_modal.scss +0 -168
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_nav.scss +0 -118
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_navbar.scss +0 -311
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_pagination.scss +0 -77
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_popover.scss +0 -183
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_print.scss +0 -124
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_progress.scss +0 -33
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_reboot.scss +0 -482
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_root.scss +0 -19
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_tables.scss +0 -180
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_tooltip.scss +0 -115
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_transitions.scss +0 -36
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_type.scss +0 -125
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_utilities.scss +0 -14
- data/lib/flipper/ui/assets/stylesheets/bootstrap/_variables.scss +0 -894
- data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-grid.scss +0 -32
- data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-reboot.scss +0 -12
- data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap.scss +0 -42
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -13
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -12
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_border-radius.scss +0 -35
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +0 -5
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +0 -123
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_buttons.scss +0 -109
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_caret.scss +0 -65
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_clearfix.scss +0 -7
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_float.scss +0 -11
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_forms.scss +0 -137
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_gradients.scss +0 -45
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -67
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid.scss +0 -52
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -39
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_image.scss +0 -36
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_list-group.scss +0 -21
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_lists.scss +0 -7
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_pagination.scss +0 -22
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_reset-text.scss +0 -17
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_resize.scss +0 -6
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -35
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_size.scss +0 -6
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -30
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -14
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -9
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +0 -8
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_transition.scss +0 -9
- data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -7
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -59
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_clearfix.scss +0 -3
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_display.scss +0 -38
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -52
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -46
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_float.scss +0 -9
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_position.scss +0 -36
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -12
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -51
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_text.scss +0 -52
- data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -11
- data/lib/flipper/ui/assets/stylesheets/primer/.scss-lint.yml +0 -446
- data/lib/flipper/ui/assets/stylesheets/primer/_alerts.scss +0 -106
- data/lib/flipper/ui/assets/stylesheets/primer/_avatars.scss +0 -36
- data/lib/flipper/ui/assets/stylesheets/primer/_base.scss +0 -40
- data/lib/flipper/ui/assets/stylesheets/primer/_blankslate.scss +0 -96
- data/lib/flipper/ui/assets/stylesheets/primer/_buttons.scss +0 -404
- data/lib/flipper/ui/assets/stylesheets/primer/_counter.scss +0 -10
- data/lib/flipper/ui/assets/stylesheets/primer/_filter-list.scss +0 -68
- data/lib/flipper/ui/assets/stylesheets/primer/_flex-table.scss +0 -20
- data/lib/flipper/ui/assets/stylesheets/primer/_forms.scss +0 -756
- data/lib/flipper/ui/assets/stylesheets/primer/_layout.scss +0 -69
- data/lib/flipper/ui/assets/stylesheets/primer/_menu.scss +0 -113
- data/lib/flipper/ui/assets/stylesheets/primer/_mixins.scss +0 -53
- data/lib/flipper/ui/assets/stylesheets/primer/_normalize.scss +0 -425
- data/lib/flipper/ui/assets/stylesheets/primer/_states.scss +0 -32
- data/lib/flipper/ui/assets/stylesheets/primer/_tabnav.scss +0 -65
- data/lib/flipper/ui/assets/stylesheets/primer/_tooltips.scss +0 -255
- data/lib/flipper/ui/assets/stylesheets/primer/_truncate.scss +0 -27
- data/lib/flipper/ui/assets/stylesheets/primer/_type.scss +0 -92
- data/lib/flipper/ui/assets/stylesheets/primer/_utility.scss +0 -73
- data/lib/flipper/ui/assets/stylesheets/primer/_variables.scss +0 -34
- data/lib/flipper/ui/assets/stylesheets/primer/primer.scss +0 -39
- data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -288
- data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- data/lib/flipper/ui/public/images/remove.png +0 -0
- data/lib/flipper/ui/public/octicons/octicons.less +0 -235
- data/lib/flipper/ui/public/octicons/sprockets-octicons.scss +0 -232
@@ -1,51 +1,57 @@
|
|
1
1
|
<% if @show_blank_slate %>
|
2
2
|
<div class="jumbotron text-center">
|
3
|
-
<span class="mega-octicon octicon-plus"></span>
|
4
|
-
<span class="mega-octicon octicon-list-unordered"></span>
|
5
|
-
<span class="mega-octicon octicon-zap"></span>
|
6
3
|
<% if Flipper::UI.configuration.fun %>
|
7
4
|
<h4>But I've got a blank space baby...</h4>
|
8
5
|
<p>And I'll flip your features.</p>
|
6
|
+
<%- if Flipper::UI.configuration.feature_creation_enabled -%>
|
7
|
+
<p>
|
8
|
+
<a class="btn btn-primary btn-sm" href="<%= script_name %>/features/new">Add Feature</a>
|
9
|
+
</p>
|
10
|
+
<%- end -%>
|
9
11
|
<div class="embed-responsive embed-responsive-16by9">
|
10
12
|
<iframe class="embed-responsive-item" width="560" height="315" src="https://www.youtube.com/embed/e-ORhEE9VVg" frameborder="0" allowfullscreen></iframe>
|
11
13
|
</div>
|
12
14
|
<% else %>
|
13
|
-
<h4>
|
14
|
-
<p>
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
<h4>Getting Started</h4>
|
16
|
+
<p class="mb-1">You have not added any features to configure yet.</p>
|
17
|
+
<%- if Flipper::UI.configuration.feature_creation_enabled -%>
|
18
|
+
<p class="mt-2">
|
19
|
+
<a class="btn btn-primary btn-sm" href="<%= script_name %>/features/new">Add Feature</a>
|
20
|
+
</p>
|
21
|
+
<% else %>
|
22
|
+
<p>
|
23
|
+
Check the <a href="https://github.com/jnunemaker/flipper#examples">examples</a> to
|
24
|
+
learn how to add one.
|
25
|
+
</p>
|
26
|
+
<%- end -%>
|
18
27
|
<% end %>
|
19
28
|
</div>
|
20
29
|
<% else %>
|
21
30
|
<div class="card">
|
22
|
-
<
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
</
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
<% end %>
|
48
|
-
</tbody>
|
49
|
-
</table>
|
31
|
+
<div class="card-header">
|
32
|
+
<%- if Flipper::UI.configuration.feature_creation_enabled -%>
|
33
|
+
<div class="float-right">
|
34
|
+
<a class="btn btn-primary btn-sm" href="<%= script_name %>/features/new">Add Feature</a>
|
35
|
+
</div>
|
36
|
+
<%- end -%>
|
37
|
+
<h4 class="m-0">Features</h4>
|
38
|
+
</div>
|
39
|
+
<div class="card-body py-0">
|
40
|
+
<% @features.each do |feature| %>
|
41
|
+
<div class="feature row align-items-center mt-0 px-3 border-bottom">
|
42
|
+
<div class="col-1 col-md-auto">
|
43
|
+
<span class="octicon octicon-squirrel <%= feature.color_class %>" data-toggle="tooltip" title=<%= feature.state.to_s.capitalize %>></span>
|
44
|
+
</div>
|
45
|
+
<div class="col-10">
|
46
|
+
<a href="<%= "#{script_name}/features/#{feature.key}" %>" class="d-block px-0 py-3 btn text-left text-dark">
|
47
|
+
<div class="text-truncate"><%= feature.key %></div>
|
48
|
+
<div class="text-muted text-truncate">
|
49
|
+
<%== feature.gates_in_words %>
|
50
|
+
</div>
|
51
|
+
</a>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
<% end %>
|
55
|
+
</div>
|
50
56
|
</div>
|
51
57
|
<% end %>
|
@@ -6,17 +6,12 @@
|
|
6
6
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
8
8
|
|
9
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
9
10
|
<link rel="stylesheet" href="<%= script_name %>/octicons/octicons.css">
|
10
11
|
<link rel="stylesheet" href="<%= script_name %>/css/application.css">
|
11
|
-
|
12
|
-
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
13
|
-
<!--[if lt IE 9]>
|
14
|
-
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
15
|
-
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
16
|
-
<![endif]-->
|
17
12
|
</head>
|
18
|
-
<body>
|
19
|
-
<div class="container">
|
13
|
+
<body class="py-4">
|
14
|
+
<div class="container mw-600">
|
20
15
|
<%- unless Flipper::UI.configuration.banner_text.nil? -%>
|
21
16
|
<div class="alert alert-<%= Flipper::UI.configuration.banner_class %> text-center font-weight-bold">
|
22
17
|
<%= Flipper::UI.configuration.banner_text %>
|
@@ -24,7 +19,7 @@
|
|
24
19
|
<%- end -%>
|
25
20
|
|
26
21
|
<nav aria-label="breadcrumb">
|
27
|
-
<ol class="breadcrumb bg-white border
|
22
|
+
<ol class="breadcrumb bg-white border align-items-center mb-4">
|
28
23
|
<% @breadcrumbs.each do |breadcrumb| %>
|
29
24
|
<li class="breadcrumb-item <% if breadcrumb.active? %>active<% end %>">
|
30
25
|
<% if breadcrumb.active? %>
|
@@ -34,11 +29,6 @@
|
|
34
29
|
<% end %>
|
35
30
|
</li>
|
36
31
|
<% end %>
|
37
|
-
<li class="ml-auto">
|
38
|
-
<%- if Flipper::UI.configuration.feature_creation_enabled -%>
|
39
|
-
<a class="btn btn-sm btn-light" href="<%= script_name %>/features/new">Add Feature</a>
|
40
|
-
<%- end -%>
|
41
|
-
</li>
|
42
32
|
</ol>
|
43
33
|
</nav>
|
44
34
|
|
data/lib/flipper/version.rb
CHANGED
@@ -73,23 +73,19 @@ RSpec.describe Flipper::UI::Actions::ActorsGate do
|
|
73
73
|
context 'empty value' do
|
74
74
|
let(:value) { '' }
|
75
75
|
|
76
|
-
# rubocop:disable Layout/LineLength
|
77
76
|
it 'redirects back to feature' do
|
78
77
|
expect(last_response.status).to be(302)
|
79
78
|
expect(last_response.headers['Location']).to eq('/features/search/actors?error=%22%22+is+not+a+valid+actor+value.')
|
80
79
|
end
|
81
|
-
# rubocop:enable Layout/LineLength
|
82
80
|
end
|
83
81
|
|
84
82
|
context 'nil value' do
|
85
83
|
let(:value) { nil }
|
86
84
|
|
87
|
-
# rubocop:disable Layout/LineLength
|
88
85
|
it 'redirects back to feature' do
|
89
86
|
expect(last_response.status).to be(302)
|
90
87
|
expect(last_response.headers['Location']).to eq('/features/search/actors?error=%22%22+is+not+a+valid+actor+value.')
|
91
88
|
end
|
92
|
-
# rubocop:enable Layout/LineLength
|
93
89
|
end
|
94
90
|
end
|
95
91
|
end
|
@@ -70,6 +70,15 @@ RSpec.describe Flipper::UI::Actions::Feature do
|
|
70
70
|
|
71
71
|
describe 'GET /features/:feature' do
|
72
72
|
before do
|
73
|
+
Flipper::UI.configure do |config|
|
74
|
+
config.descriptions_source = lambda { |_keys|
|
75
|
+
{
|
76
|
+
"stats" => "Most awesome stats",
|
77
|
+
"search" => "Most in-depth search",
|
78
|
+
}
|
79
|
+
}
|
80
|
+
end
|
81
|
+
|
73
82
|
get '/features/search'
|
74
83
|
end
|
75
84
|
|
@@ -81,10 +90,11 @@ RSpec.describe Flipper::UI::Actions::Feature do
|
|
81
90
|
expect(last_response.body).to include('search')
|
82
91
|
expect(last_response.body).to include('Enable')
|
83
92
|
expect(last_response.body).to include('Disable')
|
84
|
-
expect(last_response.body).to include('
|
85
|
-
expect(last_response.body).to include('
|
86
|
-
expect(last_response.body).to include('
|
87
|
-
expect(last_response.body).to include('
|
93
|
+
expect(last_response.body).to include('No actors enabled')
|
94
|
+
expect(last_response.body).to include('No groups enabled')
|
95
|
+
expect(last_response.body).to include('Enabled for 0% of time')
|
96
|
+
expect(last_response.body).to include('Enabled for 0% of actors')
|
97
|
+
expect(last_response.body).to include('Most in-depth search')
|
88
98
|
end
|
89
99
|
end
|
90
100
|
|
@@ -99,12 +109,6 @@ RSpec.describe Flipper::UI::Actions::Feature do
|
|
99
109
|
|
100
110
|
it 'renders template' do
|
101
111
|
expect(last_response.body).to include('search_features')
|
102
|
-
expect(last_response.body).to include('Enable')
|
103
|
-
expect(last_response.body).to include('Disable')
|
104
|
-
expect(last_response.body).to include('Actors')
|
105
|
-
expect(last_response.body).to include('Groups')
|
106
|
-
expect(last_response.body).to include('Percentage of Time')
|
107
|
-
expect(last_response.body).to include('Percentage of Actors')
|
108
112
|
end
|
109
113
|
end
|
110
114
|
|
@@ -119,12 +123,6 @@ RSpec.describe Flipper::UI::Actions::Feature do
|
|
119
123
|
|
120
124
|
it 'renders template' do
|
121
125
|
expect(last_response.body).to include('a/b')
|
122
|
-
expect(last_response.body).to include('Enable')
|
123
|
-
expect(last_response.body).to include('Disable')
|
124
|
-
expect(last_response.body).to include('Actors')
|
125
|
-
expect(last_response.body).to include('Groups')
|
126
|
-
expect(last_response.body).to include('Percentage of Time')
|
127
|
-
expect(last_response.body).to include('Percentage of Actors')
|
128
126
|
end
|
129
127
|
end
|
130
128
|
end
|
@@ -62,7 +62,7 @@ RSpec.describe Flipper::UI::Actions::Features do
|
|
62
62
|
end
|
63
63
|
|
64
64
|
it 'renders template' do
|
65
|
-
expect(last_response.body).to include('
|
65
|
+
expect(last_response.body).to include('You have not added any features to configure yet.')
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
@@ -111,12 +111,10 @@ RSpec.describe Flipper::UI::Actions::Features do
|
|
111
111
|
expect(flipper.features.map(&:key)).to eq([])
|
112
112
|
end
|
113
113
|
|
114
|
-
# rubocop:disable Layout/LineLength
|
115
114
|
it 'redirects back to feature' do
|
116
115
|
expect(last_response.status).to be(302)
|
117
116
|
expect(last_response.headers['Location']).to eq('/features/new?error=%22%22+is+not+a+valid+feature+name.')
|
118
117
|
end
|
119
|
-
# rubocop:enable Layout/LineLength
|
120
118
|
end
|
121
119
|
|
122
120
|
context 'nil feature name' do
|
@@ -126,12 +124,10 @@ RSpec.describe Flipper::UI::Actions::Features do
|
|
126
124
|
expect(flipper.features.map(&:key)).to eq([])
|
127
125
|
end
|
128
126
|
|
129
|
-
# rubocop:disable Layout/LineLength
|
130
127
|
it 'redirects back to feature' do
|
131
128
|
expect(last_response.status).to be(302)
|
132
129
|
expect(last_response.headers['Location']).to eq('/features/new?error=%22%22+is+not+a+valid+feature+name.')
|
133
130
|
end
|
134
|
-
# rubocop:enable Layout/LineLength
|
135
131
|
end
|
136
132
|
end
|
137
133
|
end
|
@@ -21,16 +21,6 @@ RSpec.describe Flipper::UI::Actions::File do
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
describe 'GET /fonts/bootstrap/glyphicons-halflings-regular.eot' do
|
25
|
-
before do
|
26
|
-
get '/fonts/bootstrap/glyphicons-halflings-regular.eot'
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'responds with 200' do
|
30
|
-
expect(last_response.status).to be(200)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
24
|
describe 'GET /octicons/octicons.eot' do
|
35
25
|
before do
|
36
26
|
get '/octicons/octicons.eot'
|
@@ -72,34 +72,28 @@ RSpec.describe Flipper::UI::Actions::GroupsGate do
|
|
72
72
|
context 'unknown group name' do
|
73
73
|
let(:group_name) { 'not_here' }
|
74
74
|
|
75
|
-
# rubocop:disable Layout/LineLength
|
76
75
|
it 'redirects back to feature' do
|
77
76
|
expect(last_response.status).to be(302)
|
78
77
|
expect(last_response.headers['Location']).to eq('/features/search/groups?error=The+group+named+%22not_here%22+has+not+been+registered.')
|
79
78
|
end
|
80
|
-
# rubocop:enable Layout/LineLength
|
81
79
|
end
|
82
80
|
|
83
81
|
context 'empty group name' do
|
84
82
|
let(:group_name) { '' }
|
85
83
|
|
86
|
-
# rubocop:disable Layout/LineLength
|
87
84
|
it 'redirects back to feature' do
|
88
85
|
expect(last_response.status).to be(302)
|
89
86
|
expect(last_response.headers['Location']).to eq('/features/search/groups?error=The+group+named+%22%22+has+not+been+registered.')
|
90
87
|
end
|
91
|
-
# rubocop:enable Layout/LineLength
|
92
88
|
end
|
93
89
|
|
94
90
|
context 'nil group name' do
|
95
91
|
let(:group_name) { nil }
|
96
92
|
|
97
|
-
# rubocop:disable Layout/LineLength
|
98
93
|
it 'redirects back to feature' do
|
99
94
|
expect(last_response.status).to be(302)
|
100
95
|
expect(last_response.headers['Location']).to eq('/features/search/groups?error=The+group+named+%22%22+has+not+been+registered.')
|
101
96
|
end
|
102
|
-
# rubocop:enable Layout/LineLength
|
103
97
|
end
|
104
98
|
end
|
105
99
|
end
|
@@ -41,12 +41,10 @@ RSpec.describe Flipper::UI::Actions::PercentageOfActorsGate do
|
|
41
41
|
expect(flipper[:search].percentage_of_actors_value).to be(0)
|
42
42
|
end
|
43
43
|
|
44
|
-
# rubocop:disable Layout/LineLength
|
45
44
|
it 'redirects back to feature' do
|
46
45
|
expect(last_response.status).to be(302)
|
47
46
|
expect(last_response.headers['Location']).to eq('/features/search?error=Invalid+percentage+of+actors+value%3A+value+must+be+a+positive+number+less+than+or+equal+to+100%2C+but+was+555')
|
48
47
|
end
|
49
|
-
# rubocop:enable Layout/LineLength
|
50
48
|
end
|
51
49
|
end
|
52
50
|
end
|
@@ -41,12 +41,10 @@ RSpec.describe Flipper::UI::Actions::PercentageOfTimeGate do
|
|
41
41
|
expect(flipper[:search].percentage_of_time_value).to be(0)
|
42
42
|
end
|
43
43
|
|
44
|
-
# rubocop:disable Layout/LineLength
|
45
44
|
it 'redirects back to feature' do
|
46
45
|
expect(last_response.status).to be(302)
|
47
46
|
expect(last_response.headers['Location']).to eq('/features/search?error=Invalid+percentage+of+time+value%3A+value+must+be+a+positive+number+less+than+or+equal+to+100%2C+but+was+555')
|
48
47
|
end
|
49
|
-
# rubocop:enable Layout/LineLength
|
50
48
|
end
|
51
49
|
end
|
52
50
|
end
|
@@ -3,43 +3,10 @@ require 'helper'
|
|
3
3
|
RSpec.describe Flipper::UI::Configuration do
|
4
4
|
let(:configuration) { described_class.new }
|
5
5
|
|
6
|
-
describe "#actors" do
|
7
|
-
it "has default text" do
|
8
|
-
expect(configuration.actors.title).to eq("Actors")
|
9
|
-
expect(configuration.actors.description).to eq("Enable actors using the form above.")
|
10
|
-
end
|
11
|
-
|
12
|
-
it "can be updated" do
|
13
|
-
configuration.actors.title = "Actors Section"
|
14
|
-
expect(configuration.actors.title).to eq("Actors Section")
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "#groups" do
|
19
|
-
it "has default text" do
|
20
|
-
expect(configuration.groups.title).to eq("Groups")
|
21
|
-
expect(configuration.groups.description).to eq("Enable groups using the form above.")
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "#percentage_of_actors" do
|
26
|
-
it "has default text" do
|
27
|
-
expect(configuration.percentage_of_actors.title).to eq("Percentage of Actors")
|
28
|
-
expect(configuration.percentage_of_actors.description).to eq("Percentage of actors functions independently of percentage of time. If you enable 50% of Actors and 25% of Time then the feature will always be enabled for 50% of users and occasionally enabled 25% of the time for everyone.") # rubocop:disable Layout/LineLength
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "#percentage_of_time" do
|
33
|
-
it "has default text" do
|
34
|
-
expect(configuration.percentage_of_time.title).to eq("Percentage of Time")
|
35
|
-
expect(configuration.percentage_of_time.description).to eq("Percentage of actors functions independently of percentage of time. If you enable 50% of Actors and 25% of Time then the feature will always be enabled for 50% of users and occasionally enabled 25% of the time for everyone.") # rubocop:disable Layout/LineLength
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
6
|
describe "#delete" do
|
40
7
|
it "has default text" do
|
41
8
|
expect(configuration.delete.title).to eq("Danger Zone")
|
42
|
-
expect(configuration.delete.description).to eq("Deleting a feature removes it from the list of features and disables it for everyone.")
|
9
|
+
expect(configuration.delete.description).to eq("Deleting a feature removes it from the list of features and disables it for everyone.")
|
43
10
|
end
|
44
11
|
end
|
45
12
|
|
@@ -113,4 +80,24 @@ RSpec.describe Flipper::UI::Configuration do
|
|
113
80
|
expect(configuration.fun).to eq(false)
|
114
81
|
end
|
115
82
|
end
|
83
|
+
|
84
|
+
describe "#descriptions_source" do
|
85
|
+
it "has default value" do
|
86
|
+
expect(configuration.descriptions_source.call(%w[foo bar])).to eq({})
|
87
|
+
end
|
88
|
+
|
89
|
+
context "descriptions source is provided" do
|
90
|
+
it "can be updated" do
|
91
|
+
configuration.descriptions_source = lambda do |_keys|
|
92
|
+
YAML.load_file(FlipperRoot.join('spec/support/descriptions.yml'))
|
93
|
+
end
|
94
|
+
keys = %w[some_awesome_feature foo]
|
95
|
+
result = configuration.descriptions_source.call(keys)
|
96
|
+
expected = {
|
97
|
+
"some_awesome_feature" => "Awesome feature description",
|
98
|
+
}
|
99
|
+
expect(result).to eq(expected)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
116
103
|
end
|
@@ -22,36 +22,6 @@ RSpec.describe Flipper::UI::Decorators::Feature do
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
describe '#as_json' do
|
26
|
-
before do
|
27
|
-
@result = subject.as_json
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'returns Hash' do
|
31
|
-
expect(@result).to be_instance_of(Hash)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'includes id' do
|
35
|
-
expect(@result['id']).to eq('some_awesome_feature')
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'includes pretty name' do
|
39
|
-
expect(@result['name']).to eq('Some Awesome Feature')
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'includes state' do
|
43
|
-
expect(@result['state']).to eq('off')
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'includes gates' do
|
47
|
-
gates = subject.gates.map do |gate|
|
48
|
-
value = subject.gate_values[gate.key]
|
49
|
-
Flipper::UI::Decorators::Gate.new(gate, value).as_json
|
50
|
-
end
|
51
|
-
expect(@result['gates']).to eq(gates)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
25
|
describe '#<=>' do
|
56
26
|
let(:on) do
|
57
27
|
flipper.enable(:on_a)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flipper-ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -56,14 +56,14 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 0.
|
59
|
+
version: 0.18.0
|
60
60
|
type: :runtime
|
61
61
|
prerelease: false
|
62
62
|
version_requirements: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: 0.
|
66
|
+
version: 0.18.0
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: erubi
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,8 +84,7 @@ dependencies:
|
|
84
84
|
- - "<"
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: 2.0.0
|
87
|
-
description:
|
88
|
-
flipper gem.
|
87
|
+
description:
|
89
88
|
email:
|
90
89
|
- nunemaker@gmail.com
|
91
90
|
executables: []
|
@@ -114,113 +113,6 @@ files:
|
|
114
113
|
- lib/flipper/ui/actions/percentage_of_actors_gate.rb
|
115
114
|
- lib/flipper/ui/actions/percentage_of_time_gate.rb
|
116
115
|
- lib/flipper/ui/assets/javascripts/application.coffee
|
117
|
-
- lib/flipper/ui/assets/stylesheets/.DS_Store
|
118
|
-
- lib/flipper/ui/assets/stylesheets/application.scss
|
119
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_alert.scss
|
120
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_badge.scss
|
121
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_breadcrumb.scss
|
122
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_button-group.scss
|
123
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_buttons.scss
|
124
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_card.scss
|
125
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_carousel.scss
|
126
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_close.scss
|
127
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_code.scss
|
128
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_custom-forms.scss
|
129
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_dropdown.scss
|
130
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_forms.scss
|
131
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_functions.scss
|
132
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_grid.scss
|
133
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_images.scss
|
134
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_input-group.scss
|
135
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_jumbotron.scss
|
136
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_list-group.scss
|
137
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_media.scss
|
138
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_mixins.scss
|
139
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_modal.scss
|
140
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_nav.scss
|
141
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_navbar.scss
|
142
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_pagination.scss
|
143
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_popover.scss
|
144
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_print.scss
|
145
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_progress.scss
|
146
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_reboot.scss
|
147
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_root.scss
|
148
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_tables.scss
|
149
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_tooltip.scss
|
150
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_transitions.scss
|
151
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_type.scss
|
152
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_utilities.scss
|
153
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/_variables.scss
|
154
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-grid.scss
|
155
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-reboot.scss
|
156
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap.scss
|
157
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_alert.scss
|
158
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_background-variant.scss
|
159
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_badge.scss
|
160
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_border-radius.scss
|
161
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_box-shadow.scss
|
162
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_breakpoints.scss
|
163
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_buttons.scss
|
164
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_caret.scss
|
165
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_clearfix.scss
|
166
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_float.scss
|
167
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_forms.scss
|
168
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_gradients.scss
|
169
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid-framework.scss
|
170
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid.scss
|
171
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_hover.scss
|
172
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_image.scss
|
173
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_list-group.scss
|
174
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_lists.scss
|
175
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_nav-divider.scss
|
176
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_navbar-align.scss
|
177
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_pagination.scss
|
178
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_reset-text.scss
|
179
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_resize.scss
|
180
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_screen-reader.scss
|
181
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_size.scss
|
182
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_table-row.scss
|
183
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss
|
184
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-hide.scss
|
185
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-truncate.scss
|
186
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_transition.scss
|
187
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_visibility.scss
|
188
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_align.scss
|
189
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_background.scss
|
190
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_borders.scss
|
191
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_clearfix.scss
|
192
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_display.scss
|
193
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_embed.scss
|
194
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_flex.scss
|
195
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_float.scss
|
196
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_position.scss
|
197
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_screenreaders.scss
|
198
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_sizing.scss
|
199
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_spacing.scss
|
200
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_text.scss
|
201
|
-
- lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_visibility.scss
|
202
|
-
- lib/flipper/ui/assets/stylesheets/primer/.scss-lint.yml
|
203
|
-
- lib/flipper/ui/assets/stylesheets/primer/_alerts.scss
|
204
|
-
- lib/flipper/ui/assets/stylesheets/primer/_avatars.scss
|
205
|
-
- lib/flipper/ui/assets/stylesheets/primer/_base.scss
|
206
|
-
- lib/flipper/ui/assets/stylesheets/primer/_blankslate.scss
|
207
|
-
- lib/flipper/ui/assets/stylesheets/primer/_buttons.scss
|
208
|
-
- lib/flipper/ui/assets/stylesheets/primer/_counter.scss
|
209
|
-
- lib/flipper/ui/assets/stylesheets/primer/_filter-list.scss
|
210
|
-
- lib/flipper/ui/assets/stylesheets/primer/_flex-table.scss
|
211
|
-
- lib/flipper/ui/assets/stylesheets/primer/_forms.scss
|
212
|
-
- lib/flipper/ui/assets/stylesheets/primer/_layout.scss
|
213
|
-
- lib/flipper/ui/assets/stylesheets/primer/_menu.scss
|
214
|
-
- lib/flipper/ui/assets/stylesheets/primer/_mixins.scss
|
215
|
-
- lib/flipper/ui/assets/stylesheets/primer/_normalize.scss
|
216
|
-
- lib/flipper/ui/assets/stylesheets/primer/_states.scss
|
217
|
-
- lib/flipper/ui/assets/stylesheets/primer/_tabnav.scss
|
218
|
-
- lib/flipper/ui/assets/stylesheets/primer/_tooltips.scss
|
219
|
-
- lib/flipper/ui/assets/stylesheets/primer/_truncate.scss
|
220
|
-
- lib/flipper/ui/assets/stylesheets/primer/_type.scss
|
221
|
-
- lib/flipper/ui/assets/stylesheets/primer/_utility.scss
|
222
|
-
- lib/flipper/ui/assets/stylesheets/primer/_variables.scss
|
223
|
-
- lib/flipper/ui/assets/stylesheets/primer/primer.scss
|
224
116
|
- lib/flipper/ui/configuration.rb
|
225
117
|
- lib/flipper/ui/configuration/option.rb
|
226
118
|
- lib/flipper/ui/decorators/feature.rb
|
@@ -228,24 +120,16 @@ files:
|
|
228
120
|
- lib/flipper/ui/error.rb
|
229
121
|
- lib/flipper/ui/middleware.rb
|
230
122
|
- lib/flipper/ui/public/css/application.css
|
231
|
-
- lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.eot
|
232
|
-
- lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.svg
|
233
|
-
- lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.ttf
|
234
|
-
- lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff
|
235
|
-
- lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff2
|
236
123
|
- lib/flipper/ui/public/images/logo.png
|
237
|
-
- lib/flipper/ui/public/images/remove.png
|
238
124
|
- lib/flipper/ui/public/js/application.js
|
239
125
|
- lib/flipper/ui/public/octicons/LICENSE.txt
|
240
126
|
- lib/flipper/ui/public/octicons/README.md
|
241
127
|
- lib/flipper/ui/public/octicons/octicons-local.ttf
|
242
128
|
- lib/flipper/ui/public/octicons/octicons.css
|
243
129
|
- lib/flipper/ui/public/octicons/octicons.eot
|
244
|
-
- lib/flipper/ui/public/octicons/octicons.less
|
245
130
|
- lib/flipper/ui/public/octicons/octicons.svg
|
246
131
|
- lib/flipper/ui/public/octicons/octicons.ttf
|
247
132
|
- lib/flipper/ui/public/octicons/octicons.woff
|
248
|
-
- lib/flipper/ui/public/octicons/sprockets-octicons.scss
|
249
133
|
- lib/flipper/ui/util.rb
|
250
134
|
- lib/flipper/ui/views/add_actor.erb
|
251
135
|
- lib/flipper/ui/views/add_feature.erb
|