2022-01-28 14:00:11 -07:00
|
|
|
import $ from 'jquery';
|
2021-10-16 11:28:04 -06:00
|
|
|
import {
|
2024-11-03 04:00:12 -07:00
|
|
|
initRepoCommentFormAndSidebar,
|
2022-12-23 09:03:11 -07:00
|
|
|
initRepoIssueBranchSelect, initRepoIssueCodeCommentCancel, initRepoIssueCommentDelete,
|
|
|
|
initRepoIssueComments, initRepoIssueDependencyDelete, initRepoIssueReferenceIssue,
|
2023-04-03 04:06:57 -06:00
|
|
|
initRepoIssueTitleEdit, initRepoIssueWipToggle,
|
2024-11-03 04:00:12 -07:00
|
|
|
initRepoPullRequestUpdate,
|
2024-07-07 09:32:30 -06:00
|
|
|
} from './repo-issue.ts';
|
|
|
|
import {initUnicodeEscapeButton} from './repo-unicode-escape.ts';
|
2023-03-14 03:51:20 -06:00
|
|
|
import {initRepoBranchTagSelector} from '../components/RepoBranchTagSelector.vue';
|
2024-12-11 08:54:42 -07:00
|
|
|
import {initRepoCloneButtons} from './repo-common.ts';
|
2024-07-07 09:32:30 -06:00
|
|
|
import {initCitationFileCopyContent} from './citation.ts';
|
|
|
|
import {initCompLabelEdit} from './comp/LabelEdit.ts';
|
|
|
|
import {initRepoDiffConversationNav} from './repo-diff.ts';
|
|
|
|
import {initCompReactionSelector} from './comp/ReactionSelector.ts';
|
2024-11-03 04:00:12 -07:00
|
|
|
import {initRepoSettings} from './repo-settings.ts';
|
2024-07-07 09:32:30 -06:00
|
|
|
import {initRepoPullRequestMergeForm} from './repo-issue-pr-form.ts';
|
|
|
|
import {initRepoPullRequestCommitStatus} from './repo-issue-pr-status.ts';
|
|
|
|
import {hideElem, queryElemChildren, showElem} from '../utils/dom.ts';
|
|
|
|
import {initRepoIssueCommentEdit} from './repo-issue-edit.ts';
|
2024-11-03 04:00:12 -07:00
|
|
|
import {initRepoMilestone} from './repo-milestone.ts';
|
|
|
|
import {initRepoNew} from './repo-new.ts';
|
Make issue meta dropdown support Enter, confirm before reloading (#23014)
As the title. Label/assignee share the same code.
* Close #22607
* Close #20727
Also:
* partially fix for #21742, now the comment reaction and menu work with
keyboard.
* partially fix for #17705, in most cases the comment won't be lost.
* partially fix for #21539
* partially fix for #20347
* partially fix for #7329
### The `Enter` support
Before, if user presses Enter, the dropdown just disappears and nothing
happens or the window reloads.
After, Enter can be used to select/deselect labels, and press Esc to
hide the dropdown to update the labels (still no way to cancel ....
maybe you can do a Cmd+R or F5 to refresh the window to discard the
changes .....)
This is only a quick patch, the UX is still not perfect, but it's much
better than before.
### The `confirm` before reloading
And more fixes for the `reload` problem, the new behaviors:
* If nothing changes (just show/hide the dropdown), then the page won't
be reloaded.
* If there are draft comments, show a confirm dialog before reloading,
to avoid losing comments.
That's the best effect can be done at the moment, unless completely
refactor these dropdown related code.
Screenshot of the confirm dialog:
<details>
![image](https://user-images.githubusercontent.com/2114189/220538288-e2da8459-6a4e-43cb-8596-74057f8a03a2.png)
</details>
---------
Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2023-02-23 18:26:27 -07:00
|
|
|
|
Actions support workflow dispatch event (#28163)
fix #23668
My plan:
* In the `actions.list` method, if workflow is selected and IsAdmin,
check whether the on event contains `workflow_dispatch`. If so, display
a `Run workflow` button to allow the user to manually trigger the run.
* Providing a form that allows users to select target brach or tag, and
these parameters can be configured in yaml
* Simple form validation, `required` input cannot be empty
* Add a route `/actions/run`, and an `actions.Run` method to handle
* Add `WorkflowDispatchPayload` struct to pass the Webhook event payload
to the runner when triggered, this payload carries the `inputs` values
and other fields, doc: [workflow_dispatch
payload](https://docs.github.com/en/webhooks/webhook-events-and-payloads#workflow_dispatch)
Other PRs
* the `Workflow.WorkflowDispatchConfig()` method still return non-nil
when workflow_dispatch is not defined. I submitted a PR
https://gitea.com/gitea/act/pulls/85 to fix it. Still waiting for them
to process.
Behavior should be same with github, but may cause confusion. Here's a
quick reminder.
*
[Doc](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch)
Said: This event will `only` trigger a workflow run if the workflow file
is `on the default branch`.
* If the workflow yaml file only exists in a non-default branch, it
cannot be triggered. (It will not even show up in the workflow list)
* If the same workflow yaml file exists in each branch at the same time,
the version of the default branch is used. Even if `Use workflow from`
selects another branch
![image](https://github.com/go-gitea/gitea/assets/3114995/4bf596f3-426b-48e8-9b8f-0f6d18defd79)
```yaml
name: Docker Image CI
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
tags:
description: 'Test scenario tags'
required: false
type: boolean
boolean_default_true:
description: 'Test scenario tags'
required: true
type: boolean
default: true
boolean_default_false:
description: 'Test scenario tags'
required: false
type: boolean
default: false
environment:
description: 'Environment to run tests against'
type: environment
required: true
default: 'environment values'
number_required_1:
description: 'number '
type: number
required: true
default: '100'
number_required_2:
description: 'number'
type: number
required: true
default: '100'
number_required_3:
description: 'number'
type: number
required: true
default: '100'
number_1:
description: 'number'
type: number
required: false
number_2:
description: 'number'
type: number
required: false
number_3:
description: 'number'
type: number
required: false
env:
inputs_logLevel: ${{ inputs.logLevel }}
inputs_tags: ${{ inputs.tags }}
inputs_boolean_default_true: ${{ inputs.boolean_default_true }}
inputs_boolean_default_false: ${{ inputs.boolean_default_false }}
inputs_environment: ${{ inputs.environment }}
inputs_number_1: ${{ inputs.number_1 }}
inputs_number_2: ${{ inputs.number_2 }}
inputs_number_3: ${{ inputs.number_3 }}
inputs_number_required_1: ${{ inputs.number_required_1 }}
inputs_number_required_2: ${{ inputs.number_required_2 }}
inputs_number_required_3: ${{ inputs.number_required_3 }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: ls -la
- run: env | grep inputs
- run: echo ${{ inputs.logLevel }}
- run: echo ${{ inputs.boolean_default_false }}
```
![image](https://github.com/go-gitea/gitea/assets/3114995/a58a842d-a0ff-4618-bc6d-83a9596d07c8)
![image](https://github.com/go-gitea/gitea/assets/3114995/44a7cca5-7bd4-42a9-8723-91751a501c88)
---------
Co-authored-by: TKaxv_7S <954067342@qq.com>
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Denys Konovalov <kontakt@denyskon.de>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2024-08-18 20:38:40 -06:00
|
|
|
export function initBranchSelectorTabs() {
|
|
|
|
const elSelectBranch = document.querySelector('.ui.dropdown.select-branch');
|
|
|
|
if (!elSelectBranch) return;
|
|
|
|
|
|
|
|
$(elSelectBranch).find('.reference.column').on('click', function () {
|
|
|
|
hideElem($(elSelectBranch).find('.scrolling.reference-list-menu'));
|
|
|
|
showElem(this.getAttribute('data-target'));
|
|
|
|
queryElemChildren(this.parentNode, '.branch-tag-item', (el) => el.classList.remove('active'));
|
|
|
|
this.classList.add('active');
|
|
|
|
return false;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2024-12-11 08:54:42 -07:00
|
|
|
function initRepoCommonBranchOrTagDropdown(selector: string) {
|
|
|
|
$(selector).each(function () {
|
|
|
|
const $dropdown = $(this);
|
|
|
|
$dropdown.find('.reference.column').on('click', function () {
|
|
|
|
hideElem($dropdown.find('.scrolling.reference-list-menu'));
|
|
|
|
showElem($($(this).data('target')));
|
|
|
|
return false;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function initRepoCommonFilterSearchDropdown(selector: string) {
|
|
|
|
const $dropdown = $(selector);
|
|
|
|
if (!$dropdown.length) return;
|
|
|
|
|
|
|
|
$dropdown.dropdown({
|
|
|
|
fullTextSearch: 'exact',
|
|
|
|
selectOnKeydown: false,
|
|
|
|
onChange(_text, _value, $choice) {
|
|
|
|
if ($choice[0].getAttribute('data-url')) {
|
|
|
|
window.location.href = $choice[0].getAttribute('data-url');
|
|
|
|
}
|
|
|
|
},
|
|
|
|
message: {noResults: $dropdown[0].getAttribute('data-no-results')},
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-11-09 02:27:25 -07:00
|
|
|
export function initRepository() {
|
2024-03-25 12:37:55 -06:00
|
|
|
if (!$('.page-content.repository').length) return;
|
2021-10-16 11:28:04 -06:00
|
|
|
|
2023-05-03 15:58:59 -06:00
|
|
|
initRepoBranchTagSelector('.js-branch-tag-selector');
|
2024-11-03 04:00:12 -07:00
|
|
|
initRepoCommentFormAndSidebar();
|
2021-10-16 11:28:04 -06:00
|
|
|
|
|
|
|
// Labels
|
2024-12-07 19:35:28 -07:00
|
|
|
initCompLabelEdit('.page-content.repository.labels');
|
2024-11-03 04:00:12 -07:00
|
|
|
initRepoMilestone();
|
|
|
|
initRepoNew();
|
2021-10-16 11:28:04 -06:00
|
|
|
|
2021-11-18 09:45:00 -07:00
|
|
|
// Compare or pull request
|
|
|
|
const $repoDiff = $('.repository.diff');
|
|
|
|
if ($repoDiff.length) {
|
|
|
|
initRepoCommonBranchOrTagDropdown('.choose.branch .dropdown');
|
|
|
|
initRepoCommonFilterSearchDropdown('.choose.branch .dropdown');
|
|
|
|
}
|
|
|
|
|
2024-12-11 06:54:30 -07:00
|
|
|
initRepoCloneButtons();
|
2022-11-11 10:02:50 -07:00
|
|
|
initCitationFileCopyContent();
|
2024-11-03 04:00:12 -07:00
|
|
|
initRepoSettings();
|
2021-11-18 09:45:00 -07:00
|
|
|
|
2021-10-16 11:28:04 -06:00
|
|
|
// Issues
|
|
|
|
if ($('.repository.view.issue').length > 0) {
|
2021-11-18 09:45:00 -07:00
|
|
|
initRepoIssueCommentEdit();
|
|
|
|
|
2021-10-16 11:28:04 -06:00
|
|
|
initRepoIssueBranchSelect();
|
|
|
|
initRepoIssueTitleEdit();
|
|
|
|
initRepoIssueWipToggle();
|
|
|
|
initRepoIssueComments();
|
|
|
|
|
|
|
|
initRepoDiffConversationNav();
|
|
|
|
initRepoIssueReferenceIssue();
|
|
|
|
|
|
|
|
initRepoIssueCommentDelete();
|
|
|
|
initRepoIssueDependencyDelete();
|
|
|
|
initRepoIssueCodeCommentCancel();
|
|
|
|
initRepoPullRequestUpdate();
|
2024-04-14 04:44:11 -06:00
|
|
|
initCompReactionSelector();
|
2022-05-12 07:39:02 -06:00
|
|
|
|
|
|
|
initRepoPullRequestMergeForm();
|
2023-11-02 08:49:02 -06:00
|
|
|
initRepoPullRequestCommitStatus();
|
2021-10-16 11:28:04 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
// Pull request
|
|
|
|
const $repoComparePull = $('.repository.compare.pull');
|
|
|
|
if ($repoComparePull.length > 0) {
|
|
|
|
// show pull request form
|
|
|
|
$repoComparePull.find('button.show-form').on('click', function (e) {
|
|
|
|
e.preventDefault();
|
2023-02-18 21:06:14 -07:00
|
|
|
hideElem($(this).parent());
|
2021-11-18 09:45:00 -07:00
|
|
|
|
|
|
|
const $form = $repoComparePull.find('.pullrequest-form');
|
2023-02-18 21:06:14 -07:00
|
|
|
showElem($form);
|
2021-10-16 11:28:04 -06:00
|
|
|
});
|
|
|
|
}
|
2022-01-06 18:18:52 -07:00
|
|
|
|
|
|
|
initUnicodeEscapeButton();
|
2021-10-16 11:28:04 -06:00
|
|
|
}
|