diff --git a/web/public/css/tfm.css b/web/public/css/tfm.css index c3788f2..039144f 100644 --- a/web/public/css/tfm.css +++ b/web/public/css/tfm.css @@ -46,7 +46,7 @@ main { } .menu { - display: none; + display: flex; flex-direction: column; justify-content: flex-start; background-color: #eee; @@ -60,7 +60,7 @@ main { overflow: hidden; } -#menu-file-view { +#menu-file-view .menu { margin: 0; width: 100%; max-width: 120vmin; diff --git a/web/public/js/tfm-files.js b/web/public/js/tfm-files.js index 8ab3f09..d375468 100644 --- a/web/public/js/tfm-files.js +++ b/web/public/js/tfm-files.js @@ -9,76 +9,15 @@ $(window).on("load", function () { }); sasahyou_load(); sasahyou.forEach((sasa) => { - $(".contents-wrapper").append(`
`); + $(".contents-wrapper").append(`
`); + $("#menu-tag-view .list").append(`
`); }); sappyou_load(); sappyou.forEach((tanzaku) => { - $(".list").append(`
${tanzaku.name}
`); + $("#menu-file-view .list").append(`
${tanzaku.name}
`); }); }); -$(document).on("dblclick", ".item", function (e) { - e.preventDefault(); - let id = parseInt($(this).attr("id").slice(1)); - 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("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("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 = $(`#t${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("id").slice(1))) { - console.log("ERROR: failed to add kazari: " + current_sasa.id + '-' + $(element).attr("id").slice(1)); - } - }); - menu_view_close(); -}); - $(document).on("submit", "#menu-add form", function (e) { e.preventDefault(); let resp = tdb_query("$TFM", 18, $("#new-name").val()); diff --git a/web/public/js/tfm-management.js b/web/public/js/tfm-management.js index 2494d33..479e8b0 100644 --- a/web/public/js/tfm-management.js +++ b/web/public/js/tfm-management.js @@ -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(); diff --git a/web/public/js/tfm-tags.js b/web/public/js/tfm-tags.js index 8cfebd8..5ecf3d1 100644 --- a/web/public/js/tfm-tags.js +++ b/web/public/js/tfm-tags.js @@ -1,15 +1,16 @@ $(window).on("load", function () { sappyou_load(); sappyou.forEach((tanzaku) => { - $(".contents-wrapper").append(`
${tanzaku.name}
`); + $(".contents-wrapper").append(`
${tanzaku.name}
`); + $("#menu-file-view .list").append(`
${tanzaku.name}
`); }); sasahyou_load(); sasahyou.forEach((sasa) => { - $(".list").append(`
`); + $("#menu-tag-view .list").append(`
`); }); }); -$(document).on("input", "#text-filter", function (e) { +$(document).on("input", "#text-filter-all", function (e) { let filter = $(this).val().toLowerCase(); let unfiltered = $(".item"); if (filter === "") { @@ -26,58 +27,6 @@ $(document).on("input", "#text-filter", function (e) { }); }); -$(document).on("dblclick", ".item", function (e) { - e.preventDefault(); - let id = parseInt($(this).attr("id").slice(1)); - sappyou.every(tanzaku => { - if (tanzaku.id === id) { - current_tanzaku = tanzaku; - return false; - } - return true; - }); - menu_view_tag_open(); -}); - -$(document).on("submit", "#menu-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 = $(`#s${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("id").slice(1) + ' ' + current_tanzaku.id)) { - console.log("ERROR: failed to add kazari: " + $(element).attr("id").slice(1) + '-' + current_tanzaku.id); - } - }); - menu_add_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("submit", "#menu-add form", function (e) { e.preventDefault(); let resp = tdb_query("$TFM", 34, $("#new-name").val() + '\n' + $("#new-description").val()); diff --git a/web/public/tfm/files.html b/web/public/tfm/files.html index 8a87e87..53074dd 100644 --- a/web/public/tfm/files.html +++ b/web/public/tfm/files.html @@ -36,8 +36,8 @@ -