Passed
Push — master ( ea4f63...197c27 )
by Paul
20:35 queued 09:52
created

ToolsController::changeConsoleLevelAjax()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 3
c 0
b 0
f 0
dl 0
loc 5
ccs 0
cts 4
cp 0
rs 10
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Controllers;
4
5
use GeminiLabs\SiteReviews\Commands\ChangeLogLevel;
6
use GeminiLabs\SiteReviews\Commands\ImportReviews;
7
use GeminiLabs\SiteReviews\Commands\ImportSettings;
8
use GeminiLabs\SiteReviews\Database;
9
use GeminiLabs\SiteReviews\Database\CountManager;
10
use GeminiLabs\SiteReviews\Database\OptionManager;
11
use GeminiLabs\SiteReviews\Database\SqlSchema;
12
use GeminiLabs\SiteReviews\Helper;
13
use GeminiLabs\SiteReviews\Modules\Console;
14
use GeminiLabs\SiteReviews\Modules\Html\Builder;
15
use GeminiLabs\SiteReviews\Modules\Migrate;
16
use GeminiLabs\SiteReviews\Modules\Notice;
17
use GeminiLabs\SiteReviews\Modules\Queue;
18
use GeminiLabs\SiteReviews\Modules\SystemInfo;
19
use GeminiLabs\SiteReviews\Request;
20
use GeminiLabs\SiteReviews\Role;
21
22
class ToolsController extends Controller
23
{
24
    /**
25
     * @return void
26
     * @action site-reviews/route/admin/console-level
27
     */
28
    public function changeConsoleLevel(Request $request)
29
    {
30
        $this->execute(new ChangeLogLevel($request));
31
    }
32
33
    /**
34
     * @return void
35
     * @action site-reviews/route/admin/console-level
36
     */
37
    public function changeConsoleLevelAjax(Request $request)
38
    {
39
        $this->changeConsoleLevel($request);
40
        wp_send_json_success([
41
            'notices' => glsr(Notice::class)->get(),
42
        ]);
43
    }
44
45
    /**
46
     * @return void
47
     * @action site-reviews/route/admin/clear-console
48
     */
49
    public function clearConsole()
50
    {
51
        glsr(Console::class)->clear();
52
        glsr(Notice::class)->addSuccess(_x('Console cleared.', 'admin-text', 'site-reviews'));
53
    }
54
55
    /**
56
     * @return void
57
     * @action site-reviews/route/ajax/clear-console
58
     */
59
    public function clearConsoleAjax()
60
    {
61
        $this->clearConsole();
62
        wp_send_json_success([
63
            'console' => glsr(Console::class)->get(),
64
            'notices' => glsr(Notice::class)->get(),
65
        ]);
66
    }
67
68
    /**
69
     * @return void
70
     * @action site-reviews/route/admin/convert-table-engine
71
     */
72
    public function convertTableEngine(Request $request)
73
    {
74
        $result = glsr(SqlSchema::class)->convertTableEngine($request->table);
75
        if (true === $result) {
76
            glsr(Notice::class)->addSuccess(
77
                sprintf(_x('The <code>%s</code> table was successfully converted to InnoDB.', 'admin-text', 'site-reviews'), $request->table)
78
            );
79
        }
80
        if (false === $result) {
81
            glsr(Notice::class)->addError(
82
                sprintf(_x('The <code>%s</code> table could not be converted to InnoDB.', 'admin-text', 'site-reviews'), $request->table)
83
            );
84
        }
85
        if (-1 === $result) {
86
            glsr(Notice::class)->addWarning(
87
                sprintf(_x('The <code>%s</code> table was not found in the database.', 'admin-text', 'site-reviews'), $request->table)
88
            );
89
        }
90
    }
91
92
    /**
93
     * @return void
94
     * @action site-reviews/route/ajax/convert-table-engine
95
     */
96
    public function convertTableEngineAjax(Request $request)
97
    {
98
        $this->convertTableEngine($request);
99
        wp_send_json_success([
100
            'notices' => glsr(Notice::class)->get(),
101
        ]);
102
    }
103
104
    /**
105
     * @return void
106
     * @action site-reviews/route/admin/detect-ip-address
107
     */
108
    public function detectIpAddress()
109
    {
110
        $link = glsr(Builder::class)->a([
111
            'data-expand' => '#faq-ipaddress-incorrectly-detected',
112
            'href' => glsr_admin_url('documentation', 'faq'),
113
            'text' => _x('FAQ', 'admin-text', 'site-reviews'),
114
        ]);
115
        if ('unknown' === $ipAddress = Helper::getIpAddress()) {
116
            glsr(Notice::class)->addWarning(sprintf(
117
                _x('Site Reviews was unable to detect an IP address. To fix this, please see the %s.', 'admin-text', 'site-reviews'),
118
                $link
119
            ));
120
        } else {
121
            glsr(Notice::class)->addSuccess(sprintf(
122
                _x('Your detected IP address is %s. If this looks incorrect, please see the %s.', 'admin-text', 'site-reviews'),
123
                '<code>'.$ipAddress.'</code>', $link
124
            ));
125
        }
126
    }
127
128
    /**
129
     * @return void
130
     * @action site-reviews/route/ajax/detect-ip-address
131
     */
132
    public function detectIpAddressAjax()
133
    {
134
        $this->detectIpAddress();
135
        wp_send_json_success([
136
            'notices' => glsr(Notice::class)->get(),
137
        ]);
138
    }
139
140
    /**
141
     * @return void
142
     * @action site-reviews/route/admin/download-console
143
     */
144
    public function downloadConsole()
145
    {
146
        $this->download(glsr()->id.'-console.txt', glsr(Console::class)->get());
147
    }
148
149
    /**
150
     * @return void
151
     * @action site-reviews/route/admin/download-system-info
152
     */
153
    public function downloadSystemInfo()
154
    {
155
        $this->download(glsr()->id.'-system-info.txt', glsr(SystemInfo::class)->get());
156
    }
157
158
    /**
159
     * @return void
160
     * @action site-reviews/route/admin/export-settings
161
     */
162
    public function exportSettings()
163
    {
164
        $this->download(glsr()->id.'-settings.json', glsr(OptionManager::class)->json());
165
    }
166
167
    /**
168
     * @return void
169
     * @action site-reviews/route/admin/fetch-console
170
     */
171
    public function fetchConsole()
172
    {
173
        glsr(Notice::class)->addSuccess(_x('Console reloaded.', 'admin-text', 'site-reviews'));
174
    }
175
176
    /**
177
     * @return void
178
     * @action site-reviews/route/ajax/fetch-console
179
     */
180
    public function fetchConsoleAjax()
181
    {
182
        $this->fetchConsole();
183
        wp_send_json_success([
184
            'console' => glsr(Console::class)->getRaw(), // we don't need to esc_html here
185
            'notices' => glsr(Notice::class)->get(),
186
        ]);
187
    }
188
189
    /**
190
     * @return void
191
     * @action site-reviews/route/admin/import-reviews
192
     */
193
    public function importReviews(Request $request)
194
    {
195
        $this->execute(new ImportReviews($request));
196
    }
197
198
    /**
199
     * @return void
200
     * @action site-reviews/route/admin/import-settings
201
     */
202
    public function importSettings()
203
    {
204
        $this->execute(new ImportSettings());
205
    }
206
207
    /**
208
     * @return void
209
     * @action site-reviews/route/admin/migrate-plugin
210
     */
211
    public function migratePlugin(Request $request)
212
    {
213
        glsr(Queue::class)->cancelAll('queue/migration');
214
        if (wp_validate_boolean($request->alt)) {
215
            glsr(Migrate::class)->runAll();
216
            glsr(Notice::class)->clear()->addSuccess(_x('All plugin migrations have been run successfully, please reload the page.', 'admin-text', 'site-reviews'));
217
        } else {
218
            glsr(Migrate::class)->run();
219
            glsr(Notice::class)->clear()->addSuccess(_x('The plugin has been migrated sucessfully, please reload the page.', 'admin-text', 'site-reviews'));
220
        }
221
    }
222
223
    /**
224
     * @return void
225
     * @action site-reviews/route/ajax/migrate-plugin
226
     */
227
    public function migratePluginAjax(Request $request)
228
    {
229
        $this->migratePlugin($request);
230
        wp_send_json_success([
231
            'notices' => glsr(Notice::class)->get(),
232
        ]);
233
    }
234
235
    /**
236
     * @return void
237
     * @action site-reviews/route/admin/repair-review-relations
238
     */
239
    public function repairReviewRelations()
240
    {
241
        glsr(Database::class)->deleteInvalidReviews();
242
        glsr(Notice::class)->clear()->addSuccess(_x('The review relationships have been repaired.', 'admin-text', 'site-reviews'));
243
    }
244
245
    /**
246
     * @return void
247
     * @action site-reviews/route/ajax/repair-review-relations
248
     */
249
    public function repairReviewRelationsAjax()
250
    {
251
        $this->repairReviewRelations();
252
        wp_send_json_success([
253
            'notices' => glsr(Notice::class)->get(),
254
        ]);
255
    }
256
257
    /**
258
     * @return void
259
     * @action site-reviews/route/admin/reset-assigned-meta
260
     */
261
    public function resetAssignedMeta()
262
    {
263
        glsr(CountManager::class)->recalculate();
264
        glsr(Notice::class)->clear()->addSuccess(_x('The assigned meta values have been reset.', 'admin-text', 'site-reviews'));
265
    }
266
267
    /**
268
     * @return void
269
     * @action site-reviews/route/ajax/reset-assigned-meta
270
     */
271
    public function resetAssignedMetaAjax()
272
    {
273
        $this->resetAssignedMeta();
274
        wp_send_json_success([
275
            'notices' => glsr(Notice::class)->get(),
276
        ]);
277
    }
278
279
    /**
280
     * @return void
281
     * @action site-reviews/route/admin/reset-permissions
282
     */
283
    public function resetPermissions(Request $request)
284
    {
285
        if (wp_validate_boolean($request->alt)) {
286
            glsr(Role::class)->hardResetAll();
287
        } else {
288
            glsr(Role::class)->resetAll();
289
        }
290
        glsr(Notice::class)->clear()->addSuccess(_x('The permissions have been reset.', 'admin-text', 'site-reviews'));
291
    }
292
293
    /**
294
     * @return void
295
     * @action site-reviews/route/ajax/reset-permissions
296
     */
297
    public function resetPermissionsAjax(Request $request)
298
    {
299
        $this->resetPermissions($request);
300
        $reloadLink = glsr(Builder::class)->a([
301
            'text' => _x('reload the page', 'admin-text', 'site-reviews'),
302
            'href' => 'javascript:window.location.reload(1)',
303
        ]);
304
        glsr(Notice::class)->clear()->addSuccess(
305
            sprintf(_x('The permissions have been reset, please %s for them to take effect.', 'admin-text', 'site-reviews'), $reloadLink)
306
        );
307
        wp_send_json_success([
308
            'notices' => glsr(Notice::class)->get(),
309
        ]);
310
    }
311
}
312