diff options
author | John Olheiser <john.olheiser@gmail.com> | 2020-08-27 20:36:37 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-28 09:36:37 +0800 |
commit | 211321fb936683815c4033fdfb9ac46af8a3b357 (patch) | |
tree | 13f356084062e1827bda3ba0d1c9f4b4b5c2c799 /web_src/js/features | |
parent | ed2f6e137be8fe3c85292e8344b5bb5cfb56891d (diff) | |
download | gitea-211321fb936683815c4033fdfb9ac46af8a3b357.tar.gz gitea-211321fb936683815c4033fdfb9ac46af8a3b357.zip |
Git migration UX (#12619)
* Initial work
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Implementation
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Fix gitlab and token cloning
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Imports and JS
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Fix test
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Linting
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Generate swagger
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Move mirror toggle and rename options
Signed-off-by: jolheiser <john.olheiser@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'web_src/js/features')
-rw-r--r-- | web_src/js/features/migration.js | 53 |
1 files changed, 53 insertions, 0 deletions
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'); + } +} |