refinerycms-settings 1.0.11 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/.gitignore +3 -0
  2. data/.rspec +3 -0
  3. data/.travis.yml +16 -0
  4. data/Gemfile +74 -0
  5. data/Rakefile +19 -0
  6. data/app/controllers/refinery/admin/settings_controller.rb +55 -0
  7. data/app/decorators/controllers/refinery/.gitkeep +0 -0
  8. data/app/decorators/models/refinery/.gitkeep +0 -0
  9. data/app/helpers/refinery/admin/settings_helper.rb +29 -0
  10. data/app/models/refinery/setting.rb +204 -0
  11. data/app/views/refinery/admin/settings/_actions.html.erb +8 -0
  12. data/app/views/refinery/admin/settings/_form.html.erb +54 -0
  13. data/app/views/refinery/admin/settings/_records.html.erb +21 -0
  14. data/app/views/refinery/admin/settings/_setting.html.erb +23 -0
  15. data/app/views/refinery/admin/settings/_settings.html.erb +4 -0
  16. data/app/views/refinery/admin/settings/edit.html.erb +1 -0
  17. data/app/views/{admin/refinery_settings → refinery/admin/settings}/index.html.erb +2 -2
  18. data/app/views/refinery/admin/settings/new.html.erb +1 -0
  19. data/config/locales/bg.yml +22 -40
  20. data/config/locales/cs.yml +22 -39
  21. data/config/locales/da.yml +22 -40
  22. data/config/locales/de.yml +26 -43
  23. data/config/locales/el.yml +22 -40
  24. data/config/locales/en.yml +22 -35
  25. data/config/locales/es.yml +31 -63
  26. data/config/locales/fi.yml +22 -40
  27. data/config/locales/fr.yml +22 -38
  28. data/config/locales/it.yml +20 -36
  29. data/config/locales/ja.yml +30 -0
  30. data/config/locales/ko.yml +29 -0
  31. data/config/locales/lolcat.yml +21 -37
  32. data/config/locales/lt.yml +23 -40
  33. data/config/locales/lv.yml +22 -40
  34. data/config/locales/nb.yml +22 -40
  35. data/config/locales/nl.yml +22 -40
  36. data/config/locales/pl.yml +23 -40
  37. data/config/locales/pt-BR.yml +22 -38
  38. data/config/locales/rs.yml +22 -40
  39. data/config/locales/ru.yml +22 -37
  40. data/config/locales/sk.yml +22 -40
  41. data/config/locales/sl.yml +21 -20
  42. data/config/locales/sv.yml +22 -39
  43. data/config/locales/vi.yml +23 -42
  44. data/config/locales/zh-CN.yml +22 -40
  45. data/config/locales/zh-TW.yml +22 -40
  46. data/config/routes.rb +3 -6
  47. data/db/migrate/20100913234710_create_refinerycms_settings_schema.rb +11 -19
  48. data/lib/refinery/generators/refinery/settings/settings_generator.rb +20 -0
  49. data/lib/refinery/settings/engine.rb +26 -0
  50. data/lib/refinery/settings.rb +22 -0
  51. data/lib/refinerycms-settings.rb +1 -32
  52. data/readme.md +46 -0
  53. data/refinerycms-settings.gemspec +7 -79
  54. data/script/rails +6 -0
  55. data/spec/factories/settings.rb +5 -0
  56. data/spec/models/refinery/setting_spec.rb +103 -0
  57. data/spec/requests/refinery/admin/settings_spec.rb +57 -0
  58. data/spec/spec_helper.rb +56 -0
  59. data/tasks/rspec.rake +4 -0
  60. metadata +87 -75
  61. data/app/controllers/admin/refinery_settings_controller.rb +0 -71
  62. data/app/helpers/refinery_settings_helper.rb +0 -25
  63. data/app/models/refinery_setting.rb +0 -206
  64. data/app/views/admin/refinery_settings/_actions.html.erb +0 -15
  65. data/app/views/admin/refinery_settings/_form.html.erb +0 -62
  66. data/app/views/admin/refinery_settings/_records.html.erb +0 -21
  67. data/app/views/admin/refinery_settings/_refinery_setting.html.erb +0 -23
  68. data/app/views/admin/refinery_settings/_refinery_settings.html.erb +0 -5
  69. data/app/views/admin/refinery_settings/edit.html.erb +0 -1
  70. data/app/views/admin/refinery_settings/new.html.erb +0 -1
  71. data/config/locales/jp.yml +0 -47
  72. data/db/migrate/20100926142529_add_value_type_to_refinery_settings.rb +0 -9
  73. data/features/manage_refinery_settings.feature +0 -5
  74. data/features/step_definitions/setting_steps.rb +0 -9
  75. data/features/support/paths.rb +0 -14
  76. data/lib/gemspec.rb +0 -37
  77. data/lib/generators/refinerycms_settings_generator.rb +0 -8
  78. data/spec/models/refinery_setting_spec.rb +0 -101
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ .DS_Store
2
+ Gemfile.lock
3
+ spec/dummy
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --drb
3
+ --format Fuubar
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ before_script:
2
+ - "bundle exec rake refinery:testing:dummy_app > /dev/null"
3
+ script: "bundle exec rspec ./spec"
4
+ notifications:
5
+ email:
6
+ - parndt@gmail.com
7
+ - ugis.ozolss@gmail.com
8
+ env:
9
+ - DB=postgresql
10
+ - DB=mysql
11
+ rvm:
12
+ - 1.8.7
13
+ - 1.9.2
14
+ - 1.9.3
15
+ - rbx
16
+ - jruby
data/Gemfile ADDED
@@ -0,0 +1,74 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'friendly_id', :git => 'git://github.com/norman/friendly_id.git'
6
+
7
+ git 'git://github.com/resolve/refinerycms.git' do
8
+ gem 'refinerycms'
9
+
10
+ group :development, :test do
11
+ gem 'refinerycms-testing'
12
+ end
13
+ end
14
+
15
+ group :development, :test do
16
+ require 'rbconfig'
17
+
18
+ platforms :jruby do
19
+ gem 'activerecord-jdbcsqlite3-adapter'
20
+ gem 'activerecord-jdbcmysql-adapter'
21
+ gem 'activerecord-jdbcpostgresql-adapter'
22
+ gem 'jruby-openssl'
23
+ end
24
+
25
+ unless defined?(JRUBY_VERSION)
26
+ gem 'sqlite3'
27
+ gem 'mysql2'
28
+ gem 'pg'
29
+ end
30
+
31
+ platforms :mswin, :mingw do
32
+ gem 'win32console'
33
+ gem 'rb-fchange', '~> 0.0.5'
34
+ gem 'rb-notifu', '~> 0.0.4'
35
+ end
36
+
37
+ platforms :ruby do
38
+ gem 'spork', '0.9.0.rc9'
39
+ gem 'guard-spork'
40
+
41
+ unless ENV['TRAVIS']
42
+ if RbConfig::CONFIG['target_os'] =~ /darwin/i
43
+ gem 'rb-fsevent', '>= 0.3.9'
44
+ gem 'growl', '~> 1.0.3'
45
+ end
46
+ if RbConfig::CONFIG['target_os'] =~ /linux/i
47
+ gem 'rb-inotify', '>= 0.5.1'
48
+ gem 'libnotify', '~> 0.1.3'
49
+ gem 'therubyracer', '~> 0.9.9'
50
+ end
51
+ end
52
+ end
53
+
54
+ platforms :jruby do
55
+ unless ENV['TRAVIS']
56
+ if RbConfig::CONFIG['target_os'] =~ /darwin/i
57
+ gem 'growl', '~> 1.0.3'
58
+ end
59
+ if RbConfig::CONFIG['target_os'] =~ /linux/i
60
+ gem 'rb-inotify', '>= 0.5.1'
61
+ gem 'libnotify', '~> 0.1.3'
62
+ end
63
+ end
64
+ end
65
+ end
66
+
67
+ # Refinery/rails should pull in the proper versions of these
68
+ group :assets do
69
+ gem 'sass-rails'
70
+ gem 'coffee-rails'
71
+ gem 'uglifier'
72
+ end
73
+
74
+ gem 'jquery-rails'
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+
8
+ ENGINE_PATH = File.dirname(__FILE__)
9
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
10
+
11
+ if File.exists?(APP_RAKEFILE)
12
+ load 'rails/tasks/engine.rake'
13
+ end
14
+
15
+ require "refinerycms-testing"
16
+ Refinery::Testing::Railtie.load_tasks
17
+ Refinery::Testing::Railtie.load_dummy_tasks(ENGINE_PATH)
18
+
19
+ load File.expand_path('../tasks/rspec.rake', __FILE__)
@@ -0,0 +1,55 @@
1
+ module ::Refinery
2
+ module Admin
3
+ class SettingsController < ::Refinery::AdminController
4
+
5
+ helper "refinery/admin/settings"
6
+
7
+ crudify :'refinery/setting',
8
+ :order => "name ASC",
9
+ :redirect_to_url => :redirect_to_where?,
10
+ :xhr_paging => true
11
+
12
+ before_filter :sanitise_params, :only => [:create, :update]
13
+
14
+ def new
15
+ form_value_type = ((current_refinery_user.has_role?(:superuser) && params[:form_value_type]) || 'text_area')
16
+ @setting = ::Refinery::Setting.new(:form_value_type => form_value_type)
17
+ end
18
+
19
+ def edit
20
+ @setting = ::Refinery::Setting.find(params[:id])
21
+
22
+ render :layout => false if request.xhr?
23
+ end
24
+
25
+ protected
26
+ def find_all_settings
27
+ @settings = ::Refinery::Setting.order('name ASC')
28
+
29
+ unless current_refinery_user.has_role?(:superuser)
30
+ @settings = @settings.where("restricted <> ? ", true)
31
+ end
32
+
33
+ @settings
34
+ end
35
+
36
+ def search_all_settings
37
+ # search for settings that begin with keyword
38
+ term = "^" + params[:search].to_s.downcase.gsub(' ', '_')
39
+
40
+ # First find normal results, then weight them with the query.
41
+ @settings = find_all_settings.with_query(term)
42
+ end
43
+
44
+ private
45
+ def redirect_to_where?
46
+ (from_dialog? && session[:return_to].present?) ? session[:return_to] : refinery.admin_settings_path
47
+ end
48
+
49
+ # this fires before an update or create to remove any attempts to pass sensitive arguments.
50
+ def sanitise_params
51
+ params.delete(:scoping)
52
+ end
53
+ end
54
+ end
55
+ end
File without changes
File without changes
@@ -0,0 +1,29 @@
1
+ module ::Refinery
2
+ module Admin
3
+ module SettingsHelper
4
+ def form_value_type
5
+ @setting.form_value_type.presence || 'text_area'
6
+ end
7
+
8
+ def setting_title(f)
9
+ if @setting.form_value_type == 'check_box'
10
+ raw "<h3>#{@setting.name.to_s.titleize}?</h3>"
11
+ else
12
+ f.label :value
13
+ end
14
+ end
15
+
16
+ def setting_field(f, help)
17
+ case form_value_type
18
+ when 'check_box'
19
+ raw "#{f.check_box :value, :value => @setting.form_value}
20
+ #{f.label :value, help.presence || t('enabled', :scope => 'refinery.admin.settings.form'),
21
+ :class => 'stripped'}"
22
+ else
23
+ f.text_area :value, :value => @setting.form_value,
24
+ :class => 'widest', :rows => 5
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,204 @@
1
+ module Refinery
2
+ class Setting < Refinery::Core::BaseModel
3
+ extend FriendlyId
4
+ friendly_id :name
5
+
6
+ FORM_VALUE_TYPES = [
7
+ ['Multi-line', 'text_area'],
8
+ ['Checkbox', 'check_box']
9
+ ]
10
+
11
+ validates :name, :presence => true
12
+
13
+ serialize :value # stores into YAML format
14
+
15
+ # Docs for acts_as_indexed http://github.com/dougal/acts_as_indexed
16
+ acts_as_indexed :fields => [:name]
17
+
18
+ attr_accessible :name, :value, :destroyable,
19
+ :scoping, :restricted, :form_value_type
20
+
21
+ before_save do |setting|
22
+ setting.restricted = false if setting.restricted.nil?
23
+ end
24
+
25
+ after_save do |setting|
26
+ setting.class.rewrite_cache
27
+ end
28
+
29
+ class << self
30
+ # Number of settings to show per page when using will_paginate
31
+ def per_page
32
+ 12
33
+ end
34
+
35
+ def ensure_cache_exists!
36
+ if (result = Rails.cache.read(cache_key, :multithread => true)).nil?
37
+ result = rewrite_cache
38
+ end
39
+
40
+ result
41
+ end
42
+ protected :ensure_cache_exists!
43
+
44
+ def cache_read(name = nil, scoping = nil)
45
+ result = ensure_cache_exists!
46
+
47
+ if name.present?
48
+ scoping = scoping.to_s if scoping.is_a?(Symbol)
49
+ result = result.detect do |rs|
50
+ rs[:name] == name.to_s.downcase.to_sym and rs[:scoping] == scoping
51
+ end
52
+ result = result[:value] if !result.nil? and result.keys.include?(:value)
53
+ end
54
+
55
+ result
56
+ end
57
+
58
+ def to_cache(settings)
59
+ settings.collect do |rs|
60
+ {
61
+ :name => rs.name.to_s.downcase.to_sym,
62
+ :value => rs.value,
63
+ :scoping => rs.scoping,
64
+ :destroyable => rs.destroyable
65
+ }
66
+ end
67
+ end
68
+
69
+ def rewrite_cache
70
+ # delete cache
71
+ Rails.cache.delete(cache_key, :multithread => true)
72
+
73
+ # generate new cache
74
+ result = (to_cache(all) if (table_exists? rescue false))
75
+
76
+ # write cache
77
+ Rails.cache.write(cache_key, result, :multithread => true)
78
+
79
+ # return cache, or lack thereof.
80
+ result ||= []
81
+ end
82
+
83
+ def cache_key
84
+ [Refinery::Core.base_cache_key, 'settings_cache'].join('_')
85
+ end
86
+
87
+ # find_or_set offers a convenient way to
88
+ def find_or_set(name, the_value, options={})
89
+ # Merge default options with supplied options.
90
+ options = {
91
+ :scoping => nil,
92
+ :restricted => false,
93
+ :form_value_type => 'text_area'
94
+ }.merge(options)
95
+
96
+ # try to find the setting first
97
+ value = get(name, :scoping => options[:scoping])
98
+
99
+ # if the setting's value is nil, store a new one using the existing functionality.
100
+ value = set(name, options.merge({:value => the_value})) if value.nil?
101
+
102
+ # Return what we found.
103
+ value
104
+ end
105
+
106
+ alias :get_or_set :find_or_set
107
+
108
+ # Retrieve the current value for the setting whose name is supplied.
109
+ def get(name, options = {})
110
+ options = {:scoping => nil}.update(options)
111
+ cache_read(name, options[:scoping])
112
+ end
113
+
114
+ alias :[] :get
115
+
116
+ def set(name, value)
117
+ return (value.is_a?(Hash) ? value[:value] : value) unless (table_exists? rescue false)
118
+
119
+ scoping = (value[:scoping] if value.is_a?(Hash) and value.has_key?(:scoping))
120
+ setting = find_or_initialize_by_name_and_scoping(name.to_s, scoping)
121
+
122
+ # you could also pass in {:value => 'something', :scoping => 'somewhere'}
123
+ unless value.is_a?(Hash) and value.has_key?(:value)
124
+ setting.value = value
125
+ else
126
+ # set the value last, so that the other attributes can transform it if required.
127
+ setting.form_value_type = value[:form_value_type] || 'text_area' if setting.respond_to?(:form_value_type)
128
+ setting.scoping = value[:scoping] if value.has_key?(:scoping)
129
+ setting.destroyable = value[:destroyable] if value.has_key?(:destroyable)
130
+ setting.value = value[:value]
131
+ end
132
+
133
+ # Save because we're in a setter method.
134
+ setting.save
135
+
136
+ # Return the value
137
+ setting.value
138
+ end
139
+ end
140
+
141
+ # prettier version of the name.
142
+ # site_name becomes Site Name
143
+ def title
144
+ result = name.to_s.titleize
145
+ result << " (#{scoping.titleize})" if scoping.is_a?(String)
146
+ result
147
+ end
148
+
149
+ # form_value is so that on the web interface we can display a sane value.
150
+ def form_value
151
+ unless self[:value].blank? or self[:value].is_a?(String)
152
+ YAML::dump(self[:value])
153
+ else
154
+ self[:value]
155
+ end
156
+ end
157
+
158
+ def value
159
+ replacements!(self[:value])
160
+ end
161
+
162
+ def value=(new_value)
163
+ # must convert "1" to true and "0" to false when supplied using 'check_box', unfortunately.
164
+ if ["1", "0"].include?(new_value) and form_value_type == 'check_box'
165
+ new_value = new_value == "1" ? true : false
166
+ end
167
+
168
+ # must convert to string if true or false supplied otherwise it becomes 0 or 1, unfortunately.
169
+ if [true, false].include?(new_value)
170
+ new_value = new_value.to_s
171
+ end
172
+
173
+ super
174
+ end
175
+
176
+ private
177
+ # Below is not very nice, but seems to be required. The problem is when Rails
178
+ # serialises a fields like booleans it doesn't retrieve it back out as a boolean
179
+ # it just returns a string. This code maps the two boolean values
180
+ # correctly so that a boolean is returned instead of a string.
181
+ REPLACEMENTS = {"true" => true, "false" => false}
182
+
183
+ def replacements!(current_value)
184
+ # This bit handles true and false so that true and false are actually returned
185
+ # not "0" and "1"
186
+ REPLACEMENTS.each do |current, new_value|
187
+ current_value = new_value if current_value == current
188
+ end
189
+
190
+ # converts the serialised value back to an integer
191
+ # if the value is an integer
192
+ begin
193
+ if current_value.to_i.to_s == current_value
194
+ current_value = current_value.to_i
195
+ end
196
+ rescue
197
+ current_value
198
+ end
199
+
200
+ current_value
201
+ end
202
+
203
+ end
204
+ end
@@ -0,0 +1,8 @@
1
+ <ul>
2
+ <li>
3
+ <%= render '/refinery/admin/search', :url => refinery.admin_settings_path %>
4
+ </li>
5
+ <li>
6
+ <%= link_to t('.new'), refinery.new_admin_setting_path(:dialog => true), :class => "add_icon" %>
7
+ </li>
8
+ </ul>
@@ -0,0 +1,54 @@
1
+ <%= form_for [refinery, :admin, @setting] do |f| %>
2
+
3
+ <%= render '/refinery/admin/error_messages', :object => @setting, :include_object_name => true %>
4
+
5
+ <div class='field'>
6
+ <%= f.label :name %>
7
+ <% if action_name =~ /(new)|(create)/ %>
8
+ <%= f.text_field :name, :class => "larger widest" %>
9
+ <% else %>
10
+ <label class='stripped' for='setting_value'>
11
+ <%= @setting.title %>
12
+ </label>
13
+ <span class="preview">- (<%= @setting.name %>)</span>
14
+ <% end %>
15
+ <% if current_refinery_user.has_role?(:superuser) && @setting.new_record? %>
16
+ <div class='field'>
17
+ <%= f.label :form_value_type %>
18
+ <%= f.select :form_value_type, ::Refinery::Setting::FORM_VALUE_TYPES -%>
19
+ </div>
20
+ <% end %>
21
+ <% unless action_name =~ /(new)|(create)/ or (help = t(@setting.name, :scope => 'refinery.admin.settings.form.help', :default => '')).blank? or @setting.form_value_type == 'check_box' %>
22
+ <p>
23
+ <span><%= help %></span>
24
+ </p>
25
+ <% end %>
26
+ <% if current_refinery_user.has_role?(:superuser) %>
27
+ <span class='label_with_help'>
28
+ <%= f.label :restricted %>
29
+ <%= refinery_help_tag t('restricted', :scope => 'refinery.admin.settings.form.help') %>
30
+ </span>
31
+ <%= f.check_box :restricted %>
32
+ <%= f.label :restricted, t('.yes_make_this_setting_restricted'), :class => 'stripped' %>
33
+ <% end %>
34
+ </div>
35
+ <div class='field'>
36
+ <%= setting_title(f) %>
37
+ <%= setting_field(f, help) %>
38
+ </div>
39
+
40
+ <%= render '/refinery/admin/form_actions', :f => f,
41
+ :continue_editing => false,
42
+ :hide_cancel => from_dialog?,
43
+ :submit_button_title => t('.restart_may_be_in_order_html'),
44
+ :delete_title => t('delete', :scope => 'refinery.admin.settings'),
45
+ :delete_confirmation => t('message', :scope => 'refinery.admin.delete', :title => @setting.title),
46
+ :hide_delete => (@setting.new_record? or !@setting.destroyable or from_dialog?) %>
47
+ <% end -%>
48
+ <% content_for :javascripts do %>
49
+ <script>
50
+ $('#setting_form_value_type').change(function(e) {
51
+ window.location = location_url + ((location_url.indexOf("?") > -1 ? "&" : "?") + "form_value_type=" + $(this).val());
52
+ });
53
+ </script>
54
+ <% end if current_refinery_user.has_role?(:superuser) %>
@@ -0,0 +1,21 @@
1
+ <% if searching? %>
2
+ <h2>
3
+ <%= t('results_for', :scope => 'refinery.admin.search', :query => params[:search]) %>
4
+ </h2>
5
+ <% end %>
6
+ <div class='pagination_container'>
7
+ <% if @settings.any? %>
8
+ <%= render 'settings' %>
9
+ <% else %>
10
+ <p>
11
+ <% if searching? %>
12
+ <%= t('no_results', :scope => 'refinery.admin.search') %>
13
+ <% else %>
14
+ <strong>
15
+ <%= t('.empty_set') %>
16
+ <%= t('.create_first', :link => t('new', :scope => 'refinery.admin.settings.actions')) %>
17
+ </strong>
18
+ <% end %>
19
+ </p>
20
+ <% end %>
21
+ </div>
@@ -0,0 +1,23 @@
1
+ <li class='clearfix record <%= cycle("on", "on-hover") %>'>
2
+ <span class='title'>
3
+ <%= t(setting.name, :scope => 'refinery.admin.settings.form.title', :default => setting.title) %>
4
+ <span class="preview">- <%= truncate(setting.value.to_s, :length => 40) %></span>
5
+ </span>
6
+ <span class='actions'>
7
+ <%= link_to refinery_icon_tag('application_edit.png'),
8
+ refinery.edit_admin_setting_path(setting, :dialog => true, :width => 725, :height => 525),
9
+ :title => t('edit', :scope => 'refinery.admin.settings') %>
10
+ <%= link_to refinery_icon_tag('delete.png'),
11
+ refinery.admin_setting_path(setting),
12
+ :class => 'cancel confirm-delete',
13
+ :title => t('delete', :scope => 'refinery.admin.settings'),
14
+ :confirm => t('message', :scope => 'refinery.admin.delete', :title => setting.title),
15
+ :method => :delete if setting.destroyable %>
16
+
17
+ <% unless (help = t(setting.name, :scope => 'refinery.admin.settings.form.help', :default => '')).blank? %>
18
+ <%= link_to refinery_icon_tag('information.png'), '#',
19
+ :tooltip => help,
20
+ :class => 'information suppress' %>
21
+ <% end %>
22
+ </span>
23
+ </li>
@@ -0,0 +1,4 @@
1
+ <%= will_paginate @settings if Refinery::Admin::SettingsController.pageable? %>
2
+ <ul class="<%= ['pagination_frame', pagination_css_class].compact.join(' ') %>">
3
+ <%= render :partial => 'setting', :collection => @settings %>
4
+ </ul>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -1,8 +1,8 @@
1
1
  <div id='records'>
