This commit is contained in:
Dennis
2022-04-07 14:46:56 +02:00
parent 14c6faafa2
commit 94d50c11ef
9 changed files with 88 additions and 7 deletions

View File

@@ -14,11 +14,16 @@ class ServerController extends Controller
public function index()
{
return inertia('Admin/Servers/Index', [
'filters' => request()->all('search'),
'servers' => ServerResource::collection(
Server::query()
->with('users:id,name')
->latest()
->paginate(config('core.pagination.per_page'))
->when(request()->input('search'), function ($query, $value) {
return $query->where('name', 'like', '%' . $value . '%')->orWhere('ip', 'like', '%' . $value . '%');
})
->with('users:id,name')
->latest()
->paginate(config('core.pagination.per_page'))
->withQueryString()
)
]);
}

View File

@@ -14,11 +14,16 @@ class SiteController extends Controller
public function index()
{
return inertia('Admin/Sites/Index', [
'filters' => request()->all('search'),
'sites' => SiteResource::collection(
Site::query()
->when(request()->input('search'), function ($query, $value) {
return $query->where('domain', 'like', '%' . $value . '%');
})
->with('server:id,name', 'users:id,name')
->latest()
->paginate(config('core.pagination.per_page'))
->withQueryString()
)
]);
}

5
public/js/app.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -15,6 +15,11 @@
<template #segments>
<SettingsSegment>
<template #title>{{ __('Servers') }}</template>
<template #form>
<form class="space-y-4 pb-5 mb-5 border-b border-low-emphasis">
<FormInput :label="__('Search')" v-model="form.search" />
</form>
</template>
<template #content>
<div>
<Table caption="Server list overview">
@@ -82,6 +87,7 @@ import SettingsLayout from '@/components/layouts/SettingsLayout'
import SettingsSegment from '@/components/SettingsSegment'
import Pagination from '@/components/Pagination'
import {useNotification} from '@/hooks/notification'
import FormInput from '@/components/forms/FormInput'
import Table from '@/components/Table'
import TableHead from '@/components/TableHead'
import TableHeader from '@/components/TableHeader'
@@ -89,6 +95,8 @@ import TableRow from '@/components/TableRow'
import TableBody from '@/components/TableBody'
import TableData from '@/components/TableData'
import IconPhp from '@/components/icons/IconPhp'
import throttle from "lodash/throttle";
import pickBy from "lodash/pickBy";
export default {
layout: MainLayout,
@@ -122,10 +130,12 @@ export default {
TableBody,
TableData,
IconPhp,
FormInput,
},
props: {
servers: Object,
filters: Object,
},
mounted() {
@@ -134,5 +144,27 @@ export default {
methods: {
useNotification,
},
data () {
return {
form: {
search: this.filters.search,
}
}
},
watch: {
form: {
handler: throttle(function() {
let query = pickBy(this.form)
this.$inertia.get(this.route('admin.servers.index', Object.keys(query).length ? query : { remember: 'forget' }), {},{
preserveScroll: true,
preserveState: true,
})
}, 500),
deep: true
},
},
}
</script>

View File

@@ -15,6 +15,11 @@
<template #segments>
<SettingsSegment>
<template #title>{{ __('Sites') }}</template>
<template #form>
<form class="space-y-4 pb-5 mb-5 border-b border-low-emphasis">
<FormInput :label="__('Search')" v-model="form.search" />
</form>
</template>
<template #content>
<div>
<Table caption="Site list overview">
@@ -93,6 +98,7 @@ import SettingsLayout from '@/components/layouts/SettingsLayout'
import SettingsSegment from '@/components/SettingsSegment'
import Pagination from '@/components/Pagination'
import {useNotification} from '@/hooks/notification'
import FormInput from '@/components/forms/FormInput'
import Table from '@/components/Table'
import TableHead from '@/components/TableHead'
import TableHeader from '@/components/TableHeader'
@@ -100,6 +106,8 @@ import TableRow from '@/components/TableRow'
import TableBody from '@/components/TableBody'
import TableData from '@/components/TableData'
import IconPhp from '@/components/icons/IconPhp'
import throttle from "lodash/throttle";
import pickBy from "lodash/pickBy";
export default {
layout: MainLayout,
@@ -133,10 +141,12 @@ export default {
TableBody,
TableData,
IconPhp,
FormInput
},
props: {
sites: Object,
filters: Object,
},
mounted() {
@@ -145,5 +155,26 @@ export default {
methods: {
useNotification,
},
data () {
return {
form: {
search: this.filters.search,
}
}
},
watch: {
form: {
handler: throttle(function() {
let query = pickBy(this.form)
this.$inertia.get(this.route('admin.sites.index', Object.keys(query).length ? query : { remember: 'forget' }), {},{
preserveScroll: true,
preserveState: true,
})
}, 500),
deep: true
},
},
}
</script>

View File

@@ -152,7 +152,9 @@
form: {
handler: throttle(function() {
let query = pickBy(this.form)
this.$inertia.replace(this.route('admin.users.index', Object.keys(query).length ? query : { remember: 'forget' }))
this.$inertia.get(this.route('admin.users.index', Object.keys(query).length ? query : { remember: 'forget' }),{}, {
preserveState: true,
})
}, 500),
deep: true
},

View File

@@ -19,7 +19,7 @@
<SettingsSegment v-if="site.project">
<template #title>{{ __('Overview') }}</template>
<template #subtitle>
{{ __('You currently have a application installed.') }}
{{ __('You currently have :application installed.', {application: site.project}) }}
</template>
<template #content>

View File

@@ -6,7 +6,10 @@ module.exports = {
__(key, replace) {
let translation = this.$page.props.translations[key] ? this.$page.props.translations[key] : key;
console.log(replace);
_forEach(replace, (value, key) => {
console.log(value, key)
console.log(translation);
translation = translation.replace(':' + key, value);
});

View File

@@ -147,7 +147,7 @@
"WordPress is open source software you can use to create a beautiful website, blog, or app.": "WordPress is open source software wat je kan gebruiken om eenvoudig je website, blog of app te bouwen.",
"Create database & attach to WordPress": "Maak een nieuwe database en koppel WordPress",
"This will also create a database and attach it directly for you so you have a easy start.": "Dit maakt een nieuwe database aan, en koppelt je WordPress installatie gelijk zodat je meteen kunt beginnen met installeren.",
"You currently have a application installed.": "Je hebt momenteel een applicatie geïnstalleerd.",
"You currently have :application installed.": "Je hebt momenteel :application geïnstalleerd.",
"Nextcloud is a suite of client-server software for creating and using file hosting services, it is comparable to Dropbox.": "Nextcloud is software om bestanden mee te hosten, het is vergelijkbaar met Dropbox.",