feat(web): add sorting sasa and tanzaku

This commit is contained in:
2023-02-12 15:35:52 +03:00
parent e72d371ff1
commit e8e32c70f0
3 changed files with 96 additions and 10 deletions
+86 -8
View File
@@ -26,10 +26,10 @@ if (shoppyou_mts != null) {
shoppyou_mts = parseInt(shoppyou_mts);
}
if (sort_files == null) {
sort_files = "id";
localStorage["sort_files"] = sort_files = "id";
}
if (sort_tags == null) {
sort_tags = "id";
localStorage["sort_tags"] = sort_tags = "id";
}
function tdb_query(trdb, trc, trb) {
@@ -70,10 +70,13 @@ function sasahyou_load() {
throw new Error("Failed to get sasahyou");
}
sasahyou = resp.data;
sasahyou_mts = db_info.data[0].sasahyou.mts;
localStorage["sasahyou_mts"] = sasahyou_mts = db_info.data[0].sasahyou.mts;
localStorage["sasahyou"] = JSON.stringify(sasahyou);
localStorage["sasahyou_mts"] = sasahyou_mts;
if (sort_files[0] !== '!') {
sort_files = '!' + sort_files;
}
}
sasahyou_sort();
}
function sappyou_load() {
@@ -89,10 +92,13 @@ function sappyou_load() {
throw new Error("Failed to get sappyou");
}
sappyou = resp.data;
sappyou_mts = db_info.data[0].sappyou.mts;
localStorage["sappyou_mts"] = sappyou_mts = db_info.data[0].sappyou.mts;
localStorage["sappyou"] = JSON.stringify(sappyou);
localStorage["sappyou_mts"] = sappyou_mts;
if (sort_tags[0] !== '!') {
sort_tags = '!' + sort_tags;
}
}
sappyou_sort();
}
function shoppyou_load() {
@@ -108,8 +114,80 @@ function shoppyou_load() {
throw new Error("Failed to get shoppyou");
}
shoppyou = resp.data;
shoppyou_mts = db_info.data[0].shoppyou.mts;
localStorage["shoppyou_mts"] = shoppyou_mts = db_info.data[0].shoppyou.mts;
localStorage["shoppyou"] = JSON.stringify(shoppyou);
localStorage["shoppyou_mts"] = shoppyou_mts;
}
}
function sasahyou_sort() {
if (sort_files[0] !== '!') {
return;
}
let sort = localStorage["sort_files"] = sort_files = sort_files.slice(1);
let order = 1;
if (sort[0] === '-') {
order = -1;
sort = sort.slice(1);
}
sasahyou.sort((lhs, rhs) => {
let l = lhs[sort], r = rhs[sort];
if (l > r) {
return order;
}
if (l < r) {
return -order;
}
return 0;
});
}
function sappyou_sort() {
if (sort_tags[0] !== '!') {
return;
}
let sort = localStorage["sort_tags"] = sort_tags = sort_tags.slice(1);
let order = 1;
if (sort[0] === '-') {
order = -1;
sort = sort.slice(1);
}
if (sort === "nkazari") {
shoppyou_load();
shoppyou.every(kazari => {
sappyou.every((tanzaku, index) => {
if (tanzaku.id === kazari.tanzaku_id) {
if (tanzaku.nkazari == null) {
sappyou[index].nkazari = 1;
} else {
sappyou[index].nkazari++;
}
return false;
}
return true;
});
return true;
});
sappyou.every((tanzaku, index) => {
if (tanzaku.nkazari == null) {
sappyou[index].nkazari = 0;
}
return true;
});
}
sappyou.sort((lhs, rhs) => {
if (lhs.id === 0) {
return -1;
}
if (rhs.id === 0) {
return 1;
}
let l = lhs[sort], r = rhs[sort];
if (l > r) {
return order;
}
if (l < r) {
return -order;
}
return 0;
});
}