Pulsanti piè di pagina per elementi elenco argomenti - contenuto della cronologia

Hi! I’m working on “timeline” content concept community with discourse.

Both buttons “Reply to” and “Share” are for test. I have created a component like topic-footer-buttons.hbs (#ember) with some changes

<div class="topic-list-item-footer-buttons">
  {{#each inlineButtons as |button|}}
    {{d-button
      class=(concat "btn-default topic-list-item-footer-buttons " button.classNames)
      action=button.action
      icon=button.icon
      translatedLabel=button.label
      translatedTitle=button.title
      translatedAriaLabel=button.ariaLabel
      disabled=button.disabled}}
  {{/each}}
</div>

If I insert this component in topic-list.hbs below topic-list-item template, it works! But It’s is bad for future Discourse version upgrades or plugins implementation. So I’m trying to manipulate over Admin → Customize → Common → Header (HTML), changing topic-list-item.raw

<script type="text/x-handlebars" data-template-name="list/topic-list-item.raw">

But another problem appeared, I’m not getting to call component from text/x-handlebars template, is there some way to call my component of footer buttons inside topic-list-item.raw template ? Like a helper or widget which could call component inside ?

I would appreciate your help so that I can eliminate my doubts once and for all.

3 Mi Piace

The way that I’ve dealt with this in the past is by packaging the buttons in a html helper, which will render the raw html in the raw templates, which you can then insert via a raw plugin outlet. Here’s an example:

https://github.com/paviliondev/discourse-topic-previews/blob/master/assets/javascripts/discourse/helpers/preview-helpers.js.es6#L8

The button click is handled in the topic-list-item component, e.g.

https://github.com/paviliondev/discourse-topic-previews/blob/master/assets/javascripts/discourse/initializers/preview-edits.js.es6#L332

@merefield May also have some thoughts :slight_smile:


Also, you’ll probably want to use the theme javascripts folder structure instead of adding scripts to the header.html. See

4 Mi Piace

Ho notato che l’ultimo commit a preview-edits ha rimosso quell’evento click FIX: remove topic list item click event to prevent transition conflict · merefield/discourse-topic-previews-sidecar@6064a59 · GitHub esiste ancora un modo per far sì che il click del pulsante venga gestito dal componente topic-list-item?

Sì, @angus, a mio avviso non è più consigliabile: stava causando a Ember un piccolo infarto, quindi l’ho rimosso da TLP. Quando hai due eventi di click simultanei, ad esempio cliccando sul titolo dell’argomento che a sua volta contiene un link, il browser finisce per eseguire un aggiornamento completo della pagina, il che chiaramente non è ciò che desideri in un OPA. Questo problema è stato segnalato da diversi utenti.

Per ora in TLP devi cliccare sul Titolo, sull’Estratto o sull’Anteprima.

Devi assicurarti che ci sia sempre una sola area cliccabile: aree sovrapposte causeranno problemi.

1 Mi Piace