Skip to content
This repository was archived by the owner on May 26, 2023. It is now read-only.

Commit dcf14fa

Browse files
authored
Merge pull request #201 from ExpDev07/dev
New features and bugfixes
2 parents 01e4c81 + 12b5245 commit dcf14fa

File tree

6 files changed

+56
-12
lines changed

6 files changed

+56
-12
lines changed

app/Exceptions/Handler.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ class Handler extends ExceptionHandler
4040
*/
4141
public function report(Throwable $exception)
4242
{
43-
if ($exception instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException) {
43+
if (
44+
$exception instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException || // 404 doesn't need to be logged to avoid filling the log file
45+
$exception instanceof \Illuminate\Encryption\MissingAppKeyException // /api/players Illuminate\Encryption\MissingAppKeyException: No application encryption key has been specified.
46+
) {
4447
parent::report($exception);
4548
return;
4649
}

app/Http/Controllers/PlayerCharacterController.php

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ public function index(Request $request): Response
8686
}
8787
}
8888

89+
// Filtering isDeleted.
90+
if ($deleted = $request->input('deleted')) {
91+
if ($deleted === 'yes' || $deleted === 'no') {
92+
if ($deleted === 'yes') {
93+
$query->where('character_deleted', '=', '1');
94+
} else if ($deleted === 'no') {
95+
$query->where('character_deleted', '=', '0');
96+
}
97+
}
98+
}
99+
89100
$query->select([
90101
'character_id', 'steam_identifier', 'first_name', 'last_name', 'gender', 'job_name',
91102
'department_name', 'position_name', 'phone_number',
@@ -99,13 +110,14 @@ public function index(Request $request): Response
99110

100111
return Inertia::render('Characters/Index', [
101112
'characters' => $characters,
102-
'filters' => $request->all(
103-
'cid',
104-
'name',
105-
'vehicle_plate',
106-
'phone',
107-
'job'
108-
),
113+
'filters' => [
114+
'character_id' => $request->input('character_id'),
115+
'name' => $request->input('name'),
116+
'vehicle_plate' => $request->input('vehicle_plate'),
117+
'phone' => $request->input('phone'),
118+
'job' => $request->input('job'),
119+
'deleted' => $request->input('deleted') ?: 'all',
120+
],
109121
'time' => $end - $start,
110122
'playerMap' => Player::fetchSteamPlayerNameMap($characters->toArray($request), 'steamIdentifier'),
111123
]);

app/Http/Middleware/StaffMiddleware.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,18 @@ protected function checkSessionLock(): bool
104104

105105
$valid = $lock === $print;
106106
if (!$valid) {
107+
$sDetail = $session->get('session_detail');
108+
107109
LoggingHelper::log($session->getSessionKey(), 'StaffMiddleware session-lock is invalid');
108110
LoggingHelper::log($session->getSessionKey(), $lock . ' != ' . $print);
109111
LoggingHelper::log($session->getSessionKey(), 'current.detail -> ' . json_encode($detail));
110-
LoggingHelper::log($session->getSessionKey(), 'session.detail -> ' . json_encode($session->get('session_detail')));
112+
LoggingHelper::log($session->getSessionKey(), 'session.detail -> ' . json_encode($sDetail));
111113

112114
$this->error = 'Your session is invalid, please refresh this page or log in again.';
115+
116+
if ($sDetail && isset($sDetail['ip']) && $sDetail['ip'] !== $detail['ip']) {
117+
$this->error .= ' (Log-in from new ip)';
118+
}
113119
}
114120

115121
$session->put('session_detail', $detail);

resources/js/Pages/Characters/Index.vue

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,23 @@
5050
<input class="block w-full px-4 py-3 mb-3 bg-gray-200 border rounded dark:bg-gray-600" id="phone" placeholder="606-0992" v-model="filters.phone">
5151
</div>
5252
<!-- Job -->
53-
<div class="w-3/4 px-3 mobile:w-full mobile:mb-3">
53+
<div class="w-1/2 px-3 mobile:w-full mobile:mb-3">
5454
<label class="block mb-2" for="job">
5555
{{ t('characters.form.job') }} <sup class="text-muted dark:text-dark-muted">**</sup>
5656
</label>
5757
<input class="block w-full px-4 py-3 mb-3 bg-gray-200 border rounded dark:bg-gray-600" id="job" placeholder="Government Waste Collector Employee" v-model="filters.job">
5858
</div>
59+
<!-- Deletion status -->
60+
<div class="w-1/4 px-3 mobile:w-full mobile:mb-3">
61+
<label class="block mb-2" for="deleted">
62+
{{ t('characters.form.deleted') }} <sup class="text-muted dark:text-dark-muted">*</sup>
63+
</label>
64+
<select class="block w-full px-4 py-3 mb-3 bg-gray-200 dark:bg-gray-600 border rounded" id="deleted" name="deleted" v-model="filters.deleted">
65+
<option value="all">{{ t('global.all') }}</option>
66+
<option value="yes">{{ t('global.yes') }}</option>
67+
<option value="no">{{ t('global.no') }}</option>
68+
</select>
69+
</div>
5970
<!-- Description -->
6071
<div class="w-full px-3 mt-3">
6172
<small class="text-muted dark:text-dark-muted mt-1 leading-4 block">* {{ t('global.search.exact') }}</small>
@@ -159,6 +170,7 @@ export default {
159170
vehicle_plate: String,
160171
phone: String,
161172
job: String,
173+
deleted: String,
162174
},
163175
playerMap: {
164176
type: Object,

resources/js/Pages/Players/Show.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,9 @@
443443
<span class="text-muted dark:text-dark-muted">
444444
{{ warning.createdAt | formatTime }}
445445
</span>
446+
<sup class="ml-2 italic text-sm text-gray-600 dark:text-gray-400" v-if="warning.updatedAt !== warning.createdAt" :title="t('players.show.warning_edited_title', formatTime(warning.updatedAt))">
447+
{{ t('players.show.warning_edited') }}
448+
</sup>
446449
<button
447450
class="px-3 py-1 ml-4 text-sm font-semibold text-white bg-yellow-500 rounded"
448451
@click="warningEditId = warning.id"
@@ -627,6 +630,9 @@ export default {
627630
? this.t('players.show.ban', this.player.ban.issuer, this.$options.filters.formatTime(this.player.ban.expireAt))
628631
: this.t('players.ban.forever', this.player.ban.issuer);
629632
},
633+
formatTime(t) {
634+
return this.$options.filters.formatTime(t);
635+
},
630636
async pmPlayer() {
631637
// Send request.
632638
await this.$inertia.post('/players/' + this.player.steamIdentifier + '/staffPM', this.form.pm);

resources/js/locales/en-us.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
"refresh": "Refresh",
1414
"delete": "Delete",
1515
"view_map": "View on Live-Map",
16+
"yes": "Yes",
17+
"no": "No",
1618
"status": {
1719
"online": "Online",
1820
"offline": "Offline",
@@ -185,7 +187,8 @@
185187
"name": "Full Name",
186188
"plate": "Vehicle Plate",
187189
"job": "Job",
188-
"phone": "Phone Number"
190+
"phone": "Phone Number",
191+
"deleted": "Is Deleted"
189192
},
190193
"result": {
191194
"player": "Player",
@@ -294,7 +297,9 @@
294297
"panel_logs": "Latest 25 Panel Logs",
295298
"delete_character": "Are you sure you want to delete this character?",
296299
"unload": "Unload Players Character",
297-
"unload_confirm": "Are you sure you want to unload this players character? This will send them to the character selection screen."
300+
"unload_confirm": "Are you sure you want to unload this players character? This will send them to the character selection screen.",
301+
"warning_edited": "Edited",
302+
"warning_edited_title": "Edited on {0}"
298303
},
299304
"form": {
300305
"identifier": "Identifier",

0 commit comments

Comments
 (0)