we are now making AJAX requests

This commit is contained in:
nilsding 2014-11-10 18:19:04 +01:00
parent f7f71e9cc9
commit b65c60ea76
5 changed files with 61 additions and 42 deletions

View File

@ -1,41 +0,0 @@
#= require jquery
#= require jquery_ujs
#= require turbolinks
#= require bootstrap
#= require bootstrap-material-design
#= require nprogress
#= require nprogress-turbolinks
#= require_tree .
NProgress.configure
showSpinner: false
$(document).on "click", "button[name=qb-ask]", ->
btn = $(this)
btn.button "loading"
promote = btn[0].dataset.promote == "true"
$("textarea[name=qb-question]").attr "readonly", "readonly"
anonymousQuestion = if $("input[name=qb-anonymous]")[0] != undefined
$("input[name=qb-anonymous]")[0].checked
else
true
console.log "some AJAX magic should happen here!"
btn.button "reset"
$("textarea[name=qb-question]").removeAttr "readonly"
if true # data.success
$("textarea[name=qb-question]").val ''
if promote
$("div#question-box").hide()
$("div#question-box-promote").show()
else
$.snackbar # allahu snackbar
content: "Successfully asked question"
style: "snackbar"
timeout: 5000
$(document).on "click", "button#create-account", ->
Turbolinks.visit "/sign_up"
$(document).on "click", "button#new-question", ->
$("div#question-box").show()
$("div#question-box-promote").hide()

View File

@ -0,0 +1,59 @@
#= require jquery
#= require jquery_ujs
#= require turbolinks
#= require bootstrap
#= require bootstrap-material-design
#= require nprogress
#= require nprogress-turbolinks
#= require_tree .
NProgress.configure
showSpinner: false
$(document).on "click", "button[name=qb-ask]", ->
btn = $(this)
btn.button "loading"
promote = btn[0].dataset.promote == "true"
$("textarea[name=qb-question]").attr "readonly", "readonly"
anonymousQuestion = if $("input[name=qb-anonymous]")[0] != undefined
$("input[name=qb-anonymous]")[0].checked
else
true
$.ajax
url: '/ajax/ask' # TODO: find a way to use rake routes instead of hardcoding them here
data:
rcpt: $("input[name=qb-to]").val()
question: $("textarea[name=qb-question]").val()
anonymousQuestion: anonymousQuestion
success: (data, status, jqxhr) ->
if data.success
$("textarea[name=qb-question]").val ''
if promote
$("div#question-box").hide()
$("div#question-box-promote").show()
$.snackbar # allahu snackbar
content: "Successfully asked question"
style: "snackbar"
timeout: 5000
else
console.log data, status, jqxhr
$.snackbar # allahu snackbar
content: "An error occurred, a developer should check the console for details"
style: "snackbar"
timeout: 5000
error: (jqxhr, status, error) ->
console.log jqxhr, status, error
$.snackbar # allahu snackbar
content: "An error occurred, a developer should check the console for details"
style: "snackbar"
timeout: 5000
complete: (jqxhr, status) ->
btn.button "reset"
$("textarea[name=qb-question]").removeAttr "readonly"
$(document).on "click", "button#create-account", ->
Turbolinks.visit "/sign_up"
$(document).on "click", "button#new-question", ->
$("div#question-box").show()
$("div#question-box-promote").hide()

View File

@ -10,5 +10,6 @@ body { padding-top: $navbar-height; }
@import "font-awesome";
$nprogress-color: #666; /* hail stan */
@import 'nprogress';
@import 'nprogress-bootstrap';

View File

View File

@ -24,7 +24,7 @@ Rails.application.routes.draw do
match '/settings/profile', to: 'user#update', via: 'patch', as: :update_user_profile
namespace :ajax do
match '/ask', to: 'ajax#ask', via: :post, as: :ajax_ask
match '/ask', to: 'ajax#ask', via: :post, as: :ask
end
match '/user/:username', to: 'user#show', via: 'get'