Fix: Add routes and admin navigation

- Created appinfo/routes.php to register all routes
  - Admin routes: index, save, load, getStatus
  - API v1 routes: reports, getReport, generate, getStatus
  - Report routes: index, generate
- Added index() method to AdminController
  - Renders admin template via TemplateResponse
- Updated info.xml and appinfo/info.xml
  - Fixed navigation entry to point to route: analyticshub.admin.index
  - Added settings and navigation sections
- App now appears in Settings → Administration after enable/disable

Fixes issue where app didn't show up in Nextcloud toolbar after being enabled.
This commit is contained in:
WLTBAgent
2026-02-13 18:28:34 +00:00
parent b7f6b04e64
commit 64bc88d6de
4 changed files with 89 additions and 3 deletions

View File

@@ -24,6 +24,12 @@
<nextcloud min-version="25" max-version="26"/>
<php min-version="7.4"/>
</dependencies>
<settings>
<admin>OCA\AnalyticsHub\Controller\Admin</admin>
</settings>
<navigation>
<admin>analyticshub.admin.index</admin>
</navigation>
<repair-steps>
<step>Repair steps not needed</step>
<repair-step>Or remove and reinstall</repair-step>

View File

@@ -0,0 +1,67 @@
<?php
declare(strict_types=1);
/**
* Routes for Mini-CMO Analytics Hub
*/
return [
'routes' => [
// Admin routes
[
'name' => 'admin#index',
'url' => '/admin',
'verb' => 'GET'
],
[
'name' => 'admin#save',
'url' => '/admin/save',
'verb' => 'POST'
],
[
'name' => 'admin#load',
'url' => '/admin/load',
'verb' => 'GET'
],
[
'name' => 'admin#getStatus',
'url' => '/admin/status',
'verb' => 'GET'
],
// API v1 routes
[
'name' => 'api_v1#reports',
'url' => '/api/reports',
'verb' => 'GET'
],
[
'name' => 'api_v1#getReport',
'url' => '/api/report/{id}',
'verb' => 'GET'
],
[
'name' => 'api_v1#generate',
'url' => '/api/generate',
'verb' => 'POST'
],
[
'name' => 'api_v1#getStatus',
'url' => '/api/status',
'verb' => 'GET'
],
// Report routes
[
'name' => 'report#index',
'url' => '/report',
'verb' => 'GET'
],
[
'name' => 'report#generate',
'url' => '/report/generate',
'verb' => 'POST'
],
],
];

View File

@@ -12,9 +12,9 @@
<nextcloud min-version="25" max-version="26"/>
</dependencies>
<settings>
<admin>OCA\AnalyticsHub\Settings\Admin</admin>
<admin>OCA\AnalyticsHub\Controller\Admin</admin>
</settings>
<navigation>
<admin>OCA\AnalyticsHub\Settings\Admin</admin>
<admin>analyticshub.admin.index</admin>
</navigation>
</info>

View File

@@ -9,6 +9,7 @@ use OCP\IResponse;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\TemplateResponse;
use OCA\AnalyticsHub\Service\GoogleAnalyticsService;
use OCA\AnalyticsHub\Service\LLMService;
@@ -34,9 +35,21 @@ class AdminController {
$this->dataProcessor = $dataProcessor;
}
/**
* Index page - render admin UI
* GET /admin
*/
public function index(): TemplateResponse {
return new TemplateResponse('analyticshub', 'admin', [
'app_name' => AppInfo::APP_NAME,
'version' => AppInfo::getVersion(),
'status' => $this->gaService->isConfigured() ? 'configured' : 'not_configured',
]);
}
/**
* Save configuration
* POST /settings/save
* POST /admin/save
*/
public function save(IRequest $request): JSONResponse {
$params = $request->getParams();