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 @@
-