mirror of
https://github.com/Bubka/2FAuth.git
synced 2025-05-02 21:34:36 +02:00
Reorganize js resources
This commit is contained in:
parent
d8bb41a04a
commit
77d7134cb1
@ -56,7 +56,7 @@
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
'jsPath' => '/resources/js/langs/',
|
'jsPath' => '/resources/js/langs/',
|
||||||
'jsFile' => '/resources/js/vue-i18n-locales.generated.js',
|
'jsFile' => '/resources/js/langs/locales.js',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
4
resources/js/app.js
vendored
4
resources/js/app.js
vendored
@ -1,7 +1,7 @@
|
|||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import router from './routes/routes'
|
import router from './routes'
|
||||||
|
import i18n from './langs/i18n'
|
||||||
import axios from './packages/axios'
|
import axios from './packages/axios'
|
||||||
import i18n from './packages/i18n'
|
|
||||||
import FontAwesome from './packages/fontawesome'
|
import FontAwesome from './packages/fontawesome'
|
||||||
import App from './components/App'
|
import App from './components/App'
|
||||||
|
|
||||||
|
55
resources/js/bootstrap.js
vendored
55
resources/js/bootstrap.js
vendored
@ -1,55 +0,0 @@
|
|||||||
window._ = require('lodash');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* We'll load jQuery and the Bootstrap jQuery plugin which provides support
|
|
||||||
* for JavaScript based Bootstrap features such as modals and tabs. This
|
|
||||||
* code may be modified to fit the specific needs of your application.
|
|
||||||
*/
|
|
||||||
|
|
||||||
try {
|
|
||||||
window.Popper = require('popper.js').default;
|
|
||||||
window.$ = window.jQuery = require('jquery');
|
|
||||||
|
|
||||||
//require('bootstrap');
|
|
||||||
} catch (e) {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Next we will register the CSRF Token as a common header with Axios so that
|
|
||||||
* all outgoing HTTP requests automatically have it attached. This is just
|
|
||||||
* a simple convenience so we don't have to attach every token manually.
|
|
||||||
*/
|
|
||||||
|
|
||||||
let token = document.head.querySelector('meta[name="csrf-token"]');
|
|
||||||
|
|
||||||
if (token) {
|
|
||||||
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
|
|
||||||
} else {
|
|
||||||
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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,
|
|
||||||
// encrypted: true
|
|
||||||
// });
|
|
@ -1,7 +1,6 @@
|
|||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import VueInternationalization from 'vue-i18n';
|
import VueInternationalization from 'vue-i18n';
|
||||||
import Locale from './vue-i18n-locales.generated';
|
import Locale from './locales';
|
||||||
|
|
||||||
|
|
||||||
Vue.use(VueInternationalization);
|
Vue.use(VueInternationalization);
|
||||||
|
|
29
resources/js/packages/axios.js
vendored
29
resources/js/packages/axios.js
vendored
@ -1,5 +1,30 @@
|
|||||||
import Vue from 'vue'
|
import axios from 'axios'
|
||||||
import router from '../routes/routes'
|
import router from '../routes'
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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');
|
||||||
|
|
||||||
|
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Next we will register the CSRF Token as a common header with Axios so that
|
||||||
|
* all outgoing HTTP requests automatically have it attached. This is just
|
||||||
|
* a simple convenience so we don't have to attach every token manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
let csrfToken = document.head.querySelector('meta[name="csrf-token"]');
|
||||||
|
|
||||||
|
if (csrfToken) {
|
||||||
|
axios.defaults.headers.common['X-CSRF-TOKEN'] = csrfToken.content;
|
||||||
|
} else {
|
||||||
|
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
|
||||||
|
}
|
||||||
|
|
||||||
axios.interceptors.request.use(request => {
|
axios.interceptors.request.use(request => {
|
||||||
|
|
||||||
|
216
resources/js/packages/vue-i18n-locales.generated.js
vendored
216
resources/js/packages/vue-i18n-locales.generated.js
vendored
@ -1,216 +0,0 @@
|
|||||||
export default {
|
|
||||||
"en": {
|
|
||||||
"auth": {
|
|
||||||
"sign_out": "Sign out",
|
|
||||||
"sign_in": "Sign in",
|
|
||||||
"register": "Register",
|
|
||||||
"hello": "Hi {username} !",
|
|
||||||
"confirm": {
|
|
||||||
"logout": "Are you sure you want to log out?"
|
|
||||||
},
|
|
||||||
"forms": {
|
|
||||||
"name": "Name",
|
|
||||||
"login": "Login",
|
|
||||||
"email": "Email",
|
|
||||||
"password": "Password",
|
|
||||||
"confirm_password": "Confirm password",
|
|
||||||
"dont_have_account_yet": "Don't have your account yet?",
|
|
||||||
"already_register": "Already registered?",
|
|
||||||
"password_do_not_match": "Password do not match",
|
|
||||||
"forgot_your_password": "Forgot your password?",
|
|
||||||
"request_password_reset": "Request a password reset",
|
|
||||||
"reset_password": "Reset password",
|
|
||||||
"new_password": "New password",
|
|
||||||
"change_password": "Change password",
|
|
||||||
"send_password_reset_link": "Send password reset link"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"commons": {
|
|
||||||
"cancel": "Cancel"
|
|
||||||
},
|
|
||||||
"errors": {
|
|
||||||
"resource_not_found": "Resource not found",
|
|
||||||
"error_occured": "An error occured",
|
|
||||||
"already_one_user_registered": "There is already a registered user.",
|
|
||||||
"cannot_register_more_user": "You cannot register more than one user.",
|
|
||||||
"refresh": "refresh",
|
|
||||||
"please": "Please ",
|
|
||||||
"response": {
|
|
||||||
"no_valid_totp": "No valid TOTP resource in this QR code"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pagination": {
|
|
||||||
"previous": "« Previous",
|
|
||||||
"next": "Next »"
|
|
||||||
},
|
|
||||||
"passwords": {
|
|
||||||
"password": "Passwords must be at least eight characters and match the confirmation.",
|
|
||||||
"reset": "Your password has been reset!",
|
|
||||||
"sent": "We have e-mailed your password reset link!",
|
|
||||||
"token": "This password reset token is invalid.",
|
|
||||||
"user": "We can't find a user with that e-mail address."
|
|
||||||
},
|
|
||||||
"twofaccounts": {
|
|
||||||
"service": "Service",
|
|
||||||
"account": "Account",
|
|
||||||
"icon": "Icon",
|
|
||||||
"new": "New",
|
|
||||||
"no_account_here": "No 2FA here!",
|
|
||||||
"add_one": "Add one",
|
|
||||||
"manage": "Manage",
|
|
||||||
"done": "Done",
|
|
||||||
"forms": {
|
|
||||||
"service": {
|
|
||||||
"placeholder": "example.com"
|
|
||||||
},
|
|
||||||
"account": {
|
|
||||||
"placeholder": "John DOE"
|
|
||||||
},
|
|
||||||
"new_account": "New account",
|
|
||||||
"edit_account": "Edit account",
|
|
||||||
"totp_uri": "TOTP Uri",
|
|
||||||
"use_qrcode": {
|
|
||||||
"val": "Use a qrcode",
|
|
||||||
"title": "Use a QR code to fill the form magically"
|
|
||||||
},
|
|
||||||
"unlock": {
|
|
||||||
"val": "Unlock",
|
|
||||||
"title": "Unlock it (at your own risk)"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"val": "Lock",
|
|
||||||
"title": "Lock it"
|
|
||||||
},
|
|
||||||
"choose_image": "Choose an image…",
|
|
||||||
"create": "Create",
|
|
||||||
"save": "Save"
|
|
||||||
},
|
|
||||||
"confirm": {
|
|
||||||
"delete": "Are you sure you want to delete this account?"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"validation": {
|
|
||||||
"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.",
|
|
||||||
"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": {
|
|
||||||
"attribute-name": {
|
|
||||||
"rule-name": "custom-message"
|
|
||||||
},
|
|
||||||
"icon": {
|
|
||||||
"image": "Supported format are jpeg, png, bmp, gif, svg, or webp"
|
|
||||||
},
|
|
||||||
"qrcode": {
|
|
||||||
"image": "Supported format are jpeg, png, bmp, gif, svg, or webp"
|
|
||||||
},
|
|
||||||
"uri": {
|
|
||||||
"starts_with": "Only valid TOTP uri are supported"
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"exists": "No account found using this email"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"attributes": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,14 +3,14 @@ import Router from 'vue-router'
|
|||||||
|
|
||||||
Vue.use(Router)
|
Vue.use(Router)
|
||||||
|
|
||||||
import Accounts from '../views/Accounts'
|
import Accounts from './views/Accounts'
|
||||||
import Create from '../views/twofaccounts/Create'
|
import Create from './views/twofaccounts/Create'
|
||||||
import Edit from '../views/twofaccounts/Edit'
|
import Edit from './views/twofaccounts/Edit'
|
||||||
import Login from '../views/auth/Login'
|
import Login from './views/auth/Login'
|
||||||
import Register from '../views/auth/Register'
|
import Register from './views/auth/Register'
|
||||||
import PasswordRequest from '../views/auth/password/Request'
|
import PasswordRequest from './views/auth/password/Request'
|
||||||
import PasswordReset from '../views/auth/password/Reset'
|
import PasswordReset from './views/auth/password/Reset'
|
||||||
import NotFound from '../views/Error'
|
import NotFound from './views/Error'
|
||||||
|
|
||||||
const router = new Router({
|
const router = new Router({
|
||||||
mode: 'history',
|
mode: 'history',
|
@ -22,8 +22,8 @@
|
|||||||
<div id="app">
|
<div id="app">
|
||||||
<app></app>
|
<app></app>
|
||||||
</div>
|
</div>
|
||||||
<script src="{{ mix('js/bootstrap.js') }}"></script>
|
{{-- <script src="{{ mix('js/bootstrap.js') }}"></script> --}}
|
||||||
<script src="{{ mix('js/app.js') }}"></script>
|
<script src="{{ mix('js/app.js') }}"></script>
|
||||||
<script src="{{ mix('js/vue-i18n-locales.generated.js') }}"></script>
|
<script src="{{ mix('js/locales.js') }}"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
4
webpack.mix.js
vendored
4
webpack.mix.js
vendored
@ -12,8 +12,8 @@ const mix = require('laravel-mix');
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
mix.js('resources/js/app.js', 'public/js')
|
mix.js('resources/js/app.js', 'public/js')
|
||||||
.js('resources/js/bootstrap.js', 'public/js')
|
// .js('resources/js/bootstrap.js', 'public/js')
|
||||||
.js('resources/js/packages/vue-i18n-locales.generated.js', 'public/js')
|
.js('resources/js/langs/locales.js', 'public/js')
|
||||||
.sass('resources/sass/app.scss', 'public/css');
|
.sass('resources/sass/app.scss', 'public/css');
|
||||||
|
|
||||||
if (mix.inProduction()) {
|
if (mix.inProduction()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user