Changeset 3289880
- Timestamp:
- 05/08/2025 01:24:19 PM (8 months ago)
- Location:
- fortress-login-pro/trunk
- Files:
-
- 8 edited
-
admin/logs-page.php (modified) (1 diff)
-
assets/js/logs.js (modified) (2 diffs)
-
assets/js/settings.js (modified) (2 diffs)
-
fortress-login-pro.php (modified) (2 diffs)
-
readme.txt (modified) (4 diffs)
-
templates/access-denied-page.php (modified) (1 diff)
-
templates/email-template.php (modified) (1 diff)
-
templates/test-email-template.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
fortress-login-pro/trunk/admin/logs-page.php
r3289752 r3289880 131 131 <option value="attempts">📊 Attempts Over Time</option> 132 132 <option value="agents">🌐 Top User Agents</option> 133 <option value=" heatmap">⏱️ Hourly Heatmap</option>134 <!-- The IP Addresses option isdynamically added by logs.js -->133 <option value="ips">🔢 IP Addresses</option> 134 <!-- The IP Addresses option was previously dynamically added by logs.js --> 135 135 </select> 136 136 </div> -
fortress-login-pro/trunk/assets/js/logs.js
r3289752 r3289880 134 134 } else { 135 135 console.error("Log data remained unavailable after", MAX_RETRIES, "attempts"); 136 chartCanvas.insertAdjacentHTML('afterend', '<p class="fortress-no-data">No log data available to visualize.</p>'); 136 137 // Replace simple text with modern empty state 138 if (chartCanvas) { 139 // Hide the canvas 140 chartCanvas.style.display = 'none'; 141 142 // Create empty state container if it doesn't exist 143 if (!document.getElementById('fortress-chart-empty-state')) { 144 const emptyState = document.createElement('div'); 145 emptyState.id = 'fortress-chart-empty-state'; 146 emptyState.className = 'fortress-empty-state'; 147 emptyState.innerHTML = ` 148 <div class="fortress-empty-icon"> 149 <span class="dashicons dashicons-chart-area"></span> 150 </div> 151 <h3>No Activity Recorded Yet</h3> 152 <p>When login attempts are detected, they'll appear here automatically.</p> 153 <p class="fortress-empty-suggestion">Analytics will update in real-time as login activity is logged.</p> 154 `; 155 156 // Add empty state after the canvas 157 chartCanvas.insertAdjacentElement('afterend', emptyState); 158 } 159 } 137 160 } 138 161 return; … … 1018 1041 emptyState.innerHTML = ` 1019 1042 <div class="fortress-empty-icon"> 1020 <span class="dashicons dashicons-chart- bar"></span>1043 <span class="dashicons dashicons-chart-area"></span> 1021 1044 </div> 1022 <h3>No DataYet</h3>1023 <p>W e couldn't find any log data for your selected filters.</p>1024 <p class="fortress-empty-suggestion"> Try changing the date range or visualization type above.</p>1045 <h3>No Activity Recorded Yet</h3> 1046 <p>When login attempts are detected, they'll appear here automatically.</p> 1047 <p class="fortress-empty-suggestion">Analytics will update in real-time as login activity is logged.</p> 1025 1048 `; 1026 1049 -
fortress-login-pro/trunk/assets/js/settings.js
r3286135 r3289880 58 58 } 59 59 60 // Enable/disable save button 60 // Enable/disable SMTP-related buttons only 61 // Target only buttons within the SMTP settings form or container 61 62 if (isValid) { 62 $('. fortress-btn-primary').prop('disabled', false).removeClass('disabled');63 $('.smtp-settings-form .fortress-btn-primary, #smtp-settings-container .fortress-btn-primary').prop('disabled', false).removeClass('disabled'); 63 64 } else { 64 $('. fortress-btn-primary').prop('disabled', true).addClass('disabled');65 $('.smtp-settings-form .fortress-btn-primary, #smtp-settings-container .fortress-btn-primary').prop('disabled', true).addClass('disabled'); 65 66 } 67 68 // IMPORTANT: Ensure slug management buttons are never disabled by SMTP validation 69 $('#fortress-copy-slug, #fortress-generate-slug').prop('disabled', false).removeClass('disabled'); 66 70 67 71 return isValid; … … 144 148 }); 145 149 }); 150 151 // Ensure slug buttons stay enabled on page load 152 $('#fortress-copy-slug, #fortress-generate-slug').prop('disabled', false).removeClass('disabled'); 146 153 }); 147 154 })(jQuery); -
fortress-login-pro/trunk/fortress-login-pro.php
r3289752 r3289880 3 3 * Plugin Name: Fortress Login Pro – Secure, Hide & Rename Login URL 4 4 * Description: Secure and rotate your WordPress login slug. Block brute force attacks, track attempts, and auto-rotate slugs via email. 5 * Version: 1.1. 05 * Version: 1.1.1 6 6 * Author: hamdisaidani 7 7 * License: GPL2+ … … 12 12 13 13 // Define plugin constants 14 define('FORTLOPR_VERSION', '1. 0.0');14 define('FORTLOPR_VERSION', '1.1.1'); 15 15 define('FORTLOPR_PLUGIN_DIR', plugin_dir_path(__FILE__)); 16 16 define('FORTLOPR_PLUGIN_URL', plugin_dir_url(__FILE__)); -
fortress-login-pro/trunk/readme.txt
r3289752 r3289880 1 === Fortress Login Pro – Secure, Hide & R otate Your WPLogin URL ===1 === Fortress Login Pro – Secure, Hide & Rename Login URL === 2 2 Contributors: hamdisaidani 3 Tags: login security, custom login url, brute force protection, wp-admin, security , wp-login3 Tags: login security, custom login url, brute force protection, wp-admin, security 4 4 Requires at least: 5.0 5 5 Tested up to: 6.8 6 6 Requires PHP: 7.2 7 Stable tag: 1.1. 07 Stable tag: 1.1.1 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 104 104 == Changelog == 105 105 106 = 1.1.1 = 107 * Fixed bug where Copy and Generate buttons were incorrectly disabled by SMTP status 108 * Improved empty-state UI for Analytics Overview chart 109 106 110 = 1.1.0 = 107 111 * Added dual-slug auto-rotation (fail-safe) … … 110 114 * Improved SMTP configuration with test email verification 111 115 * Added slug history metadata (source, usage, status) 112 113 116 114 117 = 1.0.0 = … … 119 122 == Upgrade Notice == 120 123 121 1.1.0 introduces auto-rotation safety + slug format control. 122 Run a test email before enabling rotation if not already configured. 124 1.1.1 includes a UI bug fix and a visual enhancement. Recommended for all users. 123 125 124 126 --- -
fortress-login-pro/trunk/templates/access-denied-page.php
r3289752 r3289880 5 5 * 6 6 * @package FortressLoginPro 7 * @version 1.1. 07 * @version 1.1.1 8 8 */ 9 9 -
fortress-login-pro/trunk/templates/email-template.php
r3289752 r3289880 5 5 * 6 6 * @package FortressLoginPro 7 * @version 1.1. 07 * @version 1.1.1 8 8 */ 9 9 -
fortress-login-pro/trunk/templates/test-email-template.php
r3289752 r3289880 5 5 * 6 6 * @package FortressLoginPro 7 * @version 1.1. 07 * @version 1.1.1 8 8 */ 9 9 … … 20 20 $timestamp = isset($data['timestamp']) ? $data['timestamp'] : current_time('mysql'); 21 21 $site_name = isset($data['site_name']) ? $data['site_name'] : get_bloginfo('name'); 22 $admin_url = admin_url('admin.php?page= page=fortress-login-pro');22 $admin_url = admin_url('admin.php?page=fortress-login-pro'); 23 23 24 24 $html = '<!DOCTYPE html>
Note: See TracChangeset
for help on using the changeset viewer.