mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	* clean up async/await, and sort init calls in `index.js * use `const _promise` to indicate that we do not need await an async function
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import {createMonaco} from './codeeditor.js';
 | 
						|
import {initRepoCommonFilterSearchDropdown} from './repo-common.js';
 | 
						|
 | 
						|
const {appSubUrl, csrfToken} = window.config;
 | 
						|
 | 
						|
export function initRepoSettingsCollaboration() {
 | 
						|
  // Change collaborator access mode
 | 
						|
  $('.access-mode.menu .item').on('click', function () {
 | 
						|
    const $menu = $(this).parent();
 | 
						|
    $.post($menu.data('url'), {
 | 
						|
      _csrf: csrfToken,
 | 
						|
      uid: $menu.data('uid'),
 | 
						|
      mode: $(this).data('value')
 | 
						|
    });
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
export function initRepoSettingSearchTeamBox() {
 | 
						|
  const $searchTeamBox = $('#search-team-box');
 | 
						|
  $searchTeamBox.search({
 | 
						|
    minCharacters: 2,
 | 
						|
    apiSettings: {
 | 
						|
      url: `${appSubUrl}/api/v1/orgs/${$searchTeamBox.data('org')}/teams/search?q={query}`,
 | 
						|
      headers: {'X-Csrf-Token': csrfToken},
 | 
						|
      onResponse(response) {
 | 
						|
        const items = [];
 | 
						|
        $.each(response.data, (_i, item) => {
 | 
						|
          const title = `${item.name} (${item.permission} access)`;
 | 
						|
          items.push({
 | 
						|
            title,
 | 
						|
          });
 | 
						|
        });
 | 
						|
 | 
						|
        return {results: items};
 | 
						|
      }
 | 
						|
    },
 | 
						|
    searchFields: ['name', 'description'],
 | 
						|
    showNoResults: false
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
export function initRepoSettingGitHook() {
 | 
						|
  if ($('.edit.githook').length === 0) return;
 | 
						|
  const filename = document.querySelector('.hook-filename').textContent;
 | 
						|
  const _promise = createMonaco($('#content')[0], filename, {language: 'shell'});
 | 
						|
}
 | 
						|
 | 
						|
export function initRepoSettingBranches() {
 | 
						|
  // Branches
 | 
						|
  if ($('.repository.settings.branches').length > 0) {
 | 
						|
    initRepoCommonFilterSearchDropdown('.protected-branches .dropdown');
 | 
						|
    $('.enable-protection, .enable-whitelist, .enable-statuscheck').on('change', function () {
 | 
						|
      if (this.checked) {
 | 
						|
        $($(this).data('target')).removeClass('disabled');
 | 
						|
      } else {
 | 
						|
        $($(this).data('target')).addClass('disabled');
 | 
						|
      }
 | 
						|
    });
 | 
						|
    $('.disable-whitelist').on('change', function () {
 | 
						|
      if (this.checked) {
 | 
						|
        $($(this).data('target')).addClass('disabled');
 | 
						|
      }
 | 
						|
    });
 | 
						|
  }
 | 
						|
}
 |