optimacms 0.1.25 → 0.1.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/optimacms/admin/pages_controller.rb +1 -1
  3. data/app/controllers/optimacms/admin/templates_controller.rb +1 -1
  4. data/app/controllers/optimacms/dev_controller.rb +8 -0
  5. data/app/views/optimacms/admin/layouts/_form.html.haml +6 -4
  6. data/app/views/optimacms/admin/pages/index.html.haml +2 -4
  7. data/app/views/optimacms/admin/templates/index.html.haml +2 -7
  8. data/lib/optimacms/page_services/page_route_service.rb +4 -0
  9. data/lib/optimacms/version.rb +1 -1
  10. data/test/dummy/config/initializers/simple_form.rb +166 -0
  11. data/test/dummy/config/initializers/simple_form_bootstrap.rb +136 -0
  12. data/test/dummy/config/locales/simple_form.en.yml +31 -0
  13. data/test/dummy/config/routes.rb +1 -1
  14. data/test/dummy/lib/templates/haml/scaffold/_form.html.haml +10 -0
  15. data/test/dummy/log/development.log +3902 -0
  16. data/test/dummy/tmp/cache/assets/development/sass/585f654cdcd249569ff250d9f65921fe212b1be8/application.css.scssc +0 -0
  17. data/test/dummy/tmp/cache/assets/development/sass/585f654cdcd249569ff250d9f65921fe212b1be8/bootstrap_and_overrides.css.scssc +0 -0
  18. data/test/dummy/tmp/cache/assets/development/sass/585f654cdcd249569ff250d9f65921fe212b1be8/bootstrap_custom.css.scssc +0 -0
  19. data/test/dummy/tmp/cache/assets/development/sass/585f654cdcd249569ff250d9f65921fe212b1be8/bootstrap_variables.css.scssc +0 -0
  20. data/test/dummy/tmp/cache/assets/development/sass/585f654cdcd249569ff250d9f65921fe212b1be8/tpl.css.scssc +0 -0
  21. data/test/dummy/tmp/cache/assets/development/sprockets/0d2f255829ff9f72d98dead4f35ddf02 +0 -0
  22. data/test/dummy/tmp/cache/assets/development/sprockets/2168c08c151d642aa46ea4bc6283929c +0 -0
  23. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  24. data/test/dummy/tmp/cache/assets/development/sprockets/2f7d38a264678a2db4a0d569a3313cb1 +0 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/332dfe4887cbad3adbd20e6609fa4960 +0 -0
  26. data/test/dummy/tmp/cache/assets/development/sprockets/3cd4037d8c32ad8fcdd5e3bbb8dfc35a +0 -0
  27. data/test/dummy/tmp/cache/assets/development/sprockets/4016d2fd0b776ceb82fcbfbc5d2e26b1 +0 -0
  28. data/test/dummy/tmp/cache/assets/development/sprockets/49c7cb5dd916ffc9e87ce3b989c92062 +0 -0
  29. data/test/dummy/tmp/cache/assets/development/sprockets/55a2847335c39261e1efe764deb18592 +0 -0
  30. data/test/dummy/tmp/cache/assets/development/sprockets/678a2e392e656b8132f0420e4ec28ed6 +0 -0
  31. data/test/dummy/tmp/cache/assets/development/sprockets/6843f0414f73089579ae0f9fddf7b38f +0 -0
  32. data/test/dummy/tmp/cache/assets/development/sprockets/73fbaa501dc0b072cf2c27fa7dfe0d91 +0 -0
  33. data/test/dummy/tmp/cache/assets/development/sprockets/88d843fcb07453d1057fac1e254fde0d +0 -0
  34. data/test/dummy/tmp/cache/assets/development/sprockets/8ab512c9b33ac90e699b73469d71f061 +0 -0
  35. data/test/dummy/tmp/cache/assets/development/sprockets/9ee80730ab26986d507820ac7a288d5c +0 -0
  36. data/test/dummy/tmp/cache/assets/development/sprockets/af26c017afcf68f1edd44a4c9bb942e4 +0 -0
  37. data/test/dummy/tmp/cache/assets/development/sprockets/bcca522c6302f184f12fe0e8a7d7e71a +0 -0
  38. data/test/dummy/tmp/cache/assets/development/sprockets/c11c6d97cfc7ef7945fa87f14b44445c +0 -0
  39. data/test/dummy/tmp/cache/assets/development/sprockets/c13fc73ceafa45876a901b3e775b83ae +0 -0
  40. data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  41. data/test/dummy/tmp/cache/assets/development/sprockets/d3e5a199890ba7c706fc62c2b891714d +0 -0
  42. data/test/dummy/tmp/cache/assets/development/sprockets/e945ca604ee0240455a5652953b3e495 +0 -0
  43. data/test/dummy/tmp/cache/assets/development/sprockets/ee287313e28f341f83628dec0a353fa6 +0 -0
  44. data/test/dummy/tmp/cache/assets/development/sprockets/ef2d6862f5fd690c5387cafd88944a9f +0 -0
  45. data/test/dummy/tmp/cache/assets/development/sprockets/f557612d05bb9fea499dce8352b3f0ca +0 -0
  46. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  47. data/test/dummy/tmp/cache/assets/development/sprockets/f9c51fa87975943d31bc1bfd7cb684c6 +0 -0
  48. data/test/dummy/tmp/pids/server.pid +1 -1
  49. metadata +20 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ba05a3d915964cd21dba8a342b94e6a1287db0c7
