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.
Files changed (76) hide show
  1. data/README.md +9 -5
  2. data/app/controllers/{readers_controller.rb → accounts_controller.rb} +31 -30
  3. data/app/controllers/groups_controller.rb +35 -0
  4. data/app/controllers/messages_controller.rb +1 -0
  5. data/app/controllers/password_resets_controller.rb +6 -6
  6. data/app/controllers/reader_action_controller.rb +8 -0
  7. data/app/controllers/reader_activations_controller.rb +3 -2
  8. data/app/controllers/reader_sessions_controller.rb +6 -2
  9. data/app/helpers/reader_helper.rb +61 -17
  10. data/app/models/group.rb +33 -5
  11. data/app/models/message.rb +7 -4
  12. data/app/models/message_reader.rb +4 -0
  13. data/app/models/reader.rb +71 -3
  14. data/app/models/reader_page.rb +56 -0
  15. data/app/views/{readers → accounts}/_contributions.html.haml +0 -0
  16. data/app/views/{readers → accounts}/_controls.html.haml +1 -2
  17. data/app/views/accounts/_description.html.haml +2 -0
  18. data/app/views/{readers → accounts}/_extra_controls.html.haml +0 -0
  19. data/app/views/{readers → accounts}/_flasher.html.haml +0 -0
  20. data/app/views/{readers → accounts}/_form.html.haml +10 -15
  21. data/app/views/accounts/_gravatar.html.haml +3 -0
  22. data/app/views/accounts/_groups.html.haml +9 -0
  23. data/app/views/accounts/_links.html.haml +12 -0
  24. data/app/views/accounts/_list.html.haml +17 -0
  25. data/app/views/{readers → accounts}/_memberships.html.haml +0 -0
  26. data/app/views/accounts/_profile.html.haml +29 -0
  27. data/app/views/accounts/_profile_form.html.haml +86 -0
  28. data/app/views/accounts/_reader.html.haml +10 -0
  29. data/app/views/accounts/dashboard.html.haml +28 -0
  30. data/app/views/{readers → accounts}/edit.html.haml +12 -10
  31. data/app/views/accounts/edit_profile.html.haml +34 -0
  32. data/app/views/accounts/index.html.haml +23 -0
  33. data/app/views/{readers → accounts}/login.html.haml +0 -0
  34. data/app/views/{readers → accounts}/new.html.haml +0 -0
  35. data/app/views/{readers → accounts}/permission_denied.html.haml +0 -0
  36. data/app/views/{readers → accounts}/show.html.haml +9 -12
  37. data/app/views/dashboard/_description.html.haml +3 -0
  38. data/app/views/dashboard/_directory.html.haml +3 -0
  39. data/app/views/dashboard/_groups.html.haml +8 -0
  40. data/app/views/dashboard/_messages.html.haml +11 -0
  41. data/app/views/dashboard/_profile.html.haml +3 -0
  42. data/app/views/dashboard/_welcome.html.haml +5 -0
  43. data/app/views/groups/_all.html.haml +10 -0
  44. data/app/views/groups/index.html.haml +21 -0
  45. data/app/views/groups/show.html.haml +31 -0
  46. data/app/views/messages/show.html.haml +12 -3
  47. data/app/views/reader_sessions/new.html.haml +1 -1
  48. data/app/views/shared/_standard_reader_parts.html.haml +9 -3
  49. data/config/initializers/formats.rb +2 -0
  50. data/config/initializers/radiant_config.rb +3 -0
  51. data/config/locales/en.yml +90 -25
  52. data/config/routes.rb +8 -6
  53. data/db/migrate/20110707101339_group_slugs.rb +9 -0
  54. data/db/migrate/20110711150605_snail_addresses.rb +21 -0
  55. data/db/migrate/20110712081159_directory_permissions.rb +11 -0
  56. data/db/migrate/20110712141134_name_parts.rb +9 -0
  57. data/db/migrate/20110728112254_current_login_at.rb +9 -0
  58. data/lib/grouped_model.rb +16 -12
  59. data/lib/grouped_page.rb +1 -0
  60. data/lib/radiant-reader-extension.rb +1 -1
  61. data/lib/reader_admin_ui.rb +32 -1
  62. data/lib/reader_tags.rb +119 -52
  63. data/lib/site_controller_extensions.rb +2 -2
  64. data/public/stylesheets/sass/reader.sass +49 -0
  65. data/radiant-reader-extension.gemspec +4 -1
  66. data/reader_extension.rb +9 -9
  67. data/spec/controllers/{readers_controller_spec.rb → accounts_controller_spec.rb} +9 -5
  68. data/spec/controllers/groups_controller_spec.rb +17 -0
  69. data/spec/controllers/reader_activations_controller_spec.rb +3 -3
  70. data/spec/datasets/readers_dataset.rb +3 -0
  71. data/spec/lib/reader_tags_spec.rb +55 -0
  72. data/spec/matchers/reader_login_system_matcher.rb +2 -2
  73. data/spec/models/group_spec.rb +6 -0
  74. data/spec/models/reader_page_spec.rb +106 -0
  75. metadata +109 -26
  76. data/app/views/readers/index.html.haml +0 -38
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('reader_extension.label.reader.email'), :class => 'required'
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
- - if Radiant::Config['reader.get_profile?']
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,3 @@
1
+ %p
2
+ = standard_gravatar_for(current_reader, 'http://gravatar.com/site/login')
3
+ = link_to t('reader_extension.change_gravatar'), "http://gravatar.com/site/login/"
@@ -0,0 +1,9 @@
1
+ - reader ||= @reader
2
+
3
+ - groups = reader.groups.visible_to(current_reader)
4
+ - if groups.any?
5
+ %ul.groups
6
+ - groups.each do |group|
7
+ %li
8
+ = link_to_group(group)
9
+ = t("reader_extension.member")
@@ -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
+
@@ -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.you').titlecase, '/readers/me'
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
- = yield :form
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
@@ -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
- = yield :description
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,3 @@
1
+ - unless current_reader.description.blank?
2
+ .dashboard_module
3
+ = render :partial => 'accounts/description', :locals => {:reader => current_reader}
@@ -0,0 +1,3 @@
1
+ - if Radiant.config['reader.share_details?']
2
+ .dashboard_module
3
+ = render :partial => 'accounts/links'
@@ -0,0 +1,8 @@
1
+ - if current_reader.groups.any?
2
+ .dashboard_module
3
+ %h3
4
+ = t('reader_extension.dashboard.groups')
5
+ %ul.groups
6
+ - current_reader.groups.each do |group|
7
+ %li
8
+ = link_to_group(group)
@@ -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,3 @@
1
+ - if Radiant.config['reader.share_details?']
2
+ .dashboard_module
3
+ = render :partial => 'accounts/profile', :locals => {:reader => current_reader}
@@ -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,10 @@
1
+ - groups = Group.visible_to(current_reader)
2
+ - if groups.any?
3
+ %h3
4
+ = t('reader_extension.groups')
5
+ %ul.groups
6
+ - groups.each do |group|
7
+ %li
8
+ = link_to_group(group)
9
+
10
+
@@ -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
- #message
2
- %iframe.message_body{:src => preview_message_url(@message)}
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
@@ -14,7 +14,7 @@
14
14
  = t('reader_extension.log_in').titlecase
15
15
 
16
16
  - content_for :title do
17
- = t('reader_extension.please_log_in').titlecase
17
+ = t('reader_extension.please_log_in')
18
18
 
19
19
  = render :partial => 'shared/standard_reader_parts'
20
20
 
@@ -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.reader_help'), Radiant::Config['reader.help_url']
14
+ = link_to t('reader_extension.navigation.help'), Radiant::Config['reader.help_url']
9
15
 
10
16
  - content_for :controls do
11
- = render :partial => 'readers/controls'
17
+ = render :partial => 'accounts/controls'
12
18
 
13
19
  - content_for :signals do
14
- = render :partial => 'readers/flasher'
20
+ = render :partial => 'accounts/flasher'
@@ -0,0 +1,2 @@
1
+ Mime::Type.register "text/x-vcard", :vcard
2
+ Mime::Type.register "text/csv", :csv
@@ -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