From 24fadca9a63befec878ae086639281802d79721c Mon Sep 17 00:00:00 2001 From: Benjamin Takats Date: Tue, 29 Nov 2022 20:50:18 +0100 Subject: [PATCH] install Laravel Nova --- .blueprint | 14 +- app/Models/.gitignore | 2 +- app/Nova/.gitignore | 2 + app/Nova/Dashboards/Main.php | 21 ++ app/Nova/Resource.php | 59 ++++ app/Providers/NovaServiceProvider.php | 81 +++++ config/app.php | 1 + config/nova.php | 206 ++++++++++++ database/factories/.gitignore | 2 +- database/migrations/.gitignore | 2 +- database/seeders/.gitignore | 2 +- lang/vendor/nova/en.json | 461 ++++++++++++++++++++++++++ lang/vendor/nova/en/validation.php | 19 ++ 13 files changed, 861 insertions(+), 11 deletions(-) create mode 100644 app/Nova/Dashboards/Main.php create mode 100644 app/Nova/Resource.php create mode 100644 app/Providers/NovaServiceProvider.php create mode 100644 config/nova.php create mode 100644 lang/vendor/nova/en.json create mode 100644 lang/vendor/nova/en/validation.php diff --git a/.blueprint b/.blueprint index 8244846f..5117652f 100644 --- a/.blueprint +++ b/.blueprint @@ -2,9 +2,9 @@ created: - database/factories/CountryFactory.php - database/factories/CityFactory.php - database/factories/LecturerFactory.php - - database/migrations/2022_11_29_193945_create_countries_table.php - - database/migrations/2022_11_29_193946_create_cities_table.php - - database/migrations/2022_11_29_193947_create_lecturers_table.php + - database/migrations/2022_11_29_194626_create_countries_table.php + - database/migrations/2022_11_29_194627_create_cities_table.php + - database/migrations/2022_11_29_194628_create_lecturers_table.php - app/Models/Country.php - app/Models/City.php - app/Models/Lecturer.php @@ -15,10 +15,10 @@ created: - app/Nova/City.php - app/Nova/Lecturer.php models: - Membership: { } - Team: { } - TeamInvitation: { } - User: { } + Membership: { team_id: biginteger, user_id: biginteger, role: 'string nullable' } + Team: { user_id: biginteger, name: string, personal_team: boolean } + TeamInvitation: { team_id: biginteger, email: string, role: 'string nullable' } + User: { name: string, email: string, email_verified_at: 'datetime nullable', password: string, remember_token: 'string:100 nullable', current_team_id: 'biginteger nullable', profile_photo_path: 'string:2048 nullable', two_factor_secret: 'text nullable', two_factor_recovery_codes: 'text nullable', two_factor_confirmed_at: 'datetime nullable' } Country: { name: string, code: string, relationships: { hasMany: City } } City: { name: string, country_id: 'id foreign' } Lecturer: { first_name: string, last_name: string, active: 'boolean default:true' } diff --git a/app/Models/.gitignore b/app/Models/.gitignore index e85f2252..47dadd55 100644 --- a/app/Models/.gitignore +++ b/app/Models/.gitignore @@ -1,5 +1,5 @@ +*.php !Membership.php !Team.php !TeamInvitation.php !User.php -*.php diff --git a/app/Nova/.gitignore b/app/Nova/.gitignore index cde8069e..b1aa2f7f 100644 --- a/app/Nova/.gitignore +++ b/app/Nova/.gitignore @@ -1 +1,3 @@ *.php +!Resource.php +!Dashboards/*.php diff --git a/app/Nova/Dashboards/Main.php b/app/Nova/Dashboards/Main.php new file mode 100644 index 00000000..58c4a488 --- /dev/null +++ b/app/Nova/Dashboards/Main.php @@ -0,0 +1,21 @@ +withAuthenticationRoutes() + ->withPasswordResetRoutes() + ->register(); + } + + /** + * Register the Nova gate. + * + * This gate determines who can access Nova in non-local environments. + * + * @return void + */ + protected function gate() + { + Gate::define('viewNova', function ($user) { + return in_array($user->email, [ + // + ]); + }); + } + + /** + * Get the dashboards that should be listed in the Nova sidebar. + * + * @return array + */ + protected function dashboards() + { + return [ + new \App\Nova\Dashboards\Main, + ]; + } + + /** + * Get the tools that should be listed in the Nova sidebar. + * + * @return array + */ + public function tools() + { + return []; + } + + /** + * Register any application services. + * + * @return void + */ + public function register() + { + // + } +} diff --git a/config/app.php b/config/app.php index d006f33d..89982966 100644 --- a/config/app.php +++ b/config/app.php @@ -193,6 +193,7 @@ return [ App\Providers\AuthServiceProvider::class, // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, + App\Providers\NovaServiceProvider::class, App\Providers\RouteServiceProvider::class, App\Providers\FortifyServiceProvider::class, App\Providers\JetstreamServiceProvider::class, diff --git a/config/nova.php b/config/nova.php new file mode 100644 index 00000000..8c9679b7 --- /dev/null +++ b/config/nova.php @@ -0,0 +1,206 @@ + env('NOVA_LICENSE_KEY'), + + /* + |-------------------------------------------------------------------------- + | Nova App Name + |-------------------------------------------------------------------------- + | + | This value is the name of your application. This value is used when the + | framework needs to display the name of the application within the UI + | or in other locations. Of course, you're free to change the value. + | + */ + + 'name' => env('NOVA_APP_NAME', env('APP_NAME')), + + /* + |-------------------------------------------------------------------------- + | Nova Domain Name + |-------------------------------------------------------------------------- + | + | This value is the "domain name" associated with your application. This + | can be used to prevent Nova's internal routes from being registered + | on subdomains which do not need access to your admin application. + | + */ + + 'domain' => env('NOVA_DOMAIN_NAME', null), + + /* + |-------------------------------------------------------------------------- + | Nova Path + |-------------------------------------------------------------------------- + | + | This is the URI path where Nova will be accessible from. Feel free to + | change this path to anything you like. Note that this URI will not + | affect Nova's internal API routes which aren't exposed to users. + | + */ + + 'path' => '/nova', + + /* + |-------------------------------------------------------------------------- + | Nova Authentication Guard + |-------------------------------------------------------------------------- + | + | This configuration option defines the authentication guard that will + | be used to protect your Nova routes. This option should match one + | of the authentication guards defined in the "auth" config file. + | + */ + + 'guard' => env('NOVA_GUARD', null), + + /* + |-------------------------------------------------------------------------- + | Nova Password Reset Broker + |-------------------------------------------------------------------------- + | + | This configuration option defines the password broker that will be + | used when passwords are reset. This option should mirror one of + | the password reset options defined in the "auth" config file. + | + */ + + 'passwords' => env('NOVA_PASSWORDS', null), + + /* + |-------------------------------------------------------------------------- + | Nova Route Middleware + |-------------------------------------------------------------------------- + | + | These middleware will be assigned to every Nova route, giving you the + | chance to add your own middleware to this stack or override any of + | the existing middleware. Or, you can just stick with this stack. + | + */ + + 'middleware' => [ + 'web', + HandleInertiaRequests::class, + DispatchServingNovaEvent::class, + BootTools::class, + ], + + 'api_middleware' => [ + 'nova', + Authenticate::class, + Authorize::class, + ], + + /* + |-------------------------------------------------------------------------- + | Nova Pagination Type + |-------------------------------------------------------------------------- + | + | This option defines the visual style used in Nova's resource pagination + | views. You may select between "simple", "load-more", and "links" for + | your applications. Feel free to adjust this option to your choice. + | + */ + + 'pagination' => 'simple', + + /* + |-------------------------------------------------------------------------- + | Nova Storage Disk + |-------------------------------------------------------------------------- + | + | This configuration option allows you to define the default disk that + | will be used to store files using the Image, File, and other file + | related field types. You're welcome to use any configured disk. + | + */ + + 'storage_disk' => env('NOVA_STORAGE_DISK', 'public'), + + /* + |-------------------------------------------------------------------------- + | Nova Currency + |-------------------------------------------------------------------------- + | + | This configuration option allows you to define the default currency + | used by the Currency field within Nova. You may change this to a + | valid ISO 4217 currency code to suit your application's needs. + | + */ + + 'currency' => 'USD', + + /* + |-------------------------------------------------------------------------- + | Branding + |-------------------------------------------------------------------------- + | + | These configuration values allow you to customize the branding of the + | Nova interface, including the primary color and the logo that will + | be displayed within the Nova interface. This logo value must be + | the absolute path to an SVG logo within the local filesystem. + | + */ + + // 'brand' => [ + // 'logo' => resource_path('/img/example-logo.svg'), + + // 'colors' => [ + // "400" => "24, 182, 155, 0.5", + // "500" => "24, 182, 155", + // "600" => "24, 182, 155, 0.75", + // ] + // ], + + /* + |-------------------------------------------------------------------------- + | Nova Action Resource Class + |-------------------------------------------------------------------------- + | + | This configuration option allows you to specify a custom resource class + | to use for action log entries instead of the default that ships with + | Nova, thus allowing for the addition of additional UI form fields. + | + */ + + 'actions' => [ + 'resource' => ActionResource::class, + ], + + /* + |-------------------------------------------------------------------------- + | Nova Impersonation Redirection URLs + |-------------------------------------------------------------------------- + | + | This configuration option allows you to specify a URL where Nova should + | redirect an administrator after impersonating another user and a URL + | to redirect the administrator after stopping impersonating a user. + | + */ + + 'impersonation' => [ + 'started' => '/', + 'stopped' => '/', + ], + +]; diff --git a/database/factories/.gitignore b/database/factories/.gitignore index ae8a0628..bd917b32 100644 --- a/database/factories/.gitignore +++ b/database/factories/.gitignore @@ -1,3 +1,3 @@ +*.php !TeamFactory.php !UserFactory.php -*.php diff --git a/database/migrations/.gitignore b/database/migrations/.gitignore index 074dfc1c..4a281110 100644 --- a/database/migrations/.gitignore +++ b/database/migrations/.gitignore @@ -1,4 +1,4 @@ +2022_* !2014_* !2019_* !2020_* -2022_* diff --git a/database/seeders/.gitignore b/database/seeders/.gitignore index 24456d29..41b1c0db 100644 --- a/database/seeders/.gitignore +++ b/database/seeders/.gitignore @@ -1,2 +1,2 @@ -!DatabaseSeeder.php *.php +!DatabaseSeeder.php diff --git a/lang/vendor/nova/en.json b/lang/vendor/nova/en.json new file mode 100644 index 00000000..9d892c99 --- /dev/null +++ b/lang/vendor/nova/en.json @@ -0,0 +1,461 @@ +{ + "Actions": "Actions", + "Details": "Details", + "If you did not request a password reset, no further action is required.": "If you did not request a password reset, no further action is required.", + "Reset Password": "Reset Password", + "Sorry! You are not authorized to perform this action.": "Sorry! You are not authorized to perform this action.", + "You are receiving this email because we received a password reset request for your account.": "You are receiving this email because we received a password reset request for your account.", + "Error": "Error", + "Confirm Password": "Confirm Password", + "We have emailed your password reset link!": "We have emailed your password reset link!", + "Dashboard": "Dashboard", + "Email Address": "Email Address", + "Forgot Password": "Forgot Password", + "Forgot your password?": "Forgot your password?", + "Log In": "Log In", + "Logout": "Logout", + "Password": "Password", + "Remember me": "Remember me", + "Resources": "Resources", + "Send Password Reset Link": "Send Password Reset Link", + "Welcome Back!": "Welcome Back!", + "Delete Resource": "Delete Resource", + "Delete": "Delete", + "Soft Deleted": "Soft Deleted", + "Detach Resource": "Detach Resource", + "Detach": "Detach", + "Detach Selected": "Detach Selected", + "Delete Selected": "Delete Selected", + "Force Delete Selected": "Force Delete Selected", + "Restore Selected": "Restore Selected", + "Restore Resource": "Restore Resource", + "Restore": "Restore", + "Force Delete Resource": "Force Delete Resource", + "Force Delete": "Force Delete", + "Are you sure you want to delete this resource?": "Are you sure you want to delete this resource?", + "Are you sure you want to delete the selected resources?": "Are you sure you want to delete the selected resources?", + "Are you sure you want to detach this resource?": "Are you sure you want to detach this resource?", + "Are you sure you want to detach the selected resources?": "Are you sure you want to detach the selected resources?", + "Are you sure you want to force delete this resource?": "Are you sure you want to force delete this resource?", + "Are you sure you want to force delete the selected resources?": "Are you sure you want to force delete the selected resources?", + "Are you sure you want to restore this resource?": "Are you sure you want to restore this resource?", + "Are you sure you want to restore the selected resources?": "Are you sure you want to restore the selected resources?", + "No :resource matched the given criteria.": "No :resource matched the given criteria.", + "Failed to load :resource!": "Failed to load :resource!", + "Another user has updated this resource since this page was loaded. Please refresh the page and try again.": "Another user has updated this resource since this page was loaded. Please refresh the page and try again.", + "Are you sure you want to delete this file?": "Are you sure you want to delete this file?", + "Are you sure you want to run this action?": "Are you sure you want to run this action?", + "Attach": "Attach", + "Attach & Attach Another": "Attach & Attach Another", + "Close": "Close", + "Cancel": "Cancel", + "Choose": "Choose", + "Choose File": "Choose File", + "Choose Files": "Choose Files", + "Choose Type": "Choose Type", + "Choose an option": "Choose an option", + "Click to choose": "Click to choose", + "Reset Filters": "Reset Filters", + "Create": "Create", + "Create & Add Another": "Create & Add Another", + "Delete File": "Delete File", + "Edit": "Edit", + "Edit Attached": "Edit Attached", + "Go Home": "Go Home", + "Hold Up!": "Hold Up!", + "Lens": "Lens", + "New": "New", + "Next": "Next", + "Only Trashed": "Only Trashed", + "Per Page": "Per Page", + "Preview": "Preview", + "Previous": "Previous", + "No Data": "No Data", + "No Current Data": "No Current Data", + "No Prior Data": "No Prior Data", + "No Increase": "No Increase", + "No Results Found.": "No Results Found.", + "Standalone Actions": "Standalone Actions", + "Run Action": "Run Action", + "Select Action": "Select Action", + "Search": "Search", + "Press / to search": "Press / to search", + "Select All Dropdown": "Select All Dropdown", + "Select all": "Select all", + "Select this page": "Select this page", + "Something went wrong.": "Something went wrong.", + "The action was executed successfully.": "The action was executed successfully.", + "The government won't let us show you what's behind these doors": "The government won't let us show you what's behind these doors", + "Update": "Update", + "Update & Continue Editing": "Update & Continue Editing", + "View": "View", + "We're lost in space. The page you were trying to view does not exist.": "We're lost in space. The page you were trying to view does not exist.", + "Show Content": "Show Content", + "Hide Content": "Hide Content", + "Whoops": "Whoops", + "Whoops!": "Whoops!", + "With Trashed": "With Trashed", + "Trashed": "Trashed", + "Write": "Write", + "total": "total", + "January": "January", + "February": "February", + "March": "March", + "April": "April", + "May": "May", + "June": "June", + "July": "July", + "August": "August", + "September": "September", + "October": "October", + "November": "November", + "December": "December", + "Afghanistan": "Afghanistan", + "Aland Islands": "Åland Islands", + "Albania": "Albania", + "Algeria": "Algeria", + "American Samoa": "American Samoa", + "Andorra": "Andorra", + "Angola": "Angola", + "Anguilla": "Anguilla", + "Antarctica": "Antarctica", + "Antigua And Barbuda": "Antigua and Barbuda", + "Argentina": "Argentina", + "Armenia": "Armenia", + "Aruba": "Aruba", + "Australia": "Australia", + "Austria": "Austria", + "Azerbaijan": "Azerbaijan", + "Bahamas": "Bahamas", + "Bahrain": "Bahrain", + "Bangladesh": "Bangladesh", + "Barbados": "Barbados", + "Belarus": "Belarus", + "Belgium": "Belgium", + "Belize": "Belize", + "Benin": "Benin", + "Bermuda": "Bermuda", + "Bhutan": "Bhutan", + "Bolivia": "Bolivia", + "Bonaire, Sint Eustatius and Saba": "Bonaire, Sint Eustatius and Saba", + "Bosnia And Herzegovina": "Bosnia and Herzegovina", + "Botswana": "Botswana", + "Bouvet Island": "Bouvet Island", + "Brazil": "Brazil", + "British Indian Ocean Territory": "British Indian Ocean Territory", + "Brunei Darussalam": "Brunei", + "Bulgaria": "Bulgaria", + "Burkina Faso": "Burkina Faso", + "Burundi": "Burundi", + "Cambodia": "Cambodia", + "Cameroon": "Cameroon", + "Canada": "Canada", + "Cape Verde": "Cape Verde", + "Cayman Islands": "Cayman Islands", + "Central African Republic": "Central African Republic", + "Chad": "Chad", + "Chile": "Chile", + "China": "China", + "Christmas Island": "Christmas Island", + "Cocos (Keeling) Islands": "Cocos (Keeling) Islands", + "Colombia": "Colombia", + "Comoros": "Comoros", + "Congo": "Congo", + "Congo, Democratic Republic": "Congo, Democratic Republic", + "Cook Islands": "Cook Islands", + "Costa Rica": "Costa Rica", + "Cote D'Ivoire": "Côte d'Ivoire", + "Croatia": "Croatia", + "Cuba": "Cuba", + "Curaçao": "Curaçao", + "Cyprus": "Cyprus", + "Czech Republic": "Czechia", + "Denmark": "Denmark", + "Djibouti": "Djibouti", + "Dominica": "Dominica", + "Dominican Republic": "Dominican Republic", + "Ecuador": "Ecuador", + "Egypt": "Egypt", + "El Salvador": "El Salvador", + "Equatorial Guinea": "Equatorial Guinea", + "Eritrea": "Eritrea", + "Estonia": "Estonia", + "Ethiopia": "Ethiopia", + "Falkland Islands (Malvinas)": "Falkland Islands (Malvinas)", + "Faroe Islands": "Faroe Islands", + "Fiji": "Fiji", + "Finland": "Finland", + "France": "France", + "French Guiana": "French Guiana", + "French Polynesia": "French Polynesia", + "French Southern Territories": "French Southern Territories", + "Gabon": "Gabon", + "Gambia": "Gambia", + "Georgia": "Georgia", + "Germany": "Germany", + "Ghana": "Ghana", + "Gibraltar": "Gibraltar", + "Greece": "Greece", + "Greenland": "Greenland", + "Grenada": "Grenada", + "Guadeloupe": "Guadeloupe", + "Guam": "Guam", + "Guatemala": "Guatemala", + "Guernsey": "Guernsey", + "Guinea": "Guinea", + "Guinea-Bissau": "Guinea-Bissau", + "Guyana": "Guyana", + "Haiti": "Haiti", + "Heard Island & Mcdonald Islands": "Heard Island and McDonald Islands", + "Holy See (Vatican City State)": "Vatican City", + "Honduras": "Honduras", + "Hong Kong": "Hong Kong", + "Hungary": "Hungary", + "Iceland": "Iceland", + "India": "India", + "Indonesia": "Indonesia", + "Iran, Islamic Republic Of": "Iran", + "Iraq": "Iraq", + "Ireland": "Ireland", + "Isle Of Man": "Isle of Man", + "Israel": "Israel", + "Italy": "Italy", + "Jamaica": "Jamaica", + "Japan": "Japan", + "Jersey": "Jersey", + "Jordan": "Jordan", + "Kazakhstan": "Kazakhstan", + "Kenya": "Kenya", + "Kiribati": "Kiribati", + "Korea, Democratic People's Republic of": "North Korea", + "Korea": "South Korea", + "Kosovo": "Kosovo", + "Kuwait": "Kuwait", + "Kyrgyzstan": "Kyrgyzstan", + "Lao People's Democratic Republic": "Laos", + "Latvia": "Latvia", + "Lebanon": "Lebanon", + "Lesotho": "Lesotho", + "Liberia": "Liberia", + "Libyan Arab Jamahiriya": "Libya", + "Liechtenstein": "Liechtenstein", + "Lithuania": "Lithuania", + "Luxembourg": "Luxembourg", + "Macao": "Macao", + "Macedonia": "North Macedonia", + "Madagascar": "Madagascar", + "Malawi": "Malawi", + "Malaysia": "Malaysia", + "Maldives": "Maldives", + "Mali": "Mali", + "Malta": "Malta", + "Marshall Islands": "Marshall Islands", + "Martinique": "Martinique", + "Mauritania": "Mauritania", + "Mauritius": "Mauritius", + "Mayotte": "Mayotte", + "Mexico": "Mexico", + "Micronesia, Federated States Of": "Micronesia", + "Moldova": "Moldova", + "Monaco": "Monaco", + "Mongolia": "Mongolia", + "Montenegro": "Montenegro", + "Montserrat": "Montserrat", + "Morocco": "Morocco", + "Mozambique": "Mozambique", + "Myanmar": "Myanmar", + "Namibia": "Namibia", + "Nauru": "Nauru", + "Nepal": "Nepal", + "Netherlands": "Netherlands", + "New Caledonia": "New Caledonia", + "New Zealand": "New Zealand", + "Nicaragua": "Nicaragua", + "Niger": "Niger", + "Nigeria": "Nigeria", + "Niue": "Niue", + "Norfolk Island": "Norfolk Island", + "Northern Mariana Islands": "Northern Mariana Islands", + "Norway": "Norway", + "Oman": "Oman", + "Pakistan": "Pakistan", + "Palau": "Palau", + "Palestinian Territory, Occupied": "Palestinian Territories", + "Panama": "Panama", + "Papua New Guinea": "Papua New Guinea", + "Paraguay": "Paraguay", + "Peru": "Peru", + "Philippines": "Philippines", + "Pitcairn": "Pitcairn Islands", + "Poland": "Poland", + "Portugal": "Portugal", + "Puerto Rico": "Puerto Rico", + "Qatar": "Qatar", + "Reunion": "Réunion", + "Romania": "Romania", + "Russian Federation": "Russia", + "Rwanda": "Rwanda", + "Saint Barthelemy": "St. Barthélemy", + "Saint Helena": "St. Helena", + "Saint Kitts And Nevis": "St. Kitts and Nevis", + "Saint Lucia": "St. Lucia", + "Saint Martin": "St. Martin", + "Saint Pierre And Miquelon": "St. Pierre and Miquelon", + "Saint Vincent And Grenadines": "St. Vincent and Grenadines", + "Samoa": "Samoa", + "San Marino": "San Marino", + "Sao Tome And Principe": "São Tomé and Príncipe", + "Saudi Arabia": "Saudi Arabia", + "Senegal": "Senegal", + "Serbia": "Serbia", + "Seychelles": "Seychelles", + "Sierra Leone": "Sierra Leone", + "Singapore": "Singapore", + "Sint Maarten (Dutch part)": "Sint Maarten", + "Slovakia": "Slovakia", + "Slovenia": "Slovenia", + "Solomon Islands": "Solomon Islands", + "Somalia": "Somalia", + "South Africa": "South Africa", + "South Georgia And Sandwich Isl.": "South Georgia and South Sandwich Islands", + "South Sudan": "South Sudan", + "Spain": "Spain", + "Sri Lanka": "Sri Lanka", + "Sudan": "Sudan", + "Suriname": "Suriname", + "Svalbard And Jan Mayen": "Svalbard and Jan Mayen", + "Swaziland": "Eswatini", + "Sweden": "Sweden", + "Switzerland": "Switzerland", + "Syrian Arab Republic": "Syria", + "Taiwan": "Taiwan", + "Tajikistan": "Tajikistan", + "Tanzania": "Tanzania", + "Thailand": "Thailand", + "Timor-Leste": "Timor-Leste", + "Togo": "Togo", + "Tokelau": "Tokelau", + "Tonga": "Tonga", + "Trinidad And Tobago": "Trinidad and Tobago", + "Tunisia": "Tunisia", + "Turkey": "Turkey", + "Turkmenistan": "Turkmenistan", + "Turks And Caicos Islands": "Turks and Caicos Islands", + "Tuvalu": "Tuvalu", + "Uganda": "Uganda", + "Ukraine": "Ukraine", + "United Arab Emirates": "United Arab Emirates", + "United Kingdom": "United Kingdom", + "United States": "United States", + "United States Outlying Islands": "U.S. Outlying Islands", + "Uruguay": "Uruguay", + "Uzbekistan": "Uzbekistan", + "Vanuatu": "Vanuatu", + "Venezuela": "Venezuela", + "Viet Nam": "Vietnam", + "Virgin Islands, British": "British Virgin Islands", + "Virgin Islands, U.S.": "U.S. Virgin Islands", + "Wallis And Futuna": "Wallis and Futuna", + "Western Sahara": "Western Sahara", + "Yemen": "Yemen", + "Zambia": "Zambia", + "Zimbabwe": "Zimbabwe", + "Yes": "Yes", + "No": "No", + "Action Name": "Name", + "Action Initiated By": "Initiated By", + "Action Target": "Target", + "Action Status": "Status", + "Action Happened At": "Happened At", + "resource": "resource", + "resources": "resources", + "Choose date": "Choose date", + "The :resource was created!": "The :resource was created!", + "The resource was attached!": "The resource was attached!", + "The :resource was updated!": "The :resource was updated!", + "The resource was updated!": "The resource was updated!", + "The :resource was deleted!": "The :resource was deleted!", + "The :resource was restored!": "The :resource was restored!", + "Increase": "Increase", + "Constant": "Constant", + "Decrease": "Decrease", + "Reset Password Notification": "Reset Password Notification", + "Nova User": "Nova User", + "of": "of", + "no file selected": "no file selected", + "Sorry, your session has expired.": "Sorry, your session has expired.", + "Reload": "Reload", + "Key": "Key", + "Value": "Value", + "Add row": "Add row", + "Attach :resource": "Attach :resource", + "Create :resource": "Create :resource", + "Choose :resource": "Choose :resource", + "New :resource": "New :resource", + "Edit :resource": "Edit :resource", + "Update :resource": "Update :resource", + "Start Polling": "Start Polling", + "Stop Polling": "Stop Polling", + "Choose :field": "Choose :field", + "Download": "Download", + "Action": "Action", + "Changes": "Changes", + "Original": "Original", + "This resource no longer exists": "This resource no longer exists", + "The resource was prevented from being saved!": "The resource was prevented from being saved!", + ":resource Details": ":resource Details", + "There are no available options for this resource.": "There are no available options for this resource.", + "All resources loaded.": "All resources loaded.", + "Load :perPage More": "Load :perPage More", + ":amount Total": ":amount Total", + "Show All Fields": "Show All Fields", + "There was a problem submitting the form.": "There was a problem submitting the form.", + "There was a problem executing the action.": "There was a problem executing the action.", + "There was a problem fetching the resource.": "There was a problem fetching the resource.", + "Do you really want to leave? You have unsaved changes.": "Do you really want to leave? You have unsaved changes.", + "*": "*", + "—": "—", + "The file was deleted!": "The file was deleted!", + "This file field is read-only.": "This file field is read-only.", + "No additional information...": "No additional information...", + "ID": "ID", + "30 Days": "30 Days", + "60 Days": "60 Days", + "90 Days": "90 Days", + "Today": "Today", + "Month To Date": "Month To Date", + "Quarter To Date": "Quarter To Date", + "Year To Date": "Year To Date", + "Customize": "Customize", + "Update :resource: :title": "Update :resource: :title", + "Update attached :resource: :title": "Update attached :resource: :title", + ":resource Details: :title": ":resource Details: :title", + "The HasOne relationship has already been filled.": "The HasOne relationship has already been filled.", + "An error occurred while uploading the file.": "An error occurred while uploading the file.", + "Previewing": "Previewing", + "Replicate": "Replicate", + "Are you sure you want to log out?": "Are you sure you want to log out?", + "There are no new notifications.": "There are no new notifications.", + "Resource Row Dropdown": "Resource Row Dropdown", + "This copy of Nova is unlicensed.": "This copy of Nova is unlicensed.", + "Impersonate": "Impersonate", + "Stop Impersonating": "Stop Impersonating", + "Are you sure you want to stop impersonating?": "Are you sure you want to stop impersonating?", + "Light": "Light", + "Dark": "Dark", + "System": "System", + "From": "From", + "To": "To", + "There are no fields to display.": "There are no fields to display.", + "Notifications": "Notifications", + "Mark all as Read": "Mark all as Read", + "Copy to clipboard": "Copy to clipboard", + "Are you sure you want to delete this notification?": "Are you sure you want to delete this notification?", + "Drop files or click to choose": "Drop files or click to choose", + "Drop file or click to choose": "Drop file or click to choose", + "The image could not be loaded": "The image could not be loaded", + "Filename": "Filename", + "Type": "Type", + "CSV (.csv)": "CSV (.csv)", + "Excel (.xlsx)": "Excel (.xlsx)" +} diff --git a/lang/vendor/nova/en/validation.php b/lang/vendor/nova/en/validation.php new file mode 100644 index 00000000..1d987d44 --- /dev/null +++ b/lang/vendor/nova/en/validation.php @@ -0,0 +1,19 @@ + 'This :attribute is already attached.', + 'relatable' => 'This :attribute may not be associated with this resource.', + +];