Allow closing modals by clicking on the background
Cherry-pick #4044 Fixes #4895
This commit is contained in:
parent
de7c1bf16b
commit
6ca955de1f
|
|
@ -79,7 +79,7 @@ if(emailField.value!==''){emailField.value+=', '+email}else{emailField.value=ema
|
||||||
_KB.controllers.Dropdown.close()});KB.onClick('.js-autocomplete-subject',function(e){var subject=KB.dom(e.target).data('subject');var subjectField=KB.find('.js-mail-form input[name="subject"]');if(subject&&subjectField){subjectField.build().value=subject}
|
_KB.controllers.Dropdown.close()});KB.onClick('.js-autocomplete-subject',function(e){var subject=KB.dom(e.target).data('subject');var subjectField=KB.find('.js-mail-form input[name="subject"]');if(subject&&subjectField){subjectField.build().value=subject}
|
||||||
_KB.controllers.Dropdown.close()});(function(){function redirectToTaskView(e){var ignoreParentElement=KB.dom(e.target).parent('a, .task-board-change-assignee');if(ignoreParentElement){return}
|
_KB.controllers.Dropdown.close()});(function(){function redirectToTaskView(e){var ignoreParentElement=KB.dom(e.target).parent('a, .task-board-change-assignee');if(ignoreParentElement){return}
|
||||||
var taskElement=KB.dom(e.target).parent('.task-board');if(taskElement){var taskUrl=KB.dom(taskElement).data('taskUrl');if(taskUrl){window.location=taskUrl}}}
|
var taskElement=KB.dom(e.target).parent('.task-board');if(taskElement){var taskUrl=KB.dom(taskElement).data('taskUrl');if(taskUrl){window.location=taskUrl}}}
|
||||||
function openEditTask(e){var baseElement=KB.dom(e.target).parent('.task-board-change-assignee');var url=KB.dom(baseElement).data('url');if(url){KB.modal.open(url,'medium',!1)}}
|
function openEditTask(e){var baseElement=KB.dom(e.target).parent('.task-board-change-assignee');var url=KB.dom(baseElement).data('url');if(url){KB.modal.open(url,'medium',!0)}}
|
||||||
KB.onClick('.task-board *',redirectToTaskView,!0);KB.onClick('.task-board-change-assignee *',openEditTask,!0)}());KB.component('chart-project-avg-time-column',function(containerElement,options){this.render=function(){var metrics=options.metrics;var plots=[options.label];var categories=[];for(var column_id in metrics){plots.push(metrics[column_id].average);categories.push(metrics[column_id].title)}
|
KB.onClick('.task-board *',redirectToTaskView,!0);KB.onClick('.task-board-change-assignee *',openEditTask,!0)}());KB.component('chart-project-avg-time-column',function(containerElement,options){this.render=function(){var metrics=options.metrics;var plots=[options.label];var categories=[];for(var column_id in metrics){plots.push(metrics[column_id].average);categories.push(metrics[column_id].title)}
|
||||||
KB.dom(containerElement).add(KB.dom('div').attr('id','chart').build());c3.generate({data:{columns:[plots],type:'bar'},bar:{width:{ratio:0.5}},axis:{x:{type:'category',categories:categories},y:{tick:{format:KB.utils.formatDuration}}},legend:{show:!1}})}});KB.component('chart-project-burndown',function(containerElement,options){this.render=function(){var metrics=options.metrics;var columns=[[options.labelTotal]];var categories=[];var inputFormat=d3.time.format("%Y-%m-%d");var outputFormat=d3.time.format(options.dateFormat);for(var i=0;i<metrics.length;i++){for(var j=0;j<metrics[i].length;j++){var currentValue=metrics[i][j];if(i===0){if(j>0){columns.push([currentValue])}}else{if(j>0){columns[j].push(currentValue);if(typeof columns[0][i]==='undefined'){columns[0].push(0)}
|
KB.dom(containerElement).add(KB.dom('div').attr('id','chart').build());c3.generate({data:{columns:[plots],type:'bar'},bar:{width:{ratio:0.5}},axis:{x:{type:'category',categories:categories},y:{tick:{format:KB.utils.formatDuration}}},legend:{show:!1}})}});KB.component('chart-project-burndown',function(containerElement,options){this.render=function(){var metrics=options.metrics;var columns=[[options.labelTotal]];var categories=[];var inputFormat=d3.time.format("%Y-%m-%d");var outputFormat=d3.time.format(options.dateFormat);for(var i=0;i<metrics.length;i++){for(var j=0;j<metrics[i].length;j++){var currentValue=metrics[i][j];if(i===0){if(j>0){columns.push([currentValue])}}else{if(j>0){columns[j].push(currentValue);if(typeof columns[0][i]==='undefined'){columns[0].push(0)}
|
||||||
columns[0][i]+=currentValue}else{categories.push(outputFormat(inputFormat.parse(currentValue)))}}}}
|
columns[0][i]+=currentValue}else{categories.push(outputFormat(inputFormat.parse(currentValue)))}}}}
|
||||||
|
|
@ -136,8 +136,8 @@ function getUrl(image,type){var regex=new RegExp(options.regex,'g');return optio
|
||||||
function buildThumbnailElement(image){return KB.dom('img').attr('src',getUrl(image,'thumbnail')).attr('alt',image.name).attr('title',image.name).data('imageId',image.id).click(onClick).build()}
|
function buildThumbnailElement(image){return KB.dom('img').attr('src',getUrl(image,'thumbnail')).attr('alt',image.name).attr('title',image.name).data('imageId',image.id).click(onClick).build()}
|
||||||
this.render=function(){currentImage=options.image;containerElement.appendChild(buildThumbnailElement(currentImage))}});KB.keyboardShortcuts=function(){function goToLink(selector){if(!KB.modal.isOpen()){var element=KB.find(selector);if(element!==null){window.location=element.attr('href')}}}
|
this.render=function(){currentImage=options.image;containerElement.appendChild(buildThumbnailElement(currentImage))}});KB.keyboardShortcuts=function(){function goToLink(selector){if(!KB.modal.isOpen()){var element=KB.find(selector);if(element!==null){window.location=element.attr('href')}}}
|
||||||
function submitForm(){if(KB.modal.isOpen()){KB.modal.submitForm()}else{var forms=$("form");if(forms.length==1){forms.submit()}else if(forms.length>1){if(document.activeElement.tagName==='INPUT'||document.activeElement.tagName==='TEXTAREA'){$(document.activeElement).parents("form").submit()}}}}
|
function submitForm(){if(KB.modal.isOpen()){KB.modal.submitForm()}else{var forms=$("form");if(forms.length==1){forms.submit()}else if(forms.length>1){if(document.activeElement.tagName==='INPUT'||document.activeElement.tagName==='TEXTAREA'){$(document.activeElement).parents("form").submit()}}}}
|
||||||
KB.onKey('?',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('body').data('keyboardShortcutUrl'))}});KB.onKey('Escape',function(){if(!KB.exists('#suggest-menu')){KB.trigger('modal.close');_KB.get("Dropdown").close()}},!0);KB.onKey('Enter',submitForm,!0,!0);KB.onKey('Enter',submitForm,!0,!1,!0);KB.onKey('b',function(){if(!KB.modal.isOpen()){KB.trigger('board.selector.open')}});if(KB.exists('#board')){KB.onKey('c',function(){if(!KB.modal.isOpen()){_KB.get('BoardHorizontalScrolling').toggle()}});KB.onKey('s',function(){if(!KB.modal.isOpen()){_KB.get('BoardCollapsedMode').toggle()}});KB.onKey('n',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#board').data('taskCreationUrl'),'large',!1)}})}
|
KB.onKey('?',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('body').data('keyboardShortcutUrl'),'',!0)}});KB.onKey('Escape',function(){if(!KB.exists('#suggest-menu')){KB.trigger('modal.close');_KB.get("Dropdown").close()}},!0);KB.onKey('Enter',submitForm,!0,!0);KB.onKey('Enter',submitForm,!0,!1,!0);KB.onKey('b',function(){if(!KB.modal.isOpen()){KB.trigger('board.selector.open')}});if(KB.exists('#board')){KB.onKey('c',function(){if(!KB.modal.isOpen()){_KB.get('BoardHorizontalScrolling').toggle()}});KB.onKey('s',function(){if(!KB.modal.isOpen()){_KB.get('BoardCollapsedMode').toggle()}});KB.onKey('n',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#board').data('taskCreationUrl'),'large',!0)}})}
|
||||||
if(KB.exists('#task-view')){KB.onKey('e',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#task-view').data('editUrl'),'large',!1)}});KB.onKey('c',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#task-view').data('commentUrl'),'medium',!1)}});KB.onKey('s',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#task-view').data('subtaskUrl'),'medium',!1)}});KB.onKey('l',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#task-view').data('internalLinkUrl'),'medium',!1)}})}
|
if(KB.exists('#task-view')){KB.onKey('e',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#task-view').data('editUrl'),'large',!0)}});KB.onKey('c',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#task-view').data('commentUrl'),'medium',!0)}});KB.onKey('s',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#task-view').data('subtaskUrl'),'medium',!0)}});KB.onKey('l',function(){if(!KB.modal.isOpen()){KB.modal.open(KB.find('#task-view').data('internalLinkUrl'),'medium',!0)}})}
|
||||||
KB.onKey('f',function(){if(!KB.modal.isOpen()){KB.focus('#form-search')}});KB.onKey('r',function(){if(!KB.modal.isOpen()){var reset=$(".filter-reset").data("filter");var input=$("#form-search");input.val(reset);$("form.search").submit()}});KB.onKey('v+o',function(){goToLink('a.view-overview')});KB.onKey('v+b',function(){goToLink('a.view-board')});KB.onKey('v+l',function(){goToLink('a.view-listing')})};document.addEventListener("DOMContentLoaded",function(){function selectAllItems(event){event.preventDefault();var items=document.querySelectorAll("input[data-list-item=selectable]");for(var i=0;i<items.length;i++){items[i].checked=!0}
|
KB.onKey('f',function(){if(!KB.modal.isOpen()){KB.focus('#form-search')}});KB.onKey('r',function(){if(!KB.modal.isOpen()){var reset=$(".filter-reset").data("filter");var input=$("#form-search");input.val(reset);$("form.search").submit()}});KB.onKey('v+o',function(){goToLink('a.view-overview')});KB.onKey('v+b',function(){goToLink('a.view-board')});KB.onKey('v+l',function(){goToLink('a.view-listing')})};document.addEventListener("DOMContentLoaded",function(){function selectAllItems(event){event.preventDefault();var items=document.querySelectorAll("input[data-list-item=selectable]");for(var i=0;i<items.length;i++){items[i].checked=!0}
|
||||||
showActionMenu()}
|
showActionMenu()}
|
||||||
function unselectAllItems(event){event.preventDefault();var items=document.querySelectorAll("input[data-list-item=selectable]");for(var i=0;i<items.length;i++){items[i].checked=!1}
|
function unselectAllItems(event){event.preventDefault();var items=document.querySelectorAll("input[data-list-item=selectable]");for(var i=0;i<items.length;i++){items[i].checked=!1}
|
||||||
|
|
@ -152,7 +152,7 @@ var unselectLink=document.querySelector("a[data-list-item-selection=none]");if(u
|
||||||
var items=document.querySelectorAll("input[data-list-item=selectable]");for(var i=0;i<items.length;i++){items[i].addEventListener("change",onItemChange)}
|
var items=document.querySelectorAll("input[data-list-item=selectable]");for(var i=0;i<items.length;i++){items[i].addEventListener("change",onItemChange)}
|
||||||
KB.on('dropdown.afterRender',function(){var actionLinks=document.querySelectorAll("a[data-list-item-action=modal]");for(var i=0;i<actionLinks.length;i++){actionLinks[i].addEventListener("click",onActionClick,!1)}})});(function(){function getLink(e){if(e.target.tagName==='I'){return e.target.parentNode.getAttribute('href')}
|
KB.on('dropdown.afterRender',function(){var actionLinks=document.querySelectorAll("a[data-list-item-action=modal]");for(var i=0;i<actionLinks.length;i++){actionLinks[i].addEventListener("click",onActionClick,!1)}})});(function(){function getLink(e){if(e.target.tagName==='I'){return e.target.parentNode.getAttribute('href')}
|
||||||
return e.target.getAttribute('href')}
|
return e.target.getAttribute('href')}
|
||||||
KB.onClick('.js-modal-large',function(e){KB.modal.open(getLink(e),'large',!1)});KB.onClick('.js-modal-medium',function(e){if(KB.modal.isOpen()){KB.modal.replace(getLink(e))}else{KB.modal.open(getLink(e),'medium',!1)}});KB.onClick('.js-modal-small',function(e){KB.modal.open(getLink(e),'small',!1)});KB.onClick('.js-modal-confirm',function(e){KB.modal.open(getLink(e),'small')});KB.onClick('.js-modal-close',function(){KB.modal.close()});KB.onClick('.js-modal-replace',function(e){var link=getLink(e);if(KB.modal.isOpen()){KB.modal.replace(link)}else{window.location.href=link}})}());KB.onChange('.js-project-creation-select-options',function(element){var projectId=element.value;if(projectId==='0'){KB.find('.js-project-creation-options').hide()}else{KB.find('.js-project-creation-options').show()}});KB.component('project-select-role',function(containerElement,options){var isLoading=!1;var isSuccess=!1;var isError=!1;var componentElement;function onChange(element){isLoading=!0;options.role=element.value;replaceComponentElement();updateRole()}
|
KB.onClick('.js-modal-large',function(e){KB.modal.open(getLink(e),'large',!0)});KB.onClick('.js-modal-medium',function(e){if(KB.modal.isOpen()){KB.modal.replace(getLink(e))}else{KB.modal.open(getLink(e),'medium',!0)}});KB.onClick('.js-modal-small',function(e){KB.modal.open(getLink(e),'small',!0)});KB.onClick('.js-modal-confirm',function(e){KB.modal.open(getLink(e),'small',!0)});KB.onClick('.js-modal-close',function(){KB.modal.close()});KB.onClick('.js-modal-replace',function(e){var link=getLink(e);if(KB.modal.isOpen()){KB.modal.replace(link)}else{window.location.href=link}})}());KB.onChange('.js-project-creation-select-options',function(element){var projectId=element.value;if(projectId==='0'){KB.find('.js-project-creation-options').hide()}else{KB.find('.js-project-creation-options').show()}});KB.component('project-select-role',function(containerElement,options){var isLoading=!1;var isSuccess=!1;var isError=!1;var componentElement;function onChange(element){isLoading=!0;options.role=element.value;replaceComponentElement();updateRole()}
|
||||||
function updateRole(){KB.http.postJson(options.url,{id:options.id,role:options.role}).success(function(){isLoading=!1;isSuccess=!0;replaceComponentElement()}).error(function(){isLoading=!1;isSuccess=!1;isError=!0;replaceComponentElement()})}
|
function updateRole(){KB.http.postJson(options.url,{id:options.id,role:options.role}).success(function(){isLoading=!1;isSuccess=!0;replaceComponentElement()}).error(function(){isLoading=!1;isSuccess=!1;isError=!0;replaceComponentElement()})}
|
||||||
function replaceComponentElement(){KB.dom(componentElement).remove();componentElement=buildComponentElement();containerElement.appendChild(componentElement)}
|
function replaceComponentElement(){KB.dom(componentElement).remove();componentElement=buildComponentElement();containerElement.appendChild(componentElement)}
|
||||||
function getAriaLabelValue(){if(options.ariaLabel){return options.ariaLabel}
|
function getAriaLabelValue(){if(options.ariaLabel){return options.ariaLabel}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
var url = KB.dom(baseElement).data('url');
|
var url = KB.dom(baseElement).data('url');
|
||||||
|
|
||||||
if (url) {
|
if (url) {
|
||||||
KB.modal.open(url, 'medium', false);
|
KB.modal.open(url, 'medium', true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ KB.keyboardShortcuts = function () {
|
||||||
|
|
||||||
KB.onKey('?', function () {
|
KB.onKey('?', function () {
|
||||||
if (! KB.modal.isOpen()) {
|
if (! KB.modal.isOpen()) {
|
||||||
KB.modal.open(KB.find('body').data('keyboardShortcutUrl'));
|
KB.modal.open(KB.find('body').data('keyboardShortcutUrl'), '', true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -62,7 +62,7 @@ KB.keyboardShortcuts = function () {
|
||||||
|
|
||||||
KB.onKey('n', function () {
|
KB.onKey('n', function () {
|
||||||
if (! KB.modal.isOpen()) {
|
if (! KB.modal.isOpen()) {
|
||||||
KB.modal.open(KB.find('#board').data('taskCreationUrl'), 'large', false);
|
KB.modal.open(KB.find('#board').data('taskCreationUrl'), 'large', true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -70,25 +70,25 @@ KB.keyboardShortcuts = function () {
|
||||||
if (KB.exists('#task-view')) {
|
if (KB.exists('#task-view')) {
|
||||||
KB.onKey('e', function () {
|
KB.onKey('e', function () {
|
||||||
if (! KB.modal.isOpen()) {
|
if (! KB.modal.isOpen()) {
|
||||||
KB.modal.open(KB.find('#task-view').data('editUrl'), 'large', false);
|
KB.modal.open(KB.find('#task-view').data('editUrl'), 'large', true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
KB.onKey('c', function () {
|
KB.onKey('c', function () {
|
||||||
if (! KB.modal.isOpen()) {
|
if (! KB.modal.isOpen()) {
|
||||||
KB.modal.open(KB.find('#task-view').data('commentUrl'), 'medium', false);
|
KB.modal.open(KB.find('#task-view').data('commentUrl'), 'medium', true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
KB.onKey('s', function () {
|
KB.onKey('s', function () {
|
||||||
if (! KB.modal.isOpen()) {
|
if (! KB.modal.isOpen()) {
|
||||||
KB.modal.open(KB.find('#task-view').data('subtaskUrl'), 'medium', false);
|
KB.modal.open(KB.find('#task-view').data('subtaskUrl'), 'medium', true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
KB.onKey('l', function () {
|
KB.onKey('l', function () {
|
||||||
if (! KB.modal.isOpen()) {
|
if (! KB.modal.isOpen()) {
|
||||||
KB.modal.open(KB.find('#task-view').data('internalLinkUrl'), 'medium', false);
|
KB.modal.open(KB.find('#task-view').data('internalLinkUrl'), 'medium', true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,23 +8,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
KB.onClick('.js-modal-large', function (e) {
|
KB.onClick('.js-modal-large', function (e) {
|
||||||
KB.modal.open(getLink(e), 'large', false);
|
KB.modal.open(getLink(e), 'large', true);
|
||||||
});
|
});
|
||||||
|
|
||||||
KB.onClick('.js-modal-medium', function (e) {
|
KB.onClick('.js-modal-medium', function (e) {
|
||||||
if (KB.modal.isOpen()) {
|
if (KB.modal.isOpen()) {
|
||||||
KB.modal.replace(getLink(e));
|
KB.modal.replace(getLink(e));
|
||||||
} else {
|
} else {
|
||||||
KB.modal.open(getLink(e), 'medium', false);
|
KB.modal.open(getLink(e), 'medium', true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
KB.onClick('.js-modal-small', function (e) {
|
KB.onClick('.js-modal-small', function (e) {
|
||||||
KB.modal.open(getLink(e), 'small', false);
|
KB.modal.open(getLink(e), 'small', true);
|
||||||
});
|
});
|
||||||
|
|
||||||
KB.onClick('.js-modal-confirm', function (e) {
|
KB.onClick('.js-modal-confirm', function (e) {
|
||||||
KB.modal.open(getLink(e), 'small');
|
KB.modal.open(getLink(e), 'small', true);
|
||||||
});
|
});
|
||||||
|
|
||||||
KB.onClick('.js-modal-close', function () {
|
KB.onClick('.js-modal-close', function () {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue