diff --git a/app/controllers/admin/members_controller.rb b/app/controllers/admin/members_controller.rb
index e4c1770..597f02b 100644
--- a/app/controllers/admin/members_controller.rb
+++ b/app/controllers/admin/members_controller.rb
@@ -134,6 +134,28 @@ class Admin::MembersController < OrbitMemberController
render action: "index"
end
+ def unapproved_members
+ @member_query = params[:member_query]
+ page_num = params[:page] || 1
+ if !@member_query.blank?
+ members = MemberProfile.all.any_of({:user_id => /#{@member_query}/i}, {:first_name => /#{@member_query}/i}, {:last_name => /#{@member_query}/i}, {:email => /#{@member_query}/i}).page(page_num).per(12)
+ @members = members.collect do |member|
+ if !member.user.approved
+ member.user
+ end
+ end
+ else
+ @members = User.unapproved.page(page_num).per(12)
+ end
+ end
+
+ def accept_member
+ user = User.find(params[:member_id])
+ user.approved = true
+ user.save
+ redirect_to admin_members_unapproved_members_path
+ end
+
def edit_passwd
@member = MemberProfile.find(params[:member_id])
@user = @member.user
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index a469f81..ee4cef0 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -66,6 +66,8 @@ class UsersController < ApplicationController
def role_page
@roles = Role.where(:disabled => false)
@user_id = params[:user_id]
+ @member_profile = User.find(@user_id).member_profile
+
end
def role_update
@@ -79,6 +81,12 @@ class UsersController < ApplicationController
end
end
+ def get_role_statuses
+ @role = Role.find(params[:roleId])
+ @statuses = @role.role_statuses
+ render :layout => false
+ end
+
def check_availability
response = {}
case params[:type]
diff --git a/app/models/user.rb b/app/models/user.rb
index 34c4381..e22e6ee 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -13,6 +13,7 @@ class User
has_many :user_actions, :dependent => :destroy
index({ confirmation_token: 1}, { unique: true })
+ scope :unapproved, ->{ where(approved: false) }
has_secure_password
diff --git a/app/views/admin/members/_index_paginator.html.erb b/app/views/admin/members/_index_paginator.html.erb
index 9c9355d..67464b4 100644
--- a/app/views/admin/members/_index_paginator.html.erb
+++ b/app/views/admin/members/_index_paginator.html.erb
@@ -1,11 +1,13 @@
+ <% if params[:action] != "unapproved_members" %>
<% if current_user.is_admin? %>
<%= link_to t(:edit_order),new_admin_member_path ,:class => "btn btn-primary" %>
<%= link_to(new_admin_member_path,:class=> "btn btn-primary") do %>
<%= t(:add) %>
<% end -%>
<% end -%>
+ <% end %>
@@ -78,7 +78,7 @@
diff --git a/app/views/admin/members/_side_bar.html.erb b/app/views/admin/members/_side_bar.html.erb
index 8c5237e..e3fda0e 100644
--- a/app/views/admin/members/_side_bar.html.erb
+++ b/app/views/admin/members/_side_bar.html.erb
@@ -29,7 +29,8 @@
<%= content_tag :li, link_to((content_tag(:span, t(:all_member))), admin_members_path), :class => active_for_action('members', 'index') %>
<%= content_tag :li, link_to((content_tag(:span, t(:add_member))), new_admin_member_path), :class => active_for_action('members', 'new') if (current_user.is_admin? rescue nil) %>
<%= content_tag :li, link_to((content_tag(:span, t(:member_role))),admin_roles_path ), :class => active_for_action('roles', 'index') if (current_user.is_admin? rescue nil) %>
- <%= content_tag :li, link_to((content_tag(:span, t(:member_info))), admin_member_infos_path), :class => active_for_action('members', 'index') if (current_user.is_admin? rescue nil) %>
+ <%= content_tag :li, link_to((content_tag(:span, t(:member_info))), admin_member_infos_path), :class => active_for_action('member_infos', 'index') if (current_user.is_admin? rescue nil) %>
+ <%= content_tag :li, link_to((content_tag(:span, t(:unapproved_members) + " (" + User.unapproved.count.to_s + ")")), admin_members_unapproved_members_path), :class => active_for_action('members', 'unapproved_members') if (current_user.is_admin? rescue nil) %>
<% end -%>
diff --git a/app/views/admin/members/_unapproved_members_list.html.erb b/app/views/admin/members/_unapproved_members_list.html.erb
new file mode 100644
index 0000000..bd59c4e
--- /dev/null
+++ b/app/views/admin/members/_unapproved_members_list.html.erb
@@ -0,0 +1,32 @@
+ <% if unapproved_members_list.present?%>
+ <%
+ if unapproved_members_list.member_profile.sex == 'male'
+ @member_gender = 'gender-man'
+ elsif unapproved_members_list.member_profile.sex == 'female'
+ @member_gender = 'gender-woman'
+ elsif unapproved_members_list.member_profile.sex.nil?
+ @member_gender = 'gender-none'
+ end
+ %>
+
+
+
+
+ <% unapproved_members_list.member_profile.roles.each do |rf| %>
+ <% @roledata = Role.find(rf.id) %>
+ <%= @roledata.title %>
+ <% end %>
+
+
+ <%= link_to (unapproved_members_list.member_profile.name && unapproved_members_list.member_profile.name != (unapproved_members_list.member_profile.email if unapproved_members_list.member_profile.user.present?) ? unapproved_members_list.member_profile.name : unapproved_members_list.member_profile.user.id),admin_member_path(unapproved_members_list.member_profile) %>
+
+
+ <%= content_tag(:li, link_to(t(:edit),edit_admin_member_path(unapproved_members_list.member_profile))) if current_user.is_admin? %>
+ <%= content_tag(:li, link_to(t("users.accept_member"),admin_member_accept_member_path(unapproved_members_list))) %>
+ <%= content_tag(:li, link_to(t(:delete_),admin_member_path(unapproved_members_list.member_profile, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"text-error", :remote => true)) if current_user.is_admin? %>
+
+
+
+ <%= unapproved_members_list.member_profile.email %>
+
+<% end %>
\ No newline at end of file
diff --git a/app/views/admin/members/_user_profile.html.erb b/app/views/admin/members/_user_profile.html.erb
index 91657c5..7ce3bd0 100644
--- a/app/views/admin/members/_user_profile.html.erb
+++ b/app/views/admin/members/_user_profile.html.erb
@@ -14,7 +14,7 @@
<%= @member.office_tel %>
<% end %>
<%= t('users.sex')%>
-
<%= t("users.#{@member.sex}") %>
+
<%= t("users.#{(@member.sex.nil? ? 'unknown' : @member.sex)}") %>
\ No newline at end of file
diff --git a/app/views/admin/members/unapproved_members.html.erb b/app/views/admin/members/unapproved_members.html.erb
new file mode 100644
index 0000000..273de6c
--- /dev/null
+++ b/app/views/admin/members/unapproved_members.html.erb
@@ -0,0 +1,28 @@
+<% content_for :side_bar do %>
+ <%= render :partial => 'admin/members/side_bar' %>
+<% end %>
+<% content_for :right_nav do %>
+
+
+
+
+<% end %>
+
+
+
+
+
+
+ <%= render :partial => "unapproved_members_list",:collection=> @members%>
+
+
+
+
+<%= render :partial=> "index_paginator" if @member_query.blank? %>
\ No newline at end of file
diff --git a/app/views/admin/role_statuses/_form.html.erb b/app/views/admin/role_statuses/_form.html.erb
index 3903f41..0f59e49 100644
--- a/app/views/admin/role_statuses/_form.html.erb
+++ b/app/views/admin/role_statuses/_form.html.erb
@@ -3,7 +3,7 @@
<%= f.fields_for :title_translations do |f| %>
<% @site_in_use_locales.each do |locale| %>
- <%= label_tag "name-#{locale}", "#{t(:name)} (#{I18nVariable.from_locale(locale)})" %>
+ <%= label_tag "name-#{locale}", "#{t(:name)} (#{t(locale.to_s)})" %>
<%= f.text_field locale, :class => 'input-large', :value => (@role_status.title_translations[locale] rescue ''), placeholder: t(:name) %>
<% end %>
<% end %>
diff --git a/app/views/admin/role_statuses/_index.html.erb b/app/views/admin/role_statuses/_index.html.erb
index 7893d68..9ef07b8 100644
--- a/app/views/admin/role_statuses/_index.html.erb
+++ b/app/views/admin/role_statuses/_index.html.erb
@@ -3,7 +3,7 @@
diff --git a/app/views/admin/roles/_form.html.erb b/app/views/admin/roles/_form.html.erb
index a99efb5..bc74990 100644
--- a/app/views/admin/roles/_form.html.erb
+++ b/app/views/admin/roles/_form.html.erb
@@ -3,7 +3,7 @@
<%= f.fields_for :title_translations do |f| %>
<% current_site.in_use_locales.each do |locale| %>
- <%= label_tag "name-#{locale}", "#{t(:name)} (#{I18nVariable.from_locale(locale)})" %>
+ <%= label_tag "name-#{locale}", "#{t(:name)} (#{t(locale.to_s)})" %>
<%= f.text_field locale, :class => 'input-large', :value => (@role.title_translations[locale] rescue ''), placeholder: t(:name) %>
<% end %>
<% end %>
diff --git a/app/views/users/get_role_statuses.html.erb b/app/views/users/get_role_statuses.html.erb
new file mode 100644
index 0000000..2ef7ff0
--- /dev/null
+++ b/app/views/users/get_role_statuses.html.erb
@@ -0,0 +1,11 @@
+
+
Role status for <%= @role.title %>
+
+ <% @statuses.each do |status| %>
+
+
+ <%= status.title %>
+
+ <% end %>
+
+
\ No newline at end of file
diff --git a/app/views/users/role_page.html.erb b/app/views/users/role_page.html.erb
index 4568077..764bd0e 100644
--- a/app/views/users/role_page.html.erb
+++ b/app/views/users/role_page.html.erb
@@ -4,23 +4,44 @@
Please select a role
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 9c1d342..1ae007a 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -320,6 +320,7 @@ en:
member_: Member
member_authorization: Authorizations
member_info: Member Attributes
+ unapproved_members: Unapproved Members
member_registration: Registration Approval
member_role: Member Roles
menu_enabled_for: Menu enabled for
@@ -625,6 +626,7 @@ en:
avatar: Profile Picture
change_passwd: Password
setting_privilege: Privilege
+ accept_member: Approve Member
email: Email
first_name: First Name
last_name: Last Name
diff --git a/config/routes.rb b/config/routes.rb
index b84ed41..05e1027 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -44,7 +44,8 @@ Orbit::Application.routes.draw do
get 'users/role_page' => "users#role_page"
get 'users/check_availability' => "users#check_availability"
get 'users/confirmation' => "users#confirmation"
- post 'users/role_update' => "users#role_update"
+ get 'users/get_role_statuses' => "users#get_role_statuses"
+ patch 'users/role_update' => "users#role_update"
patch 'users/basic_info_update' => "users#basic_info_update"
resources :users do
@@ -80,10 +81,14 @@ Orbit::Application.routes.draw do
get 'get_month_traffic'
end
end
+ get "members/unapproved_members" => "members#unapproved_members"
+
resources :members do
match "edit_passwd" => "members#edit_passwd" ,:as => :edit_passwd, via: [:get, :post]
+ match "accept_member" => "members#accept_member" ,:as => :accept_member, via: [:get, :post]
match "edit_privilege" => "members#edit_privilege" ,:as => :edit_privilege, via: [:get, :post]
end
+
resources :roles do
get 'role_field'
post 'toggle'