From 5aacdf6bf81f9fa952530f24aab60bd0ea58328d Mon Sep 17 00:00:00 2001 From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com> Date: Mon, 20 Oct 2025 21:41:08 +0530 Subject: [PATCH 1/4] Add custom 404 HTML page structure --- .../Service Portal Widgets/custom404/HTML.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Modern Development/Service Portal Widgets/custom404/HTML.js diff --git a/Modern Development/Service Portal Widgets/custom404/HTML.js b/Modern Development/Service Portal Widgets/custom404/HTML.js new file mode 100644 index 0000000000..85a8564627 --- /dev/null +++ b/Modern Development/Service Portal Widgets/custom404/HTML.js @@ -0,0 +1,10 @@ +
+

${This page could not be found. Based on your search we have found below valid pages}

+
+ +
+
From 5377b50ab403dc794d2b1b68010c700acbcfc8cd Mon Sep 17 00:00:00 2001 From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com> Date: Mon, 20 Oct 2025 21:46:18 +0530 Subject: [PATCH 2/4] Add custom 404 page suggestion script This script retrieves the first three characters of the page_id from the URL and suggests valid related pages based on that. --- .../custom404/server.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Modern Development/Service Portal Widgets/custom404/server.js diff --git a/Modern Development/Service Portal Widgets/custom404/server.js b/Modern Development/Service Portal Widgets/custom404/server.js new file mode 100644 index 0000000000..a9f02c48a1 --- /dev/null +++ b/Modern Development/Service Portal Widgets/custom404/server.js @@ -0,0 +1,20 @@ +(function() { + /* + This script will get the 3 characters of page_id from url and suggest valid pages. + */ + data.pageArr = []; // array to store related pages + var pageId = $sp.getParameter('id').toString(); // get page id from url + // get 3 letters of page id + if (pageId && pageId.length() > 3) + pageId = pageId.substring(0, 3); + + var relatedPages = new GlideRecord('sp_page'); + relatedPages.addEncodedQuery('idLIKE' + pageId); + relatedPages.query(); + while (relatedPages.next()) { + var tempList = {}; // temporary object. + tempList.name = relatedPages.getValue('title'); + tempList.url = '/' + $sp.getValue('url_suffix') + '?id=' + relatedPages.getValue('id'); + data.pageArr.push(tempList); // add related suggested pages to array + } +})(); From c433b85ee4dbe83618fea19541aa7c9938591f85 Mon Sep 17 00:00:00 2001 From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com> Date: Mon, 20 Oct 2025 21:46:54 +0530 Subject: [PATCH 3/4] Create css.js --- .../Service Portal Widgets/custom404/css.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Modern Development/Service Portal Widgets/custom404/css.js diff --git a/Modern Development/Service Portal Widgets/custom404/css.js b/Modern Development/Service Portal Widgets/custom404/css.js new file mode 100644 index 0000000000..a368d6bae2 --- /dev/null +++ b/Modern Development/Service Portal Widgets/custom404/css.js @@ -0,0 +1,15 @@ +.heading-message{ + color:red; +} +.page-container{ + display: flex; + justify-content: space-evenly; + flex-direction:cloumn; +} +ul{ + padding: 2rem; + list-style-type: disclosure-closed; +} +li{ + padding:1rem; +} From 8408867f76b4bb2809f5caf5d5a6eb10ab2abb12 Mon Sep 17 00:00:00 2001 From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com> Date: Mon, 20 Oct 2025 21:52:17 +0530 Subject: [PATCH 4/4] Add README for custom 404 widget Added usage instructions and use case for custom 404 widget. --- .../Service Portal Widgets/custom404/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Modern Development/Service Portal Widgets/custom404/README.md diff --git a/Modern Development/Service Portal Widgets/custom404/README.md b/Modern Development/Service Portal Widgets/custom404/README.md new file mode 100644 index 0000000000..da1c1082cb --- /dev/null +++ b/Modern Development/Service Portal Widgets/custom404/README.md @@ -0,0 +1,15 @@ +**How to use** +1. Add this widget to new portal page. +2. Add the page in "sp_portal" record in 404 field. + +**Use Case** +1. Some organizations do not want to show OOB 404 page having game but want to show the suggestions with correct pages. + +**Result** +1. This code will search the 3 letters of page_id from URL and will suggest correct pages. +2. The correct links will open the pages in next tab. + + 404 + + +