Add header height and notification tile style

This commit is contained in:
cutls 2021-04-15 05:02:33 +09:00
parent fcedefe815
commit 54031da417
16 changed files with 135 additions and 42 deletions

View File

@ -260,7 +260,7 @@ iframe,
width: 100%;
display: grid;
grid-template-columns: 3.3rem 2fr 1fr;
grid-template-rows: auto 1.6rem 1fr auto 2.5rem;
grid-template-rows: auto 1.6rem 1fr auto 1.9rem;
grid-template-areas: 'notice notice notice' 'icon display_name display_name' 'space toot toot' 'space additional additional' 'vis actions side';
}
.hide-actions {
@ -353,15 +353,26 @@ iframe,
.area-actions {
padding: 0;
margin: 0;
top: -0.4rem;
position: relative;
display: flex;
justify-content: space-around;
max-width: 100%;
grid-area: actions;
}
.area-actions .btn-flat {
height: 1rem;
line-height: 1rem;
}
.area-actions .btn-flat,
.area-vis i,
.area-side .btn-flat {
margin: 0;
}
.area-side i {
line-height: initial;
}
.area-vis {
margin: 0.4rem;
margin: 0.2rem;
grid-area: vis;
text-align: center;
}
@ -534,6 +545,18 @@ p:not(:last-child) {
grid-template-rows: 2.3rem 2.3rem;
grid-template-areas: 'notice notice_name notice_name a2' 'notice a1 sta a3' 'notf-box notf-box notf-box notf-box';
}
.small-header.notice-box {
min-height: 2rem;
grid-template-columns: 2.3rem 1fr 5rem 2rem 2rem;
grid-template-rows: 1.8rem;
grid-template-areas: 'notice notice_name a1 a3 a2';
}
.small-header.has-notf.notice-box {
min-height: 2rem;
grid-template-columns: 2.3rem 1fr 8rem 5rem 2rem 2rem;
grid-template-rows: 1.8rem;
grid-template-areas: 'notice notice_name sta a1 a3 a2';
}
.emp {
font-weight: bold;
text-decoration: underline;
@ -542,6 +565,25 @@ p:not(:last-child) {
.area-notice {
grid-area: notice;
}
.small-header .area-notice {
margin: 0;
}
.small-header .area-sta {
display: none;
}
.small-header.has-notf .area-sta {
overflow-x: scroll;
overflow-y: hidden;
height: 2rem;
width: 8rem;
display: flex;
}
.area-sta .hide {
display: inline-block !important;
}
.small-header .area-sta::-webkit-scrollbar {
height: 5px;
}
.area-notice_name {
grid-area: notice_name;
@ -558,6 +600,10 @@ p:not(:last-child) {
grid-area: a1;
}
.area-sta {
display: none;
}
.has-notf .area-sta {
display: block;
text-align: center;
grid-area: sta;
}
@ -624,8 +670,7 @@ p:not(:last-child) {
border: thin solid gray;
border-bottom: 2px solid white;
grid-area: notf-box;
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12),
0 5px 5px -3px rgba(0, 0, 0, 0.3), 0px -10px 10px 0px rgba(0, 0, 0, 0.3) inset;
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3), 0px -10px 10px 0px rgba(0, 0, 0, 0.3) inset;
}
.notf-indv-box label span {
padding-left: 23px !important;
@ -639,9 +684,12 @@ p:not(:last-child) {
height: 70px;
text-align: center;
}
.notf-exclude-btn {
border: 1px solid;
}
.notf-exclude-btn:hover {
background-color: inherit !important;
border: 1px solid;
filter: brightness(70%);
}
.type-b {
display: none;
@ -756,7 +804,9 @@ p:not(:last-child) {
width: 100%;
height: 100%;
}
.fav_ct, .rt_ct, .rep_ct {
.fav_ct,
.rt_ct,
.rep_ct {
font-size: 1.1rem;
}
.shared.selectedToot {
@ -856,6 +906,14 @@ audio {
.box .ui-resizable-se {
display: none !important;
}
.small-header .top-icon {
font-size: 2rem !important;
padding-top: 0%;
}
.top-icon {
font-size: 40px !important;
padding-top: 25%;
}
.announcement {
padding: 0.38rem;
border-bottom: 1px solid;

View File

@ -415,6 +415,7 @@ function notfCanceler(acct) {
$('.notf-icon_' + acct).removeClass('red-text')
var id = $('#announce_' + acct + ' .announcement').first().attr('data-id')
$('.notf-announ_' + acct + '_ct').text("")
$(`.boxIn[data-acct=${acct}] .notice-box`).removeClass('has-notf')
if(id) {
localStorage.setItem('announ_' + acct, id)
}

View File

@ -290,6 +290,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type, onlyContent) {
$('.notf-reply_' + acct_id).text(replyct * 1 - -1)
localStorage.setItem('notf-reply_' + acct_id, replyct * 1 - -1)
$('.notf-reply_' + acct_id).removeClass('hide')
$(`.boxIn[data-acct=${acct_id}] .notice-box`).addClass('has-notf')
var sound = localStorage.getItem('replySound')
if (sound == 'default') {
var file = '../../source/notif3.wav'
@ -299,6 +300,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type, onlyContent) {
$('.notf-bt_' + acct_id).text(btct * 1 - -1)
localStorage.setItem('notf-bt_' + acct_id, btct * 1 - -1)
$('.notf-bt_' + acct_id).removeClass('hide')
$(`.boxIn[data-acct=${acct_id}] .notice-box`).addClass('has-notf')
var sound = localStorage.getItem('btSound')
if (sound == 'default') {
var file = '../../source/notif2.wav'
@ -308,6 +310,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type, onlyContent) {
$('.notf-fav_' + acct_id).text(favct * 1 - -1)
localStorage.setItem('notf-fav_' + acct_id, favct * 1 - -1)
$('.notf-fav_' + acct_id).removeClass('hide')
$(`.boxIn[data-acct=${acct_id}] .notice-box`).addClass('has-notf')
var sound = localStorage.getItem('favSound')
if (sound == 'default') {
var file = '../../source/notif.wav'
@ -1370,8 +1373,6 @@ function client(name) {
text: name + lang.lang_parse_clienttxt,
type: 'info',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#3085d6',
confirmButtonText: lang.lang_parse_clientmute,
cancelButtonText: lang.lang_parse_clientemp,
showCloseButton: true,

View File

@ -326,6 +326,7 @@ function parseColumn(target, dontclose) {
} else {
markers = false
}
const smallHeader = localStorage.getItem('smallHeader') === 'yes'
if (!markers) {
unread = ''
}
@ -372,10 +373,9 @@ function parseColumn(target, dontclose) {
}
var html = `
<div class="boxIn" id="timeline_box_${key}_box" tlid="${key}" data-acct="${acct.domain}" style="${addHeight}">
<div class="notice-box z-depth-2" id="menu_${key}" style="${insert}">
<div class="notice-box ${smallHeader ? 'small-header' : ''} z-depth-2" id="menu_${key}" style="${insert}">
<div class="area-notice">
<i class="material-icons waves-effect ${isMisRed} notice_icon_acct_${acct.domain}" id="notice_icon_${key}" ${notf_attr}
style="font-size:40px; padding-top:25%;"
<i class="material-icons waves-effect ${isMisRed} notice_icon_acct_${acct.domain} top-icon" id="notice_icon_${key}" ${notf_attr}
onclick="checkStr('${acct.type}','${data}','${acct.domain}', '${key}', '${delc}','${voice}',null)"
title="${lang.lang_layout_gotop}" aria-hidden="true">
</i>
@ -398,10 +398,10 @@ function parseColumn(target, dontclose) {
${if_tag_btn}
</div>
<div class="area-sta">
<span class="new badge teal notf-reply_${acct.domain} hide" data-badge-caption="Reply" aria-hidden="true">0</span>
<span class="new badge yellow black-text notf-fav_${acct.domain} hide" data-badge-caption="Fav" aria-hidden="true">0</span>
<span class="new badge teal notf-reply_${acct.domain} hide" data-badge-caption="Rp" aria-hidden="true">0</span>
<span class="new badge yellow black-text notf-fav_${acct.domain} hide" data-badge-caption="Fv" aria-hidden="true">0</span>
<span class="new badge blue notf-bt_${acct.domain} hide" data-badge-caption="BT" aria-hidden="true">0</span>
<span class="new badge orange notf-follow_${acct.domain} hide" data-badge-caption="Follow" aria-hidden="true">0</span>
<span class="new badge orange notf-follow_${acct.domain} hide" data-badge-caption="Fw" aria-hidden="true">0</span>
</div>
<div class="area-a2">
<a onclick="removeColumn('${key}')" class="setting nex">
@ -644,8 +644,6 @@ function removeColumn(tlid) {
text: lang.lang_layout_deleteColumnDesc,
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: lang.lang_yesno,
cancelButtonText: lang.lang_no,
}).then((result) => {

View File

@ -5,13 +5,13 @@ var envView = new Vue({
methods: {
complete: function (i, val) {
var ls = envView.config[i]
let header = ls.text.head
if (!ls.data) {
ls = [ls]
} else {
ls = ls.data
}
for (var j = 0; j < ls.length; j++) {
M.toast({ html: 'Complete', displayLength: 3000 })
var id = ls[j].id
localStorage.setItem(ls[j].storage, val)
}
@ -27,6 +27,7 @@ var envView = new Vue({
if (ls[0].id == 'frame') {
frameSet(val)
}
M.toast({ html: `Updated: ${header}`, displayLength: 3000 })
return true
},
},
@ -37,6 +38,7 @@ var tlView = new Vue({
methods: {
complete: function (i, val) {
var ls = tlView.config[i]
let header = ls.text.head
if (val) {
localStorage.setItem(ls.storage, val)
} else {
@ -46,12 +48,12 @@ var tlView = new Vue({
ls = ls.data
}
for (var j = 0; j < ls.length; j++) {
M.toast({ html: 'Complete', displayLength: 3000 })
var id = ls[j].id
var val = $('#' + id).val()
localStorage.setItem(ls[j].storage, val)
}
}
M.toast({ html: `Updated: ${header}`, displayLength: 3000 })
return true
},
},
@ -66,6 +68,7 @@ var postView = new Vue({
methods: {
complete: function (i, val) {
var ls = postView.config[i]
let header = ls.text.head
if (val) {
localStorage.setItem(ls.storage, val)
} else {
@ -81,6 +84,7 @@ var postView = new Vue({
localStorage.setItem(ls[j].storage, val)
}
}
M.toast({ html: `Updated: ${header}`, displayLength: 3000 })
return true
},
},
@ -310,11 +314,10 @@ function exportSettings() {
var exp = exportSettingsCore()
$('#imp-exp').val(JSON5.stringify(exp))
Swal.fire({
title: lang.lang_setting_exportwarn,
title: 'Warning',
text: lang.lang_setting_exportwarn,
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: lang.lang_yesno,
cancelButtonText: lang.lang_no,
}).then((result) => {
@ -394,11 +397,10 @@ function importSettings() {
return false
}
Swal.fire({
title: lang.lang_setting_importwarn,
title: 'Warning',
text: lang.lang_setting_importwarn,
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: lang.lang_yesno,
cancelButtonText: lang.lang_no,
}).then((result) => {
@ -795,7 +797,8 @@ function completePlugin(comp) {
if (!meta.data) {
Swal.fire({
icon: 'error',
title: `error on line ${meta.location.start.line}`,
title: 'Syntax Error',
text: `error on line ${meta.location.start.line}`,
text: meta,
})
return false
@ -803,7 +806,7 @@ function completePlugin(comp) {
if (!meta.data.name || !meta.data.version || !meta.data.event || !meta.data.author) {
Swal.fire({
icon: 'error',
title: 'error',
title: 'Meta data error',
title: 'Syntax Error of META DATA',
})
return false
@ -834,7 +837,8 @@ function testExecTrg() {
if (meta.location) {
Swal.fire({
icon: 'error',
title: `error on line ${meta.location.start.line}`,
title: 'Error',
text: `error on line ${meta.location.start.line}`,
text: meta,
})
return false
@ -922,13 +926,13 @@ function checkupd() {
if (newest == ver) {
Swal.fire({
type: 'info',
title: lang.lang_setting_noupd,
text: lang.lang_setting_noupd,
html: ver,
})
} else if (ver.indexOf('beta') != -1 || winstore) {
Swal.fire({
type: 'info',
title: lang.lang_setting_thisisbeta,
text: lang.lang_setting_thisisbeta,
html: ver,
})
} else {

View File

@ -11,6 +11,7 @@
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
<link href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="../../css/sweetalert2-material.min.css" type="text/css" rel="stylesheet">
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
<meta charset="utf-8" />
@@comment-start@@
@ -28,7 +29,7 @@
<script type="text/javascript" src="../../js/platform/first.js"></script>
<script type="text/javascript" src="../../@@node_base@@/materialize-css/dist/js/materialize.js"></script>
<script type="text/javascript" src="main.js"></script>
<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.all.min.js"></script>
<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.min.js"></script>
<script>
var misskeytoken = false
</script>

View File

@ -12,6 +12,7 @@
<link href="../../css/post.css" rel="stylesheet" type="text/css" />
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
<link href="../../css/sort.css" rel="stylesheet" type="text/css" />
<link href="../../css/sweetalert2-material.min.css" type="text/css" rel="stylesheet">
<link href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
<meta charset="utf-8" />
@@comment-start@@
@ -1259,7 +1260,7 @@
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../@@node_base@@/jquery-ui-dist/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.all.min.js"></script>
<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.min.js"></script>
<script type="text/javascript" src="../../js/platform/punycode.js"></script>
<script type="text/javascript" src="../../js/ui/tips.js"></script>
<script src="https://twemoji.maxcdn.com/2/twemoji.min.js?2.7"></script>

View File

@ -119,6 +119,7 @@
"remote_imgWarn": "All previews are got from your loginned cache server.",
"moreContextMode": "Context Tool",
"moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL",
"smallHeader": "Minimize column headers",
"replySound": "Sound(Reply)",
"favSound": "Sound(Fav)",
"btSound": "Sound(Boost)",

View File

@ -118,6 +118,7 @@
"remote_imgWarn": "プレビューはログインサーバーのキャッシュからどちらにしろ取得する。ビューワーのみに適用されるで。",
"moreContextMode": "コンテキストツール",
"moreContextModeWarn": "トゥート詳細の、トゥート前後のトゥートを表示する機能",
"smallHeader": "カラムのヘッダーの高さを小さくする",
"replySound": "リプライの通知音",
"favSound": "お気に入り登録の通知音",
"btSound": "ブーストの通知音",

View File

@ -117,6 +117,7 @@
"markerswarn": "Mastodon 3.0相当以上。WebUIと対応クライアントで共有されます。",
"remote_img": "画像をリモートから取得",
"remote_imgWarn": "プレビューはログインサーバーのキャッシュから取得されます。ビューワーのみに適用されます。",
"smallHeader": "カラムのヘッダーの高さを小さくする",
"replySound": "リプライの通知音",
"favSound": "お気に入り登録の通知音",
"btSound": "ブーストの通知音",

View File

@ -15,6 +15,7 @@
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
<link href="../../css/master.css" type="text/css" rel="stylesheet">
<link href="../../css/sweetalert2-material.min.css" type="text/css" rel="stylesheet">
<link href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
<meta charset="utf-8">
<style>
@ -42,7 +43,7 @@
<script src="../../@@node_base@@/json5/dist/index.min.js"></script>
<script src="../../@@node_base@@/vue/dist/vue.min.js"></script>
<script type="text/javascript" src="setting.vue.js"></script>
<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.all.min.js"></script>
<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.min.js"></script>
<script>function renderMem() { return false; }</script>
<h4>@@setting@@</h4>

View File

@ -484,6 +484,17 @@ var tlConstruction = [
checkbox: yesno
}
},
{
id: 'small-header',
storage: 'smallHeader',
checkbox: true,
setValue: 'no',
text: {
head: '@@smallHeader@@',
desc: '',
checkbox: yesno
}
},
{
id: 'replySound',
storage: 'replySound',

View File

@ -11,6 +11,7 @@
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="../../css/sweetalert2-material.min.css" type="text/css" rel="stylesheet">
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
<meta charset="utf-8" />
<!--
@ -28,7 +29,7 @@
<script type="text/javascript" src="../../js/platform/first.js"></script>
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
<script type="text/javascript" src="main.js"></script>
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.min.js"></script>
<script>
var misskeytoken = false
</script>

View File

@ -12,6 +12,7 @@
<link href="../../css/post.css" rel="stylesheet" type="text/css" />
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
<link href="../../css/sort.css" rel="stylesheet" type="text/css" />
<link href="../../css/sweetalert2-material.min.css" type="text/css" rel="stylesheet">
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
<meta charset="utf-8" />
<!--
@ -26,7 +27,7 @@
<body class="">
<script>
var ver = '22.1.2 (Koume)'
var gitHash = '8621b66203e37ac2dd1e6bc6efd861fe9a8e6891'
var gitHash = 'c35a27eda6cf3b664206cd99f2ceebdac2c086be'
//betaを入れるとバージョンチェックしない
//var ver="beta";
var acct_id = 0
@ -1259,7 +1260,7 @@
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../node_modules/jquery-ui-dist/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.min.js"></script>
<script type="text/javascript" src="../../js/platform/punycode.js"></script>
<script type="text/javascript" src="../../js/ui/tips.js"></script>
<script src="https://twemoji.maxcdn.com/2/twemoji.min.js?2.7"></script>

View File

@ -15,6 +15,7 @@
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
<link href="../../css/master.css" type="text/css" rel="stylesheet">
<link href="../../css/sweetalert2-material.min.css" type="text/css" rel="stylesheet">
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
<meta charset="utf-8">
<style>
@ -42,7 +43,7 @@
<script src="../../node_modules/json5/dist/index.min.js"></script>
<script src="../../node_modules/vue/dist/vue.min.js"></script>
<script type="text/javascript" src="setting.vue.js"></script>
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.min.js"></script>
<script>function renderMem() { return false; }</script>
<h4>Ustawienia</h4>
@ -405,7 +406,7 @@
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Wtyczki
</div>
<div class="collapsible-body">
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
<a href="https://github.com/cutls/TheDesk/wiki/プラグイン">Japanese docs of AiScript TheDesk plugins</a><br />
<div id="plugin" data-id="add_new" style="height: 600px"></div>
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Zmień</button>
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
@ -609,7 +610,7 @@
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
<br>
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/8621b66203e37ac2dd1e6bc6efd861fe9a8e6891">8621b66203e37ac2dd1e6bc6efd861fe9a8e6891</a> - <a
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/c35a27eda6cf3b664206cd99f2ceebdac2c086be">c35a27eda6cf3b664206cd99f2ceebdac2c086be</a> - <a
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
class="pointer pwa">Sprawdź aktualizacje</a><br>
<br>
@ -619,7 +620,7 @@
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
</a><br>
<h5>OSS License</h5>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/8621b66203e37ac2dd1e6bc6efd861fe9a8e6891"
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/c35a27eda6cf3b664206cd99f2ceebdac2c086be"
alt="FOSSA Status"><img
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
<br>

View File

@ -484,6 +484,17 @@ var tlConstruction = [
checkbox: yesno
}
},
{
id: 'small-header',
storage: 'smallHeader',
checkbox: true,
setValue: 'no',
text: {
head: 'Minimize column headers',
desc: '',
checkbox: yesno
}
},
{
id: 'replySound',
storage: 'replySound',