Skip to content
Extraits de code Groupes Projets
Valider ea357a96 rédigé par danielgrippi's avatar danielgrippi
Parcourir les fichiers

expand&collapse comments; added comment form (wip)

parent 9d72247e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 136 ajouts et 63 suppressions
...@@ -6,7 +6,7 @@ class CommentsController < ApplicationController ...@@ -6,7 +6,7 @@ class CommentsController < ApplicationController
include ApplicationHelper include ApplicationHelper
before_filter :authenticate_user! before_filter :authenticate_user!
respond_to :html, :mobile, :only => [:create, :destroy, :index] respond_to :html, :mobile, :only => [:new, :create, :destroy, :index]
respond_to :js, :only => [:index] respond_to :js, :only => [:index]
rescue_from ActiveRecord::RecordNotFound do rescue_from ActiveRecord::RecordNotFound do
...@@ -64,4 +64,8 @@ class CommentsController < ApplicationController ...@@ -64,4 +64,8 @@ class CommentsController < ApplicationController
end end
end end
def new
puts params.inspect
render :layout => false
end
end end
...@@ -3,10 +3,6 @@ ...@@ -3,10 +3,6 @@
-# the COPYRIGHT file. -# the COPYRIGHT file.
%li.comment{:data=>{:guid=>comment.id}, :class => ("hidden" if(defined? hidden))} %li.comment{:data=>{:guid=>comment.id}, :class => ("hidden" if(defined? hidden))}
.right
-#.controls
-#= link_to image_tag('deletelabel.png'), comment, :confirm => t('are_you_sure'), :method => :delete, :class => "delete comment_delete", :title => t('delete')
.content .content
.from .from
= person_image_link(comment.author) = person_image_link(comment.author)
......
...@@ -2,10 +2,11 @@ ...@@ -2,10 +2,11 @@
-# licensed under the Affero General Public License version 3 or later. See -# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file. -# the COPYRIGHT file.
= form_tag( post_comments_path(post_id), :id => "new_comment_on_#{post_id}", :class => 'new_comment') do = form_tag( post_comments_path(post_id), :id => "new_comment_on_#{post_id}", :class => 'new_comment', :remote => true) do
= hidden_field_tag :post_id, post_id, :id => "post_id_on_#{post_id}" = hidden_field_tag :post_id, post_id, :id => "post_id_on_#{post_id}"
= text_area_tag :text, nil, :rows => 2, :class => "comment_box",:id => "comment_text_on_#{post_id}" = text_area_tag :text, nil, :rows => 2, :class => "comment_box",:id => "comment_text_on_#{post_id}"
%div{:data => {:inline => 'true'}, :style => 'text-align:right;'} %div{:style => 'text-align:right;'}
= submit_tag t('.comment'), :id => "comment_submit_#{post_id}", :disable_with => t('.commenting'), "data-role" => 'button', 'data-theme' => 'b', 'data-inline' => true = link_to "Cancel", post_path(post_id), :class => "cancel_new_comment btn"
= submit_tag t('.comment'), :id => "comment_submit_#{post_id}", :disable_with => t('.commenting'), :class => "action"
= new_comment_form(params[:post_id], current_user)
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
/ Stylesheets / Stylesheets
= include_stylesheets :mobile = include_stylesheets :mobile
%script{:src => "javascripts/vendor/mbp-modernizr-custom.js"} %script{:src => "/javascripts/vendor/mbp-modernizr-custom.js"}
/ Media Queries Polyfill https://github.com/shichuan/mobile-html5-boilerplate/wiki/Media-Queries-Polyfill / Media Queries Polyfill https://github.com/shichuan/mobile-html5-boilerplate/wiki/Media-Queries-Polyfill
:javascript :javascript
Modernizr.mq('(min-width:0)') || document.write('<script src="javascripts/vendor/mbp-respond.min.js">\x3C/script>') Modernizr.mq('(min-width:0)') || document.write('<script src="javascripts/vendor/mbp-respond.min.js">\x3C/script>')
...@@ -62,10 +62,13 @@ ...@@ -62,10 +62,13 @@
/ javascripts at the bottom / javascripts at the bottom
= include_javascripts :mobile = include_javascripts :mobile
= yield(:javascript)
/-if current_user /-if current_user
/ :javascript / :javascript
/ Diaspora.I18n.loadLocale(#{get_javascript_strings_for(current_user.language).to_json}, "#{current_user.language}"); / Diaspora.I18n.loadLocale(#{get_javascript_strings_for(current_user.language).to_json}, "#{current_user.language}");
:javascript
MBP.hideUrlBar();
-if AppConfig[:google_a_site] -if AppConfig[:google_a_site]
:javascript :javascript
......
%footer %footer
= link_to current_user.name, current_user.person %strong
= link_to current_user.name, current_user.person
= link_to t('layouts.application.toggle'), toggle_mobile_path = link_to t('layouts.application.toggle'), toggle_mobile_path
= link_to t('layouts.header.logout'), destroy_user_session_path = link_to t('layouts.header.logout'), destroy_user_session_path
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
-# the COPYRIGHT file. -# the COPYRIGHT file.
= form_for StatusMessage.new, {:data => {:ajax => false}} do |status| = form_for StatusMessage.new, {:data => {:ajax => false}} do |status|
= status.text_area :text, :placeholder => t('.whats_on_your_mind'), :style => "width:300px", :rows => 4 = status.text_area :text, :placeholder => t('.whats_on_your_mind'), :style => "width:300px", :rows => 4, :autofocus => "autofocus"
- for aspect_id in aspect_ids - for aspect_id in aspect_ids
= hidden_field_tag 'aspect_ids[]', aspect_id.to_s = hidden_field_tag 'aspect_ids[]', aspect_id.to_s
......
...@@ -30,34 +30,17 @@ ...@@ -30,34 +30,17 @@
= render 'status_messages/status_message', :post => post, :photos => post.photos = render 'status_messages/status_message', :post => post, :photos => post.photos
.bottom_bar .bottom_bar
- if defined?(expanded_info) && expanded_info .floater
#bottom_bar_tabs = link_to '', new_post_comment_path(post), :class => "image_link comment_action inactive"
.comment_count.tab
= post.comments.size
= link_to '', post_path(post), :class => "image_link comment_action"
.like_count.tab - if current_user.liked?(post)
= post.likes.size = link_to '', post_like_path(post.id, current_user.like_for(post).id), :class => "image_link like_action active"
- if current_user.liked?(post) - else
= link_to '', post_likes_path(post.id), :class => "image_link like_action active", 'data-post-id' => post.id, 'data-like-id' => current_user.like_for(post).id = link_to '', post_likes_path(post.id), :class => "image_link like_action inactive"
- else
= link_to '', post_likes_path(post.id), :class => "image_link like_action inactive"
/.reshare_count.tab
/ = post.comments.size
/ = link_to '', post_path(post), :class => "image_link comment_action"
= render "comments/comments", :post => post, :comments => post.comments, :comments_expanded => true
- else
.floater
= link_to '', post_path(post), :class => "image_link comment_action"
- if current_user.liked?(post)
= link_to '', post_like_path(post.id, current_user.like_for(post).id), :class => "image_link like_action active"
- else
= link_to '', post_likes_path(post.id), :class => "image_link like_action inactive"
- if post.comments.length + post.likes_count > 0
= link_to "#{t('reactions', :count => (post.comments.length + post.likes_count))}", post_comments_path(post, :format => "mobile"), :class => 'show_comments' = link_to "#{t('reactions', :count => (post.comments.length + post.likes_count))}", post_comments_path(post, :format => "mobile"), :class => 'show_comments'
- else
%span.show_comments
= "#{t('reactions', :count => (post.comments.length + post.likes_count))}"
...@@ -42,13 +42,13 @@ javascripts: ...@@ -42,13 +42,13 @@ javascripts:
login: login:
- public/javascripts/login.js - public/javascripts/login.js
mobile: mobile:
- public/javascripts/vendor/jquery162.min.js
#- public/javascripts/custom-mobile-scripting.js #- public/javascripts/custom-mobile-scripting.js
#- public/javascripts/vendor/jquery.mobile-1.0b2.min.js #- public/javascripts/vendor/jquery.mobile-1.0b2.min.js
#- public/javascripts/jquery.infinitescroll-custom.js #- public/javascripts/jquery.infinitescroll-custom.js
#- public/javascripts/diaspora.js #- public/javascripts/diaspora.js
#- public/javascripts/helpers/i18n.js #- public/javascripts/helpers/i18n.js
#- public/javascripts/widgets/infinite-scroll.js #- public/javascripts/widgets/infinite-scroll.js
- public/javascripts/vendor/jquery162.min.js
- public/javascripts/rails.js - public/javascripts/rails.js
- public/javascripts/vendor/mbp-helper.js - public/javascripts/vendor/mbp-helper.js
- public/javascripts/mobile.js - public/javascripts/mobile.js
......
...@@ -16,7 +16,7 @@ Diaspora::Application.routes.draw do ...@@ -16,7 +16,7 @@ Diaspora::Application.routes.draw do
resources :posts, :only => [:show, :destroy] do resources :posts, :only => [:show, :destroy] do
resources :likes, :only => [:create, :destroy, :index] resources :likes, :only => [:create, :destroy, :index]
resources :comments, :only => [:create, :destroy, :index] resources :comments, :only => [:new, :create, :destroy, :index]
end end
get 'p/:id' => 'posts#show', :as => 'short_post' get 'p/:id' => 'posts#show', :as => 'short_post'
......
public/images/icons/pencil_mobile_grey_active.png

871 octets

public/images/icons/pencil_mobile_grey_mobile.png

871 octets

public/images/icons/reshare_mobile.png

1,67 ko

...@@ -30,8 +30,7 @@ $(document).ready(function(){ ...@@ -30,8 +30,7 @@ $(document).ready(function(){
type: 'DELETE', type: 'DELETE',
beforeSend: function(){ beforeSend: function(){
link.removeClass('active') link.removeClass('active')
.addClass('loading') .addClass('loading');
.fadeIn(50);
}, },
complete: function(data){ complete: function(data){
link.removeClass('loading') link.removeClass('loading')
...@@ -42,19 +41,60 @@ $(document).ready(function(){ ...@@ -42,19 +41,60 @@ $(document).ready(function(){
}); });
}); });
$("a.show_comments").live('tap click', function(evt){ $("a.show_comments").live('tap click', function(evt){
evt.preventDefault(); evt.preventDefault();
var link = $(this), var link = $(this),
parent = link.closest(".bottom_bar").first(); parent = link.closest(".bottom_bar").first(),
commentsContainer = parent.find(".comments");
$.ajax({ if( link.hasClass('active') ) {
url: link.attr('href'), commentsContainer.first().hide();
success: function(data){ link.removeClass('active');
var comments = $("<ul class='comments'></ul>");
parent.append(comments.append(data)); } else if( commentsContainer.length > 0 ) {
} commentsContainer.first().show();
}); link.addClass('active');
} else {
$.ajax({
url: link.attr('href'),
success: function(data){
var comments = $("<ul class='comments'></ul>");
parent.append(comments.append(data));
link.addClass('active');
}
});
}
});
$("a.comment_action").live('tap click', function(evt){
evt.preventDefault();
var link = $(this);
if(link.hasClass('inactive')) {
var parent = link.closest(".bottom_bar").first();
$.ajax({
url: link.attr('href'),
beforeSend: function(){
link.addClass('loading');
},
success: function(data){
link.removeClass('loading')
.removeClass('inactive');
parent.append(data);
}
});
}
}); });
$("a.cancel_new_comment").live('tap click', function(evt){
evt.preventDefault();
var link = $(this);
form = link.closest("form"),
commentActionLink = link.closest(".bottom_bar").find("a.comment_action").first();
commentActionLink.addClass("inactive");
form.remove();
});
}); });
...@@ -84,6 +84,7 @@ body { ...@@ -84,6 +84,7 @@ body {
.stream_element .comments { .stream_element .comments {
padding: 0; padding: 0;
margin: 0; margin: 0;
margin-top: 18px;
width: 100%; width: 100%;
.content { .content {
padding: 0; padding: 0;
...@@ -92,14 +93,14 @@ body { ...@@ -92,14 +93,14 @@ body {
.comment { .comment {
padding: { padding: {
top: 10px; top: 10px;
bottom: 5px;
} }
} }
} }
.comment { .comment {
padding: 4px 0;
border: { border: {
bottom: 1px dotted #ccc; }; top: 1px solid #ccc; };
} }
#login_form { #login_form {
...@@ -265,6 +266,7 @@ footer { ...@@ -265,6 +266,7 @@ footer {
a, a,
a:visited { a:visited {
color: #999; color: #999;
margin: 10px;
} }
padding: { padding: {
top: 10px; top: 10px;
...@@ -282,9 +284,29 @@ footer { ...@@ -282,9 +284,29 @@ footer {
border: { border: {
top: 1px solid #dddddd; }; top: 1px solid #dddddd; };
min-height: 24px; min-height: 24px;
a {
color: #999999 !important; a,
font-weight: bold !important; } .show_comments {
color: #999;
font-weight: bold;
}
.show_comments {
position: relative;
top: 3px;
font: {
size: larger;
}
color: #ccc;
}
a.show_comments {
color: #999;
&.active {
color: #444;
}
}
#bottom_bar_tabs { #bottom_bar_tabs {
display: table; display: table;
...@@ -351,14 +373,21 @@ footer { ...@@ -351,14 +373,21 @@ footer {
&.active { &.active {
background-image: url("/images/icons/heart_mobile_red.png"); background-image: url("/images/icons/heart_mobile_red.png");
} }
&.loading { &.loading {
background-image: url("/images/mobile-spinner.gif"); background-image: url("/images/mobile-spinner.gif");
} }
} }
.comment_action { .comment_action {
background-image: url("/images/icons/pencil_mobile_grey.png"); } background-image: url("/images/icons/pencil_mobile_grey_active.png");
&.inactive {
background-image: url("/images/icons/pencil_mobile_grey.png");
}
&.loading {
background-image: url("/images/mobile-spinner.gif");
}
}
.compose_icon { .compose_icon {
position: absolute; position: absolute;
...@@ -379,11 +408,26 @@ footer { ...@@ -379,11 +408,26 @@ footer {
} }
form { form {
input { input:not([type='checkbox']),
textarea {
-webkit-appearance: none; -webkit-appearance: none;
text-size: larger;
} }
}
.show_comments { .btn,
font-size: larger; input[type=submit] {
@include border-radius(3px);
background-color: #ccc;
color: #666;
text-size: larger;
font-weight: bold;
padding: 10px;
border: 1px solid #999;
&.action {
color: #fff;
background-color: green;
border: 1px solid #888;
}
}
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter