<%= render 'devise/shared/select_server' if Docuseal.multitenant? %>
  
<%= t('sign_in') %>
  <%= form_for(resource, as: resource_name, html: { class: 'space-y-6' }, data: { turbo: params[:redir].blank? }, url: session_path(resource_name)) do |f| %>
    <%= render 'hidden_fields' %>
    
      
        <%= f.label :email, t(:email), class: 'label' %>
        <%= f.email_field :email, autofocus: true, autocomplete: 'email', class: 'base-input' %>
      
      
        <%= f.label :password, t(:password), class: 'label' %>
        <%= f.password_field :password, autocomplete: 'current-password', class: 'base-input' %>
      
     
    
      <%= f.button button_title(title: t(:sign_in), disabled_with: t(:signing_in)), class: 'base-button' %>
    
  <% end %>
  <% if devise_mapping.omniauthable? %>
    
      <% if User.omniauth_providers.include?(:google_oauth2) && Rails.application.credentials.google_client_id.present? && Rails.application.credentials.google_client_id != 'placeholder_client_id' %>
        <%= form_for '', url: '/auth/google_oauth2', data: { turbo: false }, method: :post do |f| %>
          
          <%= hidden_field_tag :state, { redir: params[:redir].to_s }.compact_blank.to_query %>
          <%= f.button button_title(title: t('sign_in_with_google'), icon: svg_icon('brand_google', class: 'w-6 h-6')), class: 'white-button w-full mt-4' %>
        <% end %>
      <% end %>
      <% if User.omniauth_providers.include?(:microsoft_graph) && Rails.application.credentials.microsoft_client_id.present? && Rails.application.credentials.microsoft_client_id != 'placeholder_client_id' %>
        <%= form_for '', url: '/auth/microsoft_graph', data: { turbo: false }, method: :post do |f| %>
          
          <%= hidden_field_tag :state, { redir: params[:redir].to_s }.compact_blank.to_query, id: 'state_microsoft' %>
          <%= f.button button_title(title: t('sign_in_with_microsoft'), icon: svg_icon('brand_microsoft', class: 'w-6 h-6')), class: 'white-button w-full' %>
        <% end %>
      <% end %>
      <% 
        # Check if SAML is configured (either in ENV or database)
        saml_configured = false
        begin
          if ENV['SAML_IDP_SSO_SERVICE_URL'].present? && ENV['SAML_IDP_CERT_FINGERPRINT'].present?
            saml_configured = true
            Rails.logger.info "SAML Login Page: Using ENV configuration"
          else
            # Try to find SAML config in any account (not just current_account)
            saml_config_record = EncryptedConfig.where(key: 'saml_configs').first
            Rails.logger.info "SAML Login Page: Config record found: #{saml_config_record.present?}"
            
            if saml_config_record&.value.present?
              begin
                config = JSON.parse(saml_config_record.value)
                saml_configured = config['idp_sso_service_url'].present? && config['idp_cert_fingerprint'].present?
                Rails.logger.info "SAML Login Page: Valid JSON: Yes, SSO URL: #{config['idp_sso_service_url'].present?}, Cert: #{config['idp_cert_fingerprint'].present?}"
              rescue JSON::ParserError => e
                Rails.logger.error "SAML Login Page: JSON parse error: #{e.message}"
                # Invalid JSON, treat as not configured
              end
            else
              Rails.logger.info "SAML Login Page: Config value is empty or nil"
            end
          end
        rescue => e
          Rails.logger.error "SAML Login Page: Error checking config: #{e.message}"
        end
      %>
      <% if User.omniauth_providers.include?(:saml) && saml_configured %>
        <%= form_for '', url: '/auth/saml', data: { turbo: false }, method: :post do |f| %>
          
          <%= hidden_field_tag :state, { redir: params[:redir].to_s }.compact_blank.to_query, id: 'state_saml' %>
          <%= f.button button_title(title: 'Sign in with SAML SSO', icon: svg_icon('certificate', class: 'w-6 h-6')), class: 'white-button w-full' %>
        <% end %>
      <% end %>
    
  <% end %>
  <%= render 'extra_links' %>
  <%= render 'devise/shared/links' %>