Conflicts: - `README.md`: Discarded upstream changes: we have our own README - `app/controllers/follower_accounts_controller.rb`: Port upstream's minor refactoringmain
commit
f3a4d57be1
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e # Fail the whole script on first error
|
||||||
|
|
||||||
|
# Fetch Ruby gem dependencies
|
||||||
|
bundle install --path vendor/bundle --with='development test'
|
||||||
|
|
||||||
|
# Fetch Javascript dependencies
|
||||||
|
yarn install
|
||||||
|
|
||||||
|
# Make Gemfile.lock pristine again
|
||||||
|
git checkout -- Gemfile.lock
|
||||||
|
|
||||||
|
# [re]create, migrate, and seed the test database
|
||||||
|
RAILS_ENV=test ./bin/rails db:setup
|
||||||
|
|
||||||
|
# Precompile assets for development
|
||||||
|
RAILS_ENV=development ./bin/rails assets:precompile
|
||||||
|
|
||||||
|
# Precompile assets for test
|
||||||
|
RAILS_ENV=test NODE_ENV=tests ./bin/rails assets:precompile
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
@ -0,0 +1,37 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||||
|
import { FormattedMessage } from 'react-intl';
|
||||||
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
import Icon from 'mastodon/components/icon';
|
||||||
|
|
||||||
|
export default class FollowRequestNote extends ImmutablePureComponent {
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
account: ImmutablePropTypes.map.isRequired,
|
||||||
|
};
|
||||||
|
|
||||||
|
render () {
|
||||||
|
const { account, onAuthorize, onReject } = this.props;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className='follow-request-banner'>
|
||||||
|
<div className='follow-request-banner__message'>
|
||||||
|
<FormattedMessage id='account.requested_follow' defaultMessage='{name} has requested to follow you' values={{ name: <bdi><strong dangerouslySetInnerHTML={{ __html: account.get('display_name_html') }} /></bdi> }} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='follow-request-banner__action'>
|
||||||
|
<button type='button' className='button button-tertiary button--confirmation' onClick={onAuthorize}>
|
||||||
|
<Icon id='check' fixedWidth />
|
||||||
|
<FormattedMessage id='follow_request.authorize' defaultMessage='Authorize' />
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button type='button' className='button button-tertiary button--destructive' onClick={onReject}>
|
||||||
|
<Icon id='times' fixedWidth />
|
||||||
|
<FormattedMessage id='follow_request.reject' defaultMessage='Reject' />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
import { connect } from 'react-redux';
|
||||||
|
import FollowRequestNote from '../components/follow_request_note';
|
||||||
|
import { authorizeFollowRequest, rejectFollowRequest } from 'mastodon/actions/accounts';
|
||||||
|
|
||||||
|
const mapDispatchToProps = (dispatch, { account }) => ({
|
||||||
|
onAuthorize () {
|
||||||
|
dispatch(authorizeFollowRequest(account.get('id')));
|
||||||
|
},
|
||||||
|
|
||||||
|
onReject () {
|
||||||
|
dispatch(rejectFollowRequest(account.get('id')));
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default connect(null, mapDispatchToProps)(FollowRequestNote);
|
@ -0,0 +1,24 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe FormattingHelper, type: :helper do
|
||||||
|
include Devise::Test::ControllerHelpers
|
||||||
|
|
||||||
|
describe '#rss_status_content_format' do
|
||||||
|
let(:status) { Fabricate(:status, text: 'Hello world<>', spoiler_text: 'This is a spoiler<>', poll: Fabricate(:poll, options: %w(Yes<> No))) }
|
||||||
|
let(:html) { helper.rss_status_content_format(status) }
|
||||||
|
|
||||||
|
it 'renders the spoiler text' do
|
||||||
|
expect(html).to include('<p>This is a spoiler<></p><hr>')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'renders the status text' do
|
||||||
|
expect(html).to include('<p>Hello world<></p>')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'renders the poll' do
|
||||||
|
expect(html).to include('<radio disabled="disabled">Yes<></radio><br>')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue