radiant-reader-extension 3.0.33 → 3.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,68 +2,74 @@
2
2
  - check_password ||= false
3
3
 
4
4
  - form_for reader, :html => {:class => 'friendly'} do |f|
5
- %input{:type => :hidden, :name => :authentication_type, :value => :user}
5
+ - render_region :form do |form|
6
6
 
7
- = render :partial => 'edit_names', :locals => {:f => f}
7
+ - form.edit_name do
8
+ = render :partial => 'edit_names', :locals => {:f => f}
8
9
 
9
- - if reader.new_record?
10
- %p
11
- = f.label reader.email_field, t('activerecord.attributes.reader.email'), :class => 'required'
12
- %br
13
- = text_field_tag reader.email_field, params[reader.email_field] || reader.email, :id => "reader_#{reader.email_field}", :class => 'standard'
14
- %br
15
- %span.formnote= t('reader_extension.form_notes.account.email')
16
- .innocuous
17
- %p
18
- =f.label :email, nil, :class => 'required'
19
- %br
20
- = f.text_field :email, :class => 'standard', :value => ""
21
- %br
22
- %span.formnote= t('reader_extension.spam_trap')
10
+ - form.edit_email do
11
+ - if reader.new_record?
12
+ %p
13
+ = f.label reader.email_field, t('activerecord.attributes.reader.email'), :class => 'required'
14
+ %br
15
+ = text_field_tag reader.email_field, params[reader.email_field] || reader.email, :id => "reader_#{reader.email_field}", :class => 'standard'
16
+ %br
17
+ %span.formnote= t('reader_extension.form_notes.account.email')
18
+ .innocuous
19
+ %p
20
+ =f.label :email, nil, :class => 'required'
21
+ %br
22
+ = f.text_field :email, :class => 'standard', :value => ""
23
+ %br
24
+ %span.formnote= t('reader_extension.spam_trap')
23
25
 
24
- - else
25
- %p
26
- = f.label :email, nil, :class => 'required'
27
- %br
28
- = f.text_field :email, :class => 'standard'
29
- %br
30
- %span.formnote= t('reader_extension.form_notes.account.email')
26
+ - else
27
+ %p
28
+ = f.label :email, nil, :class => 'required'
29
+ %br
30
+ = f.text_field :email, :class => 'standard'
31
+ %br
32
+ %span.formnote= t('reader_extension.form_notes.account.email')
31
33
 
32
- - if reader.new_record?
33
- %p
34
- = f.label :password, nil, :class => 'required'
35
- %br
36
- = f.password_field :password, :class => 'standard', :autocomplete => 'off'
37
- %br
38
- %span.formnote= t('reader_extension.form_notes.account.new_password')
34
+ - form.edit_password do
35
+ - if reader.new_record?
36
+ %p
37
+ = f.label :password, nil, :class => 'required'
38
+ %br
39
+ = f.password_field :password, :class => 'standard', :autocomplete => 'off'
40
+ %br
41
+ %span.formnote= t('reader_extension.form_notes.account.new_password')
39
42
 
40
- %p
41
- = f.label :password_confirmation, nil, :class => 'required'
42
- %br
43
- = f.password_field :password_confirmation, :class => 'standard', :autocomplete => 'off'
43
+ %p
44
+ = f.label :password_confirmation, nil, :class => 'required'
45
+ %br
46
+ = f.password_field :password_confirmation, :class => 'standard', :autocomplete => 'off'
44
47
 
45
- - else
46
- .display_password
47
- %p
48
- = f.label :password, nil, :class => 'optional'
49
- %span.password
50
- •••••
51
- %span.formnote= link_to t('reader_extension.change_password'), '#', :class => 'toggle', :rel => ".display_password, .new_password"
48
+ - else
49
+ .display_password
50
+ %p
51
+ = f.label :password, nil, :class => 'optional'
52
+ %span.password
53
+ •••••
54
+ %span.formnote= link_to t('reader_extension.change_password'), '#', :class => 'toggle', :rel => ".display_password, .new_password"
52
55
 
