closes #75 and adds initial support for proxmox
This commit is contained in:
parent
88c36d2b2d
commit
592f8f0831
6 changed files with 99 additions and 3 deletions
|
@ -129,7 +129,7 @@ class ItemController extends Controller
|
||||||
//
|
//
|
||||||
$validatedData = $request->validate([
|
$validatedData = $request->validate([
|
||||||
'title' => 'required|max:255',
|
'title' => 'required|max:255',
|
||||||
'url' => 'required',
|
'url' => 'required|url',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if($request->hasFile('file')) {
|
if($request->hasFile('file')) {
|
||||||
|
@ -190,7 +190,7 @@ class ItemController extends Controller
|
||||||
{
|
{
|
||||||
$validatedData = $request->validate([
|
$validatedData = $request->validate([
|
||||||
'title' => 'required|max:255',
|
'title' => 'required|max:255',
|
||||||
'url' => 'required',
|
'url' => 'required|url',
|
||||||
]);
|
]);
|
||||||
//die(print_r($request->all()));
|
//die(print_r($request->all()));
|
||||||
if($request->hasFile('file')) {
|
if($request->hasFile('file')) {
|
||||||
|
|
|
@ -41,6 +41,7 @@ class Item extends Model
|
||||||
'Plexpy' => \App\SupportedApps\Plexpy::class,
|
'Plexpy' => \App\SupportedApps\Plexpy::class,
|
||||||
'Plexrequests' => \App\SupportedApps\Plexrequests::class,
|
'Plexrequests' => \App\SupportedApps\Plexrequests::class,
|
||||||
'Portainer' => \App\SupportedApps\Portainer::class,
|
'Portainer' => \App\SupportedApps\Portainer::class,
|
||||||
|
'Proxmox' => \App\SupportedApps\Proxmox::class,
|
||||||
'Radarr' => \App\SupportedApps\Radarr::class,
|
'Radarr' => \App\SupportedApps\Radarr::class,
|
||||||
'Sabnzbd' => \App\SupportedApps\Sabnzbd::class,
|
'Sabnzbd' => \App\SupportedApps\Sabnzbd::class,
|
||||||
'Sonarr' => \App\SupportedApps\Sonarr::class,
|
'Sonarr' => \App\SupportedApps\Sonarr::class,
|
||||||
|
|
80
app/SupportedApps/Proxmox.php
Normal file
80
app/SupportedApps/Proxmox.php
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
<?php namespace App\SupportedApps;
|
||||||
|
|
||||||
|
use GuzzleHttp\Exception\GuzzleException;
|
||||||
|
use GuzzleHttp\Client;
|
||||||
|
|
||||||
|
class Proxmox implements Contracts\Applications, Contracts\Livestats {
|
||||||
|
public function defaultColour()
|
||||||
|
{
|
||||||
|
return '#542e0a';
|
||||||
|
}
|
||||||
|
public function icon()
|
||||||
|
{
|
||||||
|
return 'supportedapps/proxmox.png';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function configDetails()
|
||||||
|
{
|
||||||
|
//return 'proxmox';
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testConfig()
|
||||||
|
{
|
||||||
|
/*$res = $this->buildRequest();
|
||||||
|
switch($res->getStatusCode()) {
|
||||||
|
case 200:
|
||||||
|
echo 'Successfully connected to the API';
|
||||||
|
break;
|
||||||
|
case 401:
|
||||||
|
echo 'Failed: Invalid credentials';
|
||||||
|
break;
|
||||||
|
case 404:
|
||||||
|
echo 'Failed: Please make sure your URL is correct and that there is a trailing slash';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
echo 'Something went wrong... Code: '.$res->getStatusCode();
|
||||||
|
break;
|
||||||
|
}*/
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function executeConfig()
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
$output = '';
|
||||||
|
$res = $this->buildRequest();
|
||||||
|
$data = json_decode($res->getBody());
|
||||||
|
|
||||||
|
$output = '
|
||||||
|
<ul class="livestats">
|
||||||
|
<li><span class="title">Domains<br />Blocked</span><strong>'.$data->domains_being_blocked.'</strong></li>
|
||||||
|
<li><span class="title">Blocked<br />Today</span><strong>'.$data->ads_blocked_today.'</span></strong></li>
|
||||||
|
</ul>
|
||||||
|
';
|
||||||
|
return $output;
|
||||||
|
*/
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function buildRequest($endpoint='')
|
||||||
|
{
|
||||||
|
$config = $this->config;
|
||||||
|
|
||||||
|
$username = $config->username;
|
||||||
|
$password = $config->password;
|
||||||
|
|
||||||
|
$url = $config->url;
|
||||||
|
$url = rtrim($url, '/');
|
||||||
|
|
||||||
|
$api_url = $url.'/api2/json/'.$endpoint.'?username='.$username.'&password='.$password;
|
||||||
|
//die( $api_url.' --- ');
|
||||||
|
|
||||||
|
$client = new Client(['http_errors' => false, 'verify' => false ]);
|
||||||
|
$res = $client->request('GET', $api_url);
|
||||||
|
return $res;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -7,7 +7,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
<label>{{ __('app.apps.password') }}</label>
|
<label>{{ __('app.apps.password') }}</label>
|
||||||
{!! Form::text('config[password]', null, array('placeholder' => __('app.apps.password'), 'data-config' => 'password', 'class' => 'form-control config-item')) !!}
|
<input type="password" name="config[password]" value="{{ $item->config->password }}" placeholder="{{ __('app.apps.password') }}" class="form-control config-item" data-config="password" />
|
||||||
</div>
|
</div>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button>
|
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button>
|
||||||
|
|
15
resources/views/supportedapps/proxmox.blade.php
Normal file
15
resources/views/supportedapps/proxmox.blade.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<h2>{{ __('app.apps.config') }} ({{ __('app.optional') }})</h2>
|
||||||
|
<div class="items">
|
||||||
|
<input type="hidden" data-config="type" class="config-item" name="config[type]" value="\App\SupportedApps\Proxmox" />
|
||||||
|
<div class="input">
|
||||||
|
<label>{{ __('app.apps.username') }}</label>
|
||||||
|
{!! Form::text('config[username]', null, array('placeholder' => __('app.apps.username'), 'data-config' => 'username', 'class' => 'form-control config-item')) !!}
|
||||||
|
</div>
|
||||||
|
<div class="input">
|
||||||
|
<label>{{ __('app.apps.password') }}</label>
|
||||||
|
<input type="password" name="config[password]" value="{{ $item->config->password or '' }}" placeholder="{{ __('app.apps.password') }}" class="form-control config-item" data-config="password" />
|
||||||
|
</div>
|
||||||
|
<div class="input">
|
||||||
|
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
BIN
storage/app/public/supportedapps/proxmox.png
Normal file
BIN
storage/app/public/supportedapps/proxmox.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
Loading…
Reference in a new issue