atreides 2.0.0

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 (309) hide show
  1. data/LICENSE +7 -0
  2. data/README.rdoc +1 -0
  3. data/app/assets/javascripts/atreides/admin.js +22 -0
  4. data/app/assets/javascripts/atreides/admin_base.js.erb +247 -0
  5. data/app/assets/javascripts/atreides/admin_edit.js +9 -0
  6. data/app/assets/javascripts/atreides/application.js +15 -0
  7. data/app/assets/javascripts/atreides/comments.coffee +50 -0
  8. data/app/assets/javascripts/atreides/public.js +24 -0
  9. data/app/assets/javascripts/atreides/public_base.js.erb +119 -0
  10. data/app/assets/javascripts/atreides/terryblr.js +57 -0
  11. data/app/assets/stylesheets/atreides/admin.css +21 -0
  12. data/app/assets/stylesheets/atreides/admin_base.css.erb +1762 -0
  13. data/app/assets/stylesheets/atreides/application.css +13 -0
  14. data/app/assets/stylesheets/atreides/formtastic_changes.css +10 -0
  15. data/app/assets/stylesheets/atreides/iphone-checkboxes.css.erb +97 -0
  16. data/app/assets/stylesheets/atreides/jBreadCrumb.css +109 -0
  17. data/app/assets/stylesheets/atreides/public.css +15 -0
  18. data/app/assets/stylesheets/atreides/public_base.css +101 -0
  19. data/app/assets/stylesheets/atreides/swfupload.css.erb +63 -0
  20. data/app/controllers/admin/atreides/comments_controller.rb +47 -0
  21. data/app/controllers/admin/atreides/content_parts_controller.rb +43 -0
  22. data/app/controllers/admin/atreides/dropbox_controller.rb +40 -0
  23. data/app/controllers/admin/atreides/features_controller.rb +63 -0
  24. data/app/controllers/admin/atreides/github_controller.rb +35 -0
  25. data/app/controllers/admin/atreides/links_controller.rb +3 -0
  26. data/app/controllers/admin/atreides/messages_controller.rb +3 -0
  27. data/app/controllers/admin/atreides/orders_controller.rb +35 -0
  28. data/app/controllers/admin/atreides/pages_controller.rb +59 -0
  29. data/app/controllers/admin/atreides/photos_controller.rb +79 -0
  30. data/app/controllers/admin/atreides/posts_controller.rb +109 -0
  31. data/app/controllers/admin/atreides/products_controller.rb +39 -0
  32. data/app/controllers/admin/atreides/sessions_controller.rb +7 -0
  33. data/app/controllers/admin/atreides/sizes_controller.rb +4 -0
  34. data/app/controllers/admin/atreides/tags_controller.rb +20 -0
  35. data/app/controllers/admin/atreides/users_controller.rb +50 -0
  36. data/app/controllers/admin/atreides/videos_controller.rb +53 -0
  37. data/app/controllers/atreides/admin_controller.rb +96 -0
  38. data/app/controllers/atreides/admin_home_controller.rb +211 -0
  39. data/app/controllers/atreides/application_controller.rb +93 -0
  40. data/app/controllers/atreides/comments_controller.rb +43 -0
  41. data/app/controllers/atreides/home_controller.rb +71 -0
  42. data/app/controllers/atreides/likes_controller.rb +44 -0
  43. data/app/controllers/atreides/pages_controller.rb +34 -0
  44. data/app/controllers/atreides/posts_controller.rb +119 -0
  45. data/app/controllers/atreides/public_controller.rb +43 -0
  46. data/app/helpers/admin/atreides/comments_helper.rb +8 -0
  47. data/app/helpers/admin/atreides/dropbox_helper.rb +42 -0
  48. data/app/helpers/admin/atreides/features_helper.rb +4 -0
  49. data/app/helpers/admin/atreides/github_helper.rb +43 -0
  50. data/app/helpers/admin/atreides/links_helper.rb +4 -0
  51. data/app/helpers/admin/atreides/messages_helper.rb +4 -0
  52. data/app/helpers/admin/atreides/orders_helper.rb +30 -0
  53. data/app/helpers/admin/atreides/pages_helper.rb +17 -0
  54. data/app/helpers/admin/atreides/photos_helper.rb +14 -0
  55. data/app/helpers/admin/atreides/posts_helper.rb +41 -0
  56. data/app/helpers/admin/atreides/products_helper.rb +37 -0
  57. data/app/helpers/admin/atreides/sizes_helper.rb +4 -0
  58. data/app/helpers/admin/atreides/user_sessions_helper.rb +4 -0
  59. data/app/helpers/admin/atreides/users_helper.rb +8 -0
  60. data/app/helpers/admin/atreides/videos_helper.rb +4 -0
  61. data/app/helpers/atreides/admin_helper.rb +243 -0
  62. data/app/helpers/atreides/admin_home_helper.rb +4 -0
  63. data/app/helpers/atreides/application_helper.rb +210 -0
  64. data/app/helpers/atreides/home_helper.rb +4 -0
  65. data/app/helpers/atreides/posts_helper.rb +119 -0
  66. data/app/inputs/files_input.rb +13 -0
  67. data/app/inputs/price_input.rb +18 -0
  68. data/app/inputs/underline_input.rb +16 -0
  69. data/app/models/atreides/ability.rb +24 -0
  70. data/app/models/atreides/comment.rb +93 -0
  71. data/app/models/atreides/content_part.rb +107 -0
  72. data/app/models/atreides/feature.rb +90 -0
  73. data/app/models/atreides/github.rb +74 -0
  74. data/app/models/atreides/like.rb +35 -0
  75. data/app/models/atreides/line_item.rb +4 -0
  76. data/app/models/atreides/link.rb +32 -0
  77. data/app/models/atreides/message.rb +34 -0
  78. data/app/models/atreides/order.rb +209 -0
  79. data/app/models/atreides/page.rb +114 -0
  80. data/app/models/atreides/photo.rb +130 -0
  81. data/app/models/atreides/post.rb +271 -0
  82. data/app/models/atreides/product.rb +75 -0
  83. data/app/models/atreides/site.rb +59 -0
  84. data/app/models/atreides/size.rb +44 -0
  85. data/app/models/atreides/tag.rb +31 -0
  86. data/app/models/atreides/tweet.rb +123 -0
  87. data/app/models/atreides/user.rb +129 -0
  88. data/app/models/atreides/video.rb +206 -0
  89. data/app/models/atreides/vote.rb +43 -0
  90. data/app/models/fb_post_publisher_job.rb +72 -0
  91. data/app/models/settings.rb +19 -0
  92. data/app/models/tumblr_post_publisher_job.rb +75 -0
  93. data/app/models/tw_post_publisher_job.rb +54 -0
  94. data/app/views/admin/_edit_head_content.html.haml +2 -0
  95. data/app/views/admin/atreides/comments/_line.html.haml +60 -0
  96. data/app/views/admin/atreides/comments/_sidebar.html.haml +52 -0
  97. data/app/views/admin/atreides/comments/create.js.haml +1 -0
  98. data/app/views/admin/atreides/comments/index.html.haml +34 -0
  99. data/app/views/admin/atreides/content_parts/_form.html.haml +21 -0
  100. data/app/views/admin/atreides/content_parts/_photos.html.haml +18 -0
  101. data/app/views/admin/atreides/content_parts/_text.html.haml +1 -0
  102. data/app/views/admin/atreides/content_parts/_videos.html.haml +12 -0
  103. data/app/views/admin/atreides/content_parts/destroy.js.haml +3 -0
  104. data/app/views/admin/atreides/content_parts/edit.html.haml +0 -0
  105. data/app/views/admin/atreides/content_parts/new.html.haml +0 -0
  106. data/app/views/admin/atreides/content_parts/new.js.haml +11 -0
  107. data/app/views/admin/atreides/dropbox/_uploader.html.haml +134 -0
  108. data/app/views/admin/atreides/dropbox/list.html.haml +27 -0
  109. data/app/views/admin/atreides/dropbox/setup.html.haml +8 -0
  110. data/app/views/admin/atreides/features/_form.html.haml +60 -0
  111. data/app/views/admin/atreides/features/edit.html.haml +1 -0
  112. data/app/views/admin/atreides/features/index.html.haml +24 -0
  113. data/app/views/admin/atreides/features/new.html.haml +1 -0
  114. data/app/views/admin/atreides/github/index.html.haml +26 -0
  115. data/app/views/admin/atreides/github/show.html.haml +19 -0
  116. data/app/views/admin/atreides/likes/create.js.haml +2 -0
  117. data/app/views/admin/atreides/orders/_sidebar.html.haml +20 -0
  118. data/app/views/admin/atreides/orders/edit.html.haml +52 -0
  119. data/app/views/admin/atreides/orders/index.html.haml +8 -0
  120. data/app/views/admin/atreides/pages/_form.html.haml +31 -0
  121. data/app/views/admin/atreides/pages/edit.html.haml +3 -0
  122. data/app/views/admin/atreides/pages/index.html.haml +15 -0
  123. data/app/views/admin/atreides/pages/index.js.haml +4 -0
  124. data/app/views/admin/atreides/pages/new.html.haml +2 -0
  125. data/app/views/admin/atreides/photos/create.js.haml +18 -0
  126. data/app/views/admin/atreides/photos/destroy.js.haml +3 -0
  127. data/app/views/admin/atreides/posts/_archives.html.haml +19 -0
  128. data/app/views/admin/atreides/posts/_form.html.haml +66 -0
  129. data/app/views/admin/atreides/posts/_form_buttons.html.haml +9 -0
  130. data/app/views/admin/atreides/posts/_form_sidebar.html.haml +85 -0
  131. data/app/views/admin/atreides/posts/edit.html.haml +2 -0
  132. data/app/views/admin/atreides/posts/index.html.haml +24 -0
  133. data/app/views/admin/atreides/posts/index.js.haml +1 -0
  134. data/app/views/admin/atreides/posts/new.html.haml +2 -0
  135. data/app/views/admin/atreides/products/edit.html.haml +69 -0
  136. data/app/views/admin/atreides/products/index.html.haml +31 -0
  137. data/app/views/admin/atreides/sessions/new.html.haml +13 -0
  138. data/app/views/admin/atreides/user_sessions/new.html.haml +10 -0
  139. data/app/views/admin/atreides/users/_form.html.haml +19 -0
  140. data/app/views/admin/atreides/users/edit.html.haml +6 -0
  141. data/app/views/admin/atreides/users/index.html.haml +11 -0
  142. data/app/views/admin/atreides/users/new.html.haml +6 -0
  143. data/app/views/admin/atreides/users/show.html.haml +4 -0
  144. data/app/views/admin/atreides/videos/create.js.haml +9 -0
  145. data/app/views/admin/atreides/videos/destroy.js.haml +3 -0
  146. data/app/views/admin/common/_archive_sidebar.html.haml +29 -0
  147. data/app/views/admin/common/_list_table.html.erb +37 -0
  148. data/app/views/admin/common/_list_table_row.html.erb +18 -0
  149. data/app/views/admin/common/_pagination.html.erb +1 -0
  150. data/app/views/admin/common/_search_form.html.erb +6 -0
  151. data/app/views/admin/common/access_denied.html.haml +1 -0
  152. data/app/views/atreides/admin/_content_nav.html.haml +8 -0
  153. data/app/views/atreides/admin_home/_analytics.html.haml +93 -0
  154. data/app/views/atreides/admin_home/_fb_page_likes_analytics_tbody.haml +10 -0
  155. data/app/views/atreides/admin_home/_fb_page_views_analytics_tbody.haml +10 -0
  156. data/app/views/atreides/admin_home/_top_landing_pages_analytics_tbody.haml +14 -0
  157. data/app/views/atreides/admin_home/_top_referrers_analytics_tbody.haml +12 -0
  158. data/app/views/atreides/admin_home/_tweets_analytics_tbody.html.haml +8 -0
  159. data/app/views/atreides/admin_home/_visitors_analytics_tbody.html.haml +12 -0
  160. data/app/views/atreides/admin_home/index.html.haml +57 -0
  161. data/app/views/atreides/admin_home/search.html.haml +11 -0
  162. data/app/views/atreides/admin_home/setup.html.haml +15 -0
  163. data/app/views/atreides/common/_gallery_params.xml.erb +174 -0
  164. data/app/views/atreides/common/slideshow.xml.haml +6 -0
  165. data/app/views/atreides/errors/404.html.haml +10 -0
  166. data/app/views/atreides/errors/500.html.haml +4 -0
  167. data/app/views/atreides/home/index.html.haml +30 -0
  168. data/app/views/atreides/home/index.js.haml +1 -0
  169. data/app/views/atreides/home/robots.txt.erb +5 -0
  170. data/app/views/atreides/home/sitemap.xml.builder +35 -0
  171. data/app/views/atreides/pages/show.html.haml +3 -0
  172. data/app/views/atreides/posts/_archives.html.haml +19 -0
  173. data/app/views/atreides/posts/_featured_posts.html.haml +10 -0
  174. data/app/views/atreides/posts/_list.html.haml +9 -0
  175. data/app/views/atreides/posts/archives.html.haml +3 -0
  176. data/app/views/atreides/posts/archives.js.haml +1 -0
  177. data/app/views/atreides/posts/gallery_params.xml.haml +1 -0
  178. data/app/views/atreides/posts/index.atom.builder +22 -0
  179. data/app/views/atreides/posts/index.html.haml +13 -0
  180. data/app/views/atreides/posts/index.rss.builder +21 -0
  181. data/app/views/atreides/posts/show.html.haml +23 -0
  182. data/app/views/atreides/posts/tagged.html.haml +4 -0
  183. data/app/views/atreides/posts/tagged.js.haml +1 -0
  184. data/app/views/layouts/admin.html.haml +62 -0
  185. data/app/views/layouts/application.html.haml +37 -0
  186. data/app/views/layouts/atreides/application.html.erb +14 -0
  187. data/app/views/layouts/public.html.haml +39 -0
  188. data/config/cucumber.yml +11 -0
  189. data/config/locales/en.yml +236 -0
  190. data/config/locales/fr.yml +199 -0
  191. data/config/routes.rb +119 -0
  192. data/lib/assets/images/atreides/admin/add.png +0 -0
  193. data/lib/assets/images/atreides/admin/add_btn.png +0 -0
  194. data/lib/assets/images/atreides/admin/add_dashboard.png +0 -0
  195. data/lib/assets/images/atreides/admin/add_photo_button_sprite.png +0 -0
  196. data/lib/assets/images/atreides/admin/add_photos_btn.png +0 -0
  197. data/lib/assets/images/atreides/admin/background.png +0 -0
  198. data/lib/assets/images/atreides/admin/calendar.png +0 -0
  199. data/lib/assets/images/atreides/admin/chevron.gif +0 -0
  200. data/lib/assets/images/atreides/admin/chevron_overlay.png +0 -0
  201. data/lib/assets/images/atreides/admin/choose_photos_button_sprite.png +0 -0
  202. data/lib/assets/images/atreides/admin/content_bg.png +0 -0
  203. data/lib/assets/images/atreides/admin/content_bg_edit_form.png +0 -0
  204. data/lib/assets/images/atreides/admin/content_part_break.png +0 -0
  205. data/lib/assets/images/atreides/admin/content_part_drop_target.png +0 -0
  206. data/lib/assets/images/atreides/admin/content_part_icons.png +0 -0
  207. data/lib/assets/images/atreides/admin/content_part_photos.png +0 -0
  208. data/lib/assets/images/atreides/admin/content_part_text.png +0 -0
  209. data/lib/assets/images/atreides/admin/content_part_videos.png +0 -0
  210. data/lib/assets/images/atreides/admin/content_top_edit_form.png +0 -0
  211. data/lib/assets/images/atreides/admin/dashboard-indicator.gif +0 -0
  212. data/lib/assets/images/atreides/admin/dashboard_controls_activity.png +0 -0
  213. data/lib/assets/images/atreides/admin/dashboard_controls_customize.png +0 -0
  214. data/lib/assets/images/atreides/admin/dashboard_controls_drafts.png +0 -0
  215. data/lib/assets/images/atreides/admin/dashboard_controls_open.png +0 -0
  216. data/lib/assets/images/atreides/admin/dashboard_controls_posts.png +0 -0
  217. data/lib/assets/images/atreides/admin/dashboard_controls_queue.png +0 -0
  218. data/lib/assets/images/atreides/admin/dashboard_nav_border.png +0 -0
  219. data/lib/assets/images/atreides/admin/delete_bg.png +0 -0
  220. data/lib/assets/images/atreides/admin/down_arrow.png +0 -0
  221. data/lib/assets/images/atreides/admin/dropbox_big.jpg +0 -0
  222. data/lib/assets/images/atreides/admin/dropbox_btn.png +0 -0
  223. data/lib/assets/images/atreides/admin/dropbox_folder.png +0 -0
  224. data/lib/assets/images/atreides/admin/dropbox_icon.gif +0 -0
  225. data/lib/assets/images/atreides/admin/dropbox_icon.png +0 -0
  226. data/lib/assets/images/atreides/admin/expand_collapse.png +0 -0
  227. data/lib/assets/images/atreides/admin/form_sidebar_divider.png +0 -0
  228. data/lib/assets/images/atreides/admin/grey_hatch_bg.png +0 -0
  229. data/lib/assets/images/atreides/admin/header.png +0 -0
  230. data/lib/assets/images/atreides/admin/icon_dropbox.gif +0 -0
  231. data/lib/assets/images/atreides/admin/icon_home.gif +0 -0
  232. data/lib/assets/images/atreides/admin/input_bg.gif +0 -0
  233. data/lib/assets/images/atreides/admin/large_loading.gif +0 -0
  234. data/lib/assets/images/atreides/admin/new_content_icons.png +0 -0
  235. data/lib/assets/images/atreides/admin/off.png +0 -0
  236. data/lib/assets/images/atreides/admin/on.png +0 -0
  237. data/lib/assets/images/atreides/admin/page_icon.png +0 -0
  238. data/lib/assets/images/atreides/admin/permalink.png +0 -0
  239. data/lib/assets/images/atreides/admin/photos-display-type-gallery.png +0 -0
  240. data/lib/assets/images/atreides/admin/photos-display-type-photos.png +0 -0
  241. data/lib/assets/images/atreides/admin/product.png +0 -0
  242. data/lib/assets/images/atreides/admin/remove.png +0 -0
  243. data/lib/assets/images/atreides/admin/resize.png +0 -0
  244. data/lib/assets/images/atreides/admin/save_btn.png +0 -0
  245. data/lib/assets/images/atreides/admin/search_icon.png +0 -0
  246. data/lib/assets/images/atreides/admin/select_arrows.png +0 -0
  247. data/lib/assets/images/atreides/admin/slider.png +0 -0
  248. data/lib/assets/images/atreides/admin/slider_center.png +0 -0
  249. data/lib/assets/images/atreides/admin/slider_left.png +0 -0
  250. data/lib/assets/images/atreides/admin/slider_right.png +0 -0
  251. data/lib/assets/images/atreides/admin/sprite.png +0 -0
  252. data/lib/assets/images/atreides/admin/upload_btn.png +0 -0
  253. data/lib/assets/images/atreides/admin/video_bg.png +0 -0
  254. data/lib/assets/images/atreides/blank.gif +0 -0
  255. data/lib/assets/images/atreides/closelabel.png +0 -0
  256. data/lib/assets/images/atreides/loading.gif +0 -0
  257. data/lib/assets/images/atreides/sprite.png +0 -0
  258. data/lib/assets/images/atreides/tipsy.gif +0 -0
  259. data/lib/atreides.rb +82 -0
  260. data/lib/atreides/base/aasmstates.rb +117 -0
  261. data/lib/atreides/base/base.rb +40 -0
  262. data/lib/atreides/base/taggable.rb +43 -0
  263. data/lib/atreides/base/validation.rb +23 -0
  264. data/lib/atreides/configuration.rb +61 -0
  265. data/lib/atreides/engine.rb +41 -0
  266. data/lib/atreides/extendable.rb +12 -0
  267. data/lib/atreides/i18n_helpers.rb +65 -0
  268. data/lib/atreides/railties/tasks.rake +68 -0
  269. data/lib/atreides/time_formats.rb +19 -0
  270. data/lib/atreides/validators.rb +15 -0
  271. data/lib/atreides/version.rb +4 -0
  272. data/lib/generators/atreides/USAGE +0 -0
  273. data/lib/generators/atreides/atreides_generator.rb +58 -0
  274. data/lib/generators/templates/Procfile +2 -0
  275. data/lib/generators/templates/add_role_to_users.rb +16 -0
  276. data/lib/generators/templates/add_userid_to_resources.rb +15 -0
  277. data/lib/generators/templates/create_comments.rb +19 -0
  278. data/lib/generators/templates/create_content_parts.rb +66 -0
  279. data/lib/generators/templates/create_features.rb +21 -0
  280. data/lib/generators/templates/create_likes.rb +16 -0
  281. data/lib/generators/templates/create_line_items.rb +21 -0
  282. data/lib/generators/templates/create_links.rb +16 -0
  283. data/lib/generators/templates/create_messages.rb +24 -0
  284. data/lib/generators/templates/create_orders.rb +31 -0
  285. data/lib/generators/templates/create_pages.rb +31 -0
  286. data/lib/generators/templates/create_photos.rb +22 -0
  287. data/lib/generators/templates/create_posts.rb +38 -0
  288. data/lib/generators/templates/create_products.rb +24 -0
  289. data/lib/generators/templates/create_sessions.rb +16 -0
  290. data/lib/generators/templates/create_sites.rb +35 -0
  291. data/lib/generators/templates/create_sizes.rb +16 -0
  292. data/lib/generators/templates/create_tweets.rb +25 -0
  293. data/lib/generators/templates/create_videos.rb +24 -0
  294. data/lib/generators/templates/create_votes.rb +20 -0
  295. data/lib/generators/templates/delayed_job.rb +5 -0
  296. data/lib/generators/templates/devise_create_users.rb +42 -0
  297. data/lib/generators/templates/disqussion.rb +30 -0
  298. data/lib/generators/templates/em-net-http_override.rb +74 -0
  299. data/lib/generators/templates/initializer.rb +21 -0
  300. data/lib/generators/templates/new_relic.rb +6 -0
  301. data/lib/generators/templates/oembed.yml +63 -0
  302. data/lib/generators/templates/settings.yml +110 -0
  303. data/lib/generators/templates/string_extensions.rb +20 -0
  304. data/lib/generators/templates/unicorn.rb +2 -0
  305. data/lib/tasks/atreides_tasks.rake +4 -0
  306. data/lib/tasks/cucumber.rake +58 -0
  307. data/lib/tasks/tasks.rake +403 -0
  308. data/lib/tasks/yard.rake +18 -0
  309. metadata +1458 -0
