mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
Add login handling
This commit is contained in:
parent
c696ea8b58
commit
c6c2e6b352
2 changed files with 73 additions and 44 deletions
107
js/app.js
107
js/app.js
|
@ -83,42 +83,48 @@ app = Sammy('#main', function (sam) {
|
||||||
view: function (view, data) {
|
view: function (view, data) {
|
||||||
rendered = this.render('views/'+ view +'.ms', data);
|
rendered = this.render('views/'+ view +'.ms', data);
|
||||||
|
|
||||||
function leSwap() {
|
enableSlide = true; // Change to false to disable animation
|
||||||
rendered.swap(function() {
|
|
||||||
$('.slide').on('click', function() {
|
if (enableSlide) {
|
||||||
$(this).addClass('active');
|
function leSwap() {
|
||||||
if ($(this).hasClass('back')) {
|
rendered.swap(function() {
|
||||||
store.set('slide', 'back');
|
$('.slide').on('click', function() {
|
||||||
} else {
|
$(this).addClass('active');
|
||||||
store.set('slide', 'to');
|
if ($(this).hasClass('back')) {
|
||||||
}
|
store.set('slide', 'back');
|
||||||
|
} else {
|
||||||
|
store.set('slide', 'to');
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
|
||||||
|
|
||||||
blockSize = $('#slider').width();
|
blockSize = $('#slider').width();
|
||||||
|
|
||||||
// Slide back effect
|
// Slide back effect
|
||||||
if (store.get('slide') == 'back') {
|
if (store.get('slide') == 'back') {
|
||||||
store.clear('slide');
|
store.clear('slide');
|
||||||
$('#slideBack').css('display', 'none');
|
$('#slideBack').css('display', 'none');
|
||||||
$('#slider-container').removeClass('move').css('margin-left', '-'+ blockSize +'px');
|
$('#slider-container').removeClass('move').css('margin-left', '-'+ blockSize +'px');
|
||||||
$('#slideTo').show().html($('#main').html());
|
$('#slideTo').show().html($('#main').html());
|
||||||
leSwap();
|
leSwap();
|
||||||
$('#slider-container').addClass('move').css('margin-left', '0px');
|
$('#slider-container').addClass('move').css('margin-left', '0px');
|
||||||
|
|
||||||
// Slide to effect
|
// Slide to effect
|
||||||
} else if (store.get('slide') == 'to') {
|
} else if (store.get('slide') == 'to') {
|
||||||
store.clear('slide');
|
store.clear('slide');
|
||||||
$('#slideTo').css('display', 'none');
|
$('#slideTo').css('display', 'none');
|
||||||
$('#slider-container').removeClass('move').css('margin-left', '-'+ blockSize +'px');
|
$('#slider-container').removeClass('move').css('margin-left', '-'+ blockSize +'px');
|
||||||
$('#slider-container').removeClass('move').css('margin-left', '0px');
|
$('#slider-container').removeClass('move').css('margin-left', '0px');
|
||||||
$('#slideBack').show().html($('#main').html());
|
$('#slideBack').show().html($('#main').html());
|
||||||
leSwap();
|
leSwap();
|
||||||
$('#slider-container').addClass('move').css('margin-left', '-'+ blockSize +'px');
|
$('#slider-container').addClass('move').css('margin-left', '-'+ blockSize +'px');
|
||||||
|
|
||||||
|
} else {
|
||||||
|
leSwap();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
leSwap();
|
rendered.swap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -167,21 +173,42 @@ app = Sammy('#main', function (sam) {
|
||||||
sam.get('#/login', function (c) {
|
sam.get('#/login', function (c) {
|
||||||
$('#logout-button').hide();
|
$('#logout-button').hide();
|
||||||
store.set('path-1', '#/login');
|
store.set('path-1', '#/login');
|
||||||
c.view('login');
|
|
||||||
|
// Check if te client is hosted on a yunohost node
|
||||||
|
domain = window.location.hostname
|
||||||
|
$.getJSON('http://'+ domain +':6767/api', function(data) {
|
||||||
|
$.getJSON('http://'+ domain +':6767/installed', function(data) {
|
||||||
|
if (!data.installed) {
|
||||||
|
c.view('postinstall');
|
||||||
|
} else {
|
||||||
|
c.view('login', { 'domain': domain });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.fail(function() {
|
||||||
|
c.view('login');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
sam.post('#/login', function (c) {
|
sam.post('#/login', function (c) {
|
||||||
store.set('url', 'http://'+ c.params['url']);
|
store.set('url', 'http://'+ c.params['domain'] +':6767');
|
||||||
store.set('user', 'admin');
|
store.set('user', 'admin');
|
||||||
store.set('password', btoa(c.params['password']));
|
store.set('password', btoa(c.params['password']));
|
||||||
c.api('/users', function(data) {
|
c.api('/api', function(data) {
|
||||||
store.set('connected', true);
|
if (data.apiVersion == '0.1') {
|
||||||
$('#logout-button').fadeIn();
|
c.api('/users', function(data) {
|
||||||
c.flash('success', 'Logged in');
|
store.set('connected', true);
|
||||||
if (store.get('path')) {
|
$('#logout-button').fadeIn();
|
||||||
c.redirect(store.get('path'));
|
c.flash('success', 'Logged in');
|
||||||
|
if (store.get('path')) {
|
||||||
|
c.redirect(store.get('path'));
|
||||||
|
} else {
|
||||||
|
c.redirect('#/');
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
c.redirect('#/');
|
c.flash('fail', 'Non-compatible API (0.1 required)');
|
||||||
|
c.redirect('#/login');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -338,6 +365,8 @@ app = Sammy('#main', function (sam) {
|
||||||
*/
|
*/
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
app.run('#/');
|
app.run('#/');
|
||||||
|
|
||||||
|
// Fixes for sliding effect
|
||||||
$('#slider-container').width(2*$('#slider').width() +'px');
|
$('#slider-container').width(2*$('#slider').width() +'px');
|
||||||
$(window).resize(function() {
|
$(window).resize(function() {
|
||||||
$('#slideBack').css('display', 'none');
|
$('#slideBack').css('display', 'none');
|
||||||
|
|
|
@ -5,14 +5,14 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form action="#/login" id="form" method="post">
|
<form action="#/login" id="form" method="post">
|
||||||
<div class="input-group">
|
<div class="input-group"{{#domain}} style="display: none"{{/domain}}>
|
||||||
<span class="input-group-addon">http://</span>
|
<span class="input-group-addon"> <span class="glyphicon glyphicon-cloud"></span> </span>
|
||||||
<input type="text" name="url" class="form-control" placeholder="myserver.org:6767">
|
<input type="text" name="domain" class="form-control" placeholder="myserver.org"{{#domain}} value="{{domain}}" disabled{{/domain}}>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<span class="input-group-addon"> <span class="glyphicon glyphicon-lock"> </span></span>
|
<span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span> </span>
|
||||||
<input type="password" name="password" class="form-control" placeholder="Password">
|
<input type="password" name="password" class="form-control" placeholder="Admin password">
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<input id="submit" type="submit" value="Login" class="btn btn-success pull-right"/>
|
<input id="submit" type="submit" value="Login" class="btn btn-success pull-right"/>
|
||||||
|
|
Loading…
Add table
Reference in a new issue