Kazhnuz
e6a6c102f6
Add forgotten comma
8 years ago
Damien Erambert
5f0e912d87
Add more lcoales in fr.jsx
8 years ago
Kazhnuz
6ac05fc74b
Update French Translation
8 years ago
Eugen
e3509e02c0
Merge pull request #740 from 0x70b1a5/master
...
remove black border on video mute/spoiler buttons
8 years ago
Eugen
0335a52e28
Merge pull request #741 from eramdam/feature/improve-french-locales
...
Improve/add some French locales
8 years ago
Eugen Rochko
4bfabbd5e2
Avoid re-loading already loaded relationships. Also fixes issue where wrong
...
button would be displayed in account lists for unloaded relationships
8 years ago
Eugen Rochko
eb85833dc7
Keep track of which timelines are connected live to avoid redundant
...
refreshes on navigation
8 years ago
Tobias Merkle
bba468bcca
single-quotes
8 years ago
Tobias Merkle
034cfeb1ac
remove black border on buttons
8 years ago
Eugen Rochko
f04816f005
Fix wording "show reblogs" -> "show boosts", order reports chronologically in
...
admin UI
8 years ago
Eugen Rochko
572cf64791
Fix feed regeneration bug
8 years ago
Damien Erambert
22fb48ca13
Add fr locale for community_timeline in fr.jsx
8 years ago
Tobias Merkle
8befce32f3
improve video button visibililty
8 years ago
Eugen Rochko
431bfcaad6
Fix broken reference
8 years ago
Eugen Rochko
b794690bfe
Made modal system more generic
8 years ago
Eugen Rochko
348e817d53
Improve mobile tabs a little
8 years ago
Eugen Rochko
3c6e9ee33c
Fix reworked search
8 years ago
Eugen Rochko
a895f0d448
Rework search
8 years ago
shel
57e3d4c58b
Merge branch 'master' into patch-2
8 years ago
Eugen Rochko
7931d5886c
Fix web UI profile clickable area overlapping with follow button area
8 years ago
Eugen Rochko
bbc3a36c82
Fix drag & drop overlay flickering
8 years ago
Eugen Rochko
cdbfbbc691
Improve emojis - use SVGs where possible
8 years ago
Eugen Rochko
8c97719fbc
Hide drag & drop area on drop event regardless of success
8 years ago
shel
728174500e
Clarify post privacy warning
...
I was informed that the current warning if you @ a remote server in a private post is inadequate. These are suggested changes to better inform users.
8 years ago
Eugen Rochko
02e2336daa
Add tooltip to privacy dropdown
8 years ago
Eugen Rochko
2a8906d56a
Compose form layout fixes
8 years ago
shel
7800909a0d
Clarify privacy options
...
Descriptions of differences between scope are more clear
8 years ago
Eugen Rochko
d30fa5c52d
Fix up visual indicators for compose form privacy
8 years ago
Eugen Rochko
e03f11e6a0
When replying to status with content warning, prefill content warning
8 years ago
Eugen Rochko
54b4f60906
Privacy dropdown i18n
8 years ago
Eugen Rochko
53ef83be1e
Redesigned compose form
8 years ago
Eugen Rochko
b899b3def2
Fancier drag & drop indicator, emoji icon for emoji, upload progress ( fix #295 )
8 years ago
Eugen Rochko
1b4583ca91
Fix full-text search query quotation, improve tag search performance with an index,
...
add ability to open status by URL from search (fix #53 )
8 years ago
Eugen Rochko
c78e325f39
Web UI support for the new omnisearch
8 years ago
Eugen Rochko
5965e3b80c
German toot -> "tröt"
8 years ago
shel
5c7b222769
Promote Apps ( #670 )
...
"Various apps are available" is now a hyperlink
8 years ago
Eugen Rochko
f1b9644cfd
Add "direct" visibility level in the backend. Web UI is not yet
...
adjusted to allow choosing it, yet
8 years ago
Eugen Rochko
b6dff981a2
Replace howler.js with simple <audio />, will hopefully resolve
...
some weird mobile browser behaviours
8 years ago
Eugen Rochko
ed21f43271
Try to detect iOS and *not* autoplay any videos
...
Technically the check for iOS from components is a side effect, because it's
neither in state nor props, but the user agent does not change, so I think
that's okay.
8 years ago
Eugen Rochko
3adccc7fd4
Make gifvs always use media gallery component
8 years ago
Eugen Rochko
4b93cf88e5
Fix #431 - convert gif to webm during upload. Web UI treats them like it did
...
before. In the API, attachments now can be either image, video or gifv. Gifv
is to be treated like images in terms of behaviour, but are videos by file
type.
8 years ago
Eugen Rochko
b59611776c
Rename "the whole known network" timeline to "federated timeline"
...
Remove note about following Gargron@mastodon.social from getting started text
8 years ago
Eugen Rochko
6e349c248e
Make confirmation text more specific
8 years ago
Eugen Rochko
c9e2dc6337
Fix #620 - Add confirmation dialog for notifications clear
8 years ago
Eugen Rochko
9989890e2e
Fix #231 - Muting
8 years ago
Kit Redgrave
4554ccd5d0
Mute button progress so far. WIP, doesn't entirely work correctly.
8 years ago
Eugen Rochko
6ded139be0
Fix #372 - Emoji picker
8 years ago
Eugen Rochko
e7b5cecda7
Simplify passing of prop
8 years ago
Eugen Rochko
e660cd9fef
Merge branch 'mastodon-paste-support' of https://github.com/marrus-sh/ardipithecus into marrus-sh-mastodon-paste-support
8 years ago
Kibigo
b9222fd7d4
Better smart/dumb component separation
8 years ago
Kibigo
17a82cd281
Making the back button a little smarter
8 years ago
Kibigo
11b967690b
Support for pasting images from clipboard
8 years ago
Eugen Rochko
9454f2baff
Fix incorrect detection of local vs remote user in web UI
8 years ago
Eugen Rochko
4aa152f18f
Fix typo
8 years ago
Eugen Rochko
a270f1c13e
Revert infinite scroll in timelines back to looking at ID of oldest
...
loaded status; do not preload submitted statuses into community/public
timelines, unless those timelines have already been loaded; do not
close streaming API connections for community/public timelines, once
they have been established (most users navigate back to them eventually)
8 years ago
Eugen Rochko
63bceaa4b4
Fix #291 - Add visual indication that numbers for remote users may be inaccurate
8 years ago
Eugen Rochko
58ddd1d3a2
Improved dropdowns
8 years ago
Eugen Rochko
f8fa1d604c
Fix #561 - Detect presence of audio in video, hide mute toggle when none
8 years ago
Eugen Rochko
edf03c8cd9
Fix #186 - Add RTL support to the compose form textarea and statuses output
8 years ago
Kibigo
c47fe6cf40
Character counter fix
8 years ago
Eugen Rochko
7d51f71aba
Add <MissingIndicator /> when status or account are not found, skip alerts
...
for those errors
8 years ago
Eugen Rochko
2e62fe467d
Merge branch 'fix_626' of https://github.com/rmhasan/mastodon into rmhasan-fix_626
8 years ago
Eugen Rochko
a24f95ae92
Fix broken dependency on inner react utility function
8 years ago
Eugen Rochko
44af43322c
Fix local timeline showing unread status of TWKN timeline
8 years ago
Eugen Rochko
fcd765c166
Improve compose form performance, upgrade JS dependencies. LightingBox
...
now allows to cycle through multiple images
8 years ago
Eugen Rochko
75d5dc1df8
Improve glow
8 years ago
Eugen Rochko
95407b7c8e
Improve status reselect, do not display "load more" when no next link available
8 years ago
Eugen Rochko
c4222a7a62
Improve performance of compose form
8 years ago
Eugen Rochko
8a961477eb
Fix #38 - Unread indicator when new content appears above the fold
8 years ago
Eugen
2ff3e458bf
Fix scroll to top not registering because of wrong debounce usage
8 years ago
Eugen Rochko
f73aec19a8
Fix links and wording
8 years ago
Eugen Rochko
36faf4e55f
Adjust naming of public timeline -> "local timeline" vs "whole known network"
8 years ago
Eugen Rochko
0e8aa9b2ec
Fix infinite scrolling breaking after navigation
8 years ago
Eugen Rochko
c7427bf3c9
Split public timeline into "public timeline" which is local, and
...
"whole known network" which is what public timeline used to be
Only domain blocks with suspend severity will block PuSH subscriptions
Silenced accounts should not appear in conversations unless followed
8 years ago
Rakib Hasan
620cba2e2a
added if else clause in fetchContext
...
So that if we get an error, then we will
only delete status if it is an 404 error
8 years ago
Rakib Hasan
4909069b7b
Removing dispatch of fetchContextFail
...
No need to flash error message when status is not found.
The column will display the message "status not found"
8 years ago
Rakib Hasan
0caff2da64
adding new react class StatusNotFound
8 years ago
Rakib Hasan
db9bf61075
Fixing issue #626
...
The status is not showing anymore after clicking on it
8 years ago
Eugen Rochko
f979fa7182
Fix #642 - Add "empty column" text to home/notifications
8 years ago
shel
310806a60c
Add target="_blank" to github link
...
This makes so clicking the link to the github opens in a new tab or windows.
I just keep getting frustrated clicking the link to github and then losing my place in my home timeline >_> that's all
8 years ago
nicolas
649536187c
French translation update
8 years ago
Eugen Rochko
60cc2a32c2
Add foreign key to prevent reblogs of non-existent (after race conditions) statuses from happening
...
Fix issue with detailed status view not supporting unreblogging/unfavouriting
8 years ago
Eugen Rochko
8cff4e811d
Fix small styling issues
8 years ago
Eugen Rochko
f22abea0ba
Close dropdown when clicking items
8 years ago
Eugen Rochko
52a0427d24
Speed up/optimize loading of statuses, context and cards by not re-fetching what is already loaded
8 years ago
Eugen Rochko
7f9d6d0160
Add GET /api/v1/accounts/:id/statuses/media that returns only statuses with media attachments
...
Make replies default to privacy settings of the status being replied to
8 years ago
Eugen Rochko
596de038c8
Fix #634 - Only include innermost-level statuses in report UI
...
Fix #635 - Include the initially-reported status in report UI even if it's not
among the user's most recent statuses
8 years ago
Eugen Rochko
2cc31b3194
Adding POST /api/v1/reports API, and a UI for submitting reports
8 years ago
Eugen Rochko
edd9637e0a
Add remote mentions warning when composing a private status
8 years ago
Eugen Rochko
e2ae7a8e5c
Merge branch 'patch-5' of https://github.com/yiskah/mastodon into yiskah-patch-5
8 years ago
Eugen Rochko
a1d7e6773c
Clean up collapsible components
8 years ago
shel
d4686e485e
Add privacy disclaimer
...
I haven't had a chance to test this, because I don't currently have a fully functioning computer I can set up a dev-environment on, but this *should* make it so when a user toggles a post to be private, a disclaimer appears clarifying what "private" really means.
8 years ago
shel
c0be5dac90
Add privacy disclaimer
...
Add variable for text of privacy disclaimer
8 years ago
Eugen Rochko
ad3aef41db
Finish up moving colors from JSX to Sass ( #584 , #348 )
8 years ago
Eugen
46e767ac06
Merge pull request #617 from halcy/style-changes
...
Style changes
8 years ago
Lorenz Diener
37cf747049
Move more colours to scss
8 years ago
Lorenz Diener
75a8c1dd8e
Move more inline colours to scss
8 years ago
Eugen Rochko
81be690f95
Fix #614 - extra reply-boolean on statuses to account for cases when replied-to
...
status is not in the system at time of distribution; fix #607 - reset privacy
settings to defaults when cancelling replies
8 years ago
Eugen Rochko
18a0686666
Progress on moving color styles to Sass
8 years ago
Isabelle Knott
06b4e585d1
Change blocked users icon to fa-ban in getting started view ( #608 )
8 years ago
Eugen Rochko
1f106f7955
Make streaming API use one pattern-matching redis pubsub connection
...
Refresh timelines when streaming API reconnects in the UI
8 years ago
Eugen Rochko
0ba2b2d54e
Fix wrong prediction of whether toot will apear on public timeline in UI
8 years ago
Eugen Rochko
94cda4cfb9
Add "clear notifications" button, exclude posts from people who have blocked *you* from public/hashtag timelines
8 years ago
Eugen Rochko
eb9934c88c
Add streaming API channels for local-only statuses
8 years ago
Eugen Rochko
b1f2683ecc
Add API modifiers to limit returned toots from public/hashtag timelines
...
to only those from local users; Add link to "extended information" to
getting started in the UI; Add defaults for posting privacy; Change
how publish button looks depending on posting privacy chosen
8 years ago
Eugen Rochko
43be729e6b
Don't allow people to follow people they blocked without unblocking first
8 years ago
Eugen Rochko
e4a55302d2
Remove bios from blocked users list, filter out broken entries from API response
8 years ago
Eugen Rochko
ef8fba9494
Add link to blocked users to getting started page
8 years ago
Eugen Rochko
d384845469
Fix #61 - Add list of blocked users to the UI; clean up failed push notifications API
...
Try to fix Travis CI setup
8 years ago
Eugen Rochko
419d2fd5a9
Fix #552 - Replace image links with image icons in status text in the UI
8 years ago
Eugen Rochko
2d16dea598
Fix content warning margin
8 years ago
Eugen Rochko
9dde86c4f3
Remove react-dnd as it was interfering with text selection. Move content
...
warning mentions preview into area where actual content would be
8 years ago
Eugen Rochko
728817fba2
Add tracking of delay to streaming API
8 years ago
Eugen Rochko
c7b7eb8067
Fix #598 - arrow keys to navigate media; fix #481 - non-exact matches no longer
...
overshadow requirement for remote-lookup
8 years ago
Eugen Rochko
97bbbcb06c
Add next/previous navigation in modal for media attachments
8 years ago
Eugen Rochko
6f8e499fd0
No replies filter on home timeline no longer hides self-replies
8 years ago
Eugen Rochko
35cdb8c261
Getting started on draggable columns
8 years ago
Eugen Rochko
da94eef1af
Fix column settings not being scrollable on short screens
8 years ago
Eugen Rochko
b8307576ac
Display mentions prepended to the content warning
8 years ago
hoodie
8d6aa92b5e
untested!! spoiler hotfix for replies
...
untested, my vagrant is bugged again, submitted at gargron's request
8 years ago
Eugen Rochko
9bd2b6be86
Make the streaming API also handle websockets (because trying to get the browser EventSource interface to
...
work flawlessly was a nightmare). WARNING: This commit makes the web UI connect to the streaming API instead
of ActionCable like before. This means that if you are upgrading, you should set that up beforehand.
8 years ago
hoodie
b86d1739a3
easier comprehension of toot settings and properties ( #595 )
...
sounds complex, but really it just reorganizes the posting options and
adds a seperator line
8 years ago
Eugen Rochko
999ecc9d69
Add logging and filtering to the node.js streaming API
8 years ago
Eugen Rochko
58c509d3a8
Prevent potential issue with public/hashtag statuses arriving after
...
they have been loaded and favourited/reblogged from another source
Since the status JSON returned from public/hashtag streams does not
contain favourited/reblogged attributes, merging them should not
override existing ones.
8 years ago
Eugen Rochko
727d236fcc
Cleaning up format of broadcast real-time messages, removing
...
redis-backed "mentions" timeline as redundant (given notifications)
8 years ago
Eugen Rochko
edcfbee9f5
Fix #529 - Make hashtag timelines show conversations, fix hashtag loading in the UI
8 years ago
Eugen Rochko
0197a0b7f2
Revert to animating avatars by default
8 years ago
Eugen Rochko
d980ca2514
Fix CORS issue on avatars resampling
8 years ago
Eugen Rochko
faef108904
Fix not reloading account/fetching relationship on newly independent components
8 years ago
Eugen Rochko
b9ec5973eb
Make profile header scroll along with contents. AccountTimeline, Followers and Following are no longer
...
nested inside a common parent (<Account>), instead they all embed <HeaderContainer />
8 years ago
Eugen Rochko
ba7434582f
Add explicit "load more" link to the bottom of StatusList and notifications
8 years ago
Eugen Rochko
c550b65d60
Improve avatar resampling of non-animated canvas
8 years ago
Eugen Rochko
7444036a57
Resolve confusion between ColumnBackButton and the slim version that
...
the public timeline has been using
8 years ago
Billie Thompson
8370a72ee9
Add missing back button to "Follow Requests"
...
Currently we have the problem where the follow request button is missing
from the Follow request tab. This means that when you visit that tab you
either have to press the back button in the browser or re-enter the home
page, which breaks the app flow.
This will resolve that issue by adding a new back button to that tab,
in the same way that the public timeline, and favourites have.
8 years ago
Misty De Meo
f4fbed2aab
Fix avatar scaling on high-DPI displays ( #573 )
8 years ago
Eugen Rochko
73dbcd79cf
Clean up
8 years ago
Zachary Spector
4e957b5dc1
Less ambiguous sensitive content toggle label ( #556 )
8 years ago
Eugen Rochko
27ad4ce9e8
Do not run FetchLinkCardService on local URLs, increase file size limit to 8MB,
...
fix ProcessFeedService pushing status into distribution if called a second time
while the first is still running (i.e. when a PuSH comes after a Salmon slap),
fix not running escape on spoiler text before emojify
8 years ago
Eugen Rochko
4bd0286045
Fix up timeout, improve contrast on "show more", add responsive style
...
for extremely wide monitors
8 years ago
Eugen Rochko
096ff9ba38
Removed accidental n+1 query from notifications, updated some deps,
...
improved how "show more" link looks
8 years ago
Anthony Bellew
1505254334
Removed line break before spoiler link, changed color of bg for spoiler link
8 years ago
Anthony Bellew
543aa1a957
Add Padding to inline styles for spoiler
8 years ago
Anthony Bellew
704713cea6
Added inline spoiler button styles
8 years ago
Anthony Bellew
1c684c0888
Moved brackets outside of localized strings at Gargron's suggestion
8 years ago
Anthony Bellew
0e00c04091
Add brackets to visually distinguish show more / show less text
8 years ago
Eugen Rochko
2efefb380b
Improve infinite scroll on notifications
8 years ago
blackle
6ac1beab44
Only open status on left mouse press
8 years ago
Eugen Rochko
30106ce53d
Fix loading of avatars before drawing them to canvas
8 years ago
Eugen Rochko
f163a77428
Fix #187 , address #441 - <Avatar> component now plays gifs only while hovered
8 years ago
Eugen Rochko
30abab790e
Fix order of migrations
8 years ago
blackle
fa25fc812d
fix up spoilers
8 years ago
Eugen Rochko
959e064186
Instead of using spoiler boolean and spoiler_text, simply check for non-blank spoiler_text
...
Federate spoiler_text using warning attribute on <content /> instead of a <category term="spoiler" />
Clean up schema file from accidental development migrations
8 years ago
Eugen
c7778752e3
Merge branch 'master' into master
8 years ago
Eugen Rochko
593737499e
Fix links in toots opening the toot at first
8 years ago
Eugen Rochko
cb33960e0e
Fix #204 , fix #515 - URL truncating is now a style so copypasting is not
...
affected, replaced onClick handler with onMouseUp/Down to detect text
selection not trigger onClick handler then
8 years ago
Eugen Rochko
604c654f8d
Set isLoading false on timelines when request fails
8 years ago
Eugen Rochko
271569fffb
Smarter infinite scroll
8 years ago
blackle
e25fc71c2c
Implement a click-to-view spoiler system
8 years ago
Eugen Rochko
b1322bf315
Fix mistake
8 years ago
Eugen Rochko
3bd02ca121
Less re-rendering
8 years ago
Eugen Rochko
4d39cc7bf9
Add /api/v1/notifications/clear, non-existing link cards for statuses will
...
now return empty hash instead of throwing a 404 error. When following,
merge into timeline will filter statuses
8 years ago
Misty De Meo
b7fb5b2b7e
Textarea: fix clicking on name suggestions
...
This was broken in 4afc1386
, which added an onBlur to hide the
suggestions when the textarea loses focus. Unfortunately, this fired
even when the textarea lost focus to its own suggestions box, and that
meant that onSuggestionClick is never called.
Setting a short window in which onSuggestionClick can still happen
before hiding the suggestion area ensures that clicking still works,
while still hiding the suggestions if the user clicks on something else.
8 years ago
Eugen Rochko
bfe579499b
Fix #475 - add space after autocomplete
8 years ago
Eugen Rochko
d8d22cfa6f
Instead of refusing to create accounts, domain blocks auto-suspend new accounts from that domain
8 years ago
Eugen Rochko
9d09b2c6b1
Fix preview cards layout, do preview card crawling for remote statuses
8 years ago
blackle
6ebca2ce6b
Show visibility toggle on videos, show regardless of sensitivity
8 years ago
Eugen Rochko
d1fbfbe689
No loading bars for cards, no failure if it 404s (that's expected)
8 years ago
Eugen Rochko
f748a91ec7
Fix #463 - Fetch and display previews of URLs using OpenGraph tags
8 years ago
Eugen Rochko
b75967ae52
Hide more non-essential loading bars
8 years ago
Eugen Rochko
a88f9a5ca9
Don't show loading bar when re-loading already loaded status. Don't even try to fetch ancestors from DB when in_reply_to_id is nil
8 years ago
Eugen Rochko
a388d1c8fe
Don't show loading bar when checking account timeline for newer stuff
8 years ago
Eugen Rochko
5fecdd7780
Fix #222 - Update followers count when following/unfollowing
...
Also, since the root component connects to the stream that updates home/notification columns,
there is pretty much no case for refreshing those columns beyond initial load. So, move the
loading of those columns into the root component, to prevent unneccessary reloads when switching tabs
on mobile or resizing desktop window between mobile/desktop layouts
8 years ago
Eugen Rochko
0022b0cb2e
Fix forgotten change of settings
8 years ago
Eugen Rochko
40a5094434
Fix boops?
8 years ago
Eugen Rochko
7865ce28e5
Add sounds for notifications. Boop by @jk@mastodon.social
8 years ago
Eugen Rochko
3f30e91462
Improve how the list entry Account component looks when target is blocked/follow is requested
8 years ago
blackle
94cedabbe3
Show 'do not display in public timeline' when replying to self
8 years ago
Eugen Rochko
89740d69ec
Fix upload file input being re-rendered needlessly
8 years ago
Eugen Rochko
f4d7f4c687
Fix #238 - Add "favourites" column
8 years ago
Eugen Rochko
81db795253
Fix #414 - Improve lightbox, add loading indicator
8 years ago
Eugen Rochko
780df33037
Merge branch 'sensitive' of https://github.com/blackle/mastodon into blackle-sensitive
8 years ago
Eugen Rochko
972fb80de6
Move follow requests link above logout link in getting started column
8 years ago
blackle
9ac182d831
Show visibility toggle on media gallery for sensitive images
8 years ago
Eugen Rochko
7e46083338
Fix typo introduced in #470 which made unlisted toggle only fade in/out and not also collapse
8 years ago
Eugen Rochko
73e217d9d7
Fix #427 - don't suggest hashtag if the search value contains a space
8 years ago
Eugen Rochko
58b0fe2f28
Fix #449 - don't do relationships fetch for empty array of IDs
8 years ago
Eugen Rochko
5d88ef90c9
Fix tests, add applications to eager loading/cache for statuses, fix
...
application website validation, don't link to app website if website isn't set,
also comment out animated boost icon from #464 until it's consistent with non-animated version
8 years ago
Eugen Rochko
3a957e127a
Merge branch 'feature/toot-app-source' of https://github.com/ineffyble/mastodon into ineffyble-feature/toot-app-source
8 years ago
Effy Elden
8e0c1914fb
Add tracking of OAuth app that posted a status, extend OAuth apps to have optional website field, add application details to API, show application name and website on detailed status views. Resolves #11
8 years ago
Effy Elden
49ff508743
Hide 'Do not display on public timeline' for reply toots. Fixes #412 .
8 years ago
Eugen Rochko
efd8ce920f
Better animations
8 years ago
Eugen Rochko
bc17613e70
Fix issue when settings are not defined for column type
8 years ago
Eugen Rochko
c8bcd413e2
Home column filters
8 years ago
Eugen Rochko
15b183117c
Add "not found" component to UI
8 years ago
Eugen Rochko
394f185e91
Merge branch 'master' of https://github.com/blackle/mastodon into blackle-master
8 years ago
Eugen Rochko
a1783b80b2
Merge branch 'dropdown' of https://github.com/blackle/mastodon into blackle-dropdown
8 years ago
Eugen Rochko
4293e132d1
Persist UI settings, add missing localizations for German
8 years ago
Eugen Rochko
c1c814e6a1
Improve initialState loading
8 years ago
blackle
62167338b8
Generate key for each input so we can upload the same file even after deleting
8 years ago
blackle
a697b5473a
Switch to compose view when tapping 'mention' in dropdown on mobile
8 years ago