<?php
/*!
 * Jetpack CRM
 * https://jetpackcrm.com
 *
 * WooSync: Admin: Connection edit page
 *
 */
namespace Automattic\JetpackCRM;

// block direct access
defined( 'ZEROBSCRM_PATH' ) || exit( 0 );

/**
 * Page: Connection edit page
 */
function jpcrm_settings_page_html_woosync_connection_edit() {

	global $zbs;

	$settings = $zbs->modules->woosync->settings->getAll();

	if ( isset( $_GET['site_key'] ) ){

		$site_key = sanitize_text_field( $_GET['site_key'] );

		// retrieve connected store
		$sync_site = $zbs->modules->woosync->get_active_sync_site( $site_key );

	}

	if ( !isset( $sync_site ) || !is_array( $sync_site ) ){

		// fail
		echo zeroBSCRM_UI2_messageHTML( 'warning', '', __( 'No such connection exists.', 'zero-bs-crm' ), 'info' );

	} else {

		// process any updates
		if ( isset( $_POST['edit_connection'] ) ){


		    // check nonce
		    check_admin_referer( 'woosync-connection-edit' );


		    // process data
		    $sync_site['key'] = ( isset( $_POST['woosync_key'] ) ? sanitize_text_field( $_POST['woosync_key'] ) : '' );
		    $sync_site['secret'] = ( isset( $_POST['woosync_secret'] ) ? sanitize_text_field( $_POST['woosync_secret'] ) : '' );
		    $sync_site['prefix'] = ( isset( $_POST['woosync_prefix'] ) ? sanitize_text_field( $_POST['woosync_prefix'] ) : '' );		    

		    // verify (ideally we'd say 'these connection settings don't work, are you sure', but for now let's keep it simple)
		    $verified_change = $zbs->modules->woosync->verify_api_connection( '', $sync_site['domain'],$sync_site['key'], $sync_site['secret'] );

		    // update
		    $sync_site['site_key'] = $site_key;
			$zbs->modules->woosync->update_sync_site( $sync_site );
			$connection_updated = true;

			// reload connected store
			$sync_site = $zbs->modules->woosync->get_active_sync_site( $site_key );

		}


		// normal page 
		switch ( $sync_site['mode'] ){

			case JPCRM_WOO_SYNC_MODE_LOCAL:

				$site_title = __( 'Local', 'zero-bs-crm' );

				break;

			case JPCRM_WOO_SYNC_MODE_API:

				$site_title = __( 'External', 'zero-bs-crm' );

				break;

		}


		?>

		<p><?php echo wp_kses( sprintf( __( 'From this page you can edit connection details for a connection between Jetpack CRM and one or more WooCommerce stores. <a href="%s" target="_blank">Read more about connecting Jetpack CRM to WooCommerce</a>.', 'zero-bs-crm' ), esc_url( $zbs->urls['connect-multi-woo'] ) ), $zbs->acceptable_restricted_html ); ?></p>

		<h3 style="text-align: center;" class="ui blue header"><?php echo sprintf( esc_html__( 'Edit %s WooCommerce Connection', 'zero-bs-crm' ), esc_html( $site_title ) ); ?></h3>
		
		<?php if ( isset( $connection_updated ) ){

			$connection_message = __( 'Your connection settings have been updated. Your new connection settings have been verified.', 'zero-bs-crm' );

			if ( !$verified_change ){

				$connection_message = __( 'Your connection settings have been updated with one Warning: Your new connection settings could not be verified.', 'zero-bs-crm' );

			}

			echo zeroBSCRM_UI2_messageHTML( 'info', __( 'Connection Updated', 'zero-bs-crm' ), $connection_message );

		} ?>

		<form method="post">
		    <input type="hidden" name="edit_connection" id="edit_connection" value="1" />
		    <?php
		    // add nonce
		    wp_nonce_field( 'woosync-connection-edit');
		    ?>
			<table class="table table-striped wtab">
				<tbody>
			        <tr>
			            <td class="wfieldname"><label for="woosync_mode"><?php esc_html_e( 'Mode','zero-bs-crm' ); ?>:</label></td>
			            <td style="width:540px"><?php 

							switch ( $sync_site['mode'] ){

								case JPCRM_WOO_SYNC_MODE_LOCAL:

									echo '<span class="ui label teal"><i class="home icon"></i> ' . esc_html__( 'Local', 'zero-bs-crm' ) . '</span>';

									break;

								case JPCRM_WOO_SYNC_MODE_API:

									echo '<span class="ui label blue"><i class="plug icon"></i> ' . esc_html__( 'External', 'zero-bs-crm' ) . '</span>';

									break;

							}

			            ?></td>
			        </tr>
			        <tr>
			            <td class="wfieldname"><label for="woosync_domain"><?php esc_html_e( 'Store domain', 'zero-bs-crm' ); ?>:</label></td>
			            <td style="width:540px"><?php echo esc_html( $sync_site['domain'] ); ?></td>
			        </tr><?php 

							switch ( $sync_site['mode'] ){

								case JPCRM_WOO_SYNC_MODE_LOCAL:

								// Local sites, no editing of the key/secret

									?>
					<tr style="display:none">
			            <td colspan="2">
			            	<input type="hidden" name="woosync_key" id="woosync_key" value="<?php if (isset($sync_site['key']) && !empty($sync_site['key'])) echo esc_attr( $sync_site['key'] ); ?>" />
			            	<input type="hidden" name="woosync_secret" id="woosync_secret" value="<?php if (isset($sync_site['secret']) && !empty($sync_site['secret'])) echo esc_attr( $sync_site['secret'] ); ?>" />
			            </td>
			        </tr>

		        				<?php
									break;

								case JPCRM_WOO_SYNC_MODE_API:

								// External sites can edit the key and secret

									?>
					<tr>
			            <td class="wfieldname"><label for="woosync_key"><?php esc_html_e( 'API Key', 'zero-bs-crm' ); ?>:</label></td>
			            <td style="width:540px"><input type="text" class="winput form-control" name="woosync_key" id="woosync_key" value="<?php if (isset($sync_site['key']) && !empty($sync_site['key'])) echo esc_attr( $sync_site['key'] ); ?>" placeholder="e.g. ck_99966f77a8e9ace9efb689a6fa7f5334ac9ea645" /></td>
			        </tr>
			       	<tr>
			            <td class="wfieldname"><label for="woosync_secret"><?php esc_html_e( 'API Secret', 'zero-bs-crm' ); ?>:</label></td>
			            <td style="width:540px"><input type="text" class="winput form-control" name="woosync_secret" id="woosync_secret" value="<?php if (isset($sync_site['secret']) && !empty($sync_site['secret'])) echo esc_attr( $sync_site['secret'] ); ?>" placeholder="e.g. cs_9994bcfb20e188073b609650487736196d841015" /></td>
			        </tr>

		        				<?php
									break;

							}

			            ?>
			       	<tr>
			            <td class="wfieldname"><label for="woosync_prefix"><?php esc_html_e('Order Prefix','zero-bs-crm'); ?>:</label></td>
			            <td style="width:540px"><input type="text" class="winput form-control" name="woosync_prefix" id="woosync_prefix" value="<?php if (isset($sync_site['prefix']) && !empty($sync_site['prefix'])) echo esc_attr( $sync_site['prefix'] ); ?>" placeholder="e.g. example_" /></td>
			        </tr>
				</tbody>
				<tfoot>

					<tr>
						<td colspan="2" class="wmid" style="padding-top:1.5em">
							<button class="ui blue button" id="jpcrm-woosync-save-connection-details" type="submit"><?php esc_html_e( 'Update Connection', 'zero-bs-crm' ); ?></button>
							<?php

								echo sprintf(
									'<a href="%s&tab=%s&subtab=%s" class="ui basic button" style="margin-top:1em">%s</a>',
									jpcrm_esc_link( $zbs->slugs['settings'] ),
									esc_attr( $zbs->modules->woosync->slugs['settings'] ),
									esc_attr( $zbs->modules->woosync->slugs['settings_connections'] ),
									esc_html__( 'Back to Store Connections', 'zero-bs-crm' )
								);

							?>
						</td>
					</tr>

				</tfoot>
			</table>
		</form>

		<script type="text/javascript">

			jQuery(document).ready(function(){

			});


		</script>

		<?php

	} // / normal page load
}
