Skip to content

Commit

Permalink
2000: Minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
tuj committed Aug 14, 2024
1 parent 4d38df7 commit 36f00f4
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 16 deletions.
30 changes: 20 additions & 10 deletions src/components/util/schedule/schedule.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ function Schedule({ schedules, onChange }) {
const byMonthOptions = getByMonthOptions(t);
const [localSchedules, setLocalSchedules] = useState([]);
const [durationError, setDurationError] = useState(false);
const [activatedRepeatIds, setActivatedRepeatIds] = useState({});

useEffect(() => {
const newSchedules = schedules.map((schedule) =>
Expand Down Expand Up @@ -209,7 +210,7 @@ function Schedule({ schedules, onChange }) {
}

const isRepeatingEvent = (schedule) => {
return !(schedule.duration === 60 * 60 &&
return !(
schedule.freq === RRule.DAILY &&
schedule.count === 1 &&
schedule.until === undefined &&
Expand All @@ -221,11 +222,19 @@ function Schedule({ schedules, onChange }) {
schedule.byweekno === undefined);
}

const displayRepeat = (schedule) => {
return isRepeatingEvent(schedule) || activatedRepeatIds[schedule.id] === true;
}

const updateActivatedRepeats = (id, value) => {
const updated = {...activatedRepeatIds};
updated[id] = value;
setActivatedRepeatIds(updated);
}

const toggleRepeat = (schedule) => {
if ((isRepeatingEvent(schedule) || schedule.repeatActivated)) {
if (displayRepeat(schedule)) {
// Disable repeating schedule.
changeSchedule(schedule.id, 'repeatActivated', false);
changeSchedule(schedule.id, 'duration', 60 * 60);
changeSchedule(schedule.id, 'freq', RRule.DAILY);
changeSchedule(schedule.id, 'count', 1);
changeSchedule(schedule.id, 'interval', null);
Expand All @@ -235,10 +244,11 @@ function Schedule({ schedules, onChange }) {
changeSchedule(schedule.id, 'byweekday', null);
changeSchedule(schedule.id, 'bymonth', null);
changeSchedule(schedule.id, 'byweekno', null);
updateActivatedRepeats(schedule.id, false);
} else {
// Activate repeating schedule.
changeSchedule(schedule.id, 'repeatActivated', true);
changeSchedule(schedule.id, 'count', null);
updateActivatedRepeats(schedule.id, true);
}
}

Expand Down Expand Up @@ -307,13 +317,13 @@ function Schedule({ schedules, onChange }) {
onChange={() => toggleRepeat(schedule)}
name="enableRepeat"
type="checkbox"
value={(isRepeatingEvent(schedule) || schedule.repeatActivated)}
value={displayRepeat(schedule)}
label={t('schedule.enable-repeat')}
formGroupClasses="d-inline-block mb-2"
/>
<Tooltip id={'tooltip-enable-repeat'} content={t('schedule.enable-repeat-tooltip')}></Tooltip>

{(isRepeatingEvent(schedule) || schedule.repeatActivated) && (
{displayRepeat(schedule) && (
<>
<div className="row mt-2">
<div className={`col col-md-${!isNaN(schedule.byhour) ? "3" : "6"}`}>
Expand Down Expand Up @@ -367,7 +377,7 @@ function Schedule({ schedules, onChange }) {
<div className="col">
<FormGroup>
<label htmlFor="byweekday">{t("schedule.byweekday")}</label>
<Tooltip id={'tooltip-byweekday'} content={t('schedule.tooltip-byweekday')}></Tooltip>
<Tooltip id={'tooltip-byweekday'} content={t('schedule.byweekday-tooltip')}></Tooltip>
<MultiSelect
className="mt-2"
options={byWeekdayOptions}
Expand Down Expand Up @@ -404,7 +414,7 @@ function Schedule({ schedules, onChange }) {
<label htmlFor="bymonth" className="mb-2">
{t("schedule.bymonth")}
</label>
<Tooltip id={'tooltip-bymonth'} content={t('schedule.tooltip-bymonth')}></Tooltip>
<Tooltip id={'tooltip-bymonth'} content={t('schedule.bymonth-tooltip')}></Tooltip>
<MultiSelect
options={byMonthOptions}
value={getByMonthValue(schedule.bymonth)}
Expand Down Expand Up @@ -460,7 +470,7 @@ function Schedule({ schedules, onChange }) {
</>
)}
</div>
{(isRepeatingEvent(schedule) || schedule.repeatActivated) && (
{displayRepeat(schedule) && (
<div className="card-footer">
<div id="schedule_details" className="row">
<div className="mb-2">
Expand Down
13 changes: 7 additions & 6 deletions src/translations/da/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -789,17 +789,18 @@
"count": "Antal gentagelser",
"count-placeholder": "Ubegrænset",
"interval": "Interval",
"dtstart-tooltip": "Start definerer tidspunkt på dagen og første mulige dato for gentagelserne, hvis dette aktiveres.",
"end-tooltip": "Forskellen imellem start og slut definerer længden på en gentagelse.",
"repetition": "RRule",
"enable-repeat": "Gentag planlægning",
"enable-repeat-tooltip": "Når gentagelse aktiveres bestemmer reglerne man vælger, hvornår spillelisten bliver vist.",
"frequency-tooptip": "Hvordan planlægningen skal gentages?",
"end-tooltip": "Forskellen imellem start og slut definerer længden på en gentagelse.",
"dtstart-tooltip": "Start definerer tidspunkt på dagen og første mulige dato for gentagelserne, hvis dette aktiveres.",
"frequency-tooltip": "Hvordan planlægningen skal gentages?",
"interval-tooltip": "Skal der være spring imellem gentagelse? Afhænger af frekvensen. F.eks. hver 3 dag.",
"count-tooltip": "Hvor mange gange skal planlægningen gentages? Tom værdi betyder ubegrænset.",
"tooltip-byweekday": "På hvilke dage skal reglen gælde?",
"tooltip-bymonth": "I hvilke månender skal reglen gælde?",
"tooltip-byweekno": "Hvilket ugenummer skal reglen gælde for?",
"bytime-tooltip": "På hvilke dage skal reglen gælde?",
"byweekday-tooltip": "På hvilke dage skal reglen gælde?",
"bymonth-tooltip": "I hvilke månender skal reglen gælde?",
"byweekno-tooltip": "Hvilket ugenummer skal reglen gælde for?",
"until-tooltip": "Hvornår skal gentagelserne afsluttes? Dette tidspunkt påvirker starttidspunktet på en gentagelse, ikke sluttidspunktet.",
"helptext": "Når minimum én planlægning er tilføjet, bliver spillelisten kun vist i planlægningsintervallet."
},
Expand Down

0 comments on commit 36f00f4

Please sign in to comment.