Fix for some enhanced apps not working

This commit is contained in:
Chris Hunt
2025-08-02 17:17:40 +01:00
parent d1a96dd752
commit fd926e983d
3 changed files with 33 additions and 10 deletions

View File

@@ -429,20 +429,31 @@ class ItemController extends Controller
return null; return null;
} }
$output['config'] = null;
$output['custom'] = null;
$app = Application::single($appid); $app = Application::single($appid);
if (!$app) {
return response()->json(['error' => 'Application not found.'], 404);
}
$output = (array)$app; $output = (array)$app;
$appdetails = Application::getApp($appid); $appdetails = Application::getApp($appid);
if (!$appdetails) {
return response()->json(['error' => 'Application details not found.'], 404);
}
if ((bool)$app->enhanced === true) { if ((bool)$app->enhanced === true) {
$item = $itemId ? Item::find($itemId) : Item::where('appid', $appid)->first(); $item = $itemId ? Item::find($itemId) : Item::where('appid', $appid)->first();
// if(!isset($app->config)) { // class based config
$output['custom'] = className($appdetails->name) . '.config'; if ($item) {
$output['appvalue'] = $item->description; $output['custom'] = className($appdetails->name) . '.config';
// } $output['appvalue'] = $item->description;
} else {
// Ensure the app is installed if not found
$output['custom'] = className($appdetails->name) . '.config';
$output['appvalue'] = null;
}
} }
$output['colour'] = ($app->tile_background == 'light') ? '#fafbfc' : '#161b1f'; $output['colour'] = ($app->tile_background == 'light') ? '#fafbfc' : '#161b1f';
@@ -450,14 +461,12 @@ class ItemController extends Controller
if (strpos($app->icon, '://') !== false) { if (strpos($app->icon, '://') !== false) {
$output['iconview'] = $app->icon; $output['iconview'] = $app->icon;
} elseif (strpos($app->icon, 'icons/') !== false) { } elseif (strpos($app->icon, 'icons/') !== false) {
// Private apps have the icon locally
$output['iconview'] = URL::to('/') . '/storage/' . $app->icon; $output['iconview'] = URL::to('/') . '/storage/' . $app->icon;
$output['icon'] = str_replace('icons/', '', $output['icon']); $output['icon'] = str_replace('icons/', '', $output['icon']);
} else { } else {
$output['iconview'] = config('app.appsource') . 'icons/' . $app->icon; $output['iconview'] = config('app.appsource') . 'icons/' . $app->icon;
} }
return json_encode($output); return json_encode($output);
} }

View File

@@ -21,6 +21,20 @@ class CustomFormBuilder
); );
} }
public function hidden($name, $value = null, $options = [])
{
return new HtmlString(
$this->html->input('hidden', $name, $value)->attributes($options)
);
}
public function checkbox($name, $value = null, $checked = false, $options = [])
{
return new HtmlString(
$this->html->checkbox($name, $value, $checked)->attributes($options)
);
}
public function select($name, $list = [], $selected = null, $options = []) public function select($name, $list = [], $selected = null, $options = [])
{ {
return new HtmlString( return new HtmlString(

View File

@@ -5,7 +5,7 @@ use Illuminate\Support\Facades\Facade;
return [ return [
'version' => '2.7.3', 'version' => '2.7.4',
'appsource' => env('APP_SOURCE', 'https://appslist.heimdall.site/'), 'appsource' => env('APP_SOURCE', 'https://appslist.heimdall.site/'),