53
- .new_password.hidden
54
- %p
55
- = f.label :password, t('reader_extension.new_password'), :class => 'required'
56
- %br
57
- = f.password_field :password, :class => 'standard', :autocomplete => 'off'
58
- %span.formnote= t('reader_extension.form_notes.account.new_password')
59
- %p
60
- = f.label :password_confirmation, t('reader_extension.confirm_new_password'), :class => 'required'
61
- %br
62
- = f.password_field :password_confirmation, :class => 'standard', :autocomplete => 'off'
56
+ .new_password.hidden
57
+ %p
58
+ = f.label :password, t('reader_extension.new_password'), :class => 'required'
59
+ %br
60
+ = f.password_field :password, :class => 'standard', :autocomplete => 'off'
61
+ %span.formnote= t('reader_extension.form_notes.account.new_password')
62
+ %p
63
+ = f.label :password_confirmation, t('reader_extension.confirm_new_password'), :class => 'required'
64
+ %br
65
+ = f.password_field :password_confirmation, :class => 'standard', :autocomplete => 'off'
63
66
 
64
- = render :partial => 'choose_memberships'
67
+ - form.edit_groups do
68
+ = render :partial => 'choose_memberships'
65
69
 
66
- %p
67
- = submit_tag reader.new_record? ? t('reader_extension.create_account') : t("reader_extension.update_account")
68
- or
69
- = link_to 'cancel', request.referer
70
+ - render_region :form_bottom, :locals => {:f => f} do |form_bottom|
71
+ - form_bottom.edit_buttons do
72
+ %p
73
+ = submit_tag reader.new_record? ? t('reader_extension.create_account') : t("reader_extension.update_account")
74
+ or
75
+ = link_to 'cancel', request.referer
@@ -2,72 +2,93 @@
2
2
  - check_password ||= false
3
3
 
4
4
  - form_for reader, :html => {:class => 'friendly'} do |f|
5
- %input{:type => :hidden, :name => :authentication_type, :value => :user}
5
+ - render_region :profile_form do |form|
6
6
 
7
- - if Radiant.config['reader.show_honorifics?']
8
- %p
9
- = f.label :honorific, nil, :class => 'optional'
10
- %br
11
- = f.text_field :honorific, :class => 'standard'
12
- %span.formnote= t('reader_extension.form_notes.account.honorific')
7
+ - form.edit_honorific do
8
+ - if Radiant.config['reader.show_honorifics?']
9
+ %p
10
+ = f.label :honorific, nil, :class => 'optional'
11
+ %br
12
+ = f.text_field :honorific, :class => 'standard'
13
+ %span.formnote= t('reader_extension.form_notes.account.honorific')
13
14
 
14
- = render :partial => 'edit_names', :locals => {:f => f}
15
+ - form.edit_name do
16
+ = render :partial => 'edit_names', :locals => {:f => f}
15
17
 
16
- %p
17
- = f.label :phone, nil, :class => 'optional'
18
- %br
19
- = f.text_field :phone, :class => 'standard'
20
- %span.formnote= t('reader_extension.form_notes.account.phone')
18
+ - form.edit_dob do
19
+ - if Radiant.config['reader.show_dobs?']
20
+ %p
21
+ = f.label :dob, nil, :class => 'optional'
22
+ %br
23
+ %span.dateparts
24
+ = f.date_select :dob, :order => [:day, :month, :year], :start_year => Time.now.year - 100, :end_year => Time.now.year, :include_blank => true
25
+ = f.check_box :dob_secret
26
+ = f.label :dob_secret
27
+ %br
28
+ %span.formnote= t('reader_extension.form_notes.account.dob')
21
29
 
22
- %p
23
- = f.label :mobile, nil, :class => 'optional'
24
- %br
25
- = f.text_field :mobile, :class => 'standard'
26
- %span.formnote= t('reader_extension.form_notes.account.mobile')
30
+ - form.edit_phone do
31
+ %p
32
+ = f.label :phone, nil, :class => 'optional'
33
+ %br
34
+ = f.text_field :phone, :class => 'standard'
35
+ %span.formnote= t('reader_extension.form_notes.account.phone')
27
36
 
