typo 5.4.4 → 5.5

Sign up to get free protection for your applications and to get access to all the features.
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)