Skip to content

Commit 1cb1fb8

Browse files
authored
Remove JS globals related to timetracking and due date (#13921)
Refactor to avoid these globals. Should work exactly as before.
1 parent bc1cf6e commit 1cb1fb8

File tree

3 files changed

+42
-37
lines changed

3 files changed

+42
-37
lines changed

integrations/timetracking_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ func testViewTimetrackingControls(t *testing.T, session *TestSession, user, repo
4040

4141
htmlDoc := NewHTMLParser(t, resp.Body)
4242

43-
htmlDoc.AssertElement(t, ".timetrack .start-add .start", canTrackTime)
44-
htmlDoc.AssertElement(t, ".timetrack .start-add .add-time", canTrackTime)
43+
htmlDoc.AssertElement(t, ".timetrack .issue-start-time", canTrackTime)
44+
htmlDoc.AssertElement(t, ".timetrack .issue-add-time", canTrackTime)
4545

4646
req = NewRequestWithValues(t, "POST", path.Join(user, repo, "issues", issue, "times", "stopwatch", "toggle"), map[string]string{
4747
"_csrf": htmlDoc.GetCSRF(),
@@ -56,8 +56,8 @@ func testViewTimetrackingControls(t *testing.T, session *TestSession, user, repo
5656
events := htmlDoc.doc.Find(".event > span.text")
5757
assert.Contains(t, events.Last().Text(), "started working")
5858

59-
htmlDoc.AssertElement(t, ".timetrack .stop-cancel .stop", true)
60-
htmlDoc.AssertElement(t, ".timetrack .stop-cancel .cancel", true)
59+
htmlDoc.AssertElement(t, ".timetrack .issue-stop-time", true)
60+
htmlDoc.AssertElement(t, ".timetrack .issue-cancel-time", true)
6161

6262
// Sleep for 1 second to not get wrong order for stopping timer
6363
time.Sleep(time.Second)

templates/repo/issue/view_content/sidebar.tmpl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -336,18 +336,18 @@
336336
{{$.CsrfTokenHtml}}
337337
</form>
338338
{{if $.IsStopwatchRunning}}
339-
<div class="ui buttons fluid stop-cancel">
340-
<button onclick="this.disabled=true;window.toggleStopwatch()" class="ui button stop">{{.i18n.Tr "repo.issues.stop_tracking"}}</button>
341-
<button onclick="this.disabled=true;window.cancelStopwatch()" class="ui negative button cancel">{{.i18n.Tr "repo.issues.cancel_tracking"}}</button>
339+
<div class="ui buttons fluid">
340+
<button class="ui button issue-stop-time">{{.i18n.Tr "repo.issues.stop_tracking"}}</button>
341+
<button class="ui negative button issue-cancel-time">{{.i18n.Tr "repo.issues.cancel_tracking"}}</button>
342342
</div>
343343
{{else}}
344344
{{if .HasUserStopwatch}}
345345
<div class="ui warning message">
346346
{{.i18n.Tr "repo.issues.tracking_already_started" .OtherStopwatchURL | Safe}}
347347
</div>
348348
{{end}}
349-
<div class="ui buttons two fluid start-add">
350-
<button onclick="this.disabled=true;window.toggleStopwatch()" class="ui button poping up start" data-content='{{.i18n.Tr "repo.issues.start_tracking"}}' data-position="top center" data-variation="small inverted">{{.i18n.Tr "repo.issues.start_tracking_short"}}</button>
349+
<div class="ui buttons two fluid">
350+
<button class="ui button poping up issue-start-time" data-content='{{.i18n.Tr "repo.issues.start_tracking"}}' data-position="top center" data-variation="small inverted">{{.i18n.Tr "repo.issues.start_tracking_short"}}</button>
351351
<div class="ui mini modal">
352352
<div class="header">{{.i18n.Tr "repo.issues.add_time"}}</div>
353353
<div class="content">
@@ -362,7 +362,7 @@
362362
<div class="ui red cancel button">{{.i18n.Tr "repo.issues.add_time_cancel"}}</div>
363363
</div>
364364
</div>
365-
<button onclick="window.timeAddManual()" class="ui button green poping up add-time" data-content='{{.i18n.Tr "repo.issues.add_time"}}' data-position="top center" data-variation="small inverted">{{.i18n.Tr "repo.issues.add_time_short"}}</button>
365+
<button class="ui button green poping up issue-add-time" data-content='{{.i18n.Tr "repo.issues.add_time"}}' data-position="top center" data-variation="small inverted">{{.i18n.Tr "repo.issues.add_time_short"}}</button>
366366
</div>
367367
{{end}}
368368
</div>
@@ -407,8 +407,8 @@
407407
{{end}}
408408
{{if and .HasIssuesOrPullsWritePermission (not .Repository.IsArchived)}}
409409
<br/>
410-
<a style="cursor:pointer;" onclick="window.toggleDeadlineForm();"><i class="edit icon"></i>{{$.i18n.Tr "repo.issues.due_date_form_edit"}}</a> -
411-
<a style="cursor:pointer;" onclick="window.updateDeadline('');"><i class="remove icon"></i>{{$.i18n.Tr "repo.issues.due_date_form_remove"}}</a>
410+
<a class="issue-due-edit"><i class="edit icon"></i>{{$.i18n.Tr "repo.issues.due_date_form_edit"}}</a> -
411+
<a class="issue-due-remove"><i class="remove icon"></i>{{$.i18n.Tr "repo.issues.due_date_form_remove"}}</a>
412412
{{end}}
413413
</p>
414414
{{else}}
@@ -417,7 +417,7 @@
417417

418418
{{if and .HasIssuesOrPullsWritePermission (not .Repository.IsArchived)}}
419419
<div {{if ne .Issue.DeadlineUnix 0}} style="display: none;"{{end}} id="deadlineForm">
420-
<form class="ui fluid action input" action="{{AppSubUrl}}/api/v1/repos/{{.Repository.Owner.Name}}/{{.Repository.Name}}/issues/{{.Issue.Index}}" method="post" id="update-issue-deadline-form" onsubmit="window.setDeadline();return false;">
420+
<form class="ui fluid action input issue-due-form" action="{{AppSubUrl}}/api/v1/repos/{{.Repository.Owner.Name}}/{{.Repository.Name}}/issues/{{.Issue.Index}}" method="post" id="update-issue-deadline-form">
421421
{{$.CsrfTokenHtml}}
422422
<input required placeholder="{{.i18n.Tr "repo.issues.due_date_form"}}" {{if gt .Issue.DeadlineUnix 0}}value="{{.Issue.DeadlineUnix.Format "2006-01-02"}}"{{end}} type="date" name="deadlineDate" id="deadlineDate">
423423
<button class="ui green icon button">

web_src/js/index.js

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
/* exported timeAddManual, toggleStopwatch, cancelStopwatch */
2-
/* exported toggleDeadlineForm, setDeadline, updateDeadline, deleteDependencyModal, cancelCodeComment, onOAuthLoginClick */
1+
/* exported deleteDependencyModal, cancelCodeComment, onOAuthLoginClick */
32

43
import './publicpath.js';
54

@@ -2525,6 +2524,8 @@ $(document).ready(async () => {
25252524
initU2FAuth();
25262525
initU2FRegister();
25272526
initIssueList();
2527+
initIssueTimetracking();
2528+
initIssueDue();
25282529
initWipTitle();
25292530
initPullRequestReview();
25302531
initRepoStatusChecker();
@@ -3105,22 +3106,22 @@ function initVueApp() {
31053106
});
31063107
}
31073108

3108-
window.timeAddManual = function () {
3109-
$('.mini.modal')
3110-
.modal({
3109+
function initIssueTimetracking() {
3110+
$(document).on('click', '.issue-add-time', () => {
3111+
$('.mini.modal').modal({
31113112
duration: 200,
31123113
onApprove() {
31133114
$('#add_time_manual_form').trigger('submit');
31143115
}
31153116
}).modal('show');
3116-
};
3117-
3118-
window.toggleStopwatch = function () {
3119-
$('#toggle_stopwatch_form').trigger('submit');
3120-
};
3121-
window.cancelStopwatch = function () {
3122-
$('#cancel_stopwatch_form').trigger('submit');
3123-
};
3117+
});
3118+
$(document).on('click', '.issue-start-time, .issue-stop-time', () => {
3119+
$('#toggle_stopwatch_form').trigger('submit');
3120+
});
3121+
$(document).on('click', '.issue-cancel-time', () => {
3122+
$('#cancel_stopwatch_form').trigger('submit');
3123+
});
3124+
}
31243125

31253126
function initFilterBranchTagDropdown(selector) {
31263127
$(selector).each(function () {
@@ -3476,16 +3477,7 @@ function initTopicbar() {
34763477
});
34773478
}
34783479

3479-
window.toggleDeadlineForm = function () {
3480-
$('#deadlineForm').fadeToggle(150);
3481-
};
3482-
3483-
window.setDeadline = function () {
3484-
const deadline = $('#deadlineDate').val();
3485-
window.updateDeadline(deadline);
3486-
};
3487-
3488-
window.updateDeadline = function (deadlineString) {
3480+
function updateDeadline(deadlineString) {
34893481
$('#deadline-err-invalid-date').hide();
34903482
$('#deadline-loader').addClass('loading');
34913483

@@ -3519,7 +3511,20 @@ window.updateDeadline = function (deadlineString) {
35193511
$('#deadline-err-invalid-date').show();
35203512
}
35213513
});
3522-
};
3514+
}
3515+
3516+
function initIssueDue() {
3517+
$(document).on('click', '.issue-due-edit', () => {
3518+
$('#deadlineForm').fadeToggle(150);
3519+
});
3520+
$(document).on('click', '.issue-due-remove', () => {
3521+
updateDeadline('');
3522+
});
3523+
$(document).on('submit', '.issue-due-form', () => {
3524+
updateDeadline($('#deadlineDate').val());
3525+
return false;
3526+
});
3527+
}
35233528

35243529
window.deleteDependencyModal = function (id, type) {
35253530
$('.remove-dependency')

0 commit comments

Comments
 (0)