summaryrefslogtreecommitdiff
path: root/packages/frontend/src/widgets/WidgetRssTicker.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/widgets/WidgetRssTicker.vue')
-rw-r--r--packages/frontend/src/widgets/WidgetRssTicker.vue12
1 files changed, 11 insertions, 1 deletions
diff --git a/packages/frontend/src/widgets/WidgetRssTicker.vue b/packages/frontend/src/widgets/WidgetRssTicker.vue
index 95f82f7d7b..9ed21e6d00 100644
--- a/packages/frontend/src/widgets/WidgetRssTicker.vue
+++ b/packages/frontend/src/widgets/WidgetRssTicker.vue
@@ -35,6 +35,7 @@ import MkMarqueeText from '@/components/MkMarqueeText.vue';
import type { FormWithDefault, GetFormResultType } from '@/utility/form.js';
import MkContainer from '@/components/MkContainer.vue';
import { shuffle } from '@/utility/shuffle.js';
+import { i18n } from '@/i18n.js';
import { url as base } from '@@/js/config.js';
import { useInterval } from '@@/js/use-interval.js';
@@ -43,22 +44,28 @@ const name = 'rssTicker';
const widgetPropsDef = {
url: {
type: 'string',
+ label: i18n.ts._widgetOptions._rss.url,
default: 'http://feeds.afpbb.com/rss/afpbb/afpbbnews',
+ manualSave: true,
},
shuffle: {
type: 'boolean',
+ label: i18n.ts._widgetOptions._rssTicker.shuffle,
default: true,
},
refreshIntervalSec: {
type: 'number',
+ label: i18n.ts._widgetOptions._rss.refreshIntervalSec,
default: 60,
},
maxEntries: {
type: 'number',
+ label: i18n.ts._widgetOptions._rss.maxEntries,
default: 15,
},
duration: {
type: 'range',
+ label: i18n.ts._widgetOptions._rssTicker.duration,
default: 70,
step: 1,
min: 5,
@@ -66,14 +73,17 @@ const widgetPropsDef = {
},
reverse: {
type: 'boolean',
+ label: i18n.ts._widgetOptions._rssTicker.reverse,
default: false,
},
showHeader: {
type: 'boolean',
+ label: i18n.ts._widgetOptions.showHeader,
default: false,
},
transparent: {
type: 'boolean',
+ label: i18n.ts._widgetOptions.transparent,
default: false,
},
} satisfies FormWithDefault;
@@ -119,7 +129,7 @@ const tick = () => {
});
};
-watch(() => fetchEndpoint, tick);
+watch(fetchEndpoint, tick);
watch(() => widgetProps.refreshIntervalSec, () => {
if (intervalClear.value) {
intervalClear.value();