Move install scripts to bundle

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2020-03-11 14:06:25 +01:00
parent 24d0fb9fcd
commit bba26cb2eb
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
5 changed files with 135 additions and 132 deletions

View File

@ -1,5 +0,0 @@
$(document).ready(function() {
$('#adminpass').showPassword().keyup();
$('#dbpass').showPassword().keyup();
});

View File

@ -1,126 +0,0 @@
var dbtypes;
$(document).ready(function() {
dbtypes={
sqlite:!!$('#hasSQLite').val(),
mysql:!!$('#hasMySQL').val(),
postgresql:!!$('#hasPostgreSQL').val(),
oracle:!!$('#hasOracle').val()
};
$('#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();
} else {
$('#sqliteInformation').hide();
}
$('#adminlogin').change(function(){
$('#adminlogin').val($.trim($('#adminlogin').val()));
});
$('#sqlite').click(function() {
$('#use_other_db').slideUp(250);
$('#use_oracle_db').slideUp(250);
$('#sqliteInformation').show();
$('#dbname').attr('pattern','[0-9a-zA-Z$_-]+');
});
$('#mysql,#pgsql').click(function() {
$('#use_other_db').slideDown(250);
$('#use_oracle_db').slideUp(250);
$('#sqliteInformation').hide();
$('#dbname').attr('pattern','[0-9a-zA-Z$_-]+');
});
$('#oci').click(function() {
$('#use_other_db').slideDown(250);
$('#use_oracle_db').show(250);
$('#sqliteInformation').hide();
$('#dbname').attr('pattern','[0-9a-zA-Z$_-.]+');
});
$('#showAdvanced').click(function(e) {
e.preventDefault();
$('#datadirContent').slideToggle(250);
$('#databaseBackend').slideToggle(250);
$('#databaseField').slideToggle(250);
});
$("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'));
$('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;
});
// Expand latest db settings if page was reloaded on error
var currentDbType = $('input[type="radio"]:checked').val();
if (currentDbType === undefined){
$('input[type="radio"]').first().click();
}
if (
currentDbType === 'sqlite' ||
(dbtypes.sqlite && currentDbType === undefined)
){
$('#datadirContent').hide(250);
$('#databaseBackend').hide(250);
$('#databaseField').hide(250);
$('.float-spinner').hide(250);
}
$('#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),
});
});

133
core/src/install.js Normal file
View File

@ -0,0 +1,133 @@
import $ from 'jquery'
import { translate as t } from '@nextcloud/l10n'
import { getToken } from './OC/requesttoken'
import getURLParameter from './Util/get-url-parameter'
import 'strengthify'
import 'strengthify/strengthify.css'
$(document).ready(function() {
const dbtypes = {
sqlite: !!$('#hasSQLite').val(),
mysql: !!$('#hasMySQL').val(),
postgresql: !!$('#hasPostgreSQL').val(),
oracle: !!$('#hasOracle').val(),
}
$('#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()
} else {
$('#sqliteInformation').hide()
}
$('#adminlogin').change(function() {
$('#adminlogin').val($.trim($('#adminlogin').val()))
})
$('#sqlite').click(function() {
$('#use_other_db').slideUp(250)
$('#use_oracle_db').slideUp(250)
$('#sqliteInformation').show()
$('#dbname').attr('pattern', '[0-9a-zA-Z$_-]+')
})
$('#mysql,#pgsql').click(function() {
$('#use_other_db').slideDown(250)
$('#use_oracle_db').slideUp(250)
$('#sqliteInformation').hide()
$('#dbname').attr('pattern', '[0-9a-zA-Z$_-]+')
})
$('#oci').click(function() {
$('#use_other_db').slideDown(250)
$('#use_oracle_db').show(250)
$('#sqliteInformation').hide()
$('#dbname').attr('pattern', '[0-9a-zA-Z$_-.]+')
})
$('#showAdvanced').click(function(e) {
e.preventDefault()
$('#datadirContent').slideToggle(250)
$('#databaseBackend').slideToggle(250)
$('#databaseField').slideToggle(250)
})
$('form').submit(function() {
// Save form parameters
const post = $(this).serializeArray()
// Show spinner while finishing setup
$('.float-spinner').show(250)
// Disable inputs
$(':submit', this).attr('disabled', 'disabled').val($(':submit', this).data('finishing'))
$('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
const form = $('<form>')
form.attr('action', $(this).attr('action'))
form.attr('method', 'POST')
for (let i = 0; i < post.length; i++) {
const input = $('<input type="hidden">')
input.attr(post[i])
form.append(input)
}
// Add redirect_url
const redirectURL = getURLParameter('redirect_url')
if (redirectURL) {
const 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
})
// Expand latest db settings if page was reloaded on error
const currentDbType = $('input[type="radio"]:checked').val()
if (currentDbType === undefined) {
$('input[type="radio"]').first().click()
}
if (
currentDbType === 'sqlite'
|| (dbtypes.sqlite && currentDbType === undefined)
) {
$('#datadirContent').hide(250)
$('#databaseBackend').hide(250)
$('#databaseField').hide(250)
$('.float-spinner').hide(250)
}
$('#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(getToken()),
})
})

View File

@ -1,6 +1,6 @@
<?php <?php
script('core', [ script('core', [
'installation' 'dist/install'
]); ]);
?> ?>
<input type='hidden' id='hasMySQL' value='<?php p($_['hasMySQL']) ?>'> <input type='hidden' id='hasMySQL' value='<?php p($_['hasMySQL']) ?>'>

View File

@ -8,6 +8,7 @@ module.exports = [
main: path.join(__dirname, 'src/main.js'), main: path.join(__dirname, 'src/main.js'),
maintenance: path.join(__dirname, 'src/maintenance.js'), maintenance: path.join(__dirname, 'src/maintenance.js'),
recommendedapps: path.join(__dirname, 'src/recommendedapps.js'), recommendedapps: path.join(__dirname, 'src/recommendedapps.js'),
install: path.join(__dirname, 'src/install.js')
}, },
output: { output: {
filename: '[name].js', filename: '[name].js',