forked from saurabh/orbit4-5
delete post, edit groups done
This commit is contained in:
parent
a440076916
commit
c406951876
|
@ -9,7 +9,15 @@ class Admin::GroupsController < OrbitGroupController
|
||||||
end
|
end
|
||||||
|
|
||||||
def categories
|
def categories
|
||||||
@categories = GroupCategory.all
|
old_categories = GroupCategory.where(:is_accepted.ne => false)
|
||||||
|
if old_categories.count > 0
|
||||||
|
old_categories.each do |oc|
|
||||||
|
oc.is_accepted = true
|
||||||
|
oc.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@admin_categories = GroupCategory.by_admin
|
||||||
|
@requested_categories = GroupCategory.is_requested
|
||||||
end
|
end
|
||||||
|
|
||||||
def newpost
|
def newpost
|
||||||
|
@ -55,15 +63,20 @@ class Admin::GroupsController < OrbitGroupController
|
||||||
def create_category
|
def create_category
|
||||||
gc = GroupCategory.new(category_params)
|
gc = GroupCategory.new(category_params)
|
||||||
gc.save
|
gc.save
|
||||||
@categories = GroupCategory.all
|
if !current_user.is_admin?
|
||||||
|
@requested_categories = GroupCategory.is_requested
|
||||||
|
render :partial => "group_requested_categories"
|
||||||
|
else
|
||||||
|
@admin_categories = GroupCategory.by_admin
|
||||||
render :partial => "group_categories"
|
render :partial => "group_categories"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def update_category
|
def update_category
|
||||||
gc = GroupCategory.find(params[:category_id])
|
gc = GroupCategory.find(params[:category_id])
|
||||||
gc.update_attributes(category_params)
|
gc.update_attributes(category_params)
|
||||||
gc.save
|
gc.save
|
||||||
@categories = GroupCategory.all
|
@admin_categories = GroupCategory.by_admin
|
||||||
render :partial => "group_categories"
|
render :partial => "group_categories"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -95,6 +108,13 @@ class Admin::GroupsController < OrbitGroupController
|
||||||
redirect_to admin_groups_path
|
redirect_to admin_groups_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
@group = Group.find(params[:id])
|
||||||
|
@group.update_attributes(group_update_params)
|
||||||
|
@group.save
|
||||||
|
redirect_to admin_groups_path
|
||||||
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
group = Group.find(params[:id])
|
group = Group.find(params[:id])
|
||||||
group.destroy
|
group.destroy
|
||||||
|
@ -103,7 +123,8 @@ class Admin::GroupsController < OrbitGroupController
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@group = Group.new
|
@group = Group.new
|
||||||
@categories = GroupCategory.all.collect{|gc| [gc.title,gc.id]}
|
@no_breadcrumb = true
|
||||||
|
@categories = GroupCategory.by_admin.collect{|gc| [gc.title,gc.id]}
|
||||||
@members = []
|
@members = []
|
||||||
MemberProfile.all.each do |mp|
|
MemberProfile.all.each do |mp|
|
||||||
user = mp.user rescue nil
|
user = mp.user rescue nil
|
||||||
|
@ -119,6 +140,81 @@ class Admin::GroupsController < OrbitGroupController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def edit
|
||||||
|
render_401 and return if !is_user_group_admin?
|
||||||
|
@no_breadcrumb = true
|
||||||
|
@members = []
|
||||||
|
MemberProfile.all.each do |mp|
|
||||||
|
user = mp.user rescue nil
|
||||||
|
if !user.nil? && user.id.to_s != current_user.id.to_s && user.user_name != "rulingcom" && !@group.users.include?(user)
|
||||||
|
avatar = (mp.avatar.thumb.url == "thumb_person.png" ? "/assets/thumb_person.png" : mp.avatar.thumb.url rescue "/assets/thumb_person.png")
|
||||||
|
@members << {
|
||||||
|
"id" => user.id.to_s,
|
||||||
|
"user_name" => (user.user_name rescue ""),
|
||||||
|
"avatar" => avatar,
|
||||||
|
"name" => (mp.name_translations rescue {"en" => "","zh_tw" => ""})
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@existing_members = []
|
||||||
|
@group.users.each do |user|
|
||||||
|
mp = user.member_profile rescue nil
|
||||||
|
if !mp.nil?
|
||||||
|
avatar = (mp.avatar.thumb.url == "thumb_person.png" ? "/assets/thumb_person.png" : mp.avatar.thumb.url rescue "/assets/thumb_person.png")
|
||||||
|
@existing_members << {
|
||||||
|
"id" => user.id.to_s,
|
||||||
|
"user_name" => (user.user_name rescue ""),
|
||||||
|
"avatar" => avatar,
|
||||||
|
"name" => (mp.name_translations rescue {"en" => "","zh_tw" => ""}),
|
||||||
|
"admin" => @group.admins.include?(user.id.to_s)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_existing_member_template
|
||||||
|
g = params[:group_id]
|
||||||
|
group = Group.find(g)
|
||||||
|
@existing_members = []
|
||||||
|
group.users.each do |user|
|
||||||
|
mp = user.member_profile rescue nil
|
||||||
|
if !mp.nil?
|
||||||
|
avatar = (mp.avatar.thumb.url == "thumb_person.png" ? "/assets/thumb_person.png" : mp.avatar.thumb.url rescue "/assets/thumb_person.png")
|
||||||
|
@existing_members << {
|
||||||
|
"id" => user.id.to_s,
|
||||||
|
"user_name" => (user.user_name rescue ""),
|
||||||
|
"avatar" => avatar,
|
||||||
|
"name" => (mp.name_translations rescue {"en" => "","zh_tw" => ""}),
|
||||||
|
"admin" => group.admins.include?(user.id.to_s)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
render :partial => "group_existing_member"
|
||||||
|
end
|
||||||
|
|
||||||
|
def remove_user
|
||||||
|
group = Group.find(params[:group_id])
|
||||||
|
user_id = params[:user_id]
|
||||||
|
user = User.find(user_id)
|
||||||
|
group.users.delete(user)
|
||||||
|
group.admins.delete(user.id.to_s) if group.admins.include?(user.id.to_s)
|
||||||
|
group.save
|
||||||
|
render :json => {"success" => true}.to_json
|
||||||
|
end
|
||||||
|
|
||||||
|
def toggle_admin
|
||||||
|
group = Group.find(params[:group_id])
|
||||||
|
user_id = params[:user_id]
|
||||||
|
user = User.find(user_id)
|
||||||
|
if params[:admin] == "true"
|
||||||
|
group.admins << user.id.to_s
|
||||||
|
else
|
||||||
|
group.admins.delete(user.id.to_s)
|
||||||
|
end
|
||||||
|
group.save
|
||||||
|
render :json => {"success" => true}.to_json
|
||||||
|
end
|
||||||
|
|
||||||
def new_comment
|
def new_comment
|
||||||
gpc = GroupPostComment.new(comment_params)
|
gpc = GroupPostComment.new(comment_params)
|
||||||
gpc.save
|
gpc.save
|
||||||
|
@ -128,7 +224,13 @@ class Admin::GroupsController < OrbitGroupController
|
||||||
private
|
private
|
||||||
|
|
||||||
def category_params
|
def category_params
|
||||||
params.require(:category).permit!
|
p = params.require(:category).permit!
|
||||||
|
if p[:is_accepted].nil?
|
||||||
|
p[:is_accepted] = true
|
||||||
|
else
|
||||||
|
p[:is_accepted] = false
|
||||||
|
end
|
||||||
|
p
|
||||||
end
|
end
|
||||||
|
|
||||||
def comment_params
|
def comment_params
|
||||||
|
@ -174,4 +276,16 @@ class Admin::GroupsController < OrbitGroupController
|
||||||
p
|
p
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def group_update_params
|
||||||
|
p = params.require(:group).permit!
|
||||||
|
p["user_ids"] = [] if p["user_ids"].nil?
|
||||||
|
p["user_ids"].concat(@group.users.collect{|u| u.id.to_s})
|
||||||
|
p
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ class OrbitGroupController < ApplicationController
|
||||||
|
|
||||||
def get_group
|
def get_group
|
||||||
case params[:action]
|
case params[:action]
|
||||||
when "show"
|
when "show","edit"
|
||||||
uid = params[:id].split("-").last
|
uid = params[:id].split("-").last
|
||||||
@group = Group.find_by(:uid => uid)
|
@group = Group.find_by(:uid => uid)
|
||||||
when "newpost", "createpost"
|
when "newpost", "createpost"
|
||||||
|
@ -21,7 +21,7 @@ class OrbitGroupController < ApplicationController
|
||||||
@access_right_level = "none"
|
@access_right_level = "none"
|
||||||
read_or_write = @group.permission rescue "read"
|
read_or_write = @group.permission rescue "read"
|
||||||
case params[:action]
|
case params[:action]
|
||||||
when "show", "showpost", "newpost"
|
when "show", "showpost", "newpost", "edit"
|
||||||
is_member = @group.users.include?(current_user)
|
is_member = @group.users.include?(current_user)
|
||||||
if @group.admins.include?(current_user.id.to_s)
|
if @group.admins.include?(current_user.id.to_s)
|
||||||
@access_right_level = "admin"
|
@access_right_level = "admin"
|
||||||
|
|
|
@ -3,6 +3,10 @@ class GroupCategory
|
||||||
include Mongoid::Timestamps
|
include Mongoid::Timestamps
|
||||||
|
|
||||||
field :title, localize: true
|
field :title, localize: true
|
||||||
|
field :is_accepted, type: Boolean, :default => true
|
||||||
|
|
||||||
has_many :groups
|
has_many :groups
|
||||||
|
|
||||||
|
scope :is_requested, ->{ where(is_accepted: false) }
|
||||||
|
scope :by_admin, ->{ where(is_accepted: true) }
|
||||||
end
|
end
|
|
@ -7,12 +7,12 @@
|
||||||
end
|
end
|
||||||
%>
|
%>
|
||||||
<li class="group-card animated bounceInDown" data-group-id="<%= group.id.to_s %>">
|
<li class="group-card animated bounceInDown" data-group-id="<%= group.id.to_s %>">
|
||||||
<div class="group-card-inner card-ownership card-owner card">
|
<div class="group-card-inner card-ownership <%= current_user_is_group_admin ? "card-owner" : (current_user_is_group_member ? "card-member" : "card-public") %> card">
|
||||||
<div class="group-avatar">
|
<div class="group-avatar">
|
||||||
<p class="<%= current_user_is_group_admin ? "gender-man" : (current_user_is_group_member ? "gender-woman" : "gender-none") %>"></p>
|
<p></p>
|
||||||
<% if current_user_is_group_admin %>
|
<% if current_user_is_group_admin %>
|
||||||
<div class="action">
|
<div class="action">
|
||||||
<%= link_to(content_tag(:i, nil, :class => 'icon-edit'),"#",:class=>"edit" ) %>
|
<%= link_to(content_tag(:i, nil, :class => 'icon-edit'),edit_admin_group_path(group),:class=>"edit" ) %>
|
||||||
<%= link_to(content_tag(:i, nil, :class => 'icon-trash'),"/admin/groups/#{group.id.to_s}",:class=>"trash delete-group-button" ) %>
|
<%= link_to(content_tag(:i, nil, :class => 'icon-trash'),"/admin/groups/#{group.id.to_s}",:class=>"trash delete-group-button" ) %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<% @categories.each do |cat| %>
|
<% is_admin = current_user.is_admin? %>
|
||||||
|
<% @admin_categories.each do |cat| %>
|
||||||
<div class="group-category-item button button-primary">
|
<div class="group-category-item button button-primary">
|
||||||
<i class="group-category-tag-icon fa fa-tag"></i>
|
<i class="group-category-tag-icon fa fa-tag"></i>
|
||||||
<a href="#" class="open-slide" data-title="Edit" data-form="<%= cat.title_translations.to_json %>" data-id="<%= cat.id.to_s %>" ><%= cat.title_translations["en"] %> / <%= cat.title_translations["zh_tw"] %></a>
|
<a href="#" class="<%= is_admin ? "open-slide" : "" %>" data-title="Edit" data-form="<%= cat.title_translations.to_json %>" data-id="<%= cat.id.to_s %>" ><%= cat.title_translations["en"] %> / <%= cat.title_translations["zh_tw"] %></a>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<% existing_members_limit = 4 %>
|
||||||
|
|
||||||
|
<label class="control-label muted"><%= t(:existing_members) %></label>
|
||||||
|
<div class="controls" id="existing-member-avatar-holder">
|
||||||
|
<% @existing_members.each_with_index do |em,i| %>
|
||||||
|
<% if em["id"] != current_user.id.to_s %>
|
||||||
|
<img data-member-id="<%= em["id"] %>" class="existing-phone-avatar" src="<%= em["avatar"] %>" style="width:75px;height:75px;" />
|
||||||
|
<% end %>
|
||||||
|
<% if i == existing_members_limit %>
|
||||||
|
<span class="existing-member-count"> … <%= (@existing_members.count - existing_members_limit).to_s %> more.</span>
|
||||||
|
<% break
|
||||||
|
end %>
|
||||||
|
<% end %>
|
||||||
|
<% if @existing_members.count > 1 %>
|
||||||
|
<a href="#existing_members_dialog" data-toggle="modal"> Edit members</a>
|
||||||
|
<% else %>
|
||||||
|
No members.
|
||||||
|
<% end %>
|
||||||
|
</div>
|
|
@ -28,7 +28,11 @@
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label muted"><%= t(:category) %></label>
|
<label class="control-label muted"><%= t(:category) %></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
|
<% if params[:action] == "new" %>
|
||||||
<%= f.select :group_category_id, @categories %>
|
<%= f.select :group_category_id, @categories %>
|
||||||
|
<% else %>
|
||||||
|
<%= @group.group_category.title %>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- group banner image -->
|
<!-- group banner image -->
|
||||||
|
@ -64,10 +68,10 @@
|
||||||
<label class="control-label muted">Privacy</label>
|
<label class="control-label muted">Privacy</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<label class="radio inline">
|
<label class="radio inline">
|
||||||
<input type="radio" name="group[privacy]" value="open" /> Open
|
<input type="radio" name="group[privacy]" value="open" <%= @group.privacy == "open" ? "checked='checked'" : "" %> /> Open
|
||||||
</label>
|
</label>
|
||||||
<label class="radio inline">
|
<label class="radio inline">
|
||||||
<input type="radio" name="group[privacy]" value="closed" checked="checked" /> Closed
|
<input type="radio" name="group[privacy]" value="closed" <%= @group.privacy == "closed" ? "checked='checked'" : "" %> /> Closed
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -75,10 +79,10 @@
|
||||||
<label class="control-label muted">Permission</label>
|
<label class="control-label muted">Permission</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<label class="radio inline">
|
<label class="radio inline">
|
||||||
<input type="radio" name="group[permission]" value="read" /> Read
|
<input type="radio" name="group[permission]" value="read" <%= @group.permission == "read" ? "checked='checked'" : "" %> /> Read
|
||||||
</label>
|
</label>
|
||||||
<label class="radio inline">
|
<label class="radio inline">
|
||||||
<input type="radio" name="group[permission]" value="write" checked="checked" /> Write
|
<input type="radio" name="group[permission]" value="write" <%= @group.permission == "write" ? "checked='checked'" : "" %> /> Write
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -98,7 +102,11 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<% if params[:action] == "edit" %>
|
||||||
|
<div class="control-group" id="group_existing_member_holder">
|
||||||
|
<%= render :partial => "group_existing_member" %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Language Tabs -->
|
<!-- Language Tabs -->
|
||||||
|
@ -148,9 +156,10 @@
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
||||||
<%= link_to t('cancel'), admin_groups_path, :class=>"btn" %>
|
<%= link_to t('cancel'), admin_groups_path, :class=>"btn" %>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var locale = "<%= I18n.locale.to_s %>";
|
var locale = "<%= I18n.locale.to_s %>";
|
||||||
|
var bindSelect = function(){
|
||||||
$(".member_selection").select2({
|
$(".member_selection").select2({
|
||||||
formatResult: function (el) {
|
formatResult: function (el) {
|
||||||
var $el = $(el.element),
|
var $el = $(el.element),
|
||||||
|
@ -166,6 +175,8 @@ var locale = "<%= I18n.locale.to_s %>";
|
||||||
},
|
},
|
||||||
placeholder: "Add Members"
|
placeholder: "Add Members"
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
bindSelect();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<% is_admin = current_user.is_admin? %>
|
||||||
|
<% @requested_categories.each do |rc| %>
|
||||||
|
<div class="group-category-item button button-primary">
|
||||||
|
<i class="group-category-tag-icon fa fa-tag"></i>
|
||||||
|
<a href="#"><%= rc.title_translations["en"] + "/" + rc.title_translations["zh_tw"] %></a>
|
||||||
|
<% if is_admin %>
|
||||||
|
<span class="group-category-controls">
|
||||||
|
<a href="#" class="group-category-approve tool-tip-parent">
|
||||||
|
<i class="fa fa-check"></i>
|
||||||
|
<span class="group-category-approve-tootip tool-tip">
|
||||||
|
Approve
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a href="#" class="group-category-reject tool-tip-parent">
|
||||||
|
<i class="fa fa-times"></i>
|
||||||
|
<span class="group-category-approve-tootip tool-tip">
|
||||||
|
Reject
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
|
@ -15,7 +15,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="group-category-tab-nav" href=".group-category-request" data-toggle="tab">
|
<a class="group-category-tab-nav" href=".group-category-request" data-toggle="tab">
|
||||||
Request categories
|
Requested categories
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -23,31 +23,18 @@
|
||||||
<div class="group-category-existing tab-pane fade in active" id="category_holder_box">
|
<div class="group-category-existing tab-pane fade in active" id="category_holder_box">
|
||||||
<%= render :partial => "group_categories" %>
|
<%= render :partial => "group_categories" %>
|
||||||
</div>
|
</div>
|
||||||
<div class="group-category-request fade">
|
<div class="group-category-request fade" id="requested_category_holder_box">
|
||||||
<div class="group-category-item button button-primary">
|
<%= render :partial => "group_requested_categories" %>
|
||||||
<i class="group-category-tag-icon fa fa-tag"></i>
|
|
||||||
<a href="#">Request tag one</a>
|
|
||||||
<span class="group-category-controls">
|
|
||||||
<a href="#" class="group-category-approve tool-tip-parent">
|
|
||||||
<i class="fa fa-check"></i>
|
|
||||||
<span class="group-category-approve-tootip tool-tip">
|
|
||||||
Approve
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
<a href="#" class="group-category-reject tool-tip-parent">
|
|
||||||
<i class="fa fa-times"></i>
|
|
||||||
<span class="group-category-approve-tootip tool-tip">
|
|
||||||
Reject
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bottomnav clearfix">
|
<div class="bottomnav clearfix">
|
||||||
<div class="action pull-right">
|
<div class="action pull-right">
|
||||||
|
<% if current_user.is_admin? %>
|
||||||
<a href="" class="btn btn-primary" data-toggle="modal" data-target="#categoryModal">Add new category</a>
|
<a href="" class="btn btn-primary" data-toggle="modal" data-target="#categoryModal">Add new category</a>
|
||||||
|
<% else %>
|
||||||
|
<a href="" class="btn btn-primary" data-toggle="modal" data-target="#categoryModal">Request new category</a>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -69,6 +56,9 @@
|
||||||
<span class="help-inline hide">Please enter category title</span>
|
<span class="help-inline hide">Please enter category title</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% if !current_user.is_admin? %>
|
||||||
|
<input type="hidden" value="0" name="category[is_accepted]" />
|
||||||
<% end %>
|
<% end %>
|
||||||
</form>
|
</form>
|
||||||
<div class="text-error text-center"><%= t(:category_notice) %></div>
|
<div class="text-error text-center"><%= t(:category_notice) %></div>
|
||||||
|
@ -171,12 +161,16 @@
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url : "/admin/groups/create_category",
|
url : "/admin/groups/create_category",
|
||||||
type : "post",
|
type : "post",
|
||||||
data: $("#create_category_form input[type=text]").serialize(),
|
data: $("#create_category_form input").serialize(),
|
||||||
}).done(function(data){
|
}).done(function(data){
|
||||||
$.each($('#categoryModal .input-large'),function(){
|
$.each($('#categoryModal .input-large'),function(){
|
||||||
$(this).val("");
|
$(this).val("");
|
||||||
});
|
});
|
||||||
|
<% if current_user.is_admin? %>
|
||||||
$("#category_holder_box").html(data);
|
$("#category_holder_box").html(data);
|
||||||
|
<% else %>
|
||||||
|
$("#requested_category_holder_box").html(data);
|
||||||
|
<% end %>
|
||||||
$('#categoryModal').modal('hide');
|
$('#categoryModal').modal('hide');
|
||||||
bindOpenSlide(true);
|
bindOpenSlide(true);
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
<%= form_for @group, :url => admin_group_path(@group.id), :html => { :multipart => true , :class=>"form-horizontal main-forms"} do |f| %>
|
||||||
|
<fieldset>
|
||||||
|
<%= render :partial => "group_form", locals: {f: f} %>
|
||||||
|
</fieldset>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<div class="modal fade" id="existing_members_dialog">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||||
|
<h4 class="modal-title">Modify members</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table>
|
||||||
|
<% @existing_members.each do |em| %>
|
||||||
|
<tr>
|
||||||
|
<td><img src="<%= em["avatar"] %>" style="width:75px;height:75px;" /></td>
|
||||||
|
<td width="70%" <%= em["id"] != current_user.id.to_s ? "" : "colspan='3'" %>><h5><%= em["name"][I18n.locale.to_s] %></h5></td>
|
||||||
|
<% if em["id"] != current_user.id.to_s %>
|
||||||
|
<td><input type="checkbox" class="make-admin-checkbox" value="<%= em["id"] %>" <%= em["admin"] ? "checked='checked'" : ""%> /> Admin</td>
|
||||||
|
<td><a href="#" style="font-size:25px;" class="member-delete-btn" data-member="<%= em.to_json %>"><i class="icon-trash"></i></a></td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var members_to_add = [],
|
||||||
|
existing_members_count = <%= @existing_members.count.to_s %>;
|
||||||
|
$("#existing_members_dialog").on("shown",function(){
|
||||||
|
members_to_add = [];
|
||||||
|
})
|
||||||
|
$("#existing_members_dialog").on("hidden",function(){
|
||||||
|
if(members_to_add.length > 0){
|
||||||
|
var options = "";
|
||||||
|
$.each(members_to_add,function(i,member){
|
||||||
|
$(".existing-phone-avatar[data-member-id="+member["id"]+"]").remove();
|
||||||
|
options+= "<option value='" + member["id"] + "' data-member='" + JSON.stringify(member) + "'>" + member["name"][locale] + "</option>";
|
||||||
|
})
|
||||||
|
$(".member_selection").select2("destroy").append(options);
|
||||||
|
$.ajax({
|
||||||
|
url : "/admin/groups/existing_member_template",
|
||||||
|
data : {"group_id" : "<%= @group.id.to_s %>"},
|
||||||
|
dataType : "html"
|
||||||
|
}).done(function(template){
|
||||||
|
$("#group_existing_member_holder").html(template);
|
||||||
|
})
|
||||||
|
bindSelect();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$(".member-delete-btn").on("click",function(){
|
||||||
|
if(confirm("Are you sure?")){
|
||||||
|
var el = $(this),
|
||||||
|
tr = el.parent().parent();
|
||||||
|
members_to_add.push(el.data("member"));
|
||||||
|
$.ajax({
|
||||||
|
url : "/admin/groups/<%= @group.id.to_s %>/remove_user",
|
||||||
|
data : {"user_id" : el.data("member")["id"]},
|
||||||
|
dataType : "json",
|
||||||
|
type : "post"
|
||||||
|
}).done(function(){
|
||||||
|
tr.slideUp(function(){
|
||||||
|
tr.remove();
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$(".make-admin-checkbox").on("click",function(){
|
||||||
|
var el = $(this),
|
||||||
|
admin = el.is(":checked");
|
||||||
|
$.ajax({
|
||||||
|
url : "/admin/groups/<%= @group.id.to_s %>/toggle_admin",
|
||||||
|
data : {"user_id" : el.val(), "admin" : admin},
|
||||||
|
dataType : "json",
|
||||||
|
type : "post"
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
<%= content_tag :li, link_to((content_tag(:span, "My Groups")), admin_groups_path), :class => active_for_action('groups', 'index') %>
|
<%= content_tag :li, link_to((content_tag(:span, "My Groups")), admin_groups_path), :class => active_for_action('groups', 'index') %>
|
||||||
<%= content_tag :li, link_to((content_tag(:span, "Public Groups")), admin_groups_public_path), :class => active_for_action('groups','public_groups') %>
|
<%= content_tag :li, link_to((content_tag(:span, "Public Groups")), admin_groups_public_path), :class => active_for_action('groups','public_groups') %>
|
||||||
<%= content_tag :li, link_to((content_tag(:span, "Create New Group")), new_admin_group_path), :class => active_for_action('groups','new') %>
|
<%= content_tag :li, link_to((content_tag(:span, "Create New Group")), new_admin_group_path), :class => active_for_action('groups','new') %>
|
||||||
<%= content_tag :li, link_to((content_tag(:span, "Categories")), admin_groups_categories_path), :class => active_for_action('groups','categories') if current_user.is_admin? %>
|
<%= content_tag :li, link_to((content_tag(:span, "Categories")), admin_groups_categories_path), :class => active_for_action('groups','categories') %>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</div>
|
</div>
|
||||||
<div class="sub-nav-block" data-icons="">
|
<div class="sub-nav-block" data-icons="">
|
||||||
|
|
|
@ -125,6 +125,9 @@ Orbit::Application.routes.draw do
|
||||||
# GROUPS START HERE
|
# GROUPS START HERE
|
||||||
get "groups/categories" => 'groups#categories'
|
get "groups/categories" => 'groups#categories'
|
||||||
post "groups/create_category" => 'groups#create_category'
|
post "groups/create_category" => 'groups#create_category'
|
||||||
|
post "groups/:group_id/remove_user" => 'groups#remove_user'
|
||||||
|
post "groups/:group_id/toggle_admin" => 'groups#toggle_admin'
|
||||||
|
get "groups/existing_member_template" => 'groups#get_existing_member_template'
|
||||||
get "groups/public" => 'groups#public_groups'
|
get "groups/public" => 'groups#public_groups'
|
||||||
patch "groups/updatecategory/:category_id" => 'groups#update_category'
|
patch "groups/updatecategory/:category_id" => 'groups#update_category'
|
||||||
get "posts/:id" => 'groups#showpost'
|
get "posts/:id" => 'groups#showpost'
|
||||||
|
|
Loading…
Reference in New Issue