This commit is contained in:
Vanessa 2022-12-05 00:19:19 +08:00
parent 391e5ec5fb
commit 7a138a5836
7 changed files with 108 additions and 39 deletions

View File

@ -1,5 +1,12 @@
document.body.insertAdjacentHTML('afterBegin', `<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" xmlns="http://www.w3.org/2000/svg">
<defs>
<symbol id="iconEyeoff" viewBox="0 0 32 32">
<path d="M31.788 15.276q-1.935-4.077-4.606-6.65l-1.867 1.867c1.523 1.455 2.849 3.359 3.996 5.73-3.053 6.32-7.388 9.322-13.311 9.322q-2.667 0-4.913-0.821l-2.023 2.023q3.119 1.44 6.936 1.44 10.58 0 15.788-11.021c0.134-0.277 0.212-0.602 0.212-0.945s-0.078-0.668-0.218-0.958l0.006 0.013zM29.455 3.508l-1.564-1.566c-0.053-0.053-0.127-0.086-0.208-0.086s-0.155 0.033-0.208 0.086v0l-4.014 4.012q-3.319-1.696-7.461-1.696-10.58 0-15.788 11.021c-0.134 0.277-0.212 0.602-0.212 0.945s0.078 0.668 0.218 0.958l-0.006-0.013q2.080 4.382 5.009 7.025l-3.884 3.882c-0.053 0.053-0.086 0.127-0.086 0.208s0.033 0.154 0.086 0.208l1.567 1.567c0.053 0.053 0.127 0.086 0.208 0.086s0.154-0.033 0.208-0.086l26.135-26.134c0.053-0.053 0.086-0.127 0.086-0.208s-0.033-0.155-0.086-0.208v0zM2.689 16.222c3.057-6.32 7.391-9.322 13.311-9.322 2.002 0 3.822 0.343 5.473 1.042l-2.58 2.58c-0.88-0.479-1.927-0.76-3.041-0.76-3.567 0-6.459 2.892-6.459 6.459 0 1.113 0.282 2.16 0.777 3.075l-0.017-0.034-3.061 3.061c-1.694-1.495-3.155-3.522-4.403-6.101zM11.743 16.222c0.002-2.271 1.844-4.11 4.114-4.11 0.447 0 0.877 0.071 1.28 0.203l-0.029-0.008-5.171 5.171c-0.124-0.374-0.195-0.804-0.195-1.251 0-0.002 0-0.003 0-0.005v0z"></path>
<path d="M15.853 20.333c-0.127 0-0.252-0.006-0.376-0.017l-1.938 1.938c0.686 0.271 1.48 0.427 2.311 0.427 3.569 0 6.462-2.893 6.462-6.462 0-0.831-0.157-1.625-0.443-2.355l0.015 0.044-1.938 1.938c0.011 0.124 0.017 0.249 0.017 0.376 0 0.001 0 0.001 0 0.002 0 2.269-1.839 4.108-4.108 4.108-0.001 0-0.002 0-0.002 0h0z"></path>
</symbol>
<symbol id="iconEye" viewBox="0 0 32 32">
<path d="M31.788 15.053c-3.479-7.329-8.738-11.017-15.788-11.017-7.054 0-12.309 3.688-15.788 11.021-0.134 0.277-0.212 0.602-0.212 0.945s0.078 0.668 0.218 0.958l-0.006-0.013c3.479 7.329 8.738 11.017 15.788 11.017 7.054 0 12.309-3.688 15.788-11.021 0.283-0.595 0.283-1.284 0-1.89zM16 25.322c-5.92 0-10.254-3.002-13.311-9.322 3.057-6.32 7.391-9.322 13.311-9.322s10.254 3.002 13.311 9.322c-3.053 6.32-7.388 9.322-13.311 9.322zM15.853 9.541c-3.567 0-6.459 2.892-6.459 6.459s2.892 6.459 6.459 6.459 6.459-2.892 6.459-6.459-2.892-6.459-6.459-6.459zM15.853 20.11c-2.272 0-4.11-1.839-4.11-4.11s1.839-4.11 4.11-4.11 4.11 1.839 4.11 4.11-1.839 4.11-4.11 4.11z"></path>
</symbol>
<symbol id="iconReplace" viewBox="0 0 32 32">
<path d="M1.177 11.059q0.75-4.412 4.213-7.235t7.963-2.824q2.868 0 5.36 1.323t4.346 3.573v-4.897h2.647v10.059h-10.059v-2.647h5.912q-1.412-2.118-3.552-3.441t-4.654-1.323q-3.397 0-6.066 2.051t-3.419 5.36zM29.103 31l-8.118-8.118q-1.632 1.368-3.573 2.073t-4.059 0.706q-2.868 0-5.404-1.191t-4.301-3.441v4.677h-2.647v-10.059h10.059v2.647h-6.132q1.456 2.118 3.662 3.419t4.765 1.302q3.309 0 5.89-2.073t3.419-5.294h2.691q-0.221 1.5-0.86 2.846t-1.61 2.493l8.118 8.118z"></path>
</symbol>

View File

@ -2,5 +2,5 @@
"name": "ant",
"author": "Vanessa",
"url": "https://github.com/Vanessa219",
"version": "1.8.0"
"version": "1.9.0"
}

View File

@ -28,6 +28,18 @@
<body>
<h2>SiYuan</h2>
<div class="fn__clear">
<div>
<svg>
<use xlink:href="#iconEyeoff"></use>
</svg>
iconEyeoff
</div>
<div>
<svg>
<use xlink:href="#iconEye"></use>
</svg>
iconEye
</div>
<div>
<svg>
<use xlink:href="#iconReplace"></use>

View File

@ -1,5 +1,11 @@
document.body.insertAdjacentHTML('afterbegin', `<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" xmlns="http://www.w3.org/2000/svg">
<defs>
<symbol id="iconEyeoff" viewBox="0 0 32 32">
<path d="M21.418 17.655l-1.6-1.6q0.945-2.582-0.982-4.291t-4.182-0.873l-1.6-1.6q0.618-0.4 1.382-0.582t1.564-0.182q2.582 0 4.382 1.8t1.8 4.382q0 0.8-0.2 1.582t-0.564 1.364zM26.109 22.346l-1.455-1.455q1.782-1.309 3.109-2.927t1.945-3.255q-1.818-4.036-5.455-6.382t-7.891-2.345q-1.527 0-3.127 0.291t-2.509 0.691l-1.673-1.709q1.273-0.582 3.255-1.018t3.873-0.436q5.2 0 9.509 2.964t6.309 7.945q-0.945 2.327-2.436 4.255t-3.455 3.382zM28.218 30.564l-6.109-6q-1.273 0.509-2.873 0.782t-3.236 0.273q-5.309 0-9.636-2.964t-6.364-7.945q0.727-1.891 2.018-3.691t3.145-3.436l-4.582-4.582 1.527-1.564 27.527 27.527zM6.655 9.109q-1.345 0.982-2.6 2.582t-1.8 3.018q1.855 4.036 5.582 6.382t8.455 2.345q1.2 0 2.364-0.145t1.745-0.436l-2.327-2.327q-0.4 0.182-0.982 0.273t-1.091 0.091q-2.545 0-4.364-1.782t-1.818-4.4q0-0.545 0.091-1.091t0.273-0.982z"></path>
</symbol>
<symbol id="iconEye" viewBox="0 0 32 32">
<path d="M16 22.182q2.582 0 4.382-1.8t1.8-4.382-1.8-4.382-4.382-1.8-4.382 1.8-1.8 4.382 1.8 4.382 4.382 1.8zM16 20.073q-1.709 0-2.891-1.182t-1.182-2.891 1.182-2.891 2.891-1.182 2.891 1.182 1.182 2.891-1.182 2.891-2.891 1.182zM16 26.909q-5.309 0-9.6-3.018t-6.4-7.891q2.109-4.873 6.4-7.891t9.6-3.018 9.6 3.018 6.4 7.891q-2.109 4.873-6.4 7.891t-9.6 3.018zM16 24.727q4.4 0 8.091-2.382t5.618-6.345q-1.927-3.964-5.618-6.345t-8.091-2.382-8.091 2.382-5.655 6.345q1.964 3.964 5.655 6.345t8.091 2.382z"></path>
</symbol>
<symbol id="iconReplace" viewBox="0 0 32 32">
<path d="M1.177 11.059q0.75-4.412 4.213-7.235t7.963-2.824q2.868 0 5.36 1.323t4.346 3.573v-4.897h2.647v10.059h-10.059v-2.647h5.912q-1.412-2.118-3.552-3.441t-4.654-1.323q-3.397 0-6.066 2.051t-3.419 5.36zM29.103 31l-8.118-8.118q-1.632 1.368-3.573 2.073t-4.059 0.706q-2.868 0-5.404-1.191t-4.301-3.441v4.677h-2.647v-10.059h10.059v2.647h-6.132q1.456 2.118 3.662 3.419t4.765 1.302q3.309 0 5.89-2.073t3.419-5.294h2.691q-0.221 1.5-0.86 2.846t-1.61 2.493l8.118 8.118z"></path>
</symbol>

View File

@ -2,5 +2,5 @@
"name": "material",
"author": "Vanessa",
"url": "https://github.com/Vanessa219",
"version": "1.8.0"
"version": "1.9.0"
}

