aboutsummaryrefslogtreecommitdiff
path: root/garage.go
diff options
context:
space:
mode:
Diffstat (limited to 'garage.go')
-rw-r--r--garage.go53
1 files changed, 51 insertions, 2 deletions
diff --git a/garage.go b/garage.go
index c43fd5f..7cd879b 100644
--- a/garage.go
+++ b/garage.go
@@ -270,8 +270,9 @@ func handleWebsiteInspect(w http.ResponseWriter, r *http.Request) {
_, processErr = ctrl.Patch(bucketName, &WebsitePatch{Size: &user.Quota.WebsiteSizeBursted})
case "delete_bucket":
processErr = ctrl.Delete(bucketName)
- http.Redirect(w, r, "/website", http.StatusFound)
- return
+ if processErr == nil {
+ http.Redirect(w, r, "/website", http.StatusFound)
+ }
default:
processErr = fmt.Errorf("Unknown action")
}
@@ -295,3 +296,51 @@ func handleWebsiteInspect(w http.ResponseWriter, r *http.Request) {
tWebsiteInspect := getTemplate("garage_website_inspect.html")
tWebsiteInspect.Execute(w, &tpl)
}
+
+func handleWebsiteVhost(w http.ResponseWriter, r *http.Request) {
+ var processErr error
+
+ user := RequireUserHtml(w, r)
+ if user == nil {
+ return
+ }
+
+ ctrl, err := NewWebsiteController(user)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+
+ bucketName := mux.Vars(r)["bucket"]
+
+ if r.Method == "POST" {
+ r.ParseForm()
+
+ bucket := strings.Join(r.Form["bucket"], "")
+ if bucket == "" {
+ bucket = strings.Join(r.Form["bucket2"], "")
+ }
+
+ view, processErr := ctrl.Patch(bucketName, &WebsitePatch{Vhost: &bucket})
+ if processErr == nil {
+ http.Redirect(w, r, "/website/inspect/"+view.Name.Pretty, http.StatusFound)
+ return
+ }
+ }
+
+ view, err := ctrl.Inspect(bucketName)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+
+ describe, err := ctrl.Describe()
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+
+ tpl := &WebsiteInspectTpl{describe, view, processErr}
+ tWebsiteEdit := getTemplate("garage_website_edit.html")
+ tWebsiteEdit.Execute(w, &tpl)
+}