@@ -382,6 +382,14 @@ const generalSettingsModify = {
382382 // Populate form with the received data
383383 generalSettingsModify . populateForm ( response . data ) ;
384384 generalSettingsModify . dataLoaded = true ;
385+
386+ // Show warnings for default passwords after DOM update
387+ if ( response . data . passwordValidation ) {
388+ // Use setTimeout to ensure DOM is updated after populateForm
389+ setTimeout ( ( ) => {
390+ generalSettingsModify . showDefaultPasswordWarnings ( response . data . passwordValidation ) ;
391+ } , 100 ) ;
392+ }
385393 } else if ( response && response . messages ) {
386394 console . error ( 'API Error:' , response . messages ) ;
387395 // Show error message if available
@@ -500,6 +508,74 @@ const generalSettingsModify = {
500508 }
501509 } ,
502510
511+ /**
512+ * Show warnings for default passwords
513+ * @param {object } validation - Password validation results from API
514+ */
515+ showDefaultPasswordWarnings ( validation ) {
516+ // Remove any existing password-validate messages first
517+ $ ( '.password-validate' ) . remove ( ) ;
518+
519+ // Show warning for default Web Admin password
520+ if ( validation . isDefaultWebPassword ) {
521+ // Find the password fields group - try multiple selectors
522+ let $webPasswordFields = $ ( '#WebAdminPassword' ) . closest ( '.two.fields' ) ;
523+
524+ if ( $webPasswordFields . length === 0 ) {
525+ // Try alternative selector if the first one doesn't work
526+ $webPasswordFields = $ ( '#WebAdminPassword' ) . parent ( ) . parent ( ) ;
527+ }
528+
529+ if ( $webPasswordFields . length > 0 ) {
530+ // Create warning message
531+ const warningHtml = `
532+ <div class="ui negative icon message password-validate">
533+ <i class="exclamation triangle icon"></i>
534+ <div class="content">
535+ <div class="header">${ globalTranslate . gs_SetPassword || 'Security Warning' } </div>
536+ <p>${ globalTranslate . gs_SetPasswordInfo || 'You are using the default password. Please change it for security.' } </p>
537+ </div>
538+ </div>
539+ ` ;
540+
541+ // Insert warning before the password fields
542+ $webPasswordFields . before ( warningHtml ) ;
543+ }
544+ }
545+
546+ // Show warning for default SSH password
547+ if ( validation . isDefaultSSHPassword ) {
548+ // Check if SSH password login is enabled
549+ const sshPasswordDisabled = $ ( '#SSHDisablePasswordLogins' ) . checkbox ( 'is checked' ) ;
550+
551+ if ( ! sshPasswordDisabled ) {
552+ // Find the SSH password fields group
553+ let $sshPasswordFields = $ ( '#SSHPassword' ) . closest ( '.two.fields' ) ;
554+
555+ if ( $sshPasswordFields . length === 0 ) {
556+ // Try alternative selector
557+ $sshPasswordFields = $ ( '#SSHPassword' ) . parent ( ) . parent ( ) ;
558+ }
559+
560+ if ( $sshPasswordFields . length > 0 ) {
561+ // Create warning message
562+ const warningHtml = `
563+ <div class="ui negative icon message password-validate">
564+ <i class="exclamation triangle icon"></i>
565+ <div class="content">
566+ <div class="header">${ globalTranslate . gs_SetPassword || 'Security Warning' } </div>
567+ <p>${ globalTranslate . gs_SetPasswordInfo || 'You are using the default password. Please change it for security.' } </p>
568+ </div>
569+ </div>
570+ ` ;
571+
572+ // Insert warning before the SSH password fields
573+ $sshPasswordFields . before ( warningHtml ) ;
574+ }
575+ }
576+ }
577+ } ,
578+
503579 /**
504580 * Load sound file values with HTML representation
505581 * @param {object } settings - Settings data from API
@@ -1137,7 +1213,11 @@ const generalSettingsModify = {
11371213 generalSettingsModify . $formObj . form ( 'set value' , 'WebAdminPasswordRepeat' , generalSettingsModify . hiddenPassword ) ;
11381214 generalSettingsModify . $formObj . form ( 'set value' , 'SSHPassword' , generalSettingsModify . hiddenPassword ) ;
11391215 generalSettingsModify . $formObj . form ( 'set value' , 'SSHPasswordRepeat' , generalSettingsModify . hiddenPassword ) ;
1140- $ ( '.password-validate' ) . remove ( ) ;
1216+
1217+ // Remove password validation warnings after successful save
1218+ $ ( '.password-validate' ) . fadeOut ( 300 , function ( ) {
1219+ $ ( this ) . remove ( ) ;
1220+ } ) ;
11411221 }
11421222
11431223 // Check delete all conditions if needed
0 commit comments