LoginForm.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. export class LoginForm extends window.HTMLElement {
  2. setup () {
  3. const tpl = document.getElementById('tplLoginForm')
  4. this.content = tpl.content.cloneNode(true)
  5. this.appendChild(this.content)
  6. }
  7. processOAuth2Providers (providers) {
  8. if (providers === null) {
  9. return
  10. }
  11. if (providers.length > 0) {
  12. this.querySelector('.login-oauth2').hidden = false
  13. this.querySelector('.login-disabled').hidden = true
  14. for (const provider of providers) {
  15. const providerForm = document.createElement('form')
  16. providerForm.method = 'GET'
  17. providerForm.action = '/oauth2?provider=' + provider.Name
  18. const providerButton = document.createElement('button')
  19. providerButton.type = 'submit'
  20. providerButton.innerHTML = '<span class = "oauth2-icon">' + provider.Icon + '</span> Login with ' + provider.Title
  21. providerForm.appendChild(providerButton)
  22. this.querySelector('.login-oauth2').appendChild(providerForm)
  23. }
  24. }
  25. }
  26. processLocalLogin (enabled) {
  27. if (enabled) {
  28. this.querySelector('.login-local').hidden = false
  29. this.querySelector('.login-disabled').hidden = true
  30. }
  31. }
  32. }
  33. window.customElements.define('login-form', LoginForm)