workflows: activists vuelve a ser el del dev; karvan y acampada desde fork_workflows

- el workflow activists del dev queda como en la 1.3.3 (unos 45 modulos)
- karvan se anade a las listas del dev al arrancar, desde fork_workflows.js
- la config de serie del movil enciende tribus, parlamento, votaciones y
  eventos: coincide con acampada y sale marcado en Ajustes
This commit is contained in:
hacklab 2026-10-19 13:28:44 +02:00
parent 35fef607d7
commit e7892c4bf9
5 changed files with 28 additions and 14 deletions

View file

@ -174,7 +174,8 @@ duele:
1. Quedan 21 trozos nuestros en `backend.js` (copia de seguridad, avatar de la barra 1. Quedan 21 trozos nuestros en `backend.js` (copia de seguridad, avatar de la barra
de arriba, vídeos, filtro del lanzador...). Tienen que irse al router propio. de arriba, vídeos, filtro del lanzador...). Tienen que irse al router propio.
2. El workflow `activists` sigue cambiado en `workflows_model.js`. Hay que dejarlo 2. En `workflows_model.js` queda la logica de skins del movil (`themeOf`, `sameTheme`):
como el del dev; el nuestro ya es `acampada`. `settings_view.js` coge `currentWorkflow` al cargar y no se puede envolver desde
fuera sin tocar esa vista. Es poco, pero es del dev.
3. Selectores que ya no apuntan a nada: unos 60 en `styles/mobile_base.css`, 29 en 3. Selectores que ya no apuntan a nada: unos 60 en `styles/mobile_base.css`, 29 en
`hive_acampada.css` y 5 en `Acampada.css`. `hive_acampada.css` y 5 en `Acampada.css`.

View file

@ -131,9 +131,10 @@ nada, pero son peso muerto y confunden.
- Fase C: los 21 trozos antiguos de `backend.js` (exportar copia de seguridad, - Fase C: los 21 trozos antiguos de `backend.js` (exportar copia de seguridad,
avatar de la topbar, `#t=0.1` en los videos, filtro del lanzador...) pasan al router avatar de la topbar, `#t=0.1` en los videos, filtro del lanzador...) pasan al router
propio como envoltorios. propio como envoltorios.
- Fase D: workflows. Devolver `activists` al del dev y registrar los nuestros - Fase D (hecha el 19/10): `activists` vuelve a ser el del dev. Karvan y el workflow
(`acampada`) desde un fichero propio, empujandolos a los arrays que exporta `acampada` se registran desde `models/fork_workflows.js`. La config de serie del
`workflows_model.js`. movil coincide con `acampada`. Queda en `workflows_model.js` la logica de skins del
movil.
- Fase E: limpieza de selectores muertos en las hojas propias. - Fase E: limpieza de selectores muertos en las hojas propias.
## 6. Fase A: lo que se ha movido ## 6. Fase A: lo que se ha movido

View file

@ -20,11 +20,11 @@
"tagsMod": "off", "tagsMod": "off",
"imagesMod": "on", "imagesMod": "on",
"trendingMod": "off", "trendingMod": "off",
"eventsMod": "off", "eventsMod": "on",
"tasksMod": "off", "tasksMod": "off",
"marketMod": "off", "marketMod": "off",
"votesMod": "off", "votesMod": "on",
"tribesMod": "off", "tribesMod": "on",
"reportsMod": "off", "reportsMod": "off",
"opinionsMod": "off", "opinionsMod": "off",
"padsMod": "on", "padsMod": "on",
@ -46,7 +46,7 @@
"industryMod": "off", "industryMod": "off",
"bankingMod": "off", "bankingMod": "off",
"schoolMod": "off", "schoolMod": "off",
"parliamentMod": "off", "parliamentMod": "on",
"courtsMod": "off", "courtsMod": "off",
"favoritesMod": "off", "favoritesMod": "off",
"logsMod": "off", "logsMod": "off",

View file

@ -21,10 +21,20 @@ const FORK_WORKFLOWS = [
} }
]; ];
// Karvan es un modulo de la rama: se anade a las listas del dev (todos los modulos,
// los del movil y el workflow "default", que se calcula al cargar con una copia)
const addKarvan = () => {
if (!wf.ALL_MODULES.includes('karvan')) wf.ALL_MODULES.push('karvan');
if (!wf.MOBILE_MODULES.includes('karvan')) wf.MOBILE_MODULES.push('karvan');
const def = wf.WORKFLOWS.find(w => w.key === 'default');
if (def && !def.modules.includes('karvan')) def.modules.push('karvan');
};
let done = false; let done = false;
const register = () => { const register = () => {
if (done) return; if (done) return;
done = true; done = true;
addKarvan();
for (const w of FORK_WORKFLOWS) { for (const w of FORK_WORKFLOWS) {
if (wf.WORKFLOWS.some(x => x.key === w.key)) continue; if (wf.WORKFLOWS.some(x => x.key === w.key)) continue;
wf.WORKFLOWS.push(w); wf.WORKFLOWS.push(w);

View file

@ -1,7 +1,7 @@
const ALL_MODULES = [ const ALL_MODULES = [
'agenda', 'ai', 'aiNav', 'emergencies', 'audios', 'backup', 'banking', 'blogs', 'bookmarks', 'calendars', 'campaigns', 'chats', 'cipher', 'agenda', 'ai', 'aiNav', 'emergencies', 'audios', 'backup', 'banking', 'blogs', 'bookmarks', 'calendars', 'campaigns', 'chats', 'cipher',
'courts', 'dev', 'docs', 'events', 'favorites', 'fediverse', 'feed', 'files', 'forum', 'games', 'graphos', 'courts', 'dev', 'docs', 'events', 'favorites', 'fediverse', 'feed', 'files', 'forum', 'games', 'graphos',
'housing', 'images', 'industry', 'invites', 'jobs', 'karvan', 'larp', 'logistics', 'logs', 'mailing', 'maps', 'market', 'housing', 'images', 'industry', 'invites', 'jobs', 'larp', 'logistics', 'logs', 'mailing', 'maps', 'market',
'melody', 'opinions', 'pads', 'wiki', 'parliament', 'phone', 'pixelia', 'podcasts', 'polls', 'projects', 'reports', 'rooms', 'school', 'shops', 'melody', 'opinions', 'pads', 'wiki', 'parliament', 'phone', 'pixelia', 'podcasts', 'polls', 'projects', 'reports', 'rooms', 'school', 'shops',
'tags', 'tasks', 'torrents', 'transfers', 'trending', 'tribes', 'videos', 'votes', 'wallet' 'tags', 'tasks', 'torrents', 'transfers', 'trending', 'tribes', 'videos', 'votes', 'wallet'
]; ];
@ -26,7 +26,7 @@ const PRESETS = {
const MOBILE_MODULES = [ const MOBILE_MODULES = [
'agenda', 'favorites', 'wallet', 'tribes', 'larp', 'votes', 'polls', 'events', 'calendars', 'tasks', 'agenda', 'favorites', 'wallet', 'tribes', 'larp', 'votes', 'polls', 'events', 'calendars', 'tasks',
'reports', 'banking', 'market', 'housing', 'jobs', 'shops', 'school', 'courts', 'transfers', 'cipher', 'invites', 'reports', 'banking', 'market', 'housing', 'jobs', 'shops', 'school', 'courts', 'transfers', 'cipher', 'invites',
'games', 'audios', 'bookmarks', 'docs', 'files', 'images', 'torrents', 'emergencies', 'mailing', 'logistics', 'podcasts', 'campaigns', 'karvan', ...NETWORK.filter(m => m !== 'rooms') 'games', 'audios', 'bookmarks', 'docs', 'files', 'images', 'torrents', 'emergencies', 'mailing', 'logistics', 'podcasts', 'campaigns', ...NETWORK.filter(m => m !== 'rooms')
]; ];
const WORKFLOWS = [ const WORKFLOWS = [
@ -72,11 +72,13 @@ const WORKFLOWS = [
'tags', 'trending', 'tribes', 'larp', 'polls', 'opinions', 'invites'] 'tags', 'trending', 'tribes', 'larp', 'polls', 'opinions', 'invites']
}, },
{ {
// lo justo para organizarse: hablar, escribir juntos y compartir lo que pasa
key: 'activists', key: 'activists',
theme: 'Purple-SNH', theme: 'Purple-SNH',
homePage: 'activity', homePage: 'activity',
modules: ['chats', 'karvan', 'pads', 'forum', 'images', 'videos', 'wiki', 'blogs', 'feed', 'invites', 'backup'] modules: [...GOVERNANCE, ...OFFICE,
'forum', 'chats', 'rooms', 'feed', 'blogs', 'opinions', 'pads', 'wiki', 'docs', 'images', 'videos', 'audios', 'podcasts',
'files', 'torrents', 'maps', 'bookmarks', 'graphos', 'melody', 'cipher', 'fediverse', 'projects', 'logistics',
'invites', 'tags', 'trending', 'backup']
}, },
{ {
key: 'mobile', key: 'mobile',
@ -128,7 +130,7 @@ const applyWorkflow = (cfg, workflow) => {
const FULL_WORKFLOW = { key: 'full', modules: ALL_MODULES }; const FULL_WORKFLOW = { key: 'full', modules: ALL_MODULES };
const WIZARD_WORKFLOWS = ['activists', 'full', 'social', 'kids', 'night', 'jobs', 'business', 'mobile']; const WIZARD_WORKFLOWS = ['full', 'social', 'activists', 'kids', 'night', 'jobs', 'business', 'mobile'];
const wizardWorkflow = (key) => { const wizardWorkflow = (key) => {
const k = String(key || ''); const k = String(key || '');