This commit is contained in:
Dennis Smink
2020-10-08 14:56:48 +02:00
parent 3d445ca61a
commit ce5e6c18f0
12 changed files with 110 additions and 72 deletions

View File

@@ -14,7 +14,7 @@ class ServiceController extends Controller
return inertia('Admin/Services/Index', [
'servers' => Server::withCount('sites')->latest()->paginate(5, ['*'], 'servers_per_page'),
'sites' => Site::with('server:id,name')->latest()->paginate(5, ['*'], 'sites_per_page'),
'providers' => Provider::latest()->paginate(5, ['*'], 'providers_per_page'),
'providers' => Provider::query()->withCount('regions', 'plans')->latest()->paginate(5, ['*'], 'providers_per_page'),
]);
}
}

View File

@@ -28,33 +28,31 @@ class SynchronizeProviderController extends Controller
]);
}
public function synchronize()
public function synchronize(Request $request, $providerId)
{
$providers = (new Ploi)->user()->serverProviders()->getData();
$ploiProvider = (new Ploi)->user()->serverProviders($providerId)->getData();
foreach ($providers as $ploiProvider) {
$provider = Provider::updateOrCreate([
'ploi_id' => $ploiProvider->id,
$provider = Provider::updateOrCreate([
'ploi_id' => $ploiProvider->id,
], [
'label' => $ploiProvider->label,
'name' => $ploiProvider->name
]);
foreach ($ploiProvider->provider->plans as $plan) {
$provider->plans()->updateOrCreate([
'plan_id' => $plan->id
], [
'label' => $ploiProvider->label,
'name' => $ploiProvider->name
'label' => $plan->name,
]);
}
foreach ($ploiProvider->provider->plans as $plan) {
$provider->plans()->updateOrCreate([
'plan_id' => $plan->id
], [
'label' => $plan->name,
]);
}
foreach ($ploiProvider->provider->regions as $region) {
$provider->regions()->updateOrCreate([
'region_id' => $region->id
], [
'label' => $region->name,
]);
}
foreach ($ploiProvider->provider->regions as $region) {
$provider->regions()->updateOrCreate([
'region_id' => $region->id
], [
'label' => $region->name,
]);
}
}
}

View File

@@ -20,8 +20,14 @@ class User extends Resource
return $this->getPloi()->makeAPICall($this->getEndpoint());
}
public function serverProviders()
public function serverProviders($id = null)
{
return $this->getPloi()->makeAPICall($this->getEndpoint() . '/server-providers');
$url = $this->getEndpoint() . '/server-providers';
if ($id) {
$url .= '/' . $id;
}
return $this->getPloi()->makeAPICall($url);
}
}

58
composer.lock generated
View File

