mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-31 07:35:24 +00:00
feat: note in the plugins tab that community plugins are coming
This commit is contained in:
1 parent
2ba11652eb
commit
28fe98e787
6 files changed
+62
-2
No files matched your search
@@ -7,6 +7,7 @@
|
|||||||
- Plugins. Every feature beyond hosts, credentials and sharing is now its own plugin with its own repo, and you pick which ones you want
|
- Plugins. Every feature beyond hosts, credentials and sharing is now its own plugin with its own repo, and you pick which ones you want
|
||||||
- A Plugins tab to install, update, pin, turn off and remove plugins from the official registry, with release notes and a beta channel per plugin
|
- A Plugins tab to install, update, pin, turn off and remove plugins from the official registry, with release notes and a beta channel per plugin
|
||||||
- Developer mode to install a plugin from a file, and a plugin SDK on npm to build your own
|
- Developer mode to install a plugin from a file, and a plugin SDK on npm to build your own
|
||||||
|
- The community plugin registry is open for submissions. Termix can install community plugins in a later update
|
||||||
- Redesigned UI with a Manage tab for hosts and credentials and a Settings tab with search
|
- Redesigned UI with a Manage tab for hosts and credentials and a Settings tab with search
|
||||||
- New full screen onboarding where you choose which plugins to start with
|
- New full screen onboarding where you choose which plugins to start with
|
||||||
- Beta channel for Termix itself in Settings > Updates
|
- Beta channel for Termix itself in Settings > Updates
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ Plugins add everything else. The official ones ship with Termix, and admins can
|
|||||||
| [Web Endpoint](https://github.com/Termix-SSH/Plugin-Web-Endpoint) | Open a host's web UI inside Termix, directly or over an SSH tunnel. |
|
| [Web Endpoint](https://github.com/Termix-SSH/Plugin-Web-Endpoint) | Open a host's web UI inside Termix, directly or over an SSH tunnel. |
|
||||||
| [Workspaces](https://github.com/Termix-SSH/Plugin-Workspaces) | Save your open tabs and split layouts and reopen them in one click. |
|
| [Workspaces](https://github.com/Termix-SSH/Plugin-Workspaces) | Save your open tabs and split layouts and reopen them in one click. |
|
||||||
|
|
||||||
Want to build your own? Start from the [plugin template](https://github.com/Termix-SSH/Termix-Plugin-Template). Plugins you can install are listed in the [registry](https://github.com/Termix-SSH/Termix-Registry).
|
Want to build your own? Start from the [plugin template](https://github.com/Termix-SSH/Termix-Plugin-Template). Plugins you can install are listed in the [registry](https://github.com/Termix-SSH/Termix-Registry). Its community registry is open for submissions now, and Termix will be able to install community plugins in a later update. See [submitting a plugin](https://docs.termix.site/develop/community-registry).
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
|||||||
@@ -37,5 +37,6 @@
|
|||||||
"plugins": "guide/plugins",
|
"plugins": "guide/plugins",
|
||||||
"pluginCatalog": "plugins",
|
"pluginCatalog": "plugins",
|
||||||
"cli": "cli",
|
"cli": "cli",
|
||||||
"develop": "develop"
|
"develop": "develop",
|
||||||
|
"communityRegistry": "develop/community-registry"
|
||||||
}
|
}
|
||||||
@@ -2017,6 +2017,8 @@
|
|||||||
"noneInstalled": "No plugins installed yet. Browse to add some.",
|
"noneInstalled": "No plugins installed yet. Browse to add some.",
|
||||||
"nothingHere": "Nothing here.",
|
"nothingHere": "Nothing here.",
|
||||||
"nothingHereHint": "Try another category or search.",
|
"nothingHereHint": "Try another category or search.",
|
||||||
|
"communitySoon": "Community plugins are coming in a later update. Plugin authors can already submit theirs to the community registry.",
|
||||||
|
"communitySubmit": "How to submit",
|
||||||
"upToDate": "Everything is up to date.",
|
"upToDate": "Everything is up to date.",
|
||||||
"lastChecked": "Last checked {{time}}",
|
"lastChecked": "Last checked {{time}}",
|
||||||
"updatesReady_one": "{{count}} update ready.",
|
"updatesReady_one": "{{count}} update ready.",
|
||||||
|
|||||||
@@ -658,6 +658,13 @@ function BrowseSection({
|
|||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
<p className="text-[11px] text-muted-foreground">
|
||||||
|
{t("plugins.manager.communitySoon")}{" "}
|
||||||
|
<DocsLink core="communityRegistry" className="text-[11px]">
|
||||||
|
{t("plugins.manager.communitySubmit")}
|
||||||
|
</DocsLink>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||||
|
import { cleanup, fireEvent, render, screen } from "@testing-library/react";
|
||||||
|
import i18next from "i18next";
|
||||||
|
import { I18nextProvider, initReactI18next } from "react-i18next";
|
||||||
|
import en from "@/locales/en.json";
|
||||||
|
import { PluginsTab } from "@/plugins/PluginsTab";
|
||||||
|
import { docsUrl } from "@/lib/docs";
|
||||||
|
|
||||||
|
vi.mock("@/plugins/use-plugins-manager", () => ({
|
||||||
|
usePluginsManager: () => ({
|
||||||
|
plugins: [],
|
||||||
|
loading: false,
|
||||||
|
refreshing: false,
|
||||||
|
refresh: vi.fn(),
|
||||||
|
registryError: null,
|
||||||
|
managedByServer: false,
|
||||||
|
busy: new Set(),
|
||||||
|
consent: null,
|
||||||
|
setConsent: vi.fn(),
|
||||||
|
confirmConsent: vi.fn(),
|
||||||
|
developerMode: false,
|
||||||
|
signedOnly: false,
|
||||||
|
}),
|
||||||
|
}));
|
||||||
|
|
||||||
|
afterEach(cleanup);
|
||||||
|
|
||||||
|
describe("PluginsTab", () => {
|
||||||
|
it("tells people community plugins are coming and links the guide", async () => {
|
||||||
|
const i18n = i18next.createInstance();
|
||||||
|
await i18n.use(initReactI18next).init({
|
||||||
|
lng: "en",
|
||||||
|
resources: { en: { translation: en } },
|
||||||
|
});
|
||||||
|
|
||||||
|
render(
|
||||||
|
<I18nextProvider i18n={i18n}>
|
||||||
|
<PluginsTab />
|
||||||
|
</I18nextProvider>,
|
||||||
|
);
|
||||||
|
fireEvent.click(screen.getByText(en.plugins.manager.tabs.browse));
|
||||||
|
|
||||||
|
expect(
|
||||||
|
screen.getByText(en.plugins.manager.communitySoon, { exact: false }),
|
||||||
|
).toBeTruthy();
|
||||||
|
const link = screen.getByText(en.plugins.manager.communitySubmit);
|
||||||
|
expect(link.getAttribute("href")).toBe(docsUrl("communityRegistry"));
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in new issue
Block a user