radiant-reader-extension 1.3.13 → 2.0.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. data/README.md +2 -2
  2. data/Rakefile +0 -19
  3. data/app/controllers/admin/group_invitations_controller.rb +78 -0
  4. data/app/controllers/admin/groups_controller.rb +8 -0
  5. data/app/controllers/admin/memberships_controller.rb +42 -0
  6. data/app/controllers/admin/messages_controller.rb +8 -3
  7. data/app/controllers/admin/permissions_controller.rb +42 -0
  8. data/app/controllers/admin/reader_configuration_controller.rb +0 -1
  9. data/app/controllers/admin/readers_controller.rb +1 -1
  10. data/app/controllers/password_resets_controller.rb +5 -5
  11. data/app/controllers/reader_action_controller.rb +13 -33
  12. data/app/controllers/reader_activations_controller.rb +4 -8
  13. data/app/controllers/reader_sessions_controller.rb +15 -26
  14. data/app/controllers/readers_controller.rb +26 -9
  15. data/app/helpers/reader_helper.rb +45 -17
  16. data/app/models/group.rb +80 -0
  17. data/app/models/membership.rb +13 -0
  18. data/app/models/message.rb +10 -7
  19. data/app/models/permission.rb +11 -0
  20. data/app/models/reader.rb +79 -35
  21. data/app/models/reader_notifier.rb +1 -0
  22. data/app/views/admin/group_invitations/new.html.haml +31 -0
  23. data/app/views/admin/group_invitations/preview.html.haml +58 -0
  24. data/app/views/admin/groups/_add_readers.html.haml +0 -0
  25. data/app/views/admin/groups/_form.html.haml +26 -0
  26. data/app/views/admin/groups/_list_head.html.haml +12 -0
  27. data/app/views/admin/groups/edit.html.haml +9 -0
  28. data/app/views/admin/groups/index.html.haml +44 -0
  29. data/app/views/admin/groups/new.html.haml +7 -0
  30. data/app/views/admin/groups/remove.html.haml +31 -0
  31. data/app/views/admin/groups/show.html.haml +74 -0
  32. data/app/views/admin/memberships/_reader.html.haml +9 -0
  33. data/app/views/admin/messages/_function.haml +31 -0
  34. data/app/views/admin/messages/_list_function.haml +7 -3
  35. data/app/views/admin/messages/_list_notes.html.haml +9 -0
  36. data/app/views/admin/messages/_message_description.html.haml +5 -1
  37. data/app/views/admin/messages/_message_group.html.haml +5 -0
  38. data/app/views/admin/messages/index.haml +4 -4
  39. data/app/views/admin/messages/show.html.haml +15 -15
  40. data/app/views/admin/pages/_listed.html.haml +16 -0
  41. data/app/views/admin/pages/_page_groups.html.haml +13 -0
  42. data/app/views/admin/permissions/_page.html.haml +24 -0
  43. data/app/views/admin/reader_configuration/edit.html.haml +3 -1
  44. data/app/views/admin/reader_configuration/show.html.haml +4 -2
  45. data/app/views/admin/readers/_form.html.haml +7 -7
  46. data/app/views/admin/readers/_password_fields.html.haml +6 -6
  47. data/app/views/admin/readers/_reader_groups.html.haml +7 -0
  48. data/app/views/admin/readers/edit.html.haml +2 -1
  49. data/app/views/admin/readers/index.html.haml +5 -2
  50. data/app/views/password_resets/create.html.haml +13 -8
  51. data/app/views/password_resets/edit.html.haml +26 -26
  52. data/app/views/password_resets/new.html.haml +28 -25
  53. data/app/views/reader_activations/_activation_required.haml +2 -2
  54. data/app/views/reader_activations/show.html.haml +11 -13
  55. data/app/views/reader_sessions/_login_form.html.haml +13 -12
  56. data/app/views/reader_sessions/new.html.haml +6 -8
  57. data/app/views/readers/_controls.html.haml +11 -9
  58. data/app/views/readers/_form.html.haml +32 -33
  59. data/app/views/readers/_memberships.html.haml +11 -0
  60. data/app/views/readers/edit.html.haml +11 -11
  61. data/app/views/readers/index.html.haml +9 -10
  62. data/app/views/readers/login.html.haml +10 -12
  63. data/app/views/readers/new.html.haml +11 -13
  64. data/app/views/readers/permission_denied.html.haml +7 -7
  65. data/app/views/readers/show.html.haml +7 -8
  66. data/app/views/shared/_standard_reader_parts.html.haml +14 -0
  67. data/app/views/site/not_allowed.html.haml +4 -0
  68. data/config/initializers/authlogic_connect_config.rb +12 -0
  69. data/config/initializers/radiant_config.rb +1 -0
  70. data/config/locales/en.yml +217 -177
  71. data/config/routes.rb +5 -0
  72. data/db/migrate/20090921125654_group_messages.rb +35 -0
  73. data/db/migrate/20091120083119_groups_public.rb +11 -0
  74. data/db/migrate/20110214101339_multiple_ownership.rb +13 -0
  75. data/lib/controller_extensions.rb +1 -1
  76. data/lib/group_tags.rb +65 -0
  77. data/lib/grouped_model.rb +125 -0
  78. data/lib/grouped_page.rb +39 -0
  79. data/lib/message_tags.rb +183 -0
  80. data/lib/radiant-reader-extension.rb +8 -0
  81. data/lib/reader_admin_ui.rb +29 -6
  82. data/lib/reader_tags.rb +7 -183
  83. data/lib/sanitize/config/generous.rb +49 -0
  84. data/lib/site_controller_extensions.rb +35 -0
  85. data/public/javascripts/reader.js +1 -1
  86. data/public/stylesheets/sass/reader.sass +18 -8
  87. data/radiant-reader-extension.gemspec +30 -176
  88. data/reader_extension.rb +31 -23
  89. data/spec/controllers/admin/messages_controller_spec.rb +1 -1
  90. data/spec/controllers/admin/readers_controller_spec.rb +0 -1
  91. data/spec/controllers/password_resets_controller_spec.rb +1 -1
  92. data/spec/controllers/reader_activations_controller_spec.rb +1 -1
  93. data/spec/controllers/readers_controller_spec.rb +67 -40
  94. data/spec/controllers/site_controller_spec.rb +63 -0
  95. data/spec/datasets/readers_dataset.rb +100 -11
  96. data/spec/models/group_spec.rb +46 -0
  97. data/spec/models/message_spec.rb +40 -15
  98. data/spec/models/page_spec.rb +81 -0
  99. data/spec/models/reader_notifier_spec.rb +1 -1
  100. data/spec/models/reader_spec.rb +17 -12
  101. metadata +99 -67
  102. data/.gitignore +0 -2
  103. data/VERSION +0 -1
  104. data/app/views/readers/_standard_parts.html.haml +0 -23
  105. data/spec/datasets/messages_dataset.rb +0 -49
  106. data/spec/datasets/reader_layouts_dataset.rb +0 -26
  107. data/spec/datasets/reader_sites_dataset.rb +0 -10
