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': case 'makenull':
// eslint-disable-next-line max-len // 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)`; 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: default:
// nothing // nothing
} }

View File

@ -37,8 +37,19 @@ Archive of removed canvases can be accessed here:`} 
>{t`Archive`}</span> >{t`Archive`}</span>
</p> </p>
{ {
Object.keys(canvases).map((canvasId) => ( Object.keys(canvases)
(!canvases[canvasId].hid || showHiddenCanvases) .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 && !canvases[canvasId].ed
&& ( && (
<CanvasItem <CanvasItem
@ -49,7 +60,7 @@ Archive of removed canvases can be accessed here:`}&nbsp;
selCanvas={selCanvas} selCanvas={selCanvas}
/> />
) )
)) ))
} }
{ {
(window.ssv?.backupurl (window.ssv?.backupurl

View File

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

View File

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