satellite/console, web/satellite: feature flag for new objects flow
Added a feature flag to switch between old and new objects flow Change-Id: Id1802f9fb1230928445f16e4d0a62aecdc91c038
This commit is contained in:
parent
91158fd3bf
commit
3c683998f5
@ -94,6 +94,7 @@ type Config struct {
|
|||||||
NewOnboarding bool `help:"indicates if new onboarding flow should be rendered" default:"true"`
|
NewOnboarding bool `help:"indicates if new onboarding flow should be rendered" default:"true"`
|
||||||
NewNavigation bool `help:"indicates if new navigation structure should be rendered" default:"false"`
|
NewNavigation bool `help:"indicates if new navigation structure should be rendered" default:"false"`
|
||||||
NewBrowser bool `help:"indicates if new browser should be used" default:"false"`
|
NewBrowser bool `help:"indicates if new browser should be used" default:"false"`
|
||||||
|
NewObjectsFlow bool `help:"indicates if new objects flow should be used" default:"false"`
|
||||||
|
|
||||||
// RateLimit defines the configuration for the IP and userID rate limiters.
|
// RateLimit defines the configuration for the IP and userID rate limiters.
|
||||||
RateLimit web.RateLimiterConfig
|
RateLimit web.RateLimiterConfig
|
||||||
@ -380,6 +381,7 @@ func (server *Server) appHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
DefaultPaidBandwidthLimit memory.Size
|
DefaultPaidBandwidthLimit memory.Size
|
||||||
NewNavigation bool
|
NewNavigation bool
|
||||||
NewBrowser bool
|
NewBrowser bool
|
||||||
|
NewObjectsFlow bool
|
||||||
}
|
}
|
||||||
|
|
||||||
data.ExternalAddress = server.config.ExternalAddress
|
data.ExternalAddress = server.config.ExternalAddress
|
||||||
@ -410,6 +412,7 @@ func (server *Server) appHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
data.NewOnboarding = server.config.NewOnboarding
|
data.NewOnboarding = server.config.NewOnboarding
|
||||||
data.NewNavigation = server.config.NewNavigation
|
data.NewNavigation = server.config.NewNavigation
|
||||||
data.NewBrowser = server.config.NewBrowser
|
data.NewBrowser = server.config.NewBrowser
|
||||||
|
data.NewObjectsFlow = server.config.NewObjectsFlow
|
||||||
|
|
||||||
templates, err := server.loadTemplates()
|
templates, err := server.loadTemplates()
|
||||||
if err != nil || templates.index == nil {
|
if err != nil || templates.index == nil {
|
||||||
|
3
scripts/testdata/satellite-config.yaml.lock
vendored
3
scripts/testdata/satellite-config.yaml.lock
vendored
@ -133,6 +133,9 @@ compensation.withheld-percents: 75,75,75,50,50,50,25,25,25,0,0,0,0,0,0
|
|||||||
# indicates if new navigation structure should be rendered
|
# indicates if new navigation structure should be rendered
|
||||||
# console.new-navigation: false
|
# console.new-navigation: false
|
||||||
|
|
||||||
|
# indicates if new objects flow should be used
|
||||||
|
# console.new-objects-flow: false
|
||||||
|
|
||||||
# indicates if new onboarding flow should be rendered
|
# indicates if new onboarding flow should be rendered
|
||||||
# console.new-onboarding: true
|
# console.new-onboarding: true
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
<meta name="default-paid-bandwidth-limit" content="{{ .DefaultPaidBandwidthLimit }}">
|
<meta name="default-paid-bandwidth-limit" content="{{ .DefaultPaidBandwidthLimit }}">
|
||||||
<meta name="new-navigation-structure" content="{{ .NewNavigation }}">
|
<meta name="new-navigation-structure" content="{{ .NewNavigation }}">
|
||||||
<meta name="new-browser" content="{{ .NewBrowser }}">
|
<meta name="new-browser" content="{{ .NewBrowser }}">
|
||||||
|
<meta name="new-objects-flow" content="{{ .NewObjectsFlow }}">
|
||||||
<title>{{ .SatelliteName }}</title>
|
<title>{{ .SatelliteName }}</title>
|
||||||
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACDVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////8nbP8obf8pbf8qbv8rb/8sb/8tcP8ucf8vcf8vcv8xc/8zdP81df81dv82dv83d/84eP85eP86ef87ev89e/8+fP8/fP9Aff9Bfv9Cfv9Df/9EgP9FgP9Ggf9Hgv9Jg/9LhP9Mhf9Nhv9Oh/9Ph/9RiP9Rif9Sif9Ui/9Vi/9WjP9Xjf9Yjf9aj/9dkf9ekf9ilP9jlf9llv9nl/9omP9rmv9sm/9tnP9vnf9wnv9yn/91of92ov93o/94o/98pv9/qP+Bqf+Cqv+Eq/+FrP+Hrf+Irv+Jr/+Kr/+Msf+Nsv+Stf+Ttf+Ttv+Utv+Vt/+WuP+XuP+Zuf+Zuv+hv/+kwf+lwv+mwv+nw/+oxP+pxP+pxf+qxf+rxv+yy/+0zP+1zf+3zv+4z/+60P+70f+90v+/0/+/1P/B1f/D1v/E1//F1//F2P/G2P/H2f/I2v/J2v/K2//L3P/P3v/Q3//R4P/S4P/V4v/V4//W4//X5P/Y5P/b5v/b5//c5//d6P/e6f/f6f/g6v/h6//j7P/k7f/l7f/m7v/q8f/r8f/u8//w9f/x9f/x9v/z9//0+P/2+f/3+f/3+v/4+v/5+//6/P/8/f/9/v/+/v////9uCbVDAAAAFXRSTlMABAU4Ozw9PpSWl5ilp6ip4+Tl/P6nIcp/AAAAAWJLR0SuuWuTpwAAAh5JREFUOMtjYGBgYOcXEl6HAYSF+FgZQICJex1OwMkEVIAi3+Xh1ozM5wKaj8xfpBwcITsbWYSNgR+JtzpJYvU6jbAVSEK8DEIITpOZqnxItISWfgVCTJAB7v4ZXpKRC9uMNCqXJci6TID7hQFMrV2zJE7abTKQFesDJGb7SYTOX7sGLAVWUKCgrGZcDeaDFaxb12alqC6XDlMwTyKnRLJ1HbKCddNEc0skJkAVdEssXatRiKqgVmLlatUqqILVpuaOEnLJy4GsIhONuHlAOldVwtJWcwnMDb2i4dPKdHVKV3uqRCdYqU9psVDOmh0vUQN35FTRhevWLU+V0FeZBdTtpSQRvgAoKtuMqmBdpKxvKYjXJ+o+cx0WBRPFO6ABHuesMheLghIdePiutc7AoqBLchZchVMSFgUr9HTS8sEgL1C0E1XBRNGUeeV6OlFONjbqSjY2Nv7mKjnzMyXqYQrW2OsYS8smLkOE5OpsFSkdQ6PlUAU9EgtXq6MFdZ3EkpVKNVAFc8TKW6QbURVMFK1slOyGuSFdUkLOoQtZwSRXaRmpKLgj1y1eMjdIImguTMHCCAnvGcuXQhIMPMl1O8hnrOy31GtfnaNi3oRIcohEu7ZY20DZK0DGTCV7NVKi5UVK40vDJVatU/dfgCTEw8AsgsSdLx+TKjUdOeMAsycnMr/BzrIcmc8ByrycuDMvByM4f7PyCmLL/gK8LEBJALYsGEdXEyupAAAAAElFTkSuQmCC" type="image/x-icon">
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACDVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////8nbP8obf8pbf8qbv8rb/8sb/8tcP8ucf8vcf8vcv8xc/8zdP81df81dv82dv83d/84eP85eP86ef87ev89e/8+fP8/fP9Aff9Bfv9Cfv9Df/9EgP9FgP9Ggf9Hgv9Jg/9LhP9Mhf9Nhv9Oh/9Ph/9RiP9Rif9Sif9Ui/9Vi/9WjP9Xjf9Yjf9aj/9dkf9ekf9ilP9jlf9llv9nl/9omP9rmv9sm/9tnP9vnf9wnv9yn/91of92ov93o/94o/98pv9/qP+Bqf+Cqv+Eq/+FrP+Hrf+Irv+Jr/+Kr/+Msf+Nsv+Stf+Ttf+Ttv+Utv+Vt/+WuP+XuP+Zuf+Zuv+hv/+kwf+lwv+mwv+nw/+oxP+pxP+pxf+qxf+rxv+yy/+0zP+1zf+3zv+4z/+60P+70f+90v+/0/+/1P/B1f/D1v/E1//F1//F2P/G2P/H2f/I2v/J2v/K2//L3P/P3v/Q3//R4P/S4P/V4v/V4//W4//X5P/Y5P/b5v/b5//c5//d6P/e6f/f6f/g6v/h6//j7P/k7f/l7f/m7v/q8f/r8f/u8//w9f/x9f/x9v/z9//0+P/2+f/3+f/3+v/4+v/5+//6/P/8/f/9/v/+/v////9uCbVDAAAAFXRSTlMABAU4Ozw9PpSWl5ilp6ip4+Tl/P6nIcp/AAAAAWJLR0SuuWuTpwAAAh5JREFUOMtjYGBgYOcXEl6HAYSF+FgZQICJex1OwMkEVIAi3+Xh1ozM5wKaj8xfpBwcITsbWYSNgR+JtzpJYvU6jbAVSEK8DEIITpOZqnxItISWfgVCTJAB7v4ZXpKRC9uMNCqXJci6TID7hQFMrV2zJE7abTKQFesDJGb7SYTOX7sGLAVWUKCgrGZcDeaDFaxb12alqC6XDlMwTyKnRLJ1HbKCddNEc0skJkAVdEssXatRiKqgVmLlatUqqILVpuaOEnLJy4GsIhONuHlAOldVwtJWcwnMDb2i4dPKdHVKV3uqRCdYqU9psVDOmh0vUQN35FTRhevWLU+V0FeZBdTtpSQRvgAoKtuMqmBdpKxvKYjXJ+o+cx0WBRPFO6ABHuesMheLghIdePiutc7AoqBLchZchVMSFgUr9HTS8sEgL1C0E1XBRNGUeeV6OlFONjbqSjY2Nv7mKjnzMyXqYQrW2OsYS8smLkOE5OpsFSkdQ6PlUAU9EgtXq6MFdZ3EkpVKNVAFc8TKW6QbURVMFK1slOyGuSFdUkLOoQtZwSRXaRmpKLgj1y1eMjdIImguTMHCCAnvGcuXQhIMPMl1O8hnrOy31GtfnaNi3oRIcohEu7ZY20DZK0DGTCV7NVKi5UVK40vDJVatU/dfgCTEw8AsgsSdLx+TKjUdOeMAsycnMr/BzrIcmc8ByrycuDMvByM4f7PyCmLL/gK8LEBJALYsGEdXEyupAAAAAElFTkSuQmCC" type="image/x-icon">
|
||||||
<link rel="dns-prefetch" href="https://js.stripe.com">
|
<link rel="dns-prefetch" href="https://js.stripe.com">
|
||||||
|
@ -41,6 +41,7 @@ export default class App extends Vue {
|
|||||||
const couponCodeSignupUIEnabled = MetaUtils.getMetaContent('coupon-code-signup-ui-enabled');
|
const couponCodeSignupUIEnabled = MetaUtils.getMetaContent('coupon-code-signup-ui-enabled');
|
||||||
const isNewOnboardingFlow = MetaUtils.getMetaContent('new-onboarding-flow');
|
const isNewOnboardingFlow = MetaUtils.getMetaContent('new-onboarding-flow');
|
||||||
const isNewNavStructure = MetaUtils.getMetaContent('new-navigation-structure');
|
const isNewNavStructure = MetaUtils.getMetaContent('new-navigation-structure');
|
||||||
|
const isNewObjectsFlow = MetaUtils.getMetaContent('new-objects-flow');
|
||||||
|
|
||||||
if (satelliteName) {
|
if (satelliteName) {
|
||||||
this.$store.dispatch(APP_STATE_ACTIONS.SET_SATELLITE_NAME, satelliteName);
|
this.$store.dispatch(APP_STATE_ACTIONS.SET_SATELLITE_NAME, satelliteName);
|
||||||
@ -78,6 +79,10 @@ export default class App extends Vue {
|
|||||||
if (isNewNavStructure) {
|
if (isNewNavStructure) {
|
||||||
this.$store.dispatch(APP_STATE_ACTIONS.SET_NAV_STRUCTURE_STATUS, isNewNavStructure === 'true');
|
this.$store.dispatch(APP_STATE_ACTIONS.SET_NAV_STRUCTURE_STATUS, isNewNavStructure === 'true');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isNewObjectsFlow) {
|
||||||
|
this.$store.dispatch(APP_STATE_ACTIONS.SET_OBJECTS_FLOW_STATUS, isNewObjectsFlow === 'true');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -42,6 +42,7 @@ class State {
|
|||||||
public couponCodeSignupUIEnabled = false,
|
public couponCodeSignupUIEnabled = false,
|
||||||
public isNewOnbCLIFlow = false,
|
public isNewOnbCLIFlow = false,
|
||||||
public isNewNavStructure = false,
|
public isNewNavStructure = false,
|
||||||
|
public isNewObjectsFlow = false,
|
||||||
){}
|
){}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,6 +148,9 @@ export const appStateModule = {
|
|||||||
[APP_STATE_MUTATIONS.SET_NAV_STRUCTURE_STATUS](state: State, isNewNavStructure: boolean): void {
|
[APP_STATE_MUTATIONS.SET_NAV_STRUCTURE_STATUS](state: State, isNewNavStructure: boolean): void {
|
||||||
state.isNewNavStructure = isNewNavStructure;
|
state.isNewNavStructure = isNewNavStructure;
|
||||||
},
|
},
|
||||||
|
[APP_STATE_MUTATIONS.SET_OBJECTS_FLOW_STATUS](state: State, isNewObjectsFlow: boolean): void {
|
||||||
|
state.isNewObjectsFlow = isNewObjectsFlow;
|
||||||
|
},
|
||||||
[APP_STATE_MUTATIONS.SET_COUPON_CODE_BILLING_UI_STATUS](state: State, couponCodeBillingUIEnabled: boolean): void {
|
[APP_STATE_MUTATIONS.SET_COUPON_CODE_BILLING_UI_STATUS](state: State, couponCodeBillingUIEnabled: boolean): void {
|
||||||
state.couponCodeBillingUIEnabled = couponCodeBillingUIEnabled;
|
state.couponCodeBillingUIEnabled = couponCodeBillingUIEnabled;
|
||||||
},
|
},
|
||||||
@ -284,6 +288,9 @@ export const appStateModule = {
|
|||||||
[APP_STATE_ACTIONS.SET_NAV_STRUCTURE_STATUS]: function ({commit}: AppContext, isNewNavStructure: boolean): void {
|
[APP_STATE_ACTIONS.SET_NAV_STRUCTURE_STATUS]: function ({commit}: AppContext, isNewNavStructure: boolean): void {
|
||||||
commit(APP_STATE_MUTATIONS.SET_NAV_STRUCTURE_STATUS, isNewNavStructure);
|
commit(APP_STATE_MUTATIONS.SET_NAV_STRUCTURE_STATUS, isNewNavStructure);
|
||||||
},
|
},
|
||||||
|
[APP_STATE_ACTIONS.SET_OBJECTS_FLOW_STATUS]: function ({commit}: AppContext, isNewObjectsFlow: boolean): void {
|
||||||
|
commit(APP_STATE_MUTATIONS.SET_OBJECTS_FLOW_STATUS, isNewObjectsFlow);
|
||||||
|
},
|
||||||
[APP_STATE_ACTIONS.SET_COUPON_CODE_BILLING_UI_STATUS]: function ({commit}: AppContext, couponCodeBillingUIEnabled: boolean): void {
|
[APP_STATE_ACTIONS.SET_COUPON_CODE_BILLING_UI_STATUS]: function ({commit}: AppContext, couponCodeBillingUIEnabled: boolean): void {
|
||||||
commit(APP_STATE_MUTATIONS.SET_COUPON_CODE_BILLING_UI_STATUS, couponCodeBillingUIEnabled);
|
commit(APP_STATE_MUTATIONS.SET_COUPON_CODE_BILLING_UI_STATUS, couponCodeBillingUIEnabled);
|
||||||
},
|
},
|
||||||
|
@ -37,4 +37,5 @@ export const APP_STATE_MUTATIONS = {
|
|||||||
SET_COUPON_CODE_SIGNUP_UI_STATUS: 'SET_COUPON_CODE_SIGNUP_UI_STATUS',
|
SET_COUPON_CODE_SIGNUP_UI_STATUS: 'SET_COUPON_CODE_SIGNUP_UI_STATUS',
|
||||||
SET_ONB_CLI_FLOW_STATUS: 'SET_ONB_CLI_FLOW_STATUS',
|
SET_ONB_CLI_FLOW_STATUS: 'SET_ONB_CLI_FLOW_STATUS',
|
||||||
SET_NAV_STRUCTURE_STATUS: 'SET_NAV_STRUCTURE_STATUS',
|
SET_NAV_STRUCTURE_STATUS: 'SET_NAV_STRUCTURE_STATUS',
|
||||||
|
SET_OBJECTS_FLOW_STATUS: 'SET_OBJECTS_FLOW_STATUS',
|
||||||
};
|
};
|
||||||
|
@ -31,6 +31,7 @@ export const APP_STATE_ACTIONS = {
|
|||||||
SET_COUPON_CODE_SIGNUP_UI_STATUS: 'SET_COUPON_CODE_SIGNUP_UI_STATUS',
|
SET_COUPON_CODE_SIGNUP_UI_STATUS: 'SET_COUPON_CODE_SIGNUP_UI_STATUS',
|
||||||
SET_ONB_CLI_FLOW_STATUS: 'SET_ONB_CLI_FLOW_STATUS',
|
SET_ONB_CLI_FLOW_STATUS: 'SET_ONB_CLI_FLOW_STATUS',
|
||||||
SET_NAV_STRUCTURE_STATUS: 'SET_NAV_STRUCTURE_STATUS',
|
SET_NAV_STRUCTURE_STATUS: 'SET_NAV_STRUCTURE_STATUS',
|
||||||
|
SET_OBJECTS_FLOW_STATUS: 'SET_OBJECTS_FLOW_STATUS',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const NOTIFICATION_ACTIONS = {
|
export const NOTIFICATION_ACTIONS = {
|
||||||
|
Loading…
Reference in New Issue
Block a user