typo 5.4.4 → 5.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +59 -28
- data/MAINTAINERS +9 -17
- data/README +28 -20
- data/UPGRADE +6 -2
- data/app/controllers/accounts_controller.rb +1 -1
- data/app/controllers/admin/content_controller.rb +1 -1
- data/app/controllers/admin/feedback_controller.rb +3 -3
- data/app/controllers/admin/pages_controller.rb +2 -0
- data/app/controllers/application_controller.rb +6 -1
- data/app/controllers/articles_controller.rb +13 -1
- data/app/helpers/application_helper.rb +5 -2
- data/app/helpers/authors_helper.rb +14 -3
- data/app/models/article.rb +6 -4
- data/app/models/blog.rb +0 -4
- data/app/models/blog_sweeper.rb +1 -1
- data/app/models/content.rb +10 -5
- data/app/models/page_cache.rb +6 -7
- data/app/models/user.rb +1 -0
- data/app/views/admin/content/_form.html.erb +13 -11
- data/app/views/admin/content/_images.html.erb +1 -1
- data/app/views/admin/content/_simple_editor.html.erb +1 -0
- data/app/views/admin/content/_visual_editor.html.erb +1 -0
- data/app/views/admin/dashboard/_overview.html.erb +7 -7
- data/app/views/admin/pages/_form.html.erb +1 -0
- data/app/views/admin/pages/_images.html.erb +18 -0
- data/app/views/admin/pages/_simple_editor.html.erb +1 -2
- data/app/views/admin/pages/_visual_editor.html.erb +2 -1
- data/app/views/admin/pages/index.html.erb +1 -1
- data/app/views/admin/settings/feedback.html.erb +2 -1
- data/app/views/admin/tags/edit.html.erb +1 -1
- data/app/views/articles/_article.html.erb +17 -13
- data/app/views/articles/_article_content.html.erb +1 -0
- data/app/views/articles/_comment_box.html.erb +1 -1
- data/app/views/articles/_password_form.html.erb +10 -0
- data/app/views/articles/groupings.html.erb +1 -1
- data/app/views/articles/index.html.erb +1 -2
- data/app/views/articles/read.html.erb +1 -4
- data/app/views/articles/search.html.erb +1 -1
- data/app/views/layouts/administration.html.erb +1 -1
- data/app/views/shared/_search.html.erb +1 -1
- data/config/ckeditor.yml +14 -0
- data/config/environment.rb +13 -25
- data/config/environments/test.rb +1 -3
- data/config/filemanager.yml +16 -0
- data/config/initializers/access_rules.rb +5 -0
- data/config/routes.rb +5 -1
- data/db/migrate/004_add_sidebars.rb +3 -9
- data/db/migrate/089_drop_cache_information_table.rb +31 -0
- data/db/migrate/090_remove_keywords_from_posts.rb +9 -0
- data/db/migrate/091_adds_password_protection_to_posts.rb +9 -0
- data/doc/CACHE.SETUP.README +36 -0
- data/lang/de_DE.rb +6 -1
- data/lang/pl_PL.rb +221 -89
- data/lib/filemanager.rb +53 -0
- data/lib/filemanager/controller.rb +217 -0
- data/lib/i18n_interpolation_deprecation.rb +26 -0
- data/lib/rails_patch/active_support.rb +4 -0
- data/lib/tasks/release.rake +4 -131
- data/lib/typo_version.rb +1 -1
- data/public/.htaccess +6 -5
- data/public/filemanager/images/avi.gif +0 -0
- data/public/filemanager/images/box.gif +0 -0
- data/public/filemanager/images/bullet.gif +0 -0
- data/public/filemanager/images/close.gif +0 -0
- data/public/filemanager/images/closelabel.gif +0 -0
- data/public/filemanager/images/doc.gif +0 -0
- data/public/filemanager/images/donate-button.gif +0 -0
- data/public/filemanager/images/download-icon.gif +0 -0
- data/public/filemanager/images/folder.gif +0 -0
- data/public/filemanager/images/gif.gif +0 -0
- data/public/filemanager/images/htm.gif +0 -0
- data/public/filemanager/images/html.gif +0 -0
- data/public/filemanager/images/image-1.jpg +0 -0
- data/public/filemanager/images/image.gif +0 -0
- data/public/filemanager/images/jpg.gif +0 -0
- data/public/filemanager/images/loading.gif +0 -0
- data/public/filemanager/images/mov.gif +0 -0
- data/public/filemanager/images/nextlabel.gif +0 -0
- data/public/filemanager/images/pdf.gif +0 -0
- data/public/filemanager/images/png.gif +0 -0
- data/public/filemanager/images/ppt.gif +0 -0
- data/public/filemanager/images/prevlabel.gif +0 -0
- data/public/filemanager/images/rar.gif +0 -0
- data/public/filemanager/images/rm.gif +0 -0
- data/public/filemanager/images/rmvb.gif +0 -0
- data/public/filemanager/images/separator.gif +0 -0
- data/public/filemanager/images/spacer.gif +0 -0
- data/public/filemanager/images/swf.gif +0 -0
- data/public/filemanager/images/thumb-1.jpg +0 -0
- data/public/filemanager/images/tool_copy.gif +0 -0
- data/public/filemanager/images/tool_cut.gif +0 -0
- data/public/filemanager/images/tool_del.gif +0 -0
- data/public/filemanager/images/tool_folder.gif +0 -0
- data/public/filemanager/images/tool_imagemanager.gif +0 -0
- data/public/filemanager/images/tool_new.gif +0 -0
- data/public/filemanager/images/tool_paste.gif +0 -0
- data/public/filemanager/images/tool_props.gif +0 -0
- data/public/filemanager/images/tool_refresh.gif +0 -0
- data/public/filemanager/images/tool_unzip.gif +0 -0
- data/public/filemanager/images/tool_upload.gif +0 -0
- data/public/filemanager/images/tool_zip.gif +0 -0
- data/public/filemanager/images/txt.gif +0 -0
- data/public/filemanager/images/unknown.gif +0 -0
- data/public/filemanager/images/wmv.gif +0 -0
- data/public/filemanager/images/xls.gif +0 -0
- data/public/filemanager/images/zip.gif +0 -0
- data/public/filemanager/javascripts/filemanager.js +6 -0
- data/public/filemanager/javascripts/lang/en.js +31 -0
- data/public/filemanager/javascripts/lang/zh_CN.js +31 -0
- data/public/filemanager/javascripts/lightbox.js +497 -0
- data/public/filemanager/javascripts/translate.js +42 -0
- data/public/filemanager/resources/resources.txt +1 -0
- data/public/filemanager/stylesheets/filelist.css +147 -0
- data/public/filemanager/stylesheets/general.css +135 -0
- data/public/filemanager/stylesheets/lightbox.css +27 -0
- data/public/javascripts/prototype_ext.js +117 -0
- data/public/stylesheets/administration.css +19 -2
- data/themes/dirtylicious/views/articles/_article.html.erb +16 -12
- data/themes/dirtylicious/views/articles/_article_content.html.erb +1 -0
- data/themes/dirtylicious/views/articles/_password_form.html.erb +10 -0
- data/themes/scribbish/views/articles/_article.html.erb +18 -14
- data/themes/scribbish/views/articles/_article_content.html.erb +1 -0
- data/themes/scribbish/views/articles/_password_form.html.erb +10 -0
- data/themes/standard_issue/views/articles/_article.html.erb +16 -12
- data/themes/standard_issue/views/articles/_article_content.html.erb +1 -0
- data/themes/standard_issue/views/articles/_password_form.html.erb +10 -0
- data/themes/true-blue-3/helpers/theme_helper.rb +2 -2
- data/themes/true-blue-3/images/submit_form.jpg +0 -0
- data/themes/true-blue-3/stylesheets/style.css +27 -3
- data/themes/true-blue-3/views/articles/_article.html.erb +13 -8
- data/themes/true-blue-3/views/articles/_article_content.html.erb +1 -0
- data/themes/true-blue-3/views/articles/_comment_form.html.erb +1 -1
- data/themes/true-blue-3/views/articles/_password_form.html.erb +10 -0
- data/themes/true-blue-3/views/categories/_article.html.erb +5 -0
- data/themes/true-blue-3/views/tags/_article.html.erb +4 -0
- data/themes/typographic/views/articles/_article.html.erb +16 -12
- data/themes/typographic/views/articles/_article_content.html.erb +1 -0
- data/themes/typographic/views/articles/_password_form.html.erb +10 -0
- data/vendor/plugins/easy-ckeditor/app/controllers/ckeditor_controller.rb +2 -1
- data/vendor/plugins/easy-ckeditor/lib/ckeditor.rb +1 -20
- data/vendor/plugins/easy-ckeditor/{tasks → lib/tasks}/ckeditor_tasks.rake +0 -0
- data/vendor/plugins/filemanager/app/controllers/fm/filemanager_controller.rb +22 -0
- data/vendor/plugins/filemanager/app/views/fm/filemanager/index.html.erb +512 -0
- data/vendor/plugins/filemanager/app/views/fm/filemanager/view.html.erb +67 -0
- data/vendor/plugins/filemanager/filemanager.yml +16 -0
- data/vendor/plugins/static_sidebar/lib/static_sidebar.rb +4 -2
- data/vendor/plugins/typo_converter/{tasks → lib/tasks}/typo_converters_tasks.rake +0 -0
- data/vendor/plugins/typo_login_system/lib/access_control.rb +24 -1
- data/vendor/plugins/typo_textfilter_code/{tasks → lib/tasks}/typo_textfilter_code_tasks.rake +0 -0
- data/vendor/plugins/typo_textfilter_code/lib/typo_textfilter_code.rb +4 -3
- data/vendor/plugins/typo_textfilter_flickr/{tasks → lib/tasks}/typo_textfilter_flickr_tasks.rake +0 -0
- data/vendor/plugins/typo_textfilter_htmlfilter/{tasks → lib/tasks}/typo_textfilter_htmlfilter_tasks.rake +0 -0
- data/vendor/plugins/typo_textfilter_lightbox/{tasks → lib/tasks}/typo_textfilter_lightbox_tasks.rake +0 -0
- data/vendor/plugins/typo_textfilter_markdown/{tasks → lib/tasks}/typo_textfilter_markdown_tasks.rake +0 -0
- data/vendor/plugins/typo_textfilter_none/{tasks → lib/tasks}/typo_textfilter_none_tasks.rake +0 -0
- data/vendor/plugins/typo_textfilter_smartypants/{tasks → lib/tasks}/typo_textfilter_smartypants_tasks.rake +0 -0
- data/vendor/plugins/typo_textfilter_textile/{tasks → lib/tasks}/typo_textfilter_textile_tasks.rake +0 -0
- data/vendor/plugins/typo_textfilter_textile_and_markdown/{tasks → lib/tasks}/typo_textfilter_textile_and_markdown_tasks.rake +0 -0
- data/vendor/plugins/xml_sidebar/views/content.rhtml +1 -1
- metadata +190 -195
- data/app/controllers/admin/cache_controller.rb +0 -9
- data/app/models/cache_information.rb +0 -19
- data/db/schema.rb +0 -242
- data/doc/test_themes.rb +0 -50
- data/public/javascripts/ckeditor/config.js +0 -27
- data/spec/controllers/accounts_controller_spec.rb +0 -414
- data/spec/controllers/admin/cache_controller_spec.rb +0 -18
- data/spec/controllers/admin/categories_controller_spec.rb +0 -73
- data/spec/controllers/admin/content_controller_spec.rb +0 -443
- data/spec/controllers/admin/dashboard_controller_spec.rb +0 -13
- data/spec/controllers/admin/feedback_controller_spec.rb +0 -308
- data/spec/controllers/admin/pages_controller_spec.rb +0 -80
- data/spec/controllers/admin/profiles_controller_spec.rb +0 -22
- data/spec/controllers/admin/resources_controller_spec.rb +0 -53
- data/spec/controllers/admin/settings_controller_spec.rb +0 -80
- data/spec/controllers/admin/tags_controller_spec.rb +0 -64
- data/spec/controllers/admin/textfilters_controller_spec.rb +0 -20
- data/spec/controllers/admin/themes_controller_spec.rb +0 -30
- data/spec/controllers/admin/users_controller_spec.rb +0 -109
- data/spec/controllers/application_controller_spec.rb +0 -18
- data/spec/controllers/articles_controller_spec.rb +0 -440
- data/spec/controllers/authors_controller_spec.rb +0 -42
- data/spec/controllers/backend_controller_spec.rb +0 -337
- data/spec/controllers/categories_controller_spec.rb +0 -117
- data/spec/controllers/comments_controller_spec.rb +0 -137
- data/spec/controllers/routes/articles_routing_spec.rb +0 -31
- data/spec/controllers/routes/xml_routing_spec.rb +0 -71
- data/spec/controllers/setup_controller_spec.rb +0 -24
- data/spec/controllers/tags_controller_spec.rb +0 -147
- data/spec/controllers/textfilter_controller_spec.rb +0 -192
- data/spec/controllers/theme_controller_spec.rb +0 -39
- data/spec/controllers/xml_controller_spec.rb +0 -185
- data/spec/factories.rb +0 -69
- data/spec/helpers/application_helper_spec.rb +0 -25
- data/spec/helpers/content_helper_spec.rb +0 -28
- data/spec/lib/text_filter_plugin_spec.rb +0 -15
- data/spec/models/amazon_sidebar_spec.rb +0 -40
- data/spec/models/article_closing_spec.rb +0 -42
- data/spec/models/article_spec.rb +0 -515
- data/spec/models/blog_spec.rb +0 -116
- data/spec/models/cache_information_spec.rb +0 -42
- data/spec/models/cache_support_spec.rb +0 -51
- data/spec/models/category_spec.rb +0 -44
- data/spec/models/comment_spec.rb +0 -240
- data/spec/models/configuration_spec.rb +0 -91
- data/spec/models/content_state/feedback_states_spec.rb +0 -64
- data/spec/models/notification_spec.rb +0 -8
- data/spec/models/page_cache_spec.rb +0 -30
- data/spec/models/page_spec.rb +0 -91
- data/spec/models/ping_pinger_spec.rb +0 -33
- data/spec/models/ping_spec.rb +0 -154
- data/spec/models/redirect_spec.rb +0 -17
- data/spec/models/resource_spec.rb +0 -39
- data/spec/models/route_cache_spec.rb +0 -11
- data/spec/models/sidebar_spec.rb +0 -7
- data/spec/models/static_sidebar_spec.rb +0 -17
- data/spec/models/tag_spec.rb +0 -65
- data/spec/models/text_filter_spec.rb +0 -34
- data/spec/models/theme_spec.rb +0 -45
- data/spec/models/trackback_spec.rb +0 -60
- data/spec/models/trigger_spec.rb +0 -40
- data/spec/models/user_spec.rb +0 -198
- data/spec/rcov.opts +0 -2
- data/spec/spec.opts +0 -4
- data/spec/spec_helper.rb +0 -133
- data/spec/views/articles/index_spec.rb +0 -63
- data/spec/views/articles/read_spec.rb +0 -67
- data/spec/views/comments/html_sanitization_spec.rb +0 -119
- data/test/fixtures/blogs.yml +0 -27
- data/test/fixtures/categories.yml +0 -29
- data/test/fixtures/categorizations.yml +0 -31
- data/test/fixtures/contents.yml +0 -231
- data/test/fixtures/feedback.yml +0 -180
- data/test/fixtures/notification_mailer/article +0 -3
- data/test/fixtures/notification_mailer/comment +0 -3
- data/test/fixtures/notification_mailer/trackback +0 -3
- data/test/fixtures/notifications.yml +0 -0
- data/test/fixtures/page_caches.yml +0 -7
- data/test/fixtures/profiles.yml +0 -27
- data/test/fixtures/redirects.yml +0 -10
- data/test/fixtures/resources.yml +0 -21
- data/test/fixtures/sidebars.yml +0 -10
- data/test/fixtures/tags.yml +0 -10
- data/test/fixtures/text_filters.yml +0 -37
- data/test/fixtures/triggers.yml +0 -1
- data/test/fixtures/users.yml +0 -101
- data/test/mocks/test/dns_mock.rb +0 -13
- data/test/mocks/test/flickr_mock.rb +0 -30
- data/test/mocks/test/http_mock.rb +0 -39
- data/test/mocks/test/theme_mock.rb +0 -5
- data/test/mocks/test/xmlrpc_mock.rb +0 -28
- data/test/mocks/themes/123-numbers-in-path/about.markdown +0 -0
- data/test/mocks/themes/CamelCaseDirectory/about.markdown +0 -0
- data/test/mocks/themes/i-have-special-chars/about.markdown +0 -0
- data/test/mocks/themes/typographic/about.markdown +0 -7
- data/test/mocks/themes/typographic/images/Thumbs.db +0 -0
- data/test/mocks/themes/typographic/images/accept.png +0 -0
- data/test/mocks/themes/typographic/images/accept50.png +0 -0
- data/test/mocks/themes/typographic/images/bg_body.jpg +0 -0
- data/test/mocks/themes/typographic/images/bg_white.png +0 -0
- data/test/mocks/themes/typographic/images/bg_wrapper.jpg +0 -0
- data/test/mocks/themes/typographic/images/bullet_bottom.png +0 -0
- data/test/mocks/themes/typographic/images/bullet_right.png +0 -0
- data/test/mocks/themes/typographic/images/email_open.png +0 -0
- data/test/mocks/themes/typographic/images/email_open50.png +0 -0
- data/test/mocks/themes/typographic/images/meta.png +0 -0
- data/test/mocks/themes/typographic/images/page_edit.png +0 -0
- data/test/mocks/themes/typographic/images/page_edit50.png +0 -0
- data/test/mocks/themes/typographic/images/tag.png +0 -0
- data/test/mocks/themes/typographic/images/user.png +0 -0
- data/test/mocks/themes/typographic/images/user50.png +0 -0
- data/test/mocks/themes/typographic/images/world_link.png +0 -0
- data/test/mocks/themes/typographic/images/world_link50.png +0 -0
- data/test/mocks/themes/typographic/layouts/default.html.erb +0 -42
- data/test/mocks/themes/typographic/preview.png +0 -0
- data/test/mocks/themes/typographic/stylesheets/colors.css +0 -51
- data/test/mocks/themes/typographic/stylesheets/layout.css +0 -346
- data/test/mocks/themes/typographic/stylesheets/reset.css +0 -5
- data/test/mocks/themes/typographic/stylesheets/style.css +0 -36
- data/test/mocks/themes/typographic/views/articles/_article.html.erb +0 -41
- data/test/mocks/themes/typographic/views/articles/_comment.html.erb +0 -14
- data/test/mocks/themes/typographic/views/articles/_comment_form.html.erb +0 -48
- data/test/mocks/themes/typographic/views/articles/_comment_list.html.erb +0 -7
- data/test/mocks/themes/typographic/views/articles/_trackback.html.erb +0 -9
- data/test/mocks/themes/typographic/views/articles/comment_preview.html.erb +0 -10
- data/test/mocks/themes/typographic/views/articles/index.html.erb +0 -5
- data/test/mocks/themes/typographic/views/articles/read.html.erb +0 -42
- data/test/mocks/themes/typographic/views/shared/_search.html.erb +0 -17
- data/test/mocks/themes/typographic/views/theme/static_view_test.html.erb +0 -1
- data/test/test_helper.rb +0 -13
- data/themes/true-blue-3/images/frederic-de-villamil.jpg +0 -0
- data/themes/true-blue-3/images/textarea_bg.jpg +0 -0
data/app/models/page_cache.rb
CHANGED
@@ -13,20 +13,17 @@ class PageCache
|
|
13
13
|
|
14
14
|
# Delete all file save in path_cache by page_cache system
|
15
15
|
def self.sweep_all
|
16
|
-
|
17
|
-
CacheInformation.all.each{|c| c.destroy}
|
18
|
-
else
|
19
|
-
logger.debug "PageCache - OOOOPS table is missing"
|
20
|
-
end
|
21
|
-
self.sweep_theme_cache
|
16
|
+
self.zap_pages(%w{*})
|
22
17
|
end
|
23
18
|
|
24
|
-
|
25
19
|
def self.sweep_theme_cache
|
26
20
|
self.zap_pages(%w{images/theme/* stylesheets/theme/* javascripts/theme/*})
|
27
21
|
end
|
28
22
|
|
29
23
|
def self.zap_pages(paths)
|
24
|
+
# Ensure no one is going to wipe his own blog public directory
|
25
|
+
# It happened once on a release and was no fun at all
|
26
|
+
return if public_path == "#{RAILS_ROOT}/public"
|
30
27
|
srcs = paths.inject([]) { |o,v|
|
31
28
|
o + Dir.glob(public_path + "/#{v}")
|
32
29
|
}
|
@@ -36,6 +33,7 @@ class PageCache
|
|
36
33
|
FileUtils.mv(srcs, trash, :force => true)
|
37
34
|
FileUtils.rm_rf(trash)
|
38
35
|
end
|
36
|
+
|
39
37
|
|
40
38
|
# DEPRECATED
|
41
39
|
#
|
@@ -60,4 +58,5 @@ class PageCache
|
|
60
58
|
self.zap_pages([*1990..2020].collect { |y| "#{y}.*" })
|
61
59
|
end
|
62
60
|
end
|
61
|
+
|
63
62
|
end
|
data/app/models/user.rb
CHANGED
@@ -182,6 +182,7 @@ class User < ActiveRecord::Base
|
|
182
182
|
end
|
183
183
|
|
184
184
|
validates_uniqueness_of :login, :on => :create
|
185
|
+
validates_uniqueness_of :email, :on => :create
|
185
186
|
validates_length_of :password, :within => 5..40, :if => Proc.new { |user|
|
186
187
|
user.read_attribute('password').nil? or user.password.to_s.length > 0
|
187
188
|
}
|
@@ -7,14 +7,16 @@
|
|
7
7
|
|
8
8
|
<div id='editor-right'>
|
9
9
|
<div class='ui-accordion ui-widget ui-helper-reset ui-accordion-icons settings'>
|
10
|
-
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Publish settings")%></h3>
|
10
|
+
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Publish settings") %></h3>
|
11
11
|
<div class='ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active'>
|
12
12
|
<%= check_box 'article', 'allow_comments' %>
|
13
13
|
<label for="article_allow_comments"><%= _("Allow comments") %></label><br />
|
14
14
|
<%= check_box 'article', 'allow_pings' %>
|
15
|
-
<label for="article_allow_pings"><%= _("Allow trackbacks")%></label><br />
|
15
|
+
<label for="article_allow_pings"><%= _("Allow trackbacks") %></label><br />
|
16
16
|
<%= check_box 'article', 'published' %>
|
17
|
-
<label for="article_published"><%= _("Published")%></label><br />
|
17
|
+
<label for="article_published"><%= _("Published") %></label><br />
|
18
|
+
<label for="article_password"><%= _("Password:") %></label><br />
|
19
|
+
<%= password_field(:article, :password) %>
|
18
20
|
<p class='right'>
|
19
21
|
<input id='save_draft' type="submit" value="<%= _('Save as draft') %>" name="article[draft]" class='ui-state-default ui-corner-all' />
|
20
22
|
<%= save( _("Publish") + " »") %><br />
|
@@ -26,7 +28,7 @@
|
|
26
28
|
</div>
|
27
29
|
|
28
30
|
<div class='ui-accordion ui-widget ui-helper-reset ui-accordion-icons settings'>
|
29
|
-
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Categories")%></h3>
|
31
|
+
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Categories") %></h3>
|
30
32
|
<div class='ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active'>
|
31
33
|
<%- Category.all.each do |cat| %>
|
32
34
|
<%= check_box_tag('categories[]', cat.id, (@article.categories.map(&:id).include? cat.id), :id => "category_#{h(cat.id)}") %>
|
@@ -38,7 +40,7 @@
|
|
38
40
|
|
39
41
|
<div id='editor-left'>
|
40
42
|
<div class='settings'>
|
41
|
-
<h2><label for="article_title"><%= _("Title")%></label></h2>
|
43
|
+
<h2><label for="article_title"><%= _("Title") %></label></h2>
|
42
44
|
<p class='input_text'>
|
43
45
|
<%= text_field 'article', 'title', :class => 'large' %>
|
44
46
|
</p>
|
@@ -77,15 +79,15 @@
|
|
77
79
|
</div>
|
78
80
|
|
79
81
|
<div class='ui-accordion ui-widget ui-helper-reset ui-accordion-icons settings'>
|
80
|
-
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Excerpt")%></h3>
|
82
|
+
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Excerpt") %></h3>
|
81
83
|
<div class='ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active'>
|
82
|
-
<p><%=_("Excerpts are posts summaries that are shown on your blog homepage only but won’t appear on the post itself")%></p>
|
84
|
+
<p><%=_("Excerpts are posts summaries that are shown on your blog homepage only but won’t appear on the post itself") %></p>
|
83
85
|
<%= text_area 'article', 'excerpt', {:height => '150', :class => 'large', :rows => '5'} %>
|
84
86
|
</div>
|
85
87
|
</div>
|
86
88
|
|
87
89
|
<div class='ui-accordion ui-widget ui-helper-reset ui-accordion-icons settings'>
|
88
|
-
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Uploads")%></h3>
|
90
|
+
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Uploads") %></h3>
|
89
91
|
<div class='ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active'>
|
90
92
|
<p>Uploads will be displayed as attachments in your RSS feed, but won't appear in your articles.</p>
|
91
93
|
|
@@ -96,10 +98,10 @@
|
|
96
98
|
</div>
|
97
99
|
|
98
100
|
<div class='ui-accordion ui-widget ui-helper-reset ui-accordion-icons settings'>
|
99
|
-
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Post settings")%></h3>
|
101
|
+
<h3 class='ui-accordion-header ui-helper-reset ui-state-active ui-corner-top'><span class='ui-icon ui-icon-pencil'> </span><%= _("Post settings") %></h3>
|
100
102
|
<div class='ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active'>
|
101
103
|
<div class='setting'>
|
102
|
-
<label class='float'><%= _("Publish at")%></label>
|
104
|
+
<label class='float'><%= _("Publish at") %></label>
|
103
105
|
<div class='input_text'>
|
104
106
|
<%= calendar_date_select 'article', 'published_at' %>
|
105
107
|
</div>
|
@@ -111,7 +113,7 @@
|
|
111
113
|
</div>
|
112
114
|
</div>
|
113
115
|
<div class='setting clear'>
|
114
|
-
<label class='float' for="text_filter"><%= _("Article filter")%></label>
|
116
|
+
<label class='float' for="text_filter"><%= _("Article filter") %></label>
|
115
117
|
<div class='input_text'>
|
116
118
|
<select name="article[text_filter]" id="text_filter">
|
117
119
|
<%= options_for_select text_filter_options, @article.text_filter %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<!--
|
2
2
|
<a href="javascript:" class="carousel-control" rel="prev">Previous</a>
|
3
3
|
-->
|
4
|
-
<div id="carousel-wrapper"
|
4
|
+
<div id="carousel-wrapper" <%= 'style="display: none;"' if current_user.editor == 'visual' %>>
|
5
5
|
<div id="carousel-content">
|
6
6
|
<% @images.each do |image| %>
|
7
7
|
<div class="slide">
|
@@ -7,6 +7,7 @@
|
|
7
7
|
$('text_filter').value = 'none';
|
8
8
|
html = $('article_body_and_extended').value;
|
9
9
|
$('simple_editor').innerHTML = '';
|
10
|
+
$('carousel-wrapper').style.display = 'none';
|
10
11
|
|
11
12
|
if (CKEDITOR.instances.article__body_and_extended_editor &&
|
12
13
|
typeof(CKEDITOR.instances.article__body_and_extended_editor) == 'object') {
|
@@ -2,17 +2,17 @@
|
|
2
2
|
<div class='ui-state-highlight ui-corner-all' style='padding: 0pt 0.7em;'>
|
3
3
|
<p>
|
4
4
|
<span class='ui-icon ui-icon-info' style='float: left; margin-right: 0.3em;'></span>
|
5
|
-
<%= _("This place gives you a quick overview of what happens on your Typo blog and what you can do. Maybe will you want to %s, %s or %s." ,
|
6
|
-
link_to(_('write a post'), :controller => 'content', :action => 'new'),
|
7
|
-
link_to(_('write a page'), :controller => '
|
5
|
+
<%= _("This place gives you a quick overview of what happens on your Typo blog and what you can do. Maybe will you want to %s, %s or %s." ,
|
6
|
+
link_to(_('write a post'), :controller => 'content', :action => 'new'),
|
7
|
+
link_to(_('write a page'), :controller => 'pages', :action => 'new') ,
|
8
8
|
link_to(_("update your profile or change your password"), :controller => 'users', :action => 'edit', :id => session[:user_id]) ) -%>.</p>
|
9
9
|
<p> <%= _("You can also do a bit of design, %s or %s." ,
|
10
|
-
link_to(_("change your blog presentation"), :controller => 'themes') ,
|
10
|
+
link_to(_("change your blog presentation"), :controller => 'themes') ,
|
11
11
|
link_to(_("enable plugins"), :controller => 'sidebar') ) -%></p>
|
12
|
-
|
12
|
+
|
13
13
|
<p>
|
14
|
-
If you need help, <a href="http://typosphere.org">read our documentation</a>. You can also browse our
|
15
|
-
<a href="http://typogarden.org">theme catalogue</a>
|
14
|
+
If you need help, <a href="http://typosphere.org">read our documentation</a>. You can also browse our
|
15
|
+
<a href="http://typogarden.org">theme catalogue</a>
|
16
16
|
or <a href='http://plugins.typosphere.org'>download some plugins</a> to customize your Typo blog.
|
17
17
|
</p>
|
18
18
|
</div>
|
@@ -18,6 +18,7 @@
|
|
18
18
|
<p class='input_text'>
|
19
19
|
<%= text_field 'page', 'title', :class => 'large' %>
|
20
20
|
</p>
|
21
|
+
<%= render(:partial => 'images', :object => @images) unless @images.empty? %>
|
21
22
|
<div id="editor-menu">
|
22
23
|
<span id="f" class="<%= 'active' if current_user.editor == 'visual' %>">
|
23
24
|
<%= build_editor_link("Visual", 'insert_editor', 'fck', 'simple_editor', 'visual') %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<!--
|
2
|
+
<a href="javascript:" class="carousel-control" rel="prev">Previous</a>
|
3
|
+
-->
|
4
|
+
<div id="carousel-wrapper" <%= 'style="display: none;"' if current_user.editor == 'visual' %>>
|
5
|
+
<div id="carousel-content">
|
6
|
+
<% @images.each do |image| %>
|
7
|
+
<div class="slide">
|
8
|
+
<%= show_thumbnail_for_editor(image) %>
|
9
|
+
</div>
|
10
|
+
<% end %>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
<!--
|
14
|
+
<a href="javascript:" class="carousel-control" rel="next">Next</a>
|
15
|
+
-->
|
16
|
+
<script type='text/javascript'>
|
17
|
+
new Carousel('carousel-wrapper', $$('#carousel-content .slide'), $$('a.carousel-control', 'a.carousel-jumper'), {duration: 0.4, circular: false});
|
18
|
+
</script>
|
@@ -6,11 +6,10 @@
|
|
6
6
|
$('text_filter').value = $('user_textfilter').value;
|
7
7
|
content = CKEDITOR.instances.page__body_editor.getData();
|
8
8
|
</script>
|
9
|
-
|
10
9
|
<%= text_area('page', 'body', {:class => 'large', :height => '300px', :rows => '20'}) %>
|
11
|
-
|
12
10
|
<script type="text/javascript">
|
13
11
|
$('visual_editor').innerHTML = "";
|
14
12
|
$('visual_editor').style.display = 'none';
|
15
13
|
$('page_body').innerHTML = content;
|
14
|
+
$('carousel-wrapper').style.display = 'block';
|
16
15
|
</script>
|
@@ -6,7 +6,8 @@
|
|
6
6
|
$('f').className = 'active';
|
7
7
|
$('text_filter').value = 'none';
|
8
8
|
html = $('page_body').value;
|
9
|
-
$('simple_editor').
|
9
|
+
$('simple_editor').innerHTML = '';
|
10
|
+
$('carousel-wrapper').style.display = 'none';
|
10
11
|
|
11
12
|
if (CKEDITOR.instances.page__body_editor &&
|
12
13
|
typeof(CKEDITOR.instances.page__body_editor) == 'object') {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% @page_heading = _('Manage pages') %>
|
2
|
-
<% @link_to_new = link_to(_("New Page"), {:controller => '
|
2
|
+
<% @link_to_new = link_to(_("New Page"), {:controller => 'pages', :action => 'new'}, :id => 'dialog-link', :class => 'ui-state-default ui-corner-all') %>
|
3
3
|
<% subtabs_for(:content) %>
|
4
4
|
|
5
5
|
<table cellspacing="1" cellpadding="0">
|
@@ -35,7 +35,7 @@
|
|
35
35
|
<div class='setting clear'>
|
36
36
|
<label class="float" for="setting_use_gravatar"><%= _("Enable gravatars")%></label>
|
37
37
|
<div class='input_text'>
|
38
|
-
<%= check_box(:setting, :use_gravatar)
|
38
|
+
<%= check_box(:setting, :use_gravatar)%>
|
39
39
|
</div>
|
40
40
|
</div>
|
41
41
|
<div class='setting clear'>
|
@@ -82,6 +82,7 @@
|
|
82
82
|
<label class="float" for="setting_global_pings_disable"><%= _("Disable trackbacks site-wide")%></label>
|
83
83
|
<div class='input_text'>
|
84
84
|
<%= check_box(:setting, :global_pings_disable)%>
|
85
|
+
<span><%= _("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.")%></span>
|
85
86
|
</div>
|
86
87
|
</div>
|
87
88
|
<div class='setting clear'>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% @page_heading = _("Editing ") + " #{h @tag.display_name}" %>
|
2
2
|
|
3
3
|
<% content_for('tasks') do %>
|
4
|
-
<%= subtab _("Back to tags list") + " »",
|
4
|
+
<%= subtab _("Back to tags list") + " »", {:controller=>"tags", :action=>"list"} %>
|
5
5
|
<% end %>
|
6
6
|
|
7
7
|
<% form_tag :action=>"edit", :id => @tag.id do %>
|
@@ -1,20 +1,24 @@
|
|
1
1
|
<h2><%= link_to_permalink article,article.title %></h2>
|
2
2
|
<p class="auth"><%= _("Posted by")%> <%= author_link(article) %>
|
3
3
|
<%= js_distance_of_time_in_words_to_now article.published_at %></p>
|
4
|
-
<%
|
5
|
-
<%
|
6
|
-
|
4
|
+
<% if article.password.nil? or article.password.empty? %>
|
5
|
+
<% unless controller.action_name == 'redirect' %>
|
6
|
+
<% if article.excerpt? %>
|
7
|
+
<%= article.excerpt %>
|
8
|
+
<% else %>
|
9
|
+
<%= article.html(:body) %>
|
10
|
+
<% if article.extended? %>
|
11
|
+
<div class="extended">
|
12
|
+
<p><%= link_to_permalink article, _("Continue reading") + "..." %></p>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
7
16
|
<% else %>
|
8
17
|
<%= article.html(:body) %>
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
</div>
|
13
|
-
<% end %>
|
18
|
+
<div class="extended">
|
19
|
+
<%= article.html(:extended) %>
|
20
|
+
</div>
|
14
21
|
<% end %>
|
15
22
|
<% else %>
|
16
|
-
<%=
|
17
|
-
|
18
|
-
<%= article.html(:extended) %>
|
19
|
-
</div>
|
20
|
-
<% end %>
|
23
|
+
<%= render :partial => 'articles/password_form', :locals => { :article => article } %>
|
24
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= @article.html(:all) %>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<table cellpadding="4" cellspacing="0" class="frm-tbl">
|
17
17
|
<tr>
|
18
18
|
<td><p><label for="comment_author"><%= _("Your name")%></label></p></td>
|
19
|
-
<td> <%= text_field "comment", "author", :size => 20 %> <small><%= link_to_function(_(
|
19
|
+
<td> <%= text_field "comment", "author", :size => 20 %> <small><%= link_to_function("(#{_('leave url/email')} »)", "Element.toggle('guest_url'); Element.toggle('guest_email')") %></small></td>
|
20
20
|
</tr>
|
21
21
|
<tr id="guest_url" style="display:none;">
|
22
22
|
<td><p><label for="comment_url"><%= _("Your blog")%></label></p></td>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div id='content-<%= article.id %>'>
|
2
|
+
<p>This post is password protected. Please fill in your password or login to view the content</p>
|
3
|
+
<% remote_form_for :articles, article, :url => { :action => 'check_password'}, :update => "content-#{article.id}" do |f| %>
|
4
|
+
<%= password_field(:article, :password) %>
|
5
|
+
<input type='hidden' name='article[id]' value='<%= article.id %>' />
|
6
|
+
<%= submit_to_remote('check_password', _('Submit') + '!',
|
7
|
+
:update => "content-#{article.id}",
|
8
|
+
:url => {:action => 'check_password'}) %>
|
9
|
+
<% end %>
|
10
|
+
</div>
|
@@ -1,9 +1,8 @@
|
|
1
1
|
<% for article in @articles -%>
|
2
2
|
<div class="post">
|
3
3
|
<%= render :partial => "articles/article", :object => article %>
|
4
|
-
<%= link_to_permalink article, _("Read more") + "..." if article.extended? %>
|
5
4
|
<p class="meta"><%= article_links article %></p>
|
6
5
|
</div>
|
7
6
|
<% end -%>
|
8
7
|
|
9
|
-
<%= will_paginate @articles %>
|
8
|
+
<%= will_paginate @articles, :next_label => "#{_("Next page")} »", :previous_label => "« #{_('Previous page')}" %>
|
@@ -18,10 +18,7 @@
|
|
18
18
|
<div class="post"<%= onhover_show_admin_tools(:article) %>>
|
19
19
|
<%= link_to("edit", { :controller => "admin/content", :action => "edit", :id => @article.id },
|
20
20
|
:class => "admintools", :style => "display: none", :id => "admin_article") %>
|
21
|
-
|
22
|
-
<p class="auth"><%= _("Posted by")%> <%= author_link(@article) %>
|
23
|
-
<%= js_distance_of_time_in_words_to_now @article.published_at.utc %></p>
|
24
|
-
<%= html(@article) %>
|
21
|
+
<%= render :partial => 'articles/article', :locals => { :article => @article } %>
|
25
22
|
</div>
|
26
23
|
<p class="meta">
|
27
24
|
<%= article_links @article %>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<meta http-equiv="imagetoolbar" content="no" />
|
8
8
|
<%= stylesheet_link_tag "growler", "administration", "lightbox" %>
|
9
9
|
<%= stylesheet_link_tag "administration_rtl" if ( _("Localization.rtl") == "1") %>
|
10
|
-
<%= javascript_include_tag "prototype", "effects", "builder", "dragdrop", "controls", "typo", "lightbox", "quicktags", "growler", "typo_carousel", "administration",
|
10
|
+
<%= javascript_include_tag "prototype", "effects", "builder", "dragdrop", "controls", "typo", "lightbox", "quicktags", "growler", "typo_carousel", "administration", "ckeditor/ckeditor" %>
|
11
11
|
<%= calendar_date_select_includes %>
|
12
12
|
</head>
|
13
13
|
<body>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% form_tag({:controller => 'articles', :action => 'search'}, {:method => 'get', :id => 'sform'}) do %>
|
2
|
-
|
2
|
+
<label for="q"><%= _('Live Search') %></label><input type="text" id="q" name="q" value="" size="15" />
|
3
3
|
<%= image_tag "spinner-blue.gif", :id => 'search_spinner', :style => 'display:none;' %>
|
4
4
|
<% end %>
|
5
5
|
<%= observe_field "q", :frequency => 1,
|
data/config/ckeditor.yml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
default: &default
|
2
|
+
public_path: "#{path_to_your_public_directory}/files"
|
3
|
+
public_uri: /files
|
4
|
+
file_manager_uri: /fm/filemanager
|
5
|
+
file_manager_upload_uri: /ckeditor/upload
|
6
|
+
|
7
|
+
development:
|
8
|
+
<<: *default
|
9
|
+
|
10
|
+
test:
|
11
|
+
<<: *default
|
12
|
+
|
13
|
+
production:
|
14
|
+
<<: *default
|
data/config/environment.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
# (Use only when you can't set environment variables through your web/app server)
|
5
5
|
# ENV['RAILS_ENV'] = 'production'
|
6
6
|
|
7
|
-
RAILS_GEM_VERSION = '2.3.
|
7
|
+
RAILS_GEM_VERSION = '2.3.8' unless defined? RAILS_GEM_VERSION
|
8
8
|
|
9
9
|
# Bootstrap the Rails environment, frameworks, and default configuration
|
10
10
|
require File.join(File.dirname(__FILE__), 'boot')
|
@@ -13,8 +13,10 @@ Rails::Initializer.run do |config|
|
|
13
13
|
# Skip frameworks you're not going to use
|
14
14
|
config.frameworks -= [ :active_resource ]
|
15
15
|
|
16
|
-
#
|
17
|
-
|
16
|
+
# Setup the cache path
|
17
|
+
config.action_controller.page_cache_directory = "#{RAILS_ROOT}/public/cache/"
|
18
|
+
config.cache_store=:file_store, "#{RAILS_ROOT}/public/cache/"
|
19
|
+
|
18
20
|
|
19
21
|
# I need the localization plugin to load first
|
20
22
|
# Otherwise, I can't localize plugins <= localization
|
@@ -42,16 +44,13 @@ Rails::Initializer.run do |config|
|
|
42
44
|
config.gem 'calendar_date_select'
|
43
45
|
config.gem 'bluecloth', :version => '~> 2.0.5'
|
44
46
|
config.gem 'coderay', :version => '~> 0.8'
|
45
|
-
config.gem '
|
46
|
-
:source => 'http://gems.github.com'
|
47
|
+
config.gem 'will_paginate', :version => '~> 2.3.11'
|
47
48
|
config.gem 'RedCloth', :version => '~> 4.2.2'
|
48
|
-
config.gem '
|
49
|
+
config.gem 'fdv-actionwebservice', :version => '2.3.8', :lib => 'actionwebservice'
|
49
50
|
config.gem 'addressable', :version => '~> 2.1.0', :lib => 'addressable/uri'
|
50
51
|
config.gem 'mini_magick', :version => '~> 1.2.5', :lib => 'mini_magick'
|
51
52
|
|
52
|
-
# Use the
|
53
|
-
# (create the session table with 'rake create_sessions_table')
|
54
|
-
# config.action_controller.session_store = :active_record_store
|
53
|
+
# Use the filesystem for sessions instead of the database
|
55
54
|
config.action_controller.session = { :key => "_typo_session", :secret => "8d7879bd56b9470b659cdcae88792622" }
|
56
55
|
|
57
56
|
# Disable use of the Accept header, since it causes bad results with our
|
@@ -69,37 +68,26 @@ require 'uuidtools'
|
|
69
68
|
|
70
69
|
require 'migrator'
|
71
70
|
require 'rails_patch/active_record'
|
71
|
+
require 'rails_patch/active_support'
|
72
72
|
require 'login_system'
|
73
73
|
require 'typo_version'
|
74
74
|
$KCODE = 'u'
|
75
75
|
require 'jcode'
|
76
76
|
require 'transforms'
|
77
77
|
|
78
|
+
$FM_OVERWRITE = true
|
79
|
+
require 'filemanager'
|
80
|
+
|
78
81
|
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
|
79
82
|
:long_weekday => '%a %B %e, %Y %H:%M'
|
80
83
|
)
|
81
84
|
|
82
85
|
ActionMailer::Base.default_charset = 'utf-8'
|
83
86
|
|
84
|
-
# I wanted to put this as a "setup" page, but it seems I can't catch the
|
85
|
-
# exception fast enough and get a 500 error
|
86
|
-
#if RAILS_ENV != 'test'
|
87
|
-
# begin
|
88
|
-
# ActiveRecord::Base.connection.select_all("select * from sessions")
|
89
|
-
# rescue
|
90
|
-
# begin
|
91
|
-
# ActiveRecord::Base.connection.current_database
|
92
|
-
# Migrator.migrate
|
93
|
-
# rescue
|
94
|
-
# # if there are no database, migrator doesn't no start
|
95
|
-
# use case : rake db:create in rails tasks
|
96
|
-
# end
|
97
|
-
# end
|
98
|
-
#end
|
99
|
-
|
100
87
|
# Work around interpolation deprecation problem: %d is replaced by
|
101
88
|
# {{count}}, even when we don't want them to.
|
102
89
|
# FIXME: We should probably fully convert to standard Rails I18n.
|
90
|
+
require 'i18n_interpolation_deprecation'
|
103
91
|
class I18n::Backend::Simple
|
104
92
|
def interpolate(locale, string, values = {})
|
105
93
|
interpolate_without_deprecated_syntax(locale, string, values)
|