add ability to set default canvas by server

sort CanvasSelection list with default canvas first and linked canvases
after the canvas they link to
This commit is contained in:
HF 2024-02-24 11:12:26 +01:00
parent f2de50f846
commit ca52b7ecd7
4 changed files with 20 additions and 5 deletions

View File

@ -194,6 +194,7 @@ function ModCanvastools() {
case 'makenull':
// eslint-disable-next-line max-len
descCleanAction = t`Turn every pixel in area to 0 (YOU REALLY SHOULDN'T DO THAT ON ANY AREA THAT ISN'T ALREADY MOSTLY 0)`;
break;
default:
// nothing
}

View File

@ -37,8 +37,19 @@ Archive of removed canvases can be accessed here:`} 
>{t`Archive`}</span>
</p>
{
Object.keys(canvases).map((canvasId) => (
(!canvases[canvasId].hid || showHiddenCanvases)
Object.keys(canvases)
.sort((a, b) => {
// display forced default canvas first
if (a === window.ssv.dc) return -1;
if (b === window.ssv.dc) return 1;
// display linked canvas right after canvas they are linked too
// eslint-disable-next-line eqeqeq
if (canvases[a].linkcd != null) a = canvases[a].linkcd + 0.1;
// eslint-disable-next-line eqeqeq
if (canvases[b].linkcd != null) b = canvases[b].linkcd + 0.1;
return a - b;
}).map((canvasId) => (
(!canvases[canvasId].hid || showHiddenCanvases)
&& !canvases[canvasId].ed
&& (
<CanvasItem
@ -49,7 +60,7 @@ Archive of removed canvases can be accessed here:`}&nbsp;
selCanvas={selCanvas}
/>
)
))
))
}
{
(window.ssv?.backupurl

View File

@ -120,9 +120,9 @@ const METHODS = {
}
return finPxl;
},
makenull: (xc, yc, clrIgnore, canvasCleaner) => {
let pxl = canvasCleaner.getPixelInChunkArea(xc, yc);
const pxl = canvasCleaner.getPixelInChunkArea(xc, yc);
if (pxl === null || pxl === 0) {
return null;
}

View File

@ -100,6 +100,9 @@ function getViewFromURL(canvases) {
let canvasIdent = almost[0];
let canvasId = getIdFromObject(canvases, canvasIdent);
if (!canvasId && window.ssv.dc) {
canvasId = window.ssv.dc;
}
if (!canvasId || (!window.ssv?.backupurl && canvases[canvasId].ed)) {
canvasId = DEFAULT_CANVAS_ID;
const canvas = canvases[DEFAULT_CANVAS_ID];