radiant-reader-extension 3.0.33 → 3.0.35

Sign up to get free protection for your applications and to get access to all the features.
@@ -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