View File

@ -17,11 +17,6 @@
top: 6px;
height: 16px;
width: 16px;
&--current {
color: var(--b3-theme-primary);
background-color: var(--b3-theme-surface);
}
}
&-action {
@ -58,6 +53,33 @@
}
}
&__icona {
position: relative;
color: var(--b3-theme-on-surface);
flex: 1;
&-icon {
position: absolute;
right: 1px;
top: 1px;
height: 16px;
width: 16px;
cursor: pointer;
padding: 5px;
border-radius: 2px;
&:hover {
color: var(--b3-theme-on-background);
background-color: var(--b3-list-icon-hover);
}
}
&-input {
width: 100%;
padding-right: 35px !important;
}
}
&__img {
position: relative;

View File

@ -3,6 +3,7 @@ import {fetchPost} from "../util/fetch";
import {isMobile} from "../util/functions";
import {showMessage} from "../dialog/message";
import {bindSyncCloudListEvent, getSyncCloudList} from "../sync/syncGuide";
import {hasClosestByClassName} from "../protyle/util/hasClosest";
const renderProvider = (provider: number) => {
if (provider === 0) {
@ -58,7 +59,10 @@ const renderProvider = (provider: number) => {
<div class="b3-label b3-label--noborder">
<div>Secret Key</div>
<div class="fn__hr"></div>
<input id="secretKey" type="password" class="b3-text-field fn__block" value="${window.siyuan.config.sync.s3.secretKey}">
<div class="b3-form__icona">
<input id="secretKey" type="password" class="b3-text-field b3-form__icona-input" value="${window.siyuan.config.sync.s3.secretKey}">
<svg class="b3-form__icona-icon"><use xlink:href="#iconEye"></use></svg>
</div>
</div>
<div class="b3-label b3-label--noborder">
<div>Bucket</div>
@ -70,6 +74,11 @@ const renderProvider = (provider: number) => {
<div class="fn__hr"></div>
<input id="region" class="b3-text-field fn__block" value="${window.siyuan.config.sync.s3.region}">
</div>
<div class="b3-label b3-label--noborder">
<div>Timeout (s)</div>
<div class="fn__hr"></div>
<input id="timeout" class="b3-text-field fn__block" type="number" min="7" max="300" value="${window.siyuan.config.sync.s3.timeout}">
</div>
<div class="b3-label b3-label--noborder">
<div>Addressing</div>
<div class="fn__hr"></div>
@ -85,13 +94,7 @@ const renderProvider = (provider: number) => {
<option ${window.siyuan.config.sync.s3.skipTlsVerify ? "" : "selected"} value="false">Verify</option>
<option ${window.siyuan.config.sync.s3.skipTlsVerify ? "selected" : ""} value="true">Skip</option>
</select>
</div>
<div class="b3-label b3-label--noborder">
<div>Timeout (s)</div>
<div class="fn__hr"></div>
<input id="timeout" class="b3-text-field fn__block" type="number" min="7" max="300" value="${window.siyuan.config.sync.s3.timeout}">
</div>
`;
</div>`;
}
return `${tip}
<label class="b3-label b3-label--noborder fn__flex">
@ -107,7 +110,10 @@ const renderProvider = (provider: number) => {
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">Secret Key</div>
<div class="fn__space"></div>
<input id="secretKey" type="password" class="b3-text-field fn__flex-1" value="${window.siyuan.config.sync.s3.secretKey}">
<div class="b3-form__icona">
<input id="secretKey" type="password" class="b3-text-field b3-form__icona-input" value="${window.siyuan.config.sync.s3.secretKey}">
<svg class="b3-form__icona-icon"><use xlink:href="#iconEye"></use></svg>
</div>
</label>
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">Bucket</div>
@ -119,6 +125,11 @@ const renderProvider = (provider: number) => {
<div class="fn__space"></div>
<input id="region" class="b3-text-field fn__flex-1" value="${window.siyuan.config.sync.s3.region}">
</label>
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">Timeout (s)</div>
<div class="fn__space"></div>
<input id="timeout" class="b3-text-field fn__flex-1" type="number" min="7" max="300" value="${window.siyuan.config.sync.s3.timeout}">
</label>
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">Addressing</div>
<div class="fn__space"></div>
@ -134,11 +145,6 @@ const renderProvider = (provider: number) => {
<option ${window.siyuan.config.sync.s3.skipTlsVerify ? "" : "selected"} value="false">Verify</option>
<option ${window.siyuan.config.sync.s3.skipTlsVerify ? "selected" : ""} value="true">Skip</option>
</select>
</label>
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">Timeout (s)</div>
<div class="fn__space"></div>
<input id="timeout" class="b3-text-field fn__flex-1" type="number" min="7" max="300" value="${window.siyuan.config.sync.s3.timeout}">
</label>`;
} else if (provider === 3) {
const tip = `<div class="b3-label b3-label--inner">
@ -163,7 +169,15 @@ const renderProvider = (provider: number) => {
<div class="b3-label b3-label--noborder">
<div>Password</div>
<div class="fn__hr"></div>
<input id="password" type="password" class="b3-text-field fn__block" value="${window.siyuan.config.sync.webdav.password}">
<div class="b3-form__icona">
<input id="password" type="password" class="b3-text-field b3-form__icona-input" value="${window.siyuan.config.sync.webdav.password}">
<svg class="b3-form__icona-icon"><use xlink:href="#iconEye"></use></svg>
</div>
</div>
<div class="b3-label b3-label--noborder">
<div>Timeout (s)</div>
<div class="fn__hr"></div>
<input id="timeout" class="b3-text-field fn__block" type="number" min="7" max="300" value="${window.siyuan.config.sync.webdav.timeout}">
</div>
<div class="b3-label b3-label--noborder">
<div>TLS verify</div>
@ -172,11 +186,6 @@ const renderProvider = (provider: number) => {
<option ${window.siyuan.config.sync.webdav.skipTlsVerify ? "" : "selected"} value="false">Verify</option>
<option ${window.siyuan.config.sync.webdav.skipTlsVerify ? "selected" : ""} value="true">Skip</option>
</select>
</div>
<div class="b3-label b3-label--noborder">
<div>Timeout (s)</div>
<div class="fn__hr"></div>
<input id="timeout" class="b3-text-field fn__block" type="number" min="7" max="300" value="${window.siyuan.config.sync.webdav.timeout}">
</div>`;
}
return `${tip}
@ -193,7 +202,15 @@ const renderProvider = (provider: number) => {
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">Password</div>
<div class="fn__space"></div>
<input id="password" type="password" class="b3-text-field fn__flex-1" value="${window.siyuan.config.sync.webdav.password}">
<div class="b3-form__icona">
<input id="password" type="password" class="b3-text-field b3-form__icona-input" value="${window.siyuan.config.sync.webdav.password}">
<svg class="b3-form__icona-icon"><use xlink:href="#iconEye"></use></svg>
</div>
</label>
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">Timeout (s)</div>
<div class="fn__space"></div>
<input id="timeout" class="b3-text-field fn__flex-1" type="number" min="7" max="300" value="${window.siyuan.config.sync.webdav.timeout}">
</label>
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">TLS Verify</div>
@ -202,11 +219,6 @@ const renderProvider = (provider: number) => {
<option ${window.siyuan.config.sync.webdav.skipTlsVerify ? "" : "selected"} value="false">Verify</option>
<option ${window.siyuan.config.sync.webdav.skipTlsVerify ? "selected" : ""} value="true">Skip</option>
</select>
</label>
<label class="b3-label b3-label--noborder fn__flex">
<div class="fn__flex-center fn__size200">Timeout (s)</div>
<div class="fn__space"></div>
<input id="timeout" class="b3-text-field fn__flex-1" type="number" min="7" max="300" value="${window.siyuan.config.sync.webdav.timeout}">
</label>`;
}
return "";
@ -473,12 +485,22 @@ ${syncModeHTML}
loadingElement.style.width = repos.element.clientWidth + "px";
loadingElement.style.height = repos.element.clientHeight + "px";
bindSyncCloudListEvent(syncConfigElement);
repos.element.querySelector('[data-type="config"]').addEventListener("click", () => {
if (syncConfigElement.classList.contains("fn__none")) {
getSyncCloudList(syncConfigElement, true);
syncConfigElement.classList.remove("fn__none");
} else {
syncConfigElement.classList.add("fn__none");
repos.element.addEventListener("click", (event) => {
const target = event.target as HTMLElement;
if (target.getAttribute("data-type") === "config") {
if (syncConfigElement.classList.contains("fn__none")) {
getSyncCloudList(syncConfigElement, true);
syncConfigElement.classList.remove("fn__none");
} else {
syncConfigElement.classList.add("fn__none");
}
return;
}
const eyeElement = hasClosestByClassName(target, "b3-form__icona-icon");
if (eyeElement) {
const isEye = eyeElement.firstElementChild.getAttribute("xlink:href") === "#iconEye";
eyeElement.firstElementChild.setAttribute("xlink:href", isEye ? "#iconEyeoff" : "#iconEye");
eyeElement.previousElementSibling.setAttribute("type", isEye ? "text" : "password");
}
});
},