You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Quality pass — DI refactors, method split, SPDX placement, dep bump (tasks 4.1, 4.2, 4.5, 7.1-7.3)
PHP refactors per "fix all issues" rule (no @SuppressWarnings shortcuts):
- ApplicationsController + SeedHelloWorld: constructor injection of
OCA\OpenRegister\Service\ObjectService (eliminates Server::get static
access). OR is a declared hard dep in info.xml, so injection is the
right pattern per ADR-022 + ADR-003.
- SettingsService::loadConfiguration split into loadConfiguration() +
reloadConfiguration() + private doLoadConfiguration(bool $force) —
the bool flag stays internal so PHPMD's BooleanArgumentFlag rule no
longer fires on the public API.
- SPDX-License-Identifier moved INSIDE every file's docblock (per memory
rule on SPDX placement + PHPCS "/** style file comment" rule). Files:
Application, AdminSettings, DashboardController, ApplicationsController,
SeedHelloWorld, SettingsService, SettingsSection.
- Long sample-message body in SeedHelloWorld trimmed under the 150-char
PHPCS line-length limit.
Dependency bumps:
- @conduction/nextcloud-vue: ^0.1.0-beta.3 → ^1.0.0-beta.30. The 1.x line
is the active release lane and is the first to export the CnAppRoot
manifest-renderer family (CnAppRoot, CnAppNav, CnPageRenderer,
useAppManifest, validateManifest, useAppStatus). 0.1.0-beta.3 did NOT
export them — design.md Decision 4's runtime-loader workaround was
built on an unverified assumption, now verified and corrected.
- @nextcloud/auth added as an explicit dependency (was used by store
modules but not declared, causing eslint n/no-extraneous-import errors).
phpstan.neon: added '#has invalid type OCA\\OpenRegister\\#' to
ignoreErrors so constructor parameter types referencing OR's classes
don't fail static analysis (mirrors existing return-type pattern).
i18n keys (tasks 7.1, 7.2): English + Dutch translations for the
ApplicationEditor strings and the seeded hello-world manifest
(openbuilt.helloworld.menu.*, openbuilt.helloworld.title.*,
openbuilt.editor.help).
Verification status (task 4.x):
- ✓ 4.1 composer phpcs / phpmd / psalm / phpstan — all clean
- ✓ 4.2 npm run lint — clean
- ⊘ 4.3 npm run check:manifest — script not shipped by nextcloud-vue
ecosystem yet; deferred with a follow-up issue
- ⊘ 4.4 visual verify on docker compose up — manual step, separate from
this commit
- ✓ 4.5 ADR-031 service-class gate — confirmed no
ApplicationLifecycleService / ApplicationStateMachine class under
lib/Service/
"This app needs OpenRegister to store and manage data. Please install OpenRegister from the app store to get started.": "This app needs OpenRegister to store and manage data. Please install OpenRegister from the app store to get started.",
31
-
"User settings will appear here in a future update.": "User settings will appear here in a future update."
31
+
"User settings will appear here in a future update.": "User settings will appear here in a future update.",
32
+
33
+
"Virtual apps": "Virtual apps",
34
+
"No virtual apps yet — seed `hello-world` should appear after install.": "No virtual apps yet — seed `hello-world` should appear after install.",
35
+
"Status": "Status",
36
+
"Version": "Version",
37
+
"Integrator-only editor: edit the raw JSON manifest below. The visual editor lives in a follow-on release (openbuilt-page-editor).": "Integrator-only editor: edit the raw JSON manifest below. The visual editor lives in a follow-on release (openbuilt-page-editor).",
38
+
"Paste or edit the JSON manifest here. See @conduction/nextcloud-vue/src/schemas/app-manifest.schema.json for the canonical schema.": "Paste or edit the JSON manifest here. See @conduction/nextcloud-vue/src/schemas/app-manifest.schema.json for the canonical schema.",
39
+
"Invalid manifest": "Invalid manifest",
40
+
"Saving…": "Saving…",
41
+
"Open virtual app": "Open virtual app",
42
+
43
+
"openbuilt.helloworld.menu.messages": "Messages",
44
+
"openbuilt.helloworld.title.messages": "Hello World — messages",
45
+
"openbuilt.helloworld.title.message": "Message",
46
+
"openbuilt.helloworld.title.create": "New message",
47
+
"openbuilt.editor.help": "Integrator-only editor: edit the raw JSON manifest. Visual editor lives in chain spec openbuilt-page-editor."
"This app needs OpenRegister to store and manage data. Please install OpenRegister from the app store to get started.": "Deze app heeft OpenRegister nodig om gegevens op te slaan en te beheren. Installeer OpenRegister via de app store om te beginnen.",
31
-
"User settings will appear here in a future update.": "Gebruikersinstellingen verschijnen hier in een toekomstige update."
31
+
"User settings will appear here in a future update.": "Gebruikersinstellingen verschijnen hier in een toekomstige update.",
32
+
33
+
"Virtual apps": "Virtuele apps",
34
+
"No virtual apps yet — seed `hello-world` should appear after install.": "Nog geen virtuele apps — de `hello-world`-seed zou na installatie zichtbaar moeten zijn.",
35
+
"Status": "Status",
36
+
"Version": "Versie",
37
+
"Integrator-only editor: edit the raw JSON manifest below. The visual editor lives in a follow-on release (openbuilt-page-editor).": "Editor voor integrators: bewerk hieronder het ruwe JSON-manifest. De visuele editor komt in een vervolg-release (openbuilt-page-editor).",
38
+
"Paste or edit the JSON manifest here. See @conduction/nextcloud-vue/src/schemas/app-manifest.schema.json for the canonical schema.": "Plak of bewerk hier het JSON-manifest. Zie @conduction/nextcloud-vue/src/schemas/app-manifest.schema.json voor het canonieke schema.",
@@ -136,10 +130,8 @@ public function run(IOutput $output): void
136
130
['exception' => $e->getMessage()]
137
131
);
138
132
}//end try
139
-
140
133
}//end run()
141
134
142
-
143
135
/**
144
136
* Build the canonical hello-world manifest.
145
137
*
@@ -199,31 +191,30 @@ private function buildHelloWorldManifest(): array
199
191
],
200
192
],
201
193
];
202
-
203
194
}//end buildHelloWorldManifest()
204
195
205
-
206
196
/**
207
197
* Build the three sample HelloMessage objects.
208
198
*
199
+
* Bodies are kept under the 150-character line limit for PHPCS.
200
+
*
209
201
* @return array<int, array<string, string>>
210
202
*/
211
203
privatefunctionbuildSampleMessages(): array
212
204
{
213
205
return [
214
206
[
215
207
'title' => 'Welcome to OpenBuilt',
216
-
'body' => 'This message is rendered by your first virtual app. The page you see right now is built entirely from a JSON manifest stored in OpenRegister.',
208
+
'body' => 'This message is rendered by your first virtual app — built from a JSON manifest stored in OpenRegister.',
217
209
],
218
210
[
219
211
'title' => 'Edit me',
220
-
'body' => 'Open the OpenBuilt shell, find the hello-world application, and edit its manifest to change what you see here. Reload the page to see the change.',
212
+
'body' => 'Open the OpenBuilt shell, find hello-world, and edit its manifest to change what you see here.',
221
213
],
222
214
[
223
215
'title' => 'Built from a manifest',
224
-
'body' => 'Everything in this virtual app — the menu, the pages, the columns, the form — came from a JSON manifest. No PHP was authored for hello-world specifically.',
216
+
'body' => 'Everything here — menu, pages, columns, form — came from a JSON manifest. No PHP was written for hello-world.',
0 commit comments