<!DOCTYPE html>
<html>
  <head>
    <base target='_top'>
    <style>
      html *
      {
        font-family: Arial;
      }
    </style>
    <script>
    
      function onImport()
      {
        const locale  = document.getElementById('locale')
        const format  = document.getElementById('format')
        const input   = document.getElementById('input')
        const replace = document.getElementById('replace')
        
        const language = locale.options[locale.selectedIndex].value
        const provider = format.options[format.selectedIndex].value
        
        if (input != '')
        {
          locale.disabled  = true
          format.disabled  = true
          input.disabled   = true
          replace.disabled = true
        
          const submit     = document.getElementById('submit')
          submit.innerHTML = 'Uploading…'
          submit.disabled  = true
          
          google.script.run.withSuccessHandler(onImportCompleted).withFailureHandler(onFailure).performImport(language, provider, input.value, replace.checked)
        }
        else
        {
          alert('Input cannot be empty')
        }
      }
      
      function onImportCompleted(result)
      {
        google.script.host.close()
      }
      
      function onLanguagesLoaded(languages)
      {
        const select = document.getElementById('locale')
        
        for (var i = 0; i < languages.length; i++)
        {
          var language = languages[i]
        
          var option = document.createElement('option')
          option.appendChild(document.createTextNode(language.name))
          option.value = i
          
          select.appendChild(option)
        }
      }
      
      function onProvidersLoaded(providers)
      {
        const select = document.getElementById('format')
        
        for (var i = 0; i < providers.length; i++)
        {
          var provider = providers[i]
        
          var option = document.createElement('option')
          option.appendChild(document.createTextNode(provider.name))
          option.value = i
          
          select.appendChild(option)
        }
      }
    
      function onFailure(error)
      {
        const div = document.getElementById('output')
        div.innerHTML = 'ERROR: ' + error.message
      }

      google.script.run
        .withSuccessHandler(onLanguagesLoaded)
        .withFailureHandler(onFailure)
        .getAvailableLanguages()
        
      google.script.run
        .withSuccessHandler(onProvidersLoaded)
        .withFailureHandler(onFailure)
        .getImportProviders()
        
    </script>
  </head>
  <body>
    Language:
    <select id='locale'>
    </select>
    
    <br/>
    <br/>
    
    Format:
    <select id='format'>
    </select>
    
    <br/>
    <br/>
    
    Replace values:
    <input type='checkbox' id='replace' checked>
    
    <br/>
    <br/>
    
    Input:
    <br/>
    <textarea id='input' rows='3'></textarea>
    
    <br/>
    <br/>
    
    <button type='button' id='submit' onclick='onImport()'>Import</button>
    
    <br/>
    <div id='output'></div>
  </body>
</html>