upstream: integrar 0.9.5 en 34 ficheros mas y portar los modulos nuevos
Segunda tanda. Resueltas por merge de tres vias 15 divergencias que no solapaban, y aplicada la version de 0.9.5 en 19 vistas y modelos donde la rama solo arrastraba codigo antiguo (firmas viejas de renderProductForm, renderJobForm, listTags sin search, y el import sin renderSpreadEditWarning). Se preserva la eliminacion de housing donde la rama lo habia descartado: modules_view, blockchain_view, search_model y tags_model. Modulos nuevos del dev portados: blog, data, gallery, mentions, polls, workflows, comments, recurrence y media_gallery, mas contentPdf, pdfDocument y content_favorites. main_views recupera renderEngagement, spreadsFor y renderSpreadEditWarning, que la rama habia eliminado y que las vistas de 0.9.5 necesitan. Sin ellas polls_view lanzaba TypeError al editar. El overlay de i18n pasa de 15 a 41 claves (46 en castellano): incorpora las 9 que upstream tenia en 0.9.1 y elimino en 0.9.5 mientras nuestro codigo las sigue usando (menuBlogs, spreadHint, chatShareUrl, forumFilterHot, publishBlog...) y las 17 de Karvan, que nunca existieron y tiraban de texto de reserva en ingles; ahora estan traducidas al castellano. Verificado con la app arrancada: declara 0.9.5, 0 claves i18n sin resolver (antes 26), 26 rutas responden 200/302, y la interfaz de la rama sale intacta: 10 categorias y 47 modulos en los hexagonos, topbar con Personal/Community y avatar, 7 accesos rapidos en la barra inferior y 0 etiquetas vacias (antes 1, la de Blogs).
This commit is contained in:
parent
f964e61a1c
commit
82b6c3ae05
43 changed files with 3221 additions and 2416 deletions
104
src/models/workflows_model.js
Normal file
104
src/models/workflows_model.js
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
const ALL_MODULES = [
|
||||
'agenda', 'ai', 'aiNav', 'audios', 'banking', 'blogs', 'bookmarks', 'calendars', 'chats', 'cipher',
|
||||
'courts', 'dev', 'docs', 'events', 'favorites', 'fediverse', 'feed', 'forum', 'games', 'graphos',
|
||||
'housing', 'images', 'industry', 'invites', 'jobs', 'larp', 'legacy', 'logs', 'maps', 'market',
|
||||
'melody', 'opinions', 'pads', 'parliament', 'pixelia', 'polls', 'projects', 'reports', 'shops',
|
||||
'tags', 'tasks', 'torrents', 'transfers', 'trending', 'tribes', 'videos', 'votes', 'wallet'
|
||||
];
|
||||
|
||||
const NETWORK = ['feed', 'blogs', 'tags', 'trending', 'opinions', 'pads', 'forum', 'maps', 'chats'];
|
||||
const MEDIA = ['audios', 'bookmarks', 'docs', 'images', 'torrents', 'videos'];
|
||||
const OFFICE = ['agenda', 'calendars', 'events', 'tasks', 'reports', 'favorites'];
|
||||
const GOVERNANCE = ['tribes', 'larp', 'votes', 'polls', 'parliament', 'courts', 'logs'];
|
||||
const ECONOMY = ['banking', 'wallet', 'transfers', 'market', 'housing', 'jobs', 'shops', 'industry', 'projects'];
|
||||
|
||||
const MOBILE_MODULES = [
|
||||
'agenda', 'favorites', 'wallet', 'tribes', 'larp', 'votes', 'polls', 'events', 'calendars', 'tasks',
|
||||
'reports', 'banking', 'market', 'housing', 'jobs', 'shops', 'transfers', 'cipher', 'invites',
|
||||
'games', 'audios', 'bookmarks', 'docs', 'images', ...NETWORK
|
||||
];
|
||||
|
||||
const WORKFLOWS = [
|
||||
{
|
||||
key: 'default',
|
||||
theme: 'Dark-SNH',
|
||||
homePage: 'activity',
|
||||
modules: ALL_MODULES.filter(m => m !== 'aiNav')
|
||||
},
|
||||
{
|
||||
key: 'jobs',
|
||||
theme: 'Clear-SNH',
|
||||
homePage: 'activity',
|
||||
modules: [...OFFICE, 'jobs', 'projects', 'industry', 'market', 'shops', 'banking', 'wallet', 'transfers',
|
||||
'forum', 'chats', 'pads', 'feed', 'tags', 'trending', 'docs', 'invites']
|
||||
},
|
||||
{
|
||||
key: 'ruling',
|
||||
theme: 'Purple-SNH',
|
||||
homePage: 'activity',
|
||||
modules: [...GOVERNANCE, ...OFFICE, 'forum', 'pads', 'chats', 'feed', 'blogs', 'opinions', 'tags', 'trending', 'docs', 'invites']
|
||||
},
|
||||
{
|
||||
key: 'politics',
|
||||
theme: 'Dark-SNH',
|
||||
homePage: 'trending',
|
||||
modules: ['parliament', 'courts', 'votes', 'polls', 'reports', 'logs', 'forum', 'opinions', 'blogs',
|
||||
'feed', 'tags', 'trending', 'pads', 'chats', 'fediverse', 'tribes', 'events', 'agenda']
|
||||
},
|
||||
{
|
||||
key: 'social',
|
||||
theme: 'Clear-SNH',
|
||||
homePage: 'feed',
|
||||
modules: [...NETWORK, ...MEDIA, 'events', 'calendars', 'agenda', 'favorites', 'games', 'pixelia',
|
||||
'melody', 'tribes', 'fediverse', 'invites', 'polls']
|
||||
},
|
||||
{
|
||||
key: 'business',
|
||||
theme: 'Dark-SNH',
|
||||
homePage: 'activity',
|
||||
modules: [...ECONOMY, ...OFFICE, 'forum', 'chats', 'pads', 'docs', 'feed', 'tags', 'trending', 'invites', 'cipher']
|
||||
},
|
||||
{
|
||||
key: 'night',
|
||||
theme: 'Matrix-SNH',
|
||||
homePage: 'feed',
|
||||
modules: ['feed', 'blogs', 'opinions', 'chats', 'forum', 'tags', 'trending', 'audios', 'videos',
|
||||
'images', 'bookmarks', 'melody', 'games', 'pixelia', 'favorites']
|
||||
},
|
||||
{
|
||||
key: 'mobile',
|
||||
theme: 'OasisMobile',
|
||||
homePage: 'activity',
|
||||
modules: MOBILE_MODULES
|
||||
}
|
||||
];
|
||||
|
||||
const WORKFLOW_KEYS = WORKFLOWS.map(w => w.key);
|
||||
|
||||
const getWorkflow = (key) => WORKFLOWS.find(w => w.key === String(key || '')) || null;
|
||||
|
||||
const modulesOf = (workflow) => {
|
||||
const set = new Set(workflow.modules.filter(m => ALL_MODULES.includes(m)));
|
||||
return ALL_MODULES.filter(m => set.has(m));
|
||||
};
|
||||
|
||||
const currentWorkflow = (config) => {
|
||||
const modules = (config && config.modules) || {};
|
||||
const theme = (config && config.themes && config.themes.current) || '';
|
||||
return WORKFLOW_KEYS.find(key => {
|
||||
const w = getWorkflow(key);
|
||||
if (theme !== w.theme) return false;
|
||||
const on = new Set(modulesOf(w));
|
||||
return ALL_MODULES.every(m => (modules[`${m}Mod`] === 'on') === on.has(m));
|
||||
}) || null;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
ALL_MODULES,
|
||||
MOBILE_MODULES,
|
||||
WORKFLOWS,
|
||||
WORKFLOW_KEYS,
|
||||
getWorkflow,
|
||||
modulesOf,
|
||||
currentWorkflow
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue