From fc958b69c7e77879ded3d5367f6fd118c1b5d9fe Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Mon, 12 Jun 2023 15:38:41 -0400 Subject: [PATCH] Refines messaging --- package.json | 18 ++--- src/commands/quickCommand.steps.ts | 4 +- src/git/remotes/richRemoteProvider.ts | 2 +- src/plus/subscription/subscriptionService.ts | 2 +- src/quickpicks/items/directive.ts | 2 +- src/views/nodes/worktreesNode.ts | 2 +- src/views/workspacesView.ts | 2 +- src/webviews/apps/home/home.html | 20 ++++-- .../plus/account/components/account-content.ts | 4 +- src/webviews/apps/plus/focus/focus.html | 5 +- src/webviews/apps/plus/graph/GraphWrapper.tsx | 9 ++- .../shared/components/feature-gate-plus-state.ts | 6 +- .../apps/settings/partials/commit-graph.html | 4 +- .../apps/settings/partials/views.worktrees.html | 2 +- .../apps/shared/components/feature-gate-badge.ts | 4 +- src/webviews/apps/welcome/welcome.html | 83 ++++++++++++++++------ src/webviews/apps/welcome/welcome.scss | 17 +++++ 17 files changed, 132 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 135067f..ed39c79 100644 --- a/package.json +++ b/package.json @@ -3937,7 +3937,7 @@ "gitlens.plusFeatures.enabled": { "type": "boolean", "default": true, - "markdownDescription": "Specifies whether to hide or show features that require a trial or subscription and are not accessible given the opened repositories and current trial or subscription", + "markdownDescription": "Specifies whether to hide or show features that require a trial or paid subscription and are not accessible given the opened repositories and current trial or subscription", "scope": "window", "order": 60 }, @@ -14132,12 +14132,12 @@ }, { "view": "gitlens.views.workspaces", - "contents": "[Create Cloud Workspace](command:gitlens.views.workspaces.create)\n\n☁️ Access is based on your subscription tier, e.g. Free, Pro, etc", + "contents": "[Create Cloud Workspace](command:gitlens.views.workspaces.create)\n\n☁️ Access is based on your subscription, e.g. Free, Pro, etc", "when": "gitlens:plus" }, { "view": "gitlens.views.workspaces", - "contents": "[Start Free Pro Trial](command:gitlens.plus.loginOrSignUp)\n\nStart a free 7-day Pro trial to use GitKraken Workspaces, or [sign in](command:gitlens.plus.loginOrSignUp).\n☁️ Requires an account and access is based on your subscription tier, e.g. Free, Pro, etc", + "contents": "[Start Free Pro Trial](command:gitlens.plus.loginOrSignUp)\n\nStart a free 7-day Pro trial to use GitKraken Workspaces, or [sign in](command:gitlens.plus.loginOrSignUp).\n☁️ Requires an account and access is based on your subscription, e.g. Free, Pro, etc", "when": "!gitlens:plus" }, { @@ -14157,17 +14157,17 @@ }, { "view": "gitlens.views.worktrees", - "contents": "[Preview Pro](command:gitlens.plus.startPreviewTrial)\n\nPreview Pro for 3 days, or [sign in](command:gitlens.plus.loginOrSignUp) to start a full 7-day Pro trial.\n✨ A trial or subscription is required to use this on privately hosted repos.", + "contents": "[Preview Pro](command:gitlens.plus.startPreviewTrial)\n\nPreview Pro for 3 days, or [sign in](command:gitlens.plus.loginOrSignUp) to start a full 7-day Pro trial.\n✨ A trial or paid subscription is required to use this on privately hosted repos.", "when": "gitlens:plus:required && gitlens:plus:state == 0" }, { "view": "gitlens.views.worktrees", - "contents": "Your 3-day Pro preview has ended, start a free Pro trial to get an additional 7 days, or [sign in](command:gitlens.plus.loginOrSignUp).\n\n[Start Free Pro Trial](command:gitlens.plus.loginOrSignUp)\n✨ A trial or subscription is required to use this on privately hosted repos.", + "contents": "Your 3-day Pro preview has ended, start a free Pro trial to get an additional 7 days, or [sign in](command:gitlens.plus.loginOrSignUp).\n\n[Start Free Pro Trial](command:gitlens.plus.loginOrSignUp)\n✨ A trial or paid subscription is required to use this on privately hosted repos.", "when": "gitlens:plus:required && gitlens:plus:state == 2" }, { "view": "gitlens.views.worktrees", - "contents": "Your Pro trial has ended, please upgrade to continue to use this on privately hosted repos.\n\n[Upgrade to Pro](command:gitlens.plus.purchase)\n✨ A subscription is required to use this on privately hosted repos.", + "contents": "Your Pro trial has ended, please upgrade to continue to use this on privately hosted repos.\n\n[Upgrade to Pro](command:gitlens.plus.purchase)\n✨ A paid subscription is required to use this on privately hosted repos.", "when": "gitlens:plus:required && gitlens:plus:state == 4" } ], @@ -14389,7 +14389,7 @@ { "id": "gitlens.welcome.commitGraph", "title": "Commit Graph ✨", - "description": "Helps you easily visualize your repository and keep track of all work in progress. Not only does it help you verify your changes, but also easily see changes made by others and when.\nUse the rich commit search to find exactly what you're looking for. It's powerful filters allow you to search by a specific commit, message, author, a changed file or files, or even a specific code change.\n\n[Open Commit Graph](command:gitlens.showGraph)", + "description": "Helps you easily visualize your repository and keep track of all work in progress.\nUse the rich commit search to find exactly what you're looking for. It's powerful filters allow you to search by a specific commit, message, author, a changed file or files, or even a specific code change.\n\n[Open Commit Graph](command:gitlens.showGraph)", "media": { "markdown": "walkthroughs/welcome/commit-graph.md" } @@ -14397,7 +14397,7 @@ { "id": "gitlens.welcome.workspaces", "title": "Workspaces and Focus ☁️", - "description": "Workspaces allow you to easily group and manage multiple repositories all in one place, streamlining your workflow.\n\n[Open Workspaces](command:gitlens.showWorkspacesView)\n\nFocus view helps you concentrate on what really matters by gathering all your GitHub pull requests and issues into one comprehensive list.\n\n[Open Focus](command:gitlens.showFocusPage)", + "description": "Workspaces allow you to easily group and manage multiple repositories together, accessible from anywhere, streamlining your workflow.\nCreate workspaces just for yourself or share (coming soon in GitLens) them with your team for faster onboarding and better collaboration.\n\n[Open Workspaces](command:gitlens.showWorkspacesView)\n\nThe Focus view brings all of your GitHub pull requests and issues into a unified actionable view to help to you more easily juggle work in progress, pending work, reviews, and more.\nQuickly see if anything requires your attention while keeping you focused.\n\n[Open Focus](command:gitlens.showFocusPage)", "media": { "altText": "Illustrations of Focus and Workspaces view", "svg": "walkthroughs/welcome/workspaces-focus.svg" @@ -14406,7 +14406,7 @@ { "id": "gitlens.welcome.hostingServiceIntegrations", "title": "Integrate with Git hosting services", - "description": "Quickly gain insights from pull requests and issues without leaving your editor.\n\nConnect with GitHub, GitHub Enterprise, GitLab, GitLab self-managed, Gitea, Gerrit, Google Source, Bitbucket, Bitbucket Server, Azure DevOps and custom servers.\nAll Git host integrations provide issue and pull request auto-linking, while rich integrations (e.g. GitHub & GitLab) provide more detailed hover information for auto-linked issues and pull requests, pull requests associated with branches and commits, and avatars.\n\n[Configure Autolinks](command:gitlens.showSettingsPage?%22autolinks%22)", + "description": "Simplify your workflow and quickly gain insights with automatic linking of issues and pull requests across multiple Git hosting platforms including GitHub, GitHub Enterprise ✨, GitLab, GitLab self-managed ✨, Gitea, Gerrit, Google Source, Bitbucket, Bitbucket Server, Azure DevOps, and custom servers.\n\nAll integration provide automatic linking, while rich integrations with GitHub & GitLab offer detailed hover information for autolinks, and correlations between pull requests, branches, and commits, as well as user avatars for added context.\n\n**Define your own autolinks**\nUse autolinks to linkify external references, like Jira issues or Zendesk tickets, in commit messages.\n\n[Configure Autolinks](command:gitlens.showSettingsPage?%22autolinks%22)", "media": { "markdown": "walkthroughs/welcome/8-hosting-service-integrations.md" } diff --git a/src/commands/quickCommand.steps.ts b/src/commands/quickCommand.steps.ts index 19073b7..5c27ffd 100644 --- a/src/commands/quickCommand.steps.ts +++ b/src/commands/quickCommand.steps.ts @@ -2425,9 +2425,9 @@ export async function* ensureAccessStep< } else { if (access.subscription.required == null) return undefined; - placeholder = '✨ Requires a trial or subscription for use on privately hosted repos'; + placeholder = '✨ Requires a trial or paid subscription for use on privately hosted repos'; if (isSubscriptionPaidPlan(access.subscription.required) && access.subscription.current.account != null) { - placeholder = '✨ Requires a subscription for use on privately hosted repos'; + placeholder = '✨ Requires a paid subscription for use on privately hosted repos'; directives.push(createDirectiveQuickPickItem(Directive.RequiresPaidSubscription, true)); } else if ( access.subscription.current.account == null && diff --git a/src/git/remotes/richRemoteProvider.ts b/src/git/remotes/richRemoteProvider.ts index 3f029ef..b850e3e 100644 --- a/src/git/remotes/richRemoteProvider.ts +++ b/src/git/remotes/richRemoteProvider.ts @@ -509,7 +509,7 @@ export abstract class RichRemoteProvider extends RemoteProvider { } export async function ensurePaidPlan(providerName: string, container: Container): Promise { - const title = `Connecting to a ${providerName} instance for rich integration features requires a trial or subscription.`; + const title = `Connecting to a ${providerName} instance for rich integration features requires a trial or paid subscription.`; while (true) { const subscription = await container.subscription.getSubscription(); diff --git a/src/plus/subscription/subscriptionService.ts b/src/plus/subscription/subscriptionService.ts index 3f7bc68..667b29c 100644 --- a/src/plus/subscription/subscriptionService.ts +++ b/src/plus/subscription/subscriptionService.ts @@ -454,7 +454,7 @@ export class SubscriptionService implements Disposable { const confirm: MessageItem = { title: 'Start Free Pro Trial', isCloseAffordance: true }; const cancel: MessageItem = { title: 'Cancel' }; const result = await window.showInformationMessage( - 'Your 3-day Pro preview has ended, start a free Pro trial to get an additional 7 days.\n\n✨ A trial or subscription is required to use Pro features on privately hosted repos.', + 'Your 3-day Pro preview has ended, start a free Pro trial to get an additional 7 days.\n\n✨ A trial or paid subscription is required to use Pro features on privately hosted repos.', { modal: true }, confirm, cancel, diff --git a/src/quickpicks/items/directive.ts b/src/quickpicks/items/directive.ts index 300ecc6..9c89314 100644 --- a/src/quickpicks/items/directive.ts +++ b/src/quickpicks/items/directive.ts @@ -56,7 +56,7 @@ export function createDirectiveQuickPickItem( break; case Directive.RequiresPaidSubscription: label = 'Upgrade to Pro'; - detail = 'A subscription is required to use this on privately hosted repos'; + detail = 'A paid subscription is required to use this on privately hosted repos'; break; } } diff --git a/src/views/nodes/worktreesNode.ts b/src/views/nodes/worktreesNode.ts index 0d2fdad..db35978 100644 --- a/src/views/nodes/worktreesNode.ts +++ b/src/views/nodes/worktreesNode.ts @@ -58,7 +58,7 @@ export class WorktreesNode extends ViewNode { item.contextValue = ContextValues.Worktrees; item.description = access.allowed ? undefined - : ` ${GlyphChars.Warning} Requires a trial or subscription for use on privately hosted repos`; + : ` ${GlyphChars.Warning} Requires a trial or paid subscription for use on privately hosted repos`; // TODO@eamodio `folder` icon won't work here for some reason item.iconPath = new ThemeIcon('folder-opened'); return item; diff --git a/src/views/workspacesView.ts b/src/views/workspacesView.ts index eb8e0ad..eb8905b 100644 --- a/src/views/workspacesView.ts +++ b/src/views/workspacesView.ts @@ -64,7 +64,7 @@ export class WorkspacesView extends ViewBase<'workspaces', WorkspacesViewNode, W private async updateDescription() { const subscription = await this.container.subscription.getSubscription(); - this.description = subscription.state === SubscriptionState.Paid ? undefined : '☁️'; + this.description = `PREVIEW ${subscription.state === SubscriptionState.Paid ? '' : '☁️'}`; } override get canReveal(): boolean { diff --git a/src/webviews/apps/home/home.html b/src/webviews/apps/home/home.html index 4f4509c..dcd5b87 100644 --- a/src/webviews/apps/home/home.html +++ b/src/webviews/apps/home/home.html @@ -136,7 +136,7 @@ aria-label="Show Commit Details view" data-requires="repo" >Commit Details viewCommit Details Commits viewCommits File History viewFile History Stashes + Tutorial Video -

✨ Requires a trial or subscription to use this on privately hosted repos.

+

+ ✨ Requires a trial or paid subscription to use this on privately hosted repos.
+ ☁️ Requires an account and access is based on your subscription, e.g. Free, Pro, etc +

#{endOfBody} diff --git a/src/webviews/apps/plus/account/components/account-content.ts b/src/webviews/apps/plus/account/components/account-content.ts index fc028a2..c59067d 100644 --- a/src/webviews/apps/plus/account/components/account-content.ts +++ b/src/webviews/apps/plus/account/components/account-content.ts @@ -185,7 +185,7 @@ export class AccountContent extends LitElement {

You only have access to ✨ features on local and publicly hosted repos and ☁️ features based on - your subscription tier, e.g. Free, Pro, etc. + your subscription, e.g. Free, Pro, etc.

`; @@ -213,7 +213,7 @@ export class AccountContent extends LitElement {

You have access to ✨ features on privately hosted repos and ☁️ features based on your - subscription tier. + subscription.

`; } diff --git a/src/webviews/apps/plus/focus/focus.html b/src/webviews/apps/plus/focus/focus.html index 4159a8c..2e4c0c8 100644 --- a/src/webviews/apps/plus/focus/focus.html +++ b/src/webviews/apps/plus/focus/focus.html @@ -37,8 +37,9 @@

- Helps you focus on what really matters by gathering all your GitHub pull requests and issues - into one comprehensive list. + Brings all of your GitHub pull requests and issues into a unified actionable view to help to you + more easily juggle work in progress, pending work, reviews, and more. Quickly see if anything + requires your attention while keeping you focused.

diff --git a/src/webviews/apps/plus/graph/GraphWrapper.tsx b/src/webviews/apps/plus/graph/GraphWrapper.tsx index 96f51ad..42b87a6 100644 --- a/src/webviews/apps/plus/graph/GraphWrapper.tsx +++ b/src/webviews/apps/plus/graph/GraphWrapper.tsx @@ -1335,7 +1335,14 @@ export function GraphWrapper({
-

Easily visualize your repository and keep track of all work in progress.

+

+ Helps you easily visualize your repository and keep track of all work in progress. +
+
+ Use the rich commit search to find exactly what you're looking for. It's powerful filters allow you + to search by a specific commit, message, author, a changed file or files, or even a specific code + change. +

{graphConfig?.minimap && ( sign in to start a full 7-day Pro trial.

-

✨ A trial or subscription is required to use this on privately hosted repos.

+

✨ A trial or paid subscription is required to use this on privately hosted repos.

`; case SubscriptionState.FreePreviewTrialExpired: @@ -90,7 +90,7 @@ export class FeatureGatePlusState extends LitElement { Start Free Pro Trial -

✨ A trial or subscription is required to use this on privately hosted repos.

+

✨ A trial or paid subscription is required to use this on privately hosted repos.

`; case SubscriptionState.FreePlusTrialExpired: @@ -99,7 +99,7 @@ export class FeatureGatePlusState extends LitElement { Upgrade to Pro -

✨ A subscription is required to use this on privately hosted repos.

+

✨ A paid subscription is required to use this on privately hosted repos.

`; } diff --git a/src/webviews/apps/settings/partials/commit-graph.html b/src/webviews/apps/settings/partials/commit-graph.html index 3b63db2..bd817fe 100644 --- a/src/webviews/apps/settings/partials/commit-graph.html +++ b/src/webviews/apps/settings/partials/commit-graph.html @@ -1,7 +1,9 @@

Powerful Features

-

- Features with a ✨ sparkle require a trial or subscription for use on privately hosted repos -
- Features with a ☁️ cloud require an account and access is based on your subscription tier, e.g. - Free, Pro, etc -

+
+

+ All features are completely free for use on all repos, except for ones marked + with: +

+

+ ✨ require a + trial or paid subscription + for use on privately hosted repos +
+ ☁️ require an account and access is based on your subscription, e.g. Free, Pro, etc +

+

- In-editor code annotations and rich hovers help you better understand how code changed and by whom + Gain a deeper understanding of how code changed and by whom through in-editor code annotations and + rich hovers.

@@ -111,7 +121,12 @@ > ✨ -

Helps you easily visualize and keep track of all work in progress

+

Helps you easily visualize your repository and keep track of all work in progress.

+

+ Use the rich commit search to find exactly what you're looking for. It's powerful filters allow you + to search by a specific commit, message, author, a changed file or files, or even a specific code + change. +

Side Bar Views

@@ -234,6 +249,7 @@ aria-label="Open Focus" >Focus + Preview ☁️

@@ -245,9 +261,9 @@

- The Focus view helps you concentrate on what really matters by gathering all your GitHub pull - requests and issues into one comprehensive list. Helps you focus on what's important by providing - you with a comprehensive list of all your pull requests and issues on your GitHub repos. + The Focus view brings all of your GitHub pull requests and issues into a unified actionable view to + help to you more easily juggle work in progress, pending work, reviews, and more. Quickly see if + anything requires your attention while keeping you focused.

@@ -264,18 +280,34 @@ ✨

- Enables you to quickly see the evolution of a file, including when changes were made, how large they - were, and who made them. Use it to quickly find when the most impactful changes were made to a file - or who best to talk to about file changes and more. + Quickly see the evolution of a file, including when changes were made, how large they were, and who + made them. Use it to quickly find when the most impactful changes were made to a file or who best to + talk to about file changes and more.

Integrations

-

GitLens provides issue and pull request auto-linking with many Git hosting services.

- Rich integrations with GitHub & GitLab provide more detailed hover information for auto-linked - issues and pull requests, pull requests associated with branches and commits, and avatars. + Simplify your workflow and quickly gain insights with automatic linking of issues and pull requests + across multiple Git hosting platforms including GitHub, GitHub Enterprise ✨, GitLab, GitLab + self-managed ✨, Gitea, Gerrit, Google Source, Bitbucket, Bitbucket Server, Azure DevOps, and custom + servers.

+

+ All integration provide automatic linking, while rich integrations with GitHub & GitLab offer + detailed hover information for autolinks, and correlations between pull requests, branches, and + commits, as well as user avatars for added context. +

+

+ Define your own autolinks +

+

+ Use autolinks to linkify external references, like Jira issues or Zendesk tickets, in commit + messages. +

+ Configure Autolinks

GitKraken Labs

Experimental features.

@@ -348,21 +380,21 @@ data-requires="repo" title="Show Commits view" aria-label="Show Commits view" - >Commits viewCommits Commit Details viewCommit Details File History viewFile History Visual File History ✨ Stashes + #{endOfBody} diff --git a/src/webviews/apps/welcome/welcome.scss b/src/webviews/apps/welcome/welcome.scss index c32c1e8..b67612b 100644 --- a/src/webviews/apps/welcome/welcome.scss +++ b/src/webviews/apps/welcome/welcome.scss @@ -232,6 +232,23 @@ gk-card p { } } + &__gates { + p:first-child { + margin-bottom: 0.5rem; + } + + p:last-child { + margin-top: 0.5rem; + margin-left: 2rem; + } + } + + &__preview { + font-size: 0.9rem; + font-weight: normal; + text-transform: uppercase; + } + &__toolbar { display: flex; flex-direction: row;