carrier 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. data/Gemfile +1 -1
  2. data/TODO +1 -0
  3. data/VERSION +1 -1
  4. data/app/assets/images/carrier/chosen-sprite.png +0 -0
  5. data/app/assets/javascripts/carrier/chosen.jquery.min.js +10 -0
  6. data/app/assets/javascripts/carrier/chosen.js +5 -0
  7. data/app/assets/stylesheets/{carrier.css → carrier/carrier.css} +43 -5
  8. data/app/assets/stylesheets/carrier/chosen.css +367 -0
  9. data/app/controllers/carrier/chains_controller.rb +7 -5
  10. data/app/controllers/carrier/messages_controller.rb +4 -6
  11. data/app/helpers/carrier/application_helper.rb +5 -8
  12. data/app/models/carrier/chain.rb +2 -2
  13. data/app/models/carrier/message.rb +23 -19
  14. data/app/models/carrier/message/validations.rb +1 -1
  15. data/app/validators/recipients/exclude_self.rb +1 -1
  16. data/app/validators/recipients/recipients_presence_validator.rb +8 -0
  17. data/app/validators/recipients/right_recipients_validator.rb +10 -0
  18. data/app/views/carrier/messages/_chosen.html.erb +7 -0
  19. data/app/views/carrier/messages/_form.html.erb +30 -24
  20. data/app/views/carrier/messages/_head.html.erb +1 -6
  21. data/app/views/carrier/messages/_index_message.html.erb +2 -2
  22. data/app/views/carrier/messages/{_message_expanded.html.erb → _message.html.erb} +0 -0
  23. data/app/views/carrier/messages/_message_collapsed.html.erb +1 -1
  24. data/app/views/carrier/messages/_nav_messages.html.erb +5 -5
  25. data/app/views/carrier/messages/_recipients.html.erb +1 -0
  26. data/app/views/carrier/messages/_reply.html.erb +17 -14
  27. data/app/views/carrier/messages/as_sent.html.erb +4 -0
  28. data/app/views/carrier/messages/create.js.erb +1 -1
  29. data/app/views/carrier/messages/index.html.erb +12 -1
  30. data/app/views/carrier/messages/new.html.erb +6 -0
  31. data/app/views/carrier/messages/reply.js.erb +1 -1
  32. data/app/views/carrier/messages/show.html.erb +34 -32
  33. data/app/views/layouts/carrier/application.html.erb +2 -2
  34. data/app/views/partials/_error_messages_for.html.erb +2 -2
  35. data/carrier.gemspec +21 -115
  36. data/config/locales/carrier.en.yml +11 -5
  37. data/config/locales/carrier.ru.yml +12 -1
  38. data/config/routes.rb +6 -2
  39. data/lib/carrier.rb +0 -1
  40. data/lib/carrier/configuration.rb +6 -8
  41. data/lib/carrier/configuration/routes.rb +19 -0
  42. data/lib/carrier/configuration/user.rb +24 -0
  43. data/lib/carrier/rails/engine.rb +15 -4
  44. data/lib/carrier/rails/helpers.rb +17 -3
  45. data/lib/carrier/version.rb +3 -0
  46. data/spec/dummy/config/initializers/carrier.rb +2 -0
  47. data/spec/integration/carrier_spec.rb +4 -2
  48. data/spec/requests/main_spec.rb +0 -1
  49. metadata +134 -223
  50. data/app/assets/javascripts/autocomplete.js +0 -4
  51. data/app/assets/javascripts/autocomplete/i18n/jquery-ui-i18n.js +0 -1379
  52. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-af.js +0 -23
  53. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar-DZ.js +0 -23
  54. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar.js +0 -23
  55. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-az.js +0 -23
  56. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bg.js +0 -24
  57. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bs.js +0 -23
  58. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ca.js +0 -23
  59. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-cs.js +0 -23
  60. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-da.js +0 -23
  61. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-de.js +0 -23
  62. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-el.js +0 -23
  63. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-AU.js +0 -23
  64. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-GB.js +0 -23
  65. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-NZ.js +0 -23
  66. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eo.js +0 -23
  67. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-es.js +0 -23
  68. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-et.js +0 -23
  69. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eu.js +0 -23
  70. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fa.js +0 -23
  71. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fi.js +0 -23
  72. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fo.js +0 -23
  73. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr-CH.js +0 -23
  74. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr.js +0 -25
  75. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-gl.js +0 -23
  76. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-he.js +0 -23
  77. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hr.js +0 -23
  78. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hu.js +0 -23
  79. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hy.js +0 -23
  80. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-id.js +0 -23
  81. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-is.js +0 -23
  82. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-it.js +0 -23
  83. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ja.js +0 -23
  84. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ko.js +0 -23
  85. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-kz.js +0 -23
  86. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lt.js +0 -23
  87. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lv.js +0 -23
  88. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ml.js +0 -23
  89. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ms.js +0 -23
  90. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-nl.js +0 -23
  91. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-no.js +0 -23
  92. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pl.js +0 -23
  93. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt-BR.js +0 -23
  94. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt.js +0 -22
  95. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-rm.js +0 -21
  96. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ro.js +0 -26
  97. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ru.js +0 -23
  98. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sk.js +0 -23
  99. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sl.js +0 -24
  100. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sq.js +0 -23
  101. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr-SR.js +0 -23
  102. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr.js +0 -23
  103. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sv.js +0 -23
  104. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ta.js +0 -23
  105. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-th.js +0 -23
  106. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tj.js +0 -23
  107. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tr.js +0 -23
  108. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-uk.js +0 -23
  109. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-vi.js +0 -23
  110. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-CN.js +0 -23
  111. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-HK.js +0 -23
  112. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-TW.js +0 -23
  113. data/app/assets/javascripts/autocomplete/jquery.ui.autocomplete.min.js +0 -32
  114. data/app/assets/javascripts/autocomplete/jquery.ui.core.min.js +0 -17
  115. data/app/assets/javascripts/autocomplete/jquery.ui.position.min.js +0 -16
  116. data/app/assets/javascripts/autocomplete/jquery.ui.widget.min.js +0 -15
  117. data/app/assets/javascripts/carrier.js +0 -8
  118. data/app/assets/javascripts/rich-multiselect/jquery-ui.min.js +0 -405
  119. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-de.js +0 -11
  120. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-en.js +0 -11
  121. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-es.js +0 -11
  122. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-fr.js +0 -11
  123. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-it.js +0 -13
  124. data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-min.js +0 -7
  125. data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-pack.js +0 -7
  126. data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation.js +0 -99
  127. data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/README.txt +0 -37
  128. data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/changes.txt +0 -82
  129. data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo-min.js +0 -11
  130. data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo.js +0 -207
  131. data/app/assets/javascripts/rich-multiselect/ui.multiselect.js +0 -339
  132. data/app/assets/stylesheets/carrier_rich.css +0 -48
  133. data/app/assets/stylesheets/carrier_simple.css +0 -15
  134. data/app/assets/stylesheets/rich-multiselect/ui.multiselect.css +0 -30
  135. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  136. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_55_fbf9ee_40x100.png +0 -0
  137. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
  138. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_cccccc_40x100.png +0 -0
  139. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_dadada_40x100.png +0 -0
  140. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_e6e6e6_40x100.png +0 -0
  141. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  142. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_95_fef1ec_40x100.png +0 -0
  143. data/app/assets/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  144. data/app/assets/stylesheets/ui-lightness/images/ui-icons_2e83ff_256x240.png +0 -0
  145. data/app/assets/stylesheets/ui-lightness/images/ui-icons_454545_256x240.png +0 -0
  146. data/app/assets/stylesheets/ui-lightness/images/ui-icons_888888_256x240.png +0 -0
  147. data/app/assets/stylesheets/ui-lightness/images/ui-icons_cd0a0a_256x240.png +0 -0
  148. data/app/assets/stylesheets/ui-lightness/jquery-ui-1.8.14.custom.css +0 -342
  149. data/app/helpers/carrier/post_helper.rb +0 -4
  150. data/app/validators/recipients/recipients_validator.rb +0 -10
  151. data/app/views/carrier/messages/rich/_multiselect.html.erb +0 -18
  152. data/app/views/carrier/messages/rich/_recipients.html.erb +0 -6
  153. data/app/views/carrier/messages/simple/_autocomplete.html.erb +0 -45
  154. data/app/views/carrier/messages/simple/_autocomplete_includes.html.erb +0 -7
  155. data/app/views/carrier/messages/simple/_recipients.html.erb +0 -3
  156. data/lib/carrier/configuration/ui.rb +0 -28
@@ -1,7 +1,13 @@
1
1
  <%= render :partial => 'head' %>
2
+ <%= render :partial => 'chosen' %>
3
+
4
+ <div id="carrier">
5
+ <div class="carrier_wr">
2
6
  <%= render :partial => 'nav_messages' %>
3
7
  <h2><%= t('views.carrier.new_header')%></h2>
4
8
 
5
9
  <div class="ma_wrapper">
6
10
  <%= render 'form' %>
7
11
  </div>
12
+ </div>
13
+ </div>
@@ -1,6 +1,6 @@
1
1
  $('#reply_form').html('<%= escape_javascript(render :partial => 'reply.html.erb') %>');
2
2
 
3
- $(window).scrollTop($('#message_content').offset().top);
3
+ // stanislaw: TODO $(window).scrollTop($('#reply_form').offset(u).bottom);
4
4
  $('#message_content').focus();
5
5
 
6
6
 
@@ -1,35 +1,37 @@
1
- <%= render :partial => 'head' %>
2
- <%= render :partial => 'nav_messages' %>
3
- <div class="message_ma_box_info">
4
- <div class="message_ma_archive_chain" id="archive_chain">
5
- <%= render :partial => 'archive_chain', :locals => {:chain => @message.chain} %>
6
- </div>
7
- <h2><%= @message.subject_without_re %></h2>
8
- <%= raw(t('views.carrier.participants')) %>
9
- <%= b raw(t('views.carrier.me')) %>,
10
- <%= b @message.recipients_names %>
11
- </div>
1
+ <div id="carrier">
2
+ <div class="carrier_wr">
3
+ <%= render :partial => 'head' %>
4
+ <%= render :partial => 'nav_messages' %>
5
+ <div class="message_ma_box_info">
6
+ <div class="message_ma_archive_chain" id="archive_chain">
7
+ <%= render :partial => 'archive_chain', :locals => {:chain => @message.chain} %>
8
+ </div>
9
+ <h2><%= @message.subject_without_re %></h2>
10
+ <%= raw(t('views.carrier.participants')) %>
11
+ <%= b raw(t('views.carrier.me')) %>,
12
+ <%= b @message.recipients_names %>
13
+ </div>
12
14
 
