Initial release
This commit is contained in:
1
resources/js/app.js
Normal file
1
resources/js/app.js
Normal file
@@ -0,0 +1 @@
|
||||
require('./bootstrap');
|
||||
28
resources/js/bootstrap.js
vendored
Normal file
28
resources/js/bootstrap.js
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
window._ = require('lodash');
|
||||
|
||||
/**
|
||||
* We'll load the axios HTTP library which allows us to easily issue requests
|
||||
* to our Laravel back-end. This library automatically handles sending the
|
||||
* CSRF token as a header based on the value of the "XSRF" token cookie.
|
||||
*/
|
||||
|
||||
window.axios = require('axios');
|
||||
|
||||
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
||||
|
||||
/**
|
||||
* Echo exposes an expressive API for subscribing to channels and listening
|
||||
* for events that are broadcast by Laravel. Echo and event broadcasting
|
||||
* allows your team to easily build robust real-time web applications.
|
||||
*/
|
||||
|
||||
// import Echo from 'laravel-echo';
|
||||
|
||||
// window.Pusher = require('pusher-js');
|
||||
|
||||
// window.Echo = new Echo({
|
||||
// broadcaster: 'pusher',
|
||||
// key: process.env.MIX_PUSHER_APP_KEY,
|
||||
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
|
||||
// forceTLS: true
|
||||
// });
|
||||
19
resources/lang/en/auth.php
Normal file
19
resources/lang/en/auth.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'These credentials do not match our records.',
|
||||
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
|
||||
|
||||
];
|
||||
19
resources/lang/en/pagination.php
Normal file
19
resources/lang/en/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Previous',
|
||||
'next' => 'Next »',
|
||||
|
||||
];
|
||||
22
resources/lang/en/passwords.php
Normal file
22
resources/lang/en/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'reset' => 'Your password has been reset!',
|
||||
'sent' => 'We have e-mailed your password reset link!',
|
||||
'throttled' => 'Please wait before retrying.',
|
||||
'token' => 'This password reset token is invalid.',
|
||||
'user' => "We can't find a user with that e-mail address.",
|
||||
|
||||
];
|
||||
151
resources/lang/en/validation.php
Normal file
151
resources/lang/en/validation.php
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| as the size rules. Feel free to tweak each of these messages here.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => 'The :attribute must be accepted.',
|
||||
'active_url' => 'The :attribute is not a valid URL.',
|
||||
'after' => 'The :attribute must be a date after :date.',
|
||||
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
|
||||
'alpha' => 'The :attribute may only contain letters.',
|
||||
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',
|
||||
'alpha_num' => 'The :attribute may only contain letters and numbers.',
|
||||
'array' => 'The :attribute must be an array.',
|
||||
'before' => 'The :attribute must be a date before :date.',
|
||||
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
|
||||
'between' => [
|
||||
'numeric' => 'The :attribute must be between :min and :max.',
|
||||
'file' => 'The :attribute must be between :min and :max kilobytes.',
|
||||
'string' => 'The :attribute must be between :min and :max characters.',
|
||||
'array' => 'The :attribute must have between :min and :max items.',
|
||||
],
|
||||
'boolean' => 'The :attribute field must be true or false.',
|
||||
'confirmed' => 'The :attribute confirmation does not match.',
|
||||
'date' => 'The :attribute is not a valid date.',
|
||||
'date_equals' => 'The :attribute must be a date equal to :date.',
|
||||
'date_format' => 'The :attribute does not match the format :format.',
|
||||
'different' => 'The :attribute and :other must be different.',
|
||||
'digits' => 'The :attribute must be :digits digits.',
|
||||
'digits_between' => 'The :attribute must be between :min and :max digits.',
|
||||
'dimensions' => 'The :attribute has invalid image dimensions.',
|
||||
'distinct' => 'The :attribute field has a duplicate value.',
|
||||
'email' => 'The :attribute must be a valid email address.',
|
||||
'ends_with' => 'The :attribute must end with one of the following: :values.',
|
||||
'exists' => 'The selected :attribute is invalid.',
|
||||
'file' => 'The :attribute must be a file.',
|
||||
'filled' => 'The :attribute field must have a value.',
|
||||
'gt' => [
|
||||
'numeric' => 'The :attribute must be greater than :value.',
|
||||
'file' => 'The :attribute must be greater than :value kilobytes.',
|
||||
'string' => 'The :attribute must be greater than :value characters.',
|
||||
'array' => 'The :attribute must have more than :value items.',
|
||||
],
|
||||
'gte' => [
|
||||
'numeric' => 'The :attribute must be greater than or equal :value.',
|
||||
'file' => 'The :attribute must be greater than or equal :value kilobytes.',
|
||||
'string' => 'The :attribute must be greater than or equal :value characters.',
|
||||
'array' => 'The :attribute must have :value items or more.',
|
||||
],
|
||||
'image' => 'The :attribute must be an image.',
|
||||
'in' => 'The selected :attribute is invalid.',
|
||||
'in_array' => 'The :attribute field does not exist in :other.',
|
||||
'integer' => 'The :attribute must be an integer.',
|
||||
'ip' => 'The :attribute must be a valid IP address.',
|
||||
'ipv4' => 'The :attribute must be a valid IPv4 address.',
|
||||
'ipv6' => 'The :attribute must be a valid IPv6 address.',
|
||||
'json' => 'The :attribute must be a valid JSON string.',
|
||||
'lt' => [
|
||||
'numeric' => 'The :attribute must be less than :value.',
|
||||
'file' => 'The :attribute must be less than :value kilobytes.',
|
||||
'string' => 'The :attribute must be less than :value characters.',
|
||||
'array' => 'The :attribute must have less than :value items.',
|
||||
],
|
||||
'lte' => [
|
||||
'numeric' => 'The :attribute must be less than or equal :value.',
|
||||
'file' => 'The :attribute must be less than or equal :value kilobytes.',
|
||||
'string' => 'The :attribute must be less than or equal :value characters.',
|
||||
'array' => 'The :attribute must not have more than :value items.',
|
||||
],
|
||||
'max' => [
|
||||
'numeric' => 'The :attribute may not be greater than :max.',
|
||||
'file' => 'The :attribute may not be greater than :max kilobytes.',
|
||||
'string' => 'The :attribute may not be greater than :max characters.',
|
||||
'array' => 'The :attribute may not have more than :max items.',
|
||||
],
|
||||
'mimes' => 'The :attribute must be a file of type: :values.',
|
||||
'mimetypes' => 'The :attribute must be a file of type: :values.',
|
||||
'min' => [
|
||||
'numeric' => 'The :attribute must be at least :min.',
|
||||
'file' => 'The :attribute must be at least :min kilobytes.',
|
||||
'string' => 'The :attribute must be at least :min characters.',
|
||||
'array' => 'The :attribute must have at least :min items.',
|
||||
],
|
||||
'not_in' => 'The selected :attribute is invalid.',
|
||||
'not_regex' => 'The :attribute format is invalid.',
|
||||
'numeric' => 'The :attribute must be a number.',
|
||||
'password' => 'The password is incorrect.',
|
||||
'present' => 'The :attribute field must be present.',
|
||||
'regex' => 'The :attribute format is invalid.',
|
||||
'required' => 'The :attribute field is required.',
|
||||
'required_if' => 'The :attribute field is required when :other is :value.',
|
||||
'required_unless' => 'The :attribute field is required unless :other is in :values.',
|
||||
'required_with' => 'The :attribute field is required when :values is present.',
|
||||
'required_with_all' => 'The :attribute field is required when :values are present.',
|
||||
'required_without' => 'The :attribute field is required when :values is not present.',
|
||||
'required_without_all' => 'The :attribute field is required when none of :values are present.',
|
||||
'same' => 'The :attribute and :other must match.',
|
||||
'size' => [
|
||||
'numeric' => 'The :attribute must be :size.',
|
||||
'file' => 'The :attribute must be :size kilobytes.',
|
||||
'string' => 'The :attribute must be :size characters.',
|
||||
'array' => 'The :attribute must contain :size items.',
|
||||
],
|
||||
'starts_with' => 'The :attribute must start with one of the following: :values.',
|
||||
'string' => 'The :attribute must be a string.',
|
||||
'timezone' => 'The :attribute must be a valid zone.',
|
||||
'unique' => 'The :attribute has already been taken.',
|
||||
'uploaded' => 'The :attribute failed to upload.',
|
||||
'url' => 'The :attribute format is invalid.',
|
||||
'uuid' => 'The :attribute must be a valid UUID.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'attribute-name' => [
|
||||
'rule-name' => 'custom-message',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap our attribute placeholder
|
||||
| with something more reader friendly such as "E-Mail Address" instead
|
||||
| of "email". This simply helps us make our message more expressive.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [],
|
||||
|
||||
];
|
||||
17
resources/lang/es/auth.php
Normal file
17
resources/lang/es/auth.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'Estas credenciales no coinciden con nuestros registros.',
|
||||
'throttle' => 'Demasiados intentos de acceso. Por favor intente nuevamente en :seconds segundos.',
|
||||
];
|
||||
17
resources/lang/es/pagination.php
Normal file
17
resources/lang/es/pagination.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Anterior',
|
||||
'next' => 'Siguiente »',
|
||||
];
|
||||
20
resources/lang/es/passwords.php
Normal file
20
resources/lang/es/passwords.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Las contraseñas deben coincidir y contener al menos 6 caracteres',
|
||||
'reset' => '¡Tu contraseña ha sido restablecida!',
|
||||
'sent' => '¡Te hemos enviado por correo el enlace para restablecer tu contraseña!',
|
||||
'token' => 'El token de recuperación de contraseña es inválido.',
|
||||
'user' => 'No podemos encontrar ningún usuario con ese correo electrónico.',
|
||||
];
|
||||
153
resources/lang/es/validation.php
Normal file
153
resources/lang/es/validation.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| as the size rules. Feel free to tweak each of these messages.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => ':attribute debe ser aceptado.',
|
||||
'active_url' => ':attribute no es una URL válida.',
|
||||
'after' => ':attribute debe ser una fecha posterior a :date.',
|
||||
'after_or_equal' => ':attribute debe ser una fecha posterior o igual a :date.',
|
||||
'alpha' => ':attribute sólo debe contener letras.',
|
||||
'alpha_dash' => ':attribute sólo debe contener letras, números y guiones.',
|
||||
'alpha_num' => ':attribute sólo debe contener letras y números.',
|
||||
'array' => ':attribute debe ser un conjunto.',
|
||||
'before' => ':attribute debe ser una fecha anterior a :date.',
|
||||
'before_or_equal' => ':attribute debe ser una fecha anterior o igual a :date.',
|
||||
'between' => [
|
||||
'numeric' => ':attribute tiene que estar entre :min - :max.',
|
||||
'file' => ':attribute debe pesar entre :min - :max kilobytes.',
|
||||
'string' => ':attribute tiene que tener entre :min - :max caracteres.',
|
||||
'array' => ':attribute tiene que tener entre :min - :max ítems.',
|
||||
],
|
||||
'boolean' => 'El campo :attribute debe tener un valor verdadero o falso.',
|
||||
'confirmed' => 'La confirmación de :attribute no coincide.',
|
||||
'date' => ':attribute no es una fecha válida.',
|
||||
'date_format' => ':attribute no corresponde al formato :format.',
|
||||
'different' => ':attribute y :other deben ser diferentes.',
|
||||
'digits' => ':attribute debe tener :digits dígitos.',
|
||||
'digits_between' => ':attribute debe tener entre :min y :max dígitos.',
|
||||
'dimensions' => 'Las dimensiones de la imagen :attribute no son válidas.',
|
||||
'distinct' => 'El campo :attribute contiene un valor duplicado.',
|
||||
'email' => ':attribute no es un correo válido',
|
||||
'exists' => ':attribute es inválido.',
|
||||
'file' => 'El campo :attribute debe ser un archivo.',
|
||||
'filled' => 'El campo :attribute es obligatorio.',
|
||||
'image' => ':attribute debe ser una imagen.',
|
||||
'in' => ':attribute es inválido.',
|
||||
'in_array' => 'El campo :attribute no existe en :other.',
|
||||
'integer' => ':attribute debe ser un número entero.',
|
||||
'ip' => ':attribute debe ser una dirección IP válida.',
|
||||
'ipv4' => ':attribute debe ser un dirección IPv4 válida',
|
||||
'ipv6' => ':attribute debe ser un dirección IPv6 válida.',
|
||||
'json' => 'El campo :attribute debe tener una cadena JSON válida.',
|
||||
'max' => [
|
||||
'numeric' => ':attribute no debe ser mayor a :max.',
|
||||
'file' => ':attribute no debe ser mayor que :max kilobytes.',
|
||||
'string' => ':attribute no debe ser mayor que :max caracteres.',
|
||||
'array' => ':attribute no debe tener más de :max elementos.',
|
||||
],
|
||||
'mimes' => ':attribute debe ser un archivo con formato: :values.',
|
||||
'mimetypes' => ':attribute debe ser un archivo con formato: :values.',
|
||||
'min' => [
|
||||
'numeric' => 'El tamaño de :attribute debe ser de al menos :min.',
|
||||
'file' => 'El tamaño de :attribute debe ser de al menos :min kilobytes.',
|
||||
'string' => ':attribute debe contener al menos :min caracteres.',
|
||||
'array' => ':attribute debe tener al menos :min elementos.',
|
||||
],
|
||||
'not_in' => ':attribute es inválido.',
|
||||
'numeric' => ':attribute debe ser numérico.',
|
||||
'present' => 'El campo :attribute debe estar presente.',
|
||||
'regex' => 'El formato de :attribute es inválido.',
|
||||
'required' => 'El campo :attribute es obligatorio.',
|
||||
'required_if' => 'El campo :attribute es obligatorio cuando :other es :value.',
|
||||
'required_unless' => 'El campo :attribute es obligatorio a menos que :other esté en :values.',
|
||||
'required_with' => 'El campo :attribute es obligatorio cuando :values está presente.',
|
||||
'required_with_all' => 'El campo :attribute es obligatorio cuando :values está presente.',
|
||||
'required_without' => 'El campo :attribute es obligatorio cuando :values no está presente.',
|
||||
'required_without_all' => 'El campo :attribute es obligatorio cuando ninguno de :values estén presentes.',
|
||||
'same' => ':attribute y :other deben coincidir.',
|
||||
'size' => [
|
||||
'numeric' => 'El tamaño de :attribute debe ser :size.',
|
||||
'file' => 'El tamaño de :attribute debe ser :size kilobytes.',
|
||||
'string' => ':attribute debe contener :size caracteres.',
|
||||
'array' => ':attribute debe contener :size elementos.',
|
||||
],
|
||||
'string' => 'El campo :attribute debe ser una cadena de caracteres.',
|
||||
'timezone' => 'El :attribute debe ser una zona válida.',
|
||||
'unique' => ':attribute ya ha sido registrado.',
|
||||
'uploaded' => 'Subir :attribute ha fallado.',
|
||||
'url' => 'El formato :attribute es inválido.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'password' => [
|
||||
'min' => 'La :attribute debe contener más de :min caracteres',
|
||||
],
|
||||
'email' => [
|
||||
'unique' => 'El :attribute ya ha sido registrado.',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [
|
||||
'name' => 'nombre',
|
||||
'username' => 'usuario',
|
||||
'email' => 'correo electrónico',
|
||||
'first_name' => 'nombre',
|
||||
'last_name' => 'apellido',
|
||||
'password' => 'contraseña',
|
||||
'password_confirmation' => 'confirmación de la contraseña',
|
||||
'city' => 'ciudad',
|
||||
'country' => 'país',
|
||||
'address' => 'dirección',
|
||||
'phone' => 'teléfono',
|
||||
'mobile' => 'móvil',
|
||||
'age' => 'edad',
|
||||
'sex' => 'sexo',
|
||||
'gender' => 'género',
|
||||
'year' => 'año',
|
||||
'month' => 'mes',
|
||||
'day' => 'día',
|
||||
'hour' => 'hora',
|
||||
'minute' => 'minuto',
|
||||
'second' => 'segundo',
|
||||
'title' => 'título',
|
||||
'content' => 'contenido',
|
||||
'body' => 'contenido',
|
||||
'description' => 'descripción',
|
||||
'excerpt' => 'extracto',
|
||||
'date' => 'fecha',
|
||||
'time' => 'hora',
|
||||
'subject' => 'asunto',
|
||||
'message' => 'mensaje',
|
||||
],
|
||||
];
|
||||
16
resources/lang/fr/auth.php
Normal file
16
resources/lang/fr/auth.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
'failed' => 'Ces identifiants ne correspondent pas à nos enregistrements',
|
||||
'throttle' => 'Trop de tentatives de connexion. Veuillez essayer de nouveau dans :seconds secondes.',
|
||||
];
|
||||
19
resources/lang/fr/pagination.php
Normal file
19
resources/lang/fr/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Précédent',
|
||||
'next' => 'Suivant »',
|
||||
|
||||
];
|
||||
19
resources/lang/fr/passwords.php
Normal file
19
resources/lang/fr/passwords.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
'password' => 'Les mots de passe doivent contenir au moins six caractères et doivent être identiques.',
|
||||
'reset' => 'Votre mot de passe a été réinitialisé !',
|
||||
'sent' => 'Nous vous avons envoyé par courriel le lien de réinitialisation du mot de passe !',
|
||||
'token' => "Ce jeton de réinitialisation du mot de passe n'est pas valide.",
|
||||
'user' => "Aucun utilisateur n'a été trouvé avec cette adresse e-mail.",
|
||||
];
|
||||
149
resources/lang/fr/validation.php
Normal file
149
resources/lang/fr/validation.php
Normal file
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| such as the size rules. Feel free to tweak each of these messages.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => 'Le champ :attribute doit être accepté.',
|
||||
'active_url' => "Le champ :attribute n'est pas une URL valide.",
|
||||
'after' => 'Le champ :attribute doit être une date postérieure au :date.',
|
||||
'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale au :date.',
|
||||
'alpha' => 'Le champ :attribute doit seulement contenir des lettres.',
|
||||
'alpha_dash' => 'Le champ :attribute doit seulement contenir des lettres, des chiffres et des tirets.',
|
||||
'alpha_num' => 'Le champ :attribute doit seulement contenir des chiffres et des lettres.',
|
||||
'array' => 'Le champ :attribute doit être un tableau.',
|
||||
'before' => 'Le champ :attribute doit être une date antérieure au :date.',
|
||||
'before_or_equal' => 'Le champ :attribute doit être une date antérieure ou égale au :date.',
|
||||
'between' => [
|
||||
'numeric' => 'La valeur de :attribute doit être comprise entre :min et :max.',
|
||||
'file' => 'La taille du fichier de :attribute doit être comprise entre :min et :max kilo-octets.',
|
||||
'string' => 'Le texte :attribute doit contenir entre :min et :max caractères.',
|
||||
'array' => 'Le tableau :attribute doit contenir entre :min et :max éléments.',
|
||||
],
|
||||
'boolean' => 'Le champ :attribute doit être vrai ou faux.',
|
||||
'confirmed' => 'Le champ de confirmation :attribute ne correspond pas.',
|
||||
'date' => "Le champ :attribute n'est pas une date valide.",
|
||||
'date_format' => 'Le champ :attribute ne correspond pas au format :format.',
|
||||
'different' => 'Les champs :attribute et :other doivent être différents.',
|
||||
'digits' => 'Le champ :attribute doit contenir :digits chiffres.',
|
||||
'digits_between' => 'Le champ :attribute doit contenir entre :min et :max chiffres.',
|
||||
'dimensions' => "La taille de l'image :attribute n'est pas conforme.",
|
||||
'distinct' => 'Le champ :attribute a une valeur dupliquée.',
|
||||
'email' => 'Le champ :attribute doit être une adresse e-mail valide.',
|
||||
'exists' => 'Le champ :attribute sélectionné est invalide.',
|
||||
'file' => 'Le champ :attribute doit être un fichier.',
|
||||
'filled' => 'Le champ :attribute est obligatoire.',
|
||||
'image' => 'Le champ :attribute doit être une image.',
|
||||
'in' => 'Le champ :attribute est invalide.',
|
||||
'in_array' => 'Le champ :attribute n\'existe pas dans :other.',
|
||||
'integer' => 'Le champ :attribute doit être un entier.',
|
||||
'ip' => 'Le champ :attribute doit être une adresse IP valide.',
|
||||
'json' => 'Le champ :attribute doit être un document JSON valide.',
|
||||
'max' => [
|
||||
'numeric' => 'La valeur de :attribute ne peut être supérieure à :max.',
|
||||
'file' => 'La taille du fichier de :attribute ne peut pas dépasser :max kilo-octets.',
|
||||
'string' => 'Le texte de :attribute ne peut contenir plus de :max caractères.',
|
||||
'array' => 'Le tableau :attribute ne peut contenir plus de :max éléments.',
|
||||
],
|
||||
'mimes' => 'Le champ :attribute doit être un fichier de type : :values.',
|
||||
'mimetypes' => 'Le champ :attribute doit être un fichier de type : :values.',
|
||||
'min' => [
|
||||
'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :min.',
|
||||
'file' => 'La taille du fichier de :attribute doit être supérieure à :min kilo-octets.',
|
||||
'string' => 'Le texte :attribute doit contenir au moins :min caractères.',
|
||||
'array' => 'Le tableau :attribute doit contenir au moins :min éléments.',
|
||||
],
|
||||
'not_in' => "Le champ :attribute sélectionné n'est pas valide.",
|
||||
'numeric' => 'Le champ :attribute doit contenir un nombre.',
|
||||
'present' => 'Le champ :attribute doit être présent.',
|
||||
'regex' => 'Le format du champ :attribute est invalide.',
|
||||
'required' => 'Le champ :attribute est obligatoire.',
|
||||
'required_if' => 'Le champ :attribute est obligatoire quand la valeur de :other est :value.',
|
||||
'required_unless' => 'Le champ :attribute est obligatoire sauf si :other est :values.',
|
||||
'required_with' => 'Le champ :attribute est obligatoire quand :values est présent.',
|
||||
'required_with_all' => 'Le champ :attribute est obligatoire quand :values est présent.',
|
||||
'required_without' => "Le champ :attribute est obligatoire quand :values n'est pas présent.",
|
||||
'required_without_all' => "Le champ :attribute est requis quand aucun de :values n'est présent.",
|
||||
'same' => 'Les champs :attribute et :other doivent être identiques.',
|
||||
'size' => [
|
||||
'numeric' => 'La valeur de :attribute doit être :size.',
|
||||
'file' => 'La taille du fichier de :attribute doit être de :size kilo-octets.',
|
||||
'string' => 'Le texte de :attribute doit contenir :size caractères.',
|
||||
'array' => 'Le tableau :attribute doit contenir :size éléments.',
|
||||
],
|
||||
'string' => 'Le champ :attribute doit être une chaîne de caractères.',
|
||||
'timezone' => 'Le champ :attribute doit être un fuseau horaire valide.',
|
||||
'unique' => 'La valeur du champ :attribute est déjà utilisée.',
|
||||
'uploaded' => "Le fichier du champ :attribute n'a pu être téléchargé.",
|
||||
'url' => "Le format de l'URL de :attribute n'est pas valide.",
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'attribute-name' => [
|
||||
'rule-name' => 'custom-message',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [
|
||||
'name' => 'nom',
|
||||
'username' => 'nom d\'utilisateur',
|
||||
'email' => 'adresse e-mail',
|
||||
'first_name' => 'prénom',
|
||||
'last_name' => 'nom',
|
||||
'password' => 'mot de passe',
|
||||
'password_confirmation' => 'confirmation du mot de passe',
|
||||
'city' => 'ville',
|
||||
'country' => 'pays',
|
||||
'address' => 'adresse',
|
||||
'phone' => 'téléphone',
|
||||
'mobile' => 'portable',
|
||||
'age' => 'âge',
|
||||
'sex' => 'sexe',
|
||||
'gender' => 'genre',
|
||||
'day' => 'jour',
|
||||
'month' => 'mois',
|
||||
'year' => 'année',
|
||||
'hour' => 'heure',
|
||||
'minute' => 'minute',
|
||||
'second' => 'seconde',
|
||||
'title' => 'titre',
|
||||
'content' => 'contenu',
|
||||
'description' => 'description',
|
||||
'excerpt' => 'extrait',
|
||||
'date' => 'date',
|
||||
'time' => 'heure',
|
||||
'available' => 'disponible',
|
||||
'size' => 'taille',
|
||||
],
|
||||
|
||||
];
|
||||
17
resources/lang/tr/auth.php
Normal file
17
resources/lang/tr/auth.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'Girilmiş olan kullanıcı verileri sistemdekiler ile eşleşmemektedir.',
|
||||
'throttle' => 'Çok fazla oturum açma girişiminde bulundunuz. Lütfen :seconds saniye içerisinde tekrar deneyiz.',
|
||||
];
|
||||
17
resources/lang/tr/pagination.php
Normal file
17
resources/lang/tr/pagination.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Önceki',
|
||||
'next' => 'Sonraki »',
|
||||
];
|
||||
20
resources/lang/tr/passwords.php
Normal file
20
resources/lang/tr/passwords.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Parolanız en az altı karakter olmalı ve doğrulama ile eşleşmelidir.',
|
||||
'reset' => 'Parolanız sıfırlandı!',
|
||||
'sent' => 'Parola sıfırlama bağlantınız e-posta ile gönderildi!',
|
||||
'token' => 'Parola sıfırlama adresi/kodu geçersiz.',
|
||||
'user' => 'Bu e-posta adresi ile kayıtlı bir üye bulunmuyor.',
|
||||
];
|
||||
145
resources/lang/tr/validation.php
Normal file
145
resources/lang/tr/validation.php
Normal file
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| as the size rules. Feel free to tweak each of these messages.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => ':attribute kabul edilmelidir.',
|
||||
'active_url' => ':attribute geçerli bir URL olmalıdır.',
|
||||
'after' => ':attribute şundan daha eski bir tarih olmalıdır :date.',
|
||||
'after_or_equal' => ':attribute tarihi :date tarihinden sonra veya tarihine eşit olmalıdır.',
|
||||
'alpha' => ':attribute sadece harflerden oluşmalıdır.',
|
||||
'alpha_dash' => ':attribute sadece harfler, rakamlar ve tirelerden oluşmalıdır.',
|
||||
'alpha_num' => ':attribute sadece harfler ve rakamlar içermelidir.',
|
||||
'array' => ':attribute dizi olmalıdır.',
|
||||
'before' => ':attribute şundan daha önceki bir tarih olmalıdır :date.',
|
||||
'before_or_equal' => ':attribute tarihi :date tarihinden önce veya tarihine eşit olmalıdır.',
|
||||
'between' => [
|
||||
'numeric' => ':attribute :min - :max arasında olmalıdır.',
|
||||
'file' => ':attribute :min - :max arasındaki kilobayt değeri olmalıdır.',
|
||||
'string' => ':attribute :min - :max arasında karakterden oluşmalıdır.',
|
||||
'array' => ':attribute :min - :max arasında nesneye sahip olmalıdır.',
|
||||
],
|
||||
'boolean' => ':attribute sadece doğru veya yanlış olmalıdır.',
|
||||
'confirmed' => ':attribute tekrarı eşleşmiyor.',
|
||||
'date' => ':attribute geçerli bir tarih olmalıdır.',
|
||||
'date_format' => ':attribute :format biçimi ile eşleşmiyor.',
|
||||
'different' => ':attribute ile :other birbirinden farklı olmalıdır.',
|
||||
'digits' => ':attribute :digits rakam olmalıdır.',
|
||||
'digits_between' => ':attribute :min ile :max arasında rakam olmalıdır.',
|
||||
'dimensions' => ':attribute görsel ölçüleri geçersiz.',
|
||||
'distinct' => ':attribute alanı yinelenen bir değere sahip.',
|
||||
'email' => ':attribute biçimi geçersiz.',
|
||||
'exists' => 'Seçili :attribute geçersiz.',
|
||||
'file' => ':attribute dosya olmalıdır.',
|
||||
'filled' => ':attribute alanının doldurulması zorunludur.',
|
||||
'gt' => [
|
||||
'numeric' => 'The :attribute must be greater than :value.',
|
||||
'file' => 'The :attribute must be greater than :value kilobytes.',
|
||||
'string' => 'The :attribute must be greater than :value characters.',
|
||||
'array' => 'The :attribute must have more than :value items.',
|
||||
],
|
||||
'gte' => [
|
||||
'numeric' => 'The :attribute must be greater than or equal :value.',
|
||||
'file' => 'The :attribute must be greater than or equal :value kilobytes.',
|
||||
'string' => 'The :attribute must be greater than or equal :value characters.',
|
||||
'array' => 'The :attribute must have :value items or more.',
|
||||
],
|
||||
'image' => ':attribute alanı resim dosyası olmalıdır.',
|
||||
'in' => ':attribute değeri geçersiz.',
|
||||
'in_array' => ':attribute alanı :other içinde mevcut değil.',
|
||||
'integer' => ':attribute tamsayı olmalıdır.',
|
||||
'ip' => ':attribute geçerli bir IP adresi olmalıdır.',
|
||||
'ipv4' => ':attribute geçerli bir IPv4 adresi olmalıdır.',
|
||||
'ipv6' => ':attribute geçerli bir IPv6 adresi olmalıdır.',
|
||||
'json' => ':attribute geçerli bir JSON değişkeni olmalıdır.',
|
||||
'lt' => [
|
||||
'numeric' => 'The :attribute must be less than :value.',
|
||||
'file' => 'The :attribute must be less than :value kilobytes.',
|
||||
'string' => 'The :attribute must be less than :value characters.',
|
||||
'array' => 'The :attribute must have less than :value items.',
|
||||
],
|
||||
'lte' => [
|
||||
'numeric' => 'The :attribute must be less than or equal :value.',
|
||||
'file' => 'The :attribute must be less than or equal :value kilobytes.',
|
||||
'string' => 'The :attribute must be less than or equal :value characters.',
|
||||
'array' => 'The :attribute must not have more than :value items.',
|
||||
],
|
||||
'max' => [
|
||||
'numeric' => ':attribute değeri :max değerinden küçük olmalıdır.',
|
||||
'file' => ':attribute değeri :max kilobayt değerinden küçük olmalıdır.',
|
||||
'string' => ':attribute değeri :max karakter değerinden küçük olmalıdır.',
|
||||
'array' => ':attribute değeri :max adedinden az nesneye sahip olmalıdır.',
|
||||
],
|
||||
'mimes' => ':attribute dosya biçimi :values olmalıdır.',
|
||||
'mimetypes' => ':attribute dosya biçimi :values olmalıdır.',
|
||||
'min' => [
|
||||
'numeric' => ':attribute değeri :min değerinden büyük olmalıdır.',
|
||||
'file' => ':attribute değeri :min kilobayt değerinden büyük olmalıdır.',
|
||||
'string' => ':attribute değeri :min karakter değerinden büyük olmalıdır.',
|
||||
'array' => ':attribute en az :min nesneye sahip olmalıdır.',
|
||||
],
|
||||
'not_in' => 'Seçili :attribute geçersiz.',
|
||||
'not_regex' => ':attribute biçimi geçersiz.',
|
||||
'numeric' => ':attribute sayı olmalıdır.',
|
||||
'present' => ':attribute alanı mevcut olmalıdır.',
|
||||
'regex' => ':attribute biçimi geçersiz.',
|
||||
'required' => ':attribute alanı gereklidir.',
|
||||
'required_if' => ':attribute alanı, :other :value değerine sahip olduğunda zorunludur.',
|
||||
'required_unless' => ':attribute alanı, :other alanı :value değerlerinden birine sahip olmadığında zorunludur.',
|
||||
'required_with' => ':attribute alanı :values varken zorunludur.',
|
||||
'required_with_all' => ':attribute alanı herhangi bir :values değeri varken zorunludur.',
|
||||
'required_without' => ':attribute alanı :values yokken zorunludur.',
|
||||
'required_without_all' => ':attribute alanı :values değerlerinden herhangi biri yokken zorunludur.',
|
||||
'same' => ':attribute ile :other eşleşmelidir.',
|
||||
'size' => [
|
||||
'numeric' => ':attribute :size olmalıdır.',
|
||||
'file' => ':attribute :size kilobyte olmalıdır.',
|
||||
'string' => ':attribute :size karakter olmalıdır.',
|
||||
'array' => ':attribute :size nesneye sahip olmalıdır.',
|
||||
],
|
||||
'string' => ':attribute dizge olmalıdır.',
|
||||
'timezone' => ':attribute geçerli bir saat dilimi olmalıdır.',
|
||||
'unique' => ':attribute daha önceden kayıt edilmiş.',
|
||||
'uploaded' => ':attribute yüklemesi başarısız.',
|
||||
'url' => ':attribute biçimi geçersiz.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'attribute-name' => [
|
||||
'rule-name' => 'custom-message',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [
|
||||
],
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/ar/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/ar/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'جميع',
|
||||
'date' => 'تاريخ',
|
||||
'empty-logs' => 'قائمة سجلات فارغة!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/ar/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/ar/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'الجميع',
|
||||
'emergency' => 'حالات الطوارئ',
|
||||
'alert' => 'إنذار',
|
||||
'critical' => 'حرج',
|
||||
'error' => 'خطأ',
|
||||
'warning' => 'تحذير',
|
||||
'notice' => 'ملاحظة',
|
||||
'info' => 'المعلومات',
|
||||
'debug' => 'التصحيح',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/bg/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/bg/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Всички',
|
||||
'date' => 'Дата',
|
||||
'empty-logs' => 'Не са намерени логове!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/bg/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/bg/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Всички',
|
||||
'emergency' => 'Emergency',
|
||||
'alert' => 'Alert',
|
||||
'critical' => 'Critical',
|
||||
'error' => 'Error',
|
||||
'warning' => 'Warning',
|
||||
'notice' => 'Notice',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/de/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/de/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Alle',
|
||||
'date' => 'Datum',
|
||||
'empty-logs' => 'Keine Log Dateien gefunden!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/de/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/de/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Alle',
|
||||
'emergency' => 'Notfall',
|
||||
'alert' => 'Alarm',
|
||||
'critical' => 'Kritisch',
|
||||
'error' => 'Fehler',
|
||||
'warning' => 'Warnung',
|
||||
'notice' => 'Hinweis',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/en/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/en/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'All',
|
||||
'date' => 'Date',
|
||||
'empty-logs' => 'The list of logs is empty!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/en/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/en/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'All',
|
||||
'emergency' => 'Emergency',
|
||||
'alert' => 'Alert',
|
||||
'critical' => 'Critical',
|
||||
'error' => 'Error',
|
||||
'warning' => 'Warning',
|
||||
'notice' => 'Notice',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/es/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/es/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Todos',
|
||||
'date' => 'Fecha',
|
||||
'empty-logs' => 'La lista del log está vacía!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/es/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/es/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Todos',
|
||||
'emergency' => 'Emergencia',
|
||||
'alert' => 'Alerta',
|
||||
'critical' => 'Criticos',
|
||||
'error' => 'Errores',
|
||||
'warning' => 'Advertencia',
|
||||
'notice' => 'Aviso',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/et/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/et/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Kõik',
|
||||
'date' => 'Kuupäev',
|
||||
'empty-logs' => 'Logide nimekiri on tühi!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/et/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/et/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Kõik',
|
||||
'emergency' => 'Erakorraline',
|
||||
'alert' => 'Häire',
|
||||
'critical' => 'Kriitiline',
|
||||
'error' => 'Viga',
|
||||
'warning' => 'Hoiatus',
|
||||
'notice' => 'Teade',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Silumine',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/fa/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/fa/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'همه',
|
||||
'date' => 'تاریخ',
|
||||
'empty-logs' => 'چیزی برای نمایش وجود ندارد!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/fa/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/fa/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'همه',
|
||||
'emergency' => 'اورژانسی',
|
||||
'alert' => 'اخطار',
|
||||
'critical' => 'بحرانی',
|
||||
'error' => 'خطا',
|
||||
'warning' => 'هشدار',
|
||||
'notice' => 'اعلان',
|
||||
'info' => 'اطلاعات',
|
||||
'debug' => 'دیباگ',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/fr/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/fr/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Tous',
|
||||
'date' => 'Date',
|
||||
'empty-logs' => 'La liste des logs est vide!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/fr/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/fr/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Tous',
|
||||
'emergency' => 'Urgence',
|
||||
'alert' => 'Alerte',
|
||||
'critical' => 'Critique',
|
||||
'error' => 'Erreur',
|
||||
'warning' => 'Avertissement',
|
||||
'notice' => 'Notice',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/hu/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/hu/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Összes',
|
||||
'date' => 'Dátum',
|
||||
'empty-logs' => 'A naplók listája üres!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/hu/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/hu/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Összes',
|
||||
'emergency' => 'Vészhelyzet',
|
||||
'alert' => 'Riasztás',
|
||||
'critical' => 'Kritikus',
|
||||
'error' => 'Hiba',
|
||||
'warning' => 'Figyelmeztetés',
|
||||
'notice' => 'Értesítés',
|
||||
'info' => 'Információ',
|
||||
'debug' => 'Hibakeresés',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/hy/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/hy/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Բոլորը',
|
||||
'date' => 'Ամսաթիվ',
|
||||
'empty-logs' => 'Լոգերի ցուցակը դատարկ է։',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/hy/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/hy/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Բոլորը',
|
||||
'emergency' => 'Վթարային',
|
||||
'alert' => 'Նախազգուշացում',
|
||||
'critical' => 'Կրիտիկական',
|
||||
'error' => 'Սխալ',
|
||||
'warning' => 'Նախազգուշացում',
|
||||
'notice' => 'Ծանուցում',
|
||||
'info' => 'Տեղեկատվություն',
|
||||
'debug' => 'Կարգաբերում',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/id/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/id/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Semua',
|
||||
'date' => 'Tanggal',
|
||||
'empty-logs' => 'Daftar Log Kosong',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/id/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/id/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Semua',
|
||||
'emergency' => 'Darurat',
|
||||
'alert' => 'Waspada',
|
||||
'critical' => 'Kritis',
|
||||
'error' => 'Kesalahan',
|
||||
'warning' => 'Peringatan',
|
||||
'notice' => 'Pemberitahuan',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/it/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/it/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Tutti',
|
||||
'date' => 'Data',
|
||||
'empty-logs' => 'L\'elenco dei log è vuoto!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/it/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/it/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Tutti',
|
||||
'emergency' => 'Emergenza',
|
||||
'alert' => 'Allarme',
|
||||
'critical' => 'Critico',
|
||||
'error' => 'Errore',
|
||||
'warning' => 'Avviso',
|
||||
'notice' => 'Notifica',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/ja/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/ja/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'すべて',
|
||||
'date' => '日付',
|
||||
'empty-logs' => 'ログリストが空です!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/ja/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/ja/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'すべて',
|
||||
'emergency' => '緊急',
|
||||
'alert' => '警戒',
|
||||
'critical' => '致命的',
|
||||
'error' => 'エラー',
|
||||
'warning' => '警告',
|
||||
'notice' => '通知',
|
||||
'info' => '情報',
|
||||
'debug' => 'デバッグ',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/ko/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/ko/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => '전체',
|
||||
'date' => '날짜',
|
||||
'empty-logs' => '로그가 없습니다.',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/ko/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/ko/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => '전체',
|
||||
'emergency' => '긴급',
|
||||
'alert' => '경고',
|
||||
'critical' => '심각',
|
||||
'error' => '오류',
|
||||
'warning' => '주의',
|
||||
'notice' => '알림',
|
||||
'info' => '정보',
|
||||
'debug' => '디버그',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/ms/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/ms/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Semua',
|
||||
'date' => 'Tarikh',
|
||||
'empty-logs' => 'Senarai log kosong!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/ms/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/ms/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Semua',
|
||||
'emergency' => 'Kecemasan',
|
||||
'alert' => 'Waspada',
|
||||
'critical' => 'Kritikal',
|
||||
'error' => 'Ralat',
|
||||
'warning' => 'Amaran',
|
||||
'notice' => 'Notis',
|
||||
'info' => 'Info',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/nl/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/nl/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Alles',
|
||||
'date' => 'Datum',
|
||||
'empty-logs' => 'De lijst met logs is leeg!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/nl/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/nl/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Alle',
|
||||
'emergency' => 'Noodgeval',
|
||||
'alert' => 'Alarm',
|
||||
'critical' => 'Cruciaal',
|
||||
'error' => 'Error',
|
||||
'warning' => 'Waarschuwing',
|
||||
'notice' => 'Opmerking',
|
||||
'info' => 'Informatie',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/pl/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/pl/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Wszystkie',
|
||||
'date' => 'Data',
|
||||
'empty-logs' => 'Lista logów jest pusta!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/pl/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/pl/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Wszystkie',
|
||||
'emergency' => 'Awaryjne',
|
||||
'alert' => 'Alerty',
|
||||
'critical' => 'Krytyczne',
|
||||
'error' => 'Błędy',
|
||||
'warning' => 'Ostrzeżenia',
|
||||
'notice' => 'Warte uwagi',
|
||||
'info' => 'Informacje',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/pt-BR/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/pt-BR/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Todos',
|
||||
'date' => 'Data',
|
||||
'empty-logs' => 'A lista de logs está vazia!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/pt-BR/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/pt-BR/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Todos',
|
||||
'emergency' => 'Emergência',
|
||||
'alert' => 'Alerta',
|
||||
'critical' => 'Crítico',
|
||||
'error' => 'Erro',
|
||||
'warning' => 'Aviso',
|
||||
'notice' => 'Notícia',
|
||||
'info' => 'Informação',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/ro/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/ro/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Toate',
|
||||
'date' => 'Dată',
|
||||
'empty-logs' => 'Nu există niciun log!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/ro/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/ro/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Toate',
|
||||
'emergency' => 'Urgență',
|
||||
'alert' => 'Alertă',
|
||||
'critical' => 'Critic',
|
||||
'error' => 'Eroare',
|
||||
'warning' => 'Pericol',
|
||||
'notice' => 'Avertisment',
|
||||
'info' => 'Informare',
|
||||
'debug' => 'Depanare',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/ru/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/ru/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Все',
|
||||
'date' => 'Дата',
|
||||
'empty-logs' => 'Список журналов пуст!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/ru/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/ru/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Все',
|
||||
'emergency' => 'Аварийная',
|
||||
'alert' => 'Предупреждение',
|
||||
'critical' => 'Критический',
|
||||
'error' => 'Ошибка',
|
||||
'warning' => 'Предупреждение',
|
||||
'notice' => 'Уведомление',
|
||||
'info' => 'Информация',
|
||||
'debug' => 'Отладка',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/sv/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/sv/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Alla',
|
||||
'date' => 'Datum',
|
||||
'empty-logs' => 'Det finns inga loggar att visa.',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/sv/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/sv/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Alla',
|
||||
'emergency' => 'Akut',
|
||||
'alert' => 'Alarmerande',
|
||||
'critical' => 'Kritisk',
|
||||
'error' => 'Error',
|
||||
'warning' => 'Varning',
|
||||
'notice' => 'Notis',
|
||||
'info' => 'Information',
|
||||
'debug' => 'Debug',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/th/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/th/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'ทั้งหมด',
|
||||
'date' => 'วันที่',
|
||||
'empty-logs' => 'ไม่มีรายการล็อก!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/th/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/th/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'ทั้งหมด',
|
||||
'emergency' => 'ฉุกเฉิน',
|
||||
'alert' => 'วิกฤติ',
|
||||
'critical' => 'ร้ายแรง',
|
||||
'error' => 'ข้อผิดพลาด',
|
||||
'warning' => 'คำเตือน',
|
||||
'notice' => 'ประกาศ',
|
||||
'info' => 'ข้อมูล',
|
||||
'debug' => 'ดีบัก',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/tr/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/tr/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Tümü',
|
||||
'date' => 'Tarih',
|
||||
'empty-logs' => 'Günlük listesi boş!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/tr/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/tr/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Tümü',
|
||||
'emergency' => 'Acil',
|
||||
'alert' => 'Alarm',
|
||||
'critical' => 'Kritik',
|
||||
'error' => 'Hata',
|
||||
'warning' => 'Uyarı',
|
||||
'notice' => 'Bildirim',
|
||||
'info' => 'Bilgi',
|
||||
'debug' => 'Hata ayıklama',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/uk/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/uk/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Всі',
|
||||
'date' => 'Дата',
|
||||
'empty-logs' => 'Список журналів порожній!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/uk/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/uk/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'Всі',
|
||||
'emergency' => 'Аварійна',
|
||||
'alert' => 'Попередження',
|
||||
'critical' => 'Критична',
|
||||
'error' => 'Помилка',
|
||||
'warning' => 'Попереждення',
|
||||
'notice' => 'Сповіщення',
|
||||
'info' => 'Інформація',
|
||||
'debug' => 'Відладка',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/zh-TW/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/zh-TW/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => '全部',
|
||||
'date' => '日期',
|
||||
'empty-logs' => '列表中沒有任何紀錄!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/zh-TW/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/zh-TW/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => '全部',
|
||||
'emergency' => '緊急',
|
||||
'alert' => '警報',
|
||||
'critical' => '嚴重',
|
||||
'error' => '錯誤',
|
||||
'warning' => '警告',
|
||||
'notice' => '注意',
|
||||
'info' => '訊息',
|
||||
'debug' => '除錯',
|
||||
];
|
||||
7
resources/lang/vendor/log-viewer/zh/general.php
vendored
Normal file
7
resources/lang/vendor/log-viewer/zh/general.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => '全部',
|
||||
'date' => '日期',
|
||||
'empty-logs' => '日志列表为空!',
|
||||
];
|
||||
13
resources/lang/vendor/log-viewer/zh/levels.php
vendored
Normal file
13
resources/lang/vendor/log-viewer/zh/levels.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => '全部',
|
||||
'emergency' => '危急',
|
||||
'alert' => '紧急',
|
||||
'critical' => '严重',
|
||||
'error' => '错误',
|
||||
'warning' => '警告',
|
||||
'notice' => '注意',
|
||||
'info' => '信息',
|
||||
'debug' => '调试',
|
||||
];
|
||||
1
resources/sass/app.scss
Normal file
1
resources/sass/app.scss
Normal file
@@ -0,0 +1 @@
|
||||
//
|
||||
5
resources/views/errors/401.blade.php
Normal file
5
resources/views/errors/401.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Unauthorized'))
|
||||
@section('code', '401')
|
||||
@section('message', __('Unauthorized'))
|
||||
5
resources/views/errors/403.blade.php
Normal file
5
resources/views/errors/403.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Forbidden'))
|
||||
@section('code', '403')
|
||||
@section('message', __($exception->getMessage() ?: 'Forbidden'))
|
||||
5
resources/views/errors/404.blade.php
Normal file
5
resources/views/errors/404.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Not Found'))
|
||||
@section('code', '404')
|
||||
@section('message', __('Not Found'))
|
||||
5
resources/views/errors/419.blade.php
Normal file
5
resources/views/errors/419.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Page Expired'))
|
||||
@section('code', '419')
|
||||
@section('message', __('Page Expired'))
|
||||
5
resources/views/errors/429.blade.php
Normal file
5
resources/views/errors/429.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Too Many Requests'))
|
||||
@section('code', '429')
|
||||
@section('message', __('Too Many Requests'))
|
||||
5
resources/views/errors/500.blade.php
Normal file
5
resources/views/errors/500.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Server Error'))
|
||||
@section('code', '500')
|
||||
@section('message', __('Server Error'))
|
||||
5
resources/views/errors/503.blade.php
Normal file
5
resources/views/errors/503.blade.php
Normal file
@@ -0,0 +1,5 @@
|
||||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Service Unavailable'))
|
||||
@section('code', '503')
|
||||
@section('message', __($exception->getMessage() ?: 'Service Unavailable'))
|
||||
486
resources/views/errors/illustrated-layout.blade.php
Normal file
486
resources/views/errors/illustrated-layout.blade.php
Normal file
@@ -0,0 +1,486 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<title>@yield('title')</title>
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
||||
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
|
||||
|
||||
<!-- Styles -->
|
||||
<style>
|
||||
html {
|
||||
line-height: 1.15;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
header,
|
||||
nav,
|
||||
section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
figcaption,
|
||||
main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
-webkit-text-decoration-skip: objects;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
line-height: 1.15;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
button {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
button,
|
||||
html [type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
button:-moz-focusring,
|
||||
[type="button"]:-moz-focusring,
|
||||
[type="reset"]:-moz-focusring,
|
||||
[type="submit"]:-moz-focusring {
|
||||
outline: 1px dotted ButtonText;
|
||||
}
|
||||
|
||||
legend {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
display: table;
|
||||
max-width: 100%;
|
||||
padding: 0;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
[type="checkbox"],
|
||||
[type="radio"] {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
[type="search"]::-webkit-search-cancel-button,
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
menu {
|
||||
display: block;
|
||||
}
|
||||
|
||||
canvas {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
-webkit-box-sizing: inherit;
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
button {
|
||||
background: transparent;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
outline: 1px dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
}
|
||||
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: #dae1e7;
|
||||
}
|
||||
|
||||
button,
|
||||
[type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
input::-webkit-input-placeholder {
|
||||
color: inherit;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
input:-ms-input-placeholder {
|
||||
color: inherit;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
input::-ms-input-placeholder {
|
||||
color: inherit;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
input::placeholder {
|
||||
color: inherit;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
button,
|
||||
[role=button] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bg-transparent {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.bg-white {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.bg-teal-light {
|
||||
background-color: #64d5ca;
|
||||
}
|
||||
|
||||
.bg-blue-dark {
|
||||
background-color: #2779bd;
|
||||
}
|
||||
|
||||
.bg-indigo-light {
|
||||
background-color: #7886d7;
|
||||
}
|
||||
|
||||
.bg-purple-light {
|
||||
background-color: #a779e9;
|
||||
}
|
||||
|
||||
.bg-no-repeat {
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.bg-cover {
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.border-grey-light {
|
||||
border-color: #dae1e7;
|
||||
}
|
||||
|
||||
.hover\:border-grey:hover {
|
||||
border-color: #b8c2cc;
|
||||
}
|
||||
|
||||
.rounded-lg {
|
||||
border-radius: .5rem;
|
||||
}
|
||||
|
||||
.border-2 {
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.items-center {
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.justify-center {
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.font-sans {
|
||||
font-family: Nunito, sans-serif;
|
||||
}
|
||||
|
||||
.font-light {
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.font-bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.font-black {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
.h-1 {
|
||||
height: .25rem;
|
||||
}
|
||||
|
||||
.leading-normal {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.m-8 {
|
||||
margin: 2rem;
|
||||
}
|
||||
|
||||
.my-3 {
|
||||
margin-top: .75rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
.mb-8 {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.max-w-sm {
|
||||
max-width: 30rem;
|
||||
}
|
||||
|
||||
.min-h-screen {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.py-3 {
|
||||
padding-top: .75rem;
|
||||
padding-bottom: .75rem;
|
||||
}
|
||||
|
||||
.px-6 {
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
|
||||
.pb-full {
|
||||
padding-bottom: 100%;
|
||||
}
|
||||
|
||||
.absolute {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pin {
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.text-black {
|
||||
color: #22292f;
|
||||
}
|
||||
|
||||
.text-grey-darkest {
|
||||
color: #3d4852;
|
||||
}
|
||||
|
||||
.text-grey-darker {
|
||||
color: #606f7b;
|
||||
}
|
||||
|
||||
.text-2xl {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.text-5xl {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.uppercase {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.antialiased {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.tracking-wide {
|
||||
letter-spacing: .05em;
|
||||
}
|
||||
|
||||
.w-16 {
|
||||
width: 4rem;
|
||||
}
|
||||
|
||||
.w-full {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.md\:bg-left {
|
||||
background-position: left;
|
||||
}
|
||||
|
||||
.md\:bg-right {
|
||||
background-position: right;
|
||||
}
|
||||
|
||||
.md\:flex {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.md\:my-6 {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.md\:min-h-screen {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.md\:pb-0 {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.md\:text-3xl {
|
||||
font-size: 1.875rem;
|
||||
}
|
||||
|
||||
.md\:text-15xl {
|
||||
font-size: 9rem;
|
||||
}
|
||||
|
||||
.md\:w-1\/2 {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.lg\:bg-center {
|
||||
background-position: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="antialiased font-sans">
|
||||
<div class="md:flex min-h-screen">
|
||||
<div class="w-full md:w-1/2 bg-white flex items-center justify-center">
|
||||
<div class="max-w-sm m-8">
|
||||
<div class="text-black text-5xl md:text-15xl font-black">
|
||||
@yield('code', __('Oh no'))
|
||||
</div>
|
||||
|
||||
<div class="w-16 h-1 bg-purple-light my-3 md:my-6"></div>
|
||||
|
||||
<p class="text-grey-darker text-2xl md:text-3xl font-light mb-8 leading-normal">
|
||||
@yield('message')
|
||||
</p>
|
||||
|
||||
<a href="{{ app('router')->has('home') ? route('home') : url('/') }}">
|
||||
<button class="bg-transparent text-grey-darkest font-bold uppercase tracking-wide py-3 px-6 border-2 border-grey-light hover:border-grey rounded-lg">
|
||||
{{ __('Go Home') }}
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative pb-full md:flex md:pb-0 md:min-h-screen w-full md:w-1/2">
|
||||
@yield('image')
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
57
resources/views/errors/layout.blade.php
Normal file
57
resources/views/errors/layout.blade.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>@yield('title')</title>
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
||||
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- Styles -->
|
||||
<style>
|
||||
html, body {
|
||||
background-color: #fff;
|
||||
color: #636b6f;
|
||||
font-family: 'Nunito', sans-serif;
|
||||
font-weight: 100;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.full-height {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.position-ref {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 36px;
|
||||
padding: 20px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="flex-center position-ref full-height">
|
||||
<div class="content">
|
||||
<div class="title">
|
||||
@yield('message')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
62
resources/views/errors/minimal.blade.php
Normal file
62
resources/views/errors/minimal.blade.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>@yield('title')</title>
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
||||
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
|
||||
|
||||
<!-- Styles -->
|
||||
<style>
|
||||
html, body {
|
||||
background-color: #fff;
|
||||
color: #636b6f;
|
||||
font-family: 'Nunito', sans-serif;
|
||||
font-weight: 100;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.full-height {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.position-ref {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.code {
|
||||
border-right: 2px solid;
|
||||
font-size: 26px;
|
||||
padding: 0 15px 0 15px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.message {
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="flex-center position-ref full-height">
|
||||
<div class="code">
|
||||
@yield('code')
|
||||
</div>
|
||||
|
||||
<div class="message" style="padding: 10px;">
|
||||
@yield('message')
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
20
resources/views/vendor/laravel-menu/bootstrap-navbar-items.blade.php
vendored
Normal file
20
resources/views/vendor/laravel-menu/bootstrap-navbar-items.blade.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
@foreach($items as $item)
|
||||
<li @lm_attrs($item) @if($item->hasChildren()) class="nav-item dropdown" @endif @lm_endattrs>
|
||||
@if($item->link) <a @lm_attrs($item->link) @if($item->hasChildren()) class="nav-link dropdown-toggle" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" @else class="nav-link" @endif @lm_endattrs href="{!! $item->url() !!}">
|
||||
{!! $item->title !!}
|
||||
@if($item->hasChildren()) <b class="caret"></b> @endif
|
||||
</a>
|
||||
@else
|
||||
<span class="navbar-text">{!! $item->title !!}</span>
|
||||
@endif
|
||||
@if($item->hasChildren())
|
||||
<ul class="dropdown-menu">
|
||||
@include(config('laravel-menu.views.bootstrap-items'),
|
||||
array('items' => $item->children()))
|
||||
</ul>
|
||||
@endif
|
||||
</li>
|
||||
@if($item->divider)
|
||||
<li{!! Lavary\Menu\Builder::attributes($item->divider) !!}></li>
|
||||
@endif
|
||||
@endforeach
|
||||
342
resources/views/vendor/log-viewer/bootstrap-3/_master.blade.php
vendored
Normal file
342
resources/views/vendor/log-viewer/bootstrap-3/_master.blade.php
vendored
Normal file
@@ -0,0 +1,342 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ app()->getLocale() }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>LogViewer - Created by ARCANEDEV</title>
|
||||
<meta name="description" content="LogViewer">
|
||||
<meta name="author" content="ARCANEDEV">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
|
||||
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,700|Source+Sans+Pro:400,600' rel='stylesheet' type='text/css'>
|
||||
<style>
|
||||
html {
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
padding-top: 50px;
|
||||
/* Margin bottom by footer height */
|
||||
margin-bottom: 50px;
|
||||
font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, sans-serif;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
font-family: 'Montserrat', 'Helvetica Neue', Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.sub-header {
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #EEE;
|
||||
}
|
||||
|
||||
.navbar-inverse {
|
||||
background-color: #1a237e;
|
||||
border-color: #1a237e;
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-nav>.active>a,
|
||||
.navbar-inverse .navbar-nav>.active>a:focus,
|
||||
.navbar-inverse .navbar-nav>.active>a:hover {
|
||||
background-color: #3949ab;
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-brand {
|
||||
color: #c5cae9;
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-nav>li>a {
|
||||
color: #c5cae9;
|
||||
}
|
||||
|
||||
.navbar-fixed-top {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.main {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.main .page-header {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
footer.main-footer {
|
||||
position: absolute;
|
||||
padding: 10px 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background-color: #e8eaf6;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
footer.main-footer p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer.main-footer i.fa.fa-heart {
|
||||
color: #C62828;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination > li > a,
|
||||
.pagination > li > span {
|
||||
padding: 4px 10px;
|
||||
}
|
||||
|
||||
.table-condensed > tbody > tr > td.stack,
|
||||
.table-condensed > tfoot > tr > td.stack,
|
||||
.table-condensed > thead > tr > td.stack {
|
||||
padding: 0;
|
||||
border-top: none;
|
||||
background-color: #F6F6F6;
|
||||
border-top: 1px solid #D1D1D1;
|
||||
max-width: 0;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.table-condensed > tbody > tr > td > p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.stack-content {
|
||||
padding: 8px;
|
||||
color: #AE0E0E;
|
||||
font-family: consolas, Menlo, Courier, monospace;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
white-space: pre-line;
|
||||
}
|
||||
|
||||
.info-box.level {
|
||||
display: block;
|
||||
padding: 0;
|
||||
margin-bottom: 15px;
|
||||
min-height: 70px;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
box-shadow: 0 1px 1px rgba(0,0,0,0.1);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.info-box.level .info-box-text,
|
||||
.info-box.level .info-box-number,
|
||||
.info-box.level .info-box-icon > i {
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.info-box.level .info-box-text {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.info-box.level .info-box-content {
|
||||
padding: 5px 10px;
|
||||
margin-left: 70px;
|
||||
}
|
||||
|
||||
.info-box.level .info-box-number {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.info-box.level .info-box-icon {
|
||||
border-radius: 2px 0 0 2px;
|
||||
display: block;
|
||||
float: left;
|
||||
height: 70px; width: 70px;
|
||||
text-align: center;
|
||||
font-size: 40px;
|
||||
line-height: 70px;
|
||||
background: rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.info-box.level .progress {
|
||||
background: rgba(0,0,0,0.2);
|
||||
margin: 5px -10px 5px -10px;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.info-box.level .progress .progress-bar {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.info-box.level-empty {
|
||||
opacity: .6;
|
||||
-webkit-filter: grayscale(1);
|
||||
-moz-filter: grayscale(1);
|
||||
-ms-filter: grayscale(1);
|
||||
filter: grayscale(1);
|
||||
-webkit-transition: all 0.2s ease-in-out;
|
||||
-moz-transition: all 0.2s ease-in-out;
|
||||
-o-transition: all 0.2s ease-in-out;
|
||||
transition: all 0.2s ease-in-out;
|
||||
-webkit-transition-property: -webkit-filter, opacity;
|
||||
-moz-transition-property: -moz-filter, opacity;
|
||||
-o-transition-property: filter, opacity;
|
||||
transition-property: -webkit-filter, -moz-filter, -o-filter, filter, opacity;
|
||||
}
|
||||
|
||||
.info-box.level-empty:hover {
|
||||
opacity: 1;
|
||||
-webkit-filter: grayscale(0);
|
||||
-moz-filter: grayscale(0);
|
||||
-ms-filter: grayscale(0);
|
||||
filter: grayscale(0);
|
||||
}
|
||||
|
||||
.level {
|
||||
padding: 2px 6px;
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
|
||||
border-radius: 2px;
|
||||
font-size: .9em;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.badge.level-all,
|
||||
.badge.level-emergency,
|
||||
.badge.level-alert,
|
||||
.badge.level-critical,
|
||||
.badge.level-error,
|
||||
.badge.level-warning,
|
||||
.badge.level-notice,
|
||||
.badge.level-info,
|
||||
.badge.level-debug,
|
||||
.level, .level i,
|
||||
.info-box.level-all,
|
||||
.info-box.level-emergency,
|
||||
.info-box.level-alert,
|
||||
.info-box.level-critical,
|
||||
.info-box.level-error,
|
||||
.info-box.level-warning,
|
||||
.info-box.level-notice,
|
||||
.info-box.level-info,
|
||||
.info-box.level-debug {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.label-env {
|
||||
font-size: .85em;
|
||||
}
|
||||
|
||||
.badge.level-all, .level.level-all, .info-box.level-all {
|
||||
background-color: {{ log_styler()->color('all') }};
|
||||
}
|
||||
|
||||
.badge.level-emergency, .level.level-emergency, .info-box.level-emergency {
|
||||
background-color: {{ log_styler()->color('emergency') }};
|
||||
}
|
||||
|
||||
.badge.level-alert, .level.level-alert, .info-box.level-alert {
|
||||
background-color: {{ log_styler()->color('alert') }};
|
||||
}
|
||||
|
||||
.badge.level-critical, .level.level-critical, .info-box.level-critical {
|
||||
background-color: {{ log_styler()->color('critical') }};
|
||||
}
|
||||
|
||||
.badge.level-error, .level.level-error, .info-box.level-error {
|
||||
background-color: {{ log_styler()->color('error') }};
|
||||
}
|
||||
|
||||
.badge.level-warning, .level.level-warning, .info-box.level-warning {
|
||||
background-color: {{ log_styler()->color('warning') }};
|
||||
}
|
||||
|
||||
.badge.level-notice, .level.level-notice, .info-box.level-notice {
|
||||
background-color: {{ log_styler()->color('notice') }};
|
||||
}
|
||||
|
||||
.badge.level-info, .level.level-info, .info-box.level-info {
|
||||
background-color: {{ log_styler()->color('info') }};
|
||||
}
|
||||
|
||||
.badge.level-debug, .level.level-debug, .info-box.level-debug {
|
||||
background-color: {{ log_styler()->color('debug') }};
|
||||
}
|
||||
|
||||
.badge.level-empty, .level.level-empty {
|
||||
background-color: {{ log_styler()->color('empty') }};
|
||||
}
|
||||
|
||||
.badge.label-env, .label.label-env {
|
||||
background-color: #6A1B9A;
|
||||
}
|
||||
</style>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
{{-- Navbar --}}
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a href="{{ route('log-viewer::dashboard') }}" class="navbar-brand">
|
||||
<i class="fa fa-fw fa-book"></i> LogViewer
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="{{ Route::is('log-viewer::dashboard') ? 'active' : '' }}">
|
||||
<a href="{{ route('log-viewer::dashboard') }}">
|
||||
<i class="fa fa-dashboard"></i> Dashboard
|
||||
</a>
|
||||
</li>
|
||||
<li class="{{ Route::is('log-viewer::logs.list') ? 'active' : '' }}">
|
||||
<a href="{{ route('log-viewer::logs.list') }}">
|
||||
<i class="fa fa-archive"></i> Logs
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{{-- Main container --}}
|
||||
<main class="container-fluid">
|
||||
@yield('content')
|
||||
</main>
|
||||
|
||||
{{-- Footer --}}
|
||||
<footer class="main-footer">
|
||||
<div class="container">
|
||||
<p class="text-muted pull-left">
|
||||
LogViewer - <span class="label label-info">version {{ log_viewer()->version() }}</span>
|
||||
</p>
|
||||
<p class="text-muted pull-right">
|
||||
Created with <i class="fa fa-heart"></i> by ARCANEDEV <sup>©</sup>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
{{-- Scripts --}}
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js"></script>
|
||||
<script>
|
||||
Chart.defaults.global.responsive = true;
|
||||
Chart.defaults.global.scaleFontFamily = "'Source Sans Pro'";
|
||||
Chart.defaults.global.animationEasing = "easeOutQuart";
|
||||
</script>
|
||||
@yield('modals')
|
||||
@yield('scripts')
|
||||
</body>
|
||||
</html>
|
||||
52
resources/views/vendor/log-viewer/bootstrap-3/dashboard.blade.php
vendored
Normal file
52
resources/views/vendor/log-viewer/bootstrap-3/dashboard.blade.php
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
@extends('log-viewer::bootstrap-3._master')
|
||||
|
||||
@section('content')
|
||||
<h1 class="page-header">Dashboard</h1>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<canvas id="stats-doughnut-chart" height="300"></canvas>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<section class="box-body">
|
||||
<div class="row">
|
||||
@foreach($percents as $level => $item)
|
||||
<div class="col-md-4">
|
||||
<div class="info-box level level-{{ $level }} {{ $item['count'] === 0 ? 'level-empty' : '' }}">
|
||||
<span class="info-box-icon">
|
||||
{{ log_styler()->icon($level) }}
|
||||
</span>
|
||||
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">{{ $item['name'] }}</span>
|
||||
<span class="info-box-number">
|
||||
{{ $item['count'] }} entries - {!! $item['percent'] !!} %
|
||||
</span>
|
||||
<div class="progress">
|
||||
<div class="progress-bar" style="width: {{ $item['percent'] }}%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
$(function() {
|
||||
new Chart($('canvas#stats-doughnut-chart'), {
|
||||
type: 'doughnut',
|
||||
data: {!! $chartData !!},
|
||||
options: {
|
||||
legend: {
|
||||
position: 'bottom'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
152
resources/views/vendor/log-viewer/bootstrap-3/logs.blade.php
vendored
Normal file
152
resources/views/vendor/log-viewer/bootstrap-3/logs.blade.php
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
@extends('log-viewer::bootstrap-3._master')
|
||||
|
||||
<?php /** @var Illuminate\Pagination\LengthAwarePaginator $rows */ ?>
|
||||
|
||||
@section('content')
|
||||
<h1 class="page-header">Logs</h1>
|
||||
|
||||
{{ $rows->render() }}
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-condensed table-hover table-stats">
|
||||
<thead>
|
||||
<tr>
|
||||
@foreach($headers as $key => $header)
|
||||
<th class="{{ $key == 'date' ? 'text-left' : 'text-center' }}">
|
||||
@if ($key == 'date')
|
||||
<span class="label label-info">{{ $header }}</span>
|
||||
@else
|
||||
<span class="level level-{{ $key }}">
|
||||
{{ log_styler()->icon($key) }} {{ $header }}
|
||||
</span>
|
||||
@endif
|
||||
</th>
|
||||
@endforeach
|
||||
<th class="text-right">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($rows as $date => $row)
|
||||
<tr>
|
||||
@foreach($row as $key => $value)
|
||||
<td class="{{ $key == 'date' ? 'text-left' : 'text-center' }}">
|
||||
@if ($key == 'date')
|
||||
<span class="label label-primary">{{ $value }}</span>
|
||||
@elseif ($value == 0)
|
||||
<span class="level level-empty">{{ $value }}</span>
|
||||
@else
|
||||
<a href="{{ route('log-viewer::logs.filter', [$date, $key]) }}">
|
||||
<span class="level level-{{ $key }}">{{ $value }}</span>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
@endforeach
|
||||
<td class="text-right">
|
||||
<a href="{{ route('log-viewer::logs.show', [$date]) }}" class="btn btn-xs btn-info">
|
||||
<i class="fa fa-search"></i>
|
||||
</a>
|
||||
<a href="{{ route('log-viewer::logs.download', [$date]) }}" class="btn btn-xs btn-success">
|
||||
<i class="fa fa-download"></i>
|
||||
</a>
|
||||
<a href="#delete-log-modal" class="btn btn-xs btn-danger" data-log-date="{{ $date }}">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="11" class="text-center">
|
||||
<span class="label label-default">{{ trans('log-viewer::general.empty-logs') }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{ $rows->render() }}
|
||||
@endsection
|
||||
|
||||
@section('modals')
|
||||
{{-- DELETE MODAL --}}
|
||||
<div id="delete-log-modal" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<form id="delete-log-form" action="{{ route('log-viewer::logs.delete') }}" method="POST">
|
||||
<input type="hidden" name="_method" value="DELETE">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<input type="hidden" name="date" value="">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">DELETE LOG FILE</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-sm btn-default pull-left" data-dismiss="modal">Cancel</button>
|
||||
<button type="submit" class="btn btn-sm btn-danger" data-loading-text="Loading…">DELETE FILE</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
$(function () {
|
||||
var deleteLogModal = $('div#delete-log-modal'),
|
||||
deleteLogForm = $('form#delete-log-form'),
|
||||
submitBtn = deleteLogForm.find('button[type=submit]');
|
||||
|
||||
$("a[href=#delete-log-modal]").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
var date = $(this).data('log-date');
|
||||
deleteLogForm.find('input[name=date]').val(date);
|
||||
deleteLogModal.find('.modal-body p').html(
|
||||
'Are you sure you want to <span class="label label-danger">DELETE</span> this log file <span class="label label-primary">' + date + '</span> ?'
|
||||
);
|
||||
|
||||
deleteLogModal.modal('show');
|
||||
});
|
||||
|
||||
deleteLogForm.on('submit', function(event) {
|
||||
event.preventDefault();
|
||||
submitBtn.button('loading');
|
||||
|
||||
$.ajax({
|
||||
url: $(this).attr('action'),
|
||||
type: $(this).attr('method'),
|
||||
dataType: 'json',
|
||||
data: $(this).serialize(),
|
||||
success: function(data) {
|
||||
submitBtn.button('reset');
|
||||
if (data.result === 'success') {
|
||||
deleteLogModal.modal('hide');
|
||||
location.reload();
|
||||
}
|
||||
else {
|
||||
alert('AJAX ERROR ! Check the console !');
|
||||
console.error(data);
|
||||
}
|
||||
},
|
||||
error: function(xhr, textStatus, errorThrown) {
|
||||
alert('AJAX ERROR ! Check the console !');
|
||||
console.error(errorThrown);
|
||||
submitBtn.button('reset');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
deleteLogModal.on('hidden.bs.modal', function() {
|
||||
deleteLogForm.find('input[name=date]').val('');
|
||||
deleteLogModal.find('.modal-body p').html('');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
287
resources/views/vendor/log-viewer/bootstrap-3/show.blade.php
vendored
Normal file
287
resources/views/vendor/log-viewer/bootstrap-3/show.blade.php
vendored
Normal file
@@ -0,0 +1,287 @@
|
||||
<?php
|
||||
/**
|
||||
* @var Arcanedev\LogViewer\Entities\Log $log
|
||||
* @var Illuminate\Pagination\LengthAwarePaginator $entries
|
||||
* @var string|null $query
|
||||
*/
|
||||
?>
|
||||
|
||||
@extends('log-viewer::bootstrap-3._master')
|
||||
|
||||
@section('content')
|
||||
<h1 class="page-header">Log [{{ $log->date }}]</h1>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><i class="fa fa-fw fa-flag"></i> Levels</div>
|
||||
<ul class="list-group">
|
||||
@foreach($log->menu() as $levelKey => $item)
|
||||
@if ($item['count'] === 0)
|
||||
<a href="#" class="list-group-item disabled">
|
||||
<span class="badge">
|
||||
{{ $item['count'] }}
|
||||
</span>
|
||||
{!! $item['icon'] !!} {{ $item['name'] }}
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ $item['url'] }}" class="list-group-item {{ $levelKey }}">
|
||||
<span class="badge level-{{ $levelKey }}">
|
||||
{{ $item['count'] }}
|
||||
</span>
|
||||
<span class="level level-{{ $levelKey }}">
|
||||
{!! $item['icon'] !!} {{ $item['name'] }}
|
||||
</span>
|
||||
</a>
|
||||
@endif
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
{{-- Log Details --}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
Log info :
|
||||
|
||||
<div class="group-btns pull-right">
|
||||
<a href="{{ route('log-viewer::logs.download', [$log->date]) }}" class="btn btn-xs btn-success">
|
||||
<i class="fa fa-download"></i> DOWNLOAD
|
||||
</a>
|
||||
<a href="#delete-log-modal" class="btn btn-xs btn-danger" data-toggle="modal">
|
||||
<i class="fa fa-trash-o"></i> DELETE
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>File path :</td>
|
||||
<td colspan="5">{{ $log->getPath() }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Log entries :</td>
|
||||
<td>
|
||||
<span class="label label-primary">{{ $entries->total() }}</span>
|
||||
</td>
|
||||
<td>Size :</td>
|
||||
<td>
|
||||
<span class="label label-primary">{{ $log->size() }}</span>
|
||||
</td>
|
||||
<td>Created at :</td>
|
||||
<td>
|
||||
<span class="label label-primary">{{ $log->createdAt() }}</span>
|
||||
</td>
|
||||
<td>Updated at :</td>
|
||||
<td>
|
||||
<span class="label label-primary">{{ $log->updatedAt() }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
{{-- Search --}}
|
||||
<form action="{{ route('log-viewer::logs.search', [$log->date, $level]) }}" method="GET">
|
||||
<div class=form-group">
|
||||
<div class="input-group">
|
||||
<input id="query" name="query" class="form-control" value="{{ $query }}" placeholder="Type here to search">
|
||||
<span class="input-group-btn">
|
||||
@unless (is_null($query))
|
||||
<a href="{{ route('log-viewer::logs.show', [$log->date]) }}" class="btn btn-default">
|
||||
({{ $entries->count() }} results) <span class="glyphicon glyphicon-remove"></span>
|
||||
</a>
|
||||
@endunless
|
||||
<button id="search-btn" class="btn btn-primary">
|
||||
<span class="glyphicon glyphicon-search"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Log Entries --}}
|
||||
<div class="panel panel-default">
|
||||
@if ($entries->hasPages())
|
||||
<div class="panel-heading">
|
||||
{{ $entries->appends(compact('query'))->render() }}
|
||||
|
||||
<span class="label label-info pull-right">
|
||||
Page {{ $entries->currentPage() }} of {{ $entries->lastPage() }}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="table-responsive">
|
||||
<table id="entries" class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ENV</th>
|
||||
<th style="width: 120px;">Level</th>
|
||||
<th style="width: 65px;">Time</th>
|
||||
<th>Header</th>
|
||||
<th class="text-right">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($entries as $key => $entry)
|
||||
<?php /** @var Arcanedev\LogViewer\Entities\LogEntry $entry */ ?>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="label label-env">{{ $entry->env }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="level level-{{ $entry->level }}">{!! $entry->level() !!}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="label label-default">
|
||||
{{ $entry->datetime->format('H:i:s') }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<p>{{ $entry->header }}</p>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
@if ($entry->hasStack())
|
||||
<a class="btn btn-xs btn-default" role="button" data-toggle="collapse"
|
||||
href="#log-stack-{{ $key }}" aria-expanded="false" aria-controls="log-stack-{{ $key }}">
|
||||
<i class="fa fa-toggle-on"></i> Stack
|
||||
</a>
|
||||
@endif
|
||||
|
||||
@if ($entry->hasContext())
|
||||
<a class="btn btn-xs btn-default" role="button" data-toggle="collapse"
|
||||
href="#log-context-{{ $key }}" aria-expanded="false" aria-controls="log-context-{{ $key }}">
|
||||
<i class="fa fa-toggle-on"></i> Context
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@if ($entry->hasStack() || $entry->hasContext())
|
||||
<tr>
|
||||
<td colspan="5" class="stack">
|
||||
@if ($entry->hasStack())
|
||||
<div class="stack-content collapse" id="log-stack-{{ $key }}">
|
||||
{!! $entry->stack() !!}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($entry->hasContext())
|
||||
<div class="stack-content collapse" id="log-context-{{ $key }}">
|
||||
<pre>{{ $entry->context() }}</pre>
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="5" class="text-center">
|
||||
<span class="label label-default">{{ trans('log-viewer::general.empty-logs') }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@if ($entries->hasPages())
|
||||
<div class="panel-footer">
|
||||
{!! $entries->appends(compact('query'))->render() !!}
|
||||
|
||||
<span class="label label-info pull-right">
|
||||
Page {{ $entries->currentPage() }} of {{ $entries->lastPage() }}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('modals')
|
||||
{{-- DELETE MODAL --}}
|
||||
<div id="delete-log-modal" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<form id="delete-log-form" action="{{ route('log-viewer::logs.delete') }}" method="POST">
|
||||
<input type="hidden" name="_method" value="DELETE">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<input type="hidden" name="date" value="{{ $log->date }}">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">DELETE LOG FILE</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Are you sure you want to <span class="label label-danger">DELETE</span> this log file <span class="label label-primary">{{ $log->date }}</span> ?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-sm btn-default pull-left" data-dismiss="modal">Cancel</button>
|
||||
<button type="submit" class="btn btn-sm btn-danger" data-loading-text="Loading…">DELETE FILE</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
$(function () {
|
||||
var deleteLogModal = $('div#delete-log-modal'),
|
||||
deleteLogForm = $('form#delete-log-form'),
|
||||
submitBtn = deleteLogForm.find('button[type=submit]');
|
||||
|
||||
deleteLogForm.on('submit', function(event) {
|
||||
event.preventDefault();
|
||||
submitBtn.button('loading');
|
||||
|
||||
$.ajax({
|
||||
url: $(this).attr('action'),
|
||||
type: $(this).attr('method'),
|
||||
dataType: 'json',
|
||||
data: $(this).serialize(),
|
||||
success: function(data) {
|
||||
submitBtn.button('reset');
|
||||
if (data.result === 'success') {
|
||||
deleteLogModal.modal('hide');
|
||||
location.replace("{{ route('log-viewer::logs.list') }}");
|
||||
}
|
||||
else {
|
||||
alert('OOPS ! This is a lack of coffee exception !')
|
||||
}
|
||||
},
|
||||
error: function(xhr, textStatus, errorThrown) {
|
||||
alert('AJAX ERROR ! Check the console !');
|
||||
console.error(errorThrown);
|
||||
submitBtn.button('reset');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
@unless (empty(log_styler()->toHighlight()))
|
||||
@php
|
||||
$htmlHighlight = version_compare(PHP_VERSION, '7.4.0') >= 0
|
||||
? join('|', log_styler()->toHighlight())
|
||||
: join(log_styler()->toHighlight(), '|');
|
||||
@endphp
|
||||
$('.stack-content').each(function() {
|
||||
var $this = $(this);
|
||||
var html = $this.html().trim()
|
||||
.replace(/({!! $htmlHighlight !!})/gm, '<strong>$1</strong>');
|
||||
|
||||
$this.html(html);
|
||||
});
|
||||
@endunless
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
266
resources/views/vendor/log-viewer/bootstrap-4/_master.blade.php
vendored
Normal file
266
resources/views/vendor/log-viewer/bootstrap-4/_master.blade.php
vendored
Normal file
@@ -0,0 +1,266 @@
|
||||
<!doctype html>
|
||||
<html lang="{{ app()->getLocale() }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="LogViewer">
|
||||
<meta name="author" content="ARCANEDEV">
|
||||
<title>LogViewer - Created by ARCANEDEV</title>
|
||||
{{-- Styles --}}
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
|
||||
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,700|Source+Sans+Pro:400,600' rel='stylesheet' type='text/css'>
|
||||
<style>
|
||||
html {
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: .875rem;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.main-footer {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
background-color: #E8EAF6;
|
||||
}
|
||||
|
||||
.main-footer p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.main-footer .fa.fa-heart {
|
||||
color: #C62828;
|
||||
}
|
||||
|
||||
.page-header {
|
||||
border-bottom: 1px solid #8a8a8a;
|
||||
}
|
||||
|
||||
/*
|
||||
* Navbar
|
||||
*/
|
||||
|
||||
.navbar-brand {
|
||||
padding: .75rem 1rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.navbar-nav .nav-link {
|
||||
padding-right: .5rem;
|
||||
padding-left: .5rem;
|
||||
}
|
||||
|
||||
/*
|
||||
* Boxes
|
||||
*/
|
||||
|
||||
.box {
|
||||
display: block;
|
||||
padding: 0;
|
||||
min-height: 70px;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
box-shadow: 0 1px 1px rgba(0,0,0,0.1);
|
||||
border-radius: .25rem;
|
||||
}
|
||||
|
||||
.box > .box-icon > i,
|
||||
.box .box-content .box-text,
|
||||
.box .box-content .box-number {
|
||||
color: #FFF;
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.box > .box-icon {
|
||||
border-radius: 2px 0 0 2px;
|
||||
display: block;
|
||||
float: left;
|
||||
height: 70px; width: 70px;
|
||||
text-align: center;
|
||||
font-size: 40px;
|
||||
line-height: 70px;
|
||||
background: rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.box .box-content {
|
||||
padding: 5px 10px;
|
||||
margin-left: 70px;
|
||||
}
|
||||
|
||||
.box .box-content .box-text {
|
||||
display: block;
|
||||
font-size: 1rem;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.box .box-content .box-number {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.box .box-content .progress {
|
||||
background: rgba(0,0,0,0.2);
|
||||
margin: 5px -10px 5px -10px;
|
||||
}
|
||||
|
||||
.box .box-content .progress .progress-bar {
|
||||
background-color: #FFF;
|
||||
}
|
||||
|
||||
/*
|
||||
* Log Menu
|
||||
*/
|
||||
|
||||
.log-menu .list-group-item.disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.log-menu .list-group-item.disabled .level-name {
|
||||
color: #D1D1D1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Log Entry
|
||||
*/
|
||||
|
||||
.stack-content {
|
||||
color: #AE0E0E;
|
||||
font-family: consolas, Menlo, Courier, monospace;
|
||||
white-space: pre-line;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
/*
|
||||
* Colors: Badge & Infobox
|
||||
*/
|
||||
|
||||
.badge.badge-env,
|
||||
.badge.badge-level-all,
|
||||
.badge.badge-level-emergency,
|
||||
.badge.badge-level-alert,
|
||||
.badge.badge-level-critical,
|
||||
.badge.badge-level-error,
|
||||
.badge.badge-level-warning,
|
||||
.badge.badge-level-notice,
|
||||
.badge.badge-level-info,
|
||||
.badge.badge-level-debug,
|
||||
.badge.empty {
|
||||
color: #FFF;
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.badge.badge-level-all,
|
||||
.box.level-all {
|
||||
background-color: {{ log_styler()->color('all') }};
|
||||
}
|
||||
|
||||
.badge.badge-level-emergency,
|
||||
.box.level-emergency {
|
||||
background-color: {{ log_styler()->color('emergency') }};
|
||||
}
|
||||
|
||||
.badge.badge-level-alert,
|
||||
.box.level-alert {
|
||||
background-color: {{ log_styler()->color('alert') }};
|
||||
}
|
||||
|
||||
.badge.badge-level-critical,
|
||||
.box.level-critical {
|
||||
background-color: {{ log_styler()->color('critical') }};
|
||||
}
|
||||
|
||||
.badge.badge-level-error,
|
||||
.box.level-error {
|
||||
background-color: {{ log_styler()->color('error') }};
|
||||
}
|
||||
|
||||
.badge.badge-level-warning,
|
||||
.box.level-warning {
|
||||
background-color: {{ log_styler()->color('warning') }};
|
||||
}
|
||||
|
||||
.badge.badge-level-notice,
|
||||
.box.level-notice {
|
||||
background-color: {{ log_styler()->color('notice') }};
|
||||
}
|
||||
|
||||
.badge.badge-level-info,
|
||||
.box.level-info {
|
||||
background-color: {{ log_styler()->color('info') }};
|
||||
}
|
||||
|
||||
.badge.badge-level-debug,
|
||||
.box.level-debug {
|
||||
background-color: {{ log_styler()->color('debug') }};
|
||||
}
|
||||
|
||||
.badge.empty,
|
||||
.box.empty {
|
||||
background-color: {{ log_styler()->color('empty') }};
|
||||
}
|
||||
|
||||
.badge.badge-env {
|
||||
background-color: #6A1B9A;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-md navbar-dark sticky-top bg-dark p-0">
|
||||
<a href="{{ route('log-viewer::dashboard') }}" class="navbar-brand mr-0">
|
||||
<i class="fa fa-fw fa-book"></i> LogViewer
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item {{ Route::is('log-viewer::dashboard') ? 'active' : '' }}">
|
||||
<a href="{{ route('log-viewer::dashboard') }}" class="nav-link">
|
||||
<i class="fa fa-dashboard"></i> Dashboard
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item {{ Route::is('log-viewer::logs.list') ? 'active' : '' }}">
|
||||
<a href="{{ route('log-viewer::logs.list') }}" class="nav-link">
|
||||
<i class="fa fa-archive"></i> Logs
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="container-fluid">
|
||||
<main role="main" class="pt-3">
|
||||
@yield('content')
|
||||
</main>
|
||||
</div>
|
||||
|
||||
{{-- Footer --}}
|
||||
<footer class="main-footer">
|
||||
<div class="container-fluid">
|
||||
<p class="text-muted pull-left">
|
||||
LogViewer - <span class="badge badge-info">version {{ log_viewer()->version() }}</span>
|
||||
</p>
|
||||
<p class="text-muted pull-right">
|
||||
Created with <i class="fa fa-heart"></i> by ARCANEDEV <sup>©</sup>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
{{-- Scripts --}}
|
||||
<script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" crossorigin="anonymous"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script>
|
||||
|
||||
@yield('modals')
|
||||
@yield('scripts')
|
||||
</body>
|
||||
</html>
|
||||
53
resources/views/vendor/log-viewer/bootstrap-4/dashboard.blade.php
vendored
Normal file
53
resources/views/vendor/log-viewer/bootstrap-4/dashboard.blade.php
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
@extends('log-viewer::bootstrap-4._master')
|
||||
|
||||
@section('content')
|
||||
<div class="page-header mb-4">
|
||||
<h1>Dashboard</h1>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<canvas id="stats-doughnut-chart" height="300" class="mb-3"></canvas>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-lg-9">
|
||||
<div class="row">
|
||||
@foreach($percents as $level => $item)
|
||||
<div class="col-sm-6 col-md-12 col-lg-4 mb-3">
|
||||
<div class="box level-{{ $level }} {{ $item['count'] === 0 ? 'empty' : '' }}">
|
||||
<div class="box-icon">
|
||||
{!! log_styler()->icon($level) !!}
|
||||
</div>
|
||||
|
||||
<div class="box-content">
|
||||
<span class="box-text">{{ $item['name'] }}</span>
|
||||
<span class="box-number">
|
||||
{{ $item['count'] }} entries - {!! $item['percent'] !!} %
|
||||
</span>
|
||||
<div class="progress" style="height: 3px;">
|
||||
<div class="progress-bar" style="width: {{ $item['percent'] }}%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
$(function() {
|
||||
new Chart(document.getElementById("stats-doughnut-chart"), {
|
||||
type: 'doughnut',
|
||||
data: {!! $chartData !!},
|
||||
options: {
|
||||
legend: {
|
||||
position: 'bottom'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
152
resources/views/vendor/log-viewer/bootstrap-4/logs.blade.php
vendored
Normal file
152
resources/views/vendor/log-viewer/bootstrap-4/logs.blade.php
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
@extends('log-viewer::bootstrap-4._master')
|
||||
|
||||
<?php /** @var Illuminate\Pagination\LengthAwarePaginator $rows */ ?>
|
||||
|
||||
@section('content')
|
||||
<div class="page-header mb-4">
|
||||
<h1>Logs</h1>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@foreach($headers as $key => $header)
|
||||
<th scope="col" class="{{ $key == 'date' ? 'text-left' : 'text-center' }}">
|
||||
@if ($key == 'date')
|
||||
<span class="badge badge-info">{{ $header }}</span>
|
||||
@else
|
||||
<span class="badge badge-level-{{ $key }}">
|
||||
{{ log_styler()->icon($key) }} {{ $header }}
|
||||
</span>
|
||||
@endif
|
||||
</th>
|
||||
@endforeach
|
||||
<th scope="col" class="text-right">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($rows as $date => $row)
|
||||
<tr>
|
||||
@foreach($row as $key => $value)
|
||||
<td class="{{ $key == 'date' ? 'text-left' : 'text-center' }}">
|
||||
@if ($key == 'date')
|
||||
<span class="badge badge-primary">{{ $value }}</span>
|
||||
@elseif ($value == 0)
|
||||
<span class="badge empty">{{ $value }}</span>
|
||||
@else
|
||||
<a href="{{ route('log-viewer::logs.filter', [$date, $key]) }}">
|
||||
<span class="badge badge-level-{{ $key }}">{{ $value }}</span>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
@endforeach
|
||||
<td class="text-right">
|
||||
<a href="{{ route('log-viewer::logs.show', [$date]) }}" class="btn btn-sm btn-info">
|
||||
<i class="fa fa-search"></i>
|
||||
</a>
|
||||
<a href="{{ route('log-viewer::logs.download', [$date]) }}" class="btn btn-sm btn-success">
|
||||
<i class="fa fa-download"></i>
|
||||
</a>
|
||||
<a href="#delete-log-modal" class="btn btn-sm btn-danger" data-log-date="{{ $date }}">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="11" class="text-center">
|
||||
<span class="badge badge-secondary">{{ trans('log-viewer::general.empty-logs') }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{ $rows->render() }}
|
||||
@endsection
|
||||
|
||||
@section('modals')
|
||||
{{-- DELETE MODAL --}}
|
||||
<div id="delete-log-modal" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<form id="delete-log-form" action="{{ route('log-viewer::logs.delete') }}" method="POST">
|
||||
<input type="hidden" name="_method" value="DELETE">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<input type="hidden" name="date" value="">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">DELETE LOG FILE</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-sm btn-secondary mr-auto" data-dismiss="modal">Cancel</button>
|
||||
<button type="submit" class="btn btn-sm btn-danger" data-loading-text="Loading…">DELETE FILE</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
$(function () {
|
||||
var deleteLogModal = $('div#delete-log-modal'),
|
||||
deleteLogForm = $('form#delete-log-form'),
|
||||
submitBtn = deleteLogForm.find('button[type=submit]');
|
||||
|
||||
$("a[href='#delete-log-modal']").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
var date = $(this).data('log-date');
|
||||
deleteLogForm.find('input[name=date]').val(date);
|
||||
deleteLogModal.find('.modal-body p').html(
|
||||
'Are you sure you want to <span class="badge badge-danger">DELETE</span> this log file <span class="badge badge-primary">' + date + '</span> ?'
|
||||
);
|
||||
|
||||
deleteLogModal.modal('show');
|
||||
});
|
||||
|
||||
deleteLogForm.on('submit', function(event) {
|
||||
event.preventDefault();
|
||||
submitBtn.button('loading');
|
||||
|
||||
$.ajax({
|
||||
url: $(this).attr('action'),
|
||||
type: $(this).attr('method'),
|
||||
dataType: 'json',
|
||||
data: $(this).serialize(),
|
||||
success: function(data) {
|
||||
submitBtn.button('reset');
|
||||
if (data.result === 'success') {
|
||||
deleteLogModal.modal('hide');
|
||||
location.reload();
|
||||
}
|
||||
else {
|
||||
alert('AJAX ERROR ! Check the console !');
|
||||
console.error(data);
|
||||
}
|
||||
},
|
||||
error: function(xhr, textStatus, errorThrown) {
|
||||
alert('AJAX ERROR ! Check the console !');
|
||||
console.error(errorThrown);
|
||||
submitBtn.button('reset');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
deleteLogModal.on('hidden.bs.modal', function() {
|
||||
deleteLogForm.find('input[name=date]').val('');
|
||||
deleteLogModal.find('.modal-body p').html('');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
274
resources/views/vendor/log-viewer/bootstrap-4/show.blade.php
vendored
Normal file
274
resources/views/vendor/log-viewer/bootstrap-4/show.blade.php
vendored
Normal file
@@ -0,0 +1,274 @@
|
||||
<?php
|
||||
/**
|
||||
* @var Arcanedev\LogViewer\Entities\Log $log
|
||||
* @var Illuminate\Pagination\LengthAwarePaginator $entries
|
||||
* @var string|null $query
|
||||
*/
|
||||
?>
|
||||
|
||||
@extends('log-viewer::bootstrap-4._master')
|
||||
|
||||
@section('content')
|
||||
<div class="page-header mb-4">
|
||||
<h1>Log [{{ $log->date }}]</h1>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-2">
|
||||
{{-- Log Menu --}}
|
||||
<div class="card mb-4">
|
||||
<div class="card-header"><i class="fa fa-fw fa-flag"></i> Levels</div>
|
||||
<div class="list-group list-group-flush log-menu">
|
||||
@foreach($log->menu() as $levelKey => $item)
|
||||
@if ($item['count'] === 0)
|
||||
<a class="list-group-item list-group-item-action d-flex justify-content-between align-items-center disabled">
|
||||
<span class="level-name">{!! $item['icon'] !!} {{ $item['name'] }}</span>
|
||||
<span class="badge empty">{{ $item['count'] }}</span>
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ $item['url'] }}" class="list-group-item list-group-item-action d-flex justify-content-between align-items-center level-{{ $levelKey }}{{ $level === $levelKey ? ' active' : ''}}">
|
||||
<span class="level-name">{!! $item['icon'] !!} {{ $item['name'] }}</span>
|
||||
<span class="badge badge-level-{{ $levelKey }}">{{ $item['count'] }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-10">
|
||||
{{-- Log Details --}}
|
||||
<div class="card mb-4">
|
||||
<div class="card-header">
|
||||
Log info :
|
||||
<div class="group-btns pull-right">
|
||||
<a href="{{ route('log-viewer::logs.download', [$log->date]) }}" class="btn btn-sm btn-success">
|
||||
<i class="fa fa-download"></i> DOWNLOAD
|
||||
</a>
|
||||
<a href="#delete-log-modal" class="btn btn-sm btn-danger" data-toggle="modal">
|
||||
<i class="fa fa-trash-o"></i> DELETE
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-condensed mb-0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>File path :</td>
|
||||
<td colspan="7">{{ $log->getPath() }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Log entries :</td>
|
||||
<td>
|
||||
<span class="badge badge-primary">{{ $entries->total() }}</span>
|
||||
</td>
|
||||
<td>Size :</td>
|
||||
<td>
|
||||
<span class="badge badge-primary">{{ $log->size() }}</span>
|
||||
</td>
|
||||
<td>Created at :</td>
|
||||
<td>
|
||||
<span class="badge badge-primary">{{ $log->createdAt() }}</span>
|
||||
</td>
|
||||
<td>Updated at :</td>
|
||||
<td>
|
||||
<span class="badge badge-primary">{{ $log->updatedAt() }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
{{-- Search --}}
|
||||
<form action="{{ route('log-viewer::logs.search', [$log->date, $level]) }}" method="GET">
|
||||
<div class=form-group">
|
||||
<div class="input-group">
|
||||
<input id="query" name="query" class="form-control" value="{{ $query }}" placeholder="Type here to search">
|
||||
<div class="input-group-append">
|
||||
@unless (is_null($query))
|
||||
<a href="{{ route('log-viewer::logs.show', [$log->date]) }}" class="btn btn-secondary">
|
||||
({{ $entries->count() }} results) <i class="fa fa-fw fa-times"></i>
|
||||
</a>
|
||||
@endunless
|
||||
<button id="search-btn" class="btn btn-primary">
|
||||
<span class="fa fa-fw fa-search"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Log Entries --}}
|
||||
<div class="card mb-4">
|
||||
@if ($entries->hasPages())
|
||||
<div class="card-header">
|
||||
<span class="badge badge-info float-right">
|
||||
Page {{ $entries->currentPage() }} of {{ $entries->lastPage() }}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="table-responsive">
|
||||
<table id="entries" class="table mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ENV</th>
|
||||
<th style="width: 120px;">Level</th>
|
||||
<th style="width: 65px;">Time</th>
|
||||
<th>Header</th>
|
||||
<th class="text-right">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($entries as $key => $entry)
|
||||
<?php /** @var Arcanedev\LogViewer\Entities\LogEntry $entry */ ?>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="badge badge-env">{{ $entry->env }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge badge-level-{{ $entry->level }}">
|
||||
{!! $entry->level() !!}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge badge-secondary">
|
||||
{{ $entry->datetime->format('H:i:s') }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ $entry->header }}
|
||||
</td>
|
||||
<td class="text-right">
|
||||
@if ($entry->hasStack())
|
||||
<a class="btn btn-sm btn-light" role="button" data-toggle="collapse"
|
||||
href="#log-stack-{{ $key }}" aria-expanded="false" aria-controls="log-stack-{{ $key }}">
|
||||
<i class="fa fa-toggle-on"></i> Stack
|
||||
</a>
|
||||
@endif
|
||||
|
||||
@if ($entry->hasContext())
|
||||
<a class="btn btn-sm btn-light" role="button" data-toggle="collapse"
|
||||
href="#log-context-{{ $key }}" aria-expanded="false" aria-controls="log-context-{{ $key }}">
|
||||
<i class="fa fa-toggle-on"></i> Context
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@if ($entry->hasStack() || $entry->hasContext())
|
||||
<tr>
|
||||
<td colspan="5" class="stack py-0">
|
||||
@if ($entry->hasStack())
|
||||
<div class="stack-content collapse" id="log-stack-{{ $key }}">
|
||||
{!! $entry->stack() !!}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($entry->hasContext())
|
||||
<div class="stack-content collapse" id="log-context-{{ $key }}">
|
||||
<pre>{{ $entry->context() }}</pre>
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="5" class="text-center">
|
||||
<span class="badge badge-secondary">{{ trans('log-viewer::general.empty-logs') }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{!! $entries->appends(compact('query'))->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('modals')
|
||||
{{-- DELETE MODAL --}}
|
||||
<div id="delete-log-modal" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<form id="delete-log-form" action="{{ route('log-viewer::logs.delete') }}" method="POST">
|
||||
<input type="hidden" name="_method" value="DELETE">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<input type="hidden" name="date" value="{{ $log->date }}">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">DELETE LOG FILE</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Are you sure you want to <span class="badge badge-danger">DELETE</span> this log file <span class="badge badge-primary">{{ $log->date }}</span> ?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-sm btn-secondary mr-auto" data-dismiss="modal">Cancel</button>
|
||||
<button type="submit" class="btn btn-sm btn-danger" data-loading-text="Loading…">DELETE FILE</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
$(function () {
|
||||
var deleteLogModal = $('div#delete-log-modal'),
|
||||
deleteLogForm = $('form#delete-log-form'),
|
||||
submitBtn = deleteLogForm.find('button[type=submit]');
|
||||
|
||||
deleteLogForm.on('submit', function(event) {
|
||||
event.preventDefault();
|
||||
submitBtn.button('loading');
|
||||
|
||||
$.ajax({
|
||||
url: $(this).attr('action'),
|
||||
type: $(this).attr('method'),
|
||||
dataType: 'json',
|
||||
data: $(this).serialize(),
|
||||
success: function(data) {
|
||||
submitBtn.button('reset');
|
||||
if (data.result === 'success') {
|
||||
deleteLogModal.modal('hide');
|
||||
location.replace("{{ route('log-viewer::logs.list') }}");
|
||||
}
|
||||
else {
|
||||
alert('OOPS ! This is a lack of coffee exception !')
|
||||
}
|
||||
},
|
||||
error: function(xhr, textStatus, errorThrown) {
|
||||
alert('AJAX ERROR ! Check the console !');
|
||||
console.error(errorThrown);
|
||||
submitBtn.button('reset');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
@unless (empty(log_styler()->toHighlight()))
|
||||
@php
|
||||
$htmlHighlight = version_compare(PHP_VERSION, '7.4.0') >= 0
|
||||
? join('|', log_styler()->toHighlight())
|
||||
: join(log_styler()->toHighlight(), '|');
|
||||
@endphp
|
||||
|
||||
$('.stack-content').each(function() {
|
||||
var $this = $(this);
|
||||
var html = $this.html().trim()
|
||||
.replace(/({!! $htmlHighlight !!})/gm, '<strong>$1</strong>');
|
||||
|
||||
$this.html(html);
|
||||
});
|
||||
@endunless
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
19
resources/views/vendor/mail/html/button.blade.php
vendored
Normal file
19
resources/views/vendor/mail/html/button.blade.php
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
<table class="action" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table border="0" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ $url }}" class="button button-{{ $color ?? 'primary' }}" target="_blank">{{ $slot }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
11
resources/views/vendor/mail/html/footer.blade.php
vendored
Normal file
11
resources/views/vendor/mail/html/footer.blade.php
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
<tr>
|
||||
<td>
|
||||
<table class="footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td class="content-cell" align="center">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
7
resources/views/vendor/mail/html/header.blade.php
vendored
Normal file
7
resources/views/vendor/mail/html/header.blade.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<tr>
|
||||
<td class="header">
|
||||
<a href="{{ $url }}">
|
||||
{{ $slot }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
54
resources/views/vendor/mail/html/layout.blade.php
vendored
Normal file
54
resources/views/vendor/mail/html/layout.blade.php
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
</head>
|
||||
<body>
|
||||
<style>
|
||||
@media only screen and (max-width: 600px) {
|
||||
.inner-body {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 500px) {
|
||||
.button {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table class="content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
{{ $header ?? '' }}
|
||||
|
||||
<!-- Email Body -->
|
||||
<tr>
|
||||
<td class="body" width="100%" cellpadding="0" cellspacing="0">
|
||||
<table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Body content -->
|
||||
<tr>
|
||||
<td class="content-cell">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
|
||||
{{ $subcopy ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{{ $footer ?? '' }}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
27
resources/views/vendor/mail/html/message.blade.php
vendored
Normal file
27
resources/views/vendor/mail/html/message.blade.php
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
@component('mail::layout')
|
||||
{{-- Header --}}
|
||||
@slot('header')
|
||||
@component('mail::header', ['url' => config('app.url')])
|
||||
{{ config('app.name') }}
|
||||
@endcomponent
|
||||
@endslot
|
||||
|
||||
{{-- Body --}}
|
||||
{{ $slot }}
|
||||
|
||||
{{-- Subcopy --}}
|
||||
@isset($subcopy)
|
||||
@slot('subcopy')
|
||||
@component('mail::subcopy')
|
||||
{{ $subcopy }}
|
||||
@endcomponent
|
||||
@endslot
|
||||
@endisset
|
||||
|
||||
{{-- Footer --}}
|
||||
@slot('footer')
|
||||
@component('mail::footer')
|
||||
© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.')
|
||||
@endcomponent
|
||||
@endslot
|
||||
@endcomponent
|
||||
14
resources/views/vendor/mail/html/panel.blade.php
vendored
Normal file
14
resources/views/vendor/mail/html/panel.blade.php
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<table class="panel" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td class="panel-content">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td class="panel-item">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
7
resources/views/vendor/mail/html/promotion.blade.php
vendored
Normal file
7
resources/views/vendor/mail/html/promotion.blade.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<table class="promotion" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
13
resources/views/vendor/mail/html/promotion/button.blade.php
vendored
Normal file
13
resources/views/vendor/mail/html/promotion/button.blade.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table border="0" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ $url }}" class="button button-green" target="_blank">{{ $slot }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
7
resources/views/vendor/mail/html/subcopy.blade.php
vendored
Normal file
7
resources/views/vendor/mail/html/subcopy.blade.php
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<table class="subcopy" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td>
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
3
resources/views/vendor/mail/html/table.blade.php
vendored
Normal file
3
resources/views/vendor/mail/html/table.blade.php
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<div class="table">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</div>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user