@@ -1137,16 +1137,16 @@
},
{
"name": "laravel/cashier",
"version": "v12.4.0",
"version": "v12.4.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/cashier-stripe.git",
"reference": "1f5cf6b0068e6edf1d14689b1cd8fdf0b3025102"
"reference": "4775da2ddb76c8e04020bb2445930689f2e4ce70"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/cashier-stripe/zipball/1f5cf6b0068e6edf1d14689b1cd8fdf0b3025102",
"reference": "1f5cf6b0068e6edf1d14689b1cd8fdf0b3025102",
"url": "https://api.github.com/repos/laravel/cashier-stripe/zipball/4775da2ddb76c8e04020bb2445930689f2e4ce70",
"reference": "4775da2ddb76c8e04020bb2445930689f2e4ce70",
"shasum": ""
},
"require": {
@@ -1207,20 +1207,20 @@
"laravel",
"stripe"
],
"time": "2020-09-29T17:15:30+00:00"
"time": "2020-10-06T15:16:45+00:00"
},
{
"name": "laravel/framework",
"version": "v8.8.0",
"version": "v8.9.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "0bdd5c6f12cb7cb6644e484169656245af417735"
"reference": "8a6bf870bcfa1597e514a9c7ee6df44db98abb54"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/0bdd5c6f12cb7cb6644e484169656245af417735",
"reference": "0bdd5c6f12cb7cb6644e484169656245af417735",
"url": "https://api.github.com/repos/laravel/framework/zipball/8a6bf870bcfa1597e514a9c7ee6df44db98abb54",
"reference": "8a6bf870bcfa1597e514a9c7ee6df44db98abb54",
"shasum": ""
},
"require": {
@@ -1370,20 +1370,20 @@
"framework",
"laravel"
],
"time": "2020-10-02T14:33:08+00:00"
"time": "2020-10-06T14:22:36+00:00"
},
{
"name": "laravel/horizon",
"version": "v5.2.0",
"version": "v5.2.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/horizon.git",
"reference": "839bf8b142585f7be142090d4d05c341a4595fae"
"reference": "8fbe70580d653e0f5c33ed9b151f6eebc16dfbf2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/horizon/zipball/839bf8b142585f7be142090d4d05c341a4595fae",
"reference": "839bf8b142585f7be142090d4d05c341a4595fae",
"url": "https://api.github.com/repos/laravel/horizon/zipball/8fbe70580d653e0f5c33ed9b151f6eebc16dfbf2",
"reference": "8fbe70580d653e0f5c33ed9b151f6eebc16dfbf2",
"shasum": ""
},
"require": {
@@ -1443,7 +1443,7 @@
"laravel",
"queue"
],
"time": "2020-09-29T17:39:48+00:00"
"time": "2020-10-06T15:44:48+00:00"
},
{
"name": "laravel/tinker",
@@ -2037,16 +2037,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.40.1",
"version": "2.41.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "d9a76d8b7eb0f97cf3a82529393245212f40ba3b"
"reference": "8690b13ad4da6d54d692afea15aab30b36fee52e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d9a76d8b7eb0f97cf3a82529393245212f40ba3b",
"reference": "d9a76d8b7eb0f97cf3a82529393245212f40ba3b",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8690b13ad4da6d54d692afea15aab30b36fee52e",
"reference": "8690b13ad4da6d54d692afea15aab30b36fee52e",
"shasum": ""
},
"require": {
@@ -2122,7 +2122,7 @@
"type": "tidelift"
}
],
"time": "2020-09-23T08:17:37+00:00"
"time": "2020-10-04T09:11:05+00:00"
},
{
"name": "nikic/php-parser",
@@ -3341,12 +3341,12 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "04c3a31fe8ea94b42c9e2d1acc93d19782133b00"
"reference": "ae789a8a2ad189ce7e8216942cdb9b77319f5eb8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/04c3a31fe8ea94b42c9e2d1acc93d19782133b00",
"reference": "04c3a31fe8ea94b42c9e2d1acc93d19782133b00",
"url": "https://api.github.com/repos/symfony/console/zipball/ae789a8a2ad189ce7e8216942cdb9b77319f5eb8",
"reference": "ae789a8a2ad189ce7e8216942cdb9b77319f5eb8",
"shasum": ""
},
"require": {
@@ -5554,16 +5554,16 @@
},
{
"name": "symfony/translation-contracts",
"version": "v2.2.0",
"version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "77ce1c3627c9f39643acd9af086631f842c50c4d"
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/77ce1c3627c9f39643acd9af086631f842c50c4d",
"reference": "77ce1c3627c9f39643acd9af086631f842c50c4d",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105",
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105",
"shasum": ""
},
"require": {
@@ -5575,7 +5575,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2-dev"
"dev-master": "2.3-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5625,7 +5625,7 @@
"type": "tidelift"
}
],
"time": "2020-09-07T11:33:47+00:00"
"time": "2020-09-28T13:05:58+00:00"
},
{
"name": "symfony/var-dumper",

42
public/js/28.js vendored
View File

@@ -154,6 +154,8 @@ __webpack_require__.r(__webpack_exports__);
//
//
//
//
//
@@ -829,6 +831,22 @@ var render = function() {
_vm._v(
_vm._s(_vm.__("Name"))
)
]),
_vm._v(" "),
_c("TableHeader", [
_vm._v(
_vm._s(
_vm.__("Regions")
)
)
]),
_vm._v(" "),
_c("TableHeader", [
_vm._v(
_vm._s(
_vm.__("Plans")
)
)
])
],
1
@@ -848,11 +866,25 @@ var render = function() {
[
_c("TableData", [
_vm._v(
"\n " +
_vm._s(
provider.name
) +
"\n "
_vm._s(
provider.name
)
)
]),
_vm._v(" "),
_c("TableData", [
_vm._v(
_vm._s(
provider.regions_count
)
)
]),
_vm._v(" "),
_c("TableData", [
_vm._v(
_vm._s(
provider.plans_count
)
)
])
],

6
public/js/29.js vendored
View File

@@ -146,11 +146,11 @@ __webpack_require__.r(__webpack_exports__);
methods: {
useNotification: _hooks_notification__WEBPACK_IMPORTED_MODULE_16__["useNotification"],
syncProvider: function syncProvider(provider) {
window.axios.post(this.route('admin.services.providers.sync').url(), provider).then(function () {
window.axios.post(this.route('admin.services.providers.sync', provider.id).url()).then(function () {
Object(_hooks_notification__WEBPACK_IMPORTED_MODULE_16__["useNotification"])({
variant: 'success',
title: "Servers",
message: "Server ".concat(provider.name, " has been synchronized to this system")
title: "Providers",
message: "Provider has been synchronized to this system"
});
});
}

2
public/js/app.js vendored
View File

@@ -43,7 +43,7 @@
/******/
/******/ // script path function
/******/ function jsonpScriptSrc(chunkId) {
/******/ return __webpack_require__.p + "js/" + ({}[chunkId]||chunkId) + ".js?id=" + {"0":"0dcde053981f92959e59","1":"40f269324eb90e7c5005","2":"d2a49802291d427ca7c8","3":"a0f4c2f49863abbfe7f1","4":"b45cf4f45862750fc0ec","5":"fbfbcf45610d060d921e","6":"73fc0264b5cc06f5bd55","7":"140acb8c38018bb7c822","8":"59e78c3d75a8476bd5c9","9":"0e2b6a5949f3c9112538","10":"e12d43ebc44608e90444","11":"600b259f81e5153b767c","12":"d034cfb412691b7d0e84","13":"e620d0cc7f75645634e5","14":"7786a4d7d85cd912d1bb","15":"fde17a1d596d6578fe61","16":"ec73f93b8d2c978c776b","17":"cf8ec68b59d72505ca3a","18":"eb279f54aaced41cea0d","19":"7dd7a559b3a7db219af9","20":"56c907d75bd74a171a1e","21":"293d9274645861582e83","22":"f86cd3fbd99cae6840a1","23":"69b50c09720c1e425846","24":"6528b4d30e41a6fa0079","25":"c087891e0174c14e6712","26":"2448e94386f76b71cbc5","27":"f64fcf99c66c3ded843a","28":"4a1f6857a38fbe3f583e","29":"3e8de8374ad62ab4b426","30":"8f6b75b1056f77edd7d8","31":"1acf411869a8e096f3f8","32":"30a83cf6d55f048c730b","33":"2d14ca2a6406d307547e","34":"bc0885eef410fbade8fc","35":"e56896a66f867409262b","36":"09ec9d54b8c4acc2c226","37":"75f1b85b9b852e1040f3","38":"90b4d3aa5d92b0e25cb9","39":"d24ee3149eb5f3aa7cfe","40":"78ba68bbf8b3a90c972f","41":"9ea0b8b2d032dc6bba68","42":"daa45de5ab60b7a5ee95","43":"b9aad17d672794fa0ab4","44":"e61a0dab1a168ac685a1","45":"ddb8f7119d99df8d9155","46":"6b716f015210cc25636b","47":"5b6de6cb797c8e70617e","48":"d56b2d68a49228bdf461","49":"c372a063b5ce07504818","50":"10c0b02937ccbb8cf8c2","51":"33e30a051063406a0533","52":"a1901fac2f6d201e6e54","53":"1d320894a69d142318f5","54":"313566e43338ac4d2a63","55":"f3153a9934d4a989fe58","56":"d4e65c5c372d943f7717","57":"e7b7cf89af06fefa4ac6","58":"057bd42c6b735e1adeac","59":"ec4d9d96c5a8c71fed66","60":"80eb3d9df423b601b999","61":"2aaabbb8b5b914f75ab9","62":"005c58450168150eb83e","63":"3aae56858268d64ce6e2","64":"c20b2f73f04cb0886ad3","65":"b63d846341c512b126cd","66":"0e0831135bb035904b97","67":"6def5a8417ea9beb03b3","68":"2cda38c0f15691b0555c","69":"e53226a85f426649d17b","70":"3704a8d7d930c7f967a1","71":"9aac3e5b650105816487","72":"6f27e9aa510a5d3f9787","73":"9d429cf3c5f7c2e5a1f6","74":"8afce2fa290e12dfcc70"}[chunkId] + ""
/******/ return __webpack_require__.p + "js/" + ({}[chunkId]||chunkId) + ".js?id=" + {"0":"0dcde053981f92959e59","1":"40f269324eb90e7c5005","2":"d2a49802291d427ca7c8","3":"a0f4c2f49863abbfe7f1","4":"b45cf4f45862750fc0ec","5":"fbfbcf45610d060d921e","6":"73fc0264b5cc06f5bd55","7":"140acb8c38018bb7c822","8":"59e78c3d75a8476bd5c9","9":"0e2b6a5949f3c9112538","10":"e12d43ebc44608e90444","11":"600b259f81e5153b767c","12":"d034cfb412691b7d0e84","13":"e620d0cc7f75645634e5","14":"7786a4d7d85cd912d1bb","15":"fde17a1d596d6578fe61","16":"ec73f93b8d2c978c776b","17":"cf8ec68b59d72505ca3a","18":"eb279f54aaced41cea0d","19":"7dd7a559b3a7db219af9","20":"56c907d75bd74a171a1e","21":"293d9274645861582e83","22":"f86cd3fbd99cae6840a1","23":"69b50c09720c1e425846","24":"6528b4d30e41a6fa0079","25":"c087891e0174c14e6712","26":"2448e94386f76b71cbc5","27":"f64fcf99c66c3ded843a","28":"40f294172e10b8c06c29","29":"0cc4daf6469c1a75ab08","30":"8f6b75b1056f77edd7d8","31":"1acf411869a8e096f3f8","32":"30a83cf6d55f048c730b","33":"2d14ca2a6406d307547e","34":"bc0885eef410fbade8fc","35":"e56896a66f867409262b","36":"09ec9d54b8c4acc2c226","37":"75f1b85b9b852e1040f3","38":"90b4d3aa5d92b0e25cb9","39":"d24ee3149eb5f3aa7cfe","40":"78ba68bbf8b3a90c972f","41":"9ea0b8b2d032dc6bba68","42":"daa45de5ab60b7a5ee95","43":"b9aad17d672794fa0ab4","44":"e61a0dab1a168ac685a1","45":"ddb8f7119d99df8d9155","46":"6b716f015210cc25636b","47":"5b6de6cb797c8e70617e","48":"d56b2d68a49228bdf461","49":"c372a063b5ce07504818","50":"10c0b02937ccbb8cf8c2","51":"33e30a051063406a0533","52":"a1901fac2f6d201e6e54","53":"1d320894a69d142318f5","54":"313566e43338ac4d2a63","55":"f3153a9934d4a989fe58","56":"d4e65c5c372d943f7717","57":"e7b7cf89af06fefa4ac6","58":"057bd42c6b735e1adeac","59":"ec4d9d96c5a8c71fed66","60":"80eb3d9df423b601b999","61":"2aaabbb8b5b914f75ab9","62":"005c58450168150eb83e","63":"3aae56858268d64ce6e2","64":"c20b2f73f04cb0886ad3","65":"b63d846341c512b126cd","66":"0e0831135bb035904b97","67":"6def5a8417ea9beb03b3","68":"2cda38c0f15691b0555c","69":"e53226a85f426649d17b","70":"3704a8d7d930c7f967a1","71":"9aac3e5b650105816487","72":"6f27e9aa510a5d3f9787","73":"9d429cf3c5f7c2e5a1f6","74":"8afce2fa290e12dfcc70"}[chunkId] + ""
/******/ }
/******/
/******/ // The require function

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
{
"/app.js": "/app.js?id=3440877abe55084a2931",
"/app.js": "/app.js?id=b11bd1f0cc14854a97de",
"/app.css": "/app.css?id=9ce01eaaba790566b895",
"/app-dark.css": "/app-dark.css?id=821c845f9bf3b7853c33"
}

View File

@@ -96,13 +96,15 @@
<TableHead>
<TableRow>
<TableHeader>{{ __('Name') }}</TableHeader>
<TableHeader>{{ __('Regions') }}</TableHeader>
<TableHeader>{{ __('Plans') }}</TableHeader>
</TableRow>
</TableHead>
<TableBody>
<TableRow v-for="provider in providers.data" :key="provider.id">
<TableData>
{{ provider.name }}
</TableData>
<TableData>{{ provider.name }}</TableData>
<TableData>{{ provider.regions_count }}</TableData>
<TableData>{{ provider.plans_count }}</TableData>
</TableRow>
</TableBody>
</Table>

View File

@@ -118,12 +118,12 @@
useNotification,
syncProvider (provider){
window.axios.post(this.route('admin.services.providers.sync').url(), provider)
window.axios.post(this.route('admin.services.providers.sync', provider.id).url())
.then(() => {
useNotification({
variant: 'success',
title: `Servers`,
message: `Server ${provider.name} has been synchronized to this system`
title: `Providers`,
message: `Provider has been synchronized to this system`
})
});
}

View File

@@ -42,7 +42,7 @@ Route::group(['prefix' => 'services', 'as' => 'services.'], function () {
// Provider syncing
Route::group(['prefix' => 'providers', 'as' => 'providers.'], function () {
Route::get('/', 'SynchronizeProviderController@index')->name('index');
Route::post('/', 'SynchronizeProviderController@synchronizeServer')->name('sync');
Route::post('{provider}', 'SynchronizeProviderController@synchronize')->name('sync');
});
// Site syncing