bienvenida: paso Perfil (workflow) de un toque, Activismo primero; Ajustes con la misma lista; fuera Personal/Social de la barra de arriba
This commit is contained in:
parent
92a8dc3853
commit
d267d2befe
10 changed files with 196 additions and 30 deletions
|
|
@ -244,3 +244,11 @@ Con la navegación nueva (portada = actividad, pestaña Menú abajo).
|
||||||
"Conversaciones" se partía a 360 px). En Ajustes, lo mismo, y la sección va justo
|
"Conversaciones" se partía a 360 px). En Ajustes, lo mismo, y la sección va justo
|
||||||
después del idioma para encontrarla fácil. [vista propia + una línea en welcome_view
|
después del idioma para encontrarla fácil. [vista propia + una línea en welcome_view
|
||||||
y settings_view]
|
y settings_view]
|
||||||
|
- Bienvenida: faltaba elegir para qué se usa Oasis (el backend del dev quita ese paso
|
||||||
|
en el móvil). Vuelve como paso "Perfil", el segundo, justo después de la identidad:
|
||||||
|
Activismo primero, luego Acampada y el resto, cada uno con una línea de para qué
|
||||||
|
sirve. Un toque y guardado. En Ajustes, la misma lista. [vista propia + una línea
|
||||||
|
en welcome_view y settings_view]
|
||||||
|
- Con el perfil Activismo (45 módulos) los botones Personal/Social de la barra de
|
||||||
|
arriba no cabían a 360 px y tapaban el logo. Ya no hacían falta (filtraban el
|
||||||
|
lanzador, que ahora está en la hoja del menú): quitados. [vista propia]
|
||||||
|
|
|
||||||
|
|
@ -472,19 +472,19 @@ label.welcome-ux-option:has(input:checked) { background: var(--a26-neon) !import
|
||||||
.chat-reply-cancel,
|
.chat-reply-cancel,
|
||||||
.chat-message-meta .chat-reply-btn { color: var(--a26-fg) !important; }
|
.chat-message-meta .chat-reply-btn { color: var(--a26-fg) !important; }
|
||||||
|
|
||||||
/* ---------- skins y workflows en Ajustes ---------- */
|
/* ---------- skins en Ajustes ---------- */
|
||||||
.skin-card, .workflow-card {
|
.skin-card {
|
||||||
background: var(--a26-bg) !important; color: var(--a26-fg) !important;
|
background: var(--a26-bg) !important; color: var(--a26-fg) !important;
|
||||||
border: var(--a26-bd) !important; border-radius: var(--a26-radius) !important;
|
border: var(--a26-bd) !important; border-radius: var(--a26-radius) !important;
|
||||||
box-shadow: 0 5px 0 var(--a26-fg) !important;
|
box-shadow: 0 5px 0 var(--a26-fg) !important;
|
||||||
}
|
}
|
||||||
.skin-card .skin-shot { border: var(--a26-bd-fino); }
|
.skin-card .skin-shot { border: var(--a26-bd-fino); }
|
||||||
.skin-card .skin-name, .workflow-card {
|
.skin-card .skin-name {
|
||||||
font-family: var(--a26-tit) !important; font-weight: 400 !important;
|
font-family: var(--a26-tit) !important; font-weight: 400 !important;
|
||||||
text-transform: uppercase; letter-spacing: .02em; font-size: 21px !important;
|
text-transform: uppercase; letter-spacing: .02em; font-size: 21px !important;
|
||||||
}
|
}
|
||||||
.skin-card.is-current, .workflow-card.is-current { background: var(--a26-neon) !important; color: var(--a26-fg) !important; border: var(--a26-bd) !important; }
|
.skin-card.is-current { background: var(--a26-neon) !important; color: var(--a26-fg) !important; border: var(--a26-bd) !important; }
|
||||||
.skin-card:active, .workflow-card:active { transform: translateY(4px); box-shadow: 0 1px 0 var(--a26-fg) !important; background: var(--a26-neon) !important; }
|
.skin-card:active { transform: translateY(4px); box-shadow: 0 1px 0 var(--a26-fg) !important; background: var(--a26-neon) !important; }
|
||||||
|
|
||||||
/* ---------- letra y botones mas grandes, para leer sin gafas ---------- */
|
/* ---------- letra y botones mas grandes, para leer sin gafas ---------- */
|
||||||
body { font-size: 18px; }
|
body { font-size: 18px; }
|
||||||
|
|
|
||||||
|
|
@ -1000,11 +1000,3 @@ body:has(.oasis-nav-side-toggle) { padding-top: 84px !important; }
|
||||||
.skin-card .skin-name { font-size: 17px; font-weight: 700; text-align: center; }
|
.skin-card .skin-name { font-size: 17px; font-weight: 700; text-align: center; }
|
||||||
.skin-card.is-current { border: 2px solid #FFD700 !important; background: #2a2412 !important; }
|
.skin-card.is-current { border: 2px solid #FFD700 !important; background: #2a2412 !important; }
|
||||||
.skin-card.is-current .skin-name::after { content: " \2713"; }
|
.skin-card.is-current .skin-name::after { content: " \2713"; }
|
||||||
.workflow-pick { display: flex !important; flex-direction: column; gap: 10px; margin: 0; }
|
|
||||||
.workflow-card {
|
|
||||||
width: 100% !important; min-height: 56px !important; margin: 0 !important; padding: 10px 16px !important;
|
|
||||||
font-size: 18px !important; text-align: left !important;
|
|
||||||
background: #1c1c1c !important; color: #e6e6e6 !important; border: 1px solid #444 !important; border-radius: 14px !important;
|
|
||||||
}
|
|
||||||
.workflow-card.is-current { border: 2px solid #FFD700 !important; background: #2a2412 !important; color: #FFD700 !important; }
|
|
||||||
.workflow-card.is-current::after { content: " \2713"; }
|
|
||||||
|
|
|
||||||
|
|
@ -384,7 +384,7 @@ body .main-content > .main-column { padding-left: 0 !important; padding-right: 0
|
||||||
/* ---------- regla general de letra para botones ---------- */
|
/* ---------- regla general de letra para botones ---------- */
|
||||||
/* todo boton en letra del sistema; Anton solo en el principal de cada pantalla
|
/* todo boton en letra del sistema; Anton solo en el principal de cada pantalla
|
||||||
(el negro, .create-button) y en las tarjetas de aspecto */
|
(el negro, .create-button) y en las tarjetas de aspecto */
|
||||||
.main-column :is(button, input[type="submit"], input[type="button"], .filter-btn, a.filter-btn):not(.create-button):not(.welcome-banner-start):not(.skin-card):not(.workflow-card):not(.btn-singleview) {
|
.main-column :is(button, input[type="submit"], input[type="button"], .filter-btn, a.filter-btn):not(.create-button):not(.welcome-banner-start):not(.skin-card):not(.ux-pick-card):not(.btn-singleview) {
|
||||||
font-family: var(--ux-text) !important;
|
font-family: var(--ux-text) !important;
|
||||||
font-weight: 700 !important;
|
font-weight: 700 !important;
|
||||||
letter-spacing: .02em !important;
|
letter-spacing: .02em !important;
|
||||||
|
|
@ -610,12 +610,19 @@ body:has(#oasis-menu-toggle:checked) form.oasis-phone-state { display: none !imp
|
||||||
.main-column .ux-pick-shot { display: block; flex: 0 0 76px; width: 76px; height: auto; border-radius: 8px; margin: 0 12px 0 0; border: 1px solid rgba(0, 0, 0, .2); }
|
.main-column .ux-pick-shot { display: block; flex: 0 0 76px; width: 76px; height: auto; border-radius: 8px; margin: 0 12px 0 0; border: 1px solid rgba(0, 0, 0, .2); }
|
||||||
.main-column .ux-pick-label { flex: 1 1 auto; min-width: 0; text-align: left; font-size: 16px; font-weight: 700; line-height: 1.2; }
|
.main-column .ux-pick-label { flex: 1 1 auto; min-width: 0; text-align: left; font-size: 16px; font-weight: 700; line-height: 1.2; }
|
||||||
.main-column .ux-pick-now { flex: 0 0 auto; margin-left: 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
|
.main-column .ux-pick-now { flex: 0 0 auto; margin-left: 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
|
||||||
|
/* perfil de uso: sin miniatura, nombre y una linea de para que sirve */
|
||||||
|
.main-column .ux-pick-text { flex: 1 1 auto; min-width: 0; display: block; text-align: left; }
|
||||||
|
.main-column .ux-pick-text .ux-pick-label { display: block; }
|
||||||
|
.main-column .ux-pick-sub { display: block; margin-top: 2px; font-size: 13px; font-weight: 400; line-height: 1.3; opacity: .8; }
|
||||||
|
.main-column .wf-pick button.ux-pick-card { padding: 10px 14px !important; }
|
||||||
|
.main-column .wf-pick .ux-pick-grid { display: block !important; }
|
||||||
@media (min-width: 700px) {
|
@media (min-width: 700px) {
|
||||||
.main-column .ux-pick-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-gap: 12px; }
|
.main-column .ux-pick-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-gap: 12px; }
|
||||||
.main-column button.ux-pick-card { flex-direction: column; text-align: center; margin: 0 !important; padding: 10px !important; }
|
.main-column button.ux-pick-card { flex-direction: column; text-align: center; margin: 0 !important; padding: 10px !important; }
|
||||||
.main-column .ux-pick-shot { width: 100%; flex: 0 0 auto; margin: 0 0 8px; }
|
.main-column .ux-pick-shot { width: 100%; flex: 0 0 auto; margin: 0 0 8px; }
|
||||||
.main-column .ux-pick-now { margin: 4px 0 0; }
|
.main-column .ux-pick-now { margin: 4px 0 0; }
|
||||||
}
|
}
|
||||||
|
@media (min-width: 700px) { .main-column .wf-pick button.ux-pick-card { flex-direction: row; text-align: left; margin: 0 0 10px !important; } }
|
||||||
|
|
||||||
/* ---------- tabletas y pantallas anchas ---------- */
|
/* ---------- tabletas y pantallas anchas ---------- */
|
||||||
/* a 800dp todo se estiraba: lineas larguisimas y la hoja del menu con cinco iconos
|
/* a 800dp todo se estiraba: lineas larguisimas y la hoja del menu con cinco iconos
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,18 @@ module.exports = {
|
||||||
bbMenuClose: "Close",
|
bbMenuClose: "Close",
|
||||||
uxPickHint: "Tap one and it is saved. You can change it any time in Settings.",
|
uxPickHint: "Tap one and it is saved. You can change it any time in Settings.",
|
||||||
uxPickCurrent: "In use",
|
uxPickCurrent: "In use",
|
||||||
|
welcomeStepUseMobile: "Profile",
|
||||||
|
welcomeHintUseMobile: "What you use Oasis for. It turns on the modules you need.",
|
||||||
|
wfHint_activists: "Assemblies, tribes, votes, forums and shared documents",
|
||||||
|
wfHint_acampada: "Just what a camp needs: chats, rooms, committees and voting",
|
||||||
|
wfHint_full: "All modules",
|
||||||
|
wfHint_default: "All modules",
|
||||||
|
wfHint_social: "Feed, photos, events and friends",
|
||||||
|
wfHint_kids: "School, games and making things",
|
||||||
|
wfHint_night: "Blogs, music, videos and talk",
|
||||||
|
wfHint_jobs: "Work, projects, market and office",
|
||||||
|
wfHint_business: "Economy, banking, office and documents",
|
||||||
|
wfHint_mobile: "The basics for a phone",
|
||||||
workflow_acampada: "Camp",
|
workflow_acampada: "Camp",
|
||||||
tribeSectionsMore: "More",
|
tribeSectionsMore: "More",
|
||||||
tribeSectionsLabel: "Sections",
|
tribeSectionsLabel: "Sections",
|
||||||
|
|
@ -104,6 +116,18 @@ module.exports = {
|
||||||
bbMenuClose: "Cerrar",
|
bbMenuClose: "Cerrar",
|
||||||
uxPickHint: "Toca uno y queda guardado. Puedes cambiarlo cuando quieras en Ajustes.",
|
uxPickHint: "Toca uno y queda guardado. Puedes cambiarlo cuando quieras en Ajustes.",
|
||||||
uxPickCurrent: "En uso",
|
uxPickCurrent: "En uso",
|
||||||
|
welcomeStepUseMobile: "Perfil",
|
||||||
|
welcomeHintUseMobile: "Para qué usas Oasis. Enciende los módulos que hacen falta.",
|
||||||
|
wfHint_activists: "Asambleas, tribus, votaciones, foros y documentos compartidos",
|
||||||
|
wfHint_acampada: "Lo justo para una acampada: chats, salas, comisiones y votar",
|
||||||
|
wfHint_full: "Todos los módulos",
|
||||||
|
wfHint_default: "Todos los módulos",
|
||||||
|
wfHint_social: "Feed, fotos, eventos y amistades",
|
||||||
|
wfHint_kids: "Escuela, juegos y hacer cosas",
|
||||||
|
wfHint_night: "Blogs, música, vídeos y charla",
|
||||||
|
wfHint_jobs: "Trabajo, proyectos, mercado y oficina",
|
||||||
|
wfHint_business: "Economía, banca, oficina y documentos",
|
||||||
|
wfHint_mobile: "Lo básico para el móvil",
|
||||||
workflow_acampada: "Acampada",
|
workflow_acampada: "Acampada",
|
||||||
tribeSectionsMore: "Más",
|
tribeSectionsMore: "Más",
|
||||||
tribeSectionsLabel: "Secciones",
|
tribeSectionsLabel: "Secciones",
|
||||||
|
|
@ -192,6 +216,18 @@ module.exports = {
|
||||||
bbMenuClose: "Fermer",
|
bbMenuClose: "Fermer",
|
||||||
uxPickHint: "Touchez-en un et c'est enregistré. Vous pouvez le changer à tout moment dans les Paramètres.",
|
uxPickHint: "Touchez-en un et c'est enregistré. Vous pouvez le changer à tout moment dans les Paramètres.",
|
||||||
uxPickCurrent: "Actuel",
|
uxPickCurrent: "Actuel",
|
||||||
|
welcomeStepUseMobile: "Profil",
|
||||||
|
welcomeHintUseMobile: "À quoi vous sert Oasis. Active les modules nécessaires.",
|
||||||
|
wfHint_activists: "Assemblées, tribus, votes, forums et documents partagés",
|
||||||
|
wfHint_acampada: "Le nécessaire pour un campement : chats, salons, commissions et votes",
|
||||||
|
wfHint_full: "Tous les modules",
|
||||||
|
wfHint_default: "Tous les modules",
|
||||||
|
wfHint_social: "Fil, photos, événements et amis",
|
||||||
|
wfHint_kids: "École, jeux et création",
|
||||||
|
wfHint_night: "Blogs, musique, vidéos et discussions",
|
||||||
|
wfHint_jobs: "Travail, projets, marché et bureau",
|
||||||
|
wfHint_business: "Économie, banque, bureau et documents",
|
||||||
|
wfHint_mobile: "L'essentiel pour le téléphone",
|
||||||
workflow_acampada: "Campement",
|
workflow_acampada: "Campement",
|
||||||
tribeSectionsMore: "Plus",
|
tribeSectionsMore: "Plus",
|
||||||
tribeSectionsLabel: "Sections",
|
tribeSectionsLabel: "Sections",
|
||||||
|
|
@ -274,6 +310,18 @@ module.exports = {
|
||||||
bbMenuClose: "Itxi",
|
bbMenuClose: "Itxi",
|
||||||
uxPickHint: "Bat ukitu eta gordeta geratzen da. Nahi duzunean alda dezakezu Ezarpenetan.",
|
uxPickHint: "Bat ukitu eta gordeta geratzen da. Nahi duzunean alda dezakezu Ezarpenetan.",
|
||||||
uxPickCurrent: "Erabiltzen",
|
uxPickCurrent: "Erabiltzen",
|
||||||
|
welcomeStepUseMobile: "Profila",
|
||||||
|
welcomeHintUseMobile: "Oasis zertarako erabiltzen duzun. Behar diren moduluak pizten ditu.",
|
||||||
|
wfHint_activists: "Batzarrak, tribuak, bozketak, foroak eta dokumentu partekatuak",
|
||||||
|
wfHint_acampada: "Kanpaldi baterako behar dena: txatak, gelak, batzordeak eta bozkatzea",
|
||||||
|
wfHint_full: "Modulu guztiak",
|
||||||
|
wfHint_default: "Modulu guztiak",
|
||||||
|
wfHint_social: "Jarioa, argazkiak, ekitaldiak eta lagunak",
|
||||||
|
wfHint_kids: "Eskola, jolasak eta sortzea",
|
||||||
|
wfHint_night: "Blogak, musika, bideoak eta solasa",
|
||||||
|
wfHint_jobs: "Lana, proiektuak, merkatua eta bulegoa",
|
||||||
|
wfHint_business: "Ekonomia, banka, bulegoa eta dokumentuak",
|
||||||
|
wfHint_mobile: "Mugikorrerako oinarrizkoa",
|
||||||
workflow_acampada: "Kanpaldia",
|
workflow_acampada: "Kanpaldia",
|
||||||
tribeSectionsMore: "Gehiago",
|
tribeSectionsMore: "Gehiago",
|
||||||
tribeSectionsLabel: "Atalak",
|
tribeSectionsLabel: "Atalak",
|
||||||
|
|
@ -356,6 +404,18 @@ module.exports = {
|
||||||
bbMenuClose: "Schließen",
|
bbMenuClose: "Schließen",
|
||||||
uxPickHint: "Tippe eins an und es ist gespeichert. Du kannst es jederzeit in den Einstellungen ändern.",
|
uxPickHint: "Tippe eins an und es ist gespeichert. Du kannst es jederzeit in den Einstellungen ändern.",
|
||||||
uxPickCurrent: "Aktiv",
|
uxPickCurrent: "Aktiv",
|
||||||
|
welcomeStepUseMobile: "Profil",
|
||||||
|
welcomeHintUseMobile: "Wofür du Oasis nutzt. Schaltet die nötigen Module ein.",
|
||||||
|
wfHint_activists: "Versammlungen, Stämme, Abstimmungen, Foren und gemeinsame Dokumente",
|
||||||
|
wfHint_acampada: "Was ein Camp braucht: Chats, Räume, Arbeitsgruppen und Abstimmen",
|
||||||
|
wfHint_full: "Alle Module",
|
||||||
|
wfHint_default: "Alle Module",
|
||||||
|
wfHint_social: "Feed, Fotos, Termine und Freunde",
|
||||||
|
wfHint_kids: "Schule, Spiele und Selbermachen",
|
||||||
|
wfHint_night: "Blogs, Musik, Videos und Gespräche",
|
||||||
|
wfHint_jobs: "Arbeit, Projekte, Markt und Büro",
|
||||||
|
wfHint_business: "Wirtschaft, Bank, Büro und Dokumente",
|
||||||
|
wfHint_mobile: "Das Wichtigste fürs Handy",
|
||||||
workflow_acampada: "Camp",
|
workflow_acampada: "Camp",
|
||||||
tribeSectionsMore: "Mehr",
|
tribeSectionsMore: "Mehr",
|
||||||
tribeSectionsLabel: "Bereiche",
|
tribeSectionsLabel: "Bereiche",
|
||||||
|
|
@ -438,6 +498,18 @@ module.exports = {
|
||||||
bbMenuClose: "Chiudi",
|
bbMenuClose: "Chiudi",
|
||||||
uxPickHint: "Toccane uno ed è salvato. Puoi cambiarlo quando vuoi nelle Impostazioni.",
|
uxPickHint: "Toccane uno ed è salvato. Puoi cambiarlo quando vuoi nelle Impostazioni.",
|
||||||
uxPickCurrent: "In uso",
|
uxPickCurrent: "In uso",
|
||||||
|
welcomeStepUseMobile: "Profilo",
|
||||||
|
welcomeHintUseMobile: "A cosa ti serve Oasis. Attiva i moduli necessari.",
|
||||||
|
wfHint_activists: "Assemblee, tribù, votazioni, forum e documenti condivisi",
|
||||||
|
wfHint_acampada: "Il necessario per un accampamento: chat, stanze, commissioni e voto",
|
||||||
|
wfHint_full: "Tutti i moduli",
|
||||||
|
wfHint_default: "Tutti i moduli",
|
||||||
|
wfHint_social: "Feed, foto, eventi e amicizie",
|
||||||
|
wfHint_kids: "Scuola, giochi e creatività",
|
||||||
|
wfHint_night: "Blog, musica, video e chiacchiere",
|
||||||
|
wfHint_jobs: "Lavoro, progetti, mercato e ufficio",
|
||||||
|
wfHint_business: "Economia, banca, ufficio e documenti",
|
||||||
|
wfHint_mobile: "L'essenziale per il telefono",
|
||||||
workflow_acampada: "Accampata",
|
workflow_acampada: "Accampata",
|
||||||
tribeSectionsMore: "Altro",
|
tribeSectionsMore: "Altro",
|
||||||
tribeSectionsLabel: "Sezioni",
|
tribeSectionsLabel: "Sezioni",
|
||||||
|
|
@ -520,6 +592,18 @@ module.exports = {
|
||||||
bbMenuClose: "Fechar",
|
bbMenuClose: "Fechar",
|
||||||
uxPickHint: "Toque num e fica guardado. Pode mudá-lo quando quiser nas Definições.",
|
uxPickHint: "Toque num e fica guardado. Pode mudá-lo quando quiser nas Definições.",
|
||||||
uxPickCurrent: "Em uso",
|
uxPickCurrent: "Em uso",
|
||||||
|
welcomeStepUseMobile: "Perfil",
|
||||||
|
welcomeHintUseMobile: "Para que usa o Oasis. Liga os módulos necessários.",
|
||||||
|
wfHint_activists: "Assembleias, tribos, votações, fóruns e documentos partilhados",
|
||||||
|
wfHint_acampada: "O necessário para um acampamento: chats, salas, comissões e votar",
|
||||||
|
wfHint_full: "Todos os módulos",
|
||||||
|
wfHint_default: "Todos os módulos",
|
||||||
|
wfHint_social: "Feed, fotos, eventos e amizades",
|
||||||
|
wfHint_kids: "Escola, jogos e criar coisas",
|
||||||
|
wfHint_night: "Blogues, música, vídeos e conversa",
|
||||||
|
wfHint_jobs: "Trabalho, projetos, mercado e escritório",
|
||||||
|
wfHint_business: "Economia, banca, escritório e documentos",
|
||||||
|
wfHint_mobile: "O básico para o telemóvel",
|
||||||
workflow_acampada: "Acampada",
|
workflow_acampada: "Acampada",
|
||||||
tribeSectionsMore: "Mais",
|
tribeSectionsMore: "Mais",
|
||||||
tribeSectionsLabel: "Secções",
|
tribeSectionsLabel: "Secções",
|
||||||
|
|
@ -602,6 +686,18 @@ module.exports = {
|
||||||
bbMenuClose: "关闭",
|
bbMenuClose: "关闭",
|
||||||
uxPickHint: "点一下即保存。随时可以在设置中更改。",
|
uxPickHint: "点一下即保存。随时可以在设置中更改。",
|
||||||
uxPickCurrent: "使用中",
|
uxPickCurrent: "使用中",
|
||||||
|
welcomeStepUseMobile: "用途",
|
||||||
|
welcomeHintUseMobile: "你用 Oasis 做什么。会打开需要的模块。",
|
||||||
|
wfHint_activists: "集会、部落、投票、论坛和共享文档",
|
||||||
|
wfHint_acampada: "营地所需:聊天、房间、小组和投票",
|
||||||
|
wfHint_full: "全部模块",
|
||||||
|
wfHint_default: "全部模块",
|
||||||
|
wfHint_social: "动态、照片、活动和朋友",
|
||||||
|
wfHint_kids: "学校、游戏和创作",
|
||||||
|
wfHint_night: "博客、音乐、视频和闲聊",
|
||||||
|
wfHint_jobs: "工作、项目、市场和办公",
|
||||||
|
wfHint_business: "经济、银行、办公和文档",
|
||||||
|
wfHint_mobile: "手机基本功能",
|
||||||
workflow_acampada: "营地",
|
workflow_acampada: "营地",
|
||||||
tribeSectionsMore: "更多",
|
tribeSectionsMore: "更多",
|
||||||
tribeSectionsLabel: "板块",
|
tribeSectionsLabel: "板块",
|
||||||
|
|
@ -684,6 +780,18 @@ module.exports = {
|
||||||
bbMenuClose: "إغلاق",
|
bbMenuClose: "إغلاق",
|
||||||
uxPickHint: "المس واحدًا ويُحفظ. يمكنك تغييره في أي وقت من الإعدادات.",
|
uxPickHint: "المس واحدًا ويُحفظ. يمكنك تغييره في أي وقت من الإعدادات.",
|
||||||
uxPickCurrent: "قيد الاستخدام",
|
uxPickCurrent: "قيد الاستخدام",
|
||||||
|
welcomeStepUseMobile: "الملف",
|
||||||
|
welcomeHintUseMobile: "لماذا تستخدم Oasis. يفعّل الوحدات التي تحتاجها.",
|
||||||
|
wfHint_activists: "جمعيات وقبائل وتصويت ومنتديات ووثائق مشتركة",
|
||||||
|
wfHint_acampada: "ما يلزم للمخيم: دردشات وغرف ولجان وتصويت",
|
||||||
|
wfHint_full: "كل الوحدات",
|
||||||
|
wfHint_default: "كل الوحدات",
|
||||||
|
wfHint_social: "الموجز والصور والفعاليات والأصدقاء",
|
||||||
|
wfHint_kids: "المدرسة والألعاب والإبداع",
|
||||||
|
wfHint_night: "مدونات وموسيقى وفيديو ودردشة",
|
||||||
|
wfHint_jobs: "عمل ومشاريع وسوق ومكتب",
|
||||||
|
wfHint_business: "اقتصاد ومصرف ومكتب ووثائق",
|
||||||
|
wfHint_mobile: "الأساسيات للهاتف",
|
||||||
workflow_acampada: "مخيم",
|
workflow_acampada: "مخيم",
|
||||||
tribeSectionsMore: "المزيد",
|
tribeSectionsMore: "المزيد",
|
||||||
tribeSectionsLabel: "الأقسام",
|
tribeSectionsLabel: "الأقسام",
|
||||||
|
|
@ -766,6 +874,18 @@ module.exports = {
|
||||||
bbMenuClose: "बंद करें",
|
bbMenuClose: "बंद करें",
|
||||||
uxPickHint: "एक पर टैप करें और वह सेव हो जाएगा। सेटिंग्स में इसे कभी भी बदल सकते हैं।",
|
uxPickHint: "एक पर टैप करें और वह सेव हो जाएगा। सेटिंग्स में इसे कभी भी बदल सकते हैं।",
|
||||||
uxPickCurrent: "चालू",
|
uxPickCurrent: "चालू",
|
||||||
|
welcomeStepUseMobile: "प्रोफ़ाइल",
|
||||||
|
welcomeHintUseMobile: "आप Oasis किस लिए इस्तेमाल करते हैं। ज़रूरी मॉड्यूल चालू करता है।",
|
||||||
|
wfHint_activists: "सभाएँ, ट्राइब, मतदान, फ़ोरम और साझा दस्तावेज़",
|
||||||
|
wfHint_acampada: "शिविर के लिए ज़रूरी: चैट, कमरे, समितियाँ और मतदान",
|
||||||
|
wfHint_full: "सभी मॉड्यूल",
|
||||||
|
wfHint_default: "सभी मॉड्यूल",
|
||||||
|
wfHint_social: "फ़ीड, फ़ोटो, कार्यक्रम और दोस्त",
|
||||||
|
wfHint_kids: "स्कूल, खेल और रचना",
|
||||||
|
wfHint_night: "ब्लॉग, संगीत, वीडियो और बातचीत",
|
||||||
|
wfHint_jobs: "काम, प्रोजेक्ट, बाज़ार और दफ़्तर",
|
||||||
|
wfHint_business: "अर्थव्यवस्था, बैंकिंग, दफ़्तर और दस्तावेज़",
|
||||||
|
wfHint_mobile: "फ़ोन के लिए बुनियादी",
|
||||||
workflow_acampada: "शिविर",
|
workflow_acampada: "शिविर",
|
||||||
tribeSectionsMore: "और",
|
tribeSectionsMore: "और",
|
||||||
tribeSectionsLabel: "खंड",
|
tribeSectionsLabel: "खंड",
|
||||||
|
|
@ -848,6 +968,18 @@ module.exports = {
|
||||||
bbMenuClose: "Закрыть",
|
bbMenuClose: "Закрыть",
|
||||||
uxPickHint: "Нажмите на вариант, и он сохранится. Изменить можно в любой момент в Настройках.",
|
uxPickHint: "Нажмите на вариант, и он сохранится. Изменить можно в любой момент в Настройках.",
|
||||||
uxPickCurrent: "Сейчас",
|
uxPickCurrent: "Сейчас",
|
||||||
|
welcomeStepUseMobile: "Профиль",
|
||||||
|
welcomeHintUseMobile: "Для чего вам Oasis. Включает нужные модули.",
|
||||||
|
wfHint_activists: "Собрания, племена, голосования, форумы и общие документы",
|
||||||
|
wfHint_acampada: "Всё для лагеря: чаты, комнаты, комиссии и голосование",
|
||||||
|
wfHint_full: "Все модули",
|
||||||
|
wfHint_default: "Все модули",
|
||||||
|
wfHint_social: "Лента, фото, события и друзья",
|
||||||
|
wfHint_kids: "Школа, игры и творчество",
|
||||||
|
wfHint_night: "Блоги, музыка, видео и общение",
|
||||||
|
wfHint_jobs: "Работа, проекты, рынок и офис",
|
||||||
|
wfHint_business: "Экономика, банк, офис и документы",
|
||||||
|
wfHint_mobile: "Основное для телефона",
|
||||||
workflow_acampada: "Лагерь",
|
workflow_acampada: "Лагерь",
|
||||||
tribeSectionsMore: "Ещё",
|
tribeSectionsMore: "Ещё",
|
||||||
tribeSectionsLabel: "Разделы",
|
tribeSectionsLabel: "Разделы",
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,10 @@ const register = () => {
|
||||||
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);
|
||||||
wf.WORKFLOW_KEYS.push(w.key);
|
wf.WORKFLOW_KEYS.push(w.key);
|
||||||
// en el movil, la primera opcion del asistente
|
// en el asistente, detras de activistas (en el movil mobile_ui.workflowPick pone
|
||||||
if (process.env.OASIS_MOBILE === '1') wf.WIZARD_WORKFLOWS.unshift(w.key);
|
// Activismo y Acampada las primeras)
|
||||||
else wf.WIZARD_WORKFLOWS.push(w.key);
|
const at = wf.WIZARD_WORKFLOWS.indexOf('activists');
|
||||||
|
wf.WIZARD_WORKFLOWS.splice(at === -1 ? wf.WIZARD_WORKFLOWS.length : at + 1, 0, w.key);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,16 +22,13 @@ module.exports = ({ i18n }) => {
|
||||||
const renderMobileTopbar = () => {
|
const renderMobileTopbar = () => {
|
||||||
// solo en movil: en escritorio manda la cabecera de upstream
|
// solo en movil: en escritorio manda la cabecera de upstream
|
||||||
if (process.env.OASIS_MOBILE !== '1') return "";
|
if (process.env.OASIS_MOBILE !== '1') return "";
|
||||||
// FORK_IA_UX v3: Personal/Community VUELVEN al topbar (ya funcionan: la hoja cerrada es
|
// Personal/Social ya no van aqui: filtraban el lanzador, que ahora esta en la hoja
|
||||||
// visibility:hidden y no bloquea los taps). Llena el top y da el filtro a un toque.
|
// del menu, y con muchos modulos (workflow activistas) no cabian a 360px y tapaban
|
||||||
const hiveFilter = (typeof global !== "undefined" && global.__OASIS_HIVE_FILTER__) || "";
|
// el logo. Queda el hueco para el boton de No molestar del telefono
|
||||||
return div(
|
return div(
|
||||||
{ class: "oasis-mobile-topbar" },
|
{ class: "oasis-mobile-topbar" },
|
||||||
a({ class: "omt-logo", href: "/" }, img({ src: "/assets/images/snh-oasis.jpg", alt: "Oasis" })),
|
a({ class: "omt-logo", href: "/" }, img({ src: "/assets/images/snh-oasis.jpg", alt: "Oasis" })),
|
||||||
isCompact() ? div({ class: "omt-menus" }) : div({ class: "omt-menus" },
|
div({ class: "omt-menus" }),
|
||||||
a({ class: hiveFilter === "personal" ? "oasis-menu-btn active" : "oasis-menu-btn", href: hiveFilter === "personal" ? "/activity" : "/activity?hive=personal" }, span(i18n.menuPersonal || "Personal")),
|
|
||||||
a({ class: hiveFilter === "community" ? "oasis-menu-btn active" : "oasis-menu-btn", href: hiveFilter === "community" ? "/activity" : "/activity?hive=community" }, span(i18n.menuSocial || "Social"))
|
|
||||||
),
|
|
||||||
a({ class: "omt-avatar", href: "/profile" }, img({ src: (typeof global !== "undefined" && global.__OASIS_SELF_AVATAR__) || "/assets/images/default-avatar.png", alt: i18n.profile || "Profile" }))
|
a({ class: "omt-avatar", href: "/profile" }, img({ src: (typeof global !== "undefined" && global.__OASIS_SELF_AVATAR__) || "/assets/images/default-avatar.png", alt: i18n.profile || "Profile" }))
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,36 @@ const uxPick = (action, cfg, withHint) => {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// perfil de uso (workflow): igual, un boton por opcion con una linea de para que
|
||||||
|
// sirve. Activismo y Acampada primero; el resto en el orden del dev
|
||||||
|
const WORKFLOW_FIRST = ['activists', 'acampada'];
|
||||||
|
const workflowPick = (action, current, keys, withHint) => {
|
||||||
|
const i18n = t();
|
||||||
|
const list = WORKFLOW_FIRST.filter(k => keys.includes(k)).concat(keys.filter(k => !WORKFLOW_FIRST.includes(k)));
|
||||||
|
const name = (k) => k === 'full' ? (i18n.welcomeWorkflow_full || k) : (i18n[`workflow_${k}`] || k);
|
||||||
|
return form({ method: 'POST', action, class: 'ux-pick wf-pick' },
|
||||||
|
withHint ? p({ class: 'ux-pick-hint' }, i18n.uxPickHint || 'Tap one and it is saved. You can change it any time in Settings.') : null,
|
||||||
|
div({ class: 'ux-pick-grid' },
|
||||||
|
...list.map(k => button(Object.assign({ type: 'submit', name: 'workflow', value: k, class: k === current ? 'ux-pick-card is-current' : 'ux-pick-card' }, k === current ? { 'aria-current': 'true' } : {}),
|
||||||
|
span({ class: 'ux-pick-text' },
|
||||||
|
span({ class: 'ux-pick-label' }, name(k)),
|
||||||
|
i18n[`wfHint_${k}`] ? span({ class: 'ux-pick-sub' }, i18n[`wfHint_${k}`]) : null),
|
||||||
|
k === current ? span({ class: 'ux-pick-now' }, i18n.uxPickCurrent || 'In use') : null
|
||||||
|
))
|
||||||
|
)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// pasos de la bienvenida en el movil: el backend del dev quita el de uso en el movil;
|
||||||
|
// aqui vuelve, el segundo, justo despues de la identidad (/welcome/workflow es suyo)
|
||||||
|
const welcomeSteps = (usable) => {
|
||||||
|
if (usable.includes('workflow')) return usable;
|
||||||
|
const out = usable.slice();
|
||||||
|
const at = out.indexOf('profile');
|
||||||
|
out.splice(at === -1 ? 0 : at + 1, 0, 'workflow');
|
||||||
|
return out;
|
||||||
|
};
|
||||||
|
|
||||||
// ---------- acciones de tarjeta ----------
|
// ---------- acciones de tarjeta ----------
|
||||||
|
|
||||||
// borrar pide un segundo toque: la X abre "¿Borrar? Si, borrar" y solo ese boton
|
// borrar pide un segundo toque: la X abre "¿Borrar? Si, borrar" y solo ese boton
|
||||||
|
|
@ -200,6 +230,6 @@ const welcomeBannerAction = () => t().welcomeBannerActionMobile || t().welcomeBa
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
isMobile, VOTE_KINDS, voteKindPicker, voteBars, voteOwnNote, tribeRow, tribeTabs,
|
isMobile, VOTE_KINDS, voteKindPicker, voteBars, voteOwnNote, tribeRow, tribeTabs,
|
||||||
settingsOrder, languagePick, uxPick, deleteConfirm, footerLine,
|
settingsOrder, languagePick, uxPick, workflowPick, welcomeSteps, deleteConfirm, footerLine,
|
||||||
welcomeBannerHere, welcomeBannerText, welcomeBannerAction
|
welcomeBannerHere, welcomeBannerText, welcomeBannerAction
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -72,10 +72,7 @@ const settingsView = (params) => {
|
||||||
);
|
);
|
||||||
const workflowPicker = () => section({ id: "workflows" },
|
const workflowPicker = () => section({ id: "workflows" },
|
||||||
div({ class: "tags-header" }, h2(i18n.workflowsTitle), p(i18n.workflowsDescriptionMobile)),
|
div({ class: "tags-header" }, h2(i18n.workflowsTitle), p(i18n.workflowsDescriptionMobile)),
|
||||||
form({ action: "/settings/workflow", method: "POST", class: "workflow-pick" },
|
mobileUi.workflowPick("/settings/workflow", activeWorkflow, WORKFLOWS.map(w => w.key))
|
||||||
...WORKFLOWS.map(w => button({ type: "submit", name: "workflow", value: w.key, class: activeWorkflow === w.key ? "workflow-card is-current" : "workflow-card" },
|
|
||||||
i18n[`workflow_${w.key}`] || w.key))
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const workflowSection = isMobile ? workflowPicker() : section({ id: "workflows" },
|
const workflowSection = isMobile ? workflowPicker() : section({ id: "workflows" },
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ const SECTIONS = {
|
||||||
community: ["welcomeStepCommunity", "welcomeHintCommunity"],
|
community: ["welcomeStepCommunity", "welcomeHintCommunity"],
|
||||||
greeting: ["welcomeStepIntro", "welcomeHintIntro"]
|
greeting: ["welcomeStepIntro", "welcomeHintIntro"]
|
||||||
}
|
}
|
||||||
|
if (mobileUi.isMobile()) SECTIONS.workflow = ["welcomeStepUseMobile", "welcomeHintUseMobile"]
|
||||||
|
|
||||||
const submitRow = (text) => div({ class: "welcome-action" }, button({ type: "submit" }, text))
|
const submitRow = (text) => div({ class: "welcome-action" }, button({ type: "submit" }, text))
|
||||||
|
|
||||||
|
|
@ -54,6 +55,7 @@ const stepAction = (key, profile, status) => {
|
||||||
}
|
}
|
||||||
if (key === "workflow") {
|
if (key === "workflow") {
|
||||||
const selected = WIZARD_WORKFLOWS.includes(status.workflow) ? status.workflow : "full"
|
const selected = WIZARD_WORKFLOWS.includes(status.workflow) ? status.workflow : "full"
|
||||||
|
if (mobileUi.isMobile()) return mobileUi.workflowPick("/welcome/workflow", WIZARD_WORKFLOWS.includes(status.workflow) ? status.workflow : null, WIZARD_WORKFLOWS, true)
|
||||||
return form({ method: "POST", action: "/welcome/workflow", class: "welcome-select-form" },
|
return form({ method: "POST", action: "/welcome/workflow", class: "welcome-select-form" },
|
||||||
select({ name: "workflow" },
|
select({ name: "workflow" },
|
||||||
WIZARD_WORKFLOWS.map(k => option({ value: k, ...(k === selected ? { selected: true } : {}) }, k === "full" ? i18n.welcomeWorkflow_full : (i18n[`workflow_${k}`] || k)))
|
WIZARD_WORKFLOWS.map(k => option({ value: k, ...(k === selected ? { selected: true } : {}) }, k === "full" ? i18n.welcomeWorkflow_full : (i18n[`workflow_${k}`] || k)))
|
||||||
|
|
@ -104,7 +106,7 @@ const stepAction = (key, profile, status) => {
|
||||||
|
|
||||||
exports.welcomeView = async (status, profile = {}) => {
|
exports.welcomeView = async (status, profile = {}) => {
|
||||||
const steps = status.steps || {}
|
const steps = status.steps || {}
|
||||||
const usable = status.usable || []
|
const usable = mobileUi.isMobile() ? mobileUi.welcomeSteps(status.usable || []) : (status.usable || [])
|
||||||
const opened = usable.find(key => !steps[key])
|
const opened = usable.find(key => !steps[key])
|
||||||
const html = template(
|
const html = template(
|
||||||
i18n.welcomeTitle,
|
i18n.welcomeTitle,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue