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/CHANGELOG
CHANGED
@@ -1,28 +1,59 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
1
|
+
Frédéric de Villamil: Makes the editor IE compliant
|
2
|
+
Daniel Schweighoefer: fix in the 'create new page' link
|
3
|
+
Frédéric de Villamil: Adding specs to password protected posts
|
4
|
+
Frédéric de Villamil: Fixes some nasty bugs with password protection. I need to add tests in the views
|
5
|
+
Frédéric de Villamil: Upgrading Typo version to 5.5. Cleaning release task since most of the code is not relevant anymore
|
6
|
+
Frédéric de Villamil: Workaround to a Rails 2.3.8 bug, see https://rails.lighthouseapp.com/projects/8994/tickets/4695-string-added-to-rails_helpers-gets-html-escaped for more information.
|
7
|
+
Frédéric de Villamil: Adds Matijs and Cyril to mainteners list and static sidebars, fixes static sidebar, removes useless doc
|
8
|
+
Frédéric de Villamil: Upgrading to Rails 2.3.8. I had to backport some Rails 2.3.5 deprecation and fork actionwebservice to upgrade it to Rails 2.3.8. I think we will definitely use our own version since we may be the latest on earth to use it.
|
9
|
+
Frédéric de Villamil: Fixes the destroy link in admin/feedback by moving delete method to destroy (and adding consistency)
|
10
|
+
Frédéric de Villamil: Fixes ticket 178 and make specs pass. Ugly fix, but the carousel doesn't work either yet, so I'll fix both of them at the same time.
|
11
|
+
Frédéric de Villamil: WTF does this test here? [#177 status:closed]
|
12
|
+
Frédéric de Villamil: Reverting an aspect of pssword protected posts: if we don't hide the protected posts to logged in users, the supposely hidden post will be cached...
|
13
|
+
Frédéric de Villamil: Adding password protected posts. Things are done 100% AJAX because of the static cache. Logged in users are considered as being able to see a protected post. Protected posts content is removed from RSS feed. Need to add some specs, it's curious to see that they didn't break
|
14
|
+
Frédéric de Villamil: fix specs
|
15
|
+
Frédéric de Villamil: Adding image browsing to static pages as well
|
16
|
+
Frédéric de Villamil: Hides the image carousel in visual editor mode since we now have a dedicated browser in visual mode
|
17
|
+
Frédéric de Villamil: Fixinx the logout link style in the admin
|
18
|
+
Frédéric de Villamil: Solves ticket #175: Lift 255-char tag list limit. Not sure it's the best way to do it, don't mind reverting if needed
|
19
|
+
Frédéric de Villamil: Adds a restriction on unique email (how come didn't it already exist, [#170,solved]
|
20
|
+
Yannick Francois: fix link to 'write a page' problem on dashboard
|
21
|
+
Matijs van Zuijlen: Merge branch 'master' of github.com:fdv/typo
|
22
|
+
Matijs van Zuijlen: Specify factory_girl version, since versions starting from 1.3.0 don't
|
23
|
+
Frédéric de Villamil: Adding htty filemanager patch for CKEditor after tweaking it a bit to work well with Typo
|
24
|
+
Frédéric de Villamil: Merge branch 'master' of git@github.com:fdv/typo
|
25
|
+
Frédéric de Villamil: Adds new cache rules into .htaccess
|
26
|
+
Matijs van Zuijlen: Merge branch 'master' into dont-sweep-for-drafts
|
27
|
+
Matijs van Zuijlen: Merge branch 'master' of github.com:fdv/typo
|
28
|
+
Szymon 'jeznet' Jeż: Made polish translation more up to date. Much work in the admin area is still to do.
|
29
|
+
Szymon 'jeznet' Jeż: Fixed Polish translation of pluralized words (articles, comments etc.).
|
30
|
+
Szymon 'jeznet' Jeż: Fixed translation in comments_link and trackbacks_link. It was not working for more than one item.
|
31
|
+
Szymon 'jeznet' Jeż: Added 'Live Search' translation and added according german and polish translations.
|
32
|
+
Szymon 'jeznet' Jeż: Refactoring of the code from last commit => 'Added setting of I18n.locale when setting Localization.lang'
|
33
|
+
Szymon 'jeznet' Jeż: Added setting of I18n.locale when setting Localization.lang
|
34
|
+
Szymon 'jeznet' Jeż: Fixed 'leave url/email' translation and added according german and polish translations.
|
35
|
+
Szymon 'jeznet' Jeż: Added german translation for "Continue reading" string
|
36
|
+
Szymon 'jeznet' Jeż: Added polish translation for "Continue reading" string
|
37
|
+
Szymon 'jeznet' Jeż: Fixed: "Read more" link apearing next to "Continue reading". Now only "Continue reading" is used.
|
38
|
+
Szymon 'jeznet' Jeż: Fixed will_paginate ussage to use translations.
|
39
|
+
Szymon 'jeznet' Jeż: Excluded public/cache/* and NetBeans project dir nbproject from versioning.
|
40
|
+
Matijs van Zuijlen: Adjust formatting.
|
41
|
+
Matijs van Zuijlen: Make specs pass.
|
42
|
+
Diego Elio 'Flameeyes' Pettenò: Fix comparison.
|
43
|
+
Diego Elio 'Flameeyes' Pettenò: Don't sweep the cache if we're saving a draft.
|
44
|
+
Frédéric de Villamil: Removes the background on fields
|
45
|
+
Frédéric de Villamil: Adds link on the comment count and replaces the french button (no one told me about this?) on the comment form
|
46
|
+
Matijs van Zuijlen: Adjust spec to reflect changed layout.
|
47
|
+
Matijs van Zuijlen: Silence deprecation warning.
|
48
|
+
Frédéric de Villamil: Fixes ticket 162 views/admin/tags/edit.html.erb bug
|
49
|
+
Frédéric de Villamil: Fixes ticket 166 'Delete all spam' deletes unconfirmed comments
|
50
|
+
Frédéric de Villamil: Fixes ticket 167: Trackback help text in wrong place
|
51
|
+
Frédéric de Villamil: Oooops seems some code was not taken into my last commit
|
52
|
+
Frédéric de Villamil: Adding a basic way to dynamically load user mades plugins into
|
53
|
+
Frédéric de Villamil: Fixes a mistake in Apache caching doc
|
54
|
+
Frédéric de Villamil: Moves cache to public/cache. Ditches database use for cache storing. Please, read doc/CACHE.SETUP.README to setup the new cache system, otherwise Typo now runs smoothly without cache, I've been running it cacheless for months on a fairly crowded blog without even knowing it
|
55
|
+
Fabiano Francesconi: Fixed coderay textfilter
|
56
|
+
Barney Livingston: Add meta tags to pages.
|
57
|
+
Kristopher Murata: Adds rescue for URI::InvalidURIError
|
58
|
+
Kristopher Murata: Display links on author pages when item is an url
|
59
|
+
Michael Reinsch: switch to gems from rubygems
|
data/MAINTAINERS
CHANGED
@@ -1,31 +1,23 @@
|
|
1
1
|
This is a list of Typo maintainers. If you have a commit bit, please add your
|
2
2
|
name and contact details to the list.
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
Tobias Luetke <tobi@leetsoft.com>
|
7
|
-
blog: http://blog.leetsoft.com/
|
8
|
-
irc: xal
|
9
|
-
|
10
|
-
Peons
|
11
|
-
|
12
|
-
Piers Cawley <pdcawley@bofh.org.uk>
|
13
|
-
blog: http://www.bofh.org.uk/
|
14
|
-
irc: pdcawley
|
4
|
+
The Cool Kids
|
15
5
|
|
16
6
|
Frédéric de Villamil <frederic@de-villamil.com>
|
17
7
|
blog: http://fredericdevillamil.com
|
18
8
|
irc: neuro`
|
19
9
|
|
20
|
-
|
21
|
-
blog: http://www.
|
22
|
-
irc:
|
10
|
+
Matijs van Zuijlen
|
11
|
+
blog: http://www.matijs.net/blog/
|
12
|
+
irc: matijs
|
23
13
|
|
24
14
|
Cyril Mougel <cyril.mougel@gmail.com>
|
25
15
|
blog: http://blog.shingara.fr
|
26
16
|
irc: shingara
|
27
17
|
|
28
|
-
Mascot
|
29
18
|
|
30
|
-
|
31
|
-
|
19
|
+
Original Author
|
20
|
+
|
21
|
+
Tobias Luetke <tobi@leetsoft.com>
|
22
|
+
blog: http://blog.leetsoft.com/
|
23
|
+
irc: xal
|
data/README
CHANGED
@@ -1,19 +1,38 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
About Typo 5.5
|
2
|
+
==============
|
3
|
+
|
4
|
+
On July 22th, 2010, Typo version 5.5 named for famous photographer Richard Avedon was released to the public. Typo 5.5 is the result of the work of the Typo community, just like you, on adding or suggesting feature, reporting and fixing bugs.
|
5
|
+
|
6
|
+
With its new admin and setup, Typo 5.4.4 was supposed to be the latest minor version running on Ruby on Rails 2.3, and we spent a few months exploring 2 new ways.
|
7
|
+
|
8
|
+
The first one was being able to upgrade to Ruby on Rails 3.0 as soon as it would be released as production ready. Despite porting our own code without problems, we promptly discovered that too many plugins needed to be ported to Rails 3.0 before we could release.
|
9
|
+
|
10
|
+
The second one was making Typo multiblog aware. Despite some interesting results, making it production ready was not the work of a single release. Our architecture is definitely mono blog oriented, and making it multi blog would force us to rewrite most of the code.
|
11
|
+
|
12
|
+
So, we decided to make one more release on Ruby on Rails 2.3, upgrading to Rails 2.3.8. This release is Typo 5.5. It comes with a few new feature, bug fixes, and internal improvements.
|
13
|
+
|
14
|
+
== Highlights:
|
15
|
+
|
16
|
+
Typo now runs on Ruby on Rails 2.3.8, which means it won't run with an older Rails version.
|
17
|
+
|
18
|
+
Typo visual editor had no way to upload, browse, and use images. Thanks to htty, we now have a very nice resource browser CKEditor compliant.
|
19
|
+
|
20
|
+
As I wrote on Typo Weblog (http://res.to/aQz6), we've added a way to display users plugins setup into Typo admin. This is a first step on the way to a real plugin API.
|
21
|
+
|
22
|
+
Typo now comes with a new cache system, way simpler than the database based cache we used to do. Files are stored into public/cache and Typo knows how to served cached file. You may need to update your configuration, please read doc/CACHE.SETUP.README
|
23
|
+
|
24
|
+
For more information on Typo 5.5, please read the CHANGELOG file.
|
25
|
+
|
26
|
+
As usual, we want to thank the Typo community, and in particular, by reverse commit order: Daniel Schweighoefer, htty, Yannick Francois,Szymon 'jeznet' Jeż, Diego Elio 'Flameeyes' Pettenò, Kristopher Murata and Michael Reinsch.
|
3
27
|
|
4
|
-
Typo is a weblog system written in Ruby using Ruby on Rails. Weblogs are cool,
|
5
|
-
weblogs are "in" and everyone who writes code has a different opinion on how
|
6
|
-
a weblog should be written. Typo is our take on it. Typo is designed to be
|
7
|
-
usable by programmers and non-programmers, while being easy for programmers to
|
8
|
-
extend.
|
9
28
|
|
10
29
|
Requirements
|
11
30
|
============
|
12
31
|
|
13
32
|
Currently you need all of those things to get typo to run:
|
14
33
|
|
15
|
-
* Ruby 1.8.
|
16
|
-
* Rails 2.3.
|
34
|
+
* Ruby 1.8.7 or Ruby Enterprise Edition.
|
35
|
+
* Rails 2.3.8, Typo 5.5 DOES NOT support any older Rails version.
|
17
36
|
* A database. Typo supports MySQL, PostgreSQL, and SQLite.
|
18
37
|
* Ruby drivers for your database.
|
19
38
|
* For best performance, you should have a web server running either
|
@@ -23,11 +42,6 @@ Currently you need all of those things to get typo to run:
|
|
23
42
|
easy deployment along with speed.
|
24
43
|
* rspec, rcov and ruby-debug are necessary to run the test suit.
|
25
44
|
|
26
|
-
Installation
|
27
|
-
============
|
28
|
-
|
29
|
-
See doc/Installer.txt and doc/typo-5.3-release-notes.txt.
|
30
|
-
|
31
45
|
Usage
|
32
46
|
======
|
33
47
|
|
@@ -38,12 +52,6 @@ either use this administrative web interface or a desktop blog editor
|
|
38
52
|
like MarsEdit or Ecto. For a short list of clients which are confirmed
|
39
53
|
to work please visit http://typosphere.org/wiki/DesktopClients.
|
40
54
|
|
41
|
-
Client setup
|
42
|
-
============
|
43
|
-
|
44
|
-
Set your desktop client to Movable Type API and enter
|
45
|
-
http://your.domain.com/backend/xmlrpc as endpoint address.
|
46
|
-
|
47
55
|
Enjoy,
|
48
56
|
Your typo team
|
49
57
|
|
data/UPGRADE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
UPGRADING TO TYPO 5.
|
1
|
+
UPGRADING TO TYPO 5.5 HOWTO
|
2
2
|
|
3
3
|
*** BEFORE UPGRADING ***
|
4
4
|
|
@@ -8,7 +8,7 @@ You should make a backup of your current blog, either using a file transfer soft
|
|
8
8
|
|
9
9
|
You should make a backup of your database, using either mysqldump, pgdump or phpmyadmin, whichever you feel safe with.
|
10
10
|
|
11
|
-
If you're
|
11
|
+
If you're upgrading from a pre 5.0 version, you should remove all the following sidebars before migrating:
|
12
12
|
|
13
13
|
* AIM presence
|
14
14
|
* Audioscrobbler
|
@@ -33,6 +33,10 @@ If you're using a third party theme, you'll have do some changes to your templat
|
|
33
33
|
|
34
34
|
Upgrading should be a really easy process, depending on how you installed your typo first.
|
35
35
|
|
36
|
+
I assume you're running typo on a production environment, so firt run:
|
37
|
+
|
38
|
+
$ export RAILS_ENV=production
|
39
|
+
|
36
40
|
** UPGRADING WITH TYPO INSTALLER FROM TYPO 2.0 to 5.0 **
|
37
41
|
|
38
42
|
Automagically upgrading Typo 2.0 to 5.0 using Typo instaler is not possible, but you can catch on the train anyway, it will just be a little harder. By default Typo uses MySQL database. If you want to use something else, check our installation documentation.
|
@@ -23,7 +23,7 @@ class AccountsController < ApplicationController
|
|
23
23
|
cookies[:auth_token] = {
|
24
24
|
:value => self.current_user.remember_token,
|
25
25
|
:expires => self.current_user.remember_token_expires_at,
|
26
|
-
:
|
26
|
+
:httponly => true # Help prevent auth_token theft.
|
27
27
|
}
|
28
28
|
end
|
29
29
|
add_to_cookies(:typo_user_profile, self.current_user.profile.label, '/')
|
@@ -28,7 +28,6 @@ class Admin::ContentController < Admin::BaseController
|
|
28
28
|
|
29
29
|
def edit
|
30
30
|
@article = Article.find(params[:id])
|
31
|
-
|
32
31
|
unless @article.access_by? current_user
|
33
32
|
redirect_to :action => 'index'
|
34
33
|
flash[:error] = _("Error, you are not allowed to perform this action")
|
@@ -148,6 +147,7 @@ class Admin::ContentController < Admin::BaseController
|
|
148
147
|
|
149
148
|
@resources = Resource.find(:all, :conditions => "mime NOT LIKE '%image%'", :order => 'filename')
|
150
149
|
@images = Resource.paginate :page => params[:page], :conditions => "mime LIKE '%image%'", :order => 'created_at DESC', :per_page => 10
|
150
|
+
@article.keywords = @article.tags.map { |tag| tag.display_name }.sort.join(", ")
|
151
151
|
@article.attributes = params[:article]
|
152
152
|
|
153
153
|
if request.post?
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Admin::FeedbackController < Admin::BaseController
|
2
2
|
|
3
3
|
cache_sweeper :blog_sweeper
|
4
|
-
before_filter :only_own_feedback, :only => [:
|
4
|
+
before_filter :only_own_feedback, :only => [:destroy]
|
5
5
|
|
6
6
|
def index
|
7
7
|
conditions = ['1 = 1', {}]
|
@@ -45,7 +45,7 @@ class Admin::FeedbackController < Admin::BaseController
|
|
45
45
|
@comments ||= @article.comments
|
46
46
|
end
|
47
47
|
|
48
|
-
def
|
48
|
+
def destroy
|
49
49
|
if request.post?
|
50
50
|
begin
|
51
51
|
@feedback.destroy
|
@@ -143,7 +143,7 @@ class Admin::FeedbackController < Admin::BaseController
|
|
143
143
|
|
144
144
|
def delete_all_spam
|
145
145
|
if request.post?
|
146
|
-
Feedback.delete_all(['state
|
146
|
+
Feedback.delete_all(['state = ?', 'spam'])
|
147
147
|
flash[:notice] = _("All spam have been deleted")
|
148
148
|
end
|
149
149
|
end
|
@@ -34,6 +34,7 @@ class Admin::PagesController < Admin::BaseController
|
|
34
34
|
@page = Page.new(params[:page])
|
35
35
|
@page.user_id = current_user.id
|
36
36
|
@page.text_filter ||= current_user.text_filter
|
37
|
+
@images = Resource.paginate :page => 1, :conditions => "mime LIKE '%image%'", :order => 'created_at DESC', :per_page => 10
|
37
38
|
if request.post?
|
38
39
|
if @page.name.blank?
|
39
40
|
@page.name = @page.title.tr(FROM, TO).gsub(/<[^>]*>/, '').to_url
|
@@ -48,6 +49,7 @@ class Admin::PagesController < Admin::BaseController
|
|
48
49
|
|
49
50
|
def edit
|
50
51
|
@macros = TextFilter.available_filters.select { |filter| TextFilterPlugin::Macro > filter }
|
52
|
+
@images = Resource.paginate :page => 1, :conditions => "mime LIKE '%image%'", :order => 'created_at DESC', :per_page => 10
|
51
53
|
@page = Page.find(params[:id])
|
52
54
|
@page.attributes = params[:page]
|
53
55
|
if request.post? and @page.save
|
@@ -19,7 +19,6 @@ class ApplicationController < ActionController::Base
|
|
19
19
|
def cache_page_with_log_page(content, path)
|
20
20
|
return unless perform_caching
|
21
21
|
cache_page_without_log_page(content, path)
|
22
|
-
CacheInformation.create(:path => page_cache_file(path))
|
23
22
|
end
|
24
23
|
alias_method_chain :cache_page, :log_page
|
25
24
|
end
|
@@ -42,6 +41,12 @@ class ApplicationController < ActionController::Base
|
|
42
41
|
|
43
42
|
def load_lang
|
44
43
|
Localization.lang = this_blog.lang
|
44
|
+
# Check if for example "en_UK" locale exesists if not check for "en" locale
|
45
|
+
if I18n.available_locales.include?(this_blog.lang.to_sym)
|
46
|
+
I18n.locale = this_blog.lang
|
47
|
+
elsif I18n.available_locales.include?(this_blog.lang[0..1].to_sym)
|
48
|
+
I18n.locale = this_blog.lang[0..1]
|
49
|
+
end
|
45
50
|
# _("Localization.rtl")
|
46
51
|
end
|
47
52
|
|
@@ -63,7 +63,17 @@ class ArticlesController < ContentController
|
|
63
63
|
@article = Article.last_draft(params[:id])
|
64
64
|
render :action => 'read'
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
|
+
def check_password
|
68
|
+
return unless request.xhr?
|
69
|
+
@article = Article.find(params[:article][:id])
|
70
|
+
if @article.password == params[:article][:password]
|
71
|
+
render :partial => 'articles/article_content'
|
72
|
+
else
|
73
|
+
render :partial => 'articles/password_form', :locals => { :article => @article }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
67
77
|
def redirect
|
68
78
|
part = this_blog.permalink_format.split('/')
|
69
79
|
part.delete('') # delete all par of / where no data. Avoid all // or / started
|
@@ -175,6 +185,8 @@ class ArticlesController < ContentController
|
|
175
185
|
def view_page
|
176
186
|
if(@page = Page.find_by_name(params[:name].map { |c| c }.join("/"))) && @page.published?
|
177
187
|
@page_title = @page.title
|
188
|
+
@description = (this_blog.meta_description.empty?) ? "" : this_blog.meta_description
|
189
|
+
@keywords = (this_blog.meta_keywords.empty?) ? "" : this_blog.meta_keywords
|
178
190
|
else
|
179
191
|
render :nothing => true, :status => 404
|
180
192
|
end
|
@@ -24,11 +24,14 @@ module ApplicationHelper
|
|
24
24
|
|
25
25
|
# The '5 comments' link from the bottom of articles
|
26
26
|
def comments_link(article)
|
27
|
-
|
27
|
+
comment_count = article.published_comments.size
|
28
|
+
# FIXME Why using own pluralize metchod when the Localize._ provides the same funciotnality, but better? (by simply calling _('%d comments', comment_count) and using the en translation: l.store "%d comments", ["No nomments", "1 comment", "%d comments"])
|
29
|
+
link_to_permalink(article,pluralize(comment_count, _('no comments'), _('1 comment'), _('%d comments', comment_count)),'comments')
|
28
30
|
end
|
29
31
|
|
30
32
|
def trackbacks_link(article)
|
31
|
-
|
33
|
+
trackbacks_count = article.published_trackbacks.size
|
34
|
+
link_to_permalink(article,pluralize(trackbacks_count, _('no trackbacks'), _('1 trackback'), _('%d trackbacks',trackbacks_count)),'trackbacks')
|
32
35
|
end
|
33
36
|
|
34
37
|
def check_cache(aggregator, *args)
|
@@ -1,8 +1,19 @@
|
|
1
1
|
module AuthorsHelper
|
2
2
|
|
3
3
|
def display_profile_item(item, show_item, item_desc)
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
if show_item
|
5
|
+
item = link_to(item, item) if is_url?(item)
|
6
|
+
content_tag :li do
|
7
|
+
"#{item_desc} #{item}"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def is_url?(str)
|
13
|
+
begin
|
14
|
+
[URI::HTTP, URI::HTTPS].include?(URI.parse(str.to_s).class)
|
15
|
+
rescue URI::InvalidURIError
|
16
|
+
false
|
17
|
+
end
|
7
18
|
end
|
8
19
|
end
|
data/app/models/article.rb
CHANGED
@@ -44,7 +44,7 @@ class Article < Content
|
|
44
44
|
:select => 'categories.*', \
|
45
45
|
:uniq => true, \
|
46
46
|
:order => 'categorizations.is_primary DESC'
|
47
|
-
|
47
|
+
|
48
48
|
has_and_belongs_to_many :tags, :foreign_key => 'article_id'
|
49
49
|
|
50
50
|
named_scope :category, lambda {|category_id| {:conditions => ['categorizations.category_id = ?', category_id], :include => 'categorizations'}}
|
@@ -60,8 +60,8 @@ class Article < Content
|
|
60
60
|
|
61
61
|
has_many :triggers, :as => :pending_item
|
62
62
|
after_save :post_trigger
|
63
|
-
|
64
|
-
attr_accessor :draft
|
63
|
+
|
64
|
+
attr_accessor :draft, :keywords
|
65
65
|
|
66
66
|
has_state(:state,
|
67
67
|
:valid_states => [:new, :draft,
|
@@ -493,7 +493,9 @@ class Article < Content
|
|
493
493
|
rss_desc = ""
|
494
494
|
end
|
495
495
|
|
496
|
-
post = blog.show_extended_on_rss ? post = html(:all) : post = html(:body)
|
496
|
+
post = blog.show_extended_on_rss ? post = html(:all) : post = html(:body)
|
497
|
+
post = "<p>This article is password protected. Please <a href='#{permalink_url}'>fill in your password</a> to read it</p>" unless password.nil? or password.empty?
|
498
|
+
|
497
499
|
content = blog.rss_description ? post + rss_desc : post
|
498
500
|
entry.content(content, :type => "html")
|
499
501
|
end
|
data/app/models/blog.rb
CHANGED
@@ -65,7 +65,6 @@ class Blog < ActiveRecord::Base
|
|
65
65
|
setting :send_outbound_pings, :boolean, true
|
66
66
|
setting :email_from, :string, 'typo@example.com'
|
67
67
|
setting :editor, :integer, 'visual'
|
68
|
-
setting :cache_option, :string, 'caches_page'
|
69
68
|
setting :allow_signup, :integer, 0
|
70
69
|
|
71
70
|
# SEO
|
@@ -79,9 +78,6 @@ class Blog < ActiveRecord::Base
|
|
79
78
|
setting :index_categories, :boolean, true
|
80
79
|
setting :index_tags, :boolean, true
|
81
80
|
setting :admin_display_elements, :integer, 10
|
82
|
-
#deprecation warning for plugins removal
|
83
|
-
setting :deprecation_warning, :integer, 1
|
84
|
-
|
85
81
|
|
86
82
|
validate :permalink_has_identifier
|
87
83
|
|
data/app/models/blog_sweeper.rb
CHANGED
data/app/models/content.rb
CHANGED
@@ -56,16 +56,19 @@ class Content < ActiveRecord::Base
|
|
56
56
|
attr_accessor :just_changed_published_status
|
57
57
|
alias_method :just_changed_published_status?, :just_changed_published_status
|
58
58
|
|
59
|
+
after_save :invalidates_cache?
|
60
|
+
after_destroy lambda { |c| c.invalidates_cache?(true) }
|
61
|
+
|
59
62
|
include Stateful
|
60
63
|
|
61
64
|
@@content_fields = Hash.new
|
62
65
|
@@html_map = Hash.new
|
63
66
|
|
64
67
|
def invalidates_cache?(on_destruction = false)
|
65
|
-
if on_destruction
|
68
|
+
@invalidates_cache ||= if on_destruction
|
66
69
|
just_changed_published_status? || published?
|
67
70
|
else
|
68
|
-
changed? && published? || just_changed_published_status?
|
71
|
+
(changed? && published?) || just_changed_published_status?
|
69
72
|
end
|
70
73
|
end
|
71
74
|
|
@@ -168,7 +171,7 @@ class Content < ActiveRecord::Base
|
|
168
171
|
search_hash = {}
|
169
172
|
end
|
170
173
|
|
171
|
-
if search_hash[:searchstring]
|
174
|
+
if search_hash[:searchstring]
|
172
175
|
list_function << 'searchstring(search_hash[:searchstring])' unless search_hash[:searchstring].to_s.empty?
|
173
176
|
end
|
174
177
|
|
@@ -180,11 +183,11 @@ class Content < ActiveRecord::Base
|
|
180
183
|
list_function << 'user_id(search_hash[:user_id])'
|
181
184
|
end
|
182
185
|
|
183
|
-
if search_hash[:published]
|
186
|
+
if search_hash[:published]
|
184
187
|
list_function << 'published' if search_hash[:published].to_s == '1'
|
185
188
|
list_function << 'not_published' if search_hash[:published].to_s == '0'
|
186
189
|
end
|
187
|
-
|
190
|
+
|
188
191
|
list_function
|
189
192
|
end
|
190
193
|
end
|
@@ -328,6 +331,8 @@ class Content < ActiveRecord::Base
|
|
328
331
|
|
329
332
|
def rss_description(xml)
|
330
333
|
post = html(blog.show_extended_on_rss ? :all : :body)
|
334
|
+
post = "<p>This article is password protected. Please <a href='#{permalink_url}'>fill in your password</a> to read it</p>" unless self.class.name == 'Article' and (self.password.nil? or self.password.empty?)
|
335
|
+
|
331
336
|
if blog.rss_description
|
332
337
|
if respond_to?(:user) && self.user && self.user.name
|
333
338
|
rss_desc = "<hr /><p><small>#{_('Original article writen by')} #{self.user.name} #{_('and published on')} <a href='#{blog.base_url}'>#{blog.blog_name}</a> | <a href='#{self.permalink_url}'>#{_('direct link to this article')}</a> | #{_('If you are reading this article elsewhere than')} <a href='#{blog.base_url}'>#{blog.blog_name}</a>, #{_('it has been illegally reproduced and without proper authorization')}.</small></p>"
|