From d21070d3a99a70a5b09c2b6916079d7857ce53d1 Mon Sep 17 00:00:00 2001 From: ibartsindia Date: Thu, 27 Feb 2025 19:24:53 +0530 Subject: [PATCH 01/29] modified docker compose --- docker-compose.yml | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 861fa9dd89f..4a32d1ce9bc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,8 @@ services: command: node web/server.js web depends_on: - api + environment: + - NODE_ENV=production admin: container_name: admin @@ -23,6 +25,8 @@ services: depends_on: - api - web + environment: + - NODE_ENV=production space: container_name: space @@ -36,6 +40,8 @@ services: depends_on: - api - web + environment: + - NODE_ENV=production api: container_name: api @@ -51,6 +57,8 @@ services: depends_on: - plane-db - plane-redis + - plane-mq + - plane-minio worker: container_name: bgworker @@ -91,7 +99,7 @@ services: dockerfile: Dockerfile.api args: DOCKER_BUILDKIT: 1 - restart: no + restart: "no" command: ./bin/docker-entrypoint-migrator.sh env_file: - ./apiserver/.env @@ -108,6 +116,8 @@ services: DOCKER_BUILDKIT: 1 restart: always command: node live/dist/server.js + environment: + - NODE_ENV=production plane-db: container_name: plane-db @@ -115,7 +125,7 @@ services: restart: always command: postgres -c 'max_connections=1000' volumes: - - pgdata:/var/lib/postgresql/data + - /opt/docker-volumes/postgres:/var/lib/postgresql/data env_file: - .env environment: @@ -128,8 +138,11 @@ services: container_name: plane-redis image: valkey/valkey:7.2.5-alpine restart: always + command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"] volumes: - - redisdata:/data + - /opt/docker-volumes/redis:/data + environment: + REDIS_PASSWORD: ${REDIS_PASSWORD} plane-mq: container_name: plane-mq @@ -142,7 +155,7 @@ services: RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD} RABBITMQ_DEFAULT_VHOST: ${RABBITMQ_VHOST} volumes: - - rabbitmq_data:/var/lib/rabbitmq + - /opt/docker-volumes/rabbitmq:/var/lib/rabbitmq plane-minio: container_name: plane-minio @@ -150,12 +163,11 @@ services: restart: always command: server /export --console-address ":9090" volumes: - - uploads:/export + - /opt/docker-volumes/minio:/export environment: MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID} MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY} - # Comment this if you already have a reverse proxy running proxy: container_name: proxy build: @@ -174,7 +186,11 @@ services: - admin volumes: - pgdata: - redisdata: - uploads: - rabbitmq_data: + plane-db: + driver: local + plane-redis: + driver: local + plane-mq: + driver: local + plane-minio: + driver: local \ No newline at end of file From 3780639ccd0b6de7f85470769bbd51eabc71cecf Mon Sep 17 00:00:00 2001 From: ibartsindia Date: Thu, 27 Feb 2025 20:16:27 +0530 Subject: [PATCH 02/29] Removed upgrade button from sidebar --- web/core/components/workspace/sidebar/help-section.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/core/components/workspace/sidebar/help-section.tsx b/web/core/components/workspace/sidebar/help-section.tsx index 04ef02fea86..27f3e59332d 100644 --- a/web/core/components/workspace/sidebar/help-section.tsx +++ b/web/core/components/workspace/sidebar/help-section.tsx @@ -163,7 +163,7 @@ export const SidebarHelpSection: React.FC = observer( hidden: isCollapsed, })} > - + {/* */}
Date: Thu, 27 Feb 2025 20:19:06 +0530 Subject: [PATCH 03/29] removed star_us_on_github button from header --- web/app/[workspaceSlug]/(projects)/header.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/app/[workspaceSlug]/(projects)/header.tsx b/web/app/[workspaceSlug]/(projects)/header.tsx index 16c106dad4a..f5a5ab0155b 100644 --- a/web/app/[workspaceSlug]/(projects)/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/header.tsx @@ -37,6 +37,7 @@ export const WorkspaceDashboardHeader = () => {
+ {/* @@ -58,6 +59,7 @@ export const WorkspaceDashboardHeader = () => { {t("home.star_us_on_github")} + */} ); From c345d24b8b5772ca5cdd5c811d915ed53b2510ce Mon Sep 17 00:00:00 2001 From: ibartsindia Date: Thu, 27 Feb 2025 20:24:38 +0530 Subject: [PATCH 04/29] Removed unwanted menu items from help menu --- web/core/components/workspace/sidebar/help-section.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web/core/components/workspace/sidebar/help-section.tsx b/web/core/components/workspace/sidebar/help-section.tsx index 27f3e59332d..b37068ff02f 100644 --- a/web/core/components/workspace/sidebar/help-section.tsx +++ b/web/core/components/workspace/sidebar/help-section.tsx @@ -100,6 +100,7 @@ export const SidebarHelpSection: React.FC = observer( )} + {/* = observer( {t("contact_sales")} + */}
= observer( {t("keyboard_shortcuts")} + {/*
); diff --git a/web/core/components/account/auth-forms/auth-root.tsx b/web/core/components/account/auth-forms/auth-root.tsx index 004e81682b7..1b0433f3392 100644 --- a/web/core/components/account/auth-forms/auth-root.tsx +++ b/web/core/components/account/auth-forms/auth-root.tsx @@ -197,7 +197,7 @@ export const AuthRoot: FC = observer((props) => { /> )} - + {/* */ }
); From 8f540f9ad49ff620012e1fce1a266da8b1b3e255 Mon Sep 17 00:00:00 2001 From: ibartsindia Date: Fri, 28 Feb 2025 18:02:16 +0530 Subject: [PATCH 24/29] Replaced string from Plane to ReyFlow --- packages/i18n/src/locales/en/core.json | 2 +- .../i18n/src/locales/en/translations.json | 38 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/i18n/src/locales/en/core.json b/packages/i18n/src/locales/en/core.json index 14207c5a8e6..2b2f517ef64 100644 --- a/packages/i18n/src/locales/en/core.json +++ b/packages/i18n/src/locales/en/core.json @@ -83,7 +83,7 @@ "already_have_an_account": "Already have an account?", "login": "Log in", "create_account": "Create an account", - "new_to_plane": "New to Plane?", + "new_to_plane": "New to ReyFlow?", "back_to_sign_in": "Back to sign in", "resend_in": "Resend in {seconds} seconds", "sign_in_with_unique_code": "Sign in with unique code", diff --git a/packages/i18n/src/locales/en/translations.json b/packages/i18n/src/locales/en/translations.json index 7c74ff2ee5e..e5cda01a9ad 100644 --- a/packages/i18n/src/locales/en/translations.json +++ b/packages/i18n/src/locales/en/translations.json @@ -219,7 +219,7 @@ "full_changelog": "Full changelog", "support": "Support", "discord": "Discord", - "powered_by_plane_pages": "Powered by Plane Pages", + "powered_by_plane_pages": "Powered by ReyFlow Pages", "please_select_at_least_one_invitation": "Please select at least one invitation.", "please_select_at_least_one_invitation_description": "Please select at least one invitation to join the workspace.", "we_see_that_someone_has_invited_you_to_join_a_workspace": "We see that someone has invited you to join a workspace", @@ -380,7 +380,7 @@ "not_right_now": "Not right now", "create_project": { "title": "Create a project", - "description": "Most things start with a project in Plane.", + "description": "Most things start with a project in ReyFlow.", "cta": "Get started" }, "invite_team": { @@ -394,7 +394,7 @@ "cta": "Configure this workspace" }, "personalize_account": { - "title": "Make Plane yours.", + "title": "Make ReyFlow yours.", "description": "Choose your picture, colors, and more.", "cta": "Personalize now" }, @@ -428,7 +428,7 @@ } }, "new_at_plane": { - "title": "New at Plane" + "title": "New at ReyFlow" }, "quick_tutorial": { "title": "Quick tutorial" @@ -1044,7 +1044,7 @@ "workspace_creation": { "heading": "Create your workspace", - "subheading": "To start using Plane, you need to create or join a workspace.", + "subheading": "To start using ReyFlow, you need to create or join a workspace.", "form": { "name": { "label": "Name your workspace", @@ -1098,11 +1098,11 @@ "empty_state": { "general": { "title": "Overview of your projects, activity, and metrics", - "description": "Welcome to Plane, we are excited to have you here. Create your first project and track your work items, and this page will transform into a space that helps you progress. Admins will also see items which help their team progress.", + "description": "Welcome to ReyFlow, we are excited to have you here. Create your first project and track your work items, and this page will transform into a space that helps you progress. Admins will also see items which help their team progress.", "primary_button": { "text": "Build your first project", "comic": { - "title": "Everything starts with a project in Plane", + "title": "Everything starts with a project in ReyFlow", "description": "A project could be a product's roadmap, a marketing campaign, or launching a new car." } } @@ -1204,7 +1204,7 @@ "primary_button": { "text": "Start your first project", "comic": { - "title": "Everything starts with a project in Plane", + "title": "Everything starts with a project in ReyFlow", "description": "A project could be a product's roadmap, a marketing campaign, or launching a new car." } } @@ -1215,7 +1215,7 @@ "primary_button": { "text": "Start your first project", "comic": { - "title": "Everything starts with a project in Plane", + "title": "Everything starts with a project in ReyFlow", "description": "A project could be a product's roadmap, a marketing campaign, or launching a new car." } } @@ -1269,7 +1269,7 @@ "label": "Workspace settings", "page_label": "{workspace} - General settings", "key_created": "Key created", - "copy_key": "Copy and save this secret key in Plane Pages. You can't see this key after you hit Close. A CSV file containing the key has been downloaded.", + "copy_key": "Copy and save this secret key in ReyFlow Pages. You can't see this key after you hit Close. A CSV file containing the key has been downloaded.", "token_copied": "Token copied to clipboard.", "settings": { "general": { @@ -1414,7 +1414,7 @@ "generating": "Generating", "delete": { "title": "Delete API token", - "description": "Any application using this token will no longer have the access to Plane data. This action cannot be undone.", + "description": "Any application using this token will no longer have the access to ReyFlow data. This action cannot be undone.", "success": { "title": "Success!", "message": "The API token has been successfully deleted" @@ -1429,7 +1429,7 @@ "empty_state": { "api_tokens": { "title": "No API tokens created", - "description": "Plane APIs can be used to integrate your data in Plane with any external system. Create a token to get started." + "description": "ReyFlow APIs can be used to integrate your data in ReyFlow with any external system. Create a token to get started." }, "webhooks": { "title": "No webhooks added", @@ -1492,7 +1492,7 @@ "empty_state": { "activity": { "title": "No activities yet", - "description": "Get started by creating a new work item! Add details and properties to it. Explore more in Plane to see your activity." + "description": "Get started by creating a new work item! Add details and properties to it. Explore more in ReyFlow to see your activity." }, "assigned": { "title": "No work items are assigned to you", @@ -1565,12 +1565,12 @@ "label": "Automations", "auto-archive": { "title": "Auto-archive closed work items", - "description": "Plane will auto archive work items that have been completed or canceled.", + "description": "ReyFlow will auto archive work items that have been completed or canceled.", "duration": "Auto-archive work items that are closed for" }, "auto-close": { "title": "Auto-close work items", - "description": "Plane will automatically close work items that haven't been completed or canceled.", + "description": "ReyFlow will automatically close work items that haven't been completed or canceled.", "duration": "Auto-close work items that are inactive for", "auto_close_status": "Auto-close status" } @@ -1717,8 +1717,8 @@ "primary_button": { "text": "Create your first work item", "comic": { - "title": "Work items are building blocks in Plane.", - "description": "Redesign the Plane UI, Rebrand the company, or Launch the new fuel injection system are examples of work items that likely have sub-work items." + "title": "Work items are building blocks in ReyFlow.", + "description": "Redesign the ReyFlow UI, Rebrand the company, or Launch the new fuel injection system are examples of work items that likely have sub-work items." } } }, @@ -1815,8 +1815,8 @@ "project_page": { "empty_state": { "general": { - "title": "Write a note, a doc, or a full knowledge base. Get Galileo, Plane's AI assistant, to help you get started", - "description": "Pages are thoughts potting space in Plane. Take down meeting notes, format them easily, embed work items, lay them out using a library of components, and keep them all in your project's context. To make short work of any doc, invoke Galileo, Plane's AI, with a shortcut or the click of a button.", + "title": "Write a note, a doc, or a full knowledge base. Get Galileo, ReyFlow's AI assistant, to help you get started", + "description": "Pages are thoughts potting space in ReyFlow. Take down meeting notes, format them easily, embed work items, lay them out using a library of components, and keep them all in your project's context. To make short work of any doc, invoke Galileo, ReyFlow's AI, with a shortcut or the click of a button.", "primary_button": { "text": "Create your first page" } From f25912bf883a78bc6ce2735bb9d026b79ae37a10 Mon Sep 17 00:00:00 2001 From: ibartsindia Date: Fri, 28 Feb 2025 18:05:26 +0530 Subject: [PATCH 25/29] Changed meta data from Plane to ReyFlow --- admin/app/page.tsx | 4 ++-- packages/constants/src/metadata.ts | 14 +++++++------- packages/ui/src/hooks/use-page-title.tsx | 2 +- web/app/layout.tsx | 6 +++--- web/manifest.json | 6 +++--- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/admin/app/page.tsx b/admin/app/page.tsx index 1a274025a0a..1db07f9c475 100644 --- a/admin/app/page.tsx +++ b/admin/app/page.tsx @@ -5,11 +5,11 @@ import { InstanceSignInForm } from "@/components/login"; import { DefaultLayout } from "@/layouts/default-layout"; export const metadata: Metadata = { - title: "Plane | Simple, extensible, open-source project management tool.", + title: "ReyFlow | Simple, extensible, open-source project management tool.", description: "Open-source project management tool to manage work items, sprints, and product roadmaps with peace of mind.", openGraph: { - title: "Plane | Simple, extensible, open-source project management tool.", + title: "ReyFlow | Simple, extensible, open-source project management tool.", description: "Open-source project management tool to manage work items, sprints, and product roadmaps with peace of mind.", url: "https://plane.so/", diff --git a/packages/constants/src/metadata.ts b/packages/constants/src/metadata.ts index 017cc84c252..00adc1c0833 100644 --- a/packages/constants/src/metadata.ts +++ b/packages/constants/src/metadata.ts @@ -1,22 +1,22 @@ export const SITE_NAME = - "Plane | Simple, extensible, open-source project management tool."; + "ReyFlow | Simple, extensible, open-source project management tool."; export const SITE_TITLE = - "Plane | Simple, extensible, open-source project management tool."; + "ReyFlow | Simple, extensible, open-source project management tool."; export const SITE_DESCRIPTION = "Open-source project management tool to manage work items, cycles, and product roadmaps easily"; export const SITE_KEYWORDS = "software development, plan, ship, software, accelerate, code management, release management, project management, work items tracking, agile, scrum, kanban, collaboration"; export const SITE_URL = "https://app.plane.so/"; export const TWITTER_USER_NAME = - "Plane | Simple, extensible, open-source project management tool."; + "ReyFlow | Simple, extensible, open-source project management tool."; -// Plane Sites Metadata +// ReyFlow Sites Metadata export const SPACE_SITE_NAME = - "Plane Publish | Make your Plane boards and roadmaps pubic with just one-click. "; + "ReyFlow Publish | Make your ReyFlow boards and roadmaps pubic with just one-click. "; export const SPACE_SITE_TITLE = - "Plane Publish | Make your Plane boards public with one-click"; + "ReyFlow Publish | Make your ReyFlow boards public with one-click"; export const SPACE_SITE_DESCRIPTION = - "Plane Publish is a customer feedback management tool built on top of plane.so"; + "ReyFlow Publish is a customer feedback management tool built on top of plane.so"; export const SPACE_SITE_KEYWORDS = "software development, customer feedback, software, accelerate, code management, release management, project management, work items tracking, agile, scrum, kanban, collaboration"; export const SPACE_SITE_URL = "https://app.plane.so/"; diff --git a/packages/ui/src/hooks/use-page-title.tsx b/packages/ui/src/hooks/use-page-title.tsx index 79fb6857eed..e93f2f973c3 100644 --- a/packages/ui/src/hooks/use-page-title.tsx +++ b/packages/ui/src/hooks/use-page-title.tsx @@ -7,7 +7,7 @@ interface IUseHeadParams { export const useHead = ({ title }: IUseHeadParams) => { useEffect(() => { if (title) { - document.title = title ?? "Plane | Simple, extensible, open-source project management tool."; + document.title = title ?? "ReyFlow | Simple, extensible, open-source project management tool."; } }, [title]); }; diff --git a/web/app/layout.tsx b/web/app/layout.tsx index 6024753df80..43b9bffeaa3 100644 --- a/web/app/layout.tsx +++ b/web/app/layout.tsx @@ -14,10 +14,10 @@ import { API_BASE_URL, cn } from "@/helpers/common.helper"; import { AppProvider } from "./provider"; export const metadata: Metadata = { - title: "Plane | Simple, extensible, open-source project management tool.", + title: "ReyFlow | Simple, extensible, open-source project management tool.", description: SITE_DESCRIPTION, openGraph: { - title: "Plane | Simple, extensible, open-source project management tool.", + title: "ReyFlow | Simple, extensible, open-source project management tool.", description: "Open-source project management tool to manage work items, cycles, and product roadmaps easily", url: "https://app.plane.so/", }, @@ -49,7 +49,7 @@ export default function RootLayout({ children }: { children: React.ReactNode }) {/* Meta info for PWA */} - + diff --git a/web/manifest.json b/web/manifest.json index 5a00515a03c..75a461c6ad5 100644 --- a/web/manifest.json +++ b/web/manifest.json @@ -4,9 +4,9 @@ "display": "standalone", "scope": "/", "start_url": "/", - "name": "Plane | Accelerate software development with peace.", - "short_name": "Plane", - "description": "Plane accelerated the software development by order of magnitude for agencies and product companies.", + "name": "ReyFlow | Accelerate software development with peace.", + "short_name": "ReyFlow", + "description": "ReyFlow accelerated the software development by order of magnitude for agencies and product companies.", "icons": [ { "src": "/icon-192x192.png", From d7d3db8a0dd6efe461193087656259a74540815e Mon Sep 17 00:00:00 2001 From: ibartsindia Date: Fri, 28 Feb 2025 19:05:27 +0530 Subject: [PATCH 26/29] Changed text from Plane to ReyFlow --- admin/app/ai/layout.tsx | 2 +- admin/app/ai/page.tsx | 2 +- admin/app/authentication/github/form.tsx | 4 ++-- admin/app/authentication/github/page.tsx | 2 +- admin/app/authentication/gitlab/form.tsx | 4 ++-- admin/app/authentication/gitlab/page.tsx | 2 +- admin/app/authentication/google/form.tsx | 4 ++-- admin/app/authentication/google/page.tsx | 2 +- admin/app/authentication/layout.tsx | 2 +- admin/app/email/layout.tsx | 2 +- admin/app/email/page.tsx | 2 +- admin/app/general/form.tsx | 4 ++-- admin/app/general/layout.tsx | 2 +- admin/app/image/layout.tsx | 2 +- admin/app/page.tsx | 8 ++++---- admin/app/workspace/layout.tsx | 2 +- admin/core/components/admin-sidebar/help-section.tsx | 4 ++-- admin/core/components/admin-sidebar/sidebar-menu.tsx | 2 +- admin/core/components/common/page-header.tsx | 2 +- admin/core/components/instance/instance-failure-view.tsx | 2 +- admin/core/components/instance/instance-not-ready.tsx | 4 ++-- admin/core/components/instance/setup-form.tsx | 6 +++--- admin/core/components/login/sign-in-form.tsx | 2 +- admin/core/components/new-user-popup.tsx | 4 ++-- admin/core/layouts/default-layout.tsx | 4 ++-- admin/core/lib/auth-helpers.tsx | 6 +++--- packages/ui/src/hooks/use-page-title.tsx | 2 +- space/app/error.tsx | 2 +- space/app/issues/[anchor]/layout.tsx | 4 ++-- space/app/layout.tsx | 8 ++++---- space/app/views/[anchor]/layout.tsx | 2 +- space/core/components/account/auth-forms/auth-header.tsx | 2 +- space/core/components/account/user-logged-in.tsx | 2 +- space/core/components/common/powered-by.tsx | 4 ++-- space/core/components/instance/instance-failure-view.tsx | 2 +- space/core/components/views/auth.tsx | 4 ++-- space/core/lib/instance-provider.tsx | 4 ++-- .../projects/(detail)/[projectId]/inbox/page.tsx | 2 +- web/app/accounts/forgot-password/layout.tsx | 2 +- web/app/accounts/forgot-password/page.tsx | 4 ++-- web/app/accounts/reset-password/layout.tsx | 2 +- web/app/accounts/reset-password/page.tsx | 4 ++-- web/app/accounts/set-password/layout.tsx | 2 +- web/app/accounts/set-password/page.tsx | 4 ++-- web/app/create-workspace/page.tsx | 2 +- web/app/error.tsx | 2 +- web/app/invitations/page.tsx | 2 +- web/app/layout.tsx | 6 +++--- web/app/page.tsx | 6 +++--- web/app/provider.tsx | 2 +- web/app/sign-up/layout.tsx | 2 +- web/app/sign-up/page.tsx | 4 ++-- web/app/workspace-invitations/page.tsx | 6 +++--- web/ce/components/global/product-updates-header.tsx | 2 +- web/ce/components/instance/maintenance-message.tsx | 2 +- .../pages/editor/embed/issue-embed-upgrade-card.tsx | 2 +- web/ce/components/workspace/upgrade/one-plan-upgrade.tsx | 2 +- .../workspace/upgrade/paid-plans-upgrade-modal.tsx | 2 +- web/ce/components/workspace/upgrade/pro-plan-upgrade.tsx | 2 +- .../components/command-palette/actions/help-actions.tsx | 2 +- web/core/components/common/activity/helper.tsx | 2 +- web/core/components/common/activity/user.tsx | 2 +- web/core/components/common/latest-feature-block.tsx | 2 +- web/core/components/dashboard/project-empty-state.tsx | 2 +- web/core/components/dropdowns/state.tsx | 2 +- web/core/components/gantt-chart/helpers/draggable.tsx | 2 +- web/core/components/gantt-chart/sidebar/modules/block.tsx | 2 +- web/core/components/global/product-updates/footer.tsx | 2 +- web/core/components/inbox/sidebar/inbox-list-item.tsx | 2 +- web/core/components/instance/not-ready-view.tsx | 8 ++++---- web/core/components/integration/guide.tsx | 2 +- .../components/integration/single-integration-card.tsx | 4 ++-- .../issue-detail-widget-collapsibles.tsx | 2 +- .../issues/issue-detail-widgets/relations/content.tsx | 2 +- .../relations/quick-action-button.tsx | 2 +- .../issues/issue-detail-widgets/relations/title.tsx | 2 +- .../issue-activity/activity/actions/archived-at.tsx | 2 +- .../issue-activity/activity/actions/relation.tsx | 2 +- .../components/issues/issue-detail/relation-select.tsx | 4 ++-- .../issues/issue-layouts/kanban/headers/group-by-card.tsx | 2 +- .../issue-layouts/kanban/headers/sub-group-by-card.tsx | 4 ++-- .../issues/issue-layouts/kanban/kanban-group.tsx | 2 +- .../issues/issue-layouts/list/headers/group-by-card.tsx | 2 +- .../components/issues/issue-layouts/list/list-group.tsx | 2 +- web/core/components/issues/peek-overview/properties.tsx | 2 +- web/core/components/issues/relations/issue-list-item.tsx | 2 +- web/core/components/issues/relations/issue-list.tsx | 4 ++-- web/core/components/onboarding/header.tsx | 2 +- web/core/components/onboarding/invite-members.tsx | 2 +- web/core/components/onboarding/profile-setup.tsx | 4 ++-- web/core/components/onboarding/tour/root.tsx | 8 ++++---- web/core/components/onboarding/tour/sidebar.tsx | 2 +- web/core/components/profile/activity/activity-list.tsx | 2 +- .../components/profile/activity/profile-activity-list.tsx | 2 +- web/core/components/project-states/state-item.tsx | 2 +- web/core/layouts/auth-layout/workspace-wrapper.tsx | 4 ++-- 96 files changed, 140 insertions(+), 140 deletions(-) diff --git a/admin/app/ai/layout.tsx b/admin/app/ai/layout.tsx index d461a626aa2..d8e005ec792 100644 --- a/admin/app/ai/layout.tsx +++ b/admin/app/ai/layout.tsx @@ -3,7 +3,7 @@ import { Metadata } from "next"; import { AdminLayout } from "@/layouts/admin-layout"; export const metadata: Metadata = { - title: "Artificial Intelligence Settings - Plane Web", + title: "Artificial Intelligence Settings - ReyFlow Web", }; export default function AILayout({ children }: { children: ReactNode }) { diff --git a/admin/app/ai/page.tsx b/admin/app/ai/page.tsx index 2a0747776e1..50d1d3d8b48 100644 --- a/admin/app/ai/page.tsx +++ b/admin/app/ai/page.tsx @@ -20,7 +20,7 @@ const InstanceAIPage = observer(() => {
AI features for all your workspaces
- Configure your AI API credentials so Plane AI features are turned on for all your workspaces. + Configure your AI API credentials so ReyFlow AI features are turned on for all your workspaces.
diff --git a/admin/app/authentication/github/form.tsx b/admin/app/authentication/github/form.tsx index 4842675cd59..88f252b5598 100644 --- a/admin/app/authentication/github/form.tsx +++ b/admin/app/authentication/github/form.tsx @@ -172,7 +172,7 @@ export const InstanceGithubConfigForm: FC = (props) => {
-
GitHub-provided details for Plane
+
GitHub-provided details for ReyFlow
{GITHUB_FORM_FIELDS.map((field) => ( = (props) => {
-
Plane-provided details for GitHub
+
ReyFlow-provided details for GitHub
{GITHUB_SERVICE_FIELD.map((field) => ( ))} diff --git a/admin/app/authentication/github/page.tsx b/admin/app/authentication/github/page.tsx index 986a5ebd24e..32e50f9c90b 100644 --- a/admin/app/authentication/github/page.tsx +++ b/admin/app/authentication/github/page.tsx @@ -63,7 +63,7 @@ const InstanceGithubAuthenticationPage = observer(() => { }; return ( <> - +
= (props) => {
-
GitLab-provided details for Plane
+
GitLab-provided details for ReyFlow
{GITLAB_FORM_FIELDS.map((field) => ( = (props) => {
-
Plane-provided details for GitLab
+
ReyFlow-provided details for GitLab
{GITLAB_SERVICE_FIELD.map((field) => ( ))} diff --git a/admin/app/authentication/gitlab/page.tsx b/admin/app/authentication/gitlab/page.tsx index 7a4d8248ef2..f99a0f90012 100644 --- a/admin/app/authentication/gitlab/page.tsx +++ b/admin/app/authentication/gitlab/page.tsx @@ -57,7 +57,7 @@ const InstanceGitlabAuthenticationPage = observer(() => { }; return ( <> - +
= (props) => {
-
Google-provided details for Plane
+
Google-provided details for ReyFlow
{GOOGLE_FORM_FIELDS.map((field) => ( = (props) => {
-
Plane-provided details for Google
+
ReyFlow-provided details for Google
{GOOGLE_SERVICE_DETAILS.map((field) => ( ))} diff --git a/admin/app/authentication/google/page.tsx b/admin/app/authentication/google/page.tsx index 992c7a8a7a1..33c42958a25 100644 --- a/admin/app/authentication/google/page.tsx +++ b/admin/app/authentication/google/page.tsx @@ -57,7 +57,7 @@ const InstanceGoogleAuthenticationPage = observer(() => { }; return ( <> - +
{
Secure emails from your own instance
- Plane can send useful emails to you and your users from your own instance without talking to the Internet. + ReyFlow can send useful emails to you and your users from your own instance without talking to the Internet.
Set it up below and please test your settings before you save them.  Misconfigs can lead to email bounces and errors. diff --git a/admin/app/general/form.tsx b/admin/app/general/form.tsx index 4fbd7053561..0a8fe85f92a 100644 --- a/admin/app/general/form.tsx +++ b/admin/app/general/form.tsx @@ -117,10 +117,10 @@ export const GeneralConfigurationForm: FC = observer(
- Let Plane collect anonymous usage data + Let ReyFlow collect anonymous usage data
- No PII is collected.This anonymized data is used to understand how you use Plane and build new features + No PII is collected.This anonymized data is used to understand how you use ReyFlow and build new features in line with{" "} { )} >
- + - {!isSidebarCollapsed && "Redirect to Plane"} + {!isSidebarCollapsed && "Redirect to ReyFlow"} diff --git a/admin/core/components/admin-sidebar/sidebar-menu.tsx b/admin/core/components/admin-sidebar/sidebar-menu.tsx index 618551ae65c..4f82dae5f48 100644 --- a/admin/core/components/admin-sidebar/sidebar-menu.tsx +++ b/admin/core/components/admin-sidebar/sidebar-menu.tsx @@ -43,7 +43,7 @@ const INSTANCE_ADMIN_LINKS = [ }, { Icon: Image, - name: "Images in Plane", + name: "Images in ReyFlow", description: "Allow third-party image libraries.", href: `/image/`, }, diff --git a/admin/core/components/common/page-header.tsx b/admin/core/components/common/page-header.tsx index a4b27b92fa0..27eeaa6c2a8 100644 --- a/admin/core/components/common/page-header.tsx +++ b/admin/core/components/common/page-header.tsx @@ -6,7 +6,7 @@ type TPageHeader = { }; export const PageHeader: React.FC = (props) => { - const { title = "God Mode - Plane", description = "Plane god mode" } = props; + const { title = "God Mode - ReyFlow", description = "ReyFlow god mode" } = props; return ( <> diff --git a/admin/core/components/instance/instance-failure-view.tsx b/admin/core/components/instance/instance-failure-view.tsx index 735a74c8dbc..b13454b2274 100644 --- a/admin/core/components/instance/instance-failure-view.tsx +++ b/admin/core/components/instance/instance-failure-view.tsx @@ -20,7 +20,7 @@ export const InstanceFailureView: FC = () => {
- Plane Logo + ReyFlow Logo

Unable to fetch instance details.

We were unable to fetch the details of the instance.
diff --git a/admin/core/components/instance/instance-not-ready.tsx b/admin/core/components/instance/instance-not-ready.tsx index 874013f52fc..68b00b3648f 100644 --- a/admin/core/components/instance/instance-not-ready.tsx +++ b/admin/core/components/instance/instance-not-ready.tsx @@ -11,8 +11,8 @@ export const InstanceNotReady: FC = () => (

-

Welcome aboard Plane!

- Plane Logo +

Welcome aboard ReyFlow!

+ ReyFlow Logo

Get started by setting up your instance and workspace

diff --git a/admin/core/components/instance/setup-form.tsx b/admin/core/components/instance/setup-form.tsx index fcc5c6c83df..85f03eddd9e 100644 --- a/admin/core/components/instance/setup-form.tsx +++ b/admin/core/components/instance/setup-form.tsx @@ -135,10 +135,10 @@ export const InstanceSetupForm: FC = (props) => {

- Setup your Plane Instance + Setup your ReyFlow Instance

- Post setup you will be able to manage this Plane instance. + Post setup you will be able to manage this ReyFlow instance.

@@ -332,7 +332,7 @@ export const InstanceSetupForm: FC = (props) => { className="text-sm text-onboarding-text-300 font-medium cursor-pointer" htmlFor="is_telemetry_enabled" > - Allow Plane to anonymously collect usage events. + Allow ReyFlow to anonymously collect usage events. {

- Manage your Plane instance + Manage your ReyFlow instance

Configure instance-wide settings to secure your instance diff --git a/admin/core/components/new-user-popup.tsx b/admin/core/components/new-user-popup.tsx index 0b974b38c5d..6a1a0823384 100644 --- a/admin/core/components/new-user-popup.tsx +++ b/admin/core/components/new-user-popup.tsx @@ -27,7 +27,7 @@ export const NewUserPopup: React.FC = observer(() => {

Create workspace
- Instance setup done! Welcome to Plane instance portal. Start your journey with by creating your first + Instance setup done! Welcome to ReyFlow instance portal. Start your journey with by creating your first workspace.
@@ -44,7 +44,7 @@ export const NewUserPopup: React.FC = observer(() => { src={resolveGeneralTheme(resolvedTheme) === "dark" ? TakeoffIconDark : TakeoffIconLight} height={80} width={80} - alt="Plane icon" + alt="ReyFlow icon" />
diff --git a/admin/core/layouts/default-layout.tsx b/admin/core/layouts/default-layout.tsx index 1be40ea1296..e4e806c5449 100644 --- a/admin/core/layouts/default-layout.tsx +++ b/admin/core/layouts/default-layout.tsx @@ -29,13 +29,13 @@ export const DefaultLayout: FC = (props) => {
- Plane logo + ReyFlow logo
{!withoutBackground && (
- Plane background pattern + ReyFlow background pattern
)}
{children}
diff --git a/admin/core/lib/auth-helpers.tsx b/admin/core/lib/auth-helpers.tsx index 582b56e298c..88c8daf95d6 100644 --- a/admin/core/lib/auth-helpers.tsx +++ b/admin/core/lib/auth-helpers.tsx @@ -122,7 +122,7 @@ export const getBaseAuthenticationModes: (props: TGetBaseAuthenticationModeProps key: "unique-codes", name: "Unique codes", description: - "Log in or sign up for Plane using codes sent via email. You need to have set up SMTP to use this method.", + "Log in or sign up for ReyFlow using codes sent via email. You need to have set up SMTP to use this method.", icon: , config: , }, @@ -136,14 +136,14 @@ export const getBaseAuthenticationModes: (props: TGetBaseAuthenticationModeProps { key: "google", name: "Google", - description: "Allow members to log in or sign up for Plane with their Google accounts.", + description: "Allow members to log in or sign up for ReyFlow with their Google accounts.", icon: Google Logo, config: , }, { key: "github", name: "GitHub", - description: "Allow members to log in or sign up for Plane with their GitHub accounts.", + description: "Allow members to log in or sign up for ReyFlow with their GitHub accounts.", icon: ( { useEffect(() => { if (title) { - document.title = title ?? "ReyFlow | Simple, extensible, open-source project management tool."; + document.title = title ?? "ReyFlow | Simple and extensible project management tool."; } }, [title]); }; diff --git a/space/app/error.tsx b/space/app/error.tsx index 1f9e1ca1976..0dca3b2a32e 100644 --- a/space/app/error.tsx +++ b/space/app/error.tsx @@ -14,7 +14,7 @@ const ErrorPage = () => {

Yikes! That doesn{"'"}t look good.

- That crashed Plane, pun intended. No worries, though. Our engineers have been notified. If you have more + That crashed ReyFlow, pun intended. No worries, though. Our engineers have been notified. If you have more details, please write to{" "} support@plane.so diff --git a/space/app/issues/[anchor]/layout.tsx b/space/app/issues/[anchor]/layout.tsx index 91631d6c0b7..db6a92efefd 100644 --- a/space/app/issues/[anchor]/layout.tsx +++ b/space/app/issues/[anchor]/layout.tsx @@ -11,8 +11,8 @@ type Props = { export async function generateMetadata({ params }: Props) { const { anchor } = params; - const DEFAULT_TITLE = "Plane"; - const DEFAULT_DESCRIPTION = "Made with Plane, an AI-powered work management platform with publishing capabilities."; + const DEFAULT_TITLE = "ReyFlow"; + const DEFAULT_DESCRIPTION = "Made with ReyFlow, an AI-powered work management platform with publishing capabilities."; try { const response = await fetch(`${process.env.NEXT_PUBLIC_API_BASE_URL}/api/public/anchor/${anchor}/meta/`); const data = await response.json(); diff --git a/space/app/layout.tsx b/space/app/layout.tsx index 60a7287eb1c..47ca9cdddf7 100644 --- a/space/app/layout.tsx +++ b/space/app/layout.tsx @@ -7,11 +7,11 @@ import "@/styles/globals.css"; import { AppProvider } from "./provider"; export const metadata: Metadata = { - title: "Plane Publish | Make your Plane boards public with one-click", - description: "Plane Publish is a customer feedback management tool built on top of plane.so", + title: "ReyFlow Publish | Make your ReyFlow boards public with one-click", + description: "ReyFlow Publish is a customer feedback management tool built on top of plane.so", openGraph: { - title: "Plane Publish | Make your Plane boards public with one-click", - description: "Plane Publish is a customer feedback management tool built on top of plane.so", + title: "ReyFlow Publish | Make your ReyFlow boards public with one-click", + description: "ReyFlow Publish is a customer feedback management tool built on top of plane.so", url: "https://sites.plane.so/", }, keywords: diff --git a/space/app/views/[anchor]/layout.tsx b/space/app/views/[anchor]/layout.tsx index 57b2971c4c3..e8c91a80916 100644 --- a/space/app/views/[anchor]/layout.tsx +++ b/space/app/views/[anchor]/layout.tsx @@ -7,7 +7,7 @@ import { LogoSpinner, PoweredBy } from "@/components/common"; import { SomethingWentWrongError } from "@/components/issues/issue-layouts/error"; // hooks import { usePublish, usePublishList } from "@/hooks/store"; -// Plane web +// ReyFlow web import { ViewNavbarRoot } from "@/plane-web/components/navbar"; import { useView } from "@/plane-web/hooks/store"; diff --git a/space/core/components/account/auth-forms/auth-header.tsx b/space/core/components/account/auth-forms/auth-header.tsx index 95a539ddfc2..d13134d46b5 100644 --- a/space/core/components/account/auth-forms/auth-header.tsx +++ b/space/core/components/account/auth-forms/auth-header.tsx @@ -25,7 +25,7 @@ const Titles: TAuthHeaderDetails = { }, [EAuthModes.SIGN_UP]: { header: "View, comment, and do more", - subHeader: "Sign up or log in to work with Plane work items and Pages.", + subHeader: "Sign up or log in to work with ReyFlow work items and Pages.", }, }; diff --git a/space/core/components/account/user-logged-in.tsx b/space/core/components/account/user-logged-in.tsx index 0993ade9208..d8b29b8f4f6 100644 --- a/space/core/components/account/user-logged-in.tsx +++ b/space/core/components/account/user-logged-in.tsx @@ -27,7 +27,7 @@ export const UserLoggedIn = observer(() => {

- Plane logo + ReyFlow logo
diff --git a/space/core/components/common/powered-by.tsx b/space/core/components/common/powered-by.tsx index 654089c55c3..4e9b2bf1814 100644 --- a/space/core/components/common/powered-by.tsx +++ b/space/core/components/common/powered-by.tsx @@ -24,10 +24,10 @@ export const PoweredBy: FC = (props) => { rel="noreferrer noopener" >
- Plane logo + ReyFlow logo
- Powered by Plane Publish + Powered by ReyFlow Publish
); diff --git a/space/core/components/instance/instance-failure-view.tsx b/space/core/components/instance/instance-failure-view.tsx index ed4c36f3558..af7465eea1c 100644 --- a/space/core/components/instance/instance-failure-view.tsx +++ b/space/core/components/instance/instance-failure-view.tsx @@ -21,7 +21,7 @@ export const InstanceFailureView: FC = () => {
- Plane instance failure image + ReyFlow instance failure image

Unable to fetch instance details.

We were unable to fetch the details of the instance.
diff --git a/space/core/components/views/auth.tsx b/space/core/components/views/auth.tsx index 39d830a92a2..5ad36c27258 100644 --- a/space/core/components/views/auth.tsx +++ b/space/core/components/views/auth.tsx @@ -26,14 +26,14 @@ export const AuthView = observer(() => { Plane background pattern

- Plane logo + ReyFlow logo
diff --git a/space/core/lib/instance-provider.tsx b/space/core/lib/instance-provider.tsx index 06056364f37..d77ec698d88 100644 --- a/space/core/lib/instance-provider.tsx +++ b/space/core/lib/instance-provider.tsx @@ -51,12 +51,12 @@ export const InstanceProvider = observer(({ children }: { children: ReactNode })
- Plane logo + ReyFlow logo
- Plane background pattern + ReyFlow background pattern
diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/inbox/page.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/inbox/page.tsx index 5cb8509e0a3..2c6f7f0621c 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/inbox/page.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/inbox/page.tsx @@ -56,7 +56,7 @@ const ProjectInboxPage = observer(() => { workspace: currentProjectDetails?.name, }) : t("inbox_issue.page_label", { - workspace: "Plane", + workspace: "ReyFlow", }); const currentNavigationTab = navigationTab diff --git a/web/app/accounts/forgot-password/layout.tsx b/web/app/accounts/forgot-password/layout.tsx index 7ba8e8ded61..94d09944e58 100644 --- a/web/app/accounts/forgot-password/layout.tsx +++ b/web/app/accounts/forgot-password/layout.tsx @@ -1,7 +1,7 @@ import { Metadata } from "next"; export const metadata: Metadata = { - title: "Forgot Password - Plane", + title: "Forgot Password - ReyFlow", }; export default function ForgotPasswordLayout({ children }: { children: React.ReactNode }) { diff --git a/web/app/accounts/forgot-password/page.tsx b/web/app/accounts/forgot-password/page.tsx index 22a241db659..3d32c9561c6 100644 --- a/web/app/accounts/forgot-password/page.tsx +++ b/web/app/accounts/forgot-password/page.tsx @@ -102,14 +102,14 @@ const ForgotPasswordPage = observer(() => { Plane background pattern
- Plane logo + ReyFlow logo
diff --git a/web/app/accounts/reset-password/layout.tsx b/web/app/accounts/reset-password/layout.tsx index dbc0a29b4b3..abf56ac5766 100644 --- a/web/app/accounts/reset-password/layout.tsx +++ b/web/app/accounts/reset-password/layout.tsx @@ -1,7 +1,7 @@ import { Metadata } from "next"; export const metadata: Metadata = { - title: "Reset Password - Plane", + title: "Reset Password - ReyFlow", }; export default function ResetPasswordLayout({ children }: { children: React.ReactNode }) { diff --git a/web/app/accounts/reset-password/page.tsx b/web/app/accounts/reset-password/page.tsx index e0230f205f5..24e9c29d90f 100644 --- a/web/app/accounts/reset-password/page.tsx +++ b/web/app/accounts/reset-password/page.tsx @@ -115,14 +115,14 @@ const ResetPasswordPage = observer(() => { Plane background pattern
- Plane logo + ReyFlow logo
diff --git a/web/app/accounts/set-password/layout.tsx b/web/app/accounts/set-password/layout.tsx index dbd32e9e8c1..43a2c21defb 100644 --- a/web/app/accounts/set-password/layout.tsx +++ b/web/app/accounts/set-password/layout.tsx @@ -1,7 +1,7 @@ import { Metadata } from "next"; export const metadata: Metadata = { - title: "Set Password - Plane", + title: "Set Password - ReyFlow", }; export default function SetPasswordLayout({ children }: { children: React.ReactNode }) { diff --git a/web/app/accounts/set-password/page.tsx b/web/app/accounts/set-password/page.tsx index 5bfa7c08f5f..937ccfb1d2a 100644 --- a/web/app/accounts/set-password/page.tsx +++ b/web/app/accounts/set-password/page.tsx @@ -117,14 +117,14 @@ const SetPasswordPage = observer(() => { Plane background pattern
- Plane logo + ReyFlow logo
diff --git a/web/app/create-workspace/page.tsx b/web/app/create-workspace/page.tsx index 8425320345a..90529d85419 100644 --- a/web/app/create-workspace/page.tsx +++ b/web/app/create-workspace/page.tsx @@ -68,7 +68,7 @@ const CreateWorkspacePage = observer(() => { href="/" >
- Plane logo + ReyFlow logo
diff --git a/web/app/error.tsx b/web/app/error.tsx index b176799b4d3..0590132d5f1 100644 --- a/web/app/error.tsx +++ b/web/app/error.tsx @@ -42,7 +42,7 @@ export default function CustomErrorComponent() {

Yikes! That doesn{"'"}t look good.

- That crashed Plane, pun intended. No worries, though. Our engineers have been notified. If you have more + That crashed ReyFlow, pun intended. No worries, though. Our engineers have been notified. If you have more details, please write to{" "} support@plane.so diff --git a/web/app/invitations/page.tsx b/web/app/invitations/page.tsx index df6befa6869..36269af9452 100644 --- a/web/app/invitations/page.tsx +++ b/web/app/invitations/page.tsx @@ -140,7 +140,7 @@ const UserInvitationsPage = observer(() => { className="absolute left-5 top-1/2 grid -translate-y-1/2 place-items-center bg-custom-background-100 px-3 sm:left-1/2 sm:top-12 sm:-translate-x-[15px] sm:translate-y-0 sm:px-0 sm:py-5 md:left-1/3 z-10" >

diff --git a/web/app/layout.tsx b/web/app/layout.tsx index 43b9bffeaa3..302b97185a7 100644 --- a/web/app/layout.tsx +++ b/web/app/layout.tsx @@ -14,11 +14,11 @@ import { API_BASE_URL, cn } from "@/helpers/common.helper"; import { AppProvider } from "./provider"; export const metadata: Metadata = { - title: "ReyFlow | Simple, extensible, open-source project management tool.", + title: "ReyFlow | Simple and extensible project management tool.", description: SITE_DESCRIPTION, openGraph: { - title: "ReyFlow | Simple, extensible, open-source project management tool.", - description: "Open-source project management tool to manage work items, cycles, and product roadmaps easily", + title: "ReyFlow | Simple and extensible project management tool.", + description: "Extensible project management tool to manage work items, cycles, and product roadmaps easily", url: "https://app.plane.so/", }, keywords: diff --git a/web/app/page.tsx b/web/app/page.tsx index f63845fcb9c..98d284d9b11 100644 --- a/web/app/page.tsx +++ b/web/app/page.tsx @@ -40,19 +40,19 @@ const HomePage = observer(() => { <>
- +
Plane background pattern
- Plane logo + ReyFlow logo
diff --git a/web/app/provider.tsx b/web/app/provider.tsx index b120882f7d1..63d922729a1 100644 --- a/web/app/provider.tsx +++ b/web/app/provider.tsx @@ -4,7 +4,7 @@ import { FC, ReactNode } from "react"; import dynamic from "next/dynamic"; import { useTheme, ThemeProvider } from "next-themes"; import { SWRConfig } from "swr"; -// Plane Imports +// ReyFlow Imports import { WEB_SWR_CONFIG } from "@plane/constants"; import { TranslationProvider } from "@plane/i18n"; import { Toast } from "@plane/ui"; diff --git a/web/app/sign-up/layout.tsx b/web/app/sign-up/layout.tsx index f7f405c2798..bc17b0253c4 100644 --- a/web/app/sign-up/layout.tsx +++ b/web/app/sign-up/layout.tsx @@ -1,7 +1,7 @@ import { Metadata } from "next"; export const metadata: Metadata = { - title: "Sign up - Plane", + title: "Sign up - ReyFlow", }; export default function SignUpLayout({ children }: { children: React.ReactNode }) { diff --git a/web/app/sign-up/page.tsx b/web/app/sign-up/page.tsx index aa18cf085a8..71e00a857ae 100644 --- a/web/app/sign-up/page.tsx +++ b/web/app/sign-up/page.tsx @@ -40,14 +40,14 @@ const SignInPage = observer(() => { Plane background pattern
- Plane logo + ReyFlow logo
diff --git a/web/app/workspace-invitations/page.tsx b/web/app/workspace-invitations/page.tsx index 8d981fff42d..1bcd43ff43d 100644 --- a/web/app/workspace-invitations/page.tsx +++ b/web/app/workspace-invitations/page.tsx @@ -82,7 +82,7 @@ const WorkspaceInvitationPage = observer(() => { ) : ( @@ -92,14 +92,14 @@ const WorkspaceInvitationPage = observer(() => { invitationDetail?.accepted ? ( ) : ( {!currentUser ? ( diff --git a/web/ce/components/global/product-updates-header.tsx b/web/ce/components/global/product-updates-header.tsx index 5274ab5c149..7cc824c9c34 100644 --- a/web/ce/components/global/product-updates-header.tsx +++ b/web/ce/components/global/product-updates-header.tsx @@ -23,7 +23,7 @@ export const ProductUpdatesHeader = observer(() => {
- Plane + ReyFlow
); diff --git a/web/ce/components/instance/maintenance-message.tsx b/web/ce/components/instance/maintenance-message.tsx index a55d7d149ff..c4ab72a35ca 100644 --- a/web/ce/components/instance/maintenance-message.tsx +++ b/web/ce/components/instance/maintenance-message.tsx @@ -1,6 +1,6 @@ export const MaintenanceMessage = () => (

- Plane didn't start up. This could be because one or more Plane services failed to start.
Choose View + ReyFlow didn't start up. This could be because one or more ReyFlow services failed to start.
Choose View Logs from setup.sh and Docker logs to be sure.

); diff --git a/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx b/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx index b4f68028d84..1c8a9eae006 100644 --- a/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx +++ b/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx @@ -18,7 +18,7 @@ export const IssueEmbedUpgradeCard: React.FC = (props) => (

- Embed and access work items in pages seamlessly, upgrade to Plane Pro now. + Embed and access work items in pages seamlessly, upgrade to ReyFlow Pro now.

= (props) => {
-
Plane One
+
ReyFlow One
$799
for two years’ support and updates
diff --git a/web/ce/components/workspace/upgrade/paid-plans-upgrade-modal.tsx b/web/ce/components/workspace/upgrade/paid-plans-upgrade-modal.tsx index 88201af63c0..5bcf74958b3 100644 --- a/web/ce/components/workspace/upgrade/paid-plans-upgrade-modal.tsx +++ b/web/ce/components/workspace/upgrade/paid-plans-upgrade-modal.tsx @@ -15,7 +15,7 @@ const PRO_PLAN_FEATURES = [ "Workflow manager", "Automations", "Popular integrations", - "Plane AI", + "ReyFlow AI", ]; const ONE_PLAN_FEATURES = [ diff --git a/web/ce/components/workspace/upgrade/pro-plan-upgrade.tsx b/web/ce/components/workspace/upgrade/pro-plan-upgrade.tsx index 814c43095d6..05714c5237e 100644 --- a/web/ce/components/workspace/upgrade/pro-plan-upgrade.tsx +++ b/web/ce/components/workspace/upgrade/pro-plan-upgrade.tsx @@ -83,7 +83,7 @@ export const ProPlanUpgrade: FC = (props) => { {PRO_PLAN_PRICES.map((price: TProPlanPrice) => (
-
Plane Pro
+
ReyFlow Pro
{price.currency} {price.price} diff --git a/web/core/components/command-palette/actions/help-actions.tsx b/web/core/components/command-palette/actions/help-actions.tsx index 49a8887981f..34ce93104e9 100644 --- a/web/core/components/command-palette/actions/help-actions.tsx +++ b/web/core/components/command-palette/actions/help-actions.tsx @@ -40,7 +40,7 @@ export const CommandPaletteHelpActions: React.FC = observer((props) => { >
- Open Plane documentation + Open ReyFlow documentation
= observer((props) => { return ( <> {customUserName || actorDetail?.display_name.includes("-intake") ? ( - {customUserName || "Plane"} + {customUserName || "ReyFlow"} ) : ( {
Plane Work items {

Overview of your projects, activity, and metrics

- Welcome to Plane, we are excited to have you here. Create your first project and track your work items, and this + Welcome to ReyFlow, we are excited to have you here. Create your first project and track your work items, and this page will transform into a space that helps you progress. Admins will also see items which help their team progress.

diff --git a/web/core/components/dropdowns/state.tsx b/web/core/components/dropdowns/state.tsx index 9af77dd7e1b..159e40bbcb3 100644 --- a/web/core/components/dropdowns/state.tsx +++ b/web/core/components/dropdowns/state.tsx @@ -14,7 +14,7 @@ import { cn } from "@/helpers/common.helper"; // hooks import { useProjectState } from "@/hooks/store"; import { useDropdown } from "@/hooks/use-dropdown"; -// Plane-web +// ReyFlow-web import { StateOption } from "@/plane-web/components/workflow"; // components import { DropdownButton } from "./buttons"; diff --git a/web/core/components/gantt-chart/helpers/draggable.tsx b/web/core/components/gantt-chart/helpers/draggable.tsx index a19b19f634e..328d49dc7e5 100644 --- a/web/core/components/gantt-chart/helpers/draggable.tsx +++ b/web/core/components/gantt-chart/helpers/draggable.tsx @@ -4,7 +4,7 @@ import { observer } from "mobx-react"; import { IGanttBlock } from "@/components/gantt-chart"; // helpers import { cn } from "@/helpers/common.helper"; -// Plane-web +// ReyFlow-web import { LeftDependencyDraggable, RightDependencyDraggable } from "@/plane-web/components/gantt-chart"; // import { LeftResizable } from "./blockResizables/left-resizable"; diff --git a/web/core/components/gantt-chart/sidebar/modules/block.tsx b/web/core/components/gantt-chart/sidebar/modules/block.tsx index fb8eaf48183..7ea5610b69b 100644 --- a/web/core/components/gantt-chart/sidebar/modules/block.tsx +++ b/web/core/components/gantt-chart/sidebar/modules/block.tsx @@ -1,5 +1,5 @@ import { observer } from "mobx-react"; -// Plane +// ReyFlow import { Row } from "@plane/ui"; // components import { BLOCK_HEIGHT } from "@/components/gantt-chart/constants"; diff --git a/web/core/components/global/product-updates/footer.tsx b/web/core/components/global/product-updates/footer.tsx index 5d402e85eef..2967f12d4c9 100644 --- a/web/core/components/global/product-updates/footer.tsx +++ b/web/core/components/global/product-updates/footer.tsx @@ -58,7 +58,7 @@ export const ProductUpdatesFooter = () => { "flex gap-1.5 items-center text-center font-medium hover:underline underline-offset-2 outline-none" )} > - Plane + ReyFlow {t("powered_by_plane_pages")}
diff --git a/web/core/components/inbox/sidebar/inbox-list-item.tsx b/web/core/components/inbox/sidebar/inbox-list-item.tsx index 6762c25280d..96c2e5fcc4d 100644 --- a/web/core/components/inbox/sidebar/inbox-list-item.tsx +++ b/web/core/components/inbox/sidebar/inbox-list-item.tsx @@ -118,7 +118,7 @@ export const InboxIssueListItem: FC = observer((props)
{/* created by */} {createdByDetails && createdByDetails.email?.includes("intake@plane.so") ? ( - + ) : createdByDetails ? ( ) : null} diff --git a/web/core/components/instance/not-ready-view.tsx b/web/core/components/instance/not-ready-view.tsx index 8d317634a84..93bf5ca16fd 100644 --- a/web/core/components/instance/not-ready-view.tsx +++ b/web/core/components/instance/not-ready-view.tsx @@ -27,21 +27,21 @@ export const InstanceNotReady: FC = () => {
- Plane logo + ReyFlow logo
- Plane background pattern + ReyFlow background pattern
-

Welcome aboard Plane!

- Plane Logo +

Welcome aboard ReyFlow!

+ ReyFlow Logo

Get started by setting up your instance and workspace

diff --git a/web/core/components/integration/guide.tsx b/web/core/components/integration/guide.tsx index 7cce8df8602..0a6fc931b80 100644 --- a/web/core/components/integration/guide.tsx +++ b/web/core/components/integration/guide.tsx @@ -83,7 +83,7 @@ const IntegrationGuide = observer(() => {
Relocation Guide
You can now transfer all the work items that you{"'"}ve created in other tracking - services. This tool will guide you to relocate the work item to Plane. + services. This tool will guide you to relocate the work item to ReyFlow.
= observer((p } activityId={activityId} ends={ends} - customUserName={activity.new_value === "archive" ? "Plane" : undefined} + customUserName={activity.new_value === "archive" ? "ReyFlow" : undefined} > {activity.new_value === "restore" ? "restored the work item" : "archived the work item"}. diff --git a/web/core/components/issues/issue-detail/issue-activity/activity/actions/relation.tsx b/web/core/components/issues/issue-detail/issue-activity/activity/actions/relation.tsx index d1ceb8f8878..4c8b3994f94 100644 --- a/web/core/components/issues/issue-detail/issue-activity/activity/actions/relation.tsx +++ b/web/core/components/issues/issue-detail/issue-activity/activity/actions/relation.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks import { useIssueDetail } from "@/hooks/store"; -// Plane-web +// ReyFlow-web import { getRelationActivityContent, useTimeLineRelationOptions } from "@/plane-web/components/relations"; import { TIssueRelationTypes } from "@/plane-web/types"; // diff --git a/web/core/components/issues/issue-detail/relation-select.tsx b/web/core/components/issues/issue-detail/relation-select.tsx index 86fde40eb3f..c2ad63afdf1 100644 --- a/web/core/components/issues/issue-detail/relation-select.tsx +++ b/web/core/components/issues/issue-detail/relation-select.tsx @@ -4,7 +4,7 @@ import React from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import { CircleDot, CopyPlus, Pencil, X, XCircle } from "lucide-react"; -// Plane +// ReyFlow import { ISearchIssueResponse } from "@plane/types"; import { RelatedIcon, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; // components @@ -15,7 +15,7 @@ import { generateWorkItemLink } from "@/helpers/issue.helper"; // hooks import { useIssueDetail, useIssues, useProject } from "@/hooks/store"; import { usePlatformOS } from "@/hooks/use-platform-os"; -// Plane-web +// ReyFlow-web import { useTimeLineRelationOptions } from "@/plane-web/components/relations"; import { TIssueRelationTypes } from "@/plane-web/types"; // diff --git a/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx b/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx index 77d6a08aa34..b78ae7b35ee 100644 --- a/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx +++ b/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx @@ -17,7 +17,7 @@ import { useEventTracker } from "@/hooks/store"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { CreateUpdateEpicModal } from "@/plane-web/components/epics/epic-modal"; // types -// Plane-web +// ReyFlow-web import { WorkFlowGroupTree } from "@/plane-web/components/workflow"; interface IHeaderGroupByCard { diff --git a/web/core/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx b/web/core/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx index 08620d40da0..ab8767ab891 100644 --- a/web/core/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx +++ b/web/core/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx @@ -1,9 +1,9 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; import { Circle, ChevronDown, ChevronUp } from "lucide-react"; -// Plane +// ReyFlow import { TIssueGroupByOptions, TIssueKanbanFilters } from "@plane/types"; -// Plane-web +// ReyFlow-web import { WorkFlowGroupTree } from "@/plane-web/components/workflow"; // mobx diff --git a/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx b/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx index 02ae41d6adf..e66b3b9efe6 100644 --- a/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx +++ b/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx @@ -29,7 +29,7 @@ import { cn } from "@/helpers/common.helper"; import { useProjectState } from "@/hooks/store"; import { useIntersectionObserver } from "@/hooks/use-intersection-observer"; import { useIssuesStore } from "@/hooks/use-issue-layout-store"; -// Plane-web +// ReyFlow-web import { useWorkFlowFDragNDrop } from "@/plane-web/components/workflow"; // import { GroupDragOverlay } from "../group-drag-overlay"; diff --git a/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx b/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx index 4ba02698918..a03767f29b5 100644 --- a/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx +++ b/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx @@ -20,7 +20,7 @@ import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; // plane-web import { CreateUpdateEpicModal } from "@/plane-web/components/epics/epic-modal"; -// Plane-web +// ReyFlow-web import { WorkFlowGroupTree } from "@/plane-web/components/workflow"; interface IHeaderGroupByCard { diff --git a/web/core/components/issues/issue-layouts/list/list-group.tsx b/web/core/components/issues/issue-layouts/list/list-group.tsx index 99fa9de99c2..6d7c5cc9507 100644 --- a/web/core/components/issues/issue-layouts/list/list-group.tsx +++ b/web/core/components/issues/issue-layouts/list/list-group.tsx @@ -28,7 +28,7 @@ import { useProjectState } from "@/hooks/store"; import { useIntersectionObserver } from "@/hooks/use-intersection-observer"; import { useIssuesStore } from "@/hooks/use-issue-layout-store"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; -// Plane-web +// ReyFlow-web import { useWorkFlowFDragNDrop } from "@/plane-web/components/workflow"; // import { GroupDragOverlay } from "../group-drag-overlay"; diff --git a/web/core/components/issues/peek-overview/properties.tsx b/web/core/components/issues/peek-overview/properties.tsx index e3e5d514564..6beb552f371 100644 --- a/web/core/components/issues/peek-overview/properties.tsx +++ b/web/core/components/issues/peek-overview/properties.tsx @@ -136,7 +136,7 @@ export const PeekOverviewProperties: FC = observer((pro userIds={createdByDetails?.display_name.includes("-intake") ? null : createdByDetails?.id} /> - {createdByDetails?.display_name.includes("-intake") ? "Plane" : createdByDetails?.display_name} + {createdByDetails?.display_name.includes("-intake") ? "ReyFlow" : createdByDetails?.display_name}
diff --git a/web/core/components/issues/relations/issue-list-item.tsx b/web/core/components/issues/relations/issue-list-item.tsx index c90d8c1a896..4f1df3a8fb0 100644 --- a/web/core/components/issues/relations/issue-list-item.tsx +++ b/web/core/components/issues/relations/issue-list-item.tsx @@ -3,7 +3,7 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; import { X, Pencil, Trash, Link as LinkIcon } from "lucide-react"; -// Plane +// ReyFlow import { EIssueServiceType } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { TIssue, TIssueServiceType } from "@plane/types"; diff --git a/web/core/components/issues/relations/issue-list.tsx b/web/core/components/issues/relations/issue-list.tsx index f27c068cb56..99f2d1f8f88 100644 --- a/web/core/components/issues/relations/issue-list.tsx +++ b/web/core/components/issues/relations/issue-list.tsx @@ -1,12 +1,12 @@ "use client"; import React, { FC } from "react"; import { observer } from "mobx-react"; -// Plane +// ReyFlow import { EIssueServiceType } from "@plane/constants"; import { TIssue, TIssueServiceType } from "@plane/types"; // components import { RelationIssueListItem } from "@/components/issues/relations"; -// Plane-web +// ReyFlow-web import { TIssueRelationTypes } from "@/plane-web/types"; type Props = { diff --git a/web/core/components/onboarding/header.tsx b/web/core/components/onboarding/header.tsx index 8718ae18249..49526d3253d 100644 --- a/web/core/components/onboarding/header.tsx +++ b/web/core/components/onboarding/header.tsx @@ -16,7 +16,7 @@ export const OnboardingHeader: FC = (props) => { return (
- Plane Logo + ReyFlow Logo
diff --git a/web/core/components/onboarding/invite-members.tsx b/web/core/components/onboarding/invite-members.tsx index 34887be715b..6766e186c2d 100644 --- a/web/core/components/onboarding/invite-members.tsx +++ b/web/core/components/onboarding/invite-members.tsx @@ -377,7 +377,7 @@ export const InviteMembers: React.FC = (props) => {

Invite your teammates

- Work in plane happens best with your team. Invite them now to use Plane to its potential. + Work in plane happens best with your team. Invite them now to use ReyFlow to its potential.

= observer((props) => {

{isCurrentStepUserPersonalization ? `Looking good${user?.first_name && `, ${user.first_name}`}!` - : "Welcome to Plane!"} + : "Welcome to ReyFlow!"}

{isCurrentStepUserPersonalization - ? "Let’s personalize Plane for you." + ? "Let’s personalize ReyFlow for you." : "Let’s setup your profile, tell us a bit about yourself."}

diff --git a/web/core/components/onboarding/tour/root.tsx b/web/core/components/onboarding/tour/root.tsx index 2c49934159e..4bff4250afe 100644 --- a/web/core/components/onboarding/tour/root.tsx +++ b/web/core/components/onboarding/tour/root.tsx @@ -40,7 +40,7 @@ const TOUR_STEPS: { key: "issues", title: "Plan with work items", description: - "The work item is the building block of the Plane. Most concepts in Plane are either associated with issues and their properties.", + "The work item is the building block of the ReyFlow. Most concepts in ReyFlow are either associated with issues and their properties.", image: IssuesTour, nextStep: "cycles", }, @@ -97,14 +97,14 @@ export const TourRoot: React.FC = observer((props) => {
- Plane White Logo + ReyFlow White Logo

- Welcome to Plane, {currentUser?.first_name} {currentUser?.last_name} + Welcome to ReyFlow, {currentUser?.first_name} {currentUser?.last_name}

- We{"'"}re glad that you decided to try out Plane. You can now manage your projects with ease. Get + We{"'"}re glad that you decided to try out ReyFlow. You can now manage your projects with ease. Get started by creating a project.

diff --git a/web/core/components/onboarding/tour/sidebar.tsx b/web/core/components/onboarding/tour/sidebar.tsx index 8668b95d01b..a7e0b743a42 100644 --- a/web/core/components/onboarding/tour/sidebar.tsx +++ b/web/core/components/onboarding/tour/sidebar.tsx @@ -42,7 +42,7 @@ export const TourSidebar: React.FC = ({ step, setStep }) => (

Let{"'"}s get started!
- Get more out of Plane. + Get more out of ReyFlow.

{sidebarOptions.map((option) => ( diff --git a/web/core/components/profile/activity/activity-list.tsx b/web/core/components/profile/activity/activity-list.tsx index 671fd9dc27f..2f5a783c83b 100644 --- a/web/core/components/profile/activity/activity-list.tsx +++ b/web/core/components/profile/activity/activity-list.tsx @@ -142,7 +142,7 @@ export const ActivityList: React.FC = observer((props) => {
{activityItem.field === "archived_at" && activityItem.new_value !== "restore" ? ( - Plane + ReyFlow ) : activityItem.actor_detail.is_bot ? ( {activityItem.actor_detail.first_name} Bot ) : ( diff --git a/web/core/components/profile/activity/profile-activity-list.tsx b/web/core/components/profile/activity/profile-activity-list.tsx index 4d10ce2b1e4..3d8381a57cf 100644 --- a/web/core/components/profile/activity/profile-activity-list.tsx +++ b/web/core/components/profile/activity/profile-activity-list.tsx @@ -161,7 +161,7 @@ export const ProfileActivityListPage: React.FC = observer((props) => {
{activityItem.field === "archived_at" && activityItem.new_value !== "restore" ? ( - Plane + ReyFlow ) : activityItem.actor_detail.is_bot ? ( {activityItem.actor_detail.first_name} Bot ) : ( diff --git a/web/core/components/project-states/state-item.tsx b/web/core/components/project-states/state-item.tsx index e3ed07a30c3..91b7b255fcc 100644 --- a/web/core/components/project-states/state-item.tsx +++ b/web/core/components/project-states/state-item.tsx @@ -5,7 +5,7 @@ import { combine } from "@atlaskit/pragmatic-drag-and-drop/combine"; import { draggable, dropTargetForElements } from "@atlaskit/pragmatic-drag-and-drop/element/adapter"; import { attachClosestEdge, extractClosestEdge } from "@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge"; import { observer } from "mobx-react"; -// Plane +// ReyFlow import { TDraggableData } from "@plane/constants"; import { IState, TStateGroups } from "@plane/types"; import { DropIndicator } from "@plane/ui"; diff --git a/web/core/layouts/auth-layout/workspace-wrapper.tsx b/web/core/layouts/auth-layout/workspace-wrapper.tsx index 8ced177dd3f..3be4a97a985 100644 --- a/web/core/layouts/auth-layout/workspace-wrapper.tsx +++ b/web/core/layouts/auth-layout/workspace-wrapper.tsx @@ -150,7 +150,7 @@ export const WorkspaceAuthWrapper: FC = observer((props)
- Plane logo + ReyFlow logo
{currentUser?.email}
@@ -166,7 +166,7 @@ export const WorkspaceAuthWrapper: FC = observer((props)
- Plane logo + ReyFlow logo

Workspace not found

From 2e23c3b56d4d22d3ff35ad28afd0ef88b8ba1050 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 2 Mar 2025 10:24:20 +0100 Subject: [PATCH 27/29] Exposed port for postgres --- docker-compose.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 77c11d6b421..3f36b073549 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -133,6 +133,8 @@ services: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} PGDATA: /var/lib/postgresql/data + ports: + - "5432:5432" plane-redis: container_name: plane-redis @@ -200,4 +202,4 @@ volumes: plane-minio: driver: local ssl_certs: - driver: local \ No newline at end of file + driver: local From 3f5e6397684df15c276c5817c1d4ea92b569eb57 Mon Sep 17 00:00:00 2001 From: ibartsindia Date: Mon, 3 Mar 2025 18:43:08 +0530 Subject: [PATCH 28/29] Updated Favicon --- web/public/favicon/android-chrome-192x192.png | Bin 2222 -> 12715 bytes web/public/favicon/android-chrome-512x512.png | Bin 3832 -> 55178 bytes web/public/favicon/apple-touch-icon.png | Bin 2176 -> 11908 bytes web/public/favicon/favicon-16x16.png | Bin 1625 -> 645 bytes web/public/favicon/favicon-32x32.png | Bin 1617 -> 1329 bytes web/public/favicon/favicon.ico | Bin 919 -> 15406 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/web/public/favicon/android-chrome-192x192.png b/web/public/favicon/android-chrome-192x192.png index 62e95acfc55b0719e3a66c77b211577980dc26a9..deb0a8b573e4c8b0cb5d5eda107ad9f1f3c25bd7 100644 GIT binary patch literal 12715 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 C)#N__ diff --git a/web/public/favicon/android-chrome-512x512.png b/web/public/favicon/android-chrome-512x512.png index 41400832b3142b8085148febc9488408d03cc07d..5c3882ff1a98d5db2ea8ca64a2e2ce771e8b7a46 100644 GIT binary patch literal 55178 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 literal 3832 zcmeHKe{2&~9DjrHV<_Nnrt;%*+aD0Q-j8&dC_;2P$PSC7q5reAji&P?X4DGub7V zd-vYweSd#H@9vrM(&B{+9#{YXSm-WsRRAyx4QGM*bJ62U^yDadWGN-p8UVN5ZQL1P z&)#eR=G-TGtMn?*qbx6nOq?M5peY(s5E_8B1yP0L>!6PLU_g`{_@%?GI3@}XyfV*2 zc@!tC5lb3WxS^rc%Qw{Vb^$L~hpmmWNI(ec92N})C5??b@T6Q8jg4s%$C41e&Vd&i z3b86rIp&mAh*?b(!BZ52+3Y6TYOz?U)fhuD6iMZgG(*rKnOyMNjeuLBrRuBf(vTADk{1tOPC>% z^T}b|fg?*NTnH&?v67Yw6ABm^~jhl?yxxgD?aoT|-zpja6!7 zUDj&ke-NEszD@xOt;dtraYI`|p|lE3FRDjwqyln7wC0T|kgR~399DT)RFBNeF}zV& zrwTb;R=u(uoJ>^tq{$dVn;2|mr6>t=UFTS2ceIEwBU#NcFLE}_$T+fWIk+^z~p}6KkhG6Mbv^^@RsEmjcL>l zTOw*GtFct;Y=B!*qo9Z-%Z255qYWH5Z{!~ecxqa_?0;b7+J;JH5 zFo2?U)4C&(@ubnP6Mm3?buqa%rMV~Jh%t;|nyS!Cn(Uy27*0i0HavbXf>?8>+g0d| z?!DO6TH6D&kDop7>8a``h8Ji2w9>n@asJSvbLCm3&(_UdQuf9x#l0twe$v~Yi=i824Fju0YKplV0y*j)S-E8*3okp4t&&lO}vzdFT0G#E{^`bB2sYL zv8Uz9=k5f`oNH^VTeglx!}*Q#j#SkTb!=+;JeDz&)9F;(UpFLxY3R`5&Y`jJdm7a^ zk6#*Z-kRSqa;3d%O?KZm&4-^JS@F)9{VlUUd;xriw~l>!H8I@x?b-OU=Z6O$ye6%S zp8x*%p$K*C<85pv*tl=WOb<^Vs%lHbs73&~;r+Oz!}F6 zSJlL#W4~Sf;^)^ZZ70T2Mz{PiFwptt$fnWS#3Ga5(Fk7CE({I^6LZHGzbmg8dcuOr z<4Cw~tpC@t`WO9|wuk!W%rNsbI-x2@HYdRLrpG#$gYF+sb#!zc9si{}yRRosgqwq3 v?K;gUu_jpUmjT#k?z(;EO#R<|Ta3?M6)y9&m*=z_|EBJuQrE%tn|J&Pm-{+X diff --git a/web/public/favicon/apple-touch-icon.png b/web/public/favicon/apple-touch-icon.png index 5273d4951dbcf125f8f21386422af21adaa1b609..1cf774b8ae6b992831f0526f1ba6cd311ca1c1dc 100644 GIT binary patch literal 11908 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 B1vCHv diff --git a/web/public/favicon/favicon-16x16.png b/web/public/favicon/favicon-16x16.png index 8ddbd49c043e06b87fe4c980588a8cba97bfe94e..114f936d0e9b2ae16878694c7a12af6767b9be21 100644 GIT binary patch delta 620 zcmV-y0+apO421=dB!2;OQb$4nuFf3k0006%Nkl$e zgcw8GQmeET3k3yBn;v4o25Kxwum%J_@G5u_a`58EK}|3;;vR%bZ4b50%?jGs5ZOr5 zmbT=kR4|*YL^J8m?vq&)$-)X;eP-h?73AI03ZMwo2{0= z_A@GhLJPoXY1ww<+&)0q1*n}(K0Exbju?Q`*MH~$0(@4=-%|>ewz6u$qSE5Jb$@3F z5N&|uUOL`-*MAf^b?ut~hyg-CoPTntqcLjx@Oz1X4ur*5y?0E3u25bF0EoB{wHtsI z-=qW_AY?Q*asIg}(0OG^K%M|VOvT&=!08!FT8JfOU8lFx>5yUyoV+Xw0LW{QY1-|w zF)BBy8zo>=239S~it_XR@}xid-!7cE^hrR__!ctOy?^ZvMoU(;%6~4^UKthT*O|4M z;GAiK| zU*rLy8G$@dHI`bN4JP=!;Vx|E`X2MdZy;(dD>K0mU;hVQCK(`3U>=$P0000Fqy>wanKQGqyP0FgxYE0q{BiG8hxx|_*ElwBI0ALrN)c1i|EP;P%p-Zff?S*^&}dz^?nG+57&dI(5Ap9V*6vm` zcN0!0M!0Q_D*DqJcG#v9&ZVR5*=_0P=otJiol0bTUeNytg1)vbd#1T_pMgEA_MdoN zpa0>Lvnbua>C}stkMbW)>su0S7v9ZHKz}CMzE?TRd_RRgJ+!o3c^up;0RWssSLSEF z{%Ns|uH!R%ySKh!&lWc*U!A<`rOhwTZhUR`lh1hHd|Sxna-)ZTzxDXRGu=;}zU{#2 zbyS946zE3B!2;OQb$4nuFf3k000E*Nkl zAfZXiM=PZX2qA_<1Vb50K*5sm)l!MX5cokf@t5*f6Qf`#Un#I{Fo7bi7Ft3g79|Qa z0Rv&71vUl~O~hgac6Vmy-g|U*x3II@9oU9Af9~wuo4L=t=YQPuo+YGRWeX23);#C{ zn3%b_udAUhea+MSO&I|CfmH--G|0Eir}`r|ySA85bHns^WdKZCw0|WCZ;dNoze_=W z%EV`s5dBJo*D7Inl#D=G29$`fvZ7LnD5MpE5>b}I{BF#&brn$D&yqeryWMyGaqt-c zMH3FB}7n18amSxj^y{sO`+Wkq(1*n>}$h>lQJ)CPbO24sAUBJs@prg%ziB@;>r z5Q^o8KW#7i%nc#~U~uuPTf;hW5+KgNmn`G%St+8M-2g_HEvW=hlHevOm3-rTI^smfZZZ; z$IgZPAptC-t#HEJDo!epPyt5xo-7QuR>X#a$g05XEr04Bl>yMKjC(s`D&k`^tig&x z!tz*Fm|%s8g>koF%*^(|5F|Dvj)q70gRK=0as$}(hpyQQ*isILfDkyhb8Nj^QdO<_ zIRxf-4u1>+#A5zo0BrnCC(Wq)L~bG2a7$-W4ge4ZF6=FJ1*lls8nWv^N(lA`+gH4k z^C_6Up;uRF3VlY<|3l6>P_^o;PNX?cfgOUe zvr+);FHcIJsX%;=rFpuyt6~1I0KjP>AZqcCoAVGrNfWl@SwfJ6Go#*u+s_AEx8>#q zRkdd_+z^cBf(i2)Id*@9fB^^rA)>%&t-#f`H(dc<*>F7rAe>h;9Dt)bky8P(0oqr%0?eqpm~KXFgnha915=kC*1_ot zP~h6PE8QEC)jwt^5VMMg0Z?;j$bR5@#~N3F%Gy(p0ODtiSg<$uhGbH8b7l?@0@qK} zxi=)s+Cxmvj)=X5!vQ#;liiS{_J4$+K;Ov*SAeNY4mmm^TLHT7^_#x_k$Huq2ZF7& zj*6JI5S3Q%drbqH5(P*l`diSk-jnZs;O1_VtDCwRJU(^JKgu_~&?}q3+}79Ca5!}? zE5PG?{7L6a7j@?4so(Q0kGGA%dv0{D|LT7Qn4}*J5O|&aABh!e`cAIzOcw?C7X>d7 UPGrpU(f|Me07*qoM6N<$f;GEp3;+NC literal 1617 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 literal 919 zcmZQzU<5)CU}R8WXk=z!5CgJ11N_{1xum#&OkPh9mmrWV2y?IjshFY_X$%a^9-c0a zAr-gY-q@HM9LUgi@xA5wOij(ql{XkFnKCA>5ag9@Z9l;gvVoDO!R4BVH!HJ(Yv3P^ zH@r2yO~rjrSnFbIzyI_zJd?INBsNTb)$*(7v}^)`zb0=xT=4o;?bkaZHYM7^JlkdJ zK0G+Tis68=8qj$S3=B*R98_a)G;lhAe8s{bz(6eql1UHNoSpqPiM3)$4da|+t(-sP z&s?=O=GnTgE^Pnmxt47+R*7E~4({PUpl-}l8ohVzzGvLoQ$oM)t;+2B$T;JS!Idlj zp2e?QzpT1g=KTl1ryF0f+zA+JK>!Zbb7yjz9)?{F+Imy(nnd#S)2~$0OV{nYnYiNj ztH`grW}Pv7wjgZ#)w7B5edeM2pS|kUZQHfRE`0s1`!O>4EA7JKeGE+)%8P$*GP>rv z)$H&EhC8A4K8Dw7YM*MCiv0iipEtcshF^O~h71dXg?K$vC0}yz+`njxg HN@xNAL5sc; From 590379482f72e8b9e162b7f91c903914644120ad Mon Sep 17 00:00:00 2001 From: ibartsindia Date: Mon, 3 Mar 2025 19:15:39 +0530 Subject: [PATCH 29/29] White labeled email templates --- .../emails/auth/forgot_password.html | 128 +--- .../templates/emails/auth/magic_signin.html | 126 +--- .../templates/emails/exports/analytics.html | 2 +- .../invitations/project_invitation.html | 149 +--- .../emails/notifications/issue-updates.html | 5 +- .../notifications/project_addition.html | 636 +----------------- .../emails/user/user_activation.html | 636 +----------------- .../emails/user/user_deactivation.html | 634 +---------------- 8 files changed, 18 insertions(+), 2298 deletions(-) diff --git a/apiserver/templates/emails/auth/forgot_password.html b/apiserver/templates/emails/auth/forgot_password.html index 9df90724f6f..13865e6033a 100644 --- a/apiserver/templates/emails/auth/forgot_password.html +++ b/apiserver/templates/emails/auth/forgot_password.html @@ -41,7 +41,7 @@ - + @@ -72,7 +72,7 @@

@@ -85,7 +85,7 @@
-

Someone, hopefully you, has requested a new password be set to your Plane account. If it was you, please click the button below to reset your password.

+

Someone, hopefully you, has requested a new password be set to your ReyFlow account. If it was you, please click the button below to reset your password.

@@ -165,128 +165,6 @@ - - - - - - - - - - - - - @@ -170,21 +145,6 @@ ­ - - - - - - diff --git a/apiserver/templates/emails/notifications/project_addition.html b/apiserver/templates/emails/notifications/project_addition.html index ccf0f7a9538..f91f2ccedae 100644 --- a/apiserver/templates/emails/notifications/project_addition.html +++ b/apiserver/templates/emails/notifications/project_addition.html @@ -483,7 +483,7 @@ " > - You've been invited to a Plane + You've been invited to a ReyFlow project. @@ -647,7 +647,7 @@ >{{inviter_first_name}} has invited you to work with them in  {{project_name}} in the workspace - {{workspace_name}} on Plane.

@@ -838,636 +838,6 @@
- - - - - - - - - - - -
@@ -198,111 +158,6 @@
- - - - - - -
@@ -312,7 +167,7 @@ diff --git a/apiserver/templates/emails/notifications/issue-updates.html b/apiserver/templates/emails/notifications/issue-updates.html index c1a48752fdf..482a66650b6 100644 --- a/apiserver/templates/emails/notifications/issue-updates.html +++ b/apiserver/templates/emails/notifications/issue-updates.html @@ -15,7 +15,7 @@
-
+
@@ -232,8 +232,7 @@
- This email was sent to {{ receiver.email }}. If you'd rather not receive this kind of email, you can unsubscribe to the issue or manage your email preferences. - + This email was sent to {{ receiver.email }}. If you'd rather not receive this kind of email, you can unsubscribe to the issue or manage your email preferences.
- - - - - - - - - - You are back inside Plane + >You are back inside ReyFlow again. @@ -700,7 +700,7 @@ font-size: 16px; " > - Go to PlaneGo to ReyFlow @@ -817,636 +817,6 @@
- - - - - - - - - - You are out of Plane + >You are out of ReyFlow now. @@ -818,636 +818,6 @@
- - - - - - - - - -