From f1a1b6bfd77c6c60fdeeff1a6c060e254ec6cacf Mon Sep 17 00:00:00 2001 From: SamTV12345 <40429738+SamTV12345@users.noreply.github.com> Date: Sat, 1 Jun 2024 13:14:45 +0200 Subject: [PATCH] Added Progressive Web App support for Etherpad (#6411) --- src/ep.json | 12 ++++++------ src/node/hooks/express/pwa.ts | 32 ++++++++++++++++++++++++++++++++ src/templates/export_html.html | 3 ++- src/templates/index.html | 1 + src/templates/javascript.html | 3 ++- src/templates/pad.html | 1 + src/templates/timeslider.html | 1 + 7 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 src/node/hooks/express/pwa.ts diff --git a/src/ep.json b/src/ep.json index a96890fb4..a6d65a08f 100644 --- a/src/ep.json +++ b/src/ep.json @@ -57,6 +57,12 @@ "expressCreateServer": "ep_etherpad-lite/node/hooks/express/padurlsanitize" } }, + { + "name": "pwa", + "hooks": { + "expressCreateServer": "ep_etherpad-lite/node/hooks/express/pwa" + } + }, { "name": "apicalls", "hooks": { @@ -112,12 +118,6 @@ "hooks": { "expressPreSession": "ep_etherpad-lite/node/hooks/express/openapi" } - }, - { - "name": "ep_message_all", - "client_hooks": { - "handleClientMessage_shoutMessage": "ep_etherpad-lite/static/js/messageHandler" - } } ] } diff --git a/src/node/hooks/express/pwa.ts b/src/node/hooks/express/pwa.ts new file mode 100644 index 000000000..918efbc05 --- /dev/null +++ b/src/node/hooks/express/pwa.ts @@ -0,0 +1,32 @@ +import {ArgsExpressType} from "../../types/ArgsExpressType"; +const settings = require('../../utils/Settings'); + +const pwa = { + name: settings.title || "Etherpad", + short_name: settings.title, + description: "A collaborative online editor", + icons: [ + { + "src": "/static/skins/colibris/images/fond.jpg", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "/favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + type: "image/png" + } + ], + start_url: "/", + display: "fullscreen", + theme_color: "#0f775b", + background_color: "#0f775b" +} + +exports.expressCreateServer = (hookName:string, args:ArgsExpressType, cb:Function) => { + args.app.get('/manifest.json', (req:any, res:any) => { + res.json(pwa); + }); + + return cb(); +} diff --git a/src/templates/export_html.html b/src/templates/export_html.html index f00f4d953..3ac27e9e8 100644 --- a/src/templates/export_html.html +++ b/src/templates/export_html.html @@ -2,7 +2,8 @@