Newer
Older
GitBucket / src / main / twirl / gitbucket / core / admin / data.scala.html
@Naoki Takezoe Naoki Takezoe on 29 Apr 2016 1 KB Add error checking for data import
@(tableNames: Seq[String])(implicit context: gitbucket.core.controller.Context)
@import context._
@import gitbucket.core.view.helpers._
@html.main("Data export / import"){
  @admin.html.menu("data") {
    <div class="panel panel-default">
      <div class="panel-heading strong">Export</div>
      <div class="panel-body">
        <form class="form form-horizontal" action="@path/admin/export" method="POST">
          @tableNames.map { tableName =>
            <div class="checkbox">
              <label>
                <input type="checkbox" name="tableNames" id="@tableName" value="@tableName" checked/> @tableName
              </label>
            </div>
          }
          <input type="submit" class="btn btn-success pull-right" value="Export">
          <div class="radio pull-right" style="margin-right: 10px;">
            <label>
              <input type="radio" name="type" value="sql">SQL
            </label>
          </div>
          <div class="radio pull-right" style="margin-right: 10px;">
            <label>
              <input type="radio" name="type" value="xml" checked>XML
            </label>
          </div>
        </form>
      </div>
    </div>

    <div class="panel panel-default">
      <div class="panel-heading strong">Import (only XML)</div>
      <div class="panel-body">
        <form class="form form-horizontal" action="@path/upload/import" method="POST" enctype="multipart/form-data" id="import-form">
          <input type="file" name="file" id="file">
          <input type="submit" class="btn btn-success pull-right" value="Import" id="import">
        </form>
      </div>
    </div>
  }
}
<script>
$(function(){
  $('#import-form').submit(function(){
    if(!$('#file').val() == ''){
      alert('Choose an import XML file.');
      return false;
    } else if(!$('#file').val().endsWith(".xml")){
      alert('Import is available for only the XML file.');
      return false;
    }
    return confirm('All existing data is deleted before importing.\nAre you sure?');
  })
})
</script>