mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-03 06:09:02 +02:00
Merge pull request #24733 from overleaf/mj-labs-without-features
[web] Move labs experiments from features to own property GitOrigin-RevId: 22dee79758e5fa65fc31d9b8d4b155443cd585e7
This commit is contained in:
committed by
Copybot
parent
8fa6760d26
commit
9896bf21cd
@@ -363,7 +363,7 @@ const _ProjectController = {
|
||||
user: (async () => {
|
||||
const user = await User.findById(
|
||||
userId,
|
||||
'email first_name last_name referal_id signUpDate featureSwitches features featuresEpoch refProviders alphaProgram betaProgram isAdmin ace labsProgram completedTutorials writefull aiErrorAssistant'
|
||||
'email first_name last_name referal_id signUpDate featureSwitches features featuresEpoch refProviders alphaProgram betaProgram isAdmin ace labsProgram labsExperiments completedTutorials writefull aiErrorAssistant'
|
||||
).exec()
|
||||
// Handle case of deleted user
|
||||
if (!user) {
|
||||
@@ -838,6 +838,7 @@ const _ProjectController = {
|
||||
referencesSearchMode: user.ace.referencesSearchMode,
|
||||
enableNewEditor: user.ace.enableNewEditor ?? true,
|
||||
},
|
||||
labsExperiments: user.labsExperiments ?? [],
|
||||
privilegeLevel,
|
||||
anonymous,
|
||||
isTokenMember,
|
||||
|
||||
@@ -149,6 +149,7 @@ async function settingsPage(req, res) {
|
||||
enabled: Boolean(user.aiErrorAssistant?.enabled),
|
||||
},
|
||||
},
|
||||
labsExperiments: user.labsExperiments ?? [],
|
||||
hasPassword: !!user.hashedPassword,
|
||||
shouldAllowEditingDetails,
|
||||
oauthProviders: UserPagesController._translateProviderDescriptions(
|
||||
|
||||
@@ -203,6 +203,7 @@ const UserSchema = new Schema(
|
||||
alphaProgram: { type: Boolean, default: false }, // experimental features
|
||||
betaProgram: { type: Boolean, default: false },
|
||||
labsProgram: { type: Boolean, default: false },
|
||||
labsExperiments: { type: Array, default: [] },
|
||||
overleaf: {
|
||||
id: { type: Number },
|
||||
accessToken: { type: String },
|
||||
|
||||
@@ -2,6 +2,7 @@ meta(name="ol-project_id" content=project_id)
|
||||
meta(name="ol-projectName" content=projectName)
|
||||
meta(name="ol-userSettings" data-type="json" content=userSettings)
|
||||
meta(name="ol-user" data-type="json" content=user)
|
||||
meta(name="ol-labsExperiments" data-type="json" content=labsExperiments)
|
||||
meta(name="ol-learnedWords" data-type="json" content=learnedWords)
|
||||
meta(name="ol-anonymous" data-type="boolean" content=anonymous)
|
||||
meta(name="ol-brandVariation" data-type="json" content=brandVariation)
|
||||
|
||||
@@ -22,6 +22,7 @@ block append meta
|
||||
meta(name="ol-passwordStrengthOptions", data-type="json", content=settings.passwordStrengthOptions || {})
|
||||
meta(name="ol-isExternalAuthenticationSystemUsed" data-type="boolean" content=externalAuthenticationSystemUsed())
|
||||
meta(name="ol-user" data-type="json" content=user)
|
||||
meta(name="ol-labsExperiments" data-type="json" content=labsExperiments)
|
||||
meta(name="ol-dropbox" data-type="json" content=dropbox)
|
||||
meta(name="ol-github" data-type="json" content=github)
|
||||
meta(name="ol-projectSyncSuccessMessage", content=projectSyncSuccessMessage)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
import getMeta from './meta'
|
||||
|
||||
// Should be `never` when no experiments are active. Otherwise it should be a
|
||||
// union of active experiment names e.g. `'experiment1' | 'experiment2'`
|
||||
export type ActiveExperiment = never
|
||||
|
||||
export const isInExperiment = (experiment: ActiveExperiment): boolean => {
|
||||
const experiments = getMeta('ol-labsExperiments')
|
||||
return Boolean(experiments?.includes(experiment))
|
||||
}
|
||||
@@ -52,6 +52,7 @@ import { SubscriptionChangePreview } from '../../../types/subscription/subscript
|
||||
import { DefaultNavbarMetadata } from '@/features/ui/components/types/default-navbar-metadata'
|
||||
import { FooterMetadata } from '@/features/ui/components/types/footer-metadata'
|
||||
import type { ScriptLogType } from '../../../modules/admin-panel/frontend/js/features/script-logs/script-log'
|
||||
import { ActiveExperiment } from './labs-utils'
|
||||
export interface Meta {
|
||||
'ol-ExposedSettings': ExposedSettings
|
||||
'ol-addonPrices': Record<string, { annual: string; monthly: string }>
|
||||
@@ -139,6 +140,7 @@ export interface Meta {
|
||||
'ol-itm_content': string
|
||||
'ol-itm_referrer': string
|
||||
'ol-labs': boolean
|
||||
'ol-labsExperiments': ActiveExperiment[] | undefined
|
||||
'ol-languages': SpellCheckLanguage[]
|
||||
'ol-learnedWords': string[]
|
||||
'ol-legacyEditorThemes': string[]
|
||||
|
||||
Reference in New Issue
Block a user