From 134662b4a465a73bf1be44665b1caf37809d47f3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 17:58:47 +0000 Subject: [PATCH 01/34] First pass at museum mode where can specify a URL of a start script which will be loaded and run when Online Medley starts up - accessible only via the online.interlisp.org/guest scheme. --- docker_medley/init/ONLINE-INIT | 71 +++++------------------- docker_medley/init/ONLINE-INIT.LCOM | Bin 5297 -> 4509 bytes docker_medley/scripts/run-online-medley | 12 ++++ web-portal/client/js/main.js | 47 ++++++---------- web-portal/client/views/main.pug | 1 + web-portal/server/js/app.js | 4 +- web-portal/server/js/medley.js | 3 + web-portal/server/js/user.js | 2 + 8 files changed, 51 insertions(+), 89 deletions(-) mode change 100755 => 100644 docker_medley/init/ONLINE-INIT mode change 100755 => 100644 docker_medley/init/ONLINE-INIT.LCOM diff --git a/docker_medley/init/ONLINE-INIT b/docker_medley/init/ONLINE-INIT old mode 100755 new mode 100644 index f1de5c9..3129e7d --- a/docker_medley/init/ONLINE-INIT +++ b/docker_medley/init/ONLINE-INIT @@ -1,10 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "18-Mar-2025 22:45:51" {DSK}medley>il>ONLINE-INIT.;1 10668 +(FILECREATED "29-Oct-2025 10:51:28" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;2 8007 - :EDIT-BY "guest" + :EDIT-BY "FGH" - :PREVIOUS-DATE "17-Mar-2025 17:06:18" {DSK}medley>il>ONLINE-INIT.;1) + :CHANGES-TO (FNS Online.DoInit) + + :PREVIOUS-DATE "25-Feb-2024 11:38:10" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;1) (PRETTYCOMPRINT ONLINE-INITCOMS) @@ -20,8 +22,8 @@ (INITVARS (Online.LogoutTimeout 30) (ONLINEP NIL)) (ADVISE (SAVEVM :IN \IDLER)) - (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES - Online.FileButton Online.DoInit ONLINEP) + (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES Online.DoInit + ONLINEP) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (Online.DoInit))) (DECLARE%: FIRST DONTEVAL@LOAD DOCOPY (P (BKSYSBUF " "]) @@ -100,56 +102,10 @@ (PRIN1 "and Notecards will not work properly." T) NIL]) -(Online.FileButton - [LAMBDA NIL (* ; "Edited 18-Mar-2025 22:31 by guest") - (* ; "Edited 17-Mar-2025 16:51 by fgh") - (* ; "Edited 16-Mar-2025 23:40 by guest") - - (* ;; " Add the FILES IMPORT/EXPORT button to the bottom of the button stack on the right side of the screen") - - (LET* ((RIGHTMARGINISH 140) - (Apps.BUTTONS (for B in *ALL-BUTTONS* when (WINDOWPROP B 'Apps.BUTTON) collect B)) - (LowestButton (CAR Apps.BUTTONS)) - P B L) - (if LowestButton - then - (* ;; " Find the lowest existing button on the right side of the screen") - - (for B in Apps.BUTTONS when [ILESSP (fetch BOTTOM of (WINDOWPROP B 'REGION)) - (fetch BOTTOM of (WINDOWPROP LowestButton - 'REGION] - do (SETQ LowestButton B)) - - (* ;; - " Set the y-position for the label based on the lowest button, then create the label") - - (SETQ L (Apps.CreateLabel "FILES" (IDIFFERENCE SCREENWIDTH (IDIFFERENCE - RIGHTMARGINISH - 50)) - (IDIFFERENCE (fetch BOTTOM of (WINDOWPROP LowestButton 'REGION)) - 35))) - (WINDOWPROP L 'RIGHTBUTTONFN 'NILL) - - (* ;; - " Set the position of the files button based on the label, then create the button") - - (SETQ P (create POSITION - XCOORD _ (IDIFFERENCE SCREENWIDTH RIGHTMARGINISH) - YCOORD _ (IDIFFERENCE (fetch BOTTOM of (WINDOWPROP LowestButton - 'REGION)) - 85))) - (SETQ B (CREATE-BUTTON '(ShellBrowse (UNIX-GETENV "OIO_FB_URL")) - "IMPORT/EXPORT" P)) - (WINDOWPROP B 'RIGHTBUTTONFN 'NILL) - [WINDOWPROP B 'BUTTONEVENTFN (FUNCTION (LAMBDA (BUTTON) - (if (LASTMOUSESTATE (ONLY LEFT)) - then (EXECUTE-BUTTON BUTTON] - T]) - (Online.DoInit [LAMBDA NIL - (* ;; "Edited 16-Mar-2025 23:26 by guest") + (* ;; "Edited 29-Oct-2025 10:50 by FGH") (* ;; "Edited 25-Feb-2024 11:37 by fgh") @@ -222,9 +178,11 @@ (Online.SetUpNOTECARDSDIRECTORIES) - (* ;; "Create File Import/Export Button") + (* ;; "If there is a start-script file, load it ") - (Online.FileButton]) + (LET [(START-SCRIPT (UNIX-GETENV 'START_SCRIPT] + (IF START-SCRIPT + THEN (LOAD START-SCRIPT]) (ONLINEP [LAMBDA NIL (* ; "Edited 24-Feb-2024 22:31 by fgh") @@ -239,7 +197,6 @@ (BKSYSBUF " ") ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1640 10532 (Online.SftpInitInfo 1650 . 2523) (Online.SftpUpdateInfo 2525 . 2780) ( -Online.SetUpNOTECARDSDIRECTORIES 2782 . 4490) (Online.FileButton 4492 . 7320) (Online.DoInit 7322 . -10393) (ONLINEP 10395 . 10530))))) + (FILEMAP (NIL (1692 7871 (Online.SftpInitInfo 1702 . 2575) (Online.SftpUpdateInfo 2577 . 2832) ( +Online.SetUpNOTECARDSDIRECTORIES 2834 . 4542) (Online.DoInit 4544 . 7732) (ONLINEP 7734 . 7869))))) STOP diff --git a/docker_medley/init/ONLINE-INIT.LCOM b/docker_medley/init/ONLINE-INIT.LCOM old mode 100755 new mode 100644 index c4462eba55dbddd886e5e80a71b62498b0acdc93..96d18f3427ce2c66a9dc98fd9f6c1950e487582f GIT binary patch delta 657 zcma))F>ljA6vyKVA#eeeW?`XvI)>U3w(N_OrUoLM_?(^^-C4d%T2H8L+}6c$P|1Q2 z%F2jj82Jz=AA^;hkHLzaAb}tQH=OQ0{q=vp_t$;VKR^0#G{^e}KbslY!cDL(w`sdh z3xS5trju7`mW*MV0|ND}FAm>5y_`;x&iVC8{<4#1ok=pzk~f`;>m-?-m)h4I&IXhb zgEA`3Cs+q$JHOp=!*wjz+D9;}%(LAwr1>0F^9O>EuaI^ zi-;$Q59r?|a2vt@Fwg&nhPGwxflGWUjc%+03i<~K+}?r5`a~F#gBCCWJkQcRG5smc z)0qx#7?Ba>Lt*$OQ3=#Eg5>Y6}xwSJQK?0 zgJpS9^=?sG6^B75$2CRNTsDq{!kLv{aoJlhB2G5taKJW1`1}y}wdnjVj9R}*6sP8C00rBIo AjQ{`u delta 1369 zcma)6O>EO<7`6+P)`gNlK@}3yi;*BfO6Je`a}26*nlH^a96R`@X$4hUh(&|krfP!_ zLdX*59gwoi4!iD5Rk*;Uop;`;#~r3!;lv4bukC1U1BV^*I^W~xeZS}Z^DozS)2~|r zQ8JCS?TjqR1(0PmUsMSZAtgTQZESUYuLHeJ5aC7DzWeg_dT+y<+weNR_k6DF&zXkK z44PpEbF#Nc8U&G)4ucU{%@x$VBtk!o<=^N)7ei^yrVWR@pa9uyR)o%4AMg5BfTEZd zQZ=U2d5dZets-eeazQPiZzA3we0?es+u)TTujnd#b@D&8@o zqohh$73JGk?ES+(84qe$s>;)TzqhGLl0-nQDng2Z1QpkDOd}24MULb6RWzJ``fvZ_ z$F~!ACc{&LOA!U=5}kJ)niH1KQeG?Nn zIK!j%ACo-SnoVk_*ok*1UhQ(f{%}4?CIf?SPye1woHD21hUjY}nVd3bhLj7vFwxb} z)O~q>-<*yz|6_cN_pj|wg?RgX=W+OqOoXh4$NDj@yMMWzh+;*?Ohm*L^bC%0&w!C~I5{KM?j{VZy&60m`+O!yyLE zGF_ueml*1|5s?RfOlVL08yzEq3n>?iUzcS-gim|9sXtGi aIkJ7i;NaZsU^YQ{VX%_8x)&tA { const isRunning = data.isRunning; const sessionType = data.target; - if(isRunning) { - new Promise((resolve, reject) => { - const dlg = document.getElementById("reconnect-dialog"); - const typeEl = document.getElementById("rd-type-span"); - typeEl.html = sessionType; - dlg.resolve = resolve; - dlg.reject = reject; - dlg.showModal(); - } - ) - .then(RorK => { - window.location.assign( - `/medley/${interlispOrXterm || "interlisp"}` - + `?screen_width=${screenWidth}` - + `&screen_height=${screenHeight}` - + `&if=${RorK}` - + `&resume=${resume || "false"}` - + `&custom=${custom || "false"}` - + `&custom_init=${customInit || "false"}` - + `¬ecards=${runNotecards || "false"}` - + `&rooms=${runRooms || "false"}` - + `&sftp=${startSftp || "false"}` - + `&exec=${medleyExec || "inter"}` - + ( isAutoLogin ? "&autologin" : "") - ); - } - ); - } - else { - window.location.assign( + const medley_url = `/medley/${interlispOrXterm || "interlisp"}` + `?screen_width=${screenWidth}` + `&screen_height=${screenHeight}` @@ -200,8 +171,22 @@ function startSession (interlispOrXterm) { + `&sftp=${startSftp || "false"}` + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") - ); + + ( (alStart != "") ? `&start=${alStart}` : "" + ; + + if(isRunning) { + new Promise((resolve, reject) => { + const dlg = document.getElementById("reconnect-dialog"); + const typeEl = document.getElementById("rd-type-span"); + typeEl.html = sessionType; + dlg.resolve = resolve; + dlg.reject = reject; + dlg.showModal(); + } + ) + .then(RorK => { window.location.assign(medley_url + `&if=${RorK}`); } ); } + else window.location.assign(medley_url); }, reason => {} ); diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 2cb826e..145f78c 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -26,6 +26,7 @@ block headeradds const alNotecards = #{notecards}; const alRooms = #{rooms}; const alURL = "#{alURL}"; + const alStart = "#{start}"; link(rel="stylesheet", href="/stylesheets/main.css") diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 469fc84..70006eb 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -110,7 +110,8 @@ app.get('/main', isAutoLogin: isAutoLogin, notecards: (req.query.notecards != undefined), rooms: (req.query.rooms != undefined), - alURL: alURL || "dummy" + alURL: alURL || "dummy", + start: (req.query.start != undefined) && (req.query.start != "") ? req.query.start : "" } ); } @@ -127,6 +128,7 @@ app.get('/guest', newQuery.password = config.guestPassword; if(req.query.notecards != undefined) newQuery.notecards=""; if(req.query.rooms != undefined) newQuery.rooms=""; + if((req.query.start != undefined) && (req.query.start != "")) newQuery.start = req.query.start; res.redirect(url.format({pathname:"/user/autologin", query: newQuery})); } ); diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index bd6d7be..5e32a7e 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -70,6 +70,8 @@ function medleyEnvs(req) { const nc = (req.query.notecards && (req.query.notecards.toLowerCase() == "true")) ? "true" : "false"; const rooms = (req.query.rooms && (req.query.rooms.toLowerCase() == "true")) ? "true" : "false"; const exec = (req.query.exec && (req.query.exec.toLowerCase() == "common")) ? "common" : "inter"; + try { const start = req.query.start && decodeURI(req.query.start: } + catch(e) { const start = false; } return ` --env MEDLEY_EMAIL='${u.username}'` + ` --env MEDLEY_UNAME='${u.uname || "medley" }'` + ` --env MEDLEY_FIRSTNAME='${u.firstname || "Medley"}'` @@ -79,6 +81,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` + + start ? ` --env START_SCRIPT_URL='${init}` : "" ; } diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index e09e808..7e3f8ee 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -126,6 +126,8 @@ function passportAuthenticate(req, res, next) { newQuery.autologin=""; if(req.query.notecards != undefined) newQuery.notecards=""; if(req.query.rooms != undefined) newQuery.rooms=""; + if((req.query.start != undefined) && (req.query.start != "")) + newQuery.start=req.query.start; return res.redirect(url.format({pathname:"/main", query: newQuery})); } else From 80bec28041648951d5efb683fb18069f968728e3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 18:36:52 +0000 Subject: [PATCH 02/34] Fix typo in server/js/medley.js --- web-portal/server/js/medley.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 5e32a7e..76a8982 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -70,7 +70,7 @@ function medleyEnvs(req) { const nc = (req.query.notecards && (req.query.notecards.toLowerCase() == "true")) ? "true" : "false"; const rooms = (req.query.rooms && (req.query.rooms.toLowerCase() == "true")) ? "true" : "false"; const exec = (req.query.exec && (req.query.exec.toLowerCase() == "common")) ? "common" : "inter"; - try { const start = req.query.start && decodeURI(req.query.start: } + try { const start = req.query.start && decodeURI(req.query.start); } catch(e) { const start = false; } return ` --env MEDLEY_EMAIL='${u.username}'` + ` --env MEDLEY_UNAME='${u.uname || "medley" }'` @@ -81,7 +81,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` - + start ? ` --env START_SCRIPT_URL='${init}` : "" + + start ? ` --env START_SCRIPT_URL='${start}` : "" ; } From 6cf61ae0a8617217c6f3c4d7f212ef82160e3148 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 18:52:55 +0000 Subject: [PATCH 03/34] Fix typo in client/js/main.js --- web-portal/client/js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index fb53c06..ff0b0bb 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -171,7 +171,7 @@ function startSession (interlispOrXterm) { + `&sftp=${startSftp || "false"}` + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") - + ( (alStart != "") ? `&start=${alStart}` : "" + + ( (alStart != "") ? `&start=${alStart}` : "" ) ; if(isRunning) { From f02e6ccc7569bc27d6b1133611f94043c5962224 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 19:37:49 +0000 Subject: [PATCH 04/34] Fix up a small bit of code in /server/js/medley.js --- web-portal/server/js/medley.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 76a8982..02a4b79 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -70,8 +70,12 @@ function medleyEnvs(req) { const nc = (req.query.notecards && (req.query.notecards.toLowerCase() == "true")) ? "true" : "false"; const rooms = (req.query.rooms && (req.query.rooms.toLowerCase() == "true")) ? "true" : "false"; const exec = (req.query.exec && (req.query.exec.toLowerCase() == "common")) ? "common" : "inter"; - try { const start = req.query.start && decodeURI(req.query.start); } - catch(e) { const start = false; } + var start = false; + try { + if ((req.query.start != undefined) && (req.query.start != "")) + start = decodeURIcomponent(req.query.start); + } + catch(e) { start = false; } return ` --env MEDLEY_EMAIL='${u.username}'` + ` --env MEDLEY_UNAME='${u.uname || "medley" }'` + ` --env MEDLEY_FIRSTNAME='${u.firstname || "Medley"}'` From b04276ce88ac63ad4ab7b2ea0a7b8ab6e25acd1b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 23:54:20 +0000 Subject: [PATCH 05/34] Fix up typo in /server/js/medley.js --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 02a4b79..160115e 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -85,7 +85,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` - + start ? ` --env START_SCRIPT_URL='${start}` : "" + + start ? ` --env START_SCRIPT_URL='${start}'` : "" ; } From 75b4baa13ceb25dcbccdeffc0c3d80b7ae368b3c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 30 Oct 2025 00:32:51 +0000 Subject: [PATCH 06/34] Fix setting of START_SCRIPT in run-online-medley script --- docker_medley/scripts/run-online-medley | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker_medley/scripts/run-online-medley b/docker_medley/scripts/run-online-medley index b6eeb2d..14b0489 100755 --- a/docker_medley/scripts/run-online-medley +++ b/docker_medley/scripts/run-online-medley @@ -67,7 +67,7 @@ if [ $# -gt 1 ] && [ "$2" = "custom" ]; then fi fi # -START_SCRIPT= +unset START_SCRIPT if [ -n "${START_SCRIPT_URL}" ] then export START_SCRIPT="${MEDLEY_USERDIR}/initdir/START-SCRIPT" @@ -75,9 +75,10 @@ then if [ $? -ne 0 ] then rm -f "${START_SCRIPT}" - START_SCRIPT= + unset START_SCRIPT fi fi +unset START_SCRIPT_URL # if [ $# -gt 2 ]; then width=$3 From a186c79988f87d9e2c3ca86086c954979b524c89 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 30 Oct 2025 06:11:38 +0000 Subject: [PATCH 07/34] fix misformed medleyEnvs function. --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 160115e..c2220aa 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -85,7 +85,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` - + start ? ` --env START_SCRIPT_URL='${start}'` : "" + + ( start ? ` --env START_SCRIPT_URL='${start}'` : "" ) ; } From 0e4191d40be66d046fe13fffccd7b38cf5c0dd56 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 23:59:38 -0700 Subject: [PATCH 08/34] Updating ONLINE-INIT to latest --- docker_medley/init/ONLINE-INIT | 73 +++++++++++++++++++++++----- docker_medley/init/ONLINE-INIT.LCOM | Bin 4509 -> 5572 bytes 2 files changed, 62 insertions(+), 11 deletions(-) diff --git a/docker_medley/init/ONLINE-INIT b/docker_medley/init/ONLINE-INIT index 3129e7d..cdcae72 100644 --- a/docker_medley/init/ONLINE-INIT +++ b/docker_medley/init/ONLINE-INIT @@ -1,12 +1,15 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "29-Oct-2025 10:51:28" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;2 8007 +(FILECREATED "29-Oct-2025 23:56:02" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;2 11034 :EDIT-BY "FGH" - :CHANGES-TO (FNS Online.DoInit) + :CHANGES-TO (ADVICE (SAVEVM :IN \IDLER)) + (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES + Online.DoInit ONLINEP Online.FileButton) + (VARS ONLINE-INITCOMS) - :PREVIOUS-DATE "25-Feb-2024 11:38:10" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;1) + :PREVIOUS-DATE "18-Mar-2025 22:45:51" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;1) (PRETTYCOMPRINT ONLINE-INITCOMS) @@ -22,8 +25,8 @@ (INITVARS (Online.LogoutTimeout 30) (ONLINEP NIL)) (ADVISE (SAVEVM :IN \IDLER)) - (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES Online.DoInit - ONLINEP) + (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES + Online.FileButton Online.DoInit ONLINEP) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (Online.DoInit))) (DECLARE%: FIRST DONTEVAL@LOAD DOCOPY (P (BKSYSBUF " "]) @@ -102,10 +105,58 @@ (PRIN1 "and Notecards will not work properly." T) NIL]) +(Online.FileButton + [LAMBDA NIL (* ; "Edited 18-Mar-2025 22:31 by guest") + (* ; "Edited 17-Mar-2025 16:51 by fgh") + (* ; "Edited 16-Mar-2025 23:40 by guest") + + (* ;; " Add the FILES IMPORT/EXPORT button to the bottom of the button stack on the right side of the screen") + + (LET* ((RIGHTMARGINISH 140) + (Apps.BUTTONS (for B in *ALL-BUTTONS* when (WINDOWPROP B 'Apps.BUTTON) collect B)) + (LowestButton (CAR Apps.BUTTONS)) + P B L) + (if LowestButton + then + (* ;; " Find the lowest existing button on the right side of the screen") + + (for B in Apps.BUTTONS when [ILESSP (fetch BOTTOM of (WINDOWPROP B 'REGION)) + (fetch BOTTOM of (WINDOWPROP LowestButton + 'REGION] + do (SETQ LowestButton B)) + + (* ;; + " Set the y-position for the label based on the lowest button, then create the label") + + (SETQ L (Apps.CreateLabel "FILES" (IDIFFERENCE SCREENWIDTH (IDIFFERENCE + RIGHTMARGINISH + 50)) + (IDIFFERENCE (fetch BOTTOM of (WINDOWPROP LowestButton 'REGION)) + 35))) + (WINDOWPROP L 'RIGHTBUTTONFN 'NILL) + + (* ;; + " Set the position of the files button based on the label, then create the button") + + (SETQ P (create POSITION + XCOORD _ (IDIFFERENCE SCREENWIDTH RIGHTMARGINISH) + YCOORD _ (IDIFFERENCE (fetch BOTTOM of (WINDOWPROP LowestButton + 'REGION)) + 85))) + (SETQ B (CREATE-BUTTON '(ShellBrowse (UNIX-GETENV "OIO_FB_URL")) + "IMPORT/EXPORT" P)) + (WINDOWPROP B 'RIGHTBUTTONFN 'NILL) + [WINDOWPROP B 'BUTTONEVENTFN (FUNCTION (LAMBDA (BUTTON) + (if (LASTMOUSESTATE (ONLY LEFT)) + then (EXECUTE-BUTTON BUTTON] + T]) + (Online.DoInit [LAMBDA NIL - (* ;; "Edited 29-Oct-2025 10:50 by FGH") + (* ;; "Edited 29-Oct-2025 23:55 by FGH") + + (* ;; "Edited 16-Mar-2025 23:26 by guest") (* ;; "Edited 25-Feb-2024 11:37 by fgh") @@ -173,10 +224,9 @@ (RPLACA (CAR CHAT.DISPLAYTYPES) NIL) - (* ;; - "Setup NOTECARDSDIRECTORIES. Should be done it APPS-INIT. But until thats done, we'll do it here.") + (* ;; "Create File Import/Export Button") - (Online.SetUpNOTECARDSDIRECTORIES) + (Online.FileButton) (* ;; "If there is a start-script file, load it ") @@ -197,6 +247,7 @@ (BKSYSBUF " ") ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1692 7871 (Online.SftpInitInfo 1702 . 2575) (Online.SftpUpdateInfo 2577 . 2832) ( -Online.SetUpNOTECARDSDIRECTORIES 2834 . 4542) (Online.DoInit 4544 . 7732) (ONLINEP 7734 . 7869))))) + (FILEMAP (NIL (1924 10898 (Online.SftpInitInfo 1934 . 2807) (Online.SftpUpdateInfo 2809 . 3064) ( +Online.SetUpNOTECARDSDIRECTORIES 3066 . 4774) (Online.FileButton 4776 . 7604) (Online.DoInit 7606 . +10759) (ONLINEP 10761 . 10896))))) STOP diff --git a/docker_medley/init/ONLINE-INIT.LCOM b/docker_medley/init/ONLINE-INIT.LCOM index 96d18f3427ce2c66a9dc98fd9f6c1950e487582f..a9e38cda3eedee849c1f1ea2a6fa7a80534b2dd1 100644 GIT binary patch delta 1156 zcmZWpK~EDw6y8NaTo77BLpYdcNz4{g*x9yp+jwx>PTSG#OtZT!7$F6;Y3R9=v*n02d|k;>Dl9!J~IQs3(JOyBmRe=-ZvI-+S}DdEe~2sn0jJ9}eotTzW1? zvag>WhVPo*nUym|LbPNGlpHNGH<7;wu~NAbgIu9v@-lT2t^n06Hdujz>X;4Ms6vi$ zSY$5&Dov)*r8i+M-b*(j1TJ>7_=UZFrYshJswgZA&jMD_;%q@tj z6URMkHf=CbcM?U@r4S=VqPnt?&^0{`x}Hm=b7_Ja(|bSV#ew!oMN`u>0=c50s0=j7 z*IifeI7n9{Ns^Z_NZy5S-udtQgSRjGtB9l$1Ly)R)Lohg>57^H%XHi-?oR{Ei7RSc z`LBUsr*;hpfjrb83l>HLe>KQ}wf>^DxfQgEz#N#*o^8&A1rbPhb2PA7x#Ct$yNn0m zRGttzXry0^?EC08 zk4A^Ycu2Xt?l-#Zhl-~k9f^@{=U)c;WN+$d$j6&wj~@HaZs;P*{<3n0TR)m?M!L1S zK}5R5CCqG}Nv-yjT8+p{T}bh3zO5eKJ-B2&nY{mj_1)V&zGdC`xbs_XUi~NPl)gVd z-iWK%ni%hEj_)4plBy?@XfW>7Z930*QOu(o^mY$KvO1Kh8xU}WcFh(zq72TZ9-;v< zr}rYMG!$%#mJ81w2W#|J*HS%MZ6h3QVWYLO)v{I|v^>b9&gP+kh>cyi`4xe9yeh5={lGfFRc}Pyf(hT^Gj?R|O>_Q(d>z zBwZr|BNGKfLn~toD? Date: Fri, 31 Oct 2025 12:49:35 -0700 Subject: [PATCH 09/34] Create a start script for testing museum mode --- test/start-scripts/START_KINETIC | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/start-scripts/START_KINETIC diff --git a/test/start-scripts/START_KINETIC b/test/start-scripts/START_KINETIC new file mode 100644 index 0000000..2cfa735 --- /dev/null +++ b/test/start-scripts/START_KINETIC @@ -0,0 +1,31 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED "31-Oct-2025 12:36:44" {DSK}frank>il>medley>START_KINETIC.;1 897 + + :EDIT-BY "FGH" + + :CHANGES-TO (VARS START_KINETICCOMS) + (FNS START_KINETIC)) + + +(PRETTYCOMPRINT START_KINETICCOMS) + +(RPAQQ START_KINETICCOMS ((FILES KINETIC) + (FNS START_KINETIC) + (P (START-KINETIC)))) + +(FILESLOAD KINETIC) +(DEFINEQ + +(START_KINETIC + [LAMBDA NIL (* ; "Edited 31-Oct-2025 12:33 by FGH") + (KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT]) +) + +(START-KINETIC) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (471 857 (START_KINETIC 481 . 855))))) +STOP From 928b207d3477c18c29b790a58404935764f4b9b5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 21:12:27 +0000 Subject: [PATCH 10/34] Adding some debugging code --- web-portal/client/js/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index ff0b0bb..0c9d039 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -173,6 +173,7 @@ function startSession (interlispOrXterm) { + ( isAutoLogin ? "&autologin" : "") + ( (alStart != "") ? `&start=${alStart}` : "" ) ; + console.log(medley_url); if(isRunning) { new Promise((resolve, reject) => { From 7cd212675c3a26ec4cfa1cc6d5fd42fa004e22cd Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 21:55:53 +0000 Subject: [PATCH 11/34] Adding some debugging code --- web-portal/client/js/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index 0c9d039..b7c67a3 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -174,7 +174,7 @@ function startSession (interlispOrXterm) { + ( (alStart != "") ? `&start=${alStart}` : "" ) ; console.log(medley_url); - +if(false){ if(isRunning) { new Promise((resolve, reject) => { const dlg = document.getElementById("reconnect-dialog"); @@ -188,6 +188,7 @@ function startSession (interlispOrXterm) { .then(RorK => { window.location.assign(medley_url + `&if=${RorK}`); } ); } else window.location.assign(medley_url); +} }, reason => {} ); From 3d4939177ebc1a69003531ddafb606d16ef24d82 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 22:07:27 +0000 Subject: [PATCH 12/34] Adding some debugging code --- web-portal/client/js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index b7c67a3..ba2eeff 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -171,7 +171,7 @@ function startSession (interlispOrXterm) { + `&sftp=${startSftp || "false"}` + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") - + ( (alStart != "") ? `&start=${alStart}` : "" ) + + ( (alStart != "") ? `&start=${encodeURIComponent(alStart)}` : "" ) ; console.log(medley_url); if(false){ From 9d36aa23b4705555c10348482953aa6ed8a8581b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 22:26:50 +0000 Subject: [PATCH 13/34] Adding some debugging code --- web-portal/client/js/main.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index ba2eeff..b77f9b2 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -174,7 +174,7 @@ function startSession (interlispOrXterm) { + ( (alStart != "") ? `&start=${encodeURIComponent(alStart)}` : "" ) ; console.log(medley_url); -if(false){ + if(isRunning) { new Promise((resolve, reject) => { const dlg = document.getElementById("reconnect-dialog"); @@ -188,7 +188,6 @@ if(false){ .then(RorK => { window.location.assign(medley_url + `&if=${RorK}`); } ); } else window.location.assign(medley_url); -} }, reason => {} ); From 63c5b61199e16085b63068a00acbf9b15c83e3aa Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 22:53:16 +0000 Subject: [PATCH 14/34] Removing some debugging code; fixing typo in medley.js --- web-portal/client/js/main.js | 1 - web-portal/server/js/medley.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index b77f9b2..ed89400 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -173,7 +173,6 @@ function startSession (interlispOrXterm) { + ( isAutoLogin ? "&autologin" : "") + ( (alStart != "") ? `&start=${encodeURIComponent(alStart)}` : "" ) ; - console.log(medley_url); if(isRunning) { new Promise((resolve, reject) => { diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index c2220aa..462defb 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -73,7 +73,7 @@ function medleyEnvs(req) { var start = false; try { if ((req.query.start != undefined) && (req.query.start != "")) - start = decodeURIcomponent(req.query.start); + start = decodeURIComponent(req.query.start); } catch(e) { start = false; } return ` --env MEDLEY_EMAIL='${u.username}'` From 991999ba75955a417350bbf04f82214fa14e0e5e Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 23:12:51 +0000 Subject: [PATCH 15/34] Adding some debugging code --- web-portal/server/js/medley.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 462defb..ab525c6 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -71,11 +71,13 @@ function medleyEnvs(req) { const rooms = (req.query.rooms && (req.query.rooms.toLowerCase() == "true")) ? "true" : "false"; const exec = (req.query.exec && (req.query.exec.toLowerCase() == "common")) ? "common" : "inter"; var start = false; + var frank = 0; try { - if ((req.query.start != undefined) && (req.query.start != "")) + if ((req.query.start != undefined) && (req.query.start != "")){ start = decodeURIComponent(req.query.start); + frank = 1;} } - catch(e) { start = false; } + catch(e) { start = false; frank = 2;} return ` --env MEDLEY_EMAIL='${u.username}'` + ` --env MEDLEY_UNAME='${u.uname || "medley" }'` + ` --env MEDLEY_FIRSTNAME='${u.firstname || "Medley"}'` @@ -85,6 +87,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` + + ` --env FRANK=${frank}` + ( start ? ` --env START_SCRIPT_URL='${start}'` : "" ) ; } From 911510457819155dc288d55373675af670069ac3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 23:29:03 +0000 Subject: [PATCH 16/34] Adding some debugging code --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index ab525c6..696628e 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -75,7 +75,7 @@ function medleyEnvs(req) { try { if ((req.query.start != undefined) && (req.query.start != "")){ start = decodeURIComponent(req.query.start); - frank = 1;} + frank = req.query.start;} } catch(e) { start = false; frank = 2;} return ` --env MEDLEY_EMAIL='${u.username}'` From cca61e6acba29b29169dab4bfc9c71f6bc2e87d5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 23:43:23 +0000 Subject: [PATCH 17/34] Adding some debugging code --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 696628e..cd19285 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -74,7 +74,7 @@ function medleyEnvs(req) { var frank = 0; try { if ((req.query.start != undefined) && (req.query.start != "")){ - start = decodeURIComponent(req.query.start); + start = req.query.start; frank = req.query.start;} } catch(e) { start = false; frank = 2;} From 5e398b8b10fa1e535a47992f9aedc364e5f4e395 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 01:02:54 +0000 Subject: [PATCH 18/34] Adding some debugging code --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index cd19285..83c553b 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -88,7 +88,7 @@ function medleyEnvs(req) { + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` + ` --env FRANK=${frank}` - + ( start ? ` --env START_SCRIPT_URL='${start}'` : "" ) + + ( start ? ` --env START_SCRIPT_URL="${start}"` : "" ) ; } From 6b78411b80240c05a8f368793fa1902f74094ad3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 01:59:58 +0000 Subject: [PATCH 19/34] Debugging --- docker_medley/scripts/run-online-medley | 12 ++++++------ web-portal/server/js/medley.js | 4 +--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docker_medley/scripts/run-online-medley b/docker_medley/scripts/run-online-medley index 14b0489..2132863 100755 --- a/docker_medley/scripts/run-online-medley +++ b/docker_medley/scripts/run-online-medley @@ -72,13 +72,13 @@ if [ -n "${START_SCRIPT_URL}" ] then export START_SCRIPT="${MEDLEY_USERDIR}/initdir/START-SCRIPT" wget "${START_SCRIPT_URL}" -O "${START_SCRIPT}" - if [ $? -ne 0 ] - then - rm -f "${START_SCRIPT}" - unset START_SCRIPT - fi +# if [ $? -ne 0 ] +# then +# rm -f "${START_SCRIPT}" +# unset START_SCRIPT +# fi fi -unset START_SCRIPT_URL +#unset START_SCRIPT_URL # if [ $# -gt 2 ]; then width=$3 diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 83c553b..9d4914a 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -73,9 +73,8 @@ function medleyEnvs(req) { var start = false; var frank = 0; try { - if ((req.query.start != undefined) && (req.query.start != "")){ + if ((req.query.start != undefined) && (req.query.start != "")) start = req.query.start; - frank = req.query.start;} } catch(e) { start = false; frank = 2;} return ` --env MEDLEY_EMAIL='${u.username}'` @@ -87,7 +86,6 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` - + ` --env FRANK=${frank}` + ( start ? ` --env START_SCRIPT_URL="${start}"` : "" ) ; } From 6c5faf3d7feb58f5fed2333a3a16a670a2d9124c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 02:24:24 +0000 Subject: [PATCH 20/34] Debugging --- docker_medley/scripts/run-online-medley | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docker_medley/scripts/run-online-medley b/docker_medley/scripts/run-online-medley index 2132863..b6850f7 100755 --- a/docker_medley/scripts/run-online-medley +++ b/docker_medley/scripts/run-online-medley @@ -71,14 +71,15 @@ unset START_SCRIPT if [ -n "${START_SCRIPT_URL}" ] then export START_SCRIPT="${MEDLEY_USERDIR}/initdir/START-SCRIPT" + mkdir -p "$(dirname "${START_SCRIPT}")" wget "${START_SCRIPT_URL}" -O "${START_SCRIPT}" -# if [ $? -ne 0 ] -# then -# rm -f "${START_SCRIPT}" -# unset START_SCRIPT -# fi + if [ $? -ne 0 ] + then + rm -f "${START_SCRIPT}" + unset START_SCRIPT + fi fi -#unset START_SCRIPT_URL +unset START_SCRIPT_URL # if [ $# -gt 2 ]; then width=$3 From ae08c158cf581b2db89585c4f875a981ef8b381c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 23:14:32 -0700 Subject: [PATCH 21/34] Rename START_KINETIC to START-KINETIC Signed-off-by: Frank Halasz --- test/start-scripts/START_KINETIC | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/start-scripts/START_KINETIC b/test/start-scripts/START_KINETIC index 2cfa735..5f4016f 100644 --- a/test/start-scripts/START_KINETIC +++ b/test/start-scripts/START_KINETIC @@ -17,7 +17,7 @@ (FILESLOAD KINETIC) (DEFINEQ -(START_KINETIC +(START-KINETIC [LAMBDA NIL (* ; "Edited 31-Oct-2025 12:33 by FGH") (KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) (FIX (TIMES 0.25 SCREENHEIGHT)) @@ -27,5 +27,5 @@ (START-KINETIC) (DECLARE%: DONTCOPY - (FILEMAP (NIL (471 857 (START_KINETIC 481 . 855))))) + (FILEMAP (NIL (471 857 (START-KINETIC 481 . 855))))) STOP From 040eb4d6b331bc42f98f563c50b24d6352bfea7e Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 13:24:46 -0700 Subject: [PATCH 22/34] Renaming START_KINETIC to START-KINETIC and adding ADD.PROCESS to it. --- test/start-scripts/START-KINETIC | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/start-scripts/START-KINETIC diff --git a/test/start-scripts/START-KINETIC b/test/start-scripts/START-KINETIC new file mode 100644 index 0000000..4504c57 --- /dev/null +++ b/test/start-scripts/START-KINETIC @@ -0,0 +1,31 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED " 1-Nov-2025 13:21:22" {DSK}frank>il>medley>START-KINETIC.;1 1031 + + :EDIT-BY "FGH" + + :CHANGES-TO (FNS START-KINETIC)) + + +(PRETTYCOMPRINT START-KINETICCOMS) + +(RPAQQ START-KINETICCOMS ((FILES KINETIC) + (FNS START-KINETIC) + (P (START-KINETIC)))) + +(FILESLOAD KINETIC) +(DEFINEQ + +(START-KINETIC + [LAMBDA NIL (* ; "Edited 1-Nov-2025 13:18 by FGH") + (LAMBDA NIL (* ; "Edited 1-Nov-2025 13:15 by FGH") + (ADD.PROCESS '(KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT]) +) + +(START-KINETIC) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (428 987 (START-KINETIC 438 . 985))))) +STOP From 7839dac6c0c1b08296be500e4dd8d1f3d1f4f4b5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 13:27:46 -0700 Subject: [PATCH 23/34] Fixing up delete of START_KINETIC from last commit --- test/start-scripts/START_KINETIC | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 test/start-scripts/START_KINETIC diff --git a/test/start-scripts/START_KINETIC b/test/start-scripts/START_KINETIC deleted file mode 100644 index 5f4016f..0000000 --- a/test/start-scripts/START_KINETIC +++ /dev/null @@ -1,31 +0,0 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) - -(FILECREATED "31-Oct-2025 12:36:44" {DSK}frank>il>medley>START_KINETIC.;1 897 - - :EDIT-BY "FGH" - - :CHANGES-TO (VARS START_KINETICCOMS) - (FNS START_KINETIC)) - - -(PRETTYCOMPRINT START_KINETICCOMS) - -(RPAQQ START_KINETICCOMS ((FILES KINETIC) - (FNS START_KINETIC) - (P (START-KINETIC)))) - -(FILESLOAD KINETIC) -(DEFINEQ - -(START-KINETIC - [LAMBDA NIL (* ; "Edited 31-Oct-2025 12:33 by FGH") - (KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) - (FIX (TIMES 0.25 SCREENHEIGHT)) - (FIX (TIMES 0.5 SCREENWIDTH)) - (FIX (TIMES 0.5 SCREENHEIGHT]) -) - -(START-KINETIC) -(DECLARE%: DONTCOPY - (FILEMAP (NIL (471 857 (START-KINETIC 481 . 855))))) -STOP From 43bee9e473ae31a0d75193a5f857643ae6ac77bc Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 13:42:20 -0700 Subject: [PATCH 24/34] Fixing START-KINETIC --- test/start-scripts/START-KINETIC | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/test/start-scripts/START-KINETIC b/test/start-scripts/START-KINETIC index 4504c57..299ebba 100644 --- a/test/start-scripts/START-KINETIC +++ b/test/start-scripts/START-KINETIC @@ -1,10 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 1-Nov-2025 13:21:22" {DSK}frank>il>medley>START-KINETIC.;1 1031 +(FILECREATED " 1-Nov-2025 13:41:38" {DSK}frank>il>medley>START-KINETIC.;2 1112 :EDIT-BY "FGH" - :CHANGES-TO (FNS START-KINETIC)) + :CHANGES-TO (FNS START-KINETIC) + + :PREVIOUS-DATE " 1-Nov-2025 13:21:22" {DSK}frank>il>medley>START-KINETIC.;1) (PRETTYCOMPRINT START-KINETICCOMS) @@ -17,15 +19,15 @@ (DEFINEQ (START-KINETIC - [LAMBDA NIL (* ; "Edited 1-Nov-2025 13:18 by FGH") - (LAMBDA NIL (* ; "Edited 1-Nov-2025 13:15 by FGH") - (ADD.PROCESS '(KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) - (FIX (TIMES 0.25 SCREENHEIGHT)) - (FIX (TIMES 0.5 SCREENWIDTH)) - (FIX (TIMES 0.5 SCREENHEIGHT]) + [LAMBDA NIL (* ; "Edited 1-Nov-2025 13:41 by FGH") + (* ; "Edited 1-Nov-2025 13:15 by FGH") + (ADD.PROCESS '(KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT]) ) (START-KINETIC) (DECLARE%: DONTCOPY - (FILEMAP (NIL (428 987 (START-KINETIC 438 . 985))))) + (FILEMAP (NIL (517 1068 (START-KINETIC 527 . 1066))))) STOP From 8d0b6e66b5b5bb4468c8e7765a00ef5f501f2dbb Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 5 Nov 2025 23:33:26 -0800 Subject: [PATCH 25/34] Add second mudeum-mode sample start script focused on pamoroso's INSPHEX app --- test/start-scripts/START-INSPHEX | 55 +++++++++++++++++++++++++ test/start-scripts/START-INSPHEX.DFASL | Bin 0 -> 1676 bytes 2 files changed, 55 insertions(+) create mode 100644 test/start-scripts/START-INSPHEX create mode 100644 test/start-scripts/START-INSPHEX.DFASL diff --git a/test/start-scripts/START-INSPHEX b/test/start-scripts/START-INSPHEX new file mode 100644 index 0000000..2fe3d26 --- /dev/null +++ b/test/start-scripts/START-INSPHEX @@ -0,0 +1,55 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED " 5-Nov-2025 23:12:38" {DSK}frank>il>medley>library>START-INSPHEX.;5 2142 + + :EDIT-BY "FGH" + + :CHANGES-TO (FNS START-INSPHEX) + (VARS START-INSPHEXCOMS) + (FUNCTIONS TmpShellWget) + + :PREVIOUS-DATE " 5-Nov-2025 19:57:59" {DSK}frank>il>medley>library>START-INSPHEX.;1) + + +(PRETTYCOMPRINT START-INSPHEXCOMS) + +(RPAQQ START-INSPHEXCOMS ((FUNCTIONS TmpShellWget) + (FNS START-INSPHEX) + (P (START-INSPHEX)))) + +(CL:DEFUN TmpShellWget (URL OUTFILENAME) + (LET* ((WGET (ShellWhich "wget")) + (OUTNAME (OUTFILEP OUTFILENAME)) + (UNIXNAME (LET [(UN (UNIX-FILE-NAME OUTNAME 'OUTPUT] + (if (STREQUAL (SUBSTRING UN (NCHARS UN)) + ".") + then (SUBSTRING UN 1 -2) + else UN))) + (CMD (CONCAT WGET " " URL " -O " UNIXNAME))) + (if (NULL WGET) + then (ERROR "ShellWget - wget not available")) + (ShellCommand CMD) + OUTNAME)) +(DEFINEQ + +(START-INSPHEX + [LAMBDA NIL (* ; "Edited 5-Nov-2025 23:09 by FGH") + (LET ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) + INSPHEX.DFASL) + (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" + INSPHEX.FILE) + (SETQ INSPHEX.DFASL (CL:COMPILE-FILE INSPHEX.FILE)) + (LOAD INSPHEX.DFASL) + [ADVISE '(TEDIT IN INSPHEX::CREATE-HEX-WINDOW) + 'BEFORE + '(SETQ WINDOW (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT] + (ADD.PROCESS '(INSPHEX:HEXDUMP INSPHEX.DFASL T]) +) + +(START-INSPHEX) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (608 1201 (TmpShellWget 608 . 1201)) (1202 2098 (START-INSPHEX 1212 . 2096))))) +STOP diff --git a/test/start-scripts/START-INSPHEX.DFASL b/test/start-scripts/START-INSPHEX.DFASL new file mode 100644 index 0000000000000000000000000000000000000000..efe40f7abe4d1a88e858a2404b729e91efc08165 GIT binary patch literal 1676 zcmbVMTW{k;6n30z({@P(luF#pLC+BmK`%U#@y_Ef2EOOi4+DGjpgwf#p3`@ole#-R2<+gbjxEu&%8G`K zHrlUzzFEZA;(LK(hfZG*Hp`lST&~@zZ3?xG?Yp(@jjdu+#AL}ri&R=!Nip>TJ(M^;MV>{snu>}f6Nwg* zRbApa@>5h=hoUuEG-asU=vwO}D%}-Ae_VE*W5=Z^cs!&aKSzaTSCcG7*T`Awlz$r% zmSogaG*qT}A-t)VAY(>1kj5`UKu+&kkTM72f~=T`1@mj|9j@T=qulJU%Kh7g9slI4x@z;WHZ zBPUGk>86HbaHqa00}6;&7vWESE_t4RC* zw!<_`W`0bHI}f~n8HlHyzuQdzHT!p#voz|T_McZt&v#ggbEU+^YZ;E?8K$(mDBU$x z5-q~}Q{Xgl7ZndEBn%H2G|wLOzXL@UnWk=PAmt=olSFF^#0A`KV9QjrRs~K45YfG^ zsD2oK@-B7Mq_$|{H4txgHDx~`AH8Ckde5#j=&KbI_y@z@AoVH@P579-Poj4&Uq&bk z58;7?ksk{7u|0I{1J`MhC?k}0K_pR1_!xc_AYO+00k*5;dAe<0fi@qtHiPiIoj{#n z!@L;kOuEKTW}gk_@_c2;bPvE>0#tJq1u#tsQ&9DmqQM-+t9&XUaQc)^%;oqz$u+=l zQIzEh@L56_e@eR+<@*Xo?}M08by0o`W^@UNZP1~m*^6`4AOnn=ushcSKC8hK) zQ6AQq+}$)0=h3x`mWAH`Vo+4XqNELU$Dc+e|mlA6mDXq43&HNRRGFERY^pEB@AX%{> zIj?BY&Pq~E8M-PbHOJB`B Date: Fri, 7 Nov 2025 10:28:53 -0800 Subject: [PATCH 26/34] Updated START-INSPHEX start-script - this time it actually works --- test/start-scripts/START-INSPHEX | 23 ++++++++++++++--------- test/start-scripts/START-INSPHEX.DFASL | Bin 1676 -> 1907 bytes 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/test/start-scripts/START-INSPHEX b/test/start-scripts/START-INSPHEX index 2fe3d26..29a3d0f 100644 --- a/test/start-scripts/START-INSPHEX +++ b/test/start-scripts/START-INSPHEX @@ -1,22 +1,25 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-Nov-2025 23:12:38" {DSK}frank>il>medley>library>START-INSPHEX.;5 2142 +(FILECREATED " 7-Nov-2025 10:09:00" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;8 2341 :EDIT-BY "FGH" - :CHANGES-TO (FNS START-INSPHEX) - (VARS START-INSPHEXCOMS) - (FUNCTIONS TmpShellWget) + :CHANGES-TO (VARS START-INSPHEXCOMS) + (FNS START-INSPHEX) - :PREVIOUS-DATE " 5-Nov-2025 19:57:59" {DSK}frank>il>medley>library>START-INSPHEX.;1) + :PREVIOUS-DATE " 6-Nov-2025 20:45:51" +{DSK}frank>il>online>test>start-scripts>START-INSPHEX.;2) (PRETTYCOMPRINT START-INSPHEXCOMS) -(RPAQQ START-INSPHEXCOMS ((FUNCTIONS TmpShellWget) +(RPAQQ START-INSPHEXCOMS ((P (DEFPACKAGE "INSPHEX" (:USE "LISP" "XCL"))) + (FUNCTIONS TmpShellWget) (FNS START-INSPHEX) (P (START-INSPHEX)))) +(DEFPACKAGE "INSPHEX" (:USE "LISP" "XCL")) + (CL:DEFUN TmpShellWget (URL OUTFILENAME) (LET* ((WGET (ShellWhich "wget")) (OUTNAME (OUTFILEP OUTFILENAME)) @@ -33,7 +36,7 @@ (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 5-Nov-2025 23:09 by FGH") + [LAMBDA NIL (* ; "Edited 7-Nov-2025 10:07 by FGH") (LET ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) INSPHEX.DFASL) (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" @@ -46,10 +49,12 @@ (FIX (TIMES 0.25 SCREENHEIGHT)) (FIX (TIMES 0.5 SCREENWIDTH)) (FIX (TIMES 0.5 SCREENHEIGHT] - (ADD.PROCESS '(INSPHEX:HEXDUMP INSPHEX.DFASL T]) + (ADD.PROCESS (LIST (CL:INTERN "HEXDUMP" (CL:FIND-PACKAGE "INSPHEX")) + (KWOTE INSPHEX.DFASL) + T]) ) (START-INSPHEX) (DECLARE%: DONTCOPY - (FILEMAP (NIL (608 1201 (TmpShellWget 608 . 1201)) (1202 2098 (START-INSPHEX 1212 . 2096))))) + (FILEMAP (NIL (705 1298 (TmpShellWget 705 . 1298)) (1299 2297 (START-INSPHEX 1309 . 2295))))) STOP diff --git a/test/start-scripts/START-INSPHEX.DFASL b/test/start-scripts/START-INSPHEX.DFASL index efe40f7abe4d1a88e858a2404b729e91efc08165..3460bd83b72b429b7acbb872c58f3d330d926fd2 100644 GIT binary patch delta 715 zcmeC-{meJPx;{TICo?bAt|Ya%#ICp`v8Y71IJqdZprqI?IK(k1MAy?VIKaa-LeJWQ zD>%QjC^=OjEi)%oA-O0uu_QG`LBU+tFTYIJ$iT={!O+0Uz|zXVfXmG>*auaaTTy08 zVx^9PxdKpiYHm_$kpf7IjsgcnlcC|pU5t#3I+OP>$_wt#X8;0D5Fx-Yqeswq@hNYRWQ<_KpWu^E$DK z$U=m~4oA+(&zRyEH72_uyBTyRD)+Gkd&HS#$xRz$;8OOFq0YR`37JBaeDfNxCVj3r;(!=7%JS3 zE-rcjLH^FJ!NEQ=`g_>G@_z0>CXbt^pNlRuA|~HvQ8(0JpJ~aI43uIG4D}Cj)dlKj zb8>a_4{~L5LWHX=kO@poE}^~wlMPu@*`h$<9zA&utE3!+*Fgdd_iOrbIJoyxpwmy)-G-GNHV*pTcrWiMnoH2!IMvn+KH%{#_ zo~+0$qD;Wg40C2mOipIbXOx(HnK^|~d$I*f8>`riY0Msz53@KHYZm%{~%XZTcBHKOzL3=hNw%ZZ@`R+ zGkVyeAw1KfaWWrUs;w7L$xQDSy9NdZphlix=O9;CKMz+=caIRD|7Jp^?Lnd7gD&7d Yc>|jU(@f{dPuSWy#DGd>CI9~q09z208UO$Q From 43d785e27e33081207c561675701b520d53639cc Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 10:44:23 -0800 Subject: [PATCH 27/34] Scooching INSPHEX window over a bit in START-INSPHEX start script --- test/start-scripts/START-INSPHEX | 12 ++++++------ test/start-scripts/START-INSPHEX.DFASL | Bin 1907 -> 1909 bytes 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/start-scripts/START-INSPHEX b/test/start-scripts/START-INSPHEX index 29a3d0f..e66faa5 100644 --- a/test/start-scripts/START-INSPHEX +++ b/test/start-scripts/START-INSPHEX @@ -1,11 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 7-Nov-2025 10:09:00" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;8 2341 +(FILECREATED " 7-Nov-2025 10:43:14" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;10 2342 :EDIT-BY "FGH" - :CHANGES-TO (VARS START-INSPHEXCOMS) - (FNS START-INSPHEX) + :CHANGES-TO (FNS START-INSPHEX) + (VARS START-INSPHEXCOMS) :PREVIOUS-DATE " 6-Nov-2025 20:45:51" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;2) @@ -36,7 +36,7 @@ (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 7-Nov-2025 10:07 by FGH") + [LAMBDA NIL (* ; "Edited 7-Nov-2025 10:43 by FGH") (LET ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) INSPHEX.DFASL) (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" @@ -45,7 +45,7 @@ (LOAD INSPHEX.DFASL) [ADVISE '(TEDIT IN INSPHEX::CREATE-HEX-WINDOW) 'BEFORE - '(SETQ WINDOW (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + '(SETQ WINDOW (CREATEW (CREATEREGION (FIX (TIMES 0.35 SCREENWIDTH)) (FIX (TIMES 0.25 SCREENHEIGHT)) (FIX (TIMES 0.5 SCREENWIDTH)) (FIX (TIMES 0.5 SCREENHEIGHT] @@ -56,5 +56,5 @@ (START-INSPHEX) (DECLARE%: DONTCOPY - (FILEMAP (NIL (705 1298 (TmpShellWget 705 . 1298)) (1299 2297 (START-INSPHEX 1309 . 2295))))) + (FILEMAP (NIL (706 1299 (TmpShellWget 706 . 1299)) (1300 2298 (START-INSPHEX 1310 . 2296))))) STOP diff --git a/test/start-scripts/START-INSPHEX.DFASL b/test/start-scripts/START-INSPHEX.DFASL index 3460bd83b72b429b7acbb872c58f3d330d926fd2..f5c0927be8cad956084bd8ea0568f1c29a0789c3 100644 GIT binary patch delta 61 zcmey&_myu#3X`G1#8eel6JskwlZk!$Acm3A#zWyu9AKfTJ@%6onQeipHpesnV`AQH LY`i&vO_&h?LckHo delta 58 zcmey$_nB`(3ZuouG!<3@ODh9|iT(N@hN0oc!{JOEV48 JoWv%~2mlsn5ZnL& From d9d797b0e77532d5bb4528fdf3d545ae66c84f4b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 11:09:31 -0800 Subject: [PATCH 28/34] Move start-scripts to top level of online repo. Add URLs used with these start scripts --- {test/start-scripts => start-scripts}/START-INSPHEX | 0 .../START-INSPHEX.DFASL | Bin start-scripts/START-INSPHEX.URL | 1 + {test/start-scripts => start-scripts}/START-KINETIC | 0 start-scripts/START-KINETIC.URL | 1 + 5 files changed, 2 insertions(+) rename {test/start-scripts => start-scripts}/START-INSPHEX (100%) rename {test/start-scripts => start-scripts}/START-INSPHEX.DFASL (100%) create mode 100644 start-scripts/START-INSPHEX.URL rename {test/start-scripts => start-scripts}/START-KINETIC (100%) create mode 100644 start-scripts/START-KINETIC.URL diff --git a/test/start-scripts/START-INSPHEX b/start-scripts/START-INSPHEX similarity index 100% rename from test/start-scripts/START-INSPHEX rename to start-scripts/START-INSPHEX diff --git a/test/start-scripts/START-INSPHEX.DFASL b/start-scripts/START-INSPHEX.DFASL similarity index 100% rename from test/start-scripts/START-INSPHEX.DFASL rename to start-scripts/START-INSPHEX.DFASL diff --git a/start-scripts/START-INSPHEX.URL b/start-scripts/START-INSPHEX.URL new file mode 100644 index 0000000..28c73d7 --- /dev/null +++ b/start-scripts/START-INSPHEX.URL @@ -0,0 +1 @@ +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Ftest%2Fstart-scripts%2FSTART-INSPHEX.DFASL diff --git a/test/start-scripts/START-KINETIC b/start-scripts/START-KINETIC similarity index 100% rename from test/start-scripts/START-KINETIC rename to start-scripts/START-KINETIC diff --git a/start-scripts/START-KINETIC.URL b/start-scripts/START-KINETIC.URL new file mode 100644 index 0000000..b0be74c --- /dev/null +++ b/start-scripts/START-KINETIC.URL @@ -0,0 +1 @@ +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fraw.githubusercontent.com%2FInterlisp%2Fonline%2Frefs%2Fheads%2Ffgh_museum-mode%2Ftest%2Fstart-scripts%2FSTART-KINETIC From 48fb93bd542d731e5cd0181d4919d6e877f776b2 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 11:17:28 -0800 Subject: [PATCH 29/34] Fix start-script URLs --- start-scripts/START-INSPHEX.URL | 3 ++- start-scripts/START-KINETIC.URL | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/start-scripts/START-INSPHEX.URL b/start-scripts/START-INSPHEX.URL index 28c73d7..638101c 100644 --- a/start-scripts/START-INSPHEX.URL +++ b/start-scripts/START-INSPHEX.URL @@ -1 +1,2 @@ -https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Ftest%2Fstart-scripts%2FSTART-INSPHEX.DFASL +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.DFASL + diff --git a/start-scripts/START-KINETIC.URL b/start-scripts/START-KINETIC.URL index b0be74c..9bb0938 100644 --- a/start-scripts/START-KINETIC.URL +++ b/start-scripts/START-KINETIC.URL @@ -1 +1 @@ -https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fraw.githubusercontent.com%2FInterlisp%2Fonline%2Frefs%2Fheads%2Ffgh_museum-mode%2Ftest%2Fstart-scripts%2FSTART-KINETIC +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fraw.githubusercontent.com%2FInterlisp%2Fonline%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC From 67ee9ae35c3e886e6e206e678baed833b639d2ac Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 11:21:31 -0800 Subject: [PATCH 30/34] Update URL to use 'github.com' instead of 'raw.githubusercontent.com' Signed-off-by: Frank Halasz --- start-scripts/START-KINETIC.URL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start-scripts/START-KINETIC.URL b/start-scripts/START-KINETIC.URL index 9bb0938..74d5447 100644 --- a/start-scripts/START-KINETIC.URL +++ b/start-scripts/START-KINETIC.URL @@ -1 +1 @@ -https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fraw.githubusercontent.com%2FInterlisp%2Fonline%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC From 958349ca5632a7af9bf8bb4a08d0b786ee8fa73a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 19:35:04 -0800 Subject: [PATCH 31/34] Add new routes for autologin, /demo/guest is equivalent to the current /guest. And /demo/login requires a login and then skips the run medley page. --- web-portal/server/js/app.js | 23 ++++++++++++++--------- web-portal/server/js/user.js | 6 +++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 70006eb..7c1606d 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -116,20 +116,25 @@ app.get('/main', ); } ); -app.get('/guest', +app.get([ '/guest', '/demo/guest' ], (req, res) => { const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - const newQuery = {}; - newQuery.autologin = ""; - newQuery.username = config.guestUsername; - newQuery.password = config.guestPassword; - if(req.query.notecards != undefined) newQuery.notecards=""; - if(req.query.rooms != undefined) newQuery.rooms=""; - if((req.query.start != undefined) && (req.query.start != "")) newQuery.start = req.query.start; - res.redirect(url.format({pathname:"/user/autologin", query: newQuery})); + req.query.username = config.guestUsername; + req.query.password = config.guestPassword; + res.redirect("/user/autologin"); + } + ); +app.get([ '/demo/login' ], + (req, res) => { + + const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); + res.cookie('autologinURL', cookieUrl); + + req.query.autologin = "true"; + res.redirect("/main"); } ); app.use('/user', userRouter); diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index 7e3f8ee..888bd56 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -123,9 +123,9 @@ function passportAuthenticate(req, res, next) { if(user.uname) if ((user.uname == "guest") && (req.query.autologin != undefined)) { const newQuery={}; - newQuery.autologin=""; - if(req.query.notecards != undefined) newQuery.notecards=""; - if(req.query.rooms != undefined) newQuery.rooms=""; + newQuery.autologin="true"; + if(req.query.notecards != undefined) newQuery.notecards="true"; + if(req.query.rooms != undefined) newQuery.rooms="true"; if((req.query.start != undefined) && (req.query.start != "")) newQuery.start=req.query.start; return res.redirect(url.format({pathname:"/main", query: newQuery})); From 3906ca482f74ee3ef5871b53d68b47a69d51a076 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 8 Nov 2025 06:09:53 +0000 Subject: [PATCH 32/34] Fixing res.redirect statements to include query --- web-portal/server/js/app.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 7c1606d..67d93de 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -121,10 +121,10 @@ app.get([ '/guest', '/demo/guest' ], const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - + req.query.autologin = "true"; req.query.username = config.guestUsername; req.query.password = config.guestPassword; - res.redirect("/user/autologin"); + res.redirect(url.format({pathname:"/user/autologin", query: req.query})); } ); app.get([ '/demo/login' ], @@ -134,7 +134,7 @@ app.get([ '/demo/login' ], res.cookie('autologinURL', cookieUrl); req.query.autologin = "true"; - res.redirect("/main"); + res.redirect(url.format({pathname:"/main", query: req.query})); } ); app.use('/user', userRouter); From 2299b538f0ce62cd36f34f8ed7bd651be570a25a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 8 Nov 2025 07:00:36 +0000 Subject: [PATCH 33/34] Debugging /demo/login route --- web-portal/server/js/app.js | 4 ++-- web-portal/server/js/user.js | 11 ++--------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 67d93de..3208365 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -132,10 +132,10 @@ app.get([ '/demo/login' ], const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - + if(req.query == undefined) req.query = {}; req.query.autologin = "true"; res.redirect(url.format({pathname:"/main", query: req.query})); - } + }. ); app.use('/user', userRouter); app.use('/medley', ensureLoggedIn(), medleyRouter); diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index 888bd56..42ca4f2 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -121,15 +121,8 @@ function passportAuthenticate(req, res, next) { console.log("Error in logging login: " + err); } if(user.uname) - if ((user.uname == "guest") && (req.query.autologin != undefined)) { - const newQuery={}; - newQuery.autologin="true"; - if(req.query.notecards != undefined) newQuery.notecards="true"; - if(req.query.rooms != undefined) newQuery.rooms="true"; - if((req.query.start != undefined) && (req.query.start != "")) - newQuery.start=req.query.start; - return res.redirect(url.format({pathname:"/main", query: newQuery})); - } + if (req.query.autologin != undefined) + return res.redirect(url.format({pathname:"/main", query: req.query})); else return res.redirect('/main'); else From 73bd1b9a0837ef73d1e1e4d2163752fe5f8530c2 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 8 Nov 2025 07:10:26 +0000 Subject: [PATCH 34/34] Fix typo --- web-portal/server/js/app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 3208365..d6bacd4 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -132,10 +132,10 @@ app.get([ '/demo/login' ], const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - if(req.query == undefined) req.query = {}; + if(req.query == undefined) req.query = {}; req.query.autologin = "true"; res.redirect(url.format({pathname:"/main", query: req.query})); - }. + } ); app.use('/user', userRouter); app.use('/medley', ensureLoggedIn(), medleyRouter);