diff options
Diffstat (limited to 'packages/frontend/src/pages/admin/modlog.ModLog.vue')
| -rw-r--r-- | packages/frontend/src/pages/admin/modlog.ModLog.vue | 48 |
1 files changed, 41 insertions, 7 deletions
diff --git a/packages/frontend/src/pages/admin/modlog.ModLog.vue b/packages/frontend/src/pages/admin/modlog.ModLog.vue index ce7b89f8f7..f0de026ad8 100644 --- a/packages/frontend/src/pages/admin/modlog.ModLog.vue +++ b/packages/frontend/src/pages/admin/modlog.ModLog.vue @@ -5,33 +5,61 @@ SPDX-License-Identifier: AGPL-3.0-only <template> <MkFolder> - <template #label>{{ i18n.ts._moderationLogTypes[log.type] }}</template> + <template #label> + <b>{{ i18n.ts._moderationLogTypes[log.type] }}</b> + <span v-if="log.type === 'updateUserNote'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span> + <span v-else-if="log.type === 'suspend'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span> + <span v-else-if="log.type === 'unsuspend'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span> + <span v-else-if="log.type === 'resetPassword'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span> + <span v-else-if="log.type === 'assignRole'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span> + <span v-else-if="log.type === 'unassignRole'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span> + <span v-else-if="log.type === 'createRole'">: {{ log.info.role.name }}</span> + <span v-else-if="log.type === 'updateRole'">: {{ log.info.before.name }}</span> + <span v-else-if="log.type === 'deleteRole'">: {{ log.info.role.name }}</span> + <span v-else-if="log.type === 'updateCustomEmoji'">: {{ log.info.before.name }}</span> + <span v-else-if="log.type === 'markSensitiveDriveFile'">: @{{ log.info.fileUserUsername }}{{ log.info.fileUserHost ? '@' + log.info.fileUserHost : '' }}</span> + <span v-else-if="log.type === 'unmarkSensitiveDriveFile'">: @{{ log.info.fileUserUsername }}{{ log.info.fileUserHost ? '@' + log.info.fileUserHost : '' }}</span> + <span v-else-if="log.type === 'suspendRemoteInstance'">: {{ log.info.host }}</span> + <span v-else-if="log.type === 'unsuspendRemoteInstance'">: {{ log.info.host }}</span> + <span v-else-if="log.type === 'createUserAnnouncement'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span> + <span v-else-if="log.type === 'updateUserAnnouncement'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span> + <span v-else-if="log.type === 'deleteNote'">: @{{ log.info.noteUserUsername }}{{ log.info.noteUserHost ? '@' + log.info.noteUserHost : '' }}</span> + <span v-else-if="log.type === 'deleteDriveFile'">: @{{ log.info.fileUserUsername }}{{ log.info.fileUserHost ? '@' + log.info.fileUserHost : '' }}</span> + </template> <template #icon> <MkAvatar :user="log.user" :class="$style.avatar"/> </template> <template #suffix> - <MkTime :time="log.createdAt" mode="detail"/> + <MkTime :time="log.createdAt"/> </template> <div :class="$style.root"> - <div>{{ i18n.ts.moderator }}: {{ log.userId }}</div> + <div style="display: flex; gap: var(--margin); flex-wrap: wrap;"> + <div style="flex: 1;">{{ i18n.ts.moderator }}: <MkA :to="`/admin/user/${log.userId}`" class="_link">@{{ log.user?.username }}</MkA></div> + <div style="flex: 1;">{{ i18n.ts.dateAndTime }}: <MkTime :time="log.createdAt" mode="detail"/></div> + </div> <template v-if="log.type === 'updateServerSettings'"> <div :class="$style.diff"> - <CodeDiff :oldString="JSON5.stringify(log.info.before, null, '\t')" :newString="JSON5.stringify(log.info.after, null, '\t')" language="javascript" maxHeight="300px"/> + <CodeDiff :context="5" :hideHeader="true" :oldString="JSON5.stringify(log.info.before, null, '\t')" :newString="JSON5.stringify(log.info.after, null, '\t')" language="javascript" maxHeight="300px"/> </div> </template> <template v-else-if="log.type === 'updateUserNote'"> <div>{{ i18n.ts.user }}: {{ log.info.userId }}</div> <div :class="$style.diff"> - <CodeDiff :oldString="log.info.before ?? ''" :newString="log.info.after ?? ''" maxHeight="300px"/> + <CodeDiff :context="5" :hideHeader="true" :oldString="log.info.before ?? ''" :newString="log.info.after ?? ''" maxHeight="300px"/> </div> </template> <template v-else-if="log.type === 'suspend'"> - <div>{{ i18n.ts.user }}: {{ log.info.targetId }}</div> + <div>{{ i18n.ts.user }}: <MkA :to="`/admin/user/${log.info.userId}`" class="_link">@{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</MkA></div> </template> <template v-else-if="log.type === 'unsuspend'"> - <div>{{ i18n.ts.user }}: {{ log.info.targetId }}</div> + <div>{{ i18n.ts.user }}: <MkA :to="`/admin/user/${log.info.userId}`" class="_link">@{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</MkA></div> + </template> + <template v-else-if="log.type === 'updateRole'"> + <div :class="$style.diff"> + <CodeDiff :context="5" :hideHeader="true" :oldString="JSON5.stringify(log.info.before, null, '\t')" :newString="JSON5.stringify(log.info.after, null, '\t')" language="javascript" maxHeight="300px"/> + </div> </template> <template v-else-if="log.type === 'assignRole'"> <div>{{ i18n.ts.user }}: {{ log.info.userId }}</div> @@ -41,6 +69,12 @@ SPDX-License-Identifier: AGPL-3.0-only <div>{{ i18n.ts.user }}: {{ log.info.userId }}</div> <div>{{ i18n.ts.role }}: {{ log.info.roleName }} [{{ log.info.roleId }}]</div> </template> + <template v-else-if="log.type === 'updateCustomEmoji'"> + <div>{{ i18n.ts.emoji }}: {{ log.info.emojiId }}</div> + <div :class="$style.diff"> + <CodeDiff :context="5" :hideHeader="true" :oldString="JSON5.stringify(log.info.before, null, '\t')" :newString="JSON5.stringify(log.info.after, null, '\t')" language="javascript" maxHeight="300px"/> + </div> + </template> </div> </MkFolder> </template> |