Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions src/_locales/de/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -380,5 +380,35 @@
},
"darkTheme": {
"message": "Dunkles Thema"
},
"trackerJamPromo": {
"message": "Probieren Sie unsere neue App TrackerJam"
},
"trackerJamPromo_description": {
"message": "Möchten Sie eine automatische Zeiterfassung mit Cloud-Speicher ausprobieren?"
},
"trackerJamPromo_description2": {
"message": "TrackerJam ist eine Kombination aus einer Chrome-Erweiterung zur Analyse der Browser-Aktivitäten und einem Web-Dashboard zur Anzeige detaillierter Berichte."
},
"trackerJamPromo_features": {
"message": "Unsere Funktionen:"
},
"trackerJamPromo_features1": {
"message": "Cloud-Speicher"
},
"trackerJamPromo_features2": {
"message": "Sie können mehrere Benutzer hinzufügen, um als Team zu arbeiten, oder den Tracker verwenden, um persönliche und berufliche Zeit getrennt zu analysieren"
},
"trackerJamPromo_features3": {
"message": "Analyse der besuchten Seiten nach Kategorien, basierend auf KI und Produktivitätsmetriken"
},
"trackerJamPromo_features4": {
"message": "Detaillierte Analysen zu jeder besuchten Seite innerhalb einer Website"
},
"trackerJamPromo_features5": {
"message": "Anpassung der Arbeitszeiten"
},
"try": {
"message": "Testen Sie"
}
}
30 changes: 30 additions & 0 deletions src/_locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -380,5 +380,35 @@
},
"darkTheme": {
"message": "Dark theme"
},
"trackerJamPromo": {
"message": "Try our new app TrackerJam"
},
"trackerJamPromo_description": {
"message": "Would like to try automatic time tracker with cloud storage?"
},
"trackerJamPromo_description2": {
"message": "TrackerJam is a combination of a chrome extension to analyze browser activity and a web dashboard to see detailed reports."
},
"trackerJamPromo_features": {
"message": "Our features:"
},
"trackerJamPromo_features1": {
"message": "Cloud storage"
},
"trackerJamPromo_features2": {
"message": "You can add multiple users to work as a team or use the tracker to analyze personal and work time separately"
},
"trackerJamPromo_features3": {
"message": "Analyze visited sites by category based on AI and productivity metrics"
},
"trackerJamPromo_features4": {
"message": "Detailed analytics on any visited web page within a web site"
},
"trackerJamPromo_features5": {
"message": "Work time customization"
},
"try": {
"message": "Try"
}
}
30 changes: 30 additions & 0 deletions src/_locales/es/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -380,5 +380,35 @@
},
"darkTheme": {
"message": "Tema oscuro"
},
"trackerJamPromo": {
"message": "Pruebe nuestra nueva aplicación TrackerJam"
},
"trackerJamPromo_description": {
"message": "¿Le gustaría probar el seguimiento automático del tiempo con almacenamiento en la nube?"
},
"trackerJamPromo_description2": {
"message": "TrackerJam es una combinación de una extensión de Chrome para analizar la actividad del navegador y un panel web para ver informes detallados."
},
"trackerJamPromo_features": {
"message": "Nuestras características:"
},
"trackerJamPromo_features1": {
"message": "Almacenamiento en la nube"
},
"trackerJamPromo_features2": {
"message": "Puedes añadir varios usuarios para trabajar en equipo o utilizar el rastreador para analizar el tiempo personal y laboral por separado"
},
"trackerJamPromo_features3": {
"message": "Analiza los sitios visitados por categoría en función de la IA y las métricas de productividad"
},
"trackerJamPromo_features4": {
"message": "Análisis detallados de cualquier página web visitada dentro de un sitio web"
},
"trackerJamPromo_features5": {
"message": "Personalización del tiempo de trabajo"
},
"try": {
"message": "Pruebe"
}
}
30 changes: 30 additions & 0 deletions src/_locales/ru/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -381,5 +381,35 @@
},
"darkTheme": {
"message": "Темная тема"
},
"trackerJamPromo": {
"message": "Попробуйте наше новое приложение TrackerJam"
},
"trackerJamPromo_description": {
"message": "Хотите попробовать автоматический тайм-трекер с облачным хранилищем?"
},
"trackerJamPromo_description2": {
"message": "TrackerJam - это сочетание расширения для хрома для анализа активности в браузере и веб-панели для просмотра подробных отчетов."
},
"trackerJamPromo_features": {
"message": "Наши возможности:"
},
"trackerJamPromo_features1": {
"message": "Облачное хранилище"
},
"trackerJamPromo_features2": {
"message": "Вы можете добавить несколько пользователей для работы в команде или использовать трекер для анализа личного и рабочего времени по отдельности"
},
"trackerJamPromo_features3": {
"message": "Анализ посещенных сайтов по категориям на основе показателей искусственного интеллекта и продуктивности"
},
"trackerJamPromo_features4": {
"message": "Подробная аналитика по любой посещенной веб-странице внутри сайта"
},
"trackerJamPromo_features5": {
"message": "Настройка рабочего времени"
},
"try": {
"message": "Попробовать"
}
}
30 changes: 30 additions & 0 deletions src/_locales/zh_CN/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -380,5 +380,35 @@
},
"darkTheme": {
"message": "黑暗主题"
},
"trackerJamPromo": {
"message": "试试我们的新应用程序 TrackerJam"
},
"trackerJamPromo_description": {
"message": "想试试带有云存储功能的自动时间跟踪器吗?"
},
"trackerJamPromo_description2": {
"message": "TrackerJam 是一个 Chrome 浏览器扩展程序,用于分析浏览器活动,同时也是一个网络仪表盘,用于查看详细报告。"
},
"trackerJamPromo_features": {
"message": "我们的特色"
},
"trackerJamPromo_features1": {
"message": "云存储"
},
"trackerJamPromo_features2": {
"message": "你可以添加多个用户作为一个团队工作,或使用跟踪器分别分析个人和工作时间"
},
"trackerJamPromo_features3": {
"message": "根据人工智能和工作效率指标,按类别分析访问过的网站"
},
"trackerJamPromo_features4": {
"message": "详细分析网站内任何访问过的网页"
},
"trackerJamPromo_features5": {
"message": "自定义工作时间"
},
"try": {
"message": "试用"
}
}
3 changes: 3 additions & 0 deletions src/assets/css/dark.css
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,7 @@
}
.dark .pomodoro-popup-block p{
color:#303030;
}
.dark .promo{
color: black !important;
}
4 changes: 2 additions & 2 deletions src/assets/css/general.css
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ select {
input[type='button'] {
background: #428bff;
color: #fff;
border-radius: 3px;
border-radius: 7px;
height: 36px;
line-height: 35px;
padding: 0 20px;
Expand All @@ -102,7 +102,7 @@ input[type='button'].alert {
input[type='button'].info {
background: #ffffff !important;
color: black;
border: 1px solid black;
border: 1px solid rgb(151, 151, 151);
}

input[type='button'][disabled] {
Expand Down
Binary file added src/assets/trackerjam-promo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/background.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Browser.runtime.onInstalled.addListener(async details => {
active: true,
});
}
if (details.reason == 'update') {
if (details.reason == 'update' && !details.previousVersion) {
const showChangelog = (await Settings.getInstance().getSetting(
StorageParams.SHOW_CHANGELOG,
)) as boolean;
Expand Down
2 changes: 1 addition & 1 deletion src/components/Dashboad.vue
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ function openChart(type: TypeOfChart) {
.chart-btn {
background-color: rgb(192, 192, 192);
color: #fff;
border-radius: 3px;
border-radius: 7px;
height: 36px;
line-height: 35px;
padding: 0 20px;
Expand Down
2 changes: 1 addition & 1 deletion src/components/Pomodoro.vue
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ function playAudio(sound: PomodoroSounds) {
button {
border: none;
color: #fff;
border-radius: 3px;
border-radius: 7px;
height: 36px;
line-height: 35px;
padding: 0 20px;
Expand Down
98 changes: 98 additions & 0 deletions src/components/PromoTrackerJam.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
<template>
<div class="modal" v-if="showPromo">
<div class="modal-content promo">
<p class="title">{{ t('trackerJamPromo.message') }}</p>
<div class="img-block">
<img src="../assets/trackerjam-promo.jpg" />
</div>
<p class="text">{{ t('trackerJamPromo_description.message') }}</p>

<p class="text">
{{ t('trackerJamPromo_description2.message') }}
</p>
<p class="text features">{{ t('trackerJamPromo_features.message') }}</p>
<ul>
<li>✅ {{ t('trackerJamPromo_features1.message') }}</li>
<li>✅ {{ t('trackerJamPromo_features2.message') }}</li>
<li>✅ {{ t('trackerJamPromo_features3.message') }}</li>
<li>✅ {{ t('trackerJamPromo_features4.message') }}</li>
</ul>
<div class="text-center">
<input type="button" :value="t('try.message')" @click="openUrl()" />
<input type="button" class="info ml-10" :value="t('close.message')" @click="close()" />
</div>
</div>
</div>
</template>

<script lang="ts" setup>
import { useI18n } from 'vue-i18n';
import { onMounted, ref } from 'vue';
import { injectStorage } from '../storage/inject-storage';
import { StorageParams } from '../storage/storage-params';
import { addDays, startOfToday } from 'date-fns';
import { addHours } from 'date-fns/esm';

const { t } = useI18n();
const settingsStorage = injectStorage();

const showPromo = ref<boolean>();

const PROMPT_AT_TIME_OF_DAY = 12;
const ADD_DAYS_INITIAL = 2;
const ADD_DAYS_COUNT = 5;

onMounted(async () => {
const promoDate = await settingsStorage.getValue(StorageParams.PROMO_TRACKERJAM_DATE);

if (promoDate == undefined) {
let nextTime = await settingsStorage.getValue(StorageParams.PROMO_TRACKERJAM_PROMPT_AT);
if (nextTime == undefined) {
await settingsStorage.saveValue(
StorageParams.PROMO_TRACKERJAM_PROMPT_AT,
addDays(addHours(startOfToday(), PROMPT_AT_TIME_OF_DAY), ADD_DAYS_INITIAL).toString(),
);
} else {
nextTime = new Date(nextTime);
if (nextTime < new Date()) showPromo.value = true;
}
}
});

async function close() {
showPromo.value = false;
await settingsStorage.saveValue(
StorageParams.PROMO_TRACKERJAM_PROMPT_AT,
addDays(addHours(startOfToday(), PROMPT_AT_TIME_OF_DAY), ADD_DAYS_COUNT).toString(),
);
}

async function openUrl() {
window.open('https://trackerjam.com?utm_source=watt_extension_prom', '_blank');
await settingsStorage.saveValue(StorageParams.PROMO_TRACKERJAM_DATE, new Date().toString());
}
</script>

<style scoped>
.title {
font-size: 22px;
font-weight: 500;
text-align: center;
margin: 0;
}
ul,
.text {
margin-top: 10px;
font-size: 14px;
}
.text .features {
font-weight: 600;
}
.img-block {
text-align: center;
}
img {
max-width: 100%;
height: auto;
}
</style>
2 changes: 1 addition & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "__MSG_extName__",
"short_name": "Web Tracker",
"version": "2.0.24",
"version": "2.1.0",
"description": "__MSG_extDescription__",
"options_page": "src/dashboard.html",
"default_locale": "en",
Expand Down
3 changes: 3 additions & 0 deletions src/pages/Dashboard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -152,13 +152,16 @@
</div>
</div>
</div>

<PromoTrackerJam />
</div>
</template>

<script lang="ts" setup>
import { onMounted, ref, watch } from 'vue';
import { useI18n } from 'vue-i18n';
import GeneralSettings from '../components/GeneralSettings.vue';
import PromoTrackerJam from '../components/PromoTrackerJam.vue';
import WhiteList from '../components/WhiteList.vue';
import Limits from '../components/Limits.vue';
import DailyNotifications from '../components/Notifications.vue';
Expand Down
2 changes: 2 additions & 0 deletions src/storage/storage-params.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ export enum StorageParams {
POMODORO_AUDIO_AFTER_FINISHED = 'pomodoro-audio-after-finished',
POMODORO_INTERVAL_REST = 'pomodoro-interval-rest',
POMODORO_FREQUENCY = 'pomodoro-frequency',
PROMO_TRACKERJAM_DATE = 'promo-trackerjam-date',
PROMO_TRACKERJAM_PROMPT_AT = 'promo-trackerjam-prompt-at',
}

export enum StorageDeserializeParam {
Expand Down