const auth = { objectGuid: getCookie('ObjectGUID'), sAMAccountName: getCookie('sAMAccountName') }; const mainSocket = io.connect('/', { reconnect: true, auth: auth }); const adminSocket = io.connect('/admin', { reconnect: true, auth: auth }); const container = document.getElementById('message-container'); adminSocket.on('eventlog', (data) => { showMessage('EventLog', `${data.datetime}
${[-1,0].includes(data.levelId) ? '' : data.trace}

${(Array.isArray(data.message) ? data.message.split('\r\n').join('
').split('\t').join(' ') : data.message.split('\r\n').join('
').split('\t').join(' '))}`, data.levelId, () => { } , 10000); }); mainSocket.on('event', (data) => { showMessage(data.pluginName, `[${data.datetime}]

${(Array.isArray(data.message) ? data.message.split('\r\n').join('
').split('\t').join(' ') : data.message.split('\r\n').join('
').split('\t').join(' '))}`, data.levelId, () => { } , 10000); }); //-1=test, 0=success, 1=log, 2=warn, 4=error, 8=throw_exception function writeEventLog(levelId, pluginName, message) { adminSocket.emit('eventlog', { objectGuid: getCookie('ObjectGUID'), levelId: levelId, pluginName: pluginName, message: message.stack === undefined ? message : { message: message.message, stack: message.stack } }); } // levelId: if -1, then write no log entry // sendToParams: where clause to find objectGUIDs to send function sendUserEvent(pluginName, message, sendToParams, levelId = -1) { mainSocket.emit('event', { objectGuid: getCookie('ObjectGUID'), levelId: levelId, pluginName: pluginName, message: message.stack === undefined ? message : { message: message.message }, sendToParams: sendToParams }); } /* { "status":"unload", "pluginName":"user_management", "metadata":{ "name":"user_management", "menuName":"User Management", "description":"Beschreibung hier einfügen", "version":"0.9.25.11.14", "icon":"", "permissions":[], "config":{ }, "active":false }, "levelId":0, "message":"Plugin user_management entladen", "authorized": true } */ mainSocket.on('plugin_status', payload => { const startMenuItem = document.querySelector(`[data-appname=${payload.metadata.name}]`); if(['load', 'unload', 'update'].includes(payload.status)) { if(payload.status == 'load') { if(payload.authorized) { startMenuItem.classList.remove('unload'); startMenuItem.setAttribute('data-active', true); } else { startMenuItem.classList.add('unload'); startMenuItem.setAttribute('data-active', false); } } else if(payload.status == 'unload') { startMenuItem.classList.add('unload'); startMenuItem.setAttribute('data-active', false); } else if(payload.status == 'update') { if(payload.authorized && payload.metadata.active) { startMenuItem.classList.remove('unload'); startMenuItem.setAttribute('data-active', true); } else if(!payload.authorized){ startMenuItem.classList.add('unload'); startMenuItem.setAttribute('data-active', false); } } } });