typo 5.4.4 → 5.5

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.
Files changed (292) hide show
  1. data/CHANGELOG +59 -28
  2. data/MAINTAINERS +9 -17
  3. data/README +28 -20
  4. data/UPGRADE +6 -2
  5. data/app/controllers/accounts_controller.rb +1 -1
  6. data/app/controllers/admin/content_controller.rb +1 -1
  7. data/app/controllers/admin/feedback_controller.rb +3 -3
  8. data/app/controllers/admin/pages_controller.rb +2 -0
  9. data/app/controllers/application_controller.rb +6 -1
  10. data/app/controllers/articles_controller.rb +13 -1
  11. data/app/helpers/application_helper.rb +5 -2
  12. data/app/helpers/authors_helper.rb +14 -3
  13. data/app/models/article.rb +6 -4
  14. data/app/models/blog.rb +0 -4
  15. data/app/models/blog_sweeper.rb +1 -1
  16. data/app/models/content.rb +10 -5
  17. data/app/models/page_cache.rb +6 -7
  18. data/app/models/user.rb +1 -0
  19. data/app/views/admin/content/_form.html.erb +13 -11
  20. data/app/views/admin/content/_images.html.erb +1 -1
  21. data/app/views/admin/content/_simple_editor.html.erb +1 -0
  22. data/app/views/admin/content/_visual_editor.html.erb +1 -0
  23. data/app/views/admin/dashboard/_overview.html.erb +7 -7
  24. data/app/views/admin/pages/_form.html.erb +1 -0
  25. data/app/views/admin/pages/_images.html.erb +18 -0
  26. data/app/views/admin/pages/_simple_editor.html.erb +1 -2
  27. data/app/views/admin/pages/_visual_editor.html.erb +2 -1
  28. data/app/views/admin/pages/index.html.erb +1 -1
  29. data/app/views/admin/settings/feedback.html.erb +2 -1
  30. data/app/views/admin/tags/edit.html.erb +1 -1
  31. data/app/views/articles/_article.html.erb +17 -13
  32. data/app/views/articles/_article_content.html.erb +1 -0
  33. data/app/views/articles/_comment_box.html.erb +1 -1
  34. data/app/views/articles/_password_form.html.erb +10 -0
  35. data/app/views/articles/groupings.html.erb +1 -1
  36. data/app/views/articles/index.html.erb +1 -2
  37. data/app/views/articles/read.html.erb +1 -4
  38. data/app/views/articles/search.html.erb +1 -1
  39. data/app/views/layouts/administration.html.erb +1 -1
  40. data/app/views/shared/_search.html.erb +1 -1
  41. data/config/ckeditor.yml +14 -0
  42. data/config/environment.rb +13 -25
  43. data/config/environments/test.rb +1 -3
  44. data/config/filemanager.yml +16 -0
  45. data/config/initializers/access_rules.rb +5 -0
  46. data/config/routes.rb +5 -1
  47. data/db/migrate/004_add_sidebars.rb +3 -9
  48. data/db/migrate/089_drop_cache_information_table.rb +31 -0
  49. data/db/migrate/090_remove_keywords_from_posts.rb +9 -0
  50. data/db/migrate/091_adds_password_protection_to_posts.rb +9 -0
  51. data/doc/CACHE.SETUP.README +36 -0
  52. data/lang/de_DE.rb +6 -1
  53. data/lang/pl_PL.rb +221 -89
  54. data/lib/filemanager.rb +53 -0
  55. data/lib/filemanager/controller.rb +217 -0
  56. data/lib/i18n_interpolation_deprecation.rb +26 -0
  57. data/lib/rails_patch/active_support.rb +4 -0
  58. data/lib/tasks/release.rake +4 -131
  59. data/lib/typo_version.rb +1 -1
  60. data/public/.htaccess +6 -5
  61. data/public/filemanager/images/avi.gif +0 -0
  62. data/public/filemanager/images/box.gif +0 -0
  63. data/public/filemanager/images/bullet.gif +0 -0
  64. data/public/filemanager/images/close.gif +0 -0
  65. data/public/filemanager/images/closelabel.gif +0 -0
  66. data/public/filemanager/images/doc.gif +0 -0
  67. data/public/filemanager/images/donate-button.gif +0 -0
  68. data/public/filemanager/images/download-icon.gif +0 -0
  69. data/public/filemanager/images/folder.gif +0 -0
  70. data/public/filemanager/images/gif.gif +0 -0
  71. data/public/filemanager/images/htm.gif +0 -0
  72. data/public/filemanager/images/html.gif +0 -0
  73. data/public/filemanager/images/image-1.jpg +0 -0
  74. data/public/filemanager/images/image.gif +0 -0
  75. data/public/filemanager/images/jpg.gif +0 -0
  76. data/public/filemanager/images/loading.gif +0 -0
  77. data/public/filemanager/images/mov.gif +0 -0
  78. data/public/filemanager/images/nextlabel.gif +0 -0
  79. data/public/filemanager/images/pdf.gif +0 -0
  80. data/public/filemanager/images/png.gif +0 -0
  81. data/public/filemanager/images/ppt.gif +0 -0
  82. data/public/filemanager/images/prevlabel.gif +0 -0
  83. data/public/filemanager/images/rar.gif +0 -0
  84. data/public/filemanager/images/rm.gif +0 -0
  85. data/public/filemanager/images/rmvb.gif +0 -0
  86. data/public/filemanager/images/separator.gif +0 -0
  87. data/public/filemanager/images/spacer.gif +0 -0
  88. data/public/filemanager/images/swf.gif +0 -0
  89. data/public/filemanager/images/thumb-1.jpg +0 -0
  90. data/public/filemanager/images/tool_copy.gif +0 -0
  91. data/public/filemanager/images/tool_cut.gif +0 -0
  92. data/public/filemanager/images/tool_del.gif +0 -0
  93. data/public/filemanager/images/tool_folder.gif +0 -0
  94. data/public/filemanager/images/tool_imagemanager.gif +0 -0
  95. data/public/filemanager/images/tool_new.gif +0 -0
  96. data/public/filemanager/images/tool_paste.gif +0 -0
  97. data/public/filemanager/images/tool_props.gif +0 -0
  98. data/public/filemanager/images/tool_refresh.gif +0 -0
  99. data/public/filemanager/images/tool_unzip.gif +0 -0
  100. data/public/filemanager/images/tool_upload.gif +0 -0
  101. data/public/filemanager/images/tool_zip.gif +0 -0
  102. data/public/filemanager/images/txt.gif +0 -0
  103. data/public/filemanager/images/unknown.gif +0 -0
  104. data/public/filemanager/images/wmv.gif +0 -0
  105. data/public/filemanager/images/xls.gif +0 -0
  106. data/public/filemanager/images/zip.gif +0 -0
  107. data/public/filemanager/javascripts/filemanager.js +6 -0
  108. data/public/filemanager/javascripts/lang/en.js +31 -0
  109. data/public/filemanager/javascripts/lang/zh_CN.js +31 -0
  110. data/public/filemanager/javascripts/lightbox.js +497 -0
  111. data/public/filemanager/javascripts/translate.js +42 -0
  112. data/public/filemanager/resources/resources.txt +1 -0
  113. data/public/filemanager/stylesheets/filelist.css +147 -0
  114. data/public/filemanager/stylesheets/general.css +135 -0
  115. data/public/filemanager/stylesheets/lightbox.css +27 -0
  116. data/public/javascripts/prototype_ext.js +117 -0
  117. data/public/stylesheets/administration.css +19 -2
  118. data/themes/dirtylicious/views/articles/_article.html.erb +16 -12
  119. data/themes/dirtylicious/views/articles/_article_content.html.erb +1 -0
  120. data/themes/dirtylicious/views/articles/_password_form.html.erb +10 -0
  121. data/themes/scribbish/views/articles/_article.html.erb +18 -14
  122. data/themes/scribbish/views/articles/_article_content.html.erb +1 -0
  123. data/themes/scribbish/views/articles/_password_form.html.erb +10 -0
  124. data/themes/standard_issue/views/articles/_article.html.erb +16 -12
  125. data/themes/standard_issue/views/articles/_article_content.html.erb +1 -0
  126. data/themes/standard_issue/views/articles/_password_form.html.erb +10 -0
  127. data/themes/true-blue-3/helpers/theme_helper.rb +2 -2
  128. data/themes/true-blue-3/images/submit_form.jpg +0 -0
  129. data/themes/true-blue-3/stylesheets/style.css +27 -3
  130. data/themes/true-blue-3/views/articles/_article.html.erb +13 -8
  131. data/themes/true-blue-3/views/articles/_article_content.html.erb +1 -0
  132. data/themes/true-blue-3/views/articles/_comment_form.html.erb +1 -1
  133. data/themes/true-blue-3/views/articles/_password_form.html.erb +10 -0
  134. data/themes/true-blue-3/views/categories/_article.html.erb +5 -0
  135. data/themes/true-blue-3/views/tags/_article.html.erb +4 -0
  136. data/themes/typographic/views/articles/_article.html.erb +16 -12
  137. data/themes/typographic/views/articles/_article_content.html.erb +1 -0
  138. data/themes/typographic/views/articles/_password_form.html.erb +10 -0
  139. data/vendor/plugins/easy-ckeditor/app/controllers/ckeditor_controller.rb +2 -1
  140. data/vendor/plugins/easy-ckeditor/lib/ckeditor.rb +1 -20
  141. data/vendor/plugins/easy-ckeditor/{tasks → lib/tasks}/ckeditor_tasks.rake +0 -0
  142. data/vendor/plugins/filemanager/app/controllers/fm/filemanager_controller.rb +22 -0
  143. data/vendor/plugins/filemanager/app/views/fm/filemanager/index.html.erb +512 -0
  144. data/vendor/plugins/filemanager/app/views/fm/filemanager/view.html.erb +67 -0
  145. data/vendor/plugins/filemanager/filemanager.yml +16 -0
  146. data/vendor/plugins/static_sidebar/lib/static_sidebar.rb +4 -2
  147. data/vendor/plugins/typo_converter/{tasks → lib/tasks}/typo_converters_tasks.rake +0 -0
  148. data/vendor/plugins/typo_login_system/lib/access_control.rb +24 -1
  149. data/vendor/plugins/typo_textfilter_code/{tasks → lib/tasks}/typo_textfilter_code_tasks.rake +0 -0
  150. data/vendor/plugins/typo_textfilter_code/lib/typo_textfilter_code.rb +4 -3
  151. data/vendor/plugins/typo_textfilter_flickr/{tasks → lib/tasks}/typo_textfilter_flickr_tasks.rake +0 -0
  152. data/vendor/plugins/typo_textfilter_htmlfilter/{tasks → lib/tasks}/typo_textfilter_htmlfilter_tasks.rake +0 -0
  153. data/vendor/plugins/typo_textfilter_lightbox/{tasks → lib/tasks}/typo_textfilter_lightbox_tasks.rake +0 -0
  154. data/vendor/plugins/typo_textfilter_markdown/{tasks → lib/tasks}/typo_textfilter_markdown_tasks.rake +0 -0
  155. data/vendor/plugins/typo_textfilter_none/{tasks → lib/tasks}/typo_textfilter_none_tasks.rake +0 -0
  156. data/vendor/plugins/typo_textfilter_smartypants/{tasks → lib/tasks}/typo_textfilter_smartypants_tasks.rake +0 -0
  157. data/vendor/plugins/typo_textfilter_textile/{tasks → lib/tasks}/typo_textfilter_textile_tasks.rake +0 -0
  158. data/vendor/plugins/typo_textfilter_textile_and_markdown/{tasks → lib/tasks}/typo_textfilter_textile_and_markdown_tasks.rake +0 -0
  159. data/vendor/plugins/xml_sidebar/views/content.rhtml +1 -1
  160. metadata +190 -195
  161. data/app/controllers/admin/cache_controller.rb +0 -9
  162. data/app/models/cache_information.rb +0 -19
  163. data/db/schema.rb +0 -242
  164. data/doc/test_themes.rb +0 -50
  165. data/public/javascripts/ckeditor/config.js +0 -27
  166. data/spec/controllers/accounts_controller_spec.rb +0 -414
  167. data/spec/controllers/admin/cache_controller_spec.rb +0 -18
  168. data/spec/controllers/admin/categories_controller_spec.rb +0 -73
  169. data/spec/controllers/admin/content_controller_spec.rb +0 -443
  170. data/spec/controllers/admin/dashboard_controller_spec.rb +0 -13
  171. data/spec/controllers/admin/feedback_controller_spec.rb +0 -308
  172. data/spec/controllers/admin/pages_controller_spec.rb +0 -80
  173. data/spec/controllers/admin/profiles_controller_spec.rb +0 -22
  174. data/spec/controllers/admin/resources_controller_spec.rb +0 -53
  175. data/spec/controllers/admin/settings_controller_spec.rb +0 -80
  176. data/spec/controllers/admin/tags_controller_spec.rb +0 -64
  177. data/spec/controllers/admin/textfilters_controller_spec.rb +0 -20
  178. data/spec/controllers/admin/themes_controller_spec.rb +0 -30
  179. data/spec/controllers/admin/users_controller_spec.rb +0 -109
  180. data/spec/controllers/application_controller_spec.rb +0 -18
  181. data/spec/controllers/articles_controller_spec.rb +0 -440
  182. data/spec/controllers/authors_controller_spec.rb +0 -42
  183. data/spec/controllers/backend_controller_spec.rb +0 -337
  184. data/spec/controllers/categories_controller_spec.rb +0 -117
  185. data/spec/controllers/comments_controller_spec.rb +0 -137
  186. data/spec/controllers/routes/articles_routing_spec.rb +0 -31
  187. data/spec/controllers/routes/xml_routing_spec.rb +0 -71
  188. data/spec/controllers/setup_controller_spec.rb +0 -24
  189. data/spec/controllers/tags_controller_spec.rb +0 -147
  190. data/spec/controllers/textfilter_controller_spec.rb +0 -192
  191. data/spec/controllers/theme_controller_spec.rb +0 -39
  192. data/spec/controllers/xml_controller_spec.rb +0 -185
  193. data/spec/factories.rb +0 -69
  194. data/spec/helpers/application_helper_spec.rb +0 -25
  195. data/spec/helpers/content_helper_spec.rb +0 -28
  196. data/spec/lib/text_filter_plugin_spec.rb +0 -15
  197. data/spec/models/amazon_sidebar_spec.rb +0 -40
  198. data/spec/models/article_closing_spec.rb +0 -42
  199. data/spec/models/article_spec.rb +0 -515
  200. data/spec/models/blog_spec.rb +0 -116
  201. data/spec/models/cache_information_spec.rb +0 -42
  202. data/spec/models/cache_support_spec.rb +0 -51
  203. data/spec/models/category_spec.rb +0 -44
  204. data/spec/models/comment_spec.rb +0 -240
  205. data/spec/models/configuration_spec.rb +0 -91
  206. data/spec/models/content_state/feedback_states_spec.rb +0 -64
  207. data/spec/models/notification_spec.rb +0 -8
  208. data/spec/models/page_cache_spec.rb +0 -30
  209. data/spec/models/page_spec.rb +0 -91
  210. data/spec/models/ping_pinger_spec.rb +0 -33
  211. data/spec/models/ping_spec.rb +0 -154
  212. data/spec/models/redirect_spec.rb +0 -17
  213. data/spec/models/resource_spec.rb +0 -39
  214. data/spec/models/route_cache_spec.rb +0 -11
  215. data/spec/models/sidebar_spec.rb +0 -7
  216. data/spec/models/static_sidebar_spec.rb +0 -17
  217. data/spec/models/tag_spec.rb +0 -65
  218. data/spec/models/text_filter_spec.rb +0 -34
  219. data/spec/models/theme_spec.rb +0 -45
  220. data/spec/models/trackback_spec.rb +0 -60
  221. data/spec/models/trigger_spec.rb +0 -40
  222. data/spec/models/user_spec.rb +0 -198
  223. data/spec/rcov.opts +0 -2
  224. data/spec/spec.opts +0 -4
  225. data/spec/spec_helper.rb +0 -133
  226. data/spec/views/articles/index_spec.rb +0 -63
  227. data/spec/views/articles/read_spec.rb +0 -67
  228. data/spec/views/comments/html_sanitization_spec.rb +0 -119
  229. data/test/fixtures/blogs.yml +0 -27
  230. data/test/fixtures/categories.yml +0 -29
  231. data/test/fixtures/categorizations.yml +0 -31
  232. data/test/fixtures/contents.yml +0 -231
  233. data/test/fixtures/feedback.yml +0 -180
  234. data/test/fixtures/notification_mailer/article +0 -3
  235. data/test/fixtures/notification_mailer/comment +0 -3
  236. data/test/fixtures/notification_mailer/trackback +0 -3
  237. data/test/fixtures/notifications.yml +0 -0
  238. data/test/fixtures/page_caches.yml +0 -7
  239. data/test/fixtures/profiles.yml +0 -27
  240. data/test/fixtures/redirects.yml +0 -10
  241. data/test/fixtures/resources.yml +0 -21
  242. data/test/fixtures/sidebars.yml +0 -10
  243. data/test/fixtures/tags.yml +0 -10
  244. data/test/fixtures/text_filters.yml +0 -37
  245. data/test/fixtures/triggers.yml +0 -1
  246. data/test/fixtures/users.yml +0 -101
  247. data/test/mocks/test/dns_mock.rb +0 -13
  248. data/test/mocks/test/flickr_mock.rb +0 -30
  249. data/test/mocks/test/http_mock.rb +0 -39
  250. data/test/mocks/test/theme_mock.rb +0 -5
  251. data/test/mocks/test/xmlrpc_mock.rb +0 -28
  252. data/test/mocks/themes/123-numbers-in-path/about.markdown +0 -0
  253. data/test/mocks/themes/CamelCaseDirectory/about.markdown +0 -0
  254. data/test/mocks/themes/i-have-special-chars/about.markdown +0 -0
  255. data/test/mocks/themes/typographic/about.markdown +0 -7
  256. data/test/mocks/themes/typographic/images/Thumbs.db +0 -0
  257. data/test/mocks/themes/typographic/images/accept.png +0 -0
  258. data/test/mocks/themes/typographic/images/accept50.png +0 -0
  259. data/test/mocks/themes/typographic/images/bg_body.jpg +0 -0
  260. data/test/mocks/themes/typographic/images/bg_white.png +0 -0
  261. data/test/mocks/themes/typographic/images/bg_wrapper.jpg +0 -0
  262. data/test/mocks/themes/typographic/images/bullet_bottom.png +0 -0
  263. data/test/mocks/themes/typographic/images/bullet_right.png +0 -0
  264. data/test/mocks/themes/typographic/images/email_open.png +0 -0
  265. data/test/mocks/themes/typographic/images/email_open50.png +0 -0
  266. data/test/mocks/themes/typographic/images/meta.png +0 -0
  267. data/test/mocks/themes/typographic/images/page_edit.png +0 -0
  268. data/test/mocks/themes/typographic/images/page_edit50.png +0 -0
  269. data/test/mocks/themes/typographic/images/tag.png +0 -0
  270. data/test/mocks/themes/typographic/images/user.png +0 -0
  271. data/test/mocks/themes/typographic/images/user50.png +0 -0
  272. data/test/mocks/themes/typographic/images/world_link.png +0 -0
  273. data/test/mocks/themes/typographic/images/world_link50.png +0 -0
  274. data/test/mocks/themes/typographic/layouts/default.html.erb +0 -42
  275. data/test/mocks/themes/typographic/preview.png +0 -0
  276. data/test/mocks/themes/typographic/stylesheets/colors.css +0 -51
  277. data/test/mocks/themes/typographic/stylesheets/layout.css +0 -346
  278. data/test/mocks/themes/typographic/stylesheets/reset.css +0 -5
  279. data/test/mocks/themes/typographic/stylesheets/style.css +0 -36
  280. data/test/mocks/themes/typographic/views/articles/_article.html.erb +0 -41
  281. data/test/mocks/themes/typographic/views/articles/_comment.html.erb +0 -14
  282. data/test/mocks/themes/typographic/views/articles/_comment_form.html.erb +0 -48
  283. data/test/mocks/themes/typographic/views/articles/_comment_list.html.erb +0 -7
  284. data/test/mocks/themes/typographic/views/articles/_trackback.html.erb +0 -9
  285. data/test/mocks/themes/typographic/views/articles/comment_preview.html.erb +0 -10
  286. data/test/mocks/themes/typographic/views/articles/index.html.erb +0 -5
  287. data/test/mocks/themes/typographic/views/articles/read.html.erb +0 -42
  288. data/test/mocks/themes/typographic/views/shared/_search.html.erb +0 -17
  289. data/test/mocks/themes/typographic/views/theme/static_view_test.html.erb +0 -1
  290. data/test/test_helper.rb +0 -13
  291. data/themes/true-blue-3/images/frederic-de-villamil.jpg +0 -0
  292. data/themes/true-blue-3/images/textarea_bg.jpg +0 -0
@@ -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
- if ActiveRecord::Base.connection.table_exists?(:cache_informations)
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
@@ -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") + " &raquo;") %><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">
@@ -11,4 +11,5 @@
11
11
  $('visual_editor').innerHTML = "";
12
12
  $('visual_editor').style.display = 'none';
13
13
  $('article_body_and_extended').innerHTML = content;
14
+ $('carousel-wrapper').style.display = 'block';
14
15
  </script>
@@ -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 => 'page', :action => 'new') ,
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').innerHTNK = '';
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 => 'contents', :action => 'new'}, :id => 'dialog-link', :class => 'ui-state-default ui-corner-all') %>
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)%><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>
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") + " &raquo;", "", {:controller=>"tags", :action=>"list"} %>
4
+ <%= subtab _("Back to tags list") + " &raquo;", {: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
- <% unless controller.action_name == 'redirect' %>
5
- <% if article.excerpt? %>
6
- <%= article.excerpt %>
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
- <% if article.extended? %>
10
- <div class="extended">
11
- <p><%= link_to_permalink article, _("Continue reading...") %></p>
12
- </div>
13
- <% end %>
18
+ <div class="extended">
19
+ <%= article.html(:extended) %>
20
+ </div>
14
21
  <% end %>
15
22
  <% else %>
16
- <%= article.html(:body) %>
17
- <div class="extended">
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(_("(leave url/email &#187;)"), "Element.toggle('guest_url'); Element.toggle('guest_email')") %></small></td>
19
+ <td> <%= text_field "comment", "author", :size => 20 %> <small><%= link_to_function("(#{_('leave url/email')} &#187;)", "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>
@@ -12,4 +12,4 @@
12
12
  <p><%= _("There are")%> <%= @grouping_class.to_s.underscore.pluralize %>.</p>
13
13
  <% end -%>
14
14
  </div>
15
- <p><%= will_paginate %></p>
15
+ <p><%= will_paginate :next_label => "#{_("Next page")} &raquo;", :previous_label => "&laquo; #{_('Previous page')}" %></p>
@@ -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")} &raquo;", :previous_label => "&laquo; #{_('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
- <h2><%=h @article.title %></h2>
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 %>
@@ -5,4 +5,4 @@
5
5
  </div>
6
6
  <% end -%>
7
7
 
8
- <%= will_paginate @articles %>
8
+ <%= will_paginate @articles, :next_label => "#{_("Next page")} &raquo;", :previous_label => "&laquo; #{_('Previous page')}" %>
@@ -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", :ckeditor %>
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
- <label for="q">Live Search:</label><input type="text" id="q" name="q" value="" size="15" />
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,
@@ -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
@@ -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.5' unless defined? RAILS_GEM_VERSION
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
- # Add additional load paths for your own custom dirs
17
- # config.load_paths += %W( #{RAILS_ROOT}/app/services )
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 'mislav-will_paginate', :version => '~> 2.3.11', :lib => 'will_paginate',
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 'panztel-actionwebservice', :version => '2.3.5', :lib => 'actionwebservice'
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 database for sessions instead of the file system
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)