Initial commit
This commit is contained in:
@@ -0,0 +1,225 @@
|
||||
|
||||
function Core(main) {
|
||||
//init materializecss functions
|
||||
$('.tabs').tabs();
|
||||
|
||||
//react to user events
|
||||
$('#btn1').click(function(){
|
||||
sendToAdapterInstance();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
function sendToAdapterInstance(){
|
||||
main.socket.emit('sendTo', 'adapter.0', {
|
||||
command: 'your command',
|
||||
}, function (result) {
|
||||
console.log(result);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
let firstConnect = true;
|
||||
|
||||
|
||||
//Definition for socket.io connection
|
||||
let main = {
|
||||
socket: io.connect(location.protocol + '//' + location.host, {
|
||||
query: 'ws=true'
|
||||
}),
|
||||
saveConfig: function (attr, value) {
|
||||
if (!main.config) return;
|
||||
if (attr) main.config[attr] = value;
|
||||
|
||||
if (typeof storage !== 'undefined') {
|
||||
storage.set('adminConfig', JSON.stringify(main.config));
|
||||
}
|
||||
},
|
||||
showError: function (error, cb) {
|
||||
main.showMessage(_(error), _('Error'), 'alert', cb);
|
||||
},
|
||||
showMessage: function (message, title, icon, cb) {
|
||||
if (typeof title === 'function') {
|
||||
cb = title;
|
||||
title = null;
|
||||
icon = null;
|
||||
}
|
||||
if (typeof icon === 'function') {
|
||||
cb = icon;
|
||||
icon = null;
|
||||
}
|
||||
$dialogMessage.dialog('option', 'title', title || _('Message'));
|
||||
$('#dialog-message-text').html(message);
|
||||
|
||||
if (icon) {
|
||||
if (!icon.match(/^ui\-icon\-/)) icon = 'ui-icon-' + icon;
|
||||
|
||||
$('#dialog-message-icon')
|
||||
.show()
|
||||
.attr('class', '')
|
||||
.addClass('ui-icon ' + icon);
|
||||
} else {
|
||||
$('#dialog-message-icon').hide();
|
||||
}
|
||||
$dialogMessage.data('callback', cb);
|
||||
$dialogMessage.dialog('open');
|
||||
},
|
||||
confirmMessage: function (message, title, icon, buttons, callback) {
|
||||
if (typeof buttons === 'function') {
|
||||
callback = buttons;
|
||||
$dialogConfirm.dialog('option', 'buttons', [
|
||||
{
|
||||
text: _('Ok'),
|
||||
click: function () {
|
||||
let cb = $(this).data('callback');
|
||||
$(this).dialog('close');
|
||||
if (cb) cb(true);
|
||||
}
|
||||
},
|
||||
{
|
||||
text: _('Cancel'),
|
||||
click: function () {
|
||||
let cb = $(this).data('callback');
|
||||
$(this).dialog('close');
|
||||
if (cb) cb(false);
|
||||
}
|
||||
}
|
||||
|
||||
]);
|
||||
} else if (typeof buttons === 'object') {
|
||||
for (let b = 0; b < buttons.length; b++) {
|
||||
buttons[b] = {
|
||||
text: buttons[b],
|
||||
id: 'dialog-confirm-button-' + b,
|
||||
click: function (e) {
|
||||
let id = parseInt(e.currentTarget.id.substring('dialog-confirm-button-'.length), 10);
|
||||
let cb = $(this).data('callback');
|
||||
$(this).dialog('close');
|
||||
if (cb) cb(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
$dialogConfirm.dialog('option', 'buttons', buttons);
|
||||
}
|
||||
|
||||
$dialogConfirm.dialog('option', 'title', title || _('Message'));
|
||||
$('#dialog-confirm-text').html(message);
|
||||
if (icon) {
|
||||
$('#dialog-confirm-icon')
|
||||
.show()
|
||||
.attr('class', '')
|
||||
.addClass('ui-icon ui-icon-' + icon);
|
||||
} else {
|
||||
$('#dialog-confirm-icon').hide();
|
||||
}
|
||||
$dialogConfirm.data('callback', callback);
|
||||
$dialogConfirm.dialog('open');
|
||||
},
|
||||
initSelectId: function () {
|
||||
if (main.selectId) return main.selectId;
|
||||
main.selectId = $('#dialog-select-member').selectId('init', {
|
||||
objects: main.objects,
|
||||
states: main.states,
|
||||
noMultiselect: true,
|
||||
imgPath: '../../lib/css/fancytree/',
|
||||
filter: {type: 'state'},
|
||||
getObjects: getObjects,
|
||||
texts: {
|
||||
select: _('Select'),
|
||||
cancel: _('Cancel'),
|
||||
all: _('All'),
|
||||
id: _('ID'),
|
||||
name: _('Name'),
|
||||
role: _('Role'),
|
||||
room: _('Room'),
|
||||
value: _('Value'),
|
||||
selectid: _('Select ID'),
|
||||
from: _('From'),
|
||||
lc: _('Last changed'),
|
||||
ts: _('Time stamp'),
|
||||
wait: _('Processing...'),
|
||||
ack: _('Acknowledged')
|
||||
},
|
||||
columns: ['image', 'name', 'role', 'room', 'value']
|
||||
});
|
||||
return main.selectId;
|
||||
},
|
||||
subscribe: function (isSubscribe) {
|
||||
if (!main.socket) return;
|
||||
if (isSubscribe) {
|
||||
main.socket.emit('subscribeObjects', 'script.*');
|
||||
main.socket.emit('subscribeObjects', 'system.adapter.*');
|
||||
main.socket.emit('requireLog', true);
|
||||
} else {
|
||||
main.socket.emit('unsubscribeObjects', 'script.*');
|
||||
main.socket.emit('unsubscribeObjects', 'system.adapter.*');
|
||||
main.socket.emit('requireLog', false);
|
||||
}
|
||||
},
|
||||
objects: {},
|
||||
states: {},
|
||||
currentHost: '',
|
||||
instances: [],
|
||||
objectsLoaded: false,
|
||||
waitForRestart: false,
|
||||
selectId: null
|
||||
};
|
||||
|
||||
main.socket.on('permissionError', function (err) {
|
||||
main.showMessage(_('Has no permission to %s %s %s', err.operation, err.type, (err.id || '')));
|
||||
});
|
||||
main.socket.on('objectChange', function (id, obj) {
|
||||
//setTimeout(objectChange, 0, id, obj);
|
||||
console.log(id);
|
||||
});
|
||||
main.socket.on('stateChange', function (id, obj) {
|
||||
console.log(id);
|
||||
});
|
||||
main.socket.on('connect', function () {
|
||||
$('#connecting').hide();
|
||||
if (firstConnect) {
|
||||
firstConnect = false;
|
||||
|
||||
main.socket.emit('getUserPermissions', function (err, acl) {
|
||||
main.acl = acl;
|
||||
// Read system configuration
|
||||
main.socket.emit('getObject', 'system.config', function (err, data) {
|
||||
main.systemConfig = data;
|
||||
if (!err && main.systemConfig && main.systemConfig.common) {
|
||||
systemLang = main.systemConfig.common.language;
|
||||
} else {
|
||||
systemLang = window.navigator.userLanguage || window.navigator.language;
|
||||
|
||||
if (systemLang !== 'en' && systemLang !== 'de' && systemLang !== 'ru') {
|
||||
main.systemConfig.common.language = 'en';
|
||||
systemLang = 'en';
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
main.subscribe(true);
|
||||
if (main.waitForRestart) {
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
main.socket.on('disconnect', function () {
|
||||
$('#connecting').show();
|
||||
});
|
||||
main.socket.on('reconnect', function () {
|
||||
$('#connecting').hide();
|
||||
if (main.waitForRestart) {
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
main.socket.on('reauthenticate', function () {
|
||||
location.reload();
|
||||
});
|
||||
main.socket.on('log', function (message) {
|
||||
//setTimeout(onLog, 0, message);
|
||||
console.log(message);
|
||||
});
|
||||
|
||||
let core = new Core(main);
|
||||
Reference in New Issue
Block a user