cortex-reaver 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. data/LICENSE +25 -0
  2. data/README +48 -0
  3. data/bin/console +11 -0
  4. data/bin/cortex_reaver +110 -0
  5. data/bin/import.rb +78 -0
  6. data/lib/cortex_reaver.rb +114 -0
  7. data/lib/cortex_reaver/config.rb +21 -0
  8. data/lib/cortex_reaver/controller/comment.rb +113 -0
  9. data/lib/cortex_reaver/controller/config.rb +14 -0
  10. data/lib/cortex_reaver/controller/journal.rb +40 -0
  11. data/lib/cortex_reaver/controller/main.rb +56 -0
  12. data/lib/cortex_reaver/controller/page.rb +34 -0
  13. data/lib/cortex_reaver/controller/photograph.rb +45 -0
  14. data/lib/cortex_reaver/controller/project.rb +40 -0
  15. data/lib/cortex_reaver/controller/tag.rb +67 -0
  16. data/lib/cortex_reaver/controller/user.rb +71 -0
  17. data/lib/cortex_reaver/helper/activity.rb +9 -0
  18. data/lib/cortex_reaver/helper/attachments.rb +139 -0
  19. data/lib/cortex_reaver/helper/auth.rb +45 -0
  20. data/lib/cortex_reaver/helper/canonical.rb +55 -0
  21. data/lib/cortex_reaver/helper/crud.rb +317 -0
  22. data/lib/cortex_reaver/helper/date.rb +29 -0
  23. data/lib/cortex_reaver/helper/error.rb +14 -0
  24. data/lib/cortex_reaver/helper/feeds.rb +88 -0
  25. data/lib/cortex_reaver/helper/form.rb +114 -0
  26. data/lib/cortex_reaver/helper/navigation.rb +142 -0
  27. data/lib/cortex_reaver/helper/photographs.rb +25 -0
  28. data/lib/cortex_reaver/helper/tags.rb +47 -0
  29. data/lib/cortex_reaver/helper/workflow.rb +27 -0
  30. data/lib/cortex_reaver/migrations/001_users.rb +24 -0
  31. data/lib/cortex_reaver/migrations/002_pages.rb +29 -0
  32. data/lib/cortex_reaver/migrations/003_journals.rb +26 -0
  33. data/lib/cortex_reaver/migrations/004_photographs.rb +24 -0
  34. data/lib/cortex_reaver/migrations/005_projects.rb +27 -0
  35. data/lib/cortex_reaver/migrations/006_tags.rb +64 -0
  36. data/lib/cortex_reaver/migrations/007_comments.rb +40 -0
  37. data/lib/cortex_reaver/migrations/008_config.rb +23 -0
  38. data/lib/cortex_reaver/model/comment.rb +109 -0
  39. data/lib/cortex_reaver/model/journal.rb +53 -0
  40. data/lib/cortex_reaver/model/page.rb +87 -0
  41. data/lib/cortex_reaver/model/photograph.rb +133 -0
  42. data/lib/cortex_reaver/model/project.rb +49 -0
  43. data/lib/cortex_reaver/model/tag.rb +72 -0
  44. data/lib/cortex_reaver/model/user.rb +147 -0
  45. data/lib/cortex_reaver/public/css/admin.css +45 -0
  46. data/lib/cortex_reaver/public/css/custom.css +0 -0
  47. data/lib/cortex_reaver/public/css/form.css +51 -0
  48. data/lib/cortex_reaver/public/css/main.css +325 -0
  49. data/lib/cortex_reaver/public/css/photo.css +113 -0
  50. data/lib/cortex_reaver/public/css/ramaze_error.css +90 -0
  51. data/lib/cortex_reaver/public/css/text.css +25 -0
  52. data/lib/cortex_reaver/public/dispatch.fcgi +11 -0
  53. data/lib/cortex_reaver/public/images/CortexReaver.gif +0 -0
  54. data/lib/cortex_reaver/public/images/atom-xml-icon.png +0 -0
  55. data/lib/cortex_reaver/public/images/body.png +0 -0
  56. data/lib/cortex_reaver/public/images/border_bottom.png +0 -0
  57. data/lib/cortex_reaver/public/images/border_bottom_left.png +0 -0
  58. data/lib/cortex_reaver/public/images/border_bottom_right.png +0 -0
  59. data/lib/cortex_reaver/public/images/border_left.png +0 -0
  60. data/lib/cortex_reaver/public/images/border_right.png +0 -0
  61. data/lib/cortex_reaver/public/images/border_top.png +0 -0
  62. data/lib/cortex_reaver/public/images/border_top_left.png +0 -0
  63. data/lib/cortex_reaver/public/images/border_top_right.png +0 -0
  64. data/lib/cortex_reaver/public/images/comment.gif +0 -0
  65. data/lib/cortex_reaver/public/images/dark_trans.png +0 -0
  66. data/lib/cortex_reaver/public/images/delete.gif +0 -0
  67. data/lib/cortex_reaver/public/images/edit.gif +0 -0
  68. data/lib/cortex_reaver/public/images/header.png +0 -0
  69. data/lib/cortex_reaver/public/images/header.xcf +0 -0
  70. data/lib/cortex_reaver/public/images/header_background.png +0 -0
  71. data/lib/cortex_reaver/public/images/parent.gif +0 -0
  72. data/lib/cortex_reaver/public/images/rss-xml-icon.png +0 -0
  73. data/lib/cortex_reaver/public/images/sections.png +0 -0
  74. data/lib/cortex_reaver/public/images/sections_highlight.png +0 -0
  75. data/lib/cortex_reaver/public/js/admin.js +36 -0
  76. data/lib/cortex_reaver/public/js/cookie.js +27 -0
  77. data/lib/cortex_reaver/public/js/jquery.js +32 -0
  78. data/lib/cortex_reaver/public/js/photo.js +33 -0
  79. data/lib/cortex_reaver/snippets/array.rb +7 -0
  80. data/lib/cortex_reaver/snippets/ramaze/dispatcher/file.rb +37 -0
  81. data/lib/cortex_reaver/support/attachments.rb +235 -0
  82. data/lib/cortex_reaver/support/cached_rendering.rb +79 -0
  83. data/lib/cortex_reaver/support/canonical.rb +107 -0
  84. data/lib/cortex_reaver/support/comments.rb +69 -0
  85. data/lib/cortex_reaver/support/pagination.rb +38 -0
  86. data/lib/cortex_reaver/support/renderer.rb +196 -0
  87. data/lib/cortex_reaver/support/sequenceable.rb +248 -0
  88. data/lib/cortex_reaver/support/tags.rb +108 -0
  89. data/lib/cortex_reaver/support/timestamps.rb +33 -0
  90. data/lib/cortex_reaver/version.rb +8 -0
  91. data/lib/cortex_reaver/view/adminbox.rhtml +56 -0
  92. data/lib/cortex_reaver/view/blank_layout.rhtml +46 -0
  93. data/lib/cortex_reaver/view/comments/comment.rhtml +34 -0
  94. data/lib/cortex_reaver/view/comments/form.rhtml +25 -0
  95. data/lib/cortex_reaver/view/comments/list.rhtml +5 -0
  96. data/lib/cortex_reaver/view/comments/post_form.rhtml +36 -0
  97. data/lib/cortex_reaver/view/config/form.rhtml +10 -0
  98. data/lib/cortex_reaver/view/error.rhtml +72 -0
  99. data/lib/cortex_reaver/view/journals/form.rhtml +12 -0
  100. data/lib/cortex_reaver/view/journals/journal.rhtml +39 -0
  101. data/lib/cortex_reaver/view/journals/list.rhtml +33 -0
  102. data/lib/cortex_reaver/view/journals/short.rhtml +3 -0
  103. data/lib/cortex_reaver/view/journals/show.rhtml +5 -0
  104. data/lib/cortex_reaver/view/pages/form.rhtml +12 -0
  105. data/lib/cortex_reaver/view/pages/list.rhtml +26 -0
  106. data/lib/cortex_reaver/view/pages/show.rhtml +12 -0
  107. data/lib/cortex_reaver/view/photographs/atom_fragment.rhtml +82 -0
  108. data/lib/cortex_reaver/view/photographs/form.rhtml +19 -0
  109. data/lib/cortex_reaver/view/photographs/grid.rhtml +36 -0
  110. data/lib/cortex_reaver/view/photographs/list.rhtml +9 -0
  111. data/lib/cortex_reaver/view/photographs/short.rhtml +3 -0
  112. data/lib/cortex_reaver/view/photographs/show.rhtml +114 -0
  113. data/lib/cortex_reaver/view/photographs/sidebar.rhtml +7 -0
  114. data/lib/cortex_reaver/view/projects/form.rhtml +13 -0
  115. data/lib/cortex_reaver/view/projects/list.rhtml +27 -0
  116. data/lib/cortex_reaver/view/projects/show.rhtml +38 -0
  117. data/lib/cortex_reaver/view/tags/form.rhtml +9 -0
  118. data/lib/cortex_reaver/view/tags/list.rhtml +28 -0
  119. data/lib/cortex_reaver/view/tags/show.rhtml +51 -0
  120. data/lib/cortex_reaver/view/text_layout.rhtml +78 -0
  121. data/lib/cortex_reaver/view/users/form.rhtml +16 -0
  122. data/lib/cortex_reaver/view/users/list.rhtml +38 -0
  123. data/lib/cortex_reaver/view/users/login.rhtml +13 -0
  124. data/lib/cortex_reaver/view/users/register.rhtml +13 -0
  125. data/lib/cortex_reaver/view/users/show.rhtml +37 -0
  126. data/lib/cortex_reaver/view/users/user.rhtml +35 -0
  127. data/lib/proto/cortex_reaver.yaml +28 -0
  128. metadata +285 -0
@@ -0,0 +1,46 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml">
5
+ <head>
6
+ <title><%=h (@title || CortexReaver.config[:site][:name]) %></title>
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <meta http-equiv="Content-Style-Type" content="text/css" />
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <meta http-equiv="expires" content="0" />
11
+ <meta name="description" content="<%=attr_h CortexReaver.config[:site][:description] %>" />
12
+ <meta name="generator" content="Cortex Reaver <%= CortexReaver::APP_VERSION %>" />
13
+ <meta name="keywords" content="<%= attr_h CortexReaver.config[:site][:keywords] %>" />
14
+ <meta name="author" content="<%= attr_h CortexReaver.config[:site][:author] %>" />
15
+ <meta name="date" content="<%= Time.now.iso8601 %>" />
16
+ <link rel="stylesheet" type="text/css" href="/css/main.css" />
17
+ <link rel="stylesheet" type="text/css" href="/css/admin.css" />
18
+ <link rel="stylesheet" type="text/css" href="/css/photo.css" />
19
+ <link rel="stylesheet" type="text/css" href="/css/text.css" />
20
+ <link rel="stylesheet" type="text/css" href="/css/form.css" />
21
+ <link rel="stylesheet" type="text/css" href="/css/custom.css" />
22
+ <% if defined? feeds %>
23
+ <% feeds.each do |title, feed| %>
24
+ <link rel="alternate" type="application/atom+xml" href="<%= attr_h feed %>" title="<%= attr_h title %>" />
25
+ <% end %>
26
+ <% end %>
27
+ </head>
28
+ <body class="blank">
29
+ <script type="text/javascript" src="/js/jquery.js"></script>
30
+ <script type="text/javascript" defer="defer" src="/js/cookie.js"></script>
31
+ <script type="text/javascript" defer="defer" src="/js/admin.js"></script>
32
+ <script type="text/javascript" src="/js/photo.js"></script>
33
+
34
+ <%= render_template 'adminbox.rhtml' %>
35
+
36
+ <%= flashbox %>
37
+
38
+ <div id="content">
39
+ <%= @content %>
40
+ </div>
41
+
42
+ <div id="colophon">
43
+ Copyright &copy; 2001&mdash;<%= Time.now.strftime('%Y') %> Aphyr
44
+ </div>
45
+ </body>
46
+ </html>
@@ -0,0 +1,34 @@
1
+ <div class="comment text-entry">
2
+ <h2><a id="comment_<%= @comment.id %>" href="<%= @comment.url %>"><%=h @comment.title %></a></h2>
3
+ <div class="byline">
4
+ <span class="written">
5
+ <%= user_link @comment %> on <%= date_line @comment %>
6
+ </span>
7
+ </div>
8
+ <div class="body">
9
+ <%= @comment.body_cache %>
10
+ </div>
11
+ <div class="footer">
12
+ <ul class="actions">
13
+ <li><a href="<%=@comment.url %>_comments">
14
+ <img src="/images/comment.gif" class="icon" alt="comment" />
15
+ <%= @comment.comment_count %> <%= @comment.comment_count == 1 ? 'comment' : 'comments' %>
16
+ </a></li>
17
+ <% if admin? %>
18
+ <li><a href="/comments/edit/<%= @comment.id %>">
19
+ <img src="/images/edit.gif" class="icon" alt="edit" /> Edit
20
+ </a></li>
21
+ <li>
22
+ <%= A '<img src="/images/delete.gif" class="icon" alt="delete" /> Delete', :href => "/comments/delete/#{@comment.id}", :onclick => "return confirm('Are you sure you wish to delete this comment?');" %></li>
23
+ <% end %>
24
+ </ul>
25
+ </div>
26
+ <% unless @hide_comments %>
27
+ <a id="comment_<%= @comment.id %>_comments" ></a>
28
+ <div class="comments">
29
+ <% @comment.comments_dataset.order(:created_on).all.each do |comment| %>
30
+ <%= render_template '../comments/comment.rhtml', 'comment' => comment %>
31
+ <% end %>
32
+ </div>
33
+ <% end %>
34
+ </div>
@@ -0,0 +1,25 @@
1
+ <div class="post comment-form">
2
+ <a id="post-comment">
3
+ <h2>Edit Comment</h2>
4
+
5
+ <% unless @comment.errors.empty? %>
6
+ <div class="form-errors">
7
+ <ul>
8
+ <% @comment.errors.each do |attribute, error| %>
9
+ <li><%= attribute.to_s.titleize %> <%= error %>.</li>
10
+ <% end %>
11
+ </div>
12
+ <% end %>
13
+
14
+ <%= form_for @comment, Rs(@form_action), [
15
+ :title,
16
+ :name,
17
+ :email,
18
+ :http,
19
+ [:body, {:type => 'textarea'}],
20
+ [:comment_id, {:type => 'hidden'}],
21
+ [:journal_id, {:type => 'hidden'}],
22
+ [:photograph_id, {:type => 'hidden'}],
23
+ [:project_id, {:type => 'hidden'}]
24
+ ] %>
25
+ </div>
@@ -0,0 +1,5 @@
1
+ <div class="comments">
2
+ <% @comments.all.each do |comment| %>
3
+ <%= render_template 'comment.rhtml', 'comment' => comment, 'hide_comments' => true %>
4
+ <% end %>
5
+ </div>
@@ -0,0 +1,36 @@
1
+ <div class="post comment_form">
2
+ <a id="post-comment">
3
+ <h2>Post a Comment</h2>
4
+
5
+ <% unless @new_comment.errors.empty? %>
6
+ <div class="form-errors">
7
+ <ul>
8
+ <% @new_comment.errors.each do |attribute, error| %>
9
+ <li><%= attribute.to_s.titleize %> <%= error %>.</li>
10
+ <% end %>
11
+ </div>
12
+ <% end %>
13
+
14
+ <% if @new_comment.user %>
15
+ <%= form_for @new_comment, R(CortexReaver::CommentController, :post), [
16
+ :title,
17
+ [:body, {:type => 'textarea'}],
18
+ [:comment_id, {:type => 'hidden'}],
19
+ [:journal_id, {:type => 'hidden'}],
20
+ [:photograph_id, {:type => 'hidden'}],
21
+ [:project_id, {:type => 'hidden'}]
22
+ ] %>
23
+ <% else %>
24
+ <%= form_for @new_comment, R(CortexReaver::CommentController, :post), [
25
+ :title,
26
+ :name,
27
+ :email,
28
+ :http,
29
+ [:body, {:type => 'textarea'}],
30
+ [:comment_id, {:type => 'hidden'}],
31
+ [:journal_id, {:type => 'hidden'}],
32
+ [:photograph_id, {:type => 'hidden'}],
33
+ [:project_id, {:type => 'hidden'}]
34
+ ] %>
35
+ <% end %>
36
+ </div>
@@ -0,0 +1,10 @@
1
+ <h2>Edit Config</h2>
2
+
3
+ <%= errors_on @config %>
4
+
5
+ <%= form_for(@config, Rs(@form_action), [
6
+ [:name],
7
+ [:author],
8
+ [:keywords],
9
+ [:description, {:type => 'textarea'}]
10
+ ]) %>
@@ -0,0 +1,72 @@
1
+ <% if admin? %>
2
+ <link rel="stylesheet" href="/css/ramaze_error.css" />
3
+ <script type="text/javascript" src="/js/jquery.js"></script>
4
+
5
+ <p>The backtrace gives filenames and line numbers for all parts of the call stack.<br />
6
+ Click on any of them to view the surrounding source code.</p>
7
+
8
+ <h2><%=h @title %></h2>
9
+
10
+ <p>Current controller: <%= h Controller.current %></p>
11
+
12
+ <table class="main">
13
+ <tr class="head">
14
+ <td>File</td><td>Line</td><td>Method</td>
15
+ </tr>
16
+ <% @backtrace.each do |lines, hash, file, lineno, meth| %>
17
+ <tr class="line" id="<%= attr_h hash %>">
18
+ <td><%= h file %></td><td class="lineno"><%= lineno %></td><td><pre><%= h meth %></pre></td>
19
+ </tr>
20
+ <tr id="source_<%= attr_h hash %>" style="display:none;">
21
+ <td colspan="3">
22
+ <div class="source">
23
+ <table style="width:100%;">
24
+ <tr>
25
+ <td class="editor" colspan="2">
26
+ <%=h @editor %> <%= h file %> +<%= lineno %>
27
+ <div style="float: right">
28
+ <a href="txmt://open?url=file://<%=attr_h file %>&line=<%= lineno %>">open in textmate</a>
29
+ </div>
30
+ </td>
31
+ </tr>
32
+ <% lines.each do |llineno, lcode, lcurrent| %>
33
+ <tr class="source" <%= 'style="background:#faa;"' if lcurrent %>>
34
+ <td class="lineno"><%= llineno %></td>
35
+ <td class="code"><pre><%=h lcode.to_s.rstrip %></pre></td>
36
+ </tr>
37
+ <% end %>
38
+ </table>
39
+ </div>
40
+ </td>
41
+ </tr>
42
+ <% end %>
43
+ </table>
44
+
45
+ <%
46
+ { 'Session' => Thread.current[:session],
47
+ 'Request' => Thread.current[:request],
48
+ 'Response' => Thread.current[:response],
49
+ 'Global' => Global,
50
+ }.each do |title, content|
51
+ hash = [title, content].object_id.abs
52
+ %>
53
+ <div class="additional">
54
+ <h3 id="<%=hash%>"><%= h title %></h3>
55
+ <pre style="display:none" id="is_<%= hash %>"><%= CGI.escapeHTML(content.pretty_inspect) %></pre>
56
+ </div>
57
+ <% end %>
58
+
59
+ <script type="text/javascript">
60
+ $("tr.line").click(function(){
61
+ $("tr#source_"+this.id).toggle()
62
+ });
63
+
64
+ $("div.additional > h3").click(function(){
65
+ $("pre#is_"+this.id).toggle()
66
+ });
67
+ </script>
68
+ <% else %>
69
+ <% @title = "Cortex Reaver Error" %>
70
+ <h2><%=h @title %></h2>
71
+ <p>Cortex Reaver doesn't know how to deal with your request. For now.</p>
72
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <h2><%= @form_action[/\/new$/] ? 'New' : 'Edit' %> Journal</h2>
2
+
3
+ <%= errors_on @journal %>
4
+
5
+ <form class="edit-form" action="<%= Rs(@form_action) %>" method="post" enctype="multipart/form-data">
6
+ <%= form_p :title, :model => @journal %>
7
+ <%= live_name_field @journal %>
8
+ <%= live_tags_field @journal %>
9
+ <%= form_p :body, :model => @journal, :type => 'textarea' %>
10
+ <%= attachment_form @journal %>
11
+ <input type="submit" name="submit" />
12
+ </form>
@@ -0,0 +1,39 @@
1
+ <div class="journal text-entry">
2
+ <h2><a id="journal_<%= @journal.name %>" href="<%= @journal.url %>"><%=h @journal.title %></a></h2>
3
+ <div class="byline">
4
+ <span class="written">
5
+ <%= user_link @journal.user %> on <%= date_line @journal %>
6
+ </span>
7
+ <%= tags_on @journal %>
8
+ </div>
9
+ <div class="body">
10
+ <%= @journal.body_cache %>
11
+ </div>
12
+ <div class="footer">
13
+ <ul class="actions">
14
+ <li><a href="<%= @journal.url %>#comments">
15
+ <img src="/images/comment.gif" class="icon" alt="comment" />
16
+ <%= @journal.comment_count %> <%= @journal.comment_count == 1 ? 'comment' : 'comments' %>
17
+ </a></li>
18
+ <% if admin? %>
19
+ <li><a class="edit-link" href="/journals/edit/<%= @journal.name %>">
20
+ <img src="/images/edit.gif" class="icon" alt="edit" /> Edit
21
+ </a></li>
22
+ <li >
23
+ <%= A '<img src="/images/delete.gif" class="icon" alt="delete" /> Delete', :href => "/journals/delete/#{@journal.name}", :onclick => "return confirm('Are you sure you want to delete this journal?');" %>
24
+ </li>
25
+ <% end %>
26
+ </ul>
27
+ </div>
28
+
29
+ <% unless @hide_comments %>
30
+ <div class="comments">
31
+ <a id="comments" />
32
+ <% @journal.comments_dataset.order(:created_on).all.each do |comment| %>
33
+ <%= render_template '../comments/comment.rhtml', 'comment' => comment %>
34
+ <% end %>
35
+ </div>
36
+
37
+ <%= render_template '../comments/post_form.rhtml', 'comment' => @new_comment %>
38
+ <% end %>
39
+ </div>
@@ -0,0 +1,33 @@
1
+ <% if @page %>
2
+ <%= page_nav CortexReaver::Journal, @page %>
3
+ <% end %>
4
+
5
+ <% if @page %>
6
+ <div class="table-of-contents">
7
+ <h2>On this page</h2>
8
+ <table>
9
+ <tbody>
10
+ <% @journals.all.each do |journal| %>
11
+ <tr>
12
+ <td class="date"><%= journal.created_on.strftime('%e %B %Y') %></td>
13
+ <td class="title"><a href="#journal_<%= attr_h journal.name %>"><%=h journal.title %></a><td>
14
+ </tr>
15
+ <% end %>
16
+ </tbody>
17
+ </table>
18
+ </div>
19
+ <% end %>
20
+
21
+ <div class="journals">
22
+ <% @journals.all.each do |journal| %>
23
+ <%= render_template Ramaze::Global.view_root + '/journals/journal.rhtml', 'journal' => journal, 'hide_comments' => true %>
24
+ <% end %>
25
+
26
+ <% if @page.nil? and @journals.size > 0 and @journals.all.last.previous %>
27
+ <p><a href="<%= @journals.all.last.previous.absolute_window_url %>">Continue reading on journal page <%= @journals.all.last.previous.absolute_window_index %></a></p>
28
+ <% end %>
29
+ </div>
30
+
31
+ <% if @page %>
32
+ <%= page_nav CortexReaver::Journal, @page %>
33
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <div class="short journal">
2
+ (<%= @journal.created_on.strftime('%e/%M/%Y') %>) <a href="<%= @journal.url %>"><%=h @journal.title %></a>
3
+ </div>
@@ -0,0 +1,5 @@
1
+ <%= model_nav @journal %>
2
+
3
+ <%= render_template 'journal.rhtml', 'journal' => @journal %>
4
+
5
+ <%= model_nav @journal %>
@@ -0,0 +1,12 @@
1
+ <h2><%= @form_action[/\/new$/] ? 'New' : 'Edit' %> Page</h2>
2
+
3
+ <%= errors_on @page %>
4
+
5
+ <form class="edit-form" action="<%= Rs(@form_action) %>" method="post" enctype="multipart/form-data">
6
+ <%= form_p 'title', :model => @page %>
7
+ <%= live_name_field @page %>
8
+ <%= live_tags_field @page %>
9
+ <%= form_p :body, :model => @page, :type => 'textarea' %>
10
+ <%= attachment_form @page %>
11
+ <input type="submit" name="submit" />
12
+ </form>
@@ -0,0 +1,26 @@
1
+ <div class="pages">
2
+ <table>
3
+ <thead>
4
+ <tr>
5
+ <th>Name</th>
6
+ <th>Title</th>
7
+ <% if admin? %>
8
+ <th></th>
9
+ <th></th>
10
+ <% end %>
11
+ </tr>
12
+ </thead>
13
+ <tbody>
14
+ <% @pages.each do |page| %>
15
+ <tr>
16
+ <td><%= A(page.name, :href => page.url) %></td>
17
+ <td><%= page.title %></td>
18
+ <% if admin? %>
19
+ <td><a href="/pages/edit/<%= page.name %>">Edit</a></td>
20
+ <td><%= A 'Delete', :href => "/page/delete/#{page.name}", :onclick => "return confirm('Are you sure you want to delete this page?');" %></td>
21
+ <% end %>
22
+ </tr>
23
+ <% end %>
24
+ </tbody>
25
+ </table>
26
+ </div>
@@ -0,0 +1,12 @@
1
+ <% if admin? %>
2
+ <ul class="actions">
3
+ <li><a href="/pages/edit/<%= @page.name %>">Edit</a></li>
4
+ <li><a href="/pages/delete/<%= @page.name %>">Delete</a></li>
5
+ </ul>
6
+ <% end %>
7
+
8
+ <div class="page" id="page_<%= @page.name %>">
9
+ <div class="body">
10
+ <%= @page.body_cache %>
11
+ </div>
12
+ </div>
@@ -0,0 +1,82 @@
1
+ <table class="photo frame" cellspacing="0" cellpadding="0">
2
+ <tr>
3
+ <td class="border_top_left"></td>
4
+ <td class="border_top"></td>
5
+ <td class="border_top_right"></td>
6
+ </tr>
7
+ <tr>
8
+ <td class="border_left"></td>
9
+ <td id="photograph_<%= @photograph.name %>" class="content">
10
+ <img src="<%= @photograph.full_public_path %>" id="photo" alt="<%= attr_h @photograph.title %>" title="<%= attr_h @photograph.title %>" />
11
+ <h2>
12
+ <% if previous_photo %>
13
+ <%= A('&laquo;', :href => previous_photo.url) %>
14
+ <% end %>
15
+ <%=h @photograph.title %>
16
+ <% if next_photo %>
17
+ <%= A('&raquo;', :href => next_photo.url) %>
18
+ <% end %>
19
+ </h2>
20
+ <div class="byline">
21
+ <div class="description"><%= description_of @photograph %></div>
22
+ <% unless @photograph.tags.empty? %>
23
+ <div class="tags"><%= tags_on @photograph %></div>
24
+ <% end %>
25
+ </div>
26
+ </td>
27
+ <td class="border_right"></td>
28
+ </tr>
29
+ <tr>
30
+ <td class="border_bottom_left"></td>
31
+ <td class="border_bottom"></td>
32
+ <td class="border_bottom_right"></td>
33
+ </tr>
34
+ </table>
35
+
36
+ <% unless @photograph.comments.empty? %>
37
+ <table class="text frame" cellspacing="0" cellpadding="0">
38
+ <tr>
39
+ <td class="border_top_left"></td>
40
+ <td class="border_top"></td>
41
+ <td class="border_top_right"></td>
42
+ </tr>
43
+ <tr>
44
+ <td class="border_left"></td>
45
+ <td class="content">
46
+ <div class="comments">
47
+ <a id="comments"></a>
48
+ <% @photograph.comments.each do |comment| %>
49
+ <%= render_template '../comments/comment.rhtml', 'comment' => comment %>
50
+ <% end %>
51
+ </div>
52
+
53
+ </td>
54
+ <td class="border_right"></td>
55
+ </tr>
56
+ <tr>
57
+ <td class="border_bottom_left"></td>
58
+ <td class="border_bottom"></td>
59
+ <td class="border_bottom_right"></td>
60
+ </tr>
61
+ </table>
62
+ <% end %>
63
+
64
+ <table class="text frame" cellspacing="0" cellpadding="0">
65
+ <tr>
66
+ <td class="border_top_left"></td>
67
+ <td class="border_top"></td>
68
+ <td class="border_top_right"></td>
69
+ </tr>
70
+ <tr>
71
+ <td class="border_left"></td>
72
+ <td class="content">
73
+ <%= render_template '../comments/post_form.rhtml', 'comment' => @new_comment %>
74
+ </td>
75
+ <td class="border_right"></td>
76
+ </tr>
77
+ <tr>
78
+ <td class="border_bottom_left"></td>
79
+ <td class="border_bottom"></td>
80
+ <td class="border_bottom_right"></td>
81
+ </tr>
82
+ </table>