2
- <%= render :partial => 'records' %>
2
+ <%= render 'records' %>
3
3
  </div>
4
4
  <div id='actions'>
5
- <%= render :partial => 'actions' %>
5
+ <%= render 'actions' %>
6
6
  </div>
7
7
  <% content_for :javascripts do %>
8
8
  <script>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -1,47 +1,29 @@
1
1
  bg:
2
- plugins:
3
- refinery_settings:
4
- title: Настройки
5
- description: Управление на настройките в Refinery
6
- admin:
7
- refinery_settings:
8
- delete: Изтриване на тази настройка завинаги
9
- edit: Редактиране на тази настройка
10
- actions:
11
- new: Добавяне на нова настройка
12
- records:
13
- empty_set: Все още няма настройки.
14
- create_first: 'Натиснете "%{link}", за да въведете нова.'
15
- form:
16
- enabled: "Включване на тази настройка."
17
- restart_may_be_in_order_html: "<strong>Моля, обърнете внимание</strong>, че е възможно да се наложи да рестартирате уебсайта, за да бъде приложена тази настройка."
18
- yes_make_this_setting_restricted: "Ограничаване на тази настройка единствено до привилегировани потребители."
19
- help:
20
- restricted: По този начин единствено привилегированите потребители (като Вас) могат да преглеждат и редактират тази настройка.
21
- activity_show_limit: "Тази настройка ограничава броя на елементите, които могат да бъдат показвани на таблото."
22
- analytics_page_code: Този код активира проследяването на Google Analytics на Вашия сайт. Настройката е изключена ако се остави празна или се въведе стойност "UA-xxxxxx-x". При това положение не се правят повече обръщения към Google Analytics.
23
- frontend_refinery_stylesheets_enabled: "По подразбиране в Refinery са включени стилове за CSS за Вашия уебсайт. Това не пречи да използвате и Ваши. Тази настройка разрешава или забранява стиловете за CSS по подразбиране."
24
- image_dialogue_sizes: "Тази настройка се отнася до диалога за вмъкване на изображение. След като направите промени тук, се налага да актуализирате размера на малките изображения."
25
- image_thumbnails: 'Ако промените тази настройка, се налага отново да генерирате Вашите изображения, чрез командата "rake images:regenerate" (или чрез "rake images:update", ако само сте добавяли още малки изображения). Иначе промяната ще се отрази само за изображенията, добавяни занапред.'
26
- menu_hide_children: "Скриване на всички подстраници от менюто, дори и те да съществуват."
27
- new_page_parts: Разрешаване добавянето на нови части от страници (секции за съдържание) при редактиране.
28
- page_title: "Комплексна настройка, определяща заглавието на страница. Тук можете да въведете клас за CSS; различен етикет; да включите или изключите изписването на йерархията от страници и др."
29
- pages_advanced_options_include_seo: Определяне дали настройките за оптимизация на търсачки да бъдат показвани в разширените настройки на дадена страница.
30
- preferred_image_view: 'Чрез тази настройка се задава, как да бъдат преглеждани съществуващите изображения: като списък или като решетка. Това може да бъде указано и чрез бутон в секция "Изображения".'
31
- refinery_enable_backend_reordering: Премахване на възможността за подреждане на добавките.
32
- refinery_menu_cache_action_suffix: "Тази настройка указва ключа, който да бъде използван за кеширане на менюто на сайта. Ако използвате тема, тогава е най-добре да оставите стойността, която всяка тема задава по подразбиране."
33
- show_contact_privacy_link: Скриване или показване на политиката за поверителност във формата за контакт.
34
- site_name: "Тази настройка указва наименованието на Вашия уебсайт. То ще бъде показвано в заглавната част на страницата, в редактора на сайта и при някои теми в условията за ползване."
35
- theme: "Въвеждане наименованието на темата, която да бъде използвана. При правилно въведена тема, тя ще бъде приложена веднага."
36
- use_google_ajax_libraries: 'За използването на "Google AJAX CDN", задайте стойност "true".'
37
- use_marketable_urls: 'Промяна на уеб адресите от "/pages/about" на "/about" и автоматично разрешаване на евентуални конфликти с останалите добавки.'
38
- use_resource_caching: "Когато внедрявате системата е препоръчително да разрешите тази настройка. По този начин всички файлове с код за CSS и JavaScript ще бъдат обединени в по един файл. Така броя на заявките към Вашия уебсайт ще бъде намален и производителността ще се подобри. "
39
- approximate_ascii: 'Въведете "true", ако в заглавието на страниците използвате символи за ударение или други диакритични знаци. Така символи, като: ā, č, ž, ще бъдат преобразувани съответно в: a, c, z. По този начин няма да се визуализират странни символи в лентата за адреси при някои браузъри.'
2
+ refinery:
3
+ plugins:
4
+ refinery_settings:
5
+ title: Настройки
6
+ description: Управление на настройките в Refinery
7
+ admin:
8
+ settings:
9
+ delete: Изтриване на тази настройка завинаги
10
+ edit: Редактиране на тази настройка
11
+ actions:
12
+ new: Добавяне на нова настройка
13
+ records:
14
+ empty_set: Все още няма настройки.
15
+ create_first: 'Натиснете "%{link}", за да въведете нова.'
16
+ form:
17
+ enabled: "Включване на тази настройка."
18
+ restart_may_be_in_order_html: "<strong>Моля, обърнете внимание</strong>, че е възможно да се наложи да рестартирате уебсайта, за да бъде приложена тази настройка."
19
+ yes_make_this_setting_restricted: "Ограничаване на тази настройка единствено до привилегировани потребители."
20
+ help:
21
+ restricted: По този начин единствено привилегированите потребители (като Вас) могат да преглеждат и редактират тази настройка.
40
22
  activerecord:
41
23
  models:
42
- refinery_setting: настройка
24
+ refinery/setting: настройка
43
25
  attributes:
44
- refinery_setting:
26
+ refinery/setting:
45
27
  name: Наименование
46
28
  value: Стойност
47
29
  restricted: Ограничена