Merge pull request #26 from cutls/WIP-(before-CI)

TheDesk Miria (17.3.0)
This commit is contained in:
Cutls 2019-03-15 04:49:22 +09:00 committed by GitHub
commit 1c22572048
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 1177 additions and 886 deletions

View File

@ -9,6 +9,9 @@ html,body{
background-color: var(--bg);
color: var(--color);
}
body{
border: thin solid gray;
}
.btn {
margin: 5px;
text-transform: none;
@ -302,7 +305,60 @@ blockquote:before, .quote:before {
display:flex;
flex-wrap: wrap;
}
#menu{
position:fixed;
z-index:9999;
background-color: var(--box);
width:520px;
top:calc(50% - 150px);
left:calc(50% - 250px);
padding: 5px;
border: thin solid gray;
border-radius:5px;
}
#menu-wrapper{
margin-left:-5px;
display:flex;
}
#left-menu{
width:170px;
}
#left-menu div{
padding-left:5px;
width:100%;
height:50px;
display:flex;
align-items:center;
cursor:pointer;
}
#left-menu div:hover {
background-color: var(--beforehover);
}
#left-menu span{
margin-left:5px;
}
#left-menu div.active{
background-color: var(--emphasized);
}
#right-menu{
width:350px;
max-height:325px;
overflow-y:scroll;
overflow-x:hidden;
padding:5px;
}
.drag-bar{
cursor:move;
text-align:center;
width:calc(100% + 10px);
border-radius: 5px;
background-color: var(--bg);
margin-left:-5px;
margin-right:-5px;
margin-top:-5px;
font-size:16px;
padding:4px;
}
/*スクロールバー*/
::-webkit-scrollbar {

View File

@ -10,18 +10,9 @@
min-width:300px;
max-width:100%;
padding: 5px;
border-radius:5px;
}
#post-bar{
cursor:move;
text-align:center;
width:calc(100% + 10px);
background-color: var(--bg);
margin-left:-5px;
margin-right:-5px;
margin-top:-5px;
font-size:16px;
padding:4px;
}
.cancel {
font-size: 0.5rem;
color: gray;
@ -64,6 +55,10 @@
}
#emoji {
}
#suggest{
max-height:300px;
overflow-y: scroll;
}
#emoji-list {
width: 100%;

View File

@ -1,7 +1,5 @@
.drag-content{
width:300px;
max-width:100%;
height:300px;
text-overflow: ellipsis;
cursor:move;
user-select: none;
@ -10,32 +8,25 @@
border-radius:5px;
color:var(--color);
padding:3px;
font-family:Open Sans;
font-size:20px;
flex-grow:1;
text-align: center;
padding:10px;
display:grid;
grid-template-columns: 43px 1fr 60px;
grid-template-areas: 'sorticon sorttitle sorttitle' 'sorticon sortacct sortaction';
}
#sort{
display:flex;
flex-direction:row;
overflow-x:scroll;
display: flex;
width:100vw;
.sorticon {
grid-area:sorticon;
}
#sort-box{
position:absolute;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width:100vw;
height:calc(100vh - 40px);
background-color: rgba(0, 0, 0, 0.8);
z-index:10002;
.sorticon i{
font-size:43px;
}
#sort-box button{
background-color: var(--notfbox);
color:var(--color);
.sorttitle {
margin-left:5px;
grid-area:sorttitle;
}
.sortacct {
margin-left:5px;
grid-area:sortacct;
}
.sortaction {
margin-left:5px;
grid-area:sortaction;
}

View File

@ -86,7 +86,7 @@
font-family:Open Sans;
font-size:15px;
}
@media screen and (max-width: 1344px) {
@media screen and (max-width: 890px) {
.btnsgroup .grouptitle{ display: none; }
#tips,#tips-menu{ display: none; }
}
@ -111,6 +111,7 @@ iframe {
height: 100vh;
flex: 1;
border: thin solid gray;
border-top:none;
}
.box .pin,#his-data .pin{
display:none;
@ -242,6 +243,9 @@ grid-area: toot;
font-size:1.2rem;
margin-right:2px;
}
.action .fa-quote-right{
margin-top: 2px;
}
.actct{
color:var(--beforehover);
}
@ -518,4 +522,4 @@ p:not(:last-child){
.cvo-anime {
animation-duration: 0.1s;
animation-name: fadeInDown;
}
}

View File

@ -29,6 +29,13 @@ $(function($) {
return false;
}
}
//Alt+Enter:セカンダリー
if (event.metaKey || event.altKey && wv) {
if (e.keyCode === 13) {
sec();
return false;
}
}
//Shift+Space:Markdownゼロ幅スペース
if (event.shiftKey) {

View File

@ -19,14 +19,14 @@ function verck(ver,winstore) {
var electron = require("electron");
var remote=electron.remote;
var dialog=remote.dialog;
const options = {
type: 'info',
title: "Select your platform",
message: lang.lang_version_platform,
buttons: [lang.lang_no,lang.lang_yesno]
}
var platform=remote.process.platform;
if(platform=="win32"){
const options = {
type: 'info',
title: "Select your platform",
message: lang.lang_version_platform,
buttons: [lang.lang_no,lang.lang_yesno]
}
console.log(localStorage.getItem("winstore"))
if(!localStorage.getItem("winstore")){
@ -38,7 +38,27 @@ function verck(ver,winstore) {
}
});
}
}else{
}else if(platform=="linux"){
if(localStorage.getItem("winstore")=="unix"){
localStorage.removeItem("winstore")
}
console.log(localStorage.getItem("winstore"))
if(!localStorage.getItem("winstore")){
const options = {
type: 'info',
title: "Select your platform",
message: lang.lang_version_platform_linux,
buttons: [lang.lang_no,lang.lang_yesno]
}
dialog.showMessageBox(options, function(arg) {
if(arg==1){
localStorage.setItem("winstore","snapcraft")
}else{
localStorage.setItem("winstore","localinstall")
}
});
}
}else{
localStorage.setItem("winstore","unix")
}
var l = 5;

View File

@ -22,6 +22,7 @@ var lang={
"lang_version_usever":"No update is found({{ver}})",
"lang_version_skipver":"Update was ignored.",
"lang_version_platform":"Was this software installed at Microsoft Store? When select 'yes', any update was ignored.",
"lang_version_platform_linux":"Was this software installed at Snapcraft(snapd)? When select 'yes', any update was ignored.",
//login
//login/login.js
"lang_login_noauth":"Show TL of unlogined accounts",
@ -100,7 +101,8 @@ var lang={
"lang_tags_always":"Always toots with ",
"lang_tags_realtime":"Tag-stream toot",
"lang_tags_tagunpin":"Unpin {{tag}}",
"lang_tags_tagwarn":"When you toot without {{tag}}, tag-streaming mode will be off.",
"lang_tags_unrealtime":"Disable TsT",
"lang_tags_tagwarn":"Auto complete {{tag}}, if toot without {{tag}}",
//tl/tl.js
"lang_tl_media":"Media",
"lang_tl_reconnect":"Reconnect to streaming API",
@ -120,6 +122,9 @@ var lang={
"lang_layout_webviewmode":"Prefer WebView",
"lang_excluded":"Excluded type of notification",
"lang_layout_excludingbt":"Show BT mode(OFF/Exclude BT/Only BT)",
//ui/sort.js
"lang_sort_gothis":"Go to this column",
"lang_sort_remthis":"Delete this column",
//ui/spotify.js
"lang_spotify_img":"Attach an album artwork",
"lang_spotify_imgno":"Not attach an album artwork",

View File

@ -1,7 +1,6 @@
//commonError
var lang={
"language":"ja",
//commonError
"lang_toot":"トゥート",
"lang_there":"あり",
"lang_nothing":"なし",
@ -23,6 +22,7 @@ var lang={
"lang_version_usever":"お使いのバージョン{{ver}}は最新です。",
"lang_version_skipver":"アップデートはスキップされました。",
"lang_version_platform":"このソフトウェアはMicrosoft Storeからダウンロードされましたか(「はい」を選択すると次回からアップデート通知を無視します。)",
"lang_version_platform_linux":"このソフトウェアはSnapcraft(snapd)からインストールしましたか?(「はい」を選択すると次回からアップデート通知を無視します。)",
//login
//login/login.js
"lang_login_noauth":"認証せずに見る",
@ -101,7 +101,8 @@ var lang={
"lang_tags_always":"常に",
"lang_tags_realtime":"実況",
"lang_tags_tagunpin":"{{tag}}をよく使うタグから削除",
"lang_tags_tagwarn":"次に{{tag}}なしでトゥートするまで全てのトゥートに{{tag}}が付与されます。",
"lang_tags_unrealtime":"実況解除",
"lang_tags_tagwarn":"{{tag}}がない場合自動で補完されます。",
//tl/tl.js
"lang_tl_media":"メディア",
"lang_tl_reconnect":"Streamingに再接続しました",
@ -121,6 +122,9 @@ var lang={
"lang_layout_webviewmode":"WebView優先",
"lang_excluded":"除外する通知",
"lang_layout_excludingbt":"BT表示(OFF/BT除外/BTのみ)",
//ui/sort.js
"lang_sort_gothis":"このカラムへ",
"lang_sort_remthis":"このカラムを削除",
//ui/spotify.js
"lang_spotify_img":"アルバムアートワークを添付します。",
"lang_spotify_imgno":"アルバムアートワークを添付しません。",

View File

@ -5,6 +5,7 @@
localStorage.removeItem("kirishima")
localStorage.removeItem("imas")
localStorage.removeItem("image");
localStorage.removeItem("stable")
localStorage.setItem("mode_misskey.xyz","misskey")
function ck() {
var main = localStorage.getItem("main");

View File

@ -15,6 +15,7 @@ function emojiToggle() {
if ($("#emoji").hasClass("hide")) {
$("#emoji").removeClass("hide")
$("#right-side").show()
$("#suggest").html("");
if (!localStorage.getItem("emoji_" + acct_id)) {
var html =
'<button class="btn waves-effect green" style="width:100%; padding:0; margin-top:0;" onclick="emojiGet(\'true\');">'+lang.lang_emoji_get+'</button>';
@ -25,6 +26,7 @@ function emojiToggle() {
} else {
$("#poll").addClass("hide")
$("#emoji").addClass("hide")
$("#suggest").html("");
$("#right-side").hide()
}

View File

@ -45,6 +45,7 @@ function post(mode,postvis) {
}else{
var cw_ltres=localStorage.getItem("cw_letters");
}
if(domain!="kirishima.cloud"){
if(mode!="pass" && !$("#cw").hasClass("cw-avail") && (str.length>cw_sent || (str.split("\n").length - 1)>cw_ltres)){
var electron = require("electron");
var remote=electron.remote;
@ -69,6 +70,7 @@ function post(mode,postvis) {
})
return false;
}
}
if(localStorage.getItem("mode_" + domain)=="misskey"){
misskeyPost();
return;
@ -78,6 +80,9 @@ function post(mode,postvis) {
var at = localStorage.getItem("acct_"+ acct_id + "_at");
var start = "https://" + domain + "/api/v1/statuses";
var reply = $("#reply").val();
if(str.indexOf(localStorage.getItem("stable"))==-1){
str+" #"+localStorage.getItem("stable");
}
var toot={
status: str
}
@ -106,6 +111,7 @@ function post(mode,postvis) {
toot.status=str+"👁️";
}
//ここに非公開・未収載タグについてwarn
if(domain!="kirishima.cloud" && domain!="imastodon.net"){
if(~str.indexOf("#")){
if(vis == "local" || vis=="unlisted" || vis=="direct" || vis=="private"){
if(!confirm(lang.lang_post_tagVis)){
@ -113,6 +119,7 @@ function post(mode,postvis) {
}
}
}
}
if ($("#cw").hasClass("cw-avail")) {
var spo = $("#cw-text").val();
cw();
@ -166,11 +173,7 @@ function post(mode,postvis) {
httpreq.send(JSON.stringify(toot));
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
if(str.indexOf(localStorage.getItem("stable"))==-1){
localStorage.removeItem("stable")
}
var json = httpreq.response;
console.log(json);
var box = localStorage.getItem("box");
if (box == "yes" || !box) {
$("#textarea").blur();
@ -261,7 +264,7 @@ function misskeyPost(){
function clear() {
$("#textarea").val("");
if(localStorage.getItem("stable")){
$("#textarea").val(localStorage.getItem("stable"));
$("#textarea").val("#"+localStorage.getItem("stable")+" ")
}
$("#textarea").attr("placeholder", lang.lang_toot);
$("#reply").val("");

View File

@ -13,6 +13,13 @@ input.addEventListener("focus", function() {
window.clearInterval(timer);
timer = window.setInterval(function() {
var new_val = input.value;
if(new_val==""){
$("#suggest").html("");
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
$("#right-side").hide()
}
return;
}
if (prev_val != new_val) {
var semoji = new_val.match(/:(\S{3,})/);
if(semoji){
@ -32,7 +39,15 @@ input.addEventListener("focus", function() {
}
}
}
if(ehtml!=""){
$("#right-side").show()
$("#poll").addClass("hide")
$("#emoji").addClass("hide")
}else{
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
$("#right-side").hide()
}
}
$("#suggest").html(ehtml);
}
@ -52,7 +67,10 @@ input.addEventListener("focus", function() {
} else if (acct && acct[1]) {
var q = acct[1];
}else {
//$("#suggest").html("");
$("#suggest").html("");
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
$("#right-side").hide()
}
return;
}
var domain = localStorage.getItem("domain_" + acct_id);
@ -72,24 +90,38 @@ input.addEventListener("focus", function() {
todo(error);
console.error(error);
}).then(function(json) {
if (json.hashtags[0] && tag[1]) {
if (json.hashtags[0] && tag) {
if(tag[1]){
var tags = "";
Object.keys(json.hashtags).forEach(function(key4) {
var tag = json.hashtags[key4];
tags = tags + '<a onclick="tagInsert(\'#' + tag + '\',\'#' + q +
'\')" class="pointer">#' + tag + '</a> ';
if(tag!=q){
tags = tags + '<a onclick="tagInsert(\'#' + tag + '\',\'#' + q +
'\')" class="pointer">#' + tag + '</a><br>';
}
});
$("#suggest").html("Tags:" + tags);
$("#right-side").show()
$("#suggest").html("Tags:<br>" + tags);
$("#poll").addClass("hide")
$("#emoji").addClass("hide")
}
} else if (json.accounts[0] && acct[1]) {
var accts = "";
Object.keys(json.accounts).forEach(function(key3) {
var acct = json.accounts[key3];
accts = accts + '<a onclick="tagInsert(\'@' + acct.acct +
'\',\'@' + q + '\')" class="pointer">@' + acct.acct + '</a> ';
if(acct.acct!=q){
accts = accts + '<a onclick="tagInsert(\'@' + acct.acct +
'\',\'@' + q + '\')" class="pointer">@' + acct.acct + '</a><br>';
}
});
$("#suggest").html("@:" + accts);
$("#right-side").show()
$("#suggest").html("@:<br>" + accts);
$("#poll").addClass("hide")
$("#emoji").addClass("hide")
} else {
$("#suggest").html("Not Found");
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
$("#right-side").hide()
}
}
});
}
@ -121,6 +153,9 @@ function tagInsert(code, del) {
}
$("#textarea").val(newt);
$("#textarea").focus();
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
$("#right-side").hide()
}
$("#suggest").html("");
}
function cgNPs(q){

View File

@ -1,10 +1,15 @@
/*リプライ*/
function re(id,at,acct_id,mode){
function re(id,ats_cm,acct_id,mode){
clear();
var ats=ats_cm.split(',');
localStorage.setItem("nohide",true);
show();
$("#reply").val(id);
var te=$("#textarea").val();
$("#textarea").val("@"+at+" "+te);
for(var i=0;i<ats.length;i++){
var at=ats[i];
var te=$("#textarea").val();
$("#textarea").val("@"+at+" "+te);
}
$("#rec").text(lang.lang_yesno);
$("#post-acct-sel").val(acct_id);
$("#post-acct-sel").prop("disabled", true);
@ -32,6 +37,9 @@ function qt(id,acct_id,at,url){
if(!qt){
var qt="simple";
}
if(qt=="nothing"){
return false;
}
if(qt=="simple"){
show();
$("#textarea").val("\n"+url);

View File

@ -101,17 +101,11 @@ function delreset(tlid){
}
/*ワードフィルター機能*/
function filterToggle(){
if ($("#filter-box").hasClass("hide")) {
$("#filter-box").removeClass("hide");
$("#filter-box").addClass("show");
$("#filter-box").css("bottom","40px");
$("#filter-box").css("left",$('#filter-tgl').offset().left-$('#filter-box').width()/2+"px");
//フィルターロード
} else {
$("#filter-box").removeClass("show");
$("#filter-box").addClass("hide")
}
function filterMenu(){
$("#left-menu div").removeClass("active");
$("#filterMenu").addClass("active");
$(".menu-content").addClass("hide");
$("#filter-box").removeClass("hide");
}
function filter(){
$("#filtered-words").html("");
@ -140,15 +134,15 @@ function filter(){
var filterword = json[key];
var context = filterword.context.join(',');
filters = filters + escapeHTML(filterword.phrase)+'<span class="sml">(for '+context+')</span>:<a onclick="filterEdit(\'' + filterword.id + '\',\'' + acct_id +
'\')" class="pointer">'+lang_edit[lang]+'</a>/<a onclick="filterDel(' + filterword.id + ',' + acct_id +
')" class="pointer">'+lang_del[lang]+'</a><br> ';
'\')" class="pointer">'+lang.lang_edit+'</a>/<a onclick="filterDel(' + filterword.id + ',' + acct_id +
')" class="pointer">'+lang.lang_del+'</a><br> ';
});
if(filters==""){
filters=lang_filter_nodata[lang]+"<br>";
filters=lang.lang_filter_nodata+"<br>";
}
$("#filtered-words").html(filters);
}else{
$("#filtered-words").html(lang_filter_nodata[lang]);
$("#filtered-words").html(lang_filter_nodata);
}
});
}
@ -170,7 +164,7 @@ function makeNewFilter(){
}
console.log(cont);
if(!cont.length){
$("#filtered-words").html('Error:'+lang_filter_errordegree[lang]);
$("#filtered-words").html('Error:'+lang.lang_filter_errordegree);
}
var exc=$("#except_filter:checked").val();
var who=$("#wholeword_filter:checked").val();
@ -215,7 +209,7 @@ function makeNewFilter(){
$("#days_filter").val("0");
$("#hours_filter").val("0");
$("#mins_filter").val("0");
$("#add-filter-btn").text(lang_add[lang]);
$("#add-filter-btn").text(lang.lang_add);
$("#filter-edit-id").val("")
}
}
@ -231,7 +225,7 @@ function filterEdit(id,acct_id){
$("#days_filter").val("0");
$("#hours_filter").val("0");
$("#mins_filter").val("0");
$("#add-filter-btn").text(lang_edit[lang]);
$("#add-filter-btn").text(lang.lang_edit);
$("#filter-edit-id").val(id);
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_"+ acct_id + "_at");

View File

@ -1,14 +1,10 @@
function listToggle(){
if ($("#list-box").hasClass("hide")) {
$("#list-box").removeClass("hide");
$("#list-box").addClass("show");
$("#list-box").css("bottom","40px");
$("#list-box").css("left",$('#list-tgl').offset().left-$('#list-box').width()/2+"px");
//リストロード
} else {
$("#list-box").removeClass("show");
$("#list-box").addClass("hide")
}
function listMenu(){
$("#left-menu div").removeClass("active");
$("#listMenu").addClass("active");
$(".menu-content").addClass("hide");
$("#list-box").removeClass("hide");
$('ul.tabs').tabs('select_tab', 'src-sta');
$("#src-contents").html("");
}

View File

@ -44,7 +44,7 @@ function notfColumn(acct_id, tlid, sys){
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
var json = httpreq.response;
var max_id = httpreq.getResponseHeader("link").match(/\?max_id=([0-9]+)/)[1];
var max_id = httpreq.getResponseHeader("link").match(/[?&]{1}max_id=([0-9]+)/)[1];
if(json[0]){
var templete="";
var lastnotf=localStorage.getItem("lastnotf_" + acct_id);
@ -397,7 +397,7 @@ function notfmore(tlid) {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
var max_id = httpreq.getResponseHeader("link").match(/\?max_id=([0-9]+)/)[1];
var max_id = httpreq.getResponseHeader("link").match(/[?&]{1}max_id=([0-9]+)/)[1];
if(json[0]){
var templete="";
var lastnotf=localStorage.getItem("lastnotf_" + acct_id);

View File

@ -8,7 +8,6 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
localStorage.setItem("lastunix_"+ tlid,date(obj[0].created_at, 'unix'));
}
var actb = localStorage.getItem("action_btns");
var actb='re,rt,fav,qt,del,pin,red';
if(actb){
var actb = actb.split(',');
@ -22,6 +21,12 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
disp[actb[k]]=tp;
}
}
var qt = localStorage.getItem("quote");
if(qt=="nothing"){
var qtClass="hide";
}else{
var qtClass="";
}
var datetype = localStorage.getItem("datetype");
var nsfwtype = localStorage.getItem("nsfw");
var sent = localStorage.getItem("sentence");
@ -503,12 +508,27 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
//メンションであれば
if (menck) {
mentions = "";
var to_mention=[];
Object.keys(toot.mentions).forEach(function(key3) {
var mention = toot.mentions[key3];
mentions = mentions + '<a onclick="udg(\'' + mention.id + '\',' +
acct_id + ')" class="pointer">@' + mention.acct + '</a> ';
//自分は除外
//自インスタンスかどうかを確認し、IDの一致
if(mention.acct==mention.username && mention.id==localStorage.getItem("user-id_" + acct_id)){
//自分
}else{
//そのトゥの人NG
if(toot.account.acct!=mention.acct){
to_mention.push(mention.acct);
}
}
});
to_mention.push(toot.account.acct);
mentions = '<div style="float:right">' + mentions + '</div>';
}else{
var to_mention=[toot.account.acct];
}
var tagck = toot.tags[0];
var tags = "";
@ -726,7 +746,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
'<div class="action">'+vis+'</div>'+
'<div class="action '+antinoauth+'"><a onclick="detEx(\''+toot.url+'\',\'main\')" class="waves-effect waves-dark details" style="padding:0">'+lang.lang_parse_det+'</a></div>' +
'<div class="action '+disp["re"]+' '+noauth+'"><a onclick="re(\'' + toot.id +
'\',\'' + toot.account.acct + '\',' +
'\',\'' + to_mention + '\',' +
acct_id + ',\''+visen+
'\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="'+lang.lang_parse_replyto+'"><i class="fa fa-share"></i><span class="rep_ct">' + replyct +
'</a></span></a></div>' +
@ -735,7 +755,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
'\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="'+lang.lang_parse_bt+'"><i class="fa fa-retweet ' +
if_rt + ' rt_' + toot.id + '"></i><span class="rt_ct">' + toot.reblogs_count +
'</span></a></div>' +
'<div class="action '+can_rt+' '+disp["qt"]+' '+noauth+'"><a onclick="qt(\'' + toot.id + '\',' + acct_id +
'<div class="action '+can_rt+' '+disp["qt"]+' '+noauth+' '+qtClass+'"><a onclick="qt(\'' + toot.id + '\',' + acct_id +
',\'' + toot.account.acct +'\',\''+toot.url+
'\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="'+lang.lang_parse_quote+'"><i class="text-darken-3 fa fa-quote-right"></i></a></div>' +
'<div class="action '+disp["fav"]+' '+noauth+'"><a onclick="fav(\'' + toot.id + '\',' + acct_id +

View File

@ -1,10 +1,10 @@
//検索
//検索ボックストグル
function srcToggle() {
$("#src-box").toggleClass("hide");
$("#src-box").toggleClass("show");
$("#src-box").css("bottom","40px");
$("#src-box").css("left",$('#src-tgl').offset().left-$('#src-box').width()/2+"px");
function searchMenu() {
$("#left-menu div").removeClass("active");
$("#searchMenu").addClass("active");
$(".menu-content").addClass("hide");
$("#src-box").removeClass("hide");
$('ul.tabs').tabs('select_tab', 'src-sta');
$("#src-contents").html("");
}

View File

@ -54,10 +54,19 @@ function favTag(){
var obj = JSON.parse(tagarr);
}
var tags="";
var nowPT=localStorage.getItem("stable")
Object.keys(obj).forEach(function(key) {
var tag = obj[key];
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="' +lang.lang_parse_tagTL.replace("{{tag}}" ,'#'+tag)+ '">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">Toot</a> '+
'<a onclick="autoToot(\'#' + tag + ' \');brInsert(\'#' + tag + ' \')" class="pointer" title="'+lang.lang_tags_always + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">'+lang.lang_tags_realtime+'</a> <a onclick="tagRemove(\'' + key + '\')" class="pointer" title="' +lang.lang_tags_tagunpin.replace("{{tag}}" ,'#'+tag)+ '">'+lang.lang_del+'</a></span> ';
if(nowPT!=tag){
console.log(nowPT+"/"+tag);
var ptt=lang.lang_tags_realtime;
var nowon="";
}else{
var ptt=lang.lang_tags_unrealtime;
var nowon="("+lang.lang_tags_realtime+")";
}
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a>'+nowon+'<span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="' +lang.lang_parse_tagTL.replace("{{tag}}" ,'#'+tag)+ '">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">Toot</a> '+
'<a onclick="autoToot(\'' + tag + '\');" class="pointer" title="'+lang.lang_tags_always + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">'+ptt+'</a> <a onclick="tagRemove(\'' + key + '\')" class="pointer" title="' +lang.lang_tags_tagunpin.replace("{{tag}}" ,'#'+tag)+ '">'+lang.lang_del+'</a></span> ';
});
if(obj.length>0){
$("#taglist").append("My Tags:" + tags);
@ -106,6 +115,14 @@ function tagTL(a,b,c,d){
tl(a,b,acct_id,d);
}
function autoToot(tag){
localStorage.setItem("stable",tag);
Materialize.toast(lang.lang_tags_tagwarn +replace("{{tag}}" ,tag).replace("{{tag}}" ,tag),3000);
var nowPT=localStorage.getItem("stable")
if(nowPT==tag){
localStorage.removeItem("stable");
Materialize.toast(lang.lang_tags_unrealtime,3000);
}else{
localStorage.setItem("stable",tag);
Materialize.toast(lang.lang_tags_tagwarn.replace("{{tag}}" ,tag).replace("{{tag}}" ,tag),3000);
brInsert('#' + tag+" ")
}
favTag();
}

View File

@ -605,22 +605,33 @@ function misskeycom(type, data) {
//TLのアイコン
function icon(type) {
if (type == "home") {
return "home"
} else if (type == "local" || type == "noauth" || type == "local-media") {
return "people_outline"
} else if (type == "pub" || type == "pub-media") {
return "language"
var response="home";
} else if (type == "local") {
var response="people_outline";
} else if (type == "local-media") {
var response="people_outline";
} else if (type == "pub") {
var response="language";
} else if (type == "pub-media") {
var response="language";
} else if (type == "tag") {
return "search"
var response="search";
} else if (type == "list") {
return "view_headline"
}else if (type == "list") {
return "subject"
}else if (type == "dm") {
return "mail"
}else if (type == "mix") {
return "share"
var response="view_headline";
} else if (type == "notf") {
var response="notifications";
} else if (type == "noauth") {
var response="people_outline";
} else if (type == "dm") {
var response="mail_outline";
} else if (type == "mix") {
var response="merge_type";
} else if (type == "plus") {
var response="merge_type";
}else if (type == "webview") {
var response="language";
}
return response;
}
function strAlive(){
var date = new Date() ;

View File

@ -7,12 +7,12 @@ var websocketLocal = [];
var websocketNotf = [];
//カラム追加ボックストグル
function addToggle() {
$("#add-box").toggleClass("hide");
function addColumnMenu() {
$("#left-menu div").removeClass("active");
$("#addColumnMenu").addClass("active");
$(".menu-content").addClass("hide");
$("#add-box").removeClass("hide");
addselCk()
$("#add-box").css("bottom","40px");
$("#add-box").css("left",$('#add-tgl').offset().left-$('#add-box').width()/2+"px");
$("#add-box").toggleClass("show");
}
//最初、カラム変更時に発火
function parseColumn() {

51
app/js/ui/menu.js Normal file
View File

@ -0,0 +1,51 @@
function menu(){
if(!$("#menu").hasClass("appear")){
$("#menu").addClass("appear")
var left=localStorage.getItem("menu-left");
if(left>$('body').width()-$('#menu').width()){
left=$('body').width()-$('#menu').width();
}else if(left<0){
left=0;
}
var top=localStorage.getItem("menu-top");
if(top>$('body').height()-$('#menu').height()){
top=$('body').height()-$('#menu').height();
}else if(top<0){
top=0;
}
$('#menu').css("left",left+"px")
$('#menu').css("top",top+"px")
$('#menu').fadeIn();
$("#menu-bar").html("TheDesk "+localStorage.getItem("ver"));
$(".menu-content").addClass("hide");
$("#add-box").removeClass("hide");
}else{
$('#menu').fadeOut()
$("#menu").removeClass("appear")
}
}
$(function() {
$( "#menu" ).draggable({handle: "#menu-bar",
stop: function() {
var left=$('#menu').offset().left;
if(left>$('body').width()-$('#menu').width()){
left=$('body').width()-$('#menu').width();
}else if(left<0){
left=0;
}
var top=$('#menu').offset().top;
if(top>$('body').height()-$('#menu').height()){
top=$('body').height()-$('#menu').height();
}else if(top<0){
top=0;
}
localStorage.setItem("menu-left",left);
localStorage.setItem("menu-top",top);
}
});
});
function help(){
const {shell} = require('electron');
shell.openExternal("https://docs.thedesk.top");
}

View File

@ -1,6 +1,7 @@
/*ささやきボックス(Cr民並感)*/
//✕隠す
function hide() {
$("#right-side").hide()
$('#post-box').fadeOut()
$("#post-box").removeClass("appear")
$("#emoji").addClass("hide")
@ -19,17 +20,40 @@ function show() {
$("#post-box").addClass("appear")
$("#textarea").focus();
console.log("show"+localStorage.getItem("postbox-left"));
$('#post-box').css("left",localStorage.getItem("postbox-left")+"px")
$('#post-box').css("top",localStorage.getItem("postbox-top")+"px")
var left=localStorage.getItem("postbox-left");
if(left>$('body').width()-$('#post-box').width()){
left=$('body').width()-$('#post-box').width();
}else if(left<0){
left=0;
}
var top=localStorage.getItem("postbox-top");
if(top>$('body').height()-$('#post-box').height()){
top=$('body').height()-$('#post-box').height();
}else if(top<0){
top=0;
}
$('#post-box').css("left",left+"px")
$('#post-box').css("top",top+"px")
$('#post-box').fadeIn();
}
$(function() {
$( "#post-box" ).draggable({handle: "#post-bar",
stop: function() {
console.log("stopped");
localStorage.setItem("postbox-left",$('#post-box').offset().left);
localStorage.setItem("postbox-top",$('#post-box').offset().top);
var left=$('#post-box').offset().left;
if(left>$('body').width()-$('#post-box').width()){
left=$('body').width()-$('#post-box').width();
}else if(left<0){
left=0;
}
var top=$('#post-box').offset().top;
if(top>$('body').height()-$('#post-box').height()){
top=$('body').height()-$('#post-box').height();
}else if(top<0){
top=0;
}
localStorage.setItem("postbox-left",left);
localStorage.setItem("postbox-top",top);
}
});
});
@ -71,23 +95,4 @@ $('#textarea,#cw-text').focusout(function(e) {
localStorage.removeItem("nohide")
}
//setTimeout(remove, 100);
});
$("#timeline-container").click(function(e) {
if(!$('#list-box').hasClass("hide")){
$("#list-box").removeClass("show");
$("#list-box").addClass("hide")
}
if(!$('#src-box').hasClass("hide")){
$("#src-box").removeClass("show");
$("#src-box").addClass("hide")
}
if(!$('#filter-box').hasClass("hide")){
$("#filter-box").removeClass("show");
$("#filter-box").addClass("hide")
}
if(!$('#add-box').hasClass("hide")){
$("#add-box").removeClass("show");
$("#add-box").addClass("hide")
}
});
});

View File

@ -24,6 +24,7 @@ function settings() {
themes(cd);
localStorage.setItem("theme", cd);
}
var nd = $("[name=nsfw]:checked").val();
var nt = $("[for=n_"+nd+"]").text();
if (nd != localStorage.getItem("nsfw")) {
@ -250,6 +251,12 @@ function load() {
}
$("#" + theme).prop("checked", true);
var ha = localStorage.getItem("ha");
if (!ha) {
var ha = "false";
}
$("#ha_" + ha).prop("checked", true);
var nsfw = localStorage.getItem("nsfw");
if (!nsfw) {
var nsfw = "yes";
@ -913,6 +920,12 @@ function customImp(){
alert("Error")
}
}
function hardwareAcceleration(){
var had = $("[name=ha]:checked").val();
localStorage.setItem("ha", had);
console.log("ha");
ipc.send('ha', had);
}
ipc.on('theme-json-create-complete', function (event, args) {
$("#custom_import").val("");

View File

@ -32,9 +32,9 @@ function sortload(){
var acctdata=user+"@"+domain;
}
var html='<li class="drag-content" data-id="'+key+'" data-flag="'+flag+'"'+insert+'><a onclick="goColumn(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムへ">forward</i></a> <a onclick="removeColumn(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a><br>'+acctdata+" "+cap(acct.type, acct.data,acct.domain)+'</li>';
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, 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();
@ -104,18 +104,14 @@ function sort(){
Materialize.toast("並べ替え完了。", 3000);
sortload();
parseColumn();
sortToggle()
sortMenu()
}
//ソートボタントグル
function sortToggle(){
function sortMenu(){
$("#left-menu div").removeClass("active");
$("#sortMenu").addClass("active");
$(".menu-content").addClass("hide");
$("#sort-box").removeClass("hide");
$("#sort").html("");
if ($("#sort-box").hasClass("hide")) {
$("#sort-box").removeClass("hide");
$("#sort-box").addClass("show");
//並べ替え
sortload();
} else {
$("#sort-box").addClass("hide");
$("#sort-box").removeClass("show");
}
sortload();
}

View File

@ -130,7 +130,11 @@ function udg(user, acct_id) {
$('#his-data').css('background-image', 'url(' + json.header + ')');
$("#his-sta").text(json.statuses_count);
$("#his-follow").text(json.following_count);
$("#his-follower").text(json.followers_count);
var flerc=json.followers_count;
if(flerc<0){
flerc="-";
}
$("#his-follower").text(flerc);
$("#his-since").text(crat(json.created_at));
$("#his-openin").attr("data-href", json.url);
if(json.fields){

View File

@ -27,8 +27,15 @@ var info_path = join(app.getPath("userData"), "window-size.json");
var max_info_path = join(app.getPath("userData"), "max-window-size.json");
var lang_path=join(app.getPath("userData"), "language");
var customcss=join(app.getPath("userData"), "custom.css");
var tmp_img = join(app.getPath("userData"), "tmp.png");
var ha_path=join(app.getPath("userData"), "hardwareAcceleration");
try{
fs.readFileSync(ha_path, 'utf8');
app.disableHardwareAcceleration()
console.log("disabled: HA");
}catch{
console.log("enabled: HA");
}
var window_size;
try {
window_size = JSON.parse(fs.readFileSync(info_path, 'utf8'));
@ -76,7 +83,9 @@ function createWindow() {
var bit=process.arch;
if(platform=="linux"){
var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,icon: __dirname + '/desk.png'}
}else{
}else if(platform=="win32"){
var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,simpleFullscreen:true}
}else if(platform=="darwin"){
var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,simpleFullscreen:true}
}
mainWindow = new BrowserWindow(arg);
@ -136,8 +145,13 @@ app.on('ready', createWindow);
var onError = function(err,response){
console.error(err,response);
};
var ipc = electron.ipcMain;
ipc.on('minimize', function(e, args) {
mainWindow.minimize();
});
ipc.on('maximize', function(e, args) {
mainWindow.isMaximized() ? mainWindow.unmaximize() : mainWindow.maximize();
});
ipc.on('native-notf', function(e, args) {
var platform=process.platform;
var bit=process.arch;
@ -259,7 +273,16 @@ ipc.on('theme-json-list', function(e, arg) {
mainWindow.webContents.send('theme-json-list-response', themes);
});
})
//ハードウェアアクセラレーションの無効化
ipc.on('ha', function(e, arg) {
if(arg=="true"){
fs.writeFileSync(ha_path,arg);
}else{
fs.unlink(ha_path, function (err) {});
}
app.relaunch()
app.exit()
})
ipc.on('update', function(e, x, y) {
var platform=process.platform;
@ -527,7 +550,7 @@ ipc.on('nano', function (e, x, y) {
window_pos = [0,0]; // デフォルトバリュー
}
var nanowindow = new BrowserWindow({width: 350, height: 200,
"transparent": false, // ウィンドウの背景を透過
"transparent": false, // ウィンドウの背景を透過
"frame": false, // 枠の無いウィンドウ
"resizable": false });
nanowindow.loadURL('file://' + __dirname + '/nano.html');

View File

@ -1,6 +1,6 @@
{
"name": "thedesk",
"version": "17.2.0",
"version": "17.3.0",
"description": "TheDesk is a Mastodon client for PC.",
"main": "main.js",
"scripts": {

View File

@ -32,7 +32,7 @@
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
<script>
var ver="Miria (17.2.0)";
var ver="Miria (17.3.0)";
//betaを入れるとバージョンチェックしない
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
//var ver="beta";
@ -54,7 +54,7 @@ var tlid=0;
</div>
</div>
<div id="post-box" class="z-depth-5">
<div id="post-bar">Post new</div>
<div id="post-bar" class="drag-bar">Post new</div>
<!--トゥートボックス-->
<div id="left-side">
<div class="row" style="margin-bottom:0;">
@ -125,7 +125,6 @@ var tlid=0;
<span class="sml gray pointer anti-markdown mize">
<a onclick="mdToggle()">Markdownエディタを表示</a>
</span>
<span id="suggest"></span>
</div>
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
<i class="waves-effect gray material-icons" id="nsfw" title="Mark media as sensitive" onclick="nsfw()">visibility_off</i>
@ -202,6 +201,7 @@ var tlid=0;
</div>
</div>
<div id="right-side">
<div id="suggest"></div>
<!--絵文字ピッカー-->
<div id="emoji" class="hide">
<span class="gray sml">
@ -582,17 +582,19 @@ var tlid=0;
<a href="https://thedesk.top" target="_blank">HP</a><br>
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
<br>
<div id="release-Miria_17-2-0" class="release-do" style="display:none; ">
<div id="release-Miria_17-2-1" class="release-do" style="display:none; ">
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
<h5>Release Note Miria (17.2.0)</h5>
カスタムテーマを実装。Misskeyのテーマとの一定の互換性あり。<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>から80を超えるテーマを入手。
<a href="https://thedesk.top/mias.html">注意点</a><br>
Misskeyのログイン方法変更につき、いちいちDevCenterに行かなくてもよくなりました。<br>
日本語でベタ書きしていたダイアログを一部多言語対応に変更。<br>
<h5>Release Note Miria (17.2.1)</h5>
多くの機能を「メニュー」に集約。結局何のボタンかわからないアイコンの羅列から解放。<br>
Alt+Enterでセカンダリートゥートボタン<br>
引用ボタンを表示しない設定(引用形式設定を「使用しない」)<br>
実況機能をまともに書き直した。<br>
サジェストをトゥートボックスの右に<br>
ハードウェアアクセラレーションを無効化するオプション。(設定の表示などが乱れるときに設定)<br>
返信時に「@」が複数含まれない仕様を訂正<br>
<img class="emoji" draggable="false" alt="⚠" src="https://twemoji.maxcdn.com/2/72x72/26a0.png">TheDeskのMisskeyについての機能追加は終了しています。<br>
</div>
<br><br>
@ -623,130 +625,152 @@ var tlid=0;
<i class="material-icons pointer" onclick="endPip()">close</i>
<div id="pip-content">
</div>
</div>
<!--カラム追加-->
<div id="add-box" class="hide z-depth-4 notf-box">
<div class="input-field"><span data-trans="your_acct">Select an account</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">Local</option>
<option value="local-media" data-trans="local-media">Local(Media)</option>
<option value="home" data-trans="home">Home</option>
<option value="pub" data-trans="public">Federated</option>
<option value="pub-media" data-trans="public-media">Federated(Media)</option>
<option value="dm" data-trans="dm">Direct Message</option>
<option value="mix" data-trans="integrated">Integrated(Local and Home)</option>
<option value="plus" data-trans="plus">Integrated(Local and replies and BT on Home)</option>
<option value="notf" data-trans="notification">Notifications</option>
</select>
<label data-trans="show_tl">Show this TL:</label>
</div>
<div id="noauth" class="hide">Show this TL:
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
</div>
<div id="webview-add" class="hide">TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.
</div>
</div>
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
<i class="material-icons left">add</i>Add
</button>
<br>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide notf-box z-depth-4" style="width:500px">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">Search</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>Search
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>Sort
</button>
<button onclick="sortToggle()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="close">
<i class="material-icons left">close</i>Close
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>Select an account</label>
</div>
<!--menu-->
<div id="menu" class="z-depth-5" style="display:none">
<div id="menu-bar" class="drag-bar"></div>
<span class="cancel">
<i class="material-icons waves-effect" onclick="menu()" title="Close this box(X)">cancel</i>
</span>
<div id="menu-wrapper">
<div id="left-menu">
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i class="material-icons">add</i><span>Add a column</span></div>
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i class="material-icons">sort</i><span>Sort</span></div>
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i class="material-icons">search</i><span>Search</span></div>
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i class="material-icons">view_headline</i><span>List</span></div>
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i class="material-icons">filter_list</i><span>Filter</span></div>
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>Help</span></div>
</div>
<div id="right-menu">
<!--カラム追加-->
<div id="add-box" class="hide menu-content">
<div class="input-field"><span data-trans="your_acct">Select an account</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
List
</button>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">Local</option>
<option value="local-media" data-trans="local-media">Local(Media)</option>
<option value="home" data-trans="home">Home</option>
<option value="pub" data-trans="public">Federated</option>
<option value="pub-media" data-trans="public-media">Federated(Media)</option>
<option value="dm" data-trans="dm">Direct Message</option>
<option value="mix" data-trans="integrated">Integrated(Local and Home)</option>
<option value="plus" data-trans="plus">Integrated(Local and replies and BT on Home)</option>
<option value="notf" data-trans="notification">Notifications</option>
</select>
<label data-trans="show_tl">Show this TL:</label>
</div>
<div id="noauth" class="hide">Show this TL:
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
</div>
<div id="webview-add" class="hide">TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.
</div>
</div>
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
<i class="material-icons left">add</i>Add
</button>
<br>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide menu-content">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">Search</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>Search
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide menu-content">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>Sort
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide menu-content">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>Select an account</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
List
</button>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="Display name">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">Save</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide menu-content">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>Select an account</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
List
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="Filtering words"><br>
Filter contexts<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">Home</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">Local</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">Notifications</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">Conversations</label><br>
Options<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">Whole word</label><br>
<span class="sml">Nice for Latin language</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">Drop instead of hide</label><br>
<span class="sml">Filtered toots will disappear irreversibly, even if filter is later removed</span><br>
Expire after<span class="sml">Unset or "0" means "Never"<b>This value may contain some error</b></span><br><br>
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">days
<input type="number" style="width:50px" id="hours_filter" placeholder="h" value="0">hours
<input type="number" style="width:50px" id="mins_filter" placeholder="m" value="0">minutes
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">Add</button><br>
<span class="sml">Integrated TL/Plus TL will hide both Home-filtering words and Local-filtering words.</span>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="Display name">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">Save</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>Select an account</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
List
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="Filtering words"><br>
Filter contexts<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">Home</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">Local</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">Notifications</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">Conversations</label><br>
Options<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">Whole word</label><br>
<span class="sml">Nice for Latin language</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">Drop instead of hide</label><br>
<span class="sml">Filtered toots will disappear irreversibly, even if filter is later removed</span><br>
Expire after<span class="sml">Unset or "0" means "Never"<b>This value may contain some error</b></span><br><br>
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">days
<input type="number" style="width:50px" id="hours_filter" placeholder="h" value="0">hours
<input type="number" style="width:50px" id="mins_filter" placeholder="m" value="0">minutes
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">Add</button><br>
<span class="sml">Integrated TL/Plus TL will hide both Home-filtering words and Local-filtering words.</span>
</div>
<a href="index.html" class="waves-effect">
<i class="material-icons" style="font-size: 1rem;">refresh</i>Super Reload
</a>&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>Toot button layout reverse
</a>
</div>
<div id="main">
<!--TLのTL-->
<div id="timeline-container">
<h3>Welcome to TheDesk</h3><br><a href="acct.html">Add an account</a> or click <i class="material-icons">add</i> to add a column.
<h3>Welcome to TheDesk</h3><br><a href="acct.html">Add an account</a> or click <i class="material-icons">apps</i> to add a column.
</div>
</div>
</div>
@ -757,52 +781,23 @@ var tlid=0;
<button id="posttgl" class="btn waves-effect indigo" style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
<i class="material-icons" style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>Toot
</button>
</div>
</div>
<div class="leftside reverse" id="group">
<div class="btnsgroup"><span class="grouptitle">Columns:</span>
<a onclick="addToggle()" class="nex waves-effect" data-trans-i="add" id="add-tgl">
<i class="material-icons nex" title="Add a column" data-trans-title="column_add">add</i>
</a>
<a onclick="sortToggle()" class="nex waves-effect">
<i class="material-icons nex big-icon" title="Sort" data-trans-title="sort">sort</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Accounts:</span>
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="Account Manager(Ctrl+Shift+M)" data-trans-title="manager">account_circle</i>
</a>
<a onclick="srcToggle()" class="nex waves-effect" id="src-tgl">
<i class="material-icons" title="Search" data-trans-title="src">search</i>
</a>
<a onclick="listToggle()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="List" data-trans-title="list">view_headline</i>
</a>
<a onclick="filterToggle()" class="nex waves-effect" id="filter-tgl">
<i class="material-icons" title="Filter" data-trans-title="filter">filter_list</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Preferences:</span>
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons nex" title="Toot box reverse" data-trans-title="reverse">swap_horiz</i>
</a>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="Preferences(Ctrl+Shift+S)" data-trans-title="setting">settings</i>
</a>
<a href="index.html" class="nex mize waves-effect">
<i class="material-icons nex" title="Super Reload(F5/⌘+R)" data-trans-title="reload">refresh</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="The smallest Mastodon,TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="window.open('https://astarte.thedesk.top');" class="setting nex waves-effect" target="_blank" id="ranking-btn" style="display:none;">
<i class="material-icons nex" title="アスタルテランキング">timeline</i>
</a>
<a href="https://docs.thedesk.top" class="setting nex waves-effect" target="_blank">
<i class="material-icons nex" title="Help">help_outline</i>
</a>
</div>
</div>
</div>
<div class="btnsgroup">
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="Account Manager(Ctrl+Shift+M)">account_circle</i>
</a>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="Preferences(Ctrl+Shift+S)">settings</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="The smallest Mastodon,TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="menu()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="List">apps</i>
</a>
</div>
</div></div>
<div>
<div id="tips-menu">
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
@ -879,4 +874,5 @@ var tlid=0;
<script type="text/javascript" src="../../js/userdata/prof-edit.js"></script>
<script type="text/javascript" src="../../js/emoji/emojipack.js"></script>
<script type="text/javascript" src="../../js/emoji/default-emoji.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/ui/menu.js"></script>

View File

@ -79,6 +79,14 @@
TheDesk uses this value when it try to save pictures or take screenshots.<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">Change</button>
<br>
<h5>Disable hardware acceleration</h5>
Auto restarted
<br>
<input class="with-gap" onchange="hardwareAcceleration()" name="ha" type="radio" id="ha_true" value="true" />
<label for="ha_true">Yes</label>
<input class="with-gap" onchange="hardwareAcceleration()" name="ha" type="radio" id="ha_false" value="false" />
<label for="ha_false">No</label>
<br>
</div>
</li>
<li>
@ -312,8 +320,9 @@
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_mention" value="mention" />
<label for="q_mention">URL and acct(mention to the user)</label>
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_full" value="full" />
<label for="q_full">URL, text and acct(mention to the user)
</label>
<label for="q_full">URL, text and acct(mention to the user)</label>
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_nothing" value="nothing" />
<label for="q_nothing">Disabled(Hide buttons on TLs)</label>
<br>
<h5>Default accounts of actions</h5>
Main account can be set on Account Manager.<br>
@ -454,6 +463,7 @@
<li>X:Toggle toot box</li>
<li>Ctrl+Enter:Post</li>
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
<li>Alt+Enter:Secondary Toot Button</li>
<li>Ctrl+E:Make all notifications read</li>
<li>Esc:Hide toot box</li>
<li>F5:Super Reload</li>

View File

@ -32,7 +32,7 @@
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
<script>
var ver="Miria (17.2.0)";
var ver="Miria (17.3.0)";
//betaを入れるとバージョンチェックしない
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
//var ver="beta";
@ -54,7 +54,7 @@ var tlid=0;
</div>
</div>
<div id="post-box" class="z-depth-5">
<div id="post-bar">投稿</div>
<div id="post-bar" class="drag-bar">投稿</div>
<!--トゥートボックス-->
<div id="left-side">
<div class="row" style="margin-bottom:0;">
@ -125,7 +125,6 @@ var tlid=0;
<span class="sml gray pointer anti-markdown mize">
<a onclick="mdToggle()">Markdownエディタを表示</a>
</span>
<span id="suggest"></span>
</div>
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
<i class="waves-effect gray material-icons" id="nsfw" title="画像に制限を付与" onclick="nsfw()">visibility_off</i>
@ -202,6 +201,7 @@ var tlid=0;
</div>
</div>
<div id="right-side">
<div id="suggest"></div>
<!--絵文字ピッカー-->
<div id="emoji" class="hide">
<span class="gray sml">サーバーによって実装が異なります。
@ -582,17 +582,19 @@ var tlid=0;
<a href="https://thedesk.top" target="_blank">HP</a><br>
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
<br>
<div id="release-Miria_17-2-0" class="release-do" style="display:none; ">
<div id="release-Miria_17-2-1" class="release-do" style="display:none; ">
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
<h5>Release Note Miria (17.2.0)</h5>
カスタムテーマを実装。Misskeyのテーマとの一定の互換性あり。<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>から80を超えるテーマを入手。
<a href="https://thedesk.top/mias.html">注意点</a><br>
Misskeyのログイン方法変更につき、いちいちDevCenterに行かなくてもよくなりました。<br>
日本語でベタ書きしていたダイアログを一部多言語対応に変更。<br>
<h5>Release Note Miria (17.2.1)</h5>
多くの機能を「メニュー」に集約。結局何のボタンかわからないアイコンの羅列から解放。<br>
Alt+Enterでセカンダリートゥートボタン<br>
引用ボタンを表示しない設定(引用形式設定を「使用しない」)<br>
実況機能をまともに書き直した。<br>
サジェストをトゥートボックスの右に<br>
ハードウェアアクセラレーションを無効化するオプション。(設定の表示などが乱れるときに設定)<br>
返信時に「@」が複数含まれない仕様を訂正<br>
<img class="emoji" draggable="false" alt="⚠" src="https://twemoji.maxcdn.com/2/72x72/26a0.png">TheDeskのMisskeyについての機能追加は終了しています。<br>
</div>
<br><br>
@ -623,130 +625,152 @@ var tlid=0;
<i class="material-icons pointer" onclick="endPip()">close</i>
<div id="pip-content">
</div>
</div>
<!--カラム追加-->
<div id="add-box" class="hide z-depth-4 notf-box">
<div class="input-field"><span data-trans="your_acct">アカウントを選択</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">ローカル</option>
<option value="local-media" data-trans="local-media">ローカル(メディア)</option>
<option value="home" data-trans="home">ホーム</option>
<option value="pub" data-trans="public">連合</option>
<option value="pub-media" data-trans="public-media">連合(メディア)</option>
<option value="dm" data-trans="dm">ダイレクトメッセージ</option>
<option value="mix" data-trans="integrated">統合(ローカルとホーム)</option>
<option value="plus" data-trans="plus">統合(ローカルとブースト・リプライ)</option>
<option value="notf" data-trans="notification">通知</option>
</select>
<label data-trans="show_tl">表示するタイムライン</label>
</div>
<div id="noauth" class="hide">表示するタイムライン
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
</div>
<div id="webview-add" class="hide">TweetDeckを表示します。TJDeckをカスタムしたものが読み込まれます(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>)。キーボードショートカットが邪魔をするので、文字入力時はカラムの「WebView優先」にチェックを入れてください。
</div>
</div>
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
<i class="material-icons left">add</i>追加
</button>
<br>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide notf-box z-depth-4" style="width:500px">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">検索</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>検索
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>並べ替え設定
</button>
<button onclick="sortToggle()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="close">
<i class="material-icons left">close</i>Close
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>アカウントを選択</label>
</div>
<!--menu-->
<div id="menu" class="z-depth-5" style="display:none">
<div id="menu-bar" class="drag-bar"></div>
<span class="cancel">
<i class="material-icons waves-effect" onclick="menu()" title="このボックスを閉じる(X)">cancel</i>
</span>
<div id="menu-wrapper">
<div id="left-menu">
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i class="material-icons">add</i><span>カラム追加</span></div>
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i class="material-icons">sort</i><span>カラム一覧/並べ替え</span></div>
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i class="material-icons">search</i><span>検索</span></div>
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i class="material-icons">view_headline</i><span>リスト</span></div>
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i class="material-icons">filter_list</i><span>フィルター</span></div>
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>ヘルプ</span></div>
</div>
<div id="right-menu">
<!--カラム追加-->
<div id="add-box" class="hide menu-content">
<div class="input-field"><span data-trans="your_acct">アカウントを選択</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
一覧
</button>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">ローカル</option>
<option value="local-media" data-trans="local-media">ローカル(メディア)</option>
<option value="home" data-trans="home">ホーム</option>
<option value="pub" data-trans="public">連合</option>
<option value="pub-media" data-trans="public-media">連合(メディア)</option>
<option value="dm" data-trans="dm">ダイレクトメッセージ</option>
<option value="mix" data-trans="integrated">統合(ローカルとホーム)</option>
<option value="plus" data-trans="plus">統合(ローカルとブースト・リプライ)</option>
<option value="notf" data-trans="notification">通知</option>
</select>
<label data-trans="show_tl">表示するタイムライン</label>
</div>
<div id="noauth" class="hide">表示するタイムライン
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
</div>
<div id="webview-add" class="hide">TweetDeckを表示します。TJDeckをカスタムしたものが読み込まれます(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>)。キーボードショートカットが邪魔をするので、文字入力時はカラムの「WebView優先」にチェックを入れてください。
</div>
</div>
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
<i class="material-icons left">add</i>追加
</button>
<br>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide menu-content">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">検索</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>検索
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide menu-content">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>並べ替え設定
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide menu-content">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>アカウントを選択</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
一覧
</button>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="名前">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">新規作成</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide menu-content">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>アカウントを選択</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
一覧
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="フィルターワード"><br>
適応範囲<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">ホーム</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">ローカル</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">通知</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">会話</label><br>
オプション<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">単語マッチ</label><br>
<span class="sml">非ラテン系の文字列では「単語マッチ」は推奨されません。</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">除外</label><br>
<span class="sml">「除外」時マッチしたトゥートは非可逆的に除外され、削除後も閲覧できません。</span><br>
有効期限(あと)<span class="sml">未指定(または0分)で「無制限」になります。<b>仕様上数値の正確性を保証できません。</b></span><br><br>
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">
<input type="number" style="width:50px" id="hours_filter" placeholder="h" value="0">時間
<input type="number" style="width:50px" id="mins_filter" placeholder="m" value="0">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">追加</button><br>
<span class="sml">Integrated TL/Plus TLは、公開/ホームのフィルターワードが合算されて適応されます。どちらか一方の指定でも非表示になります。</span>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="名前">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">新規作成</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>アカウントを選択</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
一覧
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="フィルターワード"><br>
適応範囲<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">ホーム</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">ローカル</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">通知</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">会話</label><br>
オプション<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">単語マッチ</label><br>
<span class="sml">非ラテン系の文字列では「単語マッチ」は推奨されません。</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">除外</label><br>
<span class="sml">「除外」時マッチしたトゥートは非可逆的に除外され、削除後も閲覧できません。</span><br>
有効期限(あと)<span class="sml">未指定(または0分)で「無制限」になります。<b>仕様上数値の正確性を保証できません。</b></span><br><br>
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">
<input type="number" style="width:50px" id="hours_filter" placeholder="h" value="0">時間
<input type="number" style="width:50px" id="mins_filter" placeholder="m" value="0">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">追加</button><br>
<span class="sml">Integrated TL/Plus TLは、公開/ホームのフィルターワードが合算されて適応されます。どちらか一方の指定でも非表示になります。</span>
</div>
<a href="index.html" class="waves-effect">
<i class="material-icons" style="font-size: 1rem;">refresh</i>スーパーリロード
</a>&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>トゥートボタンの左右入れ替え
</a>
</div>
<div id="main">
<!--TLのTL-->
<div id="timeline-container">
<h3>Welcome to TheDesk</h3><br><a href="acct.html">アカウントを追加</a>するか下の<i class="material-icons">add</i>ボタンよりカラムを追加してください。
<h3>Welcome to TheDesk</h3><br><a href="acct.html">アカウントを追加</a>するか下の<i class="material-icons">apps</i>ボタンよりカラムを追加してください。
</div>
</div>
</div>
@ -757,52 +781,23 @@ var tlid=0;
<button id="posttgl" class="btn waves-effect indigo" style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
<i class="material-icons" style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>トゥート
</button>
</div>
</div>
<div class="leftside reverse" id="group">
<div class="btnsgroup"><span class="grouptitle">Columns:</span>
<a onclick="addToggle()" class="nex waves-effect" data-trans-i="add" id="add-tgl">
<i class="material-icons nex" title="カラム追加" data-trans-title="column_add">add</i>
</a>
<a onclick="sortToggle()" class="nex waves-effect">
<i class="material-icons nex big-icon" title="カラム一覧/並べ替え" data-trans-title="sort">sort</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Accounts:</span>
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="アカウントマネージャー(Ctrl+Shift+M)" data-trans-title="manager">account_circle</i>
</a>
<a onclick="srcToggle()" class="nex waves-effect" id="src-tgl">
<i class="material-icons" title="検索" data-trans-title="src">search</i>
</a>
<a onclick="listToggle()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="リスト" data-trans-title="list">view_headline</i>
</a>
<a onclick="filterToggle()" class="nex waves-effect" id="filter-tgl">
<i class="material-icons" title="フィルター" data-trans-title="filter">filter_list</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Preferences:</span>
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons nex" title="トゥートバーの左右入れ替え" data-trans-title="reverse">swap_horiz</i>
</a>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="設定(Ctrl+Shift+S)" data-trans-title="setting">settings</i>
</a>
<a href="index.html" class="nex mize waves-effect">
<i class="material-icons nex" title="スーパーリロード(F5/⌘+R)" data-trans-title="reload">refresh</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="最小のマストドン。TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="window.open('https://astarte.thedesk.top');" class="setting nex waves-effect" target="_blank" id="ranking-btn" style="display:none;">
<i class="material-icons nex" title="アスタルテランキング">timeline</i>
</a>
<a href="https://docs.thedesk.top" class="setting nex waves-effect" target="_blank">
<i class="material-icons nex" title="ヘルプ">help_outline</i>
</a>
</div>
</div>
</div>
<div class="btnsgroup">
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="アカウントマネージャー(Ctrl+Shift+M)">account_circle</i>
</a>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="設定(Ctrl+Shift+S)">settings</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="最小のマストドン。TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="menu()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="リスト">apps</i>
</a>
</div>
</div></div>
<div>
<div id="tips-menu">
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
@ -879,4 +874,5 @@ var tlid=0;
<script type="text/javascript" src="../../js/userdata/prof-edit.js"></script>
<script type="text/javascript" src="../../js/emoji/emojipack.js"></script>
<script type="text/javascript" src="../../js/emoji/default-emoji.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/ui/menu.js"></script>

View File

@ -79,6 +79,14 @@
画像ダウンロードやスクリーンショットに影響します。<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">変更</button>
<br>
<h5>ハードウェアアクセラレーションの無効化</h5>
表示(特に設定画面)が乱れる場合に「はい」を選択してください。自動で再起動します。
<br>
<input class="with-gap" onchange="hardwareAcceleration()" name="ha" type="radio" id="ha_true" value="true" />
<label for="ha_true">はい</label>
<input class="with-gap" onchange="hardwareAcceleration()" name="ha" type="radio" id="ha_false" value="false" />
<label for="ha_false">いいえ</label>
<br>
</div>
</li>
<li>
@ -312,8 +320,9 @@
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_mention" value="mention" />
<label for="q_mention">URLとアカウント名(相手に通知)</label>
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_full" value="full" />
<label for="q_full">本文・URL・アカウント名
</label>
<label for="q_full">本文・URL・アカウント名</label>
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_nothing" value="nothing" />
<label for="q_nothing">使わない(TL上にボタンも表示されません)</label>
<br>
<h5>投稿後や起動時のアカウント</h5>
メインアカウントはアカウント設定で指定できます。投稿以外のアカウント選択にも影響します。<br>
@ -454,6 +463,7 @@
<li>X:投稿パネルを開閉</li>
<li>Ctrl+Enter:投稿</li>
<li>Ctrl+Enter+Shift:投稿(セカンダリートゥート)</li>
<li>Alt+Enter:セカンダリートゥートボタン</li>
<li>Ctrl+E:全ての通知を既読にする</li>
<li>Esc:投稿パネルを消す</li>
<li>F5:スーパーリロード</li>

View File

@ -54,7 +54,7 @@ var tlid=0;
</div>
</div>
<div id="post-box" class="z-depth-5">
<div id="post-bar">{{post-new}}</div>
<div id="post-bar" class="drag-bar">{{post-new}}</div>
<!--トゥートボックス-->
<div id="left-side">
<div class="row" style="margin-bottom:0;">
@ -125,7 +125,6 @@ var tlid=0;
<span class="sml gray pointer anti-markdown mize">
<a onclick="mdToggle()">Markdownエディタを表示</a>
</span>
<span id="suggest"></span>
</div>
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
<i class="waves-effect gray material-icons" id="nsfw" title="{{nsfwDes}}" onclick="nsfw()">visibility_off</i>
@ -202,6 +201,7 @@ var tlid=0;
</div>
</div>
<div id="right-side">
<div id="suggest"></div>
<!--絵文字ピッカー-->
<div id="emoji" class="hide">
<span class="gray sml">{{emojiWarn}}
@ -582,17 +582,19 @@ var tlid=0;
<a href="https://thedesk.top" target="_blank">HP</a><br>
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
<br>
<div id="release-Miria_17-2-0" class="release-do" style="display:none; ">
<div id="release-Miria_17-2-1" class="release-do" style="display:none; ">
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
<h5>Release Note Miria (17.2.0)</h5>
カスタムテーマを実装。Misskeyのテーマとの一定の互換性あり。<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>から80を超えるテーマを入手。
<a href="https://thedesk.top/mias.html">注意点</a><br>
Misskeyのログイン方法変更につき、いちいちDevCenterに行かなくてもよくなりました。<br>
日本語でベタ書きしていたダイアログを一部多言語対応に変更。<br>
<h5>Release Note Miria (17.2.1)</h5>
多くの機能を「メニュー」に集約。結局何のボタンかわからないアイコンの羅列から解放。<br>
Alt+Enterでセカンダリートゥートボタン<br>
引用ボタンを表示しない設定(引用形式設定を「使用しない」)<br>
実況機能をまともに書き直した。<br>
サジェストをトゥートボックスの右に<br>
ハードウェアアクセラレーションを無効化するオプション。(設定の表示などが乱れるときに設定)<br>
返信時に「@」が複数含まれない仕様を訂正<br>
<img class="emoji" draggable="false" alt="⚠" src="https://twemoji.maxcdn.com/2/72x72/26a0.png">TheDeskのMisskeyについての機能追加は終了しています。<br>
</div>
<br><br>
@ -623,125 +625,147 @@ var tlid=0;
<i class="material-icons pointer" onclick="endPip()">close</i>
<div id="pip-content">
</div>
</div>
<!--カラム追加-->
<div id="add-box" class="hide z-depth-4 notf-box">
<div class="input-field"><span data-trans="your_acct">{{selectAcct}}</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">{{local}}</option>
<option value="local-media" data-trans="local-media">{{localMedia}}</option>
<option value="home" data-trans="home">{{home}}</option>
<option value="pub" data-trans="public">{{fed}}</option>
<option value="pub-media" data-trans="public-media">{{fedMedia}}</option>
<option value="dm" data-trans="dm">{{dm}}</option>
<option value="mix" data-trans="integrated">{{integratedTLDes}}</option>
<option value="plus" data-trans="plus">{{localPlusDes}}</option>
<option value="notf" data-trans="notification">{{notf}}</option>
</select>
<label data-trans="show_tl">{{showThisTL}}</label>
</div>
<div id="noauth" class="hide">{{showThisTL}}
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
</div>
<div id="webview-add" class="hide">{{webviewWarn}}
</div>
</div>
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
<i class="material-icons left">add</i>{{add}}
</button>
<br>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide notf-box z-depth-4" style="width:500px">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">{{search}}</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>{{search}}
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>{{sortSet}}
</button>
<button onclick="sortToggle()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="close">
<i class="material-icons left">close</i>{{close}}
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>{{selectAcct}}</label>
</div>
<!--menu-->
<div id="menu" class="z-depth-5" style="display:none">
<div id="menu-bar" class="drag-bar"></div>
<span class="cancel">
<i class="material-icons waves-effect" onclick="menu()" title="{{closeThisBox}}(X)">cancel</i>
</span>
<div id="menu-wrapper">
<div id="left-menu">
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i class="material-icons">add</i><span>{{addColumn}}</span></div>
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i class="material-icons">sort</i><span>{{sortColumns}}</span></div>
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i class="material-icons">search</i><span>{{search}}</span></div>
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i class="material-icons">view_headline</i><span>{{list}}</span></div>
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i class="material-icons">filter_list</i><span>{{filter}}</span></div>
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>{{help}}</span></div>
</div>
<div id="right-menu">
<!--カラム追加-->
<div id="add-box" class="hide menu-content">
<div class="input-field"><span data-trans="your_acct">{{selectAcct}}</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
{{listLocale}}
</button>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">{{local}}</option>
<option value="local-media" data-trans="local-media">{{localMedia}}</option>
<option value="home" data-trans="home">{{home}}</option>
<option value="pub" data-trans="public">{{fed}}</option>
<option value="pub-media" data-trans="public-media">{{fedMedia}}</option>
<option value="dm" data-trans="dm">{{dm}}</option>
<option value="mix" data-trans="integrated">{{integratedTLDes}}</option>
<option value="plus" data-trans="plus">{{localPlusDes}}</option>
<option value="notf" data-trans="notification">{{notf}}</option>
</select>
<label data-trans="show_tl">{{showThisTL}}</label>
</div>
<div id="noauth" class="hide">{{showThisTL}}
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
</div>
<div id="webview-add" class="hide">{{webviewWarn}}
</div>
</div>
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
<i class="material-icons left">add</i>{{add}}
</button>
<br>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide menu-content">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">{{search}}</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>{{search}}
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide menu-content">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>{{sortSet}}
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide menu-content">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>{{selectAcct}}</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
{{listLocale}}
</button>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="{{name}}">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">{{makeNew}}</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide menu-content">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>{{selectAcct}}</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
{{listLocale}}
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="{{filterWord}}"><br>
{{degree}}<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">{{home}}</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">{{local}}</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">{{notf}}</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">{{conver}}</label><br>
{{option}}<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">{{matchWord}}</label><br>
<span class="sml">{{warnMatchWord}}</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">{{except}}</label><br>
<span class="sml">{{exceptWorn}}</span><br>
{{avalableBefore}}<span class="sml">{{warnAvBefore}}<b>{{warnAvBefore2}}</b></span><br><br>
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">{{days}}
<input type="number" style="width:50px" id="hours_filter" placeholder="h" value="0">{{hours}}
<input type="number" style="width:50px" id="mins_filter" placeholder="m" value="0">{{mins}}
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">{{add}}</button><br>
<span class="sml">{{warnOnIntegratedTL}}</span>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="{{name}}">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">{{makeNew}}</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>{{selectAcct}}</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
{{listLocale}}
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="{{filterWord}}"><br>
{{degree}}<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">{{home}}</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">{{local}}</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">{{notf}}</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">{{conver}}</label><br>
{{option}}<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">{{matchWord}}</label><br>
<span class="sml">{{warnMatchWord}}</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">{{except}}</label><br>
<span class="sml">{{exceptWorn}}</span><br>
{{avalableBefore}}<span class="sml">{{warnAvBefore}}<b>{{warnAvBefore2}}</b></span><br><br>
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">{{days}}
<input type="number" style="width:50px" id="hours_filter" placeholder="h" value="0">{{hours}}
<input type="number" style="width:50px" id="mins_filter" placeholder="m" value="0">{{mins}}
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">{{add}}</button><br>
<span class="sml">{{warnOnIntegratedTL}}</span>
</div>
<a href="index.html" class="waves-effect">
<i class="material-icons" style="font-size: 1rem;">refresh</i>{{f5}}
</a>&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>{{reverse}}
</a>
</div>
<div id="main">
<!--TLのTL-->
@ -757,52 +781,23 @@ var tlid=0;
<button id="posttgl" class="btn waves-effect indigo" style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
<i class="material-icons" style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>{{toot}}
</button>
</div>
</div>
<div class="leftside reverse" id="group">
<div class="btnsgroup"><span class="grouptitle">Columns:</span>
<a onclick="addToggle()" class="nex waves-effect" data-trans-i="add" id="add-tgl">
<i class="material-icons nex" title="{{addColumn}}" data-trans-title="column_add">add</i>
</a>
<a onclick="sortToggle()" class="nex waves-effect">
<i class="material-icons nex big-icon" title="{{sortColumns}}" data-trans-title="sort">sort</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Accounts:</span>
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="{{acctMan}}(Ctrl+Shift+M)" data-trans-title="manager">account_circle</i>
</a>
<a onclick="srcToggle()" class="nex waves-effect" id="src-tgl">
<i class="material-icons" title="{{search}}" data-trans-title="src">search</i>
</a>
<a onclick="listToggle()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="{{list}}" data-trans-title="list">view_headline</i>
</a>
<a onclick="filterToggle()" class="nex waves-effect" id="filter-tgl">
<i class="material-icons" title="{{filter}}" data-trans-title="filter">filter_list</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Preferences:</span>
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons nex" title="{{reverse}}" data-trans-title="reverse">swap_horiz</i>
</a>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="{{setting}}(Ctrl+Shift+S)" data-trans-title="setting">settings</i>
</a>
<a href="index.html" class="nex mize waves-effect">
<i class="material-icons nex" title="{{f5}}(F5/⌘+R)" data-trans-title="reload">refresh</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="{{nanoDes}}TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="window.open('https://astarte.thedesk.top');" class="setting nex waves-effect" target="_blank" id="ranking-btn" style="display:none;">
<i class="material-icons nex" title="アスタルテランキング">timeline</i>
</a>
<a href="https://docs.thedesk.top" class="setting nex waves-effect" target="_blank">
<i class="material-icons nex" title="{{help}}">help_outline</i>
</a>
</div>
</div>
</div>
<div class="btnsgroup">
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="{{acctMan}}(Ctrl+Shift+M)">account_circle</i>
</a>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="{{setting}}(Ctrl+Shift+S)">settings</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="{{nanoDes}}TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="menu()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="{{list}}">apps</i>
</a>
</div>
</div></div>
<div>
<div id="tips-menu">
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
@ -879,4 +874,5 @@ var tlid=0;
<script type="text/javascript" src="../../js/userdata/prof-edit.js"></script>
<script type="text/javascript" src="../../js/emoji/emojipack.js"></script>
<script type="text/javascript" src="../../js/emoji/default-emoji.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/ui/menu.js"></script>

View File

@ -141,13 +141,13 @@
"mins":"minutes",
"secs":"seconds",
"warnOnIntegratedTL":"Integrated TL/Plus TL will hide both Home-filtering words and Local-filtering words.",
"helloTheDesk":"<h3>Welcome to TheDesk</h3><br><a href=\"acct.html\">Add an account</a> or click <i class=\"material-icons\">add</i> to add a column.",
"helloTheDesk":"<h3>Welcome to TheDesk</h3><br><a href=\"acct.html\">Add an account</a> or click <i class=\"material-icons\">apps</i> to add a column.",
"addColumn":"Add a column",
"sortColumns":"Sort",
"acctMan":"Account Manager",
"filter":"Filter",
"setting":"Preferences",
"reverse":"Toot box reverse",
"reverse":"Toot button layout reverse",
"f5":"Super Reload",
"nanoDes":"The smallest Mastodon,",
"verTips":"Version",

View File

@ -141,13 +141,13 @@
"mins":"分",
"secs":"秒",
"warnOnIntegratedTL":"Integrated TL/Plus TLは、公開/ホームのフィルターワードが合算されて適応されます。どちらか一方の指定でも非表示になります。",
"helloTheDesk":"<h3>Welcome to TheDesk</h3><br><a href=\"acct.html\">アカウントを追加</a>するか下の<i class=\"material-icons\">add</i>ボタンよりカラムを追加してください。",
"helloTheDesk":"<h3>Welcome to TheDesk</h3><br><a href=\"acct.html\">アカウントを追加</a>するか下の<i class=\"material-icons\">apps</i>ボタンよりカラムを追加してください。",
"addColumn":"カラム追加",
"sortColumns":"カラム一覧/並べ替え",
"acctMan":"アカウントマネージャー",
"filter":"フィルター",
"setting":"設定",
"reverse":"トゥートバーの左右入れ替え",
"reverse":"トゥートボタンの左右入れ替え",
"f5":"スーパーリロード",
"nanoDes":"最小のマストドン。",
"verTips":"バージョン",

View File

@ -10,6 +10,8 @@
"backup":"Import and export of preferences",
"import":"Import",
"export":"Export",
"hardwareAcceleration":"Disable hardware acceleration",
"hardwareAccelerationWarn":"Auto restarted",
"theme":"Themes",
"popup":"Popup notification(on Windows)",
"popupwarn":"Hide to set \"0\"",
@ -102,6 +104,7 @@
"simple":"Only URL",
"mention":"URL and acct(mention to the user)",
"full":"URL, text and acct(mention to the user)",
"notqt":"Disabled(Hide buttons on TLs)",
"main":"Default accounts of actions",
"mainwarn":"Main account can be set on Account Manager.",
"lastacct":"Account you used recently",

View File

@ -10,6 +10,8 @@
"backup":"設定のインポートとエクスポート",
"import":"インポート",
"export":"エクスポート",
"hardwareAcceleration":"ハードウェアアクセラレーションの無効化",
"hardwareAccelerationWarn":"表示(特に設定画面)が乱れる場合に「はい」を選択してください。自動で再起動します。",
"theme":"テーマの設定",
"popup":"新規通知のポップアップお知らせの表示秒数",
"popupwarn":"0に設定すると表示されません",
@ -102,6 +104,7 @@
"simple":"URLのみ",
"mention":"URLとアカウント名(相手に通知)",
"full":"本文・URL・アカウント名",
"notqt":"使わない(TL上にボタンも表示されません)",
"main":"投稿後や起動時のアカウント",
"mainwarn":"メインアカウントはアカウント設定で指定できます。投稿以外のアカウント選択にも影響します。",
"lastacct":"最後に使用したアカウント",

View File

@ -79,6 +79,14 @@
{{savefolderwarn}}<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">{{change}}</button>
<br>
<h5>{{hardwareAcceleration}}</h5>
{{hardwareAccelerationWarn}}
<br>
<input class="with-gap" onchange="hardwareAcceleration()" name="ha" type="radio" id="ha_true" value="true" />
<label for="ha_true">{{yes}}</label>
<input class="with-gap" onchange="hardwareAcceleration()" name="ha" type="radio" id="ha_false" value="false" />
<label for="ha_false">{{no}}</label>
<br>
</div>
</li>
<li>
@ -312,8 +320,9 @@
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_mention" value="mention" />
<label for="q_mention">{{mention}}</label>
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_full" value="full" />
<label for="q_full">{{full}}
</label>
<label for="q_full">{{full}}</label>
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_nothing" value="nothing" />
<label for="q_nothing">{{notqt}}</label>
<br>
<h5>{{main}}</h5>
{{mainwarn}}<br>
@ -454,6 +463,7 @@
<li>X:{{keytoggle}}</li>
<li>Ctrl+Enter:{{keypost}}</li>
<li>Ctrl+Enter+Shift:{{keysecpost}}</li>
<li>Alt+Enter:{{secondary}}</li>
<li>Ctrl+E:{{keyunread}}</li>
<li>Esc:{{keyesc}}</li>
<li>F5:{{keyf5}}</li>

View File

@ -20,13 +20,13 @@ body,html{overflow-y: scroll;}
.card .colorsel div.exc{width:40px;height:20px;}
</style>
<meta charset="utf-8">
{{comment-start}}
<script type="text/javascript">
var _jipt = [];
_jipt.push(['project', 'thedesk']);
</script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
{{comment-end}}
</head>
<body id="mainView">
<script type="text/javascript" src="../../js/common/jquery.js"></script>

View File

@ -13,13 +13,13 @@
<link href='../../css/sort.css' rel='stylesheet' type='text/css'>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300|Baloo+Bhai" rel="stylesheet">
<meta charset="utf-8">
{{comment-start}}
<script type="text/javascript">
var _jipt = [];
_jipt.push(['project', 'thedesk']);
</script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
{{comment-end}}
</head>
<body>
<script type="text/javascript" src="../../js/common/jquery.js"></script>
@ -32,7 +32,7 @@
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
<script>
var ver="Miria (17.2.0)";
var ver="Miria (17.3.0)";
//betaを入れるとバージョンチェックしない
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
//var ver="beta";
@ -54,7 +54,7 @@ var tlid=0;
</div>
</div>
<div id="post-box" class="z-depth-5">
<div id="post-bar">crwdns2402:0crwdne2402:0</div>
<div id="post-bar" class="drag-bar">crwdns2402:0crwdne2402:0</div>
<!--トゥートボックス-->
<div id="left-side">
<div class="row" style="margin-bottom:0;">
@ -125,7 +125,6 @@ var tlid=0;
<span class="sml gray pointer anti-markdown mize">
<a onclick="mdToggle()">Markdownエディタを表示</a>
</span>
<span id="suggest"></span>
</div>
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
<i class="waves-effect gray material-icons" id="nsfw" title="crwdns389:0crwdne389:0" onclick="nsfw()">visibility_off</i>
@ -202,6 +201,7 @@ var tlid=0;
</div>
</div>
<div id="right-side">
<div id="suggest"></div>
<!--絵文字ピッカー-->
<div id="emoji" class="hide">
<span class="gray sml">crwdns409:0crwdne409:0
@ -582,17 +582,19 @@ var tlid=0;
<a href="https://thedesk.top" target="_blank">HP</a><br>
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
<br>
<div id="release-Miria_17-2-0" class="release-do" style="display:none; ">
<div id="release-Miria_17-2-1" class="release-do" style="display:none; ">
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
<h5>Release Note Miria (17.2.0)</h5>
カスタムテーマを実装。Misskeyのテーマとの一定の互換性あり。<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>から80を超えるテーマを入手。
<a href="https://thedesk.top/mias.html">注意点</a><br>
Misskeyのログイン方法変更につき、いちいちDevCenterに行かなくてもよくなりました。<br>
日本語でベタ書きしていたダイアログを一部多言語対応に変更。<br>
<h5>Release Note Miria (17.2.1)</h5>
多くの機能を「メニュー」に集約。結局何のボタンかわからないアイコンの羅列から解放。<br>
Alt+Enterでセカンダリートゥートボタン<br>
引用ボタンを表示しない設定(引用形式設定を「使用しない」)<br>
実況機能をまともに書き直した。<br>
サジェストをトゥートボックスの右に<br>
ハードウェアアクセラレーションを無効化するオプション。(設定の表示などが乱れるときに設定)<br>
返信時に「@」が複数含まれない仕様を訂正<br>
<img class="emoji" draggable="false" alt="⚠" src="https://twemoji.maxcdn.com/2/72x72/26a0.png">TheDeskのMisskeyについての機能追加は終了しています。<br>
</div>
<br><br>
@ -623,125 +625,147 @@ var tlid=0;
<i class="material-icons pointer" onclick="endPip()">close</i>
<div id="pip-content">
</div>
</div>
<!--カラム追加-->
<div id="add-box" class="hide z-depth-4 notf-box">
<div class="input-field"><span data-trans="your_acct">crwdns494:0crwdne494:0</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">crwdns480:0crwdne480:0</option>
<option value="local-media" data-trans="local-media">crwdns481:0crwdne481:0</option>
<option value="home" data-trans="home">crwdns482:0crwdne482:0</option>
<option value="pub" data-trans="public">crwdns483:0crwdne483:0</option>
<option value="pub-media" data-trans="public-media">crwdns484:0crwdne484:0</option>
<option value="dm" data-trans="dm">crwdns485:0crwdne485:0</option>
<option value="mix" data-trans="integrated">crwdns486:0crwdne486:0</option>
<option value="plus" data-trans="plus">crwdns487:0crwdne487:0</option>
<option value="notf" data-trans="notification">crwdns488:0crwdne488:0</option>
</select>
<label data-trans="show_tl">crwdns489:0crwdne489:0</label>
</div>
<div id="noauth" class="hide">crwdns489:0crwdne489:0
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
</div>
<div id="webview-add" class="hide">crwdns490:0crwdne490:0
</div>
</div>
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
<i class="material-icons left">add</i>crwdns491:0crwdne491:0
</button>
<br>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide notf-box z-depth-4" style="width:500px">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">crwdns492:0crwdne492:0</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>crwdns492:0crwdne492:0
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>crwdns493:0crwdne493:0
</button>
<button onclick="sortToggle()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="close">
<i class="material-icons left">close</i>crwdns385:0crwdne385:0
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>crwdns494:0crwdne494:0</label>
</div>
<!--menu-->
<div id="menu" class="z-depth-5" style="display:none">
<div id="menu-bar" class="drag-bar"></div>
<span class="cancel">
<i class="material-icons waves-effect" onclick="menu()" title="crwdns412:0crwdne412:0(X)">cancel</i>
</span>
<div id="menu-wrapper">
<div id="left-menu">
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i class="material-icons">add</i><span>crwdns512:0crwdne512:0</span></div>
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i class="material-icons">sort</i><span>crwdns513:0crwdne513:0</span></div>
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i class="material-icons">search</i><span>crwdns492:0crwdne492:0</span></div>
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i class="material-icons">view_headline</i><span>crwdns444:0crwdne444:0</span></div>
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i class="material-icons">filter_list</i><span>crwdns515:0crwdne515:0</span></div>
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>crwdns1894:0crwdne1894:0</span></div>
</div>
<div id="right-menu">
<!--カラム追加-->
<div id="add-box" class="hide menu-content">
<div class="input-field"><span data-trans="your_acct">crwdns494:0crwdne494:0</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
crwdns495:0crwdne495:0
</button>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">crwdns480:0crwdne480:0</option>
<option value="local-media" data-trans="local-media">crwdns481:0crwdne481:0</option>
<option value="home" data-trans="home">crwdns482:0crwdne482:0</option>
<option value="pub" data-trans="public">crwdns483:0crwdne483:0</option>
<option value="pub-media" data-trans="public-media">crwdns484:0crwdne484:0</option>
<option value="dm" data-trans="dm">crwdns485:0crwdne485:0</option>
<option value="mix" data-trans="integrated">crwdns486:0crwdne486:0</option>
<option value="plus" data-trans="plus">crwdns487:0crwdne487:0</option>
<option value="notf" data-trans="notification">crwdns488:0crwdne488:0</option>
</select>
<label data-trans="show_tl">crwdns489:0crwdne489:0</label>
</div>
<div id="noauth" class="hide">crwdns489:0crwdne489:0
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
</div>
<div id="webview-add" class="hide">crwdns490:0crwdne490:0
</div>
</div>
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
<i class="material-icons left">add</i>crwdns491:0crwdne491:0
</button>
<br>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide menu-content">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">crwdns492:0crwdne492:0</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>crwdns492:0crwdne492:0
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide menu-content">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>crwdns493:0crwdne493:0
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide menu-content">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>crwdns494:0crwdne494:0</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
crwdns495:0crwdne495:0
</button>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="crwdns465:0crwdne465:0">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">crwdns445:0crwdne445:0</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide menu-content">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>crwdns494:0crwdne494:0</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
crwdns495:0crwdne495:0
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="crwdns496:0crwdne496:0"><br>
crwdns497:0crwdne497:0<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">crwdns482:0crwdne482:0</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">crwdns480:0crwdne480:0</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">crwdns488:0crwdne488:0</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">crwdns498:0crwdne498:0</label><br>
crwdns499:0crwdne499:0<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">crwdns500:0crwdne500:0</label><br>
<span class="sml">crwdns501:0crwdne501:0</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">crwdns502:0crwdne502:0</label><br>
<span class="sml">crwdns503:0crwdne503:0</span><br>
crwdns504:0crwdne504:0<span class="sml">crwdns505:0crwdne505:0<b>crwdns506:0crwdne506:0</b></span><br><br>
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">crwdns507:0crwdne507:0
<input type="number" style="width:50px" id="hours_filter" placeholder="h" value="0">crwdns508:0crwdne508:0
<input type="number" style="width:50px" id="mins_filter" placeholder="m" value="0">crwdns509:0crwdne509:0
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">crwdns491:0crwdne491:0</button><br>
<span class="sml">crwdns510:0crwdne510:0</span>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="crwdns465:0crwdne465:0">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">crwdns445:0crwdne445:0</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>crwdns494:0crwdne494:0</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
crwdns495:0crwdne495:0
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="crwdns496:0crwdne496:0"><br>
crwdns497:0crwdne497:0<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">crwdns482:0crwdne482:0</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">crwdns480:0crwdne480:0</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">crwdns488:0crwdne488:0</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">crwdns498:0crwdne498:0</label><br>
crwdns499:0crwdne499:0<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">crwdns500:0crwdne500:0</label><br>
<span class="sml">crwdns501:0crwdne501:0</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">crwdns502:0crwdne502:0</label><br>
<span class="sml">crwdns503:0crwdne503:0</span><br>
crwdns504:0crwdne504:0<span class="sml">crwdns505:0crwdne505:0<b>crwdns506:0crwdne506:0</b></span><br><br>
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">crwdns507:0crwdne507:0
<input type="number" style="width:50px" id="hours_filter" placeholder="h" value="0">crwdns508:0crwdne508:0
<input type="number" style="width:50px" id="mins_filter" placeholder="m" value="0">crwdns509:0crwdne509:0
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">crwdns491:0crwdne491:0</button><br>
<span class="sml">crwdns510:0crwdne510:0</span>
</div>
<a href="index.html" class="waves-effect">
<i class="material-icons" style="font-size: 1rem;">refresh</i>crwdns518:0crwdne518:0
</a>&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>crwdns517:0crwdne517:0
</a>
</div>
<div id="main">
<!--TLのTL-->
@ -757,52 +781,23 @@ var tlid=0;
<button id="posttgl" class="btn waves-effect indigo" style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
<i class="material-icons" style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>crwdns388:0crwdne388:0
</button>
</div>
</div>
<div class="leftside reverse" id="group">
<div class="btnsgroup"><span class="grouptitle">Columns:</span>
<a onclick="addToggle()" class="nex waves-effect" data-trans-i="add" id="add-tgl">
<i class="material-icons nex" title="crwdns512:0crwdne512:0" data-trans-title="column_add">add</i>
</a>
<a onclick="sortToggle()" class="nex waves-effect">
<i class="material-icons nex big-icon" title="crwdns513:0crwdne513:0" data-trans-title="sort">sort</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Accounts:</span>
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="crwdns514:0crwdne514:0(Ctrl+Shift+M)" data-trans-title="manager">account_circle</i>
</a>
<a onclick="srcToggle()" class="nex waves-effect" id="src-tgl">
<i class="material-icons" title="crwdns492:0crwdne492:0" data-trans-title="src">search</i>
</a>
<a onclick="listToggle()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="crwdns444:0crwdne444:0" data-trans-title="list">view_headline</i>
</a>
<a onclick="filterToggle()" class="nex waves-effect" id="filter-tgl">
<i class="material-icons" title="crwdns515:0crwdne515:0" data-trans-title="filter">filter_list</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Preferences:</span>
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons nex" title="crwdns517:0crwdne517:0" data-trans-title="reverse">swap_horiz</i>
</a>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="crwdns516:0crwdne516:0(Ctrl+Shift+S)" data-trans-title="setting">settings</i>
</a>
<a href="index.html" class="nex mize waves-effect">
<i class="material-icons nex" title="crwdns518:0crwdne518:0(F5/⌘+R)" data-trans-title="reload">refresh</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="crwdns519:0crwdne519:0TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="window.open('https://astarte.thedesk.top');" class="setting nex waves-effect" target="_blank" id="ranking-btn" style="display:none;">
<i class="material-icons nex" title="アスタルテランキング">timeline</i>
</a>
<a href="https://docs.thedesk.top" class="setting nex waves-effect" target="_blank">
<i class="material-icons nex" title="crwdns1894:0crwdne1894:0">help_outline</i>
</a>
</div>
</div>
</div>
<div class="btnsgroup">
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="crwdns514:0crwdne514:0(Ctrl+Shift+M)">account_circle</i>
</a>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="crwdns516:0crwdne516:0(Ctrl+Shift+S)">settings</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="crwdns519:0crwdne519:0TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="menu()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="crwdns444:0crwdne444:0">apps</i>
</a>
</div>
</div></div>
<div>
<div id="tips-menu">
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
@ -879,4 +874,5 @@ var tlid=0;
<script type="text/javascript" src="../../js/userdata/prof-edit.js"></script>
<script type="text/javascript" src="../../js/emoji/emojipack.js"></script>
<script type="text/javascript" src="../../js/emoji/default-emoji.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/ui/menu.js"></script>

View File

@ -2,13 +2,13 @@
<html lang="ps">
<head>
<title>Settings - TheDesk</title>
{{comment-start}}
<script type="text/javascript">
var _jipt = [];
_jipt.push(['project', 'thedesk']);
</script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
{{comment-end}}
<meta content="width=device-width,initial-scale=1.0" name="viewport">
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
@ -79,6 +79,14 @@
crwdns548:0crwdne548:0<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">crwdns528:0crwdne528:0</button>
<br>
<h5>{{hardwareAcceleration}}</h5>
{{hardwareAccelerationWarn}}
<br>
<input class="with-gap" onchange="hardwareAcceleration()" name="ha" type="radio" id="ha_true" value="true" />
<label for="ha_true">crwdns526:0crwdne526:0</label>
<input class="with-gap" onchange="hardwareAcceleration()" name="ha" type="radio" id="ha_false" value="false" />
<label for="ha_false">crwdns527:0crwdne527:0</label>
<br>
</div>
</li>
<li>
@ -312,8 +320,9 @@
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_mention" value="mention" />
<label for="q_mention">crwdns605:0crwdne605:0</label>
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_full" value="full" />
<label for="q_full">crwdns606:0crwdne606:0
</label>
<label for="q_full">crwdns606:0crwdne606:0</label>
<input class="with-gap" onchange="settings()" name="quote" type="radio" id="q_nothing" value="nothing" />
<label for="q_nothing">{{notqt}}</label>
<br>
<h5>crwdns607:0crwdne607:0</h5>
crwdns608:0crwdne608:0<br>
@ -454,6 +463,7 @@
<li>X:crwdns650:0crwdne650:0</li>
<li>Ctrl+Enter:crwdns651:0crwdne651:0</li>
<li>Ctrl+Enter+Shift:crwdns1924:0crwdne1924:0</li>
<li>Alt+Enter:crwdns1916:0crwdne1916:0</li>
<li>Ctrl+E:crwdns652:0crwdne652:0</li>
<li>Esc:crwdns653:0crwdne653:0</li>
<li>F5:crwdns654:0crwdne654:0</li>

View File

@ -6,13 +6,13 @@
<link href="../../css/master.css" type="text/css" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
<meta charset="utf-8">
{{comment-start}}
<script type="text/javascript">
var _jipt = [];
_jipt.push(['project', 'thedesk']);
</script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
{{comment-end}}
</head>
<body>
<style>