mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 11:35:03 +01:00 
			
		
		
		
	Merge pull request #299 from nuss-justin/issue/216
Fix #216. Change milestones, labels and assigne without reloading the page
This commit is contained in:
		
						commit
						94b100ce43
					
				| @ -19,6 +19,7 @@ var ( | ||||
| 	ErrIssueNotExist     = errors.New("Issue does not exist") | ||||
| 	ErrLabelNotExist     = errors.New("Label does not exist") | ||||
| 	ErrMilestoneNotExist = errors.New("Milestone does not exist") | ||||
| 	ErrWrongIssueCounter = errors.New("Invalid number of issues for this milestone") | ||||
| ) | ||||
| 
 | ||||
| // Issue represents an issue or pull request of repository. | ||||
| @ -713,6 +714,11 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { | ||||
| 		if issue.IsClosed { | ||||
| 			m.NumClosedIssues++ | ||||
| 		} | ||||
| 
 | ||||
| 		if m.NumIssues == 0 { | ||||
| 			return ErrWrongIssueCounter | ||||
| 		} | ||||
| 
 | ||||
| 		m.Completeness = m.NumClosedIssues * 100 / m.NumIssues | ||||
| 		if _, err = sess.Id(m.Id).Update(m); err != nil { | ||||
| 			sess.Rollback() | ||||
|  | ||||
| @ -577,15 +577,28 @@ function initIssue() { | ||||
|         if (is_issue_bar) { | ||||
|             var assignee = $a.data("assigned"); | ||||
|             if (uid != assignee) { | ||||
|                 var text = $(this).text(); | ||||
|                 var img = $("img", this).attr("src"); | ||||
| 
 | ||||
|                 $.post($a.data("ajax"), { | ||||
|                     issue: $('#issue').data("id"), | ||||
|                     assigneeid: uid | ||||
|                 }, function (json) { | ||||
|                     if (json.ok) { | ||||
|                         window.location.reload(); | ||||
|                         //window.location.reload();
 | ||||
|                         $a.data("assigned", uid); | ||||
| 
 | ||||
|                         if (uid > 0) {     | ||||
|                             $('.clear-assignee').toggleShow(); | ||||
|                             $(".assignee > p").html('<img src="' + img + '"><strong>' + text + '</strong>'); | ||||
|                         } else { | ||||
|                             $('.clear-assignee').toggleHide(); | ||||
|                             $(".assignee > p").text("No one assigned"); | ||||
|                         } | ||||
|                     } | ||||
|                 }) | ||||
|             } | ||||
| 
 | ||||
|             return; | ||||
|         } | ||||
|         $('#assignee').val(uid); | ||||
| @ -611,24 +624,31 @@ function initIssue() { | ||||
|         $('.clear-milestone').toggleShow(); | ||||
|     } | ||||
|     $('.milestone', '#issue').on('click', 'li.milestone-item', function () { | ||||
|         var id = $(this).data("id"); | ||||
|         var id = $(this).data("id");     | ||||
|         if (is_issue_bar) { | ||||
|             var m = $m.data("milestone"); | ||||
|             if (id != m) { | ||||
|                 var text = $(this).text(); | ||||
|                  | ||||
|                 $.post($m.data("ajax"), { | ||||
|                     issue: $('#issue').data("id"), | ||||
|                     milestone: id | ||||
|                 }, function (json) { | ||||
|                     if (json.ok) { | ||||
|                         window.location.reload(); | ||||
|                         if (id > 0) { | ||||
|                         //window.location.reload();
 | ||||
|                         $m.data("milestone", id); | ||||
| 
 | ||||
|                         if (id > 0) {     | ||||
|                             $('.clear-milestone').toggleShow(); | ||||
|                             $(".milestone > .name").html('<a href="' + location.pathname + '?milestone=' + id + '"><strong>' + text + '</strong></a>'); | ||||
|                         } else { | ||||
|                             $('.clear-milestone').toggleHide(); | ||||
|                             $(".milestone > .name").text("No milestone"); | ||||
|                         } | ||||
|                     } | ||||
|                 }) | ||||
|                 }); | ||||
|             } | ||||
| 
 | ||||
|             return; | ||||
|         } | ||||
|         $('#milestone-id').val(id); | ||||
| @ -708,13 +728,38 @@ function initIssue() { | ||||
|         var color = $item.find('.color').data('color'); | ||||
|         $item.css('background-color', color); | ||||
|     }); | ||||
| 
 | ||||
|     $('.issue-bar .labels .dropdown-menu').on('click', 'li', function (e) { | ||||
|         var url = $('.issue-bar .labels').data("ajax"); | ||||
|         var $labels = $('.issue-bar .labels'); | ||||
|         var url = $labels.data("ajax"); | ||||
|         var id = $(this).data('id'); | ||||
|         var check = $(this).hasClass("checked"); | ||||
|         var item = this; | ||||
|         $.post(url, {id: id, action: check ? 'detach' : "attach", issue: $('#issue').data('id')}, function (json) { | ||||
|             if (json.ok) { | ||||
|                 window.location.reload(); | ||||
|                 if (check) { | ||||
|                     $("span.check.pull-left", item).remove(); | ||||
| 
 | ||||
|                     $(item).removeClass("checked"); | ||||
|                     $(item).addClass("no-checked"); | ||||
| 
 | ||||
|                     $("#label-" + id, $labels).remove(); | ||||
|                 } else { | ||||
|                     $(item).prepend('<span class="check pull-left"><i class="fa fa-check"></i></span>'); | ||||
| 
 | ||||
|                     $(item).removeClass("no-checked"); | ||||
|                     $(item).addClass("checked"); | ||||
| 
 | ||||
|                     var $l = $("<p></p>"); | ||||
|                     var c = $("span.color", item).css("background-color"); | ||||
| 
 | ||||
|                     $l.attr("id", "label-" + id); | ||||
|                     $l.attr("class", "label-item label-white"); | ||||
|                     $l.css("background-color", c); | ||||
| 
 | ||||
|                     $l.append("<strong>" + $(item).text() + "</strong>"); | ||||
|                     $labels.append($l); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|         e.stopPropagation(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user