enju_message 0.0.3

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 (73) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +36 -0
  4. data/app/controllers/message_requests_controller.rb +62 -0
  5. data/app/controllers/message_templates_controller.rb +18 -0
  6. data/app/controllers/messages_controller.rb +155 -0
  7. data/app/helpers/messages_helper.rb +2 -0
  8. data/app/models/message.rb +86 -0
  9. data/app/models/message_request.rb +87 -0
  10. data/app/models/message_template.rb +42 -0
  11. data/app/views/layouts/messages.html.erb +24 -0
  12. data/app/views/message_requests/edit.html.erb +40 -0
  13. data/app/views/message_requests/index.html.erb +58 -0
  14. data/app/views/message_requests/new.html.erb +40 -0
  15. data/app/views/message_requests/show.html.erb +55 -0
  16. data/app/views/message_templates/_form.html.erb +27 -0
  17. data/app/views/message_templates/edit.html.erb +13 -0
  18. data/app/views/message_templates/index.html.erb +44 -0
  19. data/app/views/message_templates/new.html.erb +12 -0
  20. data/app/views/message_templates/show.html.erb +33 -0
  21. data/app/views/messages/_form.html.erb +37 -0
  22. data/app/views/messages/edit.html.erb +42 -0
  23. data/app/views/messages/index.atom.builder +15 -0
  24. data/app/views/messages/index.html.erb +66 -0
  25. data/app/views/messages/index.rss.builder +41 -0
  26. data/app/views/messages/new.html.erb +43 -0
  27. data/app/views/messages/show.html.erb +48 -0
  28. data/app/views/notifier/message_notification.en.text.erb +14 -0
  29. data/app/views/notifier/message_notification.ja.text.erb +14 -0
  30. data/config/routes.rb +9 -0
  31. data/db/fixtures/message_templates.yml +54 -0
  32. data/db/migrate/149_create_message_templates.rb +18 -0
  33. data/db/migrate/154_create_messages.rb +24 -0
  34. data/db/migrate/20080819181903_create_message_requests.rb +20 -0
  35. data/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +11 -0
  36. data/lib/enju_message/engine.rb +17 -0
  37. data/lib/enju_message/version.rb +3 -0
  38. data/lib/enju_message.rb +4 -0
  39. data/lib/tasks/enju_message_tasks.rake +5 -0
  40. data/test/dummy/Rakefile +7 -0
  41. data/test/dummy/app/assets/javascripts/application.js +9 -0
  42. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  43. data/test/dummy/app/controllers/application_controller.rb +3 -0
  44. data/test/dummy/app/helpers/application_helper.rb +2 -0
  45. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  46. data/test/dummy/config/application.rb +45 -0
  47. data/test/dummy/config/boot.rb +10 -0
  48. data/test/dummy/config/database.yml +25 -0
  49. data/test/dummy/config/environment.rb +5 -0
  50. data/test/dummy/config/environments/development.rb +30 -0
  51. data/test/dummy/config/environments/production.rb +60 -0
  52. data/test/dummy/config/environments/test.rb +39 -0
  53. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  54. data/test/dummy/config/initializers/inflections.rb +10 -0
  55. data/test/dummy/config/initializers/mime_types.rb +5 -0
  56. data/test/dummy/config/initializers/secret_token.rb +7 -0
  57. data/test/dummy/config/initializers/session_store.rb +8 -0
  58. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  59. data/test/dummy/config/locales/en.yml +5 -0
  60. data/test/dummy/config/routes.rb +58 -0
  61. data/test/dummy/config.ru +4 -0
  62. data/test/dummy/db/test.sqlite3 +0 -0
  63. data/test/dummy/log/development.log +0 -0
  64. data/test/dummy/log/test.log +3 -0
  65. data/test/dummy/public/404.html +26 -0
  66. data/test/dummy/public/422.html +26 -0
  67. data/test/dummy/public/500.html +26 -0
  68. data/test/dummy/public/favicon.ico +0 -0
  69. data/test/dummy/script/rails +6 -0
  70. data/test/enju_message_test.rb +7 -0
  71. data/test/integration/navigation_test.rb +10 -0
  72. data/test/test_helper.rb +10 -0
  73. metadata +337 -0
