diff --git a/src/main/java/com/metaweb/gridworks/commands/edit/ExportProjectCommand.java b/src/main/java/com/metaweb/gridworks/commands/edit/ExportProjectCommand.java index e96bdb622..641547e30 100644 --- a/src/main/java/com/metaweb/gridworks/commands/edit/ExportProjectCommand.java +++ b/src/main/java/com/metaweb/gridworks/commands/edit/ExportProjectCommand.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; +import java.util.zip.GZIPOutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -26,11 +27,11 @@ public class ExportProjectCommand extends Command { Project project = getProject(request); ProjectManager.singleton.ensureProjectSaved(project.id); - response.setHeader("Content-Type", "application/x-tar"); + response.setHeader("Content-Type", "application/x-gzip"); OutputStream os = response.getOutputStream(); try { - tarToOutputStream( + gzipTarToOutputStream( ProjectManager.singleton.getProjectDir(project.id), os ); @@ -42,6 +43,15 @@ public class ExportProjectCommand extends Command { } } + protected void gzipTarToOutputStream(File dir, OutputStream os) throws IOException { + GZIPOutputStream gos = new GZIPOutputStream(os); + try { + tarToOutputStream(dir, gos); + } finally { + gos.close(); + } + } + protected void tarToOutputStream(File dir, OutputStream os) throws IOException { TarOutputStream tos = new TarOutputStream(os); try { diff --git a/src/main/java/com/metaweb/gridworks/commands/edit/ImportProjectCommand.java b/src/main/java/com/metaweb/gridworks/commands/edit/ImportProjectCommand.java index 2a1afe109..518ed1781 100644 --- a/src/main/java/com/metaweb/gridworks/commands/edit/ImportProjectCommand.java +++ b/src/main/java/com/metaweb/gridworks/commands/edit/ImportProjectCommand.java @@ -7,6 +7,7 @@ import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.util.Properties; +import java.util.zip.GZIPInputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -71,7 +72,11 @@ public class ImportProjectCommand extends Command { FilePart filePart = (FilePart) part; InputStream inputStream = filePart.getInputStream(); try { - internalImportInputStream(projectID, inputStream); + internalImportInputStream( + projectID, + inputStream, + !filePart.getFileName().endsWith(".tar") + ); } finally { inputStream.close(); } @@ -117,17 +122,22 @@ public class ImportProjectCommand extends Command { } try { - internalImportInputStream(projectID, inputStream); + internalImportInputStream(projectID, inputStream, !urlString.endsWith(".tar")); } finally { inputStream.close(); } } - protected void internalImportInputStream(long projectID, InputStream inputStream) throws IOException { + protected void internalImportInputStream(long projectID, InputStream inputStream, boolean gziped) throws IOException { File destDir = ProjectManager.singleton.getProjectDir(projectID); destDir.mkdirs(); - untar(destDir, inputStream); + if (gziped) { + GZIPInputStream gis = new GZIPInputStream(inputStream); + untar(destDir, gis); + } else { + untar(destDir, inputStream); + } } protected void untar(File destDir, InputStream inputStream) throws IOException { diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index c5d737726..a0437aa8a 100644 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -1 +1 @@ - Freebase Gridworks
Gridworks
Gridworks

Upload Data File

Data File:
Project Name:
Load up to: data rows (optional)
Skip: initial data rows (optional)
Separator: column separator (optional)

Import Existing Project

Project TAR File:
Re-name Project: (optional)
\ No newline at end of file + Freebase Gridworks
Gridworks
Gridworks

Upload Data File

Data File:
Project Name:
Load up to: data rows (optional)
Skip: initial data rows (optional)
Separator: column separator (optional)

Import Existing Project

Project .tar or .tar.gz File:
Re-name Project: (optional)
\ No newline at end of file diff --git a/src/main/webapp/scripts/project/menu-bar.js b/src/main/webapp/scripts/project/menu-bar.js index 9d323d2e6..6b29a4886 100644 --- a/src/main/webapp/scripts/project/menu-bar.js +++ b/src/main/webapp/scripts/project/menu-bar.js @@ -195,7 +195,7 @@ MenuBar.prototype._exportProject = function() { $(form) .css("display", "none") .attr("method", "post") - .attr("action", "/command/export-project/" + name + ".gridworks.tar") + .attr("action", "/command/export-project/" + name + ".gridworks.tar.gz") .attr("target", "gridworks-export"); $('') .attr("name", "project") diff --git a/src/main/webapp/styles/index.css b/src/main/webapp/styles/index.css index aab401287..6946ac40f 100644 --- a/src/main/webapp/styles/index.css +++ b/src/main/webapp/styles/index.css @@ -40,7 +40,11 @@ #create-project-panel h1 { font-size: 120%; - margin: 1em 0; + margin: 2em 0 1em 0; +} + +#import-project-panel-layout { + white-space: pre; } #projects {