127 lines
4.5 KiB
JavaScript
127 lines
4.5 KiB
JavaScript
//アンケートのトグル
|
|
function pollToggle() {
|
|
if ($("#poll").hasClass("hide")) {
|
|
$("#right-side").show()
|
|
$("#right-side").css("width", "300px")
|
|
$("#left-side").css("width", "calc(100% - 300px)")
|
|
var width = localStorage.getItem("postbox-width");
|
|
if (width) {
|
|
width = width.replace("px", "") * 1 + 300
|
|
} else {
|
|
width = 600
|
|
}
|
|
$("#post-box").css("width", width + "px")
|
|
$("#poll").removeClass("hide")
|
|
$("#pollsta").text(lang.lang_yesno)
|
|
} else {
|
|
$("#right-side").hide()
|
|
$("#left-side").css("width", "100%")
|
|
$("#right-side").css("width", "300px")
|
|
var width = localStorage.getItem("postbox-width");
|
|
if (width) {
|
|
width = width.replace("px", "") * 1
|
|
} else {
|
|
width = 300
|
|
}
|
|
$("#post-box").css("width", width + "px")
|
|
$("#emoji").addClass("hide")
|
|
$("#poll").addClass("hide")
|
|
$("#pollsta").text(lang.lang_no)
|
|
}
|
|
}
|
|
function pollProviderCk() {
|
|
$(".poll-provider").addClass("hide");
|
|
$("#" + $("#poll-sel").val()).removeClass("hide");
|
|
}
|
|
/*
|
|
function pollAddtime(num){
|
|
var last=$("#expires_in").val();
|
|
last=last*1-(num*-1);
|
|
$("#expires_in").val(last);
|
|
pollCalc();
|
|
}
|
|
*/
|
|
function pollCalc() {
|
|
var days = $("#days_poll").val();
|
|
var hrs = $("#hours_poll").val();
|
|
var mins = $("#mins_poll").val();
|
|
console.log("Poll calc:" + days * 86400 + hrs * 3600 + mins * 60)
|
|
return days * 86400 + hrs * 3600 + mins * 60;
|
|
|
|
}
|
|
//Vote
|
|
function voteSelMastodon(acct_id, id, to, mul) {
|
|
if ($('.vote_' + acct_id + '_' + id + '_' + to).hasClass("sel")) {
|
|
$('.vote_' + acct_id + '_' + id + '_' + to).css("background-color", "transparent")
|
|
$('.vote_' + acct_id + '_' + id + '_' + to).removeClass("sel");
|
|
} else {
|
|
if (!mul) {
|
|
$('.vote_' + acct_id + '_' + id + ' div').each(function (i, elem) {
|
|
if (i == to) {
|
|
$(this).css("background-color", "var(--emphasized)");
|
|
$(this).addClass("sel");
|
|
} else {
|
|
$(this).css("background-color", "transparent")
|
|
$(this).removeClass("sel");
|
|
}
|
|
});
|
|
} else {
|
|
$('.vote_' + acct_id + '_' + id + '_' + to).css("background-color", "var(--emphasized)")
|
|
$('.vote_' + acct_id + '_' + id + '_' + to).addClass("sel");
|
|
}
|
|
}
|
|
|
|
}
|
|
function voteMastodon(acct_id, id) {
|
|
var choice = [];
|
|
$('.vote_' + acct_id + '_' + id + ' div').each(function (i, elem) {
|
|
if ($(this).hasClass("sel")) {
|
|
choice.push(i + "");
|
|
}
|
|
});
|
|
var domain = localStorage.getItem("domain_" + acct_id);
|
|
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
|
var start = "https://" + domain + "/api/v1/polls/" + id + "/votes";
|
|
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
|
return false;
|
|
}
|
|
var httpreq = new XMLHttpRequest();
|
|
httpreq.open('POST', start, true);
|
|
httpreq.setRequestHeader('Content-Type', 'application/json');
|
|
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
|
httpreq.responseType = "json";
|
|
httpreq.send(JSON.stringify({ choices: choice }));
|
|
httpreq.onreadystatechange = function () {
|
|
voteMastodonrefresh(acct_id, id)
|
|
}
|
|
}
|
|
function showResult(acct_id, id) {
|
|
$('.vote_' + acct_id + '_' + id + '_result').toggleClass("hide")
|
|
}
|
|
function voteMastodonrefresh(acct_id, id) {
|
|
var datetype = localStorage.getItem("datetype");
|
|
if (!datetype) {
|
|
datetype = "absolute";
|
|
}
|
|
var httpreqd = new XMLHttpRequest();
|
|
var domain = localStorage.getItem("domain_" + acct_id);
|
|
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
|
var start = "https://" + domain + "/api/v1/polls/" + id;
|
|
httpreqd.open('GET', start, true);
|
|
httpreqd.setRequestHeader('Content-Type', 'application/json');
|
|
httpreqd.setRequestHeader('Authorization', 'Bearer ' + at);
|
|
httpreqd.responseType = 'json';
|
|
httpreqd.send();
|
|
httpreqd.onreadystatechange = function () {
|
|
if (httpreqd.readyState == 4) {
|
|
if(this.status!==200){ setLog(start, this.status, this.response); }
|
|
var json = httpreqd.response;
|
|
console.log(["Refresh vote", json]);
|
|
if (!json) {
|
|
return false;
|
|
}
|
|
var poll = pollParse(json, acct_id)
|
|
$('.vote_' + acct_id + '_' + json.id).html(poll)
|
|
}
|
|
}
|
|
} |