From 80605f3b743285e03f4cfd8e6f122941cca19752 Mon Sep 17 00:00:00 2001 From: zaelgohary Date: Thu, 6 Jun 2024 13:47:18 +0300 Subject: [PATCH 001/111] Add zmount unit tests --- .../grid_client/tests/modules/zmount.test.ts | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 packages/grid_client/tests/modules/zmount.test.ts diff --git a/packages/grid_client/tests/modules/zmount.test.ts b/packages/grid_client/tests/modules/zmount.test.ts new file mode 100644 index 0000000000..81ee902ba9 --- /dev/null +++ b/packages/grid_client/tests/modules/zmount.test.ts @@ -0,0 +1,58 @@ +import { Zmount } from "../../src"; + +let zmount: Zmount; + +beforeEach(() => { + zmount = new Zmount(); +}); +describe("Zmount module", () => { + test("Zmount instance is of type Zmount.", () => { + expect(zmount).toBeInstanceOf(Zmount); + }); + + test("Min value for size.", () => { + const size = 100 * 1025 ** 2; + + zmount.size = size; + + const result = () => zmount.challenge(); + + expect(result).toThrow(); + }); + + test("Max value for size.", () => { + const size = 100 * 1025 ** 4; + + zmount.size = size; + + const result = () => zmount.challenge(); + + expect(result).toThrow(); + }); + + test("Size doesn't accept decimal value.", () => { + const size = 1.5; + + zmount.size = size; + + const result = () => zmount.challenge(); + + expect(result).toThrow(); + }); + + test("Size empty value.", () => { + const result = () => zmount.challenge(); + + expect(result).toThrow(); + }); + + test("Size negative value.", () => { + const negative_size = -1; + + zmount.size = negative_size; + + const result = () => zmount.challenge(); + + expect(result).toThrow(); + }); +}); From ef86eb50f3122ea160f554a63a5073d149745bc1 Mon Sep 17 00:00:00 2001 From: mayar osama Date: Thu, 6 Jun 2024 15:51:59 +0300 Subject: [PATCH 002/111] Adding planetry ip to all solutions --- packages/playground/src/weblets/tf_algorand.vue | 7 +++---- packages/playground/src/weblets/tf_casperlabs.vue | 4 +++- packages/playground/src/weblets/tf_discourse.vue | 5 +++-- packages/playground/src/weblets/tf_funkwhale.vue | 4 +++- packages/playground/src/weblets/tf_mattermost.vue | 5 +++-- packages/playground/src/weblets/tf_nextcloud.vue | 4 +++- packages/playground/src/weblets/tf_peertube.vue | 5 +++-- packages/playground/src/weblets/tf_staticwebsite.vue | 4 +++- packages/playground/src/weblets/tf_subsquid.vue | 4 +++- packages/playground/src/weblets/tf_taiga.vue | 5 +++-- packages/playground/src/weblets/tf_wordpress.vue | 4 +++- 11 files changed, 33 insertions(+), 18 deletions(-) diff --git a/packages/playground/src/weblets/tf_algorand.vue b/packages/playground/src/weblets/tf_algorand.vue index 3f0cf97b2f..50440698b0 100644 --- a/packages/playground/src/weblets/tf_algorand.vue +++ b/packages/playground/src/weblets/tf_algorand.vue @@ -28,9 +28,7 @@ - - - + ; const memory = ref() as Ref; @@ -173,7 +172,7 @@ async function deploy() { rootFilesystemSize: rootFilesystemSize.value, publicIpv4: ipv4.value, mycelium: mycelium.value, - planetary: true, + planetary: planetary.value, nodeId: selectionDetails.value!.node!.nodeId, rentedBy: dedicated.value ? grid!.twinId : undefined, certified: certified.value, diff --git a/packages/playground/src/weblets/tf_casperlabs.vue b/packages/playground/src/weblets/tf_casperlabs.vue index ad4d996449..bedba6134c 100644 --- a/packages/playground/src/weblets/tf_casperlabs.vue +++ b/packages/playground/src/weblets/tf_casperlabs.vue @@ -37,7 +37,7 @@ :large="{ cpu: 8, memory: 32, disk: 1000 }" /> - + @@ -98,6 +98,7 @@ const dedicated = ref(false); const certified = ref(false); const ipv4 = ref(false); const mycelium = ref(true); +const planetary = ref(false); const rootFilesystemSize = computed(() => rootFs(solution.value?.cpu ?? 0, solution.value?.memory ?? 0)); const selectionDetails = ref(); const selectedSSHKeys = ref(""); @@ -149,6 +150,7 @@ async function deploy() { entryPoint: flist.entryPoint, publicIpv4: ipv4.value, mycelium: mycelium.value, + planetary: planetary.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, { key: "CASPERLABS_HOSTNAME", value: domain }, diff --git a/packages/playground/src/weblets/tf_discourse.vue b/packages/playground/src/weblets/tf_discourse.vue index 731433179f..444d8899ca 100644 --- a/packages/playground/src/weblets/tf_discourse.vue +++ b/packages/playground/src/weblets/tf_discourse.vue @@ -58,7 +58,7 @@ :medium="{ cpu: 2, memory: 4, disk: 50 }" :large="{ cpu: 4, memory: 16, disk: 100 }" /> - + @@ -124,6 +124,7 @@ const email = ref(profileManager.profile?.email || ""); const solution = ref() as Ref; const ipv4 = ref(false); const mycelium = ref(true); +const planetary = ref(true); const smtp = ref(createSMTPServer()); const dedicated = ref(false); const certified = ref(false); @@ -181,7 +182,7 @@ async function deploy() { entryPoint: flist.entryPoint, rootFilesystemSize: rootFilesystemSize.value, publicIpv4: ipv4.value, - planetary: true, + planetary: planetary.value, mycelium: mycelium.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, diff --git a/packages/playground/src/weblets/tf_funkwhale.vue b/packages/playground/src/weblets/tf_funkwhale.vue index 8d6d62120d..f27fbd36bf 100644 --- a/packages/playground/src/weblets/tf_funkwhale.vue +++ b/packages/playground/src/weblets/tf_funkwhale.vue @@ -89,7 +89,7 @@ :small="{ cpu: 1, memory: 2, disk: 50 }" :medium="{ cpu: 2, memory: 4, disk: 100 }" /> - + @@ -153,6 +153,7 @@ const dedicated = ref(false); const certified = ref(false); const ipv4 = ref(false); const mycelium = ref(true); +const planetary = ref(false); const selectionDetails = ref(); const gridStore = useGrid(); const grid = gridStore.client as GridClient; @@ -207,6 +208,7 @@ async function deploy() { entryPoint: flist.entryPoint, publicIpv4: ipv4.value, mycelium: mycelium.value, + planetary: planetary.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, { key: "FUNKWHALE_HOSTNAME", value: domain }, diff --git a/packages/playground/src/weblets/tf_mattermost.vue b/packages/playground/src/weblets/tf_mattermost.vue index 0a8a805d7d..0fb205e970 100644 --- a/packages/playground/src/weblets/tf_mattermost.vue +++ b/packages/playground/src/weblets/tf_mattermost.vue @@ -42,7 +42,7 @@ :medium="{ cpu: 2, memory: 4, disk: 50 }" :large="{ cpu: 4, memory: 16, disk: 100 }" /> - + @@ -106,6 +106,7 @@ const flist: Flist = { const dedicated = ref(false); const certified = ref(false); const ipv4 = ref(false); +const planetary = ref(true); const smtp = ref(createSMTPServer()); const rootFilesystemSize = computed(() => rootFs(solution.value?.cpu ?? 0, solution.value?.memory ?? 0)); const selectionDetails = ref(); @@ -164,7 +165,7 @@ async function deploy() { entryPoint: flist.entryPoint, rootFilesystemSize: rootFilesystemSize.value, publicIpv4: ipv4.value, - planetary: true, + planetary: planetary.value, mycelium: mycelium.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, diff --git a/packages/playground/src/weblets/tf_nextcloud.vue b/packages/playground/src/weblets/tf_nextcloud.vue index ac56cd57c1..fe1d29f655 100644 --- a/packages/playground/src/weblets/tf_nextcloud.vue +++ b/packages/playground/src/weblets/tf_nextcloud.vue @@ -36,7 +36,7 @@ :large="{ cpu: 4, memory: 16, disk: 1000 }" v-model="solution" /> - + @@ -97,6 +97,7 @@ const dedicated = ref(false); const certified = ref(false); const ipv4 = ref(false); const mycelium = ref(true); +const planetary = ref(false); const rootFilesystemSize = computed(() => rootFs(solution.value?.cpu ?? 0, solution.value?.memory ?? 0)); const selectionDetails = ref(); const selectedSSHKeys = ref(""); @@ -158,6 +159,7 @@ async function deploy() { flist: flist.value, entryPoint: flist.entryPoint, publicIpv4: ipv4.value, + planetary: planetary.value, mycelium: mycelium.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, diff --git a/packages/playground/src/weblets/tf_peertube.vue b/packages/playground/src/weblets/tf_peertube.vue index d891978123..755c91abcc 100644 --- a/packages/playground/src/weblets/tf_peertube.vue +++ b/packages/playground/src/weblets/tf_peertube.vue @@ -63,7 +63,7 @@ - + @@ -126,6 +126,7 @@ const ipv4 = ref(false); const rootFilesystemSize = computed(() => rootFs(solution.value?.cpu ?? 0, solution.value?.memory ?? 0)); const selectionDetails = ref(); const mycelium = ref(true); +const planetary = ref(true); const selectedSSHKeys = ref(""); const gridStore = useGrid(); const grid = gridStore.client as GridClient; @@ -177,7 +178,7 @@ async function deploy() { flist: flist.value, entryPoint: flist.entryPoint, publicIpv4: ipv4.value, - planetary: true, + planetary: planetary.value, mycelium: mycelium.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, diff --git a/packages/playground/src/weblets/tf_staticwebsite.vue b/packages/playground/src/weblets/tf_staticwebsite.vue index 2430344b85..5e9afa0b9d 100644 --- a/packages/playground/src/weblets/tf_staticwebsite.vue +++ b/packages/playground/src/weblets/tf_staticwebsite.vue @@ -62,7 +62,7 @@ :medium="{ cpu: 2, memory: 4, disk: 100 }" /> - + ; const flist: Flist = { // Should be upgraded to an oficial Flist @@ -193,6 +194,7 @@ async function deploy() { entryPoint: flist.entryPoint, publicIpv4: ipv4.value, mycelium: mycelium.value, + planetary: planetary.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, { key: "GITHUB_URL", value: gitUrl.value }, diff --git a/packages/playground/src/weblets/tf_subsquid.vue b/packages/playground/src/weblets/tf_subsquid.vue index 5fc458e08a..d332b63104 100644 --- a/packages/playground/src/weblets/tf_subsquid.vue +++ b/packages/playground/src/weblets/tf_subsquid.vue @@ -51,7 +51,7 @@ :medium="{ cpu: 2, memory: 4, disk: 100 }" /> - + @@ -104,6 +104,7 @@ const profileManager = useProfileManager(); const name = ref(generateName({ prefix: "ss" })); const endpoint = ref(""); const ipv4 = ref(false); +const planetary = ref(false); const mycelium = ref(true); const solution = ref() as Ref; const flist: Flist = { @@ -168,6 +169,7 @@ async function deploy() { entryPoint: flist.entryPoint, publicIpv4: ipv4.value, mycelium: mycelium.value, + planetary: planetary.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, { key: "CHAIN_ENDPOINT", value: endpoint.value }, diff --git a/packages/playground/src/weblets/tf_taiga.vue b/packages/playground/src/weblets/tf_taiga.vue index e85d812a75..f3821870e5 100644 --- a/packages/playground/src/weblets/tf_taiga.vue +++ b/packages/playground/src/weblets/tf_taiga.vue @@ -90,7 +90,7 @@ :small="{ cpu: 2, memory: 4, disk: 100 }" :medium="{ cpu: 4, memory: 8, disk: 150 }" /> - + @@ -161,6 +161,7 @@ const dedicated = ref(false); const certified = ref(false); const ipv4 = ref(false); const mycelium = ref(true); +const planetary = ref(true); const smtp = ref(createSMTPServer()); const rootFilesystemSize = computed(() => rootFs(solution.value?.cpu ?? 0, solution.value?.memory ?? 0)); const selectionDetails = ref(); @@ -218,7 +219,7 @@ async function deploy() { entryPoint: flist.entryPoint, rootFilesystemSize: rootFilesystemSize.value, publicIpv4: ipv4.value, - planetary: true, + planetary: planetary.value, mycelium: mycelium.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, diff --git a/packages/playground/src/weblets/tf_wordpress.vue b/packages/playground/src/weblets/tf_wordpress.vue index 8d2ea73c51..6d6e46626f 100644 --- a/packages/playground/src/weblets/tf_wordpress.vue +++ b/packages/playground/src/weblets/tf_wordpress.vue @@ -90,7 +90,7 @@ :large="{ cpu: 4, memory: 16, disk: 100 }" /> - + @@ -154,6 +154,7 @@ const dedicated = ref(false); const certified = ref(false); const ipv4 = ref(false); const mycelium = ref(true); +const planetary = ref(false); const rootFilesystemSize = computed(() => rootFs(solution.value?.cpu ?? 0, solution.value?.memory ?? 0)); const selectionDetails = ref(); const selectedSSHKeys = ref(""); @@ -206,6 +207,7 @@ async function deploy() { entryPoint: flist.entryPoint, publicIpv4: ipv4.value, mycelium: mycelium.value, + planetary: planetary.value, envs: [ { key: "SSH_KEY", value: selectedSSHKeys.value }, { key: "MYSQL_USER", value: username.value }, From 0860e49350852e5adcf553490baea5db17aa8c62 Mon Sep 17 00:00:00 2001 From: zaelgohary Date: Thu, 6 Jun 2024 16:03:38 +0300 Subject: [PATCH 003/111] Add farms alert --- packages/playground/src/dashboard/components/user_farms.vue | 3 +++ packages/playground/src/views/farms.vue | 1 + 2 files changed, 4 insertions(+) diff --git a/packages/playground/src/dashboard/components/user_farms.vue b/packages/playground/src/dashboard/components/user_farms.vue index d1ee5bbaa8..a4afd9d527 100644 --- a/packages/playground/src/dashboard/components/user_farms.vue +++ b/packages/playground/src/dashboard/components/user_farms.vue @@ -10,6 +10,9 @@ Can't see any of your farms? Try changing your key type in your TFChain Wallet above. + + Click on the row to view farm details. + + Click on the row to view farm details. + + + + + + From 6d866b3c15f6d69e5efcd63583690a31ced287e3 Mon Sep 17 00:00:00 2001 From: zaelgohary Date: Sun, 9 Jun 2024 17:57:39 +0300 Subject: [PATCH 013/111] Add gitea --- packages/playground/public/info/gitea.md | 5 + .../src/components/vm_deployment_table.vue | 3 +- .../src/constants/deployment_list.ts | 4 + packages/playground/src/router/index.ts | 22 ++ packages/playground/src/router/routes.ts | 1 + packages/playground/src/types/index.ts | 3 + packages/playground/src/views/gitea_view.vue | 26 ++ .../playground/src/views/solutions_view.vue | 7 + .../src/weblets/tf_deployment_list.vue | 8 + packages/playground/src/weblets/tf_gitea.vue | 237 ++++++++++++++++++ 10 files changed, 315 insertions(+), 1 deletion(-) create mode 100644 packages/playground/public/info/gitea.md create mode 100644 packages/playground/src/views/gitea_view.vue create mode 100644 packages/playground/src/weblets/tf_gitea.vue diff --git a/packages/playground/public/info/gitea.md b/packages/playground/public/info/gitea.md new file mode 100644 index 0000000000..99956b4dda --- /dev/null +++ b/packages/playground/public/info/gitea.md @@ -0,0 +1,5 @@ +--- +title: Gitea +--- + +Gitea is a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, continuous integration, kanban boards, tickets, and wikis. It supports self-hosting but also provides a free public first-party instance. diff --git a/packages/playground/src/components/vm_deployment_table.vue b/packages/playground/src/components/vm_deployment_table.vue index c5fa140e9c..d70ba9810d 100644 --- a/packages/playground/src/components/vm_deployment_table.vue +++ b/packages/playground/src/components/vm_deployment_table.vue @@ -267,7 +267,7 @@ const filteredHeaders = computed(() => { { title: "Actions", key: "actions", sortable: false }, ]; - const IPV6Solutions = [ProjectName.VM, ProjectName.Fullvm, ProjectName.TFRobot] as string[]; + const IPV6Solutions = [ProjectName.VM, ProjectName.Fullvm, ProjectName.TFRobot, ProjectName.Gitea] as string[]; const IPV4Solutions = [ ProjectName.VM, @@ -283,6 +283,7 @@ const filteredHeaders = computed(() => { ProjectName.StaticWebsite, ProjectName.Wordpress, ProjectName.TFRobot, + ProjectName.Gitea, ] as string[]; const WireguardSolutions = [ProjectName.VM, ProjectName.Fullvm, ProjectName.Umbrel, ProjectName.TFRobot] as string[]; diff --git a/packages/playground/src/constants/deployment_list.ts b/packages/playground/src/constants/deployment_list.ts index 0ce2ad08f3..f2c016b5da 100644 --- a/packages/playground/src/constants/deployment_list.ts +++ b/packages/playground/src/constants/deployment_list.ts @@ -166,4 +166,8 @@ export const deploymentListEnvironments = { tfrobot: { SSH_KEY: _ssh, }, + + gitea: { + SSH_KEY: _ssh, + }, }; diff --git a/packages/playground/src/router/index.ts b/packages/playground/src/router/index.ts index e80a03974d..ec421b6818 100644 --- a/packages/playground/src/router/index.ts +++ b/packages/playground/src/router/index.ts @@ -409,6 +409,28 @@ function createApplicationsRoutes(): RouteRecordRaw[] { }, }, }, + { + path: DashboardRoutes.Applications.Gitea, + component: () => import("../views/gitea_view.vue"), + meta: { + title: "Gitea", + info: { page: "info/gitea.md" }, + navbarConfig: { + back: true, + path: [ + { title: "Deploy" }, + { + title: "Applications", + disabled: false, + to: DashboardRoutes.Deploy.Applications, + }, + { + title: "Gitea", + }, + ], + }, + }, + }, ]; } diff --git a/packages/playground/src/router/routes.ts b/packages/playground/src/router/routes.ts index 6f60102ddd..222cdd4e9e 100644 --- a/packages/playground/src/router/routes.ts +++ b/packages/playground/src/router/routes.ts @@ -68,6 +68,7 @@ enum ApplicationRoutes { Umbrel = "/deploy/applications/umbrel/", Freeflow = "/deploy/applications/freeflow/", TFRobot = "/deploy/applications/tfrobot/", + Gitea = "/deploy/applications/gitea/", } const DashboardRoutes = { diff --git a/packages/playground/src/types/index.ts b/packages/playground/src/types/index.ts index f2e0111dca..0bc3b1f71c 100644 --- a/packages/playground/src/types/index.ts +++ b/packages/playground/src/types/index.ts @@ -122,6 +122,7 @@ export enum ProjectName { FreeFlow = "Freeflow", StaticWebsite = "StaticWebsite", TFRobot = "TFRobot", + Gitea = "Gitea", } export enum SolutionCode { @@ -149,6 +150,7 @@ export enum SolutionCode { wordpress = "wp", staticwebsite = "sw", tfrobot = "tfr", + gitea = "gt", } export const solutionType: { [key: string]: string } = { @@ -173,6 +175,7 @@ export const solutionType: { [key: string]: string } = { wordpress: "Wordpress", staticwebsite: "Static Website", tfrobot: "TFRobot", + Gitea: "Gitea", }; export interface solutionFlavor { diff --git a/packages/playground/src/views/gitea_view.vue b/packages/playground/src/views/gitea_view.vue new file mode 100644 index 0000000000..5260f80144 --- /dev/null +++ b/packages/playground/src/views/gitea_view.vue @@ -0,0 +1,26 @@ + + + diff --git a/packages/playground/src/views/solutions_view.vue b/packages/playground/src/views/solutions_view.vue index a11b1295f2..28fbddca85 100644 --- a/packages/playground/src/views/solutions_view.vue +++ b/packages/playground/src/views/solutions_view.vue @@ -51,6 +51,13 @@ export default { name: "SolutionsView", setup() { let cards: Card[] = [ + { + title: "Gitea", + excerpt: + "Gitea is a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, continuous integration, kanban boards, tickets, and wikis. It supports self-hosting but also provides a free public first-party instance.", + icon: "vm.png", + route: DashboardRoutes.Applications.Gitea, + }, { title: "TFRobot", excerpt: diff --git a/packages/playground/src/weblets/tf_deployment_list.vue b/packages/playground/src/weblets/tf_deployment_list.vue index 1bb36d1c1f..a94ce711f2 100644 --- a/packages/playground/src/weblets/tf_deployment_list.vue +++ b/packages/playground/src/weblets/tf_deployment_list.vue @@ -282,6 +282,14 @@ /> + + + + + + From 52589ace490ce65888b6e85c4654efa204bf0e7e Mon Sep 17 00:00:00 2001 From: zaelgohary Date: Sun, 9 Jun 2024 22:24:35 +0300 Subject: [PATCH 014/111] Fix search your farms --- packages/playground/src/dashboard/components/user_farms.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/playground/src/dashboard/components/user_farms.vue b/packages/playground/src/dashboard/components/user_farms.vue index a4afd9d527..899809636f 100644 --- a/packages/playground/src/dashboard/components/user_farms.vue +++ b/packages/playground/src/dashboard/components/user_farms.vue @@ -226,6 +226,7 @@ export default { twinId, page: page.value, size: pageSize.value, + nameContains: search.value, }); const filteredFarms = filter(data); From ae31f76d2fa18194cffbf36288efd5a913343ed6 Mon Sep 17 00:00:00 2001 From: zaelgohary Date: Sun, 9 Jun 2024 22:31:13 +0300 Subject: [PATCH 015/111] Remove unused code --- .../src/dashboard/components/user_farms.vue | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/packages/playground/src/dashboard/components/user_farms.vue b/packages/playground/src/dashboard/components/user_farms.vue index 899809636f..8fca6b6bf5 100644 --- a/packages/playground/src/dashboard/components/user_farms.vue +++ b/packages/playground/src/dashboard/components/user_farms.vue @@ -203,22 +203,6 @@ export default { const refreshPublicIPs = ref(false); const reloadFarms = debounce(getUserFarms, 20000); - function filter(items: Farm[]) { - const start = (page.value - 1) * pageSize.value; - const end = start + pageSize.value; - - let filteredItems; - if (search.value) { - filteredItems = items.filter( - item => item.name.toLowerCase().includes(search.value!.toLowerCase()) || item.farmId == +search.value!, - ); - } - - const paginated = filteredItems ? filteredItems.slice(start, end) : items; - - return paginated; - } - async function getUserFarms() { try { const { data, count } = await gridProxyClient.farms.list({ @@ -229,9 +213,8 @@ export default { nameContains: search.value, }); - const filteredFarms = filter(data); - farms.value = filteredFarms as unknown as Farm[]; - farmsCount.value = count || filteredFarms.length; + farms.value = data as Farm[]; + farmsCount.value = count || farms.value.length; } catch (error) { console.log(error); createCustomToast("Failed to get user farms!", ToastType.danger); From 62f5da43de395c67fb65638bddff170c27aabb86 Mon Sep 17 00:00:00 2001 From: samaradel Date: Mon, 10 Jun 2024 13:11:58 +0300 Subject: [PATCH 016/111] Fix farm finder table pagination --- packages/playground/src/views/farms.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/playground/src/views/farms.vue b/packages/playground/src/views/farms.vue index 1e2301c207..49c6f3f2db 100644 --- a/packages/playground/src/views/farms.vue +++ b/packages/playground/src/views/farms.vue @@ -89,6 +89,7 @@ { value: 5, title: '5' }, { value: 10, title: '10' }, { value: 15, title: '15' }, + { value: 50, title: '50' }, ]" :items-per-page="size" @update:items-per-page=" From a2b967a61930fc437a45fc9ea45d89f06a33b515 Mon Sep 17 00:00:00 2001 From: samaradel Date: Mon, 10 Jun 2024 14:45:36 +0300 Subject: [PATCH 017/111] Fix profile manager inputs autocomplete --- packages/playground/src/weblets/profile_manager.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/playground/src/weblets/profile_manager.vue b/packages/playground/src/weblets/profile_manager.vue index 5acece2b69..2c36454672 100644 --- a/packages/playground/src/weblets/profile_manager.vue +++ b/packages/playground/src/weblets/profile_manager.vue @@ -153,6 +153,7 @@ }" :disabled="creatingAccount || activatingAccount || activating" @click:append="reloadValidation" + autocomplete="off" > @@ -305,6 +308,7 @@ ...validationProps, }" :disabled="creatingAccount || activatingAccount || activating" + autocomplete="off" /> From d96641b598f37f46a7a1af0cec6438c82b97f7f7 Mon Sep 17 00:00:00 2001 From: mayar osama Date: Mon, 10 Jun 2024 15:21:04 +0300 Subject: [PATCH 018/111] Added a Mine filter in node finder to retrieve nodes rented by me --- packages/playground/src/views/nodes.vue | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/playground/src/views/nodes.vue b/packages/playground/src/views/nodes.vue index 1ef0fe9722..978576f010 100644 --- a/packages/playground/src/views/nodes.vue +++ b/packages/playground/src/views/nodes.vue @@ -41,6 +41,9 @@ + + + (true); @@ -570,6 +574,7 @@ export default { rentable: filters.value.rentable && profileManager.profile ? filters.value.rentable : undefined, availableFor: filters.value.rentable && profileManager.profile ? profileManager.profile.twinId : undefined, hasIPv6: filters.value.ipv6, + rentedBy: filters.value.mine && profileManager.profile ? profileManager.profile.twinId : undefined, }, { loadFarm: true }, ); From 9eb3dae5ba637c292ab5c0e852657cedd395da9a Mon Sep 17 00:00:00 2001 From: zaelgohary Date: Mon, 10 Jun 2024 17:49:59 +0300 Subject: [PATCH 019/111] Remove env tab & add mail server, Add gitea to deplyment list --- .../src/weblets/tf_deployment_list.vue | 1 + packages/playground/src/weblets/tf_gitea.vue | 46 ++++--------------- 2 files changed, 10 insertions(+), 37 deletions(-) diff --git a/packages/playground/src/weblets/tf_deployment_list.vue b/packages/playground/src/weblets/tf_deployment_list.vue index a94ce711f2..fc98753a3b 100644 --- a/packages/playground/src/weblets/tf_deployment_list.vue +++ b/packages/playground/src/weblets/tf_deployment_list.vue @@ -407,6 +407,7 @@ const tabs: Tab[] = [ { title: "Wordpress", value: "Wordpress", imgPath: "images/icons/wordpress.png" }, { title: "Static Website", value: "StaticWebsite", imgPath: "images/icons/wordpress.png" }, { title: "TFRobot", value: "TFRobot", imgPath: "images/icons/tfrobot.png" }, + { title: "Gitea", value: "Gitea", imgPath: "images/icons/vm.png" }, ]; const layout = useLayout(); diff --git a/packages/playground/src/weblets/tf_gitea.vue b/packages/playground/src/weblets/tf_gitea.vue index 1fdf557fb0..51e0862e52 100644 --- a/packages/playground/src/weblets/tf_gitea.vue +++ b/packages/playground/src/weblets/tf_gitea.vue @@ -16,7 +16,7 @@ @@ -78,39 +78,10 @@ - -