6750 Commits (b43de6a31ae1b6db6caa9f7fc08145412063519c)

Author SHA1 Message Date
Thibaut Girka c9696ef8a5 Add support for HTML-formatted toots
6 years ago
Thibaut Girka 8313ee07f6 Add support for markdown-formatted toots
6 years ago
Thibaut Girka 105f03a988 Add database row to hold status content type
6 years ago
ThibG 38272bbeb1 Merge pull request #1049 from ThibG/glitch-soc/merge-upstream
6 years ago
Thibaut Girka 422dd06806 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
ThibG 85a991cfa7 Minor performance improvements and cleanup in formatter (#10765)
6 years ago
Neil Moore 59f6637559 Adds click-able div that expands status (#10733) (#10766)
6 years ago
ThibG f1a3135809 Record account suspend/silence time and keep track of domain blocks (#10660)
6 years ago
Thibaut Girka d8e9a04354 Fix rich text style in reply indicator
6 years ago
Thibaut Girka 9f0ff9b6ea Fix rich text styling on public pages
6 years ago
Thibaut Girka 6e625755a6 Fix text color of some formatted elements in notifications
6 years ago
nzws f79d089b65 Fix some colors in light theme (#10754)
6 years ago
ThibG cfb69164ad Fix incorrect reference to raw_content (it is raw_text instead) (#10753)
6 years ago
ThibG c8195e2da1 [Glitch] Use raw content if available on Delete & Redraft
6 years ago
Thibaut Girka 5262820fae Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Thibaut Girka 46b5085ced Use a checkbox for the “Mark media as sensitive” composer button
6 years ago
ThibG 0bb3ba2406 Merge pull request #1043 from ThibG/glitch-soc/merge-upstream
6 years ago
ThibG 2a917031c9 Add toot source to delete result to ease Delete & Redraft (#10669)
6 years ago
nzws d35f558b37 Use local time in audit log (#10751)
6 years ago
Maciek Baron e060819020 [Glitch] Improve poll link accessibility
6 years ago
nzws f625501c05 [Glitch] Fix some colors of high contrast theme
6 years ago
Aurélien Reeves 22541e98e2 [Glitch] Add confirm modal for unboosting toots
6 years ago
Alix Rossi 062684bcf8 i18n: Update French translations (#10747)
6 years ago
Alix Rossi 1959e4e5ec i18n: Update Corsican translations (#10746)
6 years ago
ThibG 01ba6c5d83 Change icon and label depending on whether media is marked as sensitive (#10748)
6 years ago
Thibaut Girka 1bf48b01e3 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Thibaut Girka e55cf0042f Fix media description confirmation modal
6 years ago
Aurélien Reeves d225a952a8 Add confirm modal for unboosting toots (#10287)
6 years ago
ThibG 5cf2f8c646 Add emoji suggestions to CW and poll option fields (#10555)
6 years ago
ThibG a571b07557 Prevent silenced local users from notifying remote users not following them (#10575)
6 years ago
ThibG 4870d7f122 Add some caching for HTML versions of statuses pages (#10701)
6 years ago
Maciek Baron fc40391743 Improve poll link accessibility (#10720)
6 years ago
Jeong Arm 5ad2a7b5dc Record deleted(by mod) status to prevent re-appear (#10732)
6 years ago
Jeong Arm 3288f4a571 Bring back crossed eye icon on gallery (#10715)
6 years ago
Thibaut Girka e9f0c31dc6 Fix tabs bar on mobile
6 years ago
nzws 6b71076391 Fix some colors of high contrast theme (#10711)
6 years ago
Thibaut Girka 40a480ea34 Fix front-end crash when a video has a blurhash and is hidden behind a CW
6 years ago
spla 13244f7bb3 i18n Update Catalan translation (#10719)
6 years ago
ThibG 139ef769f7 Add description on hover in media gallery (#10713)
6 years ago
Thibaut Girka 5052b8c29f Fix content warning button displaying a link icon when no status card is set
6 years ago
mayaeh 683a5ae765 i18n: Update Japanese translations (#10706)
6 years ago
jeroenpraat 027f35c6a5 1 NL string update (#10709)
6 years ago
Kirishima21 1592cab613 fix pinned columns ’s Media-only button
6 years ago
Baptiste Gelez 83665f0357 [Glitch] Make sure the instance banner is never cropped
6 years ago
Thibaut Girka 23829e09f5 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Aditoo17 71fd62835e I18n: Update Czech translation 🇨🇿 (#10704)
6 years ago
Baptiste Gelez 05b2a77a6d Make sure the instance banner is never cropped (#10702)
6 years ago
Thibaut Girka 850f8195fd Minor style fixes
6 years ago
Eugen Rochko 5df7b98c2b [Glitch] Change font weight of sensitive button to 500
6 years ago
Eugen Rochko 8050f86d04 [Glitch] Make the "mark media as sensitive" button more obvious in web UI
6 years ago
Thibaut Girka 167808363d Add visibility icon back in media gallery
6 years ago
Thibaut Girka 43dc5ad0e5 Add back description on hover
6 years ago
ThibG d0342a1a63 [Glitch] Fix transition: all
6 years ago
ThibG 09d6a2920d [Glitch] Make the cursor icon consistant across media types in account media gallery
6 years ago
Thibaut Girka 5d6f4ef070 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Eugen Rochko 52c09770fe [Glitch] Add button to view context to media modal
6 years ago
Eugen Rochko 6138cad296 [Glitch] Fix alignment of items in the account gallery in web UI and load more per page
6 years ago
Eugen Rochko 3b9ff1fa34 [Glitch] Change account gallery in web UI
6 years ago
Thibaut Girka 61b5fd518c Minor CSS fixes
6 years ago
Eugen Rochko 87a7a9a4df [Glitch] Add blurhash
6 years ago
ThibG 9e044c9649 Fix transition: all (#10699)
6 years ago
ThibG d5357fcbf2 Minor account media gallery fixes (#10695)
6 years ago
ThibG 0f1d2f4d71 Fix glitch SCSS for links in error messages in admin interface
6 years ago
Thibaut Girka 73bc58c656 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
ThibG 09ce4ea53c Do not retry processing ActivityPub jobs raising validation errors (#10614)
6 years ago
Eugen Rochko c3b1f6963b Change e-mail whitelist/blacklist to not be checked when invited (#10683)
6 years ago
Thibaut Girka d20647fd94 Fix polls icon not showing in CW button in detailed statuses
6 years ago
Eugen Rochko f7879bbe08 Change font weight of sensitive button to 500 (#10682)
6 years ago
ThibG 4c4f9d78fd Explicitly disable storage of REST API results (#10655)
6 years ago
ThibG 8c716f917f Provide a link to existing domain block when trying to block an already-blocked domain (#10663)
6 years ago
Thibaut Girka c15b1aa00c Fix crash in onboarding modal
6 years ago
Eugen Rochko 4aabc452d0 Add button to view context to media modal (#10676)
6 years ago
ThibG d8418c07c9 When selecting a toot via keyboard, ensure it is scrolled into view (#10593)
6 years ago
Eugen Rochko cc39785d45 Make the "mark media as sensitive" button more obvious in web UI (#10673)
6 years ago
Eugen Rochko 78f5b96bf6 Fix alignment of items in the account gallery in web UI and load more per page (#10674)
6 years ago
Eugen Rochko db73f8e585 Change account gallery in web UI (#10667)
6 years ago
ThibG af3971a0e6 Check that an invite link is valid before bypassing approval mode (#10657)
6 years ago
Thibaut Girka c4865cbd25 Add site-wide options to show reblogs and replies in local/public timelines
6 years ago
Thibaut Girka e53b2a9c37 Make hi-color privacy icons opt-in instead of opt-out
6 years ago
Thibaut Girka f5f0bd6c0a Add high color privacy icons
6 years ago
Zac 826d926bb9 changed pinned status count operator
6 years ago
Zac 5a3d18a660 added documentation into .env.production.sample
6 years ago
Zac 41d3d17fe7 add env var for max pinned toots
6 years ago
Thibaut Girka 98732502f5 When selecting a toot via keyboard, ensure it is scrolled into view
6 years ago
Thibaut Girka 81c9377c7d Add support for missing formatting tags
6 years ago
Thibaut Girka 02bd678944 Add keyboard shortcut to collapse/uncollapse toots
6 years ago
Thibaut Girka 7ed89e9178 Add hotkey for bookmarking a toot
6 years ago
partev f843bdbd73 Update hy.json (#10644)
6 years ago
Eugen Rochko b1e10ed1b3 Fix approved column being set to nil instead of false (#10642)
6 years ago
Thibaut Girka 5a8b820767 Fix regression with textarea's caret position when selecting a suggestion
6 years ago
Eugen Rochko a6d2fe7165 Add blurhash (#10630)
6 years ago
Thibaut Girka b40841b488 Hide suggestions by default
6 years ago
Thibaut Girka e720f1eac2 Attempt to fix CSS
6 years ago
Thibaut Girka 4155a1556a Add emoji suggestion to poll options
6 years ago
Thibaut Girka b35b38f4ea Add suggestions in CW field
6 years ago
Thibaut Girka 0541e4ad21 Refactor selectComposeSuggestion so that different paths can be updated
6 years ago
Eugen Rochko be7bab1fd9 Fix LDAP/PAM/SAML/CAS users not being approved instantly (#10621)
6 years ago
Eugen Rochko 2ba12c8917 Fix not being able to save e-mail preference for new pending accounts (#10622)
6 years ago
ThibG 23e87a4742 Fix upload progressbar when image resizing is involved (#10632)
6 years ago
ThibG 140be28787 Reject follow requests of blocked users (#10633)
6 years ago
Thibaut Girka 642a298ceb Do not ask to register web intent handler
6 years ago
Thibaut Girka 8942036345 Fix color of muted statuses content not wrapped in a p tag
6 years ago
Thibaut Girka 73f83ef399 Redesign blockquote styling
6 years ago
Thibaut Girka f5ea016889 Better distinguish titles from text
6 years ago
Thibaut Girka 8003dd8849 Remove extra margin in paragraphs inside blockquotes
6 years ago
Thibaut Girka a855f38086 Make bold text bolder
6 years ago
Thibaut Girka ad30895262 Remove margins around `p` tags in lists
6 years ago
Thibaut Girka ce2da44c2c Rename status__text to status__content__text for consistency with upstream
6 years ago
Thibaut Girka facc95f71a Fix status header display in toot mobile menu
6 years ago
Thibaut Girka b43cfd3eb3 Fix upload progressbar when image resizing is involved
6 years ago
Thibaut Girka 4a95bfe919 Hide media upload form if no media are attached
6 years ago
Thibaut Girka 0f97c82eac Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Thibaut Girka 07367bc6ec Fix file upload
6 years ago
Thibaut Girka 86108e7af7 Fix settings modal
6 years ago
Eugen Rochko 72f3242a59 Fix sign up button not saying sign up when invite is used (#10623)
6 years ago
Thibaut Girka 2d2eca5bda Do not leak local-only toots to remote mentioned users
6 years ago
Thibaut Girka 2ad61962ae Load custom CSS rules after standard ones
6 years ago
Thibaut Girka 9aeb714b7a Add support for lists in statuses
6 years ago
Thibaut Girka fea727c61a Do not switch to italic for status media buttons
6 years ago
Thibaut Girka 22ad8c89b2 Accept richer text from remote statuses
6 years ago
kedama 4ce6358787 [Glitch] Fix modal items cannot scroll on touch devices
6 years ago
Thibaut Girka 6f85bb754b Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Thibaut Girka 1b8d2af1f9 Fix ReferenceError in dropdown
6 years ago
Thibaut Girka 25cfabce26 Fix broken reference to handleSubmit
6 years ago
Thibaut Girka 041e27bd2d Cleanup
6 years ago
Thibaut Girka 2ee26ba420 Move ComposerPublisher to Compose
6 years ago
Thibaut Girka bf8b0394b7 Add OptionsContainer
6 years ago
Thibaut Girka ef17da32f9 Move composer Dropdown from features/composer to features/compose
6 years ago
Thibaut Girka a6bb49adf1 Move ComposerTextareaIcons to TextareaIcons
6 years ago
Thibaut Girka 08faf16d66 ComposerTextarea → AutosuggestTextarea
6 years ago
Thibaut Girka 513547ba57 ComposerUploadForm → UploadForm + UploadFormContainer
6 years ago
Thibaut Girka f7d1772fc8 Move PollForm from features/composer to features/compose
6 years ago
Thibaut Girka 2021f14e8f Inline spoiler input
6 years ago
Thibaut Girka 3529f6f4ae ComposerReply → ReplyIndicator
6 years ago
Thibaut Girka ad6166f0ef Refactor Compose*Warning → ContainerWarning
6 years ago
Thibaut Girka 5e4588524b features/composer/index.js → ComposeForm
6 years ago
Thibaut Girka 8ea0e64864 DrawerHeader → Header + HeaderContainer
6 years ago
Thibaut Girka 2f2381a400 DrawerAccount → NavigationBar + NavigationContainer
6 years ago
Eugen Rochko 7acc035cbe [Glitch] Show suggested follows on search screen in mobile layout
6 years ago
Thibaut Girka 4aee182cd3 DrawerResults → SearchResults + SearchResultsContainer
6 years ago
Thibaut Girka 7c2cc9d681 Rework DrawerResults to make them closer to upstream
6 years ago
Thibaut Girka 5264424b71 Move DrawerSearch to Search + SearchContainer
6 years ago
Thibaut Girka 7fa3320516 Inline DrawerSearchPopout in DrawerSearch
6 years ago
Thibaut Girka a55e1c1d49 Refactor a bit DrawerSearch to make it closer to upstream
6 years ago
Thibaut Girka e41c4ad61b Rename flavours/glitch/features/drawer to flavours/glitch/features/compose
6 years ago
ThibG eb80c3924f Allow switching between singe-option and multiple-option polls (#10603)
6 years ago
kedama 92ced1e94b Fix modal items cannot scroll on touch devices (#10605)
6 years ago
ThibG 3c6f8de45a Minor code cleanup (#10613)
6 years ago
Ben Lubar 483aa50856 Default to the web domain (eg. mastodon.lubar.me) instead of the local domain (eg. lubar.me) for keybase proofs (#10565)
6 years ago
Yamagishi Kazutoshi 47c0af88f1 Add hi.json (#10573)
6 years ago
partev fe19e9d7b1 Update hy.json (#10591)
6 years ago
Daniel Aleksandersen e3dda38c8b Treat meta[property] as a space-separated list (#10604)
6 years ago
Jessica d7c34fb945 Animate avatar GIFs on-hover on public profiles (#10549)
6 years ago
jeroenpraat f7cc05db80 Update NL (Dutch) translation (#10601)
6 years ago
ThibG 1fecdb013a Use correct local names for fonts (#10594)
6 years ago
Sho Kusano 1af37e09f3 Configrationable repository url (#10600)
6 years ago
Thibaut Girka 2da3b24eb8 [Glitch] Allow modal secondary button to shrink and allow wider confirmation modals
6 years ago
Thibaut Girka 3673665b46 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Thibaut Girka 3f40442f49 Fix keybase indication on dashboard
6 years ago
Thibaut Girka c22175bb86 Allow turning keybase off instance-wide
6 years ago
Thibaut Girka 619d55358f Shift+click on column Back button to return to last pinable column
6 years ago
Thibaut Girka a4db307b6a When selecting a toot via keyboard, ensure it is scrolled into view
6 years ago
Thibaut Girka ae88690fa6 Fix opening/closing gifv sometimes making the timeline scroll
6 years ago
ThibG a6fe7ae53c Allow modal secondary button to shrink and allow wider confirmation modals (#10586)
6 years ago
Renato "Lond" Cerqueira 83420b9d41 Add new pt-br translations (#10564)
6 years ago
Thibaut Girka 5a24934449 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Evgeny Petrov 4c19204392 i18n: Russian localization update (#10515)
6 years ago
Eugen Rochko 6302bed0b5 Fix Keybase verification using wrong domain for remote accounts (#10547)
6 years ago
Eugen Rochko a0000b9a94 Weblate translations (2019-04-10) (#10545)
6 years ago
Alex Gessner ec8b3c46df increase allowable length of remote proof username (#10546)
6 years ago
Alex Gessner da3d516fcf compare usernames case-insensitively on new proof creation flow (#10544)
6 years ago
Aditoo17 db70d35c3f I18n: Final Czech translation 🇨🇿 (#10542)
6 years ago
Marek Ľach aced669796 Updates the grammar of the SK translation (#10541)
6 years ago
Eugen Rochko 771dc9235a [Glitch] Fix glitched out "not found" message for non-existing profiles in web UI
6 years ago
Eugen Rochko c97a40647a [Glitch] Add "why do you want to join" field to invite requests
6 years ago
Thibaut Girka cde0ac1aa7 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Eugen Rochko 75ab8cef8f Change the groupings of menu items in settings navigation (#10533)
6 years ago
Eugen Rochko 753bb5e701 Change HTML validator to ignore all errors except unmatched tags (#10534)
6 years ago
Eugen Rochko 6d5b05e3d5 Add invite request to pending account notification e-mail (#10528)
6 years ago
Eugen Rochko 13c1b5bac8 Add preference to disable e-mails about new pending accounts (#10529)
6 years ago
Yağızhan 6286ace752 Fixed terrible grammar and translated the most (#10527)
6 years ago
Hinaloe da343470c4 Allow set the voting period to just 5 minutes (#10525)
6 years ago
Eugen Rochko 7eb05b8724 Add "why do you want to join" field to invite requests (#10524)
6 years ago
Eugen Rochko 55f25ceda3 Fix permission denied bug on approve all/reject all pending accounts (#10519)
6 years ago
Eugen Rochko 403338108e Fix glitched out "not found" message for non-existing profiles in web UI (#10517)
6 years ago
Quentí 5c9f6740c6 [i18n] Update and correction (#10511)
6 years ago
Thibaut Girka 0405e42c4a Add column title to “Favourited by” and “Boosted by” columns
6 years ago
ThibG a604f766e0 Fix batch actions not working on pending accounts (#10508)
6 years ago
Thibaut Girka 85ab126f88 Fix pending accounts management
6 years ago
ashleyhull-versent 85a9a248f9 [Glitch] Duplicate values
6 years ago
Eugen Rochko 2b965f8d17 [Glitch] Port SCSS changes from "Improve blocked view of profiles"
6 years ago
Thibaut Girka 5c8f9a3220 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
koyu c66a043591 Updated German locales (#10505)
6 years ago
Alix Rossi a5a7780ad1 i18n: Update Corsican translations (#10504)
6 years ago
Aditoo17 20040927fc i18n: Update Czech translation (#10506)
6 years ago
Takeshi Umeda 21193ed31e Fix config serializer regex (#10487)
6 years ago
ThibG 110dbb5286 Export and import show_reblogs together with following list (#10495)
6 years ago
Jeong Arm d035f4af41 Translate Korean (#10499)
6 years ago
mayaeh 4f8beb3717 i18n: Update Japanese translations (#10494)
6 years ago
Eugen Rochko c84c30c542 Improve blocked view of profiles (#10491)
6 years ago
Eugen Rochko c34a7f5bd2 Add batch actions for approving and rejecting pending accounts (#10469)
6 years ago
Eugen Rochko d48f53cf1a Fix admin validation being too strict about usernames (#10449)
6 years ago
Marek Ľach 1409a529dd Improve sk translation further (#10484)
6 years ago
ashleyhull-versent b0348d0f92 tinyfix 2: unrequired arguments (#10471)
6 years ago
marcin mikołajczak 0e7c4d0c69 i18n: Update Polish translation (#10479)
6 years ago
Marek Ľach 705a2b7615 Updates the Slovak translation (#10477)
6 years ago
jeroenpraat 4c20f5376a Dutch (nl) translation (#10474)
6 years ago
ashleyhull-versent 8037fa7d2e Duplicate values (#10470)
6 years ago
ThibG 3964cc964d Merge pull request #981 from ThibG/glitch-soc/merge-upstream
6 years ago
ThibG 729b3841c3 [Glitch] Update poll remaining time just like with status timestamps
6 years ago
Thibaut Girka a835ea0e8f Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
spla f46cd7f002 i18n: update Catalan translation (#10458)
6 years ago
ThibG 4fa0b331ae Cache featured collections, as well as outbox, followers and following (#10467)
6 years ago
Thibaut Girka b83e693c40 Do not handle clicks in detailed status content
6 years ago
ThibG e87214826b Export and import `hide_notifications` alongside user mutes (#10335)
6 years ago
ThibG 6e024f0d7a Update poll remaining time just like with status timestamps (#10466)
6 years ago
ThibG aa7fe3101f Hopefully fix input text selection quirks on iOS (#10463)
6 years ago
Jeong Arm 7deedcc0cf Esperanto translations (#10461)
6 years ago
Renato "Lond" Cerqueira a0eaf51ad4 Re-dd PT-br translations (#10459)
6 years ago
spla 8cc94c38cf i18n: update catalan translations (#10455)
6 years ago
Aditoo17 445568eff3 I18n: Improve Czech translation (#10454)
6 years ago
Thibaut Girka 5eb2632410 Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
ThibG 0317f37c6f Fix filtering of favourited_by, reblogged_by, followers and following (#10447)
6 years ago
ThibG 4cd944d364 Hide blocking accounts from blocked users (#10442)
6 years ago
slice 67cd7abbb1 Improvements to image upload validation and creation (#10431)
6 years ago
mayaeh 0615bc56aa i18n: Update Japanese translations (#10427)
6 years ago
ThibG 65930be714 Ensure request.body isn't emptied out before signature verification (#10432)
6 years ago
slice 0aea1c0775 Add thumbnail, hero, and mascot back to Form::AdminSettings::KEYS (#10430)
6 years ago
Eugen Rochko a547a214fd [Glitch] Fix transparent avatars showing underlying elements in avatar stack and profile
6 years ago
Eugen Rochko 2393504c23 [Glitch] Fix search in web UI not setting a limit, restore limit of 10
6 years ago
Thibaut Girka 99336afaff Merge branch 'master' into glitch-soc/merge-upstream
6 years ago
Jeong Arm 1289e86116 Remove unused code (#10426)
6 years ago
Eugen Rochko a82bc7f5ae Add ActivityPub representation for identity proofs (#10414)
6 years ago
Eugen Rochko ed2862e249 Fix emoji-mart crashing web UI on search by reverting the upgrade to 2.10.0 (#10413)
6 years ago
Eugen Rochko 9a12568a33 Fix transparent avatars showing underlying elements in avatar stack and profile (#10422)
6 years ago
Eugen Rochko 20769a332a Fix search in web UI not setting a limit, restore limit of 5 (#10421)
6 years ago
Eugen Rochko d31affe69b Add indication that you have been blocked in web UI (#10420)
6 years ago
Aditoo17 0c334481cc I18n: Update Czech translation (#10419)
6 years ago
Jeong Arm 6c39082e87 Add missing Korean translations (#10416)
6 years ago
Alix Rossi 1ce9bd86b3 Update Corsican translations (#10418)
6 years ago
Masoud Abkenar c2e0b3487d l10n update: fa (#10417)
6 years ago
Alex Gessner d1b617374c [Glitch] squashed identity proof updates
6 years ago
Thibaut Girka b29731bb10 Fix background color transition in destructive buttons
6 years ago
ThibG 4211c9b8d3 [Glitch] Fix opacity of relationship tags
6 years ago
Thibaut Girka 773c600c26 Fix left border of profile navigation tab
6 years ago
Thibaut Girka 751739337d Add fa-info-circle to disclaimer
6 years ago
Thibaut Girka a23e513f79 Fix double border for account disclaimer
6 years ago
slice 5900b0b206 [Glitch] Add rel='noopener' to redesigned profile column header avatar link
6 years ago
ThibG fb17e24352 [Glitch] Move the account dropdown menubar to the right, make sure it doesn't move
6 years ago
Aditoo17 6df0d0fd51 [Glitch] Make clicking on avatar open public profile in new tab
6 years ago