feat(web): add database management interface

This commit is contained in:
2023-02-15 15:19:08 +03:00
parent fb56cd6076
commit ba5418dc39
16 changed files with 561 additions and 26 deletions
+8
View File
@@ -0,0 +1,8 @@
db_name = localStorage["db_name"];
if (db_name == null) {
location.href = "/tdbms/settings";
}
$(window).on("load", function (e) {
$(".db_name").text(db_name);
});
+9
View File
@@ -0,0 +1,9 @@
$(window).on("load", function (e) {
sappyou_load();
sappyou.every(tanzaku => {
$("#content").append(
`<tr><td>${tanzaku.id}</td><td>${new Date(tanzaku.cts * 1000).toLocaleDateString()} ${new Date(tanzaku.cts * 1000).toLocaleTimeString()}</td><td>${new Date(tanzaku.mts * 1000).toLocaleDateString()} ${new Date(tanzaku.mts * 1000).toLocaleTimeString()}</td><td>${tanzaku.name}</td><td>${tanzaku.desc}</td></tr>`
);
return true;
});
});
+9
View File
@@ -0,0 +1,9 @@
$(window).on("load", function (e) {
sasahyou_load();
sasahyou.every(sasa => {
$("#content").append(
`<tr><td>${sasa.id}</td><td>${new Date(sasa.cts * 1000).toLocaleDateString()} ${new Date(sasa.cts * 1000).toLocaleTimeString()}</td><td>${sasa.path}</td></tr>`
);
return true;
});
});
+68
View File
@@ -0,0 +1,68 @@
var db_name = localStorage["db_name"];
function settings_load() {
if (db_name != null) {
$("#db_name").val(db_name);
} else {
$("#db_name").val("");
}
if (sort_sasa != null) {
if (sort_sasa[0] === '-') {
$("#sasa-reverse").prop("checked", true);
sort_sasa = sort_sasa.slice(1);
}
$(`#sasa-by-${sort_sasa}`).prop("checked", true);
}
if (sort_tanzaku != null) {
if (sort_tanzaku[0] === '-') {
$("#tanzaku-reverse").prop("checked", true);
sort_tanzaku = sort_tanzaku.slice(1);
}
$(`#tanzaku-by-${sort_tanzaku}`).prop("checked", true);
}
}
$(window).on("load", function () {
settings_load();
if (db_name != null) {
$(".db_name").text(db_name);
}
let resp = tdb_query();
if (!resp.status) {
alert("Failed to fetch databases");
throw new Error("Failed to fetch databases");
}
resp.data.every(tdb => {
$("#db_name").append($("<option>", {
value: tdb.name,
text: tdb.name
}));
return true;
});
});
$(document).on("reset", "#settings", function (e) {
e.preventDefault();
settings_load();
});
$(document).on("submit", "#settings", function (e) {
e.preventDefault();
let db_name_input = $("#db_name");
let db_name_val = db_name_input.val();
if (db_name_val !== db_name) {
localStorage["db_name"] = db_name = db_name_val;
localStorage["sasahyou_mts"] = sasahyou_mts = 0;
localStorage["sappyou_mts"] = sappyou_mts = 0;
localStorage["shoppyou_mts"] = shoppyou_mts = 0;
}
let sort_s = ($("#sasa-reverse")[0].checked ? '-' : '') + $("input[type=radio][name=sort-sasa]:checked").attr("id").slice(8);
let sort_t = ($("#tanzaku-reverse")[0].checked ? '-' : '') + $("input[type=radio][name=sort-tanzaku]:checked").attr("id").slice(11);
if (sort_s !== sort_sasa && '!' + sort_s !== sort_sasa) {
localStorage["sort_sasa"] = sort_sasa = '!' + sort_s;
}
if (sort_t !== sort_tanzaku && '!' + sort_t !== sort_tanzaku) {
localStorage["sort_tanzaku"] = sort_tanzaku = '!' + sort_t;
}
alert("Successfully updated settings!");
});
+9
View File
@@ -0,0 +1,9 @@
$(window).on("load", function (e) {
shoppyou_load();
shoppyou.every(kazari => {
$("#content").append(
`<tr><td>${new Date(kazari.cts * 1000).toLocaleDateString()} ${new Date(kazari.cts * 1000).toLocaleTimeString()}</td><td>${kazari.sasa_id}</td><td>${kazari.tanzaku_id}</td></tr>`
);
return true;
});
});
+16
View File
@@ -0,0 +1,16 @@
$(window).on("load", function (e) {
let resp = tdb_query(db_name);
if (!resp.status) {
alert("Failed to fetch database");
throw new Error("Failed to fetch database");
}
$("#stats-sasahyou").append(
`<tr><td>${new Date(resp.data[0].sasahyou.cts * 1000).toLocaleDateString()} ${new Date(resp.data[0].sasahyou.cts * 1000).toLocaleTimeString()}</td><td>${new Date(resp.data[0].sasahyou.mts * 1000).toLocaleDateString()} ${new Date(resp.data[0].sasahyou.mts * 1000).toLocaleTimeString()}</td><td>${resp.data[0].sasahyou.size}</td><td>${resp.data[0].sasahyou.holes}</td></tr>`
);
$("#stats-sappyou").append(
`<tr><td>${new Date(resp.data[0].sappyou.cts * 1000).toLocaleDateString()} ${new Date(resp.data[0].sappyou.cts * 1000).toLocaleTimeString()}</td><td>${new Date(resp.data[0].sappyou.mts * 1000).toLocaleDateString()} ${new Date(resp.data[0].sappyou.mts * 1000).toLocaleTimeString()}</td><td>${resp.data[0].sappyou.size}</td><td>${resp.data[0].sappyou.holes}</td></tr>`
);
$("#stats-shoppyou").append(
`<tr><td>${new Date(resp.data[0].shoppyou.cts * 1000).toLocaleDateString()} ${new Date(resp.data[0].shoppyou.cts * 1000).toLocaleTimeString()}</td><td>${new Date(resp.data[0].shoppyou.mts * 1000).toLocaleDateString()} ${new Date(resp.data[0].shoppyou.mts * 1000).toLocaleTimeString()}</td><td>${resp.data[0].shoppyou.size}</td><td>${resp.data[0].shoppyou.holes}</td></tr>`
);
});
+14 -14
View File
@@ -2,8 +2,8 @@ var db_name = null;
var sasahyou = localStorage["sasahyou"],
sappyou = localStorage["sappyou"],
shoppyou = localStorage["shoppyou"];
var sort_files = localStorage["sort_files"],
sort_tags = localStorage["sort_tags"];
var sort_sasa = localStorage["sort_sasa"],
sort_tanzaku = localStorage["sort_tanzaku"];
if (sasahyou != null) {
sasahyou = JSON.parse(sasahyou);
}
@@ -25,11 +25,11 @@ if (sappyou_mts != null) {
if (shoppyou_mts != null) {
shoppyou_mts = parseInt(shoppyou_mts);
}
if (sort_files == null) {
localStorage["sort_files"] = sort_files = "id";
if (sort_sasa == null) {
localStorage["sort_sasa"] = sort_sasa = "id";
}
if (sort_tags == null) {
localStorage["sort_tags"] = sort_tags = "id";
if (sort_tanzaku == null) {
localStorage["sort_tanzaku"] = sort_tanzaku = "id";
}
function tdb_query(trdb, trc, trb) {
@@ -81,8 +81,8 @@ function sasahyou_load() {
sasahyou = resp.data;
localStorage["sasahyou_mts"] = sasahyou_mts = db_info.data[0].sasahyou.mts;
localStorage["sasahyou"] = JSON.stringify(sasahyou);
if (sort_files[0] !== '!') {
sort_files = '!' + sort_files;
if (sort_sasa[0] !== '!') {
sort_sasa = '!' + sort_sasa;
}
}
sasahyou_sort();
@@ -103,8 +103,8 @@ function sappyou_load() {
sappyou = resp.data;
localStorage["sappyou_mts"] = sappyou_mts = db_info.data[0].sappyou.mts;
localStorage["sappyou"] = JSON.stringify(sappyou);
if (sort_tags[0] !== '!') {
sort_tags = '!' + sort_tags;
if (sort_tanzaku[0] !== '!') {
sort_tanzaku = '!' + sort_tanzaku;
}
}
sappyou_sort();
@@ -129,10 +129,10 @@ function shoppyou_load() {
}
function sasahyou_sort() {
if (sort_files[0] !== '!') {
if (sort_sasa[0] !== '!') {
return;
}
let sort = localStorage["sort_files"] = sort_files = sort_files.slice(1);
let sort = localStorage["sort_sasa"] = sort_sasa = sort_sasa.slice(1);
let order = 1;
if (sort[0] === '-') {
order = -1;
@@ -152,10 +152,10 @@ function sasahyou_sort() {
}
function sappyou_sort() {
if (sort_tags[0] !== '!') {
if (sort_tanzaku[0] !== '!') {
return;
}
let sort = localStorage["sort_tags"] = sort_tags = sort_tags.slice(1);
let sort = localStorage["sort_tanzaku"] = sort_tanzaku = sort_tanzaku.slice(1);
let order = 1;
if (sort[0] === '-') {
order = -1;
+20 -12
View File
@@ -1,4 +1,12 @@
var db_name = localStorage["tfm_db_name"];
sort_sasa = localStorage["sort_files"];
sort_tanzaku = localStorage["sort_tags"];
if (sort_sasa == null) {
localStorage["sort_files"] = sort_sasa = "id";
}
if (sort_tanzaku == null) {
localStorage["sort_tags"] = sort_tanzaku = "id";
}
function settings_load() {
if (db_name != null) {
@@ -6,19 +14,19 @@ function settings_load() {
} else {
$("#db_name").val("");
}
if (sort_files != null) {
if (sort_files[0] === '-') {
if (sort_sasa != null) {
if (sort_sasa[0] === '-') {
$("#files-reverse").prop("checked", true);
sort_files = sort_files.slice(1);
sort_sasa = sort_sasa.slice(1);
}
$(`#files-by-${sort_files}`).prop("checked", true);
$(`#files-by-${sort_sasa}`).prop("checked", true);
}
if (sort_tags != null) {
if (sort_tags[0] === '-') {
if (sort_tanzaku != null) {
if (sort_tanzaku[0] === '-') {
$("#tags-reverse").prop("checked", true);
sort_tags = sort_tags.slice(1);
sort_tanzaku = sort_tanzaku.slice(1);
}
$(`#tags-by-${sort_tags}`).prop("checked", true);
$(`#tags-by-${sort_tanzaku}`).prop("checked", true);
}
}
@@ -61,11 +69,11 @@ $(document).on("submit", "#settings", function (e) {
}
let sort_f = ($("#files-reverse")[0].checked ? '-' : '') + $("input[type=radio][name=sort-files]:checked").attr("id").slice(9);
let sort_t = ($("#tags-reverse")[0].checked ? '-' : '') + $("input[type=radio][name=sort-tags]:checked").attr("id").slice(8);
if (sort_f !== sort_files && '!' + sort_f !== sort_files) {
localStorage["sort_files"] = sort_files = '!' + sort_f;
if (sort_f !== sort_sasa && '!' + sort_f !== sort_sasa) {
localStorage["sort_files"] = sort_sasa = '!' + sort_f;
}
if (sort_t !== sort_tags && '!' + sort_t !== sort_tags) {
localStorage["sort_tags"] = sort_tags = '!' + sort_t;
if (sort_t !== sort_tanzaku && '!' + sort_t !== sort_tanzaku) {
localStorage["sort_tags"] = sort_tanzaku = '!' + sort_t;
}
alert("Successfully updated settings!");
});