typo 5.0.1 → 5.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/accounts_controller.rb +1 -1
- data/app/controllers/admin/cache_controller.rb +2 -2
- data/app/controllers/admin/general_controller.rb +2 -22
- data/app/controllers/admin/settings_controller.rb +58 -0
- data/app/controllers/admin/sidebar_controller.rb +3 -1
- data/app/controllers/articles_controller.rb +2 -1
- data/app/controllers/content_controller.rb +0 -4
- data/app/helpers/admin/base_helper.rb +9 -3
- data/app/helpers/admin/general_helper.rb +0 -16
- data/app/helpers/admin/settings_helper.rb +18 -0
- data/app/models/blog.rb +2 -2
- data/app/models/blog_sweeper.rb +10 -2
- data/app/models/page_cache.rb +8 -2
- data/app/views/admin/advanced/index.html.erb +0 -162
- data/app/views/admin/general/update_database.html.erb +1 -1
- data/app/views/admin/settings/_submit.html.erb +3 -0
- data/app/views/admin/settings/feedback.html.erb +77 -0
- data/app/views/admin/settings/index.html.erb +81 -0
- data/app/views/admin/settings/podcast.html.erb +53 -0
- data/app/views/admin/settings/read.html.erb +38 -0
- data/app/views/admin/settings/spam.html.erb +51 -0
- data/app/views/admin/settings/write.html.erb +71 -0
- data/app/views/admin/sidebar/index.html.erb +1 -3
- data/app/views/admin/textfilters/list.html.erb +0 -2
- data/app/views/admin/themes/editor.html.erb +0 -2
- data/app/views/admin/themes/index.html.erb +0 -2
- data/app/views/layouts/administration.html.erb +3 -2
- data/config/environments/development.rb +1 -1
- data/db/schema_version +1 -1
- data/lib/tasks/release.rake +3 -2
- data/lib/typo_version.rb +1 -1
- data/spec/controllers/accounts_controller_spec.rb +2 -2
- data/spec/models/configuration_spec.rb +3 -3
- data/test/fixtures/blogs.yml +1 -1
- data/test/functional/admin/{general_controller_test.rb → settings_controller_test.rb} +6 -6
- data/test/functional/articles_controller_test.rb +7 -0
- metadata +23 -7
- data/app/controllers/admin/advanced_controller.rb +0 -20
- data/app/views/admin/general/index.html.erb +0 -141
- data/test/functional/admin/advanced_controller_test.rb +0 -21
@@ -30,7 +30,7 @@ class AccountsController < ApplicationController
|
|
30
30
|
if request.post? and @user.save
|
31
31
|
session[:user_id] = @user.id
|
32
32
|
flash[:notice] = "Signup successful"
|
33
|
-
redirect_to :controller => "admin/
|
33
|
+
redirect_to :controller => "admin/settings", :action => "index"
|
34
34
|
return
|
35
35
|
end
|
36
36
|
end
|
@@ -14,7 +14,7 @@ class Admin::CacheController < Admin::BaseController
|
|
14
14
|
expire_fragment(/.*/)
|
15
15
|
|
16
16
|
flash[:notice] = _('Cache was cleared')
|
17
|
-
redirect_to :controller => '/admin/
|
17
|
+
redirect_to :controller => '/admin/settings'
|
18
18
|
end
|
19
19
|
|
20
20
|
def sweep_html
|
@@ -22,7 +22,7 @@ class Admin::CacheController < Admin::BaseController
|
|
22
22
|
expire_fragment(/^contents_html.*/)
|
23
23
|
|
24
24
|
flash[:notice] = _('HTML was cleared')
|
25
|
-
redirect_to :controller => '/admin/
|
25
|
+
redirect_to :controller => '/admin/settings'
|
26
26
|
end
|
27
27
|
|
28
28
|
end
|
@@ -1,16 +1,8 @@
|
|
1
1
|
class Admin::GeneralController < Admin::BaseController
|
2
|
-
|
3
2
|
def index
|
4
|
-
|
5
|
-
this_blog.base_url = blog_base_url
|
6
|
-
end
|
3
|
+
redirect_to :controller => 'settings'
|
7
4
|
end
|
8
|
-
|
9
|
-
def redirect
|
10
|
-
flash[:notice] = "Please review and save the settings before continuing"
|
11
|
-
redirect_to :action => "index"
|
12
|
-
end
|
13
|
-
|
5
|
+
|
14
6
|
def update_database
|
15
7
|
@current_version = Migrator.current_schema_version
|
16
8
|
@needed_version = Migrator.max_schema_version
|
@@ -26,17 +18,5 @@ class Admin::GeneralController < Admin::BaseController
|
|
26
18
|
redirect_to :action => 'update_database'
|
27
19
|
end
|
28
20
|
end
|
29
|
-
|
30
|
-
def update
|
31
|
-
if request.post?
|
32
|
-
Blog.transaction do
|
33
|
-
params[:setting].each { |k,v| this_blog.send("#{k.to_s}=", v) }
|
34
|
-
this_blog.save
|
35
|
-
flash[:notice] = _('config updated.')
|
36
|
-
end
|
37
|
-
redirect_to :action => 'index'
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
21
|
private
|
42
22
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
class Admin::SettingsController < Admin::BaseController
|
2
|
+
def index
|
3
|
+
if this_blog.base_url.blank?
|
4
|
+
this_blog.base_url = blog_base_url
|
5
|
+
end
|
6
|
+
|
7
|
+
if request.post?
|
8
|
+
self.update
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def read
|
13
|
+
if request.post?
|
14
|
+
self.update
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def write
|
19
|
+
if request.post?
|
20
|
+
self.update
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def feedback
|
25
|
+
if request.post?
|
26
|
+
self.update
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def spam
|
31
|
+
if request.post?
|
32
|
+
self.update
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def podcast
|
37
|
+
if request.post?
|
38
|
+
self.update
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def redirect
|
43
|
+
flash[:notice] = "Please review and save the settings before continuing"
|
44
|
+
redirect_to :action => "index"
|
45
|
+
end
|
46
|
+
|
47
|
+
def update
|
48
|
+
if request.post?
|
49
|
+
Blog.transaction do
|
50
|
+
params[:setting].each { |k,v| this_blog.send("#{k.to_s}=", v) }
|
51
|
+
this_blog.save
|
52
|
+
flash[:notice] = _('config updated.')
|
53
|
+
end
|
54
|
+
redirect_to :action => 'index'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -46,7 +46,9 @@ class Admin::SidebarController < Admin::BaseController
|
|
46
46
|
Sidebar.transaction do
|
47
47
|
position = 0
|
48
48
|
params[:configure] ||= { }
|
49
|
-
|
49
|
+
# Crappy workaround to rails update_all bug with PgSQL / SQLite
|
50
|
+
# this_blog.sidebars.update_all('active_position = null')
|
51
|
+
ActiveRecord::Base.connection.execute("update sidebars set active_position=null where blog_id = #{this_blog.id}")
|
50
52
|
flash[:sidebars].each do |id|
|
51
53
|
sidebar = Sidebar.find(id)
|
52
54
|
sb_attribs = params[:configure][id.to_s] || {}
|
@@ -35,6 +35,7 @@ class ArticlesController < ContentController
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
if params[:page]
|
38
|
+
@page_title = 'Older posts,' if @page_title.blank?
|
38
39
|
@page_title << " page " << params[:page]
|
39
40
|
end
|
40
41
|
|
@@ -117,7 +118,7 @@ class ArticlesController < ContentController
|
|
117
118
|
if User.count == 0
|
118
119
|
redirect_to :controller => "accounts", :action => "signup"
|
119
120
|
elsif ! this_blog.configured?
|
120
|
-
redirect_to :controller => "admin/
|
121
|
+
redirect_to :controller => "admin/settings", :action => "redirect"
|
121
122
|
else
|
122
123
|
return true
|
123
124
|
end
|
@@ -168,12 +168,18 @@ module Admin::BaseHelper
|
|
168
168
|
end
|
169
169
|
end
|
170
170
|
|
171
|
-
def
|
172
|
-
if controller.controller_name =~ /
|
171
|
+
def class_themes
|
172
|
+
if controller.controller_name =~ /themes/
|
173
173
|
"current"
|
174
174
|
end
|
175
175
|
end
|
176
176
|
|
177
|
+
def class_plugins
|
178
|
+
if controller.controller_name =~ /sidebar|textfilter/
|
179
|
+
"current"
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
177
183
|
def class_users
|
178
184
|
if controller.controller_name =~ /users/
|
179
185
|
"current"
|
@@ -187,7 +193,7 @@ module Admin::BaseHelper
|
|
187
193
|
end
|
188
194
|
|
189
195
|
def class_admin
|
190
|
-
if controller.controller_name =~ /
|
196
|
+
if controller.controller_name =~ /settings/
|
191
197
|
"current"
|
192
198
|
end
|
193
199
|
end
|
@@ -1,18 +1,2 @@
|
|
1
1
|
module Admin::GeneralHelper
|
2
|
-
require 'find'
|
3
|
-
|
4
|
-
def fetch_langs
|
5
|
-
options = content_tag(:option, "en_US", :value => 'en_US')
|
6
|
-
Find.find(RAILS_ROOT + "/lang") do |lang|
|
7
|
-
if lang =~ /\.rb$/
|
8
|
-
lang_pattern = File.basename(lang).gsub(".rb", '')
|
9
|
-
if this_blog.lang == lang_pattern
|
10
|
-
options << content_tag(:option, lang_pattern, :value => lang_pattern, :selected => 'selected')
|
11
|
-
else
|
12
|
-
options << content_tag(:option, lang_pattern, :value => lang_pattern)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
options
|
17
|
-
end
|
18
2
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Admin::SettingsHelper
|
2
|
+
require 'find'
|
3
|
+
|
4
|
+
def fetch_langs
|
5
|
+
options = content_tag(:option, "en_US", :value => 'en_US')
|
6
|
+
Find.find(RAILS_ROOT + "/lang") do |lang|
|
7
|
+
if lang =~ /\.rb$/
|
8
|
+
lang_pattern = File.basename(lang).gsub(".rb", '')
|
9
|
+
if this_blog.lang == lang_pattern
|
10
|
+
options << content_tag(:option, lang_pattern, :value => lang_pattern, :selected => 'selected')
|
11
|
+
else
|
12
|
+
options << content_tag(:option, lang_pattern, :value => lang_pattern)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
options
|
17
|
+
end
|
18
|
+
end
|
data/app/models/blog.rb
CHANGED
@@ -78,8 +78,8 @@ class Blog < CachedModel
|
|
78
78
|
setting :itunes_copyright, :string, ''
|
79
79
|
|
80
80
|
# Mostly Behaviour
|
81
|
-
setting :text_filter, :string, ''
|
82
|
-
setting :comment_text_filter, :string, ''
|
81
|
+
setting :text_filter, :string, 'markdown smartypants'
|
82
|
+
setting :comment_text_filter, :string, 'markdown smartypants'
|
83
83
|
setting :limit_article_display, :integer, 10
|
84
84
|
setting :limit_rss_display, :integer, 10
|
85
85
|
setting :default_allow_pings, :boolean, false
|
data/app/models/blog_sweeper.rb
CHANGED
@@ -2,6 +2,7 @@ class BlogSweeper < ActionController::Caching::Sweeper
|
|
2
2
|
observe Category, Blog, Sidebar, User, Article, Page, Categorization
|
3
3
|
|
4
4
|
def after_comments_create
|
5
|
+
logger.debug 'BlogSweeper#after_comments_create'
|
5
6
|
expire_for(controller.send(:instance_variable_get, :@comment))
|
6
7
|
end
|
7
8
|
|
@@ -9,16 +10,19 @@ class BlogSweeper < ActionController::Caching::Sweeper
|
|
9
10
|
alias_method :after_articles_comment, :after_comments_create
|
10
11
|
|
11
12
|
def after_comments_destroy
|
13
|
+
logger.debug 'BlogSweeper#after_comments_destroy'
|
12
14
|
expire_for(controller.send(:instance_variable_get, :@comment), true)
|
13
15
|
end
|
14
16
|
|
15
17
|
alias_method :after_articles_nuke_comment, :after_comments_destroy
|
16
18
|
|
17
19
|
def after_articles_trackback
|
20
|
+
logger.debug 'BlogSweeper#after_articles_trackback'
|
18
21
|
expire_for(controller.send(:instance_variable_get, :@trackback))
|
19
22
|
end
|
20
23
|
|
21
24
|
def after_articles_nuke_trackback
|
25
|
+
logger.debug 'BlogSweeper#after_articles_nuke_trackback'
|
22
26
|
expire_for(controller.send(:instance_variable_get, :@trackback), true)
|
23
27
|
end
|
24
28
|
|
@@ -61,13 +65,17 @@ class BlogSweeper < ActionController::Caching::Sweeper
|
|
61
65
|
|
62
66
|
def sweep_articles
|
63
67
|
expire_fragment(%r{.*/articles/.*})
|
64
|
-
|
68
|
+
unless Blog.default && Blog.default.cache_option == "caches_action_with_params"
|
69
|
+
PageCache.zap_pages('index.*', 'articles')
|
70
|
+
end
|
65
71
|
end
|
66
72
|
|
67
73
|
def sweep_pages(record = nil)
|
68
74
|
expire_fragment(/.*\/pages\/.*/)
|
69
75
|
expire_fragment(/.*\/view_page.*/)
|
70
|
-
|
76
|
+
unless Blog.default && Blog.default.cache_option == "caches_action_with_params"
|
77
|
+
PageCache.zap_pages('pages')
|
78
|
+
end
|
71
79
|
end
|
72
80
|
|
73
81
|
def logger
|
data/app/models/page_cache.rb
CHANGED
@@ -4,19 +4,25 @@ class PageCache < ActiveRecord::Base
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def self.sweep_all
|
7
|
-
|
7
|
+
logger.debug "PageCache - sweep_all called"
|
8
|
+
unless Blog.default && Blog.default.cache_option == "caches_action_with_params"
|
9
|
+
self.zap_pages('index.*', 'articles', 'pages')
|
10
|
+
end
|
8
11
|
end
|
9
12
|
|
10
13
|
def self.sweep_theme_cache
|
14
|
+
logger.debug "PageCache - sweep_theme_cache called"
|
11
15
|
self.zap_pages('images/theme', 'stylesheets/theme', 'javascripts/theme')
|
12
16
|
end
|
13
17
|
|
14
18
|
def self.zap_pages(*paths)
|
19
|
+
logger.debug "PageCache - About to zap: #{paths.inspect}"
|
15
20
|
srcs = paths.inject([]) { |o,v|
|
16
21
|
o + Dir.glob(public_path + "/#{v}")
|
17
22
|
}
|
18
23
|
return true if srcs.empty?
|
19
|
-
|
24
|
+
logger.debug "PageCache - About to delete: #{srcs.inspect}"
|
25
|
+
trash = Dir::tmpdir + "/typodel.#{UUID.random_create}"
|
20
26
|
FileUtils.makedirs(trash)
|
21
27
|
FileUtils.mv(srcs, trash, :force => true)
|
22
28
|
FileUtils.rm_rf(trash)
|
@@ -11,169 +11,7 @@
|
|
11
11
|
<% form_tag :action => 'update' do %>
|
12
12
|
|
13
13
|
<div class="admin">
|
14
|
-
<fieldset id="write" class="set">
|
15
|
-
<legend><%= _("Write")%></legend>
|
16
|
-
<ul>
|
17
|
-
<li>
|
18
|
-
<label class="float" for="text_filter"><%= _("Article filter")%>:</label>
|
19
|
-
<select name="setting[text_filter]" id="text_filter">
|
20
|
-
<%= options_for_select text_filter_options, TextFilter.find_by_name(this_blog.text_filter) %>
|
21
|
-
</select>
|
22
|
-
</li>
|
23
|
-
<li>
|
24
|
-
<label for="comment_text_filter" class="float"><%= _("Comments filter")%>:</label>
|
25
|
-
<select name="setting[comment_text_filter]" id="comment_text_filter">
|
26
|
-
<%= options_for_select text_filter_options, TextFilter.find_by_name(this_blog.comment_text_filter) %>
|
27
|
-
</select>
|
28
|
-
</li>
|
29
|
-
</ul>
|
30
|
-
</fieldset>
|
31
14
|
|
32
|
-
<fieldset id="publish" class="set">
|
33
|
-
<legend><%= _("Publish")%></legend>
|
34
|
-
<ul>
|
35
|
-
<li>
|
36
|
-
<%= _("When publishing articles, Typo can send trackbacks to websites that you link to. This should be disabled for private blogs as it will leak non-public information to sites that you're discussing. For public blogs, there's no real point in disabling this.")%>
|
37
|
-
</li>
|
38
|
-
<li class="checkbox">
|
39
|
-
<label class="float" for="send_outbound_pings"><%= _("Send trackbacks")%>:</label>
|
40
|
-
<input name="setting[send_outbound_pings]" id="send_outbound_pings" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.send_outbound_pings%> />
|
41
|
-
<input name="setting[send_outbound_pings]" type="hidden" value="0" />
|
42
|
-
</li>
|
43
|
-
<li>
|
44
|
-
<label class="float" for="ping_urls"><%= _("URLs to ping automatically")%>:</label>
|
45
|
-
<textarea name="setting[ping_urls]" id="ping_urls" rows="5" cols="50"><%=h this_blog.ping_urls %></textarea>
|
46
|
-
</li>
|
47
|
-
<li>
|
48
|
-
<label class="float" for="geourl_location"><%= _("Latitude, Longitude")%>:</label>
|
49
|
-
<input name="setting[geourl_location]" size="20" id="geourl_location" type="text" value="<%= this_blog.geourl_location %>" />
|
50
|
-
<span class="float"><%= _("Display")%> <a href="http://geourl.org"><%= _("your lattitude and longitude")%></a> (<%= _("exemple")%> <tt>47.774,-122.201</tt>)</span>
|
51
|
-
</li>
|
52
|
-
|
53
|
-
</ul>
|
54
|
-
</fieldset>
|
55
|
-
|
56
|
-
<fieldset id="seo" class="set" style="margin-top:10px;">
|
57
|
-
<legend><%= _("Search Engine Optimisation")%></legend>
|
58
|
-
<ul>
|
59
|
-
<li>
|
60
|
-
<label class="float"><%= _("Show blog name")%>:</label>
|
61
|
-
<input type="radio" name="setting[title_prefix]" value="1" id="blog_title_prefix_1" <%= 'checked="checked"' if this_blog.title_prefix == 1 %>/>
|
62
|
-
<label for="blog_title_prefix_1"><%= _("At the beginning of page title")%></label>
|
63
|
-
<span class="float">
|
64
|
-
<input type="radio" name="setting[title_prefix]" value="2" id="blog_title_prefix_2" <%= 'checked="checked"' if this_blog.title_prefix == 2 %>/>
|
65
|
-
<label for="blog_title_prefix_2"><%= _("At the end of page title")%></label>
|
66
|
-
</span>
|
67
|
-
<span class="float">
|
68
|
-
<input type="radio" name="setting[title_prefix]" value="0" id="blog_title_prefix_0" <%= 'checked="checked"' if this_blog.title_prefix == 0 %>/>
|
69
|
-
<label for="blog_title_prefix_0"><%= _("Don't show blog name in page title")%></label>
|
70
|
-
</span>
|
71
|
-
</li>
|
72
|
-
</ul>
|
73
|
-
</fieldset>
|
74
|
-
|
75
|
-
<fieldset id="discuss" class="set">
|
76
|
-
<legend><%= _("Discuss")%></legend>
|
77
|
-
<ul>
|
78
|
-
<li>
|
79
|
-
<%= _("This setting allows you to disable trackbacks for every article in your blog. It won't remove existing trackbacks, but it will prevent any further attempt to add a trackback anywhere on your blog.")%>
|
80
|
-
</li>
|
81
|
-
<li class="checkbox">
|
82
|
-
<label class="float" for="global_pings_disable"><%= _("Disable trackbacks site-wide")%>:</label>
|
83
|
-
<input name="setting[global_pings_disable]" id="global_pings_disable" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.global_pings_disable%> />
|
84
|
-
<input name="setting[global_pings_disable]" type="hidden" value="0" />
|
85
|
-
</li>
|
86
|
-
<li><%= _("You can enable site wide feeback moderation. If you do so, no comment or trackback will appear on your blog unless you validate it")%>.</li>
|
87
|
-
<li class="checkbox">
|
88
|
-
<label class="float" for="default_moderate_comments"><%= _("Enable feedback moderation")%>:</label>
|
89
|
-
<input name="setting[default_moderate_comments]" id="default_moderate_comments" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.default_moderate_comments %> />
|
90
|
-
<input name="setting[default_moderate_comments]" type="hidden" value="0" />
|
91
|
-
</li>
|
92
|
-
<li class="checkbox">
|
93
|
-
<label class="float" for="link_to_author"><%= _("Show your email address") %>:</label>
|
94
|
-
<input name="setting[link_to_author]" id="link_to_author" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.link_to_author%> />
|
95
|
-
<input name="setting[link_to_author]" type="hidden" value="0" />
|
96
|
-
</li>
|
97
|
-
<li>
|
98
|
-
<%= _("You can optionally disable non-Ajax comments. Typo will always use Ajax for comment submission if Javascript is enabled, so non-Ajax comments are either from spammers or users without Javascript.")%>
|
99
|
-
</li>
|
100
|
-
<li class="checkbox">
|
101
|
-
<label for="sp_allow_non_ajax_comments" class="float"><%= _("Allow non-ajax comments") %>:</label>
|
102
|
-
<input name="setting[sp_allow_non_ajax_comments]" id="sp_allow_non_ajax_comments" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.sp_allow_non_ajax_comments%> />
|
103
|
-
<input name="setting[sp_allow_non_ajax_comments]" type="hidden" value="0" />
|
104
|
-
</li>
|
105
|
-
<li>
|
106
|
-
<label for="sp_article_auto_close" class="float"><%= _("Disable comments after")%></label>
|
107
|
-
<input name="setting[sp_article_auto_close]" size="4" id="sp_article_auto_close" type="text" value="<%= this_blog.sp_article_auto_close %>" /> <%= _("days") %>
|
108
|
-
<span class="float"><%= _("Set to 0 to never disable comments")%></span>
|
109
|
-
</li>
|
110
|
-
<li>
|
111
|
-
<p><%= _("Typo will automatically reject comments and trackbacks which contain over a certain amount of links in them")%>.</p>
|
112
|
-
<label class="float" for="sp_url_limit"><%= _("Max Links")%>:</label>
|
113
|
-
<input name="setting[sp_url_limit]" size="4" id="sp_url_limit" type="text" value="<%= this_blog.sp_url_limit %>" />
|
114
|
-
<span class="float"><%= _("Set to 0 to never reject comments")%></span>
|
115
|
-
</li>
|
116
|
-
</ul>
|
117
|
-
</fieldset>
|
118
|
-
|
119
|
-
<fieldset id="notification" class="set">
|
120
|
-
<legend><%= _("Notification")%></legend>
|
121
|
-
<ul>
|
122
|
-
<li><%= _("Typo can notify you when new articles or comments are posted")%></li>
|
123
|
-
<li>
|
124
|
-
<label class="float" for="email_from"><%= _("Source Email")%>:</label>
|
125
|
-
<input name="setting[email_from]" size="25" id="email_from" type="text" value="<%= this_blog.email_from %>" />
|
126
|
-
<span class="float"><%= _("Email address used by Typo to send notifications")%>.</span>
|
127
|
-
</li>
|
128
|
-
<li>
|
129
|
-
<label for="jabber_address" class="float"><%=_("Jabber account")%>:</label>
|
130
|
-
<input name="setting[jabber_address]" size="20" id="jabber_address" type="text" value="<%= this_blog.jabber_address %>" />
|
131
|
-
<span class="float"><%= _("Jabber account to use when sending Jabber notifications") %>.</span>
|
132
|
-
</li>
|
133
|
-
<li>
|
134
|
-
<label class="float" for="jabber_password"><%= _("Jabber password")%>:</label>
|
135
|
-
<input name="setting[jabber_password]" size="20" id="jabber_password" type="password" value="<%= this_blog.jabber_password %>" />
|
136
|
-
</li>
|
137
|
-
</ul>
|
138
|
-
</fieldset>
|
139
|
-
|
140
|
-
<fieldset id="resources" class="set">
|
141
|
-
<legend><%= _("Resource Settings")%></legend>
|
142
|
-
<ul>
|
143
|
-
<li><%= _("The below settings act as defaults when you choose to publish an enclosure with iTunes metadata")%>.</li>
|
144
|
-
<li>
|
145
|
-
<label for="itunes_author" class="float"><%= _("Author")%>:</label>
|
146
|
-
<input name="setting[itunes_author]" size="25" id="itunes_author" type="text" value="<%= this_blog.itunes_author %>" />
|
147
|
-
</li>
|
148
|
-
<li>
|
149
|
-
<label for="itunes_subtitle" class="float"><%= _("Subtitle")%>: <span class="mandatory">*</span></label>
|
150
|
-
<input name="setting[itunes_subtitle]" size="25" id="itunes_subtitle" type="text" value="<%= this_blog.itunes_subtitle %>" />
|
151
|
-
</li>
|
152
|
-
<li>
|
153
|
-
<label class="float" for="itunes_summary"><%= _("Summary")%>: <span class="mandatory">*</span></label>
|
154
|
-
<textarea name="setting[itunes_summary]" cols="40" rows="3"><%=h this_blog.itunes_summary %></textarea>
|
155
|
-
<span class="float mandatory">* <%= _("Setting for channel")%></span>
|
156
|
-
</li>
|
157
|
-
<li>
|
158
|
-
<label class="float" for="itunes_email"><%= _("Email")%>: <span class="mandatory">**</span></label>
|
159
|
-
<input name="setting[itunes_email]" size="25" id="itunes_email" type="text" value="<%= this_blog.itunes_email %>" />
|
160
|
-
</li>
|
161
|
-
<li>
|
162
|
-
<label class="float" for="itunes_name"><%= _("Optional Name")%>: <span class="mandatory">**</span></label>
|
163
|
-
<input name="setting[itunes_name]" size="25" id="itunes_name" type="text" value="<%= this_blog.itunes_name %>" />
|
164
|
-
<span class="float mandatory">** <%= _("Not published by Apple")%></span>
|
165
|
-
</li>
|
166
|
-
<li>
|
167
|
-
<label class="float" for="itunes_copyright"><%= _("Copyright Information")%>:</label>
|
168
|
-
<input name="setting[itunes_copyright]" size="25" id="itunes_copyright" type="text" value="<%= this_blog.itunes_copyright %>" />
|
169
|
-
</li>
|
170
|
-
<li class="checkbox">
|
171
|
-
<label class="float" for="itunes_explicit"><%= _("Explicit")%>:</label>
|
172
|
-
<input name="setting[itunes_explicit]" id="itunes_explicit" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.itunes_explicit%> />
|
173
|
-
<input name="setting[itunes_explicit]" type="hidden" value="0" />
|
174
|
-
</li>
|
175
|
-
</ul>
|
176
|
-
</fieldset>
|
177
15
|
|
178
16
|
<div id="operations" class="paginate r">
|
179
17
|
<%= save(_("Save Settings")) %>
|
@@ -0,0 +1,77 @@
|
|
1
|
+
<% @page_heading = _('Feedback') %>
|
2
|
+
|
3
|
+
<% content_for('tasks') do -%>
|
4
|
+
<%= subtab _("General settings"), "", {:controller => "settings"} %>
|
5
|
+
<%= subtab _("Read"), "", { :controller => 'settings', :action => 'read' } %>
|
6
|
+
<%= subtab _("Write"), "", { :controller => 'settings', :action => 'write' } %>
|
7
|
+
<%= subtab _("Feedback"), "current", { :controller => 'settings', :action => 'feedback' } %>
|
8
|
+
<%= subtab _("Spam"), "", { :controller => 'settings', :action => 'spam' } %>
|
9
|
+
<%= subtab _("Podcasts"), "", { :controller => 'settings', :action => 'podcast' } %>
|
10
|
+
<% end -%>
|
11
|
+
|
12
|
+
<% form_tag :action => 'feedback' do %>
|
13
|
+
|
14
|
+
<div class="admin">
|
15
|
+
<fieldset id="discuss" class="set">
|
16
|
+
<legend><%= _("Feedback")%></legend>
|
17
|
+
<ul>
|
18
|
+
<li class="checkbox">
|
19
|
+
<label class="float" for="default_allow_pings"><%= _("Enable Trackbacks by default")%>:</label>
|
20
|
+
<input name="setting[default_allow_pings]" id="default_allow_pings" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.default_allow_pings%> />
|
21
|
+
<input name="setting[default_allow_pings]" type="hidden" value="0" />
|
22
|
+
</li>
|
23
|
+
<li class="checkbox">
|
24
|
+
<label class="float" for="default_allow_comments"><%= _("Enable comments by default")%>:</label>
|
25
|
+
<input name="setting[default_allow_comments]" id="default_allow_comments" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.default_allow_comments%> />
|
26
|
+
<input name="setting[default_allow_comments]" type="hidden" value="0" />
|
27
|
+
</li>
|
28
|
+
<li class="checkbox">
|
29
|
+
<label class="float" for="use_gravatar"><%= _("Enable gravatars")%>:</label>
|
30
|
+
<input name="setting[use_gravatar]" id="use_gravatar" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.use_gravatar %> />
|
31
|
+
<input name="setting[use_gravatar]" type="hidden" value="0" />
|
32
|
+
</li>
|
33
|
+
<li>
|
34
|
+
<%= _("This setting allows you to disable trackbacks for every article in your blog. It won't remove existing trackbacks, but it will prevent any further attempt to add a trackback anywhere on your blog.")%>
|
35
|
+
</li>
|
36
|
+
<li class="checkbox">
|
37
|
+
<label class="float" for="global_pings_disable"><%= _("Disable trackbacks site-wide")%>:</label>
|
38
|
+
<input name="setting[global_pings_disable]" id="global_pings_disable" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.global_pings_disable%> />
|
39
|
+
<input name="setting[global_pings_disable]" type="hidden" value="0" />
|
40
|
+
</li>
|
41
|
+
<li><%= _("You can enable site wide feeback moderation. If you do so, no comment or trackback will appear on your blog unless you validate it")%>.</li>
|
42
|
+
<li class="checkbox">
|
43
|
+
<label class="float" for="default_moderate_comments"><%= _("Enable feedback moderation")%>:</label>
|
44
|
+
<input name="setting[default_moderate_comments]" id="default_moderate_comments" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.default_moderate_comments %> />
|
45
|
+
<input name="setting[default_moderate_comments]" type="hidden" value="0" />
|
46
|
+
</li>
|
47
|
+
<li class="checkbox">
|
48
|
+
<label class="float" for="link_to_author"><%= _("Show your email address") %>:</label>
|
49
|
+
<input name="setting[link_to_author]" id="link_to_author" type="checkbox" value="1" <%= 'checked="checked"' if this_blog.link_to_author%> />
|
50
|
+
<input name="setting[link_to_author]" type="hidden" value="0" />
|
51
|
+
</li>
|
52
|
+
</ul>
|
53
|
+
</fieldset>
|
54
|
+
|
55
|
+
<fieldset id="notification" class="set">
|
56
|
+
<legend><%= _("Notification")%></legend>
|
57
|
+
<ul>
|
58
|
+
<li><%= _("Typo can notify you when new articles or comments are posted")%></li>
|
59
|
+
<li>
|
60
|
+
<label class="float" for="email_from"><%= _("Source Email")%>:</label>
|
61
|
+
<input name="setting[email_from]" size="25" id="email_from" type="text" value="<%= this_blog.email_from %>" />
|
62
|
+
<span class="float"><%= _("Email address used by Typo to send notifications")%>.</span>
|
63
|
+
</li>
|
64
|
+
<li>
|
65
|
+
<label for="jabber_address" class="float"><%=_("Jabber account")%>:</label>
|
66
|
+
<input name="setting[jabber_address]" size="20" id="jabber_address" type="text" value="<%= this_blog.jabber_address %>" />
|
67
|
+
<span class="float"><%= _("Jabber account to use when sending Jabber notifications") %>.</span>
|
68
|
+
</li>
|
69
|
+
<li>
|
70
|
+
<label class="float" for="jabber_password"><%= _("Jabber password")%>:</label>
|
71
|
+
<input name="setting[jabber_password]" size="20" id="jabber_password" type="password" value="<%= this_blog.jabber_password %>" />
|
72
|
+
</li>
|
73
|
+
</ul>
|
74
|
+
</fieldset>
|
75
|
+
<%= render :partial => 'submit' %>
|
76
|
+
</div>
|
77
|
+
<% end %>
|