diff --git a/frontend/fontello/config.json b/frontend/fontello/config.json
index 9cb2d79c2..b8c8b2626 100755
--- a/frontend/fontello/config.json
+++ b/frontend/fontello/config.json
@@ -15893,7 +15893,7 @@
"css": "refresh",
"code": 984144,
"src": "custom_icons",
- "selected": false,
+ "selected": true,
"svg": {
"path": "M736.3 263.7Q689.5 218.8 628.9 192.4T500 166Q410.2 166 333 210.9T210.9 333 166 500 210.9 667 333 789.1 500 834Q615.2 834 704.1 763.7T822.3 584H736.3Q709 656.3 644.5 703.1T500 750Q431.6 750 374 716.8T283.2 626 250 500 283.2 374 374 283.2 500 250Q550.8 250 595.7 269.5T675.8 324.2L541 459H834V166Z",
"width": 1000
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index e94238802..3a82516a9 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -13,6 +13,13 @@
+
+
+
+
+
+
@@ -144,6 +151,10 @@ export default Vue.extend({
this.activeGroup = state ? { [group]: true } : {};
},
+ emitPageRefresh() {
+ this.$root.$emit('page.refresh');
+ },
+
reloadApp() {
this.$api.reloadApp().then(() => {
this.$utils.toast('Reloading app ...');
@@ -185,7 +196,12 @@ export default Vue.extend({
},
computed: {
- ...mapState(['serverConfig', 'profile']),
+ ...mapState(['serverConfig', 'profile', 'loading']),
+
+ isPageLoading() {
+ // Check if any model is currently loading
+ return Object.values(this.loading).some((v) => v === true);
+ },
isGlobalNotices() {
return (this.serverConfig.needs_restart
diff --git a/frontend/src/assets/icons/fontello.css b/frontend/src/assets/icons/fontello.css
index ee4874e2e..667065d23 100644
--- a/frontend/src/assets/icons/fontello.css
+++ b/frontend/src/assets/icons/fontello.css
@@ -118,5 +118,6 @@
.mdi-warning-empty:before { content: '\e827'; } /* '' */
.mdi-account-outline:before { content: ''; } /* '\f0013' */
.mdi-code:before { content: ''; } /* '\f0169' */
+.mdi-refresh:before { content: ''; } /* '\f0450' */
.mdi-logout-variant:before { content: ''; } /* '\f05fd' */
.mdi-wrench-outline:before { content: ''; } /* '\f0be0' */
diff --git a/frontend/src/assets/icons/fontello.woff2 b/frontend/src/assets/icons/fontello.woff2
index 5f729eea5..049af414a 100755
Binary files a/frontend/src/assets/icons/fontello.woff2 and b/frontend/src/assets/icons/fontello.woff2 differ
diff --git a/frontend/src/assets/style.scss b/frontend/src/assets/style.scss
index 2b116d072..6cb161abf 100644
--- a/frontend/src/assets/style.scss
+++ b/frontend/src/assets/style.scss
@@ -1372,3 +1372,33 @@ th.role-toggle-select a {
width: auto;
}
}
+
+/* Reload button spin animation */
+@keyframes spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+.spin {
+ animation: spin 1s linear infinite;
+}
+
+.btn-reload {
+ margin-left: 0.5rem;
+
+ .icon {
+ transition: transform 0.2s ease;
+ }
+
+ &:hover .icon {
+ transform: rotate(30deg);
+ }
+
+ &.is-loading .icon {
+ animation: spin 1s linear infinite;
+ }
+}
diff --git a/frontend/src/views/Bounces.vue b/frontend/src/views/Bounces.vue
index 5a490f105..bfc4cd0b3 100644
--- a/frontend/src/views/Bounces.vue
+++ b/frontend/src/views/Bounces.vue
@@ -213,6 +213,14 @@ export default Vue.extend({
},
},
+ created() {
+ this.$root.$on('page.refresh', this.getBounces);
+ },
+
+ destroyed() {
+ this.$root.$off('page.refresh', this.getBounces);
+ },
+
mounted() {
if (this.$route.query.campaign_id) {
this.queryParams.campaign_id = parseInt(this.$route.query.campaign_id, 10);
diff --git a/frontend/src/views/Campaigns.vue b/frontend/src/views/Campaigns.vue
index 87533ae8f..b18eb3fac 100644
--- a/frontend/src/views/Campaigns.vue
+++ b/frontend/src/views/Campaigns.vue
@@ -37,6 +37,7 @@
+
Delete
@@ -531,12 +532,17 @@ export default Vue.extend({
},
},
+ created() {
+ this.$root.$on('page.refresh', this.getCampaigns);
+ },
+
mounted() {
this.getCampaigns();
this.pollStats();
},
destroyed() {
+ this.$root.$off('page.refresh', this.getCampaigns);
clearInterval(this.pollID);
},
});
diff --git a/frontend/src/views/Dashboard.vue b/frontend/src/views/Dashboard.vue
index cc13f5c3e..6ad268298 100644
--- a/frontend/src/views/Dashboard.vue
+++ b/frontend/src/views/Dashboard.vue
@@ -176,6 +176,22 @@ export default Vue.extend({
},
methods: {
+ fetchData() {
+ this.isCountsLoading = true;
+ this.isChartsLoading = true;
+
+ this.$api.getDashboardCounts().then((data) => {
+ this.counts = data;
+ this.isCountsLoading = false;
+ });
+
+ this.$api.getDashboardCharts().then((data) => {
+ this.isChartsLoading = false;
+ this.campaignViews = this.makeChart(data.campaignViews);
+ this.campaignClicks = this.makeChart(data.linkClicks);
+ });
+ },
+
makeChart(data) {
if (data.length === 0) {
return {};
@@ -202,19 +218,16 @@ export default Vue.extend({
},
},
- mounted() {
- // Pull the counts.
- this.$api.getDashboardCounts().then((data) => {
- this.counts = data;
- this.isCountsLoading = false;
- });
+ created() {
+ this.$root.$on('page.refresh', this.fetchData);
+ },
+
+ destroyed() {
+ this.$root.$off('page.refresh', this.fetchData);
+ },
- // Pull the charts.
- this.$api.getDashboardCharts().then((data) => {
- this.isChartsLoading = false;
- this.campaignViews = this.makeChart(data.campaignViews);
- this.campaignClicks = this.makeChart(data.linkClicks);
- });
+ mounted() {
+ this.fetchData();
},
});
diff --git a/frontend/src/views/Lists.vue b/frontend/src/views/Lists.vue
index a93657148..78bed10d1 100644
--- a/frontend/src/views/Lists.vue
+++ b/frontend/src/views/Lists.vue
@@ -363,6 +363,14 @@ export default Vue.extend({
},
},
+ created() {
+ this.$root.$on('page.refresh', this.getLists);
+ },
+
+ destroyed() {
+ this.$root.$off('page.refresh', this.getLists);
+ },
+
mounted() {
if (this.$route.params.id) {
this.$api.getList(parseInt(this.$route.params.id, 10)).then((data) => {
diff --git a/frontend/src/views/Media.vue b/frontend/src/views/Media.vue
index 7170d16ed..8543a2610 100644
--- a/frontend/src/views/Media.vue
+++ b/frontend/src/views/Media.vue
@@ -223,6 +223,14 @@ export default Vue.extend({
},
},
+ created() {
+ this.$root.$on('page.refresh', this.getMedia);
+ },
+
+ destroyed() {
+ this.$root.$off('page.refresh', this.getMedia);
+ },
+
mounted() {
this.$api.getMedia();
diff --git a/frontend/src/views/Subscribers.vue b/frontend/src/views/Subscribers.vue
index d28e65109..ab37780a9 100644
--- a/frontend/src/views/Subscribers.vue
+++ b/frontend/src/views/Subscribers.vue
@@ -525,6 +525,14 @@ export default Vue.extend({
},
},
+ created() {
+ this.$root.$on('page.refresh', this.querySubscribers);
+ },
+
+ destroyed() {
+ this.$root.$off('page.refresh', this.querySubscribers);
+ },
+
mounted() {
if (this.$route.params.listID) {
this.queryParams.listID = parseInt(this.$route.params.listID, 10);
diff --git a/frontend/src/views/Templates.vue b/frontend/src/views/Templates.vue
index fd0b0c48b..50c6a3d84 100644
--- a/frontend/src/views/Templates.vue
+++ b/frontend/src/views/Templates.vue
@@ -120,6 +120,7 @@ import Vue from 'vue';
import { mapState } from 'vuex';
import CampaignPreview from '../components/CampaignPreview.vue';
import EmptyPlaceholder from '../components/EmptyPlaceholder.vue';
+
import TemplateForm from './TemplateForm.vue';
export default Vue.extend({
@@ -139,6 +140,10 @@ export default Vue.extend({
},
methods: {
+ fetchTemplates() {
+ this.$api.getTemplates();
+ },
+
// Show the edit form.
showEditForm(data) {
this.curItem = data;
@@ -199,6 +204,14 @@ export default Vue.extend({
...mapState(['templates', 'loading']),
},
+ created() {
+ this.$root.$on('page.refresh', this.fetchTemplates);
+ },
+
+ destroyed() {
+ this.$root.$off('page.refresh', this.fetchTemplates);
+ },
+
mounted() {
this.$api.getTemplates();
},
diff --git a/frontend/src/views/Users.vue b/frontend/src/views/Users.vue
index 7e1109228..a250e7793 100644
--- a/frontend/src/views/Users.vue
+++ b/frontend/src/views/Users.vue
@@ -132,6 +132,7 @@
import Vue from 'vue';
import { mapState } from 'vuex';
import EmptyPlaceholder from '../components/EmptyPlaceholder.vue';
+
import UserForm from './UserForm.vue';
export default Vue.extend({
@@ -222,6 +223,14 @@ export default Vue.extend({
...mapState(['loading', 'settings']),
},
+ created() {
+ this.$root.$on('page.refresh', this.getUsers);
+ },
+
+ destroyed() {
+ this.$root.$off('page.refresh', this.getUsers);
+ },
+
mounted() {
if (this.$route.params.id) {
this.$api.getUser(parseInt(this.$route.params.id, 10)).then((data) => {
diff --git a/i18n/bg.json b/i18n/bg.json
index 90e6cbe14..c0ff48e5d 100644
--- a/i18n/bg.json
+++ b/i18n/bg.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Запазване",
"globals.buttons.saveChanges": "Запазване на промените",
"globals.buttons.toggleSelect": "Превключване на избора",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Преглед",
"globals.days.0": "Нед",
"globals.days.1": "Нед",
diff --git a/i18n/ca.json b/i18n/ca.json
index 6f0274968..3cc5204ef 100644
--- a/i18n/ca.json
+++ b/i18n/ca.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Desa",
"globals.buttons.saveChanges": "Desa els canvis",
"globals.buttons.toggleSelect": "Alternar selecció",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Visualitzar",
"globals.days.0": "dg.",
"globals.days.1": "dg.",
diff --git a/i18n/cs-cz.json b/i18n/cs-cz.json
index 1a589c534..8384f445d 100644
--- a/i18n/cs-cz.json
+++ b/i18n/cs-cz.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Uložit",
"globals.buttons.saveChanges": "Uložit změny",
"globals.buttons.toggleSelect": "Přepnout výběr",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Zobrazit",
"globals.days.0": "Ne",
"globals.days.1": "Ne",
diff --git a/i18n/cy.json b/i18n/cy.json
index 22962f702..6decf6675 100644
--- a/i18n/cy.json
+++ b/i18n/cy.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Cadw",
"globals.buttons.saveChanges": "Cadw'r newidiadau",
"globals.buttons.toggleSelect": "Toglo dewis",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Ymddangos",
"globals.days.0": "Sul",
"globals.days.1": "Sul",
diff --git a/i18n/da.json b/i18n/da.json
index 4f21da87c..998eb03d5 100644
--- a/i18n/da.json
+++ b/i18n/da.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Spare",
"globals.buttons.saveChanges": "Gem ændringer",
"globals.buttons.toggleSelect": "Skift markering",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Vis",
"globals.days.0": "Søn",
"globals.days.1": "Søn",
diff --git a/i18n/de.json b/i18n/de.json
index 31c600f31..502bed9a4 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Speichern",
"globals.buttons.saveChanges": "Änderungen speichern",
"globals.buttons.toggleSelect": "Auswahl umschalten",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Anzeigen",
"globals.days.0": "So",
"globals.days.1": "So",
diff --git a/i18n/el.json b/i18n/el.json
index f6e2254f1..17f8e8e15 100644
--- a/i18n/el.json
+++ b/i18n/el.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Αποθήκευση",
"globals.buttons.saveChanges": "Αποθήκευση αλλαγών",
"globals.buttons.toggleSelect": "Εναλλαγή επιλογής",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Προβολή",
"globals.days.0": "Κυρ",
"globals.days.1": "Κυρ",
diff --git a/i18n/en.json b/i18n/en.json
index a87b08487..f6c1fd72d 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -161,6 +161,7 @@
"globals.buttons.save": "Save",
"globals.buttons.saveChanges": "Save changes",
"globals.buttons.toggleSelect": "Toggle selection",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "View",
"globals.days.0": "Sun",
"globals.days.1": "Sun",
diff --git a/i18n/eo.json b/i18n/eo.json
index 8dfe0e985..e013c36dc 100644
--- a/i18n/eo.json
+++ b/i18n/eo.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Desa",
"globals.buttons.saveChanges": "Desa els canvis",
"globals.buttons.toggleSelect": "Aktivigi/Dezaktivigi elektejon",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Visualitzar",
"globals.days.0": "dg.",
"globals.days.1": "dg.",
diff --git a/i18n/es.json b/i18n/es.json
index 567044c58..43e24fa9a 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Guardar",
"globals.buttons.saveChanges": "Guardar cambios",
"globals.buttons.toggleSelect": "Alternar selección",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Ver",
"globals.days.0": "Dom",
"globals.days.1": "Dom",
diff --git a/i18n/fi.json b/i18n/fi.json
index 37b14d01a..1ed70a274 100644
--- a/i18n/fi.json
+++ b/i18n/fi.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Tallenna",
"globals.buttons.saveChanges": "Tallenna muutokset",
"globals.buttons.toggleSelect": "Vaihda valinta",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Näytä",
"globals.days.0": "Su",
"globals.days.1": "Su",
diff --git a/i18n/fr-CA.json b/i18n/fr-CA.json
index a4e3c9ed3..85e72687b 100644
--- a/i18n/fr-CA.json
+++ b/i18n/fr-CA.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Enregistrer",
"globals.buttons.saveChanges": "Enregistrer les changements",
"globals.buttons.toggleSelect": "Basculer la sélection",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Voir",
"globals.days.0": "Dim",
"globals.days.1": "Dim",
diff --git a/i18n/fr.json b/i18n/fr.json
index f1d3eda22..2bb59f330 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Enregistrer",
"globals.buttons.saveChanges": "Enregistrer les changements",
"globals.buttons.toggleSelect": "Basculer la sélection",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Voir",
"globals.days.0": "Dim",
"globals.days.1": "Dim",
diff --git a/i18n/he.json b/i18n/he.json
index 10ddafcae..d762a2dd8 100644
--- a/i18n/he.json
+++ b/i18n/he.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "שמירה",
"globals.buttons.saveChanges": "שמור שינויים",
"globals.buttons.toggleSelect": "החלף בחירה",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "צפה",
"globals.days.0": "ראשון",
"globals.days.1": "ראשון",
diff --git a/i18n/hu.json b/i18n/hu.json
index d8fbb9b58..2a9ddcb6f 100644
--- a/i18n/hu.json
+++ b/i18n/hu.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Mentés",
"globals.buttons.saveChanges": "Változtatások mentése",
"globals.buttons.toggleSelect": "Kijelölés váltása",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Megtekintés",
"globals.days.0": "V",
"globals.days.1": "V",
diff --git a/i18n/it.json b/i18n/it.json
index ada5d301b..94a10570c 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Salvare",
"globals.buttons.saveChanges": "Salvare le modifiche",
"globals.buttons.toggleSelect": "Attiva selezione",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Vedi",
"globals.days.0": "Dom",
"globals.days.1": "Dom",
diff --git a/i18n/jp.json b/i18n/jp.json
index 5461a3296..237df836a 100644
--- a/i18n/jp.json
+++ b/i18n/jp.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "保存",
"globals.buttons.saveChanges": "変更内容を保存",
"globals.buttons.toggleSelect": "選択の切り替え",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "表示",
"globals.days.0": "日",
"globals.days.1": "日",
diff --git a/i18n/ko.json b/i18n/ko.json
index 1fb3f97e7..f3d2620a2 100644
--- a/i18n/ko.json
+++ b/i18n/ko.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "저장",
"globals.buttons.saveChanges": "변경사항 저장",
"globals.buttons.toggleSelect": "선택 전환",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "보기",
"globals.days.0": "일",
"globals.days.1": "일",
diff --git a/i18n/ml.json b/i18n/ml.json
index 49b1c9134..5cd1ee77f 100644
--- a/i18n/ml.json
+++ b/i18n/ml.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "സൂക്ഷിക്കുക",
"globals.buttons.saveChanges": "മാറ്റങ്ങൾ സൂക്ഷിക്കുക",
"globals.buttons.toggleSelect": "താളിച്ചേര്ക്കല് മാറ്റുക",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "കാണുക",
"globals.days.0": "ഞായർ",
"globals.days.1": "ഞായർ",
diff --git a/i18n/nl.json b/i18n/nl.json
index 93a95e837..52cffa3f6 100644
--- a/i18n/nl.json
+++ b/i18n/nl.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Opslaan",
"globals.buttons.saveChanges": "Wijzigingen opslaan",
"globals.buttons.toggleSelect": "Selectie omkeren",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Bekijken",
"globals.days.0": "Zo",
"globals.days.1": "Zo",
diff --git a/i18n/no.json b/i18n/no.json
index 32ca47068..abeae81cc 100644
--- a/i18n/no.json
+++ b/i18n/no.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Lagre",
"globals.buttons.saveChanges": "Lagre endringer",
"globals.buttons.toggleSelect": "Veksle valg",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Vis",
"globals.days.0": "Søn",
"globals.days.1": "Søn",
diff --git a/i18n/pl.json b/i18n/pl.json
index 93c622b3a..873a66010 100644
--- a/i18n/pl.json
+++ b/i18n/pl.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Zapisz",
"globals.buttons.saveChanges": "Zapisz zmiany",
"globals.buttons.toggleSelect": "Przełącz zaznaczenie",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Zobacz",
"globals.days.0": "Nd",
"globals.days.1": "Nd",
diff --git a/i18n/pt-BR.json b/i18n/pt-BR.json
index 187eb8f3f..8bf81d410 100644
--- a/i18n/pt-BR.json
+++ b/i18n/pt-BR.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Salvar",
"globals.buttons.saveChanges": "Salvar alterações",
"globals.buttons.toggleSelect": "Alternar seleção",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Visualizar",
"globals.days.0": "Dom",
"globals.days.1": "Dom",
diff --git a/i18n/pt.json b/i18n/pt.json
index cbafb5802..36d40ce47 100644
--- a/i18n/pt.json
+++ b/i18n/pt.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Guardar",
"globals.buttons.saveChanges": "Guardar alterações",
"globals.buttons.toggleSelect": "Alternar seleção",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Visualizar",
"globals.days.0": "Dom",
"globals.days.1": "Dom",
diff --git a/i18n/ro.json b/i18n/ro.json
index 1d7f60c55..9404d25c4 100644
--- a/i18n/ro.json
+++ b/i18n/ro.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Salvează",
"globals.buttons.saveChanges": "Salvează modificările",
"globals.buttons.toggleSelect": "Comută selecția",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Vezi",
"globals.days.0": "Dum",
"globals.days.1": "Dum",
diff --git a/i18n/ru.json b/i18n/ru.json
index 70e47c1b2..40b542432 100644
--- a/i18n/ru.json
+++ b/i18n/ru.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Сохранить",
"globals.buttons.saveChanges": "Сохранить изменения",
"globals.buttons.toggleSelect": "Переключить выбор",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Просмотреть",
"globals.days.0": "Вс",
"globals.days.1": "Вс",
diff --git a/i18n/se.json b/i18n/se.json
index 4ebf27783..3e0a6d1c1 100644
--- a/i18n/se.json
+++ b/i18n/se.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Spara",
"globals.buttons.saveChanges": "Spara ändringar",
"globals.buttons.toggleSelect": "Växla markering",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Visa",
"globals.days.0": "sön",
"globals.days.1": "sön",
diff --git a/i18n/sk.json b/i18n/sk.json
index af574ebb1..7142925d3 100644
--- a/i18n/sk.json
+++ b/i18n/sk.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Uložiť",
"globals.buttons.saveChanges": "Uložiť zmeny",
"globals.buttons.toggleSelect": "Prepnúť výber",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Zobraziť",
"globals.days.0": "Ne",
"globals.days.1": "Ne",
diff --git a/i18n/sl.json b/i18n/sl.json
index e0863cc82..f735379e8 100644
--- a/i18n/sl.json
+++ b/i18n/sl.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Shrani",
"globals.buttons.saveChanges": "Shrani spremembe",
"globals.buttons.toggleSelect": "Preklopi izbiro",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Pogled",
"globals.days.0": "ned",
"globals.days.1": "ned",
diff --git a/i18n/tr.json b/i18n/tr.json
index 28c126a73..b10fc1c55 100644
--- a/i18n/tr.json
+++ b/i18n/tr.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Kaydet",
"globals.buttons.saveChanges": "Kaydet değişiklik",
"globals.buttons.toggleSelect": "Seçimi Değiştir",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Görüntüle",
"globals.days.0": "Paz",
"globals.days.1": "Paz",
diff --git a/i18n/uk.json b/i18n/uk.json
index 3c700910c..7973c6b21 100644
--- a/i18n/uk.json
+++ b/i18n/uk.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Зберегти",
"globals.buttons.saveChanges": "Зберегти зміни",
"globals.buttons.toggleSelect": "Перемкнути вибір",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Переглянути",
"globals.days.0": "нд",
"globals.days.1": "нд",
diff --git a/i18n/vi.json b/i18n/vi.json
index 1af81771a..da815191f 100644
--- a/i18n/vi.json
+++ b/i18n/vi.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "Lưu",
"globals.buttons.saveChanges": "Lưu thay dổi",
"globals.buttons.toggleSelect": "Chuyển đổi lựa chọn",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "Xem",
"globals.days.0": "Chủ Nhật",
"globals.days.1": "Thứ Hai",
diff --git a/i18n/zh-CN.json b/i18n/zh-CN.json
index f5c5b98d3..2e9740afd 100644
--- a/i18n/zh-CN.json
+++ b/i18n/zh-CN.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "保存",
"globals.buttons.saveChanges": "保存更改",
"globals.buttons.toggleSelect": "切换选择",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "查看",
"globals.days.0": "星期日",
"globals.days.1": "星期日",
diff --git a/i18n/zh-TW.json b/i18n/zh-TW.json
index f5f9d544d..cb910ab1c 100644
--- a/i18n/zh-TW.json
+++ b/i18n/zh-TW.json
@@ -163,6 +163,7 @@
"globals.buttons.save": "儲存",
"globals.buttons.saveChanges": "儲存變更",
"globals.buttons.toggleSelect": "切換選擇",
+ "globals.buttons.reload": "Reload",
"globals.buttons.view": "檢視",
"globals.days.0": "星期日",
"globals.days.1": "星期日",