Admin tools: remove themed pages env var; style admin header

- themed pages now is enabled by default upstream
  - make the header background red on admin manage urers/projects pages
  - fix minor bug
This commit is contained in:
yu-i-i
2026-09-22 02:41:43 +02:00
parent bd5507262e
commit 539e155d6b
9 changed files with 9 additions and 31 deletions
-3
View File
@@ -1243,9 +1243,6 @@ module.exports = {
},
splitTestOverrides: {
...(process.env.OVERLEAF_THEMED_DASHBOARD?.toLowerCase() === 'true' ? {
'themed-project-dashboard': 'enabled',
} : {}),
...(process.env.OVERLEAF_HISTORY_RESTORE?.toLowerCase() === 'true' ? {
'history-ranges-support': 'enabled',
'revert-file': 'enabled',
@@ -16,7 +16,6 @@ import { Project } from '../../../../app/src/models/Project.mjs'
import { DeletedProject } from '../../../../app/src/models/DeletedProject.mjs'
import { OError } from '../../../../app/src/Features/Errors/Errors.js'
import HttpErrorHandler from '../../../../app/src/Features/Errors/HttpErrorHandler.mjs'
import SplitTestHandler from '../../../../app/src/Features/SplitTests/SplitTestHandler.mjs'
const __dirname = Path.dirname(fileURLToPath(import.meta.url))
@@ -50,12 +49,6 @@ async function manageProjectsPage(req, res, next) {
user
)
await SplitTestHandler.promises.getAssignment(
req,
res,
'themed-project-dashboard'
)
res.render(Path.resolve(__dirname, '../views/manage-projects-react'), {
title: 'Manage Projects',
userSettings,
@@ -23,7 +23,6 @@ import HttpErrorHandler from '../../../../app/src/Features/Errors/HttpErrorHandl
import ErrorController from '../../../../app/src/Features/Errors/ErrorController.mjs'
import Errors, { OError } from '../../../../app/src/Features/Errors/Errors.js'
import { db } from '../../../../app/src/infrastructure/mongodb.mjs'
import SplitTestHandler from '../../../../app/src/Features/SplitTests/SplitTestHandler.mjs'
const __dirname = Path.dirname(fileURLToPath(import.meta.url))
@@ -84,12 +83,6 @@ async function manageUsersPage(req, res, next) {
status: prefetchedUsersBlob ? 'success' : 'error',
})
await SplitTestHandler.promises.getAssignment(
req,
res,
'themed-project-dashboard'
)
const userId = SessionManager.getLoggedInUserId(req.session)
const user = await User.findById(userId, 'ace')
@@ -429,7 +422,7 @@ async function purgeDeletedUser(req, res, next) {
logger.debug({ deleterUserId, userId }, 'admin is trying to purge deleted user account')
try {
UserDeleter.promises.expireDeletedUser(userId)
await UserDeleter.promises.expireDeletedUser(userId)
} catch (err) {
logger.warn({ restorerId, userId }, err.message)
const message = 'Something went wrong. The user is already deleted?'
@@ -41,7 +41,7 @@ export function ProjectListDsNav() {
totalPages,
} = useProjectListContext()
const { getUserNameById } = useUserIdentityContext()
const activeOverallTheme = useActiveOverallTheme('themed-project-dashboard')
const activeOverallTheme = useActiveOverallTheme()
const userName = projectsOwnerId ? getUserNameById(projectsOwnerId) : t('all_users')
const tableTopArea = (
@@ -58,7 +58,7 @@ export function ProjectListDsNav() {
)
return (
<div className="project-ds-nav-page website-redesign">
<div className="project-ds-nav-page website-redesign red-nav-bar-for-admins">
<div className="manage-projects-page">
<DefaultNavbar
{...navbarProps}
@@ -12,7 +12,7 @@ import useThemedPage from '@/shared/hooks/use-themed-page'
export default function ProjectListRoot() {
useThemedPage('themed-project-dashboard')
useThemedPage()
const { isLoading, loadProgress } = useProjectListContext()
const { t } = useTranslation()
@@ -7,12 +7,10 @@ import { usePersistedResize } from '@/shared/hooks/use-resize'
import getMeta from '@/utils/meta'
import OLTooltip from '@/shared/components/ol/ol-tooltip'
import { AccountMenuItems } from '@/shared/components/navbar/account-menu-items'
import { useFeatureFlag } from '@/shared/context/split-test-context'
import SidebarFilters from './sidebar-filters'
import { getUserName } from '../../util/user'
import { useUserIdentityContext } from '../../../user-list/context/user-identity-context'
import { useProjectListContext } from '../../context/project-list-context'
import { useScrolled } from '@/features/project-list/components/sidebar/use-scroll'
import { useSendProjectListMB } from '@/features/project-list/components/project-list-events'
@@ -26,7 +24,6 @@ function SidebarDsNav() {
const sendMB = useSendProjectListMB()
const { sessionUser } = getMeta('ol-navbar')
const { containerRef, scrolledUp } = useScrolled()
const themedDsNav = useFeatureFlag('themed-project-dashboard')
const { getUserNameById } = useUserIdentityContext()
const { projectsOwnerId } = useProjectListContext()
@@ -128,7 +125,7 @@ function SidebarDsNav() {
<AccountMenuItems
sessionUser={sessionUser}
showSubscriptionLink={false}
showThemeToggle={themedDsNav}
showThemeToggle={true}
/>
</Dropdown.Menu>
</Dropdown>
@@ -7,7 +7,6 @@ import { usePersistedResize } from '@/shared/hooks/use-resize'
import getMeta from '@/utils/meta'
import OLTooltip from '@/shared/components/ol/ol-tooltip'
import { AccountMenuItems } from '@/shared/components/navbar/account-menu-items'
import { useFeatureFlag } from '@/shared/context/split-test-context'
import SidebarFilters from './sidebar-filters'
import CreateAccountButton from '../create-account-button'
import { useSendUserListMB } from '../user-list-events'
@@ -22,7 +21,6 @@ function SidebarDsNav() {
const sendMB = useSendUserListMB()
const { sessionUser } = getMeta('ol-navbar')
const { containerRef, scrolledUp, scrolledDown } = useScrolled()
const themedDsNav = useFeatureFlag('themed-project-dashboard')
return (
<div
className="user-list-sidebar-wrapper-react d-none d-md-flex"
@@ -100,7 +98,7 @@ function SidebarDsNav() {
<AccountMenuItems
sessionUser={sessionUser}
showSubscriptionLink={false}
showThemeToggle={themedDsNav}
showThemeToggle={true}
/>
</Dropdown.Menu>
</Dropdown>
@@ -38,7 +38,7 @@ export function UserListDsNav() {
setCurrentPage,
totalPages,
} = useUserListContext()
const activeOverallTheme = useActiveOverallTheme('themed-project-dashboard')
const activeOverallTheme = useActiveOverallTheme()
const tableTopArea = (
<div className="pt-2 pb-3 d-md-none d-flex gap-2">
@@ -54,7 +54,7 @@ export function UserListDsNav() {
)
return (
<div className="user-ds-nav-page website-redesign">
<div className="user-ds-nav-page website-redesign red-nav-bar-for-admins">
<DefaultNavbar
{...navbarProps}
overleafLogo={
@@ -10,7 +10,7 @@ import useThemedPage from '@/shared/hooks/use-themed-page'
import { UserListDsNav } from './user-list-ds-nav'
export default function UserListRoot() {
useThemedPage('themed-project-dashboard')
useThemedPage()
const { isLoading, loadProgress } = useUserListContext()
useEffect(() => {