Commit Graph

294 Commits

Author SHA1 Message Date
Eugen Rochko
9072fe5ab6
Add trends UI with admin and user settings (#11502) 2019-08-06 17:57:52 +02:00
Eugen Rochko
706a48ee1f
Fix column header scrolling with the page (#11458)
Regression from aa22b38
2019-08-01 12:26:58 +02:00
Eugen Rochko
aa22b38fdb
Change single-column mode to scroll the whole page (#11359)
Fix #10840
2019-07-19 09:25:22 +02:00
Eugen Rochko
9b1d3e4acb
Add option to disable real-time updates in web UI (#9984)
Fix #9031
Fix #7913
2019-07-16 06:30:47 +02:00
ThibG
072158ee97 Fix swiping columns on mobile sometimes failing (#11200)
Fixes #9779
2019-06-28 13:52:15 +02:00
ThibG
01e362316c Do not scroll in the compose panel on single-column (#11093) 2019-06-16 18:46:55 +02:00
ThibG
dd45c63921 List attachments in reply indicator and boost modal (#10997)
* Add media attachments list to boost modal

* Add attachment list to reply indicator
2019-06-13 17:04:52 +02:00
ThibG
1b4dcc3f78 Only show profile directory link when it's enabled (#11064) 2019-06-13 00:16:27 +02:00
Eugen Rochko
6077eca240
Add profile directory link to single column navigation panel (#10963) 2019-06-04 19:50:38 +02:00
Takeshi Umeda
d93b82af87 Improvement variable height in single column layout (#10917)
* Improvement variable height of compose and navigation panel in single column layout

* Fix wrong quotes and missing commas
2019-06-02 10:05:54 +02:00
Eugen Rochko
8d9755e5f5
Change links in right panel to open in the same tab (#10848)
For Rambox compatibility
2019-05-29 17:33:35 +03:00
Eugen Rochko
451e5980b6
Refactor footers in web UI into a single component (#10846) 2019-05-27 21:58:41 +02:00
Eugen Rochko
0e445ebb13
Improvements to the single column layout (#10835)
* Improvements to the single column layout

- Add follows and followers link to the right panel
- Increase margins around separators in right panel
- Add follow requests link with counter when account is locked to right panel

* Redirect from getting started to home when navigation panel is visible
2019-05-26 02:55:37 +02:00
ThibG
a472190729 Add a keyboard shortcut to hide/show media (#10647)
* Move control of media visibility to parent component

* Add keyboard shortcut to toggle media visibility
2019-05-25 23:20:51 +02:00
Eugen Rochko
1e5532e693
Add responsive panels to the single-column layout (#10820)
* Add responsive panels to the single-column layout

* Fixes

* Fix not being able to save the preference

* Fix code style issues

* Set max-height on the compose textarea and add a link to relationship manager
2019-05-25 21:27:00 +02:00
Eugen Rochko
84dc21d55d
Various improvements to single column layout (#10809)
- Add potential side panels to single column layout
- Hide FAB on large screens
2019-05-23 20:01:10 +02:00
Eugen Rochko
9ddeb30f90
Add forceSingleColumn prop to <UI /> (#10807)
* Move TabsBar rendering logic from CSS to the ColumnsArea component

* Add forceSingleColumn mode

* Add unread notifications counter to tabs bar

* Add toggle to control `forceSingleColumn`

* Increase paddings in mobile layout responsively at large sizes
2019-05-23 01:35:22 +02:00
Aurélien Reeves
fe8a8f779e Add confirm modal for unboosting toots (#10287)
[#3815]

Display the boost modal also when unboosting toots.
2019-05-09 22:39:26 +02:00
ThibG
4f73cde4e1 Minor account media gallery fixes (#10695)
* Make the cursor icon consistant across media types in account media gallery

* Fix the video player modal causing scroll position to reset
2019-05-04 17:36:43 +02:00
Eugen Rochko
eb63217210
Add button to view context to media modal (#10676)
* Add "view context" button to media modal when opened from gallery

* Add "view context" button to video modal

Allow closing the video modal by navigating back in the browser,
just like the media modal
2019-05-03 16:16:30 +02:00
ThibG
5121d9c12f When selecting a toot via keyboard, ensure it is scrolled into view (#10593) 2019-05-03 06:20:35 +02:00
Eugen Rochko
fba96c808d
Add blurhash (#10630)
* Add blurhash

* Use fallback color for spoiler when blurhash missing

* Federate the blurhash and accept it as long as it's at most 5x5

* Display unknown media attachments as blurhash placeholders

* Improve style of embed actions and spoiler button

* Change blurhash resolution from 3x3 to 4x4

* Improve dependency definitions

* Fix code style issues
2019-04-27 03:24:09 +02:00
kedama
d763d39d26 Fix modal items cannot scroll on touch devices (#10605) 2019-04-22 14:55:50 +02:00
ThibG
6df4a82969 Add a “Block & Report” button to the block confirmation dialog (#10360) 2019-03-26 17:34:02 +01:00
Eugen Rochko
c20d096e6a
Show disappointed elephant if web UI crashes (#10275)
* Do not crash the whole UI when loading an invalid column

* Add error boundary component to catch Web UI crashes

* Add stack trace on supported browsers

* Add component stack info, pre-format everything for github

* Make “Reload” a clickable link that calls window.location.reload()

* Remove elephant friend from error boundary, make title stand out more

* Simplify error boundary to only a graphic
2019-03-15 05:35:45 +01:00
mayaeh
46e806cd2f Rename from instance to server. (#9938) 2019-02-05 19:11:24 +01:00
tmm576
750c67660d Allow multiple files upload through web UI, including drag & drop (#9856)
* Allow drag and drop uploads of multiple files to compose

* Calculate aggregate upload progress for single action

* Allow multiple uploads to compose through traditional input, consolidate update file limit logic, provide file limit feedback
2019-02-02 20:22:05 +01:00
Eugen Rochko
1f95190202
Refactor icons in web UI to use Icon component (#9951)
* Refactor uses of icons to an Icon component in web UI

* Refactor options passed to the Icon component

* Make tests work with absolute component paths
2019-02-01 00:14:05 +01:00
tmm576
4cd0a10793 Allow event defaults on index for text data transfer (#9840) 2019-01-17 23:27:51 +01:00
tmm576
30af4ee65f Hide floating action button on search and getting started pages (#9826) 2019-01-17 09:22:12 +01:00
Hinaloe
d6433b3931 make draggingOver state off correctly (#9797)
* make draggingOver stat off correctly

* ignore safari and Edge

* Revert "ignore safari and Edge"

This reverts commit b9b93ea3674877670161207a3f9b3a4f82b68a2d.

* Revert "make draggingOver stat off correctly"

This reverts commit f5fd6b94dc1d4b812e0b910b2b4f35792c3ea3a1.

* clear drag stack when drop
2019-01-14 07:44:26 +00:00
Yamagishi Kazutoshi
8f5fdab5bf Update dependencies for Node.js (2018-12-31) (#9669)
* Update react-* to v16.7.0

* Upgrade react-hotkeys to v1.1.4

* Update react-intl to v2.7.2

* Update react-select to v2.2.0

* Update react-swipeable-views to v0.13.0

* Upgrade react-textarea-autosize to v7.1.0

* Upgrade redux to v4.0.1

* Upgrade reselect to v4.0.0

* Update raf to v3.4.1

* Update enzyme to v3.8.0

* Update rails-ujs to v5.2.2

* Update axios to v0.18.0

* Update http-link-header to v1.0.2

* Update rellax to v1.7.1

* Update intersection-observer to v0.5.1

* Update stringz to v1.0.0

* Upgrade babel-eslint to v10.0.1

* Update @babel/* to v7.2.x

* Update babel-plugin-react-intl to v3.0.1

* Update babel-plugin-transform-react-remove-prop-types to v0.4.21

* Upgrade dotenv to v6.2.0

* Update express to v4.16.4

* Update webpack to v4.28.3

* Upgrade autoprefixer to v9.4.3

* Update babel-loader to v8.0.4

* Upgrade css-loader to v2.1.0

* Upgrade file-loader to v3.0.1

* Update marky to v1.2.1

* Update mini-css-extract-plugin to v0.5.0

* Update offline-plugin to v5.0.6

* Update style-loader to v0.23.1

* Update eslint-plugin-jsx-a11y to v6.1.2

* yarn upgrade

* fix

* Replace webpack-manifest-plugin to webpack-assets-manifest

* Replace node-zopfli to @gfz/zopfli

* Remove monkey-patch for http-link-header
2018-12-31 18:11:48 +01:00
ThibG
e25947db4a Sanitize and sandbox toot embeds (#9552) 2018-12-23 02:16:35 +01:00
ThibG
e70e496e29 Clean up dead code in public timeline code (#9565) 2018-12-18 22:00:18 +01:00
Eugen Rochko
9cb26bb56b
Add new first-time tutorial (#9531)
* Prepare to load onboarding as a full page

* Update the first-time introduction

* Improve responsive design

* Replace speech bubble with logo

* Increase text size and reword first paragraph
2018-12-17 11:07:17 +01:00
namelessGonbai
bb5558de62 Implement adding a user to a list from their profile (#9062)
* Add add user to list from thier profile

* Fix listAdderCss
2018-11-05 18:52:38 +01:00
ThibG
adb06baef6 Handle global hotkeys even when no element has focus (#8998)
This fixes hotkeys not working when pressing the column
“back” button, for instance.
2018-10-17 16:56:16 +02:00
Eugen Rochko
28401962ca Change documentation URL (#8898)
* Change documentation URL

* Fix hardcoded documentation URL in locales
2018-10-06 14:33:36 +09:00
Eugen Rochko
3d7f68c273
Revert Font Awesome 5 upgrade (#8810)
* Revert "Fix some icon names changed by the Font Awesome 5. (#8796)"

This reverts commit 3f9ec3de82.

* Revert "Migrate to font-awesome 5.0. (#8799)"

This reverts commit 8bae14591b.

* Revert "Fix some icons names, unavailable in fontawesome5 (free license). (#8792)"

This reverts commit b9c727a945.

* Revert "Update the icon name changed by the Font Awesome 5. (#8776)"

This reverts commit 17af4d27da.

* Revert "Add bot icon to bot avatars and migrate to newer version of Font Awesome (#8484)"

This reverts commit 4b794e134d.
2018-09-28 02:11:14 +02:00
Naoki Kosaka
8bae14591b Migrate to font-awesome 5.0. (#8799) 2018-09-27 17:08:56 +02:00
theboss
b9c727a945 Fix some icons names, unavailable in fontawesome5 (free license). (#8792)
- pencil => pencil-alt
- sliders => sliders-h

related: #8484 #8776
2018-09-26 22:48:21 +09:00
ThibG
05f90e3695 Adjust beforeUnload conditions (#8746)
Fixes #8701
2018-09-21 18:54:17 +02:00
Yamagishi Kazutoshi
0ddbccf7e6 Upgrade Babel to version 7.0.0 (#5925) 2018-09-14 17:59:48 +02:00
luzpaz
40dd19be37 Misc. typos (#8694)
Found via `codespell -q 3 --skip="./app/javascript/mastodon/locales,./config/locales"`
2018-09-14 00:53:09 +02:00
ThibG
4959ead07c Fix media description in various media modals (#8678) 2018-09-13 20:31:59 +02:00
ThibG
661a89ea74 Autofocus comment textarea in report modal (#8689) 2018-09-13 15:27:29 +02:00
Frederic Hemberger
7c12c7b124 Add aria-label to floatingActionButton (#8574) 2018-09-02 15:51:06 +02:00
Jakub Mendyk
5129f6f2aa Add messages informing that collections are empty (fixes #4115) (#8418)
* Add messages informing that collections are empty

Adds empty messages to blocked users, domain blocks, favourited statuses, users
that favourited toot, follow requests, followers of given user, user's being
followed by given user, lists, muted users, toots' boosts.

Switched from using ScrollContainer to ScrollableList and/or added empty
message's text.

Fixes #4115

* Update localization files with strings for #4115

* Fix whitespace issues pointed out by codeclimate
2018-08-26 16:39:37 +02:00
Annika Backstrom
25f6f41052 Add hotkey for follow requests (#8307) 2018-08-20 03:44:16 +02:00
M Somerville
298ee84488 Fix #8264 - Do not override ctrl/cmd+click. (#8265)
This includes clicks on hashtags, mentions, display names and media in the
timeline; and usernames in reply-indicator, detailed status, and the boost
modal.
2018-08-18 12:50:32 +02:00
Eugen Rochko
60df87f6f0
Compensate for scrollbar disappearing when media modal visible (#8100)
* Compensate for scrollbar disappearing when media modal visible

Make auth pages backgrounds lighter

* Fix typo
2018-07-31 01:14:33 +02:00
Yamagishi Kazutoshi
06c83527f5 Do not scroll up when modal is opened (#8095) 2018-07-29 16:52:06 +02:00
ThibG
d199806969 Prevent scrolling main frame when navigating in image gallery with arrow keys (#8073) 2018-07-26 04:50:50 +02:00
ThibG
955d5d36e8 Use LoadingBar instead of blur to indicate that an image is loading (fixes #4060) (#7562) 2018-07-15 01:18:09 +02:00
Maciek Baron
f3af1a96a8 Check if router is injected in media modal (#7941) 2018-07-04 15:34:28 +02:00
Maciek Baron
bbbe3ed6ba Allow the media modal to be closed by pressing back (#7934) 2018-07-03 16:12:05 +02:00
Eugen Rochko
cdb101340a
Keyword/phrase filtering (#7905)
* Add keyword filtering

    GET|POST       /api/v1/filters
    GET|PUT|DELETE /api/v1/filters/:id

- Irreversible filters can drop toots from home or notifications
- Other filters can hide toots through the client app
- Filters use a phrase valid in particular contexts, expiration

* Make sure expired filters don't get applied client-side

* Add missing API methods

* Remove "regex filter" from column settings

* Add tests

* Add test for FeedManager

* Add CustomFilter test

* Add UI for managing filters

* Add streaming API event to allow syncing filters

* Fix tests
2018-06-29 15:34:36 +02:00
ふぁぼ原
20bb90ced6 On the mobile UI, move the search column to the right (#7877) 2018-06-26 20:35:11 +02:00
Hinaloe
b347d55432 DataTransfer.types may Array-like object (#7827) 2018-06-18 01:10:58 +09:00
Yamagishi Kazutoshi
64d7a63f18 Submit report using meta key (#7729) 2018-06-04 13:09:52 +02:00
Eugen Rochko
0deb9fa6b9
Remove trending hashtags (#7711)
* Delete trends_controller.rb

* Update routes.rb

* Update trending_tags.rb

* Update index.js

* Update index.js

* Update search_results.js

* Update async-components.js

* Update index.js

* Delete trends.js

* Delete trends.js

* Delete trends_container.js

* Delete trends.js

* Update search_results.js

* Update search_results_container.js
2018-06-04 02:18:18 +02:00
Eugen Rochko
73c0c36e7b
Improve trends layout (#7700)
* Allow collapsing trends, responsively hide trends

* Add trends column
2018-06-01 19:18:37 +02:00
Eugen Rochko
3623aea6c9
Redirect / to home on mobile layout, to getting started on desktop (#7677) 2018-05-30 18:42:06 +02:00
Eugen Rochko
5ea643b279
Save onlyMedia prop when pinning column (#7575) 2018-05-21 17:49:10 +02:00
Yamagishi Kazutoshi
46061dc041 Add exact attribute to WrappedRoute for community timeline (#7572)
* Add extra attribute to WrappedRoute for community timeline

* fix
2018-05-21 16:26:00 +02:00
Yamagishi Kazutoshi
7403e5d306 Add media timeline (#6631) 2018-05-21 12:43:38 +02:00
Yamagishi Kazutoshi
d9b2f84c92 Open video modal on public UI (#7469) 2018-05-13 13:48:14 +02:00
Yamagishi Kazutoshi
e0b1e17bd0 Show media modal on public timeline (#7413) 2018-05-08 13:33:09 +02:00
ThibG
b1938d7853 Do not crash in getStatusIds when there is a gap in the timeline (fixes #7400) (#7415)
Fixes a crash occurring when the “gap” disconnection indicator is to be
displayed in a filtered timeline.
2018-05-08 13:28:55 +02:00
ThibG
5c7bed6bbc Various improvements to the report UI (#7342)
* Also display replies in report modal

* Allow report modal to be up to 80% of viewport height

* Use narrow no-break space where needed in the French translation
2018-05-06 20:38:17 +02:00
Lynx Kotoura
74dae9458d Add color variables of texts for better accesibility (#7125)
* Add variables for text colors

* Change variables in sass files

* Apply text color variables for recently added colors

* Fix text colors of emoji mart anchors

* Fix text colors of search__input

* Fix text colors of text area of compose-form

* Fix icon colors of privacy dropdown and modal

* Inverted icon colors by classname

* Change variables in boost.scss

* Change action-button-color

* Fix text colors of pre-header
2018-04-18 16:52:15 +02:00
Kaito Sinclaire
156b916caf Direct messages column (#4514)
* Added a timeline for Direct statuses
* Lists all Direct statuses you've sent and received
* Displayed in Getting Started
* Streaming server support for direct TL

* Changes to match other timelines in 2.0
2018-04-18 13:09:06 +02:00
Neil Moore
fad7b9f5f2 Adds keyboard hotkey for revealing/hiding statuses (#7173)
Resolves #5550
2018-04-18 03:33:59 +02:00
Emelia Smith
c9cbb8de70 Add search item to tab bar for mobile devices (#7072)
* Add search item to tab bar for mobile devices

* Fix missing prop validation
2018-04-08 14:26:58 +02:00
Emelia Smith
7a81082704 Revert "Add double-tap zoom functionary to ZoomableImage (#6944)" (#7035)
Unfortunately the new hammer.js functionality wasn't correctly tested and didn't work across devices and browsers, as such, it's best to revert PR #6944 until we can revisit this functionality and make it work across all devices and browsers that are supported by Mastodon.

This reverts commit 5021c4e9ca.
2018-04-04 11:58:15 +02:00
unarist
2c51bc0ca5 Add missing rejection handling for Promises (#7008)
* Add eslint-plugin-promise to detect uncaught rejections

* Move alert generation for errors to actions/alert

* Add missing rejection handling for Promises

* Use catch() instead of onReject on then()

Then it will catches rejection from onFulfilled. This detection can be
disabled by `allowThen` option, though.
2018-04-02 14:51:02 +02:00
ThibG
a6c129ddbd Add some UI for user-defined domain blocks (#6628)
* Keep list of blocked domains

Might be overkill, but I'm trying to follow the same logic as for blocked users

* Add basic domain block UI

* Add the domain blocks UI to Getting Started

* Fix undefined URL in `fetchDomainBlocks`

* Update all known users' domain_blocking relationship instead of just one's
2018-03-30 12:38:00 +02:00
Yuto Tokunaga
5021c4e9ca Add double-tap zoom functionary to ZoomableImage (#6944)
add <div.zoomable-image__margin/> to keep margin of the image on zooming
move setting `scrollLeft` and `scrollTop` of container from callback of
`setState` to `componentDidUpdate`
add 'hammerjs' package for touch gesture detection
rewrite `ZoomableImage` using 'hammerjs'
2018-03-28 20:40:51 +02:00
Akihiko Odaki
cbf97c03bb Allow clients to fetch notifications made while they were offline (#6886) 2018-03-24 22:07:23 +01:00
Akihiko Odaki
9a1a55ce52 Allow clients to fetch statuses made while they were offline (#6876) 2018-03-24 15:25:15 +01:00
Akihiko Odaki
ff7941e652 Show media modal on public pages (#6801) 2018-03-24 12:52:26 +01:00
Akihiko Odaki
4e71b104e6 Internationalize unexpected error message (#6887) 2018-03-24 10:54:19 +01:00
Eugen Rochko
f66a786029
Hide floating action button on thread views (#6859) 2018-03-22 09:33:14 +01:00
Yuto Tokunaga
fa5c867e0e Avoid using JS to set height in MediaModal (#6750)
avoid using JS to set height of ReactSwipeableViews component
reduce max-height of <img/> to 80% to avoid the screen covered by image
2018-03-12 03:52:05 +01:00
Eugen Rochko
56eb5c3f34
Fix focal point cropping in MediaGallery, fix focal point modal (#6740)
* Use object-position with object-fit instead of JS top/left

* Fix focal point modal
2018-03-11 15:12:33 +01:00
Eugen Rochko
a1b065700a
Fix focal point modals broken by #5956 (#6676) 2018-03-07 12:01:53 +01:00
Akihiko Odaki
913a38111f Remove pointer events on the entire UI when a dropdown menu is open (#6648)
* Remove pointer events on the entire UI when a dropdown menu is open

This prevents operations to change the location of the menu such as
scrolling.

* Fix mistake from merge
2018-03-07 02:26:43 +01:00
Akihiko Odaki
a07cfee644 Extract columns area from UI component (#6650)
UI component used to toggle isComposing state by directly manipulating the
DOM element to avoid the expensive rendering.

However, it is hacky, and is not effective for other states. Instead,
this change makes the rendering cheaper by extracting the huge columns
area.
2018-03-06 07:45:31 +01:00
Akihiko Odaki
13cf92df27 Use React.PureComponent instead of React.Component (#6653) 2018-03-06 07:28:26 +01:00
Akihiko Odaki
61e6275781 Use withRouter for TabsBar (#6652)
TabsBar refers to router, which is a private context property of
react-router. withRouter is a recommended alternative. It also allows to
track location changes even if React.PureComponent is used.
2018-03-06 07:28:05 +01:00
Akihiko Odaki
b0664a5e6c Replace onScrollToBottom with onLoadMore (#6615)
onScrollToBottom was a function to run instead of onScrollToTop and
onScroll when scrolling to the bottom. The behavior to prevent
onScrollToTop was inconvenient because the viewport can be at the bottom
and at the top at the same time if the viewport is larger than the
container.

onScrollToBottom was also called when the button to load more is clicked
on contray to the name suggests, which led notifications and
status_list_container components to mark the scrolled location is not at
the top mistakenly.

onLoadMore is a replacement for onScrollToBottom. It will be called
independently from onScrollToTop and onScroll.
2018-03-05 19:31:40 +01:00
Yuto Tokunaga
4e929b2d17 [RFC] Improved media modal (#5956)
* Improved media modal

ImageLoader: Impliment pinch zoom by CSS `transform: scale(X)`
ImageLoader: Impliment panning by CSS `overflow: scroll`
ImageLoader: Larger image
MediaModal: Larger close button
MediaModal: Close the modal by swiping vertically
MediaModal: Show/hide close button and right/left navigation on tapping image
MediaModal: Change the `pointer-event` CSS prpp to get more blank space to close the modal
ImageLoader: Zoom/reset zoom on double tap
MediaModal: disable vertical swiping while horizontally swiped
ImageLoader: prevent propagating touchmove event to MediaModal
MediaModal: Adjust size and potision of buttons
ImageLoader: Adjust scroll potision on pinch zoom

* Remove "swipe to close" and "double tap to zoom" features

* remove unused prop and functions

removed `onScroll` prop and `handleScroll` func in ImageLoader

* separate zoom functionary to ZoomableImage component

adjust styling of ImageLoader
add styling for ZoomableImage

* adjust size and potision of close button of media modal

* Fix for gif video

add `onClick` prop to ExtendedVideoPlayer
specify `onClick` prop to video tag for switching nav of `MediaModal`
add `.video-modal` class to scss to separate styling for `VideoModal`

* fix styling for centering

specify height of `ZoomableImage` by pixel
clean styling for `ImageLoader`

* fix lint errors

* small fix

* fixed designated parts
2018-03-04 20:32:24 +01:00
Eugen Rochko
e72db6d9dd
Move "compose" on mobile to floating action button (#6594)
* Move "compose" on mobile to floating action button

* Fix contrast on floating action button
2018-03-02 07:12:40 +01:00
Eugen Rochko
7901f9f63e
When search enabled, display hint in search popout (#6593)
* When advanced search is enabled, show different hint in search popout

* Change "getting started" icon in tabs bar from asterisk to hamburger
2018-03-02 06:02:42 +01:00
Eugen Rochko
379cdfaac5
Fix #6586: Add close modal icon to report dialog (#6591) 2018-03-02 04:36:00 +01:00
Eugen Rochko
5131012505
Add "Toots/Toots with replies/Media" tab below profile header (#6572)
* Add "Toots/Toots with replies/Media" tab below profile header

* Add focal point display to account gallery timeline

* Fix visual glitch of standalone GIFV
2018-03-01 02:48:44 +01:00
Eugen Rochko
41a01bec23
Federated reports (#6570)
* Fix #2176: Federated reports

* UI for federated reports

* Add spec for ActivityPub Flag handler

* Add spec for ReportService
2018-02-28 06:54:55 +01:00
Akihiko Odaki
7cb49eaa3a Do not use function name to track components (#6542)
UglifyJS2 is allowed to mangle function names, and function names can also
be duplicate if they are from different scopes. Therefore function names
are not reliable as identifiers.

Functions as keys for Map object is a cheaper and more reliable
alternative.
2018-02-24 19:10:57 +01:00
Eugen Rochko
90f12f2e5a
Focal points (#6520)
* Add focus param to media API, center thumbnails on focus point

* Add UI for setting a focal point

* Improve focal point icon on upload item

* Use focal point in upload preview

* Add focalPoint property to ActivityPub

* Don't show focal point button for non-image attachments
2018-02-22 00:35:46 +01:00
Eugen Rochko
daefbd66a6
Fix style of legacy column headers (#6342)
* Fix regression from #6199: Style of legacy column headers

* Fix tests

* Clean up variables
2018-01-24 04:03:51 +01:00