a little js cleanup
This commit is contained in:
27
app/assets/javascripts/main/ajax-links.js
Normal file
27
app/assets/javascripts/main/ajax-links.js
Normal file
@ -0,0 +1,27 @@
|
||||
function handleAjaxResponse($el, callback) {
|
||||
var $header = $('header');
|
||||
$el.on("ajax:success", function(e, data){
|
||||
$header.after('<div class="success">' + data.message + '</div>');
|
||||
callback(data);
|
||||
}).on("ajax:error", function(e, xhr) {
|
||||
if (xhr.status === 400){
|
||||
$header.after('<div class="error">' + xhr.responseJSON.join('<br>') + '</div>');
|
||||
} else {
|
||||
$header.after('<div class="error">Oops! There was an error processing your request. Please try again.</div>');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function updateVotes(data){
|
||||
$("[data-id=up-votes]").html(data.upCount);
|
||||
$("[data-id=down-votes]").html(data.downCount);
|
||||
$("[data-id=my-vote]").html(data.myVote);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('[data-id=ajax-action]').each(function(){ handleAjaxResponse($(this)); });
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
$('[data-id=vote-count]').each(function(){ handleAjaxResponse($(this), updateVotes); });
|
||||
});
|
25
app/assets/javascripts/main/textarea-limit.js
Normal file
25
app/assets/javascripts/main/textarea-limit.js
Normal file
@ -0,0 +1,25 @@
|
||||
$.fn.extend({
|
||||
characterLimiter: function(limit, label) {
|
||||
this.on("keyup focus show", function() {
|
||||
setCount(this, label);
|
||||
});
|
||||
|
||||
// TODO: append label container after $this, instead of hard HTML
|
||||
function setCount(src, label) {
|
||||
if(src !== undefined) {
|
||||
var chars = src.value.length;
|
||||
if (chars >= limit) {
|
||||
src.value = src.value.substr(0, limit);
|
||||
chars = limit;
|
||||
}
|
||||
label.html(limit - chars);
|
||||
}
|
||||
}
|
||||
|
||||
setCount(this[0], label);
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
$('textarea').characterLimiter(1000, $(".chars span"));
|
||||
});
|
Reference in New Issue
Block a user