feat: DTF customization #1

Open
daniel.subiabre wants to merge 69 commits from feat/dtf-web into main
69 Commits
Author SHA1 Message Date
daniel.subiabre 70ca4596a4 fix: update copy for "anonymous users" to "goteo.org users"
Prettier Format Check / format-check (pull_request) Canceled after 0s
2026-10-15 12:44:30 +02:00
daniel.subiabre 84ab232c3b fix: color of budget card 2026-10-15 12:24:12 +02:00
daniel.subiabre 8e38e3440f fix: change variant1 of tabs background to purple-soft 2026-10-15 12:20:36 +02:00
daniel.subiabre 3c469616ae fix: regressions introduced by open-core merge
Prettier Format Check / format-check (pull_request) Canceled after 0s
2026-10-08 17:01:58 +02:00
daniel.subiabre 619e63d07e Merge branch 'main' into feat/dtf-web 2026-10-08 16:51:15 +02:00
Daniel Subiabre García cc7ea665ec Merge pull request #3 from goteo/develop
chore: sync main to open-core develop
2026-10-08 16:48:26 +02:00
David Moreno CámaraandPep Villalonga b0e2db8908 [feat] Admit localized content for home hero (#503)
* fix: make home hero text required and media optional

* fix: hero start-only scheduling, prefilled form and history with delete

* feat: add hero preview modal to admin form and fix icon home

* fix: default home hero timestamps to current date

* feat: preview hero from history rows in a modal

* fix: accept local hero urls and reload after save

* feat: admit localized content for home hero, base language and translations

* feat: add itemClass to override DropdownItem classes

* chore: format code with prettier

* feat: allow hero translations in any language with a searchable picker

- Searchable picker fed by the full ISO 639-1 catalog, not limited to UI locales
- No base language: the platform language only seeds the form and can be
  removed once a second language exists
- Locale pattern validation in createHomeHero
- LanguagesDropdown controlled from the parent
- Chosen label shown in the picker input
- es.json hero keys

* fix: bind all 11 home_hero columns when storing a hero

The previous merge left 10 placeholders for 11 columns, so creating a hero row was failing.

* fix: drop unused TranslationRecord interface

* chore: format code with prettier

* feat: add updateHomeHero to overwrite a stored hero

* feat: preview heroes in any of their languages

* feat: validate title and content in every selected language

* feat: overwrite a hero from the history

* fix: rename admin home hero tabs

* chore: format code with Prettier

---------

Co-authored-by: Pep Villalonga <pep.villalonga@platoniq.net>
2026-10-08 16:25:30 +02:00
David Moreno Cámaraanddaniel.subiabre 208fff4e85 [feat] Add manage personal profile + organize me sections + add categories preferences selections + other (#519)
* feat: add shared profile manage components and utilities

* feat: add me section navigation and route restructuring

* feat: add personal/public profile forms with validation and actions

* chore: format code with prettier

* refactor: consolidate public profile action

* fix: remove public data from personal profile form

* fix: split public / private info forms

* fix: stale user handle, non-floating toasts

* feat: improve preferred language

* fix: remove non-necessary "Goteo" mentions

* fix: code style issues by eslint and prettier

---------

Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>
2026-10-08 16:25:03 +02:00
Pep Villalonga Amorós 587dde7b9c fix: refresh session user roles from the API on each request (#525)
* fix: refresh session user roles from the API on each request

* refactor: resolve session in firewall with configurable cached-session paths
2026-10-08 16:24:40 +02:00
Pep Villalonga Amorós 02281f59d1 feat: unify project card with segmented progress bar (#526) 2026-10-08 16:22:55 +02:00
David Moreno Cámara 8c021b5806 [feat] Project reviews (areas + chat admin-user) (#523)
* chore: move RiskCard, ChatMessage and ChatTextarea components to /components/review

* feat: add review domain types, mocks and services

* feat: expose review actions and open reviews routes

* feat: build review areas and chat screens

* fix: navigate from BackButton links

* chore: remove review temporary CTA from home

* chore: format code by prettier
2026-10-07 13:44:39 +02:00
Pep Villalonga Amorós 935f183f76 fix: show owned projects in profile promoted tab and move donated ones to donor type (#520)
* fix: show owned projects in profile promoted tab and move donated ones to donor type

* fix: prefer project cover and build owner IRI from operation path
2026-10-07 13:40:34 +02:00
Pep Villalonga Amorós 888a954f68 feat: add project review admin page (#517)
* feat: add project review admin page

* fix: scope project review to campaign statuses and trust API currency
2026-10-07 13:37:23 +02:00
6eeb6f06dd use global.css color variables in ProgressChart canvas (#514)
Co-authored-by: Angel Di Pinto <angel.dipinto@platoniq.net>
Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>
2026-10-05 17:32:48 +02:00
Pep Villalonga Amorós 793683d5bb chore: remove Platoniq deploy infra for open core (#512)
* chore: remove Platoniq deploy infra for open core

* feat: make share widget host configurable via PUBLIC_WIDGET_URL

* fix: build widget link from current host

* docs: update README and drop deploy pipeline references
2026-10-05 17:31:35 +02:00
Pep Villalonga Amorós 190f5275e6 feat: add project manage page for owners and admins (#504)
* feat: add project manage page for owners and admins

* fix: widen claim status columns and add bottom padding

* feat: add user search and CSV export to manage tables

* fix: address review on project manage page

* feat: show non-anchored toasts floating at bottom-right
2026-10-05 17:31:13 +02:00
Pep Villalonga Amorós 18255969e0 fix: show project cover on project page and link owner profile (#518) 2026-10-05 17:24:11 +02:00
Pep Villalonga Amorós 71991431ff feat: show non-anchored toasts floating at bottom-right (#515) 2026-10-05 17:14:50 +02:00
daniel.subiabre 05e536899b fix: code style issues by eslint and prettier 2026-10-05 15:59:34 +02:00
daniel.subiabre 34cadfbb26 feat: add boldonse for h1, h2, h3 2026-10-05 15:57:01 +02:00
daniel.subiabre d2345578cc feat: DTF logo in footer 2026-10-05 15:51:56 +02:00
daniel.subiabre 69bcc612e7 feat: update Footer logos 2026-10-05 10:59:29 +02:00
daniel.subiabre c7d31a1f76 feat: update shelves look 2026-10-02 16:02:56 +02:00
daniel.subiabre aeded636dc feat: reduce vspacing between home blocks 2026-10-02 16:02:44 +02:00
daniel.subiabre affc8af8d0 fix: code style fixes by eslint and prettier
Prettier Format Check / format-check (pull_request) Canceled after 0s
2026-10-02 14:12:55 +02:00
daniel.subiabre 4b341047c6 feat: add about DTF static content 2026-10-02 14:10:47 +02:00
daniel.subiabre f91c8403d6 feat: update blog card 2026-10-02 14:03:26 +02:00
daniel.subiabre 557ff564e2 feat: update shelves prototype cards 2026-10-02 13:57:44 +02:00
daniel.subiabre fb9a613614 feat: update Matchfunding top card 2026-10-02 13:28:07 +02:00
daniel.subiabre 8ab1f96c3c fix: code style issues by eslint and prettier 2026-10-02 12:12:30 +02:00
daniel.subiabre d326eec947 feat: update footer contents 2026-10-02 12:08:54 +02:00
daniel.subiabre 3294f0d8ea fix: wrong projects and bad colors in campaigns carrousel 2026-10-02 11:52:23 +02:00
daniel.subiabre ab703eaed1 feat: update Matchfunding section to mockup 2026-10-02 11:49:56 +02:00
daniel.subiabre c4d1bd4c6e fix: store changes seen during review 2026-10-02 11:31:07 +02:00
daniel.subiabre 33d4866bdf fix: update borders and round radii 2026-10-02 09:38:49 +02:00
daniel.subiabre 1ea02dce87 feat: update campaign card to DTF style 2026-10-02 03:21:03 +02:00
daniel.subiabre dd1c5ed713 feat: update header layout 2026-10-02 03:14:50 +02:00
daniel.subiabre 40e05989bb feat: update footer data and assets 2026-10-02 03:05:08 +02:00
daniel.subiabre 2047e58ed6 feat: update Logo 2026-10-02 02:53:32 +02:00
daniel.subiabre 24d121a56a feat: update selected campaings in CampaignsTabs 2026-10-02 02:30:36 +02:00
daniel.subiabre 928595785d feat: pilot update of call cards data 2026-10-02 02:24:53 +02:00
daniel.subiabre 1e168faa08 feat: update order of home sections 2026-10-02 02:24:31 +02:00
daniel.subiabre 3e709f8c98 Merge branch 'main' into feat/dtf-web 2026-10-02 02:16:48 +02:00
Daniel Subiabre García 2fd9d99bf7 Merge pull request #516 from goteo/hotfix/missing-project-community-items-on-all-anon (#2)
fix: show grid with all elements regardless of group length
2026-10-02 02:16:33 +02:00
daniel.subiabre d6db88be3b Merge pull request #516 from goteo/hotfix/missing-project-community-items-on-all-anon
fix: show grid with all elements regardless of group length
2026-10-01 20:38:03 +02:00
daniel.subiabre 4c4be4d86e Merge branch 'main' into feat/dtf-web
Prettier Format Check / format-check (pull_request) Canceled after 0s
2026-09-29 16:37:52 +02:00
Daniel Subiabre García 45b71d8be2 Merge branch 'goteo:main' into main 2026-09-29 16:36:10 +02:00
8fba3034d4 chore: sync main to develop (#513)
* refactor: extract shared debounce util

* fix: project search in admin highlights

* fix: add save feedback, cover images and 84px cells to highlights

* fix: show selection and empty state in basic dropdown

* docs: update SKILL-template to current codebase (#507)

* docs: update SKILL-template to current codebase

* fix: remove unnecesary check command alias

* fix: update SDK regen command from `openapi` to `sdk`

* fix: indentation on command table

---------

Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>

* feat: Improve footer config (#508)

* feat: hide footer funding section if empty

* feat: update footer social link type

* fix: move footer data out of ad-hoc lone config folder

* fix: code style issues by eslint and prettier

* chore: import zod from zod package in actions (#506)

* feat: show user avatar in header (#505)

* Feat/implement reward claims (#471)

* create RewardClaims after payment

* replace ClearCart with RewardClaims

* mount RewardClaim on payment verification

* format

* match charges by fields and order to avoid duplicate claims

* guard RewardClaims whit allSucceeded, soft-delete carts via finalised flag

* format

* feat: add POST /api/checkout/rewardClaims endpoint

* refactor: make RewardClaims.svelte a  thin client that submit the cart

* fix: pass checkoutId into the verified-checkout reward claims flow

* fix: format

---------

Co-authored-by: Angel Di Pinto <angel.dipinto@platoniq.net>

* Feat/refactor activity section (#480)

* refactor ActivitySection (DonationsCard-MatchfundingCard-ProjectsCart)

* format

* refactor: apply DonationsCard (ld+json totals, batch slug[], money_total)

* refactor: ProjectsCard (ld-json totals, async, remove lang)

* refactor: MatchfundingCard (drop lang prop)

---------

Co-authored-by: Angel Di Pinto <angel.dipinto@platoniq.net>

* feat: implement promoter public profile form in /me/manage (#495)

* feat: implement promoter public profile form in /me/manage

* feat: add view profile button to /me/manage

* feat: persist social links and fix profile PATCH

* fix: load current user in /me/manage so social links show up

* fix: use design social icons on user profile

* feat: accept username or link in profile social fields

* fix: always send links on profile update so they are not cleared

* Fix: admin highlights save (#511)

* fix: cast highlight slot project ids to integer

* fix: drop highlight slots outside selected layout on save

* feat: add link, lists and quote to RichTextEditor with opt-out toolbar props (#509)

* feat: add link, lists and quote to RichTextEditor with opt-out toolbar props

* feat: add heading select to RichTextEditor and close link popover on outside click

* refactor: simplify search page state (#510)

* refactor: simplify search page state

* fix: update naming convention examples

---------

Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>

* Feat/user preferences manage screen (#496)

* Render ManagePreferencesSection in /me/manage

* add ManagePreferencesSection component

* add manage preferences i18n key to es.json

* add manage preferences i18n keys

* add ManagePreferencesSection with form, language cookies and PATCH

* add dedicated /me/menege/preferences route

* link preferences screen from /me/manage sidebar

* fix: remove pointless user PATCH, adopt twMerge

---------

Co-authored-by: Angel Di Pinto <angel.dipinto@platoniq.net>

---------

Co-authored-by: Pep Villalonga <pep.villalonga@platoniq.net>
Co-authored-by: angeldipinto <72363089+angeldipinto@users.noreply.github.com>
Co-authored-by: Angel Di Pinto <angel.dipinto@platoniq.net>
2026-09-29 16:35:50 +02:00
angeldipintoandAngel Di Pinto 3141241b2d Feat/user preferences manage screen (#496)
* Render ManagePreferencesSection in /me/manage

* add ManagePreferencesSection component

* add manage preferences i18n key to es.json

* add manage preferences i18n keys

* add ManagePreferencesSection with form, language cookies and PATCH

* add dedicated /me/menege/preferences route

* link preferences screen from /me/manage sidebar

* fix: remove pointless user PATCH, adopt twMerge

---------

Co-authored-by: Angel Di Pinto <angel.dipinto@platoniq.net>
2026-09-29 13:43:57 +02:00
Pep Villalonga Amorósanddaniel.subiabre ddafe0dc7d refactor: simplify search page state (#510)
* refactor: simplify search page state

* fix: update naming convention examples

---------

Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>
2026-09-29 13:30:42 +02:00
Pep Villalonga Amorós 6ccb2baff2 feat: add link, lists and quote to RichTextEditor with opt-out toolbar props (#509)
* feat: add link, lists and quote to RichTextEditor with opt-out toolbar props

* feat: add heading select to RichTextEditor and close link popover on outside click
2026-09-29 13:23:19 +02:00
Pep Villalonga Amorós 83de5412a0 Fix: admin highlights save (#511)
* fix: cast highlight slot project ids to integer

* fix: drop highlight slots outside selected layout on save
2026-09-28 17:01:05 +02:00
Pep Villalonga Amorós 21f06bba3d feat: implement promoter public profile form in /me/manage (#495)
* feat: implement promoter public profile form in /me/manage

* feat: add view profile button to /me/manage

* feat: persist social links and fix profile PATCH

* fix: load current user in /me/manage so social links show up

* fix: use design social icons on user profile

* feat: accept username or link in profile social fields

* fix: always send links on profile update so they are not cleared
2026-09-28 15:18:08 +02:00
angeldipintoandAngel Di Pinto 5881b75645 Feat/refactor activity section (#480)
* refactor ActivitySection (DonationsCard-MatchfundingCard-ProjectsCart)

* format

* refactor: apply DonationsCard (ld+json totals, batch slug[], money_total)

* refactor: ProjectsCard (ld-json totals, async, remove lang)

* refactor: MatchfundingCard (drop lang prop)

---------

Co-authored-by: Angel Di Pinto <angel.dipinto@platoniq.net>
2026-09-28 15:17:41 +02:00
angeldipintoandAngel Di Pinto 71c4cd050c Feat/implement reward claims (#471)
* create RewardClaims after payment

* replace ClearCart with RewardClaims

* mount RewardClaim on payment verification

* format

* match charges by fields and order to avoid duplicate claims

* guard RewardClaims whit allSucceeded, soft-delete carts via finalised flag

* format

* feat: add POST /api/checkout/rewardClaims endpoint

* refactor: make RewardClaims.svelte a  thin client that submit the cart

* fix: pass checkoutId into the verified-checkout reward claims flow

* fix: format

---------

Co-authored-by: Angel Di Pinto <angel.dipinto@platoniq.net>
2026-09-28 15:17:11 +02:00
Pep Villalonga Amorós aae796d3d1 feat: show user avatar in header (#505) 2026-09-28 15:16:51 +02:00
Pep Villalonga Amorós 4e558cf115 chore: import zod from zod package in actions (#506) 2026-09-25 15:38:22 +02:00
daniel.subiabre 966ffd7d07 feat: Improve footer config (#508)
* feat: hide footer funding section if empty

* feat: update footer social link type

* fix: move footer data out of ad-hoc lone config folder

* fix: code style issues by eslint and prettier
2026-09-25 15:35:13 +02:00
Pep Villalonga Amorósanddaniel.subiabre 0f583d0fe1 docs: update SKILL-template to current codebase (#507)
* docs: update SKILL-template to current codebase

* fix: remove unnecesary check command alias

* fix: update SDK regen command from `openapi` to `sdk`

* fix: indentation on command table

---------

Co-authored-by: Daniel Subiabre <daniel.subiabre@platoniq.net>
2026-09-25 15:34:49 +02:00
daniel.subiabre 9ea6139c27 Merge branch 'main' into feat/dtf-web 2026-09-25 12:24:51 +02:00
Daniel Subiabre GarcíaandPep Villalonga ae8ed6aacb chore: sync main to core develop (#1)
* refactor: extract shared debounce util

* fix: project search in admin highlights

* fix: add save feedback, cover images and 84px cells to highlights

* fix: show selection and empty state in basic dropdown

---------

Co-authored-by: Pep Villalonga <pep.villalonga@platoniq.net>
2026-09-25 12:23:50 +02:00
daniel.subiabre 8f1fbf2768 Merge pull request #497 from goteo/fix/admin-highlights-project-search
Fix: admin highlights project search
2026-09-25 12:20:11 +02:00
Pep Villalonga 08e98ca82a fix: show selection and empty state in basic dropdown 2026-09-25 12:13:24 +02:00
daniel.subiabre 556c171ce9 fix: update usage of colors 2026-09-25 11:55:16 +02:00
daniel.subiabre c802acae6f feat: update colour palette
Prettier Format Check / format-check (pull_request) Canceled after 0s
2026-09-24 14:58:03 +02:00
daniel.subiabre f3271dc113 feat: update app config names to DTF 2026-09-24 14:51:57 +02:00
Pep Villalonga cb89e4bed1 fix: add save feedback, cover images and 84px cells to highlights 2026-09-24 10:41:14 +02:00
Pep Villalonga 9382f69585 fix: project search in admin highlights 2026-09-23 13:04:59 +02:00
Pep Villalonga 292936a218 refactor: extract shared debounce util 2026-09-23 13:04:59 +02:00