Remove Jitsi web interface_config.js in favour of custom-interface_config.js
As of docker-jitsi-meet stable-6433 [1], `/config/interface_config.js` is regenerated on every boot. The correct way to modify the interface config is now via `/config/custom-interface_config.js`, which is appended to a default copy of `interface_config.js` by `/etc/cont-init.d/10-config` on every boot of the docker image. Given that `interface_config.js` is considered deprecated by upstream (all options will eventually be moved to `config.js`), we also deprecate the `matrix_jitsi_web_interface_config_*` variables in favour of `matrix_jitsi_web_custom_interface_config_extension`. [1] https://github.com/jitsi/docker-jitsi-meet/blob/stable-6433/CHANGELOG.md#stable-6433
This commit is contained in:
parent
948c411106
commit
bc5efa0dbc
|
@ -108,37 +108,18 @@ matrix_jitsi_web_container_extra_arguments: []
|
||||||
matrix_jitsi_web_systemd_required_services_list: ['docker.service']
|
matrix_jitsi_web_systemd_required_services_list: ['docker.service']
|
||||||
|
|
||||||
|
|
||||||
# Some variables controlling the interface of Jitsi Web.
|
# Custom configuration to be appended to `interface_config.js`, passed to Jitsi Web.
|
||||||
# These get applied to `templates/web/interface_config.js.j2`.
|
|
||||||
#
|
|
||||||
# Besides this, you can also use `matrix_jitsi_web_custom_interface_config_extension`
|
|
||||||
# to define any other configuration option.
|
|
||||||
matrix_jitsi_web_interface_config_lang_detection: false
|
|
||||||
matrix_jitsi_web_interface_config_show_jitsi_watermark: true
|
|
||||||
matrix_jitsi_web_interface_config_jitsi_watermark_link: "https://jitsi.org"
|
|
||||||
matrix_jitsi_web_interface_config_show_brand_watermark: false
|
|
||||||
matrix_jitsi_web_interface_config_brand_watermark_link: ""
|
|
||||||
matrix_jitsi_web_interface_config_generate_room_names_on_welcome_page: true
|
|
||||||
matrix_jitsi_web_interface_config_display_welcome_page_content: true
|
|
||||||
matrix_jitsi_web_interface_config_app_name: "Jitsi Meet"
|
|
||||||
matrix_jitsi_web_interface_config_native_app_name: "Jitsi Meet"
|
|
||||||
matrix_jitsi_web_interface_config_provider_name: "Jitsi"
|
|
||||||
matrix_jitsi_web_interface_config_show_powered_by: false
|
|
||||||
matrix_jitsi_web_interface_config_disable_transcription_subtitles: false
|
|
||||||
matrix_jitsi_web_interface_config_show_deep_linking_image: false
|
|
||||||
|
|
||||||
# Custom configuration to be injected into `interface_config.js`, passed to Jitsi Web.
|
|
||||||
# This configuration gets appended to the final interface configuration that Jitsi Web uses.
|
|
||||||
#
|
#
|
||||||
# Note: not to be confused with `matrix_jitsi_web_custom_config_extension`.
|
# Note: not to be confused with `matrix_jitsi_web_custom_config_extension`.
|
||||||
#
|
#
|
||||||
# For interface configuration, the flow is like this:
|
# For interface configuration, the flow is like this:
|
||||||
# - the contents of `templates/web/interface_config.js.j2` is generated (based on various `matrix_jitsi_web_interface_config_*` variables you see in this file)
|
# - a default `interface_config.js` is generated from within the docker image
|
||||||
# - the contents of `matrix_jitsi_web_custom_interface_config_extension` is appended and can define new settings or override defaults.
|
# - the contents of `matrix_jitsi_web_custom_interface_config_extension` is appended and can define new settings or override defaults.
|
||||||
#
|
#
|
||||||
# Example:
|
# Example:
|
||||||
# matrix_jitsi_web_custom_interface_config_extension: |
|
# matrix_jitsi_web_custom_interface_config_extension: |
|
||||||
# interfaceConfig.CONNECTION_INDICATOR_AUTO_HIDE_ENABLED = false;
|
# interfaceConfig.LANG_DETECTION = false;
|
||||||
|
# interfaceConfig.SHOW_JITSI_WATERMARK = false;
|
||||||
# interfaceConfig.DISABLE_VIDEO_BACKGROUND = true;
|
# interfaceConfig.DISABLE_VIDEO_BACKGROUND = true;
|
||||||
matrix_jitsi_web_custom_interface_config_extension: ''
|
matrix_jitsi_web_custom_interface_config_extension: ''
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
mode: 0644
|
mode: 0644
|
||||||
with_items:
|
with_items:
|
||||||
- custom-config.js
|
- custom-config.js
|
||||||
- interface_config.js
|
- custom-interface_config.js
|
||||||
when: matrix_jitsi_enabled|bool
|
when: matrix_jitsi_enabled|bool
|
||||||
|
|
||||||
- name: Ensure matrix-jitsi-web.service installed
|
- name: Ensure matrix-jitsi-web.service installed
|
||||||
|
|
|
@ -54,3 +54,16 @@
|
||||||
- {'old': 'matrix_jitsi_web_interface_config_show_watermark_for_guests', 'new': '<Not applicable anymore>'}
|
- {'old': 'matrix_jitsi_web_interface_config_show_watermark_for_guests', 'new': '<Not applicable anymore>'}
|
||||||
- {'old': 'matrix_jitsi_web_interface_config_invitation_powered_by', 'new': '<Not applicable anymore>'}
|
- {'old': 'matrix_jitsi_web_interface_config_invitation_powered_by', 'new': '<Not applicable anymore>'}
|
||||||
- {'old': 'matrix_jisti_web_interface_config_show_deep_linking_image', 'new': 'matrix_jitsi_web_interface_config_show_deep_linking_image'}
|
- {'old': 'matrix_jisti_web_interface_config_show_deep_linking_image', 'new': 'matrix_jitsi_web_interface_config_show_deep_linking_image'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_lang_detection', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_show_jitsi_watermark', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_jitsi_watermark_link', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_show_brand_watermark', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_brand_watermark_link', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_generate_room_names_on_welcome_page', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_display_welcome_page_content', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_app_name', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_native_app_name', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_provider_name', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_show_powered_by', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_disable_transcription_subtitles', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
- {'old': 'matrix_jitsi_web_interface_config_show_deep_linking_image', 'new': '<Deprecated, use matrix_jitsi_web_custom_interface_config_extension instead'}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
{{ matrix_jitsi_web_custom_interface_config_extension }}
|
||||||
|
|
|
@ -1,295 +0,0 @@
|
||||||
/* eslint-disable no-unused-vars, no-var, max-len */
|
|
||||||
/* eslint sort-keys: ["error", "asc", {"caseSensitive": false}] */
|
|
||||||
|
|
||||||
var interfaceConfig = {
|
|
||||||
APP_NAME: {{ matrix_jitsi_web_interface_config_app_name|to_json }},
|
|
||||||
AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)',
|
|
||||||
AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)',
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A UX mode where the last screen share participant is automatically
|
|
||||||
* pinned. Valid values are the string "remote-only" so remote participants
|
|
||||||
* get pinned but not local, otherwise any truthy value for all participants,
|
|
||||||
* and any falsy value to disable the feature.
|
|
||||||
*
|
|
||||||
* Note: this mode is experimental and subject to breakage.
|
|
||||||
*/
|
|
||||||
AUTO_PIN_LATEST_SCREEN_SHARE: 'remote-only',
|
|
||||||
BRAND_WATERMARK_LINK: {{ matrix_jitsi_web_interface_config_brand_watermark_link|to_json }},
|
|
||||||
|
|
||||||
CLOSE_PAGE_GUEST_HINT: false, // A html text to be shown to guests on the close page, false disables it
|
|
||||||
/**
|
|
||||||
* Whether the connection indicator icon should hide itself based on
|
|
||||||
* connection strength. If true, the connection indicator will remain
|
|
||||||
* displayed while the participant has a weak connection and will hide
|
|
||||||
* itself after the CONNECTION_INDICATOR_HIDE_TIMEOUT when the connection is
|
|
||||||
* strong.
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
CONNECTION_INDICATOR_AUTO_HIDE_ENABLED: true,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* How long the connection indicator should remain displayed before hiding.
|
|
||||||
* Used in conjunction with CONNECTION_INDICATOR_AUTOHIDE_ENABLED.
|
|
||||||
*
|
|
||||||
* @type {number}
|
|
||||||
*/
|
|
||||||
CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT: 5000,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If true, hides the connection indicators completely.
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
CONNECTION_INDICATOR_DISABLED: false,
|
|
||||||
|
|
||||||
DEFAULT_BACKGROUND: '#474747',
|
|
||||||
DEFAULT_LOCAL_DISPLAY_NAME: 'me',
|
|
||||||
DEFAULT_LOGO_URL: 'images/watermark.svg',
|
|
||||||
DEFAULT_REMOTE_DISPLAY_NAME: 'Fellow Jitster',
|
|
||||||
DEFAULT_WELCOME_PAGE_LOGO_URL: 'images/watermark.svg',
|
|
||||||
|
|
||||||
DISABLE_DOMINANT_SPEAKER_INDICATOR: false,
|
|
||||||
|
|
||||||
DISABLE_FOCUS_INDICATOR: false,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If true, notifications regarding joining/leaving are no longer displayed.
|
|
||||||
*/
|
|
||||||
DISABLE_JOIN_LEAVE_NOTIFICATIONS: false,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If true, presence status: busy, calling, connected etc. is not displayed.
|
|
||||||
*/
|
|
||||||
DISABLE_PRESENCE_STATUS: false,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether the ringing sound in the call/ring overlay is disabled. If
|
|
||||||
* {@code undefined}, defaults to {@code false}.
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
DISABLE_RINGING: false,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether the speech to text transcription subtitles panel is disabled.
|
|
||||||
* If {@code undefined}, defaults to {@code false}.
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
DISABLE_TRANSCRIPTION_SUBTITLES: {{ matrix_jitsi_web_interface_config_disable_transcription_subtitles|to_json }},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether or not the blurred video background for large video should be
|
|
||||||
* displayed on browsers that can support it.
|
|
||||||
*/
|
|
||||||
DISABLE_VIDEO_BACKGROUND: false,
|
|
||||||
|
|
||||||
DISPLAY_WELCOME_FOOTER: true,
|
|
||||||
DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD: false,
|
|
||||||
DISPLAY_WELCOME_PAGE_CONTENT: {{ matrix_jitsi_web_interface_config_display_welcome_page_content|to_json }},
|
|
||||||
DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false,
|
|
||||||
|
|
||||||
ENABLE_DIAL_OUT: true,
|
|
||||||
|
|
||||||
ENABLE_FEEDBACK_ANIMATION: false, // Enables feedback star animation.
|
|
||||||
|
|
||||||
FILM_STRIP_MAX_HEIGHT: 120,
|
|
||||||
|
|
||||||
GENERATE_ROOMNAMES_ON_WELCOME_PAGE: {{ matrix_jitsi_web_interface_config_generate_room_names_on_welcome_page|to_json }},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hide the logo on the deep linking pages.
|
|
||||||
*/
|
|
||||||
HIDE_DEEP_LINKING_LOGO: false,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hide the invite prompt in the header when alone in the meeting.
|
|
||||||
*/
|
|
||||||
HIDE_INVITE_MORE_HEADER: false,
|
|
||||||
|
|
||||||
INITIAL_TOOLBAR_TIMEOUT: 20000,
|
|
||||||
JITSI_WATERMARK_LINK: {{ matrix_jitsi_web_interface_config_jitsi_watermark_link|to_json }},
|
|
||||||
|
|
||||||
LANG_DETECTION: {{ matrix_jitsi_web_interface_config_lang_detection|to_json }}, // Allow i18n to detect the system language
|
|
||||||
LIVE_STREAMING_HELP_LINK: 'https://jitsi.org/live', // Documentation reference for the live streaming feature.
|
|
||||||
LOCAL_THUMBNAIL_RATIO: 16 / 9, // 16:9
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Maximum coefficient of the ratio of the large video to the visible area
|
|
||||||
* after the large video is scaled to fit the window.
|
|
||||||
*
|
|
||||||
* @type {number}
|
|
||||||
*/
|
|
||||||
MAXIMUM_ZOOMING_COEFFICIENT: 1.3,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether the mobile app Jitsi Meet is to be promoted to participants
|
|
||||||
* attempting to join a conference in a mobile Web browser. If
|
|
||||||
* {@code undefined}, defaults to {@code true}.
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
MOBILE_APP_PROMO: true,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specify custom URL for downloading android mobile app.
|
|
||||||
*/
|
|
||||||
MOBILE_DOWNLOAD_LINK_ANDROID: 'https://play.google.com/store/apps/details?id=org.jitsi.meet',
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specify custom URL for downloading f droid app.
|
|
||||||
*/
|
|
||||||
MOBILE_DOWNLOAD_LINK_F_DROID: 'https://f-droid.org/en/packages/org.jitsi.meet/',
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specify URL for downloading ios mobile app.
|
|
||||||
*/
|
|
||||||
MOBILE_DOWNLOAD_LINK_IOS: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905',
|
|
||||||
|
|
||||||
NATIVE_APP_NAME: {{ matrix_jitsi_web_interface_config_native_app_name|to_json }},
|
|
||||||
|
|
||||||
// Names of browsers which should show a warning stating the current browser
|
|
||||||
// has a suboptimal experience. Browsers which are not listed as optimal or
|
|
||||||
// unsupported are considered suboptimal. Valid values are:
|
|
||||||
// chrome, chromium, edge, electron, firefox, nwjs, opera, safari
|
|
||||||
OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'nwjs', 'electron', 'safari' ],
|
|
||||||
|
|
||||||
POLICY_LOGO: null,
|
|
||||||
PROVIDER_NAME: {{ matrix_jitsi_web_interface_config_provider_name|to_json }},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If true, will display recent list
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
RECENT_LIST_ENABLED: true,
|
|
||||||
REMOTE_THUMBNAIL_RATIO: 1, // 1:1
|
|
||||||
|
|
||||||
SETTINGS_SECTIONS: [ 'devices', 'language', 'moderator', 'profile', 'calendar' ],
|
|
||||||
SHOW_BRAND_WATERMARK: {{ matrix_jitsi_web_interface_config_show_brand_watermark|to_json }},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Decides whether the chrome extension banner should be rendered on the landing page and during the meeting.
|
|
||||||
* If this is set to false, the banner will not be rendered at all. If set to true, the check for extension(s)
|
|
||||||
* being already installed is done before rendering.
|
|
||||||
*/
|
|
||||||
SHOW_CHROME_EXTENSION_BANNER: false,
|
|
||||||
|
|
||||||
SHOW_DEEP_LINKING_IMAGE: {{ matrix_jitsi_web_interface_config_show_deep_linking_image|to_json }},
|
|
||||||
SHOW_JITSI_WATERMARK: {{ matrix_jitsi_web_interface_config_show_jitsi_watermark|to_json }},
|
|
||||||
SHOW_POWERED_BY: {{ matrix_jitsi_web_interface_config_show_powered_by|to_json }},
|
|
||||||
SHOW_PROMOTIONAL_CLOSE_PAGE: false,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If indicated some of the error dialogs may point to the support URL for
|
|
||||||
* help.
|
|
||||||
*/
|
|
||||||
SUPPORT_URL: 'https://community.jitsi.org/',
|
|
||||||
|
|
||||||
TOOLBAR_ALWAYS_VISIBLE: false,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The name of the toolbar buttons to display in the toolbar, including the
|
|
||||||
* "More actions" menu. If present, the button will display. Exceptions are
|
|
||||||
* "livestreaming" and "recording" which also require being a moderator and
|
|
||||||
* some values in config.js to be enabled. Also, the "profile" button will
|
|
||||||
* not display for users with a JWT.
|
|
||||||
* Notes:
|
|
||||||
* - it's impossible to choose which buttons go in the "More actions" menu
|
|
||||||
* - it's impossible to control the placement of buttons
|
|
||||||
* - 'desktop' controls the "Share your screen" button
|
|
||||||
*/
|
|
||||||
TOOLBAR_BUTTONS: [
|
|
||||||
{% if matrix_jitsi_enable_transcriptions %}
|
|
||||||
'closedcaptions',
|
|
||||||
{% endif %}
|
|
||||||
{% if matrix_jitsi_enable_recording %}
|
|
||||||
'recording',
|
|
||||||
{% endif %}
|
|
||||||
'microphone', 'camera', 'desktop', 'embedmeeting', 'fullscreen',
|
|
||||||
'fodeviceselection', 'hangup', 'profile', 'chat',
|
|
||||||
'livestreaming', 'etherpad', 'sharedvideo', 'settings', 'raisehand',
|
|
||||||
'videoquality', 'filmstrip', 'invite', 'feedback', 'stats', 'shortcuts',
|
|
||||||
'tileview', 'videobackgroundblur', 'download', 'help', 'mute-everyone', 'security'
|
|
||||||
],
|
|
||||||
|
|
||||||
TOOLBAR_TIMEOUT: 4000,
|
|
||||||
|
|
||||||
// Browsers, in addition to those which do not fully support WebRTC, that
|
|
||||||
// are not supported and should show the unsupported browser page.
|
|
||||||
UNSUPPORTED_BROWSERS: [],
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to show thumbnails in filmstrip as a column instead of as a row.
|
|
||||||
*/
|
|
||||||
VERTICAL_FILMSTRIP: true,
|
|
||||||
|
|
||||||
// Determines how the video would fit the screen. 'both' would fit the whole
|
|
||||||
// screen, 'height' would fit the original video height to the height of the
|
|
||||||
// screen, 'width' would fit the original video width to the width of the
|
|
||||||
// screen respecting ratio.
|
|
||||||
VIDEO_LAYOUT_FIT: 'both',
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If true, hides the video quality label indicating the resolution status
|
|
||||||
* of the current large video.
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
VIDEO_QUALITY_LABEL_DISABLED: false,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* How many columns the tile view can expand to. The respected range is
|
|
||||||
* between 1 and 5.
|
|
||||||
*/
|
|
||||||
// TILE_VIEW_MAX_COLUMNS: 5,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specify Firebase dynamic link properties for the mobile apps.
|
|
||||||
*/
|
|
||||||
// MOBILE_DYNAMIC_LINK: {
|
|
||||||
// APN: 'org.jitsi.meet',
|
|
||||||
// APP_CODE: 'w2atb',
|
|
||||||
// CUSTOM_DOMAIN: undefined,
|
|
||||||
// IBI: 'com.atlassian.JitsiMeet.ios',
|
|
||||||
// ISI: '1165103905'
|
|
||||||
// },
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specify mobile app scheme for opening the app from the mobile browser.
|
|
||||||
*/
|
|
||||||
// APP_SCHEME: 'org.jitsi.meet',
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specify the Android app package name.
|
|
||||||
*/
|
|
||||||
// ANDROID_APP_PACKAGE: 'org.jitsi.meet',
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Override the behavior of some notifications to remain displayed until
|
|
||||||
* explicitly dismissed through a user action. The value is how long, in
|
|
||||||
* milliseconds, those notifications should remain displayed.
|
|
||||||
*/
|
|
||||||
// ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT: 15000,
|
|
||||||
|
|
||||||
// List of undocumented settings
|
|
||||||
/**
|
|
||||||
INDICATOR_FONT_SIZES
|
|
||||||
PHONE_NUMBER_REGEX
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Allow all above example options to include a trailing comma and
|
|
||||||
// prevent fear when commenting out the last value.
|
|
||||||
// eslint-disable-next-line sort-keys
|
|
||||||
makeJsonParserHappy: 'even if last key had a trailing comma'
|
|
||||||
|
|
||||||
// No configuration value should follow this line.
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
{{ matrix_jitsi_web_custom_interface_config_extension }}
|
|
||||||
|
|
||||||
|
|
||||||
/* eslint-enable no-unused-vars, no-var, max-len */
|
|
Loading…
Reference in a new issue