Browse Source

Fix IE bug and show errors.

Justin Nuß 10 years ago
parent
commit
12fb42de5a

+ 7 - 0
public/css/gogs.css

@@ -1836,4 +1836,11 @@ body {
 
 #issue-create-form #attached {
     margin-bottom: 0;
+}
+
+#submit-error {
+    display: none;
+    padding: 10px 15px 15px 15px;
+    font-weight: bold;
+    text-align: center;
 }

+ 30 - 6
public/js/app.js

@@ -568,7 +568,7 @@ function initIssue() {
         };
 
         var out = function() {
-            $hoverElement.hide();
+            //$hoverElement.hide();
         };
 
         $(".issue-main .attachments .attachment").hover(over, out);
@@ -598,6 +598,13 @@ function initIssue() {
 
         $("button,input[type=\"submit\"]", fileInput.form).on("click", function() {
             clickedButton = this;
+
+            var $button = $(this);
+
+            $button.removeClass("btn-success");
+            $button.addClass("btn-warning");
+
+            $button.text("Submiting...");
         });
 
          fileInput.form.addEventListener("submit", function(event) {
@@ -630,16 +637,33 @@ function initIssue() {
             });
 
             xhr.addEventListener("load", function() {
-                if (xhr.response.ok === false) {
-                    $("#submit-error").text(xhr.response.error);
+                var response = xhr.response;
+
+                if (typeof response == "string") {
+                    try {
+                        response = JSON.parse(response);
+                    } catch (err) {
+                        response = { ok: false, error: "Could not parse JSON" };
+                    }
+                }
+
+                if (response.ok === false) {
+                    $("#submit-error").text(response.error);
+                    $("#submit-error").show();
+
+                    var $button = $(clickedButton);
+
+                    $button.removeClass("btn-warning");
+                    $button.addClass("btn-danger");
+
+                    $button.text("An error encoured!")
+
                     return;
                 }                   
 
-                window.location.href = xhr.response.data;
+                window.location.href = response.data;
             });
 
-            xhr.responseType = "json";
-
             xhr.open("POST", this.action, true);
             xhr.send(data);
             

+ 4 - 5
routers/repo/issue.go

@@ -189,9 +189,9 @@ func CreateIssue(ctx *middleware.Context, params martini.Params) {
 
 func CreateIssuePost(ctx *middleware.Context, params martini.Params, form auth.CreateIssueForm) {
 	send := func(status int, data interface{}, err error) {
-		log.Error("issue.Comment(?): %s", err)
-
 		if err != nil {
+			log.Error("issue.CreateIssuePost(?): %s", err.Error())
+
 			ctx.JSON(status, map[string]interface{}{
 				"ok":     false,
 				"status": status,
@@ -711,9 +711,9 @@ func uploadFiles(ctx *middleware.Context, issueId, commentId int64) {
 
 func Comment(ctx *middleware.Context, params martini.Params) {
 	send := func(status int, data interface{}, err error) {
-		log.Error("issue.Comment(?): %s", err)
-
 		if err != nil {
+			log.Error("issue.Comment(?): %s", err.Error())
+
 			ctx.JSON(status, map[string]interface{}{
 				"ok":     false,
 				"status": status,
@@ -860,7 +860,6 @@ func Comment(ctx *middleware.Context, params martini.Params) {
 		}
 	}
 
-	log.Error("url: %#v", fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, index))
 	send(200, fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, index), nil)
 }
 

+ 1 - 1
templates/repo/issue/create.tmpl

@@ -95,7 +95,7 @@
                     <div class="tab-content">
                         <div class="tab-pane" id="issue-textarea">
                             <div class="form-group">
-                                <div id="submit-error"></div>
+                                <div id="submit-error" class="text-danger"></div>
                                 <textarea class="form-control" name="content" id="issue-content" rows="10" placeholder="Write some content" data-ajax-rel="issue-preview" data-ajax-val="val" data-ajax-field="text">{{.content}}</textarea>
                             </div>
                         </div>

+ 1 - 1
templates/repo/issue/view.tmpl

@@ -134,7 +134,7 @@
                                 <div class="tab-content">
                                     <div class="tab-pane" id="issue-textarea">
                                         <div class="form-group">
-                                            <div id="submit-error"></div>
+                                            <div id="submit-error" class="text-danger"></div>
                                             <input type="hidden" value="{{.Issue.Index}}" name="issueIndex"/>
                                             <textarea class="form-control" name="content" id="issue-reply-content" rows="10" placeholder="Write some content" data-ajax-rel="issue-preview" data-ajax-val="val" data-ajax-field="text">{{.content}}</textarea>
                                         </div>