forked from saurabh/orbit4-5
approve users and role status in sign up added
This commit is contained in:
parent
e5e7a18bd8
commit
4cbf7f5015
|
@ -134,6 +134,28 @@ class Admin::MembersController < OrbitMemberController
|
||||||
render action: "index"
|
render action: "index"
|
||||||
end
|
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
|
def edit_passwd
|
||||||
@member = MemberProfile.find(params[:member_id])
|
@member = MemberProfile.find(params[:member_id])
|
||||||
@user = @member.user
|
@user = @member.user
|
||||||
|
|
|
@ -66,6 +66,8 @@ class UsersController < ApplicationController
|
||||||
def role_page
|
def role_page
|
||||||
@roles = Role.where(:disabled => false)
|
@roles = Role.where(:disabled => false)
|
||||||
@user_id = params[:user_id]
|
@user_id = params[:user_id]
|
||||||
|
@member_profile = User.find(@user_id).member_profile
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def role_update
|
def role_update
|
||||||
|
@ -79,6 +81,12 @@ class UsersController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_role_statuses
|
||||||
|
@role = Role.find(params[:roleId])
|
||||||
|
@statuses = @role.role_statuses
|
||||||
|
render :layout => false
|
||||||
|
end
|
||||||
|
|
||||||
def check_availability
|
def check_availability
|
||||||
response = {}
|
response = {}
|
||||||
case params[:type]
|
case params[:type]
|
||||||
|
|
|
@ -13,6 +13,7 @@ class User
|
||||||
has_many :user_actions, :dependent => :destroy
|
has_many :user_actions, :dependent => :destroy
|
||||||
|
|
||||||
index({ confirmation_token: 1}, { unique: true })
|
index({ confirmation_token: 1}, { unique: true })
|
||||||
|
scope :unapproved, ->{ where(approved: false) }
|
||||||
|
|
||||||
has_secure_password
|
has_secure_password
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
<div class="bottomnav clearfix">
|
<div class="bottomnav clearfix">
|
||||||
<div class="action pull-right">
|
<div class="action pull-right">
|
||||||
|
<% if params[:action] != "unapproved_members" %>
|
||||||
<% if current_user.is_admin? %>
|
<% if current_user.is_admin? %>
|
||||||
<%= link_to t(:edit_order),new_admin_member_path ,:class => "btn btn-primary" %>
|
<%= link_to t(:edit_order),new_admin_member_path ,:class => "btn btn-primary" %>
|
||||||
<%= link_to(new_admin_member_path,:class=> "btn btn-primary") do %>
|
<%= link_to(new_admin_member_path,:class=> "btn btn-primary") do %>
|
||||||
<i class="icon-plus"></i><%= t(:add) %>
|
<i class="icon-plus"></i><%= t(:add) %>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="pagination pagination-centered">
|
<div class="pagination pagination-centered">
|
||||||
<%= paginate @members, :params => {:inner => false} %>
|
<%= paginate @members, :params => {:inner => false} %>
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group" data-toggle="buttons-radio">
|
<div class="btn-group" data-toggle="buttons-radio">
|
||||||
<% current_site.in_use_locales.each_with_index do |locale, i| %>
|
<% current_site.in_use_locales.each_with_index do |locale, i| %>
|
||||||
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#first_name_<%= locale %>" data-toggle="tab"><%= I18nVariable.from_locale(locale) %></a>
|
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#first_name_<%= locale %>" data-toggle="tab"><%= t(locale.to_s) %></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
<a href="#" class="btn remove-input"><i class="icon-trash"></i></a>
|
<a href="#" class="btn remove-input"><i class="icon-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group" data-toggle="buttons-radio">
|
<div class="btn-group" data-toggle="buttons-radio">
|
||||||
<% current_site.in_use_locales.each_with_index do |locale, i| %>
|
<% current_site.in_use_locales.each_with_index do |locale, i| %>
|
||||||
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#last_name_<%= locale %>" data-toggle="tab"><%= I18nVariable.from_locale(locale) %></a>
|
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#last_name_<%= locale %>" data-toggle="tab"><%= t(locale) %></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
<a href="#" class="btn remove-input"><i class="icon-trash"></i></a>
|
<a href="#" class="btn remove-input"><i class="icon-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -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(: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(: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_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 -%>
|
<% end -%>
|
||||||
</div>
|
</div>
|
||||||
<div class="sub-nav-block" data-icons="">
|
<div class="sub-nav-block" data-icons="">
|
||||||
|
|
|
@ -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
|
||||||
|
%>
|
||||||
|
|
||||||
|
<tr id="<%= dom_id unapproved_members_list.member_profile %>">
|
||||||
|
<td class="<%= @member_gender %>"></td>
|
||||||
|
<td>
|
||||||
|
<% unapproved_members_list.member_profile.roles.each do |rf| %>
|
||||||
|
<% @roledata = Role.find(rf.id) %>
|
||||||
|
<span class="label label-info"><%= @roledata.title %></span>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= 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) %>
|
||||||
|
<div class="quick-edit">
|
||||||
|
<ul class="nav nav-pills">
|
||||||
|
<%= 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? %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td><%= unapproved_members_list.member_profile.email %></td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
|
@ -14,7 +14,7 @@
|
||||||
<dd><%= @member.office_tel %></dd>
|
<dd><%= @member.office_tel %></dd>
|
||||||
<% end %>
|
<% end %>
|
||||||
<dt><%= t('users.sex')%></dt>
|
<dt><%= t('users.sex')%></dt>
|
||||||
<dd><%= t("users.#{@member.sex}") %></dd>
|
<dd><%= t("users.#{(@member.sex.nil? ? 'unknown' : @member.sex)}") %></dd>
|
||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
|
@ -0,0 +1,28 @@
|
||||||
|
<% content_for :side_bar do %>
|
||||||
|
<%= render :partial => 'admin/members/side_bar' %>
|
||||||
|
<% end %>
|
||||||
|
<% content_for :right_nav do %>
|
||||||
|
|
||||||
|
<div class="searchClear pull-left" style="clear: left;">
|
||||||
|
<form action="" method="get">
|
||||||
|
<%= text_field_tag 'member_query',( params[:member_query] ? params[:member_query] : '' ), {:id=>'filter-input', :class => "search-query input-medium", :placeholder => 'Search'} %>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<div id="list-view">
|
||||||
|
<table id="member-list" class="table main-list">
|
||||||
|
<thead>
|
||||||
|
<tr class="sort-header">
|
||||||
|
<th class="gender"></th>
|
||||||
|
<th class="span3"><a href="#"><%= t('roles') %></a></th>
|
||||||
|
<th class="span4"><a href="#"><%= t('name') %></a></th>
|
||||||
|
<th><a href="#"><%= t('email') %></a></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<%= render :partial => "unapproved_members_list",:collection=> @members%>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= render :partial=> "index_paginator" if @member_query.blank? %>
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
<%= f.fields_for :title_translations do |f| %>
|
<%= f.fields_for :title_translations do |f| %>
|
||||||
<% @site_in_use_locales.each do |locale| %>
|
<% @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) %>
|
<%= f.text_field locale, :class => 'input-large', :value => (@role_status.title_translations[locale] rescue ''), placeholder: t(:name) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<tr class="sort-header">
|
<tr class="sort-header">
|
||||||
<th class="span3 active"><a href="#">Key<b class="icons-arrow-down-4"></b></a></th>
|
<th class="span3 active"><a href="#">Key<b class="icons-arrow-down-4"></b></a></th>
|
||||||
<% @site_in_use_locales.each do |locale| %>
|
<% @site_in_use_locales.each do |locale| %>
|
||||||
<th><%= I18nVariable.from_locale(locale) %></th>
|
<th><%= t(locale.to_s) %></th>
|
||||||
<% end %>
|
<% end %>
|
||||||
<th class="span1"></th>
|
<th class="span1"></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
<%= f.fields_for :title_translations do |f| %>
|
<%= f.fields_for :title_translations do |f| %>
|
||||||
<% current_site.in_use_locales.each do |locale| %>
|
<% 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) %>
|
<%= f.text_field locale, :class => 'input-large', :value => (@role.title_translations[locale] rescue ''), placeholder: t(:name) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<div for="<%= @role.id.to_s %>">
|
||||||
|
<label>Role status for <%= @role.title %></label>
|
||||||
|
<div class="control-group clear">
|
||||||
|
<% @statuses.each do |status| %>
|
||||||
|
<input type="radio" name="member_profile[role_status_ids][]" value="<%= status.id.to_s %>" />
|
||||||
|
<label class="role-label">
|
||||||
|
<%= status.title %>
|
||||||
|
</label>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -4,23 +4,44 @@
|
||||||
<h3 class="login-logo">Please select a role</h3>
|
<h3 class="login-logo">Please select a role</h3>
|
||||||
<div class="form-block">
|
<div class="form-block">
|
||||||
<div class="form-list clearfix option-block">
|
<div class="form-list clearfix option-block">
|
||||||
<form action="<%= users_role_update_path %>" method="post">
|
<%= form_for @member_profile, :url => users_role_update_path, :html => { :multipart => true , :class=>"form-horizontal main-forms"} do |f| %>
|
||||||
<label>Roles</label>
|
<label>Roles</label>
|
||||||
<div class="control-group clear">
|
<div class="control-group clear">
|
||||||
<% @roles.each do |role| %>
|
<% @roles.each do |role| %>
|
||||||
<input type="checkbox" name="member_profile[role_ids][]" value="<%= role.id.to_s %>" />
|
<input type="checkbox" class="get_status" name="member_profile[role_ids][]" value="<%= role.id.to_s %>" />
|
||||||
<label class="role-label">
|
<label class="role-label">
|
||||||
<%= role.title %>
|
<%= role.title %>
|
||||||
</label>
|
</label>
|
||||||
<% end %>
|
<% end %>
|
||||||
<input type="hidden" name="id" value="<%= @user_id %>" />
|
<input type="hidden" name="id" value="<%= @user_id %>" />
|
||||||
|
</div>
|
||||||
|
<div id="role_statuses">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<h3 class="line"></h3>
|
<h3 class="line"></h3>
|
||||||
<input type="submit" value="Finish" class="btn btn-primary pull-right" />
|
<input type="submit" value="Finish" class="btn btn-primary pull-right" />
|
||||||
</form>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var statuse_area = $("#role_statuses");
|
||||||
|
$(".get_status").on("change",function(){
|
||||||
|
if($(this).is(":checked")){
|
||||||
|
$.ajax({
|
||||||
|
url : "/users/get_role_statuses",
|
||||||
|
type : "get",
|
||||||
|
dataType : "html",
|
||||||
|
data : {"roleId" : $(this).val()}
|
||||||
|
}).done(function(html){
|
||||||
|
statuse_area.append(html);
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
statuse_area.find("div[for="+ $(this).val() +"]").remove();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
|
@ -320,6 +320,7 @@ en:
|
||||||
member_: Member
|
member_: Member
|
||||||
member_authorization: Authorizations
|
member_authorization: Authorizations
|
||||||
member_info: Member Attributes
|
member_info: Member Attributes
|
||||||
|
unapproved_members: Unapproved Members
|
||||||
member_registration: Registration Approval
|
member_registration: Registration Approval
|
||||||
member_role: Member Roles
|
member_role: Member Roles
|
||||||
menu_enabled_for: Menu enabled for
|
menu_enabled_for: Menu enabled for
|
||||||
|
@ -625,6 +626,7 @@ en:
|
||||||
avatar: Profile Picture
|
avatar: Profile Picture
|
||||||
change_passwd: Password
|
change_passwd: Password
|
||||||
setting_privilege: Privilege
|
setting_privilege: Privilege
|
||||||
|
accept_member: Approve Member
|
||||||
email: Email
|
email: Email
|
||||||
first_name: First Name
|
first_name: First Name
|
||||||
last_name: Last Name
|
last_name: Last Name
|
||||||
|
|
|
@ -44,7 +44,8 @@ Orbit::Application.routes.draw do
|
||||||
get 'users/role_page' => "users#role_page"
|
get 'users/role_page' => "users#role_page"
|
||||||
get 'users/check_availability' => "users#check_availability"
|
get 'users/check_availability' => "users#check_availability"
|
||||||
get 'users/confirmation' => "users#confirmation"
|
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"
|
patch 'users/basic_info_update' => "users#basic_info_update"
|
||||||
|
|
||||||
resources :users do
|
resources :users do
|
||||||
|
@ -80,10 +81,14 @@ Orbit::Application.routes.draw do
|
||||||
get 'get_month_traffic'
|
get 'get_month_traffic'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
get "members/unapproved_members" => "members#unapproved_members"
|
||||||
|
|
||||||
resources :members do
|
resources :members do
|
||||||
match "edit_passwd" => "members#edit_passwd" ,:as => :edit_passwd, via: [:get, :post]
|
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]
|
match "edit_privilege" => "members#edit_privilege" ,:as => :edit_privilege, via: [:get, :post]
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :roles do
|
resources :roles do
|
||||||
get 'role_field'
|
get 'role_field'
|
||||||
post 'toggle'
|
post 'toggle'
|
||||||
|
|
Loading…
Reference in New Issue