271 lines
8.3 KiB
Handlebars
271 lines
8.3 KiB
Handlebars
<DModal
|
|
@title={{i18n
|
|
(concat
|
|
"discourse_post_event.builder_modal."
|
|
(if @model.event.id "update_event_title" "create_event_title")
|
|
)
|
|
}}
|
|
class="post-event-builder-modal"
|
|
@closeModal={{@closeModal}}
|
|
@flash={{this.flash}}
|
|
>
|
|
<:body>
|
|
<ConditionalLoadingSection @isLoading={{this.isSaving}}>
|
|
<form>
|
|
<DateTimeInputRange
|
|
@from={{this.startsAt}}
|
|
@to={{this.endsAt}}
|
|
@timezone={{@model.event.timezone}}
|
|
@onChange={{this.onChangeDates}}
|
|
/>
|
|
|
|
<EventField
|
|
class="name"
|
|
@label="discourse_post_event.builder_modal.name.label"
|
|
>
|
|
<Input
|
|
@value={{@model.event.name}}
|
|
placeholder={{i18n
|
|
"discourse_post_event.builder_modal.name.placeholder"
|
|
}}
|
|
/>
|
|
</EventField>
|
|
|
|
<EventField
|
|
class="url"
|
|
@label="discourse_post_event.builder_modal.url.label"
|
|
>
|
|
<Input
|
|
@value={{@model.event.url}}
|
|
placeholder={{i18n
|
|
"discourse_post_event.builder_modal.url.placeholder"
|
|
}}
|
|
/>
|
|
</EventField>
|
|
|
|
<EventField
|
|
class="timezone"
|
|
@label="discourse_post_event.builder_modal.timezone.label"
|
|
>
|
|
<TimezoneInput
|
|
@value={{@model.event.timezone}}
|
|
@onChange={{this.setNewTimezone}}
|
|
class="input-xxlarge"
|
|
@none="discourse_post_event.builder_modal.timezone.remove_timezone"
|
|
/>
|
|
</EventField>
|
|
|
|
<EventField @label="discourse_post_event.builder_modal.status.label">
|
|
<label class="radio-label">
|
|
<RadioButton
|
|
@name="status"
|
|
@value="public"
|
|
@selection={{@model.event.status}}
|
|
@onChange={{this.onChangeStatus}}
|
|
/>
|
|
<span class="message">
|
|
<span class="title">
|
|
{{i18n "discourse_post_event.models.event.status.public.title"}}
|
|
</span>
|
|
<span class="description">
|
|
{{i18n
|
|
"discourse_post_event.models.event.status.public.description"
|
|
}}
|
|
</span>
|
|
</span>
|
|
</label>
|
|
<label class="radio-label">
|
|
<RadioButton
|
|
@name="status"
|
|
@value="private"
|
|
@selection={{@model.event.status}}
|
|
@onChange={{this.onChangeStatus}}
|
|
/>
|
|
<span class="message">
|
|
<span class="title">
|
|
{{i18n
|
|
"discourse_post_event.models.event.status.private.title"
|
|
}}
|
|
</span>
|
|
<span class="description">
|
|
{{i18n
|
|
"discourse_post_event.models.event.status.private.description"
|
|
}}
|
|
</span>
|
|
</span>
|
|
</label>
|
|
<label class="radio-label">
|
|
<RadioButton
|
|
@name="status"
|
|
@value="standalone"
|
|
@selection={{@model.event.status}}
|
|
@onChange={{this.onChangeStatus}}
|
|
/>
|
|
<span class="message">
|
|
<span class="title">
|
|
{{i18n
|
|
"discourse_post_event.models.event.status.standalone.title"
|
|
}}
|
|
</span>
|
|
<span class="description">
|
|
{{i18n
|
|
"discourse_post_event.models.event.status.standalone.description"
|
|
}}
|
|
</span>
|
|
</span>
|
|
</label>
|
|
</EventField>
|
|
|
|
<EventField
|
|
@enabled={{eq @model.event.status "private"}}
|
|
@label="discourse_post_event.builder_modal.invitees.label"
|
|
>
|
|
<GroupSelector
|
|
@fullWidthWrap={{true}}
|
|
@groupFinder={{this.groupFinder}}
|
|
@groupNames={{@model.event.raw_invitees}}
|
|
@onChangeCallback={{this.setRawInvitees}}
|
|
@placeholderKey="topic.invite_private.group_name"
|
|
/>
|
|
</EventField>
|
|
|
|
<EventField
|
|
class="reminders"
|
|
@label="discourse_post_event.builder_modal.reminders.label"
|
|
>
|
|
<div class="reminders-list">
|
|
{{#each @model.event.reminders as |reminder|}}
|
|
<div class="reminder-item">
|
|
<ComboBox
|
|
class="reminder-type"
|
|
@value={{reminder.type}}
|
|
@nameProperty="name"
|
|
@valueProperty="value"
|
|
@content={{this.reminderTypes}}
|
|
/>
|
|
|
|
<Input
|
|
class="reminder-value"
|
|
min={{0}}
|
|
@value={{reminder.value}}
|
|
placeholder={{i18n
|
|
"discourse_post_event.builder_modal.name.placeholder"
|
|
}}
|
|
/>
|
|
|
|
<ComboBox
|
|
class="reminder-unit"
|
|
@value={{reminder.unit}}
|
|
@nameProperty="name"
|
|
@valueProperty="value"
|
|
@content={{this.reminderUnits}}
|
|
/>
|
|
|
|
<ComboBox
|
|
class="reminder-period"
|
|
@value={{reminder.period}}
|
|
@nameProperty="name"
|
|
@valueProperty="value"
|
|
@content={{this.reminderPeriods}}
|
|
/>
|
|
|
|
<DButton
|
|
class="remove-reminder"
|
|
@icon="times"
|
|
@action={{fn @model.event.removeReminder reminder}}
|
|
/>
|
|
|
|
</div>
|
|
{{/each}}
|
|
</div>
|
|
|
|
<DButton
|
|
class="add-reminder"
|
|
@disabled={{this.addReminderDisabled}}
|
|
@icon="plus"
|
|
@label="discourse_post_event.builder_modal.add_reminder"
|
|
@action={{@model.event.addReminder}}
|
|
/>
|
|
</EventField>
|
|
|
|
<EventField
|
|
class="recurrence"
|
|
@label="discourse_post_event.builder_modal.recurrence.label"
|
|
>
|
|
<ComboBox
|
|
class="available-recurrences"
|
|
@value={{@model.event.recurrence}}
|
|
@content={{this.availableRecurrences}}
|
|
@options={{hash
|
|
none="discourse_post_event.builder_modal.recurrence.none"
|
|
}}
|
|
/>
|
|
</EventField>
|
|
|
|
<EventField
|
|
class="minimal-event"
|
|
@label="discourse_post_event.builder_modal.minimal.label"
|
|
>
|
|
<label class="checkbox-label">
|
|
<Input @type="checkbox" @checked={{@model.event.minimal}} />
|
|
<span class="message">
|
|
{{i18n
|
|
"discourse_post_event.builder_modal.minimal.checkbox_label"
|
|
}}
|
|
</span>
|
|
</label>
|
|
</EventField>
|
|
|
|
{{#if this.allowedCustomFields.length}}
|
|
<EventField
|
|
@label="discourse_post_event.builder_modal.custom_fields.label"
|
|
>
|
|
<p class="event-field-description">
|
|
{{i18n
|
|
"discourse_post_event.builder_modal.custom_fields.description"
|
|
}}
|
|
</p>
|
|
{{#each this.allowedCustomFields as |allowedCustomField|}}
|
|
<span class="label custom-field-label">
|
|
{{allowedCustomField}}
|
|
</span>
|
|
<Input
|
|
class="custom-field-input"
|
|
@value={{readonly
|
|
(get @model.event.custom_fields allowedCustomField)
|
|
}}
|
|
placeholder={{i18n
|
|
"discourse_post_event.builder_modal.custom_fields.placeholder"
|
|
}}
|
|
{{on "input" (fn this.setCustomField allowedCustomField)}}
|
|
/>
|
|
{{/each}}
|
|
</EventField>
|
|
{{/if}}
|
|
</form>
|
|
</ConditionalLoadingSection>
|
|
</:body>
|
|
<:footer>
|
|
{{#if @model.event.id}}
|
|
<DButton
|
|
class="btn-primary"
|
|
@label="discourse_post_event.builder_modal.update"
|
|
@icon="calendar-day"
|
|
@action={{this.updateEvent}}
|
|
/>
|
|
|
|
<DButton
|
|
@icon="trash-alt"
|
|
class="btn-danger"
|
|
@action={{this.destroyPostEvent}}
|
|
/>
|
|
{{else}}
|
|
<DButton
|
|
class="btn-primary"
|
|
@label="discourse_post_event.builder_modal.create"
|
|
@icon="calendar-day"
|
|
@action={{this.createEvent}}
|
|
/>
|
|
{{/if}}
|
|
</:footer>
|
|
</DModal> |