-
Notifications
You must be signed in to change notification settings - Fork 24
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
Conversation
…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
… No overload matches this call.
…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
There was a problem hiding this 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.
{/* {pricingPlanWarnings} | ||
{pricingPlanErrors} */} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nope.
); | ||
const [organization, users] = await Promise.all([ | ||
getOrganization(this.props.organizationName), | ||
getUsers(), |
There was a problem hiding this comment.
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> |
There was a problem hiding this comment.
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"?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
Co-authored-by: Philipp Otto <[email protected]>
…icing * 'pricing' of github.com:scalableminds/webknossos: Update frontend/javascripts/admin/organization/upgrade_plan_modal.tsx
…cing * 'master' of github.com:scalableminds/webknossos: Disable compression for development proxy (#6699)
Testing went smooth mostly. However, I've got the following things:
|
…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: 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)
…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
…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
…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
…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
This PR overhauls the organization page to include more infos on the current number of users, storage quota, and the selected webKnossos plan.
Changes:
PR does NOT yet enforce any webKnossos annotation features / tools depending on your plan. This will come in a follow-up PR.
ToDo:
URL of deployed dev instance (used for testing):
Steps to test:
Issues:
(Please delete unneeded items, merge only when none are left open)