28
- %p
29
- = f.label :post_country, nil, :class => 'optional'
30
- = f.select :post_country, country_options_for_select(reader.post_country)
31
- %br
32
- %span.formnote= t('reader_extension.form_notes.account.post_country')
37
+ - form.edit_mobile do
38
+ %p
39
+ = f.label :mobile, nil, :class => 'optional'
40
+ %br
41
+ = f.text_field :mobile, :class => 'standard'
42
+ %span.formnote= t('reader_extension.form_notes.account.mobile')
33
43
 
34
- - if Radiant.config['reader.postal.use_organisation?']
35
- %p
36
- = f.label :post_organisation, nil, :class => 'optional'
37
- = f.text_field :post_organisation, :class => 'standard'
38
- %br
39
- %span.formnote= t('reader_extension.form_notes.account.post_organisation')
44
+ - form.edit_address do
45
+ %p
46
+ = f.label :post_country, nil, :class => 'optional'
47
+ = f.select :post_country, country_options_for_select(reader.post_country)
48
+ %br
49
+ %span.formnote= t('reader_extension.form_notes.account.post_country')
50
+
51
+ - if Radiant.config['reader.postal.use_organisation?']
52
+ %p
53
+ = f.label :post_organisation, nil, :class => 'optional'
54
+ = f.text_field :post_organisation, :class => 'standard'
55
+ %br
56
+ %span.formnote= t('reader_extension.form_notes.account.post_organisation')
40
57
 
41
- %p
42
- = f.label :post_line1, t('activerecord.attributes.reader.postal_address'), :class => 'optional'
43
- %br
44
- = f.text_field :post_line1, :class => 'standard'
45
- %br
46
- = f.text_field :post_line2, :class => 'standard'
47
- %br
48
- = f.label :post_city, nil, :class => 'optional'
49
- = f.text_field :post_city, :class => 'standard'
50
- %br
51
- = f.label :post_province, nil, :class => 'optional'
52
- = f.text_field :post_province, :class => 'standard'
53
- %br
54
- = f.label :postcode, nil, :class => 'optional'
55
- = f.text_field :postcode, :class => 'standard'
58
+ %p
59
+ = f.label :post_line1, t('activerecord.attributes.reader.postal_address'), :class => 'optional'
60
+ %br
61
+ = f.text_field :post_line1, :class => 'standard'
62
+ %br
63
+ = f.text_field :post_line2, :class => 'standard'
64
+ %br
65
+ = f.label :post_city, nil, :class => 'optional'
66
+ = f.text_field :post_city, :class => 'standard'
67
+ %br
68
+ = f.label :post_province, nil, :class => 'optional'
69
+ = f.text_field :post_province, :class => 'standard'
70
+ %br
71
+ = f.label :postcode, nil, :class => 'optional'
72
+ = f.text_field :postcode, :class => 'standard'
56
73
 
57
- - if Radiant.config['reader.show_descriptions?']
58
- %p
59
- = f.label :description, nil, :class => 'optional'
60
- %br
61
- = f.text_area :description, :class => Radiant.config['forum.toolbar?'] ? 'rte' : 'standard'
62
- %span.formnote= t('reader_extension.form_notes.account.description')
74
+ - form.edit_description do
75
+ - if Radiant.config['reader.show_descriptions?']
76
+ %p
77
+ = f.label :description, nil, :class => 'optional'
78
+ %br
79
+ = f.text_area :description, :class => Radiant.config['forum.toolbar?'] ? 'rte' : 'standard'
80
+ %span.formnote= t('reader_extension.form_notes.account.description')
63
81
 
64
- %p
65
- = f.check_box :unshareable, :class => 'reversed'
66
- = f.label :unshareable
67
- %br
68
- %span.formnote= t('reader_extension.form_notes.account.unshareable')
82
+ - form.edit_shareability do
83
+ %p
84
+ = f.check_box :unshareable, :class => 'reversed'
85
+ = f.label :unshareable
86
+ %br
87
+ %span.formnote= t('reader_extension.form_notes.account.unshareable')
69
88
 
