mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-30 19:58:50 +00:00
@@ -12,7 +12,7 @@ const out = {};
|
||||
Object.assign(out, await page.evaluate(async () => {
|
||||
const o = {};
|
||||
const c = window.__card;
|
||||
const nativeConfirm = window.confirm;
|
||||
const confirmDanger = c._confirmDanger;
|
||||
|
||||
// Пикер читает `showEntities` и `bindingFilter` из открытого диалога, поэтому
|
||||
// спрашивать его при закрытом бессмысленно: отдельные сущности устройств не
|
||||
@@ -30,10 +30,10 @@ Object.assign(out, await page.evaluate(async () => {
|
||||
const remove = async (device) => {
|
||||
c._openMarkerDialog(device);
|
||||
await c.updateComplete;
|
||||
window.confirm = () => true;
|
||||
c._confirmDanger = async () => true;
|
||||
await c._deleteMarker();
|
||||
await c.updateComplete;
|
||||
window.confirm = nativeConfirm;
|
||||
c._confirmDanger = confirmDanger;
|
||||
};
|
||||
const markers = () => c._serverCfg.markers || [];
|
||||
const tombstones = () => markers().filter((m) => m.removed === true);
|
||||
|
||||
@@ -79,10 +79,10 @@ Object.assign(out, await page.evaluate(async () => {
|
||||
const virtualB = c._devices.find((x) => x.virtual && x.name === 'delete-one-b');
|
||||
c._openMarkerDialog(virtualA); await c.updateComplete;
|
||||
o.deleteForVirtual = !!sr().querySelector('hp-dialog .btn.danger');
|
||||
const savedConfirm = window.confirm;
|
||||
window.confirm = () => true;
|
||||
const savedConfirmDanger = c._confirmDanger;
|
||||
c._confirmDanger = async () => true;
|
||||
await c._deleteMarker(); await c.updateComplete;
|
||||
window.confirm = savedConfirm;
|
||||
c._confirmDanger = savedConfirmDanger;
|
||||
o.deleteOnlySelectedVirtual = !!virtualA && !!virtualB
|
||||
&& !(c._serverCfg.markers || []).some((m) => m.id === virtualA.id)
|
||||
&& (c._serverCfg.markers || []).some((m) => m.id === virtualB.id);
|
||||
@@ -93,9 +93,9 @@ Object.assign(out, await page.evaluate(async () => {
|
||||
const oldPos = { s: readd.space, x: 0.913, y: 0.917 };
|
||||
c._layout = { ...c._layout, [readd.id]: oldPos };
|
||||
c._openMarkerDialog(readd); await c.updateComplete;
|
||||
window.confirm = () => true;
|
||||
c._confirmDanger = async () => true;
|
||||
await c._deleteMarker(); await c.updateComplete;
|
||||
window.confirm = savedConfirm;
|
||||
c._confirmDanger = savedConfirmDanger;
|
||||
c._openMarkerDialog(); await c.updateComplete;
|
||||
c._markerDialog = {
|
||||
...c._markerDialog,
|
||||
|
||||
@@ -87,12 +87,12 @@ const result = await page.evaluate(async () => {
|
||||
card._pointers.set(113, { x: 10, y: 10 });
|
||||
card._drag = { id: 'stale-device', sx: 0, sy: 0, ox: 0, oy: 0, moved: true };
|
||||
card._saveConfigDebounced();
|
||||
const confirmBefore = window.confirm;
|
||||
window.confirm = () => true;
|
||||
const confirmBefore = card._confirmDanger;
|
||||
card._confirmDanger = async () => true;
|
||||
try {
|
||||
await card._deleteSpace();
|
||||
} finally {
|
||||
window.confirm = confirmBefore;
|
||||
card._confirmDanger = confirmBefore;
|
||||
}
|
||||
await settle();
|
||||
|
||||
|
||||
@@ -172,19 +172,19 @@ const out = await page.evaluate(async () => {
|
||||
&& card._layout['removed-marker'].s === 'gone'
|
||||
&& !card.renderRoot.querySelector('.dev[data-id="orphan"]');
|
||||
|
||||
let nativeConfirmCalls = 0;
|
||||
const oldConfirm = window.confirm;
|
||||
window.confirm = () => { nativeConfirmCalls++; return true; };
|
||||
let dangerConfirmCalls = 0;
|
||||
const oldConfirmDanger = card._confirmDanger;
|
||||
card._confirmDanger = async () => { dangerConfirmCalls++; return true; };
|
||||
card._openSpaceDialog('edit', 'home');
|
||||
await card.updateComplete;
|
||||
await card._deleteSpace();
|
||||
await card.updateComplete;
|
||||
const blocker = card.renderRoot.querySelector('hp-dialog [role="alert"]')?.textContent || '';
|
||||
result.deleteExplainsBlockerWithoutConfirmOrWrite = nativeConfirmCalls === 0
|
||||
result.deleteExplainsBlockerWithoutConfirmOrWrite = dangerConfirmCalls === 0
|
||||
&& blocker.includes('still used by 1 device')
|
||||
&& !calls.includes('houseplan/space/delete')
|
||||
&& card._spaceDialog?.spaceId === 'home';
|
||||
window.confirm = oldConfirm;
|
||||
card._confirmDanger = oldConfirmDanger;
|
||||
card._spaceDialog = null;
|
||||
await card.updateComplete;
|
||||
|
||||
|
||||
@@ -86,8 +86,10 @@ const out = await page.evaluate(async () => {
|
||||
&& root().querySelectorAll('.oprow').length === 2
|
||||
&& root().querySelectorAll('.lockact').length === 1;
|
||||
|
||||
window.confirm = () => true;
|
||||
card._lockAction(lockId, 'unlock');
|
||||
const confirmDanger = card._confirmDanger;
|
||||
card._confirmDanger = async () => true;
|
||||
await card._lockAction(lockId, 'unlock');
|
||||
card._confirmDanger = confirmDanger;
|
||||
result.explicitInfoActionStillWorks = serviceCalls.at(-1)?.domain === 'lock'
|
||||
&& serviceCalls.at(-1)?.service === 'unlock'
|
||||
&& serviceCalls.at(-1)?.entityId === lockId;
|
||||
|
||||
Reference in New Issue
Block a user