diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-02-19 12:06:14 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-19 12:06:14 +0800 |
commit | d32af84a1002ceb235c86e4ac569c866ab7816d4 (patch) | |
tree | 3832638122aac31fdc2215f85873629fd8ef2fd2 /web_src/js/features/admin/common.js | |
parent | 6221a6fd5450692ae27e5602b41fc9ebd9150736 (diff) | |
download | gitea-d32af84a1002ceb235c86e4ac569c866ab7816d4.tar.gz gitea-d32af84a1002ceb235c86e4ac569c866ab7816d4.zip |
Refactor hiding-methods, remove jQuery show/hide, remove `.hide` class, remove inline style=display:none (#22950)
Close #22847
This PR:
* introduce Gitea's own `showElem` and related functions
* remove jQuery show/hide
* remove .hide class
* remove inline style=display:none
From now on:
do not use:
* "[hidden]" attribute: it's too weak, can not be applied to an element
with "display: flex"
* ".hidden" class: it has been polluted by Fomantic UI in many cases
* inline style="display: none": it's difficult to tweak
* jQuery's show/hide/toggle: it can not show/hide elements with
"display: xxx !important"
only use:
* this ".gt-hidden" class
* showElem/hideElem/toggleElem functions in "utils/dom.js"
cc: @silverwind , this is the all-in-one PR
Diffstat (limited to 'web_src/js/features/admin/common.js')
-rw-r--r-- | web_src/js/features/admin/common.js | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/web_src/js/features/admin/common.js b/web_src/js/features/admin/common.js index d0b3e461d5..092cf770be 100644 --- a/web_src/js/features/admin/common.js +++ b/web_src/js/features/admin/common.js @@ -1,5 +1,6 @@ import $ from 'jquery'; import {checkAppUrl} from '../common-global.js'; +import {hideElem, showElem, toggleElem} from '../../utils/dom.js'; const {csrfToken} = window.config; @@ -18,8 +19,8 @@ export function initAdminCommon() { if ($(this).val().substring(0, 1) === '0') { $('#user_name').removeAttr('disabled'); $('#login_name').removeAttr('required'); - $('.non-local').hide(); - $('.local').show(); + hideElem($('.non-local')); + showElem($('.local')); $('#user_name').focus(); if ($(this).data('password') === 'required') { @@ -30,8 +31,8 @@ export function initAdminCommon() { $('#user_name').attr('disabled', 'disabled'); } $('#login_name').attr('required', 'required'); - $('.non-local').show(); - $('.local').hide(); + showElem($('.non-local')); + hideElem($('.local')); $('#login_name').focus(); $('#password').removeAttr('required'); @@ -41,38 +42,38 @@ export function initAdminCommon() { function onSecurityProtocolChange() { if ($('#security_protocol').val() > 0) { - $('.has-tls').show(); + showElem($('.has-tls')); } else { - $('.has-tls').hide(); + hideElem($('.has-tls')); } } function onUsePagedSearchChange() { if ($('#use_paged_search').prop('checked')) { - $('.search-page-size').show() + showElem($('.search-page-size')) .find('input').attr('required', 'required'); } else { - $('.search-page-size').hide() + hideElem($('.search-page-size')) .find('input').removeAttr('required'); } } function onOAuth2Change(applyDefaultValues) { - $('.open_id_connect_auto_discovery_url, .oauth2_use_custom_url').hide(); + hideElem($('.open_id_connect_auto_discovery_url, .oauth2_use_custom_url')); $('.open_id_connect_auto_discovery_url input[required]').removeAttr('required'); const provider = $('#oauth2_provider').val(); switch (provider) { case 'openidConnect': $('.open_id_connect_auto_discovery_url input').attr('required', 'required'); - $('.open_id_connect_auto_discovery_url').show(); + showElem($('.open_id_connect_auto_discovery_url')); break; default: if ($(`#${provider}_customURLSettings`).data('required')) { $('#oauth2_use_custom_url').attr('checked', 'checked'); } if ($(`#${provider}_customURLSettings`).data('available')) { - $('.oauth2_use_custom_url').show(); + showElem($('.oauth2_use_custom_url')); } } onOAuth2UseCustomURLChange(applyDefaultValues); @@ -80,7 +81,7 @@ export function initAdminCommon() { function onOAuth2UseCustomURLChange(applyDefaultValues) { const provider = $('#oauth2_provider').val(); - $('.oauth2_use_custom_url_field').hide(); + hideElem($('.oauth2_use_custom_url_field')); $('.oauth2_use_custom_url_field input[required]').removeAttr('required'); if ($('#oauth2_use_custom_url').is(':checked')) { @@ -90,20 +91,20 @@ export function initAdminCommon() { } if ($(`#${provider}_${custom}`).data('available')) { $(`.oauth2_${custom} input`).attr('required', 'required'); - $(`.oauth2_${custom}`).show(); + showElem($(`.oauth2_${custom}`)); } } } } function onEnableLdapGroupsChange() { - $('#ldap-group-options').toggle($('.js-ldap-group-toggle').is(':checked')); + toggleElem($('#ldap-group-options'), $('.js-ldap-group-toggle').is(':checked')); } // New authentication if ($('.admin.new.authentication').length > 0) { $('#auth_type').on('change', function () { - $('.ldap, .dldap, .smtp, .pam, .oauth2, .has-tls, .search-page-size, .sspi').hide(); + hideElem($('.ldap, .dldap, .smtp, .pam, .oauth2, .has-tls, .search-page-size, .sspi')); $('.ldap input[required], .binddnrequired input[required], .dldap input[required], .smtp input[required], .pam input[required], .oauth2 input[required], .has-tls input[required], .sspi input[required]').removeAttr('required'); $('.binddnrequired').removeClass('required'); @@ -111,30 +112,30 @@ export function initAdminCommon() { const authType = $(this).val(); switch (authType) { case '2': // LDAP - $('.ldap').show(); + showElem($('.ldap')); $('.binddnrequired input, .ldap div.required:not(.dldap) input').attr('required', 'required'); $('.binddnrequired').addClass('required'); break; case '3': // SMTP - $('.smtp').show(); - $('.has-tls').show(); + showElem($('.smtp')); + showElem($('.has-tls')); $('.smtp div.required input, .has-tls').attr('required', 'required'); break; case '4': // PAM - $('.pam').show(); + showElem($('.pam')); $('.pam input').attr('required', 'required'); break; case '5': // LDAP - $('.dldap').show(); + showElem($('.dldap')); $('.dldap div.required:not(.ldap) input').attr('required', 'required'); break; case '6': // OAuth2 - $('.oauth2').show(); + showElem($('.oauth2')); $('.oauth2 div.required:not(.oauth2_use_custom_url,.oauth2_use_custom_url_field,.open_id_connect_auto_discovery_url) input').attr('required', 'required'); onOAuth2Change(true); break; case '7': // SSPI - $('.sspi').show(); + showElem($('.sspi')); $('.sspi div.required input').attr('required', 'required'); break; } |