70
- %p
71
- = submit_tag reader.new_record? ? t('reader_extension.create_account') : t("reader_extension.update_account")
72
- or
73
- = link_to 'cancel', request.referer
89
+ - render_region :form_bottom, :locals => {:f => f} do |form_bottom|
90
+ - form_bottom.edit_buttons do
91
+ %p
92
+ = submit_tag reader.new_record? ? t('reader_extension.create_account') : t("reader_extension.update_account")
93
+ or
94
+ = link_to 'cancel', request.referer
@@ -24,6 +24,8 @@
24
24
  = edit_config('reader.show_honorifics?')
25
25
  %p
26
26
  = edit_config('reader.show_descriptions?')
27
+ %p
28
+ = edit_config('reader.show_dobs?')
27
29
  %p
28
30
  = edit_config('reader.layout')
29
31
 
@@ -20,6 +20,8 @@
20
20
  = show_config 'reader.show_honorifics?'
21
21
  %p.ruled
22
22
  = show_config 'reader.show_descriptions?'
23
+ %p.ruled
24
+ = show_config 'reader.show_dobs?'
23
25
  %p.ruled
24
26
  = show_config 'reader.layout'
25
27
  %p.ruled
@@ -26,6 +26,15 @@
26
26
  - form.edit_password do
27
27
  = render "password_fields", :f => f
28
28
 
29
+ - form.edit_dob do
30
+ %p
31
+ = f.label :dob
32
+ %br
33
+ = f.date_select :dob
34
+ %br
35
+ = f.check_box :dob_secret
36
+ = f.label :dob_secret
37
+
29
38
  - form.edit_phone do
30
39
  %p
31
40
  = f.label :phone
@@ -3,6 +3,6 @@
3
3
  %h3
4
4
  = t('reader_extension.dashboard.groups')
5
5
  %ul.groups
6
- - current_reader.all_groups.each do |group|
6
+ - current_reader.groups.each do |group|
7
7
  %li
8
8
  = link_to_group(group)
@@ -12,6 +12,20 @@
12
12
  = t('reader_extension.people').titlecase
13
13
  = render :partial => 'readers/list', :locals => {:readers => @readers}
14
14
 
15
+ - when 'private'
16
+ .groups
17
+ %h2
18
+ = t('reader_extension.your_groups')
19
+ - if @groups.any
20
+ = render :partial => 'groups/group', :collection => @groups
21
+ - else
22
+ = t('reader_extension.no_groups')
23
+ .readers
24
+ - if @readers.any?
25
+ %h2
26
+ = t('reader_extension.people')
27
+ = render :partial => 'readers/list', :locals => {:readers => @readers}
28
+
15
29
  - when 'grouped'
16
30
  .groups
17
31
  %h2
@@ -4,6 +4,6 @@
4
4
  %li
5
5
  = link_to t("reader_extension.directory.link"), readers_url
6
6
  %li
7
- = link_to t("reader_extension.directory.csv_link"), readers_url(:format => :csv)
7
+ = link_to t("reader_extension.directory.csv_link"), readers_url(:format => :csv), :class => 'csv'
8
8
  %li
9
- = link_to t("reader_extension.directory.vcard_link"), readers_url(:format => :vcard)
9
+ = link_to t("reader_extension.directory.vcard_link"), readers_url(:format => :vcard), :class => 'vcards'
@@ -1,30 +1,30 @@
1
- - if Radiant.config['reader.share_details?']
2
- - reader ||= @reader
3
-
1
+ - reader ||= @reader
2
+
3
+ %div.contact
4
4
  - if reader.unshareable?
5
5
  - if reader == current_reader
6
6
  %p.warning
7
7
  = t('reader_extension.you_are_not_shared')
8
8
  - else
