/**
* wpv_admin_menu_views_listing_page
*
* Creates the main structure of the Views admin listing page: wrapper and header
*
*/
function wpv_admin_menu_views_listing_page()
{
    ?>
	<div class="wrap toolset-views">

		<div class="wpv-views-listing-page">
			<?php 
    // 'trash' or 'publish'
    $current_post_status = wpv_getget('status', 'publish', array('trash', 'publish'));
    $search_term = urldecode(sanitize_text_field(wpv_getget('s')));
    // IDs of possible results and counts per post status
    $views_pre_query_data = wpv_prepare_view_listing_query('normal', $current_post_status);
    // Do we have any Views at all?
    $has_views = $views_pre_query_data['total_count'] > 0;
    // general nonce
    // TODO please do NOT use this general nonce
    wp_nonce_field('work_views_listing', 'work_views_listing');
    ?>
			<div id="icon-views" class="icon32"></div>
			<h2><!-- classname wpv-page-title removed -->
				<?php 
    _e('Views', 'wpv-views');
    printf(' <a href="#" class="add-new-h2 js-wpv-views-add-new-top">%s</a>', __('Add new View', 'wpv-views'));
    // TODO maybe have this nonce as a data attribute for all buttons opening the popup
    wp_nonce_field('wp_nonce_create_view_wrapper', 'wp_nonce_create_view_wrapper');
    if (!empty($search_term)) {
        if ('trash' == $current_post_status) {
            $search_message = __('Search results for "%s" in trashed Views', 'wpv-views');
        } else {
            $search_message = __('Search results for "%s"', 'wpv-views');
        }
        ?>
							<span class="subtitle">
								<?php 
        echo sprintf($search_message, $search_term);
        ?>
							</span>
						<?php 
    }
    ?>
			</h2>

			<?php 
    // Messages: trashed, untrashed, deleted
    add_filter('wpv_maybe_show_listing_message_undo', 'wpv_admin_view_listing_message_undo', 10, 3);
    wpv_maybe_show_listing_message('trashed', __('View moved to the Trash.', 'wpv-views'), __('%d Views moved to the Trash.', 'wpv-views'), true);
    wpv_maybe_show_listing_message('untrashed', __('View restored from the Trash.', 'wpv-views'), __('%d Views restored from the Trash.', 'wpv-views'));
    wpv_maybe_show_listing_message('deleted', __('View permanently deleted.', 'wpv-views'), __('%d Views permanently deleted.', 'wpv-views'));
    if ($has_views) {
        // Display the rest of the content if there are Views to list
        wpv_admin_view_listing_table($views_pre_query_data, $current_post_status);
    } else {
        // Show a message in any other case
        ?>
						<div class="wpv-view-not-exist js-wpv-view-not-exist">
							<p><?php 
        _e('Views load content from the database and display on the site.');
        ?>
</p>
							<p>
								<a class="button js-wpv-views-add-first" href="#">
									<i class="icon-plus"></i>
									<?php 
        _e('Create your first View', 'wpv-views');
        ?>
								</a>
							</p>
						</div>
					<?php 
    }
    ?>

		</div> <!-- .wpv-views-listing-page" -->

	</div> <!-- .toolset-views" -->

	<?php 
    wpv_render_view_listing_dialog_templates();
}
/**
* wpv_admin_archive_listing_page
*
* Creates the main structure of the WPA admin listing page: wrapper and header
*
*/
function wpv_admin_archive_listing_page() {

	global $WPV_view_archive_loop;
	?>
	<div class="wrap toolset-views">

        <!-- wpv-views-listing-archive-page can be removed -->
        <div class="wpv-views-listing-page wpv-views-listing-archive-page" data-none-message="<?php _e("This WordPress Archive isn't being used for any loops.",'wpv-views') ?>" >
			<?php
				// 'trash' or 'publish'
				$current_post_status = wpv_getget( 'status', 'publish', array( 'trash', 'publish' ) );
				$search_term = urldecode( sanitize_text_field( wpv_getget( 's' ) ) );
				$arrange_by_usage = ( sanitize_text_field( wpv_getget( 'arrangeby' ) ) == 'usage' );
				
				wp_nonce_field( 'work_views_listing', 'work_views_listing' );
				wp_nonce_field( 'wpv_remove_view_permanent_nonce', 'wpv_remove_view_permanent_nonce' );
			?>
		
			<div id="icon-views" class="icon32"></div>
			<h2><!-- classname wpv-page-title removed -->
				<?php _e( 'WordPress Archives', 'wpv-views' ); ?>

					<a href="#" class="add-new-h2 page-title-action js-wpv-views-archive-add-new wpv-views-archive-add-new">
						<?php _e('Add new WordPress Archive','wpv-views') ?>
					</a>
					<?php

					if ( !empty( $search_term ) ) {
						$search_message = __('Search results for "%s"','wpv-views');
						if ( 'trash' == $current_post_status ) {
							$search_message = __('Search results for "%s" in trashed WordPress Archives', 'wpv-views');
						}
						?>
							<span class="subtitle">
								<?php echo sprintf( $search_message, $search_term ); ?>
							</span>
						<?php
					}
				?>
			</h2>

			<?php
				// Messages: trashed, untrashed, deleted

				// We can reuse the function from Views listing (there's a note saying we're doing that).
				add_filter( 'wpv_maybe_show_listing_message_undo', 'wpv_admin_view_listing_message_undo', 10, 3 );

				wpv_maybe_show_listing_message(
						'trashed', __( 'WordPress Archive moved to the Trash.', 'wpv-views' ), __( '%d WordPress Archives moved to the Trash.', 'wpv-views' ), true );
				wpv_maybe_show_listing_message(
						'untrashed', __( 'WordPress Archive restored from the Trash.', 'wpv-views' ), __( '%d WordPress Archives restored from the Trash.', 'wpv-views' ) );
				wpv_maybe_show_listing_message(
						'deleted', __( 'WordPress Archive permanently deleted.', 'wpv-views' ), __( '%d WordPress Archives permanently deleted.', 'wpv-views' ) );

				// "Arrange by" tabs
				?>
			
				<div class="wpv-admin-tabs">
					<ul class="wpv-admin-tabs-links">
						<li>
							<a href="<?php echo esc_url( add_query_arg( array( 'page' => 'view-archives' ), admin_url( 'admin.php' ) ) ); ?>"
									<?php wpv_current_class( ! $arrange_by_usage ); ?> >
								<?php _e( 'Arrange by name', 'wpv-views' ); ?>
							</a>
						</li>
						<li>
							<a href="<?php echo esc_url( add_query_arg( array( 'page' => 'view-archives', 'arrangeby' => 'usage' ), admin_url( 'admin.php' ) ) ); ?>"
									<?php wpv_current_class( $arrange_by_usage ); ?> >
								<?php _e( 'Arrange by usage', 'wpv-views' ); ?>
							</a>
						</li>
					</ul>
				</div>

            <?php
				if ( $arrange_by_usage ) {

					// Show table arranged by Usage
					wp_nonce_field( 'wpv_wp_archive_arrange_usage', 'wpv_wp_archive_arrange_usage' );

					if ( !$WPV_view_archive_loop->check_archive_loops_exists() ) {
						?>
						<p id="js-wpv-no-archive" class="toolset-alert toolset-alert-success update below-h2">
							<?php _e('All loops have a WordPress Archive assigned','wpv-views'); ?>
						</p>
						<?php
					}

					wpv_admin_wordpress_archives_listing_table_by_usage();

					?>
					<p class="add-new-view js-add-new-view">
						<a class="button js-wpv-views-archive-add-new wpv-views-archive-add-new" href="#">
							<i class="icon-plus"></i><?php _e('Add new WordPress Archive','wpv-views') ?>
						</a>
					</p>
					<?php

				} else {

					// IDs of possible results and counts per post status.
					$views_pre_query_data = wpv_prepare_view_listing_query( array( 'archive', 'layouts-loop' ), $current_post_status );

					// Do we have any Views at all?
					$has_items = ( $views_pre_query_data['total_count'] > 0 );

					// Show table arranged by item names
					if ( $has_items ) {

						wpv_admin_wordpress_archives_listing_table_by_name( $views_pre_query_data, $current_post_status );

					} else {
						// No items are present.
						
						if ( !$WPV_view_archive_loop->check_archive_loops_exists() ) {
							?>
							<p id="js-wpv-no-archive" class="toolset-alert toolset-alert-success">
								<?php _e('All loops have a WordPress Archive assigned','wpv-views'); ?>
							</p>
							<?php
						}

						?>
						<div class="wpv-view-not-exist js-wpv-view-not-exist">
							<p><?php _e( 'WordPress Archives let you customize the output of standard Archive pages.', 'wpv-views' );?></p>
							<p>
							<a class="button js-wpv-views-archive-create-new" href="#">
								<i class="icon-plus"></i>
								<?php _e( 'Create your first WordPress Archive', 'wpv-views' );?>
							</a>
							</p>
						</div>
						<?php
					}
				}
			?>
        </div> <!-- .wpv-settings-container" -->
	</div>
	<?php
}
function wpv_admin_menu_content_templates_listing_page() {
	?>
	<div class="wrap toolset-views">
		<div class="wpv-views-listing-page">
			<?php
				wp_nonce_field( 'work_view_template', 'work_view_template' );
				$search_term = isset( $_GET["s"] ) ? urldecode( sanitize_text_field($_GET["s"]) ) : '';
			?>
			<div id="icon-views" class="icon32"></div>
			<h2><!-- classname wpv-page-title removed -->
				<?php
					_e( 'Content Templates', 'wpv-views' );

					printf(
							' <a href="#" class="add-new-h2 page-title-action js-add-new-content-template" data-target="%s">%s</a>',
							esc_url( add_query_arg( array( 'action' => 'wpv_ct_create_new' ), admin_url( 'admin-ajax.php' ) ) ),
							__( 'Add new Content Template', 'wpv-views' ) );

					if ( !empty( $search_term ) ) {
						$search_message = __('Search results for "%s"','wpv-views');
						if ( isset( $_GET["status"] ) && 'trash' == sanitize_text_field( $_GET["status"] ) ) {
							$search_message = __('Search results for "%s" in trashed Content Templates', 'wpv-views');
						}
						?>
							<span class="subtitle">
								<?php echo sprintf( $search_message, $search_term ); ?>
							</span>
						<?php
					}
				?>
			</h2>

			<?php

				// Messages: trashed, untrashed, deleted
				add_filter( 'wpv_maybe_show_listing_message_undo', 'wpv_admin_ct_listing_message_undo', 10, 3 );

				wpv_maybe_show_listing_message(
						'trashed', __( 'Content Template moved to the Trash.', 'wpv-views' ),
						__( '%d Content Templates moved to the Trash.', 'wpv-views' ), true );
				wpv_maybe_show_listing_message(
						'untrashed', __( 'Content Template restored from the Trash.', 'wpv-views' ),
						__( '%d Content Templates restored from the Trash.', 'wpv-views' ) );
				wpv_maybe_show_listing_message(
						'deleted', __( 'Content Template permanently deleted.', 'wpv-views' ),
						__( '%d Content Templates permanently deleted.', 'wpv-views' ) );

				// Determine how should we arrange the items (what should be displayed)
				if ( isset( $_GET["arrangeby"] ) && sanitize_text_field( $_GET["arrangeby"] ) == 'usage' ) {
					$arrange_by = 'single';
					if ( isset( $_GET["usage"] ) ) {
						$arrange_by = sanitize_text_field($_GET["usage"]);
					}
				} else {
					$arrange_by = 'name';
				}
					
				// "Arrange by" tabs
				?>
					<div class="wpv-admin-tabs">
						<ul class="wpv-admin-tabs-links">
							<?php
								$tabs = array(
										'name' => __( 'Name','wpv-views' ),
										'single' => __( 'Usage for single page', 'wpv-views' ),
										'post-archives' => __( 'Usage for custom post archives', 'wpv-views' ),
										'taxonomy-archives' => __( 'Usage for taxonomy archives', 'wpv-views' ) );
										
								foreach( $tabs as $tab_slug => $tab_label ) {
									printf(
										'<li><a href="%s" %s>%s</a></li>',
										esc_url( add_query_arg(
											array(
													'page' => 'view-templates',
													'arrangeby' => ( 'name' == $tab_slug ) ? 'name' : 'usage',
													'usage' => $tab_slug ),
											admin_url( 'admin.php' ) ) ),
										wpv_current_class( $arrange_by, $tab_slug, false ),
										$tab_label );
								}
							?> 
						</ul>
					</div>				
				<?php

				// Render the actual listing
				if ( 'name' == $arrange_by ) {
					wpv_admin_content_template_listing_name();
				} else {
					wpv_admin_content_template_listing_usage( $arrange_by );
				}
				
			?>
		</div> <!-- .wpv-views-listing-page -->
	</div> <!-- .toolset-views -->
	<?php
}