@@ -0,0 +1,31 @@
1
+ - include_stylesheet('admin/group')
2
+ %h1 Remove Group
3
+
4
+ %p
5
+ Are you sure you want to
6
+ %strong.warning
7
+ remove permanently
8
+ the group
9
+ = h @group.name
10
+ ?
11
+
12
+ %p
13
+ The group has
14
+ = @group.readers.count
15
+ = pluralize(@group.readers.count, 'member')
16
+ and
17
+ = @group.pages.count
18
+ = pluralize(@group.pages.count, 'page')
19
+ \. The pages and readers will not be deleted - just dissociated from one another - and removing the group association from those pages may make them visible to everyone.
20
+
21
+ %table#groups.index{:cellspacing=>"0", :border=>"0", :cellpadding=>"0"}
22
+ %thead
23
+ = render :partial => 'list_head'
24
+ %tbody
25
+ = render :partial => 'listed', :locals => {:group => @group}
26
+
27
+ - form_for [:admin, @group], :html => { :method => 'delete' } do
28
+ %p.buttons
29
+ %input.button{:type=>"submit", :value=>"Delete Group"}/
30
+ or
31
+ = link_to 'Cancel', admin_groups_url
@@ -0,0 +1,74 @@
1
+ - include_stylesheet 'admin/reader_group'
2
+ - body_classes << "reversed"
3
+
4
+ - render_region :header do |header|
5
+ - header.title do
6
+ %h1
7
+ = t('reader_extension.group').titlecase + ":"
8
+ = @group.name
9
+
10
+ - render_region :main do |main|
11
+ - main.messages do
12
+ #group_messages.box
13
+ .actions
14
+ = link_to image('plus') + ' ' + t("reader_extension.create_new_message"), new_admin_group_message_url(@group), :class => 'action create'
15
+ %h3
16
+ =t('reader_extension.admin_messages').titlecase
17
+ - ['welcome', 'invitation'].each do |func|
18
+ - message = Message.functional(func, @group)
19
+ %p.ruled
20
+ %label
21
+ = t("reader_extension.#{func}_message")
22
+ - if message
23
+ %strong
24
+ = link_to message.subject, admin_message_url(message)
25
+ - else
26
+ = link_to image('plus') + ' ' + t("reader_extension.create_#{func}"), new_admin_group_message_url(@group, :function => func), :class => 'action create'
27
+ %h4
28
+ =t('reader_extension.other_messages').titlecase
29
+ - @group.messages.ordinary.each do |message|
30
+ %p.ruled
31
+ = link_to message.subject, admin_message_url(message)
32
+ %span.sent
33
+ - if message.sent_at
34
+ = t('reader_extension.last_sent')
35
+ = l(message.sent_at, :format => :short)
36
+
37
+ - main.pages do
38
+ #group_pages.box
39
+ %h3
40
+ =t('reader_extension.private_pages').titlecase
41
+ %ul
42
+ - page = Page.respond_to?(:homepage) ? Page.homepage : Page.find_by_parent_id(nil)
43
+ %div{:id => "page_holder_#{page.id}"}
44
+ = render :partial => 'admin/permissions/page', :object => page
45
+
46
+ - main.members do
47
+ #group_people.box
48
+ .actions
49
+ = link_to image('plus') + ' ' + t('reader_extension.add_members'), new_admin_group_group_invitation_url(@group), :class => 'action'
50
+ %h3
51
+ =t('reader_extension.group_members').titlecase
52
+ - readers = Reader.find(:all)
53
+ - total = readers.count
54
+ - column_length = (readers.count-1) / 2
55
+ - columns = [readers[0..column_length], readers[column_length+1..readers.count]]
56
+ - columns.each do |column|
57
+ %ul.column
58
+ - column.each do |reader|
59
+ %div{:id => "reader_holder_#{reader.id}"}
60
+ = render :partial => 'admin/memberships/reader', :object => reader
61
+
62
+ - render_region :footer do |footer|
63
+ - footer.notes do
64
+ #footnotes
65
+ %p
66
+ = t('reader_extension.private_page_explanation')
67
+
68
+ - footer.javascript do
69
+ :javascript
70
+ var h1 = $('group_pages').getHeight();
71
+ var h2 = $('group_people').getHeight();
72
+ var h = (h1 > h2) ? h1 : h2
73
+ $('group_people').setStyle({'height': h + 'px'});
74
+ $('group_pages').setStyle({'height': h + 'px'});
@@ -0,0 +1,9 @@
1
+ - reader ||= @reader
2
+ - group ||= @group
3
+
4
+ - if membership = group.membership_for(reader)
5
+ %li{:class => "fake_checkbox checked", :id => "reader_#{reader.id}"}
6
+ = link_to_remote reader.name, :url => admin_group_membership_url(group, membership), :method => 'delete', :loading => "$('reader_#{reader.id}').addClassName('waiting')", :update => "reader_holder_#{reader.id}"
7
+ - else
8
+ %li{:class => "fake_checkbox unchecked", :id => "reader_#{reader.id}"}
9
+ = link_to_remote reader.name, :url => admin_group_memberships_url(group, :reader_id => reader.id), :loading => "$('reader_#{reader.id}').addClassName('waiting')", :update => "reader_holder_#{reader.id}"
@@ -0,0 +1,31 @@
1
+ - if @message.administrative?
2
+ %p
3
+ - if @message.group
4
+ = t("reader_extension.group_#{@message.function}")
5
+ = t("reader_extension.sent_to_group")
6
+ - elsif @message.groups.any?
7
+ = t("reader_extension.group_#{@message.function}")
8
+ = t("reader_extension.sent_to_these_groups")
9
+ %ul
10
+ - @message.groups.each do |group|
11
+ %li= link_to group.name, admin_group_url(group)
12
+ - else
13
+ = t("reader_extension.#{@message.function}_sent_automatically")
14
+ %ul
15
+ %li
16
+ = link_to t('reader_extension.edit_message').titlecase, edit_admin_message_url(@message)
17
+ %li
18
+ - if @message.group
19
+ = link_to @message.group.name + ' ' + t('reader_extension.group_page'), admin_group_url(@message.group)
20
+ - else
21
+ = link_to t('reader_extension.reader_configuration_page').titlecase, admin_reader_configuration_url
22
+
23
+ - if @message.group
24
+ %p
25
+ = t("reader_extension.belongs_to_group", :name => @message.group.name)
26
+ - elsif @message.groups.any?
27
+ %p
28
+ = t("reader_extension.belongs_to_these_groups")
29
+ %ul
30
+ - @message.groups.each do |group|
31
+ %li= link_to group.name, admin_group_url(group)
@@ -1,3 +1,7 @@
1
- - if message.has_function?
2
- %span.function
3
- = message.function.description
1
+ %span.function
2
+ - if message.administrative?
3
+ = message.function.description
4
+ - if message.group
5
+ = t('reader_extension.for')
6
+ - if message.group
7
+ = link_to message.group.name, admin_group_url(message.group)
@@ -0,0 +1,9 @@
1
+ - unless message.function.blank?
2
+ %small.function
3
+ = message.function
4
+ - if message.group
5
+ %small.group
6
+ for
7
+ = link_to message.group.name, admin_group_url(message.group)
8
+
9
+
@@ -1,3 +1,7 @@
1
1
  - if @message.function
