Compare commits
29 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
86c83e8b11 | ||
|
a235e536da | ||
|
56fe5e6345 | ||
|
5d9327d3d3 | ||
|
72daf55e4e | ||
|
e1a0a69a2a | ||
|
a9e5e72ccc | ||
|
1d5f73e2ab | ||
|
0f81740562 | ||
|
0adb904c86 | ||
|
92f8611043 | ||
|
c24ef878c4 | ||
|
ba01510c88 | ||
|
47d69857ba | ||
|
8d812fbd2c | ||
|
790d353b69 | ||
|
495db60a84 | ||
|
ce117cca24 | ||
|
547a7b7c7c | ||
|
b6255244ef | ||
|
04e7088b7d | ||
|
b24d937152 | ||
|
b821724e59 | ||
|
9a1f7311a6 | ||
|
b642d42229 | ||
|
ab265fae62 | ||
|
44b0c6c8fd | ||
|
ae16bb3525 | ||
|
7bf5353f05 |
@@ -1,544 +1,564 @@
|
|||||||
/*共通CSS*/
|
/*共通CSS*/
|
||||||
html,
|
html,
|
||||||
body {
|
body {
|
||||||
/*transform: translate3d(0,0,0);*/
|
/*transform: translate3d(0,0,0);*/
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
cursor: default;
|
cursor: default;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
color: var(--color);
|
color: var(--color);
|
||||||
}
|
}
|
||||||
.btn {
|
.btn {
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
}
|
}
|
||||||
.markdown {
|
.markdown {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
help {
|
help {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.show-help {
|
.show-help {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
option {
|
option {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#mainView {
|
#mainView {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
overflow: scroll;
|
overflow: scroll;
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
#message {
|
#message {
|
||||||
display: none;
|
display: none;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
background-color: black;
|
background-color: black;
|
||||||
color: white;
|
color: white;
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
}
|
}
|
||||||
#imagemodal,
|
#imagemodal,
|
||||||
#videomodal {
|
#videomodal {
|
||||||
display: none;
|
display: none;
|
||||||
max-width: 100vw;
|
max-width: 100vw;
|
||||||
max-height: 100vh;
|
max-height: 100vh;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
z-index: 9;
|
z-index: 9;
|
||||||
top: 0 !important;
|
top: 0 !important;
|
||||||
}
|
}
|
||||||
#videomodal,
|
#videomodal,
|
||||||
#tootmodal {
|
#tootmodal {
|
||||||
background-color: var(--modal);
|
background-color: var(--modal);
|
||||||
}
|
}
|
||||||
#imagemodal .modal-content {
|
#imagemodal .modal-content {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
#imagemodal .modal-footer {
|
#imagemodal .modal-footer {
|
||||||
overflow-x: scroll;
|
overflow-x: scroll;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
#imagewrap {
|
#imagewrap {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.pointer {
|
.pointer {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.badge {
|
.badge {
|
||||||
min-width: 0 !important;
|
min-width: 0 !important;
|
||||||
margin-left: 5px !important;
|
margin-left: 5px !important;
|
||||||
}
|
}
|
||||||
.unvisible {
|
.unvisible {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
.bbcode-pulse-loadings,
|
.bbcode-pulse-loadings,
|
||||||
.bbcode-pulse-loading,
|
.bbcode-pulse-loading,
|
||||||
.fa-pulse {
|
.fa-pulse {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
animation-duration: 3s;
|
animation-duration: 3s;
|
||||||
animation-fill-mode: both;
|
animation-fill-mode: both;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-name: pulse;
|
animation-name: pulse;
|
||||||
}
|
}
|
||||||
@keyframes pulse {
|
@keyframes pulse {
|
||||||
from,
|
from,
|
||||||
50%,
|
50%,
|
||||||
to {
|
to {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
25%,
|
25%,
|
||||||
75% {
|
75% {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@keyframes shake {
|
@keyframes shake {
|
||||||
from,
|
from,
|
||||||
to {
|
to {
|
||||||
-webkit-transform: translate3d(0, 0, 0);
|
-webkit-transform: translate3d(0, 0, 0);
|
||||||
transform: translate3d(0, 0, 0);
|
transform: translate3d(0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
10%,
|
10%,
|
||||||
30%,
|
30%,
|
||||||
50%,
|
50%,
|
||||||
70%,
|
70%,
|
||||||
90% {
|
90% {
|
||||||
-webkit-transform: translate3d(-10px, 0, 0);
|
-webkit-transform: translate3d(-10px, 0, 0);
|
||||||
transform: translate3d(-10px, 0, 0);
|
transform: translate3d(-10px, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
20%,
|
20%,
|
||||||
40%,
|
40%,
|
||||||
60%,
|
60%,
|
||||||
80% {
|
80% {
|
||||||
-webkit-transform: translate3d(10px, 0, 0);
|
-webkit-transform: translate3d(10px, 0, 0);
|
||||||
transform: translate3d(10px, 0, 0);
|
transform: translate3d(10px, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.shake {
|
.shake {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
animation-duration: 1s;
|
animation-duration: 1s;
|
||||||
animation-fill-mode: both;
|
animation-fill-mode: both;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-name: shake;
|
animation-name: shake;
|
||||||
}
|
}
|
||||||
code:before,
|
code:before,
|
||||||
.pre:before {
|
.pre:before {
|
||||||
content: "Code";
|
content: 'Code';
|
||||||
font-size: 1.8rem;
|
font-size: 1.8rem;
|
||||||
line-height: 1em;
|
line-height: 1em;
|
||||||
font-family: monospace, monospace;
|
font-family: monospace, monospace;
|
||||||
color: #999;
|
color: #999;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
code,
|
code,
|
||||||
pre {
|
pre {
|
||||||
color: white;
|
color: white;
|
||||||
display: block;
|
display: block;
|
||||||
border-left: 5px solid;
|
border-left: 5px solid;
|
||||||
border-color: #079903;
|
border-color: #079903;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
background-color: #000;
|
background-color: #000;
|
||||||
padding: 1em 1em 1em;
|
padding: 1em 1em 1em;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-top-left-radius: 10px;
|
border-top-left-radius: 10px;
|
||||||
border-bottom-right-radius: 10px;
|
border-bottom-right-radius: 10px;
|
||||||
border-bottom-left-radius: 10px;
|
border-bottom-left-radius: 10px;
|
||||||
}
|
}
|
||||||
blockquote,
|
blockquote,
|
||||||
.quote p {
|
.quote p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
blockquote,
|
blockquote,
|
||||||
.quote {
|
.quote {
|
||||||
color: black;
|
color: black;
|
||||||
background-color: #ddd;
|
background-color: #ddd;
|
||||||
padding: 1em 1em 1em;
|
padding: 1em 1em 1em;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-top-left-radius: 10px;
|
border-top-left-radius: 10px;
|
||||||
border-bottom-right-radius: 10px;
|
border-bottom-right-radius: 10px;
|
||||||
border-bottom-left-radius: 10px;
|
border-bottom-left-radius: 10px;
|
||||||
}
|
}
|
||||||
blockquote:before,
|
blockquote:before,
|
||||||
.quote:before {
|
.quote:before {
|
||||||
content: "Quote";
|
content: 'Quote';
|
||||||
font-size: 1.8rem;
|
font-size: 1.8rem;
|
||||||
line-height: 1em;
|
line-height: 1em;
|
||||||
font-family: Open Sans, cursive;
|
font-family: Open Sans, cursive;
|
||||||
color: #999;
|
color: #999;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
.pixiv-post {
|
.pixiv-post {
|
||||||
color: black;
|
color: black;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
padding: 1em 1em 1em;
|
padding: 1em 1em 1em;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-top-left-radius: 10px;
|
border-top-left-radius: 10px;
|
||||||
border-bottom-right-radius: 10px;
|
border-bottom-right-radius: 10px;
|
||||||
border-bottom-left-radius: 10px;
|
border-bottom-left-radius: 10px;
|
||||||
border-left: 5px solid #0096fa;
|
border-left: 5px solid #0096fa;
|
||||||
}
|
}
|
||||||
.pixiv-post :before {
|
.pixiv-post :before {
|
||||||
content: "From Pixiv";
|
content: 'From Pixiv';
|
||||||
font-size: 1.8rem;
|
font-size: 1.8rem;
|
||||||
line-height: 1em;
|
line-height: 1em;
|
||||||
font-family: Open Sans;
|
font-family: Open Sans;
|
||||||
color: #999;
|
color: #999;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
#start {
|
#start {
|
||||||
display: none;
|
display: none;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
height: calc(100vh - 40px);
|
height: calc(100vh - 40px);
|
||||||
background-color: var(--bg);
|
background-color: var(--bg);
|
||||||
color: var(--color);
|
color: var(--color);
|
||||||
z-index: 99999;
|
z-index: 99999;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
#drag {
|
#drag {
|
||||||
display: none;
|
display: none;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
background-color: var(--bg);
|
background-color: var(--bg);
|
||||||
color: var(--color);
|
color: var(--color);
|
||||||
z-index: 99999;
|
z-index: 99999;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
#drag-content {
|
#drag-content {
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
}
|
}
|
||||||
#pip {
|
#pip {
|
||||||
z-index: 504;
|
z-index: 504;
|
||||||
width: 418px;
|
width: 418px;
|
||||||
background-color: var(--subcolor);
|
background-color: var(--subcolor);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
.pip-bottom {
|
.pip-bottom {
|
||||||
bottom: 10px;
|
bottom: 10px;
|
||||||
}
|
}
|
||||||
.pip-left {
|
.pip-left {
|
||||||
left: 10px;
|
left: 10px;
|
||||||
}
|
}
|
||||||
.pip-top {
|
.pip-top {
|
||||||
top: 10px;
|
top: 10px;
|
||||||
}
|
}
|
||||||
.pip-right {
|
.pip-right {
|
||||||
right: 10px;
|
right: 10px;
|
||||||
}
|
}
|
||||||
#pip-content .material-icons {
|
#pip-content .material-icons {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.big-text {
|
.big-text {
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
}
|
}
|
||||||
#releasenote {
|
#releasenote {
|
||||||
background-color: var(--modal);
|
background-color: var(--modal);
|
||||||
}
|
}
|
||||||
#releasenote li {
|
#releasenote li {
|
||||||
list-style-type: disc;
|
list-style-type: disc;
|
||||||
}
|
}
|
||||||
@media only screen and (min-width: 993px) {
|
@media only screen and (min-width: 993px) {
|
||||||
#toast-container {
|
#toast-container {
|
||||||
top: auto;
|
top: auto;
|
||||||
right: auto;
|
right: auto;
|
||||||
bottom: 5%;
|
bottom: 5%;
|
||||||
left: 4%;
|
left: 4%;
|
||||||
max-width: 86%;
|
max-width: 86%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.show {
|
.show {
|
||||||
animation: show 0.2s linear 0s;
|
animation: show 0.2s linear 0s;
|
||||||
}
|
}
|
||||||
@keyframes show {
|
@keyframes show {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.hide-anime {
|
.hide-anime {
|
||||||
animation: hide 0.2s linear 0s;
|
animation: hide 0.2s linear 0s;
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@keyframes hide {
|
@keyframes hide {
|
||||||
from {
|
from {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.collapsible-header,
|
.collapsible-header,
|
||||||
.tabs {
|
.tabs {
|
||||||
background-color: var(--subcolor);
|
background-color: var(--subcolor);
|
||||||
}
|
}
|
||||||
.collapsible-header:focus {
|
.collapsible-header:focus {
|
||||||
background-color: var(--subcolor) !important;
|
background-color: var(--subcolor) !important;
|
||||||
}
|
}
|
||||||
.modal-footer {
|
.modal-footer {
|
||||||
background-color: var(--modalfooter) !important;
|
background-color: var(--modalfooter) !important;
|
||||||
}
|
}
|
||||||
.font {
|
.font {
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
.font:hover {
|
.font:hover {
|
||||||
background-color: #999;
|
background-color: #999;
|
||||||
}
|
}
|
||||||
.release-do {
|
.release-do {
|
||||||
border: solid 2px;
|
border: solid 2px;
|
||||||
border-color: var(--color);
|
border-color: var(--color);
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
#pickers {
|
#pickers {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
#menu {
|
#menu {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
background-color: var(--postbox);
|
background-color: var(--postbox);
|
||||||
width: 540px;
|
width: 540px;
|
||||||
top: calc(50% - 150px);
|
top: calc(50% - 150px);
|
||||||
left: calc(50% - 250px);
|
left: calc(50% - 250px);
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
border: thin solid gray;
|
border: thin solid gray;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
#menu-wrapper {
|
#menu-wrapper {
|
||||||
margin-left: -5px;
|
margin-left: -5px;
|
||||||
display: flex;
|
display: flex;
|
||||||
height: calc(100% - 3.5rem);
|
height: calc(100% - 3.5rem);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
#left-menu {
|
#left-menu {
|
||||||
width: 230px;
|
width: 230px;
|
||||||
}
|
}
|
||||||
#left-menu div {
|
#left-menu div {
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
#left-menu div:hover {
|
#left-menu div:hover {
|
||||||
background-color: var(--beforehover);
|
background-color: var(--beforehover);
|
||||||
}
|
}
|
||||||
#left-menu span {
|
#left-menu span {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
#left-menu div.active {
|
#left-menu div.active {
|
||||||
background-color: var(--emphasized);
|
background-color: var(--emphasized);
|
||||||
}
|
}
|
||||||
#right-menu {
|
#right-menu {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
#tltype {
|
#tltype {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
#tltype .type {
|
#tltype .type {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 170px;
|
width: 170px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
#tltype .type span {
|
#tltype .type span {
|
||||||
width: calc(100% - 30px);
|
width: calc(100% - 30px);
|
||||||
}
|
}
|
||||||
#tltype .type:hover {
|
#tltype .type:hover {
|
||||||
background-color: var(--beforehover);
|
background-color: var(--beforehover);
|
||||||
}
|
}
|
||||||
#tltype .active {
|
#tltype .active {
|
||||||
background-color: var(--emphasized);
|
background-color: var(--emphasized);
|
||||||
}
|
}
|
||||||
#tltype i {
|
#tltype i {
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
}
|
}
|
||||||
#tltype i.sub-icon {
|
#tltype i.sub-icon {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
color: var(--beforehover);
|
color: var(--beforehover);
|
||||||
left: 10px;
|
left: 10px;
|
||||||
bottom: 5px;
|
bottom: 5px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
.drag-bar {
|
.drag-bar {
|
||||||
cursor: move;
|
cursor: move;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: calc(100% + 10px);
|
width: calc(100% + 10px);
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
background-color: var(--box);
|
background-color: var(--box);
|
||||||
filter: brightness(80%);
|
filter: brightness(80%);
|
||||||
margin-left: -5px;
|
margin-left: -5px;
|
||||||
margin-right: -5px;
|
margin-right: -5px;
|
||||||
margin-top: -5px;
|
margin-top: -5px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
}
|
}
|
||||||
#something-wrong {
|
#something-wrong {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
#support-btm {
|
#support-btm {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: -300px;
|
bottom: -300px;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
background-color: var(--box);
|
background-color: var(--box);
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 3fr 1fr 1fr;
|
grid-template-columns: 3fr 1fr 1fr;
|
||||||
grid-template-rows: 1fr 36px;
|
grid-template-rows: 1fr 36px;
|
||||||
grid-template-areas: "note middle right" "note close close";
|
grid-template-areas: 'note middle right' 'note close close';
|
||||||
}
|
}
|
||||||
#support-btm-en,
|
#support-btm-en,
|
||||||
#support-btm-ja {
|
#support-btm-ja {
|
||||||
grid-area: note;
|
grid-area: note;
|
||||||
}
|
}
|
||||||
#support-btm-middle {
|
#support-btm-middle {
|
||||||
grid-area: middle;
|
grid-area: middle;
|
||||||
}
|
}
|
||||||
#support-btm-right {
|
#support-btm-right {
|
||||||
grid-area: right;
|
grid-area: right;
|
||||||
}
|
}
|
||||||
#support-btm-close {
|
#support-btm-close {
|
||||||
grid-area: close;
|
grid-area: close;
|
||||||
}
|
}
|
||||||
.select-wrapper .dropdown-content {
|
.select-wrapper .dropdown-content {
|
||||||
width: 250px !important;
|
width: 250px !important;
|
||||||
}
|
}
|
||||||
input,
|
input,
|
||||||
textarea {
|
textarea {
|
||||||
color: var(--color);
|
color: var(--color);
|
||||||
font-size: 1rem !important;
|
font-size: 1rem !important;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
}
|
}
|
||||||
.swal2-popup {
|
.swal2-popup {
|
||||||
background-color: var(--notfbox) !important;
|
background-color: var(--notfbox) !important;
|
||||||
}
|
}
|
||||||
.swal2-title,
|
.swal2-title,
|
||||||
.swal2-content {
|
.swal2-content {
|
||||||
color: var(--color) !important;
|
color: var(--color) !important;
|
||||||
}
|
}
|
||||||
#src-contents svg {
|
#src-contents svg {
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
.contributor {
|
.contributor {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.contributor img {
|
.contributor img {
|
||||||
width: 1rem;
|
width: 1rem;
|
||||||
}
|
}
|
||||||
.tagComp{
|
.tagComp {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 60px 80px 1fr;
|
grid-template-columns: 60px 80px 1fr;
|
||||||
grid-template-rows: 1fr 1fr;
|
grid-template-rows: 1fr 1fr;
|
||||||
grid-template-areas: "svg toot user" "svg toot tag" "svg toots tag";
|
grid-template-areas: 'svg toot user' 'svg toot tag' 'svg toots tag';
|
||||||
border-top: dotted 0.5px var(--gray);
|
border-top: dotted 0.5px var(--gray);
|
||||||
padding: 5px
|
padding: 5px;
|
||||||
}
|
}
|
||||||
.tagCompSvg {
|
.tagCompSvg {
|
||||||
grid-area: svg;
|
grid-area: svg;
|
||||||
}
|
}
|
||||||
.tagCompToot {
|
.tagCompToot {
|
||||||
grid-area: toot;
|
grid-area: toot;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.tagCompToots {
|
.tagCompToots {
|
||||||
grid-area: toots;
|
grid-area: toots;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.tagCompUser {
|
.tagCompUser {
|
||||||
grid-area: user;
|
grid-area: user;
|
||||||
}
|
}
|
||||||
.tagCompTag {
|
.tagCompTag {
|
||||||
grid-area: tag;
|
grid-area: tag;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
#sabakanMark {
|
||||||
|
background-color: var(--emphasized);
|
||||||
|
}
|
||||||
|
#pageSrc {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: calc(50vw - 150px);
|
||||||
|
width: 300px;
|
||||||
|
max-width: 100%;
|
||||||
|
background-color: var(--box);
|
||||||
|
z-index: 501;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
#pageSrcInput {
|
||||||
|
width: 160px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 500px) {
|
||||||
|
#pageSrc {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*スクロールバー*/
|
/*スクロールバー*/
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 5px;
|
width: 5px;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
background: rgba(0, 0, 0, 0.05);
|
background: rgba(0, 0, 0, 0.05);
|
||||||
}
|
}
|
||||||
::-webkit-scrollbar-track {
|
::-webkit-scrollbar-track {
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
/* Handle */
|
/* Handle */
|
||||||
::-webkit-scrollbar-thumb {
|
::-webkit-scrollbar-thumb {
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
background: #607d8b;
|
background: #607d8b;
|
||||||
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
|
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
|
||||||
}
|
}
|
||||||
/* Web Fonts */
|
/* Web Fonts */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Open Sans";
|
font-family: 'Open Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
src: local("Open Sans Light"), local("OpenSans-Light"),
|
src: local('Open Sans Light'), local('OpenSans-Light'),
|
||||||
url(https://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2)
|
url(https://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2) format('woff2');
|
||||||
format("woff2");
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
|
|
||||||
U+FEFF, U+FFFD;
|
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Material Icons";
|
font-family: 'Material Icons';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: url(https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2)
|
src: url(https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2)
|
||||||
format("woff2");
|
format('woff2');
|
||||||
}
|
}
|
||||||
.material-icons {
|
.material-icons {
|
||||||
font-family: "Material Icons";
|
font-family: 'Material Icons';
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
letter-spacing: normal;
|
letter-spacing: normal;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
word-wrap: normal;
|
word-wrap: normal;
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
-webkit-font-feature-settings: "liga";
|
-webkit-font-feature-settings: 'liga';
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
}
|
}
|
||||||
|
@@ -559,7 +559,7 @@ p:not(:last-child) {
|
|||||||
z-index: 500;
|
z-index: 500;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 40px 1fr 1fr 24px;
|
grid-template-columns: 40px 60px 1fr 24px;
|
||||||
grid-template-rows: 30px 30px;
|
grid-template-rows: 30px 30px;
|
||||||
grid-template-areas: 'notice notice_name notice_name a2' 'notice a1 sta a3' 'notf-box notf-box notf-box notf-box';
|
grid-template-areas: 'notice notice_name notice_name a2' 'notice a1 sta a3' 'notf-box notf-box notf-box notf-box';
|
||||||
}
|
}
|
||||||
@@ -862,3 +862,31 @@ audio {
|
|||||||
.box .ui-resizable-se {
|
.box .ui-resizable-se {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
.announcement {
|
||||||
|
padding: 5px;
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
||||||
|
.announReaction {
|
||||||
|
width: 35px;
|
||||||
|
height: 1.7rem;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
margin: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
border: solid 1px;
|
||||||
|
padding-left: 2px;
|
||||||
|
background-color: var(--notfbox);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
.announReaction img {
|
||||||
|
position: relative;
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
.announReaction.reactioned {
|
||||||
|
background-color: var(--emphasized);
|
||||||
|
}
|
||||||
|
.announReaction.add {
|
||||||
|
width: 19px;
|
||||||
|
}
|
||||||
|
.reactionsPack {
|
||||||
|
display: flex;
|
||||||
|
}
|
BIN
app/img/icons/icon-128x128.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
app/img/icons/icon-144x144.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
app/img/icons/icon-152x152.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
app/img/icons/icon-192x192.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
app/img/icons/icon-384x384.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
app/img/icons/icon-512x512.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
app/img/icons/icon-72x72.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
app/img/icons/icon-96x96.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
7
app/index.html
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv=”refresh” content=”0;URL=’./view/ja'” />
|
||||||
|
<script>location.href = './view/ja';</script>
|
||||||
|
</head>
|
||||||
|
</html>
|
@@ -1,191 +1,197 @@
|
|||||||
selectedColumn = 0
|
selectedColumn = 0
|
||||||
selectedToot = 0
|
selectedToot = 0
|
||||||
$(function ($) {
|
$(function($) {
|
||||||
//キーボードショートカット
|
//キーボードショートカット
|
||||||
$(window).keydown(function (e) {
|
$(window).keydown(function(e) {
|
||||||
var hasFocus = $('input').is(':focus');
|
var hasFocus = $('input').is(':focus')
|
||||||
var hasFocus2 = $('textarea').is(':focus');
|
var hasFocus2 = $('textarea').is(':focus')
|
||||||
if (document.getElementById("webview")) {
|
if (document.getElementById('webview')) {
|
||||||
if ($("#webviewsel:checked").val()) {
|
if ($('#webviewsel:checked').val()) {
|
||||||
var wv = false;
|
var wv = false
|
||||||
} else {
|
} else {
|
||||||
var wv = true;
|
var wv = true
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var wv = true;
|
var wv = true
|
||||||
}
|
}
|
||||||
//Enter
|
//Enter
|
||||||
if (e.keyCode === 13) {
|
if (e.keyCode === 13) {
|
||||||
if($("#src").is(':focus')){
|
if ($('#src').is(':focus')) {
|
||||||
src()
|
src()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if($("#list-add").is(':focus')){
|
if ($('#list-add').is(':focus')) {
|
||||||
makeNewList()
|
makeNewList()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Ctrl+Shift+Enter:Lgen
|
//Ctrl+Shift+Enter:Lgen
|
||||||
if (event.metaKey || event.ctrlKey && wv) {
|
if (event.metaKey || (event.ctrlKey && wv)) {
|
||||||
if (event.shiftKey) {
|
if (event.shiftKey) {
|
||||||
if (e.keyCode === 13) {
|
if (e.keyCode === 13) {
|
||||||
post('local');
|
post('local')
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Ctrl+Enter:投稿
|
//Ctrl+Enter:投稿
|
||||||
if (event.metaKey || event.ctrlKey && wv) {
|
if (event.metaKey || (event.ctrlKey && wv)) {
|
||||||
if (e.keyCode === 13) {
|
if (e.keyCode === 13) {
|
||||||
post();
|
post()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Alt+Enter:セカンダリー
|
//Alt+Enter:セカンダリー
|
||||||
if (event.metaKey || event.altKey && wv) {
|
if (event.metaKey || (event.altKey && wv)) {
|
||||||
if (e.keyCode === 13) {
|
if (e.keyCode === 13) {
|
||||||
sec();
|
sec()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Esc:消す
|
//Esc:消す
|
||||||
if (e.keyCode === 27 && wv) {
|
if (e.keyCode === 27 && wv) {
|
||||||
hide();
|
hide()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
//F5リロード
|
//F5リロード
|
||||||
if (e.keyCode === 116 && wv) {
|
if (e.keyCode === 116 && wv) {
|
||||||
location.href = "index.html";
|
location.href = 'index.html'
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
//Ctrl+Sift+C:全消し
|
//Ctrl+Sift+C:全消し
|
||||||
if (((event.metaKey || event.ctrlKey) && event.shiftKey) && wv) {
|
if ((event.metaKey || event.ctrlKey) && event.shiftKey && wv) {
|
||||||
if (e.keyCode === 67) {
|
if (e.keyCode === 67) {
|
||||||
clear();
|
clear()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Ctrl+Sift+N:NowPlaying
|
//Ctrl+Sift+N:NowPlaying
|
||||||
if (((event.metaKey || event.ctrlKey) && event.shiftKey) && wv) {
|
if ((event.metaKey || event.ctrlKey) && event.shiftKey && wv) {
|
||||||
if (e.keyCode === 78) {
|
if (e.keyCode === 78) {
|
||||||
show();
|
show()
|
||||||
nowplaying()
|
nowplaying()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//input/textareaにフォーカスなし時
|
//input/textareaにフォーカスなし時
|
||||||
if ((!hasFocus && !hasFocus2) && wv) {
|
if (!hasFocus && !hasFocus2 && wv) {
|
||||||
if (!wv) {
|
if (!wv) {
|
||||||
return true;
|
return true
|
||||||
}
|
}
|
||||||
//Ctrl+V:いつもの
|
//Ctrl+V:いつもの
|
||||||
if (event.metaKey || event.ctrlKey) {
|
if (event.metaKey || event.ctrlKey) {
|
||||||
if (e.keyCode === 86) {
|
if (e.keyCode === 86) {
|
||||||
show();
|
show()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Ctrl+F:検索
|
||||||
|
if (event.metaKey || event.ctrlKey) {
|
||||||
|
if (e.keyCode === 70) {
|
||||||
|
srcBox()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//X:開閉
|
//X:開閉
|
||||||
if (e.keyCode === 88) {
|
if (e.keyCode === 88) {
|
||||||
if (!$("#post-box").hasClass("appear")) {
|
if (!$('#post-box').hasClass('appear')) {
|
||||||
show();
|
show()
|
||||||
$('textarea').focus();
|
$('textarea').focus()
|
||||||
} else {
|
} else {
|
||||||
hide();
|
hide()
|
||||||
}
|
}
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
//N:新トゥート
|
//N:新トゥート
|
||||||
if (e.keyCode === 78) {
|
if (e.keyCode === 78) {
|
||||||
if (!$("#post-box").hasClass("appear")) {
|
if (!$('#post-box').hasClass('appear')) {
|
||||||
show();
|
show()
|
||||||
}
|
}
|
||||||
$('textarea').focus();
|
$('textarea').focus()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
//Ctrl+E:全ての通知未読を既読にする
|
//Ctrl+E:全ての通知未読を既読にする
|
||||||
if (event.metaKey || event.ctrlKey) {
|
if (event.metaKey || event.ctrlKey) {
|
||||||
if (e.keyCode === 69) {
|
if (e.keyCode === 69) {
|
||||||
allNotfRead();
|
allNotfRead()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Ctrl+Space:読み込み
|
//Ctrl+Space:読み込み
|
||||||
if (event.metaKey || event.ctrlKey) {
|
if (event.metaKey || event.ctrlKey) {
|
||||||
if (e.keyCode === 32) {
|
if (e.keyCode === 32) {
|
||||||
parseColumn();
|
parseColumn()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Ctrl+Sift+S:設定
|
//Ctrl+Sift+S:設定
|
||||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||||
if (e.keyCode === 83) {
|
if (e.keyCode === 83) {
|
||||||
location.href = "setting.html";
|
location.href = 'setting.html'
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Ctrl+Sift+M:アカマネ
|
//Ctrl+Sift+M:アカマネ
|
||||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||||
if (e.keyCode === 77) {
|
if (e.keyCode === 77) {
|
||||||
location.href = "acct.html";
|
location.href = 'acct.html'
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Ctrl+Sift+P:プロフ
|
//Ctrl+Sift+P:プロフ
|
||||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||||
if (e.keyCode === 80) {
|
if (e.keyCode === 80) {
|
||||||
profShow()
|
profShow()
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//数字:TL
|
//数字:TL
|
||||||
if (event.metaKey || event.ctrlKey) {
|
if (event.metaKey || event.ctrlKey) {
|
||||||
if (e.keyCode >= 49 && e.keyCode <= 57) {
|
if (e.keyCode >= 49 && e.keyCode <= 57) {
|
||||||
var kz = e.keyCode - 49;
|
var kz = e.keyCode - 49
|
||||||
goColumn(kz);
|
goColumn(kz)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//矢印:選択
|
//矢印:選択
|
||||||
if (e.code == "ArrowLeft") {
|
if (e.code == 'ArrowLeft') {
|
||||||
//left
|
//left
|
||||||
if ($("#imagemodal").hasClass("open")) {
|
if ($('#imagemodal').hasClass('open')) {
|
||||||
imgCont('prev');
|
imgCont('prev')
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (selectedColumn > 0) {
|
if (selectedColumn > 0) {
|
||||||
selectedColumn--
|
selectedColumn--
|
||||||
}
|
}
|
||||||
tootSelector(selectedColumn, selectedToot)
|
tootSelector(selectedColumn, selectedToot)
|
||||||
return false;
|
return false
|
||||||
} else if (e.code == "ArrowUp") {
|
} else if (e.code == 'ArrowUp') {
|
||||||
//up
|
//up
|
||||||
if ($("#imagemodal").hasClass("open")) {
|
if ($('#imagemodal').hasClass('open')) {
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (selectedToot > 0) {
|
if (selectedToot > 0) {
|
||||||
selectedToot--
|
selectedToot--
|
||||||
}
|
}
|
||||||
tootSelector(selectedColumn, selectedToot)
|
tootSelector(selectedColumn, selectedToot)
|
||||||
return false;
|
return false
|
||||||
} else if (e.code == "ArrowRight") {
|
} else if (e.code == 'ArrowRight') {
|
||||||
//right
|
//right
|
||||||
if ($("#imagemodal").hasClass("open")) {
|
if ($('#imagemodal').hasClass('open')) {
|
||||||
imgCont('next');
|
imgCont('next')
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (selectedColumn < $(".tl-box").length - 1) {
|
if (selectedColumn < $('.tl-box').length - 1) {
|
||||||
selectedColumn++
|
selectedColumn++
|
||||||
}
|
}
|
||||||
tootSelector(selectedColumn, selectedToot)
|
tootSelector(selectedColumn, selectedToot)
|
||||||
return false;
|
return false
|
||||||
} else if (e.code == "ArrowDown") {
|
} else if (e.code == 'ArrowDown') {
|
||||||
//down
|
//down
|
||||||
if ($("#imagemodal").hasClass("open")) {
|
if ($('#imagemodal').hasClass('open')) {
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
selectedToot++
|
selectedToot++
|
||||||
tootSelector(selectedColumn, selectedToot)
|
tootSelector(selectedColumn, selectedToot)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
//Ctrl+U:0,0選択
|
//Ctrl+U:0,0選択
|
||||||
if (event.ctrlKey || event.metaKey) {
|
if (event.ctrlKey || event.metaKey) {
|
||||||
@@ -193,29 +199,29 @@ $(function ($) {
|
|||||||
selectedToot = 0
|
selectedToot = 0
|
||||||
selectedColumn = 0
|
selectedColumn = 0
|
||||||
tootSelector(0, 0)
|
tootSelector(0, 0)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//選択時
|
//選択時
|
||||||
if (e.keyCode == 70) {
|
if (e.keyCode == 70) {
|
||||||
var id = $(".selectedToot").attr('unique-id')
|
var id = $('.selectedToot').attr('unique-id')
|
||||||
var acct_id = $('#timeline_' + selectedColumn).attr("data-acct")
|
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
|
||||||
fav(id, acct_id, false)
|
fav(id, acct_id, false)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (e.keyCode == 66) {
|
if (e.keyCode == 66) {
|
||||||
var id = $(".selectedToot").attr('unique-id')
|
var id = $('.selectedToot').attr('unique-id')
|
||||||
var acct_id = $('#timeline_' + selectedColumn).attr("data-acct")
|
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
|
||||||
rt(id, acct_id, false)
|
rt(id, acct_id, false)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (e.keyCode == 82) {
|
if (e.keyCode == 82) {
|
||||||
var id = $(".selectedToot").attr('unique-id')
|
var id = $('.selectedToot').attr('unique-id')
|
||||||
var acct_id = $('#timeline_' + selectedColumn).attr("data-acct")
|
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
|
||||||
var ats_cm = $('.selectedToot .rep-btn').attr("data-men")
|
var ats_cm = $('.selectedToot .rep-btn').attr('data-men')
|
||||||
var mode = $('.selectedToot .rep-btn').attr("data-visen")
|
var mode = $('.selectedToot .rep-btn').attr('data-visen')
|
||||||
re(id, ats_cm, acct_id, mode)
|
re(id, ats_cm, acct_id, mode)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//textareaフォーカス時
|
//textareaフォーカス時
|
||||||
@@ -224,23 +230,27 @@ $(function ($) {
|
|||||||
//C+S+(No):ワンクリ
|
//C+S+(No):ワンクリ
|
||||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||||
if (e.keyCode >= 49 && e.keyCode <= 51) {
|
if (e.keyCode >= 49 && e.keyCode <= 51) {
|
||||||
var no = e.keyCode - 48;
|
var no = e.keyCode - 48
|
||||||
if (localStorage.getItem("oks-" + no)) { $("#textarea").val($("#textarea").val() + localStorage.getItem("oks-" + no)) }
|
if (localStorage.getItem('oks-' + no)) {
|
||||||
return false;
|
$('#textarea').val($('#textarea').val() + localStorage.getItem('oks-' + no))
|
||||||
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
//クリアボタン
|
//クリアボタン
|
||||||
$("#clear").click(function () {
|
$('#clear').click(function() {
|
||||||
clear();
|
clear()
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
//選択する
|
//選択する
|
||||||
function tootSelector(column, toot) {
|
function tootSelector(column, toot) {
|
||||||
$('.cvo').removeClass("selectedToot")
|
$('.cvo').removeClass('selectedToot')
|
||||||
$('#timeline_' + column + ' .cvo').eq(toot).addClass("selectedToot")
|
$('#timeline_' + column + ' .cvo')
|
||||||
|
.eq(toot)
|
||||||
|
.addClass('selectedToot')
|
||||||
var scr = $('.tl-box[tlid=' + column + ']').scrollTop()
|
var scr = $('.tl-box[tlid=' + column + ']').scrollTop()
|
||||||
var elem = $('.selectedToot').offset().top
|
var elem = $('.selectedToot').offset().top
|
||||||
var top = elem - $('.tl-box').height() + scr
|
var top = elem - $('.tl-box').height() + scr
|
||||||
@@ -255,4 +265,4 @@ function tootSelector(column, toot) {
|
|||||||
$('.tl-box[tlid=' + column + ']').animate({ scrollTop: to })
|
$('.tl-box[tlid=' + column + ']').animate({ scrollTop: to })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -329,43 +329,68 @@ function storeDialog(platform, ver) {
|
|||||||
var mes = lang.lang_version_platform_linux
|
var mes = lang.lang_version_platform_linux
|
||||||
} else if (platform == 'darwin') {
|
} else if (platform == 'darwin') {
|
||||||
var mes = lang.lang_version_platform_mac
|
var mes = lang.lang_version_platform_mac
|
||||||
|
} else {
|
||||||
|
var mes = false
|
||||||
}
|
}
|
||||||
Swal.fire({
|
if (mes) {
|
||||||
title: 'Select your platform',
|
Swal.fire({
|
||||||
text: mes,
|
title: 'Select your platform',
|
||||||
type: 'info',
|
text: mes,
|
||||||
showCancelButton: true,
|
type: 'info',
|
||||||
confirmButtonColor: '#3085d6',
|
showCancelButton: true,
|
||||||
cancelButtonColor: '#3085d6',
|
confirmButtonColor: '#3085d6',
|
||||||
confirmButtonText: lang.lang_no,
|
cancelButtonColor: '#3085d6',
|
||||||
cancelButtonText: lang.lang_yesno
|
confirmButtonText: lang.lang_no,
|
||||||
}).then(result => {
|
cancelButtonText: lang.lang_yesno
|
||||||
//逆にしてる
|
}).then(result => {
|
||||||
if (!result.value) {
|
//逆にしてる
|
||||||
localStorage.setItem('winstore', 'winstore')
|
if (!result.value) {
|
||||||
} else {
|
localStorage.setItem('winstore', 'winstore')
|
||||||
localStorage.setItem('winstore', 'localinstall')
|
|
||||||
}
|
|
||||||
localStorage.setItem('ver', ver)
|
|
||||||
show = true
|
|
||||||
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#releasenote').modal('open')
|
|
||||||
verp = ver.replace('(', '')
|
|
||||||
verp = verp.replace('.', '-')
|
|
||||||
verp = verp.replace('.', '-')
|
|
||||||
verp = verp.replace('[', '-')
|
|
||||||
verp = verp.replace(']', '')
|
|
||||||
verp = verp.replace(')', '')
|
|
||||||
verp = verp.replace(' ', '_')
|
|
||||||
console.log('%c ' + verp, 'color: red;font-size:200%;')
|
|
||||||
if (lang.language == 'ja') {
|
|
||||||
$('#release-' + verp).show()
|
|
||||||
} else {
|
} else {
|
||||||
$('#release-en').show()
|
localStorage.setItem('winstore', 'localinstall')
|
||||||
}
|
}
|
||||||
|
localStorage.setItem('ver', ver)
|
||||||
|
show = true
|
||||||
|
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#releasenote').modal('open')
|
||||||
|
verp = ver.replace('(', '')
|
||||||
|
verp = verp.replace('.', '-')
|
||||||
|
verp = verp.replace('.', '-')
|
||||||
|
verp = verp.replace('[', '-')
|
||||||
|
verp = verp.replace(']', '')
|
||||||
|
verp = verp.replace(')', '')
|
||||||
|
verp = verp.replace(' ', '_')
|
||||||
|
console.log('%c ' + verp, 'color: red;font-size:200%;')
|
||||||
|
if (lang.language == 'ja') {
|
||||||
|
$('#release-' + verp).show()
|
||||||
|
} else {
|
||||||
|
$('#release-en').show()
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
} else {
|
||||||
|
localStorage.setItem('ver', ver)
|
||||||
|
show = true
|
||||||
|
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#releasenote').modal('open')
|
||||||
|
verp = ver.replace('(', '')
|
||||||
|
verp = verp.replace('.', '-')
|
||||||
|
verp = verp.replace('.', '-')
|
||||||
|
verp = verp.replace('[', '-')
|
||||||
|
verp = verp.replace(']', '')
|
||||||
|
verp = verp.replace(')', '')
|
||||||
|
verp = verp.replace(' ', '_')
|
||||||
|
console.log('%c ' + verp, 'color: red;font-size:200%;')
|
||||||
|
if (lang.language == 'ja') {
|
||||||
|
$('#release-' + verp).show()
|
||||||
|
} else {
|
||||||
|
$('#release-en').show()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
function closeStart() {
|
function closeStart() {
|
||||||
$('#start').css('display', 'none')
|
$('#start').css('display', 'none')
|
||||||
|
@@ -1,84 +1,105 @@
|
|||||||
var defaultemojiList = ["activity", "flag", "food", "nature", "object", "people", "place", "symbol"];
|
var defaultemojiList = ['activity', 'flag', 'food', 'nature', 'object', 'people', 'place', 'symbol']
|
||||||
var defaultemoji = {
|
var defaultemoji = {
|
||||||
activity: activity,
|
activity: activity,
|
||||||
flag: flag,
|
flag: flag,
|
||||||
food: food,
|
food: food,
|
||||||
nature: nature,
|
nature: nature,
|
||||||
object: object,
|
object: object,
|
||||||
people: people,
|
people: people,
|
||||||
place: place,
|
place: place,
|
||||||
symbol: symbol
|
symbol: symbol
|
||||||
};
|
}
|
||||||
if (lang == "ja") {
|
if (lang == 'ja') {
|
||||||
var defaultemojiname = {
|
var defaultemojiname = {
|
||||||
activity: "活動",
|
activity: '活動',
|
||||||
flag: "国旗",
|
flag: '国旗',
|
||||||
food: "食べ物",
|
food: '食べ物',
|
||||||
nature: "自然",
|
nature: '自然',
|
||||||
object: "もの",
|
object: 'もの',
|
||||||
people: "ひと",
|
people: 'ひと',
|
||||||
place: "場所",
|
place: '場所',
|
||||||
symbol: "記号"
|
symbol: '記号'
|
||||||
};
|
}
|
||||||
} else {
|
} else {
|
||||||
var defaultemojiname = {
|
var defaultemojiname = {
|
||||||
activity: "Activities",
|
activity: 'Activities',
|
||||||
flag: "Flags",
|
flag: 'Flags',
|
||||||
food: "Foods",
|
food: 'Foods',
|
||||||
nature: "Nature",
|
nature: 'Nature',
|
||||||
object: "Tools",
|
object: 'Tools',
|
||||||
people: "People",
|
people: 'People',
|
||||||
place: "Places",
|
place: 'Places',
|
||||||
symbol: "Symbols"
|
symbol: 'Symbols'
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function defaultEmoji(target) {
|
function defaultEmoji(target) {
|
||||||
var json = defaultemoji[target];
|
var announcement = false
|
||||||
var emojis = "";
|
if ($('#media').val() == 'announcement') {
|
||||||
Object.keys(json).forEach(function (key) {
|
announcement = true
|
||||||
var emoji = json[key];
|
}
|
||||||
emojis = emojis + '<a onclick="defEmoji(\'' + emoji["shortcode"] + '\')" class="pointer"><span style="width: 20px; height: 20px; display: inline-block; background-image: url(\'../../img/sheet.png\'); background-size: 4900%; background-position: ' + emoji["css"] + ';"></span></a>';
|
var json = defaultemoji[target]
|
||||||
});
|
var emojis = ''
|
||||||
$("#emoji-list").html(emojis);
|
Object.keys(json).forEach(function(key) {
|
||||||
$("#now-emoji").text(lang.lang_defaultemojis_text.replace("{{cat}}", defaultemojiname[target]));
|
var emoji = json[key]
|
||||||
$(".emoji-control").addClass("hide");
|
if (announcement) {
|
||||||
|
var def = `<a onclick="emojiReactionDef('${emoji['shortcode']}')" class="pointer">`
|
||||||
|
} else {
|
||||||
|
var def = `<a onclick="defEmoji('${emoji['shortcode']}')" class="pointer">`
|
||||||
|
}
|
||||||
|
emojis =
|
||||||
|
emojis +
|
||||||
|
`${def}
|
||||||
|
<span style="
|
||||||
|
width: 20px; height: 20px; display: inline-block; background-image: url('../../img/sheet.png'); background-size: 4900%;
|
||||||
|
background-position:${emoji['css']};"></span>
|
||||||
|
</a>`
|
||||||
|
})
|
||||||
|
$('#emoji-list').html(emojis)
|
||||||
|
$('#now-emoji').text(lang.lang_defaultemojis_text.replace('{{cat}}', defaultemojiname[target]))
|
||||||
|
$('.emoji-control').addClass('hide')
|
||||||
}
|
}
|
||||||
function customEmoji() {
|
function customEmoji() {
|
||||||
$("#emoji-suggest").val("");
|
$('#emoji-suggest').val('')
|
||||||
$(".emoji-control").removeClass("hide");
|
$('.emoji-control').removeClass('hide')
|
||||||
emojiList('home')
|
emojiList('home')
|
||||||
}
|
}
|
||||||
function defEmoji(target) {
|
function defEmoji(target) {
|
||||||
var selin = $("#textarea").prop('selectionStart');
|
var selin = $('#textarea').prop('selectionStart')
|
||||||
if (!selin) {
|
if (!selin) {
|
||||||
selin = 0;
|
selin = 0
|
||||||
}
|
}
|
||||||
var emojiraw = newpack.filter(function (item, index) {
|
var emojiraw = newpack.filter(function(item, index) {
|
||||||
if (item.short_name == target) return true;
|
if (item.short_name == target) return true
|
||||||
});
|
})
|
||||||
var hex = emojiraw[0].unified.split("-");
|
var hex = emojiraw[0].unified.split('-')
|
||||||
if (hex.length === 2) {
|
if (hex.length === 2) {
|
||||||
emoji = twemoji.convert.fromCodePoint(hex[0]) + twemoji.convert.fromCodePoint(hex[1]);
|
emoji = twemoji.convert.fromCodePoint(hex[0]) + twemoji.convert.fromCodePoint(hex[1])
|
||||||
} else {
|
} else {
|
||||||
emoji = twemoji.convert.fromCodePoint(hex[0]);
|
emoji = twemoji.convert.fromCodePoint(hex[0])
|
||||||
}
|
}
|
||||||
var now = $("#textarea").val();
|
var now = $('#textarea').val()
|
||||||
var before = now.substr(0, selin);
|
var before = now.substr(0, selin)
|
||||||
var after = now.substr(selin, now.length);
|
var after = now.substr(selin, now.length)
|
||||||
newt = before + emoji + after;
|
newt = before + emoji + after
|
||||||
$("#textarea").val(newt);
|
$('#textarea').val(newt)
|
||||||
$("#textarea").focus();
|
$('#textarea').focus()
|
||||||
}
|
}
|
||||||
function faicon() {
|
function faicon() {
|
||||||
var json = faicons;
|
var json = faicons
|
||||||
var emojis = "";
|
var emojis = ''
|
||||||
Object.keys(json).forEach(function (key) {
|
Object.keys(json).forEach(function(key) {
|
||||||
var emoji = json[key];
|
var emoji = json[key]
|
||||||
var eje = emoji.replace(/fa-/g, "");
|
var eje = emoji.replace(/fa-/g, '')
|
||||||
emojis = emojis + '<a onclick="emojiInsert(\'[faicon]' + eje + '[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa ' + emoji + '"></i></a>';
|
emojis =
|
||||||
});
|
emojis +
|
||||||
$("#emoji-list").html(emojis);
|
'<a onclick="emojiInsert(\'[faicon]' +
|
||||||
$("#now-emoji").text("faicon");
|
eje +
|
||||||
$(".emoji-control").addClass("hide");
|
'[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa ' +
|
||||||
}
|
emoji +
|
||||||
|
'"></i></a>'
|
||||||
|
})
|
||||||
|
$('#emoji-list').html(emojis)
|
||||||
|
$('#now-emoji').text('faicon')
|
||||||
|
$('.emoji-control').addClass('hide')
|
||||||
|
}
|
||||||
|
@@ -46,10 +46,17 @@ $(document).on('click', 'a', e => {
|
|||||||
udgEx(url, 'main')
|
udgEx(url, 'main')
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
postMessage(['openUrl', url], '*')
|
if(pwa) {
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
postMessage(['openUrl', url], '*')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if(pwa) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
//hrefがhttp/httpsならブラウザで
|
//hrefがhttp/httpsならブラウザで
|
||||||
if (urls) {
|
if (urls) {
|
||||||
if (urls[0]) {
|
if (urls[0]) {
|
||||||
@@ -190,3 +197,23 @@ onmessage = function(e) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* PWA */
|
||||||
|
if(pwa) {
|
||||||
|
function postMessage(e) {
|
||||||
|
if (e[0] == 'openUrl') {
|
||||||
|
urls = e[1].match(/https?:\/\/(.+)/)
|
||||||
|
if (urls) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Open URL',
|
||||||
|
icon: 'info',
|
||||||
|
html:
|
||||||
|
`If you are OK, click: <a href="${urls[0]}" target="_blank" class="btn waves-effect">Here</a>`,
|
||||||
|
showCloseButton: false,
|
||||||
|
showCancelButton: true,
|
||||||
|
focusConfirm: false,
|
||||||
|
confirmButtonText: 'Close'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -193,7 +193,15 @@ function emojiGet(parse, started) {
|
|||||||
function emojiList(target, reaction) {
|
function emojiList(target, reaction) {
|
||||||
$('#now-emoji').text(lang.lang_emoji_custom)
|
$('#now-emoji').text(lang.lang_emoji_custom)
|
||||||
var acct_id = $('#post-acct-sel').val()
|
var acct_id = $('#post-acct-sel').val()
|
||||||
if (reaction && localStorage.getItem('emojiReaction_' + acct_id) != 'true') {
|
if(reaction && $('#media').val() == 'misskey') {
|
||||||
|
var misskeyReact = true
|
||||||
|
} else {
|
||||||
|
var misskeyReact = false
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
misskeyReact &&
|
||||||
|
localStorage.getItem('emojiReaction_' + acct_id) != 'true'
|
||||||
|
) {
|
||||||
console.error('Disabled')
|
console.error('Disabled')
|
||||||
clear()
|
clear()
|
||||||
hide()
|
hide()
|
||||||
@@ -263,9 +271,20 @@ function emojiList(target, reaction) {
|
|||||||
var emoji = obj[i]
|
var emoji = obj[i]
|
||||||
if (emoji) {
|
if (emoji) {
|
||||||
if (reaction) {
|
if (reaction) {
|
||||||
html =
|
if (emoji.divider) {
|
||||||
html +
|
html = html + '<p style="margin-bottom:0">' + emoji.cat + '</p>'
|
||||||
`<a onclick="emojiReaction(':${emoji.shortcode}:')" class="pointer"><img src="${emoji.url}" width="20" title="${emoji.shortcode}"></a>`
|
} else {
|
||||||
|
if (emoji.listed) {
|
||||||
|
if(misskeyReact) {
|
||||||
|
var shortcode = `:${emoji.shortcode}:`
|
||||||
|
} else {
|
||||||
|
var shortcode = emoji.shortcode
|
||||||
|
}
|
||||||
|
html =
|
||||||
|
html +
|
||||||
|
`<a onclick="emojiReaction('${shortcode}')" class="pointer"><img src="${emoji.url}" width="20" title="${emoji.shortcode}"></a>`
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (emoji.divider) {
|
if (emoji.divider) {
|
||||||
html = html + '<p style="margin-bottom:0">' + emoji.cat + '</p>'
|
html = html + '<p style="margin-bottom:0">' + emoji.cat + '</p>'
|
||||||
|
@@ -116,6 +116,7 @@ function reactiontoggle(id, acct_id, tlid) {
|
|||||||
//reactioncustom
|
//reactioncustom
|
||||||
function reactioncustom(acct_id, id) {
|
function reactioncustom(acct_id, id) {
|
||||||
$('#reply').val(id)
|
$('#reply').val(id)
|
||||||
|
$('#media').val('misskey')
|
||||||
$('#unreact').hide()
|
$('#unreact').hide()
|
||||||
$('#addreact').removeClass('hide')
|
$('#addreact').removeClass('hide')
|
||||||
$('#post-acct-sel').val(acct_id)
|
$('#post-acct-sel').val(acct_id)
|
||||||
@@ -186,9 +187,14 @@ function reactRefreshCore(json) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function emojiReaction(emoji) {
|
function emojiReaction(emoji) {
|
||||||
|
var media = $('#media').val()
|
||||||
var acct_id = $('#post-acct-sel').val()
|
var acct_id = $('#post-acct-sel').val()
|
||||||
var id = $('#reply').val()
|
var id = $('#reply').val()
|
||||||
reaction(emoji, id, acct_id, null)
|
if(media == 'announcement') {
|
||||||
|
announReaction(id, acct_id, 0, false, emoji)
|
||||||
|
} else {
|
||||||
|
reaction(emoji, id, acct_id, null)
|
||||||
|
}
|
||||||
clear()
|
clear()
|
||||||
hide()
|
hide()
|
||||||
}
|
}
|
||||||
|
145
app/js/tl/announParse.js
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
function announParse(obj, acct_id, tlid) {
|
||||||
|
var template = ''
|
||||||
|
var datetype = localStorage.getItem('datetype')
|
||||||
|
var gif = localStorage.getItem('gif')
|
||||||
|
//Ticker
|
||||||
|
var tickerck = localStorage.getItem('ticker_ok')
|
||||||
|
if (tickerck == 'yes') {
|
||||||
|
var ticker = true
|
||||||
|
} else if (!ticker || ticker == 'no') {
|
||||||
|
var ticker = false
|
||||||
|
}
|
||||||
|
if (!datetype) {
|
||||||
|
datetype = 'absolute'
|
||||||
|
}
|
||||||
|
if (!gif) {
|
||||||
|
var gif = 'yes'
|
||||||
|
}
|
||||||
|
Object.keys(obj).forEach(function(key) {
|
||||||
|
var toot = obj[key]
|
||||||
|
var content = toot.content
|
||||||
|
if (toot.emojis) {
|
||||||
|
Object.keys(toot.emojis).forEach(function(key1) {
|
||||||
|
var emoji = toot.emojis[key1]
|
||||||
|
var shortcode = emoji.shortcode
|
||||||
|
if (gif == 'yes') {
|
||||||
|
var emoSource = emoji.url
|
||||||
|
} else {
|
||||||
|
var emoSource = emoji.static_url
|
||||||
|
}
|
||||||
|
var emoji_url = `
|
||||||
|
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||||
|
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||||
|
`
|
||||||
|
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||||
|
content = content.replace(regExp, emoji_url)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
content = twemoji.parse(content)
|
||||||
|
var reactions = ''
|
||||||
|
//既存のリアクション
|
||||||
|
if (toot.reactions) {
|
||||||
|
Object.keys(toot.reactions).forEach(function(key2) {
|
||||||
|
var reaction = toot.reactions[key2]
|
||||||
|
//普通の絵文字 or カスタム絵文字 は文字数判断。ただしスコットランド国旗みたいなやべぇやつに注意
|
||||||
|
var splitter = new GraphemeSplitter()
|
||||||
|
if (splitter.splitGraphemes(reaction.name).length > 1) {
|
||||||
|
//カスタム絵文字
|
||||||
|
var shortcode = reaction.shortcode
|
||||||
|
if (gif == 'yes') {
|
||||||
|
var emoSource = reaction.url
|
||||||
|
} else {
|
||||||
|
var emoSource = reaction.static_url
|
||||||
|
}
|
||||||
|
var emoji_url = `
|
||||||
|
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||||
|
alt=" :${shortcode}: " title="${shortcode}">`
|
||||||
|
} else {
|
||||||
|
emoji_url = twemoji.parse(reaction.name)
|
||||||
|
}
|
||||||
|
var addClass = ''
|
||||||
|
if (reaction.me) {
|
||||||
|
addClass = 'reactioned'
|
||||||
|
}
|
||||||
|
reactions =
|
||||||
|
reactions +
|
||||||
|
`<div class="announReaction ${addClass}" onclick="announReaction('${toot.id}', '${acct_id}', '${tlid}', ${reaction.me},'${reaction.name}')">
|
||||||
|
${emoji_url} ${reaction.count}
|
||||||
|
</div>`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (toot.ends_at) {
|
||||||
|
var ended = `<div class="announReaction" title="${date(toot.ends_at, 'absolute')}" style="width: auto; cursor: default;">
|
||||||
|
<i class="fas fa-arrow-right"></i>
|
||||||
|
${date(toot.ends_at, datetype)}
|
||||||
|
</div>`
|
||||||
|
} else {
|
||||||
|
var ended = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
template =
|
||||||
|
template +
|
||||||
|
`<div class="announcement" data-id="${toot.id}">
|
||||||
|
${content}
|
||||||
|
<div class="reactionsPack">
|
||||||
|
${reactions}
|
||||||
|
<div class="announReaction add" onclick="announReactionNew('${toot.id}', '${acct_id}', '${tlid}')"><i class="fas fa-plus"></i></div>
|
||||||
|
${ended}
|
||||||
|
</div>
|
||||||
|
</div>`
|
||||||
|
})
|
||||||
|
return template
|
||||||
|
}
|
||||||
|
function announReaction(id, acct_id, tlid, del, name) {
|
||||||
|
var at = localStorage.getItem('acct_' + acct_id + '_at')
|
||||||
|
var domain = localStorage.getItem('domain_' + acct_id)
|
||||||
|
var start = 'https://' + domain + '/api/v1/announcements/' + id + '/reactions/' + encodeURIComponent(name)
|
||||||
|
var httpreq = new XMLHttpRequest()
|
||||||
|
if(del) {
|
||||||
|
var method = 'DELETE'
|
||||||
|
} else {
|
||||||
|
var method = 'PUT'
|
||||||
|
}
|
||||||
|
httpreq.open(method, start, true)
|
||||||
|
httpreq.setRequestHeader('Content-Type', 'application/json')
|
||||||
|
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||||
|
httpreq.responseType = 'json'
|
||||||
|
httpreq.send()
|
||||||
|
httpreq.onreadystatechange = function() {
|
||||||
|
if (httpreq.readyState === 4) {
|
||||||
|
var json = httpreq.response
|
||||||
|
if (this.status !== 200) {
|
||||||
|
setLog(start, this.status, this.response)
|
||||||
|
}
|
||||||
|
announ(acct_id, tlid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function announReactionNew(id, acct_id, tlid) {
|
||||||
|
$('#reply').val(id)
|
||||||
|
$('#media').val('announcement')
|
||||||
|
$('#unreact').hide()
|
||||||
|
$('#addreact').removeClass('hide')
|
||||||
|
$('#post-acct-sel').val(acct_id)
|
||||||
|
$('select').formSelect()
|
||||||
|
localStorage.setItem('nohide', true)
|
||||||
|
show()
|
||||||
|
emojiToggle(true)
|
||||||
|
$('#left-side').hide()
|
||||||
|
}
|
||||||
|
function emojiReactionDef(target) {
|
||||||
|
var emojiraw = newpack.filter(function(item, index) {
|
||||||
|
if (item.short_name == target) return true
|
||||||
|
})
|
||||||
|
var hex = emojiraw[0].unified.split('-')
|
||||||
|
if (hex.length === 2) {
|
||||||
|
emoji = twemoji.convert.fromCodePoint(hex[0]) + twemoji.convert.fromCodePoint(hex[1])
|
||||||
|
} else {
|
||||||
|
emoji = twemoji.convert.fromCodePoint(hex[0])
|
||||||
|
}
|
||||||
|
var acct_id = $('#post-acct-sel').val()
|
||||||
|
var id = $('#reply').val()
|
||||||
|
announReaction(id, acct_id, 0, false, emoji)
|
||||||
|
clear()
|
||||||
|
hide()
|
||||||
|
}
|
@@ -880,7 +880,7 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
|||||||
}
|
}
|
||||||
var ftxt = lang.lang_parse_followed;
|
var ftxt = lang.lang_parse_followed;
|
||||||
if (popup > 0 || popup == -1) {
|
if (popup > 0 || popup == -1) {
|
||||||
var notftext = '<span class="cbadge"title="' + date(toot.createdAt,
|
var notftext = '<span class="cbadge" title="' + date(toot.createdAt,
|
||||||
'absolute') + '(' + lang.lang_parse_notftime + ')"><i class="far fa-clock"></i>' + date(toot.createdAt,
|
'absolute') + '(' + lang.lang_parse_notftime + ')"><i class="far fa-clock"></i>' + date(toot.createdAt,
|
||||||
datetype) +
|
datetype) +
|
||||||
'</span>' + ftxt + '<br>';
|
'</span>' + ftxt + '<br>';
|
||||||
|
@@ -406,6 +406,11 @@ function notfCanceler(acct) {
|
|||||||
localStorage.removeItem('notf-follow_' + acct)
|
localStorage.removeItem('notf-follow_' + acct)
|
||||||
$('.notf-follow_' + acct).addClass('hide')
|
$('.notf-follow_' + acct).addClass('hide')
|
||||||
$('.notf-icon_' + acct).removeClass('red-text')
|
$('.notf-icon_' + acct).removeClass('red-text')
|
||||||
|
var id = $('#announce_' + acct + ' .announcement').first().attr('data-id')
|
||||||
|
$('.notf-announ_' + acct + '_ct').text("")
|
||||||
|
if(id) {
|
||||||
|
localStorage.setItem('announ_' + acct, id)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function allNotfRead() {
|
function allNotfRead() {
|
||||||
var multi = localStorage.getItem('multi')
|
var multi = localStorage.getItem('multi')
|
||||||
|
@@ -36,7 +36,7 @@ function src(mode, offset) {
|
|||||||
var user = $('#his-data').attr('user-id')
|
var user = $('#his-data').attr('user-id')
|
||||||
}
|
}
|
||||||
if (!mode) {
|
if (!mode) {
|
||||||
var start = 'https://' + domain + '/api/v2/search?resolve=true&q=' + q + add
|
var start = 'https://' + domain + '/api/v2/search?resolve=true&q=' + encodeURIComponent(q) + add
|
||||||
} else {
|
} else {
|
||||||
var start = 'https://' + domain + '/api/v1/search?q=' + q
|
var start = 'https://' + domain + '/api/v1/search?q=' + q
|
||||||
}
|
}
|
||||||
@@ -218,7 +218,7 @@ function graphDraw(tag, acct_id) {
|
|||||||
var his = tag.history
|
var his = tag.history
|
||||||
return graphDrawCore(his, tag)
|
return graphDrawCore(his, tag)
|
||||||
}
|
}
|
||||||
function graphDrawCore(his, tag){
|
function graphDrawCore(his, tag) {
|
||||||
var max = Math.max.apply(null, [
|
var max = Math.max.apply(null, [
|
||||||
his[0].uses,
|
his[0].uses,
|
||||||
his[1].uses,
|
his[1].uses,
|
||||||
@@ -252,7 +252,9 @@ function graphDrawCore(his, tag){
|
|||||||
toot
|
toot
|
||||||
</div>
|
</div>
|
||||||
<div class="tagCompTag">
|
<div class="tagCompTag">
|
||||||
<a onclick="tl('tag','${escapeHTML(tag.name)}','${acct_id}','add')" class="pointer" title="${escapeHTML(tag.name)}">
|
<a onclick="tl('tag','${escapeHTML(
|
||||||
|
tag.name
|
||||||
|
)}','${acct_id}','add')" class="pointer" title="${escapeHTML(tag.name)}">
|
||||||
#${escapeHTML(tag.name)}
|
#${escapeHTML(tag.name)}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -308,3 +310,48 @@ function trend() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
function srcBox(mode) {
|
||||||
|
var selectedText = window.getSelection().toString()
|
||||||
|
if (mode == 'open') {
|
||||||
|
$('#pageSrc').removeClass('hide')
|
||||||
|
} else if (mode == 'close') {
|
||||||
|
if(!selectedText) {
|
||||||
|
$('#pageSrc').addClass('hide')
|
||||||
|
$('#pageSrc').removeClass('keep')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$('#pageSrc').toggleClass('hide')
|
||||||
|
}
|
||||||
|
if(!$('#pageSrc').hasClass('keep')) {
|
||||||
|
$('#pageSrcInput').val(selectedText)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#pageSrcInput').click(function() {
|
||||||
|
$('#pageSrc').addClass('keep')
|
||||||
|
})
|
||||||
|
$('#pageSrcInput').on('input', function(evt) {
|
||||||
|
if(!$('#pageSrcInput').val()) {
|
||||||
|
$('#pageSrc').removeClass('keep')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
document.addEventListener('selectionchange', function() {
|
||||||
|
var selectedText = window.getSelection().toString()
|
||||||
|
if (selectedText && !$('input').is(':focus') && !$('textarea').is(':focus')) {
|
||||||
|
srcBox('open')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
function doSrc(type) {
|
||||||
|
$('#pageSrc').addClass('hide')
|
||||||
|
$('#pageSrc').removeClass('keep')
|
||||||
|
var q = $('#pageSrcInput').val()
|
||||||
|
if(type == 'web') {
|
||||||
|
var start = localStorage.getItem('srcUrl')
|
||||||
|
if(!start) {
|
||||||
|
start = 'https://google.com/search?q={q}'
|
||||||
|
}
|
||||||
|
start = start.replace(/{q}/, q)
|
||||||
|
postMessage(["openUrl", start], "*")
|
||||||
|
} else if(type == 'ts') {
|
||||||
|
tsAdd(q)
|
||||||
|
}
|
||||||
|
}
|
@@ -64,6 +64,9 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
|||||||
)
|
)
|
||||||
$('#notice_icon_' + tlid).text('bookmark')
|
$('#notice_icon_' + tlid).text('bookmark')
|
||||||
return
|
return
|
||||||
|
} else if (type == 'home') {
|
||||||
|
//ホームならお知らせ「も」取りに行く
|
||||||
|
announ(acct_id, tlid);
|
||||||
}
|
}
|
||||||
localStorage.setItem('now', type)
|
localStorage.setItem('now', type)
|
||||||
todo(cap(type) + ' TL Loading...')
|
todo(cap(type) + ' TL Loading...')
|
||||||
@@ -311,6 +314,8 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
|||||||
}
|
}
|
||||||
} else if (typeA == 'filters_changed') {
|
} else if (typeA == 'filters_changed') {
|
||||||
filterUpdate(acct_id)
|
filterUpdate(acct_id)
|
||||||
|
} else if (~typeA.indexOf('announcement')) {
|
||||||
|
announ(acct_id, tlid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1167,3 +1172,42 @@ function getBookmark(acct_id, tlid, more) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Announcement
|
||||||
|
function announ(acct_id, tlid) {
|
||||||
|
var at = localStorage.getItem('acct_' + acct_id + '_at')
|
||||||
|
var domain = localStorage.getItem('domain_' + acct_id)
|
||||||
|
var start = 'https://' + domain + '/api/v1/announcements'
|
||||||
|
var httpreq = new XMLHttpRequest()
|
||||||
|
httpreq.open('GET', start, true)
|
||||||
|
httpreq.setRequestHeader('Content-Type', 'application/json')
|
||||||
|
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||||
|
httpreq.responseType = 'json'
|
||||||
|
httpreq.send()
|
||||||
|
httpreq.onreadystatechange = function() {
|
||||||
|
if (httpreq.readyState === 4) {
|
||||||
|
var json = httpreq.response
|
||||||
|
if (this.status !== 200) {
|
||||||
|
setLog(start, this.status, this.response)
|
||||||
|
}
|
||||||
|
if (json.length > 0) {
|
||||||
|
$('.notf-announ_' + acct_id).removeClass('hide')
|
||||||
|
var ct = 0
|
||||||
|
for (var i = 0; i < json.length; i++) {
|
||||||
|
if (localStorage.getItem('announ_' + acct_id) == json[i].id) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
ct++
|
||||||
|
}
|
||||||
|
if(ct > 0) {
|
||||||
|
$('.notf-announ_' + acct_id + '_ct').text(ct)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$('.notf-announ_' + acct_id).addClass('hide')
|
||||||
|
}
|
||||||
|
var templete = announParse(json, acct_id, tlid)
|
||||||
|
$('#announce_' + tlid).html(templete)
|
||||||
|
jQuery('time.timeago').timeago()
|
||||||
|
todc()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -102,6 +102,13 @@ function imageXhr(id, key, murl) {
|
|||||||
},
|
},
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
xhr.addEventListener(
|
||||||
|
'error',
|
||||||
|
function(event) {
|
||||||
|
$('#imgmodal').attr('src', murl)
|
||||||
|
},
|
||||||
|
false
|
||||||
|
)
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
if (this.readyState == 4 && this.status == 200) {
|
if (this.readyState == 4 && this.status == 200) {
|
||||||
r = new FileReader()
|
r = new FileReader()
|
||||||
@@ -112,6 +119,9 @@ function imageXhr(id, key, murl) {
|
|||||||
var width
|
var width
|
||||||
element.onload = function() {
|
element.onload = function() {
|
||||||
var width = element.naturalWidth
|
var width = element.naturalWidth
|
||||||
|
if(width < 650) {
|
||||||
|
width = 650;
|
||||||
|
}
|
||||||
var height = element.naturalHeight
|
var height = element.naturalHeight
|
||||||
var windowH = $(window).height()
|
var windowH = $(window).height()
|
||||||
var windowW = $(window).width()
|
var windowW = $(window).width()
|
||||||
|
@@ -234,7 +234,7 @@ function parseColumn(target, dontclose) {
|
|||||||
var unread = `<a id="unread_${key}" onclick="showUnread('${key}','${acct.type}','${acct.domain}')"
|
var unread = `<a id="unread_${key}" onclick="showUnread('${key}','${acct.type}','${acct.domain}')"
|
||||||
class="setting nex" title="${lang.lang_layout_unread}">
|
class="setting nex" title="${lang.lang_layout_unread}">
|
||||||
<i class="material-icons waves-effect nex">more</i>
|
<i class="material-icons waves-effect nex">more</i>
|
||||||
</a>`
|
</a>${lang.lang_layout_unread}<br>`
|
||||||
var notfDomain = acct.domain
|
var notfDomain = acct.domain
|
||||||
var notfKey = key
|
var notfKey = key
|
||||||
var if_tag = ''
|
var if_tag = ''
|
||||||
@@ -368,7 +368,11 @@ function parseColumn(target, dontclose) {
|
|||||||
title="${unique_notf}" ${icnsert}>
|
title="${unique_notf}" ${icnsert}>
|
||||||
<i class="material-icons waves-effect nex notf-icon_${acct.domain}">notifications</i>
|
<i class="material-icons waves-effect nex notf-icon_${acct.domain}">notifications</i>
|
||||||
</a>
|
</a>
|
||||||
${unread}
|
<span class="cbadge hide notf-announ_${acct.domain}" style="margin-right:0"
|
||||||
|
onclick="notfToggle('${acct.domain}','${key}')" title="${lang.lang_layout_announ}">
|
||||||
|
<i class="fas fa-bullhorn"></i>
|
||||||
|
<span class="notf-announ_${acct.domain}_ct"></span>
|
||||||
|
</span>
|
||||||
${if_tag_btn}
|
${if_tag_btn}
|
||||||
</div>
|
</div>
|
||||||
<div class="area-sta">
|
<div class="area-sta">
|
||||||
@@ -389,10 +393,12 @@ function parseColumn(target, dontclose) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="column-hide notf-indv-box z-depth-4" id="notf-box_${notfKey}">
|
<div class="column-hide notf-indv-box z-depth-4" id="notf-box_${notfKey}">
|
||||||
|
<div id="announce_${notfKey}" style="border: 1px solid"></div>
|
||||||
<div id="notifications_${notfKey}" data-notf="${notfDomain}" data-type="notf" class="notf-timeline">
|
<div id="notifications_${notfKey}" data-notf="${notfDomain}" data-type="notf" class="notf-timeline">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:5px;">
|
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:5px;">
|
||||||
|
${unread}
|
||||||
${exclude}${left_hold}
|
${exclude}${left_hold}
|
||||||
<a onclick="mediaToggle('${key}')" class="setting nex">
|
<a onclick="mediaToggle('${key}')" class="setting nex">
|
||||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_mediafil}">perm_media</i>
|
<i class="material-icons waves-effect nex" title="${lang.lang_layout_mediafil}">perm_media</i>
|
||||||
|
@@ -122,6 +122,7 @@ $('#timeline-container,#group').click(function(e) {
|
|||||||
selectedColumn = 0
|
selectedColumn = 0
|
||||||
selectedToot = 0
|
selectedToot = 0
|
||||||
localStorage.removeItem('nohide')
|
localStorage.removeItem('nohide')
|
||||||
|
srcBox('close')
|
||||||
})
|
})
|
||||||
$('#contextWrap').click(function(e) {
|
$('#contextWrap').click(function(e) {
|
||||||
$('#contextWrap').addClass('hide')
|
$('#contextWrap').addClass('hide')
|
||||||
|
52
app/manifest.json
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"name": "TheDesk",
|
||||||
|
"short_name": "TheDesk",
|
||||||
|
"theme_color": "#212121",
|
||||||
|
"background_color": "#212121",
|
||||||
|
"display": "standalone",
|
||||||
|
"Scope": "/",
|
||||||
|
"start_url": "/",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "img/icons/icon-72x72.png",
|
||||||
|
"sizes": "72x72",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "img/icons/icon-96x96.png",
|
||||||
|
"sizes": "96x96",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "img/icons/icon-128x128.png",
|
||||||
|
"sizes": "128x128",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "img/icons/icon-144x144.png",
|
||||||
|
"sizes": "144x144",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "img/icons/icon-152x152.png",
|
||||||
|
"sizes": "152x152",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "img/icons/icon-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "img/icons/icon-384x384.png",
|
||||||
|
"sizes": "384x384",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "img/icons/icon-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"splash_pages": null
|
||||||
|
}
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "thedesk",
|
"name": "thedesk",
|
||||||
"version": "20.1.1",
|
"version": "20.1.2",
|
||||||
"description": "TheDesk is a Mastodon client for PC.",
|
"description": "TheDesk is a Mastodon client for PC.",
|
||||||
"repository": "https://github.com/cutls/TheDesk",
|
"repository": "https://github.com/cutls/TheDesk",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
@@ -11,9 +11,10 @@
|
|||||||
"dist": "build --linux snap",
|
"dist": "build --linux snap",
|
||||||
"watchview": "node view/make/make.js --automatic --watch",
|
"watchview": "node view/make/make.js --automatic --watch",
|
||||||
"build:js": "node build.js",
|
"build:js": "node build.js",
|
||||||
"build": "npx electron-builder",
|
"build": "node view/make/make.js --automatic && npx electron-builder",
|
||||||
"build:all": "npx electron-builder --win --linux",
|
"build:all": "npx electron-builder --win --linux",
|
||||||
"build:win": "npx electron-builder --win"
|
"build:win": "npx electron-builder --win",
|
||||||
|
"build:pwa": "node view/make/make.js --automatic --pwa"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"mastodon",
|
"mastodon",
|
||||||
|
2
app/sw.pwa.js
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
//PWA用
|
||||||
|
self.addEventListener('fetch', function(e) {})
|
@@ -4,7 +4,7 @@
|
|||||||
<title>Account Manager - TheDesk</title>
|
<title>Account Manager - TheDesk</title>
|
||||||
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
<link
|
<link
|
||||||
href="../../node_modules/materialize-css/dist/css/materialize.css"
|
href="../../@@node_base@@/materialize-css/dist/css/materialize.css"
|
||||||
type="text/css"
|
type="text/css"
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
/>
|
/>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||||
<link
|
<link
|
||||||
href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css"
|
||||||
type="text/css"
|
type="text/css"
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
/>
|
/>
|
||||||
@@ -26,19 +26,20 @@
|
|||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
@@comment-end@@
|
@@comment-end@@
|
||||||
|
@@pwa@@
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body id="mainView">
|
<body id="mainView">
|
||||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
<script type="text/javascript" src="../../@@node_base@@/jquery/dist/jquery.js"></script>
|
||||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
<script
|
<script
|
||||||
type="text/javascript"
|
type="text/javascript"
|
||||||
src="../../node_modules/materialize-css/dist/js/materialize.js"
|
src="../../@@node_base@@/materialize-css/dist/js/materialize.js"
|
||||||
></script>
|
></script>
|
||||||
<script type="text/javascript" src="main.js"></script>
|
<script type="text/javascript" src="main.js"></script>
|
||||||
<script
|
<script
|
||||||
type="text/javascript"
|
type="text/javascript"
|
||||||
src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"
|
src="../../@@node_base@@/sweetalert2/dist/sweetalert2.all.min.js"
|
||||||
></script>
|
></script>
|
||||||
<script>
|
<script>
|
||||||
var misskeytoken = false
|
var misskeytoken = false
|
||||||
@@ -135,9 +136,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/tips.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/common/sha256.js"></script>
|
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||||
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
<script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script>
|
||||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"draghere":"Drag here to upload",
|
"draghere":"Drag here to upload",
|
||||||
"close":"Close",
|
"close":"Close",
|
||||||
|
"webSrc": "Search on Web",
|
||||||
|
"tsSrc": "Search on tootsearch",
|
||||||
"showSelectProf":"Show profile of the selecting account",
|
"showSelectProf":"Show profile of the selecting account",
|
||||||
"closethisbox":"Close this box",
|
"closethisbox":"Close this box",
|
||||||
"toot":"Toot",
|
"toot":"Toot",
|
||||||
|
@@ -139,6 +139,7 @@
|
|||||||
"lang_layout_deleteColumnDesc": "Delete this column",
|
"lang_layout_deleteColumnDesc": "Delete this column",
|
||||||
"lang_layout_unread": "Unread",
|
"lang_layout_unread": "Unread",
|
||||||
"lang_layout_tagManager": "Tag timeline manager",
|
"lang_layout_tagManager": "Tag timeline manager",
|
||||||
|
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||||
"lang_sort_gothis": "Go to this column",
|
"lang_sort_gothis": "Go to this column",
|
||||||
"lang_sort_remthis": "Delete this column",
|
"lang_sort_remthis": "Delete this column",
|
||||||
"lang_spotify_img": "Attach an album artwork",
|
"lang_spotify_img": "Attach an album artwork",
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
"env": "System Preferences",
|
"env": "System Preferences",
|
||||||
"setlang": "Languages",
|
"setlang": "Languages",
|
||||||
"backup": "Import and export of preferences",
|
"backup": "Import and export of preferences",
|
||||||
"backupWarn": "If you got a error when you choose the file, please paste the strings of file and click import",
|
"backupWarn": "If you got a error when you choose the file, please paste the strings printed when you open the file and click import",
|
||||||
"import": "Import",
|
"import": "Import",
|
||||||
"export": "Export",
|
"export": "Export",
|
||||||
"hardwareAcceleration": "Disable hardware acceleration",
|
"hardwareAcceleration": "Disable hardware acceleration",
|
||||||
@@ -35,6 +35,8 @@
|
|||||||
"useragent":"User agent",
|
"useragent":"User agent",
|
||||||
"useragentWarn":"Restart when changed",
|
"useragentWarn":"Restart when changed",
|
||||||
"absolute": "absolute value",
|
"absolute": "absolute value",
|
||||||
|
"srcUrl": "Search engine",
|
||||||
|
"srcUrlWarn": "{q} will be replaced to query.",
|
||||||
"themeSel": "Select theme",
|
"themeSel": "Select theme",
|
||||||
"customtheme": "Edit and add custom themes",
|
"customtheme": "Edit and add custom themes",
|
||||||
"customthemeDirection": "Color scheme",
|
"customthemeDirection": "Color scheme",
|
||||||
@@ -139,7 +141,7 @@
|
|||||||
"localonly": "Local Only",
|
"localonly": "Local Only",
|
||||||
"zeroWidthEmoji": "Zero-width space when inserting emojis",
|
"zeroWidthEmoji": "Zero-width space when inserting emojis",
|
||||||
"uploadCrop": "Auto scale to fit",
|
"uploadCrop": "Auto scale to fit",
|
||||||
"uploadCropWarn": "Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Pay attention to GIF animation.",
|
"uploadCropWarn": "Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.",
|
||||||
"keysc": "Keyboard shortcut Preferences",
|
"keysc": "Keyboard shortcut Preferences",
|
||||||
"iks": "Easy inserter",
|
"iks": "Easy inserter",
|
||||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"draghere":"ドラッグしてみ?(ドラッグしたらすぐアップロードされるで)",
|
"draghere":"ドラッグしてみ?(ドラッグしたらすぐアップロードされるで)",
|
||||||
"close":"Close",
|
"close":"Close",
|
||||||
|
"webSrc": "Webでさがす",
|
||||||
|
"tsSrc": "tootsearchでさがす",
|
||||||
"showSelectProf":"このアカウントのプロフィール出す",
|
"showSelectProf":"このアカウントのプロフィール出す",
|
||||||
"closethisbox":"このボックスなおす",
|
"closethisbox":"このボックスなおす",
|
||||||
"post-new":"投稿",
|
"post-new":"投稿",
|
||||||
|
@@ -138,6 +138,7 @@
|
|||||||
"lang_layout_deleteColumnDesc": "カラムを削除してええ?",
|
"lang_layout_deleteColumnDesc": "カラムを削除してええ?",
|
||||||
"lang_layout_unread": "未読",
|
"lang_layout_unread": "未読",
|
||||||
"lang_layout_tagManager": "タグタイムラインをいじる",
|
"lang_layout_tagManager": "タグタイムラインをいじる",
|
||||||
|
"lang_layout_announ": "お知らせ: 数字は未読数や。表示されてんときはもう読んでしもたいうことやな。",
|
||||||
"lang_sort_gothis": "このカラムへ",
|
"lang_sort_gothis": "このカラムへ",
|
||||||
"lang_sort_remthis": "このカラムを消す",
|
"lang_sort_remthis": "このカラムを消す",
|
||||||
"lang_spotify_img": "アルバムアートワークを付けるで。",
|
"lang_spotify_img": "アルバムアートワークを付けるで。",
|
||||||
|
@@ -34,6 +34,8 @@
|
|||||||
"useragent":"ユーザーエージェント",
|
"useragent":"ユーザーエージェント",
|
||||||
"useragentWarn":"再起動すんで。",
|
"useragentWarn":"再起動すんで。",
|
||||||
"absolute": "絶対指定",
|
"absolute": "絶対指定",
|
||||||
|
"srcUrl": "検索エンジン",
|
||||||
|
"srcUrlWarn": "{q}が検索文字列になるで。",
|
||||||
"themeSel": "テーマの選択",
|
"themeSel": "テーマの選択",
|
||||||
"customtheme": "カスタムテーマの作成・編集",
|
"customtheme": "カスタムテーマの作成・編集",
|
||||||
"customthemeDirection": "色の系統",
|
"customthemeDirection": "色の系統",
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
{
|
{
|
||||||
"draghere":"ここにドラッグして添付(ドラッグと同時にアップロードされます)",
|
"draghere":"ここにドラッグして添付(ドラッグと同時にアップロードされます)",
|
||||||
|
"webSrc": "Webで検索",
|
||||||
|
"tsSrc": "tootsearchで検索",
|
||||||
"close":"Close",
|
"close":"Close",
|
||||||
"showSelectProf":"選択したアカウントのプロフィールを表示",
|
"showSelectProf":"選択したアカウントのプロフィールを表示",
|
||||||
"closethisbox":"このボックスを閉じる",
|
"closethisbox":"このボックスを閉じる",
|
||||||
|
@@ -139,6 +139,7 @@
|
|||||||
"lang_layout_deleteColumnDesc": "カラムを削除しますか?",
|
"lang_layout_deleteColumnDesc": "カラムを削除しますか?",
|
||||||
"lang_layout_unread": "未読",
|
"lang_layout_unread": "未読",
|
||||||
"lang_layout_tagManager": "タグタイムラインの編集",
|
"lang_layout_tagManager": "タグタイムラインの編集",
|
||||||
|
"lang_layout_announ": "お知らせ: 数字は未読数を表します。表示されていない場合は全て既読です。",
|
||||||
"lang_sort_gothis": "このカラムへ",
|
"lang_sort_gothis": "このカラムへ",
|
||||||
"lang_sort_remthis": "このカラムを削除",
|
"lang_sort_remthis": "このカラムを削除",
|
||||||
"lang_spotify_img": "アルバムアートワークを添付します。",
|
"lang_spotify_img": "アルバムアートワークを添付します。",
|
||||||
|
@@ -35,6 +35,8 @@
|
|||||||
"useragent":"ユーザーエージェント",
|
"useragent":"ユーザーエージェント",
|
||||||
"useragentWarn":"再起動します。",
|
"useragentWarn":"再起動します。",
|
||||||
"absolute": "絶対指定",
|
"absolute": "絶対指定",
|
||||||
|
"srcUrl": "検索エンジン",
|
||||||
|
"srcUrlWarn": "{q}が検索文字列に置換されます。",
|
||||||
"themeSel": "テーマの選択",
|
"themeSel": "テーマの選択",
|
||||||
"customtheme": "カスタムテーマの作成・編集",
|
"customtheme": "カスタムテーマの作成・編集",
|
||||||
"customthemeDirection": "色の系統",
|
"customthemeDirection": "色の系統",
|
||||||
|
@@ -1,17 +1,17 @@
|
|||||||
let ver = '20.1.1 (Kawaii)'
|
let ver = '20.1.2 (Kawaii)'
|
||||||
if (process.argv.indexOf('--automatic') === -1) {
|
if (process.argv.indexOf('--automatic') === -1) {
|
||||||
let input = require('readline-sync').question('version string [empty: ' + ver + ' (default)]? ')
|
let input = require('readline-sync').question('version string [empty: ' + ver + ' (default)]? ')
|
||||||
if (input) {
|
if (input) {
|
||||||
ver = input
|
ver = input
|
||||||
}
|
}
|
||||||
//var basefile="../../"
|
|
||||||
} else {
|
|
||||||
//var basefile="./"
|
|
||||||
}
|
}
|
||||||
//const { app } = require('electron');
|
var pwa = false
|
||||||
|
if (process.argv.indexOf('--pwa') > 0) {
|
||||||
|
var pwa = true
|
||||||
|
}
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const basefile = path.join(__dirname, '../../')
|
const basefile = path.join(__dirname, '../../')
|
||||||
function main(ver, basefile) {
|
function main(ver, basefile, pwa) {
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const execSync = require('child_process').execSync
|
const execSync = require('child_process').execSync
|
||||||
let gitHash = execSync('git rev-parse HEAD')
|
let gitHash = execSync('git rev-parse HEAD')
|
||||||
@@ -138,11 +138,19 @@ function main(ver, basefile) {
|
|||||||
source = source.replace(/@@gitHashShort@@/g, gitHash.slice(0, 7))
|
source = source.replace(/@@gitHashShort@@/g, gitHash.slice(0, 7))
|
||||||
source = source.replace(/@@lang@@/g, lang)
|
source = source.replace(/@@lang@@/g, lang)
|
||||||
source = source.replace(/@@langlist@@/g, langstr)
|
source = source.replace(/@@langlist@@/g, langstr)
|
||||||
|
if(pwa) {
|
||||||
|
source = source.replace(/@@pwa@@/g, `<link rel="manifest" href="/manifest.json" />
|
||||||
|
<script>var pwa = true;"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.pwa.js").then(e=>{});</script>`)
|
||||||
|
source = source.replace(/@@node_base@@/g, 'dependencies')
|
||||||
|
} else {
|
||||||
|
source = source.replace(/@@pwa@@/g, '<script>var pwa = false;</script>')
|
||||||
|
source = source.replace(/@@node_base@@/g, 'node_modules')
|
||||||
|
}
|
||||||
fs.writeFileSync(basefile + 'view/' + lang + '/' + pages[i], source)
|
fs.writeFileSync(basefile + 'view/' + lang + '/' + pages[i], source)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
main(ver, basefile)
|
main(ver, basefile, pwa)
|
||||||
|
|
||||||
//if --watch, to yarn dev
|
//if --watch, to yarn dev
|
||||||
if (process.argv.indexOf('--watch') !== -1) {
|
if (process.argv.indexOf('--watch') !== -1) {
|
||||||
|
@@ -11,11 +11,11 @@
|
|||||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
@@comment-end@@
|
@@comment-end@@
|
||||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
<link href="../../@@node_base@@/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
<link href="../../css/pickr.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/master.css" type="text/css" rel="stylesheet">
|
||||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.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">
|
<meta charset="utf-8">
|
||||||
<style>
|
<style>
|
||||||
input {
|
input {
|
||||||
@@ -26,17 +26,18 @@
|
|||||||
height: 1rem !important;
|
height: 1rem !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@pwa@@
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body id="mainView" style="overflow-y:scroll">
|
<body id="mainView" style="overflow-y:scroll">
|
||||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
<script type="text/javascript" src="../../@@node_base@@/jquery/dist/jquery.js"></script>
|
||||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
<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="../../@@node_base@@/materialize-css/dist/js/materialize.js"></script>
|
||||||
<script type="text/javascript" src="main.js"></script>
|
<script type="text/javascript" src="main.js"></script>
|
||||||
<script src="../../node_modules/json5/dist/index.min.js"></script>
|
<script src="../../@@node_base@@/json5/dist/index.min.js"></script>
|
||||||
<script src="../../node_modules/vue/dist/vue.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="setting.vue.js"></script>
|
||||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||||
|
|
||||||
<h4>@@setting@@</h4>
|
<h4>@@setting@@</h4>
|
||||||
<ul class="collapsible" data-collapsible="accordion">
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
|
@@ -129,6 +129,19 @@ var envConstruction = [
|
|||||||
head: '@@useragent@@',
|
head: '@@useragent@@',
|
||||||
desc: '@@useragentWarn@@'
|
desc: '@@useragentWarn@@'
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'srcUrl',
|
||||||
|
storage: 'srcUrl',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 200,
|
||||||
|
setValue: 'https://google.com/search?q={q}',
|
||||||
|
text: {
|
||||||
|
head: '@@srcUrl@@',
|
||||||
|
desc: '@@srcUrlWarn@@',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
var tlConstruction = [
|
var tlConstruction = [
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
<html lang="@@lang@@">
|
<html lang="@@lang@@">
|
||||||
<head>
|
<head>
|
||||||
<title>Update - TheDesk</title>
|
<title>Update - TheDesk</title>
|
||||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
<link href="../../@@node_base@@/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||||
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
@@comment-start@@
|
@@comment-start@@
|
||||||
@@ -46,13 +46,13 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.skipbtn {
|
.skipbtn {
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
width: 100%;
|
||||||
width: 250px;
|
height: 100px;
|
||||||
height: 200px;
|
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -60,7 +60,9 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
border: 1px solid #c26363;
|
border: 1px solid #c26363;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
color: #c26363
|
color: #c26363;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.skipbtn:hover {
|
.skipbtn:hover {
|
||||||
@@ -73,13 +75,14 @@
|
|||||||
font-size: 200%;
|
font-size: 200%;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
<link href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||||
|
@@pwa@@
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
<script type="text/javascript" src="../../@@node_base@@/jquery/dist/jquery.js"></script>
|
||||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
<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="../../@@node_base@@/materialize-css/dist/js/materialize.js"></script>
|
||||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||||
<!--a href="update.html">Reload</a-->
|
<!--a href="update.html">Reload</a-->
|
||||||
|