<?php

namespace ElementPack;

use Elementor\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
} // Exit if accessed directly

class Admin {

	public function __construct() {
		add_action( 'admin_init', [ $this, 'admin_script' ] );
		add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ] );
		add_action( 'after_setup_theme', [ $this, 'whitelabel' ] );
	}

	/**
	 * You can easily add white label branding for extended license or multi site license. Don't try for regular license otherwise your license will be invalid.
	 * @return [type] [description]
	 * Define BDTEP_WL for execute white label branding
	 */
	public function whitelabel() {
		if ( defined( 'BDTEP_WL' ) ) {

			add_filter( 'gettext', [ $this, 'element_pack_name_change' ], 20, 3 );

			if ( defined( 'BDTEP_HIDE' ) ) {
				add_action( 'pre_current_active_plugins', [ $this, 'hide_element_pack' ] );
			}

		} else {
			add_filter( 'plugin_row_meta', [ $this, 'plugin_row_meta' ], 10, 2 );
			add_filter( 'plugin_action_links_' . BDTEP_PBNAME, [ $this, 'plugin_action_meta' ] );
		}
	}

	public function enqueue_styles() {

		$direction_suffix = is_rtl() ? '.rtl' : '';
		$suffix           = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';

		wp_register_style( 'element-pack-editor', BDTEP_ASSETS_URL . 'css/element-pack-editor' . $direction_suffix . '.css', [], BDTEP_VER );

		wp_enqueue_style( 'bdt-uikit', BDTEP_ASSETS_URL . 'css/bdt-uikit' . $direction_suffix . '.css', [], '3.2' );
		wp_enqueue_style( 'bdthemes-element-pack-admin', BDTEP_ASSETS_URL . 'css/admin' . $direction_suffix . '.css', [], BDTEP_VER );
		wp_enqueue_style( 'element-pack-editor' );

		wp_enqueue_script( 'bdt-uikit', BDTEP_ASSETS_URL . 'js/bdt-uikit' . $suffix . '.js', [ 'jquery' ], BDTEP_VER );


	}


	public function plugin_row_meta( $plugin_meta, $plugin_file ) {
		if ( BDTEP_PBNAME === $plugin_file ) {
			$row_meta = [
				'docs'  => '<a href="https://elementpack.pro/contact/" aria-label="' . esc_attr( __( 'Go for Get Support', 'bdthemes-element-pack' ) ) . '" target="_blank">' . __( 'Get Support', 'bdthemes-element-pack' ) . '</a>',
				'video' => '<a href="https://www.youtube.com/playlist?list=PLP0S85GEw7DOJf_cbgUIL20qqwqb5x8KA" aria-label="' . esc_attr( __( 'View Element Pack Video Tutorials', 'bdthemes-element-pack' ) ) . '" target="_blank">' . __( 'Video Tutorials', 'bdthemes-element-pack' ) . '</a>',
			];

			$plugin_meta = array_merge( $plugin_meta, $row_meta );
		}

		return $plugin_meta;
	}

	public function plugin_action_meta( $links ) {

		$links = array_merge( [ sprintf( '<a href="%s">%s</a>', element_pack_dashboard_link(), esc_html__( 'Settings', 'bdthemes-element-pack' ) ) ], $links );

		$links = array_merge( $links, [
			sprintf( '<a href="%s">%s</a>', element_pack_dashboard_link( '#license' ), esc_html__( 'License', 'bdthemes-element-pack' )
			)
		] );

		return $links;

	}

	//Change Element Pack Name
	public function element_pack_name_change( $translated_text, $text, $domain ) {
		switch ( $translated_text ) {
			case 'Element Pack' :
				$translated_text = BDTEP_TITLE;
				break;
		}

		return $translated_text;
	}

	//hiding plugins //still in testing purpose 
	public function hide_element_pack() {
		global $wp_list_table;
		$hide_plg_array = array( 'bdthemes-element-pack/bdthemes-element-pack.php' );
		$all_plugins    = $wp_list_table->items;

		foreach ( $all_plugins as $key => $val ) {
			if ( in_array( $key, $hide_plg_array ) ) {
				unset( $wp_list_table->items[ $key ] );
			}
		}
	}


	public function admin_script() {
		if ( is_admin() ) { // for Admin Dashboard Only
			// Embed the Script on our Plugin's Option Page Only
			if ( isset( $_GET['page'] ) && $_GET['page'] == 'element_pack_options' ) {
				wp_enqueue_script( 'jquery' );
				wp_enqueue_script( 'jquery-form' );
			}
		}
	}

}
