mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
[enh] WebSocket support
This commit is contained in:
parent
0877072908
commit
25f60b6d40
1 changed files with 25 additions and 5 deletions
30
js/app.js
30
js/app.js
|
@ -84,6 +84,25 @@ app = Sammy('#main', function (sam) {
|
||||||
document.body.scrollTop = document.documentElement.scrollTop = 0;
|
document.body.scrollTop = document.documentElement.scrollTop = 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Websocket connection
|
||||||
|
websocket: function(callback) {
|
||||||
|
c = this;
|
||||||
|
if (store.get('connected')) {
|
||||||
|
c.ws = new WebSocket('wss://'+ store.get('url') +'/messages');
|
||||||
|
c.ws.onmessage = function(evt) {
|
||||||
|
console.log(evt.data);
|
||||||
|
}
|
||||||
|
c.ws.onopen = function() {
|
||||||
|
if (typeof callback === 'function') {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
c.ws.onclose = function() {
|
||||||
|
delete c.ws;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// API connection helper
|
// API connection helper
|
||||||
api: function (uri, callback, method, data) {
|
api: function (uri, callback, method, data) {
|
||||||
c = this;
|
c = this;
|
||||||
|
@ -117,7 +136,7 @@ app = Sammy('#main', function (sam) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: store.get('url') + uri,
|
url: 'https://'+ store.get('url') + uri,
|
||||||
type: method,
|
type: method,
|
||||||
crossdomain: true,
|
crossdomain: true,
|
||||||
data: data,
|
data: data,
|
||||||
|
@ -291,7 +310,7 @@ app = Sammy('#main', function (sam) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
sam.before({except: {path: ['#/login', '#/postinstall']}}, function (req) {
|
sam.before({except: {path: ['#/logout', '#/login', '#/postinstall']}}, function (req) {
|
||||||
// Store path for further redirections
|
// Store path for further redirections
|
||||||
store.set('path-1', store.get('path'));
|
store.set('path-1', store.get('path'));
|
||||||
store.set('path', req.path);
|
store.set('path', req.path);
|
||||||
|
@ -357,7 +376,7 @@ app = Sammy('#main', function (sam) {
|
||||||
});
|
});
|
||||||
|
|
||||||
sam.post('#/login', function (c) {
|
sam.post('#/login', function (c) {
|
||||||
store.set('url', 'https://'+ c.params['domain'] +'/yunohost/api');
|
store.set('url', c.params['domain'] +'/yunohost/api');
|
||||||
// c.api('/api', function(data) {
|
// c.api('/api', function(data) {
|
||||||
// if (data.apiVersion) {
|
// if (data.apiVersion) {
|
||||||
params = {
|
params = {
|
||||||
|
@ -365,6 +384,7 @@ app = Sammy('#main', function (sam) {
|
||||||
}
|
}
|
||||||
c.api('/login', function(data) {
|
c.api('/login', function(data) {
|
||||||
store.set('connected', true);
|
store.set('connected', true);
|
||||||
|
c.websocket();
|
||||||
|
|
||||||
$('.logout-button').fadeIn();
|
$('.logout-button').fadeIn();
|
||||||
c.flash('success', y18n.t('logged_in'));
|
c.flash('success', y18n.t('logged_in'));
|
||||||
|
@ -414,7 +434,7 @@ app = Sammy('#main', function (sam) {
|
||||||
|
|
||||||
params['password'] = c.params['password']
|
params['password'] = c.params['password']
|
||||||
|
|
||||||
store.set('url', 'https://'+ window.location.hostname +'/yunohost/api');
|
store.set('url', window.location.hostname +'/yunohost/api');
|
||||||
store.set('user', 'admin');
|
store.set('user', 'admin');
|
||||||
store.set('password', btoa('yunohost'));
|
store.set('password', btoa('yunohost'));
|
||||||
c.api('/postinstall', function(data) { // http://api.yunohost.org/#!/tools/tools_postinstall_post_0
|
c.api('/postinstall', function(data) { // http://api.yunohost.org/#!/tools/tools_postinstall_post_0
|
||||||
|
@ -1047,7 +1067,7 @@ app = Sammy('#main', function (sam) {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
sam.websocket();
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue