feat(admin): тумблер фичи для «Квантик» (паритет с другими играми)
У Квантика не было фиче-флага — его нельзя было выключить, и он всегда висел в сайдбаре (даже у учеников без класса). Добавлено по образцу остальных игр: - adminController.updateFeatures: 'quantik' в whitelist (PATCH принимает флаг). - games.js: пункт «Квантик: Законы Мира» в GAME_FEATURES и FS_FEATURES (тумблер в админке → Игры; пишет feature_quantik_enabled). - api.js hideDisabledFeatures: quantik -> ['/quantik','/quantik.html'] (скрытие из сайдбара при выключении) + '/quantik' в classOnlyHrefs/classOnlyPaths (скрыт у учеников без класса, как прочие игры). Миграция не нужна: флаг «неявно включён», пока админ не выключит (features[key] !== false => включено). Требует Ctrl+F5 (фронт). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -863,6 +863,7 @@ async function hideDisabledFeatures() {
|
||||
sim_builder: ['/sim-builder', '/sim-builder.html'],
|
||||
exam9: ['/exam9', '/exam9.html'],
|
||||
textbooks: ['/textbooks', '/textbooks.html', '/textbook'],
|
||||
quantik: ['/quantik', '/quantik.html'],
|
||||
};
|
||||
for (const [key, hrefs] of Object.entries(map)) {
|
||||
if (feats[key] === false) {
|
||||
@@ -908,7 +909,7 @@ async function hideDisabledFeatures() {
|
||||
'/board', '/lab', '/hangman', '/crossword', '/pet',
|
||||
'/collection', '/collection.html', '/knowledge-map',
|
||||
'/red-book', '/red-book.html', '/red-book-ecosystem.html', '/red-book-biomes.html',
|
||||
'/flashcards', '/live-quiz',
|
||||
'/flashcards', '/live-quiz', '/quantik',
|
||||
];
|
||||
classOnlyHrefs.forEach(href => {
|
||||
document.querySelectorAll(`[href="${href}"]`).forEach(el => el.style.display = 'none');
|
||||
@@ -919,7 +920,7 @@ async function hideDisabledFeatures() {
|
||||
'/board', '/lab', '/hangman', '/crossword', '/pet',
|
||||
'/collection', '/collection-rb', '/knowledge-map',
|
||||
'/red-book', '/red-book-ecosystem', '/red-book-biomes', '/red-book-games',
|
||||
'/flashcards', '/live-quiz',
|
||||
'/flashcards', '/live-quiz', '/quantik',
|
||||
];
|
||||
if (classOnlyPaths.some(h => cur === h || cur === h + '.html')) {
|
||||
window.location.href = '/dashboard';
|
||||
|
||||
Reference in New Issue
Block a user