9
- %div.contact
10
- %h3
11
- = link_to reader.preferred_name, reader_url(reader, :format => :vcard), :class => 'vcard', :title => t('reader_extension.directory.vcard_link')
12
- %ul
13
- - if email = reader.email
9
+ %h3
10
+ = link_to reader.name, reader_url(reader, :format => :vcard), :class => 'vcard', :title => t('reader_extension.directory.vcard_link')
11
+ - if reader == current_reader
12
+ %span.note
13
+ = link_to t("reader_extension.edit_profile"), reader_edit_profile_url, :class => 'edit'
14
+ %ul
15
+ - if email = reader.email
16
+ %li
17
+ = t("reader_extension.directory.email") + ': '
18
+ = email_link email
19
+ - %w{phone mobile}.each do |field|
20
+ - if value = reader.send(field.to_sym)
14
21
  %li
15
- = t("reader_extension.directory.email") + ': '
16
- = email_link email
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
- - if reader.postal_address?
23
- %li
24
- %span.indent
25
- = t("reader_extension.directory.postal_address") + ': '
26
- = reader.postal_address.to_html
27
- - if reader == current_reader
28
- %li.edit
29
- = link_to t("reader_extension.edit_profile"), reader_edit_profile_url, :class => 'edit'
22
+ = t("reader_extension.directory.#{field}") + ': '
23
+ = value
24
+ - if reader.postal_address?
25
+ %li
26
+ %span.indent
27
+ = t("reader_extension.directory.postal_address") + ': '
28
+ = reader.postal_address.to_html
30
29
 
30
+
@@ -18,3 +18,6 @@
18
18
 
19
19
  - content_for :signals do
20
20
  = render :partial => 'accounts/flasher'
21
+
22
+ - content_for :welcome do
23
+ =t("reader_extension.welcome", :name => current_reader.name) if current_reader
@@ -12,6 +12,7 @@ Radiant.config do |config|
12
12
  reader.define 'login_to', :default => "dashboard"
13
13
  reader.define 'show_honorifics?', :default => false
14
14
  reader.define 'show_descriptions?', :default => false
15
+ reader.define 'show_dobs?', :default => false
15
16
  end
16
17
  config.namespace('email') do |email|
17
18
  email.define 'layout', :select_from => lambda { Layout.all.map(&:name) }, :allow_blank => true
@@ -10,6 +10,8 @@ en:
10
10
  role: "Role"
11
11
  admin: "admin?"
12
12
  reader:
13
+ dob: "Date of birth"
14
+ dob_secret: "Keep secret"
13
15
  description: "A but of text about yourself"
14
16
  email: "Email address"
15
17
  forename: "Forename"
@@ -70,6 +72,7 @@ en:
70
72
  require_confirmation?: "Confirm email addresses"
71
73
  show_honorifics?: "Show honorifics"
72
74
  show_descriptions?: "Show biography"
75
+ show_dobs?: "Show dates of birth"
73
76
  email:
74
77
  address: "Message reply-to"
75
78
  layout: "Email layout"
@@ -95,7 +98,7 @@ en:
95
98
  access_open: "Open"
96
99
  access_restricted: "Restricted"
97
100
  access_restricted_to: "only visible to %{groups}"
98
- account_settings: "Account settings"
101
+ account_settings: "Preferences"
99
102
  account_updated: "Your account has been updated"
100
103
  activate_account: "Activate your account"
101
104
  activation_complete: "Thank you very much for persevering with the registration process. Your account is now active."
@@ -159,12 +162,12 @@ en:
159
162
  directory: "Directory"
160
163
  edit_profile: "Edit profile"
161
164
  groups: "Your groups"
162
- introduction: "Hello %{name}. Welcome back. This page gathers together recent activity, useful links and bits of administration. You can always get back here by clicking on a 'dashboard' link."
165
+ introduction: "<strong>Hello %{name}.</strong> Welcome back. This page gathers together recent activity, useful links and bits of administration. You can always get back here by clicking on a 'dashboard' link."
163
166
  listing: "Directory listing"
164
167
  messages: "Messages for you"
165
168
  profile: "Your page"
166
169
  title: "Welcome"
167
- welcome: "Hello %{name}. Welcome to %{site} and thank you for persevering with the registration process. Your account is now active and this is your (empty) dashboard page."
170
+ welcome: "<strong>Hello %{name}.</strong> Welcome to %{site} and thank you for persevering with the registration process. Your account is now active and this is your (empty) dashboard page."
168
171
  delete_group: "delete group"
169
172
  delete_message: "Delete message"
170
173
  delete_message: "delete message"
@@ -187,6 +190,7 @@ en:
187
190
  download_as: "Download as"
188
191
  download_group_as: "You can download the whole group as"
189
192
  download_vcard: "Download vcard"
193
+ edit: "edit"
190
194
  edit_group: "edit group"
191
195
  edit_message: "Edit message"
192
196
  edit_profile: "Edit your profile"
@@ -209,6 +213,7 @@ en:
209
213
  form_notes:
210
214
  account:
211
215
  description: "This appears at the top of your profile page."
216
+ dob: "This is used for some calculations and might appear in your profile."
212
217
  email: "we will send activation instructions to this address"
213
218
  existing_password: "leave blank to keep present password. If changing, at least four characters."
214
219
  forename: "This is normally how we refer to you..."
@@ -430,6 +435,7 @@ en:
430
435
  your_groups: "Your groups"
431
436
  your_group_members: "All your group members"
432
437
  your_name: "Your name"
438
+ welcome: "Hello %{name}."
433
439
  readers: "Readers"
434
440
  settings: "Settings"
435
441
  time:
@@ -0,0 +1,11 @@
1
+ class DateOfBirth < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :readers, :dob, :date
4
+ add_column :readers, :dob_secret, :boolean
5
+ end
6
+
7
+ def self.down
8
+ remove_column :readers, :dob
9
+ remove_column :readers, :dob_secret
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ module GroupedRailsPage
2
+ attr_accessor :cached
3
+ @cached = false
4
+
5
+ def cache?
6
+ !!@cached
7
+ end
8
+ end
9
+
10
+
@@ -1,5 +1,5 @@
1
1
  module RadiantReaderExtension
2
- VERSION = '3.0.33'
2
+ VERSION = '3.0.35'
3
3
  SUMMARY = %q{Reader/viewer/visitor registration, login and access-control for Radiant CMS}
4
4
  DESCRIPTION = %q{Provides reader/member/user registration and management functions including password-reminder, group-based page access control and administrative email.}
5
5
  URL = "http://radiant.spanner.org/reader"
@@ -29,7 +29,7 @@ module ReaderAdminUI
29
29
  OpenStruct.new.tap do |reader|
30
30
  reader.edit = Radiant::AdminUI::RegionSet.new do |edit|
31
31
  edit.main.concat %w{edit_header edit_form}
32
- edit.form.concat %w{edit_name edit_email edit_nickname edit_password reader_groups edit_address edit_phone edit_description edit_notes}
32
+ edit.form.concat %w{edit_name edit_email edit_nickname edit_password edit_dob reader_groups edit_address edit_phone edit_description edit_notes}
33
33
  edit.form_bottom.concat %w{edit_timestamp edit_buttons}
34
34
  end
35
35
  reader.index = Radiant::AdminUI::RegionSet.new do |index|
@@ -104,7 +104,7 @@ module ReaderAdminUI
104
104
  OpenStruct.new.tap do |account|
105
105
  account.dashboard = Radiant::AdminUI::RegionSet.new do |dashboard|
106
106
  dashboard.main.concat %w{dashboard/welcome dashboard/groups}
107
- dashboard.sidebar.concat %w{dashboard/profile dashboard/messages dashboard/directory}
107
+ dashboard.sidebar.concat %w{dashboard/profile dashboard/messages}
108
108
  end
109
109
  account.index = Radiant::AdminUI::RegionSet.new do |index|
110
110
  index.main.concat %w{readers/directory}
@@ -115,12 +115,12 @@ module ReaderAdminUI
115
115
  end
116
116
  account.edit = Radiant::AdminUI::RegionSet.new do |edit|
117
117
  edit.main.concat %w{preamble form gravatar}
118
- edit.form.concat %w{edit_name edit_email edit_username edit_password}
118
+ edit.form.concat %w{edit_name edit_email edit_password}
119
119
  edit.form_bottom.concat %w{edit_buttons}
120
120
  end
121
121
  account.edit_profile = Radiant::AdminUI::RegionSet.new do |edit_profile|
122
122
  edit_profile.main.concat %w{preamble profile_form gravatar}
123
- edit_profile.profile_form.concat %w{edit_honorific edit_name edit_email edit_phone edit_mobile edit_address edit_shareability}
123
+ edit_profile.profile_form.concat %w{edit_honorific edit_name edit_dob edit_phone edit_mobile edit_address edit_shareability}
124
124
  edit_profile.form_bottom.concat %w{edit_buttons}
125
125
  end
126
126
  account.new = account.edit
@@ -1,28 +1,30 @@
1
1
  (function($) {
2
2
 
3
- $.fn.rails_flash = function() {
4
- this.each(function() {
5
- var self = $(this);
3
+ $.fn.rails_flash = function() {
4
+ this.each(function() {
5
+ var self = $(this);
6
6
  var closer = $('<a href="#" class="closer">x</a>').appendTo(self);
7
7
  closer.click( function (event) {
8
8
  event.preventDefault();
9
9
  self.fadeOut('fast');
10
10
  });
11
- });
12
- return this;
11
+ });
12
+ return this;
13
13
  };
14
14
 
15
- $.fn.toggler = function() {
16
- this.each(function() {
17
- var self = $(this);
18
- var toggling = $(self.attr('rel'));
15
+ $.fn.toggler = function() {
16
+ this.each(function() {
17
+ var self = $(this);
18
+ var toggling = $(self.attr('rel'));
19
19
  self.click( function (event) {
20
20
  event.preventDefault();
21
21
  toggling.toggle();
22
+ if (toggling.is(':visible')) self.text(self.text().replace('more', 'fewer'));
23
+ else self.text(self.text().replace('fewer', 'more'));
22
24
  });
23
- });
24
- return this;
25
- };
25
+ });
26
+ return this;
27
+ };
26
28
 
27
29
  $.ajaxSetup({
28
30
  'beforeSend': function(xhr) {
@@ -38,18 +40,18 @@
38
40
  if (e.target) e.target.blur();
39
41
  }
40
42
  }
41
-
42
- $.fn.fetch_remote_content = function() {
43
- this.each(function() {
44
- var self = $(this);
45
- var url = self.attr('href');
46
- if (url) {
47
- self.addClass('waiting');
43
+
44
+ $.fn.fetch_remote_content = function() {
45
+ this.each(function() {
46
+ var self = $(this);
47
+ var url = self.attr('href');
48
+ if (url) {
49
+ self.addClass('waiting');
48
50
  $.get(url, function (result) { self.replaceWith($(result)); }, 'html');
49
- }
50
- });
51
- return this;
52
- };
51
+ }
52
+ });
53
+ return this;
54
+ };
53
55
 
54
56
  /*
55
57
  * jQuery Color Animations
@@ -72,7 +74,7 @@
72
74
  Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0),
73
75
  Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0)
74
76
  ].join(",") + ")";
75
- }
77
+ };
76
78
  });
77
79
 
78
80
  // Color Conversion functions from highlightFade
@@ -112,6 +112,13 @@ form.friendly
112
112
  line-height: 1.2
113
113
  color: $pale
114
114
  border: 1px solid $pale
115
+ span.dateparts
116
+ display: block
117
+ overflow: hidden
118
+ select
119
+ float: left
120
+ width: auto
121
+ margin-right: 0.5em
115
122
  span.error-with-field
116
123
  input, select
117
124
  border: 1px solid red
@@ -166,8 +173,14 @@ div.indented
166
173
  text-align: right
167
174
 
168
175
  a.vcard
169
- padding-left: 30px
170
- background: transparent url(/images/furniture/vcard.png) no-repeat 0 0
176
+ color: #50860e
177
+ padding-left: 20px
178
+ background: transparent url(/images/furniture/vcard-16x16.png) no-repeat 0 0
179
+
180
+ a.vcards
181
+ color: #50860e
182
+ padding-left: 24px
183
+ background: transparent url(/images/furniture/vcards.png) no-repeat 0 0
171
184
 
172
185
  h2
173
186
  span.headernote
@@ -179,7 +192,11 @@ h2
179
192
  text-indent: -100px
180
193
  padding-left: 0
181
194
  margin-right: 4px
182
-
195
+
196
+ h3
197
+ span.note
198
+ font-size: 60%
199
+
183
200
  a.mailto
184
201
  color: $mid
185
202
 
@@ -211,6 +228,14 @@ ul.groups
211
228
  margin-right: 1em
212
229
  display: inline
213
230
 
231
+ .groups
232
+ .group
233
+ float: left
234
+ margin-right: 32px
235
+
236
+ .readers
237
+ clear: left
238
+
214
239
  .cleared
215
240
  clear: left
216
241
 
@@ -14,7 +14,8 @@ class ReaderExtension < Radiant::Extension
14
14
  SiteController.send :include, SiteControllerExtensions # access control based on group membership
15
15
  User.send :include, ReaderUser # update linked reader when user account values change
16
16
  Page.send :include, GroupedPage # group associations and visibility decisions
17
- # Site.send :include, ReaderSite if defined? Site # adds site scope and site-based layout-chooser
17
+ RailsPage.send :include, GroupedRailsPage # some control over the caching of ShareLayouts pages
18
+ # Site.send :include, ReaderSite if defined? Site # adds site scope and site-based layout-chooser
18
19
  Page.send :include, ReaderTags # a few mailmerge-like radius tags for use in messages, or for greeting readers on (uncached) pages
19
20
  UserActionObserver.instance.send :add_observer!, Reader
20
21
  UserActionObserver.instance.send :add_observer!, Message
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radiant-reader-extension
3
3
  version: !ruby/object:Gem::Version
4
- hash: 69
4
+ hash: 65
5
5
  prerelease:
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
- - 33
10
- version: 3.0.33
9
+ - 35
10
+ version: 3.0.35
11
11
  platform: ruby
12
12
  authors:
13
13
  - William Ross
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-11-21 00:00:00 +00:00
19
- default_executable:
18
+ date: 2011-11-22 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: radiant-layouts-extension
@@ -305,10 +304,12 @@ files:
305
304
  - db/migrate/20110908194602_membership_attributes.rb
306
305
  - db/migrate/20111013134949_sort_out_names.rb
307
306
  - db/migrate/20111013203306_remove_login.rb
307
+ - db/migrate/20111122115514_date_of_birth.rb
308
308
  - lib/controller_extensions.rb
309
309
  - lib/group_tags.rb
310
310
  - lib/grouped_model.rb
311
311
  - lib/grouped_page.rb
312
+ - lib/grouped_rails_page.rb
312
313
  - lib/message_tags.rb
313
314
  - lib/radiant-reader-extension.rb
314
315
  - lib/reader_admin_ui.rb
@@ -361,11 +362,10 @@ files:
361
362
  - spec/models/reader_spec.rb
362
363
  - spec/spec.opts
363
364
  - spec/spec_helper.rb
364
- has_rdoc: true
365
365
  homepage: http://radiant.spanner.org/reader
366
366
  licenses: []
367
367
 
368
- post_install_message: "\n Add this to your radiant project with a line in your Gemfile:\n\n gem 'radiant-reader-extension', '~> 3.0.33'\n\n and if you haven't already, remember to enable ActionMailer in your\n project's config/environment.rb.\n "
368
+ post_install_message: "\n Add this to your radiant project with a line in your Gemfile:\n\n gem 'radiant-reader-extension', '~> 3.0.35'\n\n and if you haven't already, remember to enable ActionMailer in your\n project's config/environment.rb.\n "
369
369
  rdoc_options: []
370
370
 
371
371
  require_paths:
@@ -391,7 +391,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
391
391
  requirements: []
392
392
 
393
393
  rubyforge_project:
394
- rubygems_version: 1.5.3
394
+ rubygems_version: 1.8.10
395
395
  signing_key:
396
396
  specification_version: 3
397
397
  summary: Reader/viewer/visitor registration, login and access-control for Radiant CMS