forked from saurabh/orbit4-5
added role status to site settings and member index page.
This commit is contained in:
parent
9b958354c2
commit
a4110cf895
|
@ -1,6 +1,25 @@
|
|||
class MembersController < ApplicationController
|
||||
def index
|
||||
members = MemberProfile.all
|
||||
statuses = OrbitHelper.page_categories
|
||||
@statuses = []
|
||||
if statuses.first == "all"
|
||||
module_app = OrbitHelper.this_module_app
|
||||
@statuses = module_app.role_status.collect do |stat|
|
||||
{
|
||||
"status" => stat.title,
|
||||
"id" => stat.id.to_s,
|
||||
"status-role" => stat.role.title,
|
||||
"rs" => stat
|
||||
}
|
||||
end
|
||||
else
|
||||
statuses.each do |stat|
|
||||
s = RoleStatus.find(stat)
|
||||
@statuses << {"status" => s.title, "id" => s.id.to_s, "rs" => s, "status-role" => s.role.title}
|
||||
end
|
||||
end
|
||||
stats = @statuses.collect do |status|
|
||||
members = status["rs"].member_profiles
|
||||
member_list = members.collect do |member|
|
||||
if member.avatar.present?
|
||||
image = member.avatar.thumb.url
|
||||
|
@ -14,14 +33,21 @@ class MembersController < ApplicationController
|
|||
end
|
||||
{
|
||||
"name" => member.name,
|
||||
"email" => member.email,
|
||||
"roles" => roles,
|
||||
"img_src" => image,
|
||||
"email" => member.email,
|
||||
"link_to_show" => OrbitHelper.url_to_show(member.to_param)
|
||||
}
|
||||
|
||||
end
|
||||
{
|
||||
"status-title" => status["status"],
|
||||
"role-title" => status["status-role"],
|
||||
"members" => member_list
|
||||
}
|
||||
end
|
||||
{
|
||||
"members" => member_list,
|
||||
"stats" => stats,
|
||||
"extras" => {"widget-title" => "Members"}
|
||||
}
|
||||
end
|
||||
|
@ -33,9 +59,21 @@ class MembersController < ApplicationController
|
|||
|
||||
plugins = OrbitApp::Plugin::Registration.all rescue nil
|
||||
plugin_list = plugins.collect do |plugin|
|
||||
intro = PersonalPluginIntro.find_by(member_profile_id:member.id, _type: "#{plugin.app_name}Intro")
|
||||
intro = PersonalPluginIntro.find_by(member_profile_id:member.id, _type: "#{plugin.app_name}Intro") rescue nil
|
||||
|
||||
if intro.complete_list == true
|
||||
if intro.nil?
|
||||
plugin_data = plugin.app_name.constantize.where(member_profile_id: member) rescue nil
|
||||
pd = plugin_data.collect do |p|
|
||||
{
|
||||
"data_title" => p.slug_title,
|
||||
"link_to_show" => OrbitHelper.url_to_show(p.to_param) + "?method=personal_plugin&plugin_name=#{plugin.app_name}"
|
||||
}
|
||||
end
|
||||
{
|
||||
"plugin_data" => pd,
|
||||
"plugin_title" => plugin.app_name.titleize
|
||||
}
|
||||
elsif intro.complete_list == true
|
||||
plugin_data = plugin.app_name.constantize.where(member_profile_id: member) rescue nil
|
||||
pd = plugin_data.collect do |p|
|
||||
{
|
||||
|
@ -96,7 +134,7 @@ class MembersController < ApplicationController
|
|||
if (rf.attribute_field.markup.eql?("text_field") || rf.attribute_field.markup.eql?("text_area"))
|
||||
role_field_value = rf.value[I18n.locale]
|
||||
elsif (rf.attribute_field.markup.eql?("select") || rf.attribute_field.markup.eql?("radio_button"))
|
||||
role_field_value = rf.attribute_field.markup_value["#{rf.value}"][I18n.locale]
|
||||
role_field_value = rf.attribute_field.markup_value["#{rf.value}"][I18n.locale] rescue nil
|
||||
elsif rf.attribute_field.markup.eql?("address")
|
||||
role_field_value = rf[:address_key][I18n.locale].map{|k,v| v}.join(', ')
|
||||
elsif rf.attribute_field.markup.eql?("date")
|
||||
|
@ -112,7 +150,7 @@ class MembersController < ApplicationController
|
|||
role_field_value = rf.value.to_date.strftime("%Y")
|
||||
end
|
||||
elsif rf.attribute_field.markup.eql?("checkbox")
|
||||
role_field_value = rf.value.map {|v| rf.attribute_field.markup_value["#{v}"][I18n.locale]}.join(', ')
|
||||
role_field_value = rf.value.map {|v| rf.attribute_field.markup_value["#{v}"][I18n.locale]}.join(', ') rescue nil
|
||||
end
|
||||
|
||||
{
|
||||
|
|
|
@ -131,12 +131,22 @@ class PagesController < ApplicationController
|
|||
|
||||
def get_categories
|
||||
module_app = ModuleApp.find_by_key(params[:module]);
|
||||
if module_app.key.eql?("member")
|
||||
@categories = module_app.role_status.collect do |cat|
|
||||
{
|
||||
"title" => "#{cat.title} (#{cat.role.title})",
|
||||
"id" => cat.id.to_s
|
||||
}
|
||||
end
|
||||
else
|
||||
@categories = module_app.categories.collect do |cat|
|
||||
{
|
||||
"title" => cat.title,
|
||||
"id" => cat.id.to_s
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
if module_app.data_count.nil?
|
||||
render :json => {"categories" => @categories,"layouts" => (get_layouts module_app.key),"data_count" => {"present"=>false}}.to_json
|
||||
else
|
||||
|
@ -158,6 +168,11 @@ class PagesController < ApplicationController
|
|||
@modules = ModuleApp.all.frontend_enabled
|
||||
@module_app = ModuleApp.find_by_key(@page.module) rescue nil
|
||||
@categories = @module_app.categories rescue []
|
||||
if @module_app.key.eql?("member")
|
||||
@status = @module_app.role_status rescue []
|
||||
else
|
||||
@status = []
|
||||
end
|
||||
@layout_types = get_layouts @module_app.key
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,6 +5,5 @@
|
|||
def filter_by_categories(categories=[])
|
||||
categories = OrbitHelper.page_categories if categories.blank?
|
||||
self.where(:category_id.in => categories) rescue []
|
||||
|
||||
end
|
||||
end
|
|
@ -77,6 +77,10 @@ class ModuleApp
|
|||
Authorization.module_authorized_users(self).pluck(:role_id)
|
||||
end
|
||||
|
||||
def role_status
|
||||
RoleStatus.all
|
||||
end
|
||||
|
||||
def module_managers
|
||||
workgroup = Workgroup.find_by(key: 'sub_managers')
|
||||
authorized_users = Authorization.module_authorized_users(self).where(:user_id.ne => nil, :workgroup_id.ne => workgroup.id).map {|u| u.user} rescue nil
|
||||
|
|
|
@ -6,7 +6,7 @@ class RoleStatus
|
|||
|
||||
scope :can_display, ->{ where(disable: false) }
|
||||
|
||||
has_and_belongs_to_many :member_profile
|
||||
has_and_belongs_to_many :member_profiles
|
||||
belongs_to :role
|
||||
|
||||
def self.get_role_data(role_key)
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
<div class="index-members">
|
||||
<h3 class="index-title">
|
||||
<span>{{widget-title}}</span>
|
||||
</h3>
|
||||
<div class="row" module="member" data-level="0" data-list="members">
|
||||
<div class="index" module="member">
|
||||
<h2 class="widget-title">{{widget-title}}</h2>
|
||||
<div class="list-group">
|
||||
<div class="list-group-item" data-list="stats" data-level="0">
|
||||
<h4 class="list-group-item-heading">{{status-title}} ({{role-title}})</h4>
|
||||
<ul class="list-group-item-text">
|
||||
<div class="row" module="member" data-level="1" data-list="members">
|
||||
<div class="index-content col-sm-6">
|
||||
<div class="boxes-inner">
|
||||
<div class="index-pic">
|
||||
|
@ -12,7 +14,7 @@
|
|||
<h4 class="index-part-title">
|
||||
<a href="{{link_to_show}}">{{name}}</a>
|
||||
</h4>
|
||||
<div data-level="1" data-list="roles">
|
||||
<div data-level="2" data-list="roles">
|
||||
<p class="index-part-subtitle">{{role}}</p>
|
||||
</div>
|
||||
<p class="index-part-subtitle">{{email}}</p>
|
||||
|
@ -20,6 +22,7 @@
|
|||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{pagination_goes_here}}
|
|
@ -46,6 +46,27 @@
|
|||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= "Category List :" if params[:action] == "edit" && !@status.blank? %></label>
|
||||
<div id="categories_list">
|
||||
<% if params[:action] == "edit" %>
|
||||
<div class="controls">
|
||||
<% if !@status.blank? %>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" value="all" class="checkbox-all" name="page[categories][]" <%= "checked='checked'" if (@page.categories.include? "all") %> >
|
||||
All
|
||||
</label>
|
||||
<% end %>
|
||||
<% @status.each do |status| %>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="page[categories][]" value="<%= status.id.to_s %>" <%= "checked='checked'" if (@page.categories.include? status.id.to_s) %> />
|
||||
<%= status.title %>(<%= status.role.title %>)
|
||||
</label>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= "Layout type :" if params[:action] == "edit" && !@layout_types.blank? %></label>
|
||||
<div id="layouts_list">
|
||||
|
|
Loading…
Reference in New Issue