feat(web): new menu handling supports two view menus at once

This commit is contained in:
2023-02-03 22:51:35 +03:00
parent 371b091c10
commit 223e174568
6 changed files with 274 additions and 181 deletions
+177 -32
View File
@@ -20,6 +20,7 @@ if (localStorage["shoppyou_mts"] != null) {
}
var current_sasa = null, current_tanzaku = null;
var current_sasa_index = -1;
var menu_count = 0;
function sasahyou_load() {
let db_info = tdb_query("$TFM", 0, "");
@@ -79,12 +80,15 @@ function shoppyou_load() {
}
function menu_view_file_open() {
$(".selected").removeClass("selected");
$(".menu-wrapper").css("display", "flex");
if (menu_count > 1) {
return;
}
menu_count++;
$("#menu-file-view .selected").removeClass("selected");
$("#menu-file-view").css("display", "flex");
$("#preview").attr("src", "/preview/" + current_sasa.path);
$("#name").val(decodeURI(current_sasa.path));
$(".list-item").css("display", "");
$("#file-name").val(decodeURI(current_sasa.path));
$("#menu-file-view .list-item").css("display", "");
$("#btn-full").attr("href", "/files/" + current_sasa.path);
let resp = tdb_query("$TFM", 24, '' + current_sasa.id);
if (!resp.status) {
@@ -92,53 +96,63 @@ function menu_view_file_open() {
return;
}
resp.data.forEach(tanzaku => {
$(`#t${tanzaku.id}`).addClass("selected");
$(`.list-item[tid="${tanzaku.id}"]`).addClass("selected");
});
if ($("#selection-filter")[0].checked) {
$(".list-item:not(.selected)").css("display", "none");
if ($("#file-selection-filter")[0].checked) {
$("#menu-file-view .list-item:not(.selected)").css("display", "none");
} else {
$(".list-item:not(.selected)").css("display", "block");
$("#menu-file-view .list-item:not(.selected)").css("display", "block");
}
}
function menu_view_tag_open() {
if (menu_count > 1) {
return;
}
menu_count++;
$(function () {
$(".thumb").Lazy({
$("#menu-tag-view .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));
$("#menu-tag-view .selected").removeClass("selected");
$("#menu-tag-view").css("display", "flex");
$("#menu-tag-view .list-item").css("display", "");
$("#tag-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");
$(`.list-item[sid="${sasa.id}"]`).addClass("selected");
});
if ($("#selection-filter")[0].checked) {
$(".list-item:not(.selected)").css("display", "none");
if ($("#tag-selection-filter")[0].checked) {
$("#menu-tag-view .list-item:not(.selected)").css("display", "none");
} else {
$(".list-item:not(.selected)").css("display", "block");
$("#menu-tag-view .list-item:not(.selected)").css("display", "block");
}
}
function menu_view_close() {
$(".menu-wrapper").css("display", "none");
$("#menu-view").css("display", "none");
function menu_view_file_close() {
menu_count--;
$("#menu-file-view").css("display", "none");
$(".list-item").removeClass("selected").css("display", "");
$("#name").val("");
$(".menu #text-filter").val("");
$("#menu-file-view .list-item").removeClass("selected").css("display", "");
$("#file-name").val("");
$("#text-filter").val("");
current_sasa_index = -1;
}
function menu_view_tag_close() {
menu_count--;
$("#menu-tag-view").css("display", "none");
$("#menu-tag-view .list-item").removeClass("selected").css("display", "");
$("#tag-name").val("");
}
function menu_add_open() {
$(".menu-wrapper").css("display", "flex");
$("#menu-add").css("display", "flex");
@@ -153,21 +167,23 @@ function menu_add_close() {
function file_next() {
if (current_sasa_index === sasahyou.length - 1) {
menu_view_close();
menu_view_file_close();
return;
}
current_sasa_index++;
current_sasa = sasahyou[current_sasa_index];
menu_count--;
menu_view_file_open();
}
function file_prev() {
if (current_sasa_index === 0) {
menu_view_close();
menu_view_file_close();
return;
}
current_sasa_index--;
current_sasa = sasahyou[current_sasa_index];
menu_count--;
menu_view_file_open();
}
@@ -210,6 +226,34 @@ $(document).on("click", ".item", function (e) {
}
});
$(document).on("dblclick", ".sasa", function (e) {
e.preventDefault();
let id = parseInt($(this).attr("sid"));
current_sasa_index = 0;
sasahyou.every(sasa => {
if (sasa.id === id) {
current_sasa = sasa;
return false;
}
current_sasa_index++;
return true;
});
menu_view_file_open();
});
$(document).on("dblclick", ".tanzaku", function (e) {
e.preventDefault();
let id = parseInt($(this).attr("tid"));
sappyou.every(tanzaku => {
if (tanzaku.id === id) {
current_tanzaku = tanzaku;
return false;
}
return true;
});
menu_view_tag_open();
});
$(document).on("click", "#btn-new", function (e) {
e.preventDefault();
menu_add_open();
@@ -223,24 +267,125 @@ $(document).on("click", ".list-item", function (e) {
}
});
$(document).on("click", "#selection-filter", function (e) {
$(document).on("click", "#file-selection-filter", function (e) {
let notselected = $("#menu-file-view .list-item:not(.selected)");
if (this.checked) {
$(".list-item:not(.selected)").css("display", "none");
notselected.css("display", "none");
} else {
$(".list-item:not(.selected)").css("display", "block");
notselected.css("display", "block");
}
});
$(document).on("click", "#btn-close", function (e) {
e.preventDefault();
menu_view_close();
$(document).on("click", "#tag-selection-filter", function (e) {
let notselected = $("#menu-tag-view .list-item:not(.selected)");
if (this.checked) {
notselected.css("display", "none");
} else {
notselected.css("display", "block");
}
});
$(document).on("click", "#btn-reset", function (e) {
$(document).on("input", "#text-filter", function (e) {
let filter = $(this).val().toLowerCase();
let unfiltered;
if ($("#selection-filter")[0].checked) {
unfiltered = $(".list-item.selected");
} else {
unfiltered = $(".list-item");
}
if (filter === "") {
unfiltered.css("display", "block");
return;
}
unfiltered.each((index, element) => {
let current = $(element);
if (current.text().toLowerCase().includes(filter)) {
current.css("display", "block");
} else {
current.css("display", "none");
}
});
});
$(document).on("reset", "#menu-file-view form", function (e) {
e.preventDefault();
menu_view_file_close();
});
$(document).on("reset", "#menu-tag-view form", function (e) {
e.preventDefault();
menu_view_tag_close();
});
$(document).on("reset", "#menu-add form", function (e) {
e.preventDefault();
menu_add_close();
});
$(document).on("submit", "#menu-file-view form", function (e) {
e.preventDefault();
let resp = tdb_query("$TFM", 24, '' + current_sasa.id);
if (!resp.status) {
alert("Something went wrong!");
return;
}
resp.data.forEach(tanzaku => {
let current = $(`.list-item[tid="${tanzaku.id}"]`);
if (current.hasClass("selected")) {
current.removeClass("selected");
} else {
if (!tdb_query("$TFM", 9, '' + current_sasa.id + ' ' + tanzaku.id).status) {
console.log("ERROR: failed to remove kazari: " + current_sasa.id + '-' + tanzaku.id);
}
}
});
$(".tanzaku.selected").each(function (index, element) {
if (!tdb_query("$TFM", 10, '' + current_sasa.id + ' ' + $(element).attr("tid"))) {
console.log("ERROR: failed to add kazari: " + current_sasa.id + '-' + $(element).attr("tid"));
}
});
menu_view_file_close();
});
$(document).on("submit", "#menu-tag-view form", function (e) {
e.preventDefault();
let resp = tdb_query("$TFM", 40, '' + current_tanzaku.id);
if (!resp.status) {
alert("Something went wrong!");
return;
}
resp.data.forEach(sasa => {
let current = $(`.list-item[sid="${sasa.id}"]`);
if (current.hasClass("selected")) {
current.removeClass("selected");
} else {
if (!tdb_query("$TFM", 9, '' + sasa.id + ' ' + current_tanzaku.id).status) {
console.log("ERROR: failed to remove kazari: " + sasa.id + '-' + current_tanzaku.id);
}
}
});
$(".sasa.selected").each(function (index, element) {
if (!tdb_query("$TFM", 10, '' + $(element).attr("sid") + ' ' + current_tanzaku.id)) {
console.log("ERROR: failed to add kazari: " + $(element).attr("sid") + '-' + current_tanzaku.id);
}
});
menu_view_tag_close();
});
$(document).on("click", "#btn-remove", function (e) {
e.preventDefault();
if (!confirm("This tag will be removed permanently. Are you sure?")) {
return;
}
let resp = tdb_query("$TFM", 33, '' + current_tanzaku.id);
if (!resp.status) {
alert("Something went wrong!");
return;
}
menu_add_close();
location.reload(true);
});
$(document).on("click", "#file-next", function (e) {
e.preventDefault();
file_next();