Plugin Directory

Changeset 3289880


Ignore:
Timestamp:
05/08/2025 01:24:19 PM (8 months ago)
Author:
hamdisaidani
Message:

v1.1.1 – Fixed slug button SMTP lock bug and improved empty state UI in Analytics chart

Location:
fortress-login-pro/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • fortress-login-pro/trunk/admin/logs-page.php

    r3289752 r3289880  
    131131                        <option value="attempts">📊 Attempts Over Time</option>
    132132                        <option value="agents">🌐 Top User Agents</option>
    133                         <option value="heatmap">⏱️ Hourly Heatmap</option>
    134                         <!-- The IP Addresses option is dynamically added by logs.js -->
     133                        <option value="ips">🔢 IP Addresses</option>
     134                        <!-- The IP Addresses option was previously dynamically added by logs.js -->
    135135                    </select>
    136136                </div>
  • fortress-login-pro/trunk/assets/js/logs.js

    r3289752 r3289880  
    134134        } else {
    135135            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            }
    137160        }
    138161        return;
     
    10181041            emptyState.innerHTML = `
    10191042                <div class="fortress-empty-icon">
    1020                     <span class="dashicons dashicons-chart-bar"></span>
     1043                    <span class="dashicons dashicons-chart-area"></span>
    10211044                </div>
    1022                 <h3>No Data Yet</h3>
    1023                 <p>We 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>
    10251048            `;
    10261049           
  • fortress-login-pro/trunk/assets/js/settings.js

    r3286135 r3289880  
    5858      }
    5959     
    60       // Enable/disable save button
     60      // Enable/disable SMTP-related buttons only
     61      // Target only buttons within the SMTP settings form or container
    6162      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');
    6364      } 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');
    6566      }
     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');
    6670     
    6771      return isValid;
     
    144148      });
    145149    });
     150   
     151    // Ensure slug buttons stay enabled on page load
     152    $('#fortress-copy-slug, #fortress-generate-slug').prop('disabled', false).removeClass('disabled');
    146153  });
    147154})(jQuery);
  • fortress-login-pro/trunk/fortress-login-pro.php

    r3289752 r3289880  
    33 * Plugin Name: Fortress Login Pro – Secure, Hide & Rename Login URL
    44 * Description: Secure and rotate your WordPress login slug. Block brute force attacks, track attempts, and auto-rotate slugs via email.
    5  * Version: 1.1.0
     5 * Version: 1.1.1
    66 * Author: hamdisaidani
    77 * License: GPL2+
     
    1212
    1313// Define plugin constants
    14 define('FORTLOPR_VERSION', '1.0.0');
     14define('FORTLOPR_VERSION', '1.1.1');
    1515define('FORTLOPR_PLUGIN_DIR', plugin_dir_path(__FILE__));
    1616define('FORTLOPR_PLUGIN_URL', plugin_dir_url(__FILE__));
  • fortress-login-pro/trunk/readme.txt

    r3289752 r3289880  
    1 === Fortress Login Pro – Secure, Hide & Rotate Your WP Login URL ===
     1=== Fortress Login Pro – Secure, Hide & Rename Login URL ===
    22Contributors: hamdisaidani 
    3 Tags: login security, custom login url, brute force protection, wp-admin, security, wp-login 
     3Tags: login security, custom login url, brute force protection, wp-admin, security 
    44Requires at least: 5.0 
    55Tested up to: 6.8 
    66Requires PHP: 7.2 
    7 Stable tag: 1.1.0 
     7Stable tag: 1.1.1 
    88License: GPLv2 or later 
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html 
     
    104104== Changelog ==
    105105
     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
    106110= 1.1.0 =
    107111* Added dual-slug auto-rotation (fail-safe)
     
    110114* Improved SMTP configuration with test email verification
    111115* Added slug history metadata (source, usage, status)
    112 
    113116
    114117= 1.0.0 =
     
    119122== Upgrade Notice ==
    120123
    121 1.1.0 introduces auto-rotation safety + slug format control. 
    122 Run a test email before enabling rotation if not already configured.
     1241.1.1 includes a UI bug fix and a visual enhancement. Recommended for all users.
    123125
    124126---
  • fortress-login-pro/trunk/templates/access-denied-page.php

    r3289752 r3289880  
    55 *
    66 * @package FortressLoginPro
    7  * @version 1.1.0
     7 * @version 1.1.1
    88 */
    99
  • fortress-login-pro/trunk/templates/email-template.php

    r3289752 r3289880  
    55 *
    66 * @package FortressLoginPro
    7  * @version 1.1.0
     7 * @version 1.1.1
    88 */
    99
  • fortress-login-pro/trunk/templates/test-email-template.php

    r3289752 r3289880  
    55 *
    66 * @package FortressLoginPro
    7  * @version 1.1.0
     7 * @version 1.1.1
    88 */
    99
     
    2020    $timestamp = isset($data['timestamp']) ? $data['timestamp'] : current_time('mysql');
    2121    $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');
    2323   
    2424    $html = '<!DOCTYPE html>
Note: See TracChangeset for help on using the changeset viewer.