Fix an incorrect form submission in repo-issue.js (#3675)
This fixes `initRepoPullRequestAllowMaintainerEdit()` to submit the form correctly (as a web form, rather than as JSON payload). Fixes #3618, cherry picked from gitea#30854. Co-Authored-By: wxiaoguang <wxiaoguang@gmail.com> --- Manual testing steps: - Open a PR against any repository, with the "Allow edits from maintainers" option checked. - Open the developer console (`Ctrl-Shift-I` on Firefox), and look at the Network tab. - Visit the PR, find the "Allow edits from maintainers" checkbox, and click it. - See the developer console, and check that the response says the setting is false. - Refresh the page *completely* (`Ctrl-Shift-R` on Firefox) - Observe that the setting is off. - Click the box again to enable it. - See the developer console, and check that the response says the setting is true. - Reload without cache again (`Ctrl-Shift-R` on Firefox) - Observe that the setting is now on. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3675 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Co-authored-by: Gergely Nagy <forgejo@gergo.csillger.hu> Co-committed-by: Gergely Nagy <forgejo@gergo.csillger.hu>
This commit is contained in:
		
					parent
					
						
							
								18c8ae844e
							
						
					
				
			
			
				commit
				
					
						f4dd53d79d
					
				
			
		
					 2 changed files with 8 additions and 7 deletions
				
			
		
							
								
								
									
										1
									
								
								release-notes/8.0.0/fix/3675.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								release-notes/8.0.0/fix/3675.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Fixed an issue that rendered the "Allow edits from maintainers" checkbox disfunctional, preventing people from turning it on.
 | 
			
		||||
| 
						 | 
				
			
			@ -298,23 +298,23 @@ export function initRepoPullRequestMergeInstruction() {
 | 
			
		|||
export function initRepoPullRequestAllowMaintainerEdit() {
 | 
			
		||||
  const wrapper = document.getElementById('allow-edits-from-maintainers');
 | 
			
		||||
  if (!wrapper) return;
 | 
			
		||||
 | 
			
		||||
  wrapper.querySelector('input[type="checkbox"]')?.addEventListener('change', async (e) => {
 | 
			
		||||
    const checked = e.target.checked;
 | 
			
		||||
  const checkbox = wrapper.querySelector('input[type="checkbox"]');
 | 
			
		||||
  checkbox.addEventListener('input', async () => {
 | 
			
		||||
    const url = `${wrapper.getAttribute('data-url')}/set_allow_maintainer_edit`;
 | 
			
		||||
    wrapper.classList.add('is-loading');
 | 
			
		||||
    e.target.disabled = true;
 | 
			
		||||
    try {
 | 
			
		||||
      const response = await POST(url, {data: {allow_maintainer_edit: checked}});
 | 
			
		||||
      if (!response.ok) {
 | 
			
		||||
      const resp = await POST(url, {data: new URLSearchParams({allow_maintainer_edit: checkbox.checked})});
 | 
			
		||||
      if (!resp.ok) {
 | 
			
		||||
        throw new Error('Failed to update maintainer edit permission');
 | 
			
		||||
      }
 | 
			
		||||
      const data = await resp.json();
 | 
			
		||||
      checkbox.checked = data.allow_maintainer_edit;
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
      checkbox.checked = !checkbox.checked;
 | 
			
		||||
      console.error(error);
 | 
			
		||||
      showTemporaryTooltip(wrapper, wrapper.getAttribute('data-prompt-error'));
 | 
			
		||||
    } finally {
 | 
			
		||||
      wrapper.classList.remove('is-loading');
 | 
			
		||||
      e.target.disabled = false;
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue