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:
Jared Tabor 2018-05-14 17:54:30 -07:00
parent e04b2b7455
commit 8f3cc4ec3e
No known key found for this signature in database
GPG Key ID: 1B343EC4C3CF7E5C
6 changed files with 25 additions and 78 deletions

View File

@ -1,6 +1,6 @@
import JobsStrings from './jobs.strings';
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';
@ -10,6 +10,7 @@ angular
.run(['$stateExtender', ($stateExtender) => {
$stateExtender.addState(jobsRoute);
$stateExtender.addState(jobsSchedulesRoute);
$stateExtender.addState(jobsSchedulesEditRoute);
}]);
export default MODULE_NAME;

View File

@ -1,13 +1,14 @@
<div ui-view="scheduler"></div>
<div class="tab-pane" id="jobs-page">
<at-panel ng-cloak id="htmlTemplate">
<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">
<translate>JOBS</translate>
</at-panel-heading>
<div ui-view="jobsList"></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">
<translate>SCHEDULES</translate>
</at-panel-heading>

View File

@ -1,5 +1,3 @@
import { N_ } from '../../../../../i18n';
export default {
name: "inventories.edit.inventory_sources.edit",
url: "/edit/:inventory_source_id",

View File

@ -3,7 +3,6 @@ function editScheduleResolve () {
scheduleResolve: ['Rest', '$stateParams', 'GetBasePath', 'ProcessErrors',
(Rest, $stateParams, GetBasePath, ProcessErrors) => {
var path = `${GetBasePath('schedules')}${parseInt($stateParams.schedule_id)}/`;
// const path = GetBasePath('schedules') + parseInt($stateParams.schedule_id) + '/');
Rest.setUrl(path);
return Rest.get()
.then(function(data) {

View File

@ -144,7 +144,7 @@ export default [
$scope.editSchedule = function(schedule) {
if ($state.is('jobs.schedules')){
routeToScheduleForm(schedule, 'edit');
$state.go('jobs.schedules.edit', {schedule_id: schedule.id});
}
else {
if($state.current.name.endsWith('.add')) {
@ -157,75 +157,6 @@ export default [
$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) {

View File

@ -285,7 +285,7 @@ const jobsSchedulesRoute = {
},
ncyBreadcrumb: {
parent: 'jobs',
label: N_('SCHEDULED')
label: N_('SCHEDULES')
},
resolve: {
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 {
jobTemplatesSchedulesListRoute,
jobTemplatesSchedulesAddRoute,
@ -336,5 +352,6 @@ export {
projectsSchedulesListRoute,
projectsSchedulesAddRoute,
projectsSchedulesEditRoute,
jobsSchedulesRoute
jobsSchedulesRoute,
jobsSchedulesEditRoute
};