carrier 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/TODO +1 -0
- data/VERSION +1 -1
- data/app/assets/images/carrier/chosen-sprite.png +0 -0
- data/app/assets/javascripts/carrier/chosen.jquery.min.js +10 -0
- data/app/assets/javascripts/carrier/chosen.js +5 -0
- data/app/assets/stylesheets/{carrier.css → carrier/carrier.css} +43 -5
- data/app/assets/stylesheets/carrier/chosen.css +367 -0
- data/app/controllers/carrier/chains_controller.rb +7 -5
- data/app/controllers/carrier/messages_controller.rb +4 -6
- data/app/helpers/carrier/application_helper.rb +5 -8
- data/app/models/carrier/chain.rb +2 -2
- data/app/models/carrier/message.rb +23 -19
- data/app/models/carrier/message/validations.rb +1 -1
- data/app/validators/recipients/exclude_self.rb +1 -1
- data/app/validators/recipients/recipients_presence_validator.rb +8 -0
- data/app/validators/recipients/right_recipients_validator.rb +10 -0
- data/app/views/carrier/messages/_chosen.html.erb +7 -0
- data/app/views/carrier/messages/_form.html.erb +30 -24
- data/app/views/carrier/messages/_head.html.erb +1 -6
- data/app/views/carrier/messages/_index_message.html.erb +2 -2
- data/app/views/carrier/messages/{_message_expanded.html.erb → _message.html.erb} +0 -0
- data/app/views/carrier/messages/_message_collapsed.html.erb +1 -1
- data/app/views/carrier/messages/_nav_messages.html.erb +5 -5
- data/app/views/carrier/messages/_recipients.html.erb +1 -0
- data/app/views/carrier/messages/_reply.html.erb +17 -14
- data/app/views/carrier/messages/as_sent.html.erb +4 -0
- data/app/views/carrier/messages/create.js.erb +1 -1
- data/app/views/carrier/messages/index.html.erb +12 -1
- data/app/views/carrier/messages/new.html.erb +6 -0
- data/app/views/carrier/messages/reply.js.erb +1 -1
- data/app/views/carrier/messages/show.html.erb +34 -32
- data/app/views/layouts/carrier/application.html.erb +2 -2
- data/app/views/partials/_error_messages_for.html.erb +2 -2
- data/carrier.gemspec +21 -115
- data/config/locales/carrier.en.yml +11 -5
- data/config/locales/carrier.ru.yml +12 -1
- data/config/routes.rb +6 -2
- data/lib/carrier.rb +0 -1
- data/lib/carrier/configuration.rb +6 -8
- data/lib/carrier/configuration/routes.rb +19 -0
- data/lib/carrier/configuration/user.rb +24 -0
- data/lib/carrier/rails/engine.rb +15 -4
- data/lib/carrier/rails/helpers.rb +17 -3
- data/lib/carrier/version.rb +3 -0
- data/spec/dummy/config/initializers/carrier.rb +2 -0
- data/spec/integration/carrier_spec.rb +4 -2
- data/spec/requests/main_spec.rb +0 -1
- metadata +134 -223
- data/app/assets/javascripts/autocomplete.js +0 -4
- data/app/assets/javascripts/autocomplete/i18n/jquery-ui-i18n.js +0 -1379
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-af.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar-DZ.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-az.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bg.js +0 -24
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bs.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ca.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-cs.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-da.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-de.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-el.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-AU.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-GB.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-NZ.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eo.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-es.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-et.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eu.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fa.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fi.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fo.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr-CH.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr.js +0 -25
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-gl.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-he.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hr.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hu.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hy.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-id.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-is.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-it.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ja.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ko.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-kz.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lt.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lv.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ml.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ms.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-nl.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-no.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pl.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt-BR.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt.js +0 -22
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-rm.js +0 -21
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ro.js +0 -26
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ru.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sk.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sl.js +0 -24
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sq.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr-SR.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sv.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ta.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-th.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tj.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tr.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-uk.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-vi.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-CN.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-HK.js +0 -23
- data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-TW.js +0 -23
- data/app/assets/javascripts/autocomplete/jquery.ui.autocomplete.min.js +0 -32
- data/app/assets/javascripts/autocomplete/jquery.ui.core.min.js +0 -17
- data/app/assets/javascripts/autocomplete/jquery.ui.position.min.js +0 -16
- data/app/assets/javascripts/autocomplete/jquery.ui.widget.min.js +0 -15
- data/app/assets/javascripts/carrier.js +0 -8
- data/app/assets/javascripts/rich-multiselect/jquery-ui.min.js +0 -405
- data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-de.js +0 -11
- data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-en.js +0 -11
- data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-es.js +0 -11
- data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-fr.js +0 -11
- data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-it.js +0 -13
- data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-min.js +0 -7
- data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-pack.js +0 -7
- data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation.js +0 -99
- data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/README.txt +0 -37
- data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/changes.txt +0 -82
- data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo-min.js +0 -11
- data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo.js +0 -207
- data/app/assets/javascripts/rich-multiselect/ui.multiselect.js +0 -339
- data/app/assets/stylesheets/carrier_rich.css +0 -48
- data/app/assets/stylesheets/carrier_simple.css +0 -15
- data/app/assets/stylesheets/rich-multiselect/ui.multiselect.css +0 -30
- data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_55_fbf9ee_40x100.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_cccccc_40x100.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_dadada_40x100.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_e6e6e6_40x100.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_95_fef1ec_40x100.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-icons_888888_256x240.png +0 -0
- data/app/assets/stylesheets/ui-lightness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/stylesheets/ui-lightness/jquery-ui-1.8.14.custom.css +0 -342
- data/app/helpers/carrier/post_helper.rb +0 -4
- data/app/validators/recipients/recipients_validator.rb +0 -10
- data/app/views/carrier/messages/rich/_multiselect.html.erb +0 -18
- data/app/views/carrier/messages/rich/_recipients.html.erb +0 -6
- data/app/views/carrier/messages/simple/_autocomplete.html.erb +0 -45
- data/app/views/carrier/messages/simple/_autocomplete_includes.html.erb +0 -7
- data/app/views/carrier/messages/simple/_recipients.html.erb +0 -3
- 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,35 +1,37 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|
-
|
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
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
34
|
-
|
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
|
-
|
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
|
3
|
-
<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>
|
data/carrier.gemspec
CHANGED
@@ -5,16 +5,17 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "carrier"
|
8
|
-
s.version = "0.0
|
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-
|
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/
|
30
|
-
"app/assets/javascripts/
|
31
|
-
"app/assets/javascripts/
|
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/
|
100
|
-
"app/assets/
|
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/
|
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/
|
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>, ["
|
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>, ["
|
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>, ["
|
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: "'
|
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
|
-
|
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 »"
|
46
50
|
#previous: "‹ Prev"
|
47
51
|
#next: "Next ›"
|
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 »"
|
44
54
|
#previous: "‹ Prev"
|
45
55
|
#next: "Next ›"
|
46
56
|
#truncate: "..."
|
47
57
|
#
|
48
58
|
|
59
|
+
successfully_created: "Сообщение успешно создано"
|
data/config/routes.rb
CHANGED
@@ -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
|
data/lib/carrier.rb
CHANGED
@@ -2,11 +2,13 @@ require 'singleton'
|
|
2
2
|
module Carrier
|
3
3
|
class Configuration
|
4
4
|
|
5
|
-
autoload_modules :Models, :
|
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
|
-
|
30
|
+
puts "Add 'acts_as_reader' into your User model" unless ReadMark.reader_class
|
33
31
|
end
|
34
32
|
end
|
35
33
|
end
|