From e555a87afc0db33c338273d59950821ae347aa28 Mon Sep 17 00:00:00 2001 From: Dayton-Killian-1 Date: Tue, 31 May 2022 19:58:18 +0000 Subject: [PATCH 1/2] Comments are now working --- app/controllers/comments_controller.rb | 4 ++++ app/controllers/photos_controller.rb | 1 + app/views/comments/_comment.html.erb | 6 +++--- app/views/comments/_form.html.erb | 4 ++-- app/views/comments/create.js.erb | 3 +++ app/views/comments/destroy.js.erb | 7 +++++++ app/views/comments/edit.js.erb | 5 +++++ app/views/comments/update.js.erb | 2 ++ app/views/photos/_photo.html.erb | 2 +- app/views/photos/destroy.js.erb | 7 +++++++ 10 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 app/views/comments/create.js.erb create mode 100644 app/views/comments/destroy.js.erb create mode 100644 app/views/comments/edit.js.erb create mode 100644 app/views/comments/update.js.erb create mode 100644 app/views/photos/destroy.js.erb diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 5b62df9..a362735 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb @@ -21,6 +21,7 @@ def new def edit respond_to do |format| format.html + format.js end end @@ -33,6 +34,7 @@ def create if @comment.save format.html { redirect_back fallback_location: root_path, notice: "Comment was successfully created." } format.json { render :show, status: :created, location: @comment } + format.js else format.html { render :new, status: :unprocessable_entity } format.json { render json: @comment.errors, status: :unprocessable_entity } @@ -46,6 +48,7 @@ def update if @comment.update(comment_params) format.html { redirect_to root_url, notice: "Comment was successfully updated." } format.json { render :show, status: :ok, location: @comment } + format.js else format.html { render :edit, status: :unprocessable_entity } format.json { render json: @comment.errors, status: :unprocessable_entity } @@ -59,6 +62,7 @@ def destroy respond_to do |format| format.html { redirect_back fallback_location: root_url, notice: "Comment was successfully destroyed." } format.json { head :no_content } + format.js { render template: "comments/destroy.js.erb"} end end diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 4a37f0e..548fc55 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -59,6 +59,7 @@ def destroy respond_to do |format| format.html { redirect_back fallback_location: root_url, notice: "Photo was successfully destroyed." } format.json { head :no_content } + format.js end end diff --git a/app/views/comments/_comment.html.erb b/app/views/comments/_comment.html.erb index 25bdd33..92b744c 100644 --- a/app/views/comments/_comment.html.erb +++ b/app/views/comments/_comment.html.erb @@ -1,4 +1,4 @@ -
  • +
  • <%= image_tag comment.author.avatar_image, class: "rounded-circle mr-2", width: 36 %>
    @@ -9,11 +9,11 @@
    <% if current_user == comment.author %> - <%= link_to edit_comment_path(comment), class: "btn btn-link btn-sm text-muted" do %> + <%= link_to edit_comment_path(comment), class: "btn btn-link btn-sm text-muted" , remote: true do %> <% end %> - <%= link_to comment, method: :delete, class: "btn btn-link btn-sm text-muted" do %> + <%= link_to comment, method: :delete, class: "btn btn-link btn-sm text-muted" , remote: true do %> <% end %> <% end %> diff --git a/app/views/comments/_form.html.erb b/app/views/comments/_form.html.erb index f289224..5ae0624 100644 --- a/app/views/comments/_form.html.erb +++ b/app/views/comments/_form.html.erb @@ -1,5 +1,5 @@ -
  • - <%= form_with(model: comment) do |form| %> +
  • + <%= form_with(model: comment, local: false) do |form| %> <% if comment.errors.any? %>
      diff --git a/app/views/comments/create.js.erb b/app/views/comments/create.js.erb new file mode 100644 index 0000000..4465c28 --- /dev/null +++ b/app/views/comments/create.js.erb @@ -0,0 +1,3 @@ + +$("#<%= dom_id(@comment.photo) %>_new_comment_form").before("<%= escape_javascript(render('comments/comment', comment: @comment)) %>"); + diff --git a/app/views/comments/destroy.js.erb b/app/views/comments/destroy.js.erb new file mode 100644 index 0000000..f0a64ce --- /dev/null +++ b/app/views/comments/destroy.js.erb @@ -0,0 +1,7 @@ + + +$("#<%= dom_id(@comment) %>").fadeOut(function() { + + $(this).remove() + +}); diff --git a/app/views/comments/edit.js.erb b/app/views/comments/edit.js.erb new file mode 100644 index 0000000..88bbe3b --- /dev/null +++ b/app/views/comments/edit.js.erb @@ -0,0 +1,5 @@ + +$("#<%= dom_id(@comment) %>").replaceWith("<%= j(render("comments/form", comment: @comment)) %>"); + + + diff --git a/app/views/comments/update.js.erb b/app/views/comments/update.js.erb new file mode 100644 index 0000000..5b2c821 --- /dev/null +++ b/app/views/comments/update.js.erb @@ -0,0 +1,2 @@ + +$("#<%= dom_id(@comment.photo) %>_<%= dom_id(@comment) %>_form").replaceWith("<%= j(render @comment) %>"); diff --git a/app/views/photos/_photo.html.erb b/app/views/photos/_photo.html.erb index dd220b0..8beeb76 100644 --- a/app/views/photos/_photo.html.erb +++ b/app/views/photos/_photo.html.erb @@ -13,7 +13,7 @@ <% end %> - <%= link_to photo, method: :delete, class: "btn btn-link btn-sm text-muted" do %> + <%= link_to photo, method: :delete, class: "btn btn-link btn-sm text-muted", remote: true do %> <% end %> <% end %> diff --git a/app/views/photos/destroy.js.erb b/app/views/photos/destroy.js.erb new file mode 100644 index 0000000..1ad8195 --- /dev/null +++ b/app/views/photos/destroy.js.erb @@ -0,0 +1,7 @@ + +$("#<%= dom_id(@photo) %>").fadeOut(function() { + + $(this).remove() + +}); + From eca493cf30d6a88eee66b47048cea49583516975 Mon Sep 17 00:00:00 2001 From: Dayton-Killian-1 Date: Tue, 31 May 2022 21:04:13 +0000 Subject: [PATCH 2/2] Likes updated --- app/controllers/follow_requests_controller.rb | 1 + app/controllers/likes_controller.rb | 2 ++ app/views/likes/create.js.erb | 2 ++ app/views/likes/destroy.js.erb | 2 ++ app/views/photos/_photo.html.erb | 2 +- 5 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 app/views/likes/create.js.erb create mode 100644 app/views/likes/destroy.js.erb diff --git a/app/controllers/follow_requests_controller.rb b/app/controllers/follow_requests_controller.rb index 9c30da7..d500027 100644 --- a/app/controllers/follow_requests_controller.rb +++ b/app/controllers/follow_requests_controller.rb @@ -28,6 +28,7 @@ def create if @follow_request.save format.html { redirect_back fallback_location: root_url, notice: "Follow request was successfully created." } format.json { render :show, status: :created, location: @follow_request } + format.js else format.html { render :new, status: :unprocessable_entity } format.json { render json: @follow_request.errors, status: :unprocessable_entity } diff --git a/app/controllers/likes_controller.rb b/app/controllers/likes_controller.rb index 49affd3..d7ef279 100644 --- a/app/controllers/likes_controller.rb +++ b/app/controllers/likes_controller.rb @@ -27,6 +27,7 @@ def create if @like.save format.html { redirect_back fallback_location: root_url, notice: "Like was successfully created." } format.json { render :show, status: :created, location: @like } + format.js else format.html { render :new, status: :unprocessable_entity } format.json { render json: @like.errors, status: :unprocessable_entity } @@ -53,6 +54,7 @@ def destroy respond_to do |format| format.html { redirect_back fallback_location: root_url, notice: "Like was successfully destroyed." } format.json { head :no_content } + format.js end end diff --git a/app/views/likes/create.js.erb b/app/views/likes/create.js.erb new file mode 100644 index 0000000..a68bc29 --- /dev/null +++ b/app/views/likes/create.js.erb @@ -0,0 +1,2 @@ + +$("#<%= dom_id(@like.photo) %>_likes").replaceWith("<%= j(render "photos/likes",photo: @like.photo) %>") diff --git a/app/views/likes/destroy.js.erb b/app/views/likes/destroy.js.erb new file mode 100644 index 0000000..aba6a40 --- /dev/null +++ b/app/views/likes/destroy.js.erb @@ -0,0 +1,2 @@ + +$("#<%= dom_id(@like.photo) %>_likes").replaceWith("<%= j(render "photos/likes", photo: @like.photo) %>"); diff --git a/app/views/photos/_photo.html.erb b/app/views/photos/_photo.html.erb index 8beeb76..b13407b 100644 --- a/app/views/photos/_photo.html.erb +++ b/app/views/photos/_photo.html.erb @@ -31,7 +31,7 @@ <% like = current_user.likes.find_by(photo: photo) %> <% if like %> - <%= link_to like, class: "btn btn-link", method: :delete do %> + <%= link_to like, class: "btn btn-link", method: :delete, remote: true do %> Un-like