Version Description
- 2022-07-09
- fixed current_screen() bug
- fixed "icon_type" cannot be found bug
- introduction of the PRO version
- removed link scanner beta
Download this release
Release Info
Developer | WebFactory |
Plugin | WP External Links (nofollow new tab seo) |
Version | 2.55 |
Comparing to | |
See all releases |
Code changes from version 2.51 to 2.55
- includes/admin/class-wpel-network-page.php +4 -4
- includes/admin/class-wpel-settings-page.php +38 -13
- includes/admin/settings-fields/class-wpel-exit-confirmation-fields.php +257 -0
- includes/class-wpel-front.php +0 -12
- includes/class-wpel-linkhero.php +0 -297
- includes/class-wpel-plugin.php +28 -0
- includes/class-wpel-register-scripts.php +19 -20
- includes/register-hooks/class-wpel-deactivate.php +41 -0
- includes/register-hooks/class-wpel-uninstall.php +1 -0
- libs/fwp/class-fwp-html-fields.php +30 -0
- public/css/jquery.dataTables.min.css +0 -1
- public/css/wpel-admin-global.css +0 -32
- public/css/wpel-admin.css +222 -358
- public/images/icon-small.png +0 -0
- public/images/icon.png +0 -0
- public/images/link-checker.png +0 -0
- public/images/link-rules-new.png +0 -0
- public/images/link-rules.png +0 -0
- public/images/logo.png +0 -0
- public/js/jquery.dataTables.min.js +0 -184
- public/js/wpel-admin.js +145 -222
- public/js/wpel-link-highlighter.js +0 -38
- public/js/wpel-pointers.js +32 -0
- readme.txt +16 -6
- templates/partials/nav-tabs.php +5 -4
- templates/partials/tab-contents/link-checking.php +15 -109
- templates/partials/tab-contents/link-rules.php +26 -0
- templates/settings-page/main.php +108 -1
- templates/settings-page/tab-contents/exit-confirmation.php +23 -0
- wf-flyout/config.php +2 -0
- wf-flyout/icons/301-logo.png +0 -0
- wf-flyout/icons/wp-ssl.png +0 -0
- wf-flyout/icons/wpel.png +0 -0
- wf-flyout/wf-flyout.css +1 -1
- wf-flyout/wf-flyout.js +1 -1
- wf-flyout/wf-flyout.php +1 -1
- wp-external-links.php +6 -6
includes/admin/class-wpel-network-page.php
CHANGED
@@ -99,18 +99,18 @@ final class WPEL_Network_Page extends WPRun_Base_1x0x0
|
|
99 |
if ( '1' === $own_admin_menu ) {
|
100 |
$this->page_hook = add_menu_page(
|
101 |
__( 'WP External Links' , 'wp-external-links' ) // page title
|
102 |
-
, __( 'External Links' , 'wp-external-links' ) // menu title
|
103 |
, 'manage_network' // capability
|
104 |
, $this->menu_slug // menu slug
|
105 |
, $this->get_callback( 'show_network_page' ) // callback
|
106 |
-
, '
|
107 |
, null // position
|
108 |
);
|
109 |
} else {
|
110 |
$this->page_hook = add_submenu_page(
|
111 |
'settings.php' // parent slug
|
112 |
, __( 'WP External Links' , 'wp-external-links' ) // page title
|
113 |
-
, __( 'External Links' , 'wp-external-links' ) // menu title
|
114 |
, 'manage_options' // capability
|
115 |
, $this->menu_slug // menu slug
|
116 |
, $this->get_callback( 'show_network_page' ) // callback
|
@@ -132,7 +132,7 @@ final class WPEL_Network_Page extends WPRun_Base_1x0x0
|
|
132 |
wp_enqueue_style( 'wpel-admin-style' );
|
133 |
wp_enqueue_script( 'wpel-admin-script' );
|
134 |
}
|
135 |
-
|
136 |
wp_enqueue_style( 'wpel-admin-global-style' );
|
137 |
}
|
138 |
|
99 |
if ( '1' === $own_admin_menu ) {
|
100 |
$this->page_hook = add_menu_page(
|
101 |
__( 'WP External Links' , 'wp-external-links' ) // page title
|
102 |
+
, __( 'WP External Links' , 'wp-external-links' ) // menu title
|
103 |
, 'manage_network' // capability
|
104 |
, $this->menu_slug // menu slug
|
105 |
, $this->get_callback( 'show_network_page' ) // callback
|
106 |
+
, WPEL_PLUGIN_URL . '/public/images/icon-small.png' // icon // icon
|
107 |
, null // position
|
108 |
);
|
109 |
} else {
|
110 |
$this->page_hook = add_submenu_page(
|
111 |
'settings.php' // parent slug
|
112 |
, __( 'WP External Links' , 'wp-external-links' ) // page title
|
113 |
+
, __( 'WP External Links' , 'wp-external-links' ) // menu title
|
114 |
, 'manage_options' // capability
|
115 |
, $this->menu_slug // menu slug
|
116 |
, $this->get_callback( 'show_network_page' ) // callback
|
132 |
wp_enqueue_style( 'wpel-admin-style' );
|
133 |
wp_enqueue_script( 'wpel-admin-script' );
|
134 |
}
|
135 |
+
|
136 |
wp_enqueue_style( 'wpel-admin-global-style' );
|
137 |
}
|
138 |
|
includes/admin/class-wpel-settings-page.php
CHANGED
@@ -40,10 +40,6 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
40 |
$this->network_page = $network_page;
|
41 |
|
42 |
$this->tabs = array(
|
43 |
-
'link-checking' => array(
|
44 |
-
'title' => '<span class="dashicons dashicons-star-filled"></span>'.__('Link Checker', 'wp-external-links'),
|
45 |
-
'icon' => false,
|
46 |
-
),
|
47 |
'external-links' => array(
|
48 |
'title' => __('External Links', 'wp-external-links'),
|
49 |
'icon' => false,
|
@@ -64,11 +60,24 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
64 |
'icon' => false,
|
65 |
'fields' => $fields_objects['exceptions'],
|
66 |
),
|
67 |
-
'
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
'icon' => false,
|
70 |
-
|
71 |
-
|
|
|
|
|
|
|
72 |
'support' => array(
|
73 |
'title' => __('Support', 'wp-external-links'),
|
74 |
'icon' => false,
|
@@ -105,8 +114,9 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
105 |
$current_screen = get_current_screen();
|
106 |
if (!empty($current_screen) && $current_screen->id == 'toplevel_page_wpel-settings-page') {
|
107 |
$plugin_version = get_option('wpel-version');
|
108 |
-
$text = '<i>WP External Links v'
|
109 |
}
|
|
|
110 |
return $text;
|
111 |
} // admin_footer_text
|
112 |
|
@@ -121,8 +131,10 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
121 |
*/
|
122 |
function plugin_action_links($links)
|
123 |
{
|
124 |
-
$settings_link = '<a href="' . admin_url('admin.php?page=wpel-settings-page') . '" title="Open WP External Links Settings">Configure
|
|
|
125 |
|
|
|
126 |
array_unshift($links, $settings_link);
|
127 |
|
128 |
return $links;
|
@@ -137,6 +149,10 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
137 |
*/
|
138 |
public function get_option_value($key, $type = null)
|
139 |
{
|
|
|
|
|
|
|
|
|
140 |
if (null === $type) {
|
141 |
foreach ($this->tabs as $tab_key => $values) {
|
142 |
if (!isset($values['fields'])) {
|
@@ -172,7 +188,7 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
172 |
$this->page_hook = add_menu_page(
|
173 |
__('WP External Links', 'wp-external-links') // page title
|
174 |
,
|
175 |
-
__('External Links', 'wp-external-links') // menu title
|
176 |
,
|
177 |
$capability // capability
|
178 |
,
|
@@ -180,7 +196,7 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
180 |
,
|
181 |
$this->get_callback('show_admin_page') // callback
|
182 |
,
|
183 |
-
'
|
184 |
,
|
185 |
null // position
|
186 |
);
|
@@ -188,7 +204,7 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
188 |
$this->page_hook = add_options_page(
|
189 |
__('WP External Links', 'wp-external-links') // page title
|
190 |
,
|
191 |
-
__('External Links', 'wp-external-links') // menu title
|
192 |
,
|
193 |
$capability // capability
|
194 |
,
|
@@ -230,9 +246,18 @@ final class WPEL_Settings_Page extends WPRun_Base_1x0x0
|
|
230 |
if ($current_screen->id == 'toplevel_page_wpel-settings-page' || $current_screen->id == 'settings_page_wpel-settings-page') {
|
231 |
wp_enqueue_script('jquery-ui-core');
|
232 |
wp_enqueue_script('jquery-ui-accordion');
|
|
|
|
|
|
|
|
|
|
|
233 |
wp_enqueue_style('wpel-font-awesome');
|
234 |
wp_enqueue_style('wpel-admin-style');
|
235 |
wp_enqueue_script('wpel-admin-script');
|
|
|
|
|
|
|
|
|
236 |
wp_enqueue_style('jquery-ui-smoothness', 'https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css', false, null);
|
237 |
wp_enqueue_style('wpel-admin-font', 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,200;0,300;0,400;0,500;0,600;1,200;1,300;1,400;1,500;1,600&display=swap');
|
238 |
}
|
40 |
$this->network_page = $network_page;
|
41 |
|
42 |
$this->tabs = array(
|
|
|
|
|
|
|
|
|
43 |
'external-links' => array(
|
44 |
'title' => __('External Links', 'wp-external-links'),
|
45 |
'icon' => false,
|
60 |
'icon' => false,
|
61 |
'fields' => $fields_objects['exceptions'],
|
62 |
),
|
63 |
+
'link-rules' => array(
|
64 |
+
'title' => '<span class="dashicons dashicons-star-filled"></span>' . __('Link Rules', 'wp-external-links'),
|
65 |
+
'icon' => false,
|
66 |
+
),
|
67 |
+
|
68 |
+
'exit-confirmation' => array(
|
69 |
+
'title' => '<span class="dashicons dashicons-star-filled"></span>' . __('Exit Confirmation', 'wp-external-links'),
|
70 |
+
'icon' => false,
|
71 |
+
'fields' => $fields_objects['exit-confirmation'],
|
72 |
+
),
|
73 |
+
'link-checking' => array(
|
74 |
+
'title' => '<span class="dashicons dashicons-star-filled"></span>' . __('Link Checker', 'wp-external-links'),
|
75 |
'icon' => false,
|
76 |
+
),
|
77 |
+
'pro' => array(
|
78 |
+
'title' => __('PRO', 'wp-external-links'),
|
79 |
+
'icon' => false,
|
80 |
+
),
|
81 |
'support' => array(
|
82 |
'title' => __('Support', 'wp-external-links'),
|
83 |
'icon' => false,
|
114 |
$current_screen = get_current_screen();
|
115 |
if (!empty($current_screen) && $current_screen->id == 'toplevel_page_wpel-settings-page') {
|
116 |
$plugin_version = get_option('wpel-version');
|
117 |
+
$text = '<i>WP External Links v' . $plugin_version . ' by <a href="https://www.webfactoryltd.com?ref=wp-external-links" title="WebFactory Ltd" target="_blank">WebFactory Ltd</a>. Please <a target="_blank" href="https://wordpress.org/support/plugin/wp-external-links/reviews/#new-post" title="Rate the plugin">rate the plugin <span>★★★★★</span></a> to help us spread the word. Thank you 🙌</i>';
|
118 |
}
|
119 |
+
|
120 |
return $text;
|
121 |
} // admin_footer_text
|
122 |
|
131 |
*/
|
132 |
function plugin_action_links($links)
|
133 |
{
|
134 |
+
$settings_link = '<a href="' . admin_url('admin.php?page=wpel-settings-page') . '" title="Open WP External Links Settings">Configure</a>';
|
135 |
+
$pro_link = '<a href="' . admin_url('admin.php?page=wpel-settings-page#open-pro-dialog') . '" title="Get PRO version"><b>Get PRO</b></a>';
|
136 |
|
137 |
+
array_unshift($links, $pro_link);
|
138 |
array_unshift($links, $settings_link);
|
139 |
|
140 |
return $links;
|
149 |
*/
|
150 |
public function get_option_value($key, $type = null)
|
151 |
{
|
152 |
+
if ('own_admin_menu' == $key) {
|
153 |
+
return '1';
|
154 |
+
}
|
155 |
+
|
156 |
if (null === $type) {
|
157 |
foreach ($this->tabs as $tab_key => $values) {
|
158 |
if (!isset($values['fields'])) {
|
188 |
$this->page_hook = add_menu_page(
|
189 |
__('WP External Links', 'wp-external-links') // page title
|
190 |
,
|
191 |
+
__('WP External Links', 'wp-external-links') // menu title
|
192 |
,
|
193 |
$capability // capability
|
194 |
,
|
196 |
,
|
197 |
$this->get_callback('show_admin_page') // callback
|
198 |
,
|
199 |
+
WPEL_PLUGIN_URL . 'public/images/icon-small.png' // icon
|
200 |
,
|
201 |
null // position
|
202 |
);
|
204 |
$this->page_hook = add_options_page(
|
205 |
__('WP External Links', 'wp-external-links') // page title
|
206 |
,
|
207 |
+
__('WP External Links', 'wp-external-links') // menu title
|
208 |
,
|
209 |
$capability // capability
|
210 |
,
|
246 |
if ($current_screen->id == 'toplevel_page_wpel-settings-page' || $current_screen->id == 'settings_page_wpel-settings-page') {
|
247 |
wp_enqueue_script('jquery-ui-core');
|
248 |
wp_enqueue_script('jquery-ui-accordion');
|
249 |
+
|
250 |
+
wp_enqueue_style('wp-jquery-ui-dialog');
|
251 |
+
wp_enqueue_script('jquery-ui-position');
|
252 |
+
wp_enqueue_script('jquery-ui-dialog');
|
253 |
+
|
254 |
wp_enqueue_style('wpel-font-awesome');
|
255 |
wp_enqueue_style('wpel-admin-style');
|
256 |
wp_enqueue_script('wpel-admin-script');
|
257 |
+
|
258 |
+
wp_enqueue_style('wp-color-picker');
|
259 |
+
wp_enqueue_script('wp-color-picker');
|
260 |
+
|
261 |
wp_enqueue_style('jquery-ui-smoothness', 'https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css', false, null);
|
262 |
wp_enqueue_style('wpel-admin-font', 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,200;0,300;0,400;0,500;0,600;1,200;1,300;1,400;1,500;1,600&display=swap');
|
263 |
}
|
includes/admin/settings-fields/class-wpel-exit-confirmation-fields.php
ADDED
@@ -0,0 +1,257 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class WPEL_Exit_Confirmation_Fields
|
4 |
+
*
|
5 |
+
* @package WPEL
|
6 |
+
* @category WordPress Plugin
|
7 |
+
* @version 2.3
|
8 |
+
* @link https://www.webfactoryltd.com/
|
9 |
+
* @license Dual licensed under the MIT and GPLv2+ licenses
|
10 |
+
*/
|
11 |
+
final class WPEL_Exit_Confirmation_Fields extends WPEL_Link_Fields_Base
|
12 |
+
{
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Initialize
|
16 |
+
*/
|
17 |
+
protected function init()
|
18 |
+
{
|
19 |
+
$this->set_settings( array(
|
20 |
+
'section_id' => 'wpel-exit-confirmation-fields',
|
21 |
+
'page_id' => 'wpel-exit-confirmation-fields',
|
22 |
+
'option_name' => 'wpel-exit-confirmation-settings',
|
23 |
+
'option_group' => 'wpel-exit-confirmation-settings',
|
24 |
+
'title' => __( 'Exit Confirmation', 'wp-links' ),
|
25 |
+
'fields' => array(
|
26 |
+
'exit_preview' => array(
|
27 |
+
'label' => __( 'Exit Confirmation Preview', 'wp-links' ),
|
28 |
+
'default_value' => ''
|
29 |
+
|
30 |
+
),
|
31 |
+
'background' => array(
|
32 |
+
'label' => __( 'Popup Background Color:', 'wp-links' ),
|
33 |
+
'default_value' => '#FFFFFF'
|
34 |
+
|
35 |
+
),
|
36 |
+
'title' => array(
|
37 |
+
'label' => __( 'Title:', 'wp-links' ),
|
38 |
+
'default_value' => __( 'You are leaving our website', 'wp-links' ),
|
39 |
+
),
|
40 |
+
'title_color' => array(
|
41 |
+
'label' => __( 'Title Text Color:', 'wp-links' ),
|
42 |
+
'default_value' => '#FFF'
|
43 |
+
|
44 |
+
),
|
45 |
+
'title_background' => array(
|
46 |
+
'label' => __( 'Title Background Color:', 'wp-links' ),
|
47 |
+
'default_value' => '#999'
|
48 |
+
|
49 |
+
),
|
50 |
+
'title_size' => array(
|
51 |
+
'label' => __( 'Title Size:', 'wp-links' ),
|
52 |
+
'default_value' => '18'
|
53 |
+
),
|
54 |
+
'text' => array(
|
55 |
+
'label' => __( 'Text:', 'wp-links' ),
|
56 |
+
'default_value' => 'This link leads outside our website and we are not responsible for its content. If you still want to visit the link, click here:'
|
57 |
+
),
|
58 |
+
'text_color' => array(
|
59 |
+
'label' => __( 'Text Color:', 'wp-links' ),
|
60 |
+
'default_value' => '#444'
|
61 |
+
),
|
62 |
+
'text_size' => array(
|
63 |
+
'label' => __( 'Text Size:', 'wp-links' ),
|
64 |
+
'default_value' => '14'
|
65 |
+
),
|
66 |
+
'popup_width' => array(
|
67 |
+
'label' => __( 'Popup Width:', 'wp-links' ),
|
68 |
+
'default_value' => '400'
|
69 |
+
),
|
70 |
+
'popup_height' => array(
|
71 |
+
'label' => __( 'Popup Height:', 'wp-links' ),
|
72 |
+
'default_value' => '200'
|
73 |
+
),
|
74 |
+
'overlay' => array(
|
75 |
+
'label' => __( 'Show overlay:', 'wp-links' ),
|
76 |
+
'class' => 'js-wpel-apply',
|
77 |
+
'default_value' => '1',
|
78 |
+
),
|
79 |
+
'overlay_color' => array(
|
80 |
+
'label' => __( 'Overlay Color:', 'wp-links' ),
|
81 |
+
'default_value' => '#000'
|
82 |
+
),
|
83 |
+
'button_text' => array(
|
84 |
+
'label' => __( 'Button Text:', 'wp-links' ),
|
85 |
+
'default_value' => 'Stay on the site'
|
86 |
+
),
|
87 |
+
'button_size' => array(
|
88 |
+
'label' => __( 'Button Text Size:', 'wp-links' ),
|
89 |
+
'default_value' => '14'
|
90 |
+
),
|
91 |
+
'button_color' => array(
|
92 |
+
'label' => __( 'Button Text Color:', 'wp-links' ),
|
93 |
+
'default_value' => '#FFF'
|
94 |
+
),
|
95 |
+
'button_background' => array(
|
96 |
+
'label' => __( 'Button Background:', 'wp-links' ),
|
97 |
+
'default_value' => '#1e73be'
|
98 |
+
),
|
99 |
+
),
|
100 |
+
) );
|
101 |
+
|
102 |
+
parent::init();
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Show field methods
|
107 |
+
*/
|
108 |
+
protected function show_exit_preview( array $args )
|
109 |
+
{
|
110 |
+
echo '<div id="exit-confirmation-preview"></div>Click <a href="#" class="wpel-exit-confirmation">this link</a> to view a preview of the popup';
|
111 |
+
}
|
112 |
+
|
113 |
+
|
114 |
+
protected function show_title( array $args )
|
115 |
+
{
|
116 |
+
$this->get_html_fields()->text( $args[ 'key' ], array(
|
117 |
+
'class' => 'regular-text',
|
118 |
+
) );
|
119 |
+
|
120 |
+
echo '<p class="description">'
|
121 |
+
. __( 'Title of the Exit Confirmation popup. Leave empty for no title.', 'wp-links' )
|
122 |
+
.'</p>';
|
123 |
+
}
|
124 |
+
|
125 |
+
protected function show_text( array $args )
|
126 |
+
{
|
127 |
+
$this->get_html_fields()->text_area( $args[ 'key' ], array(
|
128 |
+
'class' => 'large-text',
|
129 |
+
'rows' => 4,
|
130 |
+
'placeholder' => __( '', 'wp-links' ),
|
131 |
+
) );
|
132 |
+
|
133 |
+
echo '<p class="description">' . __( 'Text of the Exit Confirmation popup. Leave empty for no text.', 'wp-links' ) .'</p>';
|
134 |
+
}
|
135 |
+
|
136 |
+
protected function show_text_color( array $args )
|
137 |
+
{
|
138 |
+
$this->get_html_fields()->color( $args[ 'key' ], array() );
|
139 |
+
|
140 |
+
echo '<p class="description">' . __( 'Color of the Exit Confirmation popup text.', 'wp-links' ) .'</p>';
|
141 |
+
}
|
142 |
+
|
143 |
+
protected function show_title_color( array $args )
|
144 |
+
{
|
145 |
+
$this->get_html_fields()->color( $args[ 'key' ], array() );
|
146 |
+
|
147 |
+
echo '<p class="description">' . __( 'Color of the Exit Confirmation popup title.', 'wp-links' ) .'</p>';
|
148 |
+
}
|
149 |
+
|
150 |
+
protected function show_title_size( array $args )
|
151 |
+
{
|
152 |
+
$this->get_html_fields()->number( $args[ 'key' ], array('class' => 'wpel-field-number', 'unit' => 'px') );
|
153 |
+
|
154 |
+
echo '<p class="description">' . __( 'Text size of the Exit Confirmation popup title.', 'wp-links' ) .'</p>';
|
155 |
+
}
|
156 |
+
|
157 |
+
protected function show_text_size( array $args )
|
158 |
+
{
|
159 |
+
$this->get_html_fields()->number( $args[ 'key' ], array('class' => 'wpel-field-number', 'unit' => 'px') );
|
160 |
+
|
161 |
+
echo '<p class="description">' . __( 'Text size of the Exit Confirmation popup text.', 'wp-links' ) .'</p>';
|
162 |
+
}
|
163 |
+
|
164 |
+
protected function show_popup_width( array $args )
|
165 |
+
{
|
166 |
+
$this->get_html_fields()->number( $args[ 'key' ], array('class' => 'wpel-field-number', 'unit' => 'px') );
|
167 |
+
|
168 |
+
echo '<p class="description">' . __( 'Width of the Exit Confirmation popup.', 'wp-links' ) .'</p>';
|
169 |
+
}
|
170 |
+
|
171 |
+
protected function show_popup_height( array $args )
|
172 |
+
{
|
173 |
+
$this->get_html_fields()->number( $args[ 'key' ], array('class' => 'wpel-field-number', 'unit' => 'px') );
|
174 |
+
|
175 |
+
echo '<p class="description">' . __( 'Height of the Exit Confirmation popup. Leave empty for auto.', 'wp-links' ) .'</p>';
|
176 |
+
}
|
177 |
+
|
178 |
+
protected function show_overlay( array $args )
|
179 |
+
{
|
180 |
+
$this->get_html_fields()->check_with_label(
|
181 |
+
$args[ 'key' ]
|
182 |
+
, __( 'Show transparent overlay behind popup', 'wp-links' )
|
183 |
+
, '1'
|
184 |
+
, ''
|
185 |
+
);
|
186 |
+
}
|
187 |
+
|
188 |
+
protected function show_background( array $args )
|
189 |
+
{
|
190 |
+
$this->get_html_fields()->color( $args[ 'key' ], array() );
|
191 |
+
|
192 |
+
echo '<p class="description">' . __( 'Background color of the Exit Confirmation popup.', 'wp-links' ) .'</p>';
|
193 |
+
}
|
194 |
+
|
195 |
+
protected function show_title_background( array $args )
|
196 |
+
{
|
197 |
+
$this->get_html_fields()->color( $args[ 'key' ], array() );
|
198 |
+
|
199 |
+
echo '<p class="description">' . __( 'Background color of the Exit Confirmation popup title.', 'wp-links' ) .'</p>';
|
200 |
+
}
|
201 |
+
|
202 |
+
|
203 |
+
protected function show_overlay_color( array $args )
|
204 |
+
{
|
205 |
+
$this->get_html_fields()->color( $args[ 'key' ], array() );
|
206 |
+
}
|
207 |
+
|
208 |
+
protected function show_button_color( array $args )
|
209 |
+
{
|
210 |
+
$this->get_html_fields()->color( $args[ 'key' ], array() );
|
211 |
+
}
|
212 |
+
|
213 |
+
protected function show_button_background( array $args )
|
214 |
+
{
|
215 |
+
$this->get_html_fields()->color( $args[ 'key' ], array() );
|
216 |
+
}
|
217 |
+
|
218 |
+
protected function show_button_text( array $args )
|
219 |
+
{
|
220 |
+
$this->get_html_fields()->text( $args[ 'key' ], array(
|
221 |
+
'class' => 'regular-text',
|
222 |
+
) );
|
223 |
+
|
224 |
+
echo '<p class="description">' . __( 'Text of the button that will cancel leaving website.', 'wp-links' ) .'</p>';
|
225 |
+
}
|
226 |
+
|
227 |
+
protected function show_button_size( array $args )
|
228 |
+
{
|
229 |
+
$this->get_html_fields()->number( $args[ 'key' ], array('class' => 'wpel-field-number', 'unit' => 'px') );
|
230 |
+
|
231 |
+
echo '<p class="description">' . __( 'Text size of the Exit Confirmation popup button.', 'wp-links' ) .'</p>';
|
232 |
+
}
|
233 |
+
|
234 |
+
/**
|
235 |
+
* Validate and sanitize user input before saving to databse
|
236 |
+
* @param array $new_values
|
237 |
+
* @param array $old_values
|
238 |
+
* @return array
|
239 |
+
*/
|
240 |
+
protected function before_update( array $new_values, array $old_values )
|
241 |
+
{
|
242 |
+
$update_values = $new_values;
|
243 |
+
$is_valid = true;
|
244 |
+
|
245 |
+
|
246 |
+
if ( false === $is_valid ) {
|
247 |
+
// error when user input is not valid conform the UI, probably tried to "hack"
|
248 |
+
$this->add_error( __( 'Something went wrong. One or more values were invalid.', 'wp-links' ) );
|
249 |
+
return $old_values;
|
250 |
+
}
|
251 |
+
|
252 |
+
return $update_values;
|
253 |
+
}
|
254 |
+
|
255 |
+
}
|
256 |
+
|
257 |
+
/*?>*/
|
includes/class-wpel-front.php
CHANGED
@@ -105,18 +105,6 @@ final class WPEL_Front extends WPRun_Base_1x0x0
|
|
105 |
if ( $this->opt( 'icon_type', 'excluded-links' ) || $this->opt( 'icon_type', 'external-links' ) || $this->opt( 'icon_type', 'internal-links' ) ) {
|
106 |
wp_enqueue_style( 'wpel-style' );
|
107 |
}
|
108 |
-
|
109 |
-
wp_register_script(
|
110 |
-
'wpel-link-highlighter',
|
111 |
-
plugins_url('/public/js/wpel-link-highlighter.js', WPEL_Plugin::get_plugin_file()),
|
112 |
-
array('jquery'),
|
113 |
-
false,
|
114 |
-
true
|
115 |
-
);
|
116 |
-
|
117 |
-
if(isset($_GET['wpel-link-highlight'])){
|
118 |
-
wp_enqueue_script( 'wpel-link-highlighter' );
|
119 |
-
}
|
120 |
}
|
121 |
|
122 |
/**
|
105 |
if ( $this->opt( 'icon_type', 'excluded-links' ) || $this->opt( 'icon_type', 'external-links' ) || $this->opt( 'icon_type', 'internal-links' ) ) {
|
106 |
wp_enqueue_style( 'wpel-style' );
|
107 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
}
|
109 |
|
110 |
/**
|
includes/class-wpel-linkhero.php
DELETED
@@ -1,297 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class WPEL_LinkHero
|
5 |
-
*
|
6 |
-
* @package WPEL
|
7 |
-
* @category WordPress Plugin
|
8 |
-
* @version 2.3
|
9 |
-
* @link https://www.webfactoryltd.com/
|
10 |
-
* @license Dual licensed under the MIT and GPLv2+ licenses
|
11 |
-
*/
|
12 |
-
final class WPEL_LinkHero extends FWP_Plugin_Base_1x0x0
|
13 |
-
{
|
14 |
-
/**
|
15 |
-
* Initialize plugin
|
16 |
-
* @param string $plugin_file
|
17 |
-
* @param string $plugin_dir
|
18 |
-
*/
|
19 |
-
public $linkhero;
|
20 |
-
public $linkhero_api = 'http://api-beta.linkhero.com';
|
21 |
-
public static $lh_url = 'https://linkhero.com/wpel/subscribe.php';
|
22 |
-
|
23 |
-
protected function init($plugin_file, $plugin_dir)
|
24 |
-
{
|
25 |
-
parent::init($plugin_file, $plugin_dir);
|
26 |
-
add_action('wp_ajax_wpel_run_tool', array($this, 'ajax_tool'));
|
27 |
-
add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'));
|
28 |
-
$this->linkhero = get_option('wpel-linkhero', array('checker' => array(), 'enabled' => false));
|
29 |
-
}
|
30 |
-
|
31 |
-
static function is_localhost()
|
32 |
-
{
|
33 |
-
$whitelist = array('127.0.0.1', '::1');
|
34 |
-
if (in_array($_SERVER['REMOTE_ADDR'], $whitelist)) {
|
35 |
-
return true;
|
36 |
-
}
|
37 |
-
return false;
|
38 |
-
}
|
39 |
-
|
40 |
-
function is_plugin_page()
|
41 |
-
{
|
42 |
-
$current_screen = get_current_screen();
|
43 |
-
|
44 |
-
if (!empty($current_screen) && $current_screen->id == 'toplevel_page_wpel-settings-page') {
|
45 |
-
return true;
|
46 |
-
} else {
|
47 |
-
return false;
|
48 |
-
}
|
49 |
-
} // is_plugin_page
|
50 |
-
|
51 |
-
function admin_enqueue_scripts()
|
52 |
-
{
|
53 |
-
if (!$this->is_plugin_page()) {
|
54 |
-
return;
|
55 |
-
}
|
56 |
-
|
57 |
-
$plugin_version = get_option('wpel-version');
|
58 |
-
|
59 |
-
wp_enqueue_style(
|
60 |
-
'wpel-datatables-style',
|
61 |
-
plugins_url('/public/css/jquery.dataTables.min.css', WPEL_Plugin::get_plugin_file()),
|
62 |
-
array(),
|
63 |
-
$plugin_version
|
64 |
-
);
|
65 |
-
|
66 |
-
wp_enqueue_script(
|
67 |
-
'wpel-datatables-script',
|
68 |
-
plugins_url('/public/js/jquery.dataTables.min.js', WPEL_Plugin::get_plugin_file()),
|
69 |
-
array('jquery'),
|
70 |
-
$plugin_version,
|
71 |
-
true
|
72 |
-
);
|
73 |
-
}
|
74 |
-
|
75 |
-
function get_sitemap_url()
|
76 |
-
{
|
77 |
-
return home_url('/sitemap.xml');
|
78 |
-
}
|
79 |
-
|
80 |
-
function lh_request_scan()
|
81 |
-
{
|
82 |
-
$sitemap_url = $this->get_sitemap_url();
|
83 |
-
|
84 |
-
if ($sitemap_url !== false) {
|
85 |
-
$request = array(
|
86 |
-
'sitemap' => $sitemap_url
|
87 |
-
);
|
88 |
-
|
89 |
-
$res = wp_remote_post(
|
90 |
-
$this->linkhero_api . '/wpel/add/check_urls',
|
91 |
-
array(
|
92 |
-
'sslverify' => false,
|
93 |
-
'headers' => array('Content-Type' => 'application/json; charset=utf-8'),
|
94 |
-
'data_format' => 'body',
|
95 |
-
'body' => json_encode($request),
|
96 |
-
'timeout' => 15
|
97 |
-
)
|
98 |
-
);
|
99 |
-
|
100 |
-
if (!is_wp_error($res)) {
|
101 |
-
$res = wp_remote_retrieve_body($res);
|
102 |
-
$res = json_decode($res);
|
103 |
-
|
104 |
-
//TODO: Returns as object
|
105 |
-
if (!empty($res->success) && $res->success == true && isset($res->result->job_id)) {
|
106 |
-
$this->linkhero['checker']['lastscan'] = time();
|
107 |
-
$this->linkhero['checker']['status'] = 'pending';
|
108 |
-
$this->linkhero['checker']['limit'] = 0;
|
109 |
-
$this->linkhero['checker']['total_pages'] = 0;
|
110 |
-
$this->linkhero['checker']['job_id'] = $res->result->job_id;
|
111 |
-
|
112 |
-
update_option('wpel-linkhero', $this->linkhero);
|
113 |
-
return true;
|
114 |
-
} else {
|
115 |
-
//TODO: Handle error
|
116 |
-
return new WP_Error(1, 'An error occured: ' . $res->result);
|
117 |
-
}
|
118 |
-
} else {
|
119 |
-
//TODO: Handle error
|
120 |
-
return $res;
|
121 |
-
}
|
122 |
-
} else {
|
123 |
-
return new WP_Error(1, 'No sitemap found for your website');
|
124 |
-
}
|
125 |
-
}
|
126 |
-
|
127 |
-
function lh_get_results()
|
128 |
-
{
|
129 |
-
$request['job_id'] = $this->linkhero['checker']['job_id'];
|
130 |
-
|
131 |
-
$res = wp_remote_post(
|
132 |
-
$this->linkhero_api . '/wpel/get/check_urls',
|
133 |
-
array(
|
134 |
-
'sslverify' => false,
|
135 |
-
'headers' => array('Content-Type' => 'application/json; charset=utf-8'),
|
136 |
-
'data_format' => 'body',
|
137 |
-
'body' => json_encode($request),
|
138 |
-
'timeout' => 15
|
139 |
-
)
|
140 |
-
);
|
141 |
-
|
142 |
-
if (!is_wp_error($res)) {
|
143 |
-
$res = wp_remote_retrieve_body($res);
|
144 |
-
$res = json_decode($res, true);
|
145 |
-
|
146 |
-
if (!empty($res['success']) && $res['success'] == true) {
|
147 |
-
$this->linkhero['checker']['results'] = $res['result'];
|
148 |
-
$this->linkhero['checker']['limit'] = array_key_exists('limit', $res) && (int)$res['limit'] > 0 ? (int)$res['limit'] : 0;
|
149 |
-
$this->linkhero['checker']['total_pages'] = array_key_exists('total_pages', $res) && (int)$res['total_pages'] > 0 ? (int)$res['total_pages'] : 0;
|
150 |
-
$pending_pages = false;
|
151 |
-
foreach ($this->linkhero['checker']['results'] as $page_url => $page) {
|
152 |
-
if (!is_array($page) || $page['status'] != 'finished') {
|
153 |
-
$pending_pages = true;
|
154 |
-
break;
|
155 |
-
}
|
156 |
-
|
157 |
-
foreach ($page['hrefs'] as $href_url => $href) {
|
158 |
-
if (!array_key_exists('scrape_status', $href) || ($href['scrape_status'] != 'finished' && $href['scrape_status'] != 'error')) {
|
159 |
-
$this->linkhero['checker']['results'][$page_url]['status'] = 'pending';
|
160 |
-
$pending_pages = true;
|
161 |
-
break;
|
162 |
-
}
|
163 |
-
}
|
164 |
-
}
|
165 |
-
|
166 |
-
if (array_key_exists('results', $this->linkhero['checker']) && count($this->linkhero['checker']['results']) > 0 && !$pending_pages) {
|
167 |
-
$this->linkhero['checker']['status'] = 'finished';
|
168 |
-
}
|
169 |
-
update_option('wpel-linkhero', $this->linkhero);
|
170 |
-
} else {
|
171 |
-
//TODO: Handle error
|
172 |
-
return new WP_Error(1, 'An error occured: ' . $res->result);
|
173 |
-
}
|
174 |
-
} else {
|
175 |
-
//TODO: Handle error
|
176 |
-
return $res;
|
177 |
-
}
|
178 |
-
}
|
179 |
-
|
180 |
-
function ajax_tool()
|
181 |
-
{
|
182 |
-
|
183 |
-
switch ($_REQUEST['tool']) {
|
184 |
-
case 'check_links':
|
185 |
-
$this->linkhero['enabled'] = true;
|
186 |
-
|
187 |
-
if (isset($_REQUEST['force']) && $_REQUEST['force'] == 'true') {
|
188 |
-
$this->linkhero = array('checker' => array(), 'enabled' => false);
|
189 |
-
delete_option('wpel-linkhero-subscribed');
|
190 |
-
update_option('wpel-linkhero', $this->linkhero);
|
191 |
-
wp_send_json_success();
|
192 |
-
}
|
193 |
-
|
194 |
-
if (empty($this->linkhero['checker']) || $this->linkhero['checker'] == false || $this->linkhero['checker']['lastscan'] < (time() - 60 * 60 * 24)) {
|
195 |
-
$res = $this->lh_request_scan();
|
196 |
-
if (is_wp_error($res)) {
|
197 |
-
wp_send_json_error($res->get_error_message());
|
198 |
-
} else {
|
199 |
-
wp_send_json_success(array('status' => 'pending'));
|
200 |
-
}
|
201 |
-
} else {
|
202 |
-
//Refresh
|
203 |
-
// TODO: Add some limit to how many times we check status
|
204 |
-
if (!isset($this->linkhero['checker']['job_id']) || empty($this->linkhero['checker']['job_id'])) {
|
205 |
-
wp_send_json_error('No job ID exists');
|
206 |
-
}
|
207 |
-
if ($this->linkhero['checker']['status'] == 'pending') {
|
208 |
-
$this->lh_get_results();
|
209 |
-
}
|
210 |
-
$results = [];
|
211 |
-
|
212 |
-
foreach ($this->linkhero['checker']['results'] as $page_url => $page) {
|
213 |
-
if(!is_array($page)){
|
214 |
-
$page = json_decode($page);
|
215 |
-
}
|
216 |
-
if(!is_array($page)){
|
217 |
-
$page = [];
|
218 |
-
}
|
219 |
-
|
220 |
-
$results[$page_url] = $page;
|
221 |
-
|
222 |
-
$results[$page_url]['links_total'] = 0;
|
223 |
-
$results[$page_url]['links_finished'] = 0;
|
224 |
-
$results[$page_url]['links_error'] = 0;
|
225 |
-
|
226 |
-
if (array_key_exists('hrefs', $page) && is_array($page['hrefs'])) {
|
227 |
-
$results[$page_url]['links_total'] = count($page['hrefs']);
|
228 |
-
$results[$page_url]['links_finished'] = 0;
|
229 |
-
$results[$page_url]['links_error'] = 0;
|
230 |
-
foreach ($page['hrefs'] as $link_url => $url_result) {
|
231 |
-
if (array_key_exists('scrape_status', $url_result) && $url_result['scrape_status'] == 'finished') {
|
232 |
-
$results[$page_url]['links_finished']++;
|
233 |
-
} else if (array_key_exists('scrape_status', $url_result) && $url_result['scrape_status'] == 'error') {
|
234 |
-
$results[$page_url]['links_error']++;
|
235 |
-
}
|
236 |
-
}
|
237 |
-
}
|
238 |
-
}
|
239 |
-
wp_send_json_success(
|
240 |
-
array(
|
241 |
-
'status' => $this->linkhero['checker']['status'],
|
242 |
-
'pages' => $results,
|
243 |
-
'limit' => $this->linkhero['checker']['limit'] > 0 ? $this->linkhero['checker']['limit'] : 0,
|
244 |
-
'total_pages' => $this->linkhero['checker']['total_pages'] > 0 ? $this->linkhero['checker']['total_pages'] : 0
|
245 |
-
)
|
246 |
-
);
|
247 |
-
}
|
248 |
-
break;
|
249 |
-
case 'link_details':
|
250 |
-
$page = $_REQUEST['link'];
|
251 |
-
$results = [];
|
252 |
-
if (array_key_exists($page, $this->linkhero['checker']['results'])) {
|
253 |
-
foreach ($this->linkhero['checker']['results'][$page]['hrefs'] as $href => $details) {
|
254 |
-
$redirects = '';
|
255 |
-
if (array_key_exists('redirects', $details) && count($details['redirects']) > 0) {
|
256 |
-
foreach ($details['redirects'] as $redirect) {
|
257 |
-
$redirects .= '<span class="lh-redirect"><span>' . $redirect['status'] . '</span>' . $redirect['url'] . '</span>';
|
258 |
-
}
|
259 |
-
} else {
|
260 |
-
$redirects = '<i>not redirected</i>';
|
261 |
-
}
|
262 |
-
|
263 |
-
if (array_key_exists('target', $details) && !empty($details['target'])) {
|
264 |
-
$target = $details['target'];
|
265 |
-
} else {
|
266 |
-
$target = '_self';
|
267 |
-
}
|
268 |
-
|
269 |
-
$results[] = [
|
270 |
-
($details['scrape_status'] == 'error' ? '<span title="' . $details['error'] . '" class="wpel_bad dashicons dashicons-editor-unlink"></span><span style="display:none">0</span>' : '<span class="wpel_good dashicons dashicons-admin-links"></span><span style="display:none">1</span>'),
|
271 |
-
'<div class="dt-lh-title">' .
|
272 |
-
$details['text'] . '<br />' .
|
273 |
-
'<a href="' . $details['href'] . '" target="_blank">' . $details['href'] . '</a>' .
|
274 |
-
'<a target="_blank" class="wpel-link-locator" href="' . $page . '?wpel-link-highlight=' . urlencode($details['href']) . '" title="Locate link on page"><span class="dashicons dashicons-pressthis"></span></a><br />' .
|
275 |
-
'</div>',
|
276 |
-
isset($details['title'])?$details['title']:'',
|
277 |
-
isset($details['type'])?$details['type']:'',
|
278 |
-
isset($details['rel']) && strlen($details['rel']) > 0 ? $details['rel'] : '<i>none</i>',
|
279 |
-
$target,
|
280 |
-
$redirects,
|
281 |
-
];
|
282 |
-
}
|
283 |
-
}
|
284 |
-
echo json_encode(['data' => $results]);
|
285 |
-
break;
|
286 |
-
case 'subscribed':
|
287 |
-
update_option('wpel-linkhero-subscribed', true);
|
288 |
-
break;
|
289 |
-
default:
|
290 |
-
wp_send_json_error('Unknown action');
|
291 |
-
break;
|
292 |
-
}
|
293 |
-
die();
|
294 |
-
}
|
295 |
-
}
|
296 |
-
|
297 |
-
/*?>*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-wpel-plugin.php
CHANGED
@@ -21,8 +21,35 @@ final class WPEL_Plugin extends FWP_Plugin_Base_1x0x0
|
|
21 |
{
|
22 |
parent::init($plugin_file, $plugin_dir);
|
23 |
$this->create_components();
|
|
|
24 |
}
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
/**
|
27 |
* Create components
|
28 |
*/
|
@@ -43,6 +70,7 @@ final class WPEL_Plugin extends FWP_Plugin_Base_1x0x0
|
|
43 |
'excluded-links' => WPEL_Excluded_Link_Fields::create(),
|
44 |
'admin' => WPEL_Admin_Fields::create(),
|
45 |
'exceptions' => WPEL_Exceptions_Fields::create(),
|
|
|
46 |
));
|
47 |
|
48 |
// front site
|
21 |
{
|
22 |
parent::init($plugin_file, $plugin_dir);
|
23 |
$this->create_components();
|
24 |
+
add_action('wp_ajax_wpel_dismiss_notice', array($this, 'ajax_dismiss_notice'));
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
* Dismiss notice via AJAX call
|
29 |
+
*
|
30 |
+
* @return null
|
31 |
+
*/
|
32 |
+
function ajax_dismiss_notice()
|
33 |
+
{
|
34 |
+
check_ajax_referer('wpel_dismiss_notice');
|
35 |
+
|
36 |
+
if (!current_user_can('administrator')) {
|
37 |
+
wp_send_json_error('You are not allowed to run this action.');
|
38 |
+
}
|
39 |
+
|
40 |
+
$notice_name = trim(sanitize_text_field(@$_GET['notice_name']));
|
41 |
+
$pointers = get_option('wpel-pointers', array());
|
42 |
+
|
43 |
+
if ($notice_name != 'welcome') {
|
44 |
+
wp_send_json_error('Unknown notice');
|
45 |
+
} else {
|
46 |
+
$pointers['hide_welcome_pointer'] = true;
|
47 |
+
update_option('wpel-pointers', $pointers);
|
48 |
+
wp_send_json_success();
|
49 |
+
}
|
50 |
+
} // ajax_dismiss_notice
|
51 |
+
|
52 |
+
|
53 |
/**
|
54 |
* Create components
|
55 |
*/
|
70 |
'excluded-links' => WPEL_Excluded_Link_Fields::create(),
|
71 |
'admin' => WPEL_Admin_Fields::create(),
|
72 |
'exceptions' => WPEL_Exceptions_Fields::create(),
|
73 |
+
'exit-confirmation' => WPEL_Exit_Confirmation_Fields::create(),
|
74 |
));
|
75 |
|
76 |
// front site
|
includes/class-wpel-register-scripts.php
CHANGED
@@ -34,6 +34,24 @@ final class WPEL_Register_Scripts extends WPRun_Base_1x0x0
|
|
34 |
protected function register_scripts()
|
35 |
{
|
36 |
$plugin_version = get_option('wpel-version');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
// set style font awesome icons
|
39 |
wp_register_style(
|
@@ -59,30 +77,11 @@ final class WPEL_Register_Scripts extends WPRun_Base_1x0x0
|
|
59 |
$plugin_version
|
60 |
);
|
61 |
|
62 |
-
// set admin global style
|
63 |
-
wp_register_style(
|
64 |
-
'wpel-admin-global-style',
|
65 |
-
plugins_url('/public/css/wpel-admin-global.css', WPEL_Plugin::get_plugin_file()),
|
66 |
-
array(),
|
67 |
-
$plugin_version
|
68 |
-
);
|
69 |
-
|
70 |
-
$linkhero = get_option('wpel-linkhero', array('checker' => array(), 'enabled' => false));
|
71 |
-
if(!isset($linkhero['enabled'])){
|
72 |
-
$linkhero['enabled'] = false;
|
73 |
-
}
|
74 |
$wpel_js = array(
|
75 |
'nonce_ajax' => wp_create_nonce('wpel_run_tool'),
|
76 |
-
'loader' => admin_url('/images/spinner.gif')
|
77 |
-
'link_checking_enabled' => false
|
78 |
);
|
79 |
|
80 |
-
$wpel_js['lh_url'] = WPEL_LinkHero::$lh_url;
|
81 |
-
|
82 |
-
if(!WPEL_LinkHero::is_localhost()){
|
83 |
-
$wpel_js['link_checking_enabled'] = $linkhero['enabled'];
|
84 |
-
}
|
85 |
-
|
86 |
// set wpel admin script
|
87 |
wp_register_script(
|
88 |
'wpel-admin-script',
|
34 |
protected function register_scripts()
|
35 |
{
|
36 |
$plugin_version = get_option('wpel-version');
|
37 |
+
$pointers = get_option('wpel-pointers', array());
|
38 |
+
|
39 |
+
if(function_exists('get_current_screen')){
|
40 |
+
$current_screen = get_current_screen();
|
41 |
+
}
|
42 |
+
|
43 |
+
if (isset($current_screen) && $current_screen->id != 'toplevel_page_wpel-settings-page' && $current_screen->id != 'settings_page_wpel-settings-page') {
|
44 |
+
if (empty($pointers['hide_welcome_pointer']) && current_user_can('administrator')) {
|
45 |
+
$pointers['_nonce_dismiss_pointer'] = wp_create_nonce('wpel_dismiss_notice');
|
46 |
+
$pointers['welcome'] = array('target' => '#toplevel_page_wpel-settings-page', 'edge' => 'left', 'align' => 'right', 'content' => 'Thank you for installing the <b style="font-weight: 800;">WP External Links</b> plugin!<br>Open <a href="' . admin_url('admin.php?page=wpel-settings-page') . '">WP External Links</a> to manage your links, and configure settings.');
|
47 |
+
|
48 |
+
wp_enqueue_style('wp-pointer');
|
49 |
+
|
50 |
+
wp_enqueue_script('wpel-pointers', plugins_url('/public/js/wpel-pointers.js', WPEL_Plugin::get_plugin_file()), array('jquery'), get_option('wpel-version'), true);
|
51 |
+
wp_enqueue_script('wp-pointer');
|
52 |
+
wp_localize_script('wp-pointer', 'wpel_pointers', $pointers);
|
53 |
+
}
|
54 |
+
}
|
55 |
|
56 |
// set style font awesome icons
|
57 |
wp_register_style(
|
77 |
$plugin_version
|
78 |
);
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
$wpel_js = array(
|
81 |
'nonce_ajax' => wp_create_nonce('wpel_run_tool'),
|
82 |
+
'loader' => admin_url('/images/spinner.gif')
|
|
|
83 |
);
|
84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
// set wpel admin script
|
86 |
wp_register_script(
|
87 |
'wpel-admin-script',
|
includes/register-hooks/class-wpel-deactivate.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class WPEL_Deactivate
|
4 |
+
*
|
5 |
+
* @package WPEL
|
6 |
+
* @category WordPress Plugin
|
7 |
+
* @version 2.3
|
8 |
+
* @link https://www.webfactoryltd.com/
|
9 |
+
* @license Dual licensed under the MIT and GPLv2+ licenses
|
10 |
+
*/
|
11 |
+
final class WPEL_Deactivate extends FWP_Register_Hook_Base_1x0x0
|
12 |
+
{
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @var string
|
16 |
+
*/
|
17 |
+
protected $hook_type = 'deactivation';
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Activate network
|
21 |
+
* @return void
|
22 |
+
*/
|
23 |
+
protected function network_procedure()
|
24 |
+
{
|
25 |
+
// network settings
|
26 |
+
delete_site_option( 'wpel-pointers' );
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Activate site
|
31 |
+
* @return void
|
32 |
+
*/
|
33 |
+
protected function site_procedure()
|
34 |
+
{
|
35 |
+
// delete options
|
36 |
+
delete_option( 'wpel-pointers' );
|
37 |
+
}
|
38 |
+
|
39 |
+
}
|
40 |
+
|
41 |
+
/*?>*/
|
includes/register-hooks/class-wpel-uninstall.php
CHANGED
@@ -42,6 +42,7 @@ final class WPEL_Uninstall extends FWP_Register_Hook_Base_1x0x0
|
|
42 |
|
43 |
delete_option( 'wpel-version' );
|
44 |
delete_option( 'wpel-show-notice' );
|
|
|
45 |
}
|
46 |
|
47 |
}
|
42 |
|
43 |
delete_option( 'wpel-version' );
|
44 |
delete_option( 'wpel-show-notice' );
|
45 |
+
delete_option( 'wpel-pointers' );
|
46 |
}
|
47 |
|
48 |
}
|
libs/fwp/class-fwp-html-fields.php
CHANGED
@@ -257,6 +257,36 @@ class FWP_HTML_Fields_1x0x0
|
|
257 |
return ( $this->get_value( $key ) == $checked_value ) ? ' checked' : '';
|
258 |
}
|
259 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
}
|
261 |
|
262 |
/*?>*/
|
257 |
return ( $this->get_value( $key ) == $checked_value ) ? ' checked' : '';
|
258 |
}
|
259 |
|
260 |
+
/**
|
261 |
+
* Show text input field
|
262 |
+
* @param string $key
|
263 |
+
* @param array $atts Optional
|
264 |
+
*/
|
265 |
+
public function number( $key, array $atts = array() )
|
266 |
+
{
|
267 |
+
echo '<input type="number"
|
268 |
+
id="' . $this->get_field_id( $key ) . '"
|
269 |
+
name="' . $this->get_field_name( $key ) . '"
|
270 |
+
value="' . esc_attr( $this->get_value( $key ) ) . '"
|
271 |
+
' . $this->get_html_atts( $atts ) . '
|
272 |
+
> ' . $atts['unit'];
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* Show text input field
|
277 |
+
* @param string $key
|
278 |
+
* @param array $atts Optional
|
279 |
+
*/
|
280 |
+
public function color( $key, array $atts = array() )
|
281 |
+
{
|
282 |
+
echo '<input type="text" class="wpel-colorpicker"
|
283 |
+
id="' . $this->get_field_id( $key ) . '"
|
284 |
+
name="' . $this->get_field_name( $key ) . '"
|
285 |
+
value="' . esc_attr( $this->get_value( $key ) ) . '"
|
286 |
+
' . $this->get_html_atts( $atts ) . '
|
287 |
+
>';
|
288 |
+
}
|
289 |
+
|
290 |
}
|
291 |
|
292 |
/*?>*/
|
public/css/jquery.dataTables.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../images/sort_asc.png") !important}table.dataTable thead .sorting_desc{background-image:url("../images/sort_desc.png") !important}table.dataTable thead .sorting_asc_disabled{background-image:url("../images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;margin-left:3px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, white 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, white 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, white 0%, #dcdcdc 100%);background:-o-linear-gradient(top, white 0%, #dcdcdc 100%);background:linear-gradient(to bottom, white 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));background:-webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}
|
|
public/css/wpel-admin-global.css
DELETED
@@ -1,32 +0,0 @@
|
|
1 |
-
@font-face {
|
2 |
-
font-family: 'external-links';
|
3 |
-
src: url('font/external-links.eot?25257834');
|
4 |
-
src: url('font/external-links.eot?25257834#iefix') format('embedded-opentype'),
|
5 |
-
url('font/external-links.woff2?25257834') format('woff2'),
|
6 |
-
url('font/external-links.woff?25257834') format('woff'),
|
7 |
-
url('font/external-links.ttf?25257834') format('truetype'),
|
8 |
-
url('font/external-links.svg?25257834#external-links') format('svg');
|
9 |
-
font-weight: normal;
|
10 |
-
font-style: normal;
|
11 |
-
}
|
12 |
-
|
13 |
-
|
14 |
-
a.toplevel_page_wpel-settings-page .wp-menu-image:before,
|
15 |
-
a.toplevel_page_wpel-network-settings-page .wp-menu-image:before{
|
16 |
-
font-family: "external-links";
|
17 |
-
font-style: normal;
|
18 |
-
font-weight: normal;
|
19 |
-
speak: none;
|
20 |
-
display: inline-block;
|
21 |
-
text-decoration: inherit;
|
22 |
-
width: 1em;
|
23 |
-
margin-right: .2em;
|
24 |
-
text-align: center;
|
25 |
-
font-variant: normal;
|
26 |
-
text-transform: none;
|
27 |
-
line-height: 1em;
|
28 |
-
margin-left: .2em;
|
29 |
-
-webkit-font-smoothing: antialiased;
|
30 |
-
-moz-osx-font-smoothing: grayscale;
|
31 |
-
content: '\f14c';
|
32 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public/css/wpel-admin.css
CHANGED
@@ -14,13 +14,82 @@
|
|
14 |
padding: 0px;
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
17 |
.wpel-body-wrap {
|
18 |
background-color: #fff;
|
19 |
padding: 40px 60px;
|
20 |
max-width: 1200px;
|
21 |
width: 100%;
|
22 |
-
margin: 0
|
23 |
box-sizing: border-box;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
}
|
25 |
|
26 |
.toplevel_page_wpel-settings-page #wpcontent {
|
@@ -47,7 +116,7 @@
|
|
47 |
}
|
48 |
|
49 |
.nav-tab .dashicons {
|
50 |
-
color: #
|
51 |
font-size: 18px;
|
52 |
margin-right: 4px;
|
53 |
line-height: 24px;
|
@@ -98,9 +167,16 @@
|
|
98 |
margin-right: 5px;
|
99 |
}
|
100 |
|
101 |
-
.wpel-settings-page .nav-tab-
|
102 |
-
.wpel-network-page .nav-tab-
|
103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
}
|
105 |
|
106 |
.wpel-settings-page form,
|
@@ -152,7 +228,7 @@
|
|
152 |
margin-bottom: -3px;
|
153 |
border-bottom: 3px solid #eef3f5;
|
154 |
font-weight: 400;
|
155 |
-
padding: 10px
|
156 |
outline: none;
|
157 |
box-shadow: none;
|
158 |
font-weight: 500;
|
@@ -161,8 +237,8 @@
|
|
161 |
.nav-tab-active,
|
162 |
.nav-tab-active:hover,
|
163 |
.nav-tab:hover {
|
164 |
-
color: #
|
165 |
-
border-bottom: 3px solid #
|
166 |
background: none;
|
167 |
margin-right: 0;
|
168 |
margin-left: 0;
|
@@ -203,7 +279,7 @@ h1.nav-tab-wrapper {
|
|
203 |
#rating-notice, .notice {
|
204 |
display: block;
|
205 |
width: 1200px;
|
206 |
-
margin: 10px
|
207 |
box-sizing: border-box;
|
208 |
border-right: none;
|
209 |
border-top: none;
|
@@ -214,241 +290,10 @@ h1.nav-tab-wrapper {
|
|
214 |
padding: 15px;
|
215 |
}
|
216 |
|
217 |
-
.lh-table-loading {
|
218 |
-
color: #ccc;
|
219 |
-
}
|
220 |
-
|
221 |
-
.wpel-page-button {
|
222 |
-
background: #fff;
|
223 |
-
border: 1px solid #ccc;
|
224 |
-
padding: 10px;
|
225 |
-
}
|
226 |
-
|
227 |
-
.wpel-page-button:hover {
|
228 |
-
background: #ececec;
|
229 |
-
cursor: pointer;
|
230 |
-
}
|
231 |
-
|
232 |
-
.wpel-page-link {
|
233 |
-
color: #b2b2b2;
|
234 |
-
}
|
235 |
-
|
236 |
-
.wpel-page-button .wpel-page-button-toggle:before {
|
237 |
-
content: "\f345";
|
238 |
-
}
|
239 |
-
|
240 |
-
.wpel-page-button.open .wpel-page-button-toggle:before {
|
241 |
-
content: "\f347";
|
242 |
-
}
|
243 |
-
|
244 |
-
.wpel_good {
|
245 |
-
color: rgb(46, 207, 87);
|
246 |
-
}
|
247 |
-
|
248 |
-
.wpel_bad {
|
249 |
-
color: rgb(207, 46, 46);
|
250 |
-
}
|
251 |
-
|
252 |
-
.wpel-redirect-code {
|
253 |
-
color: rgb(213 95 235);
|
254 |
-
font-weight: bold;
|
255 |
-
}
|
256 |
-
|
257 |
-
#lh_results {
|
258 |
-
margin-top: 10px;
|
259 |
-
display: none;
|
260 |
-
border-spacing: 0 10px;
|
261 |
-
border-collapse: separate;
|
262 |
-
width: 100%;
|
263 |
-
}
|
264 |
-
|
265 |
-
#lh_results a {
|
266 |
-
text-decoration: none;
|
267 |
-
}
|
268 |
-
|
269 |
-
#lh_results tr td {
|
270 |
-
border-bottom: 1px solid #eef2f4;
|
271 |
-
border-top: 1px solid #eef2f4;
|
272 |
-
padding: 20px 10px;
|
273 |
-
}
|
274 |
-
|
275 |
-
#lh_results tr td:first-child {
|
276 |
-
border-left: 1px solid #eef2f4;
|
277 |
-
padding-left: 20px;
|
278 |
-
border-top-left-radius: 4px;
|
279 |
-
border-bottom-left-radius: 4px;
|
280 |
-
}
|
281 |
-
|
282 |
-
#lh_results tr td:last-child {
|
283 |
-
border-right: 1px solid #eef2f4;
|
284 |
-
padding-right: 20px;
|
285 |
-
border-top-right-radius: 4px;
|
286 |
-
border-bottom-right-radius: 4px;
|
287 |
-
}
|
288 |
-
|
289 |
-
#lh_results a .dashicons-external {
|
290 |
-
font-size: 16px;
|
291 |
-
line-height: 20px;
|
292 |
-
}
|
293 |
-
|
294 |
-
.wpel-page-details table {
|
295 |
-
margin-top: 6px;
|
296 |
-
}
|
297 |
-
|
298 |
-
.wpel-loader {
|
299 |
-
vertical-align: text-top;
|
300 |
-
margin-right: 4px;
|
301 |
-
opacity: 0.5;
|
302 |
-
}
|
303 |
-
|
304 |
-
.lh_results_loader {
|
305 |
-
width: 100%;
|
306 |
-
text-align: center;
|
307 |
-
}
|
308 |
-
|
309 |
-
#lh_details {
|
310 |
-
width: 100%;
|
311 |
-
height: 100%;
|
312 |
-
position: fixed;
|
313 |
-
display: none;
|
314 |
-
top: 0px;
|
315 |
-
left: 0px;
|
316 |
-
background: #fff;
|
317 |
-
z-index: 100051;
|
318 |
-
padding: 40px;
|
319 |
-
box-sizing: border-box;
|
320 |
-
}
|
321 |
-
|
322 |
-
#lh_pro{
|
323 |
-
display: none;
|
324 |
-
margin: 20px 0;
|
325 |
-
font-size: 20px;
|
326 |
-
text-align: center;
|
327 |
-
line-height: 28px;
|
328 |
-
}
|
329 |
-
|
330 |
-
#lh_pro_count{
|
331 |
-
color: #31a3d9;
|
332 |
-
}
|
333 |
-
|
334 |
-
#lh_details{
|
335 |
-
overflow:auto;
|
336 |
-
}
|
337 |
-
|
338 |
-
#lh_page_details tr td{
|
339 |
-
word-break: break-all;
|
340 |
-
}
|
341 |
-
|
342 |
-
.wpel-link-locator{
|
343 |
-
text-decoration: none;
|
344 |
-
}
|
345 |
-
|
346 |
-
.wpel-link-locator .dashicons{
|
347 |
-
vertical-align: bottom;
|
348 |
-
font-size: 18px;
|
349 |
-
}
|
350 |
-
|
351 |
-
.body_lh_details_open{
|
352 |
-
overflow: hidden;
|
353 |
-
}
|
354 |
-
|
355 |
-
.lh-close {
|
356 |
-
position: absolute;
|
357 |
-
right: 32px;
|
358 |
-
top: 32px;
|
359 |
-
width: 32px;
|
360 |
-
height: 32px;
|
361 |
-
opacity: 0.3;
|
362 |
-
}
|
363 |
-
.lh-close:hover {
|
364 |
-
opacity: 1;
|
365 |
-
}
|
366 |
-
.lh-close:before,
|
367 |
-
.lh-close:after {
|
368 |
-
position: absolute;
|
369 |
-
left: 15px;
|
370 |
-
content: " ";
|
371 |
-
height: 33px;
|
372 |
-
width: 2px;
|
373 |
-
background-color: #333;
|
374 |
-
}
|
375 |
-
.lh-close:before {
|
376 |
-
transform: rotate(45deg);
|
377 |
-
}
|
378 |
-
.lh-close:after {
|
379 |
-
transform: rotate(-45deg);
|
380 |
-
}
|
381 |
-
|
382 |
-
#lh_details_title {
|
383 |
-
font-size: 20px;
|
384 |
-
margin: 20px 0;
|
385 |
-
}
|
386 |
-
|
387 |
-
#lh_pro_subscribe{
|
388 |
-
margin-top: 10px;
|
389 |
-
}
|
390 |
-
|
391 |
-
#lh_page_details {
|
392 |
-
border: 1px solid #eef2f4;
|
393 |
-
}
|
394 |
-
|
395 |
-
#lh_page_details .odd {
|
396 |
-
background-color: #eef2f4;
|
397 |
-
}
|
398 |
-
|
399 |
-
#lh_page_details tbody th,
|
400 |
-
table.dataTable tbody td {
|
401 |
-
padding: 20px 10px !important;
|
402 |
-
}
|
403 |
-
|
404 |
-
#lh_page_details thead th,
|
405 |
-
table.dataTable thead td {
|
406 |
-
border: none !important;
|
407 |
-
}
|
408 |
-
|
409 |
-
#lh_subscribe_email{
|
410 |
-
padding: 6px 10px;
|
411 |
-
}
|
412 |
-
|
413 |
-
#lh_subscribe_message{
|
414 |
-
width: 400px;
|
415 |
-
margin: 0 auto;
|
416 |
-
display: none;
|
417 |
-
text-align: center;
|
418 |
-
font-size: 12px;
|
419 |
-
font-weight: 400;
|
420 |
-
padding: 10px;
|
421 |
-
border-radius: 4px;
|
422 |
-
margin-top: 8px;
|
423 |
-
}
|
424 |
-
|
425 |
-
#lh_subscribe_button_loader {
|
426 |
-
width: 20px;
|
427 |
-
padding-top: 8px;
|
428 |
-
display: inline-block;
|
429 |
-
vertical-align: middle;
|
430 |
-
}
|
431 |
-
|
432 |
-
.lh-subscribe-good{
|
433 |
-
border: 1px solid #0d853b;
|
434 |
-
background: #ecfff8;
|
435 |
-
}
|
436 |
-
|
437 |
-
.lh-subscribe-bad{
|
438 |
-
border: 1px solid #ff2222;
|
439 |
-
background: #ffecec;
|
440 |
-
}
|
441 |
-
|
442 |
-
.dataTables_length {
|
443 |
-
display: none;
|
444 |
-
}
|
445 |
-
|
446 |
.wpel-logo {
|
447 |
width: 100%;
|
448 |
}
|
449 |
|
450 |
-
|
451 |
-
|
452 |
.toplevel_page_wpel-settings-page .checkbox-container,
|
453 |
.toplevel_page_wpel-settings-page .radio-container {
|
454 |
display: inline-block;
|
@@ -491,7 +336,7 @@ table.dataTable thead td {
|
|
491 |
|
492 |
.toplevel_page_wpel-settings-page .checkbox-container input:checked ~ .checkmark,
|
493 |
.toplevel_page_wpel-settings-page .radio-container input:checked ~ .radio {
|
494 |
-
background-color: #
|
495 |
}
|
496 |
|
497 |
.toplevel_page_wpel-settings-page .checkmark:after,
|
@@ -554,8 +399,8 @@ table.dataTable thead td {
|
|
554 |
}
|
555 |
|
556 |
.wp-core-ui .button-primary {
|
557 |
-
background: #
|
558 |
-
border-color: #
|
559 |
color: #fff;
|
560 |
text-decoration: none;
|
561 |
text-shadow: none;
|
@@ -569,152 +414,171 @@ kbd {
|
|
569 |
background-color: #eef3f5;
|
570 |
}
|
571 |
|
572 |
-
|
573 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
574 |
}
|
575 |
|
576 |
-
.
|
577 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
578 |
}
|
579 |
-
|
580 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
581 |
}
|
582 |
-
|
583 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
584 |
}
|
585 |
-
|
586 |
-
|
|
|
587 |
}
|
588 |
-
|
589 |
-
|
|
|
|
|
|
|
|
|
590 |
}
|
591 |
|
592 |
-
.
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
}
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
}
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
width: 20px;
|
619 |
-
height: 20px;
|
620 |
-
font-size: 28px;
|
621 |
-
vertical-align: top;
|
622 |
-
text-align: center;
|
623 |
-
transition: color .1s ease-in;
|
624 |
-
position: absolute;
|
625 |
-
top: 10px;
|
626 |
-
right: 15px;
|
627 |
-
color: #899aa7;
|
628 |
-
}
|
629 |
-
|
630 |
-
#lh_page_details_filter:after{
|
631 |
-
top:6px;
|
632 |
-
}
|
633 |
-
|
634 |
-
#lh_page_details_filter{
|
635 |
-
margin-bottom: 10px;
|
636 |
-
}
|
637 |
-
|
638 |
-
#lh_support p {
|
639 |
font-size: 14px;
|
640 |
-
margin-top: 20px;
|
641 |
}
|
642 |
|
643 |
-
|
644 |
-
|
645 |
-
background: none !important;
|
646 |
-
border: none !important;
|
647 |
}
|
648 |
|
649 |
-
|
650 |
-
|
651 |
-
background: transparent;
|
652 |
-
border-color: transparent;
|
653 |
}
|
654 |
|
655 |
-
.
|
656 |
-
|
657 |
-
width: 230px;
|
658 |
-
padding: 4px 0;
|
659 |
}
|
660 |
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
}
|
665 |
|
666 |
-
|
667 |
-
|
668 |
-
#wpel-internal-link-settings-icon_dashicon,
|
669 |
-
#wpel-internal-link-settings-icon_fontawesome{
|
670 |
-
font-size: 20px;
|
671 |
-
width: 80px;
|
672 |
-
padding: 4px 10px;
|
673 |
-
color: #1d2327;
|
674 |
}
|
675 |
|
676 |
-
.
|
677 |
-
|
678 |
}
|
679 |
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
|
|
686 |
}
|
687 |
|
688 |
-
#
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
}
|
695 |
|
696 |
-
.
|
697 |
-
|
698 |
-
padding: 10px 10px 10px 20px;
|
699 |
-
border: thin solid red;
|
700 |
-
border-left-width: 5px;
|
701 |
-
margin-bottom: 30px;
|
702 |
-
font-size: 14px;
|
703 |
}
|
704 |
|
705 |
-
.
|
706 |
-
max-
|
707 |
-
padding:
|
708 |
-
border: thin solid #31a3d9;
|
709 |
-
border-left-width: 5px;
|
710 |
-
margin-bottom: 30px;
|
711 |
-
font-size: 14px;
|
712 |
}
|
713 |
|
714 |
-
|
715 |
-
|
|
|
716 |
}
|
717 |
|
718 |
-
#wpel-
|
719 |
-
|
|
|
720 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
padding: 0px;
|
15 |
}
|
16 |
|
17 |
+
p {
|
18 |
+
font-size: 14px;
|
19 |
+
}
|
20 |
+
|
21 |
.wpel-body-wrap {
|
22 |
background-color: #fff;
|
23 |
padding: 40px 60px;
|
24 |
max-width: 1200px;
|
25 |
width: 100%;
|
26 |
+
margin: 0 20px;
|
27 |
box-sizing: border-box;
|
28 |
+
float: left;
|
29 |
+
}
|
30 |
+
|
31 |
+
.wpel-container-right {
|
32 |
+
max-width: calc(35% - 40px);
|
33 |
+
float: left;
|
34 |
+
}
|
35 |
+
|
36 |
+
.sidebar-box {
|
37 |
+
box-shadow: 0 1px 1px rgb(0 0 0 / 4%);
|
38 |
+
background: white;
|
39 |
+
padding: 15px;
|
40 |
+
font-size: 14px;
|
41 |
+
line-height: 1.5;
|
42 |
+
max-width: 450px;
|
43 |
+
}
|
44 |
+
|
45 |
+
.sidebar-box.pro-ad-box {
|
46 |
+
border: 2px solid #1775a7;
|
47 |
+
}
|
48 |
+
|
49 |
+
a.button.button-buy {
|
50 |
+
padding: 11px 40px;
|
51 |
+
color: white;
|
52 |
+
background: #1775a7;
|
53 |
+
font-weight: 600;
|
54 |
+
border: none;
|
55 |
+
line-height: 1.5;
|
56 |
+
height: auto;
|
57 |
+
margin-bottom: 10px;
|
58 |
+
}
|
59 |
+
|
60 |
+
a.button.button-buy:hover,
|
61 |
+
a.button.button-buy:active,
|
62 |
+
a.button.button-buy:focus {
|
63 |
+
box-shadow: 0px 0px 10px 0px rgb(50 138 210 / 52%);
|
64 |
+
background: #1775a7;
|
65 |
+
color: white;
|
66 |
+
border: none;
|
67 |
+
}
|
68 |
+
|
69 |
+
.text-center {
|
70 |
+
text-align: center;
|
71 |
+
}
|
72 |
+
|
73 |
+
.plain-list {
|
74 |
+
margin-top: 5px;
|
75 |
+
list-style-type: circle;
|
76 |
+
list-style-position: inside;
|
77 |
+
}
|
78 |
+
|
79 |
+
.plain-list li {
|
80 |
+
text-indent: -18px;
|
81 |
+
padding-left: 23px;
|
82 |
+
line-height: 23px;
|
83 |
+
margin: 0;
|
84 |
+
}
|
85 |
+
|
86 |
+
.pro-ad-box p b {
|
87 |
+
border-bottom: 3px solid #1775a7;
|
88 |
+
}
|
89 |
+
|
90 |
+
.pro-ad-box img {
|
91 |
+
max-height: 50px;
|
92 |
+
padding: 0 0 10px 0;
|
93 |
}
|
94 |
|
95 |
.toplevel_page_wpel-settings-page #wpcontent {
|
116 |
}
|
117 |
|
118 |
.nav-tab .dashicons {
|
119 |
+
color: #1775a7;
|
120 |
font-size: 18px;
|
121 |
margin-right: 4px;
|
122 |
line-height: 24px;
|
167 |
margin-right: 5px;
|
168 |
}
|
169 |
|
170 |
+
.wpel-settings-page .nav-tab-pro,
|
171 |
+
.wpel-network-page .nav-tab-pro {
|
172 |
+
background-color: #1775a7;
|
173 |
+
color: #fff;
|
174 |
+
}
|
175 |
+
|
176 |
+
.wpel-settings-page .nav-tab-pro:hover,
|
177 |
+
.wpel-network-page .nav-tab-pro:hover {
|
178 |
+
background-color: #1775a7;
|
179 |
+
color: #fff;
|
180 |
}
|
181 |
|
182 |
.wpel-settings-page form,
|
228 |
margin-bottom: -3px;
|
229 |
border-bottom: 3px solid #eef3f5;
|
230 |
font-weight: 400;
|
231 |
+
padding: 10px 15px;
|
232 |
outline: none;
|
233 |
box-shadow: none;
|
234 |
font-weight: 500;
|
237 |
.nav-tab-active,
|
238 |
.nav-tab-active:hover,
|
239 |
.nav-tab:hover {
|
240 |
+
color: #1775a7;
|
241 |
+
border-bottom: 3px solid #1775a7;
|
242 |
background: none;
|
243 |
margin-right: 0;
|
244 |
margin-left: 0;
|
279 |
#rating-notice, .notice {
|
280 |
display: block;
|
281 |
width: 1200px;
|
282 |
+
margin: 10px 20px !important;
|
283 |
box-sizing: border-box;
|
284 |
border-right: none;
|
285 |
border-top: none;
|
290 |
padding: 15px;
|
291 |
}
|
292 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
.wpel-logo {
|
294 |
width: 100%;
|
295 |
}
|
296 |
|
|
|
|
|
297 |
.toplevel_page_wpel-settings-page .checkbox-container,
|
298 |
.toplevel_page_wpel-settings-page .radio-container {
|
299 |
display: inline-block;
|
336 |
|
337 |
.toplevel_page_wpel-settings-page .checkbox-container input:checked ~ .checkmark,
|
338 |
.toplevel_page_wpel-settings-page .radio-container input:checked ~ .radio {
|
339 |
+
background-color: #1775a7;
|
340 |
}
|
341 |
|
342 |
.toplevel_page_wpel-settings-page .checkmark:after,
|
399 |
}
|
400 |
|
401 |
.wp-core-ui .button-primary {
|
402 |
+
background: #1775a7;
|
403 |
+
border-color: #1775a7;
|
404 |
color: #fff;
|
405 |
text-decoration: none;
|
406 |
text-shadow: none;
|
414 |
background-color: #eef3f5;
|
415 |
}
|
416 |
|
417 |
+
#wpel-external-link-settings-icon_dashicon,
|
418 |
+
#wpel-external-link-settings-icon_fontawesome,
|
419 |
+
#wpel-internal-link-settings-icon_dashicon,
|
420 |
+
#wpel-internal-link-settings-icon_fontawesome{
|
421 |
+
font-size: 20px;
|
422 |
+
width: 80px;
|
423 |
+
padding: 4px 10px;
|
424 |
+
color: #1d2327;
|
425 |
}
|
426 |
|
427 |
+
.notice-box-error {
|
428 |
+
max-width: 700px;
|
429 |
+
padding: 10px 10px 10px 20px;
|
430 |
+
border: thin solid red;
|
431 |
+
border-left-width: 5px;
|
432 |
+
margin-bottom: 30px;
|
433 |
+
font-size: 14px;
|
434 |
+
line-height: 1.5;
|
435 |
}
|
436 |
+
|
437 |
+
.notice-box-info {
|
438 |
+
padding: 10px 10px 10px 20px;
|
439 |
+
border: thin solid #1775a7;
|
440 |
+
border-left-width: 5px;
|
441 |
+
margin-bottom: 30px;
|
442 |
+
font-size: 14px;
|
443 |
+
line-height: 1.5;
|
444 |
}
|
445 |
+
|
446 |
+
.notice-box-error p, .notice-box-info p {
|
447 |
+
font-size: 14px;
|
448 |
+
}
|
449 |
+
|
450 |
+
/* pro dialog */
|
451 |
+
.ui-dialog-titlebar {
|
452 |
+
display: none;
|
453 |
}
|
454 |
+
|
455 |
+
.wpel-pro-dialog .logo img {
|
456 |
+
max-height: 55px;
|
457 |
}
|
458 |
+
|
459 |
+
.wpel-pro-dialog .logo {
|
460 |
+
text-align: center;
|
461 |
+
background: #f8f8f8;
|
462 |
+
margin: -16px -16px 0 -16px;
|
463 |
+
padding: 15px;
|
464 |
}
|
465 |
|
466 |
+
.wpel-pro-dialog .footer {
|
467 |
+
text-align: center;
|
468 |
+
background: #f8f8f8;
|
469 |
+
margin: 0 -16px -16px -16px;
|
470 |
+
padding: 15px;
|
471 |
+
}
|
472 |
+
|
473 |
+
.wpel-pro-dialog .logo span {
|
474 |
+
display: block;
|
475 |
+
font-size: 18px;
|
476 |
+
margin: 10px;
|
477 |
+
}
|
478 |
+
|
479 |
+
.wpel-pro-dialog .logo span b {
|
480 |
+
border-bottom: 3px solid #1775a7;
|
481 |
+
}
|
482 |
+
|
483 |
+
#wpel-pro-table {
|
484 |
+
width: 100%;
|
485 |
+
margin: 10px auto 10px auto;
|
486 |
+
border-collapse: collapse;
|
487 |
+
}
|
488 |
+
|
489 |
+
#wpel-pro-table td {
|
490 |
+
padding: 4px 10px 4px 34px;
|
491 |
+
border: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
font-size: 14px;
|
|
|
493 |
}
|
494 |
|
495 |
+
#wpel-pro-table tr:last-child td {
|
496 |
+
text-align: center;
|
|
|
|
|
497 |
}
|
498 |
|
499 |
+
#wpel-pro-table td:nth-child(2) {
|
500 |
+
background-color: rgb(23 117 167 / 8%);
|
|
|
|
|
501 |
}
|
502 |
|
503 |
+
#wpel-pro-table .dashicons-yes {
|
504 |
+
color: #1775a7;
|
|
|
|
|
505 |
}
|
506 |
|
507 |
+
#wpel-pro-table .dashicons {
|
508 |
+
padding-right: 8px;
|
509 |
+
margin-left: -27px;
|
510 |
}
|
511 |
|
512 |
+
.center {
|
513 |
+
text-align: center;
|
|
|
|
|
|
|
|
|
|
|
|
|
514 |
}
|
515 |
|
516 |
+
.prices del {
|
517 |
+
color: #00000099;
|
518 |
}
|
519 |
|
520 |
+
.prices span {
|
521 |
+
font-weight: 700;
|
522 |
+
font-size: 40px;
|
523 |
+
color: #1775a7;
|
524 |
+
line-height: 1;
|
525 |
+
display: inline-block;
|
526 |
+
padding-bottom: 15px;
|
527 |
}
|
528 |
|
529 |
+
#wpel-pro-table tr:first-child td {
|
530 |
+
color: #000;
|
531 |
+
font-size: 18px;
|
532 |
+
font-weight: 800 !important;
|
533 |
+
padding: 10px 0;
|
534 |
+
text-align: center;
|
535 |
}
|
536 |
|
537 |
+
.pro-ad-box p b {
|
538 |
+
border-bottom: 3px solid #1775a7;
|
|
|
|
|
|
|
|
|
|
|
539 |
}
|
540 |
|
541 |
+
.pro-ad-box img {
|
542 |
+
max-height: 50px;
|
543 |
+
padding: 0 0 10px 0;
|
|
|
|
|
|
|
|
|
544 |
}
|
545 |
|
546 |
+
#wpel-pro-table tr:last-child td {
|
547 |
+
padding: 20px 0 20px 0;
|
548 |
+
vertical-align: top;
|
549 |
}
|
550 |
|
551 |
+
#wpel-pro-table tr:last-child td span {
|
552 |
+
display: block;
|
553 |
+
padding: 0 0 5px 0;
|
554 |
}
|
555 |
+
|
556 |
+
#wpel-features {
|
557 |
+
width: 100%;
|
558 |
+
padding: 20px 0 0 0;
|
559 |
+
}
|
560 |
+
|
561 |
+
#wpel-features td {
|
562 |
+
padding: 10px 20px;
|
563 |
+
}
|
564 |
+
|
565 |
+
.wp-dialog.ui-widget-content {
|
566 |
+
background: #fff !important;
|
567 |
+
}
|
568 |
+
|
569 |
+
#wpel-pro-dialog {
|
570 |
+
overflow: hidden;
|
571 |
+
}
|
572 |
+
|
573 |
+
.pro-feature {
|
574 |
+
vertical-align: super;
|
575 |
+
color: #1775a7;
|
576 |
+
font-weight: 600;
|
577 |
+
font-size: 12px;
|
578 |
+
margin-left: 4px;
|
579 |
+
font-style: italic;
|
580 |
+
}
|
581 |
+
|
582 |
+
.wpel-field-number {
|
583 |
+
width: 80px;
|
584 |
+
}
|
public/images/icon-small.png
ADDED
Binary file
|
public/images/icon.png
ADDED
Binary file
|
public/images/link-checker.png
ADDED
Binary file
|
public/images/link-rules-new.png
ADDED
Binary file
|
public/images/link-rules.png
ADDED
Binary file
|
public/images/logo.png
CHANGED
Binary file
|
public/js/jquery.dataTables.min.js
DELETED
@@ -1,184 +0,0 @@
|
|
1 |
-
/*!
|
2 |
-
Copyright 2008-2021 SpryMedia Ltd.
|
3 |
-
|
4 |
-
This source file is free software, available under the following license:
|
5 |
-
MIT license - http://datatables.net/license
|
6 |
-
|
7 |
-
This source file is distributed in the hope that it will be useful, but
|
8 |
-
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
9 |
-
or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
|
10 |
-
|
11 |
-
For details please refer to: http://www.datatables.net
|
12 |
-
DataTables 1.10.25
|
13 |
-
©2008-2021 SpryMedia Ltd - datatables.net/license
|
14 |
-
*/
|
15 |
-
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(k,y,z){k instanceof String&&(k=String(k));for(var q=k.length,G=0;G<q;G++){var O=k[G];if(y.call(z,O,G,k))return{i:G,v:O}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;
|
16 |
-
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(k,y,z){if(k==Array.prototype||k==Object.prototype)return k;k[y]=z.value;return k};$jscomp.getGlobal=function(k){k=["object"==typeof globalThis&&globalThis,k,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var y=0;y<k.length;++y){var z=k[y];if(z&&z.Math==Math)return z}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
|
17 |
-
$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(k,y){var z=$jscomp.propertyToPolyfillSymbol[y];if(null==z)return k[y];z=k[z];return void 0!==z?z:k[y]};
|
18 |
-
$jscomp.polyfill=function(k,y,z,q){y&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,y,z,q):$jscomp.polyfillUnisolated(k,y,z,q))};$jscomp.polyfillUnisolated=function(k,y,z,q){z=$jscomp.global;k=k.split(".");for(q=0;q<k.length-1;q++){var G=k[q];if(!(G in z))return;z=z[G]}k=k[k.length-1];q=z[k];y=y(q);y!=q&&null!=y&&$jscomp.defineProperty(z,k,{configurable:!0,writable:!0,value:y})};
|
19 |
-
$jscomp.polyfillIsolated=function(k,y,z,q){var G=k.split(".");k=1===G.length;q=G[0];q=!k&&q in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var O=0;O<G.length-1;O++){var ma=G[O];if(!(ma in q))return;q=q[ma]}G=G[G.length-1];z=$jscomp.IS_SYMBOL_NATIVE&&"es6"===z?q[G]:null;y=y(z);null!=y&&(k?$jscomp.defineProperty($jscomp.polyfills,G,{configurable:!0,writable:!0,value:y}):y!==z&&($jscomp.propertyToPolyfillSymbol[G]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(G):$jscomp.POLYFILL_PREFIX+G,
|
20 |
-
G=$jscomp.propertyToPolyfillSymbol[G],$jscomp.defineProperty(q,G,{configurable:!0,writable:!0,value:y})))};$jscomp.polyfill("Array.prototype.find",function(k){return k?k:function(y,z){return $jscomp.findInternal(this,y,z).v}},"es6","es3");
|
21 |
-
(function(k){"function"===typeof define&&define.amd?define(["jquery"],function(y){return k(y,window,document)}):"object"===typeof exports?module.exports=function(y,z){y||(y=window);z||(z="undefined"!==typeof window?require("jquery"):require("jquery")(y));return k(z,y,y.document)}:k(jQuery,window,document)})(function(k,y,z,q){function G(a){var b,c,d={};k.each(a,function(e,f){(b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" ")&&(c=e.replace(b[0],b[2].toLowerCase()),
|
22 |
-
d[c]=e,"o"===b[1]&&G(a[e]))});a._hungarianMap=d}function O(a,b,c){a._hungarianMap||G(a);var d;k.each(b,function(e,f){d=a._hungarianMap[e];d===q||!c&&b[d]!==q||("o"===d.charAt(0)?(b[d]||(b[d]={}),k.extend(!0,b[d],b[e]),O(a[d],b[d],c)):b[d]=b[e])})}function ma(a){var b=u.defaults.oLanguage,c=b.sDecimal;c&&Wa(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&d&&"No data available in table"===b.sEmptyTable&&V(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&d&&"Loading..."===b.sLoadingRecords&&V(a,a,
|
23 |
-
"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Wa(a)}}function zb(a){R(a,"ordering","bSort");R(a,"orderMulti","bSortMulti");R(a,"orderClasses","bSortClasses");R(a,"orderCellsTop","bSortCellsTop");R(a,"order","aaSorting");R(a,"orderFixed","aaSortingFixed");R(a,"paging","bPaginate");R(a,"pagingType","sPaginationType");R(a,"pageLength","iDisplayLength");R(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":
|
24 |
-
"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&O(u.models.oSearch,a[b])}function Ab(a){R(a,"orderable","bSortable");R(a,"orderData","aDataSort");R(a,"orderSequence","asSorting");R(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"!==typeof b||Array.isArray(b)||(a.aDataSort=[b])}function Bb(a){if(!u.__browser){var b={};u.__browser=b;var c=k("<div/>").css({position:"fixed",top:0,left:-1*k(y).scrollLeft(),height:1,
|
25 |
-
width:1,overflow:"hidden"}).append(k("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(k("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}k.extend(a.oBrowser,u.__browser);a.oScroll.iBarWidth=u.__browser.barWidth}
|
26 |
-
function Cb(a,b,c,d,e,f){var g=!1;if(c!==q){var h=c;g=!0}for(;d!==e;)a.hasOwnProperty(d)&&(h=g?b(h,a[d],d,a):a[d],g=!0,d+=f);return h}function Xa(a,b){var c=u.defaults.column,d=a.aoColumns.length;c=k.extend({},u.models.oColumn,c,{nTh:b?b:z.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=k.extend({},u.models.oSearch,c[d]);Ea(a,d,k(b).data())}function Ea(a,b,c){b=a.aoColumns[b];
|
27 |
-
var d=a.oClasses,e=k(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==q&&null!==c&&(Ab(c),O(u.defaults.column,c,!0),c.mDataProp===q||c.mData||(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),k.extend(b,c),V(b,c,"sWidth","sWidthOrig"),c.iDataSort!==q&&(b.aDataSort=[c.iDataSort]),V(b,c,"aDataSort"));var g=b.mData,h=ia(g),
|
28 |
-
l=b.mRender?ia(b.mRender):null;c=function(n){return"string"===typeof n&&-1!==n.indexOf("@")};b._bAttrSrc=k.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(n,m,p){var t=h(n,m,q,p);return l&&m?l(t,m,n,p):t};b.fnSetData=function(n,m,p){return da(g)(n,m,p)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==k.inArray("asc",b.asSorting);c=-1!==k.inArray("desc",b.asSorting);b.bSortable&&(a||c)?a&&!c?
|
29 |
-
(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI):(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI="")}function ra(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ya(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;""===b.sY&&""===b.sX||Fa(a);H(a,null,"column-sizing",[a])}function sa(a,b){a=Ga(a,"bVisible");
|
30 |
-
return"number"===typeof a[b]?a[b]:null}function ta(a,b){a=Ga(a,"bVisible");b=k.inArray(b,a);return-1!==b?b:null}function na(a){var b=0;k.each(a.aoColumns,function(c,d){d.bVisible&&"none"!==k(d.nTh).css("display")&&b++});return b}function Ga(a,b){var c=[];k.map(a.aoColumns,function(d,e){d[b]&&c.push(e)});return c}function Za(a){var b=a.aoColumns,c=a.aoData,d=u.ext.type.detect,e,f,g;var h=0;for(e=b.length;h<e;h++){var l=b[h];var n=[];if(!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){var m=
|
31 |
-
0;for(f=d.length;m<f;m++){var p=0;for(g=c.length;p<g;p++){n[p]===q&&(n[p]=S(a,p,h,"type"));var t=d[m](n[p],a);if(!t&&m!==d.length-1)break;if("html"===t&&!Z(n[p]))break}if(t){l.sType=t;break}}l.sType||(l.sType="string")}}}function Db(a,b,c,d){var e,f,g,h=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){var l=b[e];var n=l.targets!==q?l.targets:l.aTargets;Array.isArray(n)||(n=[n]);var m=0;for(f=n.length;m<f;m++)if("number"===typeof n[m]&&0<=n[m]){for(;h.length<=n[m];)Xa(a);d(n[m],l)}else if("number"===typeof n[m]&&
|
32 |
-
0>n[m])d(h.length+n[m],l);else if("string"===typeof n[m]){var p=0;for(g=h.length;p<g;p++)("_all"==n[m]||k(h[p].nTh).hasClass(n[m]))&&d(p,l)}}if(c)for(e=0,a=c.length;e<a;e++)d(e,c[e])}function ea(a,b,c,d){var e=a.aoData.length,f=k.extend(!0,{},u.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,h=0,l=g.length;h<l;h++)g[h].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==q&&(a.aIds[b]=f);!c&&a.oFeatures.bDeferRender||$a(a,e,c,d);return e}function Ha(a,
|
33 |
-
b){var c;b instanceof k||(b=k(b));return b.map(function(d,e){c=ab(a,e);return ea(a,c.data,e,c.cells)})}function S(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,h=f.sDefaultContent,l=f.fnGetData(g,d,{settings:a,row:b,col:c});if(l===q)return a.iDrawError!=e&&null===h&&(ca(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),h;if((l===g||null===l)&&null!==h&&d!==q)l=h;else if("function"===typeof l)return l.call(g);
|
34 |
-
return null===l&&"display"==d?"":l}function Eb(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function bb(a){return k.map(a.match(/(\\.|[^\.])+/g)||[""],function(b){return b.replace(/\\\./g,".")})}function ia(a){if(k.isPlainObject(a)){var b={};k.each(a,function(d,e){e&&(b[d]=ia(e))});return function(d,e,f,g){var h=b[e]||b._;return h!==q?h(d,e,f,g):d}}if(null===a)return function(d){return d};if("function"===typeof a)return function(d,e,f,g){return a(d,e,f,g)};if("string"!==
|
35 |
-
typeof a||-1===a.indexOf(".")&&-1===a.indexOf("[")&&-1===a.indexOf("("))return function(d,e){return d[a]};var c=function(d,e,f){if(""!==f){var g=bb(f);for(var h=0,l=g.length;h<l;h++){f=g[h].match(ua);var n=g[h].match(oa);if(f){g[h]=g[h].replace(ua,"");""!==g[h]&&(d=d[g[h]]);n=[];g.splice(0,h+1);g=g.join(".");if(Array.isArray(d))for(h=0,l=d.length;h<l;h++)n.push(c(d[h],e,g));d=f[0].substring(1,f[0].length-1);d=""===d?n:n.join(d);break}else if(n){g[h]=g[h].replace(oa,"");d=d[g[h]]();continue}if(null===
|
36 |
-
d||d[g[h]]===q)return q;d=d[g[h]]}}return d};return function(d,e){return c(d,e,a)}}function da(a){if(k.isPlainObject(a))return da(a._);if(null===a)return function(){};if("function"===typeof a)return function(c,d,e){a(c,"set",d,e)};if("string"!==typeof a||-1===a.indexOf(".")&&-1===a.indexOf("[")&&-1===a.indexOf("("))return function(c,d){c[a]=d};var b=function(c,d,e){e=bb(e);var f=e[e.length-1];for(var g,h,l=0,n=e.length-1;l<n;l++){if("__proto__"===e[l]||"constructor"===e[l])throw Error("Cannot set prototype values");
|
37 |
-
g=e[l].match(ua);h=e[l].match(oa);if(g){e[l]=e[l].replace(ua,"");c[e[l]]=[];f=e.slice();f.splice(0,l+1);g=f.join(".");if(Array.isArray(d))for(h=0,n=d.length;h<n;h++)f={},b(f,d[h],g),c[e[l]].push(f);else c[e[l]]=d;return}h&&(e[l]=e[l].replace(oa,""),c=c[e[l]](d));if(null===c[e[l]]||c[e[l]]===q)c[e[l]]={};c=c[e[l]]}if(f.match(oa))c[f.replace(oa,"")](d);else c[f.replace(ua,"")]=d};return function(c,d){return b(c,d,a)}}function cb(a){return T(a.aoData,"_aData")}function Ia(a){a.aoData.length=0;a.aiDisplayMaster.length=
|
38 |
-
0;a.aiDisplay.length=0;a.aIds={}}function Ja(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===q&&a.splice(d,1)}function va(a,b,c,d){var e=a.aoData[b],f,g=function(l,n){for(;l.childNodes.length;)l.removeChild(l.firstChild);l.innerHTML=S(a,b,n,"display")};if("dom"!==c&&(c&&"auto"!==c||"dom"!==e.src)){var h=e.anCells;if(h)if(d!==q)g(h[d],d);else for(c=0,f=h.length;c<f;c++)g(h[c],c)}else e._aData=ab(a,e,d,d===q?q:e._aData).data;e._aSortData=null;e._aFilterData=null;g=
|
39 |
-
a.aoColumns;if(d!==q)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;db(a,e)}}function ab(a,b,c,d){var e=[],f=b.firstChild,g,h=0,l,n=a.aoColumns,m=a._rowReadObject;d=d!==q?d:m?{}:[];var p=function(x,r){if("string"===typeof x){var A=x.indexOf("@");-1!==A&&(A=x.substring(A+1),da(x)(d,r.getAttribute(A)))}},t=function(x){if(c===q||c===h)g=n[h],l=x.innerHTML.trim(),g&&g._bAttrSrc?(da(g.mData._)(d,l),p(g.mData.sort,x),p(g.mData.type,x),p(g.mData.filter,x)):m?(g._setter||(g._setter=da(g.mData)),
|
40 |
-
g._setter(d,l)):d[h]=l;h++};if(f)for(;f;){var v=f.nodeName.toUpperCase();if("TD"==v||"TH"==v)t(f),e.push(f);f=f.nextSibling}else for(e=b.anCells,f=0,v=e.length;f<v;f++)t(e[f]);(b=b.firstChild?b:b.nTr)&&(b=b.getAttribute("id"))&&da(a.rowId)(d,b);return{data:d,cells:e}}function $a(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],h,l;if(null===e.nTr){var n=c||z.createElement("tr");e.nTr=n;e.anCells=g;n._DT_RowIndex=b;db(a,e);var m=0;for(h=a.aoColumns.length;m<h;m++){var p=a.aoColumns[m];e=(l=c?!1:!0)?z.createElement(p.sCellType):
|
41 |
-
d[m];e._DT_CellIndex={row:b,column:m};g.push(e);if(l||!(!p.mRender&&p.mData===m||k.isPlainObject(p.mData)&&p.mData._===m+".display"))e.innerHTML=S(a,b,m,"display");p.sClass&&(e.className+=" "+p.sClass);p.bVisible&&!c?n.appendChild(e):!p.bVisible&&c&&e.parentNode.removeChild(e);p.fnCreatedCell&&p.fnCreatedCell.call(a.oInstance,e,S(a,b,m),f,b,m)}H(a,"aoRowCreatedCallback",null,[n,f,b,g])}}function db(a,b){var c=b.nTr,d=b._aData;if(c){if(a=a.rowIdFn(d))c.id=a;d.DT_RowClass&&(a=d.DT_RowClass.split(" "),
|
42 |
-
b.__rowc=b.__rowc?Ka(b.__rowc.concat(a)):a,k(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));d.DT_RowAttr&&k(c).attr(d.DT_RowAttr);d.DT_RowData&&k(c).data(d.DT_RowData)}}function Fb(a){var b,c,d=a.nTHead,e=a.nTFoot,f=0===k("th, td",d).length,g=a.oClasses,h=a.aoColumns;f&&(c=k("<tr/>").appendTo(d));var l=0;for(b=h.length;l<b;l++){var n=h[l];var m=k(n.nTh).addClass(n.sClass);f&&m.appendTo(c);a.oFeatures.bSort&&(m.addClass(n.sSortingClass),!1!==n.bSortable&&(m.attr("tabindex",a.iTabIndex).attr("aria-controls",
|
43 |
-
a.sTableId),eb(a,n.nTh,l)));n.sTitle!=m[0].innerHTML&&m.html(n.sTitle);fb(a,"header")(a,m,n,g)}f&&wa(a.aoHeader,d);k(d).children("tr").attr("role","row");k(d).children("tr").children("th, td").addClass(g.sHeaderTH);k(e).children("tr").children("th, td").addClass(g.sFooterTH);if(null!==e)for(a=a.aoFooter[0],l=0,b=a.length;l<b;l++)n=h[l],n.nTf=a[l].cell,n.sClass&&k(n.nTf).addClass(n.sClass)}function xa(a,b,c){var d,e,f=[],g=[],h=a.aoColumns.length;if(b){c===q&&(c=!1);var l=0;for(d=b.length;l<d;l++){f[l]=
|
44 |
-
b[l].slice();f[l].nTr=b[l].nTr;for(e=h-1;0<=e;e--)a.aoColumns[e].bVisible||c||f[l].splice(e,1);g.push([])}l=0;for(d=f.length;l<d;l++){if(a=f[l].nTr)for(;e=a.firstChild;)a.removeChild(e);e=0;for(b=f[l].length;e<b;e++){var n=h=1;if(g[l][e]===q){a.appendChild(f[l][e].cell);for(g[l][e]=1;f[l+h]!==q&&f[l][e].cell==f[l+h][e].cell;)g[l+h][e]=1,h++;for(;f[l][e+n]!==q&&f[l][e].cell==f[l][e+n].cell;){for(c=0;c<h;c++)g[l+c][e+n]=1;n++}k(f[l][e].cell).attr("rowspan",h).attr("colspan",n)}}}}}function fa(a,b){var c=
|
45 |
-
H(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==k.inArray(!1,c))U(a,!1);else{c=[];var d=0,e=a.asStripeClasses,f=e.length,g=a.oLanguage,h=a.iInitDisplayStart,l="ssp"==P(a),n=a.aiDisplay;a.bDrawing=!0;h!==q&&-1!==h&&(a._iDisplayStart=l?h:h>=a.fnRecordsDisplay()?0:h,a.iInitDisplayStart=-1);h=a._iDisplayStart;var m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,U(a,!1);else if(!l)a.iDraw++;else if(!a.bDestroying&&!b){Gb(a);return}if(0!==n.length)for(b=l?a.aoData.length:m,g=l?0:h;g<b;g++){l=
|
46 |
-
n[g];var p=a.aoData[l];null===p.nTr&&$a(a,l);var t=p.nTr;if(0!==f){var v=e[d%f];p._sRowStripe!=v&&(k(t).removeClass(p._sRowStripe).addClass(v),p._sRowStripe=v)}H(a,"aoRowCallback",null,[t,p._aData,d,g,l]);c.push(t);d++}else d=g.sZeroRecords,1==a.iDraw&&"ajax"==P(a)?d=g.sLoadingRecords:g.sEmptyTable&&0===a.fnRecordsTotal()&&(d=g.sEmptyTable),c[0]=k("<tr/>",{"class":f?e[0]:""}).append(k("<td />",{valign:"top",colSpan:na(a),"class":a.oClasses.sRowEmpty}).html(d))[0];H(a,"aoHeaderCallback","header",[k(a.nTHead).children("tr")[0],
|
47 |
-
cb(a),h,m,n]);H(a,"aoFooterCallback","footer",[k(a.nTFoot).children("tr")[0],cb(a),h,m,n]);e=k(a.nTBody);e.children().detach();e.append(k(c));H(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function ja(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&Hb(a);d?ya(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;fa(a);a._drawHold=!1}function Ib(a){var b=a.oClasses,c=k(a.nTable);c=k("<div/>").insertBefore(c);var d=a.oFeatures,
|
48 |
-
e=k("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,h,l,n,m,p,t=0;t<f.length;t++){g=null;h=f[t];if("<"==h){l=k("<div/>")[0];n=f[t+1];if("'"==n||'"'==n){m="";for(p=2;f[t+p]!=n;)m+=f[t+p],p++;"H"==m?m=b.sJUIHeader:"F"==m&&(m=b.sJUIFooter);-1!=m.indexOf(".")?(n=m.split("."),l.id=n[0].substr(1,n[0].length-1),l.className=n[1]):"#"==m.charAt(0)?l.id=m.substr(1,
|
49 |
-
m.length-1):l.className=m;t+=p}e.append(l);e=k(l)}else if(">"==h)e=e.parent();else if("l"==h&&d.bPaginate&&d.bLengthChange)g=Jb(a);else if("f"==h&&d.bFilter)g=Kb(a);else if("r"==h&&d.bProcessing)g=Lb(a);else if("t"==h)g=Mb(a);else if("i"==h&&d.bInfo)g=Nb(a);else if("p"==h&&d.bPaginate)g=Ob(a);else if(0!==u.ext.feature.length)for(l=u.ext.feature,p=0,n=l.length;p<n;p++)if(h==l[p].cFeature){g=l[p].fnInit(a);break}g&&(l=a.aanFeatures,l[h]||(l[h]=[]),l[h].push(g),e.append(g))}c.replaceWith(e);a.nHolding=
|
50 |
-
null}function wa(a,b){b=k(b).children("tr");var c,d,e;a.splice(0,a.length);var f=0;for(e=b.length;f<e;f++)a.push([]);f=0;for(e=b.length;f<e;f++){var g=b[f];for(c=g.firstChild;c;){if("TD"==c.nodeName.toUpperCase()||"TH"==c.nodeName.toUpperCase()){var h=1*c.getAttribute("colspan");var l=1*c.getAttribute("rowspan");h=h&&0!==h&&1!==h?h:1;l=l&&0!==l&&1!==l?l:1;var n=0;for(d=a[f];d[n];)n++;var m=n;var p=1===h?!0:!1;for(d=0;d<h;d++)for(n=0;n<l;n++)a[f+n][m+d]={cell:c,unique:p},a[f+n].nTr=g}c=c.nextSibling}}}
|
51 |
-
function La(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],wa(c,b)));b=0;for(var e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)!c[b][f].unique||d[f]&&a.bSortCellsTop||(d[f]=c[b][f].cell);return d}function Ma(a,b,c){H(a,"aoServerParams","serverParams",[b]);if(b&&Array.isArray(b)){var d={},e=/(.*?)\[\]$/;k.each(b,function(m,p){(m=p.name.match(e))?(m=m[0],d[m]||(d[m]=[]),d[m].push(p.value)):d[p.name]=p.value});b=d}var f=a.ajax,g=a.oInstance,h=function(m){H(a,null,"xhr",[a,m,a.jqXHR]);c(m)};if(k.isPlainObject(f)&&
|
52 |
-
f.data){var l=f.data;var n="function"===typeof l?l(b,a):l;b="function"===typeof l&&n?n:k.extend(!0,b,n);delete f.data}n={data:b,success:function(m){var p=m.error||m.sError;p&&ca(a,0,p);a.json=m;h(m)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(m,p,t){t=H(a,null,"xhr",[a,null,a.jqXHR]);-1===k.inArray(!0,t)&&("parsererror"==p?ca(a,0,"Invalid JSON response",1):4===m.readyState&&ca(a,0,"Ajax error",7));U(a,!1)}};a.oAjaxData=b;H(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(g,
|
53 |
-
a.sAjaxSource,k.map(b,function(m,p){return{name:p,value:m}}),h,a):a.sAjaxSource||"string"===typeof f?a.jqXHR=k.ajax(k.extend(n,{url:f||a.sAjaxSource})):"function"===typeof f?a.jqXHR=f.call(g,b,h,a):(a.jqXHR=k.ajax(k.extend(n,f)),f.data=l)}function Gb(a){a.iDraw++;U(a,!0);Ma(a,Pb(a),function(b){Qb(a,b)})}function Pb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g=[],h=pa(a);var l=a._iDisplayStart;var n=!1!==d.bPaginate?a._iDisplayLength:-1;var m=function(x,r){g.push({name:x,
|
54 |
-
value:r})};m("sEcho",a.iDraw);m("iColumns",c);m("sColumns",T(b,"sName").join(","));m("iDisplayStart",l);m("iDisplayLength",n);var p={draw:a.iDraw,columns:[],order:[],start:l,length:n,search:{value:e.sSearch,regex:e.bRegex}};for(l=0;l<c;l++){var t=b[l];var v=f[l];n="function"==typeof t.mData?"function":t.mData;p.columns.push({data:n,name:t.sName,searchable:t.bSearchable,orderable:t.bSortable,search:{value:v.sSearch,regex:v.bRegex}});m("mDataProp_"+l,n);d.bFilter&&(m("sSearch_"+l,v.sSearch),m("bRegex_"+
|
55 |
-
l,v.bRegex),m("bSearchable_"+l,t.bSearchable));d.bSort&&m("bSortable_"+l,t.bSortable)}d.bFilter&&(m("sSearch",e.sSearch),m("bRegex",e.bRegex));d.bSort&&(k.each(h,function(x,r){p.order.push({column:r.col,dir:r.dir});m("iSortCol_"+x,r.col);m("sSortDir_"+x,r.dir)}),m("iSortingCols",h.length));b=u.ext.legacy.ajax;return null===b?a.sAjaxSource?g:p:b?g:p}function Qb(a,b){var c=function(g,h){return b[g]!==q?b[g]:b[h]},d=Na(a,b),e=c("sEcho","draw"),f=c("iTotalRecords","recordsTotal");c=c("iTotalDisplayRecords",
|
56 |
-
"recordsFiltered");if(e!==q){if(1*e<a.iDraw)return;a.iDraw=1*e}Ia(a);a._iRecordsTotal=parseInt(f,10);a._iRecordsDisplay=parseInt(c,10);e=0;for(f=d.length;e<f;e++)ea(a,d[e]);a.aiDisplay=a.aiDisplayMaster.slice();fa(a,!0);a._bInitComplete||Oa(a,b);U(a,!1)}function Na(a,b){a=k.isPlainObject(a.ajax)&&a.ajax.dataSrc!==q?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===a?b.aaData||b[a]:""!==a?ia(a)(b):b}function Kb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+
|
57 |
-
b.sFilterInput+'"/>',h=d.sSearch;h=h.match(/_INPUT_/)?h.replace("_INPUT_",g):h+g;b=k("<div/>",{id:f.f?null:c+"_filter","class":b.sFilter}).append(k("<label/>").append(h));var l=function(){var m=this.value?this.value:"";m!=e.sSearch&&(ya(a,{sSearch:m,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,fa(a))};f=null!==a.searchDelay?a.searchDelay:"ssp"===P(a)?400:0;var n=k("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",
|
58 |
-
f?gb(l,f):l).on("mouseup",function(m){setTimeout(function(){l.call(n[0])},10)}).on("keypress.DT",function(m){if(13==m.keyCode)return!1}).attr("aria-controls",c);k(a.nTable).on("search.dt.DT",function(m,p){if(a===p)try{n[0]!==z.activeElement&&n.val(e.sSearch)}catch(t){}});return b[0]}function ya(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(h){d.sSearch=h.sSearch;d.bRegex=h.bRegex;d.bSmart=h.bSmart;d.bCaseInsensitive=h.bCaseInsensitive},g=function(h){return h.bEscapeRegex!==q?!h.bEscapeRegex:
|
59 |
-
h.bRegex};Za(a);if("ssp"!=P(a)){Rb(a,b.sSearch,c,g(b),b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)Sb(a,e[b].sSearch,b,g(e[b]),e[b].bSmart,e[b].bCaseInsensitive);Tb(a)}else f(b);a.bFiltered=!0;H(a,null,"search",[a])}function Tb(a){for(var b=u.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var h=[],l=0,n=c.length;l<n;l++)e=c[l],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,l)&&h.push(e);c.length=0;k.merge(c,h)}}function Sb(a,b,c,d,e,f){if(""!==b){var g=[],h=a.aiDisplay;d=hb(b,
|
60 |
-
d,e,f);for(e=0;e<h.length;e++)b=a.aoData[h[e]]._aFilterData[c],d.test(b)&&g.push(h[e]);a.aiDisplay=g}}function Rb(a,b,c,d,e,f){e=hb(b,d,e,f);var g=a.oPreviousSearch.sSearch,h=a.aiDisplayMaster;f=[];0!==u.ext.search.length&&(c=!0);var l=Ub(a);if(0>=b.length)a.aiDisplay=h.slice();else{if(l||c||d||g.length>b.length||0!==b.indexOf(g)||a.bSorted)a.aiDisplay=h.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)e.test(a.aoData[b[c]]._sFilterRow)&&f.push(b[c]);a.aiDisplay=f}}function hb(a,b,c,d){a=b?a:ib(a);c&&
|
61 |
-
(a="^(?=.*?"+k.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(e){if('"'===e.charAt(0)){var f=e.match(/^"(.*)"$/);e=f?f[1]:e}return e.replace('"',"")}).join(")(?=.*?")+").*$");return new RegExp(a,d?"i":"")}function Ub(a){var b=a.aoColumns,c,d,e=u.ext.type.search;var f=!1;var g=0;for(c=a.aoData.length;g<c;g++){var h=a.aoData[g];if(!h._aFilterData){var l=[];var n=0;for(d=b.length;n<d;n++){f=b[n];if(f.bSearchable){var m=S(a,g,n,"filter");e[f.sType]&&(m=e[f.sType](m));null===m&&(m="");"string"!==typeof m&&
|
62 |
-
m.toString&&(m=m.toString())}else m="";m.indexOf&&-1!==m.indexOf("&")&&(Pa.innerHTML=m,m=rc?Pa.textContent:Pa.innerText);m.replace&&(m=m.replace(/[\r\n\u2028]/g,""));l.push(m)}h._aFilterData=l;h._sFilterRow=l.join(" ");f=!0}}return f}function Vb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Wb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function Nb(a){var b=a.sTableId,c=a.aanFeatures.i,d=k("<div/>",
|
63 |
-
{"class":a.oClasses.sInfo,id:c?null:b+"_info"});c||(a.aoDrawCallback.push({fn:Xb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),k(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Xb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),h=g?c.sInfo:c.sInfoEmpty;g!==f&&(h+=" "+c.sInfoFiltered);h+=c.sInfoPostFix;h=Yb(a,h);c=c.fnInfoCallback;null!==c&&(h=c.call(a.oInstance,
|
64 |
-
a,d,e,f,g,h));k(b).html(h)}}function Yb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function za(a){var b=a.iInitDisplayStart,c=a.aoColumns;var d=a.oFeatures;var e=a.bDeferLoading;if(a.bInitialised){Ib(a);
|
65 |
-
Fb(a);xa(a,a.aoHeader);xa(a,a.aoFooter);U(a,!0);d.bAutoWidth&&Ya(a);var f=0;for(d=c.length;f<d;f++){var g=c[f];g.sWidth&&(g.nTh.style.width=K(g.sWidth))}H(a,null,"preInit",[a]);ja(a);c=P(a);if("ssp"!=c||e)"ajax"==c?Ma(a,[],function(h){var l=Na(a,h);for(f=0;f<l.length;f++)ea(a,l[f]);a.iInitDisplayStart=b;ja(a);U(a,!1);Oa(a,h)},a):(U(a,!1),Oa(a))}else setTimeout(function(){za(a)},200)}function Oa(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&ra(a);H(a,null,"plugin-init",[a,b]);H(a,"aoInitComplete",
|
66 |
-
"init",[a,b])}function jb(a,b){b=parseInt(b,10);a._iDisplayLength=b;kb(a);H(a,null,"length",[a,b])}function Jb(a){var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=Array.isArray(d[0]),f=e?d[0]:d;d=e?d[1]:d;e=k("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect});for(var g=0,h=f.length;g<h;g++)e[0][g]=new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var l=k("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(l[0].id=c+"_length");l.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",
|
67 |
-
e[0].outerHTML));k("select",l).val(a._iDisplayLength).on("change.DT",function(n){jb(a,k(this).val());fa(a)});k(a.nTable).on("length.dt.DT",function(n,m,p){a===m&&k("select",l).val(p)});return l[0]}function Ob(a){var b=a.sPaginationType,c=u.ext.pager[b],d="function"===typeof c,e=function(g){fa(g)};b=k("<div/>").addClass(a.oClasses.sPaging+b)[0];var f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(g){if(d){var h=g._iDisplayStart,l=g._iDisplayLength,
|
68 |
-
n=g.fnRecordsDisplay(),m=-1===l;h=m?0:Math.ceil(h/l);l=m?1:Math.ceil(n/l);n=c(h,l);var p;m=0;for(p=f.p.length;m<p;m++)fb(g,"pageButton")(g,f.p[m],m,n,h,l)}else c.fnUpdate(g,e)},sName:"pagination"}));return b}function lb(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:ca(a,0,"Unknown paging action: "+b,5);
|
69 |
-
b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(H(a,null,"page",[a]),c&&fa(a));return b}function Lb(a){return k("<div/>",{id:a.aanFeatures.r?null:a.sTableId+"_processing","class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function U(a,b){a.oFeatures.bProcessing&&k(a.aanFeatures.r).css("display",b?"block":"none");H(a,null,"processing",[a,b])}function Mb(a){var b=k(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,
|
70 |
-
e=c.sY,f=a.oClasses,g=b.children("caption"),h=g.length?g[0]._captionSide:null,l=k(b[0].cloneNode(!1)),n=k(b[0].cloneNode(!1)),m=b.children("tfoot");m.length||(m=null);l=k("<div/>",{"class":f.sScrollWrapper}).append(k("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?d?K(d):null:"100%"}).append(k("<div/>",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(l.removeAttr("id").css("margin-left",0).append("top"===h?
|
71 |
-
g:null).append(b.children("thead"))))).append(k("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:d?K(d):null}).append(b));m&&l.append(k("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?d?K(d):null:"100%"}).append(k("<div/>",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",0).append("bottom"===h?g:null).append(b.children("tfoot")))));b=l.children();var p=b[0];f=b[1];var t=m?b[2]:null;if(d)k(f).on("scroll.DT",function(v){v=
|
72 |
-
this.scrollLeft;p.scrollLeft=v;m&&(t.scrollLeft=v)});k(f).css("max-height",e);c.bCollapse||k(f).css("height",e);a.nScrollHead=p;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:Fa,sName:"scrolling"});return l[0]}function Fa(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY;b=b.iBarWidth;var f=k(a.nScrollHead),g=f[0].style,h=f.children("div"),l=h[0].style,n=h.children("table");h=a.nScrollBody;var m=k(h),p=h.style,t=k(a.nScrollFoot).children("div"),v=t.children("table"),x=k(a.nTHead),r=k(a.nTable),
|
73 |
-
A=r[0],D=A.style,I=a.nTFoot?k(a.nTFoot):null,W=a.oBrowser,M=W.bScrollOversize,B=T(a.aoColumns,"nTh"),E=[],aa=[],X=[],Aa=[],mb,Ba=function(F){F=F.style;F.paddingTop="0";F.paddingBottom="0";F.borderTopWidth="0";F.borderBottomWidth="0";F.height=0};var ha=h.scrollHeight>h.clientHeight;if(a.scrollBarVis!==ha&&a.scrollBarVis!==q)a.scrollBarVis=ha,ra(a);else{a.scrollBarVis=ha;r.children("thead, tfoot").remove();if(I){var ka=I.clone().prependTo(r);var la=I.find("tr");ka=ka.find("tr")}var nb=x.clone().prependTo(r);
|
74 |
-
x=x.find("tr");ha=nb.find("tr");nb.find("th, td").removeAttr("tabindex");c||(p.width="100%",f[0].style.width="100%");k.each(La(a,nb),function(F,Y){mb=sa(a,F);Y.style.width=a.aoColumns[mb].sWidth});I&&ba(function(F){F.style.width=""},ka);f=r.outerWidth();""===c?(D.width="100%",M&&(r.find("tbody").height()>h.offsetHeight||"scroll"==m.css("overflow-y"))&&(D.width=K(r.outerWidth()-b)),f=r.outerWidth()):""!==d&&(D.width=K(d),f=r.outerWidth());ba(Ba,ha);ba(function(F){X.push(F.innerHTML);E.push(K(k(F).css("width")))},
|
75 |
-
ha);ba(function(F,Y){-1!==k.inArray(F,B)&&(F.style.width=E[Y])},x);k(ha).height(0);I&&(ba(Ba,ka),ba(function(F){Aa.push(F.innerHTML);aa.push(K(k(F).css("width")))},ka),ba(function(F,Y){F.style.width=aa[Y]},la),k(ka).height(0));ba(function(F,Y){F.innerHTML='<div class="dataTables_sizing">'+X[Y]+"</div>";F.childNodes[0].style.height="0";F.childNodes[0].style.overflow="hidden";F.style.width=E[Y]},ha);I&&ba(function(F,Y){F.innerHTML='<div class="dataTables_sizing">'+Aa[Y]+"</div>";F.childNodes[0].style.height=
|
76 |
-
"0";F.childNodes[0].style.overflow="hidden";F.style.width=aa[Y]},ka);r.outerWidth()<f?(la=h.scrollHeight>h.offsetHeight||"scroll"==m.css("overflow-y")?f+b:f,M&&(h.scrollHeight>h.offsetHeight||"scroll"==m.css("overflow-y"))&&(D.width=K(la-b)),""!==c&&""===d||ca(a,1,"Possible column misalignment",6)):la="100%";p.width=K(la);g.width=K(la);I&&(a.nScrollFoot.style.width=K(la));!e&&M&&(p.height=K(A.offsetHeight+b));c=r.outerWidth();n[0].style.width=K(c);l.width=K(c);d=r.height()>h.clientHeight||"scroll"==
|
77 |
-
m.css("overflow-y");e="padding"+(W.bScrollbarLeft?"Left":"Right");l[e]=d?b+"px":"0px";I&&(v[0].style.width=K(c),t[0].style.width=K(c),t[0].style[e]=d?b+"px":"0px");r.children("colgroup").insertBefore(r.children("thead"));m.trigger("scroll");!a.bSorted&&!a.bFiltered||a._drawHold||(h.scrollTop=0)}}function ba(a,b,c){for(var d=0,e=0,f=b.length,g,h;e<f;){g=b[e].firstChild;for(h=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,h,d):a(g,d),d++),g=g.nextSibling,h=c?h.nextSibling:null;e++}}function Ya(a){var b=
|
78 |
-
a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,h=c.length,l=Ga(a,"bVisible"),n=k("th",a.nTHead),m=b.getAttribute("width"),p=b.parentNode,t=!1,v,x=a.oBrowser;d=x.bScrollOversize;(v=b.style.width)&&-1!==v.indexOf("%")&&(m=v);for(v=0;v<l.length;v++){var r=c[l[v]];null!==r.sWidth&&(r.sWidth=Zb(r.sWidthOrig,p),t=!0)}if(d||!t&&!f&&!e&&h==na(a)&&h==n.length)for(v=0;v<h;v++)l=sa(a,v),null!==l&&(c[l].sWidth=K(n.eq(v).width()));else{h=k(b).clone().css("visibility","hidden").removeAttr("id");h.find("tbody tr").remove();
|
79 |
-
var A=k("<tr/>").appendTo(h.find("tbody"));h.find("thead, tfoot").remove();h.append(k(a.nTHead).clone()).append(k(a.nTFoot).clone());h.find("tfoot th, tfoot td").css("width","");n=La(a,h.find("thead")[0]);for(v=0;v<l.length;v++)r=c[l[v]],n[v].style.width=null!==r.sWidthOrig&&""!==r.sWidthOrig?K(r.sWidthOrig):"",r.sWidthOrig&&f&&k(n[v]).append(k("<div/>").css({width:r.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(v=0;v<l.length;v++)t=l[v],r=c[t],k($b(a,t)).clone(!1).append(r.sContentPadding).appendTo(A);
|
80 |
-
k("[name]",h).removeAttr("name");r=k("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(h).appendTo(p);f&&g?h.width(g):f?(h.css("width","auto"),h.removeAttr("width"),h.width()<p.clientWidth&&m&&h.width(p.clientWidth)):e?h.width(p.clientWidth):m&&h.width(m);for(v=e=0;v<l.length;v++)p=k(n[v]),g=p.outerWidth()-p.width(),p=x.bBounding?Math.ceil(n[v].getBoundingClientRect().width):p.outerWidth(),e+=p,c[l[v]].sWidth=K(p-g);b.style.width=K(e);r.remove()}m&&
|
81 |
-
(b.style.width=K(m));!m&&!f||a._reszEvt||(b=function(){k(y).on("resize.DT-"+a.sInstance,gb(function(){ra(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0)}function Zb(a,b){if(!a)return 0;a=k("<div/>").css("width",K(a)).appendTo(b||z.body);b=a[0].offsetWidth;a.remove();return b}function $b(a,b){var c=ac(a,b);if(0>c)return null;var d=a.aoData[c];return d.nTr?d.anCells[b]:k("<td/>").html(S(a,c,b,"display"))[0]}function ac(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=S(a,f,b,"display")+"",c=c.replace(sc,
|
82 |
-
""),c=c.replace(/ /g," "),c.length>d&&(d=c.length,e=f);return e}function K(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function pa(a){var b=[],c=a.aoColumns;var d=a.aaSortingFixed;var e=k.isPlainObject(d);var f=[];var g=function(m){m.length&&!Array.isArray(m[0])?f.push(m):k.merge(f,m)};Array.isArray(d)&&g(d);e&&d.pre&&g(d.pre);g(a.aaSorting);e&&d.post&&g(d.post);for(a=0;a<f.length;a++){var h=f[a][0];g=c[h].aDataSort;d=0;for(e=g.length;d<e;d++){var l=g[d];
|
83 |
-
var n=c[l].sType||"string";f[a]._idx===q&&(f[a]._idx=k.inArray(f[a][1],c[l].asSorting));b.push({src:h,col:l,dir:f[a][1],index:f[a]._idx,type:n,formatter:u.ext.type.order[n+"-pre"]})}}return b}function Hb(a){var b,c=[],d=u.ext.type.order,e=a.aoData,f=0,g=a.aiDisplayMaster;Za(a);var h=pa(a);var l=0;for(b=h.length;l<b;l++){var n=h[l];n.formatter&&f++;bc(a,n.col)}if("ssp"!=P(a)&&0!==h.length){l=0;for(b=g.length;l<b;l++)c[g[l]]=l;f===h.length?g.sort(function(m,p){var t,v=h.length,x=e[m]._aSortData,r=e[p]._aSortData;
|
84 |
-
for(t=0;t<v;t++){var A=h[t];var D=x[A.col];var I=r[A.col];D=D<I?-1:D>I?1:0;if(0!==D)return"asc"===A.dir?D:-D}D=c[m];I=c[p];return D<I?-1:D>I?1:0}):g.sort(function(m,p){var t,v=h.length,x=e[m]._aSortData,r=e[p]._aSortData;for(t=0;t<v;t++){var A=h[t];var D=x[A.col];var I=r[A.col];A=d[A.type+"-"+A.dir]||d["string-"+A.dir];D=A(D,I);if(0!==D)return D}D=c[m];I=c[p];return D<I?-1:D>I?1:0})}a.bSorted=!0}function cc(a){var b=a.aoColumns,c=pa(a);a=a.oLanguage.oAria;for(var d=0,e=b.length;d<e;d++){var f=b[d];
|
85 |
-
var g=f.asSorting;var h=f.ariaTitle||f.sTitle.replace(/<.*?>/g,"");var l=f.nTh;l.removeAttribute("aria-sort");f.bSortable&&(0<c.length&&c[0].col==d?(l.setAttribute("aria-sort","asc"==c[0].dir?"ascending":"descending"),f=g[c[0].index+1]||g[0]):f=g[0],h+="asc"===f?a.sSortAscending:a.sSortDescending);l.setAttribute("aria-label",h)}}function ob(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(h,l){var n=h._idx;n===q&&(n=k.inArray(h[1],f));return n+1<f.length?n+1:l?null:0};"number"===typeof e[0]&&
|
86 |
-
(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=k.inArray(b,T(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);ja(a);"function"==typeof d&&d(a)}function eb(a,b,c,d){var e=a.aoColumns[c];pb(b,{},function(f){!1!==e.bSortable&&(a.oFeatures.bProcessing?(U(a,!0),setTimeout(function(){ob(a,
|
87 |
-
c,f.shiftKey,d);"ssp"!==P(a)&&U(a,!1)},0)):ob(a,c,f.shiftKey,d))})}function Qa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=pa(a),e=a.oFeatures,f;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++){var g=b[e].src;k(T(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3))}e=0;for(f=d.length;e<f;e++)g=d[e].src,k(T(a.aoData,"anCells",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function bc(a,b){var c=a.aoColumns[b],d=u.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ta(a,b)));for(var f,g=u.ext.type.order[c.sType+
|
88 |
-
"-pre"],h=0,l=a.aoData.length;h<l;h++)if(c=a.aoData[h],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[h]:S(a,h,b,"sort"),c._aSortData[b]=g?g(f):f}function Ra(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:k.extend(!0,[],a.aaSorting),search:Vb(a.oPreviousSearch),columns:k.map(a.aoColumns,function(c,d){return{visible:c.bVisible,search:Vb(a.aoPreSearchCols[d])}})};H(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=
|
89 |
-
b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function dc(a,b,c){var d,e,f=a.aoColumns;b=function(h){if(h&&h.time){var l=H(a,"aoStateLoadParams","stateLoadParams",[a,h]);if(-1===k.inArray(!1,l)&&(l=a.iStateDuration,!(0<l&&h.time<+new Date-1E3*l||h.columns&&f.length!==h.columns.length))){a.oLoadedState=k.extend(!0,{},h);h.start!==q&&(a._iDisplayStart=h.start,a.iInitDisplayStart=h.start);h.length!==q&&(a._iDisplayLength=h.length);h.order!==q&&(a.aaSorting=[],k.each(h.order,function(n,m){a.aaSorting.push(m[0]>=
|
90 |
-
f.length?[0,m[1]]:m)}));h.search!==q&&k.extend(a.oPreviousSearch,Wb(h.search));if(h.columns)for(d=0,e=h.columns.length;d<e;d++)l=h.columns[d],l.visible!==q&&(f[d].bVisible=l.visible),l.search!==q&&k.extend(a.aoPreSearchCols[d],Wb(l.search));H(a,"aoStateLoaded","stateLoaded",[a,h])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==q&&b(g)}else c()}function Sa(a){var b=u.settings;a=k.inArray(a,T(b,"nTable"));return-1!==a?b[a]:null}function ca(a,b,c,d){c="DataTables warning: "+
|
91 |
-
(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)y.console&&console.log&&console.log(c);else if(b=u.ext,b=b.sErrMode||b.errMode,a&&H(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==typeof b&&b(a,d,c)}}function V(a,b,c,d){Array.isArray(c)?k.each(c,function(e,f){Array.isArray(f)?V(a,b,f[0],f[1]):V(a,b,f)}):(d===q&&(d=c),b[c]!==q&&(a[d]=b[c]))}function qb(a,b,c){var d;for(d in b)if(b.hasOwnProperty(d)){var e=
|
92 |
-
b[d];k.isPlainObject(e)?(k.isPlainObject(a[d])||(a[d]={}),k.extend(!0,a[d],e)):c&&"data"!==d&&"aaData"!==d&&Array.isArray(e)?a[d]=e.slice():a[d]=e}return a}function pb(a,b,c){k(a).on("click.DT",b,function(d){k(a).trigger("blur");c(d)}).on("keypress.DT",b,function(d){13===d.which&&(d.preventDefault(),c(d))}).on("selectstart.DT",function(){return!1})}function Q(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function H(a,b,c,d){var e=[];b&&(e=k.map(a[b].slice().reverse(),function(f,g){return f.fn.apply(a.oInstance,
|
93 |
-
d)}));null!==c&&(b=k.Event(c+".dt"),k(a.nTable).trigger(b,d),e.push(b.result));return e}function kb(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function fb(a,b){a=a.renderer;var c=u.ext.renderer[b];return k.isPlainObject(a)&&a[b]?c[a[b]]||c._:"string"===typeof a?c[a]||c._:c._}function P(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Ca(a,b){var c=ec.numbers_length,d=Math.floor(c/2);
|
94 |
-
b<=c?a=qa(0,b):a<=d?(a=qa(0,c-2),a.push("ellipsis"),a.push(b-1)):(a>=b-1-d?a=qa(b-(c-2),b):(a=qa(a-d+2,a+d-1),a.push("ellipsis"),a.push(b-1)),a.splice(0,0,"ellipsis"),a.splice(0,0,0));a.DT_el="span";return a}function Wa(a){k.each({num:function(b){return Ta(b,a)},"num-fmt":function(b){return Ta(b,a,rb)},"html-num":function(b){return Ta(b,a,Ua)},"html-num-fmt":function(b){return Ta(b,a,Ua,rb)}},function(b,c){L.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(L.type.search[b+a]=L.type.search.html)})}function fc(a){return function(){var b=
|
95 |
-
[Sa(this[u.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return u.ext.internal[a].apply(this,b)}}var u=function(a){this.$=function(f,g){return this.api(!0).$(f,g)};this._=function(f,g){return this.api(!0).rows(f,g).data()};this.api=function(f){return f?new C(Sa(this[L.iApiIndex])):new C(this)};this.fnAddData=function(f,g){var h=this.api(!0);f=Array.isArray(f)&&(Array.isArray(f[0])||k.isPlainObject(f[0]))?h.rows.add(f):h.row.add(f);(g===q||g)&&h.draw();return f.flatten().toArray()};
|
96 |
-
this.fnAdjustColumnSizing=function(f){var g=this.api(!0).columns.adjust(),h=g.settings()[0],l=h.oScroll;f===q||f?g.draw(!1):(""!==l.sX||""!==l.sY)&&Fa(h)};this.fnClearTable=function(f){var g=this.api(!0).clear();(f===q||f)&&g.draw()};this.fnClose=function(f){this.api(!0).row(f).child.hide()};this.fnDeleteRow=function(f,g,h){var l=this.api(!0);f=l.rows(f);var n=f.settings()[0],m=n.aoData[f[0][0]];f.remove();g&&g.call(this,n,m);(h===q||h)&&l.draw();return m};this.fnDestroy=function(f){this.api(!0).destroy(f)};
|
97 |
-
this.fnDraw=function(f){this.api(!0).draw(f)};this.fnFilter=function(f,g,h,l,n,m){n=this.api(!0);null===g||g===q?n.search(f,h,l,m):n.column(g).search(f,h,l,m);n.draw()};this.fnGetData=function(f,g){var h=this.api(!0);if(f!==q){var l=f.nodeName?f.nodeName.toLowerCase():"";return g!==q||"td"==l||"th"==l?h.cell(f,g).data():h.row(f).data()||null}return h.data().toArray()};this.fnGetNodes=function(f){var g=this.api(!0);return f!==q?g.row(f).node():g.rows().nodes().flatten().toArray()};this.fnGetPosition=
|
98 |
-
function(f){var g=this.api(!0),h=f.nodeName.toUpperCase();return"TR"==h?g.row(f).index():"TD"==h||"TH"==h?(f=g.cell(f).index(),[f.row,f.columnVisible,f.column]):null};this.fnIsOpen=function(f){return this.api(!0).row(f).child.isShown()};this.fnOpen=function(f,g,h){return this.api(!0).row(f).child(g,h).show().child()[0]};this.fnPageChange=function(f,g){f=this.api(!0).page(f);(g===q||g)&&f.draw(!1)};this.fnSetColumnVis=function(f,g,h){f=this.api(!0).column(f).visible(g);(h===q||h)&&f.columns.adjust().draw()};
|
99 |
-
this.fnSettings=function(){return Sa(this[L.iApiIndex])};this.fnSort=function(f){this.api(!0).order(f).draw()};this.fnSortListener=function(f,g,h){this.api(!0).order.listener(f,g,h)};this.fnUpdate=function(f,g,h,l,n){var m=this.api(!0);h===q||null===h?m.row(g).data(f):m.cell(g,h).data(f);(n===q||n)&&m.columns.adjust();(l===q||l)&&m.draw();return 0};this.fnVersionCheck=L.fnVersionCheck;var b=this,c=a===q,d=this.length;c&&(a={});this.oApi=this.internal=L.internal;for(var e in u.ext.internal)e&&(this[e]=
|
100 |
-
fc(e));this.each(function(){var f={},g=1<d?qb(f,a,!0):a,h=0,l;f=this.getAttribute("id");var n=!1,m=u.defaults,p=k(this);if("table"!=this.nodeName.toLowerCase())ca(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{zb(m);Ab(m.column);O(m,m,!0);O(m.column,m.column,!0);O(m,k.extend(g,p.data()),!0);var t=u.settings;h=0;for(l=t.length;h<l;h++){var v=t[h];if(v.nTable==this||v.nTHead&&v.nTHead.parentNode==this||v.nTFoot&&v.nTFoot.parentNode==this){var x=g.bRetrieve!==q?g.bRetrieve:m.bRetrieve;
|
101 |
-
if(c||x)return v.oInstance;if(g.bDestroy!==q?g.bDestroy:m.bDestroy){v.oInstance.fnDestroy();break}else{ca(v,0,"Cannot reinitialise DataTable",3);return}}if(v.sTableId==this.id){t.splice(h,1);break}}if(null===f||""===f)this.id=f="DataTables_Table_"+u.ext._unique++;var r=k.extend(!0,{},u.models.oSettings,{sDestroyWidth:p[0].style.width,sInstance:f,sTableId:f});r.nTable=this;r.oApi=b.internal;r.oInit=g;t.push(r);r.oInstance=1===b.length?b:p.dataTable();zb(g);ma(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&
|
102 |
-
(g.iDisplayLength=Array.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=qb(k.extend(!0,{},m),g);V(r.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));V(r,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback",
|
103 |
-
"fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);V(r.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);V(r.oLanguage,g,"fnInfoCallback");Q(r,"aoDrawCallback",g.fnDrawCallback,"user");Q(r,"aoServerParams",g.fnServerParams,"user");Q(r,"aoStateSaveParams",g.fnStateSaveParams,"user");Q(r,"aoStateLoadParams",
|
104 |
-
g.fnStateLoadParams,"user");Q(r,"aoStateLoaded",g.fnStateLoaded,"user");Q(r,"aoRowCallback",g.fnRowCallback,"user");Q(r,"aoRowCreatedCallback",g.fnCreatedRow,"user");Q(r,"aoHeaderCallback",g.fnHeaderCallback,"user");Q(r,"aoFooterCallback",g.fnFooterCallback,"user");Q(r,"aoInitComplete",g.fnInitComplete,"user");Q(r,"aoPreDrawCallback",g.fnPreDrawCallback,"user");r.rowIdFn=ia(g.rowId);Bb(r);var A=r.oClasses;k.extend(A,u.ext.classes,g.oClasses);p.addClass(A.sTable);r.iInitDisplayStart===q&&(r.iInitDisplayStart=
|
105 |
-
g.iDisplayStart,r._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(r.bDeferLoading=!0,f=Array.isArray(g.iDeferLoading),r._iRecordsDisplay=f?g.iDeferLoading[0]:g.iDeferLoading,r._iRecordsTotal=f?g.iDeferLoading[1]:g.iDeferLoading);var D=r.oLanguage;k.extend(!0,D,g.oLanguage);D.sUrl?(k.ajax({dataType:"json",url:D.sUrl,success:function(B){ma(B);O(m.oLanguage,B);k.extend(!0,D,B);H(r,null,"i18n",[r]);za(r)},error:function(){za(r)}}),n=!0):H(r,null,"i18n",[r]);null===g.asStripeClasses&&(r.asStripeClasses=
|
106 |
-
[A.sStripeOdd,A.sStripeEven]);f=r.asStripeClasses;var I=p.children("tbody").find("tr").eq(0);-1!==k.inArray(!0,k.map(f,function(B,E){return I.hasClass(B)}))&&(k("tbody tr",this).removeClass(f.join(" ")),r.asDestroyStripes=f.slice());f=[];t=this.getElementsByTagName("thead");0!==t.length&&(wa(r.aoHeader,t[0]),f=La(r));if(null===g.aoColumns)for(t=[],h=0,l=f.length;h<l;h++)t.push(null);else t=g.aoColumns;h=0;for(l=t.length;h<l;h++)Xa(r,f?f[h]:null);Db(r,g.aoColumnDefs,t,function(B,E){Ea(r,B,E)});if(I.length){var W=
|
107 |
-
function(B,E){return null!==B.getAttribute("data-"+E)?E:null};k(I[0]).children("th, td").each(function(B,E){var aa=r.aoColumns[B];if(aa.mData===B){var X=W(E,"sort")||W(E,"order");E=W(E,"filter")||W(E,"search");if(null!==X||null!==E)aa.mData={_:B+".display",sort:null!==X?B+".@data-"+X:q,type:null!==X?B+".@data-"+X:q,filter:null!==E?B+".@data-"+E:q},Ea(r,B)}})}var M=r.oFeatures;f=function(){if(g.aaSorting===q){var B=r.aaSorting;h=0;for(l=B.length;h<l;h++)B[h][1]=r.aoColumns[h].asSorting[0]}Qa(r);M.bSort&&
|
108 |
-
Q(r,"aoDrawCallback",function(){if(r.bSorted){var X=pa(r),Aa={};k.each(X,function(mb,Ba){Aa[Ba.src]=Ba.dir});H(r,null,"order",[r,X,Aa]);cc(r)}});Q(r,"aoDrawCallback",function(){(r.bSorted||"ssp"===P(r)||M.bDeferRender)&&Qa(r)},"sc");B=p.children("caption").each(function(){this._captionSide=k(this).css("caption-side")});var E=p.children("thead");0===E.length&&(E=k("<thead/>").appendTo(p));r.nTHead=E[0];var aa=p.children("tbody");0===aa.length&&(aa=k("<tbody/>").insertAfter(E));r.nTBody=aa[0];E=p.children("tfoot");
|
109 |
-
0===E.length&&0<B.length&&(""!==r.oScroll.sX||""!==r.oScroll.sY)&&(E=k("<tfoot/>").appendTo(p));0===E.length||0===E.children().length?p.addClass(A.sNoFooter):0<E.length&&(r.nTFoot=E[0],wa(r.aoFooter,r.nTFoot));if(g.aaData)for(h=0;h<g.aaData.length;h++)ea(r,g.aaData[h]);else(r.bDeferLoading||"dom"==P(r))&&Ha(r,k(r.nTBody).children("tr"));r.aiDisplay=r.aiDisplayMaster.slice();r.bInitialised=!0;!1===n&&za(r)};g.bStateSave?(M.bStateSave=!0,Q(r,"aoDrawCallback",Ra,"state_save"),dc(r,g,f)):f()}});b=null;
|
110 |
-
return this},L,w,J,sb={},gc=/[\r\n\u2028]/g,Ua=/<.*?>/g,tc=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,uc=/(\/|\.|\*|\+|\?|\||\(|\)|\[|\]|\{|\}|\\|\$|\^|\-)/g,rb=/['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,Z=function(a){return a&&!0!==a&&"-"!==a?!1:!0},hc=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},ic=function(a,b){sb[b]||(sb[b]=new RegExp(ib(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(sb[b],"."):
|
111 |
-
a},tb=function(a,b,c){var d="string"===typeof a;if(Z(a))return!0;b&&d&&(a=ic(a,b));c&&d&&(a=a.replace(rb,""));return!isNaN(parseFloat(a))&&isFinite(a)},jc=function(a,b,c){return Z(a)?!0:Z(a)||"string"===typeof a?tb(a.replace(Ua,""),b,c)?!0:null:null},T=function(a,b,c){var d=[],e=0,f=a.length;if(c!==q)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<f;e++)a[e]&&d.push(a[e][b]);return d},Da=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==q)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<
|
112 |
-
g;f++)e.push(a[b[f]][c]);return e},qa=function(a,b){var c=[];if(b===q){b=0;var d=a}else d=b,b=a;for(a=b;a<d;a++)c.push(a);return c},kc=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},Ka=function(a){a:{if(!(2>a.length)){var b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();b=[];e=a.length;var f,g=0;d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b},lc=function(a,
|
113 |
-
b){if(Array.isArray(b))for(var c=0;c<b.length;c++)lc(a,b[c]);else a.push(b);return a};Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});u.util={throttle:function(a,b){var c=b!==q?b:200,d,e;return function(){var f=this,g=+new Date,h=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=q;a.apply(f,h)},c)):(d=g,a.apply(f,
|
114 |
-
h))}},escapeRegex:function(a){return a.replace(uc,"\\$1")}};var R=function(a,b,c){a[b]!==q&&(a[c]=a[b])},ua=/\[.*?\]$/,oa=/\(\)$/,ib=u.util.escapeRegex,Pa=k("<div>")[0],rc=Pa.textContent!==q,sc=/<.*?>/g,gb=u.util.throttle,mc=[],N=Array.prototype,vc=function(a){var b,c=u.settings,d=k.map(c,function(f,g){return f.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase()){var e=k.inArray(a,d);return-1!==e?[c[e]]:null}if(a&&"function"===typeof a.settings)return a.settings().toArray();
|
115 |
-
"string"===typeof a?b=k(a):a instanceof k&&(b=a)}else return[];if(b)return b.map(function(f){e=k.inArray(this,d);return-1!==e?c[e]:null}).toArray()};var C=function(a,b){if(!(this instanceof C))return new C(a,b);var c=[],d=function(g){(g=vc(g))&&c.push.apply(c,g)};if(Array.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=Ka(c);b&&k.merge(this,b);this.selector={rows:null,cols:null,opts:null};C.extend(this,this,mc)};u.Api=C;k.extend(C.prototype,{any:function(){return 0!==this.count()},
|
116 |
-
concat:N.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new C(b[a],this[a]):null},filter:function(a){var b=[];if(N.filter)b=N.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new C(this.context,b)},flatten:function(){var a=[];return new C(this.context,a.concat.apply(a,this.toArray()))},
|
117 |
-
join:N.join,indexOf:N.indexOf||function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1},iterator:function(a,b,c,d){var e=[],f,g,h=this.context,l,n=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);var m=0;for(f=h.length;m<f;m++){var p=new C(h[m]);if("table"===b){var t=c.call(p,h[m],m);t!==q&&e.push(t)}else if("columns"===b||"rows"===b)t=c.call(p,h[m],this[m],m),t!==q&&e.push(t);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){var v=this[m];"column-rows"===
|
118 |
-
b&&(l=Va(h[m],n.opts));var x=0;for(g=v.length;x<g;x++)t=v[x],t="cell"===b?c.call(p,h[m],t.row,t.column,m,x):c.call(p,h[m],t,m,x,l),t!==q&&e.push(t)}}return e.length||d?(a=new C(h,a?e.concat.apply([],e):e),b=a.selector,b.rows=n.rows,b.cols=n.cols,b.opts=n.opts,a):this},lastIndexOf:N.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(N.map)b=N.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],
|
119 |
-
c));return new C(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:N.pop,push:N.push,reduce:N.reduce||function(a,b){return Cb(this,a,b,0,this.length,1)},reduceRight:N.reduceRight||function(a,b){return Cb(this,a,b,this.length-1,-1,-1)},reverse:N.reverse,selector:null,shift:N.shift,slice:function(){return new C(this.context,this)},sort:N.sort,splice:N.splice,toArray:function(){return N.slice.call(this)},to$:function(){return k(this)},toJQuery:function(){return k(this)},
|
120 |
-
unique:function(){return new C(this.context,Ka(this))},unshift:N.unshift});C.extend=function(a,b,c){if(c.length&&b&&(b instanceof C||b.__dt_wrapper)){var d,e=function(h,l,n){return function(){var m=l.apply(h,arguments);C.extend(m,m,n.methodExt);return m}};var f=0;for(d=c.length;f<d;f++){var g=c[f];b[g.name]="function"===g.type?e(a,g.val,g):"object"===g.type?{}:g.val;b[g.name].__dt_wrapper=!0;C.extend(a,b[g.name],g.propExt)}}};C.register=w=function(a,b){if(Array.isArray(a))for(var c=0,d=a.length;c<
|
121 |
-
d;c++)C.register(a[c],b);else{d=a.split(".");var e=mc,f;a=0;for(c=d.length;a<c;a++){var g=(f=-1!==d[a].indexOf("()"))?d[a].replace("()",""):d[a];a:{var h=0;for(var l=e.length;h<l;h++)if(e[h].name===g){h=e[h];break a}h=null}h||(h={name:g,val:{},methodExt:[],propExt:[],type:"object"},e.push(h));a===c-1?(h.val=b,h.type="function"===typeof b?"function":k.isPlainObject(b)?"object":"other"):e=f?h.methodExt:h.propExt}}};C.registerPlural=J=function(a,b,c){C.register(a,c);C.register(b,function(){var d=c.apply(this,
|
122 |
-
arguments);return d===this?this:d instanceof C?d.length?Array.isArray(d[0])?new C(d.context,d[0]):d[0]:q:d})};var nc=function(a,b){if(Array.isArray(a))return k.map(a,function(d){return nc(d,b)});if("number"===typeof a)return[b[a]];var c=k.map(b,function(d,e){return d.nTable});return k(c).filter(a).map(function(d){d=k.inArray(this,c);return b[d]}).toArray()};w("tables()",function(a){return a!==q&&null!==a?new C(nc(a,this.context)):this});w("table()",function(a){a=this.tables(a);var b=a.context;return b.length?
|
123 |
-
new C(b[0]):a});J("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});J("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});J("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});J("tables().footer()","table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});J("tables().containers()","table().container()",
|
124 |
-
function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});w("draw()",function(a){return this.iterator("table",function(b){"page"===a?fa(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),ja(b,!1===a))})});w("page()",function(a){return a===q?this.page.info().page:this.iterator("table",function(b){lb(b,a)})});w("page.info()",function(a){if(0===this.context.length)return q;a=this.context[0];var b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),
|
125 |
-
e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===P(a)}});w("page.len()",function(a){return a===q?0!==this.context.length?this.context[0]._iDisplayLength:q:this.iterator("table",function(b){jb(b,a)})});var oc=function(a,b,c){if(c){var d=new C(a);d.one("draw",function(){c(d.ajax.json())})}if("ssp"==P(a))ja(a,b);else{U(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();Ma(a,[],function(f){Ia(a);
|
126 |
-
f=Na(a,f);for(var g=0,h=f.length;g<h;g++)ea(a,f[g]);ja(a,b);U(a,!1)})}};w("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});w("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});w("ajax.reload()",function(a,b){return this.iterator("table",function(c){oc(c,!1===b,a)})});w("ajax.url()",function(a){var b=this.context;if(a===q){if(0===b.length)return q;b=b[0];return b.ajax?k.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",
|
127 |
-
function(c){k.isPlainObject(c.ajax)?c.ajax.url=a:c.ajax=a})});w("ajax.url().load()",function(a,b){return this.iterator("table",function(c){oc(c,!1===b,a)})});var ub=function(a,b,c,d,e){var f=[],g,h,l;var n=typeof b;b&&"string"!==n&&"function"!==n&&b.length!==q||(b=[b]);n=0;for(h=b.length;n<h;n++){var m=b[n]&&b[n].split&&!b[n].match(/[\[\(:]/)?b[n].split(","):[b[n]];var p=0;for(l=m.length;p<l;p++)(g=c("string"===typeof m[p]?m[p].trim():m[p]))&&g.length&&(f=f.concat(g))}a=L.selector[a];if(a.length)for(n=
|
128 |
-
0,h=a.length;n<h;n++)f=a[n](d,e,f);return Ka(f)},vb=function(a){a||(a={});a.filter&&a.search===q&&(a.search=a.filter);return k.extend({search:"none",order:"current",page:"all"},a)},wb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Va=function(a,b){var c=[],d=a.aiDisplay;var e=a.aiDisplayMaster;var f=b.search;var g=b.order;b=b.page;if("ssp"==P(a))return"removed"===f?[]:qa(0,e.length);if("current"==
|
129 |
-
b)for(g=a._iDisplayStart,a=a.fnDisplayEnd();g<a;g++)c.push(d[g]);else if("current"==g||"applied"==g)if("none"==f)c=e.slice();else if("applied"==f)c=d.slice();else{if("removed"==f){var h={};g=0;for(a=d.length;g<a;g++)h[d[g]]=null;c=k.map(e,function(l){return h.hasOwnProperty(l)?null:l})}}else if("index"==g||"original"==g)for(g=0,a=a.aoData.length;g<a;g++)"none"==f?c.push(g):(e=k.inArray(g,d),(-1===e&&"removed"==f||0<=e&&"applied"==f)&&c.push(g));return c},wc=function(a,b,c){var d;return ub("row",b,
|
130 |
-
function(e){var f=hc(e),g=a.aoData;if(null!==f&&!c)return[f];d||(d=Va(a,c));if(null!==f&&-1!==k.inArray(f,d))return[f];if(null===e||e===q||""===e)return d;if("function"===typeof e)return k.map(d,function(l){var n=g[l];return e(l,n._aData,n.nTr)?l:null});if(e.nodeName){f=e._DT_RowIndex;var h=e._DT_CellIndex;if(f!==q)return g[f]&&g[f].nTr===e?[f]:[];if(h)return g[h.row]&&g[h.row].nTr===e.parentNode?[h.row]:[];f=k(e).closest("*[data-dt-row]");return f.length?[f.data("dt-row")]:[]}if("string"===typeof e&&
|
131 |
-
"#"===e.charAt(0)&&(f=a.aIds[e.replace(/^#/,"")],f!==q))return[f.idx];f=kc(Da(a.aoData,d,"nTr"));return k(f).filter(e).map(function(){return this._DT_RowIndex}).toArray()},a,c)};w("rows()",function(a,b){a===q?a="":k.isPlainObject(a)&&(b=a,a="");b=vb(b);var c=this.iterator("table",function(d){return wc(d,a,b)},1);c.selector.rows=a;c.selector.opts=b;return c});w("rows().nodes()",function(){return this.iterator("row",function(a,b){return a.aoData[b].nTr||q},1)});w("rows().data()",function(){return this.iterator(!0,
|
132 |
-
"rows",function(a,b){return Da(a.aoData,b,"_aData")},1)});J("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){b=b.aoData[c];return"search"===a?b._aFilterData:b._aSortData},1)});J("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){va(b,c,a)})});J("rows().indexes()","row().index()",function(){return this.iterator("row",function(a,b){return b},1)});J("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=
|
133 |
-
0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new C(c,b)});J("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h;e.splice(c,1);var l=0;for(g=e.length;l<g;l++){var n=e[l];var m=n.anCells;null!==n.nTr&&(n.nTr._DT_RowIndex=l);if(null!==m)for(n=0,h=m.length;n<h;n++)m[n]._DT_CellIndex.row=l}Ja(b.aiDisplayMaster,c);Ja(b.aiDisplay,c);Ja(a[d],
|
134 |
-
c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;kb(b);c=b.rowIdFn(f._aData);c!==q&&delete b.aIds[c]});this.iterator("table",function(b){for(var c=0,d=b.aoData.length;c<d;c++)b.aoData[c].idx=c});return this});w("rows.add()",function(a){var b=this.iterator("table",function(d){var e,f=[];var g=0;for(e=a.length;g<e;g++){var h=a[g];h.nodeName&&"TR"===h.nodeName.toUpperCase()?f.push(Ha(d,h)[0]):f.push(ea(d,h))}return f},1),c=this.rows(-1);c.pop();k.merge(c,b);return c});w("row()",function(a,b){return wb(this.rows(a,
|
135 |
-
b))});w("row().data()",function(a){var b=this.context;if(a===q)return b.length&&this.length?b[0].aoData[this[0]]._aData:q;var c=b[0].aoData[this[0]];c._aData=a;Array.isArray(a)&&c.nTr&&c.nTr.id&&da(b[0].rowId)(a,c.nTr.id);va(b[0],this[0],"data");return this});w("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});w("row.add()",function(a){a instanceof k&&a.length&&(a=a[0]);var b=this.iterator("table",function(c){return a.nodeName&&"TR"===
|
136 |
-
a.nodeName.toUpperCase()?Ha(c,a)[0]:ea(c,a)});return this.row(b[0])});var xc=function(a,b,c,d){var e=[],f=function(g,h){if(Array.isArray(g)||g instanceof k)for(var l=0,n=g.length;l<n;l++)f(g[l],h);else g.nodeName&&"tr"===g.nodeName.toLowerCase()?e.push(g):(l=k("<tr><td></td></tr>").addClass(h),k("td",l).addClass(h).html(g)[0].colSpan=na(a),e.push(l[0]))};f(c,d);b._details&&b._details.detach();b._details=k(e);b._detailsShow&&b._details.insertAfter(b.nTr)},xb=function(a,b){var c=a.context;c.length&&
|
137 |
-
(a=c[0].aoData[b!==q?b:a[0]])&&a._details&&(a._details.remove(),a._detailsShow=q,a._details=q)},pc=function(a,b){var c=a.context;c.length&&a.length&&(a=c[0].aoData[a[0]],a._details&&((a._detailsShow=b)?a._details.insertAfter(a.nTr):a._details.detach(),yc(c[0])))},yc=function(a){var b=new C(a),c=a.aoData;b.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0<T(c,"_details").length&&(b.on("draw.dt.DT_details",function(d,e){a===e&&b.rows({page:"current"}).eq(0).each(function(f){f=
|
138 |
-
c[f];f._detailsShow&&f._details.insertAfter(f.nTr)})}),b.on("column-visibility.dt.DT_details",function(d,e,f,g){if(a===e)for(e=na(e),f=0,g=c.length;f<g;f++)d=c[f],d._details&&d._details.children("td[colspan]").attr("colspan",e)}),b.on("destroy.dt.DT_details",function(d,e){if(a===e)for(d=0,e=c.length;d<e;d++)c[d]._details&&xb(b,d)}))};w("row().child()",function(a,b){var c=this.context;if(a===q)return c.length&&this.length?c[0].aoData[this[0]]._details:q;!0===a?this.child.show():!1===a?xb(this):c.length&&
|
139 |
-
this.length&&xc(c[0],c[0].aoData[this[0]],a,b);return this});w(["row().child.show()","row().child().show()"],function(a){pc(this,!0);return this});w(["row().child.hide()","row().child().hide()"],function(){pc(this,!1);return this});w(["row().child.remove()","row().child().remove()"],function(){xb(this);return this});w("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var zc=/^([^:]+):(name|visIdx|visible)$/,qc=function(a,
|
140 |
-
b,c,d,e){c=[];d=0;for(var f=e.length;d<f;d++)c.push(S(a,e[d],b));return c},Ac=function(a,b,c){var d=a.aoColumns,e=T(d,"sName"),f=T(d,"nTh");return ub("column",b,function(g){var h=hc(g);if(""===g)return qa(d.length);if(null!==h)return[0<=h?h:d.length+h];if("function"===typeof g){var l=Va(a,c);return k.map(d,function(p,t){return g(t,qc(a,t,0,0,l),f[t])?t:null})}var n="string"===typeof g?g.match(zc):"";if(n)switch(n[2]){case "visIdx":case "visible":h=parseInt(n[1],10);if(0>h){var m=k.map(d,function(p,
|
141 |
-
t){return p.bVisible?t:null});return[m[m.length+h]]}return[sa(a,h)];case "name":return k.map(e,function(p,t){return p===n[1]?t:null});default:return[]}if(g.nodeName&&g._DT_CellIndex)return[g._DT_CellIndex.column];h=k(f).filter(g).map(function(){return k.inArray(this,f)}).toArray();if(h.length||!g.nodeName)return h;h=k(g).closest("*[data-dt-column]");return h.length?[h.data("dt-column")]:[]},a,c)};w("columns()",function(a,b){a===q?a="":k.isPlainObject(a)&&(b=a,a="");b=vb(b);var c=this.iterator("table",
|
142 |
-
function(d){return Ac(d,a,b)},1);c.selector.cols=a;c.selector.opts=b;return c});J("columns().header()","column().header()",function(a,b){return this.iterator("column",function(c,d){return c.aoColumns[d].nTh},1)});J("columns().footer()","column().footer()",function(a,b){return this.iterator("column",function(c,d){return c.aoColumns[d].nTf},1)});J("columns().data()","column().data()",function(){return this.iterator("column-rows",qc,1)});J("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",
|
143 |
-
function(a,b){return a.aoColumns[b].mData},1)});J("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return Da(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});J("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return Da(a.aoData,e,"anCells",b)},1)});J("columns().visible()","column().visible()",function(a,b){var c=this,d=this.iterator("column",function(e,f){if(a===q)return e.aoColumns[f].bVisible;
|
144 |
-
var g=e.aoColumns,h=g[f],l=e.aoData,n;if(a!==q&&h.bVisible!==a){if(a){var m=k.inArray(!0,T(g,"bVisible"),f+1);g=0;for(n=l.length;g<n;g++){var p=l[g].nTr;e=l[g].anCells;p&&p.insertBefore(e[f],e[m]||null)}}else k(T(e.aoData,"anCells",f)).detach();h.bVisible=a}});a!==q&&this.iterator("table",function(e){xa(e,e.aoHeader);xa(e,e.aoFooter);e.aiDisplay.length||k(e.nTBody).find("td[colspan]").attr("colspan",na(e));Ra(e);c.iterator("column",function(f,g){H(f,null,"column-visibility",[f,g,a,b])});(b===q||b)&&
|
145 |
-
c.columns.adjust()});return d});J("columns().indexes()","column().index()",function(a){return this.iterator("column",function(b,c){return"visible"===a?ta(b,c):c},1)});w("columns.adjust()",function(){return this.iterator("table",function(a){ra(a)},1)});w("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return sa(c,b);if("fromData"===a||"toVisible"===a)return ta(c,b)}});w("column()",function(a,b){return wb(this.columns(a,b))});var Bc=
|
146 |
-
function(a,b,c){var d=a.aoData,e=Va(a,c),f=kc(Da(d,e,"anCells")),g=k(lc([],f)),h,l=a.aoColumns.length,n,m,p,t,v,x;return ub("cell",b,function(r){var A="function"===typeof r;if(null===r||r===q||A){n=[];m=0;for(p=e.length;m<p;m++)for(h=e[m],t=0;t<l;t++)v={row:h,column:t},A?(x=d[h],r(v,S(a,h,t),x.anCells?x.anCells[t]:null)&&n.push(v)):n.push(v);return n}if(k.isPlainObject(r))return r.column!==q&&r.row!==q&&-1!==k.inArray(r.row,e)?[r]:[];A=g.filter(r).map(function(D,I){return{row:I._DT_CellIndex.row,
|
147 |
-
column:I._DT_CellIndex.column}}).toArray();if(A.length||!r.nodeName)return A;x=k(r).closest("*[data-dt-row]");return x.length?[{row:x.data("dt-row"),column:x.data("dt-column")}]:[]},a,c)};w("cells()",function(a,b,c){k.isPlainObject(a)&&(a.row===q?(c=a,a=null):(c=b,b=null));k.isPlainObject(b)&&(c=b,b=null);if(null===b||b===q)return this.iterator("table",function(m){return Bc(m,a,vb(c))});var d=c?{page:c.page,order:c.order,search:c.search}:{},e=this.columns(b,d),f=this.rows(a,d),g,h,l,n;d=this.iterator("table",
|
148 |
-
function(m,p){m=[];g=0;for(h=f[p].length;g<h;g++)for(l=0,n=e[p].length;l<n;l++)m.push({row:f[p][g],column:e[p][l]});return m},1);d=c&&c.selected?this.cells(d,c):d;k.extend(d.selector,{cols:b,rows:a,opts:c});return d});J("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:q},1)});w("cells().data()",function(){return this.iterator("cell",function(a,b,c){return S(a,b,c)},1)});J("cells().cache()","cell().cache()",function(a){a=
|
149 |
-
"search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});J("cells().render()","cell().render()",function(a){return this.iterator("cell",function(b,c,d){return S(b,c,d,a)},1)});J("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:ta(a,c)}},1)});J("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){va(b,c,a,d)})});w("cell()",
|
150 |
-
function(a,b,c){return wb(this.cells(a,b,c))});w("cell().data()",function(a){var b=this.context,c=this[0];if(a===q)return b.length&&c.length?S(b[0],c[0].row,c[0].column):q;Eb(b[0],c[0].row,c[0].column,a);va(b[0],c[0].row,"data",c[0].column);return this});w("order()",function(a,b){var c=this.context;if(a===q)return 0!==c.length?c[0].aaSorting:q;"number"===typeof a?a=[[a,b]]:a.length&&!Array.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(d){d.aaSorting=
|
151 |
-
a.slice()})});w("order.listener()",function(a,b,c){return this.iterator("table",function(d){eb(d,a,b,c)})});w("order.fixed()",function(a){if(!a){var b=this.context;b=b.length?b[0].aaSortingFixed:q;return Array.isArray(b)?{pre:b}:b}return this.iterator("table",function(c){c.aaSortingFixed=k.extend(!0,{},a)})});w(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];k.each(b[d],function(f,g){e.push([g,a])});c.aaSorting=e})});w("search()",
|
152 |
-
function(a,b,c,d){var e=this.context;return a===q?0!==e.length?e[0].oPreviousSearch.sSearch:q:this.iterator("table",function(f){f.oFeatures.bFilter&&ya(f,k.extend({},f.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});J("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===q)return g[f].sSearch;e.oFeatures.bFilter&&(k.extend(g[f],{sSearch:a+"",bRegex:null===
|
153 |
-
b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ya(e,e.oPreviousSearch,1))})});w("state()",function(){return this.context.length?this.context[0].oSavedState:null});w("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});w("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});w("state.save()",function(){return this.iterator("table",function(a){Ra(a)})});u.versionCheck=u.fnVersionCheck=function(a){var b=
|
154 |
-
u.version.split(".");a=a.split(".");for(var c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};u.isDataTable=u.fnIsDataTable=function(a){var b=k(a).get(0),c=!1;if(a instanceof u.Api)return!0;k.each(u.settings,function(d,e){d=e.nScrollHead?k("table",e.nScrollHead)[0]:null;var f=e.nScrollFoot?k("table",e.nScrollFoot)[0]:null;if(e.nTable===b||d===b||f===b)c=!0});return c};u.tables=u.fnTables=function(a){var b=!1;k.isPlainObject(a)&&(b=a.api,a=a.visible);
|
155 |
-
var c=k.map(u.settings,function(d){if(!a||a&&k(d.nTable).is(":visible"))return d.nTable});return b?new C(c):c};u.camelToHungarian=O;w("$()",function(a,b){b=this.rows(b).nodes();b=k(b);return k([].concat(b.filter(a).toArray(),b.find(a).toArray()))});k.each(["on","one","off"],function(a,b){w(b+"()",function(){var c=Array.prototype.slice.call(arguments);c[0]=k.map(c[0].split(/\s/),function(e){return e.match(/\.dt\b/)?e:e+".dt"}).join(" ");var d=k(this.tables().nodes());d[b].apply(d,c);return this})});
|
156 |
-
w("clear()",function(){return this.iterator("table",function(a){Ia(a)})});w("settings()",function(){return new C(this.context,this.context)});w("init()",function(){var a=this.context;return a.length?a[0].oInit:null});w("data()",function(){return this.iterator("table",function(a){return T(a.aoData,"_aData")}).flatten()});w("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,h=b.nTFoot,l=k(e);f=k(f);
|
157 |
-
var n=k(b.nTableWrapper),m=k.map(b.aoData,function(t){return t.nTr}),p;b.bDestroying=!0;H(b,"aoDestroyCallback","destroy",[b]);a||(new C(b)).columns().visible(!0);n.off(".DT").find(":not(tbody *)").off(".DT");k(y).off(".DT-"+b.sInstance);e!=g.parentNode&&(l.children("thead").detach(),l.append(g));h&&e!=h.parentNode&&(l.children("tfoot").detach(),l.append(h));b.aaSorting=[];b.aaSortingFixed=[];Qa(b);k(m).removeClass(b.asStripeClasses.join(" "));k("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+
|
158 |
-
" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(m);g=a?"remove":"detach";l[g]();n[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),l.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&&f.children().each(function(t){k(this).addClass(b.asDestroyStripes[t%p])}));c=k.inArray(b,u.settings);-1!==c&&u.settings.splice(c,1)})});k.each(["column","row","cell"],function(a,b){w(b+"s().every()",function(c){var d=this.selector.opts,e=this;return this.iterator(b,
|
159 |
-
function(f,g,h,l,n){c.call(e[b](g,"cell"===b?h:d,"cell"===b?d:q),g,h,l,n)})})});w("i18n()",function(a,b,c){var d=this.context[0];a=ia(a)(d.oLanguage);a===q&&(a=b);c!==q&&k.isPlainObject(a)&&(a=a[c]!==q?a[c]:a._);return a.replace("%d",c)});u.version="1.10.25";u.settings=[];u.models={};u.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};u.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};u.models.oColumn=
|
160 |
-
{idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};u.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,
|
161 |
-
aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,
|
162 |
-
fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){return{}}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,
|
163 |
-
iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",
|
164 |
-
sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:k.extend({},u.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};G(u.defaults);u.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc",
|
165 |
-
"desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};G(u.defaults.column);u.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,
|
166 |
-
sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],
|
167 |
-
aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,jqXHR:null,json:q,oAjaxData:q,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,
|
168 |
-
iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==P(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==P(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;
|
169 |
-
return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};u.ext=L={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:u.fnVersionCheck,
|
170 |
-
iApiIndex:0,oJUIClasses:{},sVersion:u.version};k.extend(L,{afnFiltering:L.search,aTypes:L.type.detect,ofnSearch:L.type.search,oSort:L.type.order,afnSortData:L.order,aoFeatures:L.feature,oApi:L.internal,oStdClasses:L.classes,oPagination:L.pager});k.extend(u.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",
|
171 |
-
sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_desc_disabled",sSortableDesc:"sorting_asc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",
|
172 |
-
sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var ec=u.ext.pager;k.extend(ec,{simple:function(a,b){return["previous","next"]},full:function(a,b){return["first","previous","next","last"]},numbers:function(a,b){return[Ca(a,b)]},simple_numbers:function(a,b){return["previous",Ca(a,b),"next"]},
|
173 |
-
full_numbers:function(a,b){return["first","previous",Ca(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",Ca(a,b),"last"]},_numbers:Ca,numbers_length:7});k.extend(!0,u.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,h=a.oLanguage.oPaginate,l=a.oLanguage.oAria.paginate||{},n,m,p=0,t=function(x,r){var A,D=g.sPageButtonDisabled,I=function(E){lb(a,E.data.action,!0)};var W=0;for(A=r.length;W<A;W++){var M=r[W];if(Array.isArray(M)){var B=k("<"+(M.DT_el||"div")+"/>").appendTo(x);
|
174 |
-
t(B,M)}else{n=null;m=M;B=a.iTabIndex;switch(M){case "ellipsis":x.append('<span class="ellipsis">…</span>');break;case "first":n=h.sFirst;0===e&&(B=-1,m+=" "+D);break;case "previous":n=h.sPrevious;0===e&&(B=-1,m+=" "+D);break;case "next":n=h.sNext;if(0===f||e===f-1)B=-1,m+=" "+D;break;case "last":n=h.sLast;if(0===f||e===f-1)B=-1,m+=" "+D;break;default:n=a.fnFormatNumber(M+1),m=e===M?g.sPageButtonActive:""}null!==n&&(B=k("<a>",{"class":g.sPageButton+" "+m,"aria-controls":a.sTableId,"aria-label":l[M],
|
175 |
-
"data-dt-idx":p,tabindex:B,id:0===c&&"string"===typeof M?a.sTableId+"_"+M:null}).html(n).appendTo(x),pb(B,{action:M},I),p++)}}};try{var v=k(b).find(z.activeElement).data("dt-idx")}catch(x){}t(k(b).empty(),d);v!==q&&k(b).find("[data-dt-idx="+v+"]").trigger("focus")}}});k.extend(u.ext.type.detect,[function(a,b){b=b.oLanguage.sDecimal;return tb(a,b)?"num"+b:null},function(a,b){if(a&&!(a instanceof Date)&&!tc.test(a))return null;b=Date.parse(a);return null!==b&&!isNaN(b)||Z(a)?"date":null},function(a,
|
176 |
-
b){b=b.oLanguage.sDecimal;return tb(a,b,!0)?"num-fmt"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b)?"html-num"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b,!0)?"html-num-fmt"+b:null},function(a,b){return Z(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);k.extend(u.ext.type.search,{html:function(a){return Z(a)?a:"string"===typeof a?a.replace(gc," ").replace(Ua,""):""},string:function(a){return Z(a)?a:"string"===typeof a?a.replace(gc," "):a}});var Ta=function(a,
|
177 |
-
b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=ic(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};k.extend(L.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return Z(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return Z(a)?"":"string"===typeof a?a.toLowerCase():a.toString?a.toString():""},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<
|
178 |
-
b?1:a>b?-1:0}});Wa("");k.extend(!0,u.ext.renderer,{header:{_:function(a,b,c,d){k(a.nTable).on("order.dt.DT",function(e,f,g,h){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass("asc"==h[e]?d.sSortAsc:"desc"==h[e]?d.sSortDesc:c.sSortingClass))})},jqueryui:function(a,b,c,d){k("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(k("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);k(a.nTable).on("order.dt.DT",function(e,f,g,h){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+
|
179 |
-
" "+d.sSortDesc).addClass("asc"==h[e]?d.sSortAsc:"desc"==h[e]?d.sSortDesc:c.sSortingClass),b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass("asc"==h[e]?d.sSortJUIAsc:"desc"==h[e]?d.sSortJUIDesc:c.sSortingClassJUI))})}}});var yb=function(a){return"string"===typeof a?a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""):a};u.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==
|
180 |
-
typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return yb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";0===h&&0===parseFloat(f)&&(g="");return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:yb,filter:yb}}};k.extend(u.ext.internal,{_fnExternApiFunc:fc,_fnBuildAjax:Ma,_fnAjaxUpdate:Gb,_fnAjaxParameters:Pb,_fnAjaxUpdateDraw:Qb,_fnAjaxDataSrc:Na,_fnAddColumn:Xa,_fnColumnOptions:Ea,
|
181 |
-
_fnAdjustColumnSizing:ra,_fnVisibleToColumnIndex:sa,_fnColumnIndexToVisible:ta,_fnVisbleColumns:na,_fnGetColumns:Ga,_fnColumnTypes:Za,_fnApplyColumnDefs:Db,_fnHungarianMap:G,_fnCamelToHungarian:O,_fnLanguageCompat:ma,_fnBrowserDetect:Bb,_fnAddData:ea,_fnAddTr:Ha,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==q?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return k.inArray(c,a.aoData[b].anCells)},_fnGetCellData:S,_fnSetCellData:Eb,_fnSplitObjNotation:bb,_fnGetObjectDataFn:ia,
|
182 |
-
_fnSetObjectDataFn:da,_fnGetDataMaster:cb,_fnClearTable:Ia,_fnDeleteIndex:Ja,_fnInvalidate:va,_fnGetRowElements:ab,_fnCreateTr:$a,_fnBuildHead:Fb,_fnDrawHead:xa,_fnDraw:fa,_fnReDraw:ja,_fnAddOptionsHtml:Ib,_fnDetectHeader:wa,_fnGetUniqueThs:La,_fnFeatureHtmlFilter:Kb,_fnFilterComplete:ya,_fnFilterCustom:Tb,_fnFilterColumn:Sb,_fnFilter:Rb,_fnFilterCreateSearch:hb,_fnEscapeRegex:ib,_fnFilterData:Ub,_fnFeatureHtmlInfo:Nb,_fnUpdateInfo:Xb,_fnInfoMacros:Yb,_fnInitialise:za,_fnInitComplete:Oa,_fnLengthChange:jb,
|
183 |
-
_fnFeatureHtmlLength:Jb,_fnFeatureHtmlPaginate:Ob,_fnPageChange:lb,_fnFeatureHtmlProcessing:Lb,_fnProcessingDisplay:U,_fnFeatureHtmlTable:Mb,_fnScrollDraw:Fa,_fnApplyToChildren:ba,_fnCalculateColumnWidths:Ya,_fnThrottle:gb,_fnConvertToWidth:Zb,_fnGetWidestNode:$b,_fnGetMaxLenString:ac,_fnStringToCss:K,_fnSortFlatten:pa,_fnSort:Hb,_fnSortAria:cc,_fnSortListener:ob,_fnSortAttachListener:eb,_fnSortingClasses:Qa,_fnSortData:bc,_fnSaveState:Ra,_fnLoadState:dc,_fnSettingsFromNode:Sa,_fnLog:ca,_fnMap:V,
|
184 |
-
_fnBindAction:pb,_fnCallbackReg:Q,_fnCallbackFire:H,_fnLengthOverflow:kb,_fnRenderer:fb,_fnDataSource:P,_fnRowAttributes:db,_fnExtend:qb,_fnCalculateEnd:function(){}});k.fn.dataTable=u;u.$=k;k.fn.dataTableSettings=u.settings;k.fn.dataTableExt=u.ext;k.fn.DataTable=function(a){return k(this).dataTable(a).api()};k.each(u,function(a,b){k.fn.DataTable[a]=b});return k.fn.dataTable});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public/js/wpel-admin.js
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
* WP External Links Plugin
|
3 |
* Admin
|
4 |
*/
|
|
|
5 |
/*global jQuery, window*/
|
6 |
jQuery(function ($) {
|
7 |
// add custom jQuery show/hide function
|
@@ -129,247 +130,169 @@ jQuery(function ($) {
|
|
129 |
// for network pages
|
130 |
$(".wpel-network-page").find("form").wpelShow();
|
131 |
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
-
$
|
135 |
e.preventDefault();
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
|
|
140 |
}
|
|
|
|
|
|
|
141 |
});
|
142 |
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
|
150 |
-
function
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
clearTimeout(check_links_timeout);
|
155 |
-
}
|
156 |
-
$.ajax({
|
157 |
-
url: ajaxurl,
|
158 |
-
method: "POST",
|
159 |
-
crossDomain: true,
|
160 |
-
dataType: "json",
|
161 |
-
timeout: 30000,
|
162 |
-
data: {
|
163 |
-
_ajax_nonce: wpel.nonce_ajax,
|
164 |
-
action: "wpel_run_tool",
|
165 |
-
force: force,
|
166 |
-
tool: "check_links",
|
167 |
-
},
|
168 |
-
})
|
169 |
-
.done(function (response) {
|
170 |
-
if (response.success == true) {
|
171 |
-
if (force == true) {
|
172 |
-
location.reload();
|
173 |
-
return;
|
174 |
-
}
|
175 |
-
|
176 |
-
if (response.data.status == "scan_pending" || response.data.status == "pending" || response.data.status == "finished") {
|
177 |
-
var total_pages = 0;
|
178 |
-
var total_pages_links = 0;
|
179 |
-
var total_links = 0;
|
180 |
-
var total_finished = 0;
|
181 |
-
|
182 |
-
for (page in response.data.pages) {
|
183 |
-
total_pages++;
|
184 |
-
var page_id = page.replace(/\/|\:|\./g, "");
|
185 |
-
var html = "";
|
186 |
-
|
187 |
-
html += '<td class="lh-page-href">';
|
188 |
-
if (response.data.pages[page].title && response.data.pages[page].title.length > 0) {
|
189 |
-
html += response.data.pages[page].title + " - ";
|
190 |
-
}
|
191 |
-
html += '<a href="' + page + '" target="_blank">' + page + '<span class="dashicons dashicons-external"></span></a>';
|
192 |
-
html += "</td>";
|
193 |
-
|
194 |
-
html += '<td class="lh-results-stats">';
|
195 |
-
html += '<span class="lh-results-links-total">' + response.data.pages[page].links_total + " links</span>";
|
196 |
-
html += '<span class="lh-results-links-finished">' + response.data.pages[page].links_finished + " scanned</span>";
|
197 |
-
if(response.data.pages[page].links_error > 0){
|
198 |
-
html += '<span class="lh-results-links-error">' + response.data.pages[page].links_error + " errors</span>";
|
199 |
-
}
|
200 |
-
html += "</td>";
|
201 |
-
|
202 |
-
html += "<td>";
|
203 |
-
//Show loader
|
204 |
-
total_links+=response.data.pages[page].links_total;
|
205 |
-
total_finished+=response.data.pages[page].links_error + response.data.pages[page].links_finished;
|
206 |
-
if(response.data.pages[page].links_total > 0){
|
207 |
-
total_pages_links++;
|
208 |
-
}
|
209 |
-
if (response.data.pages[page].links_total == 0 || response.data.pages[page].links_total > response.data.pages[page].links_error + response.data.pages[page].links_finished) {
|
210 |
-
html += loader_html;
|
211 |
-
} else {
|
212 |
-
html += '<div class="button button-primary lh-open-analysis">Open Details</div>';
|
213 |
-
}
|
214 |
-
html += "</td>";
|
215 |
-
|
216 |
-
if ($("#lh_results #wpel-page-" + page_id).length > 0) {
|
217 |
-
if ($("#wpel-page-" + page_id).text() != $("<div>").append(html).text()) {
|
218 |
-
$("#wpel-page-" + page_id).html(html);
|
219 |
-
}
|
220 |
-
} else {
|
221 |
-
$("#lh_results").append('<tr class="lh-page" id="wpel-page-' + page_id + '" data-page="' + page + '">' + html + "</tr>");
|
222 |
-
}
|
223 |
-
}
|
224 |
-
|
225 |
-
if (total_pages > 0) {
|
226 |
-
$(".lh-results-loader").remove();
|
227 |
-
|
228 |
-
var page_progress = total_pages_links/total_pages * 25;
|
229 |
-
var link_progress = total_finished/total_links * 75;
|
230 |
-
|
231 |
-
if(total_finished < total_links){
|
232 |
-
$('#lh-progress-bar-wrapper').show();
|
233 |
-
var progress = page_progress + link_progress;
|
234 |
-
$('#lh-progress-bar').css('width',progress+'%');
|
235 |
-
} else {
|
236 |
-
$('#lh-progress-bar-wrapper').hide();
|
237 |
-
}
|
238 |
-
|
239 |
-
$(".lh-search-wrapper").show();
|
240 |
-
if (response.data.total_pages > total_pages) {
|
241 |
-
var unscanned_pages = response.data.total_pages - total_pages;
|
242 |
-
$("#lh_pro_count").html(unscanned_pages);
|
243 |
-
$("#lh_pro").show();
|
244 |
-
} else {
|
245 |
-
$("#lh_pro").hide();
|
246 |
-
}
|
247 |
-
} else {
|
248 |
-
$(".lh-search-wrapper").hide();
|
249 |
-
}
|
250 |
-
|
251 |
-
if (response.data.status == "pending") {
|
252 |
-
check_links_timeout = setTimeout(function () {
|
253 |
-
check_links();
|
254 |
-
}, 2000);
|
255 |
-
}
|
256 |
-
}
|
257 |
-
} else {
|
258 |
-
alert(response.data);
|
259 |
-
}
|
260 |
-
})
|
261 |
-
.fail(function (data) {
|
262 |
-
alert("An undocumented error occured checking the links");
|
263 |
-
});
|
264 |
-
} // check_links
|
265 |
|
266 |
-
|
267 |
-
|
268 |
-
var page = $(this).parents(".lh-page").attr("data-page");
|
269 |
-
var title = $(this).parents(".lh-page").children(".lh-page-href").html();
|
270 |
|
271 |
-
|
|
|
272 |
|
273 |
-
|
274 |
-
analysis_table.destroy();
|
275 |
-
analysis_table = false;
|
276 |
-
}
|
277 |
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
targets: [0],
|
283 |
-
className: "dt-body-center",
|
284 |
-
width: 100,
|
285 |
-
},
|
286 |
-
{
|
287 |
-
targets: [1, 2, 3],
|
288 |
-
className: "dt-body-left dt-head-center",
|
289 |
-
},
|
290 |
-
],
|
291 |
-
fixedColumns: true,
|
292 |
});
|
|
|
293 |
|
294 |
-
|
295 |
-
|
296 |
-
});
|
297 |
|
298 |
-
|
299 |
-
|
300 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
301 |
});
|
302 |
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
.show()
|
308 |
-
.filter(function () {
|
309 |
-
var text = $(this).text().replace(/\s+/g, " ").toLowerCase();
|
310 |
-
return !~text.indexOf(search_term);
|
311 |
-
})
|
312 |
-
.hide();
|
313 |
});
|
314 |
|
315 |
-
|
316 |
-
|
317 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
}
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
}
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
})
|
358 |
-
.always(function (data) {
|
359 |
-
$(".lh-subscribe-loader").remove();
|
360 |
-
$('#lh_subscribe_button').removeClass('disabled');
|
361 |
-
});
|
362 |
});
|
363 |
|
364 |
-
function subscribe_message(success, message) {
|
365 |
-
if (success) {
|
366 |
-
$("#lh_subscribe_message").removeClass("lh-subscribe-bad");
|
367 |
-
$("#lh_subscribe_message").addClass("lh-subscribe-good");
|
368 |
-
} else {
|
369 |
-
$("#lh_subscribe_message").removeClass("lh-subscribe-good");
|
370 |
-
$("#lh_subscribe_message").addClass("lh-subscribe-bad");
|
371 |
-
}
|
372 |
|
373 |
-
$("#lh_subscribe_message").html(message).show();
|
374 |
-
}
|
375 |
});
|
|
|
|
|
|
|
|
|
|
|
|
2 |
* WP External Links Plugin
|
3 |
* Admin
|
4 |
*/
|
5 |
+
|
6 |
/*global jQuery, window*/
|
7 |
jQuery(function ($) {
|
8 |
// add custom jQuery show/hide function
|
130 |
// for network pages
|
131 |
$(".wpel-network-page").find("form").wpelShow();
|
132 |
|
133 |
+
// pro dialog
|
134 |
+
$('a.nav-tab-pro').on('click', function (e) {
|
135 |
+
e.preventDefault();
|
136 |
+
|
137 |
+
open_upsell('tab');
|
138 |
+
|
139 |
+
return false;
|
140 |
+
});
|
141 |
|
142 |
+
$('#wpwrap').on('click', '.open-pro-dialog', function (e) {
|
143 |
e.preventDefault();
|
144 |
+
$(this).blur();
|
145 |
+
|
146 |
+
pro_feature = $(this).data('pro-feature');
|
147 |
+
if (!pro_feature) {
|
148 |
+
pro_feature = $(this).parent('label').attr('for');
|
149 |
}
|
150 |
+
open_upsell(pro_feature);
|
151 |
+
|
152 |
+
return false;
|
153 |
});
|
154 |
|
155 |
+
$('#wpel-pro-dialog').dialog({
|
156 |
+
dialogClass: 'wp-dialog wpel-pro-dialog',
|
157 |
+
modal: true,
|
158 |
+
resizable: false,
|
159 |
+
width: 850,
|
160 |
+
height: 'auto',
|
161 |
+
show: 'fade',
|
162 |
+
hide: 'fade',
|
163 |
+
close: function (event, ui) {},
|
164 |
+
open: function (event, ui) {
|
165 |
+
$(this).siblings().find('span.ui-dialog-title').html('WP Links PRO is here!');
|
166 |
+
wpel_fix_dialog_close(event, ui);
|
167 |
+
},
|
168 |
+
autoOpen: false,
|
169 |
+
closeOnEscape: true,
|
170 |
+
});
|
171 |
|
172 |
+
function clean_feature(feature) {
|
173 |
+
feature = feature || 'free-plugin-unknown';
|
174 |
+
feature = feature.toLowerCase();
|
175 |
+
feature = feature.replace(' ', '-');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
|
177 |
+
return feature;
|
178 |
+
}
|
|
|
|
|
179 |
|
180 |
+
function open_upsell(feature) {
|
181 |
+
feature = clean_feature(feature);
|
182 |
|
183 |
+
$('#wpel-pro-dialog').dialog('open');
|
|
|
|
|
|
|
184 |
|
185 |
+
$('#wpel-pro-table .button-buy').each(function (ind, el) {
|
186 |
+
tmp = $(el).data('href-org');
|
187 |
+
tmp = tmp.replace('pricing-table', feature);
|
188 |
+
$(el).attr('href', tmp);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
});
|
190 |
+
} // open_upsell
|
191 |
|
192 |
+
if (window.localStorage.getItem('wpel_upsell_shown') != 'true') {
|
193 |
+
open_upsell('welcome');
|
|
|
194 |
|
195 |
+
window.localStorage.setItem('wpel_upsell_shown', 'true');
|
196 |
+
window.localStorage.setItem('wpel_upsell_shown_timestamp', new Date().getTime());
|
197 |
+
}
|
198 |
+
|
199 |
+
if (window.location.hash == '#open-pro-dialog') {
|
200 |
+
open_upsell('url-hash');
|
201 |
+
window.location.hash = '';
|
202 |
+
}
|
203 |
+
|
204 |
+
$("a.show-link-rules").click(function() {
|
205 |
+
$('#link-rules-new').dialog({ height:'auto',
|
206 |
+
width:'auto',
|
207 |
+
closeOnEscape: true,
|
208 |
+
dialogClass: 'wp-dialog',
|
209 |
+
modal: true,
|
210 |
+
open: function (event, ui) {
|
211 |
+
wpel_fix_dialog_close(event, ui);
|
212 |
+
},});
|
213 |
+
});
|
214 |
+
|
215 |
+
jQuery(document).ready(function($){
|
216 |
+
$('.wpel-colorpicker').wpColorPicker();
|
217 |
});
|
218 |
|
219 |
+
|
220 |
+
$('.wpel-exit-confirmation').on('click', function(event){
|
221 |
+
event.stopPropagation();
|
222 |
+
refresh_exit_confirmaiton_preview();
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
});
|
224 |
|
225 |
+
function refresh_exit_confirmaiton_preview(){
|
226 |
+
wp_external_links = {};
|
227 |
+
wp_external_links.background = $('#wpel-exit-confirmation-settings-background').val();
|
228 |
+
wp_external_links.title = $('#wpel-exit-confirmation-settings-title').val();
|
229 |
+
wp_external_links.title_color = $('#wpel-exit-confirmation-settings-title_color').val();
|
230 |
+
wp_external_links.title_background = $('#wpel-exit-confirmation-settings-title_background').val();
|
231 |
+
wp_external_links.title_size = $('#wpel-exit-confirmation-settings-title_size').val();
|
232 |
+
wp_external_links.text = $('#wpel-exit-confirmation-settings-text').val().replace('{siteurl}', wpel.home_url);
|
233 |
+
wp_external_links.text_color = $('#wpel-exit-confirmation-settings-text_color').val();
|
234 |
+
wp_external_links.text_size = $('#wpel-exit-confirmation-settings-text_size').val();
|
235 |
+
wp_external_links.popup_width = $('#wpel-exit-confirmation-settings-popup_width').val();
|
236 |
+
wp_external_links.popup_height = $('#wpel-exit-confirmation-settings-popup_height').val();
|
237 |
+
wp_external_links.overlay = $('#wpel-exit-confirmation-settings-overlay').val();
|
238 |
+
wp_external_links.overlay_color = $('#wpel-exit-confirmation-settings-overlay_color').val();
|
239 |
+
wp_external_links.button_text = $('#wpel-exit-confirmation-settings-button_text').val();
|
240 |
+
wp_external_links.button_size = $('#wpel-exit-confirmation-settings-button_size').val();
|
241 |
+
wp_external_links.button_color = $('#wpel-exit-confirmation-settings-button_color').val();
|
242 |
+
wp_external_links.button_background = $('#wpel-exit-confirmation-settings-button_background').val();
|
243 |
+
wp_external_links.title = $('#wpel-exit-confirmation-settings-title').val();
|
244 |
+
|
245 |
+
wp_external_links.href = 'https://www.google.com';
|
246 |
+
|
247 |
+
exit_confirmation_html = '';
|
248 |
+
if(wp_external_links.overlay == '1'){
|
249 |
+
exit_confirmation_html += '<div id="wpel_exit_confirmation_overlay"></div>';
|
250 |
}
|
251 |
+
exit_confirmation_html += '<div id="wpel_exit_confirmation">';
|
252 |
+
if(wp_external_links.title.length>0){
|
253 |
+
exit_confirmation_html += '<div id="wpel_exit_confirmation_title">'+wp_external_links.title+'</div>';
|
254 |
+
}
|
255 |
+
exit_confirmation_html += '<div id="wpel_exit_confirmation_link">'+wp_external_links.text+'<br /><a target="'+ wp_external_links.href +'" href="'+wp_external_links.href+'">'+wp_external_links.href+'</a></div>';
|
256 |
+
exit_confirmation_html += '<div id="wpel_exit_confirmation_button_wrapper">';
|
257 |
+
exit_confirmation_html += '<div id="wpel_exit_confirmation_cancel" onMouseOver="this.style.opacity=\'0.8\'" onMouseOut="this.style.opacity=\'1\'">' + wp_external_links.button_text + '</a></div>';
|
258 |
+
exit_confirmation_html += '</div>';
|
259 |
+
exit_confirmation_html += '</div>';
|
260 |
+
|
261 |
+
exit_confirmation_html += '<style>';
|
262 |
+
exit_confirmation_html += '#wpel_exit_confirmation_overlay{width:100%;height:100%;position:fixed;top:0px;left:0px;opacity:0.2;z-index:100000;background:'+wp_external_links.overlay_color+';}';
|
263 |
+
exit_confirmation_html += '#wpel_exit_confirmation{z-index:100001;border-radius:4px;padding-bottom:40px;position:fixed;top:0px;left:0px;top:50%;left:50%;margin-top:-'+(wp_external_links.popup_height/2)+'px;margin-left:-'+(wp_external_links.popup_width/2)+'px;width:'+wp_external_links.popup_width+'px;height:'+wp_external_links.popup_height+'px;background:'+wp_external_links.background+';}';
|
264 |
+
exit_confirmation_html += '#wpel_exit_confirmation_title{width:100%;padding:6px 10px; text-align:center; box-sizing: border-box; background:'+wp_external_links.title_background+';font-size:'+wp_external_links.title_size+'px; color:'+wp_external_links.title_color+';}';
|
265 |
+
exit_confirmation_html += '#wpel_exit_confirmation_link{width:100%;padding:10px 20px; line-height: 1.5; box-sizing: border-box;font-size:'+wp_external_links.text_size+'px; color:'+wp_external_links.text_color+';}';
|
266 |
+
exit_confirmation_html += '#wpel_exit_confirmation_button_wrapper{width:100%; text-align:center; position:absolute; bottom:10px;}';
|
267 |
+
exit_confirmation_html += '#wpel_exit_confirmation_cancel{cursor:pointer;border-radius:4px;padding:10px 15px;display:inline-block;font-size:'+wp_external_links.button_size+'px;color:'+wp_external_links.button_color+'; background:'+wp_external_links.button_background+';}';
|
268 |
+
|
269 |
+
exit_confirmation_html += '@media only screen and (max-width: 900px) {';
|
270 |
+
exit_confirmation_html += '#wpel_exit_confirmation{ width: 90%; margin: 0 auto; padding-bottom: 40px; top: 20%; position: fixed; left: auto; height: auto; height:'+wp_external_links.popup_height+'px; display: block; margin-left: 5%;}';
|
271 |
+
exit_confirmation_html += '}';
|
272 |
+
exit_confirmation_html += '</style>';
|
273 |
+
|
274 |
+
$('#exit-confirmation-preview').html(exit_confirmation_html);
|
275 |
+
}
|
276 |
+
|
277 |
+
$('body').on('click', '#wpel_exit_confirmation_cancel', function(e){
|
278 |
+
$('#wpel_exit_confirmation_overlay').remove();
|
279 |
+
$('#wpel_exit_confirmation').remove();
|
280 |
+
});
|
281 |
+
|
282 |
+
$('body').click(function() {
|
283 |
+
$('#wpel_exit_confirmation_overlay').remove();
|
284 |
+
$('#wpel_exit_confirmation').remove();
|
285 |
+
});
|
286 |
+
|
287 |
+
$('#wpel_exit_confirmation').click(function(event){
|
288 |
+
event.stopPropagation();
|
|
|
|
|
|
|
|
|
|
|
289 |
});
|
290 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
|
|
|
|
|
292 |
});
|
293 |
+
|
294 |
+
function wpel_fix_dialog_close(event, ui) {
|
295 |
+
jQuery('.ui-widget-overlay').bind('click', function () {
|
296 |
+
jQuery('#' + event.target.id).dialog('close');
|
297 |
+
});
|
298 |
+
} // wpel_fix_dialog_close
|
public/js/wpel-link-highlighter.js
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WP External Links Plugin
|
3 |
-
* Admin
|
4 |
-
*/
|
5 |
-
/*global jQuery, window*/
|
6 |
-
jQuery(function ($) {
|
7 |
-
const urlParams = new URLSearchParams(window.location.search);
|
8 |
-
let link_to_find = decodeURI(urlParams.get('wpel-link-highlight'));
|
9 |
-
|
10 |
-
if($('a[href="' + link_to_find + '"]').length == 0){
|
11 |
-
if(link_to_find.substr(-1) == '/'){
|
12 |
-
link_to_find = link_to_find.slice(0, - 1);
|
13 |
-
} else {
|
14 |
-
link_to_find = link_to_find + '/';
|
15 |
-
}
|
16 |
-
}
|
17 |
-
|
18 |
-
if($('a[href="' + link_to_find + '"]').length == 0){
|
19 |
-
link_to_find = link_to_find.replace(window.location.origin,'');
|
20 |
-
}
|
21 |
-
|
22 |
-
if($('a[href="' + link_to_find + '"]').length == 0){
|
23 |
-
if(link_to_find.substr(-1) == '/'){
|
24 |
-
link_to_find = link_to_find.slice(0, - 1);
|
25 |
-
} else {
|
26 |
-
link_to_find = link_to_find + '/';
|
27 |
-
}
|
28 |
-
}
|
29 |
-
|
30 |
-
if($('a[href="' + link_to_find + '"]').length == 0){
|
31 |
-
alert('Link not found ' + link_to_find);
|
32 |
-
} else {
|
33 |
-
$('a[href="' + link_to_find + '"]').css('border', '3px dashed #00a1ff').css('box-shadow','1px 1px 18px 4px #00a1ff').css('padding', '10px');
|
34 |
-
$([document.documentElement, document.body]).animate({
|
35 |
-
scrollTop: $('a[href="' + link_to_find + '"]').offset().top - 100
|
36 |
-
}, 100);
|
37 |
-
}
|
38 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public/js/wpel-pointers.js
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* WP External Links
|
3 |
+
* Backend GUI pointers
|
4 |
+
* (c) WebFactory Ltd, 2017 - 2022
|
5 |
+
*/
|
6 |
+
|
7 |
+
jQuery(document).ready(function($){
|
8 |
+
if (typeof wpel_pointers == 'undefined') {
|
9 |
+
return;
|
10 |
+
}
|
11 |
+
|
12 |
+
$.each(wpel_pointers, function(index, pointer) {
|
13 |
+
if (index.charAt(0) == '_') {
|
14 |
+
return true;
|
15 |
+
}
|
16 |
+
$(pointer.target).pointer({
|
17 |
+
content: '<h3>WP External Links</h3><p>' + pointer.content + '</p>',
|
18 |
+
pointerWidth: 380,
|
19 |
+
position: {
|
20 |
+
edge: pointer.edge,
|
21 |
+
align: pointer.align
|
22 |
+
},
|
23 |
+
close: function() {
|
24 |
+
$.get(ajaxurl, {
|
25 |
+
notice_name: index,
|
26 |
+
_ajax_nonce: wpel_pointers._nonce_dismiss_pointer,
|
27 |
+
action: 'wpel_dismiss_notice'
|
28 |
+
});
|
29 |
+
}
|
30 |
+
}).pointer('open');
|
31 |
+
});
|
32 |
+
});
|
readme.txt
CHANGED
@@ -2,22 +2,22 @@
|
|
2 |
Contributors: WebFactory
|
3 |
Tags: new window, new tab, external links, nofollow, noopener, ugc, sponsored, follow, dofollow, seo, noreferrer, internal links, target, links, link, internal link, external link, link scanner, link checker
|
4 |
Requires at least: 4.2
|
5 |
-
Tested up to: 6.
|
6 |
Requires PHP: 7.2
|
7 |
-
Stable tag: 2.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
**Manage all external & internal links on your site**. Control icons, nofollow, noopener, ugc (User Generated Content), sponsored and if links open in new window or new tab.
|
16 |
|
17 |
-
WP
|
18 |
|
19 |
-
= Link Scanner
|
20 |
-
Check every single link on your site! See if it's broken or not, if it's redirected, what's the target and rel attribute and what page exactly it's linking to. This
|
21 |
|
22 |
= Features =
|
23 |
* Manage external and internal links
|
@@ -29,6 +29,9 @@ Check every single link on your site! See if it's broken or not, if it's redirec
|
|
29 |
* Set other attributes like title and CSS classes
|
30 |
* Scan complete page (or just posts, comments, widgets)
|
31 |
* SEO friendly
|
|
|
|
|
|
|
32 |
|
33 |
= And more... =
|
34 |
* Network Settings (WPMU support)
|
@@ -247,6 +250,13 @@ See [FAQ](https://wordpress.org/plugins/wp-external-links/faq/) for more info.
|
|
247 |
|
248 |
== Changelog ==
|
249 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
= 2.51 =
|
251 |
* 2022-01-28
|
252 |
* fixed icons for excluded external links
|
2 |
Contributors: WebFactory
|
3 |
Tags: new window, new tab, external links, nofollow, noopener, ugc, sponsored, follow, dofollow, seo, noreferrer, internal links, target, links, link, internal link, external link, link scanner, link checker
|
4 |
Requires at least: 4.2
|
5 |
+
Tested up to: 6.1
|
6 |
Requires PHP: 7.2
|
7 |
+
Stable tag: 2.55
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
+
Internal links & external links manager: open in new window or tab, control nofollow, ugc, sponsored & noopener. SEO friendly.
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
**Manage all external & internal links on your site**. Control icons, nofollow, noopener, ugc (User Generated Content), sponsored and if links open in new window or new tab.
|
16 |
|
17 |
+
<a href="https://getwplinks.com/">WP Links</a> plugin was completely rebuilt in v2 and has lots of new features, like noopener, ugc and sponsored values for rel; font icons, internal links options and full WPMU support.
|
18 |
|
19 |
+
= Link Scanner - PRO feature =
|
20 |
+
Check every single link on your site! See if it's broken or not, if it's redirected, what's the target and rel attribute and what page exactly it's linking to. This feature is a part of the <a href="https://getwplinks.com/">WP Links PRO</a> plugin.
|
21 |
|
22 |
= Features =
|
23 |
* Manage external and internal links
|
29 |
* Set other attributes like title and CSS classes
|
30 |
* Scan complete page (or just posts, comments, widgets)
|
31 |
* SEO friendly
|
32 |
+
* Link Scanner - check all links on your site - PRO feature
|
33 |
+
* Exit Confirmation - protect visitors and traffic when external links are clicked - PRO feature
|
34 |
+
* Link Rules - create advanced link rules for choosen link groups - PRO feature
|
35 |
|
36 |
= And more... =
|
37 |
* Network Settings (WPMU support)
|
250 |
|
251 |
== Changelog ==
|
252 |
|
253 |
+
= 2.55 =
|
254 |
+
* 2022-07-09
|
255 |
+
* fixed current_screen() bug
|
256 |
+
* fixed "icon_type" cannot be found bug
|
257 |
+
* introduction of the PRO version
|
258 |
+
* removed link scanner beta
|
259 |
+
|
260 |
= 2.51 =
|
261 |
* 2022-01-28
|
262 |
* fixed icons for excluded external links
|
templates/partials/nav-tabs.php
CHANGED
@@ -19,22 +19,23 @@ $set_tab_active_class = function ( $tab ) use ( $vars ) {
|
|
19 |
}
|
20 |
};
|
21 |
|
|
|
22 |
$first_install = get_option( 'wpel-first-install' );
|
23 |
$dismiss_url = add_query_arg(array('action' => 'wpel_dismiss_notice', 'notice' => 'rate', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
|
24 |
|
25 |
-
if (false == get_option( 'wpel-notice-dismissed-rate', false ) && current_time( 'timestamp' ) - $first_install > ( HOUR_IN_SECONDS / 4 ) ) {
|
26 |
-
echo '<div id="rating-notice" class="notice notice-info">
|
27 |
<p><strong>Help us keep External Links <u>free & maintained</u></strong><br>By taking a minute to rate the plugin you\'ll help us keep it free & maintained. Thank you 👋</p>
|
28 |
<p><a href="https://wordpress.org/support/plugin/wp-external-links/reviews/#new-post" target="_blank" class="button button-primary">Rate the plugin 👍</a> <a href="' . $dismiss_url . '">I\'ve already rated it</a></p>
|
29 |
</div>';
|
30 |
}
|
31 |
?>
|
32 |
<h2 class="nav-tab-wrapper">
|
33 |
-
<?php foreach ( $vars[ 'tabs' ] as $tab_key => $tab_values ):
|
34 |
if($tab_key == 'admin'){
|
35 |
continue;
|
36 |
}
|
37 |
-
|
38 |
?>
|
39 |
<a class="nav-tab<?php $set_tab_active_class( $tab_key ); ?> nav-tab-<?php echo $tab_key; ?>" href="<?php echo $vars[ 'page_url' ]; ?>&tab=<?php echo $tab_key; ?>">
|
40 |
<?php echo $tab_values[ 'icon' ]; ?> <?php echo $tab_values[ 'title' ]; ?>
|
19 |
}
|
20 |
};
|
21 |
|
22 |
+
// disabled
|
23 |
$first_install = get_option( 'wpel-first-install' );
|
24 |
$dismiss_url = add_query_arg(array('action' => 'wpel_dismiss_notice', 'notice' => 'rate', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
|
25 |
|
26 |
+
if (false && false == get_option( 'wpel-notice-dismissed-rate', false ) && current_time( 'timestamp' ) - $first_install > ( HOUR_IN_SECONDS / 4 ) ) {
|
27 |
+
echo '<div id="rating-notice" class="notice notice-info">
|
28 |
<p><strong>Help us keep External Links <u>free & maintained</u></strong><br>By taking a minute to rate the plugin you\'ll help us keep it free & maintained. Thank you 👋</p>
|
29 |
<p><a href="https://wordpress.org/support/plugin/wp-external-links/reviews/#new-post" target="_blank" class="button button-primary">Rate the plugin 👍</a> <a href="' . $dismiss_url . '">I\'ve already rated it</a></p>
|
30 |
</div>';
|
31 |
}
|
32 |
?>
|
33 |
<h2 class="nav-tab-wrapper">
|
34 |
+
<?php foreach ( $vars[ 'tabs' ] as $tab_key => $tab_values ):
|
35 |
if($tab_key == 'admin'){
|
36 |
continue;
|
37 |
}
|
38 |
+
|
39 |
?>
|
40 |
<a class="nav-tab<?php $set_tab_active_class( $tab_key ); ?> nav-tab-<?php echo $tab_key; ?>" href="<?php echo $vars[ 'page_url' ]; ?>&tab=<?php echo $tab_key; ?>">
|
41 |
<?php echo $tab_values[ 'icon' ]; ?> <?php echo $tab_values[ 'title' ]; ?>
|
templates/partials/tab-contents/link-checking.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Tab
|
4 |
*
|
5 |
* @package WPEL
|
6 |
* @category WordPress Plugin
|
@@ -13,125 +13,31 @@
|
|
13 |
*/
|
14 |
?>
|
15 |
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
<div id="wpel-checker-consent">
|
20 |
-
<div class="notice-box-error">
|
21 |
-
The <b>Link Checking & Analysis</b> is not available for websites running on localhost or on non-publicly accessible hosts.<br>This service is a SaaS and needs to be able to access your site in order to analyze links on it.
|
22 |
</div>
|
23 |
|
24 |
-
<p><
|
25 |
-
|
26 |
-
|
27 |
-
The
|
28 |
|
29 |
-
<p><b>
|
30 |
-
|
31 |
|
32 |
<p><b>What are the benefits of using the Link Scanner?</b><br>
|
33 |
You can look at it as a broken link checker, but it's a lot more.<br>
|
34 |
-
After grabbing your sitemap the
|
35 |
This is also a great way to check if the settings you applied in the plugin are working and properly applied on all links.</p>
|
36 |
|
37 |
<p><b>Will the Scanner slow down my site?</b><br>
|
38 |
It's designed not to. We carefully pace out all requests so that we don't create too much traffic/load on your site in a short period of time. While the scanner is not running it's not using any resources at all.</p>
|
39 |
|
40 |
<p><b>How long does a scan take?</b><br>
|
41 |
-
For a site with an average number of links - about two minutes. However that depends on the speed of your site, the speed of the sites you link to, and the total number of links on your site
|
42 |
-
|
43 |
-
</div>
|
44 |
-
<?php
|
45 |
-
} else {
|
46 |
-
$linkhero = get_option('wpel-linkhero', array('checker' => array(), 'enabled' => false));
|
47 |
-
if(!isset($linkhero['enabled']) || $linkhero['enabled'] != true){ ?>
|
48 |
-
<div id="wpel-checker-consent">
|
49 |
-
<div class="notice-box-info">
|
50 |
-
<p>The Link Checker service uses a 3rd party SaaS owned and operated by <a href="https://www.webfactoryltd.com/" target="_blank">WebFactory Ltd</a> to scan/crawl your website's pages and check/analyze all links. <b>Absolutely no private information from the website is shared or transferred to WebFactory.</b> Only publicly accessible content will be checked. Posts, pages and other content that's not published will not be analyzed.<br><br>
|
51 |
-
More details are available below. If you're not sure if you should anaylze links with this service or anything's not clear please contact us.</p>
|
52 |
-
</div>
|
53 |
-
</div>
|
54 |
-
<?php } ?>
|
55 |
-
|
56 |
-
<a href="#" class="button button-primary check-links">Check & Analyze all site's Links</a>
|
57 |
-
<a href="#" class="button button-primary check-links" style="background: #F00; border: 1px solid #e30f0f; float:right;" data-force="true">Clear Results & Cache</a>
|
58 |
-
|
59 |
-
<div class="lh-search-wrapper">
|
60 |
-
<input placeholder="Filter pages" type="text" id="lh-search" value="" />
|
61 |
-
</div>
|
62 |
-
|
63 |
-
<div id="lh-progress-bar-wrapper">
|
64 |
-
<div id="lh-progress-bar"></div>
|
65 |
-
</div>
|
66 |
-
<table id="lh_results"></table>
|
67 |
-
|
68 |
-
|
69 |
-
<div id="lh_pro">
|
70 |
-
<div id="lh_pro_message">There are another <span id="lh_pro_count">0</span> pages that were not scanned because we're in beta.<br>
|
71 |
-
Want to scan your entire site and check out other features? Leave your email and we'll get in touch soon 🚀</div>
|
72 |
-
<div id="lh_pro_subscribe">
|
73 |
-
<?php
|
74 |
-
$subscribed = get_option('wpel-linkhero-subscribed');
|
75 |
-
if($subscribed){
|
76 |
-
?>
|
77 |
-
<div id="lh_subscribe_message" class="lh-subscribe-good" style="display:block;"><b>Thank you!</b> We'll be in touch soon!</div>
|
78 |
-
<?php
|
79 |
-
} else {
|
80 |
-
?>
|
81 |
-
<input type="text" id="lh_subscribe_email" placeholder="Your very best email address" value="" />
|
82 |
-
<div id="lh_subscribe_button" class="button button-primary">Subscribe</div>
|
83 |
-
<div id="lh_subscribe_button_loader"></div>
|
84 |
-
<div id="lh_subscribe_message" class="lh-subscribe-good"></div>
|
85 |
-
<?php
|
86 |
-
}
|
87 |
-
?>
|
88 |
-
</div>
|
89 |
-
|
90 |
-
</div>
|
91 |
|
92 |
-
<
|
93 |
-
|
94 |
-
<div id="lh_details_title"></div>
|
95 |
-
<div id="lh_page_details_wrapper">
|
96 |
-
<table id="lh_page_details" style="width:100%">
|
97 |
-
<thead>
|
98 |
-
<th><span class="dashicons dashicons-admin-links"></span></th>
|
99 |
-
<th>Anchor text/url</th>
|
100 |
-
<th>Page title</th>
|
101 |
-
<th>Link type</th>
|
102 |
-
<th>Rel Attributes</th>
|
103 |
-
<th>Target</th>
|
104 |
-
<th>Redirected</th>
|
105 |
-
</thead>
|
106 |
-
<tbody>
|
107 |
|
108 |
-
|
109 |
-
</table>
|
110 |
-
</div>
|
111 |
-
</div>
|
112 |
-
<hr>
|
113 |
-
<div id="lh_support">
|
114 |
-
<p>If you encounter any issues using the Link Checker please contact our <a href="mailto:support+wpel@webfactoryltd.com?subject=<?php echo rawurlencode(htmlspecialchars_decode('WPEL problems on ' . home_url())); ?>">Support team</a>.</p>
|
115 |
-
|
116 |
-
<p><b>We're in beta 🔥</b><br>
|
117 |
-
Before you continue reading, please note that this <b>service is in beta</b>. So all kind of problems are possible.<br>
|
118 |
-
But fear not! If anything is not working here's our <a href="mailto:support+wpel@webfactoryltd.com?subject=<?php echo rawurlencode(htmlspecialchars_decode('WPEL problems on ' . home_url())); ?>">direct support email</a> - ping us, please, so we can fix things.<br>
|
119 |
-
The service doesn't cost anything but the number of pages you can scan is limited while it's in beta.</p>
|
120 |
-
|
121 |
-
<p><b>What data am I sharing with you?</b><br>
|
122 |
-
Absolutely no data is taken directly from WP and shared with our service! No emails, no post lists, no post content, no links - nothing! We'll access your site just like any other visitor does and check links on every post. We'll only have access to thinks that are publically available - nothing else. Obviously, if you don't agree with this please don't use the service.</p>
|
123 |
-
|
124 |
-
<p><b>What are the benefits of using the Link Scanner?</b><br>
|
125 |
-
You can look at it as a broken link checker, but it's a lot more.<br>
|
126 |
-
After grabbing your sitemap the service will visit every page, post, product, and oder content listed on the sitemap and then check each link in that content. For each link it checks if it's alive, if it's redirect, what are its target and rel attributes. That way you can quickly check all the links on all of your pages in a matter of minutes and modify them.<br>
|
127 |
-
This is also a great way to check if the settings you applied in the plugin are working and properly applied on all links.</p>
|
128 |
-
|
129 |
-
<p><b>Will the Scanner slow down my site?</b><br>
|
130 |
-
It's designed not to. We carefully pace out all requests so that we don't create too much traffic/load on your site in a short period of time. While the scanner is not running it's not using any resources at all.</p>
|
131 |
-
|
132 |
-
<p><b>How long does a scan take?</b><br>
|
133 |
-
For a site with an average number of links - about two minutes. However that depends on the speed of your site, the speed of the sites you link to, and the total number of links on your site we need to check.</p>
|
134 |
-
</div>
|
135 |
-
<?php
|
136 |
-
}
|
137 |
-
?>
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Tab Link Scanner
|
4 |
*
|
5 |
* @package WPEL
|
6 |
* @category WordPress Plugin
|
13 |
*/
|
14 |
?>
|
15 |
|
16 |
+
<div id="wpel-link-rules">
|
17 |
+
<div class="notice-box-info">
|
18 |
+
<b>Link Checker (a PRO feature) scans your website's pages & analyzes all links.</b> It not only checks if links are valid, but also checks their details such as REL attributes (nofollow, dofollow, noopener, sponsored, ...) and checks if they are pointing to bad domains. Linking to domains that contain pornography, illegal downloads or that contain malware can hurt your site's SEO. Link Scanner will help you get rid of those links in minutes, regardless of your site size. <a href="#" class="open-pro-dialog" data-pro-feature="link-checker-banner">Get PRO now</a> to use the Link Checker.
|
|
|
|
|
|
|
19 |
</div>
|
20 |
|
21 |
+
<p><a href="#" class="open-pro-dialog" data-pro-feature="link-checker"><img style="max-width: 100%;" src="<?php echo plugins_url('/public/images/link-checker.png', WPEL_Plugin::get_plugin_file()); ?>" alt="Link checker" title="Link checker"></a></p>
|
22 |
+
|
23 |
+
<p><b>Will the Scanner help my SEO score?</b><br>
|
24 |
+
The Scanner is a reporting tool, so it doesn't modify any links on its own. However, it'll show you a list of broken and bad links that you have on your site. By removing those you can improve your SEO score.</p>
|
25 |
|
26 |
+
<p><b>Does the Scanner use my server's resources?</b><br>
|
27 |
+
No. It's a SaaS so the majority of work is done on our servers. The resources used are the same as if a visitor opened every page on your site.</p>
|
28 |
|
29 |
<p><b>What are the benefits of using the Link Scanner?</b><br>
|
30 |
You can look at it as a broken link checker, but it's a lot more.<br>
|
31 |
+
After grabbing your sitemap the scanner will visit every page, post, product, and other content listed on the sitemap and then check each link in that content. For each link it checks if it's alive, if it's redirect, what are its target and rel attributes as well as the site it links too. That way you can quickly check all the links on all of your pages and modify them if necessary.<br>
|
32 |
This is also a great way to check if the settings you applied in the plugin are working and properly applied on all links.</p>
|
33 |
|
34 |
<p><b>Will the Scanner slow down my site?</b><br>
|
35 |
It's designed not to. We carefully pace out all requests so that we don't create too much traffic/load on your site in a short period of time. While the scanner is not running it's not using any resources at all.</p>
|
36 |
|
37 |
<p><b>How long does a scan take?</b><br>
|
38 |
+
For a site with an average number of links - about two minutes. However that depends on the speed of your site, the speed of the sites you link to, and the total number of links on your site Link Checker has to check.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
|
40 |
+
<p><b>Wasn't this tool free before?</b><br>
|
41 |
+
It was free for a limited number of pages while it was in public beta.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
templates/partials/tab-contents/link-rules.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Tab Support
|
4 |
+
*
|
5 |
+
* @package WPEL
|
6 |
+
* @category WordPress Plugin
|
7 |
+
* @version 2.3
|
8 |
+
* @link https://www.webfactoryltd.com/
|
9 |
+
* @license Dual licensed under the MIT and GPLv2+ licenses
|
10 |
+
*
|
11 |
+
* @var array $vars
|
12 |
+
* @option array "tabs"
|
13 |
+
*/
|
14 |
+
?>
|
15 |
+
<div id="wpel-link-rules">
|
16 |
+
<div class="notice-box-info">
|
17 |
+
<b>Link rules (a PRO feature) provide unlimited flexibility</b> in creating rules based on link URL (href) values. Each rule defines how selected links are threated, what their target, rel, icon and other properties will be - <a href="#" class="show-link-rules">see how each rule is defined</a>. For complex sites, with a lot of different rules and exceptions this is a powerful tool that enables full control and modifications of any number of links. <a href="#" class="open-pro-dialog" data-pro-feature="link-rules-banner">Get PRO now</a> to use link rules.
|
18 |
+
</div>
|
19 |
+
|
20 |
+
<div id="link-rules-new" style="display: none;">
|
21 |
+
<img style="width: 900px;" src="<?php echo plugins_url('/public/images/link-rules-new.png', WPEL_Plugin::get_plugin_file()); ?>" alt="New link rule example" title="New link rule example">
|
22 |
+
</div>
|
23 |
+
|
24 |
+
<p><a href="#" class="open-pro-dialog" data-pro-feature="link-rules"><img style="max-width: 100%;" src="<?php echo plugins_url('/public/images/link-rules.png', WPEL_Plugin::get_plugin_file()); ?>" alt="Link rules example" title="Link rules example"></a></p>
|
25 |
+
|
26 |
+
</div>
|
templates/settings-page/main.php
CHANGED
@@ -51,6 +51,113 @@
|
|
51 |
endif;
|
52 |
?>
|
53 |
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
|
|
|
|
|
|
55 |
</div>
|
56 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
endif;
|
52 |
?>
|
53 |
</form>
|
54 |
+
</div>
|
55 |
+
<div class="wpel-container-right">
|
56 |
+
<div class="sidebar-box pro-ad-box">
|
57 |
+
<p class="text-center"><a href="#" data-pro-feature="sidebar-box-logo" class="open-pro-dialog">
|
58 |
+
<img src="<?php echo plugins_url('/public/images/logo.png', WPEL_Plugin::get_plugin_file()); ?>" alt="WP Links PRO" title="WP Links PRO"></a><br>PRO version is here! Grab the launch discount.<br><b>All prices are LIFETIME!</b></p>
|
59 |
+
<ul class="plain-list">
|
60 |
+
<li>Complete control over all links</li>
|
61 |
+
<li>Exit Confirmation for traffic & links protection</li>
|
62 |
+
<li>Scan & test all links with one click using our SaaS</li>
|
63 |
+
<li>Unlimited custom link rules for any group of links</li>
|
64 |
+
<li>Licenses & Sites Manager (remote SaaS dashboard)</li>
|
65 |
+
<li>White-label Mode</li>
|
66 |
+
<li>Complete Codeless Plugin Rebranding</li>
|
67 |
+
<li>Email support from plugin developers</li>
|
68 |
+
</ul>
|
69 |
+
|
70 |
+
<p class="text-center"><a href="#" class="open-pro-dialog button button-buy" data-pro-feature="sidebar-box">Get PRO Now</a></p>
|
71 |
+
</div>
|
72 |
|
73 |
+
<div class="sidebar-box" style="margin-top: 35px;">
|
74 |
+
<p>Please <a href="https://wordpress.org/support/plugin/wp-external-links/reviews/#new-post" target="_blank">rate the plugin ★★★★★</a> to <b>keep it up-to-date & maintained</b>. It only takes a second to rate. Thank you! 👋</p>
|
75 |
+
</div>
|
76 |
</div>
|
77 |
+
</div>
|
78 |
+
|
79 |
+
<div id="wpel-pro-dialog" style="display: none;" title="WP Links PRO is here!"><span class="ui-helper-hidden-accessible"><input type="text"/></span>
|
80 |
+
|
81 |
+
<div class="center logo"><a href="https://getwplinks.com/?ref=wpel-free-pricing-table" target="_blank"><img src="<?php echo plugins_url('/public/images/logo.png', WPEL_Plugin::get_plugin_file()); ?>" alt="WP Links PRO" title="WP Links PRO"></a><br>
|
82 |
+
|
83 |
+
<span>Limited PRO Launch Discount - <b>all prices are LIFETIME</b>! Pay once & use forever!</span>
|
84 |
+
</div>
|
85 |
+
|
86 |
+
<table id="wpel-pro-table">
|
87 |
+
<tr>
|
88 |
+
<td class="center">Lifetime Personal License</td>
|
89 |
+
<td class="center">Lifetime Team License</td>
|
90 |
+
<td class="center">Lifetime Agency License</td>
|
91 |
+
</tr>
|
92 |
+
|
93 |
+
<tr class="prices">
|
94 |
+
<td class="center"><del>$79 /year</del><br><span>$59</span> <b>/lifetime</b></td>
|
95 |
+
<td class="center"><del>$159 /year</del><br><span>$69</span> <b>/lifetime</b></td>
|
96 |
+
<td class="center"><del>$299 /year</del><br><span>$119</span> <b>/lifetime</b></td>
|
97 |
+
</tr>
|
98 |
+
|
99 |
+
<tr>
|
100 |
+
<td><span class="dashicons dashicons-yes"></span><b>1 Site License</b></td>
|
101 |
+
<td><span class="dashicons dashicons-yes"></span><b>5 Sites License</b></td>
|
102 |
+
<td><span class="dashicons dashicons-yes"></span><b>100 Sites License</b></td>
|
103 |
+
</tr>
|
104 |
+
|
105 |
+
<tr>
|
106 |
+
<td><span class="dashicons dashicons-yes"></span>All Plugin Features</td>
|
107 |
+
<td><span class="dashicons dashicons-yes"></span>All Plugin Features</td>
|
108 |
+
<td><span class="dashicons dashicons-yes"></span>All Plugin Features</td>
|
109 |
+
</tr>
|
110 |
+
|
111 |
+
<tr>
|
112 |
+
<td><span class="dashicons dashicons-yes"></span>Lifetime Updates & Support</td>
|
113 |
+
<td><span class="dashicons dashicons-yes"></span>Lifetime Updates & Support</td>
|
114 |
+
<td><span class="dashicons dashicons-yes"></span>Lifetime Updates & Support</td>
|
115 |
+
</tr>
|
116 |
+
|
117 |
+
<tr>
|
118 |
+
<td><span class="dashicons dashicons-yes"></span>Link Scanner (300 scan credits)</td>
|
119 |
+
<td><span class="dashicons dashicons-yes"></span>Link Scanner (2,000 scan credits)</td>
|
120 |
+
<td><span class="dashicons dashicons-yes"></span>Link Scanner (6,000 scan credits)</td>
|
121 |
+
</tr>
|
122 |
+
|
123 |
+
<tr>
|
124 |
+
<td><span class="dashicons dashicons-yes"></span>Custom Link Rules</td>
|
125 |
+
<td><span class="dashicons dashicons-yes"></span>Custom Link Rules</td>
|
126 |
+
<td><span class="dashicons dashicons-yes"></span>Custom Link Rules</td>
|
127 |
+
</tr>
|
128 |
+
|
129 |
+
<tr>
|
130 |
+
<td><span class="dashicons dashicons-yes"></span>Exit Confirmation Links Protection</td>
|
131 |
+
<td><span class="dashicons dashicons-yes"></span>Exit Confirmation Links Protection</td>
|
132 |
+
<td><span class="dashicons dashicons-yes"></span>Exit Confirmation Links Protection</td>
|
133 |
+
</tr>
|
134 |
+
|
135 |
+
<tr>
|
136 |
+
<td><span class="dashicons dashicons-no"></span>Licenses & Sites Manager</td>
|
137 |
+
<td><span class="dashicons dashicons-yes"></span>Licenses & Sites Manager</td>
|
138 |
+
<td><span class="dashicons dashicons-yes"></span>Licenses & Sites Manager</td>
|
139 |
+
</tr>
|
140 |
+
|
141 |
+
<tr>
|
142 |
+
<td><span class="dashicons dashicons-no"></span>White-label Mode</td>
|
143 |
+
<td><span class="dashicons dashicons-yes"></span>White-label Mode</td>
|
144 |
+
<td><span class="dashicons dashicons-yes"></span>White-label Mode</td>
|
145 |
+
</tr>
|
146 |
+
|
147 |
+
<tr>
|
148 |
+
<td><span class="dashicons dashicons-no"></span>Full Plugin Rebranding</td>
|
149 |
+
<td><span class="dashicons dashicons-no"></span>Full Plugin Rebranding</td>
|
150 |
+
<td><span class="dashicons dashicons-yes"></span>Full Plugin Rebranding</td>
|
151 |
+
</tr>
|
152 |
+
|
153 |
+
<tr>
|
154 |
+
<td><a class="button button-buy" data-href-org="https://getwplinks.com/buy/?product=personal-launch&ref=pricing-table" href="https://getwplinks.com/buy/?product=personal-launch&ref=pricing-table" target="_blank">Lifetime License<br>$59 -> BUY NOW</a>
|
155 |
+
<br>or <a class="button-buy" data-href-org="https://getwplinks.com/buy/?product=personal-monthly&ref=pricing-table" href="https://getwplinks.com/buy/?product=personal-monthly&ref=pricing-table" target="_blank">only $8.99 <small>/month</small></a></td>
|
156 |
+
<td><a class="button button-buy" data-href-org="https://getwplinks.com/buy/?product=team-launch&ref=pricing-table" href="https://getwplinks.com/buy/?product=team-launch&ref=pricing-table" target="_blank">Lifetime License<br>$69 -> BUY NOW</a></td>
|
157 |
+
<td><a class="button button-buy" data-href-org="https://getwplinks.com/buy/?product=agency-launch&ref=pricing-table" href="https://getwplinks.com/buy/?product=agency-launch&ref=pricing-table" target="_blank">Lifetime License<br>$119 -> BUY NOW</a></td>
|
158 |
+
</tr>
|
159 |
+
|
160 |
+
</table>
|
161 |
+
|
162 |
+
<div class="center footer"><b>100% No-Risk Money Back Guarantee!</b> If you don\'t like the plugin over the next 7 days, we will happily refund 100% of your money. No questions asked! Payments are processed by our merchant of records - <a href="https://paddle.com/" target="_blank">Paddle</a>.</div>
|
163 |
+
</div>
|
templates/settings-page/tab-contents/exit-confirmation.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Tab Exit Confirmation Links
|
4 |
+
*
|
5 |
+
* @package WPEL
|
6 |
+
* @category WordPress Plugin
|
7 |
+
* @version 2.3
|
8 |
+
* @link https://www.webfactoryltd.com/
|
9 |
+
* @license Dual licensed under the MIT and GPLv2+ licenses
|
10 |
+
*
|
11 |
+
* @var array $vars
|
12 |
+
* @option array "tabs"
|
13 |
+
* @option string "current_tab"
|
14 |
+
*/
|
15 |
+
|
16 |
+
echo '<div class="notice-box-info">
|
17 |
+
<b>Exit Confirmation (a PRO feature) protects your traffic & visitors</b> by alerting them when they\'re about to leave your site. Since you don\'t control content on 3rd party sites it\'s a good practice to warn visitors they\'re leaving the safety of your site. Doing that will also bring you more traffic as visitors will spend more time on your site. <a href="#" class="open-pro-dialog" data-pro-feature="exit-confirmation-banner">Get PRO now</a> to use the Exit Confirmation feature.
|
18 |
+
</div>';
|
19 |
+
|
20 |
+
$default_fields_file = WPEL_Plugin::get_plugin_dir( '/templates/partials/tab-contents/fields-default.php' );
|
21 |
+
WPEL_Plugin::show_template( $default_fields_file, $vars );
|
22 |
+
|
23 |
+
echo '<br><a href="#" class="open-pro-dialog button button-primary" data-pro-feature="exit-confirmation">Save Changes</a>';
|
wf-flyout/config.php
CHANGED
@@ -12,6 +12,8 @@ $config['menu_accent_color'] = '#dd3036';
|
|
12 |
$config['custom_css'] = '#wf-flyout .wff-menu-item .dashicons.dashicons-universal-access { font-size: 30px; padding: 0px 10px 0px 0; } #wf-flyout .ucp-icon .wff-icon img { max-width: 70%; } #wf-flyout .ucp-icon .wff-icon { line-height: 57px; }';
|
13 |
|
14 |
$config['menu_items'] = array(
|
|
|
|
|
15 |
array('href' => 'https://wpreset.com/?ref=wff-wpel', 'target' => '_blank', 'label' => 'Get WP Reset PRO with 50% off', 'icon' => 'wp-reset.png'),
|
16 |
array('href' => 'https://underconstructionpage.com/?ref=wff-wpel&coupon=welcome', 'target' => '_blank', 'label' => 'Create the perfect Under Construction Page', 'icon' => 'ucp.png', 'class' => 'ucp-icon'),
|
17 |
array('href' => 'https://wpsticky.com/?ref=wff-wpel', 'target' => '_blank', 'label' => 'Make a menu sticky with WP Sticky', 'icon' => 'dashicons-admin-post'),
|
12 |
$config['custom_css'] = '#wf-flyout .wff-menu-item .dashicons.dashicons-universal-access { font-size: 30px; padding: 0px 10px 0px 0; } #wf-flyout .ucp-icon .wff-icon img { max-width: 70%; } #wf-flyout .ucp-icon .wff-icon { line-height: 57px; }';
|
13 |
|
14 |
$config['menu_items'] = array(
|
15 |
+
array('href' => 'https://wpforcessl.com/?ref=wff-wpel', 'label' => 'Fix all SSL problems & monitor site in real-time', 'icon' => 'wp-ssl.png', 'class' => 'wpfssl-icon'),
|
16 |
+
array('href' => 'https://wp301redirects.com/?ref=wff-wpel&coupon=50off', 'label' => 'Get WP 301 Redirects PRO with 50% off', 'icon' => '301-logo.png', 'class' => 'wp301-icon'),
|
17 |
array('href' => 'https://wpreset.com/?ref=wff-wpel', 'target' => '_blank', 'label' => 'Get WP Reset PRO with 50% off', 'icon' => 'wp-reset.png'),
|
18 |
array('href' => 'https://underconstructionpage.com/?ref=wff-wpel&coupon=welcome', 'target' => '_blank', 'label' => 'Create the perfect Under Construction Page', 'icon' => 'ucp.png', 'class' => 'ucp-icon'),
|
19 |
array('href' => 'https://wpsticky.com/?ref=wff-wpel', 'target' => '_blank', 'label' => 'Make a menu sticky with WP Sticky', 'icon' => 'dashicons-admin-post'),
|
wf-flyout/icons/301-logo.png
ADDED
Binary file
|
wf-flyout/icons/wp-ssl.png
ADDED
Binary file
|
wf-flyout/icons/wpel.png
CHANGED
Binary file
|
wf-flyout/wf-flyout.css
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
/**
|
2 |
* Universal fly-out menu for WebFactory plugins
|
3 |
-
* (c) WebFactory Ltd,
|
4 |
*/
|
5 |
|
6 |
#wf-flyout {
|
1 |
/**
|
2 |
* Universal fly-out menu for WebFactory plugins
|
3 |
+
* (c) WebFactory Ltd, 2022
|
4 |
*/
|
5 |
|
6 |
#wf-flyout {
|
wf-flyout/wf-flyout.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
/**
|
2 |
* Universal fly-out menu for WebFactory plugins
|
3 |
-
* (c) WebFactory Ltd,
|
4 |
*/
|
5 |
|
6 |
jQuery(document).ready(function ($) {
|
1 |
/**
|
2 |
* Universal fly-out menu for WebFactory plugins
|
3 |
+
* (c) WebFactory Ltd, 2022
|
4 |
*/
|
5 |
|
6 |
jQuery(document).ready(function ($) {
|
wf-flyout/wf-flyout.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Universal fly-out menu for WebFactory plugins
|
4 |
-
* (c) WebFactory Ltd,
|
5 |
*/
|
6 |
|
7 |
|
1 |
<?php
|
2 |
/**
|
3 |
* Universal fly-out menu for WebFactory plugins
|
4 |
+
* (c) WebFactory Ltd, 2022
|
5 |
*/
|
6 |
|
7 |
|
wp-external-links.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: WP External Links
|
4 |
-
* Version: 2.
|
5 |
* Plugin URI: https://wordpress.org/plugins/wp-external-links/
|
6 |
-
* Description:
|
7 |
* Author: WebFactory Ltd
|
8 |
* Author URI: https://www.webfactoryltd.com/
|
9 |
* License: Dual licensed under the MIT and GPLv2+ licenses
|
@@ -22,7 +22,9 @@ if ( ! function_exists( 'wpel_init' ) ):
|
|
22 |
die();
|
23 |
}
|
24 |
|
25 |
-
define(
|
|
|
|
|
26 |
|
27 |
$plugin_file = defined( 'TEST_WPEL_PLUGIN_FILE' ) ? TEST_WPEL_PLUGIN_FILE : __FILE__;
|
28 |
$plugin_dir = dirname( __FILE__ );
|
@@ -70,15 +72,13 @@ if ( ! function_exists( 'wpel_init' ) ):
|
|
70 |
*/
|
71 |
global $wpdb;
|
72 |
WPEL_Activation::create( $plugin_file, $wpdb );
|
|
|
73 |
WPEL_Uninstall::create( $plugin_file, $wpdb );
|
74 |
|
75 |
/**
|
76 |
* Set plugin vars
|
77 |
*/
|
78 |
WPEL_Plugin::create( $plugin_file, $plugin_dir );
|
79 |
-
|
80 |
-
WPEL_LinkHero::create( $plugin_file, $plugin_dir );
|
81 |
-
|
82 |
}
|
83 |
|
84 |
wpel_init();
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: WP External Links
|
4 |
+
* Version: 2.55
|
5 |
* Plugin URI: https://wordpress.org/plugins/wp-external-links/
|
6 |
+
* Description: Open external links in a new tab or window, control "nofollow" and "noopener", set font icon; SEO friendly.
|
7 |
* Author: WebFactory Ltd
|
8 |
* Author URI: https://www.webfactoryltd.com/
|
9 |
* License: Dual licensed under the MIT and GPLv2+ licenses
|
22 |
die();
|
23 |
}
|
24 |
|
25 |
+
define('TEST_WPEL_PLUGIN_FILE', __FILE__);
|
26 |
+
define('WPEL_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
27 |
+
define('WPEL_PLUGIN_URL', plugin_dir_url(__FILE__));
|
28 |
|
29 |
$plugin_file = defined( 'TEST_WPEL_PLUGIN_FILE' ) ? TEST_WPEL_PLUGIN_FILE : __FILE__;
|
30 |
$plugin_dir = dirname( __FILE__ );
|
72 |
*/
|
73 |
global $wpdb;
|
74 |
WPEL_Activation::create( $plugin_file, $wpdb );
|
75 |
+
WPEL_Deactivate::create( $plugin_file, $wpdb );
|
76 |
WPEL_Uninstall::create( $plugin_file, $wpdb );
|
77 |
|
78 |
/**
|
79 |
* Set plugin vars
|
80 |
*/
|
81 |
WPEL_Plugin::create( $plugin_file, $plugin_dir );
|
|
|
|
|
|
|
82 |
}
|
83 |
|
84 |
wpel_init();
|