From 211321fb936683815c4033fdfb9ac46af8a3b357 Mon Sep 17 00:00:00 2001 From: John Olheiser Date: Thu, 27 Aug 2020 20:36:37 -0500 Subject: Git migration UX (#12619) * Initial work Signed-off-by: jolheiser * Implementation Signed-off-by: jolheiser * Fix gitlab and token cloning Signed-off-by: jolheiser * Imports and JS Signed-off-by: jolheiser * Fix test Signed-off-by: jolheiser * Linting Signed-off-by: jolheiser * Generate swagger Signed-off-by: jolheiser * Move mirror toggle and rename options Signed-off-by: jolheiser Co-authored-by: Lauris BH Co-authored-by: Lunny Xiao --- web_src/js/features/migration.js | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 web_src/js/features/migration.js (limited to 'web_src/js/features') diff --git a/web_src/js/features/migration.js b/web_src/js/features/migration.js new file mode 100644 index 0000000000..e4c306307f --- /dev/null +++ b/web_src/js/features/migration.js @@ -0,0 +1,53 @@ +const $service = $('#service_type'); +const $user = $('#auth_username'); +const $pass = $('#auth_password'); +const $token = $('#auth_token'); +const $items = $('#migrate_items').find('.field'); + +export default function initMigration() { + checkAuth(); + + $service.on('change', checkAuth); + $user.on('keyup', () => {checkItems(false)}); + $pass.on('keyup', () => {checkItems(false)}); + $token.on('keyup', () => {checkItems(true)}); + + const $cloneAddr = $('#clone_addr'); + $cloneAddr.on('change', () => { + const $repoName = $('#repo_name'); + if ($cloneAddr.val().length > 0 && $repoName.val().length === 0) { // Only modify if repo_name input is blank + $repoName.val($cloneAddr.val().match(/^(.*\/)?((.+?)(\.git)?)$/)[3]); + } + }); +} + +function checkAuth() { + const serviceType = $service.val(); + const tokenAuth = $(`#service-${serviceType}`).data('token'); + + if (tokenAuth) { + $user.parent().addClass('disabled'); + $pass.parent().addClass('disabled'); + $token.parent().removeClass('disabled'); + } else { + $user.parent().removeClass('disabled'); + $pass.parent().removeClass('disabled'); + $token.parent().addClass('disabled'); + } + + checkItems(tokenAuth); +} + +function checkItems(tokenAuth) { + let enableItems; + if (tokenAuth) { + enableItems = $token.val() !== ''; + } else { + enableItems = $user.val() !== '' || $pass.val() !== ''; + } + if (enableItems && $service.val() > 1) { + $items.removeClass('disabled'); + } else { + $items.addClass('disabled'); + } +} -- cgit v1.2.3