diff options
Diffstat (limited to 'plugins/akismet/_inc')
-rw-r--r-- | plugins/akismet/_inc/akismet.css | 625 | ||||
-rw-r--r-- | plugins/akismet/_inc/akismet.js | 308 | ||||
-rw-r--r-- | plugins/akismet/_inc/form.js | 30 | ||||
-rw-r--r-- | plugins/akismet/_inc/img/logo-full-2x.png | bin | 0 -> 5052 bytes |
4 files changed, 963 insertions, 0 deletions
diff --git a/plugins/akismet/_inc/akismet.css b/plugins/akismet/_inc/akismet.css new file mode 100644 index 00000000..bc56f061 --- /dev/null +++ b/plugins/akismet/_inc/akismet.css @@ -0,0 +1,625 @@ +.wp-admin.jetpack_page_akismet-key-config, .wp-admin.settings_page_akismet-key-config { + background-color:#f3f6f8; +} + +#submitted-on { + position: relative; +} +#the-comment-list .author .akismet-user-comment-count { + display: inline; +} +#the-comment-list .author a span { + text-decoration: none; + color: #999; +} +#the-comment-list .author a span.akismet-span-link { + text-decoration: inherit; + color: inherit; +} +#the-comment-list .akismet_remove_url { + margin-left: 3px; + color: #999; + padding: 2px 3px 2px 0; +} +#the-comment-list .akismet_remove_url:hover { + color: #A7301F; + font-weight: bold; + padding: 2px 2px 2px 0; +} +#dashboard_recent_comments .akismet-status { + display: none; +} +.akismet-status { + float: right; +} +.akismet-status a { + color: #AAA; + font-style: italic; +} +table.comments td.comment p a { + text-decoration: underline; +} +table.comments td.comment p a:after { + content: attr(href); + color: #aaa; + display: inline-block; /* Show the URL without the link's underline extending under it. */ + padding: 0 1ex; /* Because it's inline block, we can't just use spaces in the content: attribute to separate it from the link text. */ +} +.mshot-arrow { + width: 0; + height: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-right: 10px solid #5C5C5C; + position: absolute; + left: -6px; + top: 91px; +} +.mshot-container { + background: #5C5C5C; + position: absolute; + top: -94px; + padding: 7px; + width: 450px; + height: 338px; + z-index: 20000; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-border-radius: 6px; +} +.akismet-mshot { + position: absolute; + z-index: 100; +} +.akismet-mshot .mshot-image { + margin: 0; + height: 338px; + width: 450px; +} +.checkforspam { + display: inline-block !important; +} +.checkforspam-progress { + display: none; +} +.checkforspam.checking .checkforspam-progress { + padding-left: 1ex; +} +.checkforspam.button-disabled .checkforspam-progress { + display: inline; +} + +.checkforspam-spinner { + display: inline-block; + margin-top: 7px; +} + +.akismet-right { + float: right; +} + +.akismet-card .akismet-right { + margin: 1em 0; +} + +.akismet-alert-text { + color: #dd3d36; + font-weight: bold; + font-size: 120%; + margin-top: .5rem; +} +.akismet-alert { + border: 1px solid #e5e5e5; + padding: 0.4em 1em 1.4em 1em; + border-radius: 3px; + -webkit-border-radius: 3px; + border-width: 1px; + border-style: solid; +} + +.akismet-alert h3.akismet-key-status { + color: #fff; + margin: 1em 0 0.5em 0; +} + +.akismet-alert.akismet-critical { + background-color: #993300; +} + +.akismet-alert.akismet-active { + background-color: #649316; +} + +.akismet-alert p.akismet-key-status { + font-size: 24px; +} + +.akismet-alert p.akismet-description { + color:#fff; + font-size: 14px; + margin: 0 0; + font-style: normal; +} + +.akismet-alert p.akismet-description a, +.akismet-alert p.akismet-description a, +.akismet-alert p.akismet-description a, +.akismet-alert p.akismet-description a { + color: #fff; +} + +.akismet-new-snapshot { + margin-top: 1em; + padding: 1em; + text-align: center; + background: #fff; +} + +.akismet-new-snapshot h3 { + background: #f5f5f5; + color: #888; + font-size: 11px; + margin: 0; + padding: 3px; +} + +.new-snapspot ul { + font-size: 12px; + width: 100%; +} + +.akismet-new-snapshot ul li { + color: #999; + float: left; + font-size: 11px; + padding: 0 20px; + text-transform: uppercase; + width: 33%; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; +} + +.akismet-new-snapshot ul li:first-child, +.akismet-new-snapshot ul li:nth-child(2) { + border-right:1px dotted #ccc; +} + +.akismet-new-snapshot ul li span { + color: #52accc; + display: block; + font-size: 32px; + font-weight: lighter; + line-height: 1.5em; +} + +.akismet-settings th:first-child { + vertical-align: top; + padding-top: 15px; +} + +.akismet-settings th.akismet-api-key { + vertical-align: middle; + padding-top: 0; +} + +.akismet-settings input[type=text] { + width: 75%; +} + +.akismet-settings span.akismet-note{ + float: left; + padding-left: 23px; + font-size: 75%; + margin-top: -10px; +} + +/** + * For the activation notice on the plugins page. + */ + +#akismet_setup_prompt { + background: none; + border: none; + margin: 0; + padding: 0; + width: 100%; +} + +.akismet_activate { + border: 1px solid #4F800D; + padding: 5px; + margin: 15px 0; + background: #83AF24; + background-image: -webkit-gradient(linear, 0% 0, 80% 100%, from(#83AF24), to(#4F800D)); + background-image: -moz-linear-gradient(80% 100% 120deg, #4F800D, #83AF24); + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-border-radius: 3px; + position: relative; + overflow: hidden; +} + +.akismet_activate .aa_a { + position: absolute; + top: -5px; + right: 10px; + font-size: 140px; + color: #769F33; + font-family: Georgia, "Times New Roman", Times, serif; +} + +.akismet_activate .aa_button { + font-weight: bold; + border: 1px solid #029DD6; + border-top: 1px solid #06B9FD; + font-size: 15px; + text-align: center; + padding: 9px 0 8px 0; + color: #FFF; + background: #029DD6; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#029DD6), to(#0079B1)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0079B1, #029DD6); + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + width: 100%; + cursor: pointer; + margin: 0; +} + +.akismet_activate .aa_button:hover { + text-decoration: none !important; + border: 1px solid #029DD6; + border-bottom: 1px solid #00A8EF; + font-size: 15px; + text-align: center; + padding: 9px 0 8px 0; + color: #F0F8FB; + background: #0079B1; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#0079B1), to(#0092BF)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0092BF, #0079B1); + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; +} + +.akismet_activate .aa_button_border { + border: 1px solid #006699; + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + background: #029DD6; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#029DD6), to(#0079B1)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0079B1, #029DD6); +} + +.akismet_activate .aa_button_container { + box-sizing: border-box; + display: inline-block; + background: #DEF1B8; + padding: 5px; + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + width: 266px; +} + +.akismet_activate .aa_description { + position: absolute; + top: 22px; + left: 285px; + margin-left: 25px; + color: #E5F2B1; + font-size: 15px; +} + +.akismet_activate .aa_description strong { + color: #FFF; + font-weight: normal; +} + +@media (max-width: 550px) { + .akismet_activate .aa_a { + display: none; + } + + .akismet_activate .aa_button_container { + width: 100%; + } +} + +@media (max-width: 782px) { + .akismet_activate { + min-width: 0; + } +} + +@media (max-width: 850px) { + #akismet_setup_prompt .aa_description { + display: none; + } + + .akismet_activate { + min-width: 0; + } +} + +.jetpack_page_akismet-key-config #wpcontent, .settings_page_akismet-key-config #wpcontent { + padding-left: 0; +} + +.akismet-masthead { + background-color:#fff; + text-align:center; + box-shadow:0 1px 0 rgba(200,215,225,0.5),0 1px 2px #e9eff3 +} +@media (max-width: 45rem) { + .akismet-masthead { + padding:0 1.25rem + } +} + +.akismet-masthead__inside-container { + padding:.375rem 0; + margin:0 auto; + width:100%; + max-width:45rem; + text-align: left; +} +.akismet-masthead__logo-container { + padding:.3125rem 0 0 +} +.akismet-masthead__logo { + width:10.375rem; + height:1.8125rem; +} +.akismet-masthead__logo-link { + display:inline-block; + outline:none; + vertical-align:middle +} +.akismet-masthead__logo-link:focus { + line-height:0; + box-shadow:0 0 0 2px #78dcfa +} +.akismet-masthead__logo-link+code { + margin:0 10px; + padding:5px 9px; + border-radius:2px; + background:#e6ecf1; + color:#647a88 +} +.akismet-masthead__links { + display:-ms-flexbox; + display:flex; + -ms-flex-flow:row wrap; + flex-flow:row wrap; + -ms-flex:2 50%; + flex:2 50%; + -ms-flex-pack:end; + justify-content:flex-end; + margin:0 +} +@media (max-width: 480px) { + .akismet-masthead__links { + padding-right:.625rem + } +} +.akismet-masthead__link-li { + margin:0; + padding:0 +} +.akismet-masthead__link { + font-style:normal; + color:#0087be; + padding:.625rem; + display:inline-block +} +.akismet-masthead__link:visited { + color:#0087be +} +.akismet-masthead__link:active,.akismet-masthead__link:hover { + color:#00aadc +} +.akismet-masthead__link:hover { + text-decoration:underline +} +.akismet-masthead__link .dashicons { + display:none +} +@media (max-width: 480px) { + .akismet-masthead__link:hover,.akismet-masthead__link:active { + text-decoration:none + } + .akismet-masthead__link .dashicons { + display:block; + font-size:1.75rem + } + .akismet-masthead__link span+span { + display:none + } +} +.akismet-masthead__link-li:last-of-type .akismet-masthead__link { + padding-right:0 +} + +.akismet-lower { + margin: 0 auto; + text-align: left; + max-width: 45rem; + padding: 1.5rem; +} + +.akismet-lower .notice { + margin-bottom: 2rem; +} + +.akismet-card { + margin-top: 1rem; + margin-bottom: 0; + position: relative; + margin: 0 auto 0.625rem auto; + box-sizing: border-box; + background: white; + box-shadow: 0 0 0 1px rgba(200, 215, 225, 0.5), 0 1px 2px #e9eff3; +} + +.akismet-card:after, .akismet-card .inside:after, .akismet-masthead__logo-container:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.akismet-card .inside { + padding: 1.5rem; + padding-top: 1rem; +} + +.akismet-card .akismet-card-actions { + margin-top: 1rem; +} + +.jetpack_page_akismet-key-config .update-nag, .settings_page_akismet-key-config .update-nag { + display: none; +} + +.akismet-masthead .akismet-right { + line-height: 2.125rem; + font-size: 0.9rem; +} + +.akismet-box { + box-sizing: border-box; + background: white; + border: 1px solid rgba(200, 215, 225, 0.5); +} + +.akismet-box h2, .akismet-box h3 { + padding: 1.5rem 1.5rem .5rem 1.5rem; + margin: 0; +} + +.akismet-box p { + padding: 0 1.5rem 1.5rem 1.5rem; + margin: 0; +} + +.akismet-jetpack-email { + font-style: oblique; +} + +.akismet-jetpack-gravatar { + padding: 0 0 0 1.5rem; + float: left; + margin-right: 1rem; + width: 54px; + height: 54px; +} + +.akismet-box p:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.akismet-box .akismet-right { + padding-right: 1.5rem; +} + +.akismet-boxes .akismet-box { + margin-bottom: 0; + padding: 0; + margin-top: -1px; +} + +.akismet-boxes .akismet-box:last-child { + margin-bottom: 1.5rem; +} + +.akismet-boxes .akismet-box:first-child { + margin-top: 1.5rem; +} + +.akismet-button, .akismet-button:hover, .akismet-button:visited { + background: white; + border-color: #c8d7e1; + border-style: solid; + border-width: 1px 1px 2px; + color: #2e4453; + cursor: pointer; + display: inline-block; + margin: 0; + outline: 0; + overflow: hidden; + font-size: 14px; + font-weight: 500; + text-overflow: ellipsis; + text-decoration: none; + vertical-align: top; + box-sizing: border-box; + font-size: 14px; + line-height: 21px; + border-radius: 4px; + padding: 7px 14px 9px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.akismet-button:hover { + border-color: #a8bece; +} + +.akismet-button:active { + border-width: 2px 1px 1px; +} + +.akismet-is-primary, .akismet-is-primary:hover, .akismet-is-primary:visited { + background: #00aadc; + border-color: #0087be; + color: white; +} + +.akismet-is-primary:hover, .akismet-is-primary:focus { + border-color: #005082; +} + +.akismet-is-primary:hover { + border-color: #005082; +} + +.akismet-section-header { + position: relative; + margin: 0 auto 0.625rem auto; + padding: 1rem; + box-sizing: border-box; + box-shadow: 0 0 0 1px rgba(200, 215, 225, 0.5), 0 1px 2px #e9eff3; + background: #ffffff; + width: 100%; + padding-top: 0.6875rem; + padding-bottom: 0.6875rem; + display: flex; +} + +.akismet-section-header__label { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-positive: 1; + flex-grow: 1; + line-height: 1.75rem; + position: relative; + font-size: 0.875rem; + color: #4f748e; +} + +.akismet-section-header__actions { + line-height: 1.75rem; +} diff --git a/plugins/akismet/_inc/akismet.js b/plugins/akismet/_inc/akismet.js new file mode 100644 index 00000000..6cb85e6c --- /dev/null +++ b/plugins/akismet/_inc/akismet.js @@ -0,0 +1,308 @@ +jQuery( function ( $ ) { + var mshotRemovalTimer = null; + var mshotSecondTryTimer = null + var mshotThirdTryTimer = null + + var mshotEnabledLinkSelector = 'a[id^="author_comment_url"], tr.pingback td.column-author a:first-of-type, td.comment p a'; + + $('.akismet-status').each(function () { + var thisId = $(this).attr('commentid'); + $(this).prependTo('#comment-' + thisId + ' .column-comment'); + }); + $('.akismet-user-comment-count').each(function () { + var thisId = $(this).attr('commentid'); + $(this).insertAfter('#comment-' + thisId + ' .author strong:first').show(); + }); + + akismet_enable_comment_author_url_removal(); + + $( '#the-comment-list' ).on( 'click', '.akismet_remove_url', function () { + var thisId = $(this).attr('commentid'); + var data = { + action: 'comment_author_deurl', + _wpnonce: WPAkismet.comment_author_url_nonce, + id: thisId + }; + $.ajax({ + url: ajaxurl, + type: 'POST', + data: data, + beforeSend: function () { + // Removes "x" link + $("a[commentid='"+ thisId +"']").hide(); + // Show temp status + $("#author_comment_url_"+ thisId).html( $( '<span/>' ).text( WPAkismet.strings['Removing...'] ) ); + }, + success: function (response) { + if (response) { + // Show status/undo link + $("#author_comment_url_"+ thisId) + .attr('cid', thisId) + .addClass('akismet_undo_link_removal') + .html( + $( '<span/>' ).text( WPAkismet.strings['URL removed'] ) + ) + .append( ' ' ) + .append( + $( '<span/>' ) + .text( WPAkismet.strings['(undo)'] ) + .addClass( 'akismet-span-link' ) + ); + } + } + }); + + return false; + }).on( 'click', '.akismet_undo_link_removal', function () { + var thisId = $(this).attr('cid'); + var thisUrl = $(this).attr('href'); + var data = { + action: 'comment_author_reurl', + _wpnonce: WPAkismet.comment_author_url_nonce, + id: thisId, + url: thisUrl + }; + $.ajax({ + url: ajaxurl, + type: 'POST', + data: data, + beforeSend: function () { + // Show temp status + $("#author_comment_url_"+ thisId).html( $( '<span/>' ).text( WPAkismet.strings['Re-adding...'] ) ); + }, + success: function (response) { + if (response) { + // Add "x" link + $("a[commentid='"+ thisId +"']").show(); + // Show link. Core strips leading http://, so let's do that too. + $("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').text( thisUrl.replace( /^http:\/\/(www\.)?/ig, '' ) ); + } + } + }); + + return false; + }); + + // Show a preview image of the hovered URL. Applies to author URLs and URLs inside the comments. + $( '#the-comment-list' ).on( 'mouseover', mshotEnabledLinkSelector, function () { + clearTimeout( mshotRemovalTimer ); + + if ( $( '.akismet-mshot' ).length > 0 ) { + if ( $( '.akismet-mshot:first' ).data( 'link' ) == this ) { + // The preview is already showing for this link. + return; + } + else { + // A new link is being hovered, so remove the old preview. + $( '.akismet-mshot' ).remove(); + } + } + + clearTimeout( mshotSecondTryTimer ); + clearTimeout( mshotThirdTryTimer ); + + var thisHref = $( this ).attr( 'href' ); + + var mShot = $( '<div class="akismet-mshot mshot-container"><div class="mshot-arrow"></div><img src="' + akismet_mshot_url( thisHref ) + '" width="450" height="338" class="mshot-image" /></div>' ); + mShot.data( 'link', this ); + + var offset = $( this ).offset(); + + mShot.offset( { + left : Math.min( $( window ).width() - 475, offset.left + $( this ).width() + 10 ), // Keep it on the screen if the link is near the edge of the window. + top: offset.top + ( $( this ).height() / 2 ) - 101 // 101 = top offset of the arrow plus the top border thickness + } ); + + // These retries appear to be superfluous if .mshot-image has already loaded, but it's because mShots + // can return a "Generating thumbnail..." image if it doesn't have a thumbnail ready, so we need + // to retry to see if we can get the newly generated thumbnail. + mshotSecondTryTimer = setTimeout( function () { + mShot.find( '.mshot-image' ).attr( 'src', akismet_mshot_url( thisHref, 2 ) ); + }, 6000 ); + + mshotThirdTryTimer = setTimeout( function () { + mShot.find( '.mshot-image' ).attr( 'src', akismet_mshot_url( thisHref, 3 ) ); + }, 12000 ); + + $( 'body' ).append( mShot ); + } ).on( 'mouseout', 'a[id^="author_comment_url"], tr.pingback td.column-author a:first-of-type, td.comment p a', function () { + mshotRemovalTimer = setTimeout( function () { + clearTimeout( mshotSecondTryTimer ); + clearTimeout( mshotThirdTryTimer ); + + $( '.akismet-mshot' ).remove(); + }, 200 ); + } ).on( 'mouseover', 'tr', function () { + // When the mouse hovers over a comment row, begin preloading mshots for any links in the comment or the comment author. + var linksToPreloadMshotsFor = $( this ).find( mshotEnabledLinkSelector ); + + linksToPreloadMshotsFor.each( function () { + // Don't attempt to preload an mshot for a single link twice. Browser caching should cover this, but in case of + // race conditions, save a flag locally when we've begun trying to preload one. + if ( ! $( this ).data( 'akismet-mshot-preloaded' ) ) { + akismet_preload_mshot( $( this ).attr( 'href' ) ); + $( this ).data( 'akismet-mshot-preloaded', true ); + } + } ); + } ); + + $( '.checkforspam' ).click( function( e ) { + e.preventDefault(); + + if ( $( this ).hasClass( 'button-disabled' ) ) { + window.location.href = $( this ).data( 'success-url' ).replace( '__recheck_count__', 0 ).replace( '__spam_count__', 0 ); + return; + } + + $('.checkforspam').addClass('button-disabled').addClass( 'checking' ); + $('.checkforspam-spinner').addClass( 'spinner' ).addClass( 'is-active' ); + + // Update the label on the "Check for Spam" button to use the active "Checking for Spam" language. + $( '.checkforspam .akismet-label' ).text( $( '.checkforspam' ).data( 'active-label' ) ); + + akismet_check_for_spam(0, 100); + }); + + var spam_count = 0; + var recheck_count = 0; + + function akismet_check_for_spam(offset, limit) { + var check_for_spam_buttons = $( '.checkforspam' ); + + // We show the percentage complete down to one decimal point so even queues with 100k + // pending comments will show some progress pretty quickly. + var percentage_complete = Math.round( ( recheck_count / check_for_spam_buttons.data( 'pending-comment-count' ) ) * 1000 ) / 10; + + // Update the progress counter on the "Check for Spam" button. + $( '.checkforspam-progress' ).text( check_for_spam_buttons.data( 'progress-label-format' ).replace( '%1$s', percentage_complete ) ); + + $.post( + ajaxurl, + { + 'action': 'akismet_recheck_queue', + 'offset': offset, + 'limit': limit + }, + function(result) { + recheck_count += result.counts.processed; + spam_count += result.counts.spam; + + if (result.counts.processed < limit) { + window.location.href = check_for_spam_buttons.data( 'success-url' ).replace( '__recheck_count__', recheck_count ).replace( '__spam_count__', spam_count ); + } + else { + // Account for comments that were caught as spam and moved out of the queue. + akismet_check_for_spam(offset + limit - result.counts.spam, limit); + } + } + ); + } + + if ( "start_recheck" in WPAkismet && WPAkismet.start_recheck ) { + $( '.checkforspam' ).click(); + } + + if ( typeof MutationObserver !== 'undefined' ) { + // Dynamically add the "X" next the the author URL links when a comment is quick-edited. + var comment_list_container = document.getElementById( 'the-comment-list' ); + + if ( comment_list_container ) { + var observer = new MutationObserver( function ( mutations ) { + for ( var i = 0, _len = mutations.length; i < _len; i++ ) { + if ( mutations[i].addedNodes.length > 0 ) { + akismet_enable_comment_author_url_removal(); + + // Once we know that we'll have to check for new author links, skip the rest of the mutations. + break; + } + } + } ); + + observer.observe( comment_list_container, { attributes: true, childList: true, characterData: true } ); + } + } + + function akismet_enable_comment_author_url_removal() { + $( '#the-comment-list' ) + .find( 'tr.comment, tr[id ^= "comment-"]' ) + .find( '.column-author a[href^="http"]:first' ) // Ignore mailto: links, which would be the comment author's email. + .each(function () { + if ( $( this ).parent().find( '.akismet_remove_url' ).length > 0 ) { + return; + } + + var linkHref = $(this).attr( 'href' ); + + // Ignore any links to the current domain, which are diagnostic tools, like the IP address link + // or any other links another plugin might add. + var currentHostParts = document.location.href.split( '/' ); + var currentHost = currentHostParts[0] + '//' + currentHostParts[2] + '/'; + + if ( linkHref.indexOf( currentHost ) != 0 ) { + var thisCommentId = $(this).parents('tr:first').attr('id').split("-"); + + $(this) + .attr("id", "author_comment_url_"+ thisCommentId[1]) + .after( + $( '<a href="#" class="akismet_remove_url">x</a>' ) + .attr( 'commentid', thisCommentId[1] ) + .attr( 'title', WPAkismet.strings['Remove this URL'] ) + ); + } + }); + } + + /** + * Generate an mShot URL if given a link URL. + * + * @param string linkUrl + * @param int retry If retrying a request, the number of the retry. + * @return string The mShot URL; + */ + function akismet_mshot_url( linkUrl, retry ) { + var mshotUrl = '//s0.wordpress.com/mshots/v1/' + encodeURIComponent( linkUrl ) + '?w=900'; + + if ( retry ) { + mshotUrl += '&r=' + encodeURIComponent( retry ); + } + + return mshotUrl; + } + + /** + * Begin loading an mShot preview of a link. + * + * @param string linkUrl + */ + function akismet_preload_mshot( linkUrl ) { + var img = new Image(); + img.src = akismet_mshot_url( linkUrl ); + } + + /** + * Sets the comment form privacy notice display to hide when one clicks Core's dismiss button on the related admin notice. + */ + $( '#akismet-privacy-notice-admin-notice' ).on( 'click', '.notice-dismiss', function(){ + $.ajax({ + url: './options-general.php?page=akismet-key-config&akismet_comment_form_privacy_notice=hide', + }); + }); + + $( ".akismet-could-be-primary" ).each( function () { + var form = $( this ).closest( 'form' ); + + form.data( 'initial-state', form.serialize() ); + + form.on( 'change keyup', function () { + var self = $( this ); + var submit_button = self.find( ".akismet-could-be-primary" ); + + if ( self.serialize() != self.data( 'initial-state' ) ) { + submit_button.addClass( "akismet-is-primary" ); + } + else { + submit_button.removeClass( "akismet-is-primary" ); + } + } ); + } ); +}); diff --git a/plugins/akismet/_inc/form.js b/plugins/akismet/_inc/form.js new file mode 100644 index 00000000..3a5be8af --- /dev/null +++ b/plugins/akismet/_inc/form.js @@ -0,0 +1,30 @@ +var ak_js = document.getElementById( "ak_js" ); + +if ( ! ak_js ) { + ak_js = document.createElement( 'input' ); + ak_js.setAttribute( 'id', 'ak_js' ); + ak_js.setAttribute( 'name', 'ak_js' ); + ak_js.setAttribute( 'type', 'hidden' ); +} +else { + ak_js.parentNode.removeChild( ak_js ); +} + +ak_js.setAttribute( 'value', ( new Date() ).getTime() ); + +var commentForm = document.getElementById( 'commentform' ); + +if ( commentForm ) { + commentForm.appendChild( ak_js ); +} +else { + var replyRowContainer = document.getElementById( 'replyrow' ); + + if ( replyRowContainer ) { + var children = replyRowContainer.getElementsByTagName( 'td' ); + + if ( children.length > 0 ) { + children[0].appendChild( ak_js ); + } + } +}
\ No newline at end of file diff --git a/plugins/akismet/_inc/img/logo-full-2x.png b/plugins/akismet/_inc/img/logo-full-2x.png Binary files differnew file mode 100644 index 00000000..79545854 --- /dev/null +++ b/plugins/akismet/_inc/img/logo-full-2x.png |