]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/godoc: inform users that the playground doesn't work via local godoc
authorAndrew Gerrand <adg@golang.org>
Tue, 20 Mar 2012 03:11:38 +0000 (14:11 +1100)
committerAndrew Gerrand <adg@golang.org>
Tue, 20 Mar 2012 03:11:38 +0000 (14:11 +1100)
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5843065

doc/play/playground.js
src/cmd/godoc/main.go

index 69dc451fc1365a3c9141147a503810da31ae1f61..947f8a4ece211919793a5e3fafc22aae76f606b9 100644 (file)
@@ -166,10 +166,13 @@ function playground(opts) {
                                }
                                pre.text(out);
                        },
-                       error: function() {
-                               output.addClass("error").text(
-                                       "Error communicating with remote server."
-                               );
+                       error: function(xhr) {
+                               var text = "Error communicating with remote server.";
+                               console.log(xhr.status);
+                               if (xhr.status == 501) {
+                                       text = xhr.responseText;
+                               }
+                               output.addClass("error").text(text);
                        }
                });
        }
@@ -190,6 +193,10 @@ function playground(opts) {
                                type: "POST",
                                complete: function(xhr) {
                                        sharing = false;
+                                       if (xhr.status == 501) {
+                                               alert(xhr.responseText);
+                                               return;
+                                       }
                                        if (xhr.status != 200) {
                                                alert("Server error; try again.");
                                                return;
index 96f6ebe9d6fed04af67eb2468064dea0489d731a..10a14b9a8bfa34e45b4bae6dbd8744b6e1b42e00 100644 (file)
@@ -274,6 +274,10 @@ func main() {
 
                registerPublicHandlers(http.DefaultServeMux)
 
+               // Playground handlers are not available in local godoc.
+               http.HandleFunc("/compile", disabledHandler)
+               http.HandleFunc("/share", disabledHandler)
+
                // Initialize default directory tree with corresponding timestamp.
                // (Do it in a goroutine so that launch is quick.)
                go initFSTree()
@@ -450,3 +454,9 @@ type httpWriter struct {
 
 func (w *httpWriter) Header() http.Header  { return w.h }
 func (w *httpWriter) WriteHeader(code int) { w.code = code }
+
+// disabledHandler serves a 501 "Not Implemented" response.
+func disabledHandler(w http.ResponseWriter, r *http.Request) {
+       w.WriteHeader(http.StatusNotImplemented)
+       fmt.Fprint(w, "This functionality is not available via local godoc.")
+}