typo 4.1 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/TODO-4.2 +14 -0
- data/TODO.MULTIUSERS +45 -0
- data/app/controllers/admin/base_controller.rb +18 -0
- data/app/controllers/admin/general_controller.rb +14 -0
- data/app/controllers/application.rb +2 -1
- data/app/controllers/articles_controller.rb +18 -21
- data/app/helpers/admin/base_helper.rb +4 -4
- data/app/helpers/admin/feedback_helper.rb +3 -3
- data/app/helpers/application_helper.rb +2 -6
- data/app/helpers/sidebar_helper.rb +2 -2
- data/app/models/blog.rb +9 -1
- data/app/models/category.rb +9 -9
- data/app/models/comment.rb +1 -1
- data/app/models/content_state/presumed_ham.rb +2 -2
- data/app/models/resource.rb +2 -0
- data/app/views/admin/categories/_categories.rhtml +10 -6
- data/app/views/admin/categories/edit.rhtml +3 -1
- data/app/views/admin/comments/_form.rhtml +3 -3
- data/app/views/admin/comments/list.rhtml +7 -5
- data/app/views/admin/comments/new.rhtml +3 -1
- data/app/views/admin/comments/show.rhtml +3 -1
- data/app/views/admin/content/_articles.rhtml +1 -1
- data/app/views/admin/content/_form.rhtml +4 -2
- data/app/views/admin/content/new.rhtml +1 -0
- data/app/views/admin/content/preview.rhtml +8 -8
- data/app/views/admin/feedback/_item.rhtml +3 -1
- data/app/views/admin/feedback/list.rhtml +4 -4
- data/app/views/admin/general/index.rhtml +14 -1
- data/app/views/admin/pages/_form.rhtml +1 -1
- data/app/views/admin/pages/destroy.rhtml +1 -1
- data/app/views/admin/pages/new.rhtml +1 -0
- data/app/views/admin/shared/_edit.rhtml +2 -2
- data/app/views/layouts/administration.rhtml +5 -2
- data/app/views/layouts/minimal.rhtml +134 -2
- data/config/boot.rb +1 -1
- data/config/environment.rb +11 -3
- data/config/environments/test.rb +0 -7
- data/config/routes.rb +3 -0
- data/db/migrate/004_add_sidebars.rb +21 -3
- data/db/migrate/056_create_notifications.rb +1 -1
- data/db/migrate/062_add_sitealizer_plugin.rb +18 -0
- data/db/schema.mysql-v3.sql +217 -0
- data/db/schema.mysql.sql +31 -5
- data/db/schema.postgresql.sql +31 -6
- data/db/schema.rb +17 -7
- data/db/schema.sqlite.sql +31 -6
- data/db/schema.sqlserver.sql +32 -6
- data/db/schema_version +1 -1
- data/lang/de_DE.rb +493 -0
- data/lang/fr_FR.rb +28 -4
- data/lang/ro_RO.rb +554 -0
- data/lib/tasks/release.rake +7 -7
- data/lib/typo_version.rb +1 -1
- data/public/images/sitealizer/bar.gif +0 -0
- data/public/images/sitealizer/uv.png +0 -0
- data/public/images/sitealizer/vh.png +0 -0
- data/public/javascripts/tiny_mce/blank.htm +9 -0
- data/public/javascripts/tiny_mce/langs/en.js +41 -0
- data/public/javascripts/tiny_mce/license.txt +504 -0
- data/public/javascripts/tiny_mce/themes/advanced/about.htm +52 -0
- data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +33 -0
- data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +53 -0
- data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +13 -0
- data/public/javascripts/tiny_mce/themes/advanced/css/editor_content.css +58 -0
- data/public/javascripts/tiny_mce/themes/advanced/css/editor_popup.css +331 -0
- data/public/javascripts/tiny_mce/themes/advanced/css/editor_ui.css +97 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/about.htm +31 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/common_buttons.htm +162 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/create_accessible_content.htm +45 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_anchor_window.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_image_window.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_link_window.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_table_window.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/index.htm +27 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_anchor_button.htm +32 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_image_button.htm +65 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_link_button.htm +33 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_table_button.htm +71 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/style.css +28 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1534 -0
- data/public/javascripts/tiny_mce/themes/advanced/image.htm +100 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/anchor.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/anchor_symbol.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/backcolor.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_de_se.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_es.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_fr.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_ru.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_tw.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/browse.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bullist.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/button_menu.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/buttons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/cancel_button_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/charmap.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/cleanup.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/close.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/code.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/color.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/copy.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/custom_1.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/cut.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/forecolor.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/help.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/hr.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/image.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/indent.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/insert_button_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic_de_se.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic_es.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic_ru.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic_tw.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/justifycenter.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/justifyfull.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/justifyleft.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/justifyright.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/link.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/menu_check.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/newdocument.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/numlist.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/opacity.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/outdent.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/paste.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/redo.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/removeformat.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/separator.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/spacer.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/statusbar_resize.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/strikethrough.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/sub.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/sup.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline_es.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline_fr.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline_ru.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline_tw.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/undo.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/unlink.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/visualaid.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_end.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_sel_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_sel_end.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tabs_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/about.js +75 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/anchor.js +74 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/charmap.js +326 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/color_picker.js +108 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/image.js +81 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/link.js +70 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/source_editor.js +60 -0
- data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +82 -0
- data/public/javascripts/tiny_mce/themes/advanced/link.htm +100 -0
- data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +32 -0
- data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
- data/public/javascripts/tiny_mce/tiny_mce_popup.js +288 -0
- data/public/javascripts/tiny_mce/tiny_mce_src.js +7284 -0
- data/public/javascripts/tiny_mce/utils/editable_selects.js +61 -0
- data/public/javascripts/tiny_mce/utils/form_utils.js +210 -0
- data/public/javascripts/tiny_mce/utils/mclayer.js +210 -0
- data/public/javascripts/tiny_mce/utils/mctabs.js +74 -0
- data/public/javascripts/tiny_mce/utils/validate.js +219 -0
- data/public/stylesheets/administration.css +5 -1
- data/public/stylesheets/minimal.css +1 -0
- data/test/functional/admin/categories_controller_test.rb +2 -2
- data/test/functional/xml_controller_test.rb +72 -40
- data/test/test_helper.rb +1 -17
- data/test/unit/article_test.rb +1 -1
- data/test/unit/trigger_test.rb +1 -1
- data/themes/scribbish/views/articles/_comment.rhtml +13 -17
- data/themes/scribbish/views/articles/_comment_form.rhtml +7 -5
- data/themes/scribbish/views/articles/_comment_list.rhtml +7 -0
- data/themes/scribbish/views/articles/read.rhtml +1 -1
- data/vendor/plugins/aimpresence_sidebar/views/content.rhtml +1 -1
- data/vendor/plugins/archives_sidebar/views/content.rhtml +1 -1
- data/vendor/plugins/audioscrobbler_sidebar/MAINTAINERS +26 -0
- data/vendor/plugins/audioscrobbler_sidebar/MIT-LICENSE +21 -0
- data/vendor/plugins/audioscrobbler_sidebar/README +27 -0
- data/vendor/plugins/backpack_sidebar/MAINTAINERS +26 -0
- data/vendor/plugins/backpack_sidebar/MIT-LICENSE +21 -0
- data/vendor/plugins/backpack_sidebar/README +27 -0
- data/vendor/plugins/category_sidebar/views/content.rhtml +1 -1
- data/vendor/plugins/sitealizer/CHANGELOG +6 -0
- data/vendor/plugins/sitealizer/LICENSE +22 -0
- data/vendor/plugins/sitealizer/README +82 -0
- data/vendor/plugins/sitealizer/Rakefile +22 -0
- data/vendor/plugins/sitealizer/init.rb +24 -0
- data/vendor/plugins/sitealizer/install.rb +22 -0
- data/vendor/plugins/sitealizer/lib/app/assets/images/bar.gif +0 -0
- data/vendor/plugins/sitealizer/lib/app/assets/images/uv.png +0 -0
- data/vendor/plugins/sitealizer/lib/app/assets/images/vh.png +0 -0
- data/vendor/plugins/sitealizer/lib/app/controllers/sitealizer_controller.rb +118 -0
- data/vendor/plugins/sitealizer/lib/app/models/site_tracker.rb +145 -0
- data/vendor/plugins/sitealizer/lib/app/views/layouts/sitealizer.rhtml +66 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_browsers.rhtml +23 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_daily_stats.rhtml +67 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_hits_summary.rhtml +0 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_hosts.rhtml +21 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_keywords.rhtml +19 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_languages.rhtml +21 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_main_frame.rhtml +84 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_monthly_hits.rhtml +67 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_page_urls.rhtml +20 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_platforms.rhtml +21 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_referers.rhtml +22 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_robots.rhtml +19 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_search_engines.rhtml +19 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/hourly_stats.rhtml +39 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/index.rhtml +8 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/login.rhtml +20 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/menu.rhtml +74 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/referrer_stats.rhtml +20 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/search_stats.rhtml +25 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/summary.rhtml +22 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/visitor_info.rhtml +30 -0
- data/vendor/plugins/sitealizer/lib/config.yml +18 -0
- data/vendor/plugins/sitealizer/lib/sitealizer/parser.rb +347 -0
- data/vendor/plugins/sitealizer/lib/sitealizer.rb +78 -0
- data/vendor/plugins/sitealizer/lib/tasks/sitealizer.rake +36 -0
- data/vendor/plugins/sitealizer/test/fixtures/sitealizer.yml +89 -0
- data/vendor/plugins/sitealizer/test/sitealizer_controller_test.rb +208 -0
- data/vendor/plugins/sitealizer/test/sitealizer_parser_test.rb +169 -0
- data/vendor/plugins/sitealizer/test/test_helper.rb +7 -0
- data/vendor/plugins/tada_sidebar/MAINTAINERS +26 -0
- data/vendor/plugins/tada_sidebar/MIT-LICENSE +21 -0
- data/vendor/plugins/tada_sidebar/README +27 -0
- data/vendor/plugins/tag_sidebar/views/content.rhtml +1 -1
- data/vendor/plugins/tiny_mce/README +10 -0
- data/vendor/plugins/tiny_mce/Rakefile +22 -0
- data/vendor/plugins/tiny_mce/TODO +2 -0
- data/vendor/plugins/tiny_mce/changelog +1017 -0
- data/vendor/plugins/tiny_mce/init.rb +3 -0
- data/vendor/plugins/tiny_mce/install.rb +1 -0
- data/vendor/plugins/tiny_mce/lib/tiny_mce.rb +36 -0
- data/vendor/plugins/tiny_mce/lib/tiny_mce_helper.rb +48 -0
- data/vendor/plugins/tiny_mce/tasks/tiny_mce.rake +40 -0
- data/vendor/plugins/tiny_mce/test/helper_testcase.rb +38 -0
- data/vendor/plugins/tiny_mce/test/tiny_mce_helper_test.rb +67 -0
- data/vendor/plugins/tiny_mce/test/tiny_mce_test.rb +85 -0
- data/vendor/plugins/tiny_mce/tiny_mce_options.yml +121 -0
- data/vendor/plugins/xbox_sidebar/MAINTAINERS +26 -0
- data/vendor/plugins/xbox_sidebar/MIT-LICENSE +21 -0
- data/vendor/plugins/xbox_sidebar/README +27 -0
- data/vendor/plugins/xml_sidebar/lib/xml_sidebar.rb +1 -1
- data/vendor/plugins/xml_sidebar/views/content.rhtml +4 -4
- metadata +220 -4
- data/TODO-4.1 +0 -16
data/Rakefile
CHANGED
data/TODO-4.2
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Short Term To-Do for 4.2
|
|
2
|
+
------------------------
|
|
3
|
+
|
|
4
|
+
– Fix bugs
|
|
5
|
+
– Finish admin ergonomic revamping
|
|
6
|
+
– Change admin theme
|
|
7
|
+
– Change default theme for something more modern
|
|
8
|
+
– Convert submited patches as plugins (see on the trac)
|
|
9
|
+
– Add users contributed translations (ES, JP, BR...)
|
|
10
|
+
|
|
11
|
+
If I have the time :
|
|
12
|
+
– Real mutiple users roles
|
|
13
|
+
– Multi blogs
|
|
14
|
+
– Go to the grocery and buy more beer
|
data/TODO.MULTIUSERS
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
This documents aims at describing what I plan for Typo to go multiusers
|
|
2
|
+
|
|
3
|
+
A profile :
|
|
4
|
+
has many right
|
|
5
|
+
|
|
6
|
+
A user :
|
|
7
|
+
has one profile
|
|
8
|
+
has many rights
|
|
9
|
+
|
|
10
|
+
When a user is created, he's given a profile. His profile is marked as "clean"
|
|
11
|
+
The administrator can assign specific rights to that user. His profile is marked as "tainted"
|
|
12
|
+
When a profile is modified, changes are made on users who have a "clean" profile.
|
|
13
|
+
|
|
14
|
+
Here are the profiles and rights :
|
|
15
|
+
|
|
16
|
+
Administrator
|
|
17
|
+
- admin the blog
|
|
18
|
+
- create, edit, delete users
|
|
19
|
+
- create, edit, delete roles
|
|
20
|
+
- write, edit, publish, unpublish, delete drafts
|
|
21
|
+
- write, edit, publish, unpublish, delete posts
|
|
22
|
+
- write comments
|
|
23
|
+
- edit / delete his own comments
|
|
24
|
+
- edit / delete other people's comments
|
|
25
|
+
- moderate comments marked as spam
|
|
26
|
+
|
|
27
|
+
Publisher
|
|
28
|
+
- write, edit, publish, unpublish, delete drafts
|
|
29
|
+
- write, edit, publish, unpublish, delete posts
|
|
30
|
+
- write comments
|
|
31
|
+
- edit / delete his own comments
|
|
32
|
+
- moderate comments marked as spam
|
|
33
|
+
|
|
34
|
+
Writer
|
|
35
|
+
- write, edit, publish, unpublish, delete drafts
|
|
36
|
+
- write comments
|
|
37
|
+
|
|
38
|
+
Moderator
|
|
39
|
+
- write comments
|
|
40
|
+
- edit / delete his own comments
|
|
41
|
+
- edit / delete other people's comments
|
|
42
|
+
- moderate comments marked as spam
|
|
43
|
+
|
|
44
|
+
Subscriber
|
|
45
|
+
- write comments
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
class Admin::BaseController < ApplicationController
|
|
2
2
|
cattr_accessor :look_for_migrations
|
|
3
3
|
@@look_for_migrations = true
|
|
4
|
+
if Blog.default && Blog.default.editor == 2
|
|
5
|
+
uses_tiny_mce(
|
|
6
|
+
:options => {
|
|
7
|
+
:theme => 'advanced',
|
|
8
|
+
:theme_advanced_toolbar_location => "top",
|
|
9
|
+
:theme_advanced_toolbar_align => "left",
|
|
10
|
+
:theme_advanced_resizing => true,
|
|
11
|
+
:theme_advanced_resize_horizontal => false,
|
|
12
|
+
:paste_auto_cleanup_on_paste => true,
|
|
13
|
+
:theme_advanced_buttons1 => %w{formatselect bold italic underline strikethrough
|
|
14
|
+
separator justifyleft justifycenter justifyright
|
|
15
|
+
separator bullist numlist forecolor backcolor
|
|
16
|
+
separator link unlink image},
|
|
17
|
+
:theme_advanced_buttons2 => [],
|
|
18
|
+
:theme_advanced_buttons3 => [],
|
|
19
|
+
:plugins => %w{contextmenu paste}},
|
|
20
|
+
:only => [:new, :edit])
|
|
21
|
+
end
|
|
4
22
|
|
|
5
23
|
layout 'administration'
|
|
6
24
|
before_filter :login_required, :except => [ :login, :signup ]
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
class Admin::GeneralController < Admin::BaseController
|
|
2
|
+
# Deprecation warning for plugins removal
|
|
3
|
+
before_filter :deprecation_warning
|
|
4
|
+
|
|
2
5
|
def index
|
|
3
6
|
if this_blog.base_url.blank?
|
|
4
7
|
this_blog.base_url = blog_base_url
|
|
@@ -38,5 +41,16 @@ class Admin::GeneralController < Admin::BaseController
|
|
|
38
41
|
end
|
|
39
42
|
end
|
|
40
43
|
|
|
44
|
+
# Deprecation warning for plugins removal
|
|
45
|
+
def deprecation_warning
|
|
46
|
+
if this_blog.deprecation_warning == 1
|
|
47
|
+
Blog.transaction do
|
|
48
|
+
this_blog.deprecation_warning = 0
|
|
49
|
+
this_blog.save
|
|
50
|
+
end
|
|
51
|
+
flash[:notice] = "Deprecation warning: please, notice that most plugins are going to be removed from the main engine in the next version. <a href='http://blog.typosphere.org/articles/2007/04/15/the-futur-of-typo-sidebar-plugins'>Read more on the official Typo blog</a>"
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
41
55
|
private
|
|
42
56
|
end
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
# Likewise will all the methods added be available for all controllers.
|
|
3
3
|
class ApplicationController < ActionController::Base
|
|
4
4
|
include LoginSystem
|
|
5
|
-
|
|
5
|
+
include Sitealizer
|
|
6
|
+
before_filter :use_sitealizer, :reset_local_cache, :fire_triggers
|
|
6
7
|
after_filter :reset_local_cache
|
|
7
8
|
|
|
8
9
|
|
|
@@ -89,33 +89,30 @@ class ArticlesController < ContentController
|
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
if request.post?
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
render :partial => "comment", :object => @comment
|
|
108
|
-
rescue ActiveRecord::RecordInvalid
|
|
109
|
-
STDERR.puts @comment.errors.inspect
|
|
110
|
-
render_error(@comment)
|
|
111
|
-
end
|
|
92
|
+
@article = this_blog.published_articles.find(params[:id])
|
|
93
|
+
params[:comment].merge!({:ip => request.remote_ip,
|
|
94
|
+
:published => true,
|
|
95
|
+
:user => session[:user],
|
|
96
|
+
:user_agent => request.env['HTTP_USER_AGENT'],
|
|
97
|
+
:referrer => request.env['HTTP_REFERER'],
|
|
98
|
+
:permalink => @article.permalink_url})
|
|
99
|
+
@comment = @article.comments.build(params[:comment])
|
|
100
|
+
@comment.author ||= 'Anonymous'
|
|
101
|
+
@comment.save
|
|
102
|
+
add_to_cookies(:author, @comment.author)
|
|
103
|
+
add_to_cookies(:url, @comment.url)
|
|
104
|
+
|
|
105
|
+
set_headers
|
|
106
|
+
render :partial => "comment", :object => @comment
|
|
112
107
|
end
|
|
113
108
|
end
|
|
114
109
|
|
|
115
110
|
# Receive trackbacks linked to articles
|
|
116
111
|
def trackback
|
|
117
112
|
@error_message = catch(:error) do
|
|
118
|
-
if
|
|
113
|
+
if this_blog.global_pings_disable
|
|
114
|
+
throw :error, "Trackback not saved"
|
|
115
|
+
elsif params[:__mode] == "rss"
|
|
119
116
|
# Part of the trackback spec... will implement later
|
|
120
117
|
# XXX. Should this throw an error?
|
|
121
118
|
elsif !(params.has_key?(:url) && params.has_key?(:id))
|
|
@@ -29,7 +29,7 @@ module Admin::BaseHelper
|
|
|
29
29
|
unless session[:user]
|
|
30
30
|
link_to "log in", :controller => "/accounts", :action=>"login"
|
|
31
31
|
else
|
|
32
|
-
link_to "log out", :controller => "/accounts", :action=>"logout"
|
|
32
|
+
link_to _("log out"), :controller => "/accounts", :action=>"logout"
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -42,7 +42,7 @@ module Admin::BaseHelper
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def cancel(url = {:action => 'list'})
|
|
45
|
-
link_to "Cancel", url
|
|
45
|
+
link_to _("Cancel"), url
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def save(val = "Store")
|
|
@@ -54,7 +54,7 @@ module Admin::BaseHelper
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
def link_to_show(record)
|
|
57
|
-
link_to image_tag('
|
|
57
|
+
link_to image_tag('show.png'), :action => 'show', :id => record.id
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
def link_to_edit(record)
|
|
@@ -88,7 +88,7 @@ module Admin::BaseHelper
|
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
def task_overview
|
|
91
|
-
task('Back to overview', 'list')
|
|
91
|
+
task(_('Back to overview'), 'list')
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
def task_new(title)
|
|
@@ -3,10 +3,10 @@ module Admin::FeedbackHelper
|
|
|
3
3
|
link_to truncate(article.title, 60), :controller => '/admin/content', :action => 'edit', :id => article.id
|
|
4
4
|
end
|
|
5
5
|
|
|
6
|
-
def task_showmod(title)
|
|
6
|
+
def task_showmod(title, action)
|
|
7
7
|
content_tag :li,
|
|
8
|
-
link_to(title, :published => (
|
|
9
|
-
:confirmed => (
|
|
8
|
+
link_to(title, :published => (action =~ /spam/ ? 'f' : ''),
|
|
9
|
+
:confirmed => (action =~ /unconfirmed/ ? 'f' : ''),
|
|
10
10
|
:search => params[:search])
|
|
11
11
|
end
|
|
12
12
|
end
|
|
@@ -46,12 +46,8 @@ module ApplicationHelper
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def js_distance_of_time_in_words_to_now(date)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
else
|
|
52
|
-
time = Time.now
|
|
53
|
-
end
|
|
54
|
-
"<span class=\"typo_date\" title=\"#{time}\">#{time}</span>"
|
|
49
|
+
time = date.utc.strftime("%a, %d %b %Y %H:%M:%S GMT")
|
|
50
|
+
"<span class=\"typo_date\" title=\"#{time}\">#{time}</span>"
|
|
55
51
|
end
|
|
56
52
|
|
|
57
53
|
def meta_tag(name, value)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module SidebarHelper
|
|
2
|
-
def render_sidebars
|
|
3
|
-
this_blog.sidebars.inject('') do |acc, sb|
|
|
2
|
+
def render_sidebars(*sidebars)
|
|
3
|
+
(sidebars.blank? ? this_blog.sidebars : sidebars).inject('') do |acc, sb|
|
|
4
4
|
@sidebar = sb
|
|
5
5
|
sb.parse_request(contents, params)
|
|
6
6
|
controller.response.lifetime = sb.lifetime if sb.lifetime
|
data/app/models/blog.rb
CHANGED
|
@@ -78,11 +78,15 @@ class Blog < CachedModel
|
|
|
78
78
|
setting :ping_urls, :string, "http://rpc.technorati.com/rpc/ping\nhttp://ping.blo.gs/\nhttp://rpc.weblogs.com/RPC2"
|
|
79
79
|
setting :send_outbound_pings, :boolean, true
|
|
80
80
|
setting :email_from, :string, 'typo@example.com'
|
|
81
|
+
setting :editor, :integer, 1
|
|
81
82
|
|
|
82
83
|
# Jabber config
|
|
83
84
|
setting :jabber_address, :string, ''
|
|
84
85
|
setting :jabber_password, :string, ''
|
|
85
86
|
|
|
87
|
+
#deprecation warning for plugins removal
|
|
88
|
+
setting :deprecation_warning, :integer, 1
|
|
89
|
+
|
|
86
90
|
def initialize(*args)
|
|
87
91
|
super
|
|
88
92
|
# Yes, this is weird - PDC
|
|
@@ -109,7 +113,11 @@ class Blog < CachedModel
|
|
|
109
113
|
settings[:blog_id] = self.id
|
|
110
114
|
article_id = settings[:id]
|
|
111
115
|
settings.delete(:id)
|
|
112
|
-
|
|
116
|
+
article = published_articles.find(article_id)
|
|
117
|
+
unless article.allow_pings?
|
|
118
|
+
throw :error, "Trackback not saved"
|
|
119
|
+
end
|
|
120
|
+
article.trackbacks.create!(settings)
|
|
113
121
|
end
|
|
114
122
|
|
|
115
123
|
# Check that all required blog settings have a value.
|
data/app/models/category.rb
CHANGED
|
@@ -5,15 +5,15 @@ class Category < ActiveRecord::Base
|
|
|
5
5
|
:order => "published_at DESC, created_at DESC"
|
|
6
6
|
|
|
7
7
|
def self.find_all_with_article_counters(maxcount=nil)
|
|
8
|
-
self.find_by_sql([%{
|
|
9
|
-
SELECT categories.id, categories.name, categories.permalink, categories.position, COUNT(articles.id) AS article_counter
|
|
10
|
-
FROM #{Category.table_name} categories
|
|
11
|
-
LEFT OUTER JOIN #{Category.table_name_prefix}categorizations#{Category.table_name_suffix} articles_categories
|
|
12
|
-
ON articles_categories.category_id = categories.id
|
|
13
|
-
LEFT OUTER JOIN #{Article.table_name} articles
|
|
14
|
-
ON (articles_categories.article_id = articles.id AND articles.published = ?)
|
|
15
|
-
GROUP BY categories.id, categories.name, categories.position, categories.permalink
|
|
16
|
-
ORDER BY position
|
|
8
|
+
self.find_by_sql([%{
|
|
9
|
+
SELECT categories.id, categories.name, categories.permalink, categories.position, COUNT(articles.id) AS article_counter
|
|
10
|
+
FROM #{Category.table_name} categories
|
|
11
|
+
LEFT OUTER JOIN #{Category.table_name_prefix}categorizations#{Category.table_name_suffix} articles_categories
|
|
12
|
+
ON articles_categories.category_id = categories.id
|
|
13
|
+
LEFT OUTER JOIN #{Article.table_name} articles
|
|
14
|
+
ON (articles_categories.article_id = articles.id AND articles.published = ?)
|
|
15
|
+
GROUP BY categories.id, categories.name, categories.position, categories.permalink
|
|
16
|
+
ORDER BY position
|
|
17
17
|
}, true]).each {|item| item.article_counter = item.article_counter.to_i }
|
|
18
18
|
end
|
|
19
19
|
|
data/app/models/comment.rb
CHANGED
|
@@ -21,7 +21,7 @@ class Comment < Feedback
|
|
|
21
21
|
def notify_user_via_jabber(user)
|
|
22
22
|
if user.notify_via_jabber?
|
|
23
23
|
JabberNotify.send_message(user, "New comment", "A new comment was posted to '#{article.title}' on #{blog.blog_name} by #{author}:
|
|
24
|
-
#{body}
|
|
24
|
+
#{body}", self.html(:body))
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
@@ -29,9 +29,9 @@ module ContentState
|
|
|
29
29
|
'Ham?'
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
def send_notifications(content
|
|
32
|
+
def send_notifications(content)
|
|
33
33
|
content.interested_users.each do |user|
|
|
34
|
-
content.send_notification_to_user(
|
|
34
|
+
content.send_notification_to_user(user)
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
end
|
data/app/models/resource.rb
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
<table>
|
|
2
2
|
<tr>
|
|
3
|
-
<th><%= _("Category title")%></th>
|
|
4
|
-
<th><%= _("Articles")%></th>
|
|
5
|
-
<th><%= _("
|
|
3
|
+
<th><%= _("Category title") %></th>
|
|
4
|
+
<th><%= _("Articles") %></th>
|
|
5
|
+
<th><%= _("Status") %></th>
|
|
6
|
+
<th colspan="3"><%= _("Action") %></th>
|
|
6
7
|
</tr>
|
|
7
8
|
<% for category in @categories -%>
|
|
8
9
|
<tr <%= alternate_class -%> id="category_<%= category.id -%>">
|
|
9
|
-
<td><%=
|
|
10
|
-
<td><%=
|
|
11
|
-
<td class="operation"><%=
|
|
10
|
+
<td><%= category.name %></td>
|
|
11
|
+
<td><%= pluralize(category.articles.size, 'article') %></td>
|
|
12
|
+
<td class="operation"><%= image_tag 'checked.png' %></td>
|
|
13
|
+
<td class="operation"><%= link_to_show category %></td>
|
|
14
|
+
<td class="operation"><%= link_to_edit category %></td>
|
|
15
|
+
<td class="operation"><%= link_to_destroy category %></td>
|
|
12
16
|
</tr>
|
|
13
17
|
<% end -%>
|
|
14
18
|
</table>
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
<!--[form:comment]-->
|
|
3
3
|
<p>
|
|
4
4
|
<label for="comment_author"><%= _("Author")%>:</label><br/>
|
|
5
|
-
<%= text_field 'comment', 'author'
|
|
5
|
+
<%= text_field 'comment', 'author', "value" => (session[:user][:name] if controller.action_name == "new") %>
|
|
6
6
|
</p>
|
|
7
7
|
<p>
|
|
8
8
|
<label for="comment_url"><%= _("Url") %>:</label><br/>
|
|
9
|
-
<%= text_field 'comment', 'url' %>
|
|
9
|
+
<%= text_field 'comment', 'url', "value" => (this_blog.base_url if controller.action_name == "new") %>
|
|
10
10
|
</p>
|
|
11
11
|
<p>
|
|
12
12
|
<label for="comment_email"><%= _("Email")%>:</label><br/>
|
|
13
|
-
<%= text_field 'comment', 'email'
|
|
13
|
+
<%= text_field 'comment', 'email', "value" => (session[:user][:email] if controller.action_name == "new") %>
|
|
14
14
|
</p>
|
|
15
15
|
<p>
|
|
16
16
|
<label for="comment_body"><%= _("Body")%>:</label><br/>
|
|
@@ -13,16 +13,18 @@
|
|
|
13
13
|
<th><%= _("Body")%></th>
|
|
14
14
|
<th><%= _("IP")%></th>
|
|
15
15
|
<th><%= _("Posted date")%></th>
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
<th><%= _("Status")%></th>
|
|
17
|
+
<th colspan="3"><%= _("Action") %></th>
|
|
18
18
|
</tr>
|
|
19
19
|
<% for comment in @comments -%>
|
|
20
20
|
<tr>
|
|
21
|
-
<td class="field"
|
|
21
|
+
<td class="field"> <%=link_to_unless comment.url.blank?, h(comment.author), comment.url %></td>
|
|
22
22
|
<td class="field"><%=h comment.email %></td>
|
|
23
|
-
<td class="field"><%=
|
|
23
|
+
<td class="field"><%= link_to_permalink comment, truncate((comment.body).strip_html) %></td>
|
|
24
24
|
<td class="field"><%=h comment.ip %></td>
|
|
25
|
-
<td class="field"><%=
|
|
25
|
+
<td class="field"><%=comment.created_at.strftime("%d/%m/%Y at %H:%M") %></td>
|
|
26
|
+
<td class="operation"><%= image_tag 'checked.png' %></td>
|
|
27
|
+
<td class="operation"><%= link_to_show comment %></td>
|
|
26
28
|
<td class="operation"><%= link_to_edit comment %></td>
|
|
27
29
|
<td class="operation"><%= link_to_destroy comment %></td>
|
|
28
30
|
</tr>
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<% @page_heading = _("Comments for") + " #{ link_to h(@article.title), :controller => '/admin/content', :action => 'show', :id => @article }" %>
|
|
2
|
-
|
|
2
|
+
<% content_for('tasks') do %>
|
|
3
|
+
<%= task_overview %>
|
|
4
|
+
<% end %>
|
|
3
5
|
<h3><%= _("Creating comment")%></h3>
|
|
4
6
|
|
|
5
7
|
<% form_tag :action=>"new" do %>
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<% @page_heading = _("Comments for") + " #{ link_to h(@article.title), :controller => '/admin/content', :action => 'show', :id => @article }" %>
|
|
2
|
-
|
|
2
|
+
<% content_for('tasks') do %>
|
|
3
|
+
<%= task_overview %>
|
|
4
|
+
<% end %>
|
|
3
5
|
<div class="form">
|
|
4
6
|
<label><%= _("Author")%>:</label> <span class="static"><%=h @comment.author %></span><br/>
|
|
5
7
|
<label><%= _("URL")%>:</label> <span class="static"><%=h @comment.url %></span><br/>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<% for article in @articles %>
|
|
11
11
|
<tr <%= alternate_class %>>
|
|
12
12
|
<td> <%= link_to_permalink article, h(article.title) %></td>
|
|
13
|
-
<td><%= article.published_at.strftime("%d/%m/%Y at %H:%M")%></td>
|
|
13
|
+
<td><%= article.published_at.strftime("%d/%m/%Y at %H:%M") %></td>
|
|
14
14
|
<td><%= link_to _(pluralize(article.comments.size, 'comment')), :controller => '/admin/comments', :article_id => article, :action => 'list' %></td>
|
|
15
15
|
<td><%= link_to _(pluralize(article.trackbacks.size, 'trackback')), :controller => '/admin/trackbacks', :article_id => article, :action => 'list' %></td>
|
|
16
16
|
<td class="operation"><%= (article.published?) ? image_tag('checked.png', :alt => "online", :title => _("Online")) : image_tag('cancel.png', :alt => "offline", :title => _("Offline")) %></td>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<fieldset class="set admin" style="display: block">
|
|
4
4
|
<legend><%=_("Article Body")%></legend>
|
|
5
5
|
<iframe id="preview" class="post" style="display: none;"></iframe>
|
|
6
|
-
<div style="width: 48%; float: left;"
|
|
6
|
+
<div <%='style="width: 48%; float: left;"' if this_blog.editor == 1 %>>
|
|
7
7
|
<ul>
|
|
8
8
|
<li>
|
|
9
9
|
<label for="article_title" class="block">Title:</label>
|
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
<%= markup_help_popup @article.text_filter, image_tag('help.png', :alt => "markup help", :title => "Markup Help") %>
|
|
15
15
|
<%= text_area 'article', 'body', :rows => 25, :style => 'width: 100%;' %>
|
|
16
16
|
</li>
|
|
17
|
+
<li>
|
|
18
|
+
<%= link_to_function _("Toggle Extended Content") + " (+/-)",update_page { |page| page.visual_effect(:toggle_blind, "extended", :duration => 0.5) } %>
|
|
19
|
+
</li>
|
|
17
20
|
<li id="extended"<%- if @article.extended.blank? -%> style="display:none;"<%- end -%>>
|
|
18
21
|
<label for="article_extended"><%= _("Extended Content")%>:</label>
|
|
19
22
|
<%= text_area 'article', 'extended', :rows => 30, :style => 'width: 100%;' %>
|
|
20
|
-
<%= link_to_function "Toggle Extended Content (+/-)",update_page { |page| page.visual_effect(:toggle_blind, "extended", :duration => 0.5) } %>
|
|
21
23
|
</li>
|
|
22
24
|
<li>
|
|
23
25
|
<label for="categories" class="block"><%= _("Categories")%>:</label>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<div class="post">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
<h2><%= @article[:title] %></h2>
|
|
3
|
+
<p class="auth">
|
|
4
|
+
<%_("Posted by")%>
|
|
5
|
+
<%= author_link(@article) %>
|
|
6
|
+
<%= js_distance_of_time_in_words_to_now(@article[:published_at] || Time.now) %>
|
|
7
|
+
</p>
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
</div>
|
|
9
|
+
<%= @article.html %>
|
|
10
|
+
</div>
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
</td>
|
|
13
13
|
<td class="field"><%=h truncate(item.body,80)%></td>
|
|
14
14
|
<td class="field"><%=h item.ip %></td>
|
|
15
|
-
<td class="field"><%=
|
|
15
|
+
<td class="field"><%=item.created_at.strftime("%d/%m/%Y at %H:%M")%></td>
|
|
16
|
+
<td class="operation"><%= link_to image_tag('show.png', :alt => "show", :title => "Show content"), :controller => 'comments', :article_id => item.article_id, :action => 'show', :id => item.id %></td>
|
|
17
|
+
<td class="operation"><%= link_to image_tag('edit.png', :alt => "edit", :title => "Edit content"), :controller => 'comments', :article_id => item.article_id, :action => 'edit', :id => item.id %></td>
|
|
16
18
|
<td class="operation"><%= link_to image_tag('delete.png'), {:action => 'delete', :id => item.id, :search => params[:search], :page => params[:page] }, :confirm => "Are you sure?", :method => :post %></td>
|
|
17
19
|
</tr>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<% @page_heading = _("Comments and Trackbacks for") + " #{ this_blog.settings['blog_name'] }" %>
|
|
2
2
|
|
|
3
3
|
<% content_for('tasks') do %>
|
|
4
|
-
<%= task_showmod
|
|
5
|
-
<%= task_showmod
|
|
6
|
-
<%= task_showmod
|
|
4
|
+
<%= task_showmod(_('Limit to spam'), "Limit to spam") %>
|
|
5
|
+
<%= task_showmod(_("Limit to unconfirmed"), "Limit to unconfirmed") %>
|
|
6
|
+
<%= task_showmod(_("Limit to unconfirmed spam"), "Limit to unconfirmed spam") %>
|
|
7
7
|
<%= tab _("Blacklist"), :controller=>"blacklist", :action=>"index"%>
|
|
8
8
|
<% end %>
|
|
9
9
|
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
<th><%= _("Body")%></th>
|
|
35
35
|
<th><%= _("IP")%></th>
|
|
36
36
|
<th><%= _("Posted date")%></th>
|
|
37
|
-
<th><%= _("
|
|
37
|
+
<th colspan="3"><%= _("Action") %></th>
|
|
38
38
|
</tr>
|
|
39
39
|
<%= render :partial => 'item', :collection => @feedback %>
|
|
40
40
|
</table>
|
|
@@ -81,8 +81,21 @@
|
|
|
81
81
|
|
|
82
82
|
<fieldset id="write" class="set">
|
|
83
83
|
<legend><%= _("Write")%></legend>
|
|
84
|
-
|
|
85
84
|
<ul>
|
|
85
|
+
<li>
|
|
86
|
+
<label class="float"><%= _("Editor")%>:</label>
|
|
87
|
+
<input type="radio" name="setting[editor]" value="2" id="editor_2" <%= 'checked="checked"' if this_blog.editor == 2 %>/>
|
|
88
|
+
<label for="editor_2"><%= _("Use visual rich editor")%></label>
|
|
89
|
+
<span class="float">
|
|
90
|
+
<input type="radio" name="setting[editor]" value="1" id="editor_1" <%= 'checked="checked"' if this_blog.editor == 1 %>/>
|
|
91
|
+
<label for="editor_1"><%= _("Use simple editor with live preview (default)")%></label>
|
|
92
|
+
</span>
|
|
93
|
+
<span class="float">
|
|
94
|
+
<input type="radio" name="setting[editor]" value="0" id="editor_0" <%= 'checked="checked"' if this_blog.editor == 0 %>/>
|
|
95
|
+
<label for="editor_0"><%= _("Use simple editor without live preview")%></label>
|
|
96
|
+
</span>
|
|
97
|
+
</li>
|
|
98
|
+
|
|
86
99
|
<li>
|
|
87
100
|
<label class="float" for="text_filter"><%= _("Article filter")%>:</label>
|
|
88
101
|
<select name="setting[text_filter]" id="text_filter">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<fieldset class="set admin" style="display: block">
|
|
4
4
|
<legend><%= _("Page Body")%></legend>
|
|
5
5
|
<iframe id="preview" class="post" style="display: none;"></iframe>
|
|
6
|
-
<div style="width: 48%; float: left;"
|
|
6
|
+
<div <%='style="width: 48%; float: left;"' if this_blog.editor == 1 %>>
|
|
7
7
|
<ul>
|
|
8
8
|
<li>
|
|
9
9
|
<label for="page_title" class="block"><%= _("Title")%>:</label>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<%= render :partial => "form" %>
|
|
7
7
|
|
|
8
8
|
<div id="operations" class="tasks">
|
|
9
|
-
<p class="r"><%= save(_("Save")) %> or <%= cancel %></p>
|
|
9
|
+
<p class="r"><%= save(_("Save")) %> <%= _("or") %> <%= cancel %></p>
|
|
10
10
|
</div>
|
|
11
11
|
|
|
12
12
|
<% end %>
|
|
@@ -14,4 +14,4 @@
|
|
|
14
14
|
<%= observe_form "#{form_type}_form",
|
|
15
15
|
:frequency => 2,
|
|
16
16
|
:complete => "$('preview').src = request.responseText; Element.show('preview');",
|
|
17
|
-
:url => { :action => "preview" } %>
|
|
17
|
+
:url => { :action => "preview" } if this_blog.editor == 1 %>
|