13
- <% @message.answers.each do |message| %>
14
- <%= render :partial => 'message_collapsed', :locals => {:message => message} %>
15
- <% end %>
15
+ <%= render :partial => 'message', :collection => @message.answers %>
16
16
 
17
- <div class="message_ma_wrapper ma_open">
18
- <div class="message_ma_date">
19
- <%= @message.date_formatted %>
20
- </div>
21
- <div class="message_ma_user">
22
- <%= @message.sender_name %>
23
- </div>
24
- <div class="message_ma_subj">
25
- <b><%= @message.subject %></b>
26
- </div>
27
- <div>
28
- <%= @message.content %>
29
- </div>
30
- </div>
17
+ <div class="message_ma_wrapper ma_open">
18
+ <div class="message_ma_date">
19
+ <%= @message.date_formatted %>
20
+ </div>
21
+ <div class="message_ma_user">
22
+ <%= @message.sender_name %>
23
+ </div>
24
+ <div class="message_ma_subj">
25
+ <b><%= @message.subject %></b>
26
+ </div>
27
+ <div>
28
+ <%= simple_format @message.content %>
29
+ </div>
30
+ </div>
31
31
 
32
- <div class="ma_wrapper">
33
- <%= link_to raw(t 'views.carrier.reply_link'), reply_message_path(@message), :remote => true %>
34
- <div id="reply_form"></div>
35
- </div>
32
+ <div class="ma_wrapper">
33
+ <%= link_to raw(t 'views.carrier.reply_link'), reply_message_path(@message), :remote => true %>
34
+ <div id="reply_form"></div>
35
+ </div>
36
+ </div> <!-- // div.carrier_wr -->
37
+ </div> <!-- // div#carrier -->
@@ -3,13 +3,13 @@
3
3
  <head>
4
4
  <title>Carrier</title>
5
5
  <%= yield :stylesheets %>
6
- <script src="/assets/jquery.min.js" type="text/javascript"></script>
7
- <script src="/assets/rails.js" type="text/javascript"></script>
6
+ <%= javascript_include_tag 'jquery.min', 'rails' %>
8
7
  <%= yield :javascripts %>
9
8
  <%= csrf_meta_tags %>
10
9
  </head>
11
10
  <body>
12
11
  <div class="carrier_wrapper">
12
+ <%= content_tag :div, notice, :id => "flash_notice" %>
13
13
  <%= yield %>
14
14
  </div>
15
15
  </body>
@@ -1,6 +1,6 @@
1
1
  <div class="errorExplanation" id="errorExplanation">
2
- <h2>Заполните поля верно</h2>
3
- <p>Проверьте правильность заполнения следующих полей:</p>
2
+ <h2><%= t('views.carrier.form_is_not_valid') %></h2>
3
+ <p><%= t('views.carrier.check_following_fields') %></p>
4
4
  <ul>
5
5
  <% resource.errors.full_messages.each do |msg| %>
6
6
  <li><%= msg %></li>
@@ -5,16 +5,17 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "carrier"
8
- s.version = "0.0.6"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["stanislaw"]
12
- s.date = "2011-11-15"
12
+ s.date = "2011-12-23"
13
13
  s.description = "Raw github-like messaging system to reuse across Rails apps. Acts as Rails 3.1 mountable engine. Fast and robust."
14
14
  s.email = "s.pankevich@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
- "README.textile"
17
+ "README.textile",
18
+ "TODO"
18
19
  ]
19
20
  s.files = [
20
21
  ".document",
@@ -24,131 +25,39 @@ Gem::Specification.new do |s|
24
25
  "MIT-LICENSE",
25
26
  "README.textile",
26
27
  "Rakefile",
28
+ "TODO",
27
29
  "VERSION",
28
30
  "app/assets/images/.gitkeep",
29
- "app/assets/javascripts/autocomplete.js",
30
- "app/assets/javascripts/autocomplete/i18n/jquery-ui-i18n.js",
31
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-af.js",
32
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar-DZ.js",
33
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar.js",
34
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-az.js",
35
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bg.js",
36
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bs.js",
37
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ca.js",
38
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-cs.js",
39
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-da.js",
40
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-de.js",
41
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-el.js",
42
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-AU.js",
43
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-GB.js",
44
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-NZ.js",
45
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eo.js",
46
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-es.js",
47
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-et.js",
48
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eu.js",
49
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fa.js",
50
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fi.js",
51
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fo.js",
52
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr-CH.js",
53
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr.js",
54
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-gl.js",
55
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-he.js",
56
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hr.js",
57
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hu.js",
58
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hy.js",
59
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-id.js",
60
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-is.js",
61
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-it.js",
62
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ja.js",
63
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ko.js",
64
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-kz.js",
65
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lt.js",
66
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lv.js",
67
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ml.js",
68
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ms.js",
69
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-nl.js",
70
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-no.js",
71
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pl.js",
72
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt-BR.js",
73
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt.js",
74
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-rm.js",
75
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ro.js",
76
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ru.js",
77
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sk.js",
78
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sl.js",
79
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sq.js",
80
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr-SR.js",
81
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr.js",
82
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sv.js",
83
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ta.js",
84
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-th.js",
85
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tj.js",
86
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tr.js",
87
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-uk.js",
88
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-vi.js",
89
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-CN.js",
90
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-HK.js",
91
- "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-TW.js",
92
- "app/assets/javascripts/autocomplete/jquery.ui.autocomplete.min.js",
93
- "app/assets/javascripts/autocomplete/jquery.ui.core.min.js",
94
- "app/assets/javascripts/autocomplete/jquery.ui.position.min.js",
95
- "app/assets/javascripts/autocomplete/jquery.ui.widget.min.js",
96
- "app/assets/javascripts/carrier.js",
31
+ "app/assets/images/carrier/chosen-sprite.png",
32
+ "app/assets/javascripts/carrier/chosen.jquery.min.js",
33
+ "app/assets/javascripts/carrier/chosen.js",
97
34
  "app/assets/javascripts/jquery.min.js",
98
35
  "app/assets/javascripts/rails.js",
99
- "app/assets/javascripts/rich-multiselect/jquery-ui.min.js",
100
- "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-de.js",
101
- "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-en.js",
102
- "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-es.js",
103
- "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-fr.js",
104
- "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-it.js",
105
- "app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-min.js",
106
- "app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-pack.js",
107
- "app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation.js",
108
- "app/assets/javascripts/rich-multiselect/plugins/scrollTo/README.txt",
109
- "app/assets/javascripts/rich-multiselect/plugins/scrollTo/changes.txt",
110
- "app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo-min.js",
111
- "app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo.js",
112
- "app/assets/javascripts/rich-multiselect/ui.multiselect.js",
113
- "app/assets/stylesheets/carrier.css",
114
- "app/assets/stylesheets/carrier_rich.css",
115
- "app/assets/stylesheets/carrier_simple.css",
116
- "app/assets/stylesheets/rich-multiselect/ui.multiselect.css",
117
- "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png",
118
- "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_55_fbf9ee_40x100.png",
119
- "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_65_ffffff_40x100.png",
120
- "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_cccccc_40x100.png",
121
- "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_dadada_40x100.png",
122
- "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_e6e6e6_40x100.png",
123
- "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png",
124
- "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_95_fef1ec_40x100.png",
125
- "app/assets/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png",
126
- "app/assets/stylesheets/ui-lightness/images/ui-icons_2e83ff_256x240.png",
127
- "app/assets/stylesheets/ui-lightness/images/ui-icons_454545_256x240.png",
128
- "app/assets/stylesheets/ui-lightness/images/ui-icons_888888_256x240.png",
129
- "app/assets/stylesheets/ui-lightness/images/ui-icons_cd0a0a_256x240.png",
130
- "app/assets/stylesheets/ui-lightness/jquery-ui-1.8.14.custom.css",
36
+ "app/assets/stylesheets/carrier/carrier.css",
37
+ "app/assets/stylesheets/carrier/chosen.css",
131
38
  "app/controllers/carrier/application_controller.rb",
132
39
  "app/controllers/carrier/chains_controller.rb",
133
40
  "app/controllers/carrier/messages_controller.rb",
134
41
  "app/helpers/carrier/application_helper.rb",
135
- "app/helpers/carrier/post_helper.rb",
136
42
  "app/models/carrier/chain.rb",
137
43
  "app/models/carrier/message.rb",
138
44
  "app/models/carrier/message/scopes.rb",
139
45
  "app/models/carrier/message/subject.rb",
140
46
  "app/models/carrier/message/validations.rb",
141
47
  "app/validators/recipients/exclude_self.rb",
142
- "app/validators/recipients/recipients_validator.rb",
48
+ "app/validators/recipients/recipients_presence_validator.rb",
49
+ "app/validators/recipients/right_recipients_validator.rb",
143
50
  "app/views/carrier/chains/archive.js.erb",
144
51
  "app/views/carrier/chains/unarchive.js.erb",
145
52
  "app/views/carrier/messages/_archive_chain.html.erb",
53
+ "app/views/carrier/messages/_chosen.html.erb",
146
54
  "app/views/carrier/messages/_form.html.erb",
147
55
  "app/views/carrier/messages/_head.html.erb",
148
56
  "app/views/carrier/messages/_index_message.html.erb",
57
+ "app/views/carrier/messages/_message.html.erb",
149
58
  "app/views/carrier/messages/_message_collapsed.html.erb",
150
- "app/views/carrier/messages/_message_expanded.html.erb",
151
59
  "app/views/carrier/messages/_nav_messages.html.erb",
60
+ "app/views/carrier/messages/_recipients.html.erb",
152
61
  "app/views/carrier/messages/_reply.html.erb",
153
62
  "app/views/carrier/messages/as_sent.html.erb",
154
63
  "app/views/carrier/messages/collapsed.js.erb",
@@ -158,12 +67,7 @@ Gem::Specification.new do |s|
158
67
  "app/views/carrier/messages/new.html.erb",
159
68
  "app/views/carrier/messages/new.js.erb",
160
69
  "app/views/carrier/messages/reply.js.erb",
161
- "app/views/carrier/messages/rich/_multiselect.html.erb",
162
- "app/views/carrier/messages/rich/_recipients.html.erb",
163
70
  "app/views/carrier/messages/show.html.erb",
164
- "app/views/carrier/messages/simple/_autocomplete.html.erb",
165
- "app/views/carrier/messages/simple/_autocomplete_includes.html.erb",
166
- "app/views/carrier/messages/simple/_recipients.html.erb",
167
71
  "app/views/layouts/carrier/application.html.erb",
168
72
  "app/views/partials/_error_messages_for.html.erb",
169
73
  "carrier.gemspec",
@@ -176,10 +80,12 @@ Gem::Specification.new do |s|
176
80
  "lib/carrier.rb",
177
81
  "lib/carrier/configuration.rb",
178
82
  "lib/carrier/configuration/models.rb",
179
- "lib/carrier/configuration/ui.rb",
83
+ "lib/carrier/configuration/routes.rb",
84
+ "lib/carrier/configuration/user.rb",
180
85
  "lib/carrier/rails.rb",
181
86
  "lib/carrier/rails/engine.rb",
182
87
  "lib/carrier/rails/helpers.rb",
88
+ "lib/carrier/version.rb",
183
89
  "lib/tasks/carrier_tasks.rake",
184
90
  "script/rails",
185
91
  "spec/carrier/app/controllers/application_controller_spec.rb",
@@ -289,7 +195,7 @@ Gem::Specification.new do |s|
289
195
  s.add_runtime_dependency(%q<unread>, [">= 0"])
290
196
  s.add_runtime_dependency(%q<sugar-high>, [">= 0"])
291
197
  s.add_runtime_dependency(%q<sweetloader>, [">= 0"])
292
- s.add_development_dependency(%q<rails>, [">= 3.1.0"])
198
+ s.add_development_dependency(%q<rails>, ["~> 3.1"])
293
199
  s.add_development_dependency(%q<unicorn>, [">= 0"])
294
200
  s.add_development_dependency(%q<mysql2>, [">= 0"])
295
201
  s.add_development_dependency(%q<devise>, [">= 0"])
@@ -303,7 +209,7 @@ Gem::Specification.new do |s|
303
209
  s.add_dependency(%q<unread>, [">= 0"])
304
210
  s.add_dependency(%q<sugar-high>, [">= 0"])
305
211
  s.add_dependency(%q<sweetloader>, [">= 0"])
306
- s.add_dependency(%q<rails>, [">= 3.1.0"])
212
+ s.add_dependency(%q<rails>, ["~> 3.1"])
307
213
  s.add_dependency(%q<unicorn>, [">= 0"])
308
214
  s.add_dependency(%q<mysql2>, [">= 0"])
309
215
  s.add_dependency(%q<devise>, [">= 0"])
@@ -318,7 +224,7 @@ Gem::Specification.new do |s|
318
224
  s.add_dependency(%q<unread>, [">= 0"])
319
225
  s.add_dependency(%q<sugar-high>, [">= 0"])
320
226
  s.add_dependency(%q<sweetloader>, [">= 0"])
321
- s.add_dependency(%q<rails>, [">= 3.1.0"])
227
+ s.add_dependency(%q<rails>, ["~> 3.1"])
322
228
  s.add_dependency(%q<unicorn>, [">= 0"])
323
229
  s.add_dependency(%q<mysql2>, [">= 0"])
324
230
  s.add_dependency(%q<devise>, [">= 0"])
@@ -3,7 +3,7 @@ en:
3
3
  attributes:
4
4
  carrier/message:
5
5
  recipients: "'Recipients' field"
6
- content: "'Content' field"
6
+ content: "'Message' field"
7
7
  errors:
8
8
  models:
9
9
  carrier/message:
@@ -11,15 +11,19 @@ en:
11
11
  recipients:
12
12
  wrong:
13
13
  "is wrong!"
14
- #blank:
15
- #""
16
-
14
+ empty:
15
+ "can't be blank"
16
+ cannot_write_to_self:
17
+ "cannot write to self!"
17
18
  models:
18
19
  carrier:
19
20
  no_subject: "(No subject)"
20
21
 
21
22
  views:
22
23
  carrier:
24
+ # What are the better variants of these messages?
25
+ form_is_not_valid: "The form is not valid"
26
+ check_following_fields: "Please fill the following fields right:"
23
27
  title: "Simple Messages"
24
28
  description: "Description goes here..."
25
29
  new_link: "New"
@@ -41,8 +45,10 @@ en:
41
45
  new_subject: "Subject"
42
46
  new_content: "Message"
43
47
  new_send: "Send"
44
-
48
+ no_messages: "No messages yet"
45
49
  #last: "Last &raquo;"
46
50
  #previous: "&lsaquo; Prev"
47
51
  #next: "Next &rsaquo;"
48
52
  #truncate: "..."
53
+
54
+ successfully_created: "Message successfully created"
@@ -9,8 +9,13 @@ ru:
9
9
  carrier/message:
10
10
  attributes:
11
11
  recipients:
12
+ empty:
13
+ "не может быть пустым"
12
14
  wrong:
13
15
  "заполнено неверно"
16
+ cannot_write_to_self:
17
+ "вы не можете написать письмо себе!"
18
+
14
19
  blank:
15
20
  "не может быть пустым"
16
21
  models:
@@ -19,9 +24,13 @@ ru:
19
24
 
20
25
  views:
21
26
  carrier:
27
+ # Как бы сказать это более по-русски ;)
28
+ form_is_not_valid: "Форма заполнено неверно!"
29
+ check_following_fields: "Проверь правильность заполнения следующих полей:"
30
+
22
31
  title: "Личные сообщения"
23
32
  description: "Описание плагина..."
24
- new_link: "Новое"
33
+ new_link: "Написать письмо"
25
34
  inbox_link: "Входящие"
26
35
  inbox_back_link: "Назад к входящие"
27
36
  reply_link: "Ответить в ветку"
@@ -40,9 +49,11 @@ ru:
40
49
  new_subject: "Тема"
41
50
  new_content: "Сообщение"
42
51
  new_send: "Отправить"
52
+ no_messages: "Сообщений нет"
43
53
  #last: "Last &raquo;"
44
54
  #previous: "&lsaquo; Prev"
45
55
  #next: "Next &rsaquo;"
46
56
  #truncate: "..."
47
57
  #
48
58
 
59
+ successfully_created: "Сообщение успешно создано"
@@ -1,8 +1,12 @@
1
+ # Prefix for messages. Defaults to '/messages' resulting in
2
+ # /messages, /messages/1, /messages/sent, /messages/archived
3
+
4
+ prefix_for_messages = Carrier.config.routes.prefix_for_messages
5
+
1
6
  Carrier::Engine.routes.draw do
2
7
 
3
- resources :messages do
8
+ resources :messages, :path => prefix_for_messages do
4
9
  member do
5
- get :as_sent
6
10
  get :reply
7
11
  get :expanded
8
12
  get :collapsed
@@ -3,7 +3,6 @@ require "carrier/rails/engine" if defined?(Rails)
3
3
  require 'sweetloader'
4
4
 
5
5
  require 'sugar-high/array'
6
- require 'sugar-high/class_ext'
7
6
  require 'sugar-high/rails/concerns'
8
7
  require 'sugar-high/dsl'
9
8
 
@@ -2,11 +2,13 @@ require 'singleton'
2
2
  module Carrier
3
3
  class Configuration
4
4
 
5
- autoload_modules :Models, :UI
6
-
5
+ autoload_modules :Models, :User, :Routes
6
+
7
+ attr_writer :routes_prefix
8
+
7
9
  include Singleton
8
10
 
9
- [:models].each do |component|
11
+ [:models, :routes, :user].each do |component|
10
12
  define_method component do
11
13
  conf_class(component).instance
12
14
  end
@@ -16,10 +18,6 @@ module Carrier
16
18
  "#{conf}::#{component.to_s.camelize}".constantize
17
19
  end
18
20
 
19
- def ui
20
- conf::UI.instance
21
- end
22
-
23
21
  def conf
24
22
  Carrier::Configuration
25
23
  end
@@ -29,7 +27,7 @@ module Carrier
29
27
  end
30
28
 
31
29
  def check_unread!
32
- raise "Add 'acts_as_reader' into your User model" unless ReadMark.reader_class
30
+ puts "Add 'acts_as_reader' into your User model" unless ReadMark.reader_class
33
31
  end
34
32
  end
35
33
  end