107 lines
2.6 KiB
JavaScript
107 lines
2.6 KiB
JavaScript
// Generated by CoffeeScript 1.12.4
|
|
(function() {
|
|
var createSecret, dataNotFound, hashLoad, initBinds, newSecret, secretCreated, securePassword, showData, somethingWrong;
|
|
|
|
securePassword = null;
|
|
|
|
createSecret = function() {
|
|
var secret;
|
|
secret = $('#formCreateSecret').find('textarea').val();
|
|
if ($('#extra').prop('checked')) {
|
|
securePassword = Math.random().toString(36).substring(2);
|
|
secret = GibberishAES.enc(secret, securePassword);
|
|
}
|
|
$.ajax('api/create', {
|
|
data: {
|
|
secret: secret
|
|
},
|
|
dataType: "json",
|
|
statusCode: {
|
|
201: secretCreated,
|
|
400: somethingWrong,
|
|
500: somethingWrong,
|
|
404: function() {
|
|
return secretCreated({
|
|
secret_id: 'foobar'
|
|
});
|
|
}
|
|
}
|
|
});
|
|
return false;
|
|
};
|
|
|
|
dataNotFound = function() {
|
|
return $('#notfound').show();
|
|
};
|
|
|
|
hashLoad = function() {
|
|
var hash, id, parts;
|
|
hash = window.location.hash;
|
|
if (hash.length === 0) {
|
|
return;
|
|
}
|
|
parts = hash.split('|');
|
|
if (parts.length === 2) {
|
|
hash = parts[0];
|
|
securePassword = parts[1];
|
|
}
|
|
id = hash.substring(1);
|
|
return $.ajax("api/get/" + id, {
|
|
dataType: "json",
|
|
statusCode: {
|
|
404: dataNotFound,
|
|
200: showData
|
|
}
|
|
});
|
|
};
|
|
|
|
initBinds = function() {
|
|
$('#formCreateSecret').bind('submit', createSecret);
|
|
$('#newSecret, .navbar-brand').bind('click', newSecret);
|
|
return $(window).bind('hashchange', hashLoad);
|
|
};
|
|
|
|
newSecret = function() {
|
|
location.href = location.href.split('#')[0];
|
|
return false;
|
|
};
|
|
|
|
secretCreated = function(data) {
|
|
var secretHash, url;
|
|
secretHash = data.secret_id;
|
|
if (securePassword !== null) {
|
|
secretHash = secretHash + "|" + securePassword;
|
|
}
|
|
url = (location.href.split('#')[0]) + "#" + secretHash;
|
|
$('#panelNewSecret').hide();
|
|
$('#panelSecretURL').show();
|
|
$('#panelSecretURL').find('input').val(url);
|
|
$('#panelSecretURL').find('input').focus();
|
|
$('#panelSecretURL').find('input').select();
|
|
return securePassword = null;
|
|
};
|
|
|
|
showData = function(data) {
|
|
var secret;
|
|
secret = data.secret;
|
|
if (securePassword !== null) {
|
|
secret = GibberishAES.dec(secret, securePassword);
|
|
}
|
|
$('#panelNewSecret').hide();
|
|
$('#panelSecretURL').hide();
|
|
$('#notfound').hide();
|
|
$('#somethingwrong').hide();
|
|
$('#panelReadSecret').show();
|
|
return $('#panelReadSecret').find('textarea').val(secret);
|
|
};
|
|
|
|
somethingWrong = function() {
|
|
return $('#somethingwrong').show();
|
|
};
|
|
|
|
$(function() {
|
|
initBinds();
|
|
return hashLoad();
|
|
});
|
|
|
|
}).call(this);
|