rails-settings-ui 1.3.5 → 1.4.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/Gemfile +4 -3
- data/README.md +15 -60
- data/app/controllers/rails_settings_ui/settings_controller.rb +17 -13
- data/app/helpers/rails_settings_ui/settings_helper.rb +5 -10
- data/config/locales/en.yml +3 -4
- data/lib/rails-settings-ui/engine.rb +0 -1
- data/lib/rails-settings-ui/settings_form_coercible.rb +2 -1
- data/lib/rails-settings-ui/settings_form_validator.rb +2 -1
- data/lib/rails-settings-ui/type_converter.rb +79 -0
- data/lib/rails-settings-ui/value_types/array.rb +19 -0
- data/lib/rails-settings-ui/value_types/base.rb +30 -0
- data/lib/rails-settings-ui/value_types/boolean.rb +16 -0
- data/lib/rails-settings-ui/value_types/duration.rb +17 -0
- data/lib/rails-settings-ui/value_types/fixnum.rb +17 -0
- data/lib/rails-settings-ui/value_types/float.rb +17 -0
- data/lib/rails-settings-ui/value_types/hash.rb +19 -0
- data/lib/rails-settings-ui/value_types/string.rb +11 -0
- data/lib/rails-settings-ui/value_types/symbol.rb +11 -0
- data/lib/rails-settings-ui/version.rb +1 -1
- data/lib/rails-settings-ui.rb +13 -5
- data/spec/dummy/app/assets/config/manifest.js +3 -0
- data/spec/dummy/app/models/settings.rb +17 -11
- data/spec/dummy/config/application.rb +8 -5
- data/spec/dummy/config/environments/development.rb +1 -1
- data/spec/dummy/config/environments/test.rb +5 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/log/development.log +204 -0
- data/spec/dummy/log/test.log +17721 -0
- data/spec/dummy/tmp/cache/983/850/rails-settings-cached%2Fv1 +0 -0
- data/spec/dummy/tmp/cache/B43/920/rails_settings_cached%3Aangle +1 -0
- data/spec/dummy/tmp/cache/B5B/D00/rails_settings_cached%3Alimit +1 -0
- data/spec/dummy/tmp/cache/C33/A30/rails_settings_cached%3Acompany +2 -0
- data/spec/dummy/tmp/cache/E33/F60/rails_settings_cached%3Aproject_name +2 -0
- data/spec/dummy/tmp/capybara/capybara-202210171734284469945531.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171737204973407096.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171748434956557154.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171748436975538759.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171750314291147778.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-20221017175031820707857.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171753008459837645.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171852063304179945.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171856426164369905.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171858321617647144.html +146 -0
- data/spec/dummy/tmp/capybara/capybara-202210171859225748767967.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171900593853637022.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171905425563856340.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171906453524726761.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171907021196417641.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171907177584260273.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171908598155484313.html +146 -0
- data/spec/dummy/tmp/capybara/capybara-202210171910151128908606.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171910335167198647.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-20221017191603669584955.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171923383386177630.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-20221017192440932299839.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171925398582267473.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171926266453882118.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171927092397731872.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171927096856622887.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-20221017192857430966358.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-20221017192857715946316.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171929344449627309.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171929349483966535.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171931514543176977.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171931516552014196.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171933532109133909.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171933538239745721.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171934252299363012.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171934257507814102.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171935002341486006.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171935003194509488.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171935191080772264.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-20221017193519504184564.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171935494419345825.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171935495077855617.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171935512244046619.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171935515471773291.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-20221017193621299357586.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171936214576498840.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171943053342669430.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171943054897250624.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171943172523615452.html +148 -0
- data/spec/dummy/tmp/capybara/capybara-202210171943176449343696.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171944092904892605.html +149 -0
- data/spec/dummy/tmp/capybara/capybara-202210171944096476035010.html +148 -0
- data/spec/features/settings_spec.rb +9 -8
- data/spec/lib/rails-settings-ui/type_converter_spec.rb +43 -0
- data/spec/lib/rails-settings-ui/value_types/array_spec.rb +21 -0
- data/spec/lib/rails-settings-ui/value_types/base_spec.rb +23 -0
- data/spec/lib/rails-settings-ui/value_types/boolean_spec.rb +10 -0
- data/spec/lib/rails-settings-ui/value_types/duration_spec.rb +19 -0
- data/spec/lib/rails-settings-ui/value_types/fixnum_spec.rb +17 -0
- data/spec/lib/rails-settings-ui/value_types/float_spec.rb +17 -0
- data/spec/lib/rails-settings-ui/value_types/hash_spec.rb +26 -0
- data/spec/lib/rails-settings-ui/value_types/string_spec.rb +10 -0
- data/spec/lib/rails-settings-ui/value_types/symbol_spec.rb +10 -0
- data/spec/spec_helper.rb +0 -1
- metadata +199 -55
- data/spec/lib/rails-settings-ui/settings_form_coercible_spec.rb +0 -136
- data/spec/lib/rails-settings-ui/settings_form_validator_spec.rb +0 -94
@@ -0,0 +1,148 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy</title>
|
5
|
+
<link rel="stylesheet" href="/stylesheets/application.css" media="all" data-turbolinks-track="true" />
|
6
|
+
<script src="/javascripts/application.js" data-turbolinks-track="true"></script>
|
7
|
+
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<ol class="breadcrumb">
|
12
|
+
<li class="active">
|
13
|
+
Settings
|
14
|
+
</li>
|
15
|
+
</ol>
|
16
|
+
<form class="form" action="/settings/update_all" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="_method" value="put" autocomplete="off" />
|
17
|
+
<table class="table table-striped">
|
18
|
+
<thead>
|
19
|
+
<tr>
|
20
|
+
<th>
|
21
|
+
Description
|
22
|
+
</th>
|
23
|
+
<th>
|
24
|
+
Value
|
25
|
+
</th>
|
26
|
+
</tr>
|
27
|
+
</thead>
|
28
|
+
<tbody>
|
29
|
+
<tr data-name="project_name">
|
30
|
+
<td>
|
31
|
+
translation missing: en.settings.attributes.project_name.name
|
32
|
+
</td>
|
33
|
+
<td class="setting-value">
|
34
|
+
<div class="form-group ">
|
35
|
+
<input type="text" name="settings[project_name]" id="settings_project_name" value="Dummy" class="form-control" />
|
36
|
+
</div>
|
37
|
+
</td>
|
38
|
+
</tr>
|
39
|
+
<tr data-name="limit">
|
40
|
+
<td>
|
41
|
+
translation missing: en.settings.attributes.limit.name
|
42
|
+
</td>
|
43
|
+
<td class="setting-value">
|
44
|
+
<div class="form-group ">
|
45
|
+
<input type="text" name="settings[limit]" id="settings_limit" value="150" class="form-control" />
|
46
|
+
</div>
|
47
|
+
</td>
|
48
|
+
</tr>
|
49
|
+
<tr data-name="angle">
|
50
|
+
<td>
|
51
|
+
translation missing: en.settings.attributes.angle.name
|
52
|
+
</td>
|
53
|
+
<td class="setting-value">
|
54
|
+
<div class="form-group ">
|
55
|
+
<input type="text" name="settings[angle]" id="settings_angle" value="0.5" class="form-control" />
|
56
|
+
</div>
|
57
|
+
</td>
|
58
|
+
</tr>
|
59
|
+
<tr data-name="style">
|
60
|
+
<td>
|
61
|
+
translation missing: en.settings.attributes.style.name
|
62
|
+
</td>
|
63
|
+
<td class="setting-value">
|
64
|
+
<div class="form-group ">
|
65
|
+
<textarea name="settings[style]" id="settings_style" class="form-control" rows="10">
|
66
|
+
{"border_color"=>"e0e0e0", "block_color"=>"ffffff", "title"=>{"font"=>"Tahoma", "size"=>"12", "color"=>"107821"}}</textarea>
|
67
|
+
</div>
|
68
|
+
</td>
|
69
|
+
</tr>
|
70
|
+
<tr data-name="check_something">
|
71
|
+
<td>
|
72
|
+
Check This Out!
|
73
|
+
</td>
|
74
|
+
<td class="setting-value">
|
75
|
+
<div class="form-group ">
|
76
|
+
<input type="hidden" name="settings[check_something]" id="settings_check_something" value="off" autocomplete="off" /><input type="checkbox" name="settings[check_something]" id="settings_check_something" checked="checked" /><span class="help-block">You really should check it out!</span>
|
77
|
+
</div>
|
78
|
+
</td>
|
79
|
+
</tr>
|
80
|
+
<tr data-name="description">
|
81
|
+
<td>
|
82
|
+
translation missing: en.settings.attributes.description.name
|
83
|
+
</td>
|
84
|
+
<td class="setting-value">
|
85
|
+
<div class="form-group ">
|
86
|
+
<textarea name="settings[description]" id="settings_description" class="form-control" rows="10">
|
87
|
+
But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful.</textarea>
|
88
|
+
</div>
|
89
|
+
</td>
|
90
|
+
</tr>
|
91
|
+
<tr data-name="mode">
|
92
|
+
<td>
|
93
|
+
Mode
|
94
|
+
</td>
|
95
|
+
<td class="setting-value">
|
96
|
+
<div class="form-group ">
|
97
|
+
<input type="checkbox" name="settings[mode][auto]" id="settings_mode_auto" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_mode_auto">Auto</label><input type="checkbox" name="settings[mode][manual]" id="settings_mode_manual" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_mode_manual">Manual</label><span class="help-block">This is some help text.</span>
|
98
|
+
</div>
|
99
|
+
</td>
|
100
|
+
</tr>
|
101
|
+
<tr data-name="timer">
|
102
|
+
<td>
|
103
|
+
translation missing: en.settings.attributes.timer.name
|
104
|
+
</td>
|
105
|
+
<td class="setting-value">
|
106
|
+
<div class="form-group ">
|
107
|
+
<input type="text" name="settings[timer]" id="settings_timer" value="7200" class="form-control" />
|
108
|
+
</div>
|
109
|
+
</td>
|
110
|
+
</tr>
|
111
|
+
<tr data-name="project_status">
|
112
|
+
<td>
|
113
|
+
translation missing: en.settings.attributes.project_status.name
|
114
|
+
</td>
|
115
|
+
<td class="setting-value">
|
116
|
+
<div class="form-group ">
|
117
|
+
<input type="text" name="settings[project_status]" id="settings_project_status" value="finished" class="form-control" />
|
118
|
+
</div>
|
119
|
+
</td>
|
120
|
+
</tr>
|
121
|
+
<tr data-name="locale">
|
122
|
+
<td>
|
123
|
+
Locale
|
124
|
+
</td>
|
125
|
+
<td class="setting-value">
|
126
|
+
<div class="form-group ">
|
127
|
+
<input type="checkbox" name="settings[locale][en]" id="settings_locale_en" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_locale_en">en</label><input type="checkbox" name="settings[locale][ru]" id="settings_locale_ru" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_locale_ru">ru</label>
|
128
|
+
</div>
|
129
|
+
</td>
|
130
|
+
</tr>
|
131
|
+
<tr data-name="readonly_item">
|
132
|
+
<td>
|
133
|
+
translation missing: en.settings.attributes.readonly_item.name
|
134
|
+
</td>
|
135
|
+
<td class="setting-value">
|
136
|
+
<div class="form-group ">
|
137
|
+
<input type="text" name="settings[readonly_item]" id="settings_readonly_item" value="100" class="form-control" />
|
138
|
+
</div>
|
139
|
+
</td>
|
140
|
+
</tr>
|
141
|
+
</tbody>
|
142
|
+
</table>
|
143
|
+
<input type="submit" name="commit" value="Save all" class="btn btn-primary btn-lg" data-disable-with="Save all" />
|
144
|
+
</form>
|
145
|
+
|
146
|
+
|
147
|
+
</body>
|
148
|
+
</html>
|
@@ -0,0 +1,149 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy</title>
|
5
|
+
<link rel="stylesheet" href="/stylesheets/application.css" media="all" data-turbolinks-track="true" />
|
6
|
+
<script src="/javascripts/application.js" data-turbolinks-track="true"></script>
|
7
|
+
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<ol class="breadcrumb">
|
12
|
+
<li class="active">
|
13
|
+
Settings
|
14
|
+
</li>
|
15
|
+
</ol>
|
16
|
+
<div class="alert alert-success">Settings saved succesfully!</div>
|
17
|
+
<form class="form" action="/settings/update_all" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="_method" value="put" autocomplete="off" />
|
18
|
+
<table class="table table-striped">
|
19
|
+
<thead>
|
20
|
+
<tr>
|
21
|
+
<th>
|
22
|
+
Description
|
23
|
+
</th>
|
24
|
+
<th>
|
25
|
+
Value
|
26
|
+
</th>
|
27
|
+
</tr>
|
28
|
+
</thead>
|
29
|
+
<tbody>
|
30
|
+
<tr data-name="project_name">
|
31
|
+
<td>
|
32
|
+
translation missing: en.settings.attributes.project_name.name
|
33
|
+
</td>
|
34
|
+
<td class="setting-value">
|
35
|
+
<div class="form-group ">
|
36
|
+
<input type="text" name="settings[project_name]" id="settings_project_name" value="Dummy" class="form-control" />
|
37
|
+
</div>
|
38
|
+
</td>
|
39
|
+
</tr>
|
40
|
+
<tr data-name="limit">
|
41
|
+
<td>
|
42
|
+
translation missing: en.settings.attributes.limit.name
|
43
|
+
</td>
|
44
|
+
<td class="setting-value">
|
45
|
+
<div class="form-group ">
|
46
|
+
<input type="text" name="settings[limit]" id="settings_limit" value="150" class="form-control" />
|
47
|
+
</div>
|
48
|
+
</td>
|
49
|
+
</tr>
|
50
|
+
<tr data-name="angle">
|
51
|
+
<td>
|
52
|
+
translation missing: en.settings.attributes.angle.name
|
53
|
+
</td>
|
54
|
+
<td class="setting-value">
|
55
|
+
<div class="form-group ">
|
56
|
+
<input type="text" name="settings[angle]" id="settings_angle" value="0.5" class="form-control" />
|
57
|
+
</div>
|
58
|
+
</td>
|
59
|
+
</tr>
|
60
|
+
<tr data-name="style">
|
61
|
+
<td>
|
62
|
+
translation missing: en.settings.attributes.style.name
|
63
|
+
</td>
|
64
|
+
<td class="setting-value">
|
65
|
+
<div class="form-group ">
|
66
|
+
<textarea name="settings[style]" id="settings_style" class="form-control" rows="10">
|
67
|
+
{"border_color"=>"e0e0e0", "block_color"=>"ffffff", "title"=>{"font"=>"Tahoma", "size"=>"12", "color"=>"107821"}}</textarea>
|
68
|
+
</div>
|
69
|
+
</td>
|
70
|
+
</tr>
|
71
|
+
<tr data-name="check_something">
|
72
|
+
<td>
|
73
|
+
Check This Out!
|
74
|
+
</td>
|
75
|
+
<td class="setting-value">
|
76
|
+
<div class="form-group ">
|
77
|
+
<input type="hidden" name="settings[check_something]" id="settings_check_something" value="off" autocomplete="off" /><input type="checkbox" name="settings[check_something]" id="settings_check_something" checked="checked" /><span class="help-block">You really should check it out!</span>
|
78
|
+
</div>
|
79
|
+
</td>
|
80
|
+
</tr>
|
81
|
+
<tr data-name="description">
|
82
|
+
<td>
|
83
|
+
translation missing: en.settings.attributes.description.name
|
84
|
+
</td>
|
85
|
+
<td class="setting-value">
|
86
|
+
<div class="form-group ">
|
87
|
+
<textarea name="settings[description]" id="settings_description" class="form-control" rows="10">
|
88
|
+
But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful.</textarea>
|
89
|
+
</div>
|
90
|
+
</td>
|
91
|
+
</tr>
|
92
|
+
<tr data-name="mode">
|
93
|
+
<td>
|
94
|
+
Mode
|
95
|
+
</td>
|
96
|
+
<td class="setting-value">
|
97
|
+
<div class="form-group ">
|
98
|
+
<input type="checkbox" name="settings[mode][auto]" id="settings_mode_auto" style="margin: 0 10px;" /><label style="display: inline-block;" for="settings_mode_auto">Auto</label><input type="checkbox" name="settings[mode][manual]" id="settings_mode_manual" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_mode_manual">Manual</label><span class="help-block">This is some help text.</span>
|
99
|
+
</div>
|
100
|
+
</td>
|
101
|
+
</tr>
|
102
|
+
<tr data-name="timer">
|
103
|
+
<td>
|
104
|
+
translation missing: en.settings.attributes.timer.name
|
105
|
+
</td>
|
106
|
+
<td class="setting-value">
|
107
|
+
<div class="form-group ">
|
108
|
+
<input type="text" name="settings[timer]" id="settings_timer" value="7200.0" class="form-control" />
|
109
|
+
</div>
|
110
|
+
</td>
|
111
|
+
</tr>
|
112
|
+
<tr data-name="project_status">
|
113
|
+
<td>
|
114
|
+
translation missing: en.settings.attributes.project_status.name
|
115
|
+
</td>
|
116
|
+
<td class="setting-value">
|
117
|
+
<div class="form-group ">
|
118
|
+
<input type="text" name="settings[project_status]" id="settings_project_status" value="finished" class="form-control" />
|
119
|
+
</div>
|
120
|
+
</td>
|
121
|
+
</tr>
|
122
|
+
<tr data-name="locale">
|
123
|
+
<td>
|
124
|
+
Locale
|
125
|
+
</td>
|
126
|
+
<td class="setting-value">
|
127
|
+
<div class="form-group ">
|
128
|
+
<input type="checkbox" name="settings[locale][en]" id="settings_locale_en" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_locale_en">en</label><input type="checkbox" name="settings[locale][ru]" id="settings_locale_ru" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_locale_ru">ru</label>
|
129
|
+
</div>
|
130
|
+
</td>
|
131
|
+
</tr>
|
132
|
+
<tr data-name="readonly_item">
|
133
|
+
<td>
|
134
|
+
translation missing: en.settings.attributes.readonly_item.name
|
135
|
+
</td>
|
136
|
+
<td class="setting-value">
|
137
|
+
<div class="form-group ">
|
138
|
+
<input type="text" name="settings[readonly_item]" id="settings_readonly_item" value="100" class="form-control" />
|
139
|
+
</div>
|
140
|
+
</td>
|
141
|
+
</tr>
|
142
|
+
</tbody>
|
143
|
+
</table>
|
144
|
+
<input type="submit" name="commit" value="Save all" class="btn btn-primary btn-lg" data-disable-with="Save all" />
|
145
|
+
</form>
|
146
|
+
|
147
|
+
|
148
|
+
</body>
|
149
|
+
</html>
|
@@ -0,0 +1,149 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy</title>
|
5
|
+
<link rel="stylesheet" href="/stylesheets/application.css" media="all" data-turbolinks-track="true" />
|
6
|
+
<script src="/javascripts/application.js" data-turbolinks-track="true"></script>
|
7
|
+
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<ol class="breadcrumb">
|
12
|
+
<li class="active">
|
13
|
+
Settings
|
14
|
+
</li>
|
15
|
+
</ol>
|
16
|
+
<div class="alert alert-success">Settings saved succesfully!</div>
|
17
|
+
<form class="form" action="/settings/update_all" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="_method" value="put" autocomplete="off" />
|
18
|
+
<table class="table table-striped">
|
19
|
+
<thead>
|
20
|
+
<tr>
|
21
|
+
<th>
|
22
|
+
Description
|
23
|
+
</th>
|
24
|
+
<th>
|
25
|
+
Value
|
26
|
+
</th>
|
27
|
+
</tr>
|
28
|
+
</thead>
|
29
|
+
<tbody>
|
30
|
+
<tr data-name="project_name">
|
31
|
+
<td>
|
32
|
+
translation missing: en.settings.attributes.project_name.name
|
33
|
+
</td>
|
34
|
+
<td class="setting-value">
|
35
|
+
<div class="form-group ">
|
36
|
+
<input type="text" name="settings[project_name]" id="settings_project_name" value="Dummy" class="form-control" />
|
37
|
+
</div>
|
38
|
+
</td>
|
39
|
+
</tr>
|
40
|
+
<tr data-name="limit">
|
41
|
+
<td>
|
42
|
+
translation missing: en.settings.attributes.limit.name
|
43
|
+
</td>
|
44
|
+
<td class="setting-value">
|
45
|
+
<div class="form-group ">
|
46
|
+
<input type="text" name="settings[limit]" id="settings_limit" value="150" class="form-control" />
|
47
|
+
</div>
|
48
|
+
</td>
|
49
|
+
</tr>
|
50
|
+
<tr data-name="angle">
|
51
|
+
<td>
|
52
|
+
translation missing: en.settings.attributes.angle.name
|
53
|
+
</td>
|
54
|
+
<td class="setting-value">
|
55
|
+
<div class="form-group ">
|
56
|
+
<input type="text" name="settings[angle]" id="settings_angle" value="0.5" class="form-control" />
|
57
|
+
</div>
|
58
|
+
</td>
|
59
|
+
</tr>
|
60
|
+
<tr data-name="style">
|
61
|
+
<td>
|
62
|
+
translation missing: en.settings.attributes.style.name
|
63
|
+
</td>
|
64
|
+
<td class="setting-value">
|
65
|
+
<div class="form-group ">
|
66
|
+
<textarea name="settings[style]" id="settings_style" class="form-control" rows="10">
|
67
|
+
{"border_color"=>"e0e0e0", "block_color"=>"ffffff", "title"=>{"font"=>"Tahoma", "size"=>"12", "color"=>"107821"}}</textarea>
|
68
|
+
</div>
|
69
|
+
</td>
|
70
|
+
</tr>
|
71
|
+
<tr data-name="check_something">
|
72
|
+
<td>
|
73
|
+
Check This Out!
|
74
|
+
</td>
|
75
|
+
<td class="setting-value">
|
76
|
+
<div class="form-group ">
|
77
|
+
<input type="hidden" name="settings[check_something]" id="settings_check_something" value="off" autocomplete="off" /><input type="checkbox" name="settings[check_something]" id="settings_check_something" checked="checked" /><span class="help-block">You really should check it out!</span>
|
78
|
+
</div>
|
79
|
+
</td>
|
80
|
+
</tr>
|
81
|
+
<tr data-name="description">
|
82
|
+
<td>
|
83
|
+
translation missing: en.settings.attributes.description.name
|
84
|
+
</td>
|
85
|
+
<td class="setting-value">
|
86
|
+
<div class="form-group ">
|
87
|
+
<textarea name="settings[description]" id="settings_description" class="form-control" rows="10">
|
88
|
+
But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful.</textarea>
|
89
|
+
</div>
|
90
|
+
</td>
|
91
|
+
</tr>
|
92
|
+
<tr data-name="mode">
|
93
|
+
<td>
|
94
|
+
Mode
|
95
|
+
</td>
|
96
|
+
<td class="setting-value">
|
97
|
+
<div class="form-group ">
|
98
|
+
<input type="checkbox" name="settings[mode][auto]" id="settings_mode_auto" style="margin: 0 10px;" /><label style="display: inline-block;" for="settings_mode_auto">Auto</label><input type="checkbox" name="settings[mode][manual]" id="settings_mode_manual" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_mode_manual">Manual</label><span class="help-block">This is some help text.</span>
|
99
|
+
</div>
|
100
|
+
</td>
|
101
|
+
</tr>
|
102
|
+
<tr data-name="timer">
|
103
|
+
<td>
|
104
|
+
translation missing: en.settings.attributes.timer.name
|
105
|
+
</td>
|
106
|
+
<td class="setting-value">
|
107
|
+
<div class="form-group ">
|
108
|
+
<input type="text" name="settings[timer]" id="settings_timer" value="7200.0" class="form-control" />
|
109
|
+
</div>
|
110
|
+
</td>
|
111
|
+
</tr>
|
112
|
+
<tr data-name="project_status">
|
113
|
+
<td>
|
114
|
+
translation missing: en.settings.attributes.project_status.name
|
115
|
+
</td>
|
116
|
+
<td class="setting-value">
|
117
|
+
<div class="form-group ">
|
118
|
+
<input type="text" name="settings[project_status]" id="settings_project_status" value="finished" class="form-control" />
|
119
|
+
</div>
|
120
|
+
</td>
|
121
|
+
</tr>
|
122
|
+
<tr data-name="locale">
|
123
|
+
<td>
|
124
|
+
Locale
|
125
|
+
</td>
|
126
|
+
<td class="setting-value">
|
127
|
+
<div class="form-group ">
|
128
|
+
<input type="checkbox" name="settings[locale][en]" id="settings_locale_en" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_locale_en">en</label><input type="checkbox" name="settings[locale][ru]" id="settings_locale_ru" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_locale_ru">ru</label>
|
129
|
+
</div>
|
130
|
+
</td>
|
131
|
+
</tr>
|
132
|
+
<tr data-name="readonly_item">
|
133
|
+
<td>
|
134
|
+
translation missing: en.settings.attributes.readonly_item.name
|
135
|
+
</td>
|
136
|
+
<td class="setting-value">
|
137
|
+
<div class="form-group ">
|
138
|
+
<input type="text" name="settings[readonly_item]" id="settings_readonly_item" value="100" class="form-control" />
|
139
|
+
</div>
|
140
|
+
</td>
|
141
|
+
</tr>
|
142
|
+
</tbody>
|
143
|
+
</table>
|
144
|
+
<input type="submit" name="commit" value="Save all" class="btn btn-primary btn-lg" data-disable-with="Save all" />
|
145
|
+
</form>
|
146
|
+
|
147
|
+
|
148
|
+
</body>
|
149
|
+
</html>
|
@@ -0,0 +1,148 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy</title>
|
5
|
+
<link rel="stylesheet" href="/stylesheets/application.css" media="all" data-turbolinks-track="true" />
|
6
|
+
<script src="/javascripts/application.js" data-turbolinks-track="true"></script>
|
7
|
+
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<ol class="breadcrumb">
|
12
|
+
<li class="active">
|
13
|
+
Settings
|
14
|
+
</li>
|
15
|
+
</ol>
|
16
|
+
<form class="form" action="/settings/update_all" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="_method" value="put" autocomplete="off" />
|
17
|
+
<table class="table table-striped">
|
18
|
+
<thead>
|
19
|
+
<tr>
|
20
|
+
<th>
|
21
|
+
Description
|
22
|
+
</th>
|
23
|
+
<th>
|
24
|
+
Value
|
25
|
+
</th>
|
26
|
+
</tr>
|
27
|
+
</thead>
|
28
|
+
<tbody>
|
29
|
+
<tr data-name="project_name">
|
30
|
+
<td>
|
31
|
+
translation missing: en.settings.attributes.project_name.name
|
32
|
+
</td>
|
33
|
+
<td class="setting-value">
|
34
|
+
<div class="form-group ">
|
35
|
+
<input type="text" name="settings[project_name]" id="settings_project_name" value="Dummy" class="form-control" />
|
36
|
+
</div>
|
37
|
+
</td>
|
38
|
+
</tr>
|
39
|
+
<tr data-name="limit">
|
40
|
+
<td>
|
41
|
+
translation missing: en.settings.attributes.limit.name
|
42
|
+
</td>
|
43
|
+
<td class="setting-value">
|
44
|
+
<div class="form-group ">
|
45
|
+
<input type="text" name="settings[limit]" id="settings_limit" value="150" class="form-control" />
|
46
|
+
</div>
|
47
|
+
</td>
|
48
|
+
</tr>
|
49
|
+
<tr data-name="angle">
|
50
|
+
<td>
|
51
|
+
translation missing: en.settings.attributes.angle.name
|
52
|
+
</td>
|
53
|
+
<td class="setting-value">
|
54
|
+
<div class="form-group ">
|
55
|
+
<input type="text" name="settings[angle]" id="settings_angle" value="0.5" class="form-control" />
|
56
|
+
</div>
|
57
|
+
</td>
|
58
|
+
</tr>
|
59
|
+
<tr data-name="style">
|
60
|
+
<td>
|
61
|
+
translation missing: en.settings.attributes.style.name
|
62
|
+
</td>
|
63
|
+
<td class="setting-value">
|
64
|
+
<div class="form-group ">
|
65
|
+
<textarea name="settings[style]" id="settings_style" class="form-control" rows="10">
|
66
|
+
{"border_color"=>"e0e0e0", "block_color"=>"ffffff", "title"=>{"font"=>"Tahoma", "size"=>"12", "color"=>"107821"}}</textarea>
|
67
|
+
</div>
|
68
|
+
</td>
|
69
|
+
</tr>
|
70
|
+
<tr data-name="check_something">
|
71
|
+
<td>
|
72
|
+
Check This Out!
|
73
|
+
</td>
|
74
|
+
<td class="setting-value">
|
75
|
+
<div class="form-group ">
|
76
|
+
<input type="hidden" name="settings[check_something]" id="settings_check_something" value="off" autocomplete="off" /><input type="checkbox" name="settings[check_something]" id="settings_check_something" checked="checked" /><span class="help-block">You really should check it out!</span>
|
77
|
+
</div>
|
78
|
+
</td>
|
79
|
+
</tr>
|
80
|
+
<tr data-name="description">
|
81
|
+
<td>
|
82
|
+
translation missing: en.settings.attributes.description.name
|
83
|
+
</td>
|
84
|
+
<td class="setting-value">
|
85
|
+
<div class="form-group ">
|
86
|
+
<textarea name="settings[description]" id="settings_description" class="form-control" rows="10">
|
87
|
+
But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful.</textarea>
|
88
|
+
</div>
|
89
|
+
</td>
|
90
|
+
</tr>
|
91
|
+
<tr data-name="mode">
|
92
|
+
<td>
|
93
|
+
Mode
|
94
|
+
</td>
|
95
|
+
<td class="setting-value">
|
96
|
+
<div class="form-group ">
|
97
|
+
<input type="checkbox" name="settings[mode][auto]" id="settings_mode_auto" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_mode_auto">Auto</label><input type="checkbox" name="settings[mode][manual]" id="settings_mode_manual" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_mode_manual">Manual</label><span class="help-block">This is some help text.</span>
|
98
|
+
</div>
|
99
|
+
</td>
|
100
|
+
</tr>
|
101
|
+
<tr data-name="timer">
|
102
|
+
<td>
|
103
|
+
translation missing: en.settings.attributes.timer.name
|
104
|
+
</td>
|
105
|
+
<td class="setting-value">
|
106
|
+
<div class="form-group ">
|
107
|
+
<input type="text" name="settings[timer]" id="settings_timer" value="7200" class="form-control" />
|
108
|
+
</div>
|
109
|
+
</td>
|
110
|
+
</tr>
|
111
|
+
<tr data-name="project_status">
|
112
|
+
<td>
|
113
|
+
translation missing: en.settings.attributes.project_status.name
|
114
|
+
</td>
|
115
|
+
<td class="setting-value">
|
116
|
+
<div class="form-group ">
|
117
|
+
<input type="text" name="settings[project_status]" id="settings_project_status" value="finished" class="form-control" />
|
118
|
+
</div>
|
119
|
+
</td>
|
120
|
+
</tr>
|
121
|
+
<tr data-name="locale">
|
122
|
+
<td>
|
123
|
+
Locale
|
124
|
+
</td>
|
125
|
+
<td class="setting-value">
|
126
|
+
<div class="form-group ">
|
127
|
+
<input type="checkbox" name="settings[locale][en]" id="settings_locale_en" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_locale_en">en</label><input type="checkbox" name="settings[locale][ru]" id="settings_locale_ru" style="margin: 0 10px;" checked="checked" /><label style="display: inline-block;" for="settings_locale_ru">ru</label>
|
128
|
+
</div>
|
129
|
+
</td>
|
130
|
+
</tr>
|
131
|
+
<tr data-name="readonly_item">
|
132
|
+
<td>
|
133
|
+
translation missing: en.settings.attributes.readonly_item.name
|
134
|
+
</td>
|
135
|
+
<td class="setting-value">
|
136
|
+
<div class="form-group ">
|
137
|
+
<input type="text" name="settings[readonly_item]" id="settings_readonly_item" value="100" class="form-control" />
|
138
|
+
</div>
|
139
|
+
</td>
|
140
|
+
</tr>
|
141
|
+
</tbody>
|
142
|
+
</table>
|
143
|
+
<input type="submit" name="commit" value="Save all" class="btn btn-primary btn-lg" data-disable-with="Save all" />
|
144
|
+
</form>
|
145
|
+
|
146
|
+
|
147
|
+
</body>
|
148
|
+
</html>
|
@@ -105,8 +105,8 @@ describe "Settings interface", type: :feature do
|
|
105
105
|
form_value = JSON.generate(h)
|
106
106
|
fill_in("settings[style]", with: form_value)
|
107
107
|
click_on_save
|
108
|
-
expect(find("#settings_style").value).to eq("{\"border_color\"
|
109
|
-
expect(Settings
|
108
|
+
# expect(find("#settings_style").value).to eq("{\"border_color\" => \"e0e0e0\", \"block_color\" => \"000000\"}")
|
109
|
+
expect(Settings.style).to eq(h)
|
110
110
|
end
|
111
111
|
|
112
112
|
describe 'array' do
|
@@ -116,20 +116,21 @@ describe "Settings interface", type: :feature do
|
|
116
116
|
click_on_save
|
117
117
|
expect(find('#settings_mode_auto')).not_to be_checked
|
118
118
|
expect(find('#settings_mode_manual')).to be_checked
|
119
|
-
expect(Settings
|
119
|
+
expect(Settings.mode).to eq([:manual])
|
120
120
|
|
121
121
|
uncheck 'settings_mode_manual'
|
122
|
+
|
122
123
|
click_on_save
|
123
124
|
expect(find('#settings_mode_auto')).not_to be_checked
|
124
125
|
expect(find('#settings_mode_manual')).not_to be_checked
|
125
|
-
expect(Settings
|
126
|
+
expect(Settings.mode).to eq([])
|
126
127
|
|
127
128
|
check 'settings_mode_manual'
|
128
129
|
check 'settings_mode_auto'
|
129
130
|
click_on_save
|
130
131
|
expect(find('#settings_mode_auto')).to be_checked
|
131
132
|
expect(find('#settings_mode_manual')).to be_checked
|
132
|
-
expect(Settings
|
133
|
+
expect(Settings.mode).to eq([:auto, :manual])
|
133
134
|
end
|
134
135
|
|
135
136
|
it 'as select' do
|
@@ -138,12 +139,12 @@ describe "Settings interface", type: :feature do
|
|
138
139
|
select 'Auto', from: 'settings_mode'
|
139
140
|
click_on_save
|
140
141
|
expect(find('select#settings_mode').value).to eq('auto')
|
141
|
-
expect(Settings
|
142
|
+
expect(Settings.mode).to eq(:auto)
|
142
143
|
|
143
144
|
select 'Manual', from: 'settings_mode'
|
144
145
|
click_on_save
|
145
146
|
expect(find('select#settings_mode').value).to eq('manual')
|
146
|
-
expect(Settings
|
147
|
+
expect(Settings.mode).to eq(:manual)
|
147
148
|
end
|
148
149
|
end
|
149
150
|
|
@@ -159,7 +160,7 @@ describe "Settings interface", type: :feature do
|
|
159
160
|
fill_in("settings[#{name}]", with: form_value)
|
160
161
|
click_on_save
|
161
162
|
expect(find("#settings_#{name}").value).to eq(form_value)
|
162
|
-
expect(Settings
|
163
|
+
expect(Settings.public_send(name)).to eq(db_value)
|
163
164
|
end
|
164
165
|
|
165
166
|
def visit_settings_page
|