Reporting and Deleting logic
This commit is contained in:
parent
3ef2c841c5
commit
ee29e1f28f
|
@ -0,0 +1,30 @@
|
||||||
|
$(document).on "click", "a[data-action=ab-question-destroy]", (ev) ->
|
||||||
|
ev.preventDefault()
|
||||||
|
btn = $(this)
|
||||||
|
qid = btn[0].dataset.qId
|
||||||
|
swal
|
||||||
|
title: "Are you sure?"
|
||||||
|
text: "The question will be removed."
|
||||||
|
type: "warning"
|
||||||
|
showCancelButton: true
|
||||||
|
confirmButtonColor: "#DD6B55"
|
||||||
|
confirmButtonText: "Yes"
|
||||||
|
cancelButtonText: "No"
|
||||||
|
closeOnConfirm: true
|
||||||
|
, ->
|
||||||
|
$.ajax
|
||||||
|
url: '/ajax/destroy_question' # TODO: find a way to use rake routes instead of hardcoding them here
|
||||||
|
type: 'POST'
|
||||||
|
data:
|
||||||
|
question: qid
|
||||||
|
success: (data, status, jqxhr) ->
|
||||||
|
if data.success
|
||||||
|
if btn[0].dataset.redirect != undefined
|
||||||
|
window.location.href = btn[0].dataset.redirect
|
||||||
|
else
|
||||||
|
$("div.answerbox[data-qId=#{qid}], div.questionbox[data-id=#{qid}]").slideUp()
|
||||||
|
showNotification data.message, data.success
|
||||||
|
error: (jqxhr, status, error) ->
|
||||||
|
console.log jqxhr, status, error
|
||||||
|
showNotification "An error occurred, a developer should check the console for details", false
|
||||||
|
complete: (jqxhr, status) ->
|
|
@ -0,0 +1,5 @@
|
||||||
|
$(document).on "click", "a[data-action=ab-question-report]", (ev) ->
|
||||||
|
ev.preventDefault()
|
||||||
|
btn = $(this)
|
||||||
|
qId = btn[0].dataset.qId
|
||||||
|
reportDialog "question", qId, -> btn.button "reset"
|
|
@ -11,4 +11,10 @@
|
||||||
|
|
||||||
.panel-primary .answerbox--question-text {
|
.panel-primary .answerbox--question-text {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#questions .panel-body .media {
|
||||||
|
&, .media-body {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,24 @@
|
||||||
class Ajax::QuestionController < ApplicationController
|
class Ajax::QuestionController < ApplicationController
|
||||||
include MarkdownHelper
|
include MarkdownHelper
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
params.require :question
|
||||||
|
|
||||||
|
question = Question.find params[:question]
|
||||||
|
if question.nil?
|
||||||
|
@status = :not_found
|
||||||
|
@message = "Question does not exist"
|
||||||
|
@success = false
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
question.destroy!
|
||||||
|
|
||||||
|
@status = :okay
|
||||||
|
@message = "Successfully deleted question."
|
||||||
|
@success = true
|
||||||
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
params.require :question
|
params.require :question
|
||||||
params.require :anonymousQuestion
|
params.require :anonymousQuestion
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
json.partial! 'ajax/shared/status'
|
|
@ -11,11 +11,11 @@
|
||||||
%button.btn.btn-link.btn-sm.dropdown-toggle{data: { toggle: :dropdown }, aria: { expanded: :false }}
|
%button.btn.btn-link.btn-sm.dropdown-toggle{data: { toggle: :dropdown }, aria: { expanded: :false }}
|
||||||
%span.caret
|
%span.caret
|
||||||
%ul.dropdown-menu.dropdown-menu-right{role: :menu}
|
%ul.dropdown-menu.dropdown-menu-right{role: :menu}
|
||||||
- if current_user.mod?
|
- if current_user.mod? or @question.user == current_user
|
||||||
%li.text-danger
|
%li.text-danger
|
||||||
%a{href: '#', data: { action: 'ab-question-destroy', q_id: @question.id }}
|
%a{href: '#', data: { action: 'ab-question-destroy', q_id: @question.id, redirect: show_user_questions_path(@question.user.screen_name) }}
|
||||||
%i.fa.fa-trash-o
|
%i.fa.fa-trash-o
|
||||||
Delete
|
Delete Question
|
||||||
- unless @question.user == current_user
|
- unless @question.user == current_user
|
||||||
%li
|
%li
|
||||||
%a{href: '#', data: { action: 'ab-question-report', q_id: @question.id }}
|
%a{href: '#', data: { action: 'ab-question-report', q_id: @question.id }}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.panel.panel-default.answerbox{data: { id: a.id }}
|
.panel.panel-default.answerbox{data: { id: a.id, q_id: a.question.id }}
|
||||||
- if @question.nil?
|
- if @question.nil?
|
||||||
.panel-heading
|
.panel-heading
|
||||||
.media.question-media
|
.media.question-media
|
||||||
|
@ -12,11 +12,11 @@
|
||||||
%button.btn.btn-link.btn-sm.dropdown-toggle{data: { toggle: :dropdown }, aria: { expanded: :false }}
|
%button.btn.btn-link.btn-sm.dropdown-toggle{data: { toggle: :dropdown }, aria: { expanded: :false }}
|
||||||
%span.caret
|
%span.caret
|
||||||
%ul.dropdown-menu.dropdown-menu-right{role: :menu}
|
%ul.dropdown-menu.dropdown-menu-right{role: :menu}
|
||||||
- if current_user.mod?
|
- if current_user.mod? or a.question.user == current_user
|
||||||
%li.text-danger
|
%li.text-danger
|
||||||
%a{href: '#', data: { action: 'ab-question-destroy', q_id: a.question.id }}
|
%a{href: '#', data: { action: 'ab-question-destroy', q_id: a.question.id }}
|
||||||
%i.fa.fa-trash-o
|
%i.fa.fa-trash-o
|
||||||
Delete
|
Delete Question
|
||||||
- unless a.question.user == current_user
|
- unless a.question.user == current_user
|
||||||
%li
|
%li
|
||||||
%a{href: '#', data: { action: 'ab-question-report', q_id: a.question.id }}
|
%a{href: '#', data: { action: 'ab-question-report', q_id: a.question.id }}
|
||||||
|
|
|
@ -1,7 +1,23 @@
|
||||||
.panel.panel-default
|
.panel.panel-default.questionbox{data: { id: q.id }}
|
||||||
.panel-body
|
.panel-body
|
||||||
.media
|
.media
|
||||||
.media-body
|
.media-body
|
||||||
|
- if user_signed_in?
|
||||||
|
.pull-right
|
||||||
|
.btn-group
|
||||||
|
%button.btn.btn-link.btn-sm.dropdown-toggle{data: { toggle: :dropdown }, aria: { expanded: :false }}
|
||||||
|
%span.caret
|
||||||
|
%ul.dropdown-menu.dropdown-menu-right{role: :menu}
|
||||||
|
- if current_user.mod? or q.user == current_user
|
||||||
|
%li.text-danger
|
||||||
|
%a{href: '#', data: { action: 'ab-question-destroy', q_id: q.id }}
|
||||||
|
%i.fa.fa-trash-o
|
||||||
|
Delete Question
|
||||||
|
- unless q.user == current_user
|
||||||
|
%li
|
||||||
|
%a{href: '#', data: { action: 'ab-question-report', q_id: q.id }}
|
||||||
|
%i.fa.fa-exclamation-triangle
|
||||||
|
Report
|
||||||
%h6.media-heading.text-muted.answerbox--question-user
|
%h6.media-heading.text-muted.answerbox--question-user
|
||||||
= user_screen_name q.user
|
= user_screen_name q.user
|
||||||
asked
|
asked
|
||||||
|
@ -14,4 +30,4 @@
|
||||||
%a{href: show_user_question_path(q.user.screen_name, q.id)}
|
%a{href: show_user_question_path(q.user.screen_name, q.id)}
|
||||||
#{q.answer_count} answers
|
#{q.answer_count} answers
|
||||||
%p.answerbox--question-text
|
%p.answerbox--question-text
|
||||||
= q.content
|
= q.content
|
||||||
|
|
|
@ -66,6 +66,7 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
namespace :ajax do
|
namespace :ajax do
|
||||||
match '/ask', to: 'question#create', via: :post, as: :ask
|
match '/ask', to: 'question#create', via: :post, as: :ask
|
||||||
|
match '/destroy_question', to: 'question#destroy', via: :post, as: :destroy_question
|
||||||
match '/generate_question', to: 'inbox#create', via: :post, as: :generate_question
|
match '/generate_question', to: 'inbox#create', via: :post, as: :generate_question
|
||||||
match '/delete_inbox', to: 'inbox#remove', via: :post, as: :delete_inbox
|
match '/delete_inbox', to: 'inbox#remove', via: :post, as: :delete_inbox
|
||||||
match '/delete_all_inbox', to: 'inbox#remove_all', via: :post, as: :delete_all_inbox
|
match '/delete_all_inbox', to: 'inbox#remove_all', via: :post, as: :delete_all_inbox
|
||||||
|
|
Loading…
Reference in New Issue