4
- data.tar.gz: 20b6cdb469ef481cf25d490f7f701748b82f21ef
3
+ metadata.gz: 5cf9fb56d81773ec36037279631514711b2da79b
4
+ data.tar.gz: 76eb50c0ec5c657f275f9a0c2d706426395f0312
5
5
  SHA512:
6
- metadata.gz: 7970fa5b5a69484e9fc7c3b17ea4370461c2970b538c6028c6a627344cd31a596280a860dcb7e0d7e90d528cb253b6b442e5bcb753040114f3e409b3cb8cb7d8
7
- data.tar.gz: 2949ae578c22d43649007be016d194b339b8960c381aa9619b6a51f29b4ecc0bd7bfb0b3279ca3fdec19ba714803c675743d830e43704dc9f0de1a83057874ce
6
+ metadata.gz: 08200fc22c4f94a12645ed206145f7a9dcdeab49816c59513250503c7301f8082a42b7a810902d2d065ee20be19c23388598a1dbb4ce2c84c90bb55ab7385624
7
+ data.tar.gz: af35050bec0889d65ca3a9c1cc598b83322164fea82e1f8e943f30bb16e7c1baea7895d4e047b4e284469291e60ab6a6559e8992289761d5b04ffd0135c0bfea
@@ -34,7 +34,7 @@ module Optimacms
34
34
 
35
35
  # fields
36
36
  field :title, :string, :text, {label: '', default_value: '', condition: :like_full}
37
- field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: 0}
37
+ field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: -1}
38
38
  end
39
39
 
40
40
 
@@ -42,7 +42,7 @@ module Optimacms
42
42
  # fields
43
43
  field :title, :string, :text, {label: '', default_value: '', condition: :like_full}
44
44
  #field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: 0, condition: :empty}
45
- field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: 0, condition: :custom, condition_scope: :of_parent}
45
+ field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: -1, condition: :custom, condition_scope: :of_parent}
46
46
 
47
47
  #field :category_id, :int, :select, {collection: [['UGX- Uganda Shillings',1],['USD- US Dollars',2]], label_method: :first, value_method: :last}
48
48
  #field :type_id, :int, :select, {label: 'Type', default_value: 0, collection: TemplateType.all, label_method: :title, value_method: :id}
@@ -1,6 +1,12 @@
1
1
  module Optimacms
2
2
  class DevController < ApplicationController
3
3
 
4
+ before_filter :check_env
5
+
6
+ def check_env
7
+ return false unless Rails.env.development?
8
+ end
9
+
4
10
  def file
5
11
  from = 'D:/mmx/projects/www/myrails/cms/site/test/dummy/public/files/1/cat_red.jpg'
6
12
  to = 'D:/mmx/projects/www/myrails/cms/site/test/dummy/public/files/1/supercat.jpg'
@@ -18,6 +24,8 @@ module Optimacms
18
24
  end
19
25
 
20
26
  def addadminuser
27
+ return
28
+
21
29
  row = Optimacms::CmsAdminUser.new
22
30
  row.email = 'admin@example.com'
23
31
  row.password = 'admin'
@@ -14,7 +14,9 @@
14
14
 
15
15
 
16
16
  :coffeescript
17
- $ ->
18
- $("#link_form_cancel").click (e) ->
19
- e.preventDefault()
20
- window.location = "#{@url_back}";
17
+ $(document).ready(function() {
18
+ $("#link_form_cancel").click(function(e){
19
+ e.preventDefault();
20
+ window.location = "#{@url_back}";
21
+ });
22
+ });
@@ -60,9 +60,7 @@
60
60
  %td
61
61
  =item.url
62
62
  %td
