mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	Disable Create column button while the column name is empty  (#25192)
				
					
				
			 Fixes #25116
This commit is contained in:
		| @@ -34,7 +34,7 @@ | |||||||
|  |  | ||||||
| 							<div class="text right actions"> | 							<div class="text right actions"> | ||||||
| 								<button class="ui cancel button">{{$.locale.Tr "settings.cancel"}}</button> | 								<button class="ui cancel button">{{$.locale.Tr "settings.cancel"}}</button> | ||||||
| 								<button data-url="{{$.RepoLink}}/projects/{{$.Project.ID}}" class="ui primary button" id="new_board_submit">{{$.locale.Tr "repo.projects.column.new_submit"}}</button> | 								<button data-url="{{$.RepoLink}}/projects/{{$.Project.ID}}" class="ui primary button disabled" id="new_board_submit">{{$.locale.Tr "repo.projects.column.new_submit"}}</button> | ||||||
| 							</div> | 							</div> | ||||||
| 						</form> | 						</form> | ||||||
| 					</div> | 					</div> | ||||||
|   | |||||||
| @@ -9,6 +9,21 @@ function updateIssueCount(cards) { | |||||||
|   parent.getElementsByClassName('board-card-cnt')[0].textContent = cnt; |   parent.getElementsByClassName('board-card-cnt')[0].textContent = cnt; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function createNewBoard(url, boardTitle, projectColorInput) { | ||||||
|  |   $.ajax({ | ||||||
|  |     url, | ||||||
|  |     data: JSON.stringify({title: boardTitle.val(), color: projectColorInput.val()}), | ||||||
|  |     headers: { | ||||||
|  |       'X-Csrf-Token': csrfToken, | ||||||
|  |     }, | ||||||
|  |     contentType: 'application/json', | ||||||
|  |     method: 'POST', | ||||||
|  |   }).done(() => { | ||||||
|  |     boardTitle.closest('form').removeClass('dirty'); | ||||||
|  |     window.location.reload(); | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
| function moveIssue({item, from, to, oldIndex}) { | function moveIssue({item, from, to, oldIndex}) { | ||||||
|   const columnCards = to.getElementsByClassName('board-card'); |   const columnCards = to.getElementsByClassName('board-card'); | ||||||
|   updateIssueCount(from); |   updateIssueCount(from); | ||||||
| @@ -17,8 +32,8 @@ function moveIssue({item, from, to, oldIndex}) { | |||||||
|   const columnSorting = { |   const columnSorting = { | ||||||
|     issues: Array.from(columnCards, (card, i) => ({ |     issues: Array.from(columnCards, (card, i) => ({ | ||||||
|       issueID: parseInt($(card).attr('data-issue')), |       issueID: parseInt($(card).attr('data-issue')), | ||||||
|       sorting: i |       sorting: i, | ||||||
|     })) |     })), | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   $.ajax({ |   $.ajax({ | ||||||
| @@ -31,7 +46,7 @@ function moveIssue({item, from, to, oldIndex}) { | |||||||
|     type: 'POST', |     type: 'POST', | ||||||
|     error: () => { |     error: () => { | ||||||
|       from.insertBefore(item, from.children[oldIndex]); |       from.insertBefore(item, from.children[oldIndex]); | ||||||
|     } |     }, | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -168,24 +183,29 @@ export function initRepoProject() { | |||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   $('#new_board_submit').on('click', function (e) { |   $('#new_board_submit').on('click', (e) => { | ||||||
|     e.preventDefault(); |     e.preventDefault(); | ||||||
|  |  | ||||||
|     const boardTitle = $('#new_board'); |     const boardTitle = $('#new_board'); | ||||||
|     const projectColorInput = $('#new_board_color_picker'); |     const projectColorInput = $('#new_board_color_picker'); | ||||||
|  |     if (!boardTitle.val()) { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  |     const url = $(this).data('url'); | ||||||
|  |     createNewBoard(url, boardTitle, projectColorInput); | ||||||
|  |   }); | ||||||
|  |  | ||||||
|     $.ajax({ |   $('.new-board').on('input keyup', (e) => { | ||||||
|       url: $(this).data('url'), |     const boardTitle = $('#new_board'); | ||||||
|       data: JSON.stringify({title: boardTitle.val(), color: projectColorInput.val()}), |     const projectColorInput = $('#new_board_color_picker'); | ||||||
|       headers: { |     if (!boardTitle.val()) { | ||||||
|         'X-Csrf-Token': csrfToken, |       $('#new_board_submit').addClass('disabled'); | ||||||
|       }, |       return; | ||||||
|       contentType: 'application/json', |     } | ||||||
|       method: 'POST', |     $('#new_board_submit').removeClass('disabled'); | ||||||
|     }).done(() => { |     if (e.key === 'Enter') { | ||||||
|       boardTitle.closest('form').removeClass('dirty'); |       const url = $(this).data('url'); | ||||||
|       window.location.reload(); |       createNewBoard(url, boardTitle, projectColorInput); | ||||||
|     }); |     } | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user