diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js index 8d8bccda7d83e96b26ffdfd4e17ea73b47f39934..7f2833ef4ac53770a75e6080b52f1fd1ce20f961 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js @@ -346,6 +346,20 @@ gridControllerMod.directive('contextMenu', ['$document', '$window', function($do var ulElement = angular.element('<ul class="dropdown-menu" role="menu" style="left:' + event.clientX + 'px; top:' + event.clientY + 'px; z-index: 100000; display:block;"></ul>'); contextmenuElement.append(ulElement); + var selected_tasks = dataService.selected_task_ids.map(function(t_id) { return dataService.taskDict[t_id]; }); + var selected_cep4_tasks = selected_tasks.filter(function(t) { + var task_claims = dataService.resourceClaims.filter(function(rc) { return rc.task_id == t.id;}); + return task_claims.length > 0; + }); + +// var liElement = angular.element('<li><a href="#">Copy Task</a></li>'); +// ulElement.append(liElement); +// liElement.on('click', function() { +// closeContextMenu(); +// //TODO: remove link to dataService in this generic plugin +// dataService.copyTask(task); +// }); + var liElement = angular.element('<li><a href="#">Select group</a></li>'); ulElement.append(liElement); liElement.on('click', function() { @@ -358,8 +372,7 @@ gridControllerMod.directive('contextMenu', ['$document', '$window', function($do ulElement.append(liElement); liElement.on('click', function() { closeContextMenu(); - var tasks = dataService.selected_task_ids.map(function(t_id) { return dataService.taskDict[t_id]; }); - for(var t of tasks) { + for(var t of selected_tasks) { if(t) { var url = dataService.config.inspection_plots_base_url + '/' + t.otdb_id; $window.open(url, '_blank'); @@ -368,22 +381,27 @@ gridControllerMod.directive('contextMenu', ['$document', '$window', function($do }); } - var liContent = dataService.selected_task_ids.length == 1 ? '<li><a href="#">Show disk usage</a></li>' : '<li><a href="#" style="color:#aaaaaa">Show disk usage</a></li>' + var liContent = selected_cep4_tasks.length == selected_tasks.length ? '<li><a href="#">Show disk usage</a></li>' : '<li><a href="#" style="color:#aaaaaa">Show disk usage</a></li>' var liElement = angular.element(liContent); ulElement.append(liElement); - if(dataService.selected_task_ids.length == 1) { + if(selected_cep4_tasks.length == selected_tasks.length) { liElement.on('click', function() { closeContextMenu(); cleanupCtrl.showTaskDiskUsage(task); }); } - var liElement = angular.element('<li><a href="#">Delete data</a></li>'); + var completed_selected_cep4_tasks = selected_cep4_tasks.filter(function(t) { return t.status == 'finished' || t.status == 'aborted'; }); + + var liContent = completed_selected_cep4_tasks.length == selected_tasks.length ? '<li><a href="#">Delete data</a></li>' : '<li><a href="#" style="color:#aaaaaa">Delete data</a></li>' + var liElement = angular.element(liContent); ulElement.append(liElement); - liElement.on('click', function() { - closeContextMenu(); - cleanupCtrl.deleteSelectedTasksDataWithConfirmation(); - }); + if(completed_selected_cep4_tasks.length == selected_tasks.length) { + liElement.on('click', function() { + closeContextMenu(); + cleanupCtrl.deleteSelectedTasksDataWithConfirmation(); + }); + } var closeContextMenu = function(cme) { contextmenuElement.remove(); diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/gantt-plugins/angular-gantt-contextmenu-plugin.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/gantt-plugins/angular-gantt-contextmenu-plugin.js index 464606c3221ae1016ace87cfcf80dcd2b4b05a2a..a984d94472082661301132df0530c0a56a762e70 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/gantt-plugins/angular-gantt-contextmenu-plugin.js +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/gantt-plugins/angular-gantt-contextmenu-plugin.js @@ -56,6 +56,12 @@ var ulElement = angular.element('<ul class="dropdown-menu" role="menu" style="left:' + event.clientX + 'px; top:' + event.clientY + 'px; z-index: 100000; display:block;"></ul>'); contextmenuElement.append(ulElement); + var selected_tasks = dataService.selected_task_ids.map(function(t_id) { return dataService.taskDict[t_id]; }); + var selected_cep4_tasks = selected_tasks.filter(function(t) { + var task_claims = dataService.resourceClaims.filter(function(rc) { return rc.task_id == t.id;}); + return task_claims.length > 0; + }); + // var liElement = angular.element('<li><a href="#">Copy Task</a></li>'); // ulElement.append(liElement); // liElement.on('click', function() { @@ -76,8 +82,7 @@ ulElement.append(liElement); liElement.on('click', function() { closeContextMenu(); - var tasks = dataService.selected_task_ids.map(function(t_id) { return dataService.taskDict[t_id]; }); - for(var t of tasks) { + for(var t of selected_tasks) { if(t) { var url = dataService.config.inspection_plots_base_url + '/' + t.otdb_id; $window.open(url, '_blank'); @@ -86,22 +91,27 @@ }); } - var liContent = dataService.selected_task_ids.length == 1 ? '<li><a href="#">Show disk usage</a></li>' : '<li><a href="#" style="color:#aaaaaa">Show disk usage</a></li>' + var liContent = selected_cep4_tasks.length == selected_tasks.length ? '<li><a href="#">Show disk usage</a></li>' : '<li><a href="#" style="color:#aaaaaa">Show disk usage</a></li>' var liElement = angular.element(liContent); ulElement.append(liElement); - if(dataService.selected_task_ids.length == 1) { + if(selected_cep4_tasks.length == selected_tasks.length) { liElement.on('click', function() { closeContextMenu(); cleanupCtrl.showTaskDiskUsage(task); }); } - var liElement = angular.element('<li><a href="#">Delete data</a></li>'); + var completed_selected_cep4_tasks = selected_cep4_tasks.filter(function(t) { return t.status == 'finished' || t.status == 'aborted'; }); + + var liContent = completed_selected_cep4_tasks.length == selected_tasks.length ? '<li><a href="#">Delete data</a></li>' : '<li><a href="#" style="color:#aaaaaa">Delete data</a></li>' + var liElement = angular.element(liContent); ulElement.append(liElement); - liElement.on('click', function() { - closeContextMenu(); - cleanupCtrl.deleteSelectedTasksDataWithConfirmation(); - }); + if(completed_selected_cep4_tasks.length == selected_tasks.length) { + liElement.on('click', function() { + closeContextMenu(); + cleanupCtrl.deleteSelectedTasksDataWithConfirmation(); + }); + } var closeContextMenu = function() { contextmenuElement.remove();