mirror of
https://github.com/ansible/awx.git
synced 2026-02-25 23:16:01 -03:30
Addes a /#/jobs/schedules/:schedule_id/ route to the app
To leave user in the context of jobs/schedules when editing a schedule instead of putting them in the context of the resource they're scheduling
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import JobsStrings from './jobs.strings';
|
import JobsStrings from './jobs.strings';
|
||||||
import jobsRoute from './routes/jobs.route';
|
import jobsRoute from './routes/jobs.route';
|
||||||
import { jobsSchedulesRoute } from '../../src/scheduler/schedules.route';
|
import { jobsSchedulesRoute, jobsSchedulesEditRoute } from '../../src/scheduler/schedules.route';
|
||||||
|
|
||||||
const MODULE_NAME = 'at.features.jobs';
|
const MODULE_NAME = 'at.features.jobs';
|
||||||
|
|
||||||
@@ -10,6 +10,7 @@ angular
|
|||||||
.run(['$stateExtender', ($stateExtender) => {
|
.run(['$stateExtender', ($stateExtender) => {
|
||||||
$stateExtender.addState(jobsRoute);
|
$stateExtender.addState(jobsRoute);
|
||||||
$stateExtender.addState(jobsSchedulesRoute);
|
$stateExtender.addState(jobsSchedulesRoute);
|
||||||
|
$stateExtender.addState(jobsSchedulesEditRoute);
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
export default MODULE_NAME;
|
export default MODULE_NAME;
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
|
<div ui-view="scheduler"></div>
|
||||||
<div class="tab-pane" id="jobs-page">
|
<div class="tab-pane" id="jobs-page">
|
||||||
<at-panel ng-cloak id="htmlTemplate">
|
<at-panel ng-cloak id="htmlTemplate">
|
||||||
<div>
|
<div>
|
||||||
<div ng-hide="$state.is('jobs.schedules')">
|
<div ng-hide="$state.is('jobs.schedules') || $state.is('jobs.schedules.edit')">
|
||||||
<at-panel-heading hide-dismiss="true">
|
<at-panel-heading hide-dismiss="true">
|
||||||
<translate>JOBS</translate>
|
<translate>JOBS</translate>
|
||||||
</at-panel-heading>
|
</at-panel-heading>
|
||||||
<div ui-view="jobsList"></div>
|
<div ui-view="jobsList"></div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-hide="!$state.is('jobs.schedules')">
|
<div ng-hide="!$state.is('jobs.schedules') && !$state.is('jobs.schedules.edit')">
|
||||||
<at-panel-heading hide-dismiss="true">
|
<at-panel-heading hide-dismiss="true">
|
||||||
<translate>SCHEDULES</translate>
|
<translate>SCHEDULES</translate>
|
||||||
</at-panel-heading>
|
</at-panel-heading>
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import { N_ } from '../../../../../i18n';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "inventories.edit.inventory_sources.edit",
|
name: "inventories.edit.inventory_sources.edit",
|
||||||
url: "/edit/:inventory_source_id",
|
url: "/edit/:inventory_source_id",
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ function editScheduleResolve () {
|
|||||||
scheduleResolve: ['Rest', '$stateParams', 'GetBasePath', 'ProcessErrors',
|
scheduleResolve: ['Rest', '$stateParams', 'GetBasePath', 'ProcessErrors',
|
||||||
(Rest, $stateParams, GetBasePath, ProcessErrors) => {
|
(Rest, $stateParams, GetBasePath, ProcessErrors) => {
|
||||||
var path = `${GetBasePath('schedules')}${parseInt($stateParams.schedule_id)}/`;
|
var path = `${GetBasePath('schedules')}${parseInt($stateParams.schedule_id)}/`;
|
||||||
// const path = GetBasePath('schedules') + parseInt($stateParams.schedule_id) + '/');
|
|
||||||
Rest.setUrl(path);
|
Rest.setUrl(path);
|
||||||
return Rest.get()
|
return Rest.get()
|
||||||
.then(function(data) {
|
.then(function(data) {
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ export default [
|
|||||||
|
|
||||||
$scope.editSchedule = function(schedule) {
|
$scope.editSchedule = function(schedule) {
|
||||||
if ($state.is('jobs.schedules')){
|
if ($state.is('jobs.schedules')){
|
||||||
routeToScheduleForm(schedule, 'edit');
|
$state.go('jobs.schedules.edit', {schedule_id: schedule.id});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if($state.current.name.endsWith('.add')) {
|
if($state.current.name.endsWith('.add')) {
|
||||||
@@ -157,75 +157,6 @@ export default [
|
|||||||
$state.go('.edit', { schedule_id: schedule.id });
|
$state.go('.edit', { schedule_id: schedule.id });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildStateMap(schedule){
|
|
||||||
|
|
||||||
let deferred = $q.defer();
|
|
||||||
|
|
||||||
switch(schedule.summary_fields.unified_job_template.unified_job_type){
|
|
||||||
case 'job':
|
|
||||||
deferred.resolve({
|
|
||||||
name: 'templates.editJobTemplate.schedules.edit',
|
|
||||||
params: {
|
|
||||||
job_template_id: schedule.unified_job_template,
|
|
||||||
schedule_id: schedule.id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'workflow_job':
|
|
||||||
deferred.resolve({
|
|
||||||
name: 'templates.editWorkflowJobTemplate.schedules.edit',
|
|
||||||
params: {
|
|
||||||
workflow_job_template_id: schedule.unified_job_template,
|
|
||||||
schedule_id: schedule.id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'inventory_update':
|
|
||||||
Rest.setUrl(schedule.related.unified_job_template);
|
|
||||||
Rest.get().then( (res) => {
|
|
||||||
deferred.resolve({
|
|
||||||
name: 'inventories.edit.inventory_sources.edit.schedules.edit',
|
|
||||||
params: {
|
|
||||||
inventory_source_id: res.data.id,
|
|
||||||
inventory_id: res.data.inventory,
|
|
||||||
schedule_id: schedule.id,
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'project_update':
|
|
||||||
deferred.resolve({
|
|
||||||
name: 'projects.edit.schedules.edit',
|
|
||||||
params: {
|
|
||||||
project_id: schedule.unified_job_template,
|
|
||||||
schedule_id: schedule.id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'system_job':
|
|
||||||
deferred.resolve({
|
|
||||||
name: 'managementJobsList.schedule.edit',
|
|
||||||
params: {
|
|
||||||
id: schedule.unified_job_template,
|
|
||||||
schedule_id: schedule.id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return deferred.promise;
|
|
||||||
}
|
|
||||||
|
|
||||||
function routeToScheduleForm(schedule){
|
|
||||||
buildStateMap(schedule).then((state) =>{
|
|
||||||
$state.go(state.name, state.params);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.toggleSchedule = function(event, id) {
|
$scope.toggleSchedule = function(event, id) {
|
||||||
|
|||||||
@@ -285,7 +285,7 @@ const jobsSchedulesRoute = {
|
|||||||
},
|
},
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
parent: 'jobs',
|
parent: 'jobs',
|
||||||
label: N_('SCHEDULED')
|
label: N_('SCHEDULES')
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
ScheduleList: ['ScheduledJobsList', function(list){
|
ScheduleList: ['ScheduledJobsList', function(list){
|
||||||
@@ -326,6 +326,22 @@ const jobsSchedulesRoute = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const jobsSchedulesEditRoute = {
|
||||||
|
name: 'jobs.schedules.edit',
|
||||||
|
route: '/:schedule_id',
|
||||||
|
ncyBreadcrumb: {
|
||||||
|
parent: 'jobs.schedules',
|
||||||
|
label: "{{breadcrumb.schedule_name}}"
|
||||||
|
},
|
||||||
|
views: {
|
||||||
|
'scheduler@jobs': {
|
||||||
|
controller: 'schedulerEditController',
|
||||||
|
templateUrl: templateUrl("scheduler/schedulerForm"),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resolve: editScheduleResolve()
|
||||||
|
};
|
||||||
|
|
||||||
export {
|
export {
|
||||||
jobTemplatesSchedulesListRoute,
|
jobTemplatesSchedulesListRoute,
|
||||||
jobTemplatesSchedulesAddRoute,
|
jobTemplatesSchedulesAddRoute,
|
||||||
@@ -336,5 +352,6 @@ export {
|
|||||||
projectsSchedulesListRoute,
|
projectsSchedulesListRoute,
|
||||||
projectsSchedulesAddRoute,
|
projectsSchedulesAddRoute,
|
||||||
projectsSchedulesEditRoute,
|
projectsSchedulesEditRoute,
|
||||||
jobsSchedulesRoute
|
jobsSchedulesRoute,
|
||||||
|
jobsSchedulesEditRoute
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user