Disable closing modals when backdrop is clicked

Closing modals when the backdrop is clicked can sometimes lead to
frustrating accidental data loss, for example when one is creating
a story and accidentally clicks outside the modal, losing everything
that has been typed.

This commit changes all the modals so that they can only be closed
using the cross or buttons in the modals. All modals are changed
to keep consistent behaviour across StoryBoard.

Change-Id: Id44ce43163c024eb5a6fe5744a3261848c0dcb74
Story: 2001553
Task: 6494
This commit is contained in:
Adam Coldrick 2018-02-15 22:55:44 +00:00
parent 4ae1e12745
commit 354a2503e4
15 changed files with 30 additions and 0 deletions

View File

@ -41,6 +41,7 @@ angular.module('sb.admin').controller('TeamAdminController',
$scope.addTeam = function () {
$modal.open({
templateUrl: 'app/admin/template/team_new.html',
backdrop: 'static',
controller: 'TeamNewController'
}).result.then(function () {
// On success, reload the page.

View File

@ -42,6 +42,7 @@ angular.module('sb.admin').controller('UserAdminController',
$modal.open(
{
templateUrl: 'app/admin/template/user_new.html',
backdrop: 'static',
controller: 'UserNewController'
}).result.then(function () {
// On success, reload the page.

View File

@ -21,6 +21,7 @@ angular.module('sb.auth').run(
function handle_403() {
var modalInstance = $modal.open({
templateUrl: 'app/auth/template/modal/superuser_required.html',
backdrop: 'static',
controller: function($modalInstance, $scope) {
$scope.close = function () {
$modalInstance.dismiss('cancel');

View File

@ -33,6 +33,7 @@ angular.module('sb.auth')
{
templateUrl: 'app/auth/template' +
'/modal/login_required.html',
backdrop: 'static',
controller: 'LoginRequiredModalController'
}
);

View File

@ -56,6 +56,7 @@ angular.module('sb.board').controller('BoardDetailController',
var modalInstance = $modal.open({
size: 'lg',
templateUrl: 'app/worklists/template/additem.html',
backdrop: 'static',
controller: 'WorklistAddItemController',
resolve: {
worklist: function() {
@ -155,6 +156,7 @@ angular.module('sb.board').controller('BoardDetailController',
$scope.remove = function() {
var modalInstance = $modal.open({
templateUrl: 'app/boards/template/archive.html',
backdrop: 'static',
controller: 'BoardArchiveController',
resolve: {
board: function() {
@ -173,6 +175,7 @@ angular.module('sb.board').controller('BoardDetailController',
var modalInstance = $modal.open({
size: 'lg',
templateUrl: 'app/worklists/template/new.html',
backdrop: 'static',
controller: 'AddWorklistController',
resolve: {
params: function() {
@ -201,6 +204,7 @@ angular.module('sb.board').controller('BoardDetailController',
$scope.removeLane = function (lane) {
var modalInstance = $modal.open({
templateUrl: 'app/worklists/template/delete.html',
backdrop: 'static',
controller: 'WorklistDeleteController',
resolve: {
worklist: function() {
@ -249,6 +253,7 @@ angular.module('sb.board').controller('BoardDetailController',
var modalInstance = $modal.open({
size: 'lg',
templateUrl: 'app/worklists/template/new.html',
backdrop: 'static',
controller: 'WorklistEditController',
resolve: {
worklist: function() {
@ -317,6 +322,7 @@ angular.module('sb.board').controller('BoardDetailController',
$scope.newDueDate = function() {
var modalInstance = $modal.open({
templateUrl: 'app/due_dates/template/new.html',
backdrop: 'static',
controller: 'DueDateNewController',
resolve: {
board: function() {
@ -333,6 +339,7 @@ angular.module('sb.board').controller('BoardDetailController',
$scope.editDueDate = function(dueDate) {
var modalInstance = $modal.open({
templateUrl: 'app/due_dates/template/new.html',
backdrop: 'static',
controller: 'DueDateEditController',
resolve: {
board: function() {
@ -352,6 +359,7 @@ angular.module('sb.board').controller('BoardDetailController',
$scope.removeDueDate = function(dueDate) {
var modalInstance = $modal.open({
templateUrl: 'app/due_dates/template/remove_from_board.html',
backdrop: 'static',
controller: 'DueDateRemoveController',
resolve: {
board: function() {
@ -410,6 +418,7 @@ angular.module('sb.board').controller('BoardDetailController',
$scope.showCardDetail = function(card, lane) {
var modalInstance = $modal.open({
templateUrl: 'app/boards/template/card_details.html',
backdrop: 'static',
controller: 'CardDetailController',
resolve: {
card: function() {

View File

@ -247,6 +247,7 @@ angular.module('sb.board').controller('CardDetailController',
$scope.newDueDate = function() {
var modalInstance = $modal.open({
templateUrl: 'app/due_dates/template/new.html',
backdrop: 'static',
controller: 'DueDateNewController',
resolve: {
board: function() {

View File

@ -28,6 +28,7 @@ angular.module('sb.board').factory('NewBoardService',
{
size: 'lg',
templateUrl: 'app/boards/template/new.html',
backdrop: 'static',
controller: 'AddBoardController',
resolve: {
params: function () {

View File

@ -35,6 +35,7 @@ angular.module('sb.profile').controller('ProfileTokensController',
$scope.issueToken = function () {
$modal.open({
templateUrl: 'app/profile/template/token_new.html',
backdrop: 'static',
controller: 'ProfileTokenNewController',
resolve: {
user: function (CurrentUser) {

View File

@ -38,6 +38,7 @@ angular.module('sb.project_group').controller('ProjectGroupListController',
$scope.modalInstance = $modal.open(
{
templateUrl: 'app/project_group/template/new.html',
backdrop: 'static',
controller: 'ProjectGroupNewController'
});

View File

@ -43,6 +43,7 @@ angular.module('sb.projects').controller('ProjectListController',
$scope.modalInstance = $modal.open({
size: 'lg',
templateUrl: 'app/projects/template/new.html',
backdrop: 'static',
controller: 'ProjectNewController'
});
};

View File

@ -140,6 +140,7 @@ angular.module('sb.story').controller('StoryDetailController',
$scope.showWorklistsModal = function() {
var modalInstance = $modal.open({
templateUrl: 'app/stories/template/worklists.html',
backdrop: 'static',
controller: 'StoryWorklistsController',
resolve: {
worklists: function () {
@ -367,6 +368,7 @@ angular.module('sb.story').controller('StoryDetailController',
$scope.remove = function () {
var modalInstance = $modal.open({
templateUrl: 'app/stories/template/delete.html',
backdrop: 'static',
controller: 'StoryDeleteController',
resolve: {
story: function () {
@ -382,6 +384,7 @@ angular.module('sb.story').controller('StoryDetailController',
$scope.updateFilter = function () {
var modalInstance = $modal.open({
templateUrl: 'app/stories/template/update_filter.html',
backdrop: 'static',
controller: 'TimelineFilterController'
});
@ -503,6 +506,7 @@ angular.module('sb.story').controller('StoryDetailController',
var modalInstance = $modal.open({
size: 'lg',
templateUrl: 'app/stories/template/comments/history.html',
backdrop: 'static',
controller: 'CommentHistoryController',
resolve: {
history: function() {
@ -711,6 +715,7 @@ angular.module('sb.story').controller('StoryDetailController',
$scope.showAddWorklist = function(task) {
$modal.open({
templateUrl: 'app/stories/template/add_task_to_worklist.html',
backdrop: 'static',
controller: 'StoryTaskAddWorklistController',
resolve: {
task: function() {
@ -726,6 +731,7 @@ angular.module('sb.story').controller('StoryDetailController',
$scope.removeTask = function (task, projectName, branchName) {
var modalInstance = $modal.open({
templateUrl: 'app/stories/template/delete_task.html',
backdrop: 'static',
controller: 'StoryTaskDeleteController',
resolve: {
task: function () {

View File

@ -28,6 +28,7 @@ angular.module('sb.story').factory('NewStoryService',
{
size: 'lg',
templateUrl: 'app/stories/template/new.html',
backdrop: 'static',
controller: 'StoryModalController',
resolve: {
params: function () {

View File

@ -90,6 +90,7 @@ angular.module('storyboard').controller('HeaderController',
$scope.modalInstance = $modal.open({
size: 'lg',
templateUrl: 'app/projects/template/new.html',
backdrop: 'static',
controller: 'ProjectNewController'
});
};
@ -101,6 +102,7 @@ angular.module('storyboard').controller('HeaderController',
$scope.modalInstance = $modal.open(
{
templateUrl: 'app/project_group/template/new.html',
backdrop: 'static',
controller: 'ProjectGroupNewController'
});

View File

@ -106,6 +106,7 @@ angular.module('sb.worklist').controller('WorklistDetailController',
var modalInstance = $modal.open({
size: 'lg',
templateUrl: 'app/worklists/template/additem.html',
backdrop: 'static',
controller: 'WorklistAddItemController',
resolve: {
worklist: function() {
@ -150,6 +151,7 @@ angular.module('sb.worklist').controller('WorklistDetailController',
$scope.remove = function() {
var modalInstance = $modal.open({
templateUrl: 'app/worklists/template/delete.html',
backdrop: 'static',
controller: 'WorklistDeleteController',
resolve: {
worklist: function() {

View File

@ -28,6 +28,7 @@ angular.module('sb.worklist').factory('NewWorklistService',
{
size: 'lg',
templateUrl: 'app/worklists/template/new.html',
backdrop: 'static',
controller: 'AddWorklistController',
resolve: {
params: function () {