Unlinking

This commit is contained in:
2026-02-02 21:55:35 +01:00
parent e1102d9f06
commit 47a8bfa50a
3 changed files with 160 additions and 8 deletions

View File

@@ -41,22 +41,26 @@
return '/';
}
function ensurePageLink() {
function requestPageLink(cmd, params) {
var pageId = getPageId();
if (!pageId) return false;
var endpoint = getBaseUrl() + 'lib/plugins/luxtools/pagelink.php';
var params = new window.URLSearchParams();
params.set('cmd', 'ensure');
params.set('id', pageId);
params.set('sectok', getSectok());
var payload = new window.URLSearchParams();
payload.set('cmd', cmd);
payload.set('id', pageId);
if (params && typeof params === 'object') {
Object.keys(params).forEach(function (key) {
payload.set(key, String(params[key]));
});
}
window.fetch(endpoint, {
method: 'POST',
credentials: 'same-origin',
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' },
body: params.toString()
body: payload.toString()
}).then(function (res) {
return res.json().catch(function () { return null; }).then(function (body) {
if (!res.ok || !body || body.ok !== true) {
@@ -66,13 +70,25 @@
});
}).catch(function (err) {
if (window.console && window.console.warn) {
window.console.warn('PageLink creation failed:', err);
window.console.warn('PageLink request failed:', err);
}
});
return false;
}
function fetchInfo() {
return requestPageLink('info', {});
}
function ensurePageLink() {
return requestPageLink('ensure', { sectok: getSectok() });
}
function unlinkPageLink() {
return requestPageLink('unlink', { sectok: getSectok() });
}
function copyToClipboard(text) {
if (!text) return;
if (window.navigator && window.navigator.clipboard && window.navigator.clipboard.writeText) {
@@ -126,7 +142,37 @@
window.addBtnActionLuxtoolsPageLink = function ($btn, props, edid) {
$btn.on('click', function () {
ensurePageLink();
var pageId = getPageId();
if (!pageId) return false;
var endpoint = getBaseUrl() + 'lib/plugins/luxtools/pagelink.php';
var query = endpoint + '?cmd=info&id=' + encodeURIComponent(pageId);
window.fetch(query, {
method: 'GET',
credentials: 'same-origin'
}).then(function (res) {
return res.json().catch(function () { return null; }).then(function (body) {
if (!res.ok || !body || body.ok !== true) {
throw new Error('request failed');
}
return body;
});
}).then(function (info) {
if (info && info.uuid) {
if (window.confirm('Unlink page?')) {
unlinkPageLink();
}
return;
}
ensurePageLink();
}).catch(function (err) {
if (window.console && window.console.warn) {
window.console.warn('PageLink info failed:', err);
}
ensurePageLink();
});
return false;
});
return 'luxtools-pagelink';