From d1cce109fb1c5b75d07c0c2f841f217d8cd4046c Mon Sep 17 00:00:00 2001 From: John Mitchell Date: Thu, 8 Nov 2018 09:41:06 -0500 Subject: [PATCH] update schedule base route to include resource being scheduled --- .../src/scheduler/scheduled-jobs.list.js | 2 +- .../src/scheduler/schedulerList.controller.js | 47 +++++++++---------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/awx/ui/client/src/scheduler/scheduled-jobs.list.js b/awx/ui/client/src/scheduler/scheduled-jobs.list.js index 8a15b3cb92..2d49b04806 100644 --- a/awx/ui/client/src/scheduler/scheduled-jobs.list.js +++ b/awx/ui/client/src/scheduler/scheduled-jobs.list.js @@ -33,7 +33,7 @@ export default ['i18n', function(i18n) { sourceModel: 'unified_job_template', sourceField: 'name', // ngBind: 'schedule.summary_fields.unified_job_template.name', - ngClick: "editSchedule(schedule)", + uiSref: "{{schedule.linkToDetails}}", awToolTip: "{{ schedule.nameTip | sanitize}}", dataTipWatch: 'schedule.nameTip', dataPlacement: "top", diff --git a/awx/ui/client/src/scheduler/schedulerList.controller.js b/awx/ui/client/src/scheduler/schedulerList.controller.js index 5a6ea5e0e1..185732b194 100644 --- a/awx/ui/client/src/scheduler/schedulerList.controller.js +++ b/awx/ui/client/src/scheduler/schedulerList.controller.js @@ -101,18 +101,30 @@ export default [ } buildTooltips(itm); - if (!$state.is('schedules')){ - if($state.current.name.endsWith('.add')) { - itm.linkToDetails = `^.edit({schedule_id:schedule.id})`; - } - else if($state.current.name.endsWith('.edit')) { - itm.linkToDetails = `.({schedule_id:schedule.id})`; - } - else { - itm.linkToDetails = `.edit({schedule_id:schedule.id})`; + let stateParams = { schedule_id: item.id }; + let route = ''; + if (item.summary_fields.unified_job_template) { + if (item.summary_fields.unified_job_template.unified_job_type === 'job') { + route = 'templates.editJobTemplate.schedules.edit'; + stateParams.job_template_id = item.summary_fields.unified_job_template.id; + } else if (item.summary_fields.unified_job_template.unified_job_type === 'project_update') { + route = 'projects.edit.schedules.edit'; + stateParams.project_id = item.summary_fields.unified_job_template.id; + } else if (item.summary_fields.unified_job_template.unified_job_type === 'workflow_job') { + route = 'templates.editWorkflowJobTemplate.schedules.edit'; + stateParams.workflow_job_template_id = item.summary_fields.unified_job_template.id; + } else if (item.summary_fields.unified_job_template.unified_job_type === 'inventory_update') { + route = 'inventories.edit.inventory_sources.edit.schedules.edit'; + stateParams.inventory_id = parseInt(item.related.inventory.split("/").slice(-2, -1)[0]); + stateParams.inventory_source_id = item.summary_fields.unified_job_template.id; + } else if (item.summary_fields.unified_job_template.unified_job_type === 'system_job') { + route = 'managementJobsList.schedule'; + stateParams.id = item.summary_fields.unified_job_template.id; } } - + itm.route = route; + itm.stateParams = stateParams; + itm.linkToDetails = `${route}(${JSON.stringify(stateParams)})`; }); } @@ -157,20 +169,7 @@ export default [ }; $scope.editSchedule = function(schedule) { - if ($state.is('schedules')){ - $state.go('schedules.edit', {schedule_id: schedule.id}); - } - else { - if($state.current.name.endsWith('.add')) { - $state.go('^.edit', { schedule_id: schedule.id }); - } - else if($state.current.name.endsWith('.edit')) { - $state.go('.', { schedule_id: schedule.id }); - } - else { - $state.go('.edit', { schedule_id: schedule.id }); - } - } + $state.go(schedule.route, schedule.stateParams); }; $scope.toggleSchedule = function(event, id) {