PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Admin / Asset / Script / SettingsFactory.php
codepress-admin-columns / classes / Admin / Asset / Script Last commit date
SettingsFactory.php 3 days ago
SettingsFactory.php
175 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Admin\Asset\Script;
6
7 use AC\AdminColumns;
8 use AC\Asset\Location;
9 use AC\Asset\Script;
10 use AC\Asset\Script\Localize\Translation;
11 use AC\Form\NonceFactory;
12 use AC\Type\StartingPrice;
13 use AC\Type\Url\Site;
14 use AC\Type\Url\UtmTags;
15
16 final class SettingsFactory
17 {
18 public const HANDLE = 'ac-admin-page-settings';
19
20 private Location $location;
21
22 private bool $is_pro_active;
23
24 public function __construct(AdminColumns $plugins, bool $is_pro_active)
25 {
26 $this->location = $plugins->get_location();
27 $this->is_pro_active = $is_pro_active;
28 }
29
30 private function get_feature_groups(): array
31 {
32 return [
33 [
34 'title' => __('Edit faster', 'codepress-admin-columns'),
35 'features' => [
36 [
37 'label' => __('Inline editing', 'codepress-admin-columns'),
38 'tooltip' => __('Edit any value directly from the list table - no need to open individual items.', 'codepress-admin-columns'),
39 ],
40 [
41 'label' => __('Bulk editing', 'codepress-admin-columns'),
42 'tooltip' => __('Update hundreds of values at once. Select rows, pick a column, and apply changes in bulk.', 'codepress-admin-columns'),
43 ],
44 [
45 'label' => __('Add rows from the table', 'codepress-admin-columns'),
46 'tooltip' => __('Create new posts, users, or other content without leaving the list table.', 'codepress-admin-columns'),
47 ],
48 [
49 'label' => __('Conditional formatting', 'codepress-admin-columns'),
50 'tooltip' => __('Apply color rules to cells so you can instantly spot trends, deadlines, or issues in your data.', 'codepress-admin-columns'),
51 ],
52 ],
53 ],
54 [
55 'title' => __('Find anything instantly', 'codepress-admin-columns'),
56 'features' => [
57 [
58 'label' => __('Smart filters', 'codepress-admin-columns'),
59 'tooltip' => __('Narrow down your list with advanced filter rules - combine conditions to find exactly what you need.', 'codepress-admin-columns'),
60 ],
61 [
62 'label' => __('Sortable columns', 'codepress-admin-columns'),
63 'tooltip' => __('Click any column header to sort your list by that value - works with dates, numbers, text, and more.', 'codepress-admin-columns'),
64 ],
65 [
66 'label' => __('Sticky headers', 'codepress-admin-columns'),
67 'tooltip' => __('Column headers stay visible as you scroll, so you always know what you are looking at.', 'codepress-admin-columns'),
68 ],
69 [
70 'label' => __('Column metrics', 'codepress-admin-columns'),
71 'tooltip' => __('See totals, averages, and counts at the bottom of your columns for quick data insights.', 'codepress-admin-columns'),
72 ],
73 ],
74 ],
75 [
76 'title' => __('Work your way', 'codepress-admin-columns'),
77 'features' => [
78 [
79 'label' => __('Multiple table views', 'codepress-admin-columns'),
80 'tooltip' => __('Create different column layouts for different tasks and switch between them with one click.', 'codepress-admin-columns'),
81 ],
82 [
83 'label' => __('Export table to CSV', 'codepress-admin-columns'),
84 'tooltip' => __('Download your current view as a CSV file - ready for Excel, Google Sheets, or any other tool.', 'codepress-admin-columns'),
85 ],
86 [
87 'label' => __('Horizontal scrolling', 'codepress-admin-columns'),
88 'tooltip' => __('Display as many columns as you need - scroll sideways to see them all without losing row context.', 'codepress-admin-columns'),
89 ],
90 [
91 'label' => __('Integration add-ons', 'codepress-admin-columns'),
92 'tooltip' => __('Unlock columns for popular plugins like ACF, WooCommerce, Yoast SEO, and more.', 'codepress-admin-columns'),
93 ],
94 ],
95 ],
96 ];
97 }
98
99 public function create(): Script
100 {
101 $translations = [
102 'settings' => __('Settings', 'codepress-admin-columns'),
103 'general_settings' => __('General Settings', 'codepress-admin-columns'),
104 'general_settings_description' => __('These settings affect the list table.', 'codepress-admin-columns'),
105
106 'show_x_button' => __("Show %s button on table screen.", 'codepress-admin-columns'),
107 'edit_button' => __('Edit columns', 'codepress-admin-columns'),
108
109 'restore_settings' => __('Restore settings', 'codepress-admin-columns'),
110 'restore_settings_description' => __(
111 'Delete all column settings and restore the default settings.',
112 'codepress-admin-columns'
113 ),
114 'settings_saved_successful' => __('Settings saved successfully.', 'codepress-admin-columns'),
115 'restore_settings_warning' => __(
116 "Warning! ALL saved admin columns data will be deleted. This cannot be undone. 'OK' to delete, 'Cancel' to stop",
117 'codepress-admin-columns'
118 ),
119 ];
120
121 $nonce = NonceFactory::create_ajax();
122
123 $upgrade_url = (new UtmTags(Site::create_admin_columns_pro(), 'settings'))->get_url();
124
125 $script = new Script(
126 self::HANDLE,
127 $this->location->with_suffix('assets/js/admin-page-settings.js'),
128 [
129 Script\GlobalTranslationFactory::HANDLE,
130 ]
131 );
132 $script
133 ->localize('ac_settings_i18n', Translation::create($translations))
134 ->add_inline_variable('ac_settings', [
135 $nonce->get_name() => $nonce->create(),
136 'assets' => $this->location->with_suffix('assets')->get_url(),
137 'is_pro' => $this->is_pro_active,
138 'upgrade_panel' => $this->is_pro_active
139 ? null
140 : [
141 'upgrade_url' => $upgrade_url,
142 'badge' => __('Admin Columns Pro', 'codepress-admin-columns'),
143 'title' => __('Work faster in your list tables', 'codepress-admin-columns'),
144 'subtitle' => __(
145 'Turn your list tables into a powerful workflow tool for editing, filtering, sorting, and exporting content.',
146 'codepress-admin-columns'
147 ),
148 'button' => sprintf(
149 '%s - %s',
150 __('Upgrade', 'codepress-admin-columns'),
151 sprintf(
152 /* translators: %s: price (e.g. $79) */
153 __('from %s/year', 'codepress-admin-columns'),
154 StartingPrice::get()
155 )
156 ),
157 'view_all' => __('See all Pro features', 'codepress-admin-columns'),
158 'trust' => sprintf(
159 '%s · %s',
160 sprintf(
161 /* translators: %s: number of sites (e.g. 250,000+) */
162 __('%s sites', 'codepress-admin-columns'),
163 '250,000+'
164 ),
165 __('30-day money-back guarantee', 'codepress-admin-columns')
166 ),
167 'feature_groups' => $this->get_feature_groups(),
168 ],
169 ]);
170
171 return $script;
172 }
173
174 }
175