2
2
  = @message.function
3
- message
3
+ message
4
+ - if @message.group
5
+ for the
6
+ = @message.group.name
7
+ group
@@ -0,0 +1,5 @@
1
+ %h1 group_id
2
+
3
+ - fields_for @message do |f|
4
+ - if @message.new_record? && @message.group
5
+ = f.hidden_field :group_id
@@ -25,14 +25,14 @@
25
25
  %td.message_sent
26
26
  %p
27
27
  - if message.sent_at
28
- = t('last_sent')
28
+ = t('reader_extension.last_sent')
29
29
  = l(message.sent_at, :format => :short)
30
30
  - else
31
- = t('never_sent')
31
+ = t('reader_extension.never_sent')
32
32
  - tbody.modify_cell do
33
33
  %td.actions
34
- = link_to( image('delta') + ' ' + t('edit_message'), edit_admin_message_url(message), :class => "action" )
35
- = link_to( image('minus') + ' ' + t('delete_message'), admin_message_url(message), {:method => :delete, :class => "action", :confirm => t('really_delete_message', :title => message.subject)})
34
+ = link_to( image('delta') + ' ' + t('reader_extension.edit_message'), edit_admin_message_url(message), :class => "action" )
35
+ = link_to( image('minus') + ' ' + t('reader_extension.delete_message'), admin_message_url(message), {:method => :delete, :class => "action", :confirm => t('reader_extension.really_delete_message', :title => message.subject)})
36
36
 
