Files
Pinry/pinry/static/js/helpers.js

90 lines
2.2 KiB
JavaScript
Raw Normal View History

/**
* Helpers for Pinry
* Descrip: A hodgepodge of useful things to help clean up Pinry's JavaScript.
* Authors: Pinry Contributors
* Updated: Feb 26th, 2013
* Require: jQuery
*/
var API_BASE = "/api/v2/";
function _getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
function getCSRFToken() {
return _getCookie('csrftoken');
}
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", getCSRFToken());
}
}
});
function renderTemplate(templateId, context) {
var template = Handlebars.compile($(templateId).html());
return template(context);
}
function cleanTags(tags) {
2013-03-03 13:45:27 +00:00
if (typeof tags === 'string' && tags.length > 0) {
tags = tags.split(/[\s,]+/);
for (var i in tags) {
tags[i] = tags[i].trim();
}
} else {
2013-03-03 13:55:35 +00:00
return [];
}
return tags;
}
function getPinData(pinId) {
var apiUrl = API_BASE + "pins/" + pinId + '/?format=json';
return $.get(apiUrl);
}
2013-03-03 14:30:06 +00:00
function deletePinData(pinId) {
2019-02-21 15:12:37 +08:00
var apiUrl = API_BASE + 'pins/' +pinId + '/?format=json';
2013-03-03 14:30:06 +00:00
return $.ajax(apiUrl, {
type: 'DELETE'
});
}
function postPinData(data) {
return $.ajax({
type: "post",
2019-02-21 17:45:22 +08:00
url: API_BASE + "pins/",
contentType: 'application/json',
data: JSON.stringify(data)
});
}
function getUrlParameter(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
}