From bba26cb2ebf48413ed938af572ee46b7cb9f0ba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 11 Mar 2020 14:06:25 +0100 Subject: [PATCH] Move install scripts to bundle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- core/js/installation.js | 5 -- core/js/setup.js | 126 ------------------------------ core/src/install.js | 133 ++++++++++++++++++++++++++++++++ core/templates/installation.php | 2 +- core/webpack.js | 1 + 5 files changed, 135 insertions(+), 132 deletions(-) delete mode 100644 core/js/installation.js delete mode 100644 core/js/setup.js create mode 100644 core/src/install.js diff --git a/core/js/installation.js b/core/js/installation.js deleted file mode 100644 index 20ff346215..0000000000 --- a/core/js/installation.js +++ /dev/null @@ -1,5 +0,0 @@ - -$(document).ready(function() { - $('#adminpass').showPassword().keyup(); - $('#dbpass').showPassword().keyup(); -}); diff --git a/core/js/setup.js b/core/js/setup.js deleted file mode 100644 index 7cf4c38071..0000000000 --- a/core/js/setup.js +++ /dev/null @@ -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.attr('action', $(this).attr('action')); - form.attr('method', 'POST'); - - for(var i=0; i'); - input.attr(post[i]); - form.append(input); - } - - // Add redirect_url - var redirectURL = getURLParameter('redirect_url'); - if (redirectURL) { - var redirectURLInput = $(''); - 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), - }); -}); diff --git a/core/src/install.js b/core/src/install.js new file mode 100644 index 0000000000..2e69c3e3c9 --- /dev/null +++ b/core/src/install.js @@ -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.attr('action', $(this).attr('action')) + form.attr('method', 'POST') + + for (let i = 0; i < post.length; i++) { + const input = $('') + input.attr(post[i]) + form.append(input) + } + + // Add redirect_url + const redirectURL = getURLParameter('redirect_url') + if (redirectURL) { + const redirectURLInput = $('') + 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()), + }) +}) diff --git a/core/templates/installation.php b/core/templates/installation.php index e4a232fc96..5a351e9741 100644 --- a/core/templates/installation.php +++ b/core/templates/installation.php @@ -1,6 +1,6 @@ '> diff --git a/core/webpack.js b/core/webpack.js index cb80f049fa..94d9c019ff 100644 --- a/core/webpack.js +++ b/core/webpack.js @@ -8,6 +8,7 @@ module.exports = [ main: path.join(__dirname, 'src/main.js'), maintenance: path.join(__dirname, 'src/maintenance.js'), recommendedapps: path.join(__dirname, 'src/recommendedapps.js'), + install: path.join(__dirname, 'src/install.js') }, output: { filename: '[name].js',