37
37
  - render_region :bottom do |bottom|
38
38
  - bottom.buttons do
@@ -6,7 +6,7 @@
6
6
  - render_region :header do |header|
7
7
  - header.title do
8
8
  %h1
9
- = t('preview_and_send_message')
9
+ = t('reader_extension.preview_and_send_message')
10
10
 
11
11
  #preview
12
12
  - render_region :preview do |preview|
@@ -26,44 +26,44 @@
26
26
  - preview.buttons do
27
27
  .preview_controls
28
28
  %p
29
- = link_to t('edit_message'), edit_admin_message_url(@message)
29
+ = link_to t('reader_extension.edit_message'), edit_admin_message_url(@message)
30
30
 
31
31
  #deliver
32
32
  - render_region :delivery do |delivery|
33
33
  - delivery.function do
34
34
  - if @message.administrative?
35
35
  %p
36
- = t("#{@message.function}_sent_automatically")
36
+ = t("reader_extension.#{@message.function}_sent_automatically")
37
37
  %ul
38
38
  %li
39
- = link_to t('edit_message').titlecase, edit_admin_message_url(@message)
39
+ = link_to t('reader_extension.edit_message').titlecase, edit_admin_message_url(@message)
40
40
  %li
41
- = link_to t('reader_configuration_page').titlecase, admin_reader_configuration_url
41
+ = link_to t('reader_extension.reader_configuration_page').titlecase, admin_reader_configuration_url
42
42
 
