diff --git a/static/js/app.js b/static/js/app.js index a14d0bb..bb98dde 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -237,15 +237,11 @@ function performTableAction(table, action, el) { var format = el.data("format"); var db = $("#current_database").text(); var filename = db + "." + table + "." + format; - var query = window.encodeURI("SELECT * FROM " + table); - var url = window.location.href.split("#")[0] + "api/query?format=" + format + "&filename=" + filename + "&query=" + query + "&_session_id=" + getSessionId(); - var win = window.open(url, "_blank"); - win.focus(); + var query = "SELECT * FROM " + table; + openInNewWindow("api/query", { "format": format, "filename": filename, "query": query, "_session_id": getSessionId() }); break; case "dump": - var url = window.location.href.split("#")[0] + "api/export?table=" + table + "&_session_id=" + getSessionId(); - var win = window.open(url, "_blank"); - win.focus(); + openInNewWindow("api/export", { "table": table, "_session_id": getSessionId() }); break; case "copy": copyToClipboard(table.split('.')[1]); @@ -271,10 +267,8 @@ function performViewAction(view, action, el) { var format = el.data("format"); var db = $("#current_database").text(); var filename = db + "." + view + "." + format; - var query = window.encodeURI("SELECT * FROM " + view); - var url = window.location.href.split("#")[0] + "api/query?format=" + format + "&filename=" + filename + "&query=" + query + "&_session_id=" + getSessionId(); - var win = window.open(url, "_blank"); - win.focus(); + var query = "SELECT * FROM " + view; + openInNewWindow("api/query", { "format": format, "filename": filename, "query": query, "_session_id": getSessionId() }); break; case "copy": copyToClipboard(view.split('.')[1]); @@ -765,22 +759,25 @@ function exportURL(path, params) { return url.toString(); } +function openInNewWindow(path, params) { + var url = exportURL(path, params); + var win = window.open(url, '_blank'); + win.focus(); +} + function exportTo(format) { var query = getEditorSelection(); if (query.length == 0) { return; } - var url = exportURL("api/query", { + setCurrentTab("table_query"); + + openInNewWindow("api/query", { "format": format, "query": encodeQuery(query), "_session_id": getSessionId() }) - - var win = window.open(url, '_blank'); - - setCurrentTab("table_query"); - win.focus(); } // Fetch all unique values for the selected column in the table @@ -1076,9 +1073,7 @@ function bindCurrentDatabaseMenu() { switch(menuItem.data("action")) { case "export": - var url = window.location.href.split("#")[0] + "api/export?_session_id=" + getSessionId(); - var win = window.open(url, "_blank"); - win.focus(); + openInNewWindow("api/export", { "_session_id": getSessionId() }); break; } }