diff --git a/ui/src/components/Repositories.svelte b/ui/src/components/Repositories.svelte new file mode 100644 index 0000000..190dc03 --- /dev/null +++ b/ui/src/components/Repositories.svelte @@ -0,0 +1,71 @@ + \ No newline at end of file diff --git a/ui/src/routes/WorkingHours.svelte b/ui/src/routes/WorkingHours.svelte index 15b7682..1820117 100644 --- a/ui/src/routes/WorkingHours.svelte +++ b/ui/src/routes/WorkingHours.svelte @@ -7,122 +7,41 @@ import xIcon from '@iconify-icons/oi/x'; import documentIcon from '@iconify-icons/oi/document'; let activeRecord = null; - let newRecord = false; params = { title: 'Einträge', records: [], isLoading: true } - const Records = { - 'browse': () => { - // noinspection JSUnresolvedVariable - fetch(env.API_URL + '/working-hours') - .then(res => { - if (!res.ok) { - throw new Error('Fail!'); - } - return res.json(); - }) - .then(data => { - Controller.cancelActiveRecord(); - params.records = data; - params.isLoading = false; - }) - .catch(err => { - params.isLoading = false; - console.log(err); - }); - }, - 'read': date => { - // noinspection JSUnresolvedVariable - fetch(env.API_URL + '/working-hours/' + date) - .then(res => { - if (!res.ok) { - throw new Error('Fail!'); - } - return res.json(); - }) - .then(data => { - activeRecord = data; - if (date === null) { - Controller.listRecords(); - } - }) - .catch(err => { - console.log(err); - }); - }, - 'add': async record => { - console.log(record); - // noinspection JSUnresolvedVariable - await fetch(env.API_URL + '/working-hours', { - method: 'POST', - mode: 'cors', - cache: 'no-cache', - credentials: 'omit', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(record) - }) - .then(res => { - if (!res.ok) { - throw new Error('Fail!'); - } - }) - .then(() => { - Controller.listRecords(); - }) - .catch(err => { - console.log(err); - }); - }, - 'update': async (date, record) => { - console.log(record); - // noinspection JSUnresolvedVariable - await fetch(env.API_URL + '/working-hours/' + date, { - method: 'PUT', - mode: 'cors', - cache: 'no-cache', - credentials: 'omit', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(record) - }) - .then(res => { - if (!res.ok) { - throw new Error('Fail!'); - } - }) - .then(() => { - Controller.listRecords(); - }) - .catch(err => { - console.log(err); - }); - } - }; const Controller = { 'listRecords': () => { - Controller.cancelActiveRecord(); - Records.browse(); + WorkingHoursRepository.browse().then(data => { + activeRecord = null; + params.records = data; + params.isLoading = false; + }) }, 'newRecord': () => { - activeRecord = {workingTime: '00:00:00'}; - newRecord = true; + activeRecord = {workingTime: '00:00:00', workingDay: null}; }, 'saveRecord': () => { - if (newRecord === true) { - Records.add(activeRecord); + if (activeRecord.workingDay === null) { + WorkingHoursRepository.add(activeRecord).then(() => { + Controller.listRecords() + }); } else { - Records.update(activeRecord.workingDay, activeRecord); + WorkingHoursRepository.update(activeRecord.workingDay, activeRecord).then(() => { + Controller.listRecords() + }) } }, - 'selectActiveRecord': record => Records.read(record.workingDay), + 'selectActiveRecord': record => WorkingHoursRepository.read(record.workingDay).then(data => { + activeRecord = data; + if (activeRecord === null) { + Controller.listRecords() + } + }), 'cancelActiveRecord': () => { activeRecord = null; - newRecord = false; } }; const initSite = () => {