diff --git a/includes/class-mastodon-admin.php b/includes/class-mastodon-admin.php index 41ca6c4..0b0dd3e 100644 --- a/includes/class-mastodon-admin.php +++ b/includes/class-mastodon-admin.php @@ -156,7 +156,7 @@ public function process_admin() { $tab = isset( $_GET['tab'] ) ? sanitize_key( $_GET['tab'] ) : 'welcome'; if ( isset( $_POST['app'] ) ) { $app = Mastodon_App::get_by_client_id( sanitize_text_field( wp_unslash( $_POST['app'] ) ) ); - if ( $app ) { + if ( $app && ! is_wp_error( $app ) ) { return $this->process_admin_app_page( $app ); } $tab = 'registered-apps'; @@ -182,7 +182,7 @@ public function admin_page() { $tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'welcome'; if ( isset( $_GET['app'] ) ) { $app = Mastodon_App::get_by_client_id( sanitize_text_field( wp_unslash( $_GET['app'] ) ) ); - if ( $app ) { + if ( $app && ! is_wp_error( $app ) ) { return $this->admin_app_page( $app ); } $tab = 'registered-apps'; diff --git a/templates/app.php b/templates/app.php index 72c2fdd..2842b74 100644 --- a/templates/app.php +++ b/templates/app.php @@ -295,9 +295,6 @@ function updatePostFormatDropdown( el ) { const options = postFormatSelect.querySelectorAll( 'option' ); for ( const option of options ) { - if ( option.value === '' ) { - option.textContent = option.textContent.replace( /\(.*\)/, '(' + postFormats[0].nextSibling.textContent.trim() + ')' ); - } if ( option.value === el.value ) { option.disabled = ! el.checked; if ( ! el.checked && postFormatSelect.value === el.value ) { @@ -305,12 +302,15 @@ function updatePostFormatDropdown( el ) { } } } + const selectedPostFormat = postFormats.length ? postFormats[0] : document.querySelector( '.post-formats input[type="checkbox"]' ); + options[0].textContent = options[0].textContent.replace( /\(.*\)/, '(' + selectedPostFormat.nextSibling.textContent.trim() + ')' ); } if ( event.target.matches( '.post-formats input[type="checkbox"]' ) ) { return updatePostFormatDropdown( event.target ); } if ( event.target.id === 'toggle_all_post_formats' ) { + event.preventDefault(); document.querySelectorAll( '.post-formats input[type="checkbox"]' ).forEach( function ( element ) { element.checked = ! element.checked; updatePostFormatDropdown( element );