[cm6] Remove Galileo code (#14336)

GitOrigin-RevId: 878faff8eea90f508aa94e4471990c31d5d3f0e5
This commit is contained in:
Alf Eaton 2023-08-18 11:23:19 +01:00 committed by Copybot
parent f37ae7a5f8
commit e54a1d1a43
19 changed files with 2 additions and 334 deletions

View file

@ -437,7 +437,7 @@ const ProjectController = {
) )
User.findById( User.findById(
userId, userId,
'email first_name last_name referal_id signUpDate featureSwitches features featuresEpoch refProviders alphaProgram betaProgram isAdmin ace labsProgram labsProgramGalileo', 'email first_name last_name referal_id signUpDate featureSwitches features featuresEpoch refProviders alphaProgram betaProgram isAdmin ace labsProgram',
(err, user) => { (err, user) => {
// Handle case of deleted user // Handle case of deleted user
if (user == null) { if (user == null) {
@ -853,15 +853,6 @@ const ProjectController = {
!Features.hasFeature('saas') || !Features.hasFeature('saas') ||
(user.features && user.features.symbolPalette) (user.features && user.features.symbolPalette)
// It would be nice if this could go in the Galileo module but
// nothing else does that
const galileoEnabled = req.query?.galileo || ''
const galileoFeatures =
req.query && 'galileoFeatures' in req.query
? req.query.galileoFeatures.split(',').map(f => f.trim())
: ['all']
const galileoPromptWords = req.query?.galileoPromptWords || ''
// Persistent upgrade prompts // Persistent upgrade prompts
// in header & in share project modal // in header & in share project modal
const showUpgradePrompt = const showUpgradePrompt =
@ -901,7 +892,6 @@ const ProjectController = {
alphaProgram: user.alphaProgram, alphaProgram: user.alphaProgram,
betaProgram: user.betaProgram, betaProgram: user.betaProgram,
labsProgram: user.labsProgram, labsProgram: user.labsProgram,
labsProgramGalileo: user.labsProgramGalileo,
isAdmin: hasAdminAccess(user), isAdmin: hasAdminAccess(user),
}, },
userSettings: { userSettings: {
@ -945,9 +935,6 @@ const ProjectController = {
sourceEditorToolbarAssigment.variant === 'enabled', sourceEditorToolbarAssigment.variant === 'enabled',
showSymbolPalette, showSymbolPalette,
symbolPaletteAvailable: Features.hasFeature('symbol-palette'), symbolPaletteAvailable: Features.hasFeature('symbol-palette'),
galileoEnabled,
galileoFeatures,
galileoPromptWords,
detachRole, detachRole,
metadata: { viewport: false }, metadata: { viewport: false },
showUpgradePrompt, showUpgradePrompt,

View file

@ -169,7 +169,6 @@ const UserSchema = new Schema(
alphaProgram: { type: Boolean, default: false }, // experimental features alphaProgram: { type: Boolean, default: false }, // experimental features
betaProgram: { type: Boolean, default: false }, betaProgram: { type: Boolean, default: false },
labsProgram: { type: Boolean, default: false }, labsProgram: { type: Boolean, default: false },
labsProgramGalileo: { type: Boolean, default: false },
overleaf: { overleaf: {
id: { type: Number }, id: { type: Number },
accessToken: { type: String }, accessToken: { type: String },

View file

@ -55,9 +55,7 @@
if !isRestrictedTokenMember if !isRestrictedTokenMember
include ./review-panel include ./review-panel
if moduleIncludesAvailable('editor:symbol-palette') || moduleIncludesAvailable('editor:galileo') if moduleIncludesAvailable('editor:symbol-palette')
.div(vertical-resizable-bottom) .div(vertical-resizable-bottom)
if moduleIncludesAvailable('editor:symbol-palette') if moduleIncludesAvailable('editor:symbol-palette')
!= moduleIncludes('editor:symbol-palette', locals) != moduleIncludes('editor:symbol-palette', locals)
if moduleIncludesAvailable('editor:galileo')
!= moduleIncludes('editor:galileo', locals)

View file

@ -25,9 +25,6 @@ meta(name="ol-showLegacySourceEditor", data-type="boolean" content=showLegacySou
meta(name="ol-showSourceToolbar", data-type="boolean" content=showSourceToolbar) meta(name="ol-showSourceToolbar", data-type="boolean" content=showSourceToolbar)
meta(name="ol-showSymbolPalette" data-type="boolean" content=showSymbolPalette) meta(name="ol-showSymbolPalette" data-type="boolean" content=showSymbolPalette)
meta(name="ol-symbolPaletteAvailable" data-type="boolean" content=symbolPaletteAvailable) meta(name="ol-symbolPaletteAvailable" data-type="boolean" content=symbolPaletteAvailable)
meta(name="ol-galileoEnabled" data-type="string" content=galileoEnabled)
meta(name="ol-galileoPromptWords" data-type="string" content=galileoPromptWords)
meta(name="ol-galileoFeatures" data-type="json" content=galileoFeatures)
meta(name="ol-detachRole" data-type="string" content=detachRole) meta(name="ol-detachRole" data-type="string" content=detachRole)
meta(name="ol-allowedImageNames" data-type="json" content=allowedImageNames) meta(name="ol-allowedImageNames" data-type="json" content=allowedImageNames)
meta(name="ol-languages" data-type="json" content=languages) meta(name="ol-languages" data-type="json" content=languages)

View file

@ -41,6 +41,3 @@
tooltip-append-to-body="true" tooltip-append-to-body="true"
) )
i(class="{{button.iconClass}}") {{button.iconText}} i(class="{{button.iconClass}}") {{button.iconText}}
if moduleIncludesAvailable('editor:galileo')
galileo-toolbar-button

View file

@ -344,35 +344,6 @@
"from_provider": "", "from_provider": "",
"full_doc_history": "", "full_doc_history": "",
"full_width": "", "full_width": "",
"galileo_feedback_button": "",
"galileo_feedback_detail": "",
"galileo_feedback_intro": "",
"galileo_feedback_reason_incomplete": "",
"galileo_feedback_reason_incorrect": "",
"galileo_feedback_reason_not_relevant": "",
"galileo_feedback_reason_other": "",
"galileo_feedback_reasons": "",
"galileo_feedback_send_debug": "",
"galileo_feedback_send_debug_more": "",
"galileo_feedback_source": "",
"galileo_feedback_source_other": "",
"galileo_feedback_title": "",
"galileo_insert_citation_button": "",
"galileo_insert_instruction_button": "",
"galileo_insert_math_button": "",
"galileo_instruction_modal_input_placeholder": "",
"galileo_instruction_modal_title": "",
"galileo_is": "",
"galileo_only_available_in_cm6": "",
"galileo_promo_autocomplete_content": "",
"galileo_promo_autocomplete_title": "",
"galileo_promo_shadow_text_content": "",
"galileo_promo_shadow_text_title": "",
"galileo_promo_subtitle_1": "",
"galileo_promo_subtitle_2": "",
"galileo_suggestion_feedback_button": "",
"galileo_suggestions_loading_error": "",
"galileo_toggle_description": "",
"generate_token": "", "generate_token": "",
"generic_if_problem_continues_contact_us": "", "generic_if_problem_continues_contact_us": "",
"generic_linked_file_compile_error": "", "generic_linked_file_compile_error": "",
@ -775,7 +746,6 @@
"press_shortcut_to_open_advanced_reference_search": "", "press_shortcut_to_open_advanced_reference_search": "",
"price": "", "price": "",
"priority_support": "", "priority_support": "",
"privacy_policy": "",
"private": "", "private": "",
"problem_talking_to_publishing_service": "", "problem_talking_to_publishing_service": "",
"problem_with_subscription_contact_us": "", "problem_with_subscription_contact_us": "",
@ -891,8 +861,6 @@
"save_or_cancel-or": "", "save_or_cancel-or": "",
"save_or_cancel-save": "", "save_or_cancel-save": "",
"save_x_percent_or_more": "", "save_x_percent_or_more": "",
"saved_bibtex_appended_to_galileo_bib": "",
"saved_bibtex_to_new_galileo_bib": "",
"saved_by": "", "saved_by": "",
"saving": "", "saving": "",
"search": "", "search": "",
@ -941,7 +909,6 @@
"select_user": "", "select_user": "",
"selected": "", "selected": "",
"selection_deleted": "", "selection_deleted": "",
"send": "",
"send_first_message": "", "send_first_message": "",
"sending": "", "sending": "",
"sent": "", "sent": "",

View file

@ -52,9 +52,6 @@ export default EditorManager = (function () {
toggleSymbolPalette: () => { toggleSymbolPalette: () => {
const newValue = !this.$scope.editor.showSymbolPalette const newValue = !this.$scope.editor.showSymbolPalette
this.$scope.editor.showSymbolPalette = newValue this.$scope.editor.showSymbolPalette = newValue
if (newValue && this.$scope.editor.showGalileo) {
this.$scope.editor.toggleGalileoPanel()
}
ide.$scope.$emit('south-pane-toggled', newValue) ide.$scope.$emit('south-pane-toggled', newValue)
eventTracking.sendMB( eventTracking.sendMB(
newValue ? 'symbol-palette-show' : 'symbol-palette-hide' newValue ? 'symbol-palette-show' : 'symbol-palette-hide'
@ -64,24 +61,6 @@ export default EditorManager = (function () {
ide.$scope.$emit('editor:replace-selection', symbol.command) ide.$scope.$emit('editor:replace-selection', symbol.command)
eventTracking.sendMB('symbol-palette-insert') eventTracking.sendMB('symbol-palette-insert')
}, },
showGalileo: false,
toggleGalileoPanel: () => {
const newValue = !this.$scope.editor.showGalileo
this.$scope.editor.showGalileo = newValue
if (newValue && this.$scope.editor.showSymbolPalette) {
this.$scope.editor.toggleSymbolPalette()
}
ide.$scope.$emit('south-pane-toggled', newValue)
eventTracking.sendMB(newValue ? 'galileo-show' : 'galileo-hide')
},
galileoActivated: false,
toggleGalileo: () => {
const newValue = !this.$scope.editor.galileoActivated
this.$scope.editor.galileoActivated = newValue
eventTracking.sendMB(
newValue ? 'galileo-activated' : 'galileo-disabled'
)
},
multiSelectedCount: 0, multiSelectedCount: 0,
} }

View file

@ -153,12 +153,6 @@ App.directive(
} }
}) })
ide.$scope.$on('galileo-toggled', (event, isToggled) => {
if (!isToggled) {
editor.focus()
}
})
scope.$watch('autoPairDelimiters', autoPairDelimiters => { scope.$watch('autoPairDelimiters', autoPairDelimiters => {
if (autoPairDelimiters) { if (autoPairDelimiters) {
return editor.setOption('behavioursEnabled', true) return editor.setOption('behavioursEnabled', true)

View file

@ -35,12 +35,6 @@ EditorContext.Provider.propTypes = {
showSymbolPalette: PropTypes.bool, showSymbolPalette: PropTypes.bool,
toggleSymbolPalette: PropTypes.func, toggleSymbolPalette: PropTypes.func,
insertSymbol: PropTypes.func, insertSymbol: PropTypes.func,
showGalileo: PropTypes.bool,
galileoActivated: PropTypes.bool,
toggleGalileoPanel: PropTypes.func,
toggleGalileo: PropTypes.func,
insertGalileoAutocomplete: PropTypes.func,
addGalileoReferenceToProject: PropTypes.func,
isProjectOwner: PropTypes.bool, isProjectOwner: PropTypes.bool,
isRestrictedTokenMember: PropTypes.bool, isRestrictedTokenMember: PropTypes.bool,
permissionsLevel: PropTypes.oneOf(['readOnly', 'readAndWrite', 'owner']), permissionsLevel: PropTypes.oneOf(['readOnly', 'readAndWrite', 'owner']),
@ -84,10 +78,6 @@ export function EditorProvider({ children, settings }) {
const [permissionsLevel] = useScopeValue('permissionsLevel') const [permissionsLevel] = useScopeValue('permissionsLevel')
const [showSymbolPalette] = useScopeValue('editor.showSymbolPalette') const [showSymbolPalette] = useScopeValue('editor.showSymbolPalette')
const [toggleSymbolPalette] = useScopeValue('editor.toggleSymbolPalette') const [toggleSymbolPalette] = useScopeValue('editor.toggleSymbolPalette')
const [showGalileo] = useScopeValue('editor.showGalileo')
const [galileoActivated] = useScopeValue('editor.galileoActivated')
const [toggleGalileoPanel] = useScopeValue('editor.toggleGalileoPanel')
const [toggleGalileo] = useScopeValue('editor.toggleGalileo')
useEffect(() => { useEffect(() => {
if (ide?.socket) { if (ide?.socket) {
@ -149,22 +139,6 @@ export function EditorProvider({ children, settings }) {
) )
}, []) }, [])
const insertGalileoAutocomplete = useCallback(suggestion => {
window.dispatchEvent(
new CustomEvent('editor:insert-galileo-completion', {
detail: suggestion,
})
)
}, [])
const addGalileoReferenceToProject = useCallback((citationKey, bibtex) => {
window.dispatchEvent(
new CustomEvent('editor:galileo-request-save-reference-in-project', {
detail: { citationKey, bibtex },
})
)
}, [])
const value = useMemo( const value = useMemo(
() => ({ () => ({
cobranding, cobranding,
@ -177,12 +151,6 @@ export function EditorProvider({ children, settings }) {
showSymbolPalette, showSymbolPalette,
toggleSymbolPalette, toggleSymbolPalette,
insertSymbol, insertSymbol,
showGalileo,
galileoActivated,
toggleGalileoPanel,
toggleGalileo,
insertGalileoAutocomplete,
addGalileoReferenceToProject,
}), }),
[ [
cobranding, cobranding,
@ -195,12 +163,6 @@ export function EditorProvider({ children, settings }) {
showSymbolPalette, showSymbolPalette,
toggleSymbolPalette, toggleSymbolPalette,
insertSymbol, insertSymbol,
showGalileo,
galileoActivated,
toggleGalileoPanel,
toggleGalileo,
insertGalileoAutocomplete,
addGalileoReferenceToProject,
] ]
) )

View file

@ -113,7 +113,6 @@
// module styles // module styles
// TODO: find a way for modules to add styles dynamically // TODO: find a way for modules to add styles dynamically
@import 'modules/symbol-palette.less'; @import 'modules/symbol-palette.less';
@import 'modules/galileo.less';
@import 'modules/managed-users.less'; @import 'modules/managed-users.less';
@import 'modules/admin-panel.less'; @import 'modules/admin-panel.less';

View file

@ -135,12 +135,6 @@
@symbol-palette-selected-tab-color: @ol-blue; @symbol-palette-selected-tab-color: @ol-blue;
@symbol-palette-text-shadow-color: @ol-blue-gray-1; @symbol-palette-text-shadow-color: @ol-blue-gray-1;
// Galileo
@galileo-bg: #fff;
@galileo-color: @ol-blue-gray-3;
@galileo-header-background: @ol-blue-gray-1;
@galileo-suggestion-background: @ol-blue-gray-1;
// React History // React History
@history-react-header-bg: #fff; @history-react-header-bg: #fff;
@history-react-header-color: @ol-blue-gray-3; @history-react-header-color: @ol-blue-gray-3;

View file

@ -1148,12 +1148,6 @@
@symbol-palette-selected-tab-color: #fff; @symbol-palette-selected-tab-color: #fff;
@symbol-palette-text-shadow-color: @ol-blue-gray-6; @symbol-palette-text-shadow-color: @ol-blue-gray-6;
// Galileo
@galileo-bg: @ol-blue-gray-4;
@galileo-color: #fff;
@galileo-header-background: @ol-blue-gray-5;
@galileo-suggestion-background: @ol-blue-gray-3;
// Editor fonts // Editor fonts
@editor-font-lucida: 'Lucida Console', 'Source Code Pro', monospace; @editor-font-lucida: 'Lucida Console', 'Source Code Pro', monospace;
@editor-font-monaco: Monaco, Menlo, 'Ubuntu Mono', 'Consolas', monospace; @editor-font-monaco: Monaco, Menlo, 'Ubuntu Mono', 'Consolas', monospace;

View file

@ -144,6 +144,5 @@
// module styles // module styles
// TODO: find a way for modules to add styles dynamically // TODO: find a way for modules to add styles dynamically
@import 'modules/symbol-palette.less'; @import 'modules/symbol-palette.less';
@import 'modules/galileo.less';
@import 'modules/admin-panel.less'; @import 'modules/admin-panel.less';
@import 'modules/managed-users.less'; @import 'modules/managed-users.less';

View file

@ -1,152 +0,0 @@
.galileo {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
min-height: 220px;
background-color: @galileo-bg;
color: @galileo-color;
.galileo-header {
display: flex;
align-items: center;
padding-left: @padding-sm;
background-color: @galileo-header-background;
:first-child {
flex: 1;
}
.toggle-switch {
overflow: clip;
margin-left: @margin-sm;
}
.galileo-close-button {
background: transparent;
color: @galileo-color;
padding-left: @padding-sm;
padding-right: @padding-sm;
font-size: 24px;
font-weight: bold;
line-height: 1;
}
}
.galileo-body {
padding: 0 @padding-sm @padding-xs @padding-sm;
overflow-y: auto;
flex: 1;
.galileo-suggestions {
.loading {
text-align: center;
margin: @margin-sm;
}
}
.galileo-promo {
margin-top: @margin-md;
text-align: center;
p {
margin: @margin-md 0;
}
}
.galileo-promo-boxes {
display: flex;
justify-content: center;
gap: @margin-md;
text-align: left;
}
.galileo-promo-box {
width: 40%;
background: @galileo-suggestion-background;
padding-top: @padding-xs;
border-radius: @border-radius-base;
img {
width: 100%;
}
h3,
p {
color: @galileo-color;
padding: 0 @padding-sm;
margin: 0;
}
h3 {
padding-top: @padding-xs;
}
h3,
p {
padding-top: @padding-xs;
padding-bottom: @padding-xs;
}
}
.galileo-promo-image {
width: 100%;
height: 100px;
background-size: cover;
}
}
.galileo-footer {
background-color: @galileo-bg;
display: flex;
justify-content: center;
gap: @padding-xs;
padding: @padding-xs 0;
}
a,
button.btn-inline-link {
color: @galileo-color;
text-decoration: underline;
&:hover {
text-decoration: none;
}
}
}
.galileo-suggestion {
background: @galileo-suggestion-background;
color: @galileo-color;
margin-top: @margin-xs;
.galileo-suggestion-body {
padding: @padding-xs;
max-height: @line-height-computed * 4; // 4 lines
overflow: hidden;
}
.galileo-suggestion-footer {
display: flex;
justify-content: space-between;
padding: @padding-xs;
}
.galileo-suggestion-footer-links {
display: flex;
align-items: flex-end;
gap: @padding-xs;
}
}
.galileo-suggestion-text {
white-space: break-spaces;
}
.galileo-font-lucida {
font-family: @editor-font-lucida;
}
.galileo-font-monaco {
font-family: @editor-font-monaco;
}

View file

@ -971,12 +971,6 @@
@symbol-palette-selected-tab-color: #fff; @symbol-palette-selected-tab-color: #fff;
@symbol-palette-text-shadow-color: @neutral-90; @symbol-palette-text-shadow-color: @neutral-90;
// Galileo
@galileo-bg: @neutral-70;
@galileo-color: #fff;
@galileo-header-background: @neutral-80;
@galileo-suggestion-background: @neutral-60;
// Editor fonts // Editor fonts
@editor-font-lucida: 'Lucida Console', 'Source Code Pro', monospace; @editor-font-lucida: 'Lucida Console', 'Source Code Pro', monospace;
@editor-font-monaco: Monaco, Menlo, 'Ubuntu Mono', 'Consolas', monospace; @editor-font-monaco: Monaco, Menlo, 'Ubuntu Mono', 'Consolas', monospace;

View file

@ -123,12 +123,6 @@
@symbol-palette-selected-tab-color: @blue; @symbol-palette-selected-tab-color: @blue;
@symbol-palette-text-shadow-color: @neutral-20; @symbol-palette-text-shadow-color: @neutral-20;
// Galileo
@galileo-bg: #fff;
@galileo-color: @neutral-70;
@galileo-header-background: @neutral-20;
@galileo-suggestion-background: @neutral-20;
// React History // React History
@history-react-header-bg: #fff; @history-react-header-bg: #fff;
@history-react-header-color: @ol-blue-gray-3; @history-react-header-color: @ol-blue-gray-3;

View file

@ -583,37 +583,6 @@
"full_doc_history_info_v2": "You can see all the edits in your project and who made every change. Add labels to quickly access specific versions.", "full_doc_history_info_v2": "You can see all the edits in your project and who made every change. Add labels to quickly access specific versions.",
"full_document_history": "Full document <0>history</0>", "full_document_history": "Full document <0>history</0>",
"full_width": "Full width", "full_width": "Full width",
"galileo_feedback_button": "Give feedback",
"galileo_feedback_detail": "Tell us more",
"galileo_feedback_intro": "We are working on improving Galileo, your feedback is very welcome. ",
"galileo_feedback_reason_incomplete": "Suggestion incomplete",
"galileo_feedback_reason_incorrect": "Suggestion incorrect",
"galileo_feedback_reason_not_relevant": "Suggestion not relevant",
"galileo_feedback_reason_other": "Other",
"galileo_feedback_reasons": "Choose a reason",
"galileo_feedback_send_debug": "Share additional data",
"galileo_feedback_send_debug_more": "Share the part of your document that was used to generate the suggestion",
"galileo_feedback_source": "Select a recent suggestion",
"galileo_feedback_source_other": "My feedback is not about a recent suggestion",
"galileo_feedback_title": "Galileo Feedback",
"galileo_insert_citation_button": "Insert citation",
"galileo_insert_instruction_button": "Insert instruction",
"galileo_insert_math_button": "Insert math",
"galileo_instruction_modal_input_placeholder": "e.g. add centered figure",
"galileo_instruction_modal_title": "Ask Galileo to generate LaTeX",
"galileo_is": "Galileo is",
"galileo_is_part_of_overleaf_labs": "Galileo is an experiment in <0>Overleaf Labs</0>",
"galileo_only_available_in_cm6": "Galileo is only available in the source editor.",
"galileo_program_description": "Galileo is an AI that helps you write your documents",
"galileo_promo_autocomplete_content": "Galileo will suggest relevant references for your work.",
"galileo_promo_autocomplete_title": "Citations",
"galileo_promo_shadow_text_content": "Galileo will provide contextualized relevant formulae, definitions, etc.",
"galileo_promo_shadow_text_title": "Math Suggestions",
"galileo_promo_subtitle_1": "Galileo is a tool for scientific writing developed by a team of people.",
"galileo_promo_subtitle_2": "Galileo can be triggered in math environments, in citation commands and after comments.",
"galileo_suggestion_feedback_button": "Was this suggestion useful?",
"galileo_suggestions_loading_error": "Error loading Galileo suggestions",
"galileo_toggle_description": "Toggle Galileo",
"gallery": "Gallery", "gallery": "Gallery",
"gallery_find_more": "Find More __itemPlural__", "gallery_find_more": "Find More __itemPlural__",
"gallery_items_tagged": "__itemPlural__ tagged __title__", "gallery_items_tagged": "__itemPlural__ tagged __title__",
@ -1442,8 +1411,6 @@
"save_or_cancel-or": "or", "save_or_cancel-or": "or",
"save_or_cancel-save": "Save", "save_or_cancel-save": "Save",
"save_x_percent_or_more": "Save __percent__% or more", "save_x_percent_or_more": "Save __percent__% or more",
"saved_bibtex_appended_to_galileo_bib": "The <strong>__citeKey__</strong> cite key has been added to the <strong>__galileoBib__</strong> file in your project.",
"saved_bibtex_to_new_galileo_bib": "The <strong>__citeKey__</strong> cite key has been copied into a new <strong>__galileoBib__</strong> file in your project. Include this file in your project using the appropriate method for your citation package.",
"saved_by": "Saved by", "saved_by": "Saved by",
"saving": "Saving", "saving": "Saving",
"saving_20_percent": "Saving 20%!", "saving_20_percent": "Saving 20%!",
@ -1915,7 +1882,6 @@
"you_are_on_x_plan_as_a_confirmed_member_of_institution_y": "You are on our <0>__planName__</0> plan as a <1>confirmed member</1> of <1>__institutionName__</1>", "you_are_on_x_plan_as_a_confirmed_member_of_institution_y": "You are on our <0>__planName__</0> plan as a <1>confirmed member</1> of <1>__institutionName__</1>",
"you_are_on_x_plan_as_member_of_group_subscription_y_administered_by_z": "You are on our <0>__planName__</0> plan as a <1>member</1> of the group subscription <1>__groupName__</1> administered by <1>__adminEmail__</1>", "you_are_on_x_plan_as_member_of_group_subscription_y_administered_by_z": "You are on our <0>__planName__</0> plan as a <1>member</1> of the group subscription <1>__groupName__</1> administered by <1>__adminEmail__</1>",
"you_can_now_log_in_sso": "You can now log in through your institution and if eligible you will receive <0>__appName__ Professional features</0>.", "you_can_now_log_in_sso": "You can now log in through your institution and if eligible you will receive <0>__appName__ Professional features</0>.",
"you_can_opt_in_and_out_of_galileo_at_any_time_on_this_page": "You can <0>opt in and out</0> of Galileo at any time on this page",
"you_can_opt_in_and_out_of_overleaf_labs_at_any_time_on_this_page": "You can <0>opt in and out</0> of Overleaf Labs at any time on this page", "you_can_opt_in_and_out_of_overleaf_labs_at_any_time_on_this_page": "You can <0>opt in and out</0> of Overleaf Labs at any time on this page",
"you_can_opt_in_and_out_of_the_program_at_any_time_on_this_page": "You can <0>opt in and out</0> of the program at any time on this page", "you_can_opt_in_and_out_of_the_program_at_any_time_on_this_page": "You can <0>opt in and out</0> of the program at any time on this page",
"you_can_opt_in_to_individual_experiments": "You will be asked to opt in and out of individual experiments; each experiment may have unique partners, requirements, terms and conditions, etc. that must be opted in to for that specific experiment", "you_can_opt_in_to_individual_experiments": "You will be asked to opt in and out of individual experiments; each experiment may have unique partners, requirements, terms and conditions, etc. that must be opted in to for that specific experiment",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB