satellite/console,web/satellite: add feature flag for limit increase req
This change adds a feature flag (default disabled) to enable the ability to submit a project limit increase request directly from the UI. When this feature is disabled, the user will be directed to a page to file a support ticket. Resolves https://github.com/storj/storj/issues/6480 Change-Id: I5f355dcb1a40e5b694f9623f05fe706ed4d6a528
This commit is contained in:
parent
147076a696
commit
cdcd3b2687
@ -54,6 +54,7 @@ type FrontendConfig struct {
|
||||
UnregisteredInviteEmailsEnabled bool `json:"unregisteredInviteEmailsEnabled"`
|
||||
FreeTierInvitesEnabled bool `json:"freeTierInvitesEnabled"`
|
||||
UserBalanceForUpgrade int64 `json:"userBalanceForUpgrade"`
|
||||
LimitIncreaseRequestEnabled bool `json:"limitIncreaseRequestEnabled"`
|
||||
}
|
||||
|
||||
// Satellites is a configuration value that contains a list of satellite names and addresses.
|
||||
|
@ -111,6 +111,7 @@ type Config struct {
|
||||
VuetifyHost string `help:"the subdomain the vuetify POC project should be hosted on" default:""`
|
||||
ObjectBrowserPaginationEnabled bool `help:"whether to use object browser pagination" default:"false"`
|
||||
ObjectBrowserCardViewEnabled bool `help:"whether to use object browser card view" default:"false"`
|
||||
LimitIncreaseRequestEnabled bool `help:"whether to allow request limit increases directly from the UI" default:"false"`
|
||||
|
||||
OauthCodeExpiry time.Duration `help:"how long oauth authorization codes are issued for" default:"10m"`
|
||||
OauthAccessTokenExpiry time.Duration `help:"how long oauth access tokens are issued for" default:"24h"`
|
||||
@ -755,6 +756,7 @@ func (server *Server) frontendConfigHandler(w http.ResponseWriter, r *http.Reque
|
||||
UnregisteredInviteEmailsEnabled: server.config.UnregisteredInviteEmailsEnabled,
|
||||
FreeTierInvitesEnabled: server.config.FreeTierInvitesEnabled,
|
||||
UserBalanceForUpgrade: server.config.UserBalanceForUpgrade,
|
||||
LimitIncreaseRequestEnabled: server.config.LimitIncreaseRequestEnabled,
|
||||
}
|
||||
|
||||
err := json.NewEncoder(w).Encode(&cfg)
|
||||
|
3
scripts/testdata/satellite-config.yaml.lock
vendored
3
scripts/testdata/satellite-config.yaml.lock
vendored
@ -307,6 +307,9 @@ compensation.withheld-percents: 75,75,75,50,50,50,25,25,25,0,0,0,0,0,0
|
||||
# url link to let us know page
|
||||
# console.let-us-know-url: https://storjlabs.atlassian.net/servicedesk/customer/portals
|
||||
|
||||
# whether to allow request limit increases directly from the UI
|
||||
# console.limit-increase-request-enabled: false
|
||||
|
||||
# indicates whether limit card section of the UI is enabled
|
||||
# console.limits-area-enabled: true
|
||||
|
||||
|
@ -77,12 +77,22 @@
|
||||
<p class="modal__info">
|
||||
If you need more storage,
|
||||
<span
|
||||
v-if="isLimitIncreaseRequestEnabled"
|
||||
class="modal__info__link"
|
||||
rel="noopener noreferrer"
|
||||
@click="openRequestLimitModal"
|
||||
>
|
||||
request limit increase.
|
||||
</span>
|
||||
<a
|
||||
v-else
|
||||
class="modal__info__link"
|
||||
href="https://supportdcs.storj.io/hc/en-us/requests/new?ticket_form_id=360000683212"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
request limit increase.
|
||||
</a>
|
||||
</p>
|
||||
<div class="modal__buttons">
|
||||
<VButton
|
||||
@ -187,6 +197,11 @@ const isBandwidthUpdating = computed((): boolean => {
|
||||
return activeLimit.value === LimitToChange.Bandwidth;
|
||||
});
|
||||
|
||||
/**
|
||||
* Indicates if limit increase requests can be sent directly from the UI.
|
||||
*/
|
||||
const isLimitIncreaseRequestEnabled = computed<boolean>(() => configStore.state.config.limitIncreaseRequestEnabled);
|
||||
|
||||
function openRequestLimitModal(): void {
|
||||
appStore.updateActiveModal(MODALS.requestProjectLimitIncrease);
|
||||
}
|
||||
|
@ -51,6 +51,7 @@ export class FrontendConfig {
|
||||
unregisteredInviteEmailsEnabled: boolean;
|
||||
freeTierInvitesEnabled: boolean;
|
||||
userBalanceForUpgrade: number;
|
||||
limitIncreaseRequestEnabled: boolean;
|
||||
}
|
||||
|
||||
export class MultiCaptchaConfig {
|
||||
|
@ -227,6 +227,11 @@ const descriptionRules: ValidationRule<string>[] = [
|
||||
*/
|
||||
const billingEnabled = computed<boolean>(() => configStore.state.config.billingFeaturesEnabled);
|
||||
|
||||
/**
|
||||
* Indicates if limit increase requests can be sent directly from the UI.
|
||||
*/
|
||||
const isLimitIncreaseRequestEnabled = computed<boolean>(() => configStore.state.config.limitIncreaseRequestEnabled);
|
||||
|
||||
/**
|
||||
* Handles primary button click.
|
||||
*/
|
||||
@ -248,7 +253,11 @@ async function onPrimaryClick(): Promise<void> {
|
||||
notify.success('Project created.');
|
||||
});
|
||||
} else if (usersStore.state.user.paidTier) {
|
||||
if (showLimitIncreaseDialog.value) {
|
||||
if (!isLimitIncreaseRequestEnabled.value) {
|
||||
model.value = false;
|
||||
window.open('https://supportdcs.storj.io/hc/en-us/requests/new?ticket_form_id=360000683212', '_blank', 'noopener');
|
||||
return;
|
||||
} else if (showLimitIncreaseDialog.value) {
|
||||
if (!formValid.value) return;
|
||||
await withLoading(async () => {
|
||||
try {
|
||||
|
Loading…
Reference in New Issue
Block a user