nextcloud/core/js/setup.js

143 lines
3.9 KiB
JavaScript
Raw Normal View History

2012-09-06 00:17:33 +04:00
var dbtypes;
2011-06-20 01:33:34 +04:00
$(document).ready(function() {
dbtypes={
sqlite:!!$('#hasSQLite').val(),
mysql:!!$('#hasMySQL').val(),
postgresql:!!$('#hasPostgreSQL').val(),
2015-07-29 19:19:31 +03:00
oracle:!!$('#hasOracle').val()
2012-09-06 00:17:33 +04:00
};
$('#selectDbType').buttonset();
// change links inside an info box back to their default appearance
$('#selectDbType p.info a').button('destroy');
if($('#hasSQLite').val()){
$('#use_other_db').hide();
$('#use_oracle_db').hide();
2014-06-03 00:56:50 +04:00
} else {
$('#sqliteInformation').hide();
2011-06-20 01:33:34 +04:00
}
$('#adminlogin').change(function(){
$('#adminlogin').val($.trim($('#adminlogin').val()));
});
2011-06-20 01:33:34 +04:00
$('#sqlite').click(function() {
$('#use_other_db').slideUp(250);
$('#use_oracle_db').slideUp(250);
2014-06-03 00:56:50 +04:00
$('#sqliteInformation').show();
2014-09-08 15:41:23 +04:00
$('#dbname').attr('pattern','[0-9a-zA-Z$_-]+');
2011-06-20 01:33:34 +04:00
});
2015-07-29 19:19:31 +03:00
$('#mysql,#pgsql').click(function() {
$('#use_other_db').slideDown(250);
$('#use_oracle_db').slideUp(250);
2014-06-03 00:56:50 +04:00
$('#sqliteInformation').hide();
2014-09-08 15:41:23 +04:00
$('#dbname').attr('pattern','[0-9a-zA-Z$_-]+');
2011-06-20 01:33:34 +04:00
});
2012-07-30 22:53:21 +04:00
$('#oci').click(function() {
$('#use_other_db').slideDown(250);
$('#use_oracle_db').show(250);
2014-06-03 00:56:50 +04:00
$('#sqliteInformation').hide();
2014-09-08 15:41:23 +04:00
$('#dbname').attr('pattern','[0-9a-zA-Z$_-.]+');
2012-07-30 22:53:21 +04:00
});
$('input[checked]').trigger('click');
$('#showAdvanced').click(function(e) {
e.preventDefault();
$('#datadirContent').slideToggle(250);
$('#databaseBackend').slideToggle(250);
2011-10-03 15:32:16 +04:00
$('#databaseField').slideToggle(250);
2011-06-20 01:33:34 +04:00
});
$("form").submit(function(){
// Save form parameters
var post = $(this).serializeArray();
// Show spinner while finishing setup
$('.float-spinner').show(250);
// Disable inputs
$(':submit', this).attr('disabled','disabled').val($(':submit', this).data('finishing'));
2013-02-07 11:12:09 +04:00
$('input', this).addClass('ui-state-disabled').attr('disabled','disabled');
// only disable buttons if they are present
if($('#selectDbType').find('.ui-button').length > 0) {
$('#selectDbType').buttonset('disable');
}
$('.strengthify-wrapper, .tipsy')
.css('-ms-filter', '"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"')
.css('filter', 'alpha(opacity=30)')
.css('opacity', 0.3);
// Create the form
var form = $('<form>');
form.attr('action', $(this).attr('action'));
form.attr('method', 'POST');
for(var i=0; i<post.length; i++){
var input = $('<input type="hidden">');
input.attr(post[i]);
form.append(input);
}
// Add redirect_url
var redirectURL = getURLParameter('redirect_url');
if (redirectURL) {
var redirectURLInput = $('<input type="hidden">');
redirectURLInput.attr({
name: 'redirect_url',
value: redirectURL
});
form.append(redirectURLInput);
}
// Submit the form
form.appendTo(document.body);
form.submit();
return false;
});
2013-10-11 17:35:59 +04:00
// Expand latest db settings if page was reloaded on error
var currentDbType = $('input[type="radio"]:checked').val();
2013-10-11 17:35:59 +04:00
if (currentDbType === undefined){
$('input[type="radio"]').first().click();
}
2014-03-01 05:46:27 +04:00
if (
currentDbType === 'sqlite' ||
(dbtypes.sqlite && currentDbType === undefined)
){
2013-10-11 17:35:59 +04:00
$('#datadirContent').hide(250);
$('#databaseBackend').hide(250);
2013-10-11 17:35:59 +04:00
$('#databaseField').hide(250);
$('.float-spinner').hide(250);
2013-10-11 17:35:59 +04:00
}
$('#adminpass').strengthify({
zxcvbn: OC.linkTo('core','vendor/zxcvbn/dist/zxcvbn.js'),
titles: [
t('core', 'Very weak password'),
t('core', 'Weak password'),
t('core', 'So-so password'),
t('core', 'Good password'),
t('core', 'Strong password')
],
drawTitles: true,
nonce: btoa(OC.requestToken),
});
// centers the database chooser if it is too wide
if($('#databaseBackend').width() > 300) {
// this somehow needs to wait 250 milliseconds
// otherwise it gets overwritten
setTimeout(function(){
// calculate negative left margin
// half of the difference of width and default bix width of 300
// add 10 to clear left side padding of button group
var leftMargin = (($('#databaseBackend').width() - 300) / 2 + 10 ) * -1;
$('#databaseBackend').css('margin-left', Math.floor(leftMargin) + 'px');
}, 250);
}
2011-06-20 01:33:34 +04:00
});