Skip to content
Commits on Source (12)
......@@ -11,7 +11,7 @@ const sendnotif = ({ groups, title, pollId, content, internalLink }) => {
if (internalLink) {
const groupSlug = Groups.findOne(groups[0]).slug; // Take the first groupId to make the link
if (groupSlug) {
link = `${Meteor.settings.public.laboiteHost}/groups/${groupSlug}/events`;
link = `${Meteor.settings.public.laboiteHost}/groups/${groupSlug}/services/events`;
}
}
axios
......
......@@ -8,7 +8,7 @@
{#each options as option}
<label class="radio-container">
{option.label}
<input type="radio" {disabled} bind:group={value} value={option.value} />
<input type="radio" {disabled} bind:group={value} value={option.value} on:click={action} />
<span class="checkmark" class:disabled />
</label>
{/each}
......@@ -63,7 +63,7 @@
/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
content: "";
content: '';
position: absolute;
display: none;
}
......
......@@ -46,6 +46,11 @@
setState({ initialTimeZone: undefined, newTimeZone: undefined }); // Delete initialTimeZone and newTimeZone keys from global state
};
const softResetPollEdition = () => {
newPollStore.set({ ...$newPollStore, dates: [], times: [], meetingSlots: [], duration: '00:30', allDay: false });
setState({ initialTimeZone: undefined, newTimeZone: undefined }); // Delete initialTimeZone and newTimeZone keys from global state
};
const handleChange = (e) => {
// Called at mount, even if no change with e = undefined
if (e) {
......@@ -175,45 +180,47 @@
/>
</div>
</div>
<!-- event duration -->
<div class="column is-full">
<label class="label">{$_('pages.new_poll_3.duration')}</label>
<div class="field has-addons">
<div class="control">
<div class="select is-fullwidth">
<select
bind:value={$newPollStore.duration}
placeholder={$_('pages.new_poll_3.duration')}
disabled={$newPollStore.allDay}
on:change={handleChangeDuration}
>
{#each DURATIONS as duration}
<option value={duration}>
{duration}
</option>
{/each}
</select>
{#if $newPollStore.type === POLLS_TYPES.POLL}
<!-- event duration -->
<div class="column is-full">
<label class="label">{$_('pages.new_poll_3.duration')}</label>
<div class="field has-addons">
<div class="control">
<div class="select is-fullwidth">
<select
bind:value={$newPollStore.duration}
placeholder={$_('pages.new_poll_3.duration')}
disabled={$newPollStore.allDay}
on:change={handleChangeDuration}
>
{#each DURATIONS as duration}
<option value={duration}>
{duration}
</option>
{/each}
</select>
</div>
</div>
</div>
<div class="control">
<div class="button is-light">
{$_('pages.new_poll_3.hour')}
<div class="control">
<div class="button is-light">
{$_('pages.new_poll_3.hour')}
</div>
</div>
</div>
</div>
</div>
<!-- all day checkBox -->
<div class="column is-full">
<div class="field">
<div class="control">
<Checkbox
bind:checked={$newPollStore.allDay}
label={$_('pages.new_poll_3.allDay_input')}
action={handleChangeDuration}
/>
<!-- all day checkBox -->
<div class="column is-full">
<div class="field">
<div class="control">
<Checkbox
bind:checked={$newPollStore.allDay}
label={$_('pages.new_poll_3.allDay_input')}
action={handleChangeDuration}
/>
</div>
</div>
</div>
</div>
{/if}
</div>
<!-- Second column -->
<div class="column is-half">
......@@ -225,6 +232,7 @@
label: $_(`types.${POLLS_TYPES[k]}`),
value: POLLS_TYPES[k],
}))}
action={softResetPollEdition}
bind:value={$newPollStore.type}
/>
</div>
......@@ -275,13 +283,15 @@
/>
</div>
</div>
<!-- Timezone -->
<div class="field">
<div class="control">
<label class="label">{$_('pages.new_poll_1.your_timezone')}</label>
<AutoComplete items={listeTZ.sort()} selectedItem={currentTZ} onChange={handleChange} />
{#if $newPollStore.type === POLLS_TYPES.POLL}
<!-- Timezone -->
<div class="field">
<div class="control">
<label class="label">{$_('pages.new_poll_1.your_timezone')}</label>
<AutoComplete items={listeTZ.sort()} selectedItem={currentTZ} onChange={handleChange} />
</div>
</div>
</div>
{/if}
</div>
</div>
<!-- Form footer with buttons -->
......
......@@ -40,7 +40,7 @@
// check that at least title and 1 date or meetingslots are defined
$: titleOk = !!$newPollStore.title;
$: rangeOk = $newPollStore.public && !!selectedGroups;
$: rangeOk = $newPollStore.public || $selectedGroups.length > 0;
dateOk =
$newPollStore.type === POLLS_TYPES.POLL ? $newPollStore.dates.length > 0 : $newPollStore.meetingSlots.length > 0;
// TODO: check that there are no duplicates in time slots
......@@ -70,7 +70,7 @@
if (!rangeOk) toast.push($_('pages.new_poll_4.missingRange'), toasts.error);
if (!dateOk) toast.push($_('pages.new_poll_4.missingDate'), toasts.error);
// if (!slotsOk) toast.push($_('pages.new_poll_4.duplicateSlots'), toasts.error);
if (titleOk && dateOk) {
if (titleOk && dateOk && rangeOk) {
const newPollStoreDates = $newPollStore.dates
.sort((a, b) => a - b)
.map((d) => convertDateTZ(d, $state.newTimeZone));
......@@ -174,16 +174,18 @@
</div>
</div>
</div>
<div class="column is-half">
<div class="field">
<div class="control">
<label class="label title is-4">
{$_('pages.new_poll_3.allDay_input')}
</label>
{$_($newPollStore.allDay ? 'pages.new_poll.yes' : 'pages.new_poll.no')}
{#if $newPollStore.type === POLLS_TYPES.POLL}
<div class="column is-half">
<div class="field">
<div class="control">
<label class="label title is-4">
{$_('pages.new_poll_3.allDay_input')}
</label>
{$_($newPollStore.allDay ? 'pages.new_poll.yes' : 'pages.new_poll.no')}
</div>
</div>
</div>
</div>
{/if}
<div class="column is-half">
<div class="field">
<div class="control">
......@@ -211,20 +213,23 @@
<div class="column is-full">
<Divider />
</div>
<div class="column is-full">
<div class="title is-4">{$_('pages.new_poll_2.selected_dates')}{' '}pour {$state.newTimeZone}</div>
{#if $state.newTimeZone !== $state.initialTimeZone}
<div class="box is-full">
<Switch
bind:value={timeZoneToShow}
label={`${$_('pages.new_poll_4.timezone_input')} :`}
options={[
{ label: $state.newTimeZone, value: 'UTC' },
{ label: $state.initialTimeZone, value: $state.initialTimeZone },
]}
/>
</div>
{#if $newPollStore.type === POLLS_TYPES.POLL}
<div class="title is-4">{$_('pages.new_poll_2.selected_dates')}{' '}pour {$state.newTimeZone}</div>
{#if $state.newTimeZone !== $state.initialTimeZone && $newPollStore.dates.length > 0}
<div class="box is-full">
<Switch
bind:value={timeZoneToShow}
label={`${$_('pages.new_poll_4.timezone_input')} :`}
options={[
{ label: $state.newTimeZone, value: 'UTC' },
{ label: $state.initialTimeZone, value: $state.initialTimeZone },
]}
/>
</div>
{/if}
{:else}
<div class="title is-4">{$_('pages.new_poll_2.selected_dates')}</div>
{/if}
</div>
{#if $newPollStore.type === POLLS_TYPES.MEETING}
......
{
"name": "sondage",
"version": "1.11.0-testing.1",
"version": "1.11.0-testing.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "sondage",
"version": "1.11.0-testing.1",
"version": "1.11.0-testing.2",
"license": "EUPL-1.2",
"dependencies": {
"@babel/runtime": "^7.23.9",
......
{
"name": "sondage",
"private": true,
"version": "1.11.0-testing.1",
"version": "1.11.0-testing.2",
"license": "EUPL-1.2",
"description": "Online polls and meetings",
"author": "EOLE/PCLL <team@eole.education> - DINUM",
......