parent
47489783bc
commit
eee362b9e0
6 changed files with 20 additions and 7 deletions
|
@ -83,7 +83,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
|
||||||
if (['mention', 'status'].includes(notification.type) && notification.status.filtered) {
|
if (['mention', 'status'].includes(notification.type) && notification.status.filtered) {
|
||||||
const filters = notification.status.filtered.filter(result => result.filter.context.includes('notifications'));
|
const filters = notification.status.filtered.filter(result => result.filter.context.includes('notifications'));
|
||||||
|
|
||||||
if (filters.some(result => result.filter.filter_action === 'hide')) {
|
if (filters.some(result => result.filter.filter_action_ex === 'hide')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -452,7 +452,7 @@ class Status extends ImmutablePureComponent {
|
||||||
moveDown: this.handleHotkeyMoveDown,
|
moveDown: this.handleHotkeyMoveDown,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (status.get('filter_action') === 'half_warn') {
|
if (status.get('filter_action_ex') === 'half_warn') {
|
||||||
return (
|
return (
|
||||||
<HotKeys handlers={minHandlers}>
|
<HotKeys handlers={minHandlers}>
|
||||||
<div className='status__wrapper status__wrapper--filtered focusable' tabIndex={0} ref={this.handleRef}>
|
<div className='status__wrapper status__wrapper--filtered focusable' tabIndex={0} ref={this.handleRef}>
|
||||||
|
|
|
@ -9,6 +9,7 @@ const normalizeFilter = (state, filter) => {
|
||||||
title: filter.title,
|
title: filter.title,
|
||||||
context: filter.context,
|
context: filter.context,
|
||||||
filter_action: filter.filter_action,
|
filter_action: filter.filter_action,
|
||||||
|
filter_action_ex: filter.filter_action_ex,
|
||||||
keywords: filter.keywords,
|
keywords: filter.keywords,
|
||||||
expires_at: filter.expires_at ? Date.parse(filter.expires_at) : null,
|
expires_at: filter.expires_at ? Date.parse(filter.expires_at) : null,
|
||||||
with_quote: filter.with_quote,
|
with_quote: filter.with_quote,
|
||||||
|
|
|
@ -56,13 +56,13 @@ export const makeGetStatus = () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action']) === 'hide')) {
|
if (filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action_ex']) === 'hide')) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
filterResults = filterResults.filter(result => filters.has(result.get('filter')));
|
filterResults = filterResults.filter(result => filters.has(result.get('filter')));
|
||||||
if (!filterResults.isEmpty()) {
|
if (!filterResults.isEmpty()) {
|
||||||
filtered = filterResults.map(result => filters.getIn([result.get('filter'), 'title']));
|
filtered = filterResults.map(result => filters.getIn([result.get('filter'), 'title']));
|
||||||
filterAction = filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action']) === 'warn') ? 'warn' : 'half_warn';
|
filterAction = filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action_ex']) === 'warn') ? 'warn' : 'half_warn';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,6 +72,7 @@ export const makeGetStatus = () => {
|
||||||
map.set('account', accountBase);
|
map.set('account', accountBase);
|
||||||
map.set('matched_filters', filtered);
|
map.set('matched_filters', filtered);
|
||||||
map.set('filter_action', filterAction);
|
map.set('filter_action', filterAction);
|
||||||
|
map.set('filter_action_ex', filterAction);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class REST::FilterSerializer < ActiveModel::Serializer
|
class REST::FilterSerializer < ActiveModel::Serializer
|
||||||
attributes :id, :title, :exclude_follows, :exclude_localusers, :with_quote, :context, :expires_at, :filter_action
|
attributes :id, :title, :exclude_follows, :exclude_localusers, :with_quote, :context, :expires_at, :filter_action, :filter_action_ex
|
||||||
has_many :keywords, serializer: REST::FilterKeywordSerializer, if: :rules_requested?
|
has_many :keywords, serializer: REST::FilterKeywordSerializer, if: :rules_requested?
|
||||||
has_many :statuses, serializer: REST::FilterStatusSerializer, if: :rules_requested?
|
has_many :statuses, serializer: REST::FilterStatusSerializer, if: :rules_requested?
|
||||||
|
|
||||||
|
@ -12,4 +12,14 @@ class REST::FilterSerializer < ActiveModel::Serializer
|
||||||
def rules_requested?
|
def rules_requested?
|
||||||
instance_options[:rules_requested]
|
instance_options[:rules_requested]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def filter_action
|
||||||
|
return :hide if object.half_warn_action?
|
||||||
|
|
||||||
|
object.filter_action
|
||||||
|
end
|
||||||
|
|
||||||
|
def filter_action_ex
|
||||||
|
object.filter_action
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -836,8 +836,9 @@ const startServer = async () => {
|
||||||
// custom_filters.action database column, it is an integer
|
// custom_filters.action database column, it is an integer
|
||||||
// representing a value in an enum defined by Ruby on Rails:
|
// representing a value in an enum defined by Ruby on Rails:
|
||||||
//
|
//
|
||||||
// enum { warn: 0, hide: 1 }
|
// enum { warn: 0, hide: 1, half_warn: 2 }
|
||||||
filter_action: ['warn', 'hide', 'half_warn'][filter.filter_action],
|
filter_action: ['warn', 'hide', 'half_warn'][Math.min(filter.filter_action, 1)],
|
||||||
|
filter_action_ex: ['warn', 'hide', 'half_warn'][filter.filter_action],
|
||||||
with_quote: filter.with_quote,
|
with_quote: filter.with_quote,
|
||||||
excludeFollows: filter.exclude_follows,
|
excludeFollows: filter.exclude_follows,
|
||||||
excludeLocalusers: filter.exclude_localusers,
|
excludeLocalusers: filter.exclude_localusers,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue