list view: issue, label, milestone
This commit is contained in:
		
							parent
							
								
									68b9d78386
								
							
						
					
					
						commit
						7372042441
					
				
					 19 changed files with 392 additions and 444 deletions
				
			
		|  | @ -369,6 +369,7 @@ commits.newer = Newer | ||||||
| issues.new = New Issue | issues.new = New Issue | ||||||
| issues.new_label = New Label | issues.new_label = New Label | ||||||
| issues.new_label_placeholder = Label name... | issues.new_label_placeholder = Label name... | ||||||
|  | issues.create_label = Create Label | ||||||
| issues.open_tab = %d Open | issues.open_tab = %d Open | ||||||
| issues.close_tab = %d Closed | issues.close_tab = %d Closed | ||||||
| issues.filter_label = Label | issues.filter_label = Label | ||||||
|  |  | ||||||
|  | @ -658,6 +658,14 @@ type Milestone struct { | ||||||
| 	ClosedDate      time.Time | 	ClosedDate      time.Time | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (m *Milestone) BeforeUpdate() { | ||||||
|  | 	if m.NumIssues > 0 { | ||||||
|  | 		m.Completeness = m.NumClosedIssues * 100 / m.NumIssues | ||||||
|  | 	} else { | ||||||
|  | 		m.Completeness = 0 | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func (m *Milestone) AfterSet(colName string, _ xorm.Cell) { | func (m *Milestone) AfterSet(colName string, _ xorm.Cell) { | ||||||
| 	if colName == "deadline" { | 	if colName == "deadline" { | ||||||
| 		if m.Deadline.Year() == 9999 { | 		if m.Deadline.Year() == 9999 { | ||||||
|  | @ -804,8 +812,6 @@ func ChangeMilestoneIssueStats(issue *Issue) error { | ||||||
| 		m.NumClosedIssues-- | 		m.NumClosedIssues-- | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	m.Completeness = m.NumClosedIssues * 100 / m.NumIssues |  | ||||||
| 
 |  | ||||||
| 	return UpdateMilestone(m) | 	return UpdateMilestone(m) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -827,13 +833,8 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { | ||||||
| 		if issue.IsClosed { | 		if issue.IsClosed { | ||||||
| 			m.NumClosedIssues-- | 			m.NumClosedIssues-- | ||||||
| 		} | 		} | ||||||
| 		if m.NumIssues > 0 { |  | ||||||
| 			m.Completeness = m.NumClosedIssues * 100 / m.NumIssues |  | ||||||
| 		} else { |  | ||||||
| 			m.Completeness = 0 |  | ||||||
| 		} |  | ||||||
| 
 | 
 | ||||||
| 		if _, err = sess.Id(m.ID).Cols("num_issues,num_completeness,num_closed_issues").Update(m); err != nil { | 		if _, err = sess.Id(m.ID).AllCols().Update(m); err != nil { | ||||||
| 			sess.Rollback() | 			sess.Rollback() | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  | @ -860,8 +861,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { | ||||||
| 			return ErrWrongIssueCounter | 			return ErrWrongIssueCounter | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		m.Completeness = m.NumClosedIssues * 100 / m.NumIssues | 		if _, err = sess.Id(m.ID).AllCols().Update(m); err != nil { | ||||||
| 		if _, err = sess.Id(m.ID).Cols("num_issues,num_completeness,num_closed_issues").Update(m); err != nil { |  | ||||||
| 			sess.Rollback() | 			sess.Rollback() | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -20,6 +20,15 @@ func (repo *Repository) IsTagExist(tagName string) bool { | ||||||
| 	return IsTagExist(repo.Path, tagName) | 	return IsTagExist(repo.Path, tagName) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (repo *Repository) getTagsReversed() ([]string, error) { | ||||||
|  | 	stdout, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", "-l", "--sort=-v:refname") | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, concatenateError(err, stderr) | ||||||
|  | 	} | ||||||
|  | 	tags := strings.Split(stdout, "\n") | ||||||
|  | 	return tags[:len(tags)-1], nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // GetTags returns all tags of given repository.
 | // GetTags returns all tags of given repository.
 | ||||||
| func (repo *Repository) GetTags() ([]string, error) { | func (repo *Repository) GetTags() ([]string, error) { | ||||||
| 	if gitVer.AtLeast(MustParseVersion("2.0.0")) { | 	if gitVer.AtLeast(MustParseVersion("2.0.0")) { | ||||||
|  | @ -33,15 +42,6 @@ func (repo *Repository) GetTags() ([]string, error) { | ||||||
| 	return tags[:len(tags)-1], nil | 	return tags[:len(tags)-1], nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (repo *Repository) getTagsReversed() ([]string, error) { |  | ||||||
| 	stdout, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", "-l", "--sort=-v:refname") |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, errors.New(stderr) |  | ||||||
| 	} |  | ||||||
| 	tags := strings.Split(stdout, "\n") |  | ||||||
| 	return tags[:len(tags)-1], nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (repo *Repository) CreateTag(tagName, idStr string) error { | func (repo *Repository) CreateTag(tagName, idStr string) error { | ||||||
| 	_, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", tagName, idStr) | 	_, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", tagName, idStr) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								public/css/gogs.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								public/css/gogs.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								public/css/semantic.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								public/css/semantic.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -43,6 +43,15 @@ function initRepository() { | ||||||
| 
 | 
 | ||||||
|     // Labels
 |     // Labels
 | ||||||
|     if ($('.repository.labels').length > 0) { |     if ($('.repository.labels').length > 0) { | ||||||
|  |         // Create label
 | ||||||
|  |         var $new_label_panel = $('.new-label.segment'); | ||||||
|  |         $('.new-label.button').click(function () { | ||||||
|  |             $new_label_panel.show(); | ||||||
|  |         }); | ||||||
|  |         $('.new-label.segment .cancel').click(function () { | ||||||
|  |             $new_label_panel.hide(); | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|         $('.color-picker').each(function () { |         $('.color-picker').each(function () { | ||||||
|             $(this).minicolors(); |             $(this).minicolors(); | ||||||
|         }); |         }); | ||||||
|  | @ -53,8 +62,7 @@ function initRepository() { | ||||||
|         }); |         }); | ||||||
|         $('.edit-label-button').click(function () { |         $('.edit-label-button').click(function () { | ||||||
|             $('#label-modal-id').val($(this).data('id')); |             $('#label-modal-id').val($(this).data('id')); | ||||||
|             $('#label-modal-title').val($(this).data('title')); |             $('.edit-label .new-label-input').val($(this).data('title')); | ||||||
|             $('#label-modal-color').val($(this).data('color')) |  | ||||||
|             $('.minicolors-swatch-color').css("background-color", $(this).data('color')); |             $('.minicolors-swatch-color').css("background-color", $(this).data('color')); | ||||||
|             $('.edit-label.modal').modal({ |             $('.edit-label.modal').modal({ | ||||||
|                 onApprove: function () { |                 onApprove: function () { | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								public/js/semantic.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								public/js/semantic.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -9,27 +9,25 @@ img { | ||||||
| } | } | ||||||
| .full.height { | .full.height { | ||||||
| 	padding: 0; | 	padding: 0; | ||||||
|   margin: 0 0 -87px 0; |   margin: 0 0 -@footer-margin*2 0; | ||||||
|   min-height: 100%; |   min-height: 100%; | ||||||
| } | } | ||||||
| .following.bar { | .following.bar { | ||||||
| 	z-index: 900; | 	z-index: 900; | ||||||
| 	left: 0; | 	left: 0; | ||||||
| 	width: 100%; | 	width: 100%; | ||||||
| 	padding: 0.7em 0; | 	padding: 5px 0; | ||||||
| 	&.light { | 	&.light { | ||||||
| 		background-color: white; | 		background-color: white; | ||||||
| 		border-bottom: 1px solid #DDDDDD; | 		border-bottom: 1px solid #DDDDDD; | ||||||
| 		box-shadow: 0 2px 3px rgba(0, 0, 0, 0.04); | 		box-shadow: 0 2px 3px rgba(0, 0, 0, 0.04); | ||||||
| 	} | 	} | ||||||
| 	.ui.secondary.menu { |  | ||||||
| 		height: 30px; |  | ||||||
| 	} |  | ||||||
| 	.column .menu { | 	.column .menu { | ||||||
| 		margin-top: 0; | 		margin-top: 0; | ||||||
| 	} | 	} | ||||||
| 	.brand { | 	.brand { | ||||||
| 		float: left; | 		float: left; | ||||||
|  | 		margin-top: 5px; | ||||||
| 		margin-right: 5px; | 		margin-right: 5px; | ||||||
| 	} | 	} | ||||||
| 	.head.link.item { | 	.head.link.item { | ||||||
|  | @ -41,7 +39,6 @@ img { | ||||||
| 	} | 	} | ||||||
| 	.user.avatar { | 	.user.avatar { | ||||||
| 		padding: 0; | 		padding: 0; | ||||||
| 		margin-top: 1px; |  | ||||||
| 	} | 	} | ||||||
| 	.searchbox { | 	.searchbox { | ||||||
|   	background-color: rgb(244, 244, 244)!important; |   	background-color: rgb(244, 244, 244)!important; | ||||||
|  | @ -51,7 +48,6 @@ img { | ||||||
| 	} | 	} | ||||||
| 	.octicon { | 	.octicon { | ||||||
|     width: 16px; |     width: 16px; | ||||||
|     opacity: 1!important; |  | ||||||
|     text-align: center; |     text-align: center; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | @ -68,28 +64,36 @@ img { | ||||||
| 			color: #d95c5c!important; | 			color: #d95c5c!important; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	.message { | ||||||
|  | 		text-align: center; | ||||||
|  | 	} | ||||||
| } | } | ||||||
| footer { | footer { | ||||||
| 	margin-top: @footer-margin!important; | 	margin-top: @footer-margin!important; | ||||||
|  | 	height: @footer-margin; | ||||||
| 	background-color: white; | 	background-color: white; | ||||||
| 	border-top: 1px solid #d6d6d6; | 	border-top: 1px solid #d6d6d6; | ||||||
| 	clear: both; | 	clear: both; | ||||||
| 	width: 100%; | 	width: 100%; | ||||||
| 	color: #888888; | 	color: #888888; | ||||||
| 	.fa { | 	.container { | ||||||
| 		width: 16px; | 		padding-top: 10px; | ||||||
|   	text-align: center; | 		.fa { | ||||||
|   	color: #428bca; | 			width: 16px; | ||||||
| 	} | 	  	text-align: center; | ||||||
| 	.ui.language.dropdown { | 	  	color: #428bca; | ||||||
| 		z-index: 10000; | 		} | ||||||
| 	} | 		.ui.language.dropdown { | ||||||
| 	.links >* { | 			z-index: 10000; | ||||||
| 		border-left: 1px solid #d6d6d6; | 		} | ||||||
| 		padding-left: 8px; | 		.links >* { | ||||||
| 		margin-left: 5px; | 			border-left: 1px solid #d6d6d6; | ||||||
| 		&:first-child { | 			padding-left: 8px; | ||||||
| 			border-left: none; | 			margin-left: 5px; | ||||||
|  | 			&:first-child { | ||||||
|  | 				border-left: none; | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | @ -108,8 +112,8 @@ footer { | ||||||
| .generate-img(16); | .generate-img(16); | ||||||
| .generate-img(@n, @i: 1) when (@i =< @n) { | .generate-img(@n, @i: 1) when (@i =< @n) { | ||||||
|   .img-@{i} { |   .img-@{i} { | ||||||
|     width: (2px * @i); |     width: (2px * @i)!important; | ||||||
|     height: (2px * @i); |     height: (2px * @i)!important; | ||||||
|   } |   } | ||||||
|   .generate-img(@n, (@i + 1)); |   .generate-img(@n, (@i + 1)); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -4,11 +4,11 @@ | ||||||
| 	padding-top: 15px; | 	padding-top: 15px; | ||||||
| 	padding-bottom: @footer-margin * 3; | 	padding-bottom: @footer-margin * 3; | ||||||
| 	.head { | 	.head { | ||||||
| 		height: 75px; | 		height: 40px; | ||||||
| 		padding-top: 20px; |  | ||||||
| 		background-color: #FCFCFC; | 		background-color: #FCFCFC; | ||||||
| 		.mega-octicon { | 		.mega-octicon { | ||||||
| 			width: @mega-octicon-width; | 			width: @mega-octicon-width; | ||||||
|  | 			font-size: 30px; | ||||||
| 		} | 		} | ||||||
| 		a, | 		a, | ||||||
| 		.fork-flag { | 		.fork-flag { | ||||||
|  | @ -25,65 +25,13 @@ | ||||||
| 			line-height: 10px; | 			line-height: 10px; | ||||||
| 			white-space: nowrap; | 			white-space: nowrap; | ||||||
| 		} | 		} | ||||||
| 		.button { |  | ||||||
| 			margin-left: 10px; |  | ||||||
| 			i { |  | ||||||
| 				margin-right: 5px; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		.num { | 		.num { | ||||||
| 			font-weight: bold; | 			font-weight: bold; | ||||||
| 		} | 		} | ||||||
| 		.octicon { |  | ||||||
| 			height: 5px; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	.navbar { |  | ||||||
| 		height: 60px; |  | ||||||
| 		padding-top: 20px; |  | ||||||
| 		.ui.secondary.menu .item { |  | ||||||
| 			margin-left: -10px; |  | ||||||
| 			margin-top: -7px; |  | ||||||
| 			&>.input { |  | ||||||
| 				.new-label-input, |  | ||||||
| 				.color-picker { |  | ||||||
| 					background-color: white; |  | ||||||
| 					border: 1px solid rgba(0,0,0,.15); |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 			&.input { |  | ||||||
| 				margin-right: -7px; |  | ||||||
| 			} |  | ||||||
| 			.new-label-input { |  | ||||||
| 				width: 150px; |  | ||||||
| 			} |  | ||||||
| 			.color-picker { |  | ||||||
| 				height: 35px; |  | ||||||
| 				width: auto; |  | ||||||
| 				padding-left: 30px; |  | ||||||
| 			} |  | ||||||
| 			.minicolors-swatch.minicolors-sprite { |  | ||||||
| 				top: 10px; |  | ||||||
| 				left: 10px; |  | ||||||
| 				width: 15px; |  | ||||||
| 				height: 15px; |  | ||||||
| 			} |  | ||||||
| 			&.precolors { |  | ||||||
| 				padding-left: 0; |  | ||||||
| 				padding-right: 0; |  | ||||||
| 				margin-right: 10px; |  | ||||||
| 				width: 120px; |  | ||||||
| 				.color { |  | ||||||
| 					float: left; |  | ||||||
| 					width: 15px; |  | ||||||
| 					height: 15px; |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 	.filter.menu { | 	.filter.menu { | ||||||
| 		.label.color { | 		.label.color { | ||||||
| 			margin-left: 17px; | 			margin-left: 15px; | ||||||
| 			padding: 0 8px; | 			padding: 0 8px; | ||||||
| 		} | 		} | ||||||
| 		.octicon { | 		.octicon { | ||||||
|  | @ -99,15 +47,15 @@ | ||||||
|   		.clickable .name { |   		.clickable .name { | ||||||
|   			padding-left: 15px!important; |   			padding-left: 15px!important; | ||||||
|   		} |   		} | ||||||
| 		} | 	 	} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.page.buttons { | 	.page.buttons { | ||||||
| 		padding-top: 15px; | 		padding-top: 15px; | ||||||
| 	} | 	} | ||||||
| 	.issue.list { | 	.issue.list { | ||||||
| 		clear: both; |  | ||||||
| 		list-style: none; | 		list-style: none; | ||||||
|  | 		padding-top: 15px; | ||||||
| 		>.item { | 		>.item { | ||||||
| 			padding-top: 15px; | 			padding-top: 15px; | ||||||
| 			padding-bottom: 10px; | 			padding-bottom: 10px; | ||||||
|  | @ -140,8 +88,8 @@ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.label.list { | 	.label.list { | ||||||
| 		clear: both; |  | ||||||
| 		list-style: none; | 		list-style: none; | ||||||
|  | 		padding-top: 15px; | ||||||
| 		.item { | 		.item { | ||||||
| 			padding-top: 10px; | 			padding-top: 10px; | ||||||
| 			padding-bottom: 10px; | 			padding-bottom: 10px; | ||||||
|  | @ -162,8 +110,8 @@ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.milestone.list { | 	.milestone.list { | ||||||
| 		clear: both; |  | ||||||
| 		list-style: none; | 		list-style: none; | ||||||
|  | 		padding-top: 15px; | ||||||
| 		> .item { | 		> .item { | ||||||
| 			padding-top: 10px; | 			padding-top: 10px; | ||||||
| 			padding-bottom: 10px; | 			padding-bottom: 10px; | ||||||
|  | @ -212,67 +160,77 @@ | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	&.new.milestone { | 	// &.new.milestone { | ||||||
| 		textarea { | 	// 	textarea { | ||||||
| 			height: 200px; | 	// 		height: 200px; | ||||||
| 		} | 	// 	} | ||||||
| 	} | 	// } | ||||||
| 
 | 
 | ||||||
| 	&.settings { | 	// &.settings { | ||||||
| 		.content { | 	// 	.content { | ||||||
| 			padding-left: 20px!important; | 	// 		padding-left: 20px!important; | ||||||
| 		} | 	// 	} | ||||||
| 	} | 	// } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .settings .key.list { | // .settings .key.list { | ||||||
| 	.item:not(:first-child) { | // 	.item:not(:first-child) { | ||||||
| 		border-top: 1px solid #eaeaea; | // 		border-top: 1px solid #eaeaea; | ||||||
| 	} | // 	} | ||||||
| 	.ssh-key-state-indicator { | // 	.ssh-key-state-indicator { | ||||||
| 		float: left; | // 		float: left; | ||||||
| 		color: gray; | // 		color: gray; | ||||||
| 		padding-left: 10px; | // 		padding-left: 10px; | ||||||
|     padding-top: 10px; | //     padding-top: 10px; | ||||||
|     &.active { | //     &.active { | ||||||
|     	color: #6cc644; | //     	color: #6cc644; | ||||||
|     } | //     } | ||||||
| 	} | // 	} | ||||||
| 	.meta { | // 	.meta { | ||||||
| 		padding-top: 5px; | // 		padding-top: 5px; | ||||||
| 	} | // 	} | ||||||
| 	.print { | // 	.print { | ||||||
| 		color: #767676; | // 		color: #767676; | ||||||
| 	} | // 	} | ||||||
| 	.activity { | // 	.activity { | ||||||
| 		color: #666; | // 		color: #666; | ||||||
| 	} | // 	} | ||||||
| } | // } | ||||||
| 
 | 
 | ||||||
| .edit-label.modal { | .edit-label.modal, | ||||||
| 	.color-picker { | .new-label.segment { | ||||||
| 		margin-top: -8px!important; | 	.form { | ||||||
| 		height: 35px; | 		.column { | ||||||
| 		width: auto!important; | 			padding-right: 0; | ||||||
| 		padding-left: 30px!important; | 		} | ||||||
| 	} | 		.buttons { | ||||||
| 	.minicolors-swatch.minicolors-sprite { | 			margin-left: auto; | ||||||
| 		top: 1px; | 			padding-top: 15px; | ||||||
| 		left: 10px; | 		} | ||||||
| 		width: 15px; | 		.color.picker.column { | ||||||
| 		height: 15px; | 			width: auto; | ||||||
| 	} | 			.color-picker { | ||||||
| 	.precolors { | 				height: 35px; | ||||||
| 		margin-bottom: -11px!important; | 				width: auto; | ||||||
| 		padding-left: 0!important; | 				padding-left: 30px; | ||||||
| 		padding-right: 0!important; | 			} | ||||||
| 		margin-right: 10px!important; | 		} | ||||||
| 		width: 120px!important; | 		.minicolors-swatch.minicolors-sprite { | ||||||
| 		.color { | 			top: 10px; | ||||||
| 			float: left; | 			left: 10px; | ||||||
| 			margin: 0!important; |  | ||||||
| 			width: 15px; | 			width: 15px; | ||||||
| 			height: 15px; | 			height: 15px; | ||||||
| 		} | 		} | ||||||
|  | 		.precolors { | ||||||
|  | 			padding-left: 0; | ||||||
|  | 			padding-right: 0; | ||||||
|  | 			margin: 3px 10px auto 10px; | ||||||
|  | 			width: 120px; | ||||||
|  | 			.color { | ||||||
|  | 				float: left; | ||||||
|  | 				width: 15px; | ||||||
|  | 				height: 15px; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| 	</div> | 	</div> | ||||||
| 	<footer class="ui page grid"> | 	<footer> | ||||||
| 		<div class="sixteen wide column"> | 		<div class="ui container"> | ||||||
| 			<div class="ui left"> | 			<div class="ui left"> | ||||||
| 				© 2015 Gogs · {{.i18n.Tr "version"}}: {{AppVer}} · {{.i18n.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong> · {{.i18n.Tr "template"}}: <strong>{{call .TmplLoadTimes}}</strong> | 				© 2015 Gogs · {{.i18n.Tr "version"}}: {{AppVer}} · {{.i18n.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong> · {{.i18n.Tr "template"}}: <strong>{{call .TmplLoadTimes}}</strong> | ||||||
| 			</div> | 			</div> | ||||||
|  |  | ||||||
|  | @ -46,39 +46,8 @@ | ||||||
| 		<noscript>Please enable JavaScript in your browser!</noscript> | 		<noscript>Please enable JavaScript in your browser!</noscript> | ||||||
| 		{{if not .PageIsInstall}} | 		{{if not .PageIsInstall}} | ||||||
| 		<div class="following bar light"> | 		<div class="following bar light"> | ||||||
| 		  <div class="ui page grid"> | 		  <div class="ui container"> | ||||||
| 		    <div class="column"> | 		    <div class="column"> | ||||||
| 	      	{{if .IsSigned}} |  | ||||||
| 		      <div class="ui right floated secondary menu"> |  | ||||||
| 		      	<a class="view-ui item user avatar poping up" href="{{AppSubUrl}}/{{.SignedUser.Name}}" data-content="{{.SignedUser.Name}}" data-variation="inverted"> |  | ||||||
| 		      		<img class="img-15" src="{{.SignedUser.AvatarLink}}"/> |  | ||||||
| 		      		<span class="sr-only">{{.SignedUser.Name}}</span> |  | ||||||
| 		      	</a> |  | ||||||
| 						<div class="ui pointing dropdown head link jump item"> |  | ||||||
| 							<span class="text"> |  | ||||||
| 								<i class="octicon octicon-plus"></i> |  | ||||||
| 								<i class="dropdown icon"></i> |  | ||||||
| 							</span> |  | ||||||
| 			        <div class="menu"> |  | ||||||
| 			          <a class="item" href="{{AppSubUrl}}/repo/create"><i class="octicon octicon-repo-create"></i> {{.i18n.Tr "new_repo"}}</a> |  | ||||||
| 			          <a class="item" href="{{AppSubUrl}}/repo/migrate"><i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}</a> |  | ||||||
| 			          <a class="item" href="{{AppSubUrl}}/org/create"><i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}</a> |  | ||||||
| 							</div> |  | ||||||
| 						</div> |  | ||||||
| 						{{if .IsAdmin}} |  | ||||||
| 						<a class="view-ui item poping up {{if .PageIsAdmin}}active{{end}}" href="{{AppSubUrl}}/admin" data-content="{{.i18n.Tr "admin_panel"}}" data-variation="inverted"><i class="octicon icon settings"></i><span class="sr-only">{{.i18n.Tr "admin_panel"}}</span></a> |  | ||||||
| 						{{end}} |  | ||||||
| 						<a class="view-ui item poping up {{if .PageIsSettings}}active{{end}}" href="{{AppSubUrl}}/user/settings" data-content="{{.i18n.Tr "account_settings"}}" data-variation="inverted"><i class="octicon octicon-settings"></i><span class="sr-only">{{.i18n.Tr "account_settings"}}</span></a> |  | ||||||
| 						<a class="view-ui item poping up" href="{{AppSubUrl}}/user/logout" data-content="{{.i18n.Tr "sign_out"}}" data-variation="inverted"><i class="octicon octicon-sign-out"></i><span class="sr-only">{{.i18n.Tr "sign_out"}}</span></a> |  | ||||||
| 		      </div> |  | ||||||
| 	      	{{else}} |  | ||||||
| 		      <div class="ui right floated secondary menu"> |  | ||||||
| 		      	{{if .ShowRegistrationButton}} |  | ||||||
| 		      	<a class="view-ui item {{if .PageIsSignUp}}active{{end}}" href="{{AppSubUrl}}/user/sign_up"><i class="octicon octicon-person-add"></i> {{.i18n.Tr "register"}}</a> |  | ||||||
| 		      	{{end}} |  | ||||||
| 		      	<a class="view-ui item {{if .PageIsSignIn}}active{{end}}" href="{{AppSubUrl}}/user/login"><i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}</a> |  | ||||||
| 		      </div> |  | ||||||
| 		      {{end}} |  | ||||||
| 		      <div class="ui secondary menu"> | 		      <div class="ui secondary menu"> | ||||||
| 		      	<img class="img-15 ui image brand" src="{{AppSubUrl}}/img/favicon.png"> | 		      	<img class="img-15 ui image brand" src="{{AppSubUrl}}/img/favicon.png"> | ||||||
| 		      	<a class="view-ui item {{if .PageIsHome}}active{{end}}" href="{{AppSubUrl}}/">{{if .IsSigned}}{{.i18n.Tr "dashboard"}}{{else}}{{.i18n.Tr "home"}}{{end}}</a> | 		      	<a class="view-ui item {{if .PageIsHome}}active{{end}}" href="{{AppSubUrl}}/">{{if .IsSigned}}{{.i18n.Tr "dashboard"}}{{else}}{{.i18n.Tr "home"}}{{end}}</a> | ||||||
|  | @ -90,6 +59,38 @@ | ||||||
| 		      	    <i class="search icon"></i> | 		      	    <i class="search icon"></i> | ||||||
| 		      	  </div> | 		      	  </div> | ||||||
| 		      	</div> --> | 		      	</div> --> | ||||||
|  | 
 | ||||||
|  |   	      	{{if .IsSigned}} | ||||||
|  |   		      <div class="right menu"> | ||||||
|  |   		      	<a class="view-ui item user avatar poping up" href="{{AppSubUrl}}/{{.SignedUser.Name}}" data-content="{{.SignedUser.Name}}" data-variation="inverted"> | ||||||
|  |   		      		<img class="img-15" src="{{.SignedUser.AvatarLink}}"/> | ||||||
|  |   		      		<span class="sr-only">{{.SignedUser.Name}}</span> | ||||||
|  |   		      	</a> | ||||||
|  |   						<div class="ui dropdown head link jump item"> | ||||||
|  |   							<span class="text"> | ||||||
|  |   								<i class="octicon octicon-plus"></i> | ||||||
|  |   								<i class="dropdown icon"></i> | ||||||
|  |   							</span> | ||||||
|  |   			        <div class="menu"> | ||||||
|  |   			          <a class="item" href="{{AppSubUrl}}/repo/create"><i class="octicon octicon-repo-create"></i> {{.i18n.Tr "new_repo"}}</a> | ||||||
|  |   			          <a class="item" href="{{AppSubUrl}}/repo/migrate"><i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}</a> | ||||||
|  |   			          <a class="item" href="{{AppSubUrl}}/org/create"><i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}</a> | ||||||
|  |   							</div> | ||||||
|  |   						</div> | ||||||
|  |   						{{if .IsAdmin}} | ||||||
|  |   						<a class="view-ui item poping up {{if .PageIsAdmin}}active{{end}}" href="{{AppSubUrl}}/admin" data-content="{{.i18n.Tr "admin_panel"}}" data-variation="inverted"><i class="octicon icon settings"></i><span class="sr-only">{{.i18n.Tr "admin_panel"}}</span></a> | ||||||
|  |   						{{end}} | ||||||
|  |   						<a class="view-ui item poping up {{if .PageIsSettings}}active{{end}}" href="{{AppSubUrl}}/user/settings" data-content="{{.i18n.Tr "account_settings"}}" data-variation="inverted"><i class="octicon octicon-settings"></i><span class="sr-only">{{.i18n.Tr "account_settings"}}</span></a> | ||||||
|  |   						<a class="view-ui item poping up" href="{{AppSubUrl}}/user/logout" data-content="{{.i18n.Tr "sign_out"}}" data-variation="inverted"><i class="octicon octicon-sign-out"></i><span class="sr-only">{{.i18n.Tr "sign_out"}}</span></a> | ||||||
|  |   		      </div> | ||||||
|  |   	      	{{else}} | ||||||
|  |   		      <div class="ui right floated secondary menu"> | ||||||
|  |   		      	{{if .ShowRegistrationButton}} | ||||||
|  |   		      	<a class="view-ui item {{if .PageIsSignUp}}active{{end}}" href="{{AppSubUrl}}/user/sign_up"><i class="octicon octicon-person-add"></i> {{.i18n.Tr "register"}}</a> | ||||||
|  |   		      	{{end}} | ||||||
|  |   		      	<a class="view-ui item {{if .PageIsSignIn}}active{{end}}" href="{{AppSubUrl}}/user/login"><i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}</a> | ||||||
|  |   		      </div> | ||||||
|  |   		      {{end}} | ||||||
| 		      </div> | 		      </div> | ||||||
| 		    </div> | 		    </div> | ||||||
| 		  </div> | 		  </div> | ||||||
|  |  | ||||||
|  | @ -1,16 +1,14 @@ | ||||||
| {{with .Repository}} | {{with .Repository}} | ||||||
| <div class="ui middle page head grid"> | <div class="ui head container"> | ||||||
| 	<h2 class="ui left"> | 	<div class="ui huge breadcrumb"> | ||||||
| 		<div class="ui breadcrumb"> | 	<i class="mega-octicon octicon-{{if .IsPrivate}}lock{{else if .IsMirror}}repo-clone{{else if .IsFork}}repo-forked{{else}}repo{{end}}"></i> | ||||||
| 		<i class="mega-octicon octicon-{{if .IsPrivate}}lock{{else if .IsMirror}}repo-clone{{else if .IsFork}}repo-forked{{else}}repo{{end}}"></i> |   <a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a> | ||||||
| 	  <a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a> |   <div class="divider"> / </div> | ||||||
| 	  <div class="divider"> / </div> |   <a href="{{$.RepoLink}}">{{.Name}}</a> | ||||||
| 	  <a href="{{$.RepoLink}}">{{.Name}}</a> |   {{if .IsMirror}}<div class="ui label">{{$.i18n.Tr "mirror"}}</div>{{end}} | ||||||
| 	  {{if .IsMirror}}<div class="ui label">{{$.i18n.Tr "mirror"}}</div>{{end}} |   {{if .IsFork}}<div class="fork-flag">{{$.i18n.Tr "repo.forked_from"}} <a href="{{.ForkRepo.RepoLink}}">{{SubStr .ForkRepo.RepoLink 1 -1}}</a></div>{{end}} | ||||||
| 	  {{if .IsFork}}<div class="fork-flag">{{$.i18n.Tr "repo.forked_from"}} <a href="{{.ForkRepo.RepoLink}}">{{SubStr .ForkRepo.RepoLink 1 -1}}</a></div>{{end}} | 	</div> | ||||||
| 		</div> | 	<div class="ui right"> | ||||||
| 	</h2> |  | ||||||
| 	<div class="ui right floated secondary menu"> |  | ||||||
| 		<a class="ui black basic button" href="{{$.RepoLink}}/action/{{if $.IsWatchingRepo}}un{{end}}watch?redirect_to={{$.Link}}"> | 		<a class="ui black basic button" href="{{$.RepoLink}}/action/{{if $.IsWatchingRepo}}un{{end}}watch?redirect_to={{$.Link}}"> | ||||||
| 		  <i class="fa fa-eye{{if not $.IsWatchingRepo}}-slash{{end}}"></i> | 		  <i class="fa fa-eye{{if not $.IsWatchingRepo}}-slash{{end}}"></i> | ||||||
| 		  {{if $.IsWatchingRepo}}{{$.i18n.Tr "repo.unwatch"}}{{else}}{{$.i18n.Tr "repo.watch"}}{{end}} <span class="num">{{.NumWatches}}</span> | 		  {{if $.IsWatchingRepo}}{{$.i18n.Tr "repo.unwatch"}}{{else}}{{$.i18n.Tr "repo.watch"}}{{end}} <span class="num">{{.NumWatches}}</span> | ||||||
|  | @ -19,7 +17,7 @@ | ||||||
| 		  <i class="fa fa-star{{if not $.IsStaringRepo}}-o{{end}}"></i> | 		  <i class="fa fa-star{{if not $.IsStaringRepo}}-o{{end}}"></i> | ||||||
| 		  {{if $.IsStaringRepo}}{{$.i18n.Tr "repo.unstar"}}{{else}}{{$.i18n.Tr "repo.star"}}{{end}} <span class="num">{{.NumStars}}</span> | 		  {{if $.IsStaringRepo}}{{$.i18n.Tr "repo.unstar"}}{{else}}{{$.i18n.Tr "repo.star"}}{{end}} <span class="num">{{.NumStars}}</span> | ||||||
| 		</a> | 		</a> | ||||||
| 		<a class="ui black basic button {{if $.IsRepositoryOwner}}poping up{{end}}" {{if not $.IsRepositoryOwner}}href="{{AppSubUrl}}/repo/fork/{{.Id}}"{{end}} {{if $.IsRepositoryOwner}}data-content="{{$.i18n.Tr "repo.fork_from_self"}}"{{end}}> | 		<a class="ui black basic button {{if $.IsRepositoryOwner}}poping up{{end}}" {{if not $.IsRepositoryOwner}}href="{{AppSubUrl}}/repo/fork/{{.Id}}"{{end}} {{if $.IsRepositoryOwner}}data-content="{{$.i18n.Tr "repo.fork_from_self"}}" data-position="top right"{{end}}> | ||||||
| 		  <i class="octicon octicon-repo-forked"></i> | 		  <i class="octicon octicon-repo-forked"></i> | ||||||
| 		  {{$.i18n.Tr "repo.fork"}} <span class="num">{{.NumForks}}</span> | 		  {{$.i18n.Tr "repo.fork"}} <span class="num">{{.NumForks}}</span> | ||||||
| 		</a> | 		</a> | ||||||
|  |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| {{if .Flash}} |  | ||||||
| <div class="sixteen wide center aligned centered column"> |  | ||||||
| 	{{template "base/alert" .}} |  | ||||||
| </div> |  | ||||||
| {{end}} |  | ||||||
|  | @ -1,77 +1,73 @@ | ||||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||||
| <div class="repository labels"> | <div class="repository labels"> | ||||||
| 	{{template "repo/header" .}} | 	{{template "repo/header" .}} | ||||||
| 	<div class="ui middle page grid body"> | 	<div class="ui container"> | ||||||
| 		<div class="navbar"> | 		<div class="navbar"> | ||||||
| 			{{template "repo/issue/navbar" .}} | 			{{template "repo/issue/navbar" .}} | ||||||
| 			{{if .IsRepositoryAdmin}} | 			{{if .IsRepositoryAdmin}} | ||||||
| 			<form class="ui right form" action="{{$.RepoLink}}/labels/new" method="post"> | 			<div class="ui right"> | ||||||
| 				{{.CsrfTokenHtml}} | 				<div class="ui green new-label button">{{.i18n.Tr "repo.issues.new_label"}}</div> | ||||||
| 				<div class="ui right floated secondary menu"> | 			</div> | ||||||
| 					<div class="input item"> |  | ||||||
| 						<div class="ui large input"> |  | ||||||
| 						  <input class="new-label-input" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" required> |  | ||||||
| 						</div> |  | ||||||
| 					</div> |  | ||||||
| 					<div class="item"> |  | ||||||
| 						<div class="ui large input"> |  | ||||||
| 			        <input class="color-picker" name="color" value="#70c24a" required> |  | ||||||
| 			    	</div> |  | ||||||
| 					</div> |  | ||||||
| 					<div class="item precolors"> |  | ||||||
| 						{{template "repo/issue/label_precolors"}} |  | ||||||
| 					</div> |  | ||||||
| 					<button class="ui green button">{{.i18n.Tr "repo.issues.new_label"}}</button> |  | ||||||
| 				</div> |  | ||||||
| 			</form> |  | ||||||
| 			{{end}} | 			{{end}} | ||||||
| 		</div> | 		</div> | ||||||
| 		<div class="ui divider"></div> | 		<div class="ui new-label segment hide"> | ||||||
| 		{{template "repo/issue/alert" .}} | 			<form class="ui form" action="{{$.RepoLink}}/labels/new" method="post"> | ||||||
| 		<div class="ui left"> | 				{{.CsrfTokenHtml}} | ||||||
| 			<div class="ui black label">{{.i18n.Tr "repo.issues.label_count" .NumLabels}}</div> | 				<div class="ui grid"> | ||||||
|  | 					<div class="five wide column"> | ||||||
|  | 						<div class="ui small input"> | ||||||
|  | 				  		<input class="new-label-input" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" autofocus required> | ||||||
|  | 						</div> | ||||||
|  | 					</div> | ||||||
|  | 					<div class="color picker column"> | ||||||
|  | 		      	<input class="color-picker" name="color" value="#70c24a" required> | ||||||
|  | 					</div> | ||||||
|  | 					<div class="column precolors"> | ||||||
|  | 						{{template "repo/issue/label_precolors"}} | ||||||
|  | 					</div> | ||||||
|  | 					<div class="buttons"> | ||||||
|  | 						<div class="ui blue small basic cancel button">{{.i18n.Tr "repo.milestones.cancel"}}</div> | ||||||
|  | 						<button class="ui green small button">{{.i18n.Tr "repo.issues.create_label"}}</button> | ||||||
|  | 					</div> | ||||||
|  | 				</div> | ||||||
|  | 			</form> | ||||||
| 		</div> | 		</div> | ||||||
|  | 		<div class="ui divider"></div> | ||||||
|  | 		{{template "base/alert" .}} | ||||||
|  | 		<div class="ui black label">{{.i18n.Tr "repo.issues.label_count" .NumLabels}}</div> | ||||||
| 
 | 
 | ||||||
| 		<div class="sixteen wide column"> | 		<div class="label list"> | ||||||
| 			<div class="label list"> | 			{{range .Labels}} | ||||||
| 				{{range .Labels}} | 			<li class="item"> | ||||||
| 				<li class="item"> | 				<div class="ui label" style="background-color: {{.Color}}"><i class="octicon octicon-tag"></i> {{.Name}}</div> | ||||||
| 					<div class="ui label" style="background-color: {{.Color}}"><i class="octicon octicon-tag"></i> {{.Name}}</div> | 				{{if $.IsRepositoryAdmin}} | ||||||
| 					{{if $.IsRepositoryAdmin}} | 				<a class="ui right delete-button" href="#" data-url="{{$.RepoLink}}/labels/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a> | ||||||
| 					<a class="ui right delete-button" href="#" data-url="{{$.RepoLink}}/labels/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a> | 				<a class="ui right edit-label-button" href="#" data-id={{.ID}} data-title={{.Name}} data-color={{.Color}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a> | ||||||
| 					<a class="ui right edit-label-button" href="#" data-id={{.ID}} data-title={{.Name}} data-color={{.Color}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a> |  | ||||||
| 					{{end}} |  | ||||||
| 					<a class="ui right open-issues" href="{{$.RepoLink}}/issues?labels={{.ID}}"><i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.label_open_issues" .NumOpenIssues}}</a> |  | ||||||
| 				</li> |  | ||||||
| 				{{end}} | 				{{end}} | ||||||
| 			</div> | 				<a class="ui right open-issues" href="{{$.RepoLink}}/issues?labels={{.ID}}"><i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.label_open_issues" .NumOpenIssues}}</a> | ||||||
|  | 			</li> | ||||||
|  | 			{{end}} | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
| {{if .IsRepositoryAdmin}} | {{if .IsRepositoryAdmin}} | ||||||
| <div class="ui basic delete modal"> | <div class="ui small basic delete modal"> | ||||||
|   <div class="header"> |   <div class="ui icon header"> | ||||||
|  |      <i class="trash icon"></i> | ||||||
|     {{.i18n.Tr "repo.issues.label_deletion"}} |     {{.i18n.Tr "repo.issues.label_deletion"}} | ||||||
|   </div> |   </div> | ||||||
|   <div class="content"> |   <div class="content"> | ||||||
|     <div class="image"> |     <p>{{.i18n.Tr "repo.issues.label_deletion_desc"}}</p> | ||||||
|       <i class="trash icon"></i> |  | ||||||
|     </div> |  | ||||||
|     <div class="description"> |  | ||||||
|       <p>{{.i18n.Tr "repo.issues.label_deletion_desc"}}</p> |  | ||||||
|     </div> |  | ||||||
|   </div> |   </div> | ||||||
|   <div class="actions"> |   <div class="actions"> | ||||||
|     <div class="two fluid ui inverted buttons"> |     <div class="ui red basic inverted cancel button"> | ||||||
|       <div class="ui red basic inverted button"> |       <i class="remove icon"></i> | ||||||
|         <i class="remove icon"></i> |       {{.i18n.Tr "modal.no"}} | ||||||
|         {{.i18n.Tr "modal.no"}} |     </div> | ||||||
|       </div> |     <div class="ui green basic inverted ok button"> | ||||||
|       <div class="ui green basic inverted positive button"> |       <i class="checkmark icon"></i> | ||||||
|         <i class="checkmark icon"></i> |       {{.i18n.Tr "modal.yes"}} | ||||||
|         {{.i18n.Tr "modal.yes"}} |  | ||||||
|       </div> |  | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|  | @ -84,14 +80,16 @@ | ||||||
| 		<form class="ui edit-label form" action="{{$.RepoLink}}/labels/edit" method="post"> | 		<form class="ui edit-label form" action="{{$.RepoLink}}/labels/edit" method="post"> | ||||||
| 			{{.CsrfTokenHtml}} | 			{{.CsrfTokenHtml}} | ||||||
| 			<input id="label-modal-id" name="id" type="hidden"> | 			<input id="label-modal-id" name="id" type="hidden"> | ||||||
| 			<div class="inline fields"> | 			<div class="ui grid"> | ||||||
| 				<div class="field"> | 				<div class="five wide column"> | ||||||
| 					<input id="label-modal-title" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" required> | 					<div class="ui small input"> | ||||||
|  | 			  		<input class="new-label-input" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" autofocus required> | ||||||
|  | 					</div> | ||||||
| 				</div> | 				</div> | ||||||
| 				<div class="field"> | 				<div class="color picker column"> | ||||||
| 		      <input id="label-modal-color" class="color-picker" name="color" value="#70c24a" required> | 	      	<input class="color-picker" name="color" value="#70c24a" required> | ||||||
| 				</div> | 				</div> | ||||||
| 				<div class="field precolors"> | 				<div class="column precolors"> | ||||||
| 					{{template "repo/issue/label_precolors"}} | 					{{template "repo/issue/label_precolors"}} | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
|  |  | ||||||
|  | @ -1,28 +1,26 @@ | ||||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||||
| <div class="repository"> | <div class="repository"> | ||||||
| 	{{template "repo/header" .}} | 	{{template "repo/header" .}} | ||||||
| 	<div class="ui middle page grid body"> | 	<div class="ui container"> | ||||||
| 		<div class="navbar"> | 		<div class="navbar"> | ||||||
| 			{{template "repo/issue/navbar" .}} | 			{{template "repo/issue/navbar" .}} | ||||||
| 			<div class="ui right floated secondary menu"> | 			<div class="ui right"> | ||||||
| 				<a class="ui green button" href="{{$.RepoLink}}/issues/new">{{.i18n.Tr "repo.issues.new"}}</a> | 				<a class="ui green button" href="{{$.RepoLink}}/issues/new">{{.i18n.Tr "repo.issues.new"}}</a> | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 		<div class="ui divider"></div> | 		<div class="ui divider"></div> | ||||||
| 		<div class="ui left"> | 		<div class="ui tiny buttons"> | ||||||
| 			<div class="ui tiny buttons"> | 		  <a class="ui green basic button {{if not .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{$.ViewType}}&state=open&labels={{.SelectLabels}}&milestone={{.MilestoneID}}"> | ||||||
| 			  <a class="ui green basic button {{if not .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{$.ViewType}}&state=open&labels={{.SelectLabels}}&milestone={{.MilestoneID}}"> | 		  	<i class="octicon octicon-issue-opened"></i> | ||||||
| 			  	<i class="octicon octicon-issue-opened"></i> | 		  	{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}} | ||||||
| 			  	{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}} | 		  </a> | ||||||
| 			  </a> | 		  <a class="ui red basic button {{if .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{.ViewType}}&state=closed&labels={{.SelectLabels}}&milestone={{.MilestoneID}}"> | ||||||
| 			  <a class="ui red basic button {{if .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{.ViewType}}&state=closed&labels={{.SelectLabels}}&milestone={{.MilestoneID}}"> | 		  	<i class="octicon octicon-issue-closed"></i> | ||||||
| 			  	<i class="octicon octicon-issue-closed"></i> | 		  	{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}} | ||||||
| 			  	{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}} | 		  </a> | ||||||
| 			  </a> |  | ||||||
| 			</div> |  | ||||||
| 		</div> | 		</div> | ||||||
| 		<div class="ui right floated secondary filter menu"> | 		<div class="ui right floated secondary filter menu"> | ||||||
| 			<div class="ui {{if not .Labels}}disabled{{end}} pointing dropdown jump item"> | 			<div class="ui {{if not .Labels}}disabled{{end}} dropdown jump item"> | ||||||
| 				<span class="text"> | 				<span class="text"> | ||||||
| 					{{.i18n.Tr "repo.issues.filter_label"}} | 					{{.i18n.Tr "repo.issues.filter_label"}} | ||||||
| 					<i class="dropdown icon"></i> | 					<i class="dropdown icon"></i> | ||||||
|  | @ -34,7 +32,7 @@ | ||||||
|           {{end}} |           {{end}} | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="ui {{if not .Milestones}}disabled{{end}} pointing dropdown jump item"> | 			<div class="ui {{if not .Milestones}}disabled{{end}} dropdown jump item"> | ||||||
| 				<span class="text"> | 				<span class="text"> | ||||||
| 					{{.i18n.Tr "repo.issues.filter_milestone"}} | 					{{.i18n.Tr "repo.issues.filter_milestone"}} | ||||||
| 					<i class="dropdown icon"></i> | 					<i class="dropdown icon"></i> | ||||||
|  | @ -46,7 +44,7 @@ | ||||||
|           {{end}} |           {{end}} | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| 			<!-- <div class="ui {{if not .Assignees}}disabled{{end}} pointing dropdown jump item"> | 			<!-- <div class="ui {{if not .Assignees}}disabled{{end}} dropdown jump item"> | ||||||
| 				<span class="text"> | 				<span class="text"> | ||||||
| 					{{.i18n.Tr "repo.issues.filter_assignee"}} | 					{{.i18n.Tr "repo.issues.filter_assignee"}} | ||||||
| 					<i class="dropdown icon"></i> | 					<i class="dropdown icon"></i> | ||||||
|  | @ -57,7 +55,7 @@ | ||||||
|           {{end}} |           {{end}} | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> --> | 			</div> --> | ||||||
| 			<div class="ui pointing dropdown type jump item"> | 			<div class="ui dropdown type jump item"> | ||||||
| 				<span class="text"> | 				<span class="text"> | ||||||
| 					{{.i18n.Tr "repo.issues.filter_type"}} | 					{{.i18n.Tr "repo.issues.filter_type"}} | ||||||
| 					<i class="dropdown icon"></i> | 					<i class="dropdown icon"></i> | ||||||
|  | @ -71,57 +69,55 @@ | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 
 | 
 | ||||||
| 		<div class="sixteen wide column"> | 		<div class="issue list"> | ||||||
| 			<div class="issue list"> | 			{{range .Issues}} | ||||||
| 				{{range .Issues}} | 			{{ $timeStr:= TimeSince .Created $.Lang }} | ||||||
| 				{{ $timeStr:= TimeSince .Created $.Lang }} |       <li class="item"> | ||||||
| 	      <li class="item"> |       	<div class="ui {{if .IsRead}}black{{else}}green{{end}} label">#{{.Index}}</div> | ||||||
| 	      	<div class="ui {{if .IsRead}}black{{else}}green{{end}} label">#{{.Index}}</div> |       	<a class="title" href="{{$.RepoLink}}/issues/{{.Index}}">{{.Name}}</a> | ||||||
| 	      	<a class="title" href="{{$.RepoLink}}/issues/{{.Index}}">{{.Name}}</a> |  | ||||||
| 
 | 
 | ||||||
| 	      	{{range .Labels}} |       	{{range .Labels}} | ||||||
| 					<a class="ui label" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}" style="background-color: {{.Color}}">{{.Name}}</a> | 				<a class="ui label" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}" style="background-color: {{.Color}}">{{.Name}}</a> | ||||||
| 	      	{{end}} |       	{{end}} | ||||||
| 
 | 
 | ||||||
| 	      	{{if .NumComments}} |       	{{if .NumComments}} | ||||||
| 	      	<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span> |       	<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span> | ||||||
| 	      	{{end}} |       	{{end}} | ||||||
| 
 | 
 | ||||||
| 	        <p class="desc"> |         <p class="desc"> | ||||||
| 	        	{{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.Name|Str2html}} |         	{{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.Name|Str2html}} | ||||||
| 		        {{if .Milestone}} | 	        {{if .Milestone}} | ||||||
| 						{{with .Milestone}} | 					{{with .Milestone}} | ||||||
| 						<a class="milestone" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.ID}}"> | 					<a class="milestone" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.ID}}"> | ||||||
| 							<span class="octicon octicon-milestone"></span> {{.Name}} | 						<span class="octicon octicon-milestone"></span> {{.Name}} | ||||||
| 						</a> | 					</a> | ||||||
| 						{{end}} | 					{{end}} | ||||||
| 		        {{end}} | 	        {{end}} | ||||||
| 	        </p> |         </p> | ||||||
| 	      </li> |       </li> | ||||||
| 	      {{end}} |       {{end}} | ||||||
| 				 | 			 | ||||||
| 				{{with .Page}} | 			{{with .Page}} | ||||||
| 				{{if gt .TotalPages 1}} | 			{{if gt .TotalPages 1}} | ||||||
| 				<div class="center page buttons"> | 			<div class="center page buttons"> | ||||||
| 					<div class="ui borderless pagination menu"> | 				<div class="ui borderless pagination menu"> | ||||||
| 					  <a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Previous}}"{{end}}> | 				  <a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Previous}}"{{end}}> | ||||||
| 					    <i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}} | 				    <i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}} | ||||||
| 					  </a> | 				  </a> | ||||||
| 						{{range .Pages}} | 					{{range .Pages}} | ||||||
| 						{{if eq .Num -1}} | 					{{if eq .Num -1}} | ||||||
| 						<a class="disabled item">...</a> | 					<a class="disabled item">...</a> | ||||||
| 						{{else}} | 					{{else}} | ||||||
| 						<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Num}}"{{end}}>{{.Num}}</a> | 					<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Num}}"{{end}}>{{.Num}}</a> | ||||||
| 						{{end}} | 					{{end}} | ||||||
| 						{{end}} | 					{{end}} | ||||||
| 					  <a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Next}}"{{end}}> | 				  <a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Next}}"{{end}}> | ||||||
| 					    {{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i> | 				    {{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i> | ||||||
| 					  </a> | 				  </a> | ||||||
| 					</div> |  | ||||||
| 				</div> | 				</div> | ||||||
| 				{{end}} |  | ||||||
| 				{{end}} |  | ||||||
| 			</div> | 			</div> | ||||||
|  | 			{{end}} | ||||||
|  | 			{{end}} | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
|  | @ -1,125 +1,115 @@ | ||||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||||
| <div class="repository milestones"> | <div class="repository milestones"> | ||||||
| 	{{template "repo/header" .}} | 	{{template "repo/header" .}} | ||||||
| 	<div class="ui middle page grid body"> | 	<div class="ui container"> | ||||||
| 		<div class="navbar"> | 		<div class="navbar"> | ||||||
| 			{{template "repo/issue/navbar" .}} | 			{{template "repo/issue/navbar" .}} | ||||||
| 			{{if .IsRepositoryAdmin}} | 			{{if .IsRepositoryAdmin}} | ||||||
| 			<div class="ui right floated secondary menu"> | 			<div class="ui right"> | ||||||
| 				<a class="ui green button" href="{{$.Link}}/new">{{.i18n.Tr "repo.milestones.new"}}</a> | 				<a class="ui green button" href="{{$.Link}}/new">{{.i18n.Tr "repo.milestones.new"}}</a> | ||||||
| 			</div> | 			</div> | ||||||
| 			{{end}} | 			{{end}} | ||||||
| 		</div> | 		</div> | ||||||
| 		<div class="ui divider"></div> | 		<div class="ui divider"></div> | ||||||
| 		{{template "repo/issue/alert" .}} | 		{{template "base/alert" .}} | ||||||
| 		<div class="ui left"> | 		<div class="ui tiny buttons"> | ||||||
| 			<div class="ui tiny buttons"> | 		  <a class="ui green basic button {{if not .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/milestones?state=open"> | ||||||
| 			  <a class="ui green basic button {{if not .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/milestones?state=open"> | 		  	<i class="octicon octicon-milestone"></i> | ||||||
| 			  	<i class="octicon octicon-milestone"></i> | 		  	{{.i18n.Tr "repo.milestones.open_tab" .OpenCount}} | ||||||
| 			  	{{.i18n.Tr "repo.milestones.open_tab" .OpenCount}} | 		  </a> | ||||||
| 			  </a> | 		  <a class="ui red basic button {{if .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/milestones?state=closed"> | ||||||
| 			  <a class="ui red basic button {{if .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/milestones?state=closed"> | 		  	<i class="octicon octicon-milestone"></i> | ||||||
| 			  	<i class="octicon octicon-milestone"></i> | 		  	{{.i18n.Tr "repo.milestones.close_tab" .ClosedCount}} | ||||||
| 			  	{{.i18n.Tr "repo.milestones.close_tab" .ClosedCount}} | 		  </a> | ||||||
| 			  </a> |  | ||||||
| 			</div> |  | ||||||
| 		</div> | 		</div> | ||||||
| 		 | 		 | ||||||
| 		<div class="sixteen wide column"> | 		<div class="milestone list"> | ||||||
| 			<div class="milestone list"> | 			{{range .Milestones}} | ||||||
| 				{{range .Milestones}} | 			<li class="item"> | ||||||
| 				<li class="item"> | 				<i class="octicon octicon-milestone"></i> <a href="{{$.RepoLink}}/issues?state={{$.State}}&milestone={{.ID}}">{{.Name}}</a> | ||||||
| 					<i class="octicon octicon-milestone"></i> <a href="{{$.RepoLink}}/issues?state={{$.State}}&milestone={{.ID}}">{{.Name}}</a> | 				<div class="ui right green progress" data-percent="{{.Completeness}}"> | ||||||
| 					<div class="ui right blue progress" data-percent="{{.Completeness}}"> | 			    <div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}> | ||||||
| 				    <div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}> | 			      <div class="progress"></div> | ||||||
| 				      <div class="progress"></div> | 			    </div> | ||||||
| 				    </div> | 				</div> | ||||||
| 					</div> | 				<div class="meta"> | ||||||
| 					<div class="meta"> | 					{{ $closedDate:= TimeSince .ClosedDate $.Lang }} | ||||||
| 						{{ $closedDate:= TimeSince .ClosedDate $.Lang }} | 					{{if .IsClosed}} | ||||||
| 						{{if .IsClosed}} | 						<span class="octicon octicon-clock"></span> {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}} | ||||||
| 							<span class="octicon octicon-clock"></span> {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}} | 					{{else}} | ||||||
|  | 						<span class="octicon octicon-calendar"></span>  | ||||||
|  | 						{{if .DeadlineString}} | ||||||
|  | 						<span {{if .IsOverDue}}class="overdue"{{end}}>{{.DeadlineString}}</span> | ||||||
| 						{{else}} | 						{{else}} | ||||||
| 							<span class="octicon octicon-calendar"></span>  | 						{{$.i18n.Tr "repo.milestones.no_due_date"}} | ||||||
| 							{{if .DeadlineString}} |  | ||||||
| 							<span {{if .IsOverDue}}class="overdue"{{end}}>{{.DeadlineString}}</span> |  | ||||||
| 							{{else}} |  | ||||||
| 							{{$.i18n.Tr "repo.milestones.no_due_date"}} |  | ||||||
| 							{{end}} |  | ||||||
| 						{{end}} | 						{{end}} | ||||||
| 						<span class="issue-stats"> |  | ||||||
| 							<i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.open_tab" .NumOpenIssues}} |  | ||||||
| 							<i class="octicon octicon-issue-closed"></i> {{$.i18n.Tr "repo.issues.close_tab" .NumClosedIssues}} |  | ||||||
| 						</span> |  | ||||||
| 					</div> |  | ||||||
| 					{{if $.IsRepositoryAdmin}} |  | ||||||
| 					<div class="ui right operate"> |  | ||||||
| 						<a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a> |  | ||||||
| 						{{if .IsClosed}} |  | ||||||
| 						<a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-check"></i> {{$.i18n.Tr "repo.milestones.open"}}</a> |  | ||||||
| 						{{else}} |  | ||||||
| 						<a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-x"></i> {{$.i18n.Tr "repo.milestones.close"}}</a> |  | ||||||
| 						{{end}} |  | ||||||
| 						<a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a> |  | ||||||
| 					</div> |  | ||||||
| 					{{if .Content}} |  | ||||||
| 					<div class="content"> |  | ||||||
| 						{{.RenderedContent|Str2html}} |  | ||||||
| 					</div> |  | ||||||
| 					{{end}} | 					{{end}} | ||||||
|  | 					<span class="issue-stats"> | ||||||
|  | 						<i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.open_tab" .NumOpenIssues}} | ||||||
|  | 						<i class="octicon octicon-issue-closed"></i> {{$.i18n.Tr "repo.issues.close_tab" .NumClosedIssues}} | ||||||
|  | 					</span> | ||||||
|  | 				</div> | ||||||
|  | 				{{if $.IsRepositoryAdmin}} | ||||||
|  | 				<div class="ui right operate"> | ||||||
|  | 					<a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a> | ||||||
|  | 					{{if .IsClosed}} | ||||||
|  | 					<a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-check"></i> {{$.i18n.Tr "repo.milestones.open"}}</a> | ||||||
|  | 					{{else}} | ||||||
|  | 					<a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-x"></i> {{$.i18n.Tr "repo.milestones.close"}}</a> | ||||||
| 					{{end}} | 					{{end}} | ||||||
| 				</li> | 					<a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a> | ||||||
| 				{{end}} | 				</div> | ||||||
| 				 | 				{{if .Content}} | ||||||
| 				{{with .Page}} | 				<div class="content"> | ||||||
| 				{{if gt .TotalPages 1}} | 					{{.RenderedContent|Str2html}} | ||||||
| 				<div class="center page buttons"> |  | ||||||
| 					<div class="ui borderless pagination menu"> |  | ||||||
| 					  <a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?state={{$.State}}&page={{.Previous}}"{{end}}> |  | ||||||
| 					    <i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}} |  | ||||||
| 					  </a> |  | ||||||
| 						{{range .Pages}} |  | ||||||
| 						{{if eq .Num -1}} |  | ||||||
| 						<a class="disabled item">...</a> |  | ||||||
| 						{{else}} |  | ||||||
| 						<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?state={{$.State}}&page={{.Num}}"{{end}}>{{.Num}}</a> |  | ||||||
| 						{{end}} |  | ||||||
| 						{{end}} |  | ||||||
| 					  <a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?state={{$.State}}&page={{.Next}}"{{end}}> |  | ||||||
| 					    {{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i> |  | ||||||
| 					  </a> |  | ||||||
| 					</div> |  | ||||||
| 				</div> | 				</div> | ||||||
| 				{{end}} | 				{{end}} | ||||||
| 				{{end}} | 				{{end}} | ||||||
|  | 			</li> | ||||||
|  | 			{{end}} | ||||||
|  | 			 | ||||||
|  | 			{{with .Page}} | ||||||
|  | 			{{if gt .TotalPages 1}} | ||||||
|  | 			<div class="center page buttons"> | ||||||
|  | 				<div class="ui borderless pagination menu"> | ||||||
|  | 				  <a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?state={{$.State}}&page={{.Previous}}"{{end}}> | ||||||
|  | 				    <i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}} | ||||||
|  | 				  </a> | ||||||
|  | 					{{range .Pages}} | ||||||
|  | 					{{if eq .Num -1}} | ||||||
|  | 					<a class="disabled item">...</a> | ||||||
|  | 					{{else}} | ||||||
|  | 					<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?state={{$.State}}&page={{.Num}}"{{end}}>{{.Num}}</a> | ||||||
|  | 					{{end}} | ||||||
|  | 					{{end}} | ||||||
|  | 				  <a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?state={{$.State}}&page={{.Next}}"{{end}}> | ||||||
|  | 				    {{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i> | ||||||
|  | 				  </a> | ||||||
|  | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
|  | 			{{end}} | ||||||
|  | 			{{end}} | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
| {{if .IsRepositoryAdmin}} | {{if .IsRepositoryAdmin}} | ||||||
| <div class="ui basic delete modal"> | <div class="ui small basic delete modal"> | ||||||
|   <div class="header"> |   <div class="ui icon header"> | ||||||
|  |      <i class="trash icon"></i> | ||||||
|     {{.i18n.Tr "repo.milestones.deletion"}} |     {{.i18n.Tr "repo.milestones.deletion"}} | ||||||
|   </div> |   </div> | ||||||
|   <div class="content"> |   <div class="content"> | ||||||
|     <div class="image"> |     <p>{{.i18n.Tr "repo.milestones.deletion_desc"}}</p> | ||||||
|       <i class="trash icon"></i> |  | ||||||
|     </div> |  | ||||||
|     <div class="description"> |  | ||||||
|       <p>{{.i18n.Tr "repo.milestones.deletion_desc"}}</p> |  | ||||||
|     </div> |  | ||||||
|   </div> |   </div> | ||||||
|   <div class="actions"> |   <div class="actions"> | ||||||
|     <div class="two fluid ui inverted buttons"> |     <div class="ui red basic inverted cancel button"> | ||||||
|       <div class="ui red basic inverted button"> |       <i class="remove icon"></i> | ||||||
|         <i class="remove icon"></i> |       {{.i18n.Tr "modal.no"}} | ||||||
|         {{.i18n.Tr "modal.no"}} |     </div> | ||||||
|       </div> |     <div class="ui green basic inverted ok button"> | ||||||
|       <div class="ui green basic inverted positive button"> |       <i class="checkmark icon"></i> | ||||||
|         <i class="checkmark icon"></i> |       {{.i18n.Tr "modal.yes"}} | ||||||
|         {{.i18n.Tr "modal.yes"}} |  | ||||||
|       </div> |  | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
|  | @ -1,7 +1,5 @@ | ||||||
| <div class="ui left"> | <div class="ui compact small menu"> | ||||||
| 	<div class="ui compact menu"> |   <a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues">{{.i18n.Tr "repo.issues"}}</a> | ||||||
| 	  <a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues">{{.i18n.Tr "repo.issues"}}</a> |   <a class="{{if .PageIsLabels}}active{{end}} item" href="{{.RepoLink}}/labels">{{.i18n.Tr "repo.labels"}}</a> | ||||||
| 	  <a class="{{if .PageIsLabels}}active{{end}} item" href="{{.RepoLink}}/labels">{{.i18n.Tr "repo.labels"}}</a> |   <a class="{{if .PageIsMilestones}}active{{end}} item" href="{{.RepoLink}}/milestones">{{.i18n.Tr "repo.milestones"}}</a> | ||||||
| 	  <a class="{{if .PageIsMilestones}}active{{end}} item" href="{{.RepoLink}}/milestones">{{.i18n.Tr "repo.milestones"}}</a> |  | ||||||
| 	</div> |  | ||||||
| </div> | </div> | ||||||
|  | @ -253,7 +253,7 @@ | ||||||
|                     <h4>Milestone</h4> |                     <h4>Milestone</h4> | ||||||
|                     {{if .Milestone}} |                     {{if .Milestone}} | ||||||
|                     <p class="completion{{if eq .Milestone.Completeness 0}} hidden{{end}}"><span style="width:{{.Milestone.Completeness}}%"> </span></p> |                     <p class="completion{{if eq .Milestone.Completeness 0}} hidden{{end}}"><span style="width:{{.Milestone.Completeness}}%"> </span></p> | ||||||
|                     <p class="name"><strong><a href="{{$.RepoLink}}/issues?milestone={{.Milestone.Index}}{{if $.Issue.IsClosed}}&state=closed{{end}}">{{.Milestone.Name}}</a></strong></p> |                     <p class="name"><strong><a href="{{$.RepoLink}}/issues?milestone={{.Milestone.ID}}{{if $.Issue.IsClosed}}&state=closed{{end}}">{{.Milestone.Name}}</a></strong></p> | ||||||
|                     {{else}} |                     {{else}} | ||||||
|                     <p class="name">No milestone</p> |                     <p class="name">No milestone</p> | ||||||
|                     {{end}} |                     {{end}} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue