Re-lands #16119 and #17298 * Update eslint-config-discourse * Update linting workflow * Prettier-ignore stuff * Update template-lint config * Auto-fix template issues * Fix various template issues Mostly incorrect attributes and unused templates * Prettier js files * Fix template auto-fix regressions * Small css tweak Co-authored-by: Peter Wagenet <peter.wagenet@gmail.com>
130 lines
5.6 KiB
Handlebars
130 lines
5.6 KiB
Handlebars
<DModalBody @title="poll.ui_builder.title" @class="poll-ui-builder">
|
|
<div class="input-group poll-type">
|
|
<a href {{action (mut this.pollType) "regular"}} class="poll-type-value {{if this.isRegular "active"}}">
|
|
{{i18n "poll.ui_builder.poll_type.regular"}}
|
|
</a>
|
|
|
|
<a href {{action (mut this.pollType) "multiple"}} class="poll-type-value {{if this.isMultiple "active"}}">
|
|
{{i18n "poll.ui_builder.poll_type.multiple"}}
|
|
</a>
|
|
|
|
{{#if this.showNumber}}
|
|
<a href {{action (mut this.pollType) "number"}} class="poll-type-value {{if this.isNumber "active"}}">
|
|
{{i18n "poll.ui_builder.poll_type.number"}}
|
|
</a>
|
|
{{/if}}
|
|
</div>
|
|
|
|
{{#if this.showAdvanced}}
|
|
<div class="input-group poll-title">
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.poll_title.label"}}</label>
|
|
<Input @value={{this.pollTitle}} />
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#unless this.isNumber}}
|
|
<div class="poll-options">
|
|
{{#if this.showAdvanced}}
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.poll_options.label"}}</label>
|
|
<Textarea @value={{this.pollOptionsText}} {{on "input" (action "onOptionsTextChange")}} />
|
|
{{#if this.showMinNumOfOptionsValidation}}
|
|
{{#unless this.minNumOfOptionsValidation.ok}}
|
|
<InputTip @validation={{this.minNumOfOptionsValidation}} />
|
|
{{/unless}}
|
|
{{/if}}
|
|
{{else}}
|
|
{{#each this.pollOptions as |option|}}
|
|
<div class="input-group poll-option-value">
|
|
<Input @value={{option.value}} @enter={{action "addOption" option}} />
|
|
{{#if this.canRemoveOption}}
|
|
<DButton @icon="trash-alt" @action={{action "removeOption" option}} />
|
|
{{/if}}
|
|
</div>
|
|
{{/each}}
|
|
|
|
<div class="poll-option-controls">
|
|
<DButton @class="btn-default" @icon="plus" @label="poll.ui_builder.poll_options.add" @action={{action "addOption" this.pollOptions.lastObject}} />
|
|
{{#if (and this.showMinNumOfOptionsValidation (not this.minNumOfOptionsValidation.ok))}}
|
|
<InputTip @validation={{this.minNumOfOptionsValidation}} />
|
|
{{/if}}
|
|
</div>
|
|
{{/if}}
|
|
</div>
|
|
{{/unless}}
|
|
|
|
{{#unless this.isRegular}}
|
|
<div class="options">
|
|
<div class="input-group poll-number">
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.poll_config.min"}}</label>
|
|
<Input @type="number" @value={{this.pollMin}} class="poll-options-min" min="1" />
|
|
</div>
|
|
|
|
<div class="input-group poll-number">
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.poll_config.max"}}</label>
|
|
<Input @type="number" @value={{this.pollMax}} class="poll-options-max" min="1" />
|
|
</div>
|
|
|
|
{{#if this.isNumber}}
|
|
<div class="input-group poll-number">
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.poll_config.step"}}</label>
|
|
<Input @type="number" @value={{this.pollStep}} min="1" class="poll-options-step" />
|
|
</div>
|
|
{{/if}}
|
|
</div>
|
|
|
|
{{#unless this.minMaxValueValidation.ok}}
|
|
<InputTip @validation={{this.minMaxValueValidation}} />
|
|
{{/unless}}
|
|
{{/unless}}
|
|
|
|
{{#if this.showAdvanced}}
|
|
<div class="input-group poll-allowed-groups">
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.poll_groups.label"}}</label>
|
|
<GroupChooser @content={{this.siteGroups}} @value={{this.pollGroups}} @onChange={{action (mut this.pollGroups)}} @labelProperty="name" @valueProperty="name" />
|
|
</div>
|
|
|
|
<div class="input-group poll-date">
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.automatic_close.label"}}</label>
|
|
<DateTimeInput @date={{this.pollAutoClose}} @onChange={{action (mut this.pollAutoClose)}} @clearable={{true}} @useGlobalPickerContainer={{true}} />
|
|
</div>
|
|
|
|
<div class="input-group poll-select">
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.poll_result.label"}}</label>
|
|
<ComboBox @content={{this.pollResults}} @value={{this.pollResult}} @class="poll-result" @valueProperty="value" @onChange={{action (mut this.pollResult)}} />
|
|
</div>
|
|
|
|
{{#unless this.isNumber}}
|
|
<div class="input-group poll-select column">
|
|
<label class="input-group-label">{{i18n "poll.ui_builder.poll_chart_type.label"}}</label>
|
|
|
|
<div class="radio-group">
|
|
<RadioButton @id="poll-chart-type-bar" @name="poll-chart-type" @value="bar" @selection={{this.chartType}} />
|
|
<label for="poll-chart-type-bar">{{d-icon "chart-bar"}} {{i18n "poll.ui_builder.poll_chart_type.bar"}}</label>
|
|
</div>
|
|
|
|
<div class="radio-group">
|
|
<RadioButton @id="poll-chart-type-pie" @name="poll-chart-type" @value="pie" @selection={{this.chartType}} />
|
|
<label for="poll-chart-type-pie">{{d-icon "chart-pie"}} {{i18n "poll.ui_builder.poll_chart_type.pie"}}</label>
|
|
</div>
|
|
</div>
|
|
{{/unless}}
|
|
|
|
{{#unless this.isPie}}
|
|
<div class="input-group poll-checkbox column">
|
|
<label>
|
|
<Input @type="checkbox" @checked={{this.publicPoll}} />
|
|
{{i18n "poll.ui_builder.poll_public.label"}}
|
|
</label>
|
|
</div>
|
|
{{/unless}}
|
|
{{/if}}
|
|
</DModalBody>
|
|
|
|
<div class="modal-footer">
|
|
<DButton @action={{action "insertPoll"}} @icon="chart-bar" @class="btn-primary" @label="poll.ui_builder.insert" @disabled={{this.disableInsert}} />
|
|
|
|
<DButton @label="cancel" @class="btn-flat" @action={{route-action "closeModal"}} />
|
|
|
|
<DButton @action={{action "toggleAdvanced"}} @class="btn-default show-advanced" @icon="cog" @title={{if this.showAdvanced "poll.ui_builder.hide_advanced" "poll.ui_builder.show_advanced"}} />
|
|
</div>
|