124 lines
3.3 KiB
JavaScript
124 lines
3.3 KiB
JavaScript
import app from 'flarum/admin/app';
|
|
|
|
app.initializers.add('sbp-jm-msteams-webhook', function () {
|
|
app.extensionData
|
|
.for('sbp-jm-msteams-webhook')
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.enabled',
|
|
label: 'Teams-Spiegelung aktivieren',
|
|
help: 'Spiegelt Flarum-Web/Alert-Benachrichtigungen zusätzlich in den Microsoft Teams Activity Feed.',
|
|
type: 'boolean',
|
|
},
|
|
100
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.tenant_id',
|
|
label: 'Entra Tenant ID',
|
|
type: 'text',
|
|
placeholder: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
|
|
},
|
|
90
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.client_id',
|
|
label: 'App / Client ID',
|
|
type: 'text',
|
|
placeholder: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
|
|
},
|
|
80
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.client_secret',
|
|
label: 'Client Secret',
|
|
type: 'password',
|
|
},
|
|
70
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.forum_base_url',
|
|
label: 'Forum Base URL',
|
|
help: 'Wird für Deep Links aus Teams zurück in Flarum verwendet.',
|
|
type: 'text',
|
|
placeholder: 'https://forum.example.tld',
|
|
},
|
|
60
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.user_lookup_strategy',
|
|
label: 'Benutzer-Mapping',
|
|
help: 'Wie der Zielbenutzer in Microsoft Graph aufgelöst wird.',
|
|
type: 'select',
|
|
options: {
|
|
email: 'E-Mail des Flarum-Benutzers / UPN wenn identisch',
|
|
upn: 'UPN aus User-Preference (Fallback auf E-Mail)',
|
|
preference: 'Freier Preference-Key am Benutzer',
|
|
},
|
|
default: 'email',
|
|
},
|
|
50
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.upn_preference_key',
|
|
label: 'Preference-Key für UPN',
|
|
type: 'text',
|
|
placeholder: 'sbp-jm-msteams-webhook.upn',
|
|
},
|
|
40
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.user_preference_key',
|
|
label: 'Preference-Key für freies Ziel',
|
|
type: 'text',
|
|
placeholder: 'sbp-jm-msteams-webhook.target',
|
|
},
|
|
39
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.activity_type',
|
|
label: 'Teams Activity Type',
|
|
help: 'Für den Schnelltest am besten systemDefault verwenden.',
|
|
type: 'text',
|
|
placeholder: 'systemDefault',
|
|
},
|
|
30
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.teams_app_id',
|
|
label: 'Teams App ID',
|
|
help: 'Optional, aber empfohlen wenn mehrere Apps dieselbe Entra App Registration verwenden.',
|
|
type: 'text',
|
|
},
|
|
20
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.icon_id',
|
|
label: 'Icon ID',
|
|
help: 'Optionales benutzerdefiniertes Activity-Icon laut Teams App Manifest.',
|
|
type: 'text',
|
|
},
|
|
15
|
|
)
|
|
.registerSetting(
|
|
{
|
|
setting: 'sbp-jm-msteams-webhook.timeout_seconds',
|
|
label: 'HTTP Timeout (Sekunden)',
|
|
type: 'number',
|
|
min: 5,
|
|
step: 1,
|
|
placeholder: '15',
|
|
},
|
|
10
|
|
);
|
|
});
|