43
43
  - delivery.options do
44
44
  - unless @message.administrative?
45
45
  - form_for :message, @message, :url => deliver_admin_message_url(@message), :html => {"data-onsubmit_status"=>"Sending email messages&#8230;"} do |f|
46
46
  %h3
47
- = t("send_to").titlecase + ":"
47
+ = t("reader_extension.send_to").titlecase + ":"
48
48
  %p
49
49
  = radio_button_tag 'delivery', 'all', true, :id => 'delivery_to_all', :disabled => @message.possible_readers.empty?
50
50
  %label.checkbox{:for => 'delivery_to_all', :class => @message.possible_readers.empty? ? 'disabled' : ''}
51
- = t('everyone')
52
- = t('count_people', :count => @message.possible_readers.count)
51
+ = t('reader_extension.everyone')
52
+ = t('reader_extension.count_people', :count => @message.possible_readers.count)
53
53
  %p
54
54
  = radio_button_tag 'delivery', 'unsent', false, :id => 'delivery_to_unsent', :disabled => @message.undelivered_readers.empty?
55
55
  %label.checkbox{:for => 'delivery_to_unsent', :class => @message.undelivered_readers.empty? ? 'disabled' : ''}
56
- = t('everyone_unsent')
57
- = t('count_people', :count => @message.undelivered_readers.count)
56
+ = t('reader_extension.everyone_unsent')
57
+ = t('reader_extension.count_people', :count => @message.undelivered_readers.count)
58
58
  %p
59
59
  = radio_button_tag 'delivery', 'inactive', false, :id => 'delivery_to_inactive', :disabled => @message.inactive_readers.empty?
60
60
  %label.checkbox{:for => 'delivery_to_inactive', :class => @message.inactive_readers.empty? ? 'disabled' : ''}
61
- = t('everyone_inactive')
62
- = t('count_people', :count => @message.inactive_readers.count)
61
+ = t('reader_extension.everyone_inactive')
62
+ = t('reader_extension.count_people', :count => @message.inactive_readers.count)
63
63
 
64
64
  %p.buttons
65
- = submit_tag t('send_message')
66
- = t('or')
67
- = link_to t('cancel'), admin_messages_url
65
+ = submit_tag t('reader_extension.send_message')
66
+ = t('reader_extension.or')
67
+ = link_to t('reader_extension.cancel'), admin_messages_url
68
68
 
69
69
 
@@ -0,0 +1,16 @@
1
+ %tr.node{:id => "page-#{page.id}", :class =>"level-#{level}"}
2
+ - render_region :page, :locals => {:page => page, :level => level} do |node|
3
+ - node.title_column do
4
+ %td.page{:style => "padding-left: #{(level * 22) + 4}px"}
5
+ %span.w1
6
+ = image('page', :class => "icon", :alt => 'page-icon', :title => '')
7
+ %span.title
8
+ = link_to page.title, edit_admin_page_url(page)
9
+ - node.add_child_column do
10
+ %td.add-child
11
+ = link_to image('add-child', :alt => 'add child'), new_admin_page_child_url(page)
12
+ - node.remove_column do
13
+ %td.remove
14
+ = link_to image('remove', :alt => 'remove page'), remove_admin_page_url(page)
15
+ - page.children.each do |child|
16
+ = render :partial => 'admin/pages/listed', :locals => {:page => child, :level => level+1}
@@ -0,0 +1,13 @@
1
+ - groups = Group.find(:all)
2
+ - if groups.any?
3
+ .set
4
+ %p
5
+ = t('reader_extension.permitted_groups')
6
+ - groups.each do |group|
7
+ = check_box_tag "page[group_ids][]", group.id, @page.has_inherited_group?(group), :id => "page_group_#{group.id}", :disabled => @page.group_is_inherited?(group)
8
+ - if @page.group_is_inherited?(group)
9
+ %label.checkbox{:for => "page_group_#{group.id}", :class => 'disabled', :title => t('reader_extension.inherited_group')}
10
+ = group.name
11
+ - else
12
+ %label.checkbox{:for => "page_group_#{group.id}"}
13
+ = group.name
@@ -0,0 +1,24 @@
1
+ - page ||= @page
2
+ - group ||= @group
3
+
4
+ - liclass = 'loose'
5
+ - liclass = 'attached' if page.has_group?(group)
6
+ - liclass = 'inherited' if page.group_is_inherited?(group)
7
+
8
+ - if permission = group.permission_for(page)
9
+ %li{:class => "fake_checkbox checked", :id => "page_#{page.id}"}
10
+ = link_to_remote page.title, :url => admin_group_permission_url(group, permission), :method => 'delete', :loading => "$('page_#{page.id}').addClassName('waiting')", :update => "page_holder_#{page.id}"
11
+
12
+ - elsif page.has_inherited_group?(group)
13
+ %li{:class => "fake_checkbox inherited", :id => "page_#{page.id}"}
14
+ = page.title
15
+
16
+ - else
17
+ %li{:class => "fake_checkbox unchecked", :id => "page_#{page.id}"}
18
+ = link_to_remote page.title, :url => admin_group_permissions_url(group, :page_id => page.id), :loading => "$('page_#{page.id}').addClassName('waiting')", :update => "page_holder_#{page.id}"
19
+
20
+ - if page.children.any?
21
+ %ul
22
+ - page.children.each do |child|
23
+ %div{:id => "page_holder_#{child.id}"}
24
+ = render :partial => 'admin/permissions/page', :object => child
@@ -11,11 +11,13 @@
11
11
  - form.edit_registration do
