Skip to content

Commit da45955

Browse files
committed
chore: Improve pull request creation usabilities
1 parent 235a187 commit da45955

File tree

4 files changed

+39
-26
lines changed

4 files changed

+39
-26
lines changed

server-core/src/main/java/io/onedev/server/web/component/markdown/MarkdownEditor.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
</div>
3838
<div class="warning alert alert-notice alert-light-warning">
3939
<a class="close" data-dismiss="alert"><span><wicket:svg href="times" class="icon"/></span></a>
40-
<div class="message"><wicket:t>Below content is restored from an unsaved change. Clear to discard</wicket:t></div>
40+
<div class="message"><wicket:t>Below content is restored from an unsaved change. <a class="clear-unsaved-change">Clear</a> to discard</wicket:t></div>
4141
</div>
4242
<div class="emojis"></div>
4343
<div class="help text-muted font-size-sm">

server-core/src/main/java/io/onedev/server/web/component/markdown/markdown.js

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -163,30 +163,31 @@ onedev.server.markdown = {
163163

164164
onedev.server.markdown.setupActionMenu($container, $head.find(".normal-mode"));
165165

166+
function preview() {
167+
/*
168+
* in case an ajax call is ongoing we postpone the render
169+
* as the ongoing call may alter the component layout
170+
*/
171+
if (onedev.server.ajaxRequests.count != 0) {
172+
setTimeout(preview, 10);
173+
} else if ($preview.is(":visible")) {
174+
callback("render", $input.val());
175+
}
176+
}
177+
166178
var previewTimeout = 500;
167179
$input.doneEvents("input inserted.atwho", function() {
168-
function render() {
169-
if (autosaveKey) {
170-
var content = $input.val();
171-
if (content.trim().length != 0)
172-
localStorage.setItem(autosaveKey, content);
173-
else
174-
localStorage.removeItem(autosaveKey);
175-
}
176-
177-
/*
178-
* in case an ajax call is ongoing we postpone the render
179-
* as the ongoing call may alter the component layout
180-
*/
181-
if (onedev.server.ajaxRequests.count != 0) {
182-
setTimeout(render, 10);
183-
} else if ($preview.is(":visible")) {
184-
callback("render", $input.val());
185-
}
180+
if (autosaveKey) {
181+
var content = $input.val();
182+
if (content.trim().length != 0)
183+
localStorage.setItem(autosaveKey, content);
184+
else
185+
localStorage.removeItem(autosaveKey);
186186
}
187-
188-
render();
187+
preview();
189188
}, previewTimeout);
189+
190+
$input.on("preview", preview);
190191

191192
$input.doneEvents("keydown", function(e) {
192193
if (e.keyCode>=33 && e.keyCode<=40 && $preview.is(":visible")
@@ -954,7 +955,13 @@ onedev.server.markdown = {
954955
var $edit = $body.children(".edit");
955956
var $preview = $body.children(".preview");
956957
var $input = $edit.children("textarea");
957-
958+
$warning.find(".clear-unsaved-change").click(function() {
959+
$warning.hide();
960+
$input.val("");
961+
$preview.children(".markdown-rendered").html("");
962+
localStorage.removeItem(autosaveKey);
963+
onedev.server.form.markClean($input.closest("form"));
964+
});
958965
if ($body.find(".ui-resizable-handle:visible").length != 0) {
959966
var defaultHeight = 200;
960967
if ($container.hasClass("normal-mode")) {

server-core/src/main/java/io/onedev/server/web/page/base/base.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,16 @@ onedev.server = {
125125
$container = $(document);
126126
var selector = "form.leave-confirm.dirty";
127127
var $dirtyForms = $container.find(selector).addBack(selector);
128-
if ($dirtyForms.length != 0)
129-
return confirm("There are unsaved changes, do you want to discard and continue?");
130-
else
128+
if ($dirtyForms.length != 0) {
129+
if (confirm("There are unsaved changes, do you want to discard and continue?")) {
130+
onedev.server.form.markClean($dirtyForms);
131+
return true;
132+
} else {
133+
return false;
134+
}
135+
} else {
131136
return true;
137+
}
132138
}
133139
},
134140
isDarkMode: function() {

server-core/src/main/java/io/onedev/server/web/page/project/pullrequests/create/new-pull-request.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ onedev.server.newPullRequest = {
7676

7777
if (description) {
7878
$descriptionInput.val(description);
79-
$descriptionInput.trigger("input");
79+
$descriptionInput.trigger("preview");
8080
}
8181
}
8282

0 commit comments

Comments
 (0)