feat(studio): drop Modules tab, fold its content into Store detail (v0.35.0)
Modules-as-a-tab was redundant with the Store after the
"Installed" filter and the federation work landed. Two pieces
of unique content kept it alive: the per-module declared
permissions list and the on-disk module directory. Both now
live inside the Store detail sheet.
Changes:
- Sidebar nav loses the Modules entry. `_pages` no longer
carries a `'modules'` slot. The unused `import
'pages/modules.dart'` is dropped from main.dart. Smoke test
updated to skip the Modules-text expectation.
- Store detail sheet (`_StoreDetailSheet`) gains two new
sections, rendered only when the entry is installed and the
hub returned `ModuleDetail` for it:
Declared permissions → same icon-prefixed list the
old Modules sheet shipped
(`net:`, `fs.read:`, `fs.write:`,
`env:`, `hub:`).
Module directory → selectable mono path so the
operator can paste it into a
shell.
An async `moduleInfo` fetch fires from `initState` only when
`widget.item.installed` is true, so the regular
not-installed detail-sheet path takes no extra round-trip.
Failures stay silent — the sections just hide.
- The `FaiModuleSheet` widget stays intact. Cmd+K still uses
it as a quick-info modal for installed modules; the
longer-form Store detail sheet covers the same data plus
the description, screenshots, and docs that operators
reach for in the Store.
Three new ARB keys: `storeSectionPermissions`,
`storeSectionDirectory`, `storeSectionPermissionsNone`.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
3b5fb027c3
commit
a7e2eb101a
9 changed files with 149 additions and 10 deletions
|
|
@ -194,6 +194,9 @@
|
|||
"storeSectionScreenshots": "Screenshots",
|
||||
"storeSectionDocumentation": "Dokumentation",
|
||||
"storeSectionSource": "Quelle",
|
||||
"storeSectionPermissions": "Deklarierte Berechtigungen",
|
||||
"storeSectionDirectory": "Modul-Verzeichnis",
|
||||
"storeSectionPermissionsNone": "(keine — reines Berechnungsmodul)",
|
||||
"storeInstallingButton": "Installiere…",
|
||||
"storeNotInstallable": "Nicht installierbar",
|
||||
"storeNotInstallableTooltip": "Status „{status}\" — Installations-Pfad noch nicht verdrahtet.",
|
||||
|
|
|
|||
|
|
@ -195,6 +195,9 @@
|
|||
"storeSectionScreenshots": "Screenshots",
|
||||
"storeSectionDocumentation": "Documentation",
|
||||
"storeSectionSource": "Source",
|
||||
"storeSectionPermissions": "Declared permissions",
|
||||
"storeSectionDirectory": "Module directory",
|
||||
"storeSectionPermissionsNone": "(none — pure-computation module)",
|
||||
"storeInstallingButton": "Installing…",
|
||||
"storeNotInstallable": "Not installable",
|
||||
"storeNotInstallableTooltip": "Status \"{status}\" — install path not yet wired.",
|
||||
|
|
|
|||
|
|
@ -1004,6 +1004,24 @@ abstract class AppLocalizations {
|
|||
/// **'Source'**
|
||||
String get storeSectionSource;
|
||||
|
||||
/// No description provided for @storeSectionPermissions.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Declared permissions'**
|
||||
String get storeSectionPermissions;
|
||||
|
||||
/// No description provided for @storeSectionDirectory.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Module directory'**
|
||||
String get storeSectionDirectory;
|
||||
|
||||
/// No description provided for @storeSectionPermissionsNone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'(none — pure-computation module)'**
|
||||
String get storeSectionPermissionsNone;
|
||||
|
||||
/// No description provided for @storeInstallingButton.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
|
|
@ -522,6 +522,15 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get storeSectionSource => 'Quelle';
|
||||
|
||||
@override
|
||||
String get storeSectionPermissions => 'Deklarierte Berechtigungen';
|
||||
|
||||
@override
|
||||
String get storeSectionDirectory => 'Modul-Verzeichnis';
|
||||
|
||||
@override
|
||||
String get storeSectionPermissionsNone => '(keine — reines Berechnungsmodul)';
|
||||
|
||||
@override
|
||||
String get storeInstallingButton => 'Installiere…';
|
||||
|
||||
|
|
|
|||
|
|
@ -540,6 +540,15 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get storeSectionSource => 'Source';
|
||||
|
||||
@override
|
||||
String get storeSectionPermissions => 'Declared permissions';
|
||||
|
||||
@override
|
||||
String get storeSectionDirectory => 'Module directory';
|
||||
|
||||
@override
|
||||
String get storeSectionPermissionsNone => '(none — pure-computation module)';
|
||||
|
||||
@override
|
||||
String get storeInstallingButton => 'Installing…';
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue