diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-02-09 23:04:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-09 23:04:47 +0100 |
commit | 3ebc0ad4d3c2fe0b0951a334642b769bd521a799 (patch) | |
tree | 9b88b2da41dbbc24cb922660937b5ee65366c38d /app/javascript | |
parent | 235c14c79d620d47012a08425324df222a136457 (diff) |
Full-text search for authorized statuses (#6423)
* Add full-text search for authorized statuses - Search API will return statuses that match the query - Only for logged in users - Only if you are author of the status, - Or you were mentioned in it - Or you favourited or reblogged it - Configuration over `ES_ENABLED`, `ES_HOST`, `ES_PORT`, `ES_PREFIX` - Run `rails chewy:deploy` to create & populate index Fix #5880 Fix #4293 Fix #1152 * Add commented out docker-compose configuration for ES container * Optimize index import, filter search results * Add basic normalization to the index * Add better stemming and normalization to the index * Skip webfinger request if search query includes both @ and a space * Fix code style * Visually separate search result sections * Fix code style issues
Diffstat (limited to 'app/javascript')
-rw-r--r-- | app/javascript/mastodon/features/compose/components/search_results.js | 6 | ||||
-rw-r--r-- | app/javascript/styles/mastodon/components.scss | 39 |
2 files changed, 44 insertions, 1 deletions
diff --git a/app/javascript/mastodon/features/compose/components/search_results.js b/app/javascript/mastodon/features/compose/components/search_results.js index d16f7fce7..84455563c 100644 --- a/app/javascript/mastodon/features/compose/components/search_results.js +++ b/app/javascript/mastodon/features/compose/components/search_results.js @@ -22,6 +22,8 @@ export default class SearchResults extends ImmutablePureComponent { count += results.get('accounts').size; accounts = ( <div className='search-results__section'> + <h5><FormattedMessage id='search_results.accounts' defaultMessage='People' /></h5> + {results.get('accounts').map(accountId => <AccountContainer key={accountId} id={accountId} />)} </div> ); @@ -31,6 +33,8 @@ export default class SearchResults extends ImmutablePureComponent { count += results.get('statuses').size; statuses = ( <div className='search-results__section'> + <h5><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5> + {results.get('statuses').map(statusId => <StatusContainer key={statusId} id={statusId} />)} </div> ); @@ -40,6 +44,8 @@ export default class SearchResults extends ImmutablePureComponent { count += results.get('hashtags').size; hashtags = ( <div className='search-results__section'> + <h5><FormattedMessage id='search_results.hashtags' defaultMessage='Hashtags' /></h5> + {results.get('hashtags').map(hashtag => ( <Link key={hashtag} className='search-results__hashtag' to={`/timelines/tag/${hashtag}`}> #{hashtag} diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index c2c9a040f..fe895809a 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1786,7 +1786,7 @@ flex: 1; min-height: 47px; - > img { + > img { display: block; object-fit: contain; object-position: bottom left; @@ -3229,6 +3229,43 @@ font-weight: 500; } +.search-results__section { + margin-bottom: 20px; + + h5 { + position: relative; + + &::before { + content: ""; + display: block; + position: absolute; + left: 0; + right: 0; + top: 50%; + width: 100%; + height: 0; + border-top: 1px solid lighten($ui-base-color, 8%); + } + + span { + display: inline-block; + background: $ui-base-color; + color: $ui-primary-color; + font-size: 14px; + font-weight: 500; + padding: 10px; + position: relative; + z-index: 1; + cursor: default; + } + } + + .account:last-child, + & > div:last-child .status { + border-bottom: 0; + } +} + .search-results__hashtag { display: block; padding: 10px; |