PHP Classes

File: resources/js/pages/LogsTool.vue

Recommend this page to a friend!
  Packages of Nyi Nyi Lwin   Laravel Nova Log Viewer   resources/js/pages/LogsTool.vue   Download  
File: resources/js/pages/LogsTool.vue
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Laravel Nova Log Viewer
Display information about logs in Laravel Nova
Author: By
Last change:
Date: 9 months ago
Size: 4,329 bytes
 

Contents

Class file image Download
<template> <div class="nova-logs"> <div :class="{ 'dark': isDark, }"> <heading class="mb-6">Nova Log Viewer</heading> <card class="flex flex-col items-center justify-center"> <table class="w-full"> <thead class="bg-gray-50 dark:bg-gray-800"> <tr> <th v-for="(header, key) in headers" :key="key" class="td-fit uppercase text-xxs text-gray-500 tracking-wide pl-5 pr-2 py-2"> <span :style="{ 'background-color' : key !== 'date' ? getColor(key) : '#1976D2' }" class="inline-block p-1 text-sm text-white"> {{ header }} </span> </th> <th> </th> </tr> </thead> <tbody> <LogsToolRow :log="log" :baseUrl="baseUrl" :date="date" v-for="(log, date) in logs" :key="date" @delete="openDeleteModal(log)"> </LogsToolRow> </tbody> </table> </card> <card class="flex mt-6 justify-end" v-if="prev != null || next != null"> <div class="inline-flex"> <button @click="getListLogs(prev)" v-if="prev != null" class="bg-grey-light hover:bg-grey text-grey-darkest font-bold py-2 px-4 rounded-l"> Prev </button> <button @click="getListLogs(next)" v-if="next != null" class="bg-grey-light hover:bg-grey text-grey-darkest font-bold py-2 px-4 rounded-r"> Next </button> </div> </card> <DeleteResourceModal :show="deleteModalOpen" mode="delete" @close="closeDeleteModal" @confirm="confirmDelete" > <ModalHeader>Delete Log File</ModalHeader> <ModalContent> <p class="text-80 leading-normal"> Are you sure you want to delete this log file {{ deleting.date }}? </p> </ModalContent> </DeleteResourceModal> </div> </div> </template> <script> import LogsToolRow from '../components/LogsToolRow'; import color from '../utils/color' import dark from '../utils/dark' export default { props: ['baseUrl'], data() { return { headers: null, rows: null, logs: null, deleteModalOpen: false, deleting: null, next: null, prev: null, isDark: false, }; }, components: { LogsToolRow, }, mounted() { this.getListLogs(); dark((isDark) => this.isDark = isDark); }, methods: { getColor(level) { return color(level) }, async getListLogs(url) { url = url || '/nova-vendor/php-junior/nova-log-viewer/get_list_logs'; const {data} = await Nova.request().get(url); this.headers = data.headers; this.rows = data.rows; this.logs = data.rows.data; this.prev = data.rows.prev_page_url; this.next = data.rows.next_page_url; }, openDeleteModal(log) { console.log('opening...'); this.deleteModalOpen = true; this.deleting = log; }, closeDeleteModal() { this.deleteModalOpen = false; this.deleting = null; }, async confirmDelete() { await Nova.request().delete('/nova-vendor/php-junior/nova-log-viewer/delete', { data: { date: this.deleting.date, } }); this.deleteModalOpen = false; delete this.logs[this.deleting.date]; }, }, }; </script> <style scoped> </style>