Commit graph

80 commits

Author SHA1 Message Date
f0x52 30aaedb0a8
[frontend] use ISO639 library for language selection (#909) 2022-10-12 19:18:41 +02:00
f0x52 80c2833d83
[frontend] small fixes (#907)
* add missing watchify dependency

* replace svg rss icon with forkawesome+styling

* use $white1 instead of hardcoding white

* fix toot overflow
2022-10-12 18:23:50 +02:00
tobi 80663061d8
[feature] Add opt-in RSS feed for account's latest Public posts (#897)
* start adding rss functionality

* add gorilla/feeds dependency

* first bash at building rss feed
still needs work, this is an interim commit

* tidy up a bit

* add publicOnly option to GetAccountLastPosted

* implement rss endpoint

* fix test

* add initial user docs for rss

* update rss logo

* docs update

* add rssFeed to frontend

* feed -> feed.rss

* enableRSS

* increase rss logo size a lil bit

* add rss toggle

* move emojify to text package

* fiddle with rss feed formatting

* add Text field to test statuses

* move status to rss item to typeconverter

* update bun schema for enablerss

* simplify 304 checking

* assume account not rss

* update tests

* update swagger docs

* allow more characters in title, trim nicer

* update last posted to be more consistent
2022-10-08 14:00:39 +02:00
tobi 3bb45b7179
[feature] oob oauth token support (#889)
* move helpful advice into oauth server

* rewrite HandleAuthorizeRequest to allow oob
2022-10-08 13:49:56 +02:00
tobi 41aad21c6e
[frontend] Make emojis v. slightly larger (#891)
* make emojis v. slightly larger
2.5ex -> 2.75 ex by default (they still fit fine), and make em scale a bit larger on hover as well

* use em for emoji margin
2022-10-06 11:36:07 +02:00
EchedeyLR 51ff62d039
[chore] Reduced distributed assets with 'optipng -o7 -zm1-9 -keep FILENAME' between 28-56% (#890) 2022-10-06 10:19:40 +02:00
f0x52 1a56352568
[frontend] scroll to highlighted toot, improve highlight (#885) 2022-10-03 20:35:43 +02:00
f0x52 fe238f8595
[frontend] change spacing of status, text always on it's own line, move status date on mobile (#883) 2022-10-03 18:26:41 +02:00
f0x52 3d9fb49895
[chore] Old browser fixes (#882)
* reasonable css sizing fallbacks

* add browser field for bug report template
2022-10-03 18:26:01 +02:00
f0x52 5249294a16
[chore] Bundler restructure (#880)
* re-structure bundler, settings panel files

* add more info logging

* tidy up CSS syntax errors

* split into lib/ files

* livereloading server

* fix factor function for production builds

* remove testing console.log

* default to production env, saves 300kb bundle size
2022-10-03 16:46:38 +02:00
tobi f7af7c061c
[feature] Enlarge active/hovered custom emojis in statuses (#877)
* enlarge active/hovered custom emojis in statuses

* use transform, make emojis pop a lil more

* tweak emoji hover timing, styling

Co-authored-by: f0x <f0x@cthu.lu>
2022-10-02 15:54:49 +02:00
tobi deba75cad1
[chore] Use shorter timestamps in frontend for replies (#875)
* rename timestampShort -> timestampVague

* add ParseISO8601

* start fiddling with timestamp

* pad/margin a bit more consistently

* remove visibilty icon, change timestamp use

* update timestamp logic

* check + log errors

* properly cut-off long display- and usernames

Co-authored-by: f0x <f0x@cthu.lu>
2022-10-02 15:54:42 +02:00
tobi dd83ad053c
[feature] Add meta robots tag; allow robots to index profile card if user is Discoverable (#842)
* rework robots.txt response

* don't let robots snippet from statuses/threads

* allow robots to index if user is Discoverable

* add license text
2022-09-29 12:03:17 +02:00
f0x52 938328cd07
[frontend] Unified panels (#812)
* settings panel restructuring

* clean up old Gin handlers

* colorscheme redesign, some other small css tweaks

* basic router layout, error boundary

* colorscheme redesign, some other small css tweaks

* kebab-case consistency

* superfluous padding on applist

* remove unused consts

* redux, whitespace changes..

* use .jsx extensions for components

* login flow up till app registration

* full redux oauth implementation, with basic error handling

* split oauth api functions

* oauth api revocation handling

* basic profile change submission

* move old dir

* profile overview

* fix keeping track of the wrong instance url (for different instance/api domains)

* use redux state for profile form

* delete old/index.js, old/basic.js, fully implemented

* implement old/user/profile.js

* implement password change

* remove debug logging

* support future api for removing files

* customize profile css

* remove unneeded wrapper components

* restructure form fields

* start on admin pages

* admin panel settings

* admin settings panel

* remove old/admin files

* add top-level redirect

* refactor/cleanup forms

* only do API checks on logged-in state

* admin-status based routing

* federation block routing

* federation blocks

* upgrade dependencies

* react 18 changes

* media cleanup

* fix useEffect hooks

* remove unused require

* custom emoji base

* emoji uploader

* delete last old panel files

* sidebar styling, remove unused page

* refactor submit functions

* fix sidebar boxshadow-border

* fix old css variables

* fix fake-toot avatar

* fix non-square emoji

* fix user settings redux keys

* properly get admin account contact from instance response

* Account.source default values

* source.status_format key

* mobile responsiveness

* mobile element tweaks

* proper redirect after removing block

* add redirects for old setting panel urls

* deletes

* fix mobile overflow

* clean up debug logging calls
2022-09-29 12:02:41 +02:00
tobi c4a08292ee
[feature] Show + federate emojis in accounts (#837)
* Start adding account emoji

* get emojis serialized + deserialized nicely

* update tests

* set / retrieve emojis on accounts

* show account emojis in web view

* fetch emojis from db based on ids

* fix typo in test

* lint

* fix pg migration

* update tests

* update emoji checking logic

* update comment

* clarify comments + add some spacing

* tidy up loops a lil (thanks kim)
2022-09-26 11:56:01 +02:00
tobi b42469e4e0
[feature] Allow users to set custom css for their profiles + threads (#808)
* add custom css account property + db func to fetch

* allow account to get/set custom css

* serve custom css for an account

* go fmt

* use monospace for customcss, add link

* add custom css to account cache

* fix broken field

* add custom css docs to user guide

* add `accounts-allow-custom-css` config flag

* add allow custom css to /api/v1/instance response

* only show/set custom css if allowed to do so

* only set/serve custom account css if enabled

* update swagger docs

* chain promise

* make bool a bit clearer

* use cache for GetAccountCustomCSSByUsername
2022-09-12 13:14:29 +02:00
f0x52 d09ddb4769
[feature] opengraph meta tags (#806)
* f0x gitignore additions

* better meta title and descriptions

* user avatar icon for thread and profile meta tags

* use proper tag for image

* whitespace

* add noescapeAttr template function

* use ogMeta struct for opengraph

* maxOGDescriptionLength = 300

Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-09-07 16:53:12 +02:00
tobi ee01e030d4
[bugfix] Catch json syntax errors in the frontend + display a more helpful message (#804)
* catch json syntax errors

* update error msg

* re-throw error with cause

Co-authored-by: f0x52 <f0x@cthu.lu>
2022-09-05 14:24:51 +02:00
tobi 58c00d9f2f
[frontend] Transition neatly from cropped photos (#802) 2022-09-04 15:14:15 +02:00
tobi 006c8b604b
[feature] Set default header and avatar for API accounts to GtS ones (#799)
* validate web-asset-base-dir

* move default icons into converter

* always ensure avatar + header on api accounts

* update tests

* add default header

* don't return error from web module creation anymore

* tidy a bit

* use pngs for default avatars rather than svgs
2022-09-04 14:41:42 +02:00
Blackle Morisanchetto 1e1cdee06a
[feature] Emojify spoiler and content in web templates (#785)
* Emojify spoiler and content in web templates

* Use more performance emojify code (thanks NyaaaWhatsUpDoc!)
2022-09-02 11:54:32 +02:00
Blackle Morisanchetto ea902bb500
[Admin panel] Make Description boxes multi-line (#781) 2022-08-30 11:44:39 +02:00
tobi c951ba1d23
[frontend] gentle css fiddling (#761)
* gentle css fiddling

* Make grid alignment a lil more consistent too
2022-08-27 11:40:51 +02:00
f0x52 52fe681ba2
[frontend] Sensitive media spoilers (#752)
* sensitive media spoilers

* small tweaks, use pointer-events (thanks @owl!)

* allow hiding all media

* add button roles

* add tabindices

* s/Show media/Show sensitive media/

* show hovering alt-text on hidden sensitive images

Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com>
2022-08-14 19:22:13 +02:00
tobi bfcd80a0f2
[frontend] Style scrollbars site-wide (not just in code) (#753) 2022-08-12 13:11:43 +02:00
tobi 3f626c8ee8
[frontend] Status styling tweaks (#751)
* style hr

* start work on code styling in statuses

* pad top + bottom of content

* squircle code

* pad less actually

* get code blocks formatted nicely phew

* fix some silliness (thanks f0x)

* update code block styling

Co-authored-by: f0x <f0x@cthu.lu>
2022-08-11 19:11:19 +02:00
tobi 7090f0a592
[bugfix] Fix placeholder typo in user panel (#745) 2022-08-08 11:45:24 +02:00
tobi 117888cf59
[feature] Add first iteration of a user panel at /user (#736)
* start work on user panel

* parse source first before checking if empty form

* newline

* set avi + header nicely

* add posts settings

* render signin a bit nicer on mobile

* return OK json on successful change

* return unauthorized on bad password

* clarify message on insecure password

* make login a bit prettier

* add alt text + border round image previews

* add logout button

* add password change

* styling updates

* redirect /auth/edit to /user

* update tests

* fix validation tests

* better labels, link to more info

* make submit button generic component

* move submit button inside forms

* add autocomplete labels to password fields

* fix indentation (thx eslint)

* update eslintrc

* eslint: no-unescaped-entities

* initial deduplication between user and admin panel

* add default status/post format setting

* user panel styling for inputs

* update user panel styling, include normalize css

* add placeholder text

* input padding

Co-authored-by: f0x <f0x@cthu.lu>
2022-08-08 10:40:51 +02:00
f0x52 4722970a5b
[chore] Update js deps (#744)
* dependency wrangling

* update postcss-custom-prop-vars to 0.0.5 (postcss 8)
2022-08-07 22:31:42 +02:00
f0x52 f2a6ae3ef8
[feature] Photoswipe gallery (#740)
* implement photoswipe galleries

* dependency wrangling

* photoswipe-dynamic-caption plugin
2022-08-07 17:58:01 +02:00
tobi 745f54970d
[frontend] style blockquote nicely within content (#742) 2022-08-07 13:47:30 +02:00
Martijn de Boer 72650e49f7
[frontend] Update client list and apply some minor fixes (#734)
* Add logos for Fedilab, Toot and Mastodon to assets folder

Adds multiple logo's for the changes on the client list.

* Add clients to the index page to give users a wider choice and some minor fixes

Adds Fedilab, Toot! and "More clients" to the client list.
Also adds periods after all descriptions, so they are unified in writing style.
Adds target blank and rel noopener to external links.
Changes the pinafore.social link to link to the homepage, like the other clients.

* Add 'the' to the description text

Adds the missing 'the' to the More clients description

* Delete fedilab.png

* Delete toot.png

* Remove added clients, but keep More clients text.

Removes the Fedilab and Toot! clients.
2022-07-30 13:22:00 +02:00
tobi b326bf45a9
[frontend] Tweak border radius for header + avatar (#713) 2022-07-18 09:44:32 +02:00
tobi c7e5c660fb
[frontend] Footer styling adjustments (#709)
* adjust footer rendering

* use max-width instead of orientation

* remove margin-top when screen small
2022-07-15 13:23:15 +02:00
tobi 1d5c737bbb
[bugfix] Fix profile card display issues on smaller screens w/responsive query (#696)
* add responsive media query to profile css

* break username on all screen sizes if necessary

* embed avatar inside header on smaller screen sizes

* align items to the left in small screen view

* more consistent profile scaling accross firefox and chrome

* simplify things a little bit

* make sure bio fits in profile

* word-break content if necessary

Co-authored-by: f0x <f0x@cthu.lu>
2022-07-13 11:28:05 +02:00
tobi 6418307c64
[feature] Add back/next buttons to profiles for paging through statuses (#708)
* add GetAccountWebStatuses to db

* add WebStatusesGet func to processor

* don't add limit to next/prev links if 0

* take query params for next/prev statuses

* add separate next + prev links for convenience

* show 'nothing here' message if no statuses exist

* add back / next links to profiles

* allow paging down only

* go fmt ./...

* 'recent public toots' -> 'latest public toots'
2022-07-13 09:57:47 +02:00
tobi 211266c072
[bugfix] Fix display names in thread view causing wrapping issues on small screens (#698)
* use account.Acct for username

* allow username + displayname to wrap with ellipses

* use span 2 for displayname always

* remove commented-out line
2022-07-09 13:37:06 +02:00
tobi 8e68970258
[frontend] Fix up status 'show more' and z-index (#701)
* put spoiler items in a flexbox

* make the whole status top of z index
this allows text to be selected properly

* allow status spoiler text to break across lines
2022-07-09 13:36:56 +02:00
Forever a6528fe576
[bugfix] Various fixes (#699)
* [bugfix] Correctly style inputs and buttons

<input>, <textarea>, and <button> were incorrectly using the system-ui font previously; this commit fixes that. text-align: center; was added to <button> due to an inconsistency with .button where text-align would be off.

* [chore] Update binary installation instructions

This commit updates the example release mentioned in the docs, and mentions Caddy in the reverse proxy options.

* [bugfix] Remove redundant Caddyfile

Caddy automatically upgrades HTTP to HTTPS (see https://caddyserver.com/docs/automatic-https) so the upgrading part of the Caddyfile is redundant.
2022-07-08 09:01:00 +01:00
tobi dbb223c333
[bugfix] Allow instance titles to wrap (#695) 2022-07-06 14:33:01 +02:00
tobi 81dd4f3660
[bugfix] Fix footer info fields not wrapping (#694)
* flex-wrap footer items

* add testrig instance entry with more info set
2022-07-05 16:44:58 +02:00
tobi b61b000e0a
[bugfix] Fix incorrect domain showing in profiles (#693)
* use instance account_domain in profile

* add instance account_domain field
2022-07-05 14:03:44 +02:00
tobi 16ddad36b2
[frontend] Redesign / color scheme (#688)
* fix css indentation

* profile styling update

* update status styling to match profile

* empty header fix

* generate random avatars for thread views

* appease the linter gods

* upgrade deps

* turn profile accent into border + $bg background

* upgrade deps

* small accessibility tweaks

* general redesign, clearer css variables

* configure instance.Version for testrig

* footer styling

* add sublte borders to box-shadow for separation

* accessible blues, other tweaks

* background bg_accent

* fix viewport

* change client entry buttons to links

* cw button styling

* status display+username spacing

* small thread view tweaks

* color tweaks for accessible contrasts

* use Noto Sans

* biiit less dark bg

* .info contrast, border

Co-authored-by: f0x <f0x@cthu.lu>
2022-07-04 16:23:59 +02:00
f0x52 7c6c0cd547
[frontend] Profile pages upgrade (#640)
* fix css indentation

* profile styling update

* update status styling to match profile

* empty header fix

* generate random avatars for thread views

* appease the linter gods

* upgrade deps

* turn profile accent into border + $bg background

* upgrade deps

* small accessibility tweaks

Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com>
2022-06-21 10:48:42 +02:00
tobi ec81d28a77
[frontend] add Accept header to oauthed api requests (#657) 2022-06-20 10:44:01 +02:00
f0x52 b43f9ceca9
[frontend] Restructure Frontend Sources (#634)
* 🐸restructure frontend stuff, include admin and future user panel in main repo, properly deduplicate bundles for css+js across uses

* rename bundled to dist, caught by gitignore

* re-include status.css for profile template

* default to localhost

* serve frontend panels

* add todo message for abstraction

* refactor oauth registration flow

* oauth restructure

* update footer template

* change panel routes

* remove superfluous css imports

* write bundle to disk from test server, use forked budo-express

* wrap all page content in container

for robustness with addons etc injection other elements in body

* update documentation, goreleaser, Dockerfile

* update template meta tags

* add AGPL-3.0+ license header everywhere

* only attach update listener on EventEmitter

* cleaner config for various frontend bundles

* fix bundler script paths

* Merge commit 'd191931932b9293ce1be44ed08a1e69b9fcc1e25'

* fix up dockerfile, goreleaser

* go mod tidy

* add uglifyify

* move status hide/show js to frontend bundle

* fix stylesheet color( func regressions

* update contributing docs for new build path

* update goreleaser + docker building

* resolve dependency paths properly

* update package name

* use api errorhandler

Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-06-09 12:51:19 +02:00
tobi 1ede54ddf6
[feature] More consistent API error handling (#637)
* update templates

* start reworking api error handling

* update template

* return AP status at web endpoint if negotiated

* start making api error handling much more consistent

* update account endpoints to new error handling

* use new api error handling in admin endpoints

* go fmt ./...

* use api error logic in app

* use generic error handling in auth

* don't export generic error handler

* don't defer clearing session

* user nicer error handling on oidc callback handler

* tidy up the sign in handler

* tidy up the token handler

* use nicer error handling in blocksget

* auth emojis endpoint

* fix up remaining api endpoints

* fix whoopsie during login flow

* regenerate swagger docs

* change http error logging to debug
2022-06-08 20:38:03 +02:00
f0x52 99fab9c6b6
[frontend] linkify header mascot+title (#633) 2022-06-08 02:22:52 +02:00
Sashanoraa 323dbca4f7
[frontend] Reduce width of profile img with screen width (#615)
The commit makes the profile image on the profile page reduce in width
if the screen width is less then it's normal width while maintaining
it's 1:1 aspect ration.

Signed-off-by: Sashanoraa <sasha@noraa.gay>
2022-05-28 13:19:24 +02:00
Sashanoraa 8de9b7a34b
[frontend] Add padding to the bottom of main (#616)
This way the footer doesn't touch on the content on mobile.

Signed-off-by: Sashanoraa <sasha@noraa.gay>
2022-05-28 13:18:35 +02:00