muck-users 0.3.2 → 0.3.3
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.
- data/VERSION +1 -1
- data/app/controllers/admin/muck/access_codes_controller.rb +46 -21
- data/app/controllers/admin/muck/roles_controller.rb +2 -2
- data/app/controllers/admin/muck/users_controller.rb +5 -8
- data/app/views/admin/access_codes/_access_code.html.erb +3 -1
- data/app/views/admin/access_codes/ajax_create_access_code.js.erb +2 -0
- data/app/views/admin/access_codes/ajax_update_access_code.js.erb +2 -0
- data/app/views/admin/access_codes/bulk.html.erb +20 -7
- data/app/views/admin/access_codes/destroy.js.erb +2 -0
- data/app/views/admin/access_codes/edit.html.erb +1 -1
- data/app/views/admin/access_codes/index.html.erb +9 -4
- data/app/views/admin/access_codes/new.html.erb +1 -1
- data/app/views/admin/access_codes/show.html.erb +1 -1
- data/app/views/admin/roles/_role.html.erb +1 -1
- data/app/views/admin/roles/destroy.js.erb +2 -2
- data/app/views/admin/roles/index.html.erb +1 -3
- data/app/views/admin/roles/show.html.erb +1 -2
- data/app/views/admin/users/permissions.html.erb +1 -1
- data/app/views/admin/users/update_activate.js.erb +2 -0
- data/app/views/admin/users/update_permissions.js.erb +2 -1
- data/lib/active_record/acts/muck_access_code.rb +10 -0
- data/locales/en.yml +18 -4
- data/muck-users.gemspec +6 -2
- data/test/rails_root/public/javascripts/jquery/jquery.tips.js +2 -2
- data/test/rails_root/public/javascripts/muck.js +15 -8
- data/test/rails_root/public/stylesheets/admin.css +5 -2
- data/test/rails_root/public/stylesheets/styles.css +1 -1
- metadata +6 -2
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
1
|
+
0.3.3
|
|
@@ -12,16 +12,15 @@ class Admin::Muck::AccessCodesController < Admin::Muck::BaseController
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def new
|
|
15
|
-
render :template => 'admin/access_codes/new'
|
|
15
|
+
render :template => 'admin/access_codes/new', :layout => false
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def create
|
|
19
19
|
@access_code = AccessCode.new(params[:access_code])
|
|
20
20
|
if @access_code.save
|
|
21
|
-
|
|
22
|
-
redirect_to admin_access_code_path(@access_code)
|
|
21
|
+
ajax_create_access_code
|
|
23
22
|
else
|
|
24
|
-
|
|
23
|
+
output_admin_messages(@access_code)
|
|
25
24
|
end
|
|
26
25
|
end
|
|
27
26
|
|
|
@@ -32,47 +31,73 @@ class Admin::Muck::AccessCodesController < Admin::Muck::BaseController
|
|
|
32
31
|
end
|
|
33
32
|
|
|
34
33
|
def bulk_create
|
|
35
|
-
|
|
34
|
+
@access_code = AccessCode.new(params[:access_code])
|
|
35
|
+
@access_code.bulk_valid?
|
|
36
|
+
emails = @access_code.emails.split(',')
|
|
37
|
+
use_random_code = @access_code.code.blank?
|
|
36
38
|
emails.each do |email|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
if use_random_code
|
|
40
|
+
# need to build a new access code for each email
|
|
41
|
+
@access_code = AccessCode.new(params[:access_code])
|
|
42
|
+
@access_code.unlimited = false
|
|
43
|
+
@access_code.use_limit = 1
|
|
44
|
+
@access_code.uses = 0
|
|
45
|
+
@access_code.code = AccessCode.random_code
|
|
46
|
+
@access_code.save!
|
|
47
|
+
end
|
|
48
|
+
UserMailer.deliver_access_code(email, @access_code.subject, @access_code.message, @access_code.code)
|
|
44
49
|
end
|
|
45
50
|
flash[:notice] = translate('muck.users.bulk_access_codes_created', :email_count => emails.count)
|
|
46
|
-
redirect_to bulk_create_admin_access_codes_path
|
|
51
|
+
redirect_to bulk_create_admin_access_codes_path
|
|
52
|
+
|
|
47
53
|
rescue ActiveRecord::RecordInvalid => ex
|
|
48
54
|
render :template => "admin/access_codes/bulk"
|
|
49
55
|
end
|
|
50
56
|
|
|
51
57
|
def edit
|
|
52
|
-
render :template => "admin/access_codes/edit"
|
|
58
|
+
render :template => "admin/access_codes/edit", :layout => false
|
|
53
59
|
end
|
|
54
60
|
|
|
55
61
|
def update
|
|
56
62
|
if @access_code.update_attributes(params[:access_code])
|
|
57
|
-
|
|
63
|
+
ajax_update_access_code
|
|
58
64
|
else
|
|
59
|
-
|
|
60
|
-
render :template => "admin/access_codes/edit"
|
|
65
|
+
output_admin_messages(@access_code)
|
|
61
66
|
end
|
|
62
67
|
end
|
|
63
68
|
|
|
64
69
|
def destroy
|
|
65
70
|
if @access_code.users.length <= 0
|
|
66
|
-
@access_code.destroy
|
|
67
|
-
flash[:notice] =
|
|
71
|
+
success = @access_code.destroy
|
|
72
|
+
flash[:notice] = translate('muck.users.access_code_delete_error') unless success
|
|
68
73
|
else
|
|
69
|
-
flash[:notice] =
|
|
74
|
+
flash[:notice] = translate('muck.users.access_code_delete_problem')
|
|
75
|
+
end
|
|
76
|
+
respond_to do |format|
|
|
77
|
+
format.html { redirect_to admin_access_codes_path }
|
|
78
|
+
format.js do
|
|
79
|
+
if success
|
|
80
|
+
render :template => 'admin/access_codes/destroy', :layout => false
|
|
81
|
+
else
|
|
82
|
+
output_admin_messages
|
|
83
|
+
end
|
|
84
|
+
end
|
|
70
85
|
end
|
|
71
|
-
|
|
86
|
+
|
|
72
87
|
end
|
|
73
88
|
|
|
74
89
|
protected
|
|
90
|
+
|
|
75
91
|
def setup_access_code
|
|
76
92
|
@access_code = AccessCode.find(params[:id])
|
|
77
93
|
end
|
|
94
|
+
|
|
95
|
+
def ajax_update_access_code
|
|
96
|
+
render :template => 'admin/access_codes/ajax_update_access_code'
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def ajax_create_access_code
|
|
100
|
+
render :template => 'admin/access_codes/ajax_create_access_code'
|
|
101
|
+
end
|
|
102
|
+
|
|
78
103
|
end
|
|
@@ -46,7 +46,7 @@ class Admin::Muck::RolesController < Admin::Muck::BaseController
|
|
|
46
46
|
flash[:notice] = translate('muck.users.cant_delete_administrator_role')
|
|
47
47
|
output_admin_messages
|
|
48
48
|
else
|
|
49
|
-
success = @role.
|
|
49
|
+
success = @role.destroy
|
|
50
50
|
flash[:notice] = translate('muck.users.role_not_deleted') if !success
|
|
51
51
|
|
|
52
52
|
respond_to do |format|
|
|
@@ -57,7 +57,7 @@ class Admin::Muck::RolesController < Admin::Muck::BaseController
|
|
|
57
57
|
format.xml { head :ok }
|
|
58
58
|
format.js do
|
|
59
59
|
if success
|
|
60
|
-
render :
|
|
60
|
+
render :template => 'admin/roles/destroy', :layout => false
|
|
61
61
|
else
|
|
62
62
|
output_admin_messages
|
|
63
63
|
end
|
|
@@ -89,7 +89,7 @@ class Admin::Muck::UsersController < Admin::Muck::BaseController
|
|
|
89
89
|
else
|
|
90
90
|
params[:user][:role_ids] ||= []
|
|
91
91
|
if @user.update_attributes(params[:user])
|
|
92
|
-
return update_permissions(
|
|
92
|
+
return update_permissions #(translate('muck.users.updated_permissions'))
|
|
93
93
|
end
|
|
94
94
|
end
|
|
95
95
|
flash[:notice] = message
|
|
@@ -125,7 +125,7 @@ class Admin::Muck::UsersController < Admin::Muck::BaseController
|
|
|
125
125
|
redirect_to admin_users_path
|
|
126
126
|
end
|
|
127
127
|
format.xml { head :ok }
|
|
128
|
-
format.js { render :js => "
|
|
128
|
+
format.js { render :js => "jQuery('##{@user.dom_id('row')}').fadeOut();" }
|
|
129
129
|
end
|
|
130
130
|
end
|
|
131
131
|
|
|
@@ -135,17 +135,14 @@ class Admin::Muck::UsersController < Admin::Muck::BaseController
|
|
|
135
135
|
|
|
136
136
|
protected
|
|
137
137
|
|
|
138
|
-
def update_permissions(
|
|
139
|
-
flash[:notice] = message
|
|
138
|
+
def update_permissions(message = '')
|
|
139
|
+
flash[:notice] = message unless message.blank?
|
|
140
140
|
render :template => 'admin/users/update_permissions', :layout => false
|
|
141
141
|
end
|
|
142
142
|
|
|
143
143
|
def update_activate(message)
|
|
144
144
|
flash[:notice] = message
|
|
145
|
-
render :
|
|
146
|
-
page.replace_html 'admin-messages', output_flash
|
|
147
|
-
page.replace_html @user.dom_id('link'), :partial => 'admin/users/activate', :locals => { :user => @user }
|
|
148
|
-
end
|
|
145
|
+
render :template => 'admin/users/update_activate', :layout => false
|
|
149
146
|
end
|
|
150
147
|
|
|
151
148
|
def get_user
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
<tr>
|
|
1
|
+
<tr id="<%=access_code.dom_id('row')%>">
|
|
2
2
|
<td><%= link_to access_code.code, admin_access_code_path(access_code) %></td>
|
|
3
3
|
<td><%= access_code.uses %></td>
|
|
4
4
|
<td><%= access_code.use_limit %></td>
|
|
5
5
|
<td><%= access_code.unlimited %></td>
|
|
6
6
|
<td><%= format_date(access_code.expires_at) %></td>
|
|
7
7
|
<td><%= format_date(access_code.created_at) %></td>
|
|
8
|
+
<td><%= link_to(translate('muck.users.edit'), edit_admin_access_code_path(access_code.id), { :class => 'dialog-pop', :title => translate('muck.users.edit_access_code_title') }) %></td>
|
|
9
|
+
<td><%= link_to(translate('muck.users.delete'), admin_access_code_path(access_code.id), :class => 'ajax-delete', :title => translate('muck.users.access_code_delete_confirm')) %></td>
|
|
8
10
|
</tr>
|
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
<h2><%=translate('muck.users.bulk_access_codes_title') %></h2>
|
|
2
2
|
<p><%=translate('muck.users.bulk_access_codes_description') %></p>
|
|
3
|
-
|
|
4
3
|
<%= output_errors(translate('muck.users.bulk_access_code_problem'), {:class => 'help-box'}, @access_code) %>
|
|
5
|
-
|
|
6
4
|
<% custom_form_for :access_code, :url => bulk_create_admin_access_codes_path, :html => {:class => "standard-form alt"} do |f| -%>
|
|
7
|
-
<%=
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
<%=
|
|
5
|
+
<%= f.text_field :code, { :label => translate('muck.users.access_code'),
|
|
6
|
+
:tip => translate('muck.users.bulk_access_code_tip'),
|
|
7
|
+
:hide_required => true } -%>
|
|
8
|
+
<%= f.text_field :use_limit, { :label => translate('muck.users.use_limit'),
|
|
9
|
+
:tip => translate('muck.users.use_limit_tip') } -%>
|
|
10
|
+
<%= f.check_box :unlimited, { :label => translate('muck.users.unlimited'),
|
|
11
|
+
:tip => translate('muck.users.unlimited_tip') } -%>
|
|
12
|
+
<%= f.text_field :expires_at, { :label => translate('muck.users.expiration_date'),
|
|
13
|
+
:tip => translate('muck.users.expiration_date_tip'),
|
|
14
|
+
:class => 'date_pick' } -%>
|
|
15
|
+
<%= f.text_field :subject, { :label => translate('muck.users.bulk_access_code_subject') } -%>
|
|
16
|
+
<%= f.text_area :message, { :label => translate('muck.users.bulk_access_code_message') } -%>
|
|
17
|
+
<%= f.text_area :emails, { :label => translate('muck.users.bulk_access_code_emails'),
|
|
18
|
+
:tip => translate('muck.users.bulk_access_code_emails_tip') } -%>
|
|
11
19
|
<%= f.submit translate('muck.users.save') %>
|
|
12
|
-
<% end -%>
|
|
20
|
+
<% end -%>
|
|
21
|
+
<script type="text/javascript" language="JavaScript">
|
|
22
|
+
jQuery(document).ready(function(){
|
|
23
|
+
jQuery('.date_pick').datepicker();
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<h3><%=translate('muck.users.edit_access_code') %></h3>
|
|
2
2
|
<%= output_errors(translate('muck.users.access_code_edit_problem'), {:class => 'help-box'}, @access_code) %>
|
|
3
|
-
<% custom_form_for @access_code, :url => admin_access_code_path(@access_code), :html => { :method => :put } do |f| -%>
|
|
3
|
+
<% custom_form_for @access_code, :url => admin_access_code_path(@access_code), :html => { :method => :put, :class => 'ajax' } do |f| -%>
|
|
4
4
|
<%= render :partial => 'admin/access_codes/form', :locals => { :f => f } %>
|
|
5
5
|
<%= f.submit translate('muck.users.save') %>
|
|
6
6
|
<% end -%>
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<h2><%=translate('muck.users.access_codes') %></h2>
|
|
2
|
-
<
|
|
3
|
-
<%= link_to translate('muck.users.access_code_new'), new_admin_access_code_path %>
|
|
4
|
-
|
|
2
|
+
<p>
|
|
3
|
+
<%= link_to translate('muck.users.access_code_new'), new_admin_access_code_path, { :class => 'dialog-pop', :title => translate('muck.users.add_access_code_title') } %>
|
|
4
|
+
<%= link_to translate('muck.users.bulk_access_codes'), bulk_admin_access_codes_path %>
|
|
5
|
+
</p>
|
|
5
6
|
<table class="adminTable" cellspacing="0" cellpadding="0">
|
|
6
7
|
<thead>
|
|
7
8
|
<tr>
|
|
@@ -11,8 +12,12 @@
|
|
|
11
12
|
<th><%=translate('muck.users.access_code_unlimited') %></th>
|
|
12
13
|
<th><%=translate('muck.users.access_code_expires') %></th>
|
|
13
14
|
<th><%=translate('muck.users.access_code_created') %></th>
|
|
15
|
+
<th></th>
|
|
16
|
+
<th></th>
|
|
14
17
|
</tr>
|
|
15
18
|
</thead>
|
|
16
|
-
|
|
19
|
+
<tbody id="current-access-codes">
|
|
20
|
+
<%= render :partial => 'admin/access_codes/access_code', :collection => @codes %>
|
|
21
|
+
</tbody>
|
|
17
22
|
</table>
|
|
18
23
|
<%= will_paginate @codes %>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<h3><%=translate('muck.users.add_access_code') %></h3>
|
|
2
2
|
<%= output_errors(translate('muck.users.access_code_add_problem'), {:class => 'help-box'}, @access_code) %>
|
|
3
|
-
<% custom_form_for :access_code, :url => admin_access_codes_path do |f| -%>
|
|
3
|
+
<% custom_form_for :access_code, :url => admin_access_codes_path, :html => { :class => 'ajax' } do |f| -%>
|
|
4
4
|
<%= render :partial => 'admin/access_codes/form', :locals => {:f => f} %>
|
|
5
5
|
<%= f.submit translate('muck.users.save') %>
|
|
6
6
|
<% end -%>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<h2><%=translate('muck.users.access_code') %></h2>
|
|
2
2
|
<%= link_to(translate('muck.users.access_code_edit_link'), edit_admin_access_code_path(@access_code.id)) %>
|
|
3
|
-
<%= link_to(translate('muck.users.access_code_delete_link'), admin_access_code_path(@access_code.id), :
|
|
3
|
+
<%= link_to(translate('muck.users.access_code_delete_link'), admin_access_code_path(@access_code.id), :class => 'ajax-delete', :title => translate('muck.users.access_code_delete_confirm')) %>
|
|
4
4
|
|
|
5
5
|
<table class="adminTable" cellspacing="0" cellpadding="0">
|
|
6
6
|
<thead>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<tr id="<%=role.dom_id%>">
|
|
2
2
|
<td><%= link_to(role.rolename, admin_role_path(role)) %></td>
|
|
3
3
|
<td><%= link_to(translate('muck.users.edit'), edit_admin_role_path(role), { :class => 'dialog-pop', :title => translate('muck.users.edit_role_dialog_title') } ) %></td>
|
|
4
|
-
<td><%= link_to(translate('muck.users.delete'), admin_role_path(role), { :class => 'ajax-delete', :
|
|
4
|
+
<td><%= link_to(translate('muck.users.delete'), admin_role_path(role), { :class => 'ajax-delete', :title => translate('muck.users.role_delete_confirm') } ) %></td>
|
|
5
5
|
</tr>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
jQuery('#<%=@role.dom_id%>').fadeOut();
|
|
2
|
+
<%= hide_admin_messages %>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<h2><%=translate('muck.users.roles') %></h2>
|
|
2
|
-
<p>
|
|
3
|
-
<%= link_to translate('muck.users.add_role'), new_admin_role_path, { :class => 'dialog-pop', :title => translate('muck.users.add_role_dialog_title') } %>
|
|
4
|
-
</p>
|
|
2
|
+
<p><%= link_to translate('muck.users.add_role'), new_admin_role_path, { :class => 'dialog-pop', :title => translate('muck.users.add_role_dialog_title') } %></p>
|
|
5
3
|
<table class="adminTable">
|
|
6
4
|
<thead>
|
|
7
5
|
<tr>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<% custom_form_for @user, :url => admin_user_path(@user), :html => { :class => 'ajax', :method => :put } do |f| %>
|
|
2
|
-
<ul class="checkbox-list">
|
|
2
|
+
<ul class="admin-list checkbox-list">
|
|
3
3
|
<% Role.all.each do |role| -%>
|
|
4
4
|
<li><%= check_box_tag "user[role_ids][]", role.id, @user.has_role?(role.rolename) -%> <%= role.rolename -%></li>
|
|
5
5
|
<% end -%>
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
jQuery('.dialog').dialog('close');
|
|
2
|
-
jQuery('#<%= user.dom_id('permissions') %>').html('<%= escape_javascript(render(:partial => 'admin/permissions/permission', :collection => user.permissions, :locals => { :user => user })) %>');
|
|
2
|
+
jQuery('#<%= @user.dom_id('permissions') %>').html('<%= escape_javascript(render(:partial => 'admin/permissions/permission', :collection => @user.permissions, :locals => { :user => @user })) %>');
|
|
3
|
+
<%= output_admin_messages(@user) %>
|
|
@@ -18,6 +18,9 @@ module ActiveRecord
|
|
|
18
18
|
named_scope :by_alpha, :order => 'access_codes.code ASC'
|
|
19
19
|
named_scope :active, :conditions => 'access_codes.expires_at > Now() AND access_codes.uses <= use_limit'
|
|
20
20
|
|
|
21
|
+
# Used to make bulk access code easier to deal with
|
|
22
|
+
attr_accessor :emails, :subject, :message
|
|
23
|
+
|
|
21
24
|
include ActiveRecord::Acts::MuckAccessCode::InstanceMethods
|
|
22
25
|
extend ActiveRecord::Acts::MuckAccessCode::SingletonMethods
|
|
23
26
|
|
|
@@ -53,6 +56,13 @@ module ActiveRecord
|
|
|
53
56
|
|
|
54
57
|
module InstanceMethods
|
|
55
58
|
|
|
59
|
+
def bulk_valid?
|
|
60
|
+
errors.add(:emails, I18n.translate('muck.users.validation_are_required')) if self.emails.blank?
|
|
61
|
+
errors.add(:subject, I18n.translate('muck.users.validation_is_required')) if self.subject.blank?
|
|
62
|
+
errors.add(:message, I18n.translate('muck.users.validation_is_required')) if self.message.blank?
|
|
63
|
+
raise RecordInvalid.new(self) if !errors.empty?
|
|
64
|
+
end
|
|
65
|
+
|
|
56
66
|
def use_code
|
|
57
67
|
self.update_attribute(:uses, self.uses + 1)
|
|
58
68
|
end
|
data/locales/en.yml
CHANGED
|
@@ -21,6 +21,7 @@ en:
|
|
|
21
21
|
login_success: Login successful!
|
|
22
22
|
change_password: Change Password
|
|
23
23
|
add_user_to_role: Add User to Role
|
|
24
|
+
add_access_code_title: Add Access Code
|
|
24
25
|
terms_and_service: By clicking 'Sign-up Now' you agree to comply with the {{tos_link_anchor}}Terms and Conditions{{link_end}}.
|
|
25
26
|
password_reset_link_sent: Instructions to reset your password have been emailed to you. Please check your email.
|
|
26
27
|
deleting_user: deleting user...
|
|
@@ -29,28 +30,35 @@ en:
|
|
|
29
30
|
login_requred: You must be logged in to access this feature.
|
|
30
31
|
recover_password: Recover Password
|
|
31
32
|
confirm_delete_account: Are you sure you want to delete your account?\nThis can not be undone.
|
|
33
|
+
access_code_deleted: Deleted access code.
|
|
32
34
|
password_updated: Password successfully updated.
|
|
33
35
|
username_sent: Your username has been sent emailed to you. Please check your Email.
|
|
34
36
|
add_permission: (Add Permission)
|
|
37
|
+
access_code_delete_error: An error occured while trying to delete the access code
|
|
35
38
|
access_code_unlimited: Unlimited
|
|
36
39
|
welcome: Welcome
|
|
37
40
|
bulk_access_codes_created: Bulk access codes created and emailed to {{email_count}} emails.
|
|
38
|
-
users_in_role: "Users in
|
|
41
|
+
users_in_role: "Users in role: {{role}}"
|
|
39
42
|
current_password: Current Password
|
|
40
43
|
problem_creating_account: "There was a problem creating your account. Please correct the following errors:"
|
|
41
44
|
password_confirmation_help: To ensure that your password is correct please enter it again here.
|
|
45
|
+
edit_access_code_title: Edit Access Code
|
|
42
46
|
thanks_sign_up_login: Thanks for signing up! You may login now
|
|
43
47
|
already_activated: Your account has already been activated. You can log in below.
|
|
44
48
|
password: Password
|
|
45
49
|
account_not_activated: Your {{application_name}} account has not yet been activated.
|
|
46
50
|
sorry_invalid_reset_code: We're sorry, but we could not locate your account. If you are having issues try copying and pasting the URL from your email into your browser or restarting the reset password process.
|
|
47
51
|
problem_changing_password: There was a problem changing your password. {{errors}}
|
|
52
|
+
access_code_delete_problem: Cannot delete access code it has users associated with it.
|
|
48
53
|
user_enable_problem: There was a problem enabling this user.
|
|
49
54
|
access_code_tip: Enter a access code.
|
|
50
55
|
email_empty: Please enter an email address
|
|
51
56
|
select_new_password: Select a New Password
|
|
57
|
+
bulk_access_code_emails: Emails
|
|
58
|
+
bulk_access_code_subject: Subject
|
|
52
59
|
access_code_delete_link: Delete Access Code
|
|
53
60
|
request_access_code: Request Access Code
|
|
61
|
+
validation_is_required: is required.
|
|
54
62
|
first_name: First Name
|
|
55
63
|
forgot_username: Forgot Username
|
|
56
64
|
updated_permissions: Updated Permissions
|
|
@@ -83,6 +91,7 @@ en:
|
|
|
83
91
|
click_to_sign_up_now: Click here to sign up now.
|
|
84
92
|
forgot_password: Forgot Password
|
|
85
93
|
login: Login
|
|
94
|
+
validation_are_required: are required.
|
|
86
95
|
user_not_activated_error: Could not activate user
|
|
87
96
|
password_not_reset: Password not reset.
|
|
88
97
|
save: Save
|
|
@@ -98,6 +107,7 @@ en:
|
|
|
98
107
|
edit: Edit
|
|
99
108
|
activation_instructions: Activation Instructions
|
|
100
109
|
access_code_created: Created
|
|
110
|
+
access_code_added: Access Code was successfully added
|
|
101
111
|
change_permissions: Change Roles
|
|
102
112
|
what_is_the_email: What is the email address used to create your account?
|
|
103
113
|
activation_complete: Activation Complete
|
|
@@ -112,12 +122,11 @@ en:
|
|
|
112
122
|
access_code_request_tip: Enter your email and we'll send you an access code as soon as one is available. Thank you!
|
|
113
123
|
password_mismatch: Password mismatch.
|
|
114
124
|
add_role_dialog_title: Add Role
|
|
125
|
+
user_account_deleted: You have successfully deleted your account.
|
|
115
126
|
new_password_doesnt_match: New password does not match the password confirmation.
|
|
116
127
|
add_permission_to_user: Add Permission to user {{user}}
|
|
117
|
-
user_account_deleted: You have successfully deleted your account.
|
|
118
128
|
sign_in: Sign In
|
|
119
129
|
role_deleted: Role Deleted
|
|
120
|
-
role_not_deleted: Role could not be deleted
|
|
121
130
|
complete_profile: Complete Your Profile
|
|
122
131
|
access_codes: Access Codes
|
|
123
132
|
access_code_delete_confirm: Are you sure you want to cancel this access code?
|
|
@@ -129,6 +138,7 @@ en:
|
|
|
129
138
|
search_users: Search Users
|
|
130
139
|
user_marked_inactive: User has been marked as inactive
|
|
131
140
|
access_code_request_thank_you: Thank you for your request. We'll be in touch as soon as possible.
|
|
141
|
+
bulk_access_code_tip: Optional. If a code is specified then that code will be sent to all users. Leave this field empty to send a unique code to each user.
|
|
132
142
|
role: Role
|
|
133
143
|
bulk_access_codes_title: Bulk Access Codes
|
|
134
144
|
users_admin: Users
|
|
@@ -136,6 +146,7 @@ en:
|
|
|
136
146
|
access_code_expires: Expires
|
|
137
147
|
user_successfully_deleted: User {{login}} was successfully deleted.
|
|
138
148
|
application_base_url_not_set: Please set application_base_url in global_config.yml
|
|
149
|
+
access_code_update_problem: There was a problem updating the access code.
|
|
139
150
|
user_not_deactivated_error: Could not deactivate user
|
|
140
151
|
total_users: "Total Users: {{total}}"
|
|
141
152
|
password_cannot_be_blank: Password field cannot be blank.
|
|
@@ -146,6 +157,7 @@ en:
|
|
|
146
157
|
confirm_password: Confirm Password
|
|
147
158
|
add_user_to_role_title: Add user to a new role.
|
|
148
159
|
expiration_date: Expiration Date
|
|
160
|
+
role_not_deleted: Role could not be deleted
|
|
149
161
|
roles: Roles
|
|
150
162
|
access_code_related_users: Users who signed up with this code
|
|
151
163
|
login_empty: Please enter a login
|
|
@@ -163,7 +175,7 @@ en:
|
|
|
163
175
|
change_your_password: Change Your Password
|
|
164
176
|
forgot_your_password: Forgot your password?
|
|
165
177
|
role_delete_confirm: Are you sure you want to delete this role? All associated permissions will also be deleted!
|
|
166
|
-
unlimited: Unlimited
|
|
178
|
+
unlimited: Unlimited Uses
|
|
167
179
|
remember_me: Remember me
|
|
168
180
|
reset_your_password: Reset Your Password
|
|
169
181
|
access_code_use_limit: Use Limit
|
|
@@ -174,6 +186,8 @@ en:
|
|
|
174
186
|
request_username_subject: Forgotten username
|
|
175
187
|
could_not_find_reset_code: Could not find a password reset code. Please try resetting your password again.
|
|
176
188
|
register_for_account: Register for an account
|
|
189
|
+
bulk_access_code_message: Message
|
|
190
|
+
bulk_access_codes: Email Access Codes
|
|
177
191
|
add_access_code: Add Access Code
|
|
178
192
|
user_update: You're user information has been updated.
|
|
179
193
|
update_profile: Update your profile
|
data/muck-users.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{muck-users}
|
|
8
|
-
s.version = "0.3.
|
|
8
|
+
s.version = "0.3.3"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Justin Ball", "Joel Duffin"]
|
|
12
|
-
s.date = %q{2010-02-
|
|
12
|
+
s.date = %q{2010-02-04}
|
|
13
13
|
s.description = %q{Easily add user signup, login and other features to your application}
|
|
14
14
|
s.email = %q{justin@tatemae.com}
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -39,7 +39,10 @@ Gem::Specification.new do |s|
|
|
|
39
39
|
"app/views/admin/access_codes/_access_code.html.erb",
|
|
40
40
|
"app/views/admin/access_codes/_form.html.erb",
|
|
41
41
|
"app/views/admin/access_codes/_user.html.erb",
|
|
42
|
+
"app/views/admin/access_codes/ajax_create_access_code.js.erb",
|
|
43
|
+
"app/views/admin/access_codes/ajax_update_access_code.js.erb",
|
|
42
44
|
"app/views/admin/access_codes/bulk.html.erb",
|
|
45
|
+
"app/views/admin/access_codes/destroy.js.erb",
|
|
43
46
|
"app/views/admin/access_codes/edit.html.erb",
|
|
44
47
|
"app/views/admin/access_codes/index.html.erb",
|
|
45
48
|
"app/views/admin/access_codes/new.html.erb",
|
|
@@ -65,6 +68,7 @@ Gem::Specification.new do |s|
|
|
|
65
68
|
"app/views/admin/users/index.html.erb",
|
|
66
69
|
"app/views/admin/users/permissions.html.erb",
|
|
67
70
|
"app/views/admin/users/search.html.erb",
|
|
71
|
+
"app/views/admin/users/update_activate.js.erb",
|
|
68
72
|
"app/views/admin/users/update_permissions.js.erb",
|
|
69
73
|
"app/views/password_resets/edit.html.erb",
|
|
70
74
|
"app/views/password_resets/new.html.erb",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
jQuery(document).ready(function() {
|
|
2
|
-
jQuery(".tip-field").focus
|
|
2
|
+
jQuery(".tip-field").live('focus', function() {
|
|
3
3
|
jQuery(".active").removeClass("active");
|
|
4
4
|
var tip_key = jQuery('#' + this.id).siblings('.tip-key');
|
|
5
5
|
var control_id = this.id;
|
|
@@ -22,7 +22,7 @@ jQuery(document).ready(function() {
|
|
|
22
22
|
jQuery("#" + help_id + "-container").addClass("active");
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
-
jQuery(".tip-field").blur
|
|
25
|
+
jQuery(".tip-field").live('blur', function() {
|
|
26
26
|
jQuery('#' + this.id + '-tip').hide(1);
|
|
27
27
|
});
|
|
28
28
|
});
|
|
@@ -22,9 +22,16 @@ function add_headers(xhr){
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
jQuery(document).ready(function() {
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
jQuery('a.ajax-delete').live('click', function() {
|
|
27
|
-
jQuery
|
|
27
|
+
var title = jQuery(this).attr('title');
|
|
28
|
+
var do_delete = true;
|
|
29
|
+
if(title.length > 0){
|
|
30
|
+
do_delete = confirm(title);
|
|
31
|
+
}
|
|
32
|
+
if (do_delete){
|
|
33
|
+
jQuery.post(this.href, { _method: 'delete', format: 'js' }, null, "script");
|
|
34
|
+
}
|
|
28
35
|
return false;
|
|
29
36
|
});
|
|
30
37
|
|
|
@@ -33,15 +40,15 @@ jQuery(document).ready(function() {
|
|
|
33
40
|
return false;
|
|
34
41
|
});
|
|
35
42
|
|
|
36
|
-
|
|
43
|
+
jQuery(".submit-form").click(function() {
|
|
37
44
|
jQuery(this).parent('form').submit();
|
|
38
45
|
});
|
|
39
46
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
apply_ajax_forms();
|
|
48
|
+
|
|
49
|
+
jQuery('a.fancy-pop').fancybox({'hideOnContentClick':false, 'overlayShow':true, 'frameWidth':600, 'frameHeight':500 });
|
|
50
|
+
|
|
51
|
+
jQuery('a.dialog-pop').live('click', function() {
|
|
45
52
|
var d = jQuery('<div class="dialog"></div>').appendTo("body");
|
|
46
53
|
d.dialog({ modal: true, autoOpen: false, width: 'auto', title: jQuery(this).attr('title') });
|
|
47
54
|
d.load(jQuery(this).attr('href'), '', function(){
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/* header */
|
|
2
2
|
a {color:#000;}
|
|
3
|
+
.checkbox-label{display:inline-block;}
|
|
4
|
+
input[type="checkbox"] {margin:0px;}
|
|
3
5
|
#main-navigation{}
|
|
4
6
|
#account-navigation {}
|
|
5
7
|
.navigation ul{padding:2px;margin:0;}
|
|
@@ -26,9 +28,10 @@ ul.admin-list li a{font-size:1.2em;}
|
|
|
26
28
|
/* errors, message */
|
|
27
29
|
.notify-box{font-size:1.2em;color:#555;width:100%}
|
|
28
30
|
.error,.notice,.success {margin:0;}
|
|
29
|
-
#errorExplanation{margin:0;padding
|
|
31
|
+
#errorExplanation #field-errors{margin:0;padding:0.4em 1.5em;width:96%;border:2px solid #ddd;background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
|
|
30
32
|
#admin-messages{display:none;}
|
|
31
|
-
|
|
33
|
+
/* ui elements */
|
|
34
|
+
#ui-datepicker-div{z-index:2005;}
|
|
32
35
|
/* tables */
|
|
33
36
|
.adminTable{margin:5px 0 0 0;padding:0 0 40px 0px;width:980px;}
|
|
34
37
|
.adminTable a{color:#000;text-decoration:none;font-weight:bold;}
|
|
@@ -37,7 +37,7 @@ ul.icon-list a{display:inline-block;margin:2px 0;padding:2px 0 5px 28px;text-dec
|
|
|
37
37
|
.availability{color:#b61e12;position:absolute;}
|
|
38
38
|
.hidden-tips{display:none;}
|
|
39
39
|
.required-tip{color:#555555;font-size:1.2em;margin:0pt;font-weight:bolder;height:0px;}
|
|
40
|
-
.tip{position:absolute;z-index:
|
|
40
|
+
.tip{position:absolute;z-index:2000;border:2px solid #CCCCCC;background-color:#fff;width:400px;}
|
|
41
41
|
#tip-title{font-size:1.1em;background-color:#CCCCCC;text-align:left;padding:2px 0px 5px 8px;font-weight:bold;}
|
|
42
42
|
#tip-main{padding:10px;color:#333333;}
|
|
43
43
|
#tip-main p,#tip-main ul{font-size:1.3em;}
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: muck-users
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Ball
|
|
@@ -10,7 +10,7 @@ autorequire:
|
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
12
|
|
|
13
|
-
date: 2010-02-
|
|
13
|
+
date: 2010-02-04 00:00:00 -07:00
|
|
14
14
|
default_executable:
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
@@ -95,7 +95,10 @@ files:
|
|
|
95
95
|
- app/views/admin/access_codes/_access_code.html.erb
|
|
96
96
|
- app/views/admin/access_codes/_form.html.erb
|
|
97
97
|
- app/views/admin/access_codes/_user.html.erb
|
|
98
|
+
- app/views/admin/access_codes/ajax_create_access_code.js.erb
|
|
99
|
+
- app/views/admin/access_codes/ajax_update_access_code.js.erb
|
|
98
100
|
- app/views/admin/access_codes/bulk.html.erb
|
|
101
|
+
- app/views/admin/access_codes/destroy.js.erb
|
|
99
102
|
- app/views/admin/access_codes/edit.html.erb
|
|
100
103
|
- app/views/admin/access_codes/index.html.erb
|
|
101
104
|
- app/views/admin/access_codes/new.html.erb
|
|
@@ -121,6 +124,7 @@ files:
|
|
|
121
124
|
- app/views/admin/users/index.html.erb
|
|
122
125
|
- app/views/admin/users/permissions.html.erb
|
|
123
126
|
- app/views/admin/users/search.html.erb
|
|
127
|
+
- app/views/admin/users/update_activate.js.erb
|
|
124
128
|
- app/views/admin/users/update_permissions.js.erb
|
|
125
129
|
- app/views/password_resets/edit.html.erb
|
|
126
130
|
- app/views/password_resets/new.html.erb
|