Plugin Directory

Changeset 3462221


Ignore:
Timestamp:
02/16/2026 06:18:05 AM (7 weeks ago)
Author:
winrid
Message:

3.17.0 admin styling update, updated description, tested w/ latest wordpress

Location:
fastcomments
Files:
40 added
10 edited

Legend:

Unmodified
Added
Removed
  • fastcomments/trunk/README.txt

    r3461413 r3462221  
    11=== FastComments ===
    22Contributors: winrid
    3 Tags: live comments, comments, comment spam, comment system, fast comments, live commenting, live-commenting, comment-system
     3Tags: comments, commenting system, live comments, disqus, live commenting, prevent spam
    44Requires at least: 4.6
    5 Tested up to: 6.9.1
    6 Stable tag: 3.16.2
     5Tested up to: 6.9.2
     6Stable tag: 3.17.0
    77Requires PHP: 5.2.5
    88License: GPLv2 or later
     
    1515== Description ==
    1616
    17 At a glance, FastComments gives you:
    18 
    19 - **Live commenting and moderating.**
    20 - Ad-free experience, no data harvesting.
    21 - Fight Spam - We use automated spam detection. Also, unverified comments can be configured to be automatically removed.
    22 - Ability to moderate content, including with multiple moderators.
    23 - Easily **Migrate** from Disqus, Hyvor, and more while keeping your comments.
    24 - Configurable notifications for you and your users.
    25 - Ability to import from other providers. Automatic image/avatar migration.
    26 - A comment UI that **fetches comments and renders in milliseconds** to prevent disengagement.
    27 - Very Fast Time-To-Engage: **No complex sign up process for your users**.
    28 - Secure Password-less Account Management (email-based login links).
    29 - **Threads & Voting** (replies to replies) along with reply notifications for engagement.
    30 - An unobtrusive UI - no modals or behavior that distracts from your content.
    31 - Users get notified when someone replies, and you get notified of new comments to moderate. We also aggregate emails, so if you receive a hundred notifications in an hour we'll just send one summary email.
    32 - **Image support** Commenters can attach images to their posts.
    33 - **Localization** The client-side widget is fully localized in English, French, and Spanish using browser locale detection.
    34 - **Full-Text Search** through all of your comments.
    35 - **SSO** Give your users a seamless commenting experience with our secure and easy **single-sign-on** system.
    36 - Anonymous commenting (unverified comments auto removed after three days)
    37 - Ability to export your data at any time.
    38 - **JavaScript Not Required** to view or leave comments.
    39 
    40 Speed up your WordPress installation with FastComments, by letting us render your comment threads instead of your WordPress servers!
    41 
    42 == Installation ==
    43 
    44 Installing FastComments is easy. There are two main steps - installing the WordPress plugin and then connecting it with FastComments.
    45 
    46 1. Go to "Plugins" > "Add Plugin"
    47 2. Search for "FastComments"
    48 3. Click "Install Now"
    49 4. Activate the Plugin
    50 5. Click FastComments in the left admin panel.
    51 6. Follow the steps to set up and connect your WordPress installation to our servers. Don't worry, it's just a couple clicks.
    52 
    53 You can expect the sync to take several minutes if you have tens of thousands of comments or more.
    54 
    55 FastComments has performance as a top priority and is designed to ensure it does not put significant load on your site during setup. We use WordPress's default indexes to perform the sync, and even for large
    56 sites the load should be very little and is designed to be spread out as much as possible.
    57 
    58 == Frequently Asked Questions ==
    59 
    60 = What does it cost to use FastComments? =
    61 
    62 FastComments has different tiers available. Whether you're an individual creator or a larger businesses, there's a tier for you.
    63 See our pricing page here: https://fastcomments.com/traffic-pricing
    64 
    65 = What is FastComments Faster Than? =
    66 
    67 FastComments aims to be the fastest commenting system for you and your users. User experience and performance are very high
    68 on the list of priorities for us.
    69 
    70 = Will I lose any comments when I switch to FastComments? =
    71 
    72 Fear not, your comments will not disappear! Your site will experience zero loss of data even during the transition as we won't enable FastComments until the sync is done.
    73 
    74 = Can I switch back to default WordPress comments? =
    75 
    76 By default, FastComments keeps your WordPress installation in sync with our servers. We send very small updates, at most once a minute if needed, for any new comments.
    77 
    78 Simply cancel your account and deactivate the plugin to switch back, but we don't think you'll want to!
    79 
    80 = Can I customize how FastComments looks? =
    81 
    82 You sure can! After installing click the Customize button in the FastComments admin area to configure how your comment threads should look and function, as well as adding your own CSS if desired.
     17**FastComments is the fast, privacy-first commenting system trusted by 4,100+ organizations serving over 541 million page loads per year.** Drop-in replacement for WordPress default comments, Disqus, Jetpack Comments, and wpDiscuz -- with zero ads, zero data harvesting, and load times measured in milliseconds.
     18
     19= Why Site Owners Switch to FastComments =
     20
     21* **No Ads, Ever** -- Unlike Disqus, FastComments never injects sponsored content or ads into your comment threads.
     22* **No Data Harvesting** -- Your visitors' data is never sold to third parties. Full GDPR compliance with optional EU data residency.
     23* **Blazing Fast** -- Comments load in milliseconds. Users report significant reductions in page weight and fewer dependencies vs. other comment systems.
     24* **Comments Stay In Sync** -- FastComments keeps your WordPress comment database in sync. Cancel anytime and your comments stay intact.
     25* **Migrate In Minutes** -- One-click import from Disqus, Hyvor, WordPress native comments, and more. Avatars and images migrate automatically.
     26
     27= Live, Real-Time Commenting =
     28
     29* Comments appear instantly for all viewers -- no page refresh needed
     30* Live moderation: approve, delete, and edit comments in real time
     31* Real-time reply notifications keep discussions active
     32* Streaming Chat mode for live events and AMAs
     33
     34= Powerful Moderation & Spam Prevention =
     35
     36* Automated spam detection blocks bot submissions before they appear
     37* Unverified/anonymous comments auto-removed after configurable period
     38* Full moderation dashboard with search, filter, and bulk actions
     39* Comment flagging and user blocking
     40
     41= Built for Engagement =
     42
     43* Threaded reply-to-reply conversations with unlimited nesting depth
     44* Upvoting and downvoting with smart duplicate prevention
     45* Image and GIF attachments in comments
     46* Full-text comment search for readers
     47* @mentions and reply notifications
     48* Commenter ranking system
     49
     50= Developer & Site Admin Friendly =
     51
     52* Single Sign-On (SSO) for seamless authentication with your existing users
     53* Works without JavaScript -- accessible commenting for all visitors
     54* Full REST API and webhook support
     55* Custom CSS and JavaScript injection for complete design control
     56* LearnDash LMS compatibility
     57* Block-based theme support (FSE)
     58* Password-protected post support
     59
     60= Localization =
     61
     62Fully localized with automatic browser locale detection. Currently available in English, French, and Spanish. Community translations welcome.
     63
     64= Trusted By Many =
     65
     66* 4,100+ organizations
     67* 1,775,632+ registered users
     68* 541 million+ page loads served in the past year
     69* 5-star rating on WordPress.org
     70
     71= Pricing =
     72
     73FastComments offers flexible, traffic-based pricing starting well under $5/month for most sites. No per-comment charges. No surprise fees. See full pricing at [fastcomments.com/traffic-pricing](https://fastcomments.com/traffic-pricing).
     74
     75= Support =
     76
     77Responsive, hands-on support from the development team. Migration assistance included. Most issues resolved within hours.
    8378
    8479== Screenshots ==
     
    8883
    8984== Changelog ==
     85
     86= 3.17.0 =
     87* Admin theme update.
     88* Admin notice prompting setup completion now appears on all WP admin pages until setup is done.
    9089
    9190= 3.16.2 =
  • fastcomments/trunk/admin/fastcomments-admin-advanced-settings-view.php

    r3036609 r3462221  
    55        <span class="text">FastComments.com</span>
    66    </a>
    7     <h3>FastComments Advanced Settings</h3>
    8     <?php
    9     $updated = false;
    10     if (isset($_POST['log-level']) && $_POST['log-level'] !== get_option('fastcomments_log_level')) {
    11         update_option('fastcomments_log_level', $_POST['log-level']);
    12         $updated = true;
    13     }
    14     if (isset($_POST['widget']) && $_POST['widget'] !== get_option('fastcomments_widget')) {
    15         update_option('fastcomments_widget', $_POST['widget']);
    16         $updated = true;
    17     }
    18     if ($updated) {
     7    <a class="fc-back" href="<?php echo admin_url('admin.php?page=fastcomments'); ?>">&larr; Dashboard</a>
     8    <div class="fc-card">
     9        <h3>Advanced Settings</h3>
     10        <?php
     11        $updated = false;
     12        if (isset($_POST['log-level']) && $_POST['log-level'] !== get_option('fastcomments_log_level')) {
     13            update_option('fastcomments_log_level', $_POST['log-level']);
     14            $updated = true;
     15        }
     16        if (isset($_POST['widget']) && $_POST['widget'] !== get_option('fastcomments_widget')) {
     17            update_option('fastcomments_widget', $_POST['widget']);
     18            $updated = true;
     19        }
     20        if ($updated) {
     21            ?>
     22            <div class="notice notice-success is-dismissible" id="settings-updated-success">
     23                <p><strong>Changes Saved! <a
     24                                href="<?php echo get_admin_url(null, "/admin.php?page=fastcomments&sub_page=advanced-settings", null) ?>">Refresh</a>.</strong>
     25                </p>
     26                <button type="button" class="notice-dismiss" id="settings-updated-success-dismiss">
     27                    <span class="screen-reader-text">Dismiss this notice.</span>
     28                </button>
     29            </div>
     30            <?php
     31        }
    1932        ?>
    20         <div class="notice notice-success is-dismissible" id="settings-updated-success">
    21             <p><strong>Changes Saved! <a
    22                             href="<?php echo get_admin_url(null, "/admin.php?page=fastcomments&sub_page=advanced-settings", null) ?>">Refresh</a>.</strong>
     33        <form method="post">
     34            <table class="form-table" role="presentation">
     35                <tbody>
     36                <tr>
     37                    <th scope="row">
     38                        <label for="widget">Widget</label>
     39                    </th>
     40                    <td>
     41                        <select name="widget" id="widget">
     42                            <option value="0" <?php echo !get_option('fastcomments_widget') || get_option('fastcomments_widget') === "0" ? 'selected' : '' ?> >
     43                                Live Commenting
     44                            </option>
     45                            <option value="1" <?php echo get_option('fastcomments_widget') === "1" ? 'selected' : '' ?> >
     46                                Streaming Chat
     47                            </option>
     48                        </select>
     49                        <p class="description">
     50                            Changes the type of commenting widget used.
     51                        </p>
     52                    </td>
     53                </tr>
     54                <tr>
     55                    <th scope="row">
     56                        <label for="log-level">Log Level</label>
     57                    </th>
     58                    <td>
     59                        <select name="log-level" id="log-level">
     60                            <option value="debug" <?php echo !get_option('fastcomments_log_level') || get_option('fastcomments_log_level') === 'debug' ? 'selected' : '' ?> >
     61                                Debug (Verbose)
     62                            </option>
     63                            <option value="info" <?php echo get_option('fastcomments_log_level') === 'info' ? 'selected' : '' ?> >
     64                                Info
     65                            </option>
     66                            <option value="warn" <?php echo get_option('fastcomments_log_level') === 'warn' ? 'selected' : '' ?> >
     67                                Warn
     68                            </option>
     69                            <option value="error" <?php echo get_option('fastcomments_log_level') === 'error' ? 'selected' : '' ?> >
     70                                Error
     71                            </option>
     72                            <option value="disabled" <?php echo get_option('fastcomments_log_level') === 'disabled' ? 'selected' : '' ?> >
     73                                Disabled
     74                            </option>
     75                        </select>
     76                        <p class="description">
     77                            Changing the log level might be desired to lower the amount of logs FastComments sends to the
     78                            PHP error log.
     79                        </p>
     80                    </td>
     81                </tr>
     82                </tbody>
     83            </table>
     84            <p class="submit">
     85                <button type="submit" class="button button-primary">Save Changes</button>
    2386            </p>
    24             <button type="button" class="notice-dismiss" id="settings-updated-success-dismiss">
    25                 <span class="screen-reader-text">Dismiss this notice.</span>
    26             </button>
    27         </div>
    28         <?php
    29     }
    30     ?>
    31     <form method="post">
    32         <table class="form-table" role="presentation">
    33             <tbody>
    34             <tr>
    35                 <th scope="row">
    36                     <label for="widget">Widget</label>
    37                 </th>
    38                 <td>
    39                     <select name="widget" id="widget">
    40                         <option value="0" <?php echo !get_option('fastcomments_widget') || get_option('fastcomments_widget') === "0" ? 'selected' : '' ?> >
    41                             Live Commenting
    42                         </option>
    43                         <option value="1" <?php echo get_option('fastcomments_widget') === "1" ? 'selected' : '' ?> >
    44                             Streaming Chat
    45                         </option>
    46                     </select>
    47                     <p class="description">
    48                         Changes the type of commenting widget used.
    49                     </p>
    50                 </td>
    51             </tr>
    52             <tr>
    53                 <th scope="row">
    54                     <label for="log-level">Log Level</label>
    55                 </th>
    56                 <td>
    57                     <select name="log-level" id="log-level">
    58                         <option value="debug" <?php echo !get_option('fastcomments_log_level') || get_option('fastcomments_log_level') === 'debug' ? 'selected' : '' ?> >
    59                             Debug (Verbose)
    60                         </option>
    61                         <option value="info" <?php echo get_option('fastcomments_log_level') === 'info' ? 'selected' : '' ?> >
    62                             Info
    63                         </option>
    64                         <option value="warn" <?php echo get_option('fastcomments_log_level') === 'warn' ? 'selected' : '' ?> >
    65                             Warn
    66                         </option>
    67                         <option value="error" <?php echo get_option('fastcomments_log_level') === 'error' ? 'selected' : '' ?> >
    68                             Error
    69                         </option>
    70                         <option value="disabled" <?php echo get_option('fastcomments_log_level') === 'disabled' ? 'selected' : '' ?> >
    71                             Disabled
    72                         </option>
    73                     </select>
    74                     <p class="description">
    75                         Changing the log level might be desired to lower the amount of logs FastComments sends to the
    76                         PHP error log.
    77                     </p>
    78                 </td>
    79             </tr>
    80             </tbody>
    81         </table>
    82         <p class="submit">
    83             <button type="submit" class="button button-primary">Save Changes</button>
    84         </p>
    85     </form>
     87        </form>
     88    </div>
    8689</div>
    8790<?php
     
    8992wp_enqueue_script('fastcomments_admin_advanced_settings_view', plugin_dir_url(__FILE__) . 'fastcomments-admin-advanced-settings-view.js', array(), $FASTCOMMENTS_VERSION);
    9093?>
    91 
  • fastcomments/trunk/admin/fastcomments-admin-manual-sync-view.php

    r2744374 r3462221  
    1111        <span class="text">FastComments.com</span>
    1212    </a>
    13     <h3>Manually Run Comment Sync</h3>
    14     <noscript>
    15         <h3>JavaScript is required for this operation.</h3>
    16     </noscript>
     13    <a class="fc-back" href="<?php echo admin_url('admin.php?page=fastcomments'); ?>">&larr; Dashboard</a>
     14    <div class="fc-card">
     15        <h3>Manually Run Comment Sync</h3>
     16        <noscript>
     17            <h3>JavaScript is required for this operation.</h3>
     18        </noscript>
    1719
    18     <p>If you didn't upload your comments during the initial setup, or would like to do it anyway, you can do it now here.</p>
    19     <button class="button-primary" id="wp-sync-to-fc">Run Upload WordPress Comments → <b>to</b> → FastComments.com.</button>
     20        <p>If you didn't upload your comments during the initial setup, or would like to do it anyway, you can do it now here.</p>
     21        <button class="button-primary" id="wp-sync-to-fc">Upload WordPress Comments &rarr; FastComments.com</button>
    2022
    21     <p>FastComments automatically keeps your comments synced to your WordPress installation. However, the option exists to re-download all comments from FastComments to WordPress.</p>
    22     <button class="button-primary" id="fc-sync-to-wp">Run Download FastComments.com → <b>to</b> → WordPress.</button>
     23        <p>FastComments automatically keeps your comments synced to your WordPress installation. However, the option exists to re-download all comments from FastComments to WordPress.</p>
     24        <button class="button-primary" id="fc-sync-to-wp">Download FastComments.com &rarr; WordPress</button>
     25    </div>
    2326
    2427    <div id="dialog-sync-to-fc" class="hidden">
  • fastcomments/trunk/admin/fastcomments-admin-setup-view.php

    r2746763 r3462221  
    11<div id="fastcomments-admin">
    2     <h1>Welcome to FastComments.</h1>
    3     <h3>Let's get you setup.</h3>
    4     <p>We'll go through a couple steps before FastComments is activated.</p>
     2    <div class="fc-setup">
     3        <h1>Welcome to FastComments</h1>
     4        <h3>Let's get you set up.</h3>
     5        <p>We'll walk through a couple of steps to activate FastComments on your site.</p>
    56
    6     <?php if (get_option('fastcomments_site') === 'https://eu.fastcomments.com') { ?>
    7         <h2>1. Where should we put your data?</h2>
    8         <p>✔️ We will keep your data in the EU.</p>
     7        <div class="fc-step">
     8            <?php if (get_option('fastcomments_site') === 'https://eu.fastcomments.com') { ?>
     9                <h2><span class="fc-step-number">1</span> Where should we store your data?</h2>
     10                <p>Your data will be stored in the EU.</p>
     11                <div class="fc-actions">
     12                    <a class="button-primary fc-btn-secondary button-not-in-eu"
     13                       href="?page=fastcomments&isEU=false">I'm not in the EU</a>
     14                </div>
     15            <?php } else { ?>
     16                <h2><span class="fc-step-number">1</span> Where should we store your data?</h2>
     17                <p>By default, your data is replicated globally across all data centers. Want to keep your data exclusively in the EU?</p>
     18                <div class="fc-actions">
     19                    <a class="button-primary button-in-eu"
     20                       href="?page=fastcomments&isEU=true">I'm in the EU</a>
     21                </div>
     22                <p class="fc-hint">If you're not in the EU, continue to Step 2.</p>
     23            <?php } ?>
     24        </div>
    925
    10         <p>
    11             <a class="button-primary button-not-in-eu"
    12                href="?page=fastcomments&isEU=false">I'm not in the EU.</a>
    13         </p>
    14     <?php } else { ?>
    15         <h2>1. Where should we put your data?</h2>
    16         <p>Continue without changing anything and we will store your data replicated globally in all data centers.</p>
     26        <div class="fc-step">
     27            <h2><span class="fc-step-number">2</span> Connect and Sync</h2>
    1728
    18         Do you want to only keep your users' data in the EU?
    19         <p>
    20             <a class="button-primary button-in-eu"
    21                href="?page=fastcomments&isEU=true">I'm in the EU.</a>
    22         </p>
     29            <?php if (!get_option('fastcomments_tenant_id')) { ?>
     30                <ul class="fc-checklist">
     31                    <li><span class="fc-check"></span> Connect WordPress with FastComments</li>
     32                    <li><span class="fc-check"></span> Sync Your Comments</li>
     33                </ul>
     34                <p><strong>Do you have a FastComments account?</strong></p>
     35                <div class="fc-actions">
     36                    <a class="button-primary button-has-account"
     37                       href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/integrations/v1/confirm?token=<?php echo get_option("fastcomments_token") ?>&hasAccount=true"
     38                       target="_blank">Yes, I have an account</a>
     39                    <a class="button-primary fc-btn-secondary button-no-account"
     40                       href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/integrations/v1/confirm?token=<?php echo get_option("fastcomments_token") ?>&hasAccount=false"
     41                       target="_blank">No, create one</a>
     42                </div>
     43            <?php } else if (!get_option('fastcomments_setup')) { ?>
     44                <ul class="fc-checklist">
     45                    <li class="done"><span class="fc-check">&#10003;</span> Connect WordPress with FastComments</li>
     46                    <li><span class="fc-check"></span> Sync Your Comments</li>
     47                </ul>
     48                <div class="fc-actions">
     49                    <a class="button-primary"
     50                       href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/integrations/v1/confirm?token=<?php echo get_option("fastcomments_token") ?>&hasAccount=true"
     51                       target="_blank">Re-Run Setup</a>
     52                </div>
     53            <?php } else { ?>
     54                <ul class="fc-checklist">
     55                    <li class="done"><span class="fc-check">&#10003;</span> Connect WordPress with FastComments</li>
     56                    <li class="done"><span class="fc-check">&#10003;</span> Sync Your Comments</li>
     57                </ul>
     58                <div class="fc-actions">
     59                    <a class="button-primary"
     60                       href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/integrations/v1/confirm?token=<?php echo get_option("fastcomments_token") ?>&hasAccount=true"
     61                       target="_blank">Re-Run Setup</a>
     62                </div>
     63            <?php } ?>
     64        </div>
    2365
    24         If you're not in the EU, you can continue to Step 2.
    25     <?php } ?>
    26 
    27     <?php if (!get_option('fastcomments_tenant_id')) { ?>
    28         <h2>2. Connect and Sync</h2>
    29         <ol>
    30             <li><input type="checkbox" readonly="readonly" disabled>️ Connect WordPress with FastComments</li>
    31             <li><input type="checkbox" readonly="readonly" disabled> Sync Your Comments</li>
    32         </ol>
    33         <h2>Do you have a FastComments Account?</h2>
    34         <a class="button-primary button-has-account"
    35            href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/integrations/v1/confirm?token=<?php echo get_option("fastcomments_token") ?>&hasAccount=true"
    36            target="_blank">Yes</a>
    37         <a class="button-primary button-no-account"
    38            href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/integrations/v1/confirm?token=<?php echo get_option("fastcomments_token") ?>&hasAccount=false"
    39            target="_blank">No</a>
    40     <?php } else if (!get_option('fastcomments_setup')) { ?>
    41         <ol>
    42             <li>✔️️ Connect WordPress with FastComments</li>
    43             <li><input type="checkbox" readonly="readonly" disabled> Sync Your Comments</li>
    44         </ol>
    45 
    46         <a class="button-primary"
    47            href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/integrations/v1/confirm?token=<?php echo get_option("fastcomments_token") ?>&hasAccount=true"
    48            target="_blank">Re-Run Setup</a>
    49     <?php } else { ?>
    50         <!-- This is only here for testing, it should never actually happen due to conditional statements in fastcomments-admin.php before including this file. -->
    51         <ol>
    52             <li>✔️ Connect WordPress with FastComments</li>
    53             <li>✔️ Sync Your Comments</li>
    54         </ol>
    55 
    56         <a class="button-primary"
    57            href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/integrations/v1/confirm?token=<?php echo get_option("fastcomments_token") ?>&hasAccount=true"
    58            target="_blank">Re-Run Setup</a>
    59     <?php } ?>
    60 
    61     <noscript>
    62         <h3>Please enable JavaScript and reload the page to complete setup.</h3>
    63         <p>JavaScript is not required to use FastComments to comment, but it is required for the initial setup.</p>
    64     </noscript>
     66        <noscript>
     67            <div class="fc-step">
     68                <h3>Please enable JavaScript and reload the page to complete setup.</h3>
     69                <p>JavaScript is not required to use FastComments to comment, but it is required for the initial setup.</p>
     70            </div>
     71        </noscript>
     72    </div>
    6573
    6674    <?php
  • fastcomments/trunk/admin/fastcomments-admin-sso-view.css

    r2576755 r3462221  
    1 #fastcomments-admin .sso-enabled-badge {
    2     padding-right: 5px;
    3 }
     1/* SSO styles are now in fastcomments-admin.css */
  • fastcomments/trunk/admin/fastcomments-admin-sso-view.php

    r3142080 r3462221  
    44wp_enqueue_script('jquery-ui-dialog');
    55wp_enqueue_style('wp-jquery-ui-dialog');
    6 wp_enqueue_style("fastcomments-admin-sso-view", plugin_dir_url(__FILE__) . 'fastcomments-admin-sso-view.css');
    76?>
    87
     
    1312        <span class="text">FastComments.com</span>
    1413    </a>
    15     <h3>FastComments Single-Sign-On</h3>
     14    <a class="fc-back" href="<?php echo admin_url('admin.php?page=fastcomments'); ?>">&larr; Dashboard</a>
     15    <div class="fc-card">
     16        <h3>Single Sign-On (SSO)</h3>
    1617
    17     <?php if (!get_option('users_can_register')) { ?>
    18         <p>
    19             You're almost there! Note! You don't have the option "users can register" enabled. Assuming you're not
    20             handling memberships via another plugin, you
    21             might want to turn that on <a href="<?php echo admin_url('options-general.php') ?>">here</a> by enabling
    22             "Anyone can register".
    23         </p>
    24     <?php } ?>
    25     <?php if (get_option('fastcomments_sso_enabled')) { ?>
    26         <div class="notice notice-success is-dismissible hidden" id="sso-disabled-success">
    27             <p><strong>SSO Disabled! <a
    28                             href="<?php echo get_admin_url(null, "admin.php?page=fastcomments&sub_page=sso", null) ?>">Refresh</a>.</strong>
     18        <?php if (!get_option('users_can_register')) { ?>
     19            <p>
     20                You're almost there! Note: You don't have the option "users can register" enabled. Assuming you're not
     21                handling memberships via another plugin, you
     22                might want to turn that on <a href="<?php echo admin_url('options-general.php') ?>">here</a> by enabling
     23                "Anyone can register".
    2924            </p>
    30             <button type="button" class="notice-dismiss">
    31                 <span class="screen-reader-text">Dismiss this notice.</span>
    32             </button>
    33         </div>
    34         <div class="notice notice-error is-dismissible hidden" id="sso-disabled-failure">
    35             <p><strong>SSO Failed to be disabled! Please refresh the page and try again. If it continues to fail,
    36                     contact FastComments support.</strong></p>
    37             <button type="button" class="notice-dismiss">
    38                 <span class="screen-reader-text">Dismiss this notice.</span>
    39             </button>
    40         </div>
    41         <p>SSO, or Single-Sign-On, allows you and your users to use accounts on your WordPress site to comment.</p>
    42         <span class="sso-enabled-badge">✔️ SSO Enabled</span>
    43         <button class="button-primary" id="fc-sso-disable">Disable SSO</button>
     25        <?php } ?>
     26        <?php if (get_option('fastcomments_sso_enabled')) { ?>
     27            <div class="notice notice-success is-dismissible hidden" id="sso-disabled-success">
     28                <p><strong>SSO Disabled! <a
     29                                href="<?php echo get_admin_url(null, "admin.php?page=fastcomments&sub_page=sso", null) ?>">Refresh</a>.</strong>
     30                </p>
     31                <button type="button" class="notice-dismiss">
     32                    <span class="screen-reader-text">Dismiss this notice.</span>
     33                </button>
     34            </div>
     35            <div class="notice notice-error is-dismissible hidden" id="sso-disabled-failure">
     36                <p><strong>SSO Failed to be disabled! Please refresh the page and try again. If it continues to fail,
     37                        contact FastComments support.</strong></p>
     38                <button type="button" class="notice-dismiss">
     39                    <span class="screen-reader-text">Dismiss this notice.</span>
     40                </button>
     41            </div>
     42            <p>SSO, or Single-Sign-On, allows you and your users to use accounts on your WordPress site to comment.</p>
     43            <p>
     44                <span class="sso-enabled-badge">&#10003; SSO Enabled</span>
     45                <button class="button-primary" id="fc-sso-disable">Disable SSO</button>
     46            </p>
    4447
    45         <div id="dialog-disable-sso" class="hidden">
    46             <h3>Are you sure?</h3>
    47             <p>Disabling SSO will mean that users of your blog will use the default FastComments sign up mechanism (they
    48                 will leave their username/email while commenting).</p>
    49             <p>Disabling SSO will take effect immediately and any logged in users will have to create a new account the
    50                 next time they load a page.</p>
    51             <p class="submit">
    52                 <button type="button" class="button button-primary" id="fc-sso-disable-confirm-button">Disable SSO Now
     48            <div id="dialog-disable-sso" class="hidden">
     49                <h3>Are you sure?</h3>
     50                <p>Disabling SSO will mean that users of your blog will use the default FastComments sign up mechanism (they
     51                    will leave their username/email while commenting).</p>
     52                <p>Disabling SSO will take effect immediately and any logged in users will have to create a new account the
     53                    next time they load a page.</p>
     54                <p class="submit">
     55                    <button type="button" class="button button-primary" id="fc-sso-disable-confirm-button">Disable SSO Now
     56                    </button>
     57                    <button type="button" class="button" id="fc-sso-disable-cancel-button">Cancel</button>
     58                </p>
     59            </div>
     60        <?php } else { ?>
     61            <div class="notice notice-success is-dismissible hidden" id="sso-enabled-success">
     62                <p><strong>SSO Enabled! <a
     63                                href="<?php echo get_admin_url(null, "admin.php?page=fastcomments&sub_page=sso", null) ?>">Refresh</a>.</strong>
     64                </p>
     65                <button type="button" class="notice-dismiss">
     66                    <span class="screen-reader-text">Dismiss this notice.</span>
    5367                </button>
    54                 <button type="button" class="button" id="fc-sso-disable-cancel-button">Cancel</button>
     68            </div>
     69            <div class="notice notice-error is-dismissible hidden" id="sso-enabled-failure">
     70                <p><strong>SSO Failed to be enabled! Please refresh the page and try again. If it continues to fail, contact
     71                        FastComments support.</strong></p>
     72                <button type="button" class="notice-dismiss">
     73                    <span class="screen-reader-text">Dismiss this notice.</span>
     74                </button>
     75            </div>
     76            <p>
     77                SSO, or Single-Sign-On, allows you and your users to use accounts on your WordPress site to comment. If you
     78                aren't already using SSO, <b>some consideration should be taken before enabling it.</b><br>
     79                One of the benefits of FastComments is the frictionless sign up/comment process and SSO adds friction for
     80                new users as they will have to sign up to your WordPress site.
    5581            </p>
    56         </div>
    57     <?php } else { ?>
    58         <div class="notice notice-success is-dismissible hidden" id="sso-enabled-success">
    59             <p><strong>SSO Enabled! <a
    60                             href="<?php echo get_admin_url(null, "admin.php?page=fastcomments&sub_page=sso", null) ?>">Refresh</a>.</strong>
    61             </p>
    62             <button type="button" class="notice-dismiss">
    63                 <span class="screen-reader-text">Dismiss this notice.</span>
    64             </button>
    65         </div>
    66         <div class="notice notice-error is-dismissible hidden" id="sso-enabled-failure">
    67             <p><strong>SSO Failed to be enabled! Please refresh the page and try again. If it continues to fail, contact
    68                     FastComments support.</strong></p>
    69             <button type="button" class="notice-dismiss">
    70                 <span class="screen-reader-text">Dismiss this notice.</span>
    71             </button>
    72         </div>
    73         <p>
    74             SSO, or Single-Sign-On, allows you and your users to use accounts on your WordPress site to comment. If you
    75             aren't already using SSO, <b>some consideration should be taken before enabling it.</b><br>
    76             One of the benefits of FastComments is the frictionless sign up/comment process and SSO adds friction for
    77             new users as they will have to sign up to your WordPress site.
    78         </p>
    79         <button class="button-primary" id="fc-sso-enable">Enable SSO</button>
     82            <button class="button-primary" id="fc-sso-enable">Enable SSO</button>
    8083
    81         <div id="dialog-enable-sso" class="hidden">
    82             <h3>Are you sure?</h3>
    83             <p>Enabling SSO will mean that users of your blog will use your WordPress site to sign in, instead of
    84                 the default FastComments sign up mechanism (they will <b>not</b> leave their username/email while
    85                 commenting).</p>
    86             <p>Enabling SSO will take effect immediately.</p>
    87             <p class="submit">
    88                 <button type="button" class="button button-primary" id="fc-sso-enable-confirm-button">Enable SSO
    89                     Now
    90                 </button>
    91                 <button type="button" class="button" id="fc-sso-enable-cancel-button">Cancel</button>
    92             </p>
    93         </div>
    94     <?php } ?>
     84            <div id="dialog-enable-sso" class="hidden">
     85                <h3>Are you sure?</h3>
     86                <p>Enabling SSO will mean that users of your blog will use your WordPress site to sign in, instead of
     87                    the default FastComments sign up mechanism (they will <b>not</b> leave their username/email while
     88                    commenting).</p>
     89                <p>Enabling SSO will take effect immediately.</p>
     90                <p class="submit">
     91                    <button type="button" class="button button-primary" id="fc-sso-enable-confirm-button">Enable SSO
     92                        Now
     93                    </button>
     94                    <button type="button" class="button" id="fc-sso-enable-cancel-button">Cancel</button>
     95                </p>
     96            </div>
     97        <?php } ?>
     98    </div>
    9599    <?php
    96100    global $FASTCOMMENTS_VERSION;
  • fastcomments/trunk/admin/fastcomments-admin-support-view.php

    r2744374 r3462221  
    44        <span class="text">FastComments.com</span>
    55    </a>
    6     <h3>FastComments Direct Support</h3>
    7     <p>Getting support for your FastComments account is simple. Simply go to <a
    8                 href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/help" target="_blank">this page</a> and ask your
    9         question. You'll need to create an account, which is free, to access the support form.</p>
     6    <a class="fc-back" href="<?php echo admin_url('admin.php?page=fastcomments'); ?>">&larr; Dashboard</a>
     7    <div class="fc-card">
     8        <h3>Direct Support</h3>
     9        <p>Getting support for your FastComments account is simple. Simply go to <a
     10                    href="<?php echo FastCommentsPublic::getSite() ?>/auth/my-account/help" target="_blank">this page</a> and ask your
     11            question. You'll need to create an account, which is free, to access the support form.</p>
    1012
    11     <p>If you don't have an account you'll have to pick a plan to sign up, however you won't have to enter credit card information for thirty days.</p>
    12 
    13     <div class="diagnostics">
    14         <div class="diagnostic-title">Diagnostic Information</div>
    15         <div class="diagnostic-info">You should include this with any communications to FastComments representatives.</div>
    16         <div class="diagnostic-warning">Do not share this information publicly. If you do so, someone may be able to
    17             take over your account.
    18             <div>Only share with FastComments representatives.</div>
    19         </div>
    20         <textarea readonly class="diagnostic-textarea"><?php global $diagnostic_info; echo json_encode($diagnostic_info, JSON_PRETTY_PRINT); ?></textarea>
     13        <p>If you don't have an account you'll have to pick a plan to sign up, however you won't have to enter credit card information for thirty days.</p>
    2114    </div>
    2215
     16    <div class="fc-card">
     17        <div class="diagnostics">
     18            <div class="diagnostic-title">Diagnostic Information</div>
     19            <div class="diagnostic-info">You should include this with any communications to FastComments representatives.</div>
     20            <div class="diagnostic-warning">Do not share this information publicly. If you do so, someone may be able to
     21                take over your account.
     22                <div>Only share with FastComments representatives.</div>
     23            </div>
     24            <textarea readonly class="diagnostic-textarea"><?php global $diagnostic_info; echo json_encode($diagnostic_info, JSON_PRETTY_PRINT); ?></textarea>
     25        </div>
     26    </div>
    2327</div>
  • fastcomments/trunk/admin/fastcomments-admin.css

    r2576755 r3462221  
     1/* ===========================
     2   FastComments Admin Panel
     3   =========================== */
     4
     5:root {
     6    --fc-primary: #5356ec;
     7    --fc-primary-alt: #8453ed;
     8    --fc-gradient: linear-gradient(65.68deg, #5356ec -11.59%, #8453ed 72.49%);
     9    --fc-gradient-hover: linear-gradient(65.68deg, #8453ed -11.59%, #5356ec 72.49%);
     10    --fc-bg: #fcfcfc;
     11    --fc-card: #ffffff;
     12    --fc-border: #E4E4E4;
     13    --fc-border-hover: #d4d4d4;
     14    --fc-text: #030303;
     15    --fc-text-dark: #121212;
     16    --fc-text-muted: #84818A;
     17    --fc-success: #34C759;
     18    --fc-danger: #FF3B30;
     19    --fc-warning: #FF9F38;
     20    --fc-radius: 8px;
     21    --fc-shadow: 0 1px 3px 0 rgba(0,0,0,0.12), 0 23px 44px 0 rgba(176,183,195,0.14);
     22}
     23
     24#fastcomments-admin {
     25    max-width: 880px;
     26    margin: 24px 0;
     27    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
     28    color: var(--fc-text);
     29    line-height: 1.5;
     30}
     31
     32/* ---- Header / Logo ---- */
     33
    134#fastcomments-admin .logo {
    2     display: inline-block;
    3     padding-top: 20px;
    4     font-size: 18px;
    5     color: #201600;
    6     text-decoration: none;
    7     font-weight: bold;
    8     overflow: hidden;
     35    display: inline-flex;
     36    align-items: center;
     37    gap: 10px;
     38    padding: 0;
     39    margin-bottom: 24px;
     40    font-family: 'Manrope', 'Inter', sans-serif;
     41    font-size: 17px;
     42    color: var(--fc-text-dark);
     43    text-decoration: none;
     44    font-weight: 600;
     45    overflow: visible;
     46    transition: opacity 0.2s;
    947}
    1048
    1149#fastcomments-admin .logo img {
    12     position: relative;
    13     max-width: 50px;
    14     padding-right: 5px;
    15     vertical-align: middle;
    16     z-index: 1;
     50    width: 34px;
     51    height: 34px;
     52    max-width: 34px;
     53    vertical-align: middle;
     54    position: static;
     55    padding: 0;
     56    z-index: auto;
    1757}
    1858
    1959#fastcomments-admin .logo .text {
    20     position: relative;
    21     left: -150px;
    22     z-index: 0;
    23     opacity: 0;
    24     transition-duration: 100ms;
    25     pointer-events: none;
    26 }
    27 
    28 #fastcomments-admin .logo:hover .text {
    29     left: 0;
    30     opacity: 1;
    31 }
     60    position: static;
     61    left: auto;
     62    opacity: 1;
     63    pointer-events: auto;
     64    font-size: 17px;
     65    letter-spacing: -0.01em;
     66    transition: none;
     67}
     68
     69#fastcomments-admin .logo:hover {
     70    opacity: 0.75;
     71    background: transparent;
     72    color: var(--fc-text-dark);
     73}
     74
     75/* ---- Back Navigation ---- */
     76
     77#fastcomments-admin .fc-back {
     78    display: block;
     79    margin-bottom: 20px;
     80    font-size: 13px;
     81    color: var(--fc-text-muted);
     82    text-decoration: none;
     83    font-weight: 500;
     84}
     85
     86#fastcomments-admin .fc-back:hover {
     87    color: var(--fc-primary);
     88}
     89
     90/* ---- Tiles Dashboard ---- */
    3291
    3392#fastcomments-admin .tiles {
    34     max-width: 800px;
    35     text-align: left;
     93    display: grid;
     94    grid-template-columns: repeat(3, 1fr);
     95    gap: 14px;
     96    max-width: none;
     97    text-align: center;
    3698}
    3799
    38100#fastcomments-admin .tiles > a {
    39     display: inline-block;
    40     width: 28%;
    41     padding: 2%;
     101    display: flex;
     102    flex-direction: column;
     103    align-items: center;
     104    justify-content: center;
     105    padding: 28px 16px 22px;
     106    width: auto;
    42107    text-align: center;
    43108    text-decoration: none;
    44     vertical-align: top;
    45     color: #201600;
    46     font-size: 16px;
     109    color: var(--fc-text);
     110    font-size: 13.5px;
     111    font-weight: 600;
     112    letter-spacing: 0.01em;
     113    background: var(--fc-card);
     114    border: 1px solid var(--fc-border);
     115    border-radius: var(--fc-radius);
     116    transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;
     117    box-shadow: var(--fc-shadow);
     118    cursor: pointer;
    47119}
    48120
    49121#fastcomments-admin .tiles > a:hover {
    50     background: #201600;
     122    border-color: var(--fc-primary);
     123    background: var(--fc-card);
     124    color: var(--fc-text-dark);
     125    box-shadow: var(--fc-shadow);
     126    transform: translateY(-2px);
     127}
     128
     129#fastcomments-admin .tiles > a:active {
     130    transform: translateY(0);
     131}
     132
     133#fastcomments-admin .tiles > a > img {
     134    width: 44px;
     135    height: 44px;
     136    margin: 0 auto 14px;
     137    opacity: 0.7;
     138    transition: opacity 0.2s;
     139    filter: none;
     140}
     141
     142#fastcomments-admin .tiles > a:hover > img {
     143    opacity: 1;
     144    filter: none;
     145}
     146
     147#fastcomments-admin .tiles > a > div {
     148    line-height: 1.3;
     149}
     150
     151/* ---- Card Container ---- */
     152
     153#fastcomments-admin .fc-card {
     154    background: var(--fc-card);
     155    border: 1px solid var(--fc-border);
     156    border-radius: var(--fc-radius);
     157    padding: 20px;
     158    margin-bottom: 20px;
     159    box-shadow: var(--fc-shadow);
     160}
     161
     162#fastcomments-admin .fc-card h3:first-child {
     163    margin-top: 0;
     164}
     165
     166/* ---- Page Headings ---- */
     167
     168#fastcomments-admin h3 {
     169    font-family: 'Manrope', 'Inter', sans-serif;
     170    font-size: 18px;
     171    font-weight: 600;
     172    color: var(--fc-text-dark);
     173    margin: 0 0 16px;
     174    letter-spacing: -0.01em;
     175}
     176
     177#fastcomments-admin p {
     178    color: var(--fc-text);
     179    font-size: 14px;
     180    line-height: 1.6;
     181}
     182
     183#fastcomments-admin a:not(.logo):not(.tiles > a):not(.button-primary):not(.fc-btn):not(.fc-back) {
     184    color: var(--fc-primary);
     185}
     186
     187#fastcomments-admin a:not(.logo):not(.tiles > a):not(.button-primary):not(.fc-btn):not(.fc-back):hover {
     188    color: var(--fc-primary-alt);
     189}
     190
     191/* ---- Buttons ---- */
     192
     193#fastcomments-admin .button-primary,
     194#fastcomments-admin .fc-btn {
     195    display: inline-flex;
     196    align-items: center;
     197    gap: 6px;
     198    padding: 10px 16px;
     199    background: var(--fc-gradient);
     200    color: #fff !important;
     201    border: 1px solid transparent;
     202    border-radius: 4px;
     203    font-family: 'Inter', sans-serif;
     204    font-size: 14px;
     205    font-weight: 500;
     206    cursor: pointer;
     207    text-decoration: none;
     208    transition: background 300ms ease-in, box-shadow 300ms ease-in, border-color 300ms ease-in;
     209    line-height: 1.4;
     210    box-shadow: none;
     211    text-shadow: none;
     212    position: relative;
     213    z-index: 1;
     214}
     215
     216#fastcomments-admin .button-primary:hover,
     217#fastcomments-admin .fc-btn:hover,
     218#fastcomments-admin .button-primary:focus,
     219#fastcomments-admin .fc-btn:focus {
     220    background: var(--fc-gradient-hover);
     221    color: #fff !important;
     222    box-shadow: 0 2px 8px rgba(83, 86, 236, 0.3);
     223    border-color: transparent;
     224    outline: none;
     225}
     226
     227#fastcomments-admin .fc-btn-secondary {
     228    background: transparent;
     229    color: var(--fc-text) !important;
     230    border-color: var(--fc-border-hover);
     231}
     232
     233#fastcomments-admin .fc-btn-secondary:hover,
     234#fastcomments-admin .fc-btn-secondary:focus {
     235    background: var(--fc-bg);
     236    border-color: var(--fc-primary);
     237    box-shadow: none;
     238    color: var(--fc-text-dark) !important;
     239}
     240
     241/* ---- Setup Wizard ---- */
     242
     243#fastcomments-admin .fc-setup {
     244    background: var(--fc-card);
     245    border: 1px solid var(--fc-border);
     246    border-radius: var(--fc-radius);
     247    padding: 36px 40px;
     248    box-shadow: var(--fc-shadow);
     249}
     250
     251#fastcomments-admin .fc-setup h1 {
     252    font-family: 'Manrope', 'Inter', sans-serif;
     253    font-size: 26px;
     254    font-weight: 700;
     255    color: var(--fc-text-dark);
     256    margin: 0 0 6px;
     257    letter-spacing: -0.02em;
     258}
     259
     260#fastcomments-admin .fc-setup > h3 {
     261    font-size: 15px;
     262    font-weight: 500;
     263    color: var(--fc-text-muted);
     264    margin: 0 0 8px;
     265}
     266
     267#fastcomments-admin .fc-setup > p {
     268    color: var(--fc-text-muted);
     269    font-size: 14px;
     270    margin: 0 0 28px;
     271    line-height: 1.6;
     272}
     273
     274#fastcomments-admin .fc-step {
     275    padding: 22px 0;
     276    border-top: 1px solid var(--fc-border);
     277}
     278
     279#fastcomments-admin .fc-step:last-of-type {
     280    padding-bottom: 0;
     281}
     282
     283#fastcomments-admin .fc-step h2 {
     284    font-family: 'Manrope', 'Inter', sans-serif;
     285    font-size: 15px;
     286    font-weight: 600;
     287    color: var(--fc-text-dark);
     288    margin: 0 0 12px;
     289    display: flex;
     290    align-items: center;
     291    gap: 10px;
     292}
     293
     294#fastcomments-admin .fc-step-number {
     295    display: inline-flex;
     296    align-items: center;
     297    justify-content: center;
     298    width: 28px;
     299    height: 28px;
     300    background: var(--fc-gradient);
    51301    color: #fff;
    52 }
    53 
    54 #fastcomments-admin .tiles > a:hover > img {
    55     filter: invert(1);
    56 }
    57 
    58 #fastcomments-admin .tiles > a > img {
    59     width: 60%;
    60     margin: 10px auto;
    61 }
     302    border-radius: 50%;
     303    font-size: 13px;
     304    font-weight: 700;
     305    flex-shrink: 0;
     306}
     307
     308#fastcomments-admin .fc-step p {
     309    margin: 0 0 14px;
     310    padding-left: 38px;
     311}
     312
     313#fastcomments-admin .fc-step .fc-hint {
     314    font-size: 13px;
     315    color: var(--fc-text-muted);
     316}
     317
     318#fastcomments-admin .fc-actions {
     319    padding-left: 38px;
     320    display: flex;
     321    gap: 10px;
     322    flex-wrap: wrap;
     323}
     324
     325/* ---- Setup Checklist ---- */
     326
     327#fastcomments-admin .fc-checklist {
     328    list-style: none;
     329    padding: 0;
     330    margin: 0 0 16px 38px;
     331}
     332
     333#fastcomments-admin .fc-checklist li {
     334    padding: 6px 0;
     335    font-size: 14px;
     336    color: var(--fc-text);
     337    display: flex;
     338    align-items: center;
     339    gap: 8px;
     340}
     341
     342#fastcomments-admin .fc-checklist li.done {
     343    color: var(--fc-success);
     344}
     345
     346#fastcomments-admin .fc-checklist .fc-check {
     347    width: 18px;
     348    height: 18px;
     349    border: 2px solid var(--fc-border);
     350    border-radius: 50%;
     351    display: inline-flex;
     352    align-items: center;
     353    justify-content: center;
     354    flex-shrink: 0;
     355    font-size: 11px;
     356    line-height: 1;
     357}
     358
     359#fastcomments-admin .fc-checklist li.done .fc-check {
     360    background: var(--fc-success);
     361    border-color: var(--fc-success);
     362    color: #fff;
     363    border-radius: 50%;
     364}
     365
     366/* ---- Diagnostics / Support ---- */
    62367
    63368#fastcomments-admin .diagnostics {
    64     margin-top: 50px;
     369    margin-top: 0;
    65370}
    66371
    67372#fastcomments-admin .diagnostics .diagnostic-title {
    68     font-size: 15px;
    69     font-weight: bold;
     373    font-family: 'Manrope', 'Inter', sans-serif;
     374    font-size: 15px;
     375    font-weight: 600;
     376    color: var(--fc-text-dark);
     377    margin-bottom: 4px;
     378}
     379
     380#fastcomments-admin .diagnostics .diagnostic-info {
     381    color: var(--fc-text-muted);
     382    font-size: 13px;
     383    margin-bottom: 8px;
    70384}
    71385
    72386#fastcomments-admin .diagnostics .diagnostic-warning {
    73     padding: 10px 0;
    74     font-size: 14px;
    75     font-weight: bold;
    76     font-style: italic;
    77     color: red;
     387    padding: 12px 16px;
     388    font-size: 13px;
     389    font-weight: 600;
     390    font-style: normal;
     391    color: #92400e;
     392    background: #fffbeb;
     393    border: 1px solid #fbbf24;
     394    border-radius: 6px;
     395    margin-bottom: 16px;
     396}
     397
     398#fastcomments-admin .diagnostics .diagnostic-warning div {
     399    margin-top: 4px;
     400    font-weight: 500;
    78401}
    79402
    80403#fastcomments-admin .diagnostics .diagnostic-textarea {
    81     width: 300px;
    82     height: 300px;
    83     resize: none;
    84     font-family: monospace;
    85 }
     404    width: 100%;
     405    max-width: 520px;
     406    height: 300px;
     407    resize: vertical;
     408    font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
     409    font-size: 12px;
     410    padding: 16px;
     411    border: 1px solid var(--fc-border);
     412    border-radius: 6px;
     413    background: var(--fc-bg);
     414    color: var(--fc-text);
     415    line-height: 1.5;
     416}
     417
     418/* ---- SSO Badge ---- */
     419
     420#fastcomments-admin .sso-enabled-badge {
     421    display: inline-flex;
     422    align-items: center;
     423    gap: 4px;
     424    padding: 4px 12px;
     425    background: #ecfdf5;
     426    color: var(--fc-success);
     427    border: 1px solid #a7f3d0;
     428    border-radius: 20px;
     429    font-size: 13px;
     430    font-weight: 600;
     431    margin-right: 10px;
     432}
     433
     434/* ---- Form Table Overrides ---- */
     435
     436#fastcomments-admin .form-table th {
     437    font-weight: 600;
     438    color: var(--fc-text-dark);
     439    font-size: 13.5px;
     440}
     441
     442#fastcomments-admin .form-table .description {
     443    color: var(--fc-text-muted);
     444    font-size: 12.5px;
     445}
     446
     447#fastcomments-admin select {
     448    border: 1px solid var(--fc-border);
     449    border-radius: 6px;
     450    padding: 6px 28px 6px 12px;
     451    font-family: inherit;
     452    font-size: 13px;
     453    color: var(--fc-text);
     454    background-color: var(--fc-card);
     455    min-width: 180px;
     456}
     457
     458/* ---- Notices within FC Admin ---- */
     459
     460#fastcomments-admin .notice {
     461    border-radius: 6px;
     462    margin: 0 0 16px;
     463}
     464
     465/* ---- Responsive ---- */
    86466
    87467@media (max-width: 768px) {
     468    #fastcomments-admin .tiles {
     469        grid-template-columns: repeat(2, 1fr);
     470        gap: 10px;
     471    }
     472
    88473    #fastcomments-admin .tiles > a {
    89         width: 45%;
    90     }
    91 }
    92 
     474        padding: 20px 12px 16px;
     475    }
     476
     477    #fastcomments-admin .fc-setup {
     478        padding: 24px 20px;
     479    }
     480
     481    #fastcomments-admin .fc-step p,
     482    #fastcomments-admin .fc-step .fc-hint,
     483    #fastcomments-admin .fc-actions,
     484    #fastcomments-admin .fc-checklist {
     485        padding-left: 0;
     486    }
     487
     488    #fastcomments-admin .fc-card {
     489        padding: 16px;
     490    }
     491}
     492
     493@media (max-width: 480px) {
     494    #fastcomments-admin .tiles {
     495        grid-template-columns: 1fr;
     496    }
     497}
  • fastcomments/trunk/admin/fastcomments-admin.php

    r2746763 r3462221  
    122122function fc_render_admin_index()
    123123{
    124     wp_enqueue_style("fastcomments-admin", plugin_dir_url(__FILE__) . 'fastcomments-admin.css');
     124    wp_enqueue_style("fc-google-fonts", "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@500;600&display=swap", array(), null);
     125    wp_enqueue_style("fastcomments-admin", plugin_dir_url(__FILE__) . 'fastcomments-admin.css', array('fc-google-fonts'));
    125126    if (get_option("fastcomments_setup")) {
    126127        global $wp_version;
     
    181182}
    182183
     184function fc_admin_setup_notice()
     185{
     186    if (!current_user_can('moderate_comments')) {
     187        return;
     188    }
     189    if (get_option('fastcomments_setup')) {
     190        return;
     191    }
     192    $screen = get_current_screen();
     193    if ($screen && $screen->id === 'toplevel_page_fastcomments') {
     194        return;
     195    }
     196    $setup_url = admin_url('admin.php?page=fastcomments');
     197    ?>
     198    <div class="notice notice-warning" style="border-left-color: #5356ec;">
     199        <p>
     200            <strong>FastComments</strong> needs to be set up to replace the default WordPress commenting system.
     201            <a href="<?php echo esc_url($setup_url); ?>">Complete setup &rarr;</a>
     202        </p>
     203    </div>
     204    <?php
     205}
     206
    183207add_filter('plugin_action_links', 'fc_plugin_action_links', 10, 2);
    184208add_action('admin_menu', 'fc_contruct_admin_menu');
    185209add_action('admin_bar_menu', 'fc_construct_admin_bar', 1000);
     210add_action('admin_notices', 'fc_admin_setup_notice');
  • fastcomments/trunk/fastcomments-wordpress-plugin.php

    r3436960 r3462221  
    44Plugin URI: https://fastcomments.com
    55Description: A live, fast, privacy-focused commenting system with advanced spam prevention capabilities.
    6 Version: 3.16.2
     6Version: 3.17.0
    77Author: winrid @ FastComments
    88License: GPL-2.0+
     
    1414}
    1515
    16 $FASTCOMMENTS_VERSION = 3.162;
     16$FASTCOMMENTS_VERSION = 3.170;
    1717
    1818require_once plugin_dir_path(__FILE__) . 'admin/fastcomments-admin.php';
Note: See TracChangeset for help on using the changeset viewer.