From 9962aec84b166fc97e09ce5a37279460d7edff57 Mon Sep 17 00:00:00 2001 From: Ricardo Gonzalez Date: Fri, 29 May 2026 02:00:45 -0500 Subject: [PATCH] =?UTF-8?q?ProjectListView:=20modal=20descripci=C3=B3n=20c?= =?UTF-8?q?ompleta=20+=20gestor=20de=20equipo=20por=20proyecto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Descripción clickeable abre Dialog con texto completo - Avatares de miembros del equipo en cada card (tooltip + max 4 + +N) - Gestor de equipo: selección curada de miembros por proyecto - Persistencia local vía storage (L1/L2/L3) - i18n es/en con 7 keys nuevas --- src/i18n/locales/en.json | 13 +- src/i18n/locales/es.json | 13 +- src/views/ProjectListView.vue | 230 +++++++++++++++++++++++++++++++++- 3 files changed, 247 insertions(+), 9 deletions(-) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index b28b317..2488e62 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -75,7 +75,9 @@ "loading": "Loading...", "retry": "Retry", "backToProjects": "Back to Projects", - "noDescription": "No description" + "noDescription": "No description", + "cancel": "Cancel", + "save": "Save" }, "sidebar": { "navigation": "Navigation", @@ -133,7 +135,14 @@ "emptyTitle": "No assigned projects", "emptyDescription": "You have no active projects in KAPPA.", "noDescription": "No description", - "unnamedFallback": "Project {id}" + "unnamedFallback": "Project {id}", + "clickToExpand": "Click to view full description", + "descriptionModalTitle": "Full description", + "teamMembers": "Team", + "manageTeam": "Manage team", + "selectTeamMembers": "Select team members for this project", + "noTeamMembers": "No team assigned", + "moreMembers": "+{count} more" }, "users": { "teamTitle": "Team", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index a70cce1..6181d0a 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -75,7 +75,9 @@ "loading": "Cargando...", "retry": "Reintentar", "backToProjects": "Volver a Proyectos", - "noDescription": "Sin descripción" + "noDescription": "Sin descripción", + "cancel": "Cancelar", + "save": "Guardar" }, "sidebar": { "navigation": "Navegación", @@ -133,7 +135,14 @@ "emptyTitle": "Sin proyectos asignados", "emptyDescription": "No tienes proyectos activos en KAPPA.", "noDescription": "Sin descripción", - "unnamedFallback": "Proyecto {id}" + "unnamedFallback": "Proyecto {id}", + "clickToExpand": "Click para ver descripción completa", + "descriptionModalTitle": "Descripción completa", + "teamMembers": "Equipo", + "manageTeam": "Gestionar equipo", + "selectTeamMembers": "Seleccioná los miembros del equipo para este proyecto", + "noTeamMembers": "Sin equipo asignado", + "moreMembers": "+{count} más" }, "users": { "teamTitle": "Equipo", diff --git a/src/views/ProjectListView.vue b/src/views/ProjectListView.vue index 5eeb395..b3265b4 100644 --- a/src/views/ProjectListView.vue +++ b/src/views/ProjectListView.vue @@ -1,8 +1,10 @@ @@ -97,6 +208,7 @@ onMounted(() => { @click="projects.select(p.id); emit('select-project', p.id)" > +
{{ p.initiative_name || p.name || t('projects.unnamedFallback', { id: p.id }) }} @@ -105,9 +217,17 @@ onMounted(() => { {{ getStatusLabel(p.status) }}
- + + + {{ p.description || t('projects.noDescription') }} + +
{{ p.key }} @@ -116,8 +236,108 @@ onMounted(() => { {{ p.start_date }}
+ + +
+ +
+ + +
+ + + {{ t('projects.noTeamMembers') }} + +
+ + + + + + {{ descProject?.name }} + {{ t('projects.descriptionModalTitle') }} + +
+ {{ descProject?.description || t('projects.noDescription') }} +
+
+
+ + + + + + {{ t('projects.manageTeam') }} + {{ t('projects.selectTeamMembers') }} + +
+ +
+ {{ t('users.emptyTitle') }} +
+
+
+ + +
+
+