mirror of
https://github.com/hanzoai/forum.git
synced 2026-09-30 21:51:19 +00:00
Enables our new eslint rules which enforce consistent i18n imports. For more info, see https://github.com/discourse/lint-configs/commit/0d58b40cd7d170a9f70bcef5c173f95eeb498298
80 lines
2.5 KiB
Plaintext
80 lines
2.5 KiB
Plaintext
import Component from "@glimmer/component";
|
|
import { htmlSafe } from "@ember/template";
|
|
import { i18n } from "discourse-i18n";
|
|
|
|
export default class PollResultsRankedChoiceComponent extends Component {
|
|
get rankedChoiceWinnerText() {
|
|
return htmlSafe(
|
|
i18n("poll.ranked_choice.winner", {
|
|
count: this.args.rankedChoiceOutcome?.round_activity?.length,
|
|
winner: this.args.rankedChoiceOutcome?.winning_candidate?.html,
|
|
})
|
|
);
|
|
}
|
|
|
|
get rankedChoiceTiedText() {
|
|
return i18n("poll.ranked_choice.tied", {
|
|
count: this.args.rankedChoiceOutcome?.round_activity?.length,
|
|
});
|
|
}
|
|
|
|
<template>
|
|
<h3 class="poll-results-ranked-choice-subtitle-rounds">
|
|
{{i18n "poll.ranked_choice.title.rounds"}}
|
|
</h3>
|
|
<table class="poll-results-ranked-choice">
|
|
<thead>
|
|
<tr>
|
|
<th>{{i18n "poll.ranked_choice.round"}}</th>
|
|
<th>{{i18n "poll.ranked_choice.majority"}}</th>
|
|
<th>{{i18n "poll.ranked_choice.eliminated"}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{#if @rankedChoiceOutcome}}
|
|
{{#each @rankedChoiceOutcome.round_activity as |round|}}
|
|
{{#if round.majority}}
|
|
<tr>
|
|
<td>{{round.round}}</td>
|
|
<td>{{htmlSafe round.majority.html}}</td>
|
|
<td>{{i18n "poll.ranked_choice.none"}}</td>
|
|
</tr>
|
|
{{else}}
|
|
<tr>
|
|
<td>{{round.round}}</td>
|
|
<td>{{i18n "poll.ranked_choice.none"}}</td>
|
|
<td>
|
|
{{#each round.eliminated as |eliminated|}}
|
|
{{htmlSafe eliminated.html}}
|
|
{{/each}}
|
|
</td>
|
|
</tr>
|
|
{{/if}}
|
|
{{/each}}
|
|
{{/if}}
|
|
</tbody>
|
|
</table>
|
|
<h3 class="poll-results-ranked-choice-subtitle-outcome">
|
|
{{i18n "poll.ranked_choice.title.outcome"}}
|
|
</h3>
|
|
{{#if @rankedChoiceOutcome}}
|
|
{{#if @rankedChoiceOutcome.tied}}
|
|
<span
|
|
class="poll-results-ranked-choice-info"
|
|
>{{this.rankedChoiceTiedText}}</span>
|
|
<ul class="poll-results-ranked-choice-tied-candidates">
|
|
{{#each @rankedChoiceOutcome.tied_candidates as |tied_candidate|}}
|
|
<li class="poll-results-ranked-choice-tied-candidate">{{htmlSafe
|
|
tied_candidate.html
|
|
}}</li>
|
|
{{/each}}
|
|
</ul>
|
|
{{else}}
|
|
<span
|
|
class="poll-results-ranked-choice-info"
|
|
>{{this.rankedChoiceWinnerText}}</span>
|
|
{{/if}}
|
|
{{/if}}
|
|
</template>
|
|
}
|