1551 Commits

Author SHA1 Message Date
9ff74b4219
fix(webapp): fix badge select + drag&drop for badges on desktop devices (#9287) 2026-02-21 19:42:44 +00:00
ccf10610c8
feat(webapp): feed view mode (#9285) 2026-02-21 18:48:41 +00:00
1b2c5e68b6
fix(webapp): flex layout und spacing in profile und group pages (#9286) 2026-02-21 17:59:01 +00:00
6b6e77c2a5
fix(webapp): optimize masonry grid rendering and add SSR compatibility (#9284) 2026-02-21 12:39:12 +00:00
e3a41cb828
fix(webapp): add responsive masonry layout and skeleton loading UI (#9282) 2026-02-21 11:01:59 +00:00
64594a3235
fix(webapp): user teaser (#9283) 2026-02-21 08:52:23 +00:00
9548ad6e31
fix(webapp): add responsive mobile menu with locale switching and filter support (#9281) 2026-02-21 07:47:14 +00:00
bbad57bbc7
feat(package/ui): os-number (#9254) 2026-02-21 04:13:42 +00:00
518ed8af89
refactor(webapp): webapp test - no more skipped, no more todos (#9252) 2026-02-20 23:15:56 +00:00
cdf2d12e69
refactor(webapp): ds-table to plain html (#9251) 2026-02-20 19:29:47 +00:00
951a24f100
feat(package/ui): os-badge (#9250) 2026-02-20 04:49:02 +00:00
c269e971f2
refactor(webapp): ds-grid (#9248) 2026-02-19 23:57:58 +00:00
5ef4fecf99
refactor(webapp): ds html (#9247) 2026-02-19 21:44:50 +00:00
4f4f2e4696
refactor(package/ui): os-card (#9246) 2026-02-19 08:06:48 +00:00
daafde24b0
refactor(package/ui): os-spinner (#9245) 2026-02-19 01:51:05 +00:00
c0a7965d24
feat(webapp): more button icons, more loading states (#9243) 2026-02-18 02:59:10 +00:00
282d4a33eb
feat(package/ui): os-button suffix slot (#9242) 2026-02-18 01:56:21 +00:00
0cbdfea5a1
feat(webapp): push to top indicator (#9237) 2026-02-18 00:10:18 +00:00
77a1e0964b
refactor(webapp): migrate icons (#9238) 2026-02-17 22:40:51 +00:00
fc714a5f30
feat(package/ui): os-icon (#9234) 2026-02-15 20:31:00 +00:00
b60e270f4c
refactor(webapp): vue3 migration os button as prop, remove obsolete buttons & inline single user buttons (#9214) 2026-02-15 19:30:02 +00:00
f4fe8553de
fix(package/ui): os-button class to ensure branding compatibility (#9211) 2026-02-14 00:02:43 +01:00
794b4dabfa
refactor(webapp): vue3 migration - button - icon + circle + loading (#9208) 2026-02-13 16:27:33 +00:00
9b98dcae9a
refactor(webapp): vue3 migration - phase 3 - integration (#9180) 2026-02-10 20:56:32 +00:00
d96cb32f11
refactor(backend): properly model group-membership (#9124) 2026-01-30 04:56:03 +01:00
6fc3c03860 feat(backend): group pins (#9034)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2026-01-28 16:53:29 +01:00
af497deb77
fix(webapp): allow running frontend tests locally (#9125) 2026-01-24 20:09:36 +00:00
6a42d12fda
fix(webapp): fix cta-join-group, can crash when group is not defined (#9103) 2026-01-19 12:05:09 +00:00
Wolfgang Huß
558e964c83
feat(webapp): add reason and call to action on post view page if commenting is disabled (#8958)
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-10-10 19:21:07 +02:00
b06b29b858
feat(webapp): bind local styleguide & fix maintenance page (#8933) 2025-09-30 14:54:43 +02:00
Moriz Wahl
a15351aa42
feat(webapp): dynamic static pages (#8920)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-09-25 11:16:07 +02:00
Moriz Wahl
9a4f7326c1
fix(webapp): no distance to me on own profile (#8907)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-09-22 23:59:18 +02:00
Wolfgang Huß
2ed92c0a78
feat(webapp): post page group link improvement (#8883) 2025-09-20 10:15:04 +00:00
Wolfgang Huß
c1a05bc73b
feat(webapp): add location distance in group profile (#8846)
* Add distance to group profile if location is defined

* Fix snapshot tests in 'webapp/pages/groups/_id/_slug.spec.js'

* Fix prop Vue warning in test 'webapp/pages/groups/_id/_slug.spec.js'

* reuse locationFragement for groups

* use better order on locationFragement parameters

* moved LocationInfo Component to correct place as its used in Group & User related context

* use size prop

* reduce changeset

* update snapshots

* remove computed property & simplify component

* more tests & updated snapshots

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-08-26 10:34:30 +02:00
b92dcd3534
location distance in profile (#8835)
remove unused classes

margin bottom

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-08-23 09:45:33 +00:00
Robert Schäfer
00da9e8ecb
feat(backend): resize images with imagor (#8558)
* feat(backend): resize images with imagor

Open questions:
* Do we have external URLs for images? E.g. we have them for seeds. But
  in production?

* Do we want to apply image transformations on these as well? My current
implementation does not apply image transformations as of now. If we
want to do that, we will also expose internal URLs in the kubernetes
Cluster to the S3 endpoint to the client.

TODOs:
* The chat component is using a fixed size for all avatars at the moment.
Maybe we can pair-program on this how to implement responsive images in
this component library.

Commits:
* do not replace upload domain url in the database

* fix all webapp specs

* refactor: remove behaviour we won't need

We don't want to apply image transformations on files, right?

* refactor: replace the domain on read not on write

* wip: webapp fixes

* refactor(backend): add another url to config

I've given up. There seems to be no nice way to tell the minio to return
a location which differs from it's host name.

* refactor: add test for s3Service

* refactor(backend): proxy minio via backend in local development

Commits:
* provide tests for message attachments
* remove S3_PUBLIC_URL config value

* refactor: follow @ulfgebhardt's review

* add missing environment variable

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-08-19 10:11:12 +02:00
sebastian2357
a81ec214f1
fix(webapp): added option for slug (#8659) 2025-07-02 12:20:21 +00:00
Max
a8de785783
Fix video player in Safari (#8711)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-25 15:27:32 +00:00
sebastian2357
b1c19d0c94
fix(webapp): optimize registration layout (#8630)
* - fixed nowrap for button
- restyled bullets for slider
- relocated back links
- removed icons

* - removed icon from RegistrationSlideEmail too

* - added media query for padding

* - fixed missing constants

* - fixed padding in no-header layout

* - fixed sticky footer in registration flow

* - removed icons from inputs

* - set fixed height for back link

* - fixed invite code placeholder

* - added auto submit to invite and email code forms
- fixed layout password inputs
- added layout to checkboxes (create)
- removed unnecessary texts
- moved backLink for password-reset
- tidied up create layout

* fixed margin

* - fixed nonceLength

* lint fixes

* corrected path

---------

Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-06-11 16:45:03 +00:00
a0e4b49833
fix(webapp): fix group performance (#8656)
* seed more Yoga group members

* implement groupMembers pagination

* load limited amount of group members

* force show all members in group member list

* remove unused import

* - added virtual scrolling to ProfileList

* - fixed linter error

* load all when clicking the button

* seed 3000 users

* cleanup

* lint

* hide search when not all members are visible

* fix email factory

* - increased profileListVisibleCount to 6

---------

Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
2025-06-11 17:46:57 +02:00
Moriz Wahl
df4275c5cd
feat(webapp): location on registration (#8608)
* feat(webapp): location on registration

* add location name to signup verification, allow location query

* location name can be prompted in regeistration

* default value null for locationName

* Prevent ds-select overflow

* Remove location name from label

* Add margin-bottom to location-select

* group location is not affected by REQUIRE_LOCATION, previous location is shown

* Update webapp/components/Registration/RegistrationSlideCreate.vue

Co-authored-by: Max <maxharz@gmail.com>

* Replace more '16px' by '$space-small' and remove class 'password-strength'

* Add class 'password-strength' again

* property for previous location

---------

Co-authored-by: Maximilian Harz <maxharz@gmail.com>
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-04 15:16:24 +02:00
Moriz Wahl
8c30098ac3
fix(webapp): group categories (#8634) 2025-06-04 13:35:37 +02:00
e87a33eb3f
feat(backend): push posts (#8609)
* push posts

push posts

* unpush posts

* fix comment query

* locales

* fix locales

* fix tests

* Update webapp/locales/de.json

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>

* Update webapp/locales/de.json

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>

* Update webapp/locales/de.json

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>

* fix unpushedSuccessfully english message

* remove paremeters from unpushPost

* rename pushPostToTop -> pushPost, tests

* update locales & tests webapp

* fix lint

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-03 17:57:21 +02:00
16803e45e6
fix broken observe on post (#8610)
Due to missing tests & problematic refactoring, posts could no longer be
observed and the new observe state beeing indicated without reloading
the page.

This reverts parts of
https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/8598 to
fix the problem
2025-05-31 10:44:29 +02:00
4b3a26d517
feat(webapp): shout comments (#8600)
* shout comments

* fix notifications

* Remove whitespace for empty category sections

* Overhaul post actions

* Adjust spacing

* Allow fine-grained size control for icons and circle buttons via css variables; adjust comments layout

* Adjust spacing

* Add test for ActionButton (WIP)

* Rename import

* Remove text and add count bubble

* Use filled icons to indicate active states

* Adjust sizes and orientation

* Remove unused properties, add test

* Fix ObserveButton test

* Fix ShoutButton test

* fix tests

* Adapt styles

* Adjust style for larger numbers

* Remove unused icon

* Fix test structure

* Remove unused class names

---------

Co-authored-by: Maximilian Harz <maxharz@gmail.com>
2025-05-31 00:13:15 +02:00
mahula
51564e5d9b
refactor(webapp): make group form's location select available as a separate component (#6245)
* WIP make location select a separate component

* trying ...

* fix update of geolocale from component

* clean up location select code

* refactor code

* refactor code

* clean up

* linting

* add first unit tests for location select

* reuse location setting component in user settings

* get it working

* fix unit test

* Update webapp/components/Select/LocationSelect.vue

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>

* Update webapp/components/Select/LocationSelect.spec.js

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>

* Update webapp/components/Select/LocationSelect.spec.js

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>

---------

Co-authored-by: Moriz Wahl <moriz.wahl@gmx.de>
Co-authored-by: ogerly <fridolin@tutanota.com>
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-05-29 16:58:36 +00:00
Moriz Wahl
ba2e086b4b
feat(webapp): ask for real name (#8605)
* feat(webapp): ask for real name

* fix locales

* function to create name from given and surname

* mock env

* use x2004 to create name from given and surname
2025-05-28 18:41:10 +00:00
Moriz Wahl
b736a2a2e3
feat(backend): pin more than one post (#8598)
* feat(backend): pin more than one post

* add postPinnedCount query, better names for env variable

* add store and mixin for pinned posts counts

* test pinned post store

* context menu for pin posts

* fix typos

* unpin posts is always possible

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-05-28 19:12:27 +02:00
Moriz Wahl
903ce7071f
refactor(webapp): remove warnings in unit tests (#8556)
* refactor(webapp): remove warnings in unit tests
2025-05-27 22:10:58 +00:00
Moriz Wahl
a3178a91b4
refactor(webapp): store for categories (#8551)
* after authentification, query the categories if active and store them

* get categories from store

* use category store to get categories

* get categories from store

* mock store to have access to categories

* to get rid of the active categories config variable in the frontend, the Category query returns an empty array when categories are not active

* remove CATEGORIES_ACTIVE from .env

* should return string to avoid warnings in console

* replace all env calls for categories active by getter from store

* use categoriesActive getter

* ignore order of returned categories

* mixin to get the category infos from the store, to ensure, that the quey has been called

* fix misspelling

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-05-27 15:03:26 +02:00