@@ -0,0 +1,55 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.showing', :model => t('activerecord.models.message_request')) -%></h1>
3
+ <div id="content_list">
4
+ <p id="notice"><%= notice %></p>
5
+
6
+ <p>
7
+ <strong><%= t('message.sender') -%>:</strong>
8
+ <%= link_to @message_request.sender.username, @message_request.sender -%>
9
+ </p>
10
+
11
+ <p>
12
+ <strong><%= t('message.receiver') -%>:</strong>
13
+ <%= link_to @message_request.receiver.username, @message_request.receiver -%>
14
+ </p>
15
+
16
+ <p>
17
+ <strong><%= t('page.created_at') -%>:</strong>
18
+ <%= l(@message_request.created_at) -%>
19
+ </p>
20
+
21
+ <p>
22
+ <strong><%= t('page.updated_at') -%>:</strong>
23
+ <%= l(@message_request.updated_at) -%>
24
+ </p>
25
+
26
+ <p>
27
+ <strong><%= t('activerecord.attributes.message_request.sent_at') -%>:</strong>
28
+ <%= l(@message_request.sent_at) if @message_request.sent_at -%>
29
+ </p>
30
+
31
+ <p>
32
+ <strong><%= t('activerecord.models.message_template') -%>:</strong>
33
+ <%= link_to @message_request.message_template.status, message_template_path(@message_request.message_template) -%>
34
+ </p>
35
+
36
+ <p>
37
+ <strong><%= t('activerecord.attributes.message.subject') -%>:</strong>
38
+ <%= @message_request.subject -%>
39
+ </p>
40
+
41
+ <div>
42
+ <strong><%= t('activerecord.attributes.message.body') -%>:</strong>
43
+ <%= raw auto_link(simple_format(h(@message_request.body))) -%>
44
+ </div>
45
+
46
+ </div>
47
+ </div>
48
+
49
+ <div id="submenu" class="ui-corner-all">
50
+ <ul>
51
+ <li><%= link_to t('page.edit'), edit_message_request_path(@message_request) -%></li>
52
+ <li><%= back_to_index(flash[:page_info]) -%></li>
53
+ <li><%= link_to t('message.send'), new_message_path(:message_request_id => @message_request.id) -%></li>
54
+ </ul>
55
+ </div>
@@ -0,0 +1,27 @@
1
+ <%= simple_form_for(@message_template, :validate => true) do |f| %>
2
+ <%= f.error_notification %>
3
+
4
+ <div class="field">
5
+ <%= f.label :status %><br />
6
+ <%= f.text_field :status, :class => 'resource_title' %>
7
+ </div>
8
+
9
+ <div class="field">
10
+ <%= f.label :locale %><br />
11
+ <%= f.select(:locale, @available_languages.collect{|language| [language.display_name.localize, language.iso_639_1]}) %>
12
+ </div>
13
+
14
+ <div class="field">
15
+ <%= f.label :title %><br />
16
+ <%= f.text_field :title, :class => 'resource_title' %>
17
+ </div>
18
+
19
+ <div class="field">
20
+ <%= f.label :body %><br />
21
+ <%= f.text_area :body, :class => 'resource_textarea' %>
22
+ </div>
23
+
24
+ <div class="actions">
25
+ <%= f.submit %>
26
+ </div>
27
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.editing', :model => t('activerecord.models.message_template')) -%></h1>
3
+ <div id="content_list">
4
+ <%= render 'form' %>
5
+ </div>
6
+ </div>
7
+
8
+ <div id="submenu" class="ui-corner-all">
9
+ <ul>
10
+ <li><%= link_to t('page.show'), @message_template -%></li>
11
+ <li><%= link_to t('page.back'), message_templates_path -%></li>
12
+ </ul>
13
+ </div>
@@ -0,0 +1,44 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.listing', :model => t('activerecord.models.message_template')) -%></h1>
3
+ <div id="content_list">
4
+
5
+ <table class="index">
6
+ <tr>
7
+ <th id="position"></th>
8
+ <th><%= t('activerecord.attributes.message_template.status') -%></th>
9
+ <th><%= t('activerecord.attributes.message_template.locale') -%></th>
10
+ <th><%= t('activerecord.attributes.message_template.title') -%></th>
11
+ <th></th>
12
+ </tr>
13
+
14
+ <%- @message_templates.each do |message_template| -%>
15
+ <tr class="line<%= cycle("0", "1") -%>">
16
+ <td>
17
+ <%- if can? :update, message_template -%>
18
+ <%= move_position(message_template) -%>
19
+ <%- end -%>
20
+ </td>
21
+ <td><%= link_to message_template.status, message_template -%></td>
22
+ <td><%= message_template.locale -%></td>
23
+ <td><%= message_template.title -%></td>
24
+ <td>
25
+ <%- if can? :update, message_template -%>
26
+ <%= link_to t('page.edit'), edit_message_template_path(message_template) -%>
27
+ <% end %>
28
+ <%- if can? :destroy, message_template -%>
29
+ <%= link_to t('page.destroy'), message_template, :confirm => t('page.are_you_sure'), :method => :delete -%>
30
+ <%- end -%>
31
+ </td>
32
+ </tr>
33
+ <%- end -%>
34
+ </table>
35
+
36
+ <%= will_paginate(@message_templates) -%>
37
+ </div>
38
+ </div>
39
+
40
+ <div id="submenu" class="ui-corner-all">
41
+ <ul>
42
+ <li><%= link_to t('page.new', :model => t('activerecord.models.message_template')), new_message_template_path -%></li>
43
+ </ul>
44
+ </div>
@@ -0,0 +1,12 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.new', :model => t('activerecord.models.message_template')) -%></h1>
3
+ <div id="content_list">
4
+ <%= render 'form' %>
5
+ </div>
6
+ </div>
7
+
8
+ <div id="submenu" class="ui-corner-all">
9
+ <ul>
10
+ <li><%= link_to t('page.back'), message_templates_path -%></li>
11
+ </ul>
12
+ </div>
@@ -0,0 +1,33 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.showing', :model => t('activerecord.models.message_template')) -%></h1>
3
+ <div id="content_list">
4
+ <p id="notice"><%= notice %></p>
5
+
6
+ <p>
7
+ <strong><%= t('activerecord.attributes.message_template.status') -%>:</strong>
8
+ <%= @message_template.status -%>
9
+ </p>
10
+
11
+ <p>
12
+ <strong><%= t('activerecord.attributes.message_template.locale') -%>:</strong>
13
+ <%= @message_template.locale -%>
14
+ </p>
15
+
16
+ <p>
17
+ <strong><%= t('activerecord.attributes.message_template.title') -%>:</strong>
18
+ <%= @message_template.title -%>
19
+ </p>
20
+
21
+ <p>
22
+ <strong><%= t('activerecord.attributes.message_template.body') -%>:</strong><br />
23
+ <%= @message_template.body.gsub("\n", '<br />') -%>
24
+ </p>
25
+ </div>
26
+ </div>
27
+
28
+ <div id="submenu" class="ui-corner-all">
29
+ <ul>
30
+ <li><%= link_to t('page.edit'), edit_message_template_path(@message_template) -%></li>
31
+ <li><%= back_to_index(flash[:page_info]) -%></li>
32
+ </ul>
33
+ </div>
@@ -0,0 +1,37 @@
1
+ <%= form_for(@message) do |f| %>
2
+ <% if @message.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(@message.errors.count, "error") %> prohibited this message from being saved:</h2>
5
+
6
+ <ul>
7
+ <% @message.errors.full_messages.each do |msg| %>
8
+ <li><%= msg %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="field">
15
+ <%= f.label :sender_id %><br />
16
+ <%= f.text_field :sender_id %>
17
+ </div>
18
+ <div class="field">
19
+ <%= f.label :receiver_id %><br />
20
+ <%= f.text_field :receiver_id %>
21
+ </div>
22
+ <div class="field">
23
+ <%= f.label :state %><br />
24
+ <%= f.text_field :state %>
25
+ </div>
26
+ <div class="field">
27
+ <%= f.label :subject %><br />
28
+ <%= f.text_field :subject %>
29
+ </div>
30
+ <div class="field">
31
+ <%= f.label :body %><br />
32
+ <%= f.text_area :body %>
33
+ </div>
34
+ <div class="actions">
35
+ <%= f.submit %>
36
+ </div>
37
+ <% end %>
@@ -0,0 +1,42 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.editing', :model => t('activerecord.models.message')) -%></h1>
3
+ <div id="content_list">
4
+
5
+ <%= form_for(@message) do |f| -%>
6
+ <%= f.error_messages -%>
7
+
8
+ <div class="field">
9
+ <%= f.label t('message.sender') -%><br />
10
+ <%= @message.sender.username -%>
11
+ <%= f.hidden_field :sender_id -%>
12
+ </div>
13
+
14
+ <div class="field">
15
+ <%= f.label t('message.receiver') -%><br />
16
+ <%= f.text_field :recipient, :class => 'resource_title', :value => @message.receiver.username -%>
17
+ </div>
18
+
19
+ <div class="field">
20
+ <%= f.label :subject -%><br />
21
+ <%= f.text_field :subject, :class => 'resource_title' -%>
22
+ </div>
23
+
24
+ <div class="field">
25
+ <%= f.label :body -%><br />
26
+ <%= f.text_area :body, :id => 'message_body' -%>
27
+ </div>
28
+
29
+ <div class="actions">
30
+ <%= f.submit %>
31
+ </div>
32
+ <%- end -%>
33
+
34
+ </div>
35
+ </div>
36
+
37
+ <div id="submenu" class="ui-corner-all">
38
+ <ul>
39
+ <li><%= link_to t('page.show'), @message -%></li>
40
+ <li><%= link_to t('page.listing', :model => t('activerecord.models.message')), messages_path -%></li>
41
+ </ul>
42
+ </div>
@@ -0,0 +1,15 @@
1
+ atom_feed do |feed|
2
+ feed.title "#{@user.username}'s Inbox"
3
+ feed.updated(@messages.first ? @messages.first.created_at : Time.zone.now)
4
+
5
+ @messages.each do |message|
6
+ feed.entry(message, :url => message_url(message)) do |entry|
7
+ entry.title message.subject
8
+ entry.content message.body, :type => 'html'
9
+
10
+ entry.author do |author|
11
+ author.name message.sender.login
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,66 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('activerecord.models.message') -%></h1>
3
+ <div id="content_list">
4
+ <%= form_for :messages, :url => messages_path, :html => {:method => 'get'} do -%>
5
+ <p>
6
+ <%= t('page.search_term') -%>: <%= search_field_tag 'query', h(@query), {:id => 'search_form_top', :class => 'search_form', :placeholder => t('page.search_term')} -%>
7
+ <%= submit_tag t('page.search') -%>
8
+ </p>
9
+ <%- end -%>
10
+
11
+ <%= form_for :message, :url => destroy_selected_messages_path do |form| -%>
12
+ <table class="index">
13
+ <tr>
14
+ <th></th>
15
+ <th><%= t('activerecord.attributes.message.subject') -%></th>
16
+ <th><%= t('activerecord.attributes.message.sender') -%></th>
17
+ <th><%= t('message.sent_at') -%></th>
18
+ </tr>
19
+ <%- @messages.each do |message| -%>
20
+ <tr class="line<%= cycle("0", "1") -%>">
21
+ <td>
22
+ <% if can? :delete, message %>
23
+ <input id="delete_<%=h message.id -%>" name="delete[]" type="checkbox" value="<%=h message.id %>" class="checkbox" />
24
+ <% end %>
25
+ </td>
26
+ <td>
27
+ <% unless message.read? %><strong><% end %>
28
+ <%= link_to message.subject, message -%>
29
+ <% unless message.read? %></strong><% end %>
30
+ </td>
31
+ <td><%= link_to message.sender.username, message.sender -%></td>
32
+ <td><%= l(message.created_at) -%></td>
33
+ </tr>
34
+ <%- end -%>
35
+ <tr>
36
+ <td colspan="4"><%= submit_tag t('message.delete') -%></td>
37
+ </tr>
38
+ </table>
39
+ <%- end -%>
40
+ <%= will_paginate(@messages) -%>
41
+ </div>
42
+ </div>
43
+
44
+ <div id="submenu" class="ui-corner-all">
45
+ <ul>
46
+ <% mode = params[:mode].to_s %>
47
+ <%- @message_facet.each do |facet| -%>
48
+ <li>
49
+ <% facet.value ? facet_mode = 'read' : facet_mode = 'unread' %>
50
+ <%- if facet_mode == mode -%><strong><%- end -%>
51
+ <%= link_to t("message.#{facet_mode}"), url_for(params.merge(:page => nil, :mode => facet_mode)) -%>
52
+ (<%= facet.count -%>)
53
+ <%- if facet_mode == mode -%></strong><%- end -%>
54
+ </li>
55
+ <%- end -%>
56
+ <% if mode.present? %>
57
+ <li><%= link_to t('page.remove_this_facet'), url_for(params.merge(:mode => nil, :page => nil)) -%></li>
58
+ <% end %>
59
+ </ul>
60
+
61
+ <ul>
62
+ <% if can? :create, Message %>
63
+ <li><%= link_to t('page.new', :model => t('activerecord.models.message')), new_message_path -%></li>
64
+ <% end %>
65
+ </ul>
66
+ </div>
@@ -0,0 +1,41 @@
1
+ xml.instruct! :xml, :version=>"1.0"
2
+ xml.rss('version' => "2.0",
3
+ 'xmlns:opensearch' => "http://a9.com/-/spec/opensearch/1.1/",
4
+ 'xmlns:atom' => "http://www.w3.org/2005/Atom"){
5
+ xml.channel{
6
+ if @user
7
+ xml.title t('message.user_message', :login_name => @user.username)
8
+ xml.link messages_url(@user, :format => :rss)
9
+ else
10
+ xml.title t('message.library_group_message', :library_group_name => @library_group.display_name.localize)
11
+ xml.link messages_url(:format => :rss)
12
+ end
13
+ xml.description "Next-L Enju, an open source integrated library system developed by Project Next-L"
14
+ xml.language @locale.to_s
15
+ xml.ttl "60"
16
+ if @user
17
+ xml.tag! "atom:link", :rel => 'self', :href => messages_url(:format => :rss)
18
+ xml.tag! "atom:link", :rel => 'alternate', :href => messages_url(:format => :rss)
19
+ else
20
+ xml.tag! "atom:link", :rel => 'self', :href => messages_url(:format => :rss)
21
+ xml.tag! "atom:link", :rel => 'alternate', :href => messages_url
22
+ end
23
+ #xml.tag! "atom:link", :rel => 'search', :type => 'application/opensearchdescription+xml', :href => "http://#{request.host_with_port}/page/opensearch"
24
+ unless params[:query].blank?
25
+ xml.tag! "opensearch:totalResults", @messages.total_entries
26
+ xml.tag! "opensearch:startIndex", @messages.offset + 1
27
+ xml.tag! "opensearch:itemsPerPage", @messages.per_page
28
+ #xml.tag! "opensearch:Query", :role => 'request', :searchTerms => params[:query], :startPage => (params[:page] || 1)
29
+ end
30
+ @messages.each do |message|
31
+ xml.item do
32
+ xml.title message.subject
33
+ #xml.description(message.title)
34
+ # rfc822
35
+ xml.pubDate message.created_at.utc.rfc822
36
+ xml.link message_url(message)
37
+ xml.guid message_url(message), :isPermaLink => "true"
38
+ end
39
+ end
40
+ }
41
+ }
@@ -0,0 +1,43 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.new', :model => t('activerecord.models.message')) -%></h1>
3
+ <div id="content_list">
4
+ <fieldset>
5
+
6
+ <%= simple_form_for(@message, :url => messages_path, :validate => true) do |f| -%>
7
+ <%= f.error_notification -%>
8
+
9
+ <div class="field">
10
+ <label for="message_recepient"><%= t('message.recipient') -%>:</label>
11
+ <%- if @message.recipient -%>
12
+ <%= link_to @message.recipient, user_path(@message.recipient) -%>
13
+ <%= f.hidden_field :recipient, :value => @message.recipient -%>
14
+ <%- else -%>
15
+ <%= f.text_field :recipient, :class => 'resource_title', :value => @message.recipient -%>
16
+ <%- end -%>
17
+ </div>
18
+
19
+ <div class="field">
20
+ <%= f.label :subject -%>:
21
+ <%= f.text_field :subject, :class => 'resource_title' -%>
22
+ </div>
23
+
24
+ <div class="field">
25
+ <%= f.label :body -%>:<br />
26
+ <%= f.text_area :body, :id => 'message_body' -%>
27
+ </div>
28
+
29
+ <div class="field">
30
+ <%= f.hidden_field :parent_id -%>
31
+ <%= f.submit t('message.send') -%>
32
+ </div>
33
+ <%- end -%>
34
+ </fieldset>
35
+
36
+ </div>
37
+ </div>
38
+
39
+ <div id="submenu" class="ui-corner-all">
40
+ <ul>
41
+ <li><%= link_to t('page.listing', :model => t('activerecord.models.message')), messages_path -%></li>
42
+ </ul>
43
+ </div>
@@ -0,0 +1,48 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('activerecord.models.message') -%></h1>
3
+ <div id="content_list">
4
+ <p id="notice"><%= notice %></p>
5
+
6
+ <fieldset>
7
+ <p>
8
+ <label for="message_receiver_name" ><strong><%= t('message.receiver') -%>:</strong></label>
9
+ <%= link_to @message.receiver.username, @message.receiver -%>
10
+ </p>
11
+ <p>
12
+ <label for="message_sender_name" ><strong><%= t('message.sender') -%>:</strong></label>
13
+ <%= link_to @message.sender.username, @message.sender -%>
14
+ </p>
15
+
16
+ <p>
17
+ <label for="message_sent_at" ><strong><%= t('message.sent_at') -%>:</strong></label>
18
+ <%= l(@message.created_at) -%>
19
+ </p>
20
+
21
+ <p>
22
+ <label for="message_subject" ><strong><%= t('activerecord.attributes.message.subject') -%>:</strong></label>
23
+ <%= @message.subject -%>
24
+ </p>
25
+
26
+ <p>
27
+ <label for="message_body" ><strong><%= t('activerecord.attributes.message.body') -%>:</strong></label>
28
+ <%= raw auto_link(simple_format(h(@message.body))) -%>
29
+ </p>
30
+
31
+ </fieldset>
32
+
33
+ </div>
34
+ </div>
35
+
36
+ <div id="submenu" class="ui-corner-all">
37
+ <ul>
38
+ <% if request.referer %>
39
+ <li><%= link_to t('page.back'), :back -%></li>
40
+ <% else %>
41
+ <li><%= link_to t('page.listing', :model => t('activerecord.models.message')), messages_path -%></li>
42
+ <% end %>
43
+ <li><%= link_to t('message.reply'), new_message_path(:parent_id => @message.id) -%></li>
44
+ <% if can? :destroy, :message %>
45
+ <li><%= link_to t('page.destroy'), @message, :confirm => t('page.are_you_sure'), :method => :delete -%></li>
46
+ <% end %>
47
+ </ul>
48
+ </div>
@@ -0,0 +1,14 @@
1
+ <%=h @message.receiver.patron.full_name -%> :
2
+
3
+ A new message arrived from <%=h @sender_name -%>.
4
+ <%=h messages_url %>
5
+
6
+ -----
7
+
8
+ <%= @message.body %>
9
+
10
+ -----
11
+
12
+ --
13
+ <%=h LibraryGroup.system_name(@message.receiver.locale) %>
14
+ <%=h LibraryGroup.site_config.url %>
@@ -0,0 +1,14 @@
1
+ <%=h @message.receiver.patron.full_name -%> さん
2
+
3
+ <%=h @sender_name -%> さんから新しいメッセージが届きました。
4
+ <%=h messages_url %>
5
+
6
+ -----
7
+
8
+ <%= @message.body %>
9
+
10
+ -----
11
+
12
+ --
13
+ <%=h LibraryGroup.system_name(@message.receiver.locale) %>
14
+ <%=h LibraryGroup.site_config.url %>
data/config/routes.rb ADDED
@@ -0,0 +1,9 @@
1
+ Rails.application.routes.draw do
2
+ resources :message_requests, :except => [:new, :create]
3
+ resources :message_templates
4
+ resources :messages do
5
+ collection do
6
+ post :destroy_selected
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,54 @@
1
+ message_template_00001:
2
+ id: 1
3
+ status: reservation_accepted_for_patron
4
+ title: Reservation accepted
5
+ body: Reservation accepted
6
+ position: 1
7
+ message_template_00002:
8
+ id: 2
9
+ status: item_received
10
+ title: Item received
11
+ body: Item received
12
+ position: 2
13
+ message_template_00003:
14
+ id: 3
15
+ status: reservation_expired_for_patron
16
+ title: Reservation expired
17
+ body: Reservation expired
18
+ position: 3
19
+ message_template_00004:
20
+ id: 4
21
+ status: reservation_expired_for_library
22
+ title: Reservation expired
23
+ body: Reservation expired
24
+ position: 4
25
+ message_template_00005:
26
+ id: 5
27
+ status: reservation_canceled_for_patron
28
+ title: Reservation canceled
29
+ body: Reservation canceled
30
+ position: 5
31
+ message_template_00006:
32
+ id: 6
33
+ status: reservation_canceled_for_library
34
+ title: Reservation canceled
35
+ body: Reservation canceled
36
+ position: 6
37
+ message_template_00007:
38
+ id: 7
39
+ status: recall_item
40
+ title: Recall item
41
+ body: Recall item
42
+ position: 7
43
+ message_template_00008:
44
+ id: 8
45
+ status: recall_overdue_item
46
+ title: Recall overdue item
47
+ body: Recall overdue item
48
+ position: 8
49
+ message_template_00009:
50
+ id: 9
51
+ status: reservation_accepted_for_library
52
+ title: Reservation accepted
53
+ body: Reservation accepted
54
+ position: 9
@@ -0,0 +1,18 @@
1
+ class CreateMessageTemplates < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :message_templates do |t|
4
+ t.string :status, :null => false
5
+ t.text :title, :null => false
6
+ t.text :body, :null => false
7
+ t.integer :position
8
+ t.string :locale, :default => I18n.default_locale.to_s
9
+
10
+ t.timestamps
11
+ end
12
+ add_index :message_templates, :status, :unique => true
13
+ end
14
+
15
+ def self.down
16
+ drop_table :message_templates
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ class CreateMessages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :messages, :force => true do |t|
4
+ t.datetime :read_at
5
+ t.integer :receiver_id, :sender_id
6
+ t.string :subject, :null => false
7
+ t.text :body
8
+ t.integer :message_request_id
9
+ t.string :state
10
+ t.integer :parent_id
11
+
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :messages, :sender_id
16
+ add_index :messages, :receiver_id
17
+ add_index :messages, :message_request_id
18
+ add_index :messages, :parent_id
19
+ end
20
+
21
+ def self.down
22
+ drop_table :messages
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ class CreateMessageRequests < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :message_requests do |t|
4
+ t.integer :sender_id
5
+ t.integer :receiver_id
6
+ t.integer :message_template_id
7
+ t.datetime :sent_at
8
+ t.datetime :deleted_at
9
+ t.text :body
10
+ t.string :state
11
+
12
+ t.timestamps
13
+ end
14
+ add_index :message_requests, :state
15
+ end
16
+
17
+ def self.down
18
+ drop_table :message_requests
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ class AddLftAndRgtToMessage < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :messages, :lft, :integer
4
+ add_column :messages, :rgt, :integer
5
+ end
6
+
7
+ def self.down
8
+ remove_column :messages, :rgt
9
+ remove_column :messages, :lft
10
+ end
11
+ end