fuera Karvan: se usan el Telefono y las Salas del dev
El dev ya trae Telefono (llamadas uno a uno, buzon de voz) y Salas (hasta 50, con video, grabacion y emision). La rama quita su modulo propio de salas y llamadas: modelo, vista, JS de cliente, CSS, rutas, credenciales TURN, pruebas y textos. - el router propio pasa a llamarse fork_routes.js, sin Karvan - el audio, la camara y la emision de Android se enchufan desde main.js con setAudioFactory/setVideoFactory/setStreamFactory, que exporta el propio dev; SSB_server.js vuelve a tener su linea original - Clear-SNH.css y modules_view.js vuelven a ser identicos a los del dev - el workflow acampada y la config de serie cambian Karvan por Telefono y Salas - README y guia: las llamadas son las del dev; antes de hacer un modulo propio, mirar si el dev ya lo tiene
This commit is contained in:
parent
3937ddab1e
commit
096a7d110b
30 changed files with 266 additions and 1918 deletions
|
|
@ -39,7 +39,6 @@ const modulesView = () => {
|
|||
{ name: 'industry', label: i18n.modulesIndustryLabel, description: i18n.modulesIndustryDescription },
|
||||
{ name: 'invites', label: i18n.modulesInvitesLabel, description: i18n.modulesInvitesDescription },
|
||||
{ name: 'jobs', label: i18n.modulesJobsLabel, description: i18n.modulesJobsDescription },
|
||||
{ name: 'karvan', label: i18n.modulesKarvanLabel, description: i18n.modulesKarvanDescription },
|
||||
{ name: 'larp', label: i18n.modulesLarpLabel, description: i18n.modulesLarpDescription },
|
||||
{ name: 'backup', label: i18n.modulesBackupLabel, description: i18n.modulesBackupDescription },
|
||||
{ name: 'logs', label: i18n.modulesLogsLabel, description: i18n.modulesLogsDescription },
|
||||
|
|
@ -67,17 +66,13 @@ const modulesView = () => {
|
|||
{ name: 'wiki', label: i18n.modulesWikiLabel, description: i18n.modulesWikiDescription }
|
||||
].sort((x, y) => String(x.label || x.name).localeCompare(String(y.label || y.name), undefined, { sensitivity: 'base' }));
|
||||
|
||||
const MOBILE_UNAVAILABLE = ['ai', 'aiNav', 'dev', 'games', 'logs', 'maps', 'pixelia'];
|
||||
const isMobile = process.env.OASIS_MOBILE === '1';
|
||||
const visibleModules = isMobile ? modules.filter(mod => !MOBILE_UNAVAILABLE.includes(mod.name)) : modules;
|
||||
|
||||
const moduleStates = visibleModules.reduce((acc, mod) => {
|
||||
const moduleStates = modules.reduce((acc, mod) => {
|
||||
acc[`${mod.name}Mod`] = config[`${mod.name}Mod`] === 'on' ? 'on' : 'off';
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
const activeModulesCount = visibleModules.filter(mod => moduleStates[`${mod.name}Mod`] === 'on').length;
|
||||
const totalModulesCount = visibleModules.length;
|
||||
const activeModulesCount = modules.filter(mod => moduleStates[`${mod.name}Mod`] === 'on').length;
|
||||
const totalModulesCount = modules.length;
|
||||
const disabledModulesCount = totalModulesCount - activeModulesCount;
|
||||
|
||||
const header = [div({ class: 'tags-header module-header-line' },
|
||||
|
|
@ -105,7 +100,7 @@ const modulesView = () => {
|
|||
const presetButtons = div({ class: 'preset-group' },
|
||||
Object.entries(PRESETS).map(([key, mods]) => {
|
||||
const presetLabel = (i18n[`modulesPreset_${key}`] || key).toUpperCase();
|
||||
const isActive = visibleModules.every(m => mods.includes(m.name) === (moduleStates[`${m.name}Mod`] === 'on'));
|
||||
const isActive = modules.every(m => mods.includes(m.name) === (moduleStates[`${m.name}Mod`] === 'on'));
|
||||
return form({ action: "/modules/preset", method: "post", class: "modules-preset-form" },
|
||||
input({ type: "hidden", name: "preset", value: key }),
|
||||
button({
|
||||
|
|
@ -120,7 +115,8 @@ const modulesView = () => {
|
|||
i18n.modules,
|
||||
section(header),
|
||||
section(
|
||||
...(isMobile ? [] : [h2(i18n.modulesPresetTitle || "Common Configurations"), presetButtons]),
|
||||
h2(i18n.modulesPresetTitle || "Common Configurations"),
|
||||
presetButtons,
|
||||
counts,
|
||||
form(
|
||||
{ action: "/save-modules", method: "post" },
|
||||
|
|
@ -131,7 +127,7 @@ const modulesView = () => {
|
|||
td(i18n.modulesModuleDescription),
|
||||
td({ class: 'module-status-cell' }, i18n.modulesModuleStatus)
|
||||
),
|
||||
visibleModules.map(mod =>
|
||||
modules.map(mod =>
|
||||
tr(
|
||||
td(a({ href: `/${mod.name}` }, mod.label)),
|
||||
td(p(mod.description)),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue