Changeset 3462221
- Timestamp:
- 02/16/2026 06:18:05 AM (7 weeks ago)
- Location:
- fastcomments
- Files:
-
- 40 added
- 10 edited
-
tags/3.17.0 (added)
-
tags/3.17.0/.gitignore (added)
-
tags/3.17.0/LICENSE (added)
-
tags/3.17.0/README.md (added)
-
tags/3.17.0/README.txt (added)
-
tags/3.17.0/admin (added)
-
tags/3.17.0/admin/fastcomments-admin-advanced-settings-view.js (added)
-
tags/3.17.0/admin/fastcomments-admin-advanced-settings-view.php (added)
-
tags/3.17.0/admin/fastcomments-admin-manual-sync-view.js (added)
-
tags/3.17.0/admin/fastcomments-admin-manual-sync-view.php (added)
-
tags/3.17.0/admin/fastcomments-admin-setup-view.js (added)
-
tags/3.17.0/admin/fastcomments-admin-setup-view.php (added)
-
tags/3.17.0/admin/fastcomments-admin-sso-view.css (added)
-
tags/3.17.0/admin/fastcomments-admin-sso-view.js (added)
-
tags/3.17.0/admin/fastcomments-admin-sso-view.php (added)
-
tags/3.17.0/admin/fastcomments-admin-support-view.php (added)
-
tags/3.17.0/admin/fastcomments-admin-view.php (added)
-
tags/3.17.0/admin/fastcomments-admin.css (added)
-
tags/3.17.0/admin/fastcomments-admin.php (added)
-
tags/3.17.0/admin/images (added)
-
tags/3.17.0/admin/images/api.png (added)
-
tags/3.17.0/admin/images/crown.png (added)
-
tags/3.17.0/admin/images/css.png (added)
-
tags/3.17.0/admin/images/debugging.png (added)
-
tags/3.17.0/admin/images/download.png (added)
-
tags/3.17.0/admin/images/home.png (added)
-
tags/3.17.0/admin/images/logo-50.png (added)
-
tags/3.17.0/admin/images/logo.png (added)
-
tags/3.17.0/admin/images/settings.png (added)
-
tags/3.17.0/admin/images/support.png (added)
-
tags/3.17.0/admin/images/sync-status.png (added)
-
tags/3.17.0/admin/images/sync.png (added)
-
tags/3.17.0/core (added)
-
tags/3.17.0/core/FastCommentsIntegrationCore.php (added)
-
tags/3.17.0/core/FastCommentsWordPressIntegration.php (added)
-
tags/3.17.0/fastcomments-wordpress-plugin.php (added)
-
tags/3.17.0/public (added)
-
tags/3.17.0/public/fastcomments-public.php (added)
-
tags/3.17.0/public/fastcomments-widget-view.php (added)
-
tags/3.17.0/uninstall.php (added)
-
trunk/README.txt (modified) (3 diffs)
-
trunk/admin/fastcomments-admin-advanced-settings-view.php (modified) (2 diffs)
-
trunk/admin/fastcomments-admin-manual-sync-view.php (modified) (1 diff)
-
trunk/admin/fastcomments-admin-setup-view.php (modified) (1 diff)
-
trunk/admin/fastcomments-admin-sso-view.css (modified) (1 diff)
-
trunk/admin/fastcomments-admin-sso-view.php (modified) (2 diffs)
-
trunk/admin/fastcomments-admin-support-view.php (modified) (1 diff)
-
trunk/admin/fastcomments-admin.css (modified) (1 diff)
-
trunk/admin/fastcomments-admin.php (modified) (2 diffs)
-
trunk/fastcomments-wordpress-plugin.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
fastcomments/trunk/README.txt
r3461413 r3462221 1 1 === FastComments === 2 2 Contributors: winrid 3 Tags: live comments, comments, comment spam, comment system, fast comments, live commenting, live-commenting, comment-system3 Tags: comments, commenting system, live comments, disqus, live commenting, prevent spam 4 4 Requires at least: 4.6 5 Tested up to: 6.9. 16 Stable tag: 3.1 6.25 Tested up to: 6.9.2 6 Stable tag: 3.17.0 7 7 Requires PHP: 5.2.5 8 8 License: GPLv2 or later … … 15 15 == Description == 16 16 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 62 Fully 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 73 FastComments 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 77 Responsive, hands-on support from the development team. Migration assistance included. Most issues resolved within hours. 83 78 84 79 == Screenshots == … … 88 83 89 84 == 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. 90 89 91 90 = 3.16.2 = -
fastcomments/trunk/admin/fastcomments-admin-advanced-settings-view.php
r3036609 r3462221 5 5 <span class="text">FastComments.com</span> 6 6 </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'); ?>">← 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 } 19 32 ?> 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> 23 86 </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> 86 89 </div> 87 90 <?php … … 89 92 wp_enqueue_script('fastcomments_admin_advanced_settings_view', plugin_dir_url(__FILE__) . 'fastcomments-admin-advanced-settings-view.js', array(), $FASTCOMMENTS_VERSION); 90 93 ?> 91 -
fastcomments/trunk/admin/fastcomments-admin-manual-sync-view.php
r2744374 r3462221 11 11 <span class="text">FastComments.com</span> 12 12 </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'); ?>">← 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> 17 19 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 → FastComments.com</button> 20 22 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 → WordPress</button> 25 </div> 23 26 24 27 <div id="dialog-sync-to-fc" class="hidden"> -
fastcomments/trunk/admin/fastcomments-admin-setup-view.php
r2746763 r3462221 1 1 <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> 5 6 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> 9 25 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> 17 28 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">✓</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">✓</span> Connect WordPress with FastComments</li> 56 <li class="done"><span class="fc-check">✓</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> 23 65 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> 65 73 66 74 <?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 4 4 wp_enqueue_script('jquery-ui-dialog'); 5 5 wp_enqueue_style('wp-jquery-ui-dialog'); 6 wp_enqueue_style("fastcomments-admin-sso-view", plugin_dir_url(__FILE__) . 'fastcomments-admin-sso-view.css');7 6 ?> 8 7 … … 13 12 <span class="text">FastComments.com</span> 14 13 </a> 15 <h3>FastComments Single-Sign-On</h3> 14 <a class="fc-back" href="<?php echo admin_url('admin.php?page=fastcomments'); ?>">← Dashboard</a> 15 <div class="fc-card"> 16 <h3>Single Sign-On (SSO)</h3> 16 17 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". 29 24 </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">✓ SSO Enabled</span> 45 <button class="button-primary" id="fc-sso-disable">Disable SSO</button> 46 </p> 44 47 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> 53 67 </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. 55 81 </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> 80 83 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> 95 99 <?php 96 100 global $FASTCOMMENTS_VERSION; -
fastcomments/trunk/admin/fastcomments-admin-support-view.php
r2744374 r3462221 4 4 <span class="text">FastComments.com</span> 5 5 </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'); ?>">← 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> 10 12 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> 21 14 </div> 22 15 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> 23 27 </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 1 34 #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; 9 47 } 10 48 11 49 #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; 17 57 } 18 58 19 59 #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 ---- */ 32 91 33 92 #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; 36 98 } 37 99 38 100 #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; 42 107 text-align: center; 43 108 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; 47 119 } 48 120 49 121 #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); 51 301 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 ---- */ 62 367 63 368 #fastcomments-admin .diagnostics { 64 margin-top: 50px;369 margin-top: 0; 65 370 } 66 371 67 372 #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; 70 384 } 71 385 72 386 #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; 78 401 } 79 402 80 403 #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 ---- */ 86 466 87 467 @media (max-width: 768px) { 468 #fastcomments-admin .tiles { 469 grid-template-columns: repeat(2, 1fr); 470 gap: 10px; 471 } 472 88 473 #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 122 122 function fc_render_admin_index() 123 123 { 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')); 125 126 if (get_option("fastcomments_setup")) { 126 127 global $wp_version; … … 181 182 } 182 183 184 function 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 →</a> 202 </p> 203 </div> 204 <?php 205 } 206 183 207 add_filter('plugin_action_links', 'fc_plugin_action_links', 10, 2); 184 208 add_action('admin_menu', 'fc_contruct_admin_menu'); 185 209 add_action('admin_bar_menu', 'fc_construct_admin_bar', 1000); 210 add_action('admin_notices', 'fc_admin_setup_notice'); -
fastcomments/trunk/fastcomments-wordpress-plugin.php
r3436960 r3462221 4 4 Plugin URI: https://fastcomments.com 5 5 Description: A live, fast, privacy-focused commenting system with advanced spam prevention capabilities. 6 Version: 3.1 6.26 Version: 3.17.0 7 7 Author: winrid @ FastComments 8 8 License: GPL-2.0+ … … 14 14 } 15 15 16 $FASTCOMMENTS_VERSION = 3.1 62;16 $FASTCOMMENTS_VERSION = 3.170; 17 17 18 18 require_once plugin_dir_path(__FILE__) . 'admin/fastcomments-admin.php';
Note: See TracChangeset
for help on using the changeset viewer.