12
12
  %fieldset
13
13
  %h3
14
- = t('registration').titlecase
14
+ = t('reader_extension.registration').titlecase
15
15
  %p
16
16
  = edit_config('reader.allow_registration?')
17
17
  %p
18
18
  = edit_config('reader.require_confirmation?')
19
+ %p
20
+ = edit_config('reader.get_profile?')
19
21
  %p
20
22
  = edit_config('reader.use_honorifics?')
21
23
  %p
@@ -7,11 +7,13 @@
7
7
  %h3
8
8
  .actions
9
9
  = button_to t("edit"), edit_admin_reader_configuration_url, :method => :get
10
- =t("reader_admin")
10
+ =t("reader_extension.reader_admin")
11
11
  %p.ruled
12
12
  = show_config 'reader.allow_registration?'
13
13
  %p.ruled
14
14
  = show_config 'reader.require_confirmation?'
15
+ %p.ruled
16
+ = show_config 'reader.get_profile?'
15
17
  %p.ruled
16
18
  = show_config 'reader.use_honorifics?'
17
19
  %p.ruled
@@ -29,7 +31,7 @@
29
31
  - messages.administration do
30
32
  #message_settings.box
31
33
  %h3
32
- =t("reader_emails")
34
+ =t("reader_extension.reader_emails")
33
35
 
34
36
  - MessageFunction.find_all.each do |func|
35
37
  - message = Message.functional(func)
@@ -7,22 +7,22 @@
7
7
  - render_region :form, :locals => {:f => f} do |form|
8
8
  - form.edit_name do
9
9
  %p
10
- = f.label :name, t('name')
10
+ = f.label :name, t('reader_extension.name')
11
11
  = f.text_field :name, :class => "textbox activate", :size => 32, :maxlength => 100
12
12
 
13
13
  - form.edit_email do
14
14
  %p
15
- = f.label :email, t('email_address') , :class => "optional"
15
+ = f.label :email, t('reader_extension.email_address') , :class => "optional"
16
16
  = f.text_field "email", :class => 'textbox', :size => 32, :maxlength => 255
17
17
 
18
18
  - form.edit_username do
19
19
  %p
20
- = f.label :login, t('username') , :class => "optional"
20
+ = f.label :login, t('reader_extension.username') , :class => "optional"
21
21
  = f.text_field "login", :class => 'textbox', :size => 32, :maxlength => 255
22
22
 
23
23
  - form.edit_readername do
24
24
  %p
25
- = f.label :login, t('readername')
25
+ = f.label :login, t('reader_extension.readername')
26
26
  = f.text_field "login", :class => "textbox", :size => 32, :maxlength => 40
27
27
 
28
28
  - form.edit_password do
@@ -35,7 +35,7 @@
35
35
 
36
36
  - form.edit_notes do
37
37
  %p
38
- = f.label :notes, t('notes'), :class => "optional"
38
+ = f.label :notes, t('reader_extension.notes'), :class => "optional"
39
39
  ~ f.text_area "notes", :size => "53x4", :class => "textarea"
40
40
 
