forked from saurabh/orbit4-5
lot of changes for groups
This commit is contained in:
parent
7e46bde3bc
commit
1cfd6b80f9
|
@ -1,5 +1,5 @@
|
|||
class Admin::GroupsController < OrbitMemberController
|
||||
|
||||
class Admin::GroupsController < OrbitGroupController
|
||||
include Admin::GroupsHelper
|
||||
def index
|
||||
@groups = current_user.groups
|
||||
end
|
||||
|
@ -13,31 +13,37 @@ class Admin::GroupsController < OrbitMemberController
|
|||
end
|
||||
|
||||
def newpost
|
||||
render_401 and return if !user_can_write?
|
||||
@no_breadcrumb = true
|
||||
uid = params[:group_id].split("-").last
|
||||
@group = Group.find_by(:uid => uid)
|
||||
@grouppost = GroupPost.new
|
||||
end
|
||||
|
||||
def createpost
|
||||
uid = params[:group_id].split("-").last
|
||||
group = Group.find_by(:uid => uid)
|
||||
gp = GroupPost.new(post_params)
|
||||
gp.group = group
|
||||
gp.group = @group
|
||||
gp.save
|
||||
redirect_to admin_group_path(group)
|
||||
redirect_to admin_group_path(@group)
|
||||
end
|
||||
|
||||
def showpost
|
||||
uid = params[:id].split("-").last
|
||||
@post = GroupPost.find_by(:uid => uid)
|
||||
render_401 and return if !user_can_read?
|
||||
if (current_user.id.to_s != @post.author.to_s) && (!@post.read_by.include?(current_user.id.to_s))
|
||||
@post.read_by << current_user.id.to_s
|
||||
@post.save
|
||||
end
|
||||
@read_by_names = @post.read_by.collect{|rb|
|
||||
user = User.find(rb) rescue nil
|
||||
author = (user.member_profile.name == nil ? user.user_name : user.member_profile.name rescue "") if !user.nil?
|
||||
author
|
||||
}
|
||||
end
|
||||
|
||||
def show
|
||||
@no_breadcrumb = true
|
||||
@no_filter = true
|
||||
uid = params[:id].split("-").last
|
||||
@group = Group.find_by(:uid => uid)
|
||||
if !user_can_read?
|
||||
render_401 and return
|
||||
end
|
||||
end
|
||||
|
||||
def create_category
|
||||
|
@ -53,6 +59,22 @@ class Admin::GroupsController < OrbitMemberController
|
|||
render :json => {"success" => true,"id" => photo.id.to_s}.to_json
|
||||
end
|
||||
|
||||
|
||||
def upload_file
|
||||
file = GroupPostFile.new(post_file_params)
|
||||
file.save
|
||||
render :json => {"success" => true,"id" => file.id.to_s}.to_json
|
||||
end
|
||||
|
||||
def download_file
|
||||
file_id = params[:id]
|
||||
file = GroupPostFile.find(file_id) rescue nil
|
||||
if !file.nil?
|
||||
redirect_to file.file.url and return
|
||||
end
|
||||
render :nothing => true
|
||||
end
|
||||
|
||||
def create
|
||||
group = Group.new(group_params)
|
||||
group.save
|
||||
|
@ -77,12 +99,22 @@ class Admin::GroupsController < OrbitMemberController
|
|||
end
|
||||
end
|
||||
|
||||
def new_comment
|
||||
gpc = GroupPostComment.new(comment_params)
|
||||
gpc.save
|
||||
render :partial => "post_comment", :collection => [gpc]
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def category_params
|
||||
params.require(:category).permit!
|
||||
end
|
||||
|
||||
def comment_params
|
||||
params.require(:group_post_comment).permit!
|
||||
end
|
||||
|
||||
def post_params
|
||||
p = params.require(:group_post).permit!
|
||||
p["author"] = current_user.id
|
||||
|
@ -93,7 +125,15 @@ class Admin::GroupsController < OrbitMemberController
|
|||
images << gpi
|
||||
end
|
||||
end
|
||||
files = []
|
||||
p[:group_post_files].each do |id|
|
||||
gpf = GroupPostFile.find(id) rescue nil
|
||||
if !gpf.nil?
|
||||
files << gpf
|
||||
end
|
||||
end
|
||||
p[:group_post_images] = images
|
||||
p[:group_post_files] = files
|
||||
p
|
||||
end
|
||||
|
||||
|
@ -101,6 +141,10 @@ class Admin::GroupsController < OrbitMemberController
|
|||
params.require(:group_post_image).permit!
|
||||
end
|
||||
|
||||
def post_file_params
|
||||
params.require(:group_post_file).permit!
|
||||
end
|
||||
|
||||
def group_params
|
||||
p = params.require(:group).permit!
|
||||
p["user_ids"] << current_user.id.to_s
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
class OrbitGroupController < ApplicationController
|
||||
layout "member"
|
||||
before_action :authenticate_user, :get_group, :set_access_rights
|
||||
|
||||
def get_group
|
||||
case params[:action]
|
||||
when "show"
|
||||
uid = params[:id].split("-").last
|
||||
@group = Group.find_by(:uid => uid)
|
||||
when "newpost", "createpost"
|
||||
uid = params[:group_id].split("-").last
|
||||
@group = Group.find_by(:uid => uid)
|
||||
when "showpost"
|
||||
uid = params[:id].split("-").last
|
||||
@post = GroupPost.find_by(:uid => uid)
|
||||
@group = @post.group
|
||||
end
|
||||
end
|
||||
|
||||
def set_access_rights
|
||||
@access_right_level = "none"
|
||||
read_or_write = "write"
|
||||
case params[:action]
|
||||
when "show", "showpost", "newpost"
|
||||
is_member = @group.users.include?(current_user)
|
||||
if @group.admins.include?(current_user.id.to_s)
|
||||
@access_right_level = "admin"
|
||||
elsif is_member
|
||||
if read_or_write == "write"
|
||||
@access_right_level = "write"
|
||||
elsif read_or_write == "read"
|
||||
@access_right_level = "read"
|
||||
end
|
||||
elsif !is_member && @group.privacy == "open"
|
||||
@access_right_level = "read"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def render_401
|
||||
render "public/401"
|
||||
end
|
||||
end
|
|
@ -35,7 +35,7 @@ class PagePartsController < ApplicationController
|
|||
def edit_sub_part
|
||||
@part = part_model.find(params[:part_id])
|
||||
@subpart = SubPart.find(params[:sub_part_id])
|
||||
@select_number = @part.sub_parts.index(@subpart)
|
||||
@select_number = @part.sub_parts.index{|sp| sp.id.to_s == @subpart.id.to_s}
|
||||
@child_page_count = 0
|
||||
@kind = @subpart.kind
|
||||
@modules = ModuleApp.widget_enabled
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
module Admin::GroupsHelper
|
||||
def remote_file_exists?(url)
|
||||
url = URI.parse(url)
|
||||
Net::HTTP.start(url.host, url.port) do |http|
|
||||
return http.head(url.request_uri)['Content-Type'].start_with? 'image'
|
||||
end
|
||||
end
|
||||
|
||||
def parse_for_images(content)
|
||||
urls = URI.extract(content)
|
||||
images = []
|
||||
urls.each do |url|
|
||||
images << url if !url.nil? && remote_file_exists?(url)
|
||||
end if !urls.empty?
|
||||
|
||||
image_content = "<br />"
|
||||
images.each do |img|
|
||||
content = content.sub(img,"")
|
||||
image_content = image_content + "<img src='#{img}' style='width:auto;' /><br />"
|
||||
end if !images.empty?
|
||||
return [content, image_content]
|
||||
end
|
||||
|
||||
def is_user_group_admin?
|
||||
return (@access_right_level == "admin" ? true : false)
|
||||
end
|
||||
|
||||
def user_can_write?
|
||||
return (@access_right_level == "admin" || @access_right_level == "write" ? true : false)
|
||||
end
|
||||
|
||||
def user_can_read?
|
||||
return (@access_right_level == "admin" || @access_right_level == "write" || @access_right_level == "read" ? true : false)
|
||||
end
|
||||
end
|
|
@ -1,20 +1,23 @@
|
|||
class Group
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Slug
|
||||
include Mongoid::Timestamps
|
||||
include Slug
|
||||
|
||||
field :title, as: :slug_title, type: String, localize: true
|
||||
field :description, localize: true
|
||||
field :admins, type: Array, default: []
|
||||
field :privacy, default: "closed"
|
||||
mount_uploader :image, ImageUploader
|
||||
field :title, as: :slug_title, type: String, localize: true
|
||||
field :description, localize: true
|
||||
field :admins, type: Array, default: []
|
||||
field :privacy, default: "closed"
|
||||
field :archive, type: Boolean, default: false
|
||||
mount_uploader :image, ImageUploader
|
||||
|
||||
belongs_to :group_category
|
||||
has_and_belongs_to_many :users
|
||||
has_many :group_posts
|
||||
|
||||
scope :closed, ->{ where(privacy: "closed") }
|
||||
scope :open, ->{ where(privacy: "open") }
|
||||
belongs_to :group_category
|
||||
has_and_belongs_to_many :users
|
||||
has_many :group_posts
|
||||
|
||||
scope :closed, ->{ where(privacy: "closed") }
|
||||
scope :open, ->{ where(privacy: "open") }
|
||||
scope :archived, ->{ where(archive: true) }
|
||||
scope :not_archived, ->{ where(archive: false) }
|
||||
|
||||
|
||||
end
|
|
@ -10,5 +10,7 @@ class GroupPost
|
|||
|
||||
belongs_to :group
|
||||
has_many :group_post_images, :autosave => true, :dependent => :destroy
|
||||
has_many :group_post_files, :autosave => true, :dependent => :destroy
|
||||
has_many :group_post_comments, :autosave => true, :dependent => :destroy
|
||||
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
class GroupPostComment
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :comment
|
||||
|
||||
belongs_to :user
|
||||
belongs_to :group_post
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
class GroupPostFile
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
mount_uploader :file, AssetUploader
|
||||
|
||||
belongs_to :group_post
|
||||
|
||||
end
|
|
@ -47,7 +47,7 @@ class MemberProfile
|
|||
|
||||
|
||||
def name
|
||||
if self.first_name || self.last_name
|
||||
if self.first_name != "" || self.last_name != ""
|
||||
I18n.locale.eql?(:zh_tw) ? "#{self.last_name} #{self.first_name}" : "#{self.first_name} #{self.last_name}"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -21,6 +21,7 @@ class User
|
|||
has_many :authorizations
|
||||
belongs_to :member_profile
|
||||
has_and_belongs_to_many :groups
|
||||
has_many :group_post_comments
|
||||
has_one :facebook, :autosave => true, :dependent => :destroy
|
||||
has_one :google, :autosave => true, :dependent => :destroy
|
||||
# has_one :desktop, :dependent => :destroy
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
group.admins.each_with_index do |admin,i|
|
||||
user = User.find(admin) rescue nil
|
||||
if !user.nil?
|
||||
author = author + (user.member_profile.name == "" ? user.user_name : user.member_profile.name rescue "")
|
||||
author = author + (user.member_profile.name == nil ? user.user_name : user.member_profile.name rescue "")
|
||||
author = author + ", " if i != group.admins.count - 1
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="group-page-post">
|
||||
<div class="group-page-post-image-wrap">
|
||||
<% if !post.group_post_images.blank? %>
|
||||
<img class="group-page-post-image" src="<%= post.group_post_images.first.image.url %>" alt="<%= post.title %>">
|
||||
<img class="group-page-post-image" src="<%= post.group_post_images.first.image.thumb.url %>" alt="<%= post.title %>">
|
||||
<% else %>
|
||||
<img class="group-page-post-image" src="/assets/no-image.jpg" alt="Post image">
|
||||
<% end %>
|
||||
|
@ -21,7 +21,7 @@
|
|||
<%
|
||||
user = User.find(post.author) rescue nil
|
||||
if !user.nil?
|
||||
author = (user.member_profile.name == "" ? user.user_name : user.member_profile.name rescue "")
|
||||
author = (user.member_profile.name == nil ? user.user_name : user.member_profile.name rescue "")
|
||||
%>
|
||||
<i class="group-page-post-author-icon icon-user"></i> <%= author %>
|
||||
<% end %>
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
<li class="group-post-comment">
|
||||
<div class="group-post-comment-wrap">
|
||||
<div class="group-post-comment-avatar">
|
||||
<%
|
||||
user = post_comment.user rescue nil
|
||||
if !user.nil?
|
||||
author = (user.member_profile.name == nil ? user.user_name : user.member_profile.name rescue "")
|
||||
avatar = (!user.member_profile.avatar.nil? ? user.member_profile.avatar.thumb.url : "/assets/member-pic.png" rescue "/assets/member-pic.png")
|
||||
end
|
||||
%>
|
||||
<img src="<%= avatar %> " alt="Avatar image">
|
||||
</div>
|
||||
<div class="group-post-comment-body">
|
||||
<div class="group-post-comment-author-wrap">
|
||||
<div class="group-post-comment-author"><%= author %></div>
|
||||
<% date = DateTime.parse(post_comment.created_at.to_s).strftime("%d %B") %>
|
||||
<div class="group-post-comment-time muted"><%= date %></div>
|
||||
</div>
|
||||
<div class="group-post-comment-content">
|
||||
<% content_images = parse_for_images(post_comment.comment) %>
|
||||
<%= content_images.first %>
|
||||
<%= content_images.last.html_safe %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
|
@ -29,7 +29,9 @@
|
|||
<div class="dropzone" id="group-post-images">
|
||||
<div class="dropzone-previews" id="group-post-images-container"></div>
|
||||
</div>
|
||||
<button class="upload_image_btn">Upload</button>
|
||||
<% if params[:action] == "editpost" %>
|
||||
<button class="upload_image_btn">Upload</button>
|
||||
<% end %>
|
||||
<button class="remove_image_btn">Remove all images</button>
|
||||
</div>
|
||||
<div id="image_ids">
|
||||
|
@ -59,12 +61,29 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:files) %></label>
|
||||
<div class="controls">
|
||||
<!-- <input name="group_post_images" type="file" multiple > -->
|
||||
<div class="dropzone" id="group-post-files">
|
||||
<div class="dropzone-previews" id="group-post-files-container"></div>
|
||||
</div>
|
||||
<% if params[:action] == "editpost" %>
|
||||
<button class="upload_file_btn">Upload</button>
|
||||
<% end %>
|
||||
<button class="remove_file_btn">Remove all files</button>
|
||||
</div>
|
||||
<div id="file_ids">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Form Actions -->
|
||||
|
||||
<div class="form-actions">
|
||||
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
||||
<%= f.submit t('submit'), class: 'btn btn-primary', id: "create-post-form-btn" %>
|
||||
<%= link_to t('cancel'), admin_groups_path, :class=>"btn" %>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<script type="text/javascript">
|
||||
Dropzone.autoDiscover = false;
|
||||
var image_id_panel = $("#image_ids");
|
||||
var file_id_panel = $("#file_ids");
|
||||
var groupImageDropzone = new Dropzone("div#group-post-images", {
|
||||
url : "/admin/posts/image",
|
||||
previewsContainer : "#group-post-images-container",
|
||||
|
@ -24,9 +25,10 @@
|
|||
}
|
||||
})
|
||||
|
||||
|
||||
$(".upload_image_btn").on("click",function(){
|
||||
$(".dropzone a.dz-remove").remove();
|
||||
doUpload();
|
||||
$("#group-post-images a.dz-remove").remove();
|
||||
doImagesUpload();
|
||||
return false;
|
||||
})
|
||||
|
||||
|
@ -42,23 +44,80 @@
|
|||
obj.append("authenticity_token",$("form#new_group_post input[name=authenticity_token]").val());
|
||||
})
|
||||
|
||||
var doUpload = function(){
|
||||
var doImagesUpload = function(){
|
||||
groupImageDropzone.processQueue();
|
||||
groupImageDropzone.on("complete", function(file) {
|
||||
var filesCount = groupImageDropzone.getQueuedFiles().length;
|
||||
if(filesCount > 0){
|
||||
doUpload();
|
||||
doImagesUpload();
|
||||
}else{
|
||||
doFilesUpload();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("form#new_group_post").submit(function(){
|
||||
if(groupImageDropzone.getQueuedFiles().length > 0){
|
||||
alert("Please upload all the files or remove them before submitting a post.");
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
|
||||
var groupFilesDropzone = new Dropzone("div#group-post-files", {
|
||||
url : "/admin/posts/file",
|
||||
previewsContainer : "#group-post-files-container",
|
||||
paramName : "group_post_file[file]",
|
||||
clickable : true,
|
||||
autoProcessQueue : false,
|
||||
addRemoveLinks : true,
|
||||
uploadMultiple : false,
|
||||
accept: function(file, done) {
|
||||
var regex = new RegExp(/(\.|\/)(pdf|doc?x|xls?x|rtf|txt|ppt?x|mp3|mov|avi|gif|jpe?g|png|zip|rar)$/i)
|
||||
if(regex.test(file.name)){
|
||||
done();
|
||||
}else{
|
||||
this.removeFile(file);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
$(".upload_file_btn").on("click",function(){
|
||||
$("#group-post-files a.dz-remove").remove();
|
||||
doFilesUpload();
|
||||
return false;
|
||||
})
|
||||
|
||||
$(".remove_file_btn").on("click",function(){
|
||||
groupFilesDropzone.removeAllFiles();
|
||||
return false;
|
||||
})
|
||||
|
||||
groupFilesDropzone.on("success",function(file,data){
|
||||
file_id_panel.append("<input type='hidden' name='group_post[group_post_files][]' value='" + data.id + "' />");
|
||||
})
|
||||
groupFilesDropzone.on("sending",function(file,xhr,obj){
|
||||
obj.append("authenticity_token",$("form#new_group_post input[name=authenticity_token]").val());
|
||||
})
|
||||
|
||||
var doFilesUpload = function(){
|
||||
groupFilesDropzone.processQueue();
|
||||
groupFilesDropzone.on("complete", function(file) {
|
||||
var filesCount = groupFilesDropzone.getQueuedFiles().length;
|
||||
if(filesCount > 0){
|
||||
doFilesUpload();
|
||||
}else{
|
||||
submitForm();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("#create-post-form-btn").on("click",function(){
|
||||
doImagesUpload();
|
||||
return false;
|
||||
})
|
||||
|
||||
var submitForm = function(){
|
||||
if(groupImageDropzone.getQueuedFiles().length > 0 || groupFilesDropzone.getQueuedFiles().length > 0){
|
||||
return false;
|
||||
}else{
|
||||
$("form#new_group_post").submit();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</script>
|
|
@ -14,7 +14,9 @@
|
|||
</div>
|
||||
<div class="group-page-bar">
|
||||
<h2 class="group-page-title"><%= @group.title %></h2>
|
||||
<a class="group-page-new-post btn btn-large btn-primary" href="<%= admin_group_newpost_path(@group) %>"><i class="icon-plus"></i> New Post</a>
|
||||
<% if user_can_write? %>
|
||||
<a class="group-page-new-post btn btn-large btn-primary" href="<%= admin_group_newpost_path(@group) %>"><i class="icon-plus"></i> New Post</a>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<div class="group-page-setion">
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
<% end -%>
|
||||
<% content_for :page_specific_javascript do -%>
|
||||
<%= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20140415/jquery.cycle2.min.js" %>
|
||||
<%= javascript_include_tag "group.js" %>
|
||||
<%= javascript_include_tag "group" %>
|
||||
<%= javascript_include_tag "lib/jquery.form" %>
|
||||
<% end -%>
|
||||
|
||||
<article class="group-post">
|
||||
|
@ -15,8 +16,8 @@
|
|||
<%
|
||||
user = User.find(@post.author) rescue nil
|
||||
if !user.nil?
|
||||
author = (user.member_profile.name == "" ? user.user_name : user.member_profile.name rescue "")
|
||||
avatar = (!user.member_profile.avatar.nil? ? user.member_profile.avatar.url : "/assets/member-piv.png" rescue "/assets/member-piv.png")
|
||||
author = (user.member_profile.name == nil ? user.user_name : user.member_profile.name rescue "")
|
||||
avatar = (!user.member_profile.avatar.nil? ? user.member_profile.avatar.thumb.url : "/assets/member-pic.png" rescue "/assets/member-pic.png")
|
||||
end
|
||||
%>
|
||||
<img class="group-post-avatar" src="<%= avatar %>" alt="">
|
||||
|
@ -51,99 +52,69 @@
|
|||
<%= @post.content.html_safe %>
|
||||
</section>
|
||||
<div class="group-post-attachment-wrap">
|
||||
<% if !@post.group_post_files.blank? %>
|
||||
<i class="group-post-attachment-icon icon-paper-clip"></i>
|
||||
<span class="group-post-attachments">
|
||||
<a href="#" class="btn btn-default">My-Awesome-file</a>
|
||||
<a href="#" class="btn btn-default">My-fantastic-file</a>
|
||||
<a href="#" class="btn btn-default">My-lovely-file</a>
|
||||
<a href="#" class="btn btn-default">My-stunning-file</a>
|
||||
<a href="#" class="btn btn-default">My-Awesome-file</a>
|
||||
<a href="#" class="btn btn-default">My-fantastic-file</a>
|
||||
<a href="#" class="btn btn-default">My-lovely-file</a>
|
||||
<a href="#" class="btn btn-default">My-stunning-file</a>
|
||||
<% @post.group_post_files.each do |gpf| %>
|
||||
<a href="/admin/posts/file/<%= gpf.id.to_s %>" class="btn btn-default"><%= File.basename(gpf.file.path) %></a>
|
||||
<% end %>
|
||||
</span>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="group-post-seen-by tool-tip-parent">
|
||||
<em class="group-post-seen-by-lead">Seen by: </em>
|
||||
<span class="group-post-seen-by-name">Harry</span>
|
||||
<span class="group-post-seen-by-name">Ika</span>
|
||||
<span class="group-post-seen-by-name">Joshua</span>
|
||||
<span class="group-post-seen-by-name">Mason</span>
|
||||
<span class="group-post-seen-by-name">Tina</span>
|
||||
<span class="group-post-seen-by-name">Shelley</span>
|
||||
<span class="group-post-seen-by-name">Anna</span>
|
||||
<span class="group-post-seen-by-name">Poke</span>
|
||||
<span class="group-post-seen-by-name">Moses</span>
|
||||
</div>
|
||||
<% if !@read_by_names.blank? %>
|
||||
<div class="group-post-seen-by tool-tip-parent">
|
||||
<em class="group-post-seen-by-lead">Seen by: <span class="group-post-seen-by-count"><%= @read_by_names.count %></span></em>
|
||||
<% @read_by_names.each do |name| %>
|
||||
<span class="group-post-seen-by-name"><%= name %></span>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
<section class="comments">
|
||||
<% if user_can_write? %>
|
||||
<div class="grou-post-respond">
|
||||
<form action="">
|
||||
<form action="/admin/posts/comment" method="post" id="comment-form" >
|
||||
<h3 class="group-post-respond-title">
|
||||
Leave a comment
|
||||
</h3>
|
||||
<div class="group-post-respond-wrap">
|
||||
<label for="comment" class="screen-reader">Comment</label>
|
||||
<textarea name="comment" id="comment" class="group-post-respond-comment" cols="100" rows="2" placeholder="Your comment here."></textarea>
|
||||
<textarea name="group_post_comment[comment]" id="group_post_comment" class="group-post-respond-comment" cols="100" rows="2" placeholder="Your comment here."></textarea>
|
||||
<input type="hidden" name="group_post_comment[group_post_id]" value="<%= @post.id.to_s %>" />
|
||||
<input type="hidden" name="group_post_comment[user_id]" value="<%= current_user.id.to_s %>" />
|
||||
</div>
|
||||
<div class="grou-post-submit-wrap">
|
||||
<input type="submit" name="submit" class="grou-post-respond-submit btn btn-primary" id="submit" value="Submit Comment">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<% else %>
|
||||
<div class="grou-post-respond">
|
||||
<h4 style="text-align:center;">Join the group to comment on this post.</h4>
|
||||
</div>
|
||||
<% end %>
|
||||
<h3 class="group-post-comment-title">
|
||||
Comments
|
||||
</h3>
|
||||
<ol class="group-post-comment-list">
|
||||
<li class="group-post-comment">
|
||||
<div class="group-post-comment-wrap">
|
||||
<div class="group-post-comment-avatar">
|
||||
<img src="/uploads/group/image/550fa5ba7470004834050000/IMAG1518.jpg" alt="Avatar image">
|
||||
</div>
|
||||
<div class="group-post-comment-body">
|
||||
<div class="group-post-comment-author-wrap">
|
||||
<div class="group-post-comment-author">Joshua Milton</div>
|
||||
<div class="group-post-comment-time muted">24 March</div>
|
||||
</div>
|
||||
<div class="group-post-comment-content">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius quam quos eveniet enim soluta delectus nisi modi beatae! Facilis eaque aperiam vitae dolorum at perspiciatis commodi. Error dolorem fuga aperiam.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="group-post-comment">
|
||||
<div class="group-post-comment-wrap">
|
||||
<div class="group-post-comment-avatar">
|
||||
<img src="/uploads/group/image/550fa5ba7470004834050000/IMAG1518.jpg" alt="Avatar image">
|
||||
</div>
|
||||
<div class="group-post-comment-body">
|
||||
<div class="group-post-comment-author-wrap">
|
||||
<div class="group-post-comment-author">Joshua Milton</div>
|
||||
<div class="group-post-comment-time muted">24 March</div>
|
||||
</div>
|
||||
<div class="group-post-comment-content">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius quam quos eveniet enim soluta delectus nisi modi beatae! Facilis eaque aperiam vitae dolorum at perspiciatis commodi. Error dolorem fuga aperiam.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="group-post-comment">
|
||||
<div class="group-post-comment-wrap">
|
||||
<div class="group-post-comment-avatar">
|
||||
<img src="/uploads/group/image/550fa5ba7470004834050000/IMAG1518.jpg" alt="Avatar image">
|
||||
</div>
|
||||
<div class="group-post-comment-body">
|
||||
<div class="group-post-comment-author-wrap">
|
||||
<div class="group-post-comment-author">Joshua Milton</div>
|
||||
<div class="group-post-comment-time muted">24 March</div>
|
||||
</div>
|
||||
<div class="group-post-comment-content">
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius quam quos eveniet enim soluta delectus nisi modi beatae! Facilis eaque aperiam vitae dolorum at perspiciatis commodi. Error dolorem fuga aperiam.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
<ol class="group-post-comment-list" id="group-post-comment-list" >
|
||||
<%= render :partial => "post_comment", :collection => @post.group_post_comments.desc(:created_at) %>
|
||||
<% if @post.group_post_comments.length == 0 %>
|
||||
<li id="no-comments-li"> No comments yet. <%= (user_can_write? ? "Be the first one!" : "") %> </li>
|
||||
<% end %>
|
||||
</ol>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$("#comment-form").ajaxForm({
|
||||
beforeSubmit : function(formData){
|
||||
if(formData[0].value == ""){
|
||||
return false;
|
||||
}
|
||||
},
|
||||
success : function(comments){
|
||||
$("li#no-comments-li").remove();
|
||||
$("ol#group-post-comment-list").prepend(comments);
|
||||
$("#comment-form").resetForm();
|
||||
}
|
||||
})
|
||||
</script>
|
|
@ -126,6 +126,9 @@ Orbit::Application.routes.draw do
|
|||
get "groups/public" => 'groups#public_groups'
|
||||
get "posts/:id" => 'groups#showpost'
|
||||
post "posts/image" => 'groups#upload_photo'
|
||||
post "posts/file" => 'groups#upload_file'
|
||||
get "posts/file/:id" => "groups#download_file"
|
||||
post "posts/comment" => 'groups#new_comment'
|
||||
|
||||
resources :groups do
|
||||
get "newpost" => 'groups#newpost'
|
||||
|
|
Loading…
Reference in New Issue