PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.44
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.44
51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 All 40 releases
king-addons / includes / extensions / Activity_Log / templates / admin-page.php

admin-page.php in King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder 51.1.44, at includes/extensions/Activity_Log/templates/admin-page.php

140 lines 5.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Activity Log admin page.
4 *
5 * @package King_Addons
6 */
7
8 if (!defined('ABSPATH')) {
9 exit;
10 }
11
12 $theme_mode = get_user_meta(get_current_user_id(), 'king_addons_theme_mode', true);
13 $allowed_theme_modes = ['dark', 'light', 'auto'];
14 if (!in_array($theme_mode, $allowed_theme_modes, true)) {
15 $theme_mode = 'dark';
16 }
17
18 $tabs = [
19 'dashboard' => [
20 'label' => esc_html__('Dashboard', 'king-addons'),
21 'icon' => 'dashicons-chart-area',
22 ],
23 'logs' => [
24 'label' => esc_html__('Logs', 'king-addons'),
25 'icon' => 'dashicons-clipboard',
26 ],
27 'alerts' => [
28 'label' => esc_html__('Alerts', 'king-addons'),
29 'icon' => 'dashicons-warning',
30 ],
31 'settings' => [
32 'label' => esc_html__('Settings', 'king-addons'),
33 'icon' => 'dashicons-admin-generic',
34 ],
35 'export' => [
36 'label' => esc_html__('Export', 'king-addons'),
37 'icon' => 'dashicons-download',
38 ],
39 'tools' => [
40 'label' => esc_html__('Tools', 'king-addons'),
41 'icon' => 'dashicons-admin-tools',
42 ],
43 ];
44
45 $base_url = admin_url('admin.php?page=king-addons-activity-log');
46 $current_view = array_key_exists($view, $tabs) ? $view : 'dashboard';
47
48 $message_code = isset($_GET['message']) ? sanitize_key($_GET['message']) : '';
49 $messages = [
50 'saved' => esc_html__('Settings saved.', 'king-addons'),
51 'alerts_saved' => esc_html__('Alert settings saved.', 'king-addons'),
52 'purged' => esc_html__('Old logs purged.', 'king-addons'),
53 'error_export' => esc_html__('Export failed.', 'king-addons'),
54 ];
55 $has_message = $message_code !== '' && isset($messages[$message_code]);
56 $is_error_message = strpos($message_code, 'error_') === 0;
57
58 $logging_enabled = !empty($settings['enabled']);
59 ?>
60
61 <script>
62 document.body.classList.add('ka-admin-v3');
63 (function() {
64 const mode = '<?php echo esc_js($theme_mode); ?>';
65 const mql = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
66 const isDark = mode === 'auto' ? !!(mql && mql.matches) : mode === 'dark';
67 document.documentElement.classList.toggle('ka-v3-dark', isDark);
68 document.body.classList.toggle('ka-v3-dark', isDark);
69 })();
70 </script>
71
72 <div class="ka-admin-wrap kng-activity-admin">
73 <div class="ka-admin-header">
74 <div class="ka-admin-header-left">
75 <div class="ka-admin-header-icon blue">
76 <span class="dashicons dashicons-shield-alt"></span>
77 </div>
78 <div>
79 <h1 class="ka-admin-title"><?php esc_html_e('Activity Log', 'king-addons'); ?></h1>
80 <p class="ka-admin-subtitle"><?php esc_html_e('Audit critical actions across your WordPress site in Apple-inspired clarity.', 'king-addons'); ?></p>
81 </div>
82 </div>
83 <div class="ka-admin-header-actions">
84 <span class="ka-status <?php echo $logging_enabled ? 'ka-status-enabled' : 'ka-status-disabled'; ?>">
85 <span class="ka-status-dot"></span>
86 <?php echo $logging_enabled ? esc_html__('Logging On', 'king-addons') : esc_html__('Logging Off', 'king-addons'); ?>
87 </span>
88 <div class="ka-v3-segmented" id="ka-v3-theme-segment" role="radiogroup" aria-label="Theme" data-active="<?php echo esc_attr($theme_mode); ?>">
89 <span class="ka-v3-segmented-indicator" aria-hidden="true"></span>
90 <button type="button" class="ka-v3-segmented-btn" data-theme="light" aria-pressed="<?php echo $theme_mode === 'light' ? 'true' : 'false'; ?>"><?php esc_html_e('Light', 'king-addons'); ?></button>
91 <button type="button" class="ka-v3-segmented-btn" data-theme="dark" aria-pressed="<?php echo $theme_mode === 'dark' ? 'true' : 'false'; ?>"><?php esc_html_e('Dark', 'king-addons'); ?></button>
92 <button type="button" class="ka-v3-segmented-btn" data-theme="auto" aria-pressed="<?php echo $theme_mode === 'auto' ? 'true' : 'false'; ?>"><?php esc_html_e('Auto', 'king-addons'); ?></button>
93 </div>
94 <a href="<?php echo esc_url(add_query_arg(['view' => 'logs'], $base_url)); ?>" class="ka-btn ka-btn-primary">
95 <span class="dashicons dashicons-clipboard"></span>
96 <?php esc_html_e('View Logs', 'king-addons'); ?>
97 </a>
98 </div>
99 </div>
100
101 <div class="ka-tabs kng-activity-tabs">
102 <?php foreach ($tabs as $key => $tab) : ?>
103 <a class="ka-tab <?php echo $current_view === $key ? 'active' : ''; ?>" href="<?php echo esc_url(add_query_arg(['view' => $key], $base_url)); ?>">
104 <span class="dashicons <?php echo esc_attr($tab['icon']); ?>"></span>
105 <?php echo esc_html($tab['label']); ?>
106 </a>
107 <?php endforeach; ?>
108 </div>
109
110 <?php if ($has_message) : ?>
111 <div class="ka-alert <?php echo $is_error_message ? 'ka-alert-error' : ''; ?>">
112 <span class="dashicons <?php echo $is_error_message ? 'dashicons-warning' : 'dashicons-yes'; ?>"></span>
113 <?php echo esc_html($messages[$message_code]); ?>
114 </div>
115 <?php endif; ?>
116
117 <?php
118 switch ($current_view) {
119 case 'logs':
120 include __DIR__ . '/view-logs.php';
121 break;
122 case 'alerts':
123 include __DIR__ . '/view-alerts.php';
124 break;
125 case 'settings':
126 include __DIR__ . '/view-settings.php';
127 break;
128 case 'export':
129 include __DIR__ . '/view-export.php';
130 break;
131 case 'tools':
132 include __DIR__ . '/view-tools.php';
133 break;
134 default:
135 include __DIR__ . '/view-dashboard.php';
136 break;
137 }
138 ?>
139 </div>
140