tanabata/web/public/js/tfm-management.js

253 lines
6.5 KiB
JavaScript

var sasahyou = null, sappyou = null, shoppyou = null;
if (localStorage["sasahyou"] != null) {
sasahyou = JSON.parse(localStorage["sasahyou"]);
}
if (localStorage["sappyou"] != null) {
sappyou = JSON.parse(localStorage["sappyou"]);
}
if (localStorage["shoppyou"] != null) {
shoppyou = JSON.parse(localStorage["shoppyou"]);
}
var sasahyou_mts = 0, sappyou_mts = 0, shoppyou_mts = 0;
if (localStorage["sasahyou_mts"] != null) {
sasahyou_mts = parseInt(localStorage["sasahyou_mts"]);
}
if (localStorage["sappyou_mts"] != null) {
sappyou_mts = parseInt(localStorage["sappyou_mts"]);
}
if (localStorage["shoppyou_mts"] != null) {
shoppyou_mts = parseInt(localStorage["shoppyou_mts"]);
}
var current_sasa = null, current_tanzaku = null;
var current_sasa_index = -1;
function sasahyou_load() {
let db_info = tdb_query("$TFM", 0, "");
if (db_info == null || !db_info.status) {
alert("Failed to fetch TFM database");
throw new Error("Failed to fetch TFM database");
}
if (sasahyou == null || sasahyou_mts !== db_info.data[0].sasahyou.mts) {
let resp = tdb_query("$TFM", 16, "");
if (resp == null || !resp.status) {
alert("Failed to get sasahyou");
throw new Error("Failed to get sasahyou");
}
sasahyou = resp.data;
sasahyou_mts = db_info.data[0].sasahyou.mts;
localStorage["sasahyou"] = JSON.stringify(sasahyou);
localStorage["sasahyou_mts"] = sasahyou_mts;
}
}
function sappyou_load() {
let db_info = tdb_query("$TFM", 0, "");
if (db_info == null || !db_info.status) {
alert("Failed to fetch TFM database");
throw new Error("Failed to fetch TFM database");
}
if (sappyou == null || sappyou_mts !== db_info.data[0].sappyou.mts) {
let resp = tdb_query("$TFM", 32, "");
if (resp == null || !resp.status) {
alert("Failed to get sappyou");
throw new Error("Failed to get sappyou");
}
sappyou = resp.data;
sappyou_mts = db_info.data[0].sappyou.mts;
localStorage["sappyou"] = JSON.stringify(sappyou);
localStorage["sappyou_mts"] = sappyou_mts;
}
}
function shoppyou_load() {
let db_info = tdb_query("$TFM", 0, "");
if (db_info == null || !db_info.status) {
alert("Failed to fetch TFM database");
throw new Error("Failed to fetch TFM database");
}
if (shoppyou == null || shoppyou_mts !== db_info.data[0].shoppyou.mts) {
let resp = tdb_query("$TFM", 8, "");
if (resp == null || !resp.status) {
alert("Failed to get shoppyou");
throw new Error("Failed to get shoppyou");
}
shoppyou = resp.data;
shoppyou_mts = db_info.data[0].shoppyou.mts;
localStorage["shoppyou"] = JSON.stringify(shoppyou);
localStorage["shoppyou_mts"] = shoppyou_mts;
}
}
function menu_view_file_open() {
$(".selected").removeClass("selected");
$(".menu-wrapper").css("display", "flex");
$("#menu-file-view").css("display", "flex");
$("#preview").attr("src", "/preview/" + current_sasa.path);
$("#name").val(decodeURI(current_sasa.path));
$(".list-item").css("display", "");
$("#btn-full").attr("href", "/files/" + current_sasa.path);
let resp = tdb_query("$TFM", 24, '' + current_sasa.id);
if (!resp.status) {
alert("Something went wrong!");
return;
}
resp.data.forEach(tanzaku => {
$(`#t${tanzaku.id}`).addClass("selected");
});
if ($("#selection-filter")[0].checked) {
$(".list-item:not(.selected)").css("display", "none");
} else {
$(".list-item:not(.selected)").css("display", "block");
}
}
function menu_view_tag_open() {
$(function () {
$(".thumb").Lazy({
scrollDirection: "vertical",
effect: "fadeIn",
visibleOnly: true,
appendScroll: $(".list")[0],
});
});
$(".selected").removeClass("selected");
$(".menu-wrapper").css("display", "flex");
$("#menu-view").css("display", "flex");
$("#name").val(decodeURI(current_tanzaku.name));
let resp = tdb_query("$TFM", 40, '' + current_tanzaku.id);
if (!resp.status) {
alert("Something went wrong!");
return;
}
resp.data.forEach(sasa => {
$(`#s${sasa.id}`).addClass("selected");
});
if ($("#selection-filter")[0].checked) {
$(".list-item:not(.selected)").css("display", "none");
} else {
$(".list-item:not(.selected)").css("display", "block");
}
}
function menu_view_close() {
$(".menu-wrapper").css("display", "none");
$("#menu-view").css("display", "none");
$("#menu-file-view").css("display", "none");
$(".list-item").removeClass("selected").css("display", "");
$("#name").val("");
$(".menu #text-filter").val("");
current_sasa_index = -1;
}
function menu_add_open() {
$(".menu-wrapper").css("display", "flex");
$("#menu-add").css("display", "flex");
}
function menu_add_close() {
$(".menu-wrapper").css("display", "none");
$("#menu-add").css("display", "none");
$("#new-name").val("");
$("#new-description").val("");
}
function file_next() {
if (current_sasa_index === sasahyou.length - 1) {
menu_view_close();
return;
}
current_sasa_index++;
current_sasa = sasahyou[current_sasa_index];
menu_view_file_open();
}
function file_prev() {
if (current_sasa_index === 0) {
menu_view_close();
return;
}
current_sasa_index--;
current_sasa = sasahyou[current_sasa_index];
menu_view_file_open();
}
$(document).keyup(function (e) {
switch (e.key) {
case "Esc":
case "Escape":
$(".selected").removeClass("selected");
break;
case "Left":
case "ArrowLeft":
if (current_sasa_index >= 0) {
file_prev();
}
break;
case "Right":
case "ArrowRight":
if (current_sasa_index >= 0) {
file_next();
}
break;
default:
return;
}
});
$(document).on("selectstart", ".sasa,.tanzaku", function (e) {
e.preventDefault();
});
$(document).on("click", ".item", function (e) {
let wasSelected = $(this).hasClass("selected");
if (!e.ctrlKey) {
$(".item.selected").removeClass("selected");
}
if (wasSelected) {
$(this).removeClass("selected");
} else {
$(this).addClass("selected");
}
});
$(document).on("click", "#btn-new", function (e) {
e.preventDefault();
menu_add_open();
});
$(document).on("click", ".list-item", function (e) {
if ($(this).hasClass("selected")) {
$(this).removeClass("selected");
} else {
$(this).addClass("selected");
}
});
$(document).on("click", "#selection-filter", function (e) {
if (this.checked) {
$(".list-item:not(.selected)").css("display", "none");
} else {
$(".list-item:not(.selected)").css("display", "block");
}
});
$(document).on("click", "#btn-close", function (e) {
e.preventDefault();
menu_view_close();
});
$(document).on("click", "#btn-reset", function (e) {
e.preventDefault();
menu_add_close();
});
$(document).on("click", "#file-next", function (e) {
e.preventDefault();
file_next();
});
$(document).on("click", "#file-prev", function (e) {
e.preventDefault();
file_prev();
});