Add related antennas edit link to list page

This commit is contained in:
KMY 2023-06-06 18:24:39 +09:00
parent 6ea0697699
commit 0dd1238157
5 changed files with 43 additions and 0 deletions

View file

@ -144,6 +144,11 @@ class ListTimeline extends PureComponent {
}));
};
handleEditAntennaClick = (e) => {
const id = e.currentTarget.getAttribute('data-id');
window.open(`/antennas/${id}/edit`, '_blank');
}
handleRepliesPolicyChange = ({ target }) => {
const { dispatch } = this.props;
const { id } = this.props.params;
@ -163,6 +168,7 @@ class ListTimeline extends PureComponent {
const title = list ? list.get('title') : id;
const replies_policy = list ? list.get('replies_policy') : undefined;
const isExclusive = list ? list.get('exclusive') : undefined;
const antennas = list ? (list.get('antennas')?.toArray() || []) : [];
if (typeof list === 'undefined') {
return (
@ -219,6 +225,23 @@ class ListTimeline extends PureComponent {
</div>
</div>
)}
{ antennas.length > 0 && (
<div>
<span className='column-settings__section column-settings__section--with-margin'>
<FormattedMessage id='lists.antennas' defaultMessage='Related antennas:' />
</span>
<ul className='column-settings__row'>
{ antennas.map(antenna => (
<li key={antenna.get('id')} className='column-settings__row__antenna'>
<button type='button' className='text-btn column-header__setting-btn' data-id={antenna.get('id')} onClick={this.handleEditAntennaClick}>
{antenna.get('title')}{antenna.get('stl') && ' [STL]'}
</button>
</li>
))}
</ul>
</div>
)}
</ColumnHeader>
<StatusListContainer

View file

@ -361,6 +361,7 @@
"limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.antennas": "Related antennas",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
"lists.edit.submit": "Change title",

View file

@ -357,6 +357,7 @@
"limited_account_hint.title": "このプロフィールは{domain}のモデレーターによって非表示にされています。",
"lists.account.add": "リストに追加",
"lists.account.remove": "リストから外す",
"lists.antennas": "関連付けられたアンテナ",
"lists.delete": "リストを削除",
"lists.edit": "リストを編集",
"lists.edit.submit": "タイトルを変更",

View file

@ -4534,6 +4534,10 @@ a.status-card.compact:hover {
margin-bottom: 10px;
}
.column-settings__section--with-margin {
margin-top: 10px;
}
.column-settings__row--with-margin {
margin-bottom: 15px;
}
@ -4646,6 +4650,10 @@ a.status-card.compact:hover {
.text-btn:not(.column-header__permission-btn) {
margin-bottom: 15px;
}
&__antenna {
margin-left: 12px;
}
}
.relationship-tag {

View file

@ -6,4 +6,14 @@ class REST::ListSerializer < ActiveModel::Serializer
def id
object.id.to_s
end
class AntennaSerializer < ActiveModel::Serializer
attributes :id, :title, :stl
def id
object.id.to_s
end
end
has_many :antennas, serializer: AntennaSerializer
end