forked from saurabh/orbit4-5
groups multifile added and show page working.
This commit is contained in:
parent
60bb2cac1e
commit
15fec35e3f
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,388 @@
|
|||
/*
|
||||
* The MIT License
|
||||
* Copyright (c) 2012 Matias Meno <m@tias.me>
|
||||
*/
|
||||
@-webkit-keyframes passing-through {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30%, 70% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
-moz-transform: translateY(-40px);
|
||||
-ms-transform: translateY(-40px);
|
||||
-o-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
@-moz-keyframes passing-through {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30%, 70% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
-moz-transform: translateY(-40px);
|
||||
-ms-transform: translateY(-40px);
|
||||
-o-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
@keyframes passing-through {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30%, 70% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
-moz-transform: translateY(-40px);
|
||||
-ms-transform: translateY(-40px);
|
||||
-o-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
@-webkit-keyframes slide-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); } }
|
||||
@-moz-keyframes slide-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); } }
|
||||
@keyframes slide-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); } }
|
||||
@-webkit-keyframes pulse {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
10% {
|
||||
-webkit-transform: scale(1.1);
|
||||
-moz-transform: scale(1.1);
|
||||
-ms-transform: scale(1.1);
|
||||
-o-transform: scale(1.1);
|
||||
transform: scale(1.1); }
|
||||
20% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
@-moz-keyframes pulse {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
10% {
|
||||
-webkit-transform: scale(1.1);
|
||||
-moz-transform: scale(1.1);
|
||||
-ms-transform: scale(1.1);
|
||||
-o-transform: scale(1.1);
|
||||
transform: scale(1.1); }
|
||||
20% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
10% {
|
||||
-webkit-transform: scale(1.1);
|
||||
-moz-transform: scale(1.1);
|
||||
-ms-transform: scale(1.1);
|
||||
-o-transform: scale(1.1);
|
||||
transform: scale(1.1); }
|
||||
20% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
.dropzone, .dropzone * {
|
||||
box-sizing: border-box; }
|
||||
|
||||
.dropzone {
|
||||
min-height: 150px;
|
||||
border: 2px solid rgba(0, 0, 0, 0.3);
|
||||
background: white;
|
||||
padding: 20px 20px; }
|
||||
.dropzone.dz-clickable {
|
||||
cursor: pointer; }
|
||||
.dropzone.dz-clickable * {
|
||||
cursor: default; }
|
||||
.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
|
||||
cursor: pointer; }
|
||||
.dropzone.dz-started .dz-message {
|
||||
display: none; }
|
||||
.dropzone.dz-drag-hover {
|
||||
border-style: solid; }
|
||||
.dropzone.dz-drag-hover .dz-message {
|
||||
opacity: 0.5; }
|
||||
.dropzone .dz-message {
|
||||
text-align: center;
|
||||
margin: 2em 0; }
|
||||
.dropzone .dz-preview {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 16px;
|
||||
min-height: 100px; }
|
||||
.dropzone .dz-preview:hover {
|
||||
z-index: 1000; }
|
||||
.dropzone .dz-preview:hover .dz-details {
|
||||
opacity: 1; }
|
||||
.dropzone .dz-preview.dz-file-preview .dz-image {
|
||||
border-radius: 20px;
|
||||
background: #999;
|
||||
background: linear-gradient(to bottom, #eee, #ddd); }
|
||||
.dropzone .dz-preview.dz-file-preview .dz-details {
|
||||
opacity: 1; }
|
||||
.dropzone .dz-preview.dz-image-preview {
|
||||
background: white; }
|
||||
.dropzone .dz-preview.dz-image-preview .dz-details {
|
||||
-webkit-transition: opacity 0.2s linear;
|
||||
-moz-transition: opacity 0.2s linear;
|
||||
-ms-transition: opacity 0.2s linear;
|
||||
-o-transition: opacity 0.2s linear;
|
||||
transition: opacity 0.2s linear; }
|
||||
.dropzone .dz-preview .dz-remove {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
border: none; }
|
||||
.dropzone .dz-preview .dz-remove:hover {
|
||||
text-decoration: underline; }
|
||||
.dropzone .dz-preview:hover .dz-details {
|
||||
opacity: 1; }
|
||||
.dropzone .dz-preview .dz-details {
|
||||
z-index: 20;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
font-size: 13px;
|
||||
min-width: 100%;
|
||||
max-width: 100%;
|
||||
padding: 2em 1em;
|
||||
text-align: center;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
line-height: 150%; }
|
||||
.dropzone .dz-preview .dz-details .dz-size {
|
||||
margin-bottom: 1em;
|
||||
font-size: 16px; }
|
||||
.dropzone .dz-preview .dz-details .dz-filename {
|
||||
white-space: nowrap; }
|
||||
.dropzone .dz-preview .dz-details .dz-filename:hover span {
|
||||
border: 1px solid rgba(200, 200, 200, 0.8);
|
||||
background-color: rgba(255, 255, 255, 0.8); }
|
||||
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis; }
|
||||
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
|
||||
border: 1px solid transparent; }
|
||||
.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
|
||||
background-color: rgba(255, 255, 255, 0.4);
|
||||
padding: 0 0.4em;
|
||||
border-radius: 3px; }
|
||||
.dropzone .dz-preview:hover .dz-image img {
|
||||
-webkit-transform: scale(1.05, 1.05);
|
||||
-moz-transform: scale(1.05, 1.05);
|
||||
-ms-transform: scale(1.05, 1.05);
|
||||
-o-transform: scale(1.05, 1.05);
|
||||
transform: scale(1.05, 1.05);
|
||||
-webkit-filter: blur(8px);
|
||||
filter: blur(8px); }
|
||||
.dropzone .dz-preview .dz-image {
|
||||
border-radius: 20px;
|
||||
overflow: hidden;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
position: relative;
|
||||
display: block;
|
||||
z-index: 10; }
|
||||
.dropzone .dz-preview .dz-image img {
|
||||
display: block; }
|
||||
.dropzone .dz-preview.dz-success .dz-success-mark {
|
||||
-webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
||||
.dropzone .dz-preview.dz-error .dz-error-mark {
|
||||
opacity: 1;
|
||||
-webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
||||
.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
z-index: 500;
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -27px;
|
||||
margin-top: -27px; }
|
||||
.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
|
||||
display: block;
|
||||
width: 54px;
|
||||
height: 54px; }
|
||||
.dropzone .dz-preview.dz-processing .dz-progress {
|
||||
opacity: 1;
|
||||
-webkit-transition: all 0.2s linear;
|
||||
-moz-transition: all 0.2s linear;
|
||||
-ms-transition: all 0.2s linear;
|
||||
-o-transition: all 0.2s linear;
|
||||
transition: all 0.2s linear; }
|
||||
.dropzone .dz-preview.dz-complete .dz-progress {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.4s ease-in;
|
||||
-moz-transition: opacity 0.4s ease-in;
|
||||
-ms-transition: opacity 0.4s ease-in;
|
||||
-o-transition: opacity 0.4s ease-in;
|
||||
transition: opacity 0.4s ease-in; }
|
||||
.dropzone .dz-preview:not(.dz-processing) .dz-progress {
|
||||
-webkit-animation: pulse 6s ease infinite;
|
||||
-moz-animation: pulse 6s ease infinite;
|
||||
-ms-animation: pulse 6s ease infinite;
|
||||
-o-animation: pulse 6s ease infinite;
|
||||
animation: pulse 6s ease infinite; }
|
||||
.dropzone .dz-preview .dz-progress {
|
||||
opacity: 1;
|
||||
z-index: 1000;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
height: 16px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-top: -8px;
|
||||
width: 80px;
|
||||
margin-left: -40px;
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
-webkit-transform: scale(1);
|
||||
border-radius: 8px;
|
||||
overflow: hidden; }
|
||||
.dropzone .dz-preview .dz-progress .dz-upload {
|
||||
background: #333;
|
||||
background: linear-gradient(to bottom, #666, #444);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 0;
|
||||
-webkit-transition: width 300ms ease-in-out;
|
||||
-moz-transition: width 300ms ease-in-out;
|
||||
-ms-transition: width 300ms ease-in-out;
|
||||
-o-transition: width 300ms ease-in-out;
|
||||
transition: width 300ms ease-in-out; }
|
||||
.dropzone .dz-preview.dz-error .dz-error-message {
|
||||
display: block; }
|
||||
.dropzone .dz-preview.dz-error:hover .dz-error-message {
|
||||
opacity: 1;
|
||||
pointer-events: auto; }
|
||||
.dropzone .dz-preview .dz-error-message {
|
||||
pointer-events: none;
|
||||
z-index: 1000;
|
||||
position: absolute;
|
||||
display: block;
|
||||
display: none;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.3s ease;
|
||||
-moz-transition: opacity 0.3s ease;
|
||||
-ms-transition: opacity 0.3s ease;
|
||||
-o-transition: opacity 0.3s ease;
|
||||
transition: opacity 0.3s ease;
|
||||
border-radius: 8px;
|
||||
font-size: 13px;
|
||||
top: 130px;
|
||||
left: -10px;
|
||||
width: 140px;
|
||||
background: #be2626;
|
||||
background: linear-gradient(to bottom, #be2626, #a92222);
|
||||
padding: 0.5em 1.2em;
|
||||
color: white; }
|
||||
.dropzone .dz-preview .dz-error-message:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 64px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid #be2626; }
|
File diff suppressed because it is too large
Load Diff
|
@ -29,7 +29,8 @@ class Admin::GroupsController < OrbitMemberController
|
|||
end
|
||||
|
||||
def showpost
|
||||
|
||||
uid = params[:id].split("-").last
|
||||
@post = GroupPost.find_by(:uid => uid)
|
||||
end
|
||||
|
||||
def show
|
||||
|
@ -46,6 +47,12 @@ class Admin::GroupsController < OrbitMemberController
|
|||
render :partial => "group_categories"
|
||||
end
|
||||
|
||||
def upload_photo
|
||||
photo = GroupPostImage.new(post_image_params)
|
||||
photo.save
|
||||
render :json => {"success" => true,"id" => photo.id.to_s}.to_json
|
||||
end
|
||||
|
||||
def create
|
||||
group = Group.new(group_params)
|
||||
group.save
|
||||
|
@ -79,9 +86,21 @@ class Admin::GroupsController < OrbitMemberController
|
|||
def post_params
|
||||
p = params.require(:group_post).permit!
|
||||
p["author"] = current_user.id
|
||||
images = []
|
||||
p[:group_post_images].each do |id|
|
||||
gpi = GroupPostImage.find(id) rescue nil
|
||||
if !gpi.nil?
|
||||
images << gpi
|
||||
end
|
||||
end
|
||||
p[:group_post_images] = images
|
||||
p
|
||||
end
|
||||
|
||||
def post_image_params
|
||||
params.require(:group_post_image).permit!
|
||||
end
|
||||
|
||||
def group_params
|
||||
p = params.require(:group).permit!
|
||||
p["user_ids"] << current_user.id.to_s
|
||||
|
|
|
@ -7,8 +7,8 @@ class GroupPost
|
|||
field :content
|
||||
field :read_by, type: Array, default: []
|
||||
field :author, type: BSON::ObjectId
|
||||
mount_uploader :image, ImageUploader
|
||||
|
||||
belongs_to :group
|
||||
has_many :group_post_images, :autosave => true, :dependent => :destroy
|
||||
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
class GroupPostImage
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
mount_uploader :image, ImageUploader
|
||||
|
||||
belongs_to :group_post
|
||||
|
||||
end
|
|
@ -1,10 +1,10 @@
|
|||
<a href="/admin/posts/<%= post.to_param %>" class="group-page-post-link">
|
||||
<div class="group-page-post">
|
||||
<div class="group-page-post-image-wrap">
|
||||
<% if !post.image.nil? %>
|
||||
<img class="group-page-post-image" src="<%= post.image.url %>" alt="<%= post.title %>">
|
||||
<% if !post.group_post_images.blank? %>
|
||||
<img class="group-page-post-image" src="<%= post.group_post_images.first.image.url %>" alt="<%= post.title %>">
|
||||
<% else %>
|
||||
<img class="group-page-post-image" src="/assets/member-pic.png" alt="Post image">
|
||||
<img class="group-page-post-image" src="/assets/no-image.jpg" alt="Post image">
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="group-page-post-content-wrap">
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
<%= stylesheet_link_tag "lib/main-forms" %>
|
||||
<%= stylesheet_link_tag "lib/fileupload" %>
|
||||
<%= stylesheet_link_tag "lib/main-list" %>
|
||||
<%= stylesheet_link_tag "lib/dropzone" %>
|
||||
<% end %>
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "lib/bootstrap-fileupload" %>
|
||||
<%= javascript_include_tag "lib/file-type" %>
|
||||
<%= javascript_include_tag "lib/module-area" %>
|
||||
<%= javascript_include_tag "lib/module-area" %>
|
||||
<%= javascript_include_tag "lib/dropzone" %>
|
||||
<% end %>
|
||||
<div class="input-area">
|
||||
|
||||
|
@ -21,40 +23,26 @@
|
|||
<div class="tab-pane fade in active" id="basic">
|
||||
<!-- group banner image -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:image) %></label>
|
||||
<label class="control-label muted"><%= t(:images) %></label>
|
||||
<div class="controls">
|
||||
<div class="fileupload fileupload-new clearfix <%= 'fileupload-edit' if @grouppost.image.file %>" data-provides="fileupload">
|
||||
<div class="fileupload-new thumbnail pull-left">
|
||||
<% if @grouppost.image.file %>
|
||||
<%= image_tag @grouppost.image %>
|
||||
<% else %>
|
||||
<img src="http://www.placehold.it/50x50/EFEFEF/AAAAAA" />
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="fileupload-preview fileupload-exists thumbnail pull-left"></div>
|
||||
<span class="btn btn-file">
|
||||
<span class="fileupload-new"><%= t(:select_image) %></span>
|
||||
<span class="fileupload-exists"><%= t(:change) %></span>
|
||||
<%= f.file_field :image %>
|
||||
</span>
|
||||
<a href="#" class="btn fileupload-exists" data-dismiss="fileupload"><%= t(:cancel) %></a>
|
||||
<div class="controls" data-toggle="buttons-checkbox">
|
||||
<label class="checkbox inline btn btn-danger fileupload-remove">
|
||||
<%= f.check_box :remove_image %><%= t(:remove) %>
|
||||
</label>
|
||||
</div>
|
||||
<!-- <input name="group_post_images" type="file" multiple > -->
|
||||
<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>
|
||||
<button class="remove_image_btn">Remove all images</button>
|
||||
</div>
|
||||
<div id="image_ids">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Language -->
|
||||
<div class="tab-content language-area">
|
||||
|
||||
<!-- Title-->
|
||||
<div class="control-group input-title">
|
||||
<div class="control-group input-title">
|
||||
<label class="control-label muted"><%= t(:title) %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field :title, class: "input-block-level", placeholder: t(:title), value: (@grouppost.title rescue nil) %>
|
||||
|
@ -78,4 +66,12 @@
|
|||
<div class="form-actions">
|
||||
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
||||
<%= link_to t('cancel'), admin_groups_path, :class=>"btn" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,4 +2,63 @@
|
|||
<fieldset>
|
||||
<%= render :partial => "post_form", locals: {f: f} %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<script type="text/javascript">
|
||||
Dropzone.autoDiscover = false;
|
||||
var image_id_panel = $("#image_ids");
|
||||
var groupImageDropzone = new Dropzone("div#group-post-images", {
|
||||
url : "/admin/posts/image",
|
||||
previewsContainer : "#group-post-images-container",
|
||||
paramName : "group_post_image[image]",
|
||||
clickable : true,
|
||||
autoProcessQueue : false,
|
||||
addRemoveLinks : true,
|
||||
uploadMultiple : false,
|
||||
accept: function(file, done) {
|
||||
var regex = new RegExp(/(\.|\/)(gif|jpe?g|png)$/i)
|
||||
if(regex.test(file.name)){
|
||||
done();
|
||||
}else{
|
||||
this.removeFile(file);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
$(".upload_image_btn").on("click",function(){
|
||||
$(".dropzone a.dz-remove").remove();
|
||||
doUpload();
|
||||
return false;
|
||||
})
|
||||
|
||||
$(".remove_image_btn").on("click",function(){
|
||||
groupImageDropzone.removeAllFiles();
|
||||
return false;
|
||||
})
|
||||
|
||||
groupImageDropzone.on("success",function(file,data){
|
||||
image_id_panel.append("<input type='hidden' name='group_post[group_post_images][]' value='" + data.id + "' />");
|
||||
})
|
||||
groupImageDropzone.on("sending",function(file,xhr,obj){
|
||||
obj.append("authenticity_token",$("form#new_group_post input[name=authenticity_token]").val());
|
||||
})
|
||||
|
||||
var doUpload = function(){
|
||||
groupImageDropzone.processQueue();
|
||||
groupImageDropzone.on("complete", function(file) {
|
||||
var filesCount = groupImageDropzone.getQueuedFiles().length;
|
||||
if(filesCount > 0){
|
||||
doUpload();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("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;
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
|
@ -9,18 +9,26 @@
|
|||
<article class="group-post">
|
||||
<header class="group-post-meta">
|
||||
<div class="group-post-heading-wrap clearfix">
|
||||
<h2 class="group-post-title">My Awesome Post!</h2>
|
||||
<h2 class="group-post-title"><%= @post.title %></h2>
|
||||
<div class="group-post-avatar-wrap">
|
||||
<a class="group-post-avatar-username-toggle tool-tip-parent" href="#">
|
||||
<img class="group-post-avatar" src="/uploads/group/image/550fa5ba7470004834050000/IMAG1518.jpg" alt="">
|
||||
<span class="group-post-username tool-tip">Isaac</span>
|
||||
<%
|
||||
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")
|
||||
end
|
||||
%>
|
||||
<img class="group-post-avatar" src="<%= avatar %>" alt="">
|
||||
<span class="group-post-username tool-tip"><%= author %></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group-post-sub-wrap">
|
||||
<span class="group-post-postdate">
|
||||
<i class="group-post-postdate-icon icon-time"></i> 26 March
|
||||
<% date = DateTime.parse(@post.created_at.to_s).strftime("%d %B") %>
|
||||
<i class="group-post-postdate-icon icon-time"></i> <%= date %>
|
||||
</span>
|
||||
</div>
|
||||
</header>
|
||||
|
@ -32,15 +40,15 @@
|
|||
data-cycle-fx="fade"
|
||||
data-cycle-log="false"
|
||||
>
|
||||
<li class="group-post-image-item"><img class="group-post-banner-image" src="/uploads/group/image/550fa5ba7470004834050000/IMAG1518.jpg" alt="Post image"></li>
|
||||
<li class="group-post-image-item"><img class="group-post-banner-image" src="/uploads/group/image/550fa5ba7470004834050000/IMAG1518.jpg" alt="Post image"></li>
|
||||
<li class="group-post-image-item"><img class="group-post-banner-image" src="/uploads/group/image/550fa5ba7470004834050000/IMAG1518.jpg" alt="Post image"></li>
|
||||
<% @post.group_post_images.each do |gpi| %>
|
||||
<li class="group-post-image-item"><img class="group-post-banner-image" src="<%= gpi.image.url %>" alt="<%= @post.title %>"></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<div class="group-post-cycle-prev cycle-nav"><i class="icon-chevron-left"></i></div>
|
||||
<div class="group-post-cycle-next cycle-nav"><i class="icon-chevron-right"></i></div>
|
||||
</section>
|
||||
<section class="group-post-content">
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt repellendus quibusdam vel dignissimos, nihil numquam ex impedit error cupiditate reprehenderit mollitia repudiandae, aliquid aut pariatur suscipit porro voluptatem magnam rem obcaecati nam et iste inventore facere. Recusandae unde natus molestias aut odit soluta quibusdam. Quidem dignissimos natus nobis expedita ea ratione quod cupiditate repellat quis iusto, nulla architecto excepturi a qui, dolores molestiae culpa voluptas! Vitae eum alias fugiat eius ab, aliquid possimus, impedit odit eaque ad magnam, molestiae natus ex. Sed placeat consectetur eveniet culpa accusamus tempora earum unde debitis dolor eum fugit minus perspiciatis veniam id quod voluptate alias minima iure ipsam, natus molestiae. Quas dicta fugit nisi aspernatur, fugiat veniam, aut commodi mollitia quam consequatur aperiam vitae odio itaque tempore error iste tempora corporis nostrum nobis accusamus. Delectus dicta, voluptatibus repellendus? Dolor consequuntur minus, mollitia, quod aspernatur suscipit et quae quam omnis obcaecati laudantium dolore nisi ab!</p>
|
||||
<%= @post.content.html_safe %>
|
||||
</section>
|
||||
<div class="group-post-attachment-wrap">
|
||||
<i class="group-post-attachment-icon icon-paper-clip"></i>
|
||||
|
|
|
@ -7,6 +7,9 @@ require "action_mailer/railtie"
|
|||
require "sprockets/railtie"
|
||||
require "rails/test_unit/railtie"
|
||||
require "mongoid/railtie"
|
||||
require "bson"
|
||||
require "moped"
|
||||
Moped::BSON = BSON
|
||||
|
||||
|
||||
# Require the gems listed in Gemfile, including any gems
|
||||
|
|
|
@ -125,6 +125,7 @@ Orbit::Application.routes.draw do
|
|||
post "groups/create_category" => 'groups#create_category'
|
||||
get "groups/public" => 'groups#public_groups'
|
||||
get "posts/:id" => 'groups#showpost'
|
||||
post "posts/image" => 'groups#upload_photo'
|
||||
|
||||
resources :groups do
|
||||
get "newpost" => 'groups#newpost'
|
||||
|
|
Loading…
Reference in New Issue