diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php index d5c685ee..7c0598fb 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -194,6 +194,7 @@ class ItemController extends Controller public function create(): View { // + $data['item'] = new \App\Item(); $data['tags'] = Item::ofType('tag')->orderBy('title', 'asc')->pluck('title', 'id'); $data['tags']->prepend(__('app.dashboard'), 0); $data['current_tags'] = '0'; @@ -422,6 +423,7 @@ class ItemController extends Controller { $output = []; $appid = $request->input('app'); + $itemId = $request->input('item_id'); if ($appid === 'null') { return null; @@ -436,8 +438,10 @@ class ItemController extends Controller $appdetails = Application::getApp($appid); if ((bool)$app->enhanced === true) { + $item = $itemId ? Item::find($itemId) : Item::where('appid', $appid)->first(); // if(!isset($app->config)) { // class based config $output['custom'] = className($appdetails->name) . '.config'; + $output['appvalue'] = $item->description; // } } diff --git a/config/app.php b/config/app.php index 3baac805..030e9c43 100644 --- a/config/app.php +++ b/config/app.php @@ -5,7 +5,7 @@ use Illuminate\Support\Facades\Facade; return [ - 'version' => '2.7.1', + 'version' => '2.7.2', 'appsource' => env('APP_SOURCE', 'https://appslist.heimdall.site/'), diff --git a/resources/views/items/form.blade.php b/resources/views/items/form.blade.php index 10d4b26d..455cb980 100644 --- a/resources/views/items/form.blade.php +++ b/resources/views/items/form.blade.php @@ -1,6 +1,7 @@
@if($enable_auth_admin_controls)
+ {{ html()->hidden('app_id', $item->id) }}
{{ __('app.apps.preview') }}
@@ -120,7 +121,7 @@ @if(isset($item) && $item->enhanced())
- @if(isset($item)) + @if(isset($item) && $item->class) @include('SupportedApps::'.App\Item::nameFromClass($item->class).'.config') @endif
diff --git a/resources/views/items/scripts.blade.php b/resources/views/items/scripts.blade.php index fe7acf2a..7409c101 100644 --- a/resources/views/items/scripts.blade.php +++ b/resources/views/items/scripts.blade.php @@ -171,13 +171,14 @@ }) function appload(appvalue) { + const itemId = $('input[name="item_id"]').val(); if(appvalue == 'null') { $('#sapconfig').html('').hide(); $('#tile-preview .app-icon').attr('src', '/img/heimdall-icon-small.png'); $('#appimage').html(""); $('#sapconfig').html('').hide(); } else { - $.post('{{ route('appload') }}', { app: appvalue }, function(data) { + $.post('{{ route('appload') }}', { app: appvalue, item_id: itemId }, function(data) { // Main details $('#appimage').html(""); $('input[name=colour]').val(data.colour); @@ -194,6 +195,21 @@ if(data.custom != null) { $.get(base+'view/'+data.custom, function(getdata) { $('#sapconfig').html(getdata).show(); + // Populate fields in the loaded form with description data + if (data.description) { + const description = JSON.parse(data.appvalue); + Object.keys(description).forEach(function(key) { + const value = description[key]; + const field = $(`#sapconfig [name="config[${key}]"]`); + if (field.length) { + if (field.is(':checkbox')) { + field.prop('checked', value); + } else { + field.val(value); + } + } + }); + } }); } else { $('#sapconfig').html('').hide();