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);
}
}
}
});