Commit 1a1940c8 authored by Andrew Gerrand's avatar Andrew Gerrand

doc: support redirect-on-share

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5689056
parent d3642699
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
// runEl - run button element // runEl - run button element
// shareEl - share button element (optional) // shareEl - share button element (optional)
// shareURLEl - share URL text input element (optional) // shareURLEl - share URL text input element (optional)
// shareRedirect - base URL to redirect to on share (optional)
// preCompile - callback to mutate request data before compiling // preCompile - callback to mutate request data before compiling
// postCompile - callback to read response data after compiling // postCompile - callback to read response data after compiling
// simple - use plain textarea instead of CodeMirror. // simple - use plain textarea instead of CodeMirror.
...@@ -163,7 +164,7 @@ function playground(opts) { ...@@ -163,7 +164,7 @@ function playground(opts) {
} }
$(opts['runEl']).click(run); $(opts['runEl']).click(run);
if (opts['shareEl'] == null || opts['shareURLEl'] == null) { if (opts['shareEl'] == null || (opts['shareURLEl'] == null && opts['shareRedirect'] == null)) {
return editor; return editor;
} }
...@@ -171,7 +172,10 @@ function playground(opts) { ...@@ -171,7 +172,10 @@ function playground(opts) {
return (""+href).split("/").slice(0, 3).join("/"); return (""+href).split("/").slice(0, 3).join("/");
} }
var shareURL = $(opts['shareURLEl']).hide(); var shareURL;
if (opts['shareURLEl']) {
shareURL = $(opts['shareURLEl']).hide();
}
var sharing = false; var sharing = false;
$(opts['shareEl']).click(function() { $(opts['shareEl']).click(function() {
if (sharing) return; if (sharing) return;
...@@ -184,11 +188,16 @@ function playground(opts) { ...@@ -184,11 +188,16 @@ function playground(opts) {
sharing = false; sharing = false;
if (xhr.status != 200) { if (xhr.status != 200) {
alert("Server error; try again."); alert("Server error; try again.");
return return;
}
if (opts['shareRedirect']) {
window.location = opts['shareRedirect'] + xhr.responseText;
}
if (shareURL) {
var url = origin(window.location) + "/p/" +
xhr.responseText;
shareURL.show().val(url).focus().select();
} }
var url = origin(window.location) + "/p/" +
xhr.responseText;
shareURL.show().val(url).focus().select();
} }
}); });
}); });
......
...@@ -113,12 +113,12 @@ function init() { ...@@ -113,12 +113,12 @@ function init() {
// Set up playground. // Set up playground.
playground({ playground({
"simple": true, "simple": true,
"codeEl": "#code", "codeEl": "#code",
"outputEl": "#output", "outputEl": "#output",
"runEl": "#run", "runEl": "#run",
"shareEl": "#share", "shareEl": "#share",
"shareURLEl": "#shareURL" "shareRedirect": "http://play.golang.org/"
}); });
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment