radiant-reader-extension 2.0.0.rc4 → 3.0.0.rc3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +9 -5
- data/app/controllers/{readers_controller.rb → accounts_controller.rb} +31 -30
- data/app/controllers/groups_controller.rb +35 -0
- data/app/controllers/messages_controller.rb +1 -0
- data/app/controllers/password_resets_controller.rb +6 -6
- data/app/controllers/reader_action_controller.rb +8 -0
- data/app/controllers/reader_activations_controller.rb +3 -2
- data/app/controllers/reader_sessions_controller.rb +6 -2
- data/app/helpers/reader_helper.rb +61 -17
- data/app/models/group.rb +33 -5
- data/app/models/message.rb +7 -4
- data/app/models/message_reader.rb +4 -0
- data/app/models/reader.rb +71 -3
- data/app/models/reader_page.rb +56 -0
- data/app/views/{readers → accounts}/_contributions.html.haml +0 -0
- data/app/views/{readers → accounts}/_controls.html.haml +1 -2
- data/app/views/accounts/_description.html.haml +2 -0
- data/app/views/{readers → accounts}/_extra_controls.html.haml +0 -0
- data/app/views/{readers → accounts}/_flasher.html.haml +0 -0
- data/app/views/{readers → accounts}/_form.html.haml +10 -15
- data/app/views/accounts/_gravatar.html.haml +3 -0
- data/app/views/accounts/_groups.html.haml +9 -0
- data/app/views/accounts/_links.html.haml +12 -0
- data/app/views/accounts/_list.html.haml +17 -0
- data/app/views/{readers → accounts}/_memberships.html.haml +0 -0
- data/app/views/accounts/_profile.html.haml +29 -0
- data/app/views/accounts/_profile_form.html.haml +86 -0
- data/app/views/accounts/_reader.html.haml +10 -0
- data/app/views/accounts/dashboard.html.haml +28 -0
- data/app/views/{readers → accounts}/edit.html.haml +12 -10
- data/app/views/accounts/edit_profile.html.haml +34 -0
- data/app/views/accounts/index.html.haml +23 -0
- data/app/views/{readers → accounts}/login.html.haml +0 -0
- data/app/views/{readers → accounts}/new.html.haml +0 -0
- data/app/views/{readers → accounts}/permission_denied.html.haml +0 -0
- data/app/views/{readers → accounts}/show.html.haml +9 -12
- data/app/views/dashboard/_description.html.haml +3 -0
- data/app/views/dashboard/_directory.html.haml +3 -0
- data/app/views/dashboard/_groups.html.haml +8 -0
- data/app/views/dashboard/_messages.html.haml +11 -0
- data/app/views/dashboard/_profile.html.haml +3 -0
- data/app/views/dashboard/_welcome.html.haml +5 -0
- data/app/views/groups/_all.html.haml +10 -0
- data/app/views/groups/index.html.haml +21 -0
- data/app/views/groups/show.html.haml +31 -0
- data/app/views/messages/show.html.haml +12 -3
- data/app/views/reader_sessions/new.html.haml +1 -1
- data/app/views/shared/_standard_reader_parts.html.haml +9 -3
- data/config/initializers/formats.rb +2 -0
- data/config/initializers/radiant_config.rb +3 -0
- data/config/locales/en.yml +90 -25
- data/config/routes.rb +8 -6
- data/db/migrate/20110707101339_group_slugs.rb +9 -0
- data/db/migrate/20110711150605_snail_addresses.rb +21 -0
- data/db/migrate/20110712081159_directory_permissions.rb +11 -0
- data/db/migrate/20110712141134_name_parts.rb +9 -0
- data/db/migrate/20110728112254_current_login_at.rb +9 -0
- data/lib/grouped_model.rb +16 -12
- data/lib/grouped_page.rb +1 -0
- data/lib/radiant-reader-extension.rb +1 -1
- data/lib/reader_admin_ui.rb +32 -1
- data/lib/reader_tags.rb +119 -52
- data/lib/site_controller_extensions.rb +2 -2
- data/public/stylesheets/sass/reader.sass +49 -0
- data/radiant-reader-extension.gemspec +4 -1
- data/reader_extension.rb +9 -9
- data/spec/controllers/{readers_controller_spec.rb → accounts_controller_spec.rb} +9 -5
- data/spec/controllers/groups_controller_spec.rb +17 -0
- data/spec/controllers/reader_activations_controller_spec.rb +3 -3
- data/spec/datasets/readers_dataset.rb +3 -0
- data/spec/lib/reader_tags_spec.rb +55 -0
- data/spec/matchers/reader_login_system_matcher.rb +2 -2
- data/spec/models/group_spec.rb +6 -0
- data/spec/models/reader_page_spec.rb +106 -0
- metadata +109 -26
- data/app/views/readers/index.html.haml +0 -38
File without changes
|
File without changes
|
@@ -17,26 +17,22 @@
|
|
17
17
|
= f.label :name, nil, :class => 'required'
|
18
18
|
%br
|
19
19
|
= f.text_field :name, :class => 'standard'
|
20
|
+
%br
|
20
21
|
%span.formnote= t('reader_extension.form_notes.name')
|
21
22
|
|
22
|
-
- if Radiant::Config['reader.use_honorifics?']
|
23
|
-
%p
|
24
|
-
= f.label :honorific, nil, :class => 'optional'
|
25
|
-
%br
|
26
|
-
= f.text_field :honorific, :class => 'standard'
|
27
|
-
%span.formnote= t('reader_extension.form_notes.honorific')
|
28
|
-
|
29
23
|
- if reader.new_record?
|
30
24
|
%p
|
31
|
-
= f.label reader.email_field, t('
|
25
|
+
= f.label reader.email_field, t('activerecord.attributes.reader.email'), :class => 'required'
|
32
26
|
%br
|
33
27
|
= text_field_tag reader.email_field, params[reader.email_field] || reader.email, :id => "reader_#{reader.email_field}", :class => 'standard'
|
28
|
+
%br
|
34
29
|
%span.formnote= t('reader_extension.form_notes.email')
|
35
30
|
.innocuous
|
36
31
|
%p
|
37
32
|
=f.label :email, nil, :class => 'required'
|
38
33
|
%br
|
39
34
|
= f.text_field :email, :class => 'standard', :value => ""
|
35
|
+
%br
|
40
36
|
%span.formnote= t('reader_extension.spam_trap')
|
41
37
|
|
42
38
|
- else
|
@@ -44,12 +40,14 @@
|
|
44
40
|
= f.label :email, nil, :class => 'required'
|
45
41
|
%br
|
46
42
|
= f.text_field :email, :class => 'standard'
|
43
|
+
%br
|
47
44
|
%span.formnote= t('reader_extension.form_notes.email')
|
48
45
|
|
49
46
|
%p
|
50
47
|
= f.label :login, nil, :class => 'optional'
|
51
48
|
%br
|
52
49
|
= f.text_field :login, :class => 'standard'
|
50
|
+
%br
|
53
51
|
%span.formnote= t('reader_extension.form_notes.login')
|
54
52
|
|
55
53
|
- if reader.new_record?
|
@@ -57,6 +55,7 @@
|
|
57
55
|
= f.label :password, nil, :class => 'required'
|
58
56
|
%br
|
59
57
|
= f.password_field :password, :class => 'standard', :autocomplete => 'off'
|
58
|
+
%br
|
60
59
|
%span.formnote= t('reader_extension.form_notes.new_password')
|
61
60
|
|
62
61
|
%p
|
@@ -70,6 +69,7 @@
|
|
70
69
|
= f.label :password, nil, :class => 'optional'
|
71
70
|
%span.password
|
72
71
|
•••••
|
72
|
+
%br
|
73
73
|
%span.formnote= link_to t('reader_extension.change_password'), '#', :class => 'toggle', :rel => ".display_password, .new_password"
|
74
74
|
|
75
75
|
.new_password.hidden
|
@@ -82,13 +82,8 @@
|
|
82
82
|
= f.label :password_confirmation, t('reader_extension.confirm_new_password'), :class => 'required'
|
83
83
|
%br
|
84
84
|
= f.password_field :password_confirmation, :class => 'standard', :autocomplete => 'off'
|
85
|
-
|
86
|
-
|
87
|
-
%p
|
88
|
-
= f.label :description, nil, :class => 'optional'
|
89
|
-
%br
|
90
|
-
= f.text_area :description, :class => 'standard', :rows => 8
|
91
|
-
%span.formnote= t('reader_extension.form_notes.description')
|
85
|
+
|
86
|
+
= render :partial => 'memberships'
|
92
87
|
|
93
88
|
%p
|
94
89
|
= submit_tag reader.new_record? ? t('reader_extension.create_account') : t("reader_extension.update_account")
|
@@ -0,0 +1,12 @@
|
|
1
|
+
%h3
|
2
|
+
=t('reader_extension.dashboard.directory')
|
3
|
+
%ul
|
4
|
+
%li
|
5
|
+
= link_to t("reader_extension.directory.link"), readers_url
|
6
|
+
%li
|
7
|
+
= link_to t("reader_extension.directory.csv_link"), readers_url(:format => :csv)
|
8
|
+
%li
|
9
|
+
= link_to t("reader_extension.directory.vcard_link"), readers_url(:format => :vcard), :class => 'vcard'
|
10
|
+
- Group.visible_to(current_reader).each do |group|
|
11
|
+
%li
|
12
|
+
= link_to_group(group)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
- readers ||= @readers
|
2
|
+
|
3
|
+
- if readers.any?
|
4
|
+
- if readers.respond_to?(:previous_page) && readers.previous_page
|
5
|
+
= pagination_and_summary_for(readers, t('reader_extension.person'))
|
6
|
+
|
7
|
+
- if readers.size > 1
|
8
|
+
- columns = [readers[0..readers.size/2], readers[readers.size/2+1..readers.size]]
|
9
|
+
- else
|
10
|
+
- columns = [readers]
|
11
|
+
- columns.each do |readers|
|
12
|
+
%div.column
|
13
|
+
= render :partial => 'accounts/reader', :collection => readers
|
14
|
+
|
15
|
+
- if readers.respond_to?(:next_page) && readers.next_page
|
16
|
+
= pagination_and_summary_for(readers, t('reader_extension.person'))
|
17
|
+
|
File without changes
|
@@ -0,0 +1,29 @@
|
|
1
|
+
- if Radiant.config['reader.share_details?']
|
2
|
+
- reader ||= @reader
|
3
|
+
|
4
|
+
- if reader.unshareable?
|
5
|
+
- if reader == current_reader
|
6
|
+
%p.warning
|
7
|
+
= t('reader_extension.you_are_not_shared')
|
8
|
+
- else
|
9
|
+
%h3
|
10
|
+
= t('reader_extension.directory.contact')
|
11
|
+
%ul
|
12
|
+
- if email = reader.email
|
13
|
+
%li
|
14
|
+
= t("reader_extension.directory.email") + ': '
|
15
|
+
= email_link email
|
16
|
+
|
17
|
+
- %w{phone mobile}.each do |field|
|
18
|
+
- if value = reader.send(field.to_sym)
|
19
|
+
%li
|
20
|
+
= t("reader_extension.directory.#{field}") + ': '
|
21
|
+
= value
|
22
|
+
|
23
|
+
= reader.postal_address.to_html
|
24
|
+
|
25
|
+
%p
|
26
|
+
- if reader == current_reader
|
27
|
+
= link_to t('reader_extension.check_vcard'), reader_url(reader, :format => :vcard), :class => 'vcard'
|
28
|
+
- else
|
29
|
+
= link_to t('reader_extension.directory.vcard_link'), reader_url(reader, :format => :vcard), :class => 'vcard'
|
@@ -0,0 +1,86 @@
|
|
1
|
+
- reader ||= @reader
|
2
|
+
- check_password ||= false
|
3
|
+
|
4
|
+
- form_for reader, :html => {:class => 'friendly'} do |f|
|
5
|
+
%input{:type => :hidden, :name => :authentication_type, :value => :user}
|
6
|
+
|
7
|
+
- unless @reader.errors.empty?
|
8
|
+
%p.has_error
|
9
|
+
= t('reader_extension.sorry').titlecase
|
10
|
+
= t('reader_extension.form_problem') + '.'
|
11
|
+
= t('reader_extension.affected_fields_highlighted')
|
12
|
+
- else
|
13
|
+
%p
|
14
|
+
= t('reader_extension.bold_required')
|
15
|
+
= t('reader_extension.checked_fields_public')
|
16
|
+
|
17
|
+
- if 1 || Radiant::Config['reader.use_honorifics?']
|
18
|
+
%p
|
19
|
+
= f.label :honorific, nil, :class => 'optional'
|
20
|
+
%br
|
21
|
+
= f.text_field :honorific, :class => 'standard'
|
22
|
+
%span.formnote= t('reader_extension.form_notes.honorific')
|
23
|
+
|
24
|
+
%p
|
25
|
+
= f.label :name, nil, :class => 'required'
|
26
|
+
%br
|
27
|
+
= f.text_field :name, :class => 'standard'
|
28
|
+
%span.formnote= t('reader_extension.form_notes.name')
|
29
|
+
|
30
|
+
%p
|
31
|
+
= f.label :email, nil, :class => 'required'
|
32
|
+
%br
|
33
|
+
= f.text_field :email, :class => 'standard'
|
34
|
+
%span.formnote= t('reader_extension.form_notes.email')
|
35
|
+
|
36
|
+
%p
|
37
|
+
= f.label :phone, nil, :class => 'optional'
|
38
|
+
%br
|
39
|
+
= f.text_field :phone, :class => 'standard'
|
40
|
+
%span.formnote= t('reader_extension.form_notes.phone')
|
41
|
+
|
42
|
+
%p
|
43
|
+
= f.label :mobile, nil, :class => 'optional'
|
44
|
+
%br
|
45
|
+
= f.text_field :mobile, :class => 'standard'
|
46
|
+
%span.formnote= t('reader_extension.form_notes.mobile')
|
47
|
+
|
48
|
+
%p
|
49
|
+
= f.label :post_country, nil, :class => 'optional'
|
50
|
+
= f.select :post_country, country_options_for_select(reader.post_country)
|
51
|
+
%br
|
52
|
+
%span.formnote= t('reader_extension.form_notes.post_country')
|
53
|
+
|
54
|
+
- if Radiant::Config['reader.use_postal_organisation?']
|
55
|
+
%p
|
56
|
+
= f.label :post_organisation, nil, :class => 'optional'
|
57
|
+
= f.text_field :post_organisation, :class => 'standard'
|
58
|
+
%br
|
59
|
+
%span.formnote= t('reader_extension.form_notes.post_organisation')
|
60
|
+
|
61
|
+
%p
|
62
|
+
= f.label :post_line1, t('activerecord.attributes.reader.postal_address'), :class => 'optional'
|
63
|
+
%br
|
64
|
+
= f.text_field :post_line1, :class => 'standard'
|
65
|
+
%br
|
66
|
+
= f.text_field :post_line2, :class => 'standard'
|
67
|
+
%br
|
68
|
+
= f.label :post_city, nil, :class => 'optional'
|
69
|
+
= f.text_field :post_city, :class => 'standard'
|
70
|
+
%br
|
71
|
+
= f.label :post_province, nil, :class => 'optional'
|
72
|
+
= f.text_field :post_province, :class => 'standard'
|
73
|
+
%br
|
74
|
+
= f.label :postcode, nil, :class => 'optional'
|
75
|
+
= f.text_field :postcode, :class => 'standard'
|
76
|
+
|
77
|
+
%p
|
78
|
+
= f.check_box :unshareable, :class => 'reversed'
|
79
|
+
= f.label :unshareable
|
80
|
+
%br
|
81
|
+
%span.formnote= t('reader_extension.form_notes.unshareable')
|
82
|
+
|
83
|
+
%p
|
84
|
+
= submit_tag reader.new_record? ? t('reader_extension.create_account') : t("reader_extension.update_account")
|
85
|
+
or
|
86
|
+
= link_to 'cancel', request.referer
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.reader
|
2
|
+
%h2
|
3
|
+
= link_to standard_gravatar_for(reader), reader_url(reader), {:title => reader.name}
|
4
|
+
= link_to reader.name, reader_url(reader)
|
5
|
+
%span.headernote
|
6
|
+
= link_to ' ', reader_url(reader, :format => :vcard), :class => 'vcard'
|
7
|
+
|
8
|
+
%p.context
|
9
|
+
= t("reader_extension.joined_on")
|
10
|
+
= l(reader.created_at, :format => :date) + '.'
|
@@ -0,0 +1,28 @@
|
|
1
|
+
- content_for :introduction do
|
2
|
+
%p
|
3
|
+
= link_to t('reader_extension.dashboard.profile'), reader_profile_url
|
4
|
+
\|
|
5
|
+
= link_to t('reader_extension.dashboard.account'), reader_account_url
|
6
|
+
- if Radiant.config['reader.share_details?']
|
7
|
+
\|
|
8
|
+
= link_to t('reader_extension.dashboard.edit_profile'), reader_edit_profile_url
|
9
|
+
|
10
|
+
- content_for :breadcrumbs do
|
11
|
+
= link_to t('reader_extension.home'), '/'
|
12
|
+
= t('reader_extension.separator')
|
13
|
+
= t('reader_extension.dashboard.title')
|
14
|
+
|
15
|
+
- content_for :title do
|
16
|
+
= t('reader_extension.dashboard.title')
|
17
|
+
|
18
|
+
= render :partial => 'shared/standard_reader_parts'
|
19
|
+
|
20
|
+
- content_for :sidebar do
|
21
|
+
- render_region :sidebar
|
22
|
+
|
23
|
+
- content_for :main do
|
24
|
+
- render_region :main
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
= yield :main
|
@@ -4,18 +4,12 @@
|
|
4
4
|
= link_to(@reader.name, reader_url(@reader)) + '.'
|
5
5
|
= t('reader_extension.preferences_intro')
|
6
6
|
|
7
|
-
- content_for :form do
|
8
|
-
%pre
|
9
|
-
= @reader.errors.full_messages
|
10
|
-
= render :partial => 'form', :locals => {:reader => @reader}
|
11
|
-
%p
|
12
|
-
= standard_gravatar_for(@reader, 'http://gravatar.com/site/login')
|
13
|
-
= link_to t('reader_extension.change_gravatar'), "http://gravatar.com/site/login/"
|
14
|
-
|
15
7
|
- content_for :breadcrumbs do
|
16
8
|
= link_to t('reader_extension.home').titlecase, '/'
|
17
9
|
>
|
18
|
-
= link_to t('reader_extension.
|
10
|
+
= link_to t('reader_extension.readers').titlecase, readers_url
|
11
|
+
>
|
12
|
+
= link_to t('reader_extension.you').titlecase, profile_url
|
19
13
|
>
|
20
14
|
= t('reader_extension.account_settings')
|
21
15
|
|
@@ -24,4 +18,12 @@
|
|
24
18
|
|
25
19
|
= render :partial => 'shared/standard_reader_parts'
|
26
20
|
|
27
|
-
|
21
|
+
- content_for :main do
|
22
|
+
= render_region :main
|
23
|
+
|
24
|
+
- content_for :sidebar do
|
25
|
+
= render_region :sidebar
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
= yield :main
|
@@ -0,0 +1,34 @@
|
|
1
|
+
- content_for :introduction do
|
2
|
+
%p
|
3
|
+
= t("reader_extension.hello").titlecase
|
4
|
+
= link_to(@reader.name, reader_url(@reader)) + '.'
|
5
|
+
- if Radiant.config['reader.public?']
|
6
|
+
= t('reader_extension.profile_intro_public')
|
7
|
+
- elsif Radiant.config['reader.confine_to_groups?']
|
8
|
+
= t('reader_extension.profile_intro_grouped')
|
9
|
+
- else
|
10
|
+
= t('reader_extension.profile_intro_private')
|
11
|
+
|
12
|
+
- content_for :form do
|
13
|
+
%pre
|
14
|
+
= @reader.errors.full_messages
|
15
|
+
= render :partial => 'profile_form', :locals => {:reader => @reader}
|
16
|
+
%p
|
17
|
+
= standard_gravatar_for(@reader, 'http://gravatar.com/site/login')
|
18
|
+
= link_to t('reader_extension.change_gravatar'), "http://gravatar.com/site/login/"
|
19
|
+
|
20
|
+
- content_for :breadcrumbs do
|
21
|
+
= link_to t('reader_extension.home').titlecase, '/'
|
22
|
+
>
|
23
|
+
= link_to t('reader_extension.readers').titlecase, readers_url
|
24
|
+
>
|
25
|
+
= link_to t('reader_extension.you').titlecase, profile_url
|
26
|
+
>
|
27
|
+
= t('reader_extension.edit_profile')
|
28
|
+
|
29
|
+
- content_for :title do
|
30
|
+
= t('reader_extension.edit_profile')
|
31
|
+
|
32
|
+
= render :partial => 'shared/standard_reader_parts'
|
33
|
+
|
34
|
+
= yield :form
|
@@ -0,0 +1,23 @@
|
|
1
|
+
- content_for :introduction do
|
2
|
+
%p
|
3
|
+
=t('reader_extension.readers_introduction')
|
4
|
+
|
5
|
+
- content_for :breadcrumbs do
|
6
|
+
= link_to t('reader_extension.home').titlecase, '/'
|
7
|
+
= t('reader_extension.separator')
|
8
|
+
= t('reader_extension.people').titlecase
|
9
|
+
|
10
|
+
- content_for :title do
|
11
|
+
= t('reader_extension.people').titlecase
|
12
|
+
|
13
|
+
= render :partial => 'shared/standard_reader_parts'
|
14
|
+
|
15
|
+
- content_for :sidebar do
|
16
|
+
= render_region :sidebar
|
17
|
+
|
18
|
+
- content_for :main do
|
19
|
+
= render_region :main
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
= yield :main
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,14 +1,3 @@
|
|
1
|
-
|
2
|
-
- content_for :description do
|
3
|
-
- if @reader.description.blank?
|
4
|
-
%p
|
5
|
-
= t('reader_extension.no_description')
|
6
|
-
- else
|
7
|
-
= clean_html @reader.description
|
8
|
-
|
9
|
-
- @show_partials.each do |partial|
|
10
|
-
= render :partial => partial, :locals => {:reader => @reader}
|
11
|
-
|
12
1
|
- content_for :breadhead do
|
13
2
|
= link_to t('reader_extension.readers').titlecase, readers_url
|
14
3
|
= t('reader_extension.separator')
|
@@ -23,4 +12,12 @@
|
|
23
12
|
|
24
13
|
= render :partial => 'shared/standard_reader_parts'
|
25
14
|
|
26
|
-
|
15
|
+
- content_for :sidebar do
|
16
|
+
- render_region :sidebar
|
17
|
+
|
18
|
+
- content_for :main do
|
19
|
+
- render_region :main
|
20
|
+
|
21
|
+
|
22
|
+
= yield :main
|
23
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
- if current_reader.messages.any?
|
2
|
+
.dashboard_module
|
3
|
+
%h3
|
4
|
+
=t('reader_extension.dashboard.messages')
|
5
|
+
%ul
|
6
|
+
- current_reader.messages.each do |message|
|
7
|
+
%li
|
8
|
+
= link_to_message(message)
|
9
|
+
- if message.delivered_to?(current_reader)
|
10
|
+
%span.note
|
11
|
+
= t('reader_extension.sent_on', :date => friendly_date(message.delivery_to(current_reader).sent_at))
|
@@ -0,0 +1,5 @@
|
|
1
|
+
%p
|
2
|
+
- if current_reader.newly_activated?
|
3
|
+
= t("reader_extension.dashboard.welcome", :name => current_reader.name, :site => Radiant.config['site.title'])
|
4
|
+
- else
|
5
|
+
= t("reader_extension.dashboard.introduction", :name => current_reader.name, :site => Radiant.config['site.title'])
|
@@ -0,0 +1,21 @@
|
|
1
|
+
- content_for :introduction do
|
2
|
+
%p
|
3
|
+
=t('reader_extension.groups_introduction')
|
4
|
+
|
5
|
+
- content_for :breadcrumbs do
|
6
|
+
= link_to t('reader_extension.home').titlecase, '/'
|
7
|
+
= t('reader_extension.separator')
|
8
|
+
= link_to t('reader_extension.people').titlecase, readers_url
|
9
|
+
= t('reader_extension.separator')
|
10
|
+
= t('reader_extension.groups')
|
11
|
+
|
12
|
+
- content_for :title do
|
13
|
+
= t('reader_extension.groups').titlecase
|
14
|
+
|
15
|
+
= render :partial => 'shared/standard_reader_parts'
|
16
|
+
|
17
|
+
- content_for :main do
|
18
|
+
= render :partial => 'group', :collection => @groups
|
19
|
+
|
20
|
+
|
21
|
+
= yield :main
|
@@ -0,0 +1,31 @@
|
|
1
|
+
- content_for :breadhead do
|
2
|
+
= link_to t('reader_extension.groups').titlecase, groups_url
|
3
|
+
= t('reader_extension.separator')
|
4
|
+
|
5
|
+
- content_for :title do
|
6
|
+
= @group.name
|
7
|
+
|
8
|
+
- content_for :breadcrumbs do
|
9
|
+
= link_to t('reader_extension.home').titlecase, '/'
|
10
|
+
= t('reader_extension.separator')
|
11
|
+
= link_to t('reader_extension.people').titlecase, readers_url
|
12
|
+
= t('reader_extension.separator')
|
13
|
+
= yield :breadhead
|
14
|
+
= yield :title
|
15
|
+
|
16
|
+
= render :partial => 'shared/standard_reader_parts'
|
17
|
+
|
18
|
+
- content_for :main do
|
19
|
+
%p
|
20
|
+
= t('reader_extension.download_group_as')
|
21
|
+
= link_to t("reader_extension.csv_file"), group_url(@group, :format => :csv), :class => 'csv'
|
22
|
+
= t('or')
|
23
|
+
= link_to t("reader_extension.vcard_file"), group_url(@group, :format => :vcard), :class => 'vcard'
|
24
|
+
|
25
|
+
%h3
|
26
|
+
= t('reader_extension.group_members')
|
27
|
+
|
28
|
+
= render :partial => 'accounts/list', :readers => @readers
|
29
|
+
|
30
|
+
= yield :main
|
31
|
+
|
@@ -1,6 +1,15 @@
|
|
1
|
-
|
2
|
-
%
|
1
|
+
- content_for :introduction do
|
2
|
+
%p
|
3
|
+
= t('reader_extension.message_preview_introduction', :date => friendly_date(@delivery.sent_at))
|
4
|
+
|
5
|
+
- content_for :message do
|
6
|
+
#preview
|
7
|
+
.message_body
|
8
|
+
%iframe{:src => preview_message_url(@message)}
|
3
9
|
|
4
10
|
- content_for :title do
|
5
11
|
= @message.subject
|
6
|
-
|
12
|
+
|
13
|
+
= render :partial => 'shared/standard_reader_parts'
|
14
|
+
|
15
|
+
= yield :message
|
@@ -4,11 +4,17 @@
|
|
4
4
|
|
5
5
|
- content_for :section_navigation do
|
6
6
|
= link_to t('reader_extension.navigation.readers'), readers_url, :class => 'section'
|
7
|
+
- if current_reader
|
8
|
+
= link_to t('reader_extension.navigation.dashboard'), reader_dashboard_url
|
9
|
+
= link_to t('reader_extension.navigation.directory'), readers_url
|
10
|
+
= link_to t('reader_extension.navigation.profile'), reader_profile_url
|
11
|
+
= link_to t('reader_extension.navigation.account'), reader_account_url
|
12
|
+
= link_to t('reader_extension.navigation.log_out'), reader_logout_url
|
7
13
|
- if Radiant::Config['reader.help_url']
|
8
|
-
= link_to t('reader_extension.navigation.
|
14
|
+
= link_to t('reader_extension.navigation.help'), Radiant::Config['reader.help_url']
|
9
15
|
|
10
16
|
- content_for :controls do
|
11
|
-
= render :partial => '
|
17
|
+
= render :partial => 'accounts/controls'
|
12
18
|
|
13
19
|
- content_for :signals do
|
14
|
-
= render :partial => '
|
20
|
+
= render :partial => 'accounts/flasher'
|
@@ -4,6 +4,9 @@ Radiant.config do |config|
|
|
4
4
|
reader.define 'require_confirmation?', :default => true
|
5
5
|
reader.define 'layout', :select_from => lambda { Layout.all.map(&:name) }, :allow_blank => false
|
6
6
|
reader.define 'get_profile?', :default => true
|
7
|
+
reader.define 'public?', :default => false
|
8
|
+
reader.define 'confine_to_groups?', :default => false
|
9
|
+
reader.define 'share_details?', :default => false
|
7
10
|
end
|
8
11
|
config.namespace('email') do |email|
|
9
12
|
email.define 'layout', :select_from => lambda { Layout.all.map(&:name) }, :allow_blank => true
|