From fed6b2c8e9667deb4271284658aaee6b6492bfc4 Mon Sep 17 00:00:00 2001 From: Anukasha Singh Date: Fri, 13 Feb 2026 17:36:29 +0530 Subject: [PATCH 1/8] adding a js confirmation before navigating away from settings menus --- Gruntfile.js | 2 ++ src/js/_enqueues/admin/options.js | 51 +++++++++++++++++++++++++++++ src/wp-admin/options-discussion.php | 2 ++ src/wp-admin/options-general.php | 2 ++ src/wp-admin/options-media.php | 2 ++ src/wp-admin/options-permalink.php | 2 ++ src/wp-admin/options-reading.php | 2 ++ src/wp-admin/options-writing.php | 2 +- src/wp-includes/script-loader.php | 3 ++ 9 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/js/_enqueues/admin/options.js diff --git a/Gruntfile.js b/Gruntfile.js index 9363a26a746a6..a47d82199fc91 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -438,6 +438,7 @@ module.exports = function(grunt) { [ WORKING_DIR + 'wp-admin/js/theme-plugin-editor.js' ]: [ './src/js/_enqueues/wp/theme-plugin-editor.js' ], [ WORKING_DIR + 'wp-admin/js/theme.js' ]: [ './src/js/_enqueues/wp/theme.js' ], [ WORKING_DIR + 'wp-admin/js/updates.js' ]: [ './src/js/_enqueues/wp/updates.js' ], + [ WORKING_DIR + 'wp-admin/js/options.js' ]: [ './src/js/_enqueues/admin/options.js' ], [ WORKING_DIR + 'wp-admin/js/user-profile.js' ]: [ './src/js/_enqueues/admin/user-profile.js' ], [ WORKING_DIR + 'wp-admin/js/user-suggest.js' ]: [ './src/js/_enqueues/lib/user-suggest.js' ], [ WORKING_DIR + 'wp-admin/js/widgets/custom-html-widgets.js' ]: [ './src/js/_enqueues/wp/widgets/custom-html.js' ], @@ -1059,6 +1060,7 @@ module.exports = function(grunt) { 'src/wp-admin/js/theme-plugin-editor.js': 'src/js/_enqueues/wp/theme-plugin-editor.js', 'src/wp-admin/js/theme.js': 'src/js/_enqueues/wp/theme.js', 'src/wp-admin/js/updates.js': 'src/js/_enqueues/wp/updates.js', + 'src/wp-admin/js/options.js': 'src/js/_enqueues/admin/options.js', 'src/wp-admin/js/user-profile.js': 'src/js/_enqueues/admin/user-profile.js', 'src/wp-admin/js/user-suggest.js': 'src/js/_enqueues/lib/user-suggest.js', 'src/wp-admin/js/widgets/custom-html-widgets.js': 'src/js/_enqueues/wp/widgets/custom-html.js', diff --git a/src/js/_enqueues/admin/options.js b/src/js/_enqueues/admin/options.js new file mode 100644 index 0000000000000..5df9c79ea5e04 --- /dev/null +++ b/src/js/_enqueues/admin/options.js @@ -0,0 +1,51 @@ +/** + * @output wp-admin/js/options.js + */ + +/** + * Detects unsaved changes on settings forms and warns users before navigating away. + * + * @since 7.0.0 + */ +( function( $ ) { + var $form, + originalFormContent, + isSubmitting = false, + __ = wp.i18n.__; + + $( function() { + // Target all settings forms on options pages. + $form = $( 'form[action="options.php"]' ); + + // Exit if no form is found. + if ( ! $form.length ) { + return; + } + + // Store the original form state. + originalFormContent = $form.serialize(); + + // Track form submission to avoid false warnings. + $form.on( 'submit', function() { + isSubmitting = true; + } ); + } ); + + /** + * Warn the user if they have unsaved changes. + * + * The browser will show a native confirmation dialog when the user + * attempts to leave the page with unsaved changes. + */ + $( window ).on( 'beforeunload', function() { + // Skip warning if form is being submitted or content hasn't changed. + if ( isSubmitting || ! $form || ! $form.length ) { + return; + } + + if ( originalFormContent !== $form.serialize() ) { + return __( 'The changes you made will be lost if you navigate away from this page.' ); + } + } ); + +}( jQuery ) ); diff --git a/src/wp-admin/options-discussion.php b/src/wp-admin/options-discussion.php index 0c350475fe176..442e922c2cd7e 100644 --- a/src/wp-admin/options-discussion.php +++ b/src/wp-admin/options-discussion.php @@ -33,6 +33,8 @@ '

' . __( 'Support forums' ) . '

' ); +wp_enqueue_script( 'options' ); + require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-general.php b/src/wp-admin/options-general.php index 214899d5a11a6..431145072f0d9 100644 --- a/src/wp-admin/options-general.php +++ b/src/wp-admin/options-general.php @@ -61,6 +61,8 @@ '

' . __( 'Support forums' ) . '

' ); +wp_enqueue_script( 'options' ); + require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-media.php b/src/wp-admin/options-media.php index 81ebc9223f543..3bacbd27bd907 100644 --- a/src/wp-admin/options-media.php +++ b/src/wp-admin/options-media.php @@ -42,6 +42,8 @@ '

' . __( 'Support forums' ) . '

' ); +wp_enqueue_script( 'options' ); + require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-permalink.php b/src/wp-admin/options-permalink.php index 2a1b46fba2102..837c5226f521c 100644 --- a/src/wp-admin/options-permalink.php +++ b/src/wp-admin/options-permalink.php @@ -69,6 +69,8 @@ get_current_screen()->set_help_sidebar( $help_sidebar_content ); unset( $help_sidebar_content ); +wp_enqueue_script( 'options' ); + $home_path = get_home_path(); $iis7_permalinks = iis7_supports_permalinks(); $permalink_structure = get_option( 'permalink_structure' ); diff --git a/src/wp-admin/options-reading.php b/src/wp-admin/options-reading.php index d08abc108d669..ea7835657b421 100644 --- a/src/wp-admin/options-reading.php +++ b/src/wp-admin/options-reading.php @@ -54,6 +54,8 @@ '

' . __( 'Support forums' ) . '

' ); +wp_enqueue_script( 'options' ); + require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-writing.php b/src/wp-admin/options-writing.php index 6f85b54679327..61443f94ee0c4 100644 --- a/src/wp-admin/options-writing.php +++ b/src/wp-admin/options-writing.php @@ -54,7 +54,7 @@ '

' . __( 'Support forums' ) . '

' ); -wp_enqueue_script( 'user-profile' ); +wp_enqueue_script( 'options' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index 4e9de5a0a7ed9..80f049800d249 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -1256,6 +1256,9 @@ function wp_default_scripts( $scripts ) { $scripts->add( 'language-chooser', "/wp-admin/js/language-chooser$suffix.js", array( 'jquery' ), false, 1 ); + $scripts->add( 'options', "/wp-admin/js/options$suffix.js", array( 'jquery', 'wp-i18n' ), false, 1 ); + $scripts->set_translations( 'options' ); + $scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 ); $scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array( 'hoverintent-js' ), false, 1 ); From 8de9d1db5649a4018344d96461635b5ed9142bf8 Mon Sep 17 00:00:00 2001 From: Anukasha Singh Date: Fri, 3 Apr 2026 18:22:30 +0530 Subject: [PATCH 2/8] data-loss64623-stash --- .idea/codeStyles/Project.xml | 56 +++++++++++++++ .idea/codeStyles/codeStyleConfig.xml | 5 ++ .idea/inspectionProfiles/Project_Default.xml | 8 +++ .idea/jsLinters/jshint.xml | 4 ++ .idea/laravel-idea.xml | 8 +++ .idea/php.xml | 62 +++++++++++++++++ .idea/prettier.xml | 6 ++ .idea/vcs.xml | 6 ++ src/js/_enqueues/admin/options.js | 72 ++++++++++---------- tests/qunit/fixtures/wp-api-generated.js | 16 +---- 10 files changed, 193 insertions(+), 50 deletions(-) create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jsLinters/jshint.xml create mode 100644 .idea/laravel-idea.xml create mode 100644 .idea/php.xml create mode 100644 .idea/prettier.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000000000..effe68d53646f --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000000000..79ee123c2b23e --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000000000..79470d4ba34b5 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLinters/jshint.xml b/.idea/jsLinters/jshint.xml new file mode 100644 index 0000000000000..0bfe7408de0dc --- /dev/null +++ b/.idea/jsLinters/jshint.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/laravel-idea.xml b/.idea/laravel-idea.xml new file mode 100644 index 0000000000000..bd941a4725efc --- /dev/null +++ b/.idea/laravel-idea.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000000000..ce5a117221bf4 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/prettier.xml b/.idea/prettier.xml new file mode 100644 index 0000000000000..b0c1c68fbbad6 --- /dev/null +++ b/.idea/prettier.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000..35eb1ddfbbc02 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/js/_enqueues/admin/options.js b/src/js/_enqueues/admin/options.js index 5df9c79ea5e04..28c53ea3850e3 100644 --- a/src/js/_enqueues/admin/options.js +++ b/src/js/_enqueues/admin/options.js @@ -1,51 +1,53 @@ -/** - * @output wp-admin/js/options.js - */ - -/** - * Detects unsaved changes on settings forms and warns users before navigating away. - * - * @since 7.0.0 - */ -( function( $ ) { +( function ( $ ) { var $form, originalFormContent, isSubmitting = false, + hasListener = false, __ = wp.i18n.__; - $( function() { - // Target all settings forms on options pages. + function beforeUnloadHandler() { + if ( isSubmitting || ! $form || ! $form.length ) { + return; + } + + if ( originalFormContent !== $form.serialize() ) { + return __( + 'The changes you made will be lost if you navigate away from this page.' + ); + } + } + + function addBeforeUnloadListener() { + if ( ! hasListener ) { + $( window ).on( 'beforeunload.options', beforeUnloadHandler ); + hasListener = true; + } + } + + function removeBeforeUnloadListener() { + if ( hasListener ) { + $( window ).off( 'beforeunload.options' ); + hasListener = false; + } + } + + $( function () { $form = $( 'form[action="options.php"]' ); - // Exit if no form is found. if ( ! $form.length ) { return; } - // Store the original form state. originalFormContent = $form.serialize(); - // Track form submission to avoid false warnings. - $form.on( 'submit', function() { - isSubmitting = true; + // Add listener only when form is modified + $form.on( 'change input', function () { + addBeforeUnloadListener(); } ); - } ); - - /** - * Warn the user if they have unsaved changes. - * - * The browser will show a native confirmation dialog when the user - * attempts to leave the page with unsaved changes. - */ - $( window ).on( 'beforeunload', function() { - // Skip warning if form is being submitted or content hasn't changed. - if ( isSubmitting || ! $form || ! $form.length ) { - return; - } - if ( originalFormContent !== $form.serialize() ) { - return __( 'The changes you made will be lost if you navigate away from this page.' ); - } + $form.on( 'submit', function () { + isSubmitting = true; + removeBeforeUnloadListener(); + } ); } ); - -}( jQuery ) ); +} )( jQuery ); diff --git a/tests/qunit/fixtures/wp-api-generated.js b/tests/qunit/fixtures/wp-api-generated.js index 675e53b496673..a9acd0af2c1d5 100644 --- a/tests/qunit/fixtures/wp-api-generated.js +++ b/tests/qunit/fixtures/wp-api-generated.js @@ -11128,18 +11128,6 @@ mockedApiResponse.Schema = { "closed" ], "required": false - }, - "site_logo": { - "title": "Logo", - "description": "Site logo.", - "type": "integer", - "required": false - }, - "site_icon": { - "title": "Icon", - "description": "Site icon.", - "type": "integer", - "required": false } } } @@ -14467,7 +14455,5 @@ mockedApiResponse.settings = { "page_on_front": 0, "page_for_posts": 0, "default_ping_status": "open", - "default_comment_status": "open", - "site_logo": null, - "site_icon": 0 + "default_comment_status": "open" }; From 9b372c097cd60757036f8166ab58b046ac46ec0d Mon Sep 17 00:00:00 2001 From: Anukasha Singh Date: Tue, 14 Apr 2026 15:20:07 +0530 Subject: [PATCH 3/8] resolving pr comments - using conditional beforeunload --- src/js/_enqueues/admin/options.js | 64 ++++++++++--------------------- src/wp-admin/options-writing.php | 1 + src/wp-includes/script-loader.php | 4 +- 3 files changed, 24 insertions(+), 45 deletions(-) diff --git a/src/js/_enqueues/admin/options.js b/src/js/_enqueues/admin/options.js index 28c53ea3850e3..8dd4017889253 100644 --- a/src/js/_enqueues/admin/options.js +++ b/src/js/_enqueues/admin/options.js @@ -1,53 +1,31 @@ -( function ( $ ) { - var $form, - originalFormContent, - isSubmitting = false, - hasListener = false, - __ = wp.i18n.__; +/* global wp */ +( function () { + var form = document.querySelector( 'form[action="options.php"]' ); - function beforeUnloadHandler() { - if ( isSubmitting || ! $form || ! $form.length ) { - return; - } + if ( ! form ) { + return; + } - if ( originalFormContent !== $form.serialize() ) { + var originalFormContent = new URLSearchParams( new FormData( form ) ).toString(); + var __ = wp.i18n.__; + + function beforeUnloadHandler( event ) { + var currentContent = new URLSearchParams( new FormData( form ) ).toString(); + if ( originalFormContent !== currentContent ) { + event.preventDefault(); return __( 'The changes you made will be lost if you navigate away from this page.' ); } } - function addBeforeUnloadListener() { - if ( ! hasListener ) { - $( window ).on( 'beforeunload.options', beforeUnloadHandler ); - hasListener = true; - } - } - - function removeBeforeUnloadListener() { - if ( hasListener ) { - $( window ).off( 'beforeunload.options' ); - hasListener = false; - } - } - - $( function () { - $form = $( 'form[action="options.php"]' ); - - if ( ! $form.length ) { - return; - } - - originalFormContent = $form.serialize(); - - // Add listener only when form is modified - $form.on( 'change input', function () { - addBeforeUnloadListener(); - } ); + // Add the beforeunload listener only once a field is modified, to avoid + // breaking bfcache. + document.addEventListener( 'change', function () { + window.addEventListener( 'beforeunload', beforeUnloadHandler ); + }, { once: true } ); - $form.on( 'submit', function () { - isSubmitting = true; - removeBeforeUnloadListener(); - } ); + form.addEventListener( 'submit', function () { + window.removeEventListener( 'beforeunload', beforeUnloadHandler ); } ); -} )( jQuery ); +} )(); diff --git a/src/wp-admin/options-writing.php b/src/wp-admin/options-writing.php index 53a6fe5bc3426..d632579930810 100644 --- a/src/wp-admin/options-writing.php +++ b/src/wp-admin/options-writing.php @@ -54,6 +54,7 @@ '

' . __( 'Support forums' ) . '

' ); +wp_enqueue_script( 'user-profile' ); wp_enqueue_script( 'options' ); require_once ABSPATH . 'wp-admin/admin-header.php'; diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index 53adb8dbcd2cc..73c38c913b570 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -1260,8 +1260,8 @@ function wp_default_scripts( $scripts ) { $scripts->add( 'language-chooser', "/wp-admin/js/language-chooser$suffix.js", array( 'jquery' ), false, 1 ); - $scripts->add( 'options', "/wp-admin/js/options$suffix.js", array( 'jquery', 'wp-i18n' ), false, 1 ); - $scripts->set_translations( 'options' ); + $scripts->add( 'wp-admin-options', "/wp-admin/js/options$suffix.js", array( 'jquery', 'wp-i18n' ), false, 1 ); + $scripts->set_translations( 'wp-admin-options' ); $scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 ); From ecb54037d6b70736a159d721d171fc5ef9d26b0b Mon Sep 17 00:00:00 2001 From: Anukasha Singh Date: Tue, 14 Apr 2026 15:27:12 +0530 Subject: [PATCH 4/8] removing .idea files --- .idea/codeStyles/Project.xml | 56 ------------------ .idea/codeStyles/codeStyleConfig.xml | 5 -- .idea/inspectionProfiles/Project_Default.xml | 8 --- .idea/jsLinters/jshint.xml | 4 -- .idea/laravel-idea.xml | 8 --- .idea/php.xml | 62 -------------------- .idea/prettier.xml | 6 -- .idea/vcs.xml | 6 -- 8 files changed, 155 deletions(-) delete mode 100644 .idea/codeStyles/Project.xml delete mode 100644 .idea/codeStyles/codeStyleConfig.xml delete mode 100644 .idea/inspectionProfiles/Project_Default.xml delete mode 100644 .idea/jsLinters/jshint.xml delete mode 100644 .idea/laravel-idea.xml delete mode 100644 .idea/php.xml delete mode 100644 .idea/prettier.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index effe68d53646f..0000000000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 79ee123c2b23e..0000000000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 79470d4ba34b5..0000000000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/jsLinters/jshint.xml b/.idea/jsLinters/jshint.xml deleted file mode 100644 index 0bfe7408de0dc..0000000000000 --- a/.idea/jsLinters/jshint.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/laravel-idea.xml b/.idea/laravel-idea.xml deleted file mode 100644 index bd941a4725efc..0000000000000 --- a/.idea/laravel-idea.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml deleted file mode 100644 index ce5a117221bf4..0000000000000 --- a/.idea/php.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/prettier.xml b/.idea/prettier.xml deleted file mode 100644 index b0c1c68fbbad6..0000000000000 --- a/.idea/prettier.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddfbbc02..0000000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 5a91d7d6b996c4608911712f96b56da0bca67fa0 Mon Sep 17 00:00:00 2001 From: Anukasha Singh Date: Tue, 14 Apr 2026 15:36:07 +0530 Subject: [PATCH 5/8] removing not-my-changes --- tests/qunit/fixtures/wp-api-generated.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/tests/qunit/fixtures/wp-api-generated.js b/tests/qunit/fixtures/wp-api-generated.js index a974081984bfb..6b5c0102cac73 100644 --- a/tests/qunit/fixtures/wp-api-generated.js +++ b/tests/qunit/fixtures/wp-api-generated.js @@ -11134,8 +11134,20 @@ mockedApiResponse.Schema = { "closed" ], "required": false - } - } + }, + "site_logo": { + "title": "Logo", + "description": "Site logo.", + "type": "integer", + "required": false + }, + "site_icon": { + "title": "Icon", + "description": "Site icon.", + "type": "integer", + "required": false + } + } } ], "_links": { @@ -14550,5 +14562,7 @@ mockedApiResponse.settings = { "page_on_front": 0, "page_for_posts": 0, "default_ping_status": "open", - "default_comment_status": "open" + "default_comment_status": "open", + "site_logo": null, + "site_icon": 0 }; From 48796bf63738ca7d530c36ff45337ee78c50bc31 Mon Sep 17 00:00:00 2001 From: Anukasha Singh Date: Tue, 14 Apr 2026 15:40:18 +0530 Subject: [PATCH 6/8] fixing spaces --- tests/qunit/fixtures/wp-api-generated.js | 30 ++++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/qunit/fixtures/wp-api-generated.js b/tests/qunit/fixtures/wp-api-generated.js index 6b5c0102cac73..003dc397ae305 100644 --- a/tests/qunit/fixtures/wp-api-generated.js +++ b/tests/qunit/fixtures/wp-api-generated.js @@ -11135,19 +11135,19 @@ mockedApiResponse.Schema = { ], "required": false }, - "site_logo": { - "title": "Logo", - "description": "Site logo.", - "type": "integer", - "required": false - }, - "site_icon": { - "title": "Icon", - "description": "Site icon.", - "type": "integer", - "required": false - } - } + "site_logo": { + "title": "Logo", + "description": "Site logo.", + "type": "integer", + "required": false + }, + "site_icon": { + "title": "Icon", + "description": "Site icon.", + "type": "integer", + "required": false + } + } } ], "_links": { @@ -14563,6 +14563,6 @@ mockedApiResponse.settings = { "page_for_posts": 0, "default_ping_status": "open", "default_comment_status": "open", - "site_logo": null, - "site_icon": 0 + "site_logo": null, + "site_icon": 0 }; From eaa41ce22cd2d45920cee86dedf8f67e5a82220b Mon Sep 17 00:00:00 2001 From: Anukasha Singh Date: Tue, 14 Apr 2026 15:52:06 +0530 Subject: [PATCH 7/8] correcting enqueue script handle name --- src/wp-admin/options-discussion.php | 2 +- src/wp-admin/options-permalink.php | 2 +- src/wp-admin/options-reading.php | 2 +- src/wp-admin/options-writing.php | 2 +- src/wp-includes/script-loader.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/wp-admin/options-discussion.php b/src/wp-admin/options-discussion.php index 442e922c2cd7e..13fc54a1aa848 100644 --- a/src/wp-admin/options-discussion.php +++ b/src/wp-admin/options-discussion.php @@ -33,7 +33,7 @@ '

' . __( 'Support forums' ) . '

' ); -wp_enqueue_script( 'options' ); +wp_enqueue_script( 'wp-admin-options' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-permalink.php b/src/wp-admin/options-permalink.php index 35ae98e1d92f9..b62677123d939 100644 --- a/src/wp-admin/options-permalink.php +++ b/src/wp-admin/options-permalink.php @@ -69,7 +69,7 @@ get_current_screen()->set_help_sidebar( $help_sidebar_content ); unset( $help_sidebar_content ); -wp_enqueue_script( 'options' ); +wp_enqueue_script( 'wp-admin-options' ); $home_path = get_home_path(); $iis7_permalinks = iis7_supports_permalinks(); diff --git a/src/wp-admin/options-reading.php b/src/wp-admin/options-reading.php index 3204f18c7e7c3..44496331e2a7b 100644 --- a/src/wp-admin/options-reading.php +++ b/src/wp-admin/options-reading.php @@ -54,7 +54,7 @@ '

' . __( 'Support forums' ) . '

' ); -wp_enqueue_script( 'options' ); +wp_enqueue_script( 'wp-admin-options' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-writing.php b/src/wp-admin/options-writing.php index d632579930810..bb1d94352de2e 100644 --- a/src/wp-admin/options-writing.php +++ b/src/wp-admin/options-writing.php @@ -55,7 +55,7 @@ ); wp_enqueue_script( 'user-profile' ); -wp_enqueue_script( 'options' ); +wp_enqueue_script( 'wp-admin-options' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index 73c38c913b570..224c24f6d7682 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -1260,7 +1260,7 @@ function wp_default_scripts( $scripts ) { $scripts->add( 'language-chooser', "/wp-admin/js/language-chooser$suffix.js", array( 'jquery' ), false, 1 ); - $scripts->add( 'wp-admin-options', "/wp-admin/js/options$suffix.js", array( 'jquery', 'wp-i18n' ), false, 1 ); + $scripts->add( 'wp-admin-options', "/wp-admin/js/options$suffix.js", array( 'wp-i18n' ), false, 1 ); $scripts->set_translations( 'wp-admin-options' ); $scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 ); From e50fd06aead41baacdd201317c1a64430b4336ed Mon Sep 17 00:00:00 2001 From: Anukasha Singh Date: Tue, 14 Apr 2026 17:32:08 +0530 Subject: [PATCH 8/8] renaming js file to wp-options-unsaved-changes-confirmation.js --- Gruntfile.js | 4 ++-- ...{options.js => wp-options-unsaved-changes-confirmation.js} | 0 src/wp-admin/options-discussion.php | 2 +- src/wp-admin/options-general.php | 2 +- src/wp-admin/options-media.php | 2 +- src/wp-admin/options-permalink.php | 2 +- src/wp-admin/options-reading.php | 2 +- src/wp-admin/options-writing.php | 2 +- src/wp-includes/script-loader.php | 4 ++-- 9 files changed, 10 insertions(+), 10 deletions(-) rename src/js/_enqueues/admin/{options.js => wp-options-unsaved-changes-confirmation.js} (100%) diff --git a/Gruntfile.js b/Gruntfile.js index 809e1193d937e..540eb06aabc94 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -453,7 +453,7 @@ module.exports = function(grunt) { [ WORKING_DIR + 'wp-admin/js/theme-plugin-editor.js' ]: [ './src/js/_enqueues/wp/theme-plugin-editor.js' ], [ WORKING_DIR + 'wp-admin/js/theme.js' ]: [ './src/js/_enqueues/wp/theme.js' ], [ WORKING_DIR + 'wp-admin/js/updates.js' ]: [ './src/js/_enqueues/wp/updates.js' ], - [ WORKING_DIR + 'wp-admin/js/options.js' ]: [ './src/js/_enqueues/admin/options.js' ], + [ WORKING_DIR + 'wp-admin/js/wp-options-unsaved-changes-confirmation.js' ]: [ './src/js/_enqueues/admin/wp-options-unsaved-changes-confirmation.js' ], [ WORKING_DIR + 'wp-admin/js/user-profile.js' ]: [ './src/js/_enqueues/admin/user-profile.js' ], [ WORKING_DIR + 'wp-admin/js/user-suggest.js' ]: [ './src/js/_enqueues/lib/user-suggest.js' ], [ WORKING_DIR + 'wp-admin/js/widgets/custom-html-widgets.js' ]: [ './src/js/_enqueues/wp/widgets/custom-html.js' ], @@ -1193,7 +1193,7 @@ module.exports = function(grunt) { 'src/wp-admin/js/theme-plugin-editor.js': 'src/js/_enqueues/wp/theme-plugin-editor.js', 'src/wp-admin/js/theme.js': 'src/js/_enqueues/wp/theme.js', 'src/wp-admin/js/updates.js': 'src/js/_enqueues/wp/updates.js', - 'src/wp-admin/js/options.js': 'src/js/_enqueues/admin/options.js', + 'src/wp-admin/js/wp-options-unsaved-changes-confirmation.js': 'src/js/_enqueues/admin/wp-options-unsaved-changes-confirmation.js', 'src/wp-admin/js/user-profile.js': 'src/js/_enqueues/admin/user-profile.js', 'src/wp-admin/js/user-suggest.js': 'src/js/_enqueues/lib/user-suggest.js', 'src/wp-admin/js/widgets/custom-html-widgets.js': 'src/js/_enqueues/wp/widgets/custom-html.js', diff --git a/src/js/_enqueues/admin/options.js b/src/js/_enqueues/admin/wp-options-unsaved-changes-confirmation.js similarity index 100% rename from src/js/_enqueues/admin/options.js rename to src/js/_enqueues/admin/wp-options-unsaved-changes-confirmation.js diff --git a/src/wp-admin/options-discussion.php b/src/wp-admin/options-discussion.php index 13fc54a1aa848..2f9fa4226c1a4 100644 --- a/src/wp-admin/options-discussion.php +++ b/src/wp-admin/options-discussion.php @@ -33,7 +33,7 @@ '

' . __( 'Support forums' ) . '

' ); -wp_enqueue_script( 'wp-admin-options' ); +wp_enqueue_script( 'wp-admin-unsaved-changes-confirmation' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-general.php b/src/wp-admin/options-general.php index d12d786c2f12b..4c167f27b89d2 100644 --- a/src/wp-admin/options-general.php +++ b/src/wp-admin/options-general.php @@ -61,7 +61,7 @@ '

' . __( 'Support forums' ) . '

' ); -wp_enqueue_script( 'options' ); +wp_enqueue_script( 'wp-admin-unsaved-changes-confirmation' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-media.php b/src/wp-admin/options-media.php index 3bacbd27bd907..4172c77eb289d 100644 --- a/src/wp-admin/options-media.php +++ b/src/wp-admin/options-media.php @@ -42,7 +42,7 @@ '

' . __( 'Support forums' ) . '

' ); -wp_enqueue_script( 'options' ); +wp_enqueue_script( 'wp-admin-unsaved-changes-confirmation' ); require_once ABSPATH . 'wp-admin/admin-header.php'; diff --git a/src/wp-admin/options-permalink.php b/src/wp-admin/options-permalink.php index b62677123d939..2e551276a12a5 100644 --- a/src/wp-admin/options-permalink.php +++ b/src/wp-admin/options-permalink.php @@ -69,7 +69,7 @@ get_current_screen()->set_help_sidebar( $help_sidebar_content ); unset( $help_sidebar_content ); -wp_enqueue_script( 'wp-admin-options' ); +wp_enqueue_script( 'wp-admin-unsaved-changes-confirmation' ); $home_path = get_home_path(); $iis7_permalinks = iis7_supports_permalinks(); diff --git a/src/wp-admin/options-reading.php b/src/wp-admin/options-reading.php index 44496331e2a7b..95f61733d7ec7 100644 --- a/src/wp-admin/options-reading.php +++ b/src/wp-admin/options-reading.php @@ -54,7 +54,7 @@ '

' . __( 'Support forums' ) . '

' ); -wp_enqueue_script( 'wp-admin-options' ); +wp_enqueue_script( 'wp-admin-unsaved-changes-confirmation' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-admin/options-writing.php b/src/wp-admin/options-writing.php index bb1d94352de2e..ac3441c664f6c 100644 --- a/src/wp-admin/options-writing.php +++ b/src/wp-admin/options-writing.php @@ -55,7 +55,7 @@ ); wp_enqueue_script( 'user-profile' ); -wp_enqueue_script( 'wp-admin-options' ); +wp_enqueue_script( 'wp-admin-unsaved-changes-confirmation' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?> diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index 224c24f6d7682..e8b09a98ad92b 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -1260,8 +1260,8 @@ function wp_default_scripts( $scripts ) { $scripts->add( 'language-chooser', "/wp-admin/js/language-chooser$suffix.js", array( 'jquery' ), false, 1 ); - $scripts->add( 'wp-admin-options', "/wp-admin/js/options$suffix.js", array( 'wp-i18n' ), false, 1 ); - $scripts->set_translations( 'wp-admin-options' ); + $scripts->add( 'wp-admin-unsaved-changes-confirmation', "/wp-admin/js/wp-options-unsaved-changes-confirmation$suffix.js", array( 'wp-i18n' ), false, 1 ); + $scripts->set_translations( 'wp-admin-unsaved-changes-confirmation' ); $scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );