Skip to content

Commit 591b2a1

Browse files
committed
Show changelog setting
1 parent 87f50e6 commit 591b2a1

File tree

6 files changed

+52
-7
lines changed

6 files changed

+52
-7
lines changed

src/_locales/de/messages.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,10 +289,14 @@
289289
"close": {
290290
"message": "Schließen"
291291
},
292-
"useExtension": {
292+
"useExtension": {
293293
"message": "Verwenden Sie die Erweiterung"
294294
},
295295
"next": {
296296
"message": "Weiter"
297+
},
298+
"showChangelog": {
299+
"message": "Änderungsliste anzeigen",
300+
"description": "Zeigen Sie die Liste der Änderungen nach dem Aktualisieren der Erweiterung an"
297301
}
298302
}

src/_locales/en/messages.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,5 +294,9 @@
294294
},
295295
"next": {
296296
"message": "Next"
297+
},
298+
"showChangelog": {
299+
"message": "Show changelog",
300+
"description": "Show the list of changes after updating extension"
297301
}
298302
}

src/_locales/ru/messages.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,5 +294,9 @@
294294
},
295295
"next": {
296296
"message": "Продолжить"
297+
},
298+
"showChangelog": {
299+
"message": "Показывать список изменений",
300+
"description": "Показывать список изменений после обновления расширения"
297301
}
298302
}

src/background.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,6 @@ self.onerror = err => {
1313
console.error('Unhandled error:', err);
1414
};
1515

16-
Browser.runtime.onInstalled.addListener(async details => {
17-
logger.log('Extension installed:', details);
18-
const settingsStorage = injecStorage();
19-
await settingsStorage.saveValue(StorageParams.INSTALL_DATE, todayLocalDate());
20-
});
21-
2216
Browser.storage.onChanged.addListener((changes, namespace) => {
2317
for (var key in changes) {
2418
if (Object.values(StorageParams).includes(key as StorageParams))
@@ -30,12 +24,26 @@ Browser.runtime.setUninstallURL('https://webtracker.online/goodbye.html');
3024

3125
Browser.runtime.onInstalled.addListener(async details => {
3226
if (details.reason == 'install') {
27+
logger.log('Extension installed:', details);
28+
const settingsStorage = injecStorage();
29+
await settingsStorage.saveValue(StorageParams.INSTALL_DATE, todayLocalDate());
30+
3331
const initialPageUrl = Browser.runtime.getURL('src/welcome.html');
3432
await Browser.tabs.create({
3533
url: initialPageUrl,
3634
active: true,
3735
});
3836
}
37+
if (details.reason == 'update') {
38+
const showChangelog = (await Settings.getInstance().getSetting(
39+
StorageParams.SHOW_CHANGELOG,
40+
)) as boolean;
41+
if (showChangelog)
42+
await Browser.tabs.create({
43+
url: 'https://webtracker.online/releasenotes.html',
44+
active: true,
45+
});
46+
}
3947
});
4048

4149
Browser.runtime.onStartup.addListener(() => {

src/components/GeneralSettings.vue

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,21 @@
9999
/>
100100
<input type="button" class="ml-10" :value="t('restore.message')" @click="restore()" />
101101
</div>
102+
<div class="settings-item">
103+
<label class="setting-header">
104+
<input
105+
type="checkbox"
106+
class="filled-in"
107+
id="showChangelog"
108+
v-model="showChangelog"
109+
@change="onChange(StorageParams.SHOW_CHANGELOG, $event.target)"
110+
/>
111+
<span>{{ t('showChangelog.message') }}</span>
112+
<p class="description">
113+
{{ t('showChangelog.description') }}
114+
</p>
115+
</label>
116+
</div>
102117
<div id="removeAllConfirmModal" class="modal" v-if="needToConfirmDeleteAllData">
103118
<div class="modal-content">
104119
<p class="text-center">{{ t('removeAllDataConfirm.message') }}</p>
@@ -133,6 +148,7 @@ import {
133148
StorageParams,
134149
VIEW_TIME_IN_BADGE_DEFAULT,
135150
InactivityInterval,
151+
SHOW_CHANGELOG_DEFAULT,
136152
} from '../storage/storage-params';
137153
import { ranges, ThisWeekRange, todayLocalDate } from '../utils/date';
138154
import { useImportToCsv } from '../compositions/toCsv';
@@ -155,6 +171,7 @@ const selectedDate = ref<Date[]>();
155171
const presetRanges = ranges();
156172
157173
const needToConfirmDeleteAllData = ref<boolean>();
174+
const showChangelog = ref<boolean>();
158175
159176
const restoreFile = ref<any>();
160177
@@ -173,6 +190,10 @@ onMounted(async () => {
173190
BLOCK_DEFERRAL_DEFAULT,
174191
);
175192
selectedDate.value = ThisWeekRange;
193+
showChangelog.value = await settingsStorage.getValue(
194+
StorageParams.SHOW_CHANGELOG,
195+
SHOW_CHANGELOG_DEFAULT,
196+
);
176197
});
177198
178199
async function onChange(storageParam: StorageParams, target: any) {

src/storage/storage-params.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export enum StorageParams {
1010
INTERVAL_INACTIVITY = 'inactivity_interval',
1111
DARK_MODE = 'night_mode',
1212
VIEW_TIME_IN_BADGE = 'view_time_in_badge',
13+
SHOW_CHANGELOG = 'show_changelog',
1314
BLOCK_DEFERRAL = 'view_block_deferral',
1415
BLOCK_DEFERRAL_TIME = 'view_block_deferral_time',
1516
DAILY_SUMMARY_NOTIFICATION_TIME = 'daily-summary-notification-time',
@@ -58,6 +59,7 @@ export const SHOW_HINT_DEFAULT = true;
5859
// default time is 20:00, time in seconds
5960
export const DAILY_SUMMARY_NOTIFICATION_TIME_DEFAULT = (20 * HOUR) / 1000;
6061
export const DAILY_NOTIFICATION_DEFAULT = true;
62+
export const SHOW_CHANGELOG_DEFAULT = false;
6163

6264
export function getDefaultValue(param: StorageParams) {
6365
switch (param) {
@@ -83,5 +85,7 @@ export function getDefaultValue(param: StorageParams) {
8385
return DAILY_SUMMARY_NOTIFICATION_TIME_DEFAULT;
8486
case StorageParams.DAILY_NOTIFICATION:
8587
return DAILY_NOTIFICATION_DEFAULT;
88+
case StorageParams.SHOW_CHANGELOG:
89+
return SHOW_CHANGELOG_DEFAULT;
8690
}
8791
}

0 commit comments

Comments
 (0)