41
41
  = render_region :form_additions, :locals => {:f => f}
@@ -45,7 +45,7 @@
45
45
  %p.buttons
46
46
  = save_model_button(@reader)
47
47
  = save_model_and_continue_editing_button(@reader)
48
- = t('or')
49
- = link_to t('cancel'), admin_readers_path
48
+ = t('reader_extension.or')
49
+ = link_to t('reader_extension.cancel'), admin_readers_path
50
50
  - form_bottom.edit_timestamp do
51
51
  = updated_stamp @reader
@@ -1,18 +1,18 @@
1
1
  %p#display_password{:style=> (@reader.new_record? or !@reader.valid?) ? "display: none" : nil}
2
- %label= t('password')
2
+ %label= t('reader_extension.password')
3
3
  %span.value
4
4
  &bull;&bull;&bull;&bull;&bull;
5
- %a.action{:href=>"#", :onclick=>" $('display_password').hide(); $('change_password').show()"}= t('change')
5
+ %a.action{:href=>"#", :onclick=>" $('display_password').hide(); $('change_password').show()"}= t('reader_extension.change')
6
6
  .set#change_password{:style=> (!@reader.new_record? && @reader.valid?) ? "display: none" : nil}
7
7
  %p
8
- = f.label :password, t('new_password')
8
+ = f.label :password, t('reader_extension.new_password')
9
9
  = f.password_field "password", :class => "textbox big", :value => "", :size => 15, :maxlength => 40
10
10
  %p
11
- = f.label :password_confirmation, t('password_confirmation')
11
+ = f.label :password_confirmation, t('reader_extension.password_confirmation')
12
12
  = f.password_field "password_confirmation", :class => "textbox big", :value => "", :size => 15, :maxlength => 40
13
13
  - unless @reader.new_record?
14
14
  %span
15
- = t('or')
16
- %a{:href=>"#", :onclick=>" $('display_password').show(); $('change_password').hide()"}= t('cancel')
15
+ = t('reader_extension.or')
16
+ %a{:href=>"#", :onclick=>" $('display_password').show(); $('change_password').hide()"}= t('reader_extension.cancel')
17
17
 
18
18
 
@@ -0,0 +1,7 @@
1
+ %p
2
+ %label{:for=>"reader_groups"} Groups
3
+ - Group.find(:all).each do |group|
4
+ %span.checkbox
5
+ = check_box_tag "reader[group_ids][]", group.id, @reader.is_in?(group), :id => "reader_group_#{group.id}"
6
+ %label.checkbox{:for => "reader_group_#{group.id}"}
7
+ = group.name
@@ -1,8 +1,9 @@
1
- - @page_title = @reader.name + ' ' + t('account') + ' - ' + default_page_title
1
+ - @page_title = @reader.name + ' ' + t('reader_extension.account') + ' - ' + default_page_title
2
2
  - body_classes << 'edit_user'
3
3
 
4
4
  - render_region :main do |main|
5
5
  - main.edit_header do
6
6
  %h1 Edit Reader
7
+
7
8
  - main.edit_form do
8
9
  = render :partial => 'form'
@@ -32,12 +32,15 @@
32
32
 
33
33
  - tbody.description_cell do
34
34
  %td.reader_description
35
- = truncate_and_textilize(reader.description, 24)
35
+ = truncate_words(scrub_html(reader.description), 24)
36
36
 
37
37
  - tbody.modify_cell do
38
38
  %td.actions
39
39
  - if admin?
40
- = link_to(image('minus') + ' ' + t('delete_reader'), admin_reader_url(reader), :method => :delete, :class => 'action', :confirm => t('really_delete_reader', :name => reader.name))
40
+ - if reader.is_user?
41
+ %span.action.disabled= image('minus_disabled') + ' ' + t('remove')
42
+ - else
43
+ = link_to(image('minus') + ' ' + t('remove'), admin_reader_url(reader), :method => :delete, :class => 'action', :confirm => t('reader_extension.really_delete_reader', :name => reader.name))
41
44
 
42
45
 
43
46
  - render_region :bottom do |bottom|
@@ -1,10 +1,15 @@
1
- %p
2
- = t('reset_message_instructions')
1
+ - content_for :title do
2
+ = t('reader_extension.reset_message_sent')
3
3
 
