fictioneer/js/css-skins.min.js

1 line
6.2 KiB
JavaScript
Raw Normal View History

function fcn_getSkins(){const n=fcn_getCookie("fcnLoggedIn");if(!n)return null;const t={data:{},active:null,fingerprint:n},i=fcn_parseJSON(localStorage.getItem("fcnSkins"))??t;return i?.fingerprint&&n===i.fingerprint?(("object"!=typeof i.data||Array.isArray(i.data))&&(i.data={}),i):t}function fcn_setSkins(n){"object"!=typeof n||null===n||"object"!=typeof n.data||Array.isArray(n.data)?fcn_showNotification(fcn_skinTranslations.invalidJson,3,"warning"):n?.fingerprint&&fcn_getCookie("fcnLoggedIn")===n.fingerprint?localStorage.setItem("fcnSkins",JSON.stringify(n)):fcn_showNotification(fcn_skinTranslations.wrongFingerprint,3,"warning")}function fcn_getSkinInfo(n){const t=n.match(/Name:\s*(.+)/),i=n.match(/Author:\s*(.+)/),e=n.match(/Version:\s*(.+)/);return{name:t?fcn_sanitizeHTML(t[1].trim()):null,author:i?fcn_sanitizeHTML(i[1].trim()):null,version:e?fcn_sanitizeHTML(e[1].trim()):null}}function fcn_toggleSkin(n){const t=n.closest('[data-css-skin-finder="skin-item"]'),i=fcn_getSkins();t.classList.contains("active")?(_$$('[data-css-skin-finder="skin-item"]').forEach((n=>n.classList.remove("active"))),i.active=null):(_$$('[data-css-skin-finder="skin-item"]').forEach((n=>n.classList.remove("active"))),t.classList.add("active"),i.active=n.dataset.skinId),fcn_setSkins(i),fcn_applySkin()}function fcn_deleteSkin(n){const t=n.closest('[data-css-skin-finder="skin-item"]'),i=fcn_getSkins();t.classList.contains("active")&&(i.active=null),delete i.data[n.dataset.skinId],_$('[data-css-skin-target="file"]').value="",fcn_setSkins(i),fcn_renderSkinList(),fcn_applySkin()}function fcn_applySkin(){const n=fcn_getCookie("fcnLoggedIn");if(!n||_$("body.wp-admin"))return;const t=fcn_getSkins();if(_$$$("fictioneer-active-custom-skin")?.remove(),t?.fingerprint===n&&t?.data?.[t.active]?.css){const n=document.createElement("style");n.textContent=t.data[t.active].css,n.id="fictioneer-active-custom-skin",_$("head").appendChild(n)}}function fcn_renderSkinList(){const n=_$('[data-css-skin-target="list"]'),t=fcn_getCookie("fcnLoggedIn");if(!t||!n)return;const i=fcn_getSkins();n.innerHTML="",i?.fingerprint===t?(i?.data&&Object.keys(i.data).length>0&&(Object.entries(i.data).forEach((([t,e])=>{const s=_$('[data-css-skin-target="template"]').content.cloneNode(!0);i.active===t&&s.querySelector('[data-css-skin-finder="skin-item"]').classList.add("active"),s.querySelector('[data-action="click->css-skin#toggle"]').dataset.skinId=t,s.querySelector('[data-action="click->css-skin#delete"]').dataset.skinId=t,s.querySelector('[data-css-skin-finder="name"]').innerText=e.name,s.querySelector('[data-css-skin-finder="version"]').innerText=e.version,s.querySelector('[data-css-skin-finder="author"]').innerText=e.author,n.appendChild(s)})),_$$('[data-action="click->css-skin#toggle"]').forEach((n=>{n.addEventListener("click",(n=>fcn_toggleSkin(n.currentTarget)))})),_$$('[data-action="click->css-skin#delete"]').forEach((n=>{n.addEventListener("click",(n=>fcn_deleteSkin(n.currentTarget)))}))),Object.keys(i.data).length>2?_$('[data-css-skin-target="form"]').style.display="none":_$('[data-css-skin-target="form"]').style.display=""):_$('[data-css-skin-target="form"]').style.display=""}function fcn_uploadSkins(n){if(!fcn_isUserLoggedIn()||n.classList.contains("disabled"))return;const t=fcn_getSkins();fcn_toggleInProgress(n),_$('[data-css-skin-target="action-status-message"]').classList.add("invisible"),fcn_ajaxPost({action:"fictioneer_ajax_save_skins",fcn_fast_ajax:1,skins:JSON.stringify(t)}).then((n=>{n.success?(fcn_showNotification(n.data.message,3,"success"),fcn_toggleSkinNotice(_$('[data-css-skin-target="action-status-message"]'))):(fcn_showNotification(n.data.failure??n.data.error??fictioneer_tl.notification.error,3,"warning"),(n.data.error||n.data.failure)&&console.error("Error:",n.data.error??n.data.failure))})).catch((n=>{n.status&&n.statusText&&fcn_showNotification(`${n.status}: ${n.statusText}`,3,"warning"),console.error(n)})).then((()=>{_$('[data-css-skin-target="file"]').value="",fcn_toggleInProgress(n)}))}function fcn_downloadSkins(n){fcn_isUserLoggedIn()&&!n.classList.c