mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-25 16:22:43 +01:00
Show confirmation dialog when closing a modal if form contents have been changed
Summary: Honestly I did not realize that Differential can do this. Anyway this is related to T15034 ... Originally opened at https://secure.phabricator.com/T12676 Test Plan: 1) Start creating a task via a Workboard in Manifest, type many words, press `ESC` 2) Start creating a task via a Workboard in Manifest, type no words, press `ESC` Reviewers: O1 Blessed Committers, Ekubischta, speck Reviewed By: O1 Blessed Committers, Ekubischta, speck Subscribers: Leon95, 20after4, avivey, Ekubischta, speck, tobiaswiese Tags: #maniphest Differential Revision: https://we.phorge.it/D25015
This commit is contained in:
parent
377ac059d6
commit
a16e8773f0
1 changed files with 19 additions and 0 deletions
19
webroot/rsrc/externals/javelin/lib/Workflow.js
vendored
19
webroot/rsrc/externals/javelin/lib/Workflow.js
vendored
|
@ -403,6 +403,16 @@ JX.install('Workflow', {
|
|||
JX.$E('Response to workflow request went unhandled.');
|
||||
}
|
||||
}
|
||||
|
||||
var form = JX.DOM.scry(this._root, 'form', 'jx-dialog');
|
||||
if (form.length) {
|
||||
JX.DOM.listen(form[0], 'keydown', null, function(e) {
|
||||
if (e.getSpecialKey()) {
|
||||
return;
|
||||
}
|
||||
JX.Stratcom.addSigil(form[0], 'dialog-keydown');
|
||||
});
|
||||
}
|
||||
},
|
||||
_push : function() {
|
||||
if (!this._pushed) {
|
||||
|
@ -536,6 +546,15 @@ JX.install('Workflow', {
|
|||
return;
|
||||
}
|
||||
|
||||
var form = JX.DOM.scry(active._root, 'form', 'jx-dialog');
|
||||
if (
|
||||
form.length &&
|
||||
JX.Stratcom.hasSigil(form[0], 'dialog-keydown') &&
|
||||
!confirm('Form data may have changed. Are you sure you want to close this dialog?')
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
JX.Workflow._pop();
|
||||
e.prevent();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue