98 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*  Copyright 2014-2016 Presslabs SRL <ping@presslabs.com>
 | |
| 
 | |
|     This program is free software; you can redistribute it and/or modify
 | |
|     it under the terms of the GNU General Public License, version 2, as
 | |
|     published by the Free Software Foundation.
 | |
| 
 | |
|     This program is distributed in the hope that it will be useful,
 | |
|     but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|     GNU General Public License for more details.
 | |
| 
 | |
|     You should have received a copy of the GNU General Public License
 | |
|     along with this program; if not, write to the Free Software
 | |
|     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | |
| */
 | |
| 
 | |
| class Gitium_Menu {
 | |
| 
 | |
| 	public $gitium_menu_slug   = 'gitium/gitium.php';
 | |
| 	public $commits_menu_slug  = 'gitium/gitium-commits.php';
 | |
| 	public $settings_menu_slug = 'gitium/gitium-settings.php';
 | |
| 
 | |
| 	public $git = null;
 | |
| 
 | |
| 	public $menu_slug;
 | |
| 	public $submenu_slug;
 | |
| 
 | |
| 	public function __construct( $menu_slug, $submenu_slug ) {
 | |
| 		global $git;
 | |
| 		$this->git = $git;
 | |
| 
 | |
| 		$this->menu_slug    = $menu_slug;
 | |
| 		$this->submenu_slug = $submenu_slug;
 | |
| 	}
 | |
| 
 | |
| 	public function redirect( $message = '', $success = false, $menu_slug = '' ) {
 | |
| 		$message_id = substr(
 | |
| 			md5( str_shuffle( 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' ) . time() ), 0, 8
 | |
| 		);
 | |
| 		if ( $message ) {
 | |
| 			set_transient( 'message_' . $message_id, $message, 900 );
 | |
| 		}
 | |
| 		if ( '' === $menu_slug ) { $menu_slug = $this->menu_slug; }
 | |
| 		$url = network_admin_url( 'admin.php?page=' . $menu_slug );
 | |
| 		$url = esc_url_raw( add_query_arg(
 | |
| 			array(
 | |
| 				'message' => $message_id,
 | |
| 				'success' => $success,
 | |
| 			),
 | |
| 			$url
 | |
| 		) );
 | |
| 		wp_safe_redirect( $url );
 | |
| 		exit;
 | |
| 	}
 | |
| 
 | |
| 	public function success_redirect( $message = '', $menu_slug = '' ) {
 | |
| 		$this->redirect( $message, true, $menu_slug );
 | |
| 	}
 | |
| 
 | |
| 	public function disconnect_repository() {
 | |
|         $gitium_disconnect_repo = filter_input(INPUT_POST, 'GitiumSubmitDisconnectRepository', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
 | |
| 
 | |
| 		if ( ! isset( $gitium_disconnect_repo ) ) {
 | |
| 			return;
 | |
| 		}
 | |
| 		check_admin_referer( 'gitium-admin' );
 | |
| 		gitium_uninstall_hook();
 | |
| 		if ( ! $this->git->remove_remote() ) {
 | |
| 			$this->redirect( __('Could not remove remote.', 'gitium') );
 | |
| 		}
 | |
| 		$this->success_redirect( __('You are now disconnected from the repository. New key pair generated.', 'gitium') );
 | |
| 	}
 | |
| 
 | |
| 	public function show_message() {
 | |
| 	    $get_message = filter_input(INPUT_GET, 'message', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
 | |
| 	    $get_success = filter_input(INPUT_GET, 'success', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
 | |
| 		if ( isset( $get_message ) && $get_message ) {
 | |
| 			$type    = ( isset( $get_success ) && $get_success == 1 ) ? 'updated' : 'error';
 | |
| 			$message = get_transient( 'message_'. $get_message );
 | |
| 			if ( $message  ) : ?>
 | |
| 				<div class="<?php echo esc_attr( $type ); ?>"><p><?php echo esc_html( $message ); ?></p></div>
 | |
| 			<?php endif;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	protected function show_disconnect_repository_button() {
 | |
| 		?>
 | |
| 		<form name="gitium_form_disconnect" id="gitium_form_disconnect" action="" method="POST">
 | |
| 			<?php
 | |
| 				wp_nonce_field( 'gitium-admin' );
 | |
| 		  ?>
 | |
| 			<input type="submit" name="GitiumSubmitDisconnectRepository" value='<?php _e( 'Disconnect from repo', 'gitium' ); ?>' class="button secondary" onclick="return confirm('<?php _e( 'Are you sure you want to disconnect from the remote repository?', 'gitium' ); ?>')"/> 
 | |
| 		</form>
 | |
| 		<?php
 | |
| 	}
 | |
| }
 |