function prep_new_repo()

in htdocs/js/boxer.js [625:672]


function prep_new_repo(refresh=false, submit=false) {
    let frn = document.getElementById('final_repo_name');
    let project = document.getElementById('project').value;
    let suffix = document.getElementById('suffix').value;
    let priv = login_cached.credentials.admin ? document.getElementById('private').checked : false;
    let repo_title = 'Apache ' + project;
    let repo_commit = document.getElementById('commit').value;
    let repo_dev = document.getElementById('dev').value;
    let incubator_prefix = document.getElementById('incubator_prefix');
    document.getElementById('sbmt').disabled = true;
    if (!project.length) {
        frn.innerText = "Please select a project";
        return
    }
    if (refresh) {
        document.getElementById('commit').value = `commits@${project}.apache.org`;
        document.getElementById('dev').value = `dev@${project}.apache.org`;
    }
    if (!suffix.match(/^[-a-z0-9]*$/)) {
        frn.innerText = "Invalid repository suffix. Must be lowercase alphanumeric characters or dashes only.";
        return
    }
    if (login_cached.podlings.includes(project)) {
        if (incubator_prefix.checked) {
            project = 'incubator-' + project;
        }
    }
    let repo_name = project;
    if (suffix && suffix.length) {
        repo_name += "-" + suffix;
    }
    repo_name += ".git";
    let repo_url_gitbox = "https://gitbox.apache.org/repos/" + ( priv ? "private/" + project : "asf") + "/" + repo_name;
    let repo_url_github= "https://github.com/apache/" + repo_name;
    frn.innerText = `This will create a repository named ${repo_name}`;
    document.getElementById('sbmt').disabled = false;
    if (submit) {
        if (window.confirm(`This will create ${repo_name}. Are you sure you wish to continue?`)) {
            // INFRA-26130 et al: Avoid double names like openserverless-openserverless-foo.git
            if (suffix && suffix.startsWith(project)) {
                if (!window.confirm(`WARNING: The requested repository name, ${repo_name}, contains the project name twice! Are you absolutely sure you want this?`)) {
                    return
                }
            }
            create_new_repo(project, repo_name, priv, repo_title, repo_commit, repo_dev);
        }
    }
}