thedesk/app/js/ui/sort.js

121 lines
3.3 KiB
JavaScript
Raw Permalink Normal View History

2019-11-25 01:53:35 +11:00
'use strict'
2018-02-05 01:56:31 +11:00
//ソートデータ読み込み
function sortLoad () {
$("#sort").html("");
2018-02-05 01:56:31 +11:00
var col = localStorage.getItem("column");
2019-05-19 17:39:30 +10:00
if (col) {
var obj = JSON.parse(col);
}
Object.keys(obj).forEach(function (key) {
var acct = obj[key];
var flag = "false";
if (localStorage.getItem("card_" + key) == "true") {
flag = "true"
2018-02-05 01:56:31 +11:00
}
2019-05-19 17:39:30 +10:00
var insert = "";
2018-04-07 14:31:09 +10:00
2019-05-19 17:39:30 +10:00
if (acct.background) {
if (acct.text == "def") {
} else {
if (acct.text == "black") {
var txhex = "000000";
} else if (acct.text == "white") {
var txhex = "ffffff";
}
insert = ' style="background-color:#' + acct.background + '; color: #' + txhex + '" ';
2018-04-07 14:31:09 +10:00
}
}
2019-05-19 17:39:30 +10:00
var user = localStorage.getItem("user_" + acct.domain);
var domain = localStorage.getItem("domain_" + acct.domain);
if (!user || !domain) {
var acctdata = "";
} else {
var acctdata = user + "@" + domain;
}
var html = '<li class="drag-content" data-id="' + key + '" data-flag="' + flag + '"' + insert + '><div class="sorticon"><i class="material-icons">' + icon(acct.type) + '</i></div><div class="sorttitle">' + cap(acct.type, escapeHTML(acct.data), acct.domain) + '</div><div class="sortaction"><a onclick="goColumn(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_sort_gothis + '">forward</i></a> <a onclick="removeColumn(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div><div class="sortacct">' + acctdata + '</div></li>';
$("#sort").append(html);
});
drag();
2018-02-05 01:56:31 +11:00
}
//TLのタイトル
2018-05-20 16:17:10 +10:00
function Scap(type, data) {
2018-02-05 01:56:31 +11:00
if (type == "home") {
return "Home"
} else if (type == "local") {
return "Local"
} else if (type == "pub") {
return "Public"
} else if (type == "tag") {
return "#" + data
} else if (type == "list") {
return "List(id:" + data + ")"
} else if (type == "notf") {
return "Notification"
2018-02-24 03:02:44 +11:00
} else if (type == "mix") {
return "Integrated"
2019-05-19 17:39:30 +10:00
} else if (type == "webview") {
2018-09-10 03:06:00 +10:00
return "Twitter"
2019-05-19 17:39:30 +10:00
} else if (type == "tootsearch") {
return "tootsearch(" + data + ")"
2019-05-19 17:39:30 +10:00
} else {
console.error("unknown timeline type: " + type);
2018-02-05 01:56:31 +11:00
}
}
//jquery-ui依存
2019-05-19 17:39:30 +10:00
function drag() {
2018-02-05 01:56:31 +11:00
$('#sort').sortable();
$('#sort').disableSelection();
}
//ソート指定
2019-05-19 17:39:30 +10:00
function sort() {
var arr = [];
var flags = [];
$(".drag-content").each(function (i, elem) {
var id = $(this).attr("data-id");
var flag = $(this).attr("data-flag");
2018-02-05 01:56:31 +11:00
arr.push(id)
flags.push(flag);
});
var col = localStorage.getItem("column");
var obj = JSON.parse(col);
2019-05-19 17:39:30 +10:00
var newobj = [];
for (i = 0; i < arr.length; i++) {
var data = obj[arr[i]];
2018-02-05 01:56:31 +11:00
var add = {
domain: data.domain,
type: data.type,
2019-05-19 17:39:30 +10:00
data: data.data,
background: data.background,
text: data.text
2018-02-05 01:56:31 +11:00
};
newobj.push(add);
2019-05-19 17:39:30 +10:00
if (flags[i] == "true") {
2018-02-05 01:56:31 +11:00
localStorage.setItem("card_" + i, "true");
2019-05-19 17:39:30 +10:00
} else {
2018-02-05 01:56:31 +11:00
localStorage.removeItem("card_" + i);
}
}
var json = JSON.stringify(newobj);
localStorage.setItem("column", json);
$("#sort").html("");
2019-06-07 02:11:04 +10:00
M.toast({ html: "Sorted", displayLength: 3000 })
sortLoad();
2018-03-13 04:41:38 +11:00
parseColumn();
sortMenu()
2018-03-13 04:41:38 +11:00
}
2018-03-14 17:52:55 +11:00
//ソートボタントグル
2019-05-19 17:39:30 +10:00
function sortMenu() {
$("#left-menu div").removeClass("active");
$("#sortMenu").addClass("active");
$(".menu-content").addClass("hide");
2019-05-19 17:39:30 +10:00
$("#sort-box").removeClass("hide");
2018-03-13 04:41:38 +11:00
$("#sort").html("");
sortLoad();
2018-03-27 13:39:35 +11:00
}