Как отключить всплывающее окно входящей почты

Как сделать этот значок электронной почты некликабельным?

image

Как отключить эту модель входящей электронной почты?

И как отключить это

Сегодня я узнал, что этот значок кликабелен.

Ха-ха, да, это действительно раздражает :laughing:

Кстати, с днём рождения! :grin: :star2:

Подозреваю, что это доступно только сотрудникам. Я только что проверил на форуме, где у меня нет прав сотрудника, и я не могу нажать на иконку (по крайней мере, на телефоне).

Спасибо! (Хотя это частично из-за разницы во времени: у меня здесь день рождения ещё не наступил :upside_down_face:)

Мне нужно это увидеть, спасибо, что сообщили об этом. :grinning:

Здесь рядом с вашим именем отображается иконка торта, ха-ха. В любом случае, заранее с днём рождения, кажется, я первый, кто это говорит :joy:

Ага, это видно только администраторам, так что проблем нет.

В любом случае, если кто-то, как и я, хочет отключить это, но не может найти способ, вот что я сделал с помощью GPT, и это отлично сработало :slight_smile:

<script type="text/discourse-plugin" version="0.8">
  api.onPageChange((url, title) => {
    // Подождите полной загрузки страницы
    Ember.run.scheduleOnce('afterRender', function() {
      // Найдите и удалите все элементы details с классом "elided"
      var elidedDetailsList = document.querySelectorAll('details.elided');
      elidedDetailsList.forEach(function(elidedDetails) {
        elidedDetails.remove();
      });
    });
  });
</script>

Привет, kynic,

onPageChange может быть слишком широким для использования (и ненадежным, если вы загружаете или обновляете посты).
Вместо этого можно использовать decorateCookedElement. Этот метод вызывается для каждого обработанного элемента поста.

Кроме того, вот способ отключения индикатора электронной почты. Это просто хак, чтобы не включать HTML. Если вам интересно, вы можете посмотреть исходный код здесь.

<script type="text/discourse-plugin" version="0.8">
    api.reopenWidget("post-meta-data", {
        html(attrs) {
            if (!attrs.via_email) {
                return this._super(attrs);
            }
          
            // Не генерировать виджет "post-email-indicator".
            attrs.via_email = false;
            const html = this._super(attrs);
            attrs.via_email = true;
          
            return html;
        }
    })

    api.decorateCookedElement((element, helper) => {
        if (helper?.getModel().via_email) {
            element.querySelector('details.elided').remove();
        }
        
    }, { onlyStream: true });
</script>

Также можно использовать только CSS, чтобы скрыть их.

.post-info.via-email,
.cooked details.elided {
    display: none;
}

Спасибо :grinning:

Я убрал часть с метаданными поста, так как хочу, чтобы иконка электронной почты отображалась. :slight_smile:

Вот что я использую сейчас, чтобы удалить содержимое и скрыть его через CSS на всякий случай.

<script type="text/discourse-plugin" version="0.8">
    api.decorateCookedElement((element, helper) => {
        if (helper?.getModel().via_email) {
            element.querySelector('details.elided').remove();
        }
        
    }, { onlyStream: true });
</script>

.cooked details.elided {
    display: none;
}

Спасибо за этот код :rocket: :blush:

Всегда пожалуйста :slight_smile:

Также вы правы — только сотрудники могут нажать на иконку! Моя ошибка. :smile:

Отличная работа :slight_smile: