YunoHost-Apps / movim_ynh

Movim package for YunoHost
https://movim.eu/
GNU Affero General Public License v3.0
6 stars 13 forks source link

reload buttons do not work / Uncaught (in promise) SyntaxError: JSON.parse: unexpected character #77

Open anubister opened 3 weeks ago

anubister commented 3 weeks ago

Unable to use "reload" buttons

After a successful login, the buttons involving the JS reload function (basically all buttons on the left panel like "Configuration"; excepted "Disconnect") do not work. UI show like if it would start to update the page but stop immediately. Firefox debugger says:

Uncaught (in promise) SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
    reload https://domain/scripts/movim_utils.js?t=1724358018:139
    promise callback*reload/< https://domain/scripts/movim_utils.js?t=1724358018:136
    promise callback*reload https://domain/scripts/movim_utils.js?t=1724358018:132
    onclick https://domain/conf?soft=true:1

Nota : manually typing https://domain/conf?soft=true:1 do load the config panel as expected, so it seems a dummy JS error.

Context

Steps to reproduce

Expected behavior

Buttons do what they aim to do

Investigations / localisation of the problem

The Parameter button call the JS function MovimUtils.reload('//domain/conf')

Which is provided by https://domain/scripts/movim_utils.js?t=1724358018:139

Containing

    reload: function (uri, noHistory) {
        requestUri = uri + '?soft=true';

        document.body.classList.add('loading');
        document.body.classList.remove('finished');

        MovimRPC.fetchWithTimeout(requestUri, {
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            }
        }).then(reponse => {
            onloaders = [];
            onfocused = [];

            reponse.text().then(value => {
                document.body.classList.remove('loading');

                let page = JSON.parse(value);

I guess MovimRPC.fetchWithTimeout() is not fetch some JSON as expected but don't know how further debug, any hint welcomed!

anubister commented 3 weeks ago

I entered in the debugger:

MovimRPC.fetchWithTimeout('//domain/conf?soft=true', {
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            }
        }).then(reponse => {
            onloaders = [];
            onfocused = [];

            reponse.text().then(value => {
                document.body.classList.remove('loading');
window.alert(value);})})

which returns, maybe truncated, but does not looks like to be json !

<!DOCTYPE html>
<html translate="no" lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Configuration</title>

        <meta name="theme-color" content="#1C1D5B" />

  <meta property="og:title" content="Configuration"/>
  <meta name="twitter:title" content="Configuration"/>
  <meta property="og:type" content="article"/>
  <meta property="twitter:card" content="summary"/>
  <meta property="twitter:site" content="MovimNetwork"/>

        <meta name="application-name" content="Movim">
        <link rel="manifest" href="//domain/manifest" />
        <link rel="apple-touch-icon" href="//domain/theme/img/app/192_square.png?t=1724358018"/>
        <link rel="icon" type="image/png" href="//domain/theme/img/app/128.png?t=1724358018" sizes="128x128">
        <link rel="stylesheet" href="//domain/colors?t=1725212582" type="text/css" />
        <script src="//domain/system?t=1725212582" defer></script>
        <meta name="viewport" content="width=device-width, user-scalable=no">
        <link rel="stylesheet" href="//domain/theme/css/style.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/notification.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/header.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/listn.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/grid.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/article.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/form.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/icon.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/dialog.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/card.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/chip.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/table.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/color.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/block.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/menu.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/fonts.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/title.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/typo.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/elevation.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/theme/css/scrollbar.css?t=1724358018" class="page"><link rel="stylesheet" href="//domain/cache/Drawer_drawer.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Confirm_confirm.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Preview_preview.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Visio_visio.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Search_search.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Onboarding_onboarding.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Notifications_notifications.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Location_location.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Presence_presence.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/BottomNavigation_bottomnavigation.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/EmojisConfig_emojisconfig.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/VisioConfig_visioconfig.css?t=1724358018" class="widget"><link rel="stylesheet" href="//domain/cache/Blocked_blocked.css?t=1724358018" class="widget"><script type="text/javascript" src="//domain/scripts/movim_utils.js?t=1724358018" class="page"></script><script type="text/javascript" src="//domain/scripts/movim_events.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/movim_e2ee.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/movim_visio.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/movim_base.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/movim_favicon.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/movim_avatar.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/movim_emojis_list.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/movim_rpc.js?t=1724358018" class="page"></script><script type="text/javascript" src="//domain/scripts/movim_tpl.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/libsignal_protocol.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/thumbhash.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/scripts/movim_websocket.js?t=1724358018" defer class="page"></script><script type="text/javascript" src="//domain/cache/Dialog_dialog.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Drawer_drawer.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Preview_preview.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Notif_notif.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Toast_toast.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Visio_visio.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Visio_visio_utils.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Visio_visio_dtmf.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Search_search.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Onboarding_onboarding.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Notifications_notifications.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Location_location.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Presence_presence.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Navigation_navigation.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/BottomNavigation_bottomnavigation.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Tabs_tabs.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Account_account.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/EmojisConfig_emojisconfig.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/NotificationConfig_notificationconfig.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/VisioConfig_visioconfig.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/AdHoc_adhoc.js?t=1724358018" defer class="widget"></script><script type="text/javascript" src="//domain/cache/Blocked_blocked.js?t=1724358018" defer class="widget"></script><script type="text/javascript" class="inline">function Dialog_ajaxClear(){MWSs('Dialog','ajaxClear')}function Drawer_ajaxClear(){MWSs('Drawer','ajaxClear')}function Confirm_ajaxAccept(to,id,url,method){MWSs('Confirm','ajaxAccept',[to,id,url,method])}function Confirm_ajaxRefuse(to,id,url,method){MWSs('Confirm','ajaxRefuse',[to,id,url,method])}function Preview_ajaxHttpShow(url,messageId){ return MWSa('Preview','ajaxHttpShow',[url,messageId])}function Preview_ajaxHttpGallery(url,number){ return MWSa('Preview','ajaxHttpGallery',[url,number])}function Preview_ajaxHttpHide(){ return MWSa('Preview','ajaxHttpHide')}function Preview_ajaxCopyNotify(){MWSs('Preview','ajaxCopyNotify')}function Notif_ajaxClear(key){MWSs('Notif','ajaxClear',[key])}function Notif_ajaxGet(){MWSs('Notif','ajaxGet')}function Notif_ajaxCurrent(key){MWSs('Notif','ajaxCurrent',[key])}function Notif_ajaxRegisterPushSubscrition(endpoint,auth,p256dh,userAgent){MWSs('Notif','ajaxRegisterPushSubscrition',[endpoint,auth,p256dh,userAgent])}function Notif_ajaxHttpTouchPushSubscription(endpoint){ return MWSa('Notif','ajaxHttpTouchPushSubscription',[endpoint])}funct
anubister commented 2 weeks ago

On a "normal" Movim installation (mov.im), for the same command I get :

{"title":"Configuration","widgetsCSS":["\/\/mov.im\/cache\/Drawer_drawer.css?t=1720524323","\/\/mov.im\/cache\/Confirm_confirm.css?t=1720524323","\/\/mov.im\/cache\/Preview_preview.css?t=1720524323","\/\/mov.im\/cache\/Visio_visio.css?t=1725482902","\/\/mov.im\/cache\/Visio_visio_lobby.css?t=1725482902","\/\/mov.im\/cache\/Search_search.css?t=1726141655","\/\/mov.im\/cache\/Onboarding_onboarding.css?t=1724344046","\/\/mov.im\/cache\/Notifications_notifications.css?t=1722981967","\/\/mov.im\/cache\/Location_location.css?t=1720524323","\/\/mov.im\/cache\/Presence_presence.css?t=1720524323","\/\/mov.im\/cache\/BottomNavigation_bottomnavigation.css?t=1720524323","\/\/mov.im\/cache\/Avatar_avatar.css?t=1720524323","\/\/mov.im\/cache\/Config_config.css?t=1720524323","\/\/mov.im\/cache\/EmojisConfig_emojisconfig.css?t=1721388921","\/\/mov.im\/cache\/Blocked_blocked.css?t=1720524323"],"widgetsScripts":["\/\/mov.im\/cache\/Dialog_dialog.js?t=1720524323","\/\/mov.im\/cache\/Drawer_drawer.js?t=1720524323","\/\/mov.im\/cache\/Preview_preview.js?t=1720524323","\/\/mov.im\/cache\/Notif_notif.js?t=1720524323","\/\/mov.im\/cache\/Toast_toast.js?t=1720524323","\/\/mov.im\/cache\/Visio_visio.js?t=1726297879","\/\/mov.im\/cache\/Visio_visio_utils.js?t=1726552458","\/\/mov.im\/cache\/Visio_visio_dtmf.js?t=1723835357","\/\/mov.im\/cache\/Search_search.js?t=1726174565","\/\/mov.im\/cache\/Onboarding_onboarding.js?t=1724344046","\/\/mov.im\/cache\/Notifications_notifications.js?t=1720524323","\/\/mov.im\/cache\/Location_location.js?t=1720524323","\/\/mov.im\/cache\/Presence_presence.js?t=1720524323","\/\/mov.im\/cache\/Navigation_navigation.js?t=1720524323","\/\/mov.im\/cache\/BottomNavigation_bottomnavigation.js?t=1720524323","\/\/mov.im\/cache\/Tabs_tabs.js?t=1720524323","\/\/mov.im\/cache\/Avatar_avatar.js?t=1720524323","\/\/mov.im\/cache\/Config_config.js?t=1720524323","\/\/mov.im\/cache\/Account_account.js?t=1724957033","\/\/mov.im\/cache\/EmojisConfig_emojisconfig.js?t=1721388921","\/\/mov.im\/cache\/NotificationConfig_notificationconfig.js?t=1720524323","\/\/mov.im\/cache\/AdHoc_adhoc.js?t=1720524323","\/\/mov.im\/cache\/Blocked_blocked.js?t=1720524323"],"inlineScripts":"function Dialog_ajaxClear(){MWSs('Dialog','ajaxClear')}function Drawer_ajaxClear(){MWSs('Drawer','ajaxClear')}function Confirm_ajaxAccept(to,id,url,method){MWSs('Confirm','ajaxAccept',[to,id,url,method])}function Confirm_ajaxRefuse(to,id,url,method){MWSs('Confirm','ajaxRefuse',[to,id,url,method])}function Preview_ajaxHttpShow(url,messageId){ return MWSa('Preview','ajaxHttpShow',[url,messageId])}function Preview_ajaxHttpGallery(url,number){ return MWSa('Preview','ajaxHttpGallery',[url,number])}function Preview_ajaxHttpHide(){ return MWSa('Preview','ajaxHttpHide')}function Preview_ajaxCopyNotify(){MWSs('Preview','ajaxCopyNotify')}function Notif_ajaxClear(key){MWSs('Notif','ajaxClear',[key])}function Notif_ajaxGet(){MWSs('Notif','ajaxGet')}function Notif_ajaxCurrent(key){MWSs('Notif','ajaxCurrent',[key])}function Notif_ajaxRegisterPushSubscrition(endpoint,auth,p256dh,userAgent){MWSs('Notif','ajaxRegisterPushSubscrition',[endpoint,auth,p256dh,userAgent])}function Notif_ajaxHttpTouchPushSubscription(endpoint){ return MWSa('Notif','ajaxHttpTouchPushSubscription',[endpoint])}function Notif_ajaxRequest(){MWSs('Notif','ajaxRequest')}function Notif_ajaxRequestGranted(){MWSs('Notif','ajaxRequestGranted')}function Notif_ajaxRequestDenied(){MWSs('Notif','ajaxRequestDenied')}function Visio_ajaxPropose(to,id,withVideo){MWSs('Visio','ajaxPropose',[to,id,withVideo])}function Visio_ajaxAccept(to,id){MWSs('Visio','ajaxAccept',[to,id])}function Visio_ajaxReject(to,id){MWSs('Visio','ajaxReject',[to,id])}function Visio_ajaxMute(to,id,name){MWSs('Visio','ajaxMute',[to,id,name])}function Visio_ajaxUnmute(to,id,name){MWSs('Visio','ajaxUnmute',[to,id,name])}function Visio_ajaxGetLobby(jid,calling,withVideo,id){MWSs('Visio','ajaxGetLobby',[jid,calling,withVideo,id])}function Visio_ajaxSessionInitiate(sdp,to,id){MWSs('Visio','ajaxSessionInitiate',[sdp,to,id])}function Visio_ajaxResolveServices(){MWSs('Visio','ajaxResolveServices')}function Visio_ajaxPrepare(jid){MWSs('Visio','ajaxPrepare',[jid])}function Visio_ajaxGetStates(){MWSs('Visio','ajaxGetStates')}function Visio_ajaxSessionAccept(sdp,to,id){MWSs('Visio','ajaxSessionAccept',[sdp,to,id])}function Visio_ajaxCandidate(sdp,to,id){MWSs('Visio','ajaxCandidate',[sdp,to,id])}function Visio_ajaxEnd(to,sid,reason){MWSs('Visio','ajaxEnd',[to,sid,reason])}function Search_ajaxRequest(chatroomActions){MWSs('Search','ajaxRequest',[chatroomActions])}function Search_ajaxHttpInitRoster(){ return MWSa('Search','ajaxHttpInitRoster')}function Search_ajaxSearch(key){MWSs('Search','ajaxSearch',[key])}function Search_ajaxChat(jid){MWSs('Search','ajaxChat',[jid])}function Onboarding_ajaxAskPublic(){MWSs('Onboarding','ajaxAskPublic')}function Onboarding_ajaxEnablePublic(){MWSs('Onboarding','ajaxEnablePublic')}function Onboarding_ajaxEnableRestricted(){MWSs('Onboarding','ajaxEnableRestricted')}function Notifications_ajaxRequest(){MWSs('Notifications','ajaxRequest')}function Notifications_ajaxSetCounter(){MWSs('Notifications','ajaxSetCounter')}function Notifications_ajaxAddAsk(jid){MWSs('Notifications','ajaxAddAsk',[jid])}function Notifications_ajaxAdd(form){MWSs('Notifications','ajaxAdd',[form])}function Notifications_ajaxDeleteContact(jid){MWSs('Notifications','ajaxDeleteContact',[jid])}function Notifications_ajaxDelete(jid){MWSs('Notifications','ajaxDelete',[jid])}function Notifications_ajaxAccept(jid){MWSs('Notifications','ajaxAccept',[jid])}function Notifications_ajaxRefuse(jid){MWSs('Notifications','ajaxRefuse',[jid])}function Location_ajaxPublish(latitude,longitude,accuracy){MWSs('Location','ajaxPublish',[latitude,longitude,accuracy])}function Location_ajaxClear(){MWSs('Location','ajaxClear')}function Location_ajaxToggle(){MWSs('Location','ajaxToggle')}function Location_ajaxHttpGet(){ return MWSa('Location','ajaxHttpGet')}function Presence_ajaxAskLogout(){MWSs('Presence','ajaxAskLogout')}function Presence_ajaxLogout(){MWSs('Presence','ajaxLogout')}function Presence_ajaxHttpGetPresence(){ return MWSa('Presence','ajaxHttpGetPresence')}function Presence_ajaxConfigGet(){MWSs('Presence','ajaxConfigGet')}function Presence_ajaxPubsubSubscriptionsGet(){MWSs('Presence','ajaxPubsubSubscriptionsGet')}function Presence_ajaxServerCapsGet(){MWSs('Presence','ajaxServerCapsGet')}function Presence_ajaxServerDisco(){MWSs('Presence','ajaxServerDisco')}function Presence_ajaxProfileRefresh(){MWSs('Presence','ajaxProfileRefresh')}function Presence_ajaxBookmarksGet(){MWSs('Presence','ajaxBookmarksGet')}function Presence_ajaxFeedRefresh(){MWSs('Presence','ajaxFeedRefresh')}function Navigation_ajaxHttpRefresh(){ return MWSa('Navigation','ajaxHttpRefresh')}function BottomNavigation_ajaxHttpRefresh(){ return MWSa('BottomNavigation','ajaxHttpRefresh')}function Vcard4_ajaxGetVcard(){MWSs('Vcard4','ajaxGetVcard')}function Vcard4_ajaxVcardSubmit(vcard){MWSs('Vcard4','ajaxVcardSubmit',[vcard])}function Avatar_ajaxGetForm(){MWSs('Avatar','ajaxGetForm')}function Avatar_ajaxGetBannerForm(){MWSs('Avatar','ajaxGetBannerForm')}function Avatar_ajaxGetAvatar(){MWSs('Avatar','ajaxGetAvatar')}function Avatar_ajaxHttpGetCurrent(){ return MWSa('Avatar','ajaxHttpGetCurrent')}function Avatar_ajaxSubmit(avatar){MWSs('Avatar','ajaxSubmit',[avatar])}function Avatar_ajaxBannerSubmit(banner){MWSs('Avatar','ajaxBannerSubmit',[banner])}function Config_ajaxMAMGetConfig(){MWSs('Config','ajaxMAMGetConfig')}function Config_ajaxMAMSetConfig(value){MWSs('Config','ajaxMAMSetConfig',[value])}function Config_ajaxBlogGetConfig(){MWSs('Config','ajaxBlogGetConfig')}function Config_ajaxBlogSetConfig(data){MWSs('Config','ajaxBlogSetConfig',[data])}function Config_ajaxSubmit(data){MWSs('Config','ajaxSubmit',[data])}function Config_ajaxEditNickname(){MWSs('Config','ajaxEditNickname')}function Config_ajaxSaveNickname(nickname){MWSs('Config','ajaxSaveNickname',[nickname])}function Config_ajaxChangePrivacy(value){MWSs('Config','ajaxChangePrivacy',[value])}function Account_ajaxChangePassword(){MWSs('Account','ajaxChangePassword')}function Account_ajaxChangePasswordConfirm(form){MWSs('Account','ajaxChangePasswordConfirm',[form])}function Account_ajaxRemoveAccount(){MWSs('Account','ajaxRemoveAccount')}function Account_ajaxClearAccount(){MWSs('Account','ajaxClearAccount')}function Account_ajaxClearAccountConfirm(){MWSs('Account','ajaxClearAccountConfirm')}function Account_ajaxHttpGetPresences(){ return MWSa('Account','ajaxHttpGetPresences')}function Account_ajaxHttpGetFingerprints(identity,resolvedDeviceIds){ return MWSa('Account','ajaxHttpGetFingerprints',[identity,resolvedDeviceIds])}function Account_ajaxDeleteBundleConfirm(id){MWSs('Account','ajaxDeleteBundleConfirm',[id])}function Account_ajaxGetGateways(){MWSs('Account','ajaxGetGateways')}function Account_ajaxDeleteBundle(id){MWSs('Account','ajaxDeleteBundle',[id])}function Account_ajaxRemoveAccountConfirm(form){MWSs('Account','ajaxRemoveAccountConfirm',[form])}function Account_ajaxGetRegistration(server){MWSs('Account','ajaxGetRegistration',[server])}function Account_ajaxRegister(server,form){MWSs('Account','ajaxRegister',[server,form])}function EmojisConfig_ajaxHttpGet(){ return MWSa('EmojisConfig','ajaxHttpGet')}function EmojisConfig_ajaxAddEditFavoriteForm(emojiId){MWSs('EmojisConfig','ajaxAddEditFavoriteForm',[emojiId])}function EmojisConfig_ajaxAddEditFavorite(form){MWSs('EmojisConfig','ajaxAddEditFavorite',[form])}function EmojisConfig_ajaxRemoveFavorite(emojiId){MWSs('EmojisConfig','ajaxRemoveFavorite',[emojiId])}function NotificationConfig_ajaxHttpPushGetConfig(endpoint){ return MWSa('NotificationConfig','ajaxHttpPushGetConfig',[endpoint])}function NotificationConfig_ajaxTogglePushConfig(id,enabled){MWSs('NotificationConfig','ajaxTogglePushConfig',[id,enabled])}function NotificationConfig_ajaxHttpRequest(){ return MWSa('NotificationConfig','ajaxHttpRequest')}f