mirror of
https://github.com/twisterarmy/twister-calm.git
synced 2025-01-13 00:18:12 +00:00
b54e611797
change files order, new DHT indicator in top menu, ‘back’ button in DM conversations, sound notifications (alpha) and new page ‘Options’, few fixes
121 lines
4.2 KiB
JavaScript
121 lines
4.2 KiB
JavaScript
// interface_profile-edit.js
|
|
// 2013 Miguel Freitas
|
|
//
|
|
// Profile editing interface (profile-edit.html)
|
|
|
|
var newUserWarnDisplayed = false;
|
|
|
|
function initProfileEdit() {
|
|
// Check for the various File API support.
|
|
if (window.File && window.FileReader && window.FileList && window.Blob) {
|
|
// Great success! All the File APIs are supported.
|
|
} else {
|
|
alert('The File APIs are not fully supported in this browser.');
|
|
}
|
|
|
|
initInterfaceCommon();
|
|
|
|
$(".profile-card-photo.forEdition").click( function() { $('#avatar-file').click(); } );
|
|
$("#avatar-file").bind( "change", handleAvatarFileSelect);
|
|
$(".submit-changes").click( saveProfile );
|
|
$(".cancel-changes").click( $.MAL.goHome );
|
|
|
|
initUser( function() {
|
|
if( !defaultScreenName ) {
|
|
alert("Username undefined, login required.");
|
|
$.MAL.goLogin();
|
|
return;
|
|
}
|
|
checkNetworkStatusAndAskRedirect(verifyUserAlreadyInBlockchain);
|
|
|
|
if( defaultScreenName ) {
|
|
loadFollowing( function() {
|
|
initMentionsCount();
|
|
initDMsCount();
|
|
});
|
|
}
|
|
|
|
$(".profile-card-main h2").text("@" + defaultScreenName);
|
|
loadAvatarForEdit();
|
|
loadProfileForEdit();
|
|
|
|
$(".secret-key-container").hide();
|
|
|
|
$(".toggle-priv-key").click(function () {
|
|
if ($(".secret-key-container").is(":visible")) {
|
|
$(".secret-key-container").fadeOut(function () {
|
|
$(".secret-key").text('');
|
|
});
|
|
} else {
|
|
dumpPrivkey(defaultScreenName, function(args, key) {
|
|
$(".secret-key").text(key);
|
|
$(".secret-key-container").fadeIn();
|
|
}, {});
|
|
}
|
|
});
|
|
|
|
});
|
|
}
|
|
|
|
function handleAvatarFileSelect(evt) {
|
|
var files = evt.target.files; // FileList object
|
|
var f = files[0];
|
|
|
|
// Only process image files.
|
|
if (f.type.match('image.*')) {
|
|
var reader = new FileReader();
|
|
|
|
reader.onload=function(e){
|
|
var img=new Image();
|
|
img.onload=function(){
|
|
var MAXWidthHeight=64;
|
|
var r=MAXWidthHeight/Math.max(this.width,this.height),
|
|
w=Math.round(this.width*r),
|
|
h=Math.round(this.height*r),
|
|
c=document.createElement("canvas");
|
|
c.width=w;c.height=h;
|
|
c.getContext("2d").drawImage(this,0,0,w,h);
|
|
|
|
var imgURL = undefined;
|
|
for(var q = 0.9; (!imgURL || imgURL.length > 4096) && q > 0.1; q -= 0.01) {
|
|
imgURL = c.toDataURL("image/jpeg", q);
|
|
}
|
|
$(".profile-card-photo.forEdition").attr("src", imgURL );
|
|
}
|
|
img.src=e.target.result;
|
|
}
|
|
|
|
// Read in the image file as a data URL.
|
|
reader.readAsDataURL(f);
|
|
}
|
|
}
|
|
|
|
|
|
function verifyUserAlreadyInBlockchain()
|
|
{
|
|
$.MAL.disableButton($(".submit-changes"));
|
|
|
|
dumpPubkey(defaultScreenName, function(args, pubkey) {
|
|
//pubkey = "";
|
|
if( pubkey.length > 0 ) {
|
|
follow('twister', true, function() {
|
|
$.MAL.enableButton($(".submit-changes"));
|
|
});
|
|
} else {
|
|
if( !newUserWarnDisplayed ) {
|
|
alert("Other peers have not yet accepted this new user.\n" +
|
|
"Unfortunately it is not possible to save profile\n" +
|
|
"or send any posts in this state.\n\n" +
|
|
"Please wait a few minutes to continue.\n\n" +
|
|
"The 'Save Changes' will be automatically enabled\n" +
|
|
"when the process completes. (I promise this is\n"+
|
|
"the last time you will have to wait before using\n" +
|
|
"twister).\n\n" +
|
|
"Tip: choose your avatar in the meantime!");
|
|
newUserWarnDisplayed = true;
|
|
}
|
|
setTimeout("verifyUserAlreadyInBlockchain()", 5000);
|
|
}
|
|
}, {} );
|
|
}
|