Merge branch 'missing-features' into codex/organize-routes

This commit is contained in:
2026-04-15 13:47:39 +00:00
6 changed files with 18 additions and 43 deletions
@@ -83,7 +83,7 @@ class ResolveTicketBranchMatches
$error = null; $error = null;
} catch (Throwable) { } catch (Throwable) {
$branches = []; $branches = [];
$error = ((string) config('app.name')).' could not load branches from this repository right now.'; $error = sprintf('%s could not load branches from this repository right now.', config('app.name'));
} }
return [ return [
@@ -92,7 +92,7 @@ class ResolveTicketPullRequestMatches
$error = null; $error = null;
} catch (Throwable) { } catch (Throwable) {
$error = ((string) config('app.name')).' could not load pull requests from this repository right now.'; $error = sprintf('%s could not load pull requests from this repository right now.', config('app.name'));
$pullRequests = []; $pullRequests = [];
} }
@@ -189,7 +189,7 @@ class ProjectRepositorySettingsController extends Controller
$error = null; $error = null;
} catch (Throwable) { } catch (Throwable) {
$repositories = []; $repositories = [];
$error = ((string) config('app.name')).' could not load repositories from this Git connection right now.'; $error = sprintf('%s could not load repositories from this Git connection right now.', config('app.name'));
} }
return [ return [
@@ -83,7 +83,7 @@ class ProjectTicketBranchController extends Controller
} catch (Throwable) { } catch (Throwable) {
return response()->json([ return response()->json([
'is_valid' => false, 'is_valid' => false,
'message' => ((string) config('app.name')).' could not validate this branch name right now.', 'message' => sprintf('%s could not validate this branch name right now.', config('app.name')),
]); ]);
} }
@@ -154,7 +154,7 @@ class ProjectTicketBranchController extends Controller
); );
} catch (Throwable) { } catch (Throwable) {
throw ValidationException::withMessages([ throw ValidationException::withMessages([
'branch_name' => ((string) config('app.name')).' could not validate this branch name right now.', 'branch_name' => sprintf('%s could not validate this branch name right now.', config('app.name')),
]); ]);
} }
@@ -182,7 +182,7 @@ class ProjectTicketBranchController extends Controller
); );
} catch (Throwable) { } catch (Throwable) {
throw ValidationException::withMessages([ throw ValidationException::withMessages([
'branch_name' => ((string) config('app.name')).' could not create this branch right now.', 'branch_name' => sprintf('%s could not create this branch right now.', config('app.name')),
]); ]);
} }
@@ -61,7 +61,7 @@ class GitConnectionController extends Controller
} catch (Throwable) { } catch (Throwable) {
return back() return back()
->withErrors([ ->withErrors([
'api_token' => ((string) config('app.name')).' could not authenticate against Gitea with this base URL and token.', 'api_token' => sprintf('%s could not authenticate against Gitea with this base URL and token.', config('app.name')),
]); ]);
} }
@@ -99,7 +99,7 @@ class GitConnectionController extends Controller
} catch (Throwable) { } catch (Throwable) {
return back() return back()
->withErrors([ ->withErrors([
'api_token' => ((string) config('app.name')).' could not authenticate against Gitea with this base URL and token.', 'api_token' => sprintf('%s could not authenticate against Gitea with this base URL and token.', config('app.name')),
]); ]);
} }
+10 -35
View File
@@ -1,37 +1,12 @@
## Missing features ## Missing features
- (mehr über middlewares steuern) - resources benutzen
- mehrere actions/quereys in services/actions auslagern - Für jedes Model / Route, resources benutzen, kein mapping/feste arrays mehr in den controller.
- generell, aber besonders UpdateProjectTicket ist sehr unübersichtlich - kein 'model' => $model (bspw. 'project' => $project) mehr.
- repository_connections check base Url maybe unnessecary? - niemals das model in reponse return. für jedes model deshalb eine resource und diese benutzen.
- Git listBranches replace baseUrl, owner, rperoName with GItReprository - in der resource niemals mit only oder manuel die props übergeben.
- Git prs replace baseUrl, owner, rperoName with GItReprository - Ziel: neue attribute von model sollen nicht ausversehen in responses auftauchen & responses kleiner, falls manche attr nicht gebraucht werden
- replace Kanbangit with env App Name - folgende actions löschen und durch resource benutzen:
- change Project Backlog Controller → Project Controller - app/Actions/Projects/BuildProjectBacklogPageProps.php
- handle backlog as a normal column -> only difference is an seperate view in frontend /backlog and /board bleibt bestehen - app/Actions/Projects/BuildProjectBoardPageProps.php
- remove store ticket from backlog -> create ticket create view. - app/Actions/Tickets/BuildProjectTicketUpdateAttributes.php
- always show create on board and backlog -> rediurect to ticket create
- ggf worklog überarbeiten? → type als worklog enum → json je nach enum type oder so
- ziel ist einheitlicherere worklog struktur
- falls sinnvoll, sonst verwerfen
- app/Http/Controllers/ProjectTicketController.php parent ids anderes queren. nicht alle child ids berechnen und excluden -> immer parent vom parent bis null
## Umsetzung 2026-04-15
### Umgesetzt
- (mehr über middlewares steuern)
- mehrere actions/quereys in services/actions auslagern
- Git listBranches replace baseUrl, owner, rperoName with GItReprository
- Git prs replace baseUrl, owner, rperoName with GItReprository
- replace Kanbangit with env App Name
- change Project Backlog Controller → Project Controller
- remove store ticket from backlog -> create ticket create view.
- always show create on board and backlog -> rediurect to ticket create
- ggf worklog überarbeiten? → type als worklog enum
- app/Http/Controllers/ProjectTicketController.php parent ids anderes queren. nicht alle child ids berechnen und excluden -> immer parent vom parent bis null
### Nicht umgesetzt
- repository_connections check base Url maybe unnessecary? - `base_url` bleibt nötig, um Self-hosted-Git-Instanzen und passende User-Credentials eindeutig zuzuordnen.
- handle backlog as a normal column - Backlog bleibt bewusst ein Status ohne `board_column_id`; `/backlog` und `/board` sind nur getrennte Views.