Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Pricing Plans to Organization Page #6602

Merged
merged 110 commits into from
Jan 5, 2023
Merged

Add Pricing Plans to Organization Page #6602

merged 110 commits into from
Jan 5, 2023

Conversation

hotzenklotz
Copy link
Member

@hotzenklotz hotzenklotz commented Nov 2, 2022

This PR overhauls the organization page to include more infos on the current number of users, storage quota, and the selected webKnossos plan.

Changes:

  • Redesigned Organization Page
  • Enforced Limits for User Invites
  • Warning for exceeding your plan limits soon on the dashboard
  • several modals to upgrade plan, users, storage and time that can be re-used all over the place

PR does NOT yet enforce any webKnossos annotation features / tools depending on your plan. This will come in a follow-up PR.

ToDo:

  • send emails on upgrade

URL of deployed dev instance (used for testing):

Steps to test:

  • Extensively monkey test the orga page
  • Make sure to try all sorts of the combinations of Plans, custom storage and user quota etc in the DB

Issues:


(Please delete unneeded items, merge only when none are left open)

@hotzenklotz hotzenklotz self-assigned this Nov 2, 2022
@frcroth frcroth self-assigned this Nov 2, 2022
hotzenklotz and others added 25 commits November 2, 2022 16:50
…icing

* 'pricing' of github.com:scalableminds/webknossos:
  Add pricing plan schema
…icing

* 'pricing' of github.com:scalableminds/webknossos:
  Pass incudedStorage in MB
  Assert user count does not exceed includedUsers when joining org
  Add new model fields
  Use default user/storage values for different plans
…icing

* 'pricing' of github.com:scalableminds/webknossos:
  adapt enum in scala
…cing

