JAVASCRIPT   24

admin js

Guest on 8th July 2022 04:27:15 PM

  1. ( function( $, _ ) {
  2.         var submit               = $( document.getElementById( 'submit' ) ),
  3.                 notificationArea     = $( document.getElementById( 'adstxt-notification-area' ) ),
  4.                 notificationTemplate = wp.template( 'adstext-notice' ),
  5.                 editor               = wp.CodeMirror.fromTextArea( document.getElementById( 'adstxt_content' ), {
  6.                         lineNumbers: true,
  7.                         mode: 'shell'
  8.                 } );
  9.  
  10.         submit.on( 'click', function( e ){
  11.                 e.preventDefault();
  12.  
  13.                 var     textarea    = $( document.getElementById( 'adstxt_content' ) ),
  14.                         notices     = $( '.adstxt-notice' ),
  15.                         submit_wrap = $( 'p.submit' ),
  16.                         saveSuccess = false,
  17.                         spinner     = submit_wrap.find( '.spinner' );
  18.  
  19.                 submit.attr( 'disabled', 'disabled' );
  20.                 spinner.addClass( 'is-active' );
  21.  
  22.                 // clear any existing messages
  23.                 notificationArea.hide();
  24.                 notices.remove();
  25.  
  26.                 // Copy the code mirror contents into form for submission.
  27.                 textarea.val( editor.getValue() );
  28.  
  29.                 $.ajax({
  30.                         type: 'POST',
  31.                         dataType: 'json',
  32.                         url: ajaxurl,
  33.                         data: $( '.adstxt-settings-form' ).serialize(),
  34.                         success: function( r ) {
  35.                                 var templateData = {};
  36.  
  37.                                 spinner.removeClass( 'is-active' );
  38.  
  39.                                 if ( 'undefined' !== typeof r.sanitized ) {
  40.                                         textarea.val( r.sanitized );
  41.                                 }
  42.  
  43.                                 if ( 'undefined' !== typeof r.saved && r.saved ) {
  44.                                         saveSuccess = true;
  45.                                 } else {
  46.                                         templateData.errors = {
  47.                                                 'error_message': adstxt.unknown_error
  48.                                         }
  49.                                 }
  50.  
  51.                                 if ( 'undefined' !== typeof r.errors && r.errors.length > 0 ) {
  52.                                         templateData.errors = {
  53.                                                 'error_message': adstxt.error_message,
  54.                                                 'errors':        r.errors
  55.                                         }
  56.                                 }
  57.  
  58.                                 // Refresh after a successful save, otherwise show the error message.
  59.                                 if ( saveSuccess ) {
  60.                                         document.location = document.location + '&ads_txt_saved=1';
  61.                                 } else {
  62.                                         notificationArea.html( notificationTemplate( templateData ) ).show();
  63.                                 }
  64.  
  65.                         }
  66.                 })
  67.         });
  68.  
  69.         $( '.wrap' ).on( 'click', '#adstxt-ays-checkbox', function( e ) {
  70.                 if ( true === $( this ).prop( 'checked' ) ) {
  71.                         submit.removeAttr( 'disabled' );
  72.                 } else {
  73.                         submit.attr( 'disabled', 'disabled' );
  74.                 }
  75.         } );
  76.  
  77.         editor.on( 'change', function() {
  78.                 $( '.adstxt-ays' ).remove();
  79.                 submit.removeAttr( 'disabled' );
  80.         } );
  81.  
  82. } )( jQuery, _ );

Raw Paste


Login or Register to edit or fork this paste. It's free.