@@ -0,0 +1,3 @@
1
+ %h2.page-title= resource.title
2
+
3
+ = resource.body.html_safe
@@ -0,0 +1,19 @@
1
+ - records ||= @posts
2
+ %ul.archives
3
+ - records.each do |r|
4
+ - obj_type = "#{r.class.table_name.to_s.singularize}_type".to_sym
5
+ - css_class = r.respond_to?(obj_type) ? r.send(obj_type) : ""
6
+ %li{:id => r.dom_id, :class => css_class}
7
+ - img = r.post_type.video? ? r.videos.first.thumb_url : r.photos.first.image.url(:thumb) rescue ""
8
+ = link_to send("#{r.class.table_name.to_s.singularize.downcase}_path", r.to_param, r.slug), :style => "background-image:url('#{img}')" do
9
+ %div.date-overlay=r.published_at.to_s(:month_and_day_ordinal) if r.published? and r.published_at?
10
+ %span=truncate_words(r.title? ? r.title : strip_tags(r.body), :length => 10)
11
+
12
+ #pagination.pagination.clear
13
+ - if controller.action_name!="search" and !params[:month].blank?
14
+ - prev_date = @date - 1.month
15
+ .previous= link_to "Previous", url_for(params.merge(:month => prev_date.month, :year => prev_date.year))
16
+ - next_date = @date + 1.month
17
+ .next= link_to "Next", url_for(params.merge(:month => next_date.month, :year => next_date.year))
18
+ - elsif records.size==records.per_page
19
+ .more= link_to "More", url_for(params.merge(:page => records.current_page+1, :format => "js")), :remote => true, :method => :get, "data-type" => "script"
@@ -0,0 +1,10 @@
1
+ / Featured Posts
2
+ - featured_posts = Atreides::Post.published.tagged_with('featured').limit(3) rescue []
3
+ #featured_videos
4
+ - featured_posts.each do |post|
5
+ .featured_video
6
+ %h2= link_to post.title, post_path(post, post.slug)
7
+ .divider
8
+ .featured-post-photo= link_to image_tag(post.photos.first.image.url(:splash), :width => "270"), post_path(post, post.slug)
9
+ %p.featured-post-body
10
+ = truncate_words(strip_tags(post.body), :length => 30, :omission => "...#{link_to(" #{ttt :'.more'}", post_path(post, post.slug), :class => "more")}")
@@ -0,0 +1,9 @@
1
+ -collection.each do |post|
2
+ %li{:id => post.dom_id}
3
+ = post_item(post)
4
+ .red-line
5
+
6
+ -if collection.respond_to?(:per_page) and collection.size == collection.per_page
7
+ - url_opts = {:page => collection.current_page+1}
8
+ %li#more_posts_btn
9
+ =link_to ttt(:'.more'), url_for(url_opts.update(:format => 'js')), {:href => url_for(url_opts), :id => "fetch_next_page", :remote => true}
@@ -0,0 +1,3 @@
1
+ %h2=ttt("archives")
2
+ #archives
3
+ = render :partial => "atreides/posts/archives"
@@ -0,0 +1 @@
1
+ $("#pagination").replaceWith("#{escape_javascript(render(:partial => "atreides/posts/archives", :locals => { :posts => @collection }))}")
@@ -0,0 +1 @@
1
+ = render :partial => 'atreides/common/gallery_params', :locals => { :url => post_url(resource, :format => "xml") }
@@ -0,0 +1,22 @@
1
+ # app/views/home/index.atom.builder
2
+ time_fmt = "%Y-%m-%dT%H:%M:%SZ"
3
+ time = Time.now
4
+ atom_feed :language => 'en-US' do |feed|
5
+ feed.title(Settings.app_name)
6
+ feed.link(:href => root_url)
7
+ unless !collection
8
+ feed.updated(collection.map(&:updated_at).max)
9
+ i = 0
10
+ collection.each do |post|
11
+ feed.entry(post, :id => "tag:#{Settings.domain},#{time.year}:#{post.id.to_s}", :url => post_url(post, post.slug)) do |entry|
12
+ entry.title(post.title)
13
+ entry.content(post_item(post), :type => 'html')
14
+ entry.author do |author|
15
+ author.name(Settings.app_name)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+
@@ -0,0 +1,13 @@
1
+ %h2 #{ttt :archives}
2
+
3
+ %ul.archives
4
+ - collection.each do |p|
5
+ %li{ :id => p.dom_id }
6
+ = link_to(post_path(p, p.slug), :style => p.thumbnail.nil? ? "" : "background-image:url(#{p.thumbnail})") do
7
+ %div.date-overlay=p.published_at.to_s(:month_and_day_ordinal)
8
+ %span=p.title? ? p.title : strip_tags(p.body)
9
+
10
+ -if collection.respond_to?(:per_page) and collection.size == collection.per_page
11
+ - url_opts = {:page => collection.current_page+1}
12
+ %li#more_posts_btn
13
+ =link_to "More", {:url => url_for(url_opts.update(:format => 'js'))}, {:href => url_for(url_opts), :id => "fetch_next_page", :remote => true}
@@ -0,0 +1,21 @@
1
+ time_fmt = "%Y-%m-%dT%H:%M:%SZ"
2
+ xml.instruct! :xml, :version => "1.0"
3
+ xml.rss :version => "2.0" do
4
+ xml.channel do
5
+ xml.title Settings.app_name
6
+ xml.description Settings.app_name
7
+ xml.link root_url
8
+
9
+ unless !collection
10
+ collection.each do |post|
11
+ xml.item do
12
+ xml.title post.title
13
+ xml.description post_item(post)
14
+ xml.pubDate post.published_at.to_s(:rfc822)
15
+ xml.link post_url(post, post.slug)
16
+ xml.guid post_url(post, post.slug)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ %ul.posts-stream
2
+ =render :partial => "list", :locals => { :collection => [resource] }
3
+
4
+ .clear
5
+
6
+ #page_nav
7
+ = link_to tt(".arrow_previous"), previous_post_path(resource), :class => "left" if resource.previous
8
+ = link_to tt(".arrow_next"), next_post_path(resource), :class => "right" if resource.next
9
+
10
+ .clear
11
+
12
+ #disqus_thread
13
+ :javascript
14
+ var disqus_shortname = 'testatreides';
15
+ var disqus_developer = 1;
16
+ (function() {
17
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
18
+ dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
19
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
20
+ })();
21
+ %noscript Please enable JavaScript to view the #{link_to 'http://disqus.com/?ref_noscript', 'comments powered by Disqus.' }
22
+ = link_to 'http://disqus.com', :class => 'dsq-brlink' do
23
+ blog comments powered by <span class="logo-disqus">Disqus</span>
@@ -0,0 +1,4 @@
1
+ %h2=params[:tag].humanize
2
+ #posts
3
+ %ul.posts-stream
4
+ =render :partial => "atreides/posts/list"
@@ -0,0 +1 @@
1
+ $("#more_posts_btn").html("#{escape_javascript(render(:partial => "atreides/posts/list"))}")
@@ -0,0 +1,62 @@
1
+ - self.extend Atreides::ApplicationHelper
2
+ - @show_as_dash ||= false
3
+ !!!
4
+ %html
5
+ %head
6
+ %meta{"http-equiv"=>"Content-type", "content"=>"text/html; charset=utf-8"}
7
+ %title #{Settings.app_name}: #{ttt :'.admin_title'}
8
+ = yield :pre_head
9
+ = javascript_include_tag 'atreides/admin'
10
+ = stylesheet_link_tag 'atreides/admin'
11
+ = csrf_meta_tag
12
+ = yield :head
13
+ %body
14
+ .container
15
+ #header
16
+ #nav
17
+ - if current_user
18
+ %ul
19
+ %li.nav-dashboard= link_to_unless_current ttt(:'.dashboard'), admin_path
20
+ %li.nav-archives= link_to_unless_current ttt(:'.archives'), admin_posts_path
21
+ %li.nav-users= link_to_unless_current ttt(:'.users'), admin_users_path
22
+ %li.nav-github= link_to_unless_current ttt(:'.github'), admin_github_path
23
+ %li.nav-logout= link_to_unless_current ttt(:'.logout'), destroy_user_session_path
24
+ %li.nav-search
25
+ = semantic_form_for Atreides::Post.new, :url => admin_search_path, :html => {:method => :get, :class => "auto-hide-text", :id => "admin_search"} do |f|
26
+ = link_to_function image_tag("atreides/admin/search_icon.png"), ''
27
+ =text_field_tag "search", (params[:search] || ttt(:'.search'))
28
+ - if Atreides::Site.count > 1
29
+ %li.nav-site
30
+ #site_selector
31
+ %label{:for => "site"}
32
+ Site
33
+ .sites
34
+ %ol
35
+ %li
36
+ %span=@current_site.name
37
+ - Atreides::Site.all.each do |s|
38
+ - next if s==@current_site
39
+ %li
40
+ = link_to s.name, admin_switch_site_path(:site => s.name)
41
+ %span
42
+ #{@current_site.name}
43
+
44
+ %h1= link_to_unless_current "atreides", admin_path
45
+
46
+ #body{:class => @show_as_dash ? "dashboard" : ""}
47
+ = image_tag "atreides/admin/content_top_edit_form.png", :id => "content_top_edit_form"
48
+ #content{:class => content_for?(:sidebar) ? "span-17" : "span-23 last"}
49
+ #flash_messages= raw(flash_messages)
50
+ = yield
51
+
52
+ / Show Sidebar if there is something to include
53
+ - if content_for?(:sidebar)
54
+ #sidebar{:class => "span-6 last"}
55
+ = yield :sidebar
56
+
57
+ .clear
58
+
59
+ #footer
60
+ / Yield js if there is any
61
+ - if content_for?(:js)
62
+ = yield :js
@@ -0,0 +1,37 @@
1
+ - self.extend Atreides::ApplicationHelper
2
+ !!!
3
+ %html
4
+ %head
5
+ %meta{"http-equiv"=>"Content-type", "content"=>"text/html; charset=utf-8"}
6
+ %title #{Settings.app_name}#{": #{@page_title}" if @page_title}
7
+ = csrf_meta_tag
8
+ = javascript_include_tag 'atreides/public'
9
+ = stylesheet_link_tag 'atreides/public'
10
+ = yield :head
11
+ %body
12
+ .container
13
+ #header
14
+ #nav
15
+ #date=raw Time.zone.now.strftime("<strong>%A</strong>, %B %d, %Y")
16
+ %ul
17
+ %li.home=link_to_unless_current "Home", root_path
18
+ - if defined?(Settings.common_tags)
19
+ %li.diary=link_to_unless_current "Diary", tagged_posts_path(Settings.common_tags.first)
20
+
21
+ #body.clear
22
+ #flash_messages= flash_messages
23
+
24
+ = yield
25
+
26
+ #footer
27
+
28
+ / Google analytics
29
+ %script{ :type => "text/javascript" }
30
+ var _gaq = _gaq || [];
31
+ _gaq.push(['_setAccount', '#{Settings.ganalytics.code}']);
32
+ _gaq.push(['_trackPageview']);
33
+ (function() {
34
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
35
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
36
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
37
+ })();
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Atreides</title>
5
+ <%= stylesheet_link_tag "atreides/application", :media => "all" %>
6
+ <%= javascript_include_tag "atreides/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,39 @@
1
+ !!!
2
+ %html{:prefix => "og: http://ogp.me/ns#", :xmlns => "http://www.w3.org/1999/xhtml", "xmlns:og" => "http://ogp.me/ns#", "xmlns:fb" => "http://www.facebook.com/2008/fbml"}
3
+ %head
4
+ %meta{"http-equiv"=>"Content-type", "content"=>"text/html; charset=utf-8"}
5
+ %title #{Settings.app_name}#{": #{@page_title}" if @page_title}
6
+ = facebook_meta_tags
7
+ = csrf_meta_tag
8
+ = raw analytical.head_prepend_javascript
9
+ = auto_discovery_link_tag :rss, feeds_path(:format => "rss")
10
+ = javascript_include_tag 'atreides/public'
11
+ = stylesheet_link_tag 'atreides/public'
12
+ = yield :head
13
+ = raw analytical.head_append_javascript
14
+ %body
15
+ = raw analytical.body_prepend_javascript
16
+ .container
17
+ #header
18
+ #search_form
19
+ = semantic_form_for(Atreides::Post.new, :url => search_path, :html => { :method => :get, :class => "auto-hide-text"}) do |f|
20
+ =text_field_tag ttc('layouts.public.search'), (params[:search] || ttc('layouts.public.search')), :class => "text"
21
+ =submit_tag ttc('layouts.public.go')
22
+
23
+ %h1{:id => 'logo'}=link_to Settings.app_name, root_path
24
+
25
+ #nav
26
+ #date=raw Time.zone.now.strftime("<strong>%A</strong>, %B %d, %Y")
27
+ %ul
28
+ %li.home=link_to_unless_current ttc('layouts.public.home'), root_path
29
+ - if defined?(Settings.common_tags)
30
+ %li.diary=link_to_unless_current ttc('layouts.public.diary'), tagged_posts_path(Settings.common_tags.first)
31
+
32
+ #body.clear
33
+ = raw(flash_messages)
34
+
35
+ = yield
36
+
37
+ #footer
38
+
39
+ = raw analytical.body_append_javascript
@@ -0,0 +1,11 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} --strict --tags ~@wip"
5
+ %>
6
+ html: --format html --strict --out tmp/cucumber/index.html features
7
+ default: <%= std_opts %> features
8
+ wip: --tags @wip:3 --wip features
9
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
10
+ autotest: --color
11
+ autotest-all: --color
@@ -0,0 +1,236 @@
1
+ en:
2
+ model:
3
+ states:
4
+ drafted: save as a draft
5
+ publish_now: publish now
6
+ published_at: publish on date
7
+
8
+ atreides:
9
+
10
+ layouts:
11
+ public:
12
+ go: Go!>>
13
+ home: Home
14
+ search: search
15
+ admin:
16
+ admin_title: admin
17
+ archives: archives
18
+ dashboard: dashboard
19
+ logout: logout
20
+ search: search
21
+ users: users
22
+ github: issues
23
+
24
+ atreides:
25
+ home:
26
+ index:
27
+ diary: Diary
28
+ posts:
29
+ show:
30
+ arrow_previous: < previous
31
+ arrow_next: next >
32
+ admin_home:
33
+ index:
34
+ x_drafts:
35
+ one: 1 draft
36
+ other: "%{count} drafts"
37
+ zero: no draft
38
+ x_posts:
39
+ one: 1 post
40
+ other: "%{count} posts"
41
+ zero: 0 post
42
+ setup:
43
+ email: email
44
+ firstname: first name
45
+ lastname: last name
46
+ password: password
47
+ password_confirmation: confirmation
48
+ create: create
49
+ analytics:
50
+ fb_page_likes: "Facebook likes"
51
+ fb_page_total_likes: "Total Facebook likes"
52
+ fb_page_total_views: "Total Facebook page views"
53
+ fb_page_views: "Facebook page views"
54
+ top_landing_pages: top landing pages
55
+ top_referrers: top referrers
56
+ tweet_exposure: tweet exposure
57
+ tweet_reach: tweet reach
58
+ tweets: tweets
59
+ visitors: visitors
60
+ search:
61
+ no_results_found: No results found
62
+ switch_site:
63
+ site_changed: "Site changed to %{current_site}!"
64
+
65
+ admin:
66
+ common:
67
+ search_form:
68
+ reset: reset
69
+
70
+ atreides:
71
+ comments:
72
+ index:
73
+ comments: comments
74
+ approve: approve
75
+ 'mark as spam': mark as spam
76
+ delete: delete
77
+ line:
78
+ 'mark spam': mark as spam
79
+ 'show comments only from this thread': show comments only from this thread
80
+ 'this comment is': this comment is
81
+ 'add commenter to': "add commenter to %{list}"
82
+ 'all comments from': "all comments from"
83
+ 'this thread': this thread
84
+ see_also: See other comments from
85
+ approved: approved
86
+ approve: approve
87
+ context: context
88
+ delete: delete
89
+ reply: reply
90
+ edit: edit
91
+ find: find
92
+ sidebar:
93
+ filter: filter
94
+ approved: approved
95
+ unapproved: unapproved
96
+ flagged: flagged
97
+ spam: spam
98
+ deleted: deleted
99
+ submit: submit
100
+
101
+ features:
102
+ index:
103
+ drafted: Drafted
104
+ drag_and_drop_featured_items_to_change_their_display_order: Drag and drop featured items to change their display order.
105
+ published: Published
106
+ queued: queued
107
+ x_features:
108
+ one: 1 feature
109
+ other: "%{count} features"
110
+ zero: no feature
111
+ form:
112
+ caption: caption
113
+ choose_a_post: choose a post
114
+ existing_post: existing post
115
+ location: location
116
+ photo: Photo
117
+ url: URL
118
+ pages:
119
+ form:
120
+ add_inline_photo: "add a photo"
121
+ publish_on: "published on"
122
+ parent: parent
123
+ tags: tags
124
+ custom_url: "custom URL"
125
+ leave_blank_to_create_automatically: "leave blank to set automatically"
126
+ index:
127
+ drafts: drafts
128
+ published: published
129
+ form:
130
+ add_inline_photo: + insert photo
131
+ custom_url: Custom URL
132
+ leave_blank_to_create_automatically: Leave blank to create automatically
133
+ parent: Parent
134
+ publish_on: Publish on
135
+ tags: Tags
136
+ posts:
137
+ index:
138
+ drafts: drafts
139
+ published: published
140
+ queued: queued
141
+ x_posts:
142
+ one: 1 post
143
+ other: "%{count} posts"
144
+ zero: 0 post
145
+ post:
146
+ add_inline_photo: + insert photo
147
+ form_sidebar:
148
+ cross_posting: cross posting
149
+ crosspost_facebook: Post to Facebook
150
+ crosspost_twitter: Post to Twitter
151
+ crosspost_queued_twitter: In Twitter post queue
152
+ crosspost_queued_facebook: In Facebook post queue
153
+ custom_url: custom URL
154
+ tags_help: "Split tags with a comma (',')"
155
+ leave_blank_to_create_automatically_from_the_title: Leave blank to create automatically from the title
156
+ message: message
157
+ published_on: published on
158
+ tags: Tags
159
+ content_parts:
160
+ text:
161
+ add_inline_photo: + insert photo
162
+ photos:
163
+ gallery_display: Gallery Display
164
+ show_photos_as_a_slideshow_gallery_or_stacked_above_each_other: "Show photos as a slideshow gallery or stacked above each other."
165
+ upload_hint: Upload, then reorder and caption photos
166
+ videos:
167
+ paste_in_a_URL_to_a_vimeo_or_youtube_video: Paste in a URL to a vimeo or youtube video
168
+ reorder_and_caption_videos: Reorder and caption videos
169
+ video_url: Video Url
170
+ save: save
171
+ users:
172
+ form:
173
+ admin: admin
174
+ editor: editor
175
+ email: email
176
+ firstname: first name
177
+ lastname: last name
178
+ password: password
179
+ password_confirmation: password confirmation
180
+ writer: writer
181
+ sessions:
182
+ new:
183
+ please_login: Please login
184
+ archives: archives
185
+ are_you_sure: Are you absolutely sure?
186
+ back: back
187
+ body: body
188
+ cancel: cancel
189
+ comments: comments
190
+ delete: delete
191
+ edit: edit
192
+ edit_page: edit page
193
+ edit_photos: edit photos
194
+ edit_post: edit post
195
+ edit_feature: edit feature
196
+ edit_video: edit video
197
+ update_page: edit page
198
+ update_post: edit post
199
+ update_feature: edit feature
200
+ update_photos: edit photos
201
+ update_video: edit video
202
+ email: email
203
+ features: features
204
+ name: name
205
+ new: new
206
+ new_admin: new admin
207
+ new_feature: new feature
208
+ new_page: new page
209
+ new_post: new post
210
+ new_photos: new photos
211
+ new_post: new post
212
+ new_user: new user
213
+ new_video: new video
214
+ add_content_parts: Drag & Drop in content parts from the sidebar.
215
+ content_parts_drops: Content Parts
216
+ page: page
217
+ pages: pages
218
+ photos: photos
219
+ post: post
220
+ text: text
221
+ preview: preview
222
+ role: role
223
+ save: save
224
+ state: state
225
+ title: title
226
+ update_feature: update feature
227
+ users: users
228
+ value: value
229
+ video: video
230
+ videos: videos
231
+ view: view
232
+ validation_error_header: "Uh oh. We found some problems with your %{model}..."
233
+ validation_error_message: "Please review the following fields:"
234
+ loading_content_part: Loading content part...
235
+ drop_content_part: Drop part here
236
+ drag_drop_contant_parts_hint: Drag and drop onto the post to add new content parts