4
- - content_for :breadcrumbs do
5
- = link_to t('home').titlecase, '/'
6
- &gt;
7
- = t('reset_password')
4
+ - content_for :instructions do
5
+ %p
6
+ = t('reader_extension.reset_message_instructions')
8
7
 
9
- - content_for :title do
10
- = t('reset_message_sent')
8
+ - content_for :breadcrumbs do
9
+ = link_to t('reader_extension.home').titlecase, '/'
10
+ &gt;
11
+ = t('reader_extension.reset_password')
12
+
13
+ = render :partial => 'shared/standard_reader_parts'
14
+
15
+ = yield :instructions
@@ -1,5 +1,3 @@
1
- - render :partial => 'readers/standard_parts'
2
-
3
1
  - content_for :form do
4
2
  - if @reader
5
3
  - form_for @reader, :url => password_reset_path, :method => :put, :html => {:class => 'friendly', :autocomplete => "off"} do |f|
@@ -7,64 +5,66 @@
7
5
  - if @reader.errors.any?
8
6
  %p.errornote
9
7
  %strong
10
- = t('sorry').titlecase
11
- = t('form_problem') + '.'
8
+ = t('reader_extension.sorry').titlecase
9
+ = t('reader_extension.form_problem') + '.'
12
10
 
13
11
  = hidden_field_tag :id, params[:id]
14
12
  = hidden_field_tag :confirmation_code, @reader.perishable_token
15
13
 
16
14
  %p
17
- = f.label :password, t('new_password'), :class => 'required'
15
+ = f.label :password, t('reader_extension.new_password'), :class => 'required'
18
16
  %br
19
17
  = f.password_field :password, :class => 'titular'
20
18
 
21
19
  %p
22
- = f.label :password_confirmation, t('confirm_password'), :class => 'required'
20
+ = f.label :password_confirmation, t('reader_extension.confirm_password'), :class => 'required'
23
21
  %br
24
22
  = f.password_field :password_confirmation, :class => 'titular'
25
23
  %p
26
- = f.submit t('set_new_password')
24
+ = f.submit t('reader_extension.set_new_password')
27
25
 
28
26
  %p
29
- = t('password_not_yet_changed', :url => reader_login_url)
27
+ = t('reader_extension.password_not_yet_changed', :url => reader_login_url)
30
28
 
31
29
  - else
32
30
  - form_tag edit_password_reset_path, :method => 'GET', :class => 'friendly', :autocomplete => "off" do
33
31
  = hidden_field_tag :id, params[:id]
34
32
  %p
35
33
  %label{:for => "confirmation_code"}
36
- = t('confirmation_code')
34
+ = t('reader_extension.confirmation_code')
37
35
  %br
38
36
  = text_field_tag 'confirmation_code', '', :class => 'titular'
39
37
 
40
38
  %p
41
- = submit_tag t('continue')
39
+ = submit_tag t('reader_extension.continue')
42
40
 
43
41
  %ul.actions
44
42
  %li
45
- = link_to t("restart_password_change"), new_password_reset_url
43
+ = link_to t("reader_extension.restart_password_change"), new_password_reset_url
46
44
 
47
45
  - content_for :title do
48
46
  - if @reader
49
- = t('change_password')
47
+ = t('reader_extension.change_password')
50
48
  - else
51
- = t('enter_code')
49
+ = t('reader_extension.enter_code')
52
50
 
53
51
  - content_for :introduction do
54
- - if @reader
55
- %p
56
- %strong
57
- = t('hello').titlecase
58
- = @reader.name + '!'
59
- = t('new_password_instructions')
60
- - else
61
- %p.errornote
62
- = t('sorry_reset_not_found')
52
+ %div.introduction
53
+ - if @reader
54
+ %p
55
+ %strong
56
+ = t('reader_extension.hello').titlecase
57
+ = @reader.name + '!'
58
+ = t('reader_extension.new_password_instructions')
59
+ - else
60
+ %p.errornote
61
+ = t('reader_extension.sorry_reset_not_found')
63
62
 
64
-
65
63
  - content_for :breadcrumbs do
66
- = link_to t('home').titlecase, '/'
64
+ = link_to t('reader_extension.home').titlecase, '/'
67
65
  &gt;
68
- = t('reset_password')
66
+ = t('reader_extension.reset_password')
67
+
68
+ = render :partial => 'shared/standard_reader_parts'
69
69
 
70
- = yield :form
70
+ = yield :form