* 'master' of github.com:scalableminds/webknossos:
  Fix getNullBucket crash and remove dead code (#6603)
  Hotfix Dataset View Mode
…icing

* 'pricing' of github.com:scalableminds/webknossos:
  Insert new fields into organization table
@hotzenklotz hotzenklotz marked this pull request as ready for review December 15, 2022 12:19
Copy link
Member

@philippotto philippotto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some comments. overall, looks pretty good 👍 will test in a bit.

Comment on lines 310 to 311
{/* {pricingPlanWarnings}
{pricingPlanErrors} */}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mhmm, the components are intentionally commented out/disabled. We will need to re-enable them once the pricing goes live early next year. This is what the comment in line 294 is referring to.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I couldn't make that connection across that many lines 😝


// ToDo enable components below once pricing goes live
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there a (follow-up) issue which could be linked here in the comment?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope.

app/views/mail/upgradePricingPlanRequest.scala.html Outdated Show resolved Hide resolved
);
const [organization, users] = await Promise.all([
getOrganization(this.props.organizationName),
getUsers(),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getPricingPlanStatus is incorporated now, but getUsers().length is still effectively used. This means non-admins might see something like "your plan is exceeded, because 2 of 10 users" are registered? or can't this happen?

>
<ul>
{teamPlanFeatures.map((feature) => (
<li key={feature.slice(0, 10)}>{feature}</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why the slicing? do we have that many features? and is it ok to crop them without having the chance to click sth like "show more"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you want to keep it, i'd suggest to extract the 10 to a constant. I think, it's used at least at 3 locations.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't remember the reason. Maybe because we had some mock data at some point. Will remove.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah... I think I wanted to have "short", unique keys. The slicing is called on a string, not an array.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I read that wrong then. ok, I think, strings are pooled in most interpreters anyway, so there shouldn't be a benefit in trimming the key, but I can understand that this is more when debugging things.

hotzenklotz and others added 3 commits December 15, 2022 13:43
…icing

* 'pricing' of github.com:scalableminds/webknossos:
  Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx
@philippotto philippotto changed the title WIP: webKnossos Pricing Plans webKnossos Pricing Plans Dec 15, 2022
@philippotto philippotto changed the title webKnossos Pricing Plans Add Pricing Plans to Organization Page Dec 15, 2022
…cing

* 'master' of github.com:scalableminds/webknossos:
  Disable compression for development proxy (#6699)
@philippotto
Copy link
Member

philippotto commented Dec 15, 2022

Testing went smooth mostly. However, I've got the following things:

  • when upgrading from basic to team or from team to power, there is no "An email with your request has been send to the webKnossos team." toast. this is confusing as one thinks, nothing happened. the other upgrades show the toast.
  • The PR description says "PR does NOT yet enforce any webKnossos annotation features / tools depending on your plan". However, the invite functionality is blocked when the user limit is reached. Is this on purpose? Maybe just remove the "disabled" prop, but leave the warning for the invite functionality?
  • When commenting in the warning/error components in the dashboard and logging in as non-admin, I get
    "Your organization is using more users or storage space than included in your current plan. Upgrade now to avoid your account from being blocked." in the dashboard
    - However, the "upgrade" button does nothing.
    • probably adapt it to say "contact your admin" and remove the button ?

hotzenklotz and others added 12 commits December 20, 2022 10:25
…cing

* 'master' of github.com:scalableminds/webknossos:
  Automatically open (and close) quick select settings when labeling in… (#6706)
  Add Terms of Service Acceptance Concept (#6632)
  Fix crash in publication page and add error boundaries (#6700)
  temporarily disable vx related polling (#6702)
  add protected and private modifiers to DAO hierarchy (#6698)
…cing

* 'master' of github.com:scalableminds/webknossos:
  Revert "temporarily disable vx related polling (#6702)" (#6710)
…cing

* 'master' of github.com:scalableminds/webknossos:
  Replace babel with esbuild for tests and for webpack (#6527)
  Use less ram when initializing data textures (#6711)
  Composable sql interpolation (#6718)
  Release 23.01.0 (#6717)
  add license checker (#6715)
  Fix brush performance for coarse mags & avoid some unnecessary re-renders (#6708)
  Change backend format command (#6697)
  Improve layout of terms of services check (#6712)
@hotzenklotz hotzenklotz enabled auto-merge (squash) January 5, 2023 12:52
@hotzenklotz hotzenklotz merged commit 14dbb47 into master Jan 5, 2023
@hotzenklotz hotzenklotz deleted the pricing branch January 5, 2023 12:52
philippotto added a commit that referenced this pull request Jan 9, 2023
…rashing whole page); remove maybe container from findTreeById

remove maybe container from findTreeByName; remove dead REMOVE_AGGLOMERATE_SKELETON action code

fix incorrect encoding/decoding of node ids between webGL and JS

update changelog

Update config.yml

Fix some failing validations of neuroglancer URLs (#6722)

* make neuroglancer import compatible with URLs that encode subsources and improve validation in general

* update changelog

Add Pricing Plans to Organization Page (#6602)

* first draft for new organization page

* enable access to orga page in navbar avatar menu

* Add pricing plan schema

* fix navbar links to orga page

* more pricing stuff

* orga page refactoring

* Use default user/storage values for different plans

* Add new model fields

* Assert user count does not exceed includedUsers when joining org

* Pass incudedStorage in MB

* fix deprecation warning

* refactor orga view into sub-components

* adapt enum in scala

* many tweaks to orga view

* added modals for extending pricing plans

* added actual user count to orga page limits

* Insert new fields into organization table

* REVIEW fixed some TS errors: @ts-expect-error ts-migrate(2769) FIXME: No overload matches this call.

* enforce user quota for email invites

* map null value to max int

* handle infinite orga storage

* small re-phrasing

* enforce user limit on email invites

* pretty + lint

* Update conf/evolutions/091-pricing-plans.sql

Co-authored-by: Florian M <[email protected]>

* added background images for pricing plan modals

* added alert when plans is about to exceed

* show a plan expriation warning diectly on the dashboard

* fix content for upgrade plan modal

* prettier

* updated changelog

* adapt test db

* added backend routes for send out pricing plan uprgade emails

* backend formatting

* connect frontend and backend prciing email routes

* stuff

* Update frontend/javascripts/admin/admin_rest_api.ts

Co-authored-by: Philipp Otto <[email protected]>

* Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx

Co-authored-by: Philipp Otto <[email protected]>

* Update conf/messages

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanUsers.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanToTeam.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanToPower.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanStorage.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/extendPricingPlan.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* applied PR feedback and switch background images to JPEGs

* applied PR feedback #2

* PR feedback #3 / fix upgrade modals

* Update frontend/javascripts/admin/onboarding.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/organization_cards.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/pricing_plan_utils.ts

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/organization_cards.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/pricing_plan_utils.ts

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/admin_rest_api.ts

Co-authored-by: Philipp Otto <[email protected]>

* PR feedback #4

* pretty

* PR feedback #5

* refactored pricing upgrade emails to be a confirmation to the user

* formatting

* fixed warning "plan is about to expire" when it already has expired

* fix evolution schema versioning

* rephrase all reference to "Free" plan to "Basic"

* Add route /pricing/status

* redesigned upgrade modal to show both team power plans

* integrated pricing plan status API

* fix evolutions

* also respect paidUntil in exceeded checks

* disable pricing plan warnings on dashboard for now

* make linter happy

* linting & formatting

* fix default orga DB

* fixed typescript typing errors

* Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx

Co-authored-by: Philipp Otto <[email protected]>

* applied PR feedback

* update schema version to 94

* fix CI?

* prevent prcing plan alarms from showing actions for unauthorized people

* added owner check for warnings

* added confirmation toasts on sucessful upgrade requests

* fix toast messages

* migration guide

Co-authored-by: frcroth <[email protected]>
Co-authored-by: Florian M <[email protected]>
Co-authored-by: Florian M <[email protected]>
Co-authored-by: Philipp Otto <[email protected]>
Co-authored-by: Norman Rzepka <[email protected]>

fixed unreleased changelog

fix changelog typo

disabled "about to exceed storage space" warning
philippotto added a commit that referenced this pull request Jan 9, 2023
…rashing whole page); remove maybe container from findTreeById

remove maybe container from findTreeByName; remove dead REMOVE_AGGLOMERATE_SKELETON action code

fix incorrect encoding/decoding of node ids between webGL and JS

update changelog

Update config.yml

show error in context menu if clicked node wasn't found (instead of crashing whole page); remove maybe container from findTreeById

remove maybe container from findTreeByName; remove dead REMOVE_AGGLOMERATE_SKELETON action code

fix incorrect encoding/decoding of node ids between webGL and JS

update changelog

Update config.yml

Fix some failing validations of neuroglancer URLs (#6722)

* make neuroglancer import compatible with URLs that encode subsources and improve validation in general

* update changelog

Add Pricing Plans to Organization Page (#6602)

* first draft for new organization page

* enable access to orga page in navbar avatar menu

* Add pricing plan schema

* fix navbar links to orga page

* more pricing stuff

* orga page refactoring

* Use default user/storage values for different plans

* Add new model fields

* Assert user count does not exceed includedUsers when joining org

* Pass incudedStorage in MB

* fix deprecation warning

* refactor orga view into sub-components

* adapt enum in scala

* many tweaks to orga view

* added modals for extending pricing plans

* added actual user count to orga page limits

* Insert new fields into organization table

* REVIEW fixed some TS errors: @ts-expect-error ts-migrate(2769) FIXME: No overload matches this call.

* enforce user quota for email invites

* map null value to max int

* handle infinite orga storage

* small re-phrasing

* enforce user limit on email invites

* pretty + lint

* Update conf/evolutions/091-pricing-plans.sql

Co-authored-by: Florian M <[email protected]>

* added background images for pricing plan modals

* added alert when plans is about to exceed

* show a plan expriation warning diectly on the dashboard

* fix content for upgrade plan modal

* prettier

* updated changelog

* adapt test db

* added backend routes for send out pricing plan uprgade emails

* backend formatting

* connect frontend and backend prciing email routes

* stuff

* Update frontend/javascripts/admin/admin_rest_api.ts

Co-authored-by: Philipp Otto <[email protected]>

* Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx

Co-authored-by: Philipp Otto <[email protected]>

* Update conf/messages

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanUsers.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanToTeam.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanToPower.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanStorage.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/extendPricingPlan.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* applied PR feedback and switch background images to JPEGs

* applied PR feedback #2

* PR feedback #3 / fix upgrade modals

* Update frontend/javascripts/admin/onboarding.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/organization_cards.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/pricing_plan_utils.ts

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/organization_cards.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/pricing_plan_utils.ts

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/admin_rest_api.ts

Co-authored-by: Philipp Otto <[email protected]>

* PR feedback #4

* pretty

* PR feedback #5

* refactored pricing upgrade emails to be a confirmation to the user

* formatting

* fixed warning "plan is about to expire" when it already has expired

* fix evolution schema versioning

* rephrase all reference to "Free" plan to "Basic"

* Add route /pricing/status

* redesigned upgrade modal to show both team power plans

* integrated pricing plan status API

* fix evolutions

* also respect paidUntil in exceeded checks

* disable pricing plan warnings on dashboard for now

* make linter happy

* linting & formatting

* fix default orga DB

* fixed typescript typing errors

* Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx

Co-authored-by: Philipp Otto <[email protected]>

* applied PR feedback

* update schema version to 94

* fix CI?

* prevent prcing plan alarms from showing actions for unauthorized people

* added owner check for warnings

* added confirmation toasts on sucessful upgrade requests

* fix toast messages

* migration guide

Co-authored-by: frcroth <[email protected]>
Co-authored-by: Florian M <[email protected]>
Co-authored-by: Florian M <[email protected]>
Co-authored-by: Philipp Otto <[email protected]>
Co-authored-by: Norman Rzepka <[email protected]>

fixed unreleased changelog

fix changelog typo

disabled "about to exceed storage space" warning
philippotto added a commit that referenced this pull request Jan 9, 2023
…rashing whole page); remove maybe container from findTreeById

remove maybe container from findTreeByName; remove dead REMOVE_AGGLOMERATE_SKELETON action code

fix incorrect encoding/decoding of node ids between webGL and JS

update changelog

Update config.yml

show error in context menu if clicked node wasn't found (instead of crashing whole page); remove maybe container from findTreeById

remove maybe container from findTreeByName; remove dead REMOVE_AGGLOMERATE_SKELETON action code

fix incorrect encoding/decoding of node ids between webGL and JS

update changelog

Update config.yml

Fix some failing validations of neuroglancer URLs (#6722)

* make neuroglancer import compatible with URLs that encode subsources and improve validation in general

* update changelog

Add Pricing Plans to Organization Page (#6602)

* first draft for new organization page

* enable access to orga page in navbar avatar menu

* Add pricing plan schema

* fix navbar links to orga page

* more pricing stuff

* orga page refactoring

* Use default user/storage values for different plans

* Add new model fields

* Assert user count does not exceed includedUsers when joining org

* Pass incudedStorage in MB

* fix deprecation warning

* refactor orga view into sub-components

* adapt enum in scala

* many tweaks to orga view

* added modals for extending pricing plans

* added actual user count to orga page limits

* Insert new fields into organization table

* REVIEW fixed some TS errors: @ts-expect-error ts-migrate(2769) FIXME: No overload matches this call.

* enforce user quota for email invites

* map null value to max int

* handle infinite orga storage

* small re-phrasing

* enforce user limit on email invites

* pretty + lint

* Update conf/evolutions/091-pricing-plans.sql

Co-authored-by: Florian M <[email protected]>

* added background images for pricing plan modals

* added alert when plans is about to exceed

* show a plan expriation warning diectly on the dashboard

* fix content for upgrade plan modal

* prettier

* updated changelog

* adapt test db

* added backend routes for send out pricing plan uprgade emails

* backend formatting

* connect frontend and backend prciing email routes

* stuff

* Update frontend/javascripts/admin/admin_rest_api.ts

Co-authored-by: Philipp Otto <[email protected]>

* Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx

Co-authored-by: Philipp Otto <[email protected]>

* Update conf/messages

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanUsers.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanToTeam.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanToPower.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanStorage.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/extendPricingPlan.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* applied PR feedback and switch background images to JPEGs

* applied PR feedback #2

* PR feedback #3 / fix upgrade modals

* Update frontend/javascripts/admin/onboarding.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/organization_cards.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/pricing_plan_utils.ts

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/organization_cards.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/pricing_plan_utils.ts

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/admin_rest_api.ts

Co-authored-by: Philipp Otto <[email protected]>

* PR feedback #4

* pretty

* PR feedback #5

* refactored pricing upgrade emails to be a confirmation to the user

* formatting

* fixed warning "plan is about to expire" when it already has expired

* fix evolution schema versioning

* rephrase all reference to "Free" plan to "Basic"

* Add route /pricing/status

* redesigned upgrade modal to show both team power plans

* integrated pricing plan status API

* fix evolutions

* also respect paidUntil in exceeded checks

* disable pricing plan warnings on dashboard for now

* make linter happy

* linting & formatting

* fix default orga DB

* fixed typescript typing errors

* Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx

Co-authored-by: Philipp Otto <[email protected]>

* applied PR feedback

* update schema version to 94

* fix CI?

* prevent prcing plan alarms from showing actions for unauthorized people

* added owner check for warnings

* added confirmation toasts on sucessful upgrade requests

* fix toast messages

* migration guide

Co-authored-by: frcroth <[email protected]>
Co-authored-by: Florian M <[email protected]>
Co-authored-by: Florian M <[email protected]>
Co-authored-by: Philipp Otto <[email protected]>
Co-authored-by: Norman Rzepka <[email protected]>

fixed unreleased changelog

fix changelog typo

disabled "about to exceed storage space" warning
philippotto added a commit that referenced this pull request Jan 9, 2023
…rashing whole page); remove maybe container from findTreeById (#6724)

remove maybe container from findTreeByName; remove dead REMOVE_AGGLOMERATE_SKELETON action code

fix incorrect encoding/decoding of node ids between webGL and JS

update changelog

Update config.yml

show error in context menu if clicked node wasn't found (instead of crashing whole page); remove maybe container from findTreeById

remove maybe container from findTreeByName; remove dead REMOVE_AGGLOMERATE_SKELETON action code

fix incorrect encoding/decoding of node ids between webGL and JS

update changelog

Update config.yml

Fix some failing validations of neuroglancer URLs (#6722)

* make neuroglancer import compatible with URLs that encode subsources and improve validation in general

* update changelog

Add Pricing Plans to Organization Page (#6602)

* first draft for new organization page

* enable access to orga page in navbar avatar menu

* Add pricing plan schema

* fix navbar links to orga page

* more pricing stuff

* orga page refactoring

* Use default user/storage values for different plans

* Add new model fields

* Assert user count does not exceed includedUsers when joining org

* Pass incudedStorage in MB

* fix deprecation warning

* refactor orga view into sub-components

* adapt enum in scala

* many tweaks to orga view

* added modals for extending pricing plans

* added actual user count to orga page limits

* Insert new fields into organization table

* REVIEW fixed some TS errors: @ts-expect-error ts-migrate(2769) FIXME: No overload matches this call.

* enforce user quota for email invites

* map null value to max int

* handle infinite orga storage

* small re-phrasing

* enforce user limit on email invites

* pretty + lint

* Update conf/evolutions/091-pricing-plans.sql

Co-authored-by: Florian M <[email protected]>

* added background images for pricing plan modals

* added alert when plans is about to exceed

* show a plan expriation warning diectly on the dashboard

* fix content for upgrade plan modal

* prettier

* updated changelog

* adapt test db

* added backend routes for send out pricing plan uprgade emails

* backend formatting

* connect frontend and backend prciing email routes

* stuff

* Update frontend/javascripts/admin/admin_rest_api.ts

Co-authored-by: Philipp Otto <[email protected]>

* Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx

Co-authored-by: Philipp Otto <[email protected]>

* Update conf/messages

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanUsers.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanToTeam.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanToPower.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/upgradePricingPlanStorage.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* Update app/views/mail/extendPricingPlan.scala.html

Co-authored-by: Philipp Otto <[email protected]>

* applied PR feedback and switch background images to JPEGs

* applied PR feedback #2

* PR feedback #3 / fix upgrade modals

* Update frontend/javascripts/admin/onboarding.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/organization_cards.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/pricing_plan_utils.ts

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/organization_cards.tsx

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/organization/pricing_plan_utils.ts

Co-authored-by: Norman Rzepka <[email protected]>

* Update frontend/javascripts/admin/admin_rest_api.ts

Co-authored-by: Philipp Otto <[email protected]>

* PR feedback #4

* pretty

* PR feedback #5

* refactored pricing upgrade emails to be a confirmation to the user

* formatting

* fixed warning "plan is about to expire" when it already has expired

* fix evolution schema versioning

* rephrase all reference to "Free" plan to "Basic"

* Add route /pricing/status

* redesigned upgrade modal to show both team power plans

* integrated pricing plan status API

* fix evolutions

* also respect paidUntil in exceeded checks

* disable pricing plan warnings on dashboard for now

* make linter happy

* linting & formatting

* fix default orga DB

* fixed typescript typing errors

* Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx

Co-authored-by: Philipp Otto <[email protected]>

* applied PR feedback

* update schema version to 94

* fix CI?

* prevent prcing plan alarms from showing actions for unauthorized people

* added owner check for warnings

* added confirmation toasts on sucessful upgrade requests

* fix toast messages

* migration guide

Co-authored-by: frcroth <[email protected]>
Co-authored-by: Florian M <[email protected]>
Co-authored-by: Florian M <[email protected]>
Co-authored-by: Philipp Otto <[email protected]>
Co-authored-by: Norman Rzepka <[email protected]>

fixed unreleased changelog

fix changelog typo

disabled "about to exceed storage space" warning
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Pricing Concept
5 participants