mirror of
https://github.com/openvk/openvk
synced 2024-11-14 19:19:14 +03:00
114 lines
3.7 KiB
JavaScript
114 lines
3.7 KiB
JavaScript
function humanFileSize(bytes, si) {
|
|
var thresh = si ? 1000 : 1024;
|
|
if(Math.abs(bytes) < thresh) {
|
|
return bytes + ' B';
|
|
}
|
|
var units = si
|
|
? ['kB','MB','GB','TB','PB','EB','ZB','YB']
|
|
: ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];
|
|
var u = -1;
|
|
do {
|
|
bytes /= thresh;
|
|
++u;
|
|
} while(Math.abs(bytes) >= thresh && u < units.length - 1);
|
|
return bytes.toFixed(1)+' '+units[u];
|
|
}
|
|
|
|
function trim(string) {
|
|
var newStr = string.substring(0, 10);
|
|
if(newStr.length !== string.length)
|
|
newStr += "…";
|
|
|
|
return newStr;
|
|
}
|
|
|
|
function handleUpload() {
|
|
console.warn("блять...");
|
|
|
|
u(".postFileSel").not("#" + this.id).each(input => input.value = null);
|
|
|
|
var indicator = u(".post-upload");
|
|
var file = this.files[0];
|
|
if(typeof file === "undefined") {
|
|
indicator.attr("style", "display: none;");
|
|
} else {
|
|
u("span", indicator.nodes[0]).text(trim(file.name) + " (" + humanFileSize(file.size, false) + ")");
|
|
indicator.attr("style", "display: block;");
|
|
}
|
|
}
|
|
|
|
function initGraffiti() {
|
|
let canvas = null;
|
|
let msgbox = MessageBox("Нарисовать граффити", "<div id='ovkDraw'></div>", ["Сохранить", "Отменить"], [function() {
|
|
canvas.getImage({includeWatermark: false}).toBlob(blob => {
|
|
let fName = "Graffiti-" + Math.ceil(performance.now()).toString() + ".jpeg";
|
|
let image = new File([blob], fName, {type: "image/jpeg", lastModified: new Date().getTime()});
|
|
let trans = new DataTransfer();
|
|
trans.items.add(image);
|
|
|
|
let fileSelect = document.querySelector("input[name='_pic_attachment']");
|
|
fileSelect.files = trans.files;
|
|
|
|
u(fileSelect).trigger("change");
|
|
u("#write textarea").trigger("focusin");
|
|
}, "image/jpeg", 0.92);
|
|
|
|
canvas.teardown();
|
|
}, function() {
|
|
canvas.teardown();
|
|
}]);
|
|
|
|
let watermarkImage = new Image();
|
|
watermarkImage.src = "/assets/packages/static/openvk/img/logo_watermark.gif";
|
|
|
|
msgbox.attr("style", "width: 750px;");
|
|
canvas = LC.init(document.querySelector("#ovkDraw"), {
|
|
backgroundColor: "#fff",
|
|
imageURLPrefix: "/assets/packages/static/openvk/js/node_modules/literallycanvas/lib/img",
|
|
watermarkImage: watermarkImage,
|
|
imageSize: {
|
|
width: 640,
|
|
height: 480
|
|
}
|
|
});
|
|
}
|
|
|
|
u("#wall-post-input").on("paste", function(e) {
|
|
if(e.clipboardData.files.length === 1) {
|
|
var input = u("input[name=_pic_attachment]").nodes[0];
|
|
input.files = e.clipboardData.files;
|
|
|
|
u(input).trigger("change");
|
|
}
|
|
});
|
|
|
|
u(".post-like-button").on("click", function(e) {
|
|
e.preventDefault();
|
|
|
|
var thisBtn = u(this).first();
|
|
var link = u(this).attr("href");
|
|
var heart = u(".heart", thisBtn);
|
|
var counter = u(".likeCnt", thisBtn);
|
|
var likes = counter.text();
|
|
var isLiked = heart.attr("style") === 'opacity: 1;';
|
|
|
|
ky(link);
|
|
heart.attr("style", isLiked ? 'opacity: 0.4;' : 'opacity: 1;');
|
|
counter.text(parseInt(likes) + (isLiked ? -1 : 1));
|
|
|
|
return false;
|
|
});
|
|
|
|
u("#wall-post-input").on("input", function(e) {
|
|
var boost = 5;
|
|
var textArea = e.target;
|
|
textArea.style.height = "5px";
|
|
var newHeight = textArea.scrollHeight;
|
|
textArea.style.height = newHeight + boost;
|
|
return;
|
|
|
|
// revert to original size if it is larger (possibly changed by user)
|
|
// textArea.style.height = (newHeight > originalHeight ? (newHeight + boost) : originalHeight) + "px";
|
|
});
|
|
|
|
u(".postFileSel").on("change", handleUpload);
|