63
- - if item.is_folder?
64
- =link_to 'Edit', editfolder_page_path(item)
65
- - else
66
- =link_to 'Edit', edit_page_path(item)
63
+ =link_to 'Edit', (item.is_folder? ? editfolder_page_path(item) : edit_page_path(item))
64
+ =link_to 'Delete', page_path(item), :method => :delete, data: { confirm: 'Are you sure?' }
67
65
 
68
66
  =paginate @items
@@ -54,12 +54,7 @@
54
54
  %td
55
55
  =item.basepath
56
56
  %td
57
- - if !item.is_folder
58
- =link_to 'Edit', edit_template_path(item)
59
- =link_to 'Delete', template_path(item), :method => :delete, data: { confirm: 'Are you sure?' }
60
-
61
- - else
62
- =link_to 'Edit', editfolder_template_path(item)
63
- =link_to 'Delete', template_path(item), :method => :delete, data: { confirm: 'Are you sure?' }
57
+ =link_to 'Edit', (!item.is_folder ? edit_template_path(item) : editfolder_template_path(item))
58
+ =link_to 'Delete', template_path(item), :method => :delete, data: { confirm: 'Are you sure?' }
64
59
 
65
60
  =paginate @items
@@ -53,6 +53,10 @@ module Optimacms
53
53
 
54
54
 
55
55
  def self.parse_url(url)
56
+ if url.blank?
57
+ return '^$'
58
+ end
59
+
56
60
  url_parts = url.split '/'
57
61
  a = []
58
62
  url_parts.each do |part|
@@ -1,3 +1,3 @@
1
1
  module Optimacms
2
- VERSION = "0.1.25"
2
+ VERSION = "0.1.27"
3
3
  end
@@ -0,0 +1,166 @@
1
+ # Use this setup block to configure all options available in SimpleForm.
2
+ SimpleForm.setup do |config|
3
+ # Wrappers are used by the form builder to generate a
4
+ # complete input. You can remove any component from the
5
+ # wrapper, change the order or even add your own to the
6
+ # stack. The options given below are used to wrap the
7
+ # whole input.
8
+ config.wrappers :default, class: :input,
9
+ hint_class: :field_with_hint, error_class: :field_with_errors do |b|
10
+ ## Extensions enabled by default
11
+ # Any of these extensions can be disabled for a
12
+ # given input by passing: `f.input EXTENSION_NAME => false`.
13
+ # You can make any of these extensions optional by
14
+ # renaming `b.use` to `b.optional`.
15
+
16
+ # Determines whether to use HTML5 (:email, :url, ...)
17
+ # and required attributes
18
+ b.use :html5
19
+
20
+ # Calculates placeholders automatically from I18n
21
+ # You can also pass a string as f.input placeholder: "Placeholder"
22
+ b.use :placeholder
23
+
24
+ ## Optional extensions
25
+ # They are disabled unless you pass `f.input EXTENSION_NAME => true`
26
+ # to the input. If so, they will retrieve the values from the model
27
+ # if any exists. If you want to enable any of those
28
+ # extensions by default, you can change `b.optional` to `b.use`.
29
+
30
+ # Calculates maxlength from length validations for string inputs
31
+ b.optional :maxlength
32
+
33
+ # Calculates pattern from format validations for string inputs
34
+ b.optional :pattern
35
+
36
+ # Calculates min and max from length validations for numeric inputs
37
+ b.optional :min_max
38
+
39
+ # Calculates readonly automatically from readonly attributes
40
+ b.optional :readonly
41
+
42
+ ## Inputs
43
+ b.use :label_input
44
+ b.use :hint, wrap_with: { tag: :span, class: :hint }
45
+ b.use :error, wrap_with: { tag: :span, class: :error }
46
+
47
+ ## full_messages_for
48
+ # If you want to display the full error message for the attribute, you can
49
+ # use the component :full_error, like:
50
+ #
51
+ # b.use :full_error, wrap_with: { tag: :span, class: :error }
52
+ end
53
+
54
+ # The default wrapper to be used by the FormBuilder.
55
+ config.default_wrapper = :default
56
+
57
+ # Define the way to render check boxes / radio buttons with labels.
58
+ # Defaults to :nested for bootstrap config.
59
+ # inline: input + label
60
+ # nested: label > input
61
+ config.boolean_style = :nested
62
+
63
+ # Default class for buttons
64
+ config.button_class = 'btn'
65
+
66
+ # Method used to tidy up errors. Specify any Rails Array method.
67
+ # :first lists the first message for each field.
68
+ # Use :to_sentence to list all errors for each field.
69
+ # config.error_method = :first
70
+
71
+ # Default tag used for error notification helper.
72
+ config.error_notification_tag = :div
73
+
74
+ # CSS class to add for error notification helper.
75
+ config.error_notification_class = 'error_notification'
76
+
77
+ # ID to add for error notification helper.
78
+ # config.error_notification_id = nil
79
+
80
+ # Series of attempts to detect a default label method for collection.
81
+ # config.collection_label_methods = [ :to_label, :name, :title, :to_s ]
82
+
83
+ # Series of attempts to detect a default value method for collection.
84
+ # config.collection_value_methods = [ :id, :to_s ]
85
+
86
+ # You can wrap a collection of radio/check boxes in a pre-defined tag, defaulting to none.
87
+ # config.collection_wrapper_tag = nil
88
+
89
+ # You can define the class to use on all collection wrappers. Defaulting to none.
90
+ # config.collection_wrapper_class = nil
91
+
92
+ # You can wrap each item in a collection of radio/check boxes with a tag,
93
+ # defaulting to :span. Please note that when using :boolean_style = :nested,
94
+ # SimpleForm will force this option to be a label.
95
+ # config.item_wrapper_tag = :span
96
+
97
+ # You can define a class to use in all item wrappers. Defaulting to none.
98
+ # config.item_wrapper_class = nil
99
+
100
+ # How the label text should be generated altogether with the required text.
101
+ # config.label_text = lambda { |label, required, explicit_label| "#{required} #{label}" }
102
+
103
+ # You can define the class to use on all labels. Default is nil.
104
+ # config.label_class = nil
105
+
106
+ # You can define the default class to be used on forms. Can be overriden
107
+ # with `html: { :class }`. Defaulting to none.
108
+ # config.default_form_class = nil
109
+
110
+ # You can define which elements should obtain additional classes
111
+ # config.generate_additional_classes_for = [:wrapper, :label, :input]
112
+
113
+ # Whether attributes are required by default (or not). Default is true.
114
+ # config.required_by_default = true
115
+
116
+ # Tell browsers whether to use the native HTML5 validations (novalidate form option).
117
+ # These validations are enabled in SimpleForm's internal config but disabled by default
118
+ # in this configuration, which is recommended due to some quirks from different browsers.
119
+ # To stop SimpleForm from generating the novalidate option, enabling the HTML5 validations,
120
+ # change this configuration to true.
121
+ config.browser_validations = false
122
+
123
+ # Collection of methods to detect if a file type was given.
124
+ # config.file_methods = [ :mounted_as, :file?, :public_filename ]
125
+
126
+ # Custom mappings for input types. This should be a hash containing a regexp
127
+ # to match as key, and the input type that will be used when the field name
128
+ # matches the regexp as value.
129
+ # config.input_mappings = { /count/ => :integer }
130
+
131
+ # Custom wrappers for input types. This should be a hash containing an input
132
+ # type as key and the wrapper that will be used for all inputs with specified type.
133
+ # config.wrapper_mappings = { string: :prepend }
134
+
135
+ # Namespaces where SimpleForm should look for custom input classes that
136
+ # override default inputs.
137
+ # config.custom_inputs_namespaces << "CustomInputs"
138
+
139
+ # Default priority for time_zone inputs.
140
+ # config.time_zone_priority = nil
141
+
142
+ # Default priority for country inputs.
143
+ # config.country_priority = nil
144
+
145
+ # When false, do not use translations for labels.
146
+ # config.translate_labels = true
147
+
148
+ # Automatically discover new inputs in Rails' autoload path.
149
+ # config.inputs_discovery = true
150
+
151
+ # Cache SimpleForm inputs discovery
152
+ # config.cache_discovery = !Rails.env.development?
153
+
154
+ # Default class for inputs
155
+ # config.input_class = nil
156
+
157
+ # Define the default class of the input wrapper of the boolean input.
158
+ config.boolean_label_class = 'checkbox'
159
+
160
+ # Defines if the default input wrapper class should be included in radio
161
+ # collection wrappers.
162
+ # config.include_default_input_wrapper_class = true
163
+
164
+ # Defines which i18n scope will be used in Simple Form.
165
+ # config.i18n_scope = 'simple_form'
166
+ end
@@ -0,0 +1,136 @@
1
+ # Use this setup block to configure all options available in SimpleForm.
2
+ SimpleForm.setup do |config|
3
+ config.error_notification_class = 'alert alert-danger'
4
+ config.button_class = 'btn btn-default'
5
+ config.boolean_label_class = nil
6
+
7
+ config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
8
+ b.use :html5
9
+ b.use :placeholder
10
+ b.optional :maxlength
11
+ b.optional :pattern
12
+ b.optional :min_max
13
+ b.optional :readonly
14
+ b.use :label, class: 'control-label'
15
+
16
+ b.use :input, class: 'form-control'
17
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
18
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
19
+ end
20
+
21
+ config.wrappers :vertical_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
22
+ b.use :html5
23
+ b.use :placeholder
24
+ b.optional :maxlength
25
+ b.optional :readonly
26
+ b.use :label, class: 'control-label'
27
+
28
+ b.use :input
29
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
30
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
31
+ end
32
+
33
+ config.wrappers :vertical_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
34
+ b.use :html5
35
+ b.optional :readonly
36
+
37
+ b.wrapper tag: 'div', class: 'checkbox' do |ba|
38
+ ba.use :label_input
39
+ end
40
+
41
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
42
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
43
+ end
44
+
45
+ config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
46
+ b.use :html5
47
+ b.optional :readonly
48
+ b.use :label, class: 'control-label'
49
+ b.use :input
50
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
51
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
52
+ end
53
+
54
+ config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
55
+ b.use :html5
56
+ b.use :placeholder
57
+ b.optional :maxlength
58
+ b.optional :pattern
59
+ b.optional :min_max
60
+ b.optional :readonly
61
+ b.use :label, class: 'col-sm-3 control-label'
62
+
63
+ b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
64
+ ba.use :input, class: 'form-control'
65
+ ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
66
+ ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
67
+ end
68
+ end
69
+
70
+ config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
71
+ b.use :html5
72
+ b.use :placeholder
73
+ b.optional :maxlength
74
+ b.optional :readonly
75
+ b.use :label, class: 'col-sm-3 control-label'
76
+
77
+ b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
78
+ ba.use :input
79
+ ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
80
+ ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
81
+ end
82
+ end
83
+
84
+ config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
85
+ b.use :html5
86
+ b.optional :readonly
87
+
88
+ b.wrapper tag: 'div', class: 'col-sm-offset-3 col-sm-9' do |wr|
89
+ wr.wrapper tag: 'div', class: 'checkbox' do |ba|
90
+ ba.use :label_input, class: 'col-sm-9'
91
+ end
92
+
93
+ wr.use :error, wrap_with: { tag: 'span', class: 'help-block' }
94
+ wr.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
95
+ end
96
+ end
97
+
98
+ config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
99
+ b.use :html5
100
+ b.optional :readonly
101
+
102
+ b.use :label, class: 'col-sm-3 control-label'
103
+
104
+ b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
105
+ ba.use :input
106
+ ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
107
+ ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
108
+ end
109
+ end
110
+
111
+ config.wrappers :inline_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
112
+ b.use :html5
113
+ b.use :placeholder
114
+ b.optional :maxlength
115
+ b.optional :pattern
116
+ b.optional :min_max
117
+ b.optional :readonly
118
+ b.use :label, class: 'sr-only'
119
+
120
+ b.use :input, class: 'form-control'
121
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
122
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
123
+ end
124
+
125
+ # Wrappers for forms and inputs using the Bootstrap toolkit.
126
+ # Check the Bootstrap docs (http://getbootstrap.com)
127
+ # to learn about the different styles for forms and inputs,
128
+ # buttons and other elements.
129
+ config.default_wrapper = :vertical_form
130
+ config.wrapper_mappings = {
131
+ check_boxes: :vertical_radio_and_checkboxes,
132
+ radio_buttons: :vertical_radio_and_checkboxes,
133
+ file: :vertical_file_input,
134
+ boolean: :vertical_boolean,
135
+ }
136
+ end
@@ -0,0 +1,31 @@
1
+ en:
2
+ simple_form:
3
+ "yes": 'Yes'
4
+ "no": 'No'
5
+ required:
6
+ text: 'required'
7
+ mark: '*'
8
+ # You can uncomment the line below if you need to overwrite the whole required html.
9
+ # When using html, text and mark won't be used.
10
+ # html: '<abbr title="required">*</abbr>'
11
+ error_notification:
12
+ default_message: "Please review the problems below:"
13
+ # Examples
14
+ # labels:
15
+ # defaults:
16
+ # password: 'Password'
17
+ # user:
18
+ # new:
19
+ # email: 'E-mail to sign in.'
20
+ # edit:
21
+ # email: 'E-mail.'
22
+ # hints:
23
+ # defaults:
24
+ # username: 'User name to sign in.'
25
+ # password: 'No special characters, please.'
26
+ # include_blanks:
27
+ # defaults:
28
+ # age: 'Rather not say'
29
+ # prompts:
30
+ # defaults:
31
+ # age: 'Select your age'