Skip to content

Commit 70a6a9c

Browse files
committed
Edit limits
1 parent 67b3412 commit 70a6a9c

File tree

5 files changed

+57
-47
lines changed

5 files changed

+57
-47
lines changed

src/assets/icons/edit.png

-1.64 KB
Binary file not shown.

src/assets/icons/edit.svg

Lines changed: 27 additions & 0 deletions
Loading

src/assets/icons/limit.png

-1.83 KB
Binary file not shown.

src/assets/icons/time.svg

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/components/Limits.vue

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
height="16"
1717
@click="deleteFromLimitList(limit.domain)"
1818
/>
19+
<img
20+
src="../assets/icons/edit.svg"
21+
height="16"
22+
@click="editItemFromLimitList(limit.domain, limit.time)"
23+
/>
1924
{{ limit.domain }}
2025
<p class="time-value">{{ getTimeForLimit(limit.time) }}</p>
2126
</div>
@@ -24,6 +29,7 @@
2429
<div class="limits-time-block mt-20">
2530
<input
2631
type="text"
32+
:disabled="isEdit"
2733
class="d-inline-block"
2834
placeholder="Enter website name..."
2935
v-model="newWebsiteForLimitList"
@@ -32,9 +38,9 @@
3238
<input
3339
type="button"
3440
class="d-inline-block small-btn"
35-
value="Add Website"
41+
:value="!isEdit ? 'Add Website' : 'Save'"
3642
:disabled="newWebsiteForLimitList == null || newWebsiteForLimitList == '' || time == null"
37-
@click="addToLimitList()"
43+
@click="isEdit ? editItem() : addToLimitList()"
3844
/>
3945
</div>
4046
</div>
@@ -54,7 +60,7 @@ import { StorageParams } from '../storage/storage-params';
5460
import { isDomainEquals } from '../utils/common';
5561
import { extractHostname } from '../compositions/extract-hostname';
5662
import { Restriction } from '../entity/restriction';
57-
import { convertSecondsToHHMM } from '../utils/converter';
63+
import { convertHHMMToSeconds, convertSecondsToHHMM } from '../utils/converter';
5864
5965
const notification = useNotification();
6066
@@ -66,6 +72,7 @@ const time = ref({
6672
minutes: 30,
6773
});
6874
const newWebsiteForLimitList = ref<string>();
75+
const isEdit = ref<boolean>();
6976
7077
onMounted(async () => {
7178
limitList.value = Object.values(
@@ -104,6 +111,26 @@ function deleteFromLimitList(url: string) {
104111
save(limitList.value);
105112
}
106113
114+
function editItemFromLimitList(url: string, timeForUrl: number) {
115+
isEdit.value = true;
116+
newWebsiteForLimitList.value = url;
117+
const timeObj = convertSecondsToHHMM(timeForUrl);
118+
time.value.hours = timeObj.hours;
119+
time.value.minutes = timeObj.minutes;
120+
}
121+
122+
function editItem() {
123+
const existingItem = limitList.value?.find(x =>
124+
isDomainEquals(extractHostname(x.domain), extractHostname(newWebsiteForLimitList.value!)),
125+
);
126+
if (existingItem != undefined) {
127+
existingItem.time = convertHHMMToSeconds(time.value.hours, time.value.minutes);
128+
save(limitList.value);
129+
newWebsiteForLimitList.value = '';
130+
isEdit.value = false;
131+
}
132+
}
133+
107134
async function save(value: any) {
108135
if (value != undefined) await settingsStorage.saveValue(StorageParams.RESTRICTION_LIST, value);
109136
}

0 commit comments

Comments
 (0)