modularize project form

This commit is contained in:
John Mitchell 2017-03-01 15:05:00 -05:00
parent 9a0e409abf
commit 75820064e8
5 changed files with 100 additions and 21 deletions

View File

@ -147,7 +147,6 @@ var tower = angular.module('Tower', [
'JobTemplateFormDefinition',
'JobTemplatesHelper',
'JobSubmissionHelper',
'ProjectFormDefinition',
'ProjectStatusDefinition',
'CompletedJobsDefinition',
'AllJobsDefinition',

View File

@ -20,7 +20,6 @@ import LogViewerOptions from "./forms/LogViewerOptions";
import LogViewerStatus from "./forms/LogViewerStatus";
import Organizations from "./forms/Organizations";
import ProjectStatus from "./forms/ProjectStatus";
import Projects from "./forms/Projects";
import Teams from "./forms/Teams";
import Users from "./forms/Users";
import WorkflowMaker from "./forms/WorkflowMaker";
@ -44,7 +43,6 @@ export
LogViewerStatus,
Organizations,
ProjectStatus,
Projects,
Teams,
Users,
WorkflowMaker,

View File

@ -0,0 +1,84 @@
/*************************************************
* Copyright (c) 2015 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
/**
* @ngdoc function
* @name helpers.function:Projects
* @description
* Use GetProjectPath({ scope: <scope>, master: <master obj> }) to
* load scope.project_local_paths (array of options for drop-down) and
* scope.base_dir (readonly field).
*
*/
export default
angular.module('ProjectsHelper', ['RestServices', 'Utilities', 'ProjectStatusDefinition'])
.factory('GetProjectIcon', [ function() {
return function(status) {
var result = '';
switch (status) {
case 'n/a':
case 'ok':
case 'never updated':
result = 'none';
break;
case 'pending':
case 'waiting':
case 'new':
result = 'none';
break;
case 'updating':
case 'running':
result = 'running';
break;
case 'successful':
result = 'success';
break;
case 'failed':
case 'missing':
case 'canceled':
result = 'error';
}
return result;
};
}])
.factory('GetProjectToolTip', ['i18n', function(i18n) {
return function(status) {
var result = '';
switch (status) {
case 'n/a':
case 'ok':
case 'never updated':
result = i18n._('No SCM updates have run for this project');
break;
case 'pending':
case 'waiting':
case 'new':
result = i18n._('Queued. Click for details');
break;
case 'updating':
case 'running':
result = i18n._('Running! Click for details');
break;
case 'successful':
result = i18n._('Success! Click for details');
break;
case 'failed':
result = i18n._('Failed. Click for details');
break;
case 'missing':
result = i18n._('Missing. Click for details');
break;
case 'canceled':
result = i18n._('Canceled. Click for details');
break;
}
return result;
};
}]);

View File

@ -8,6 +8,7 @@ import ProjectsList from './list/projects-list.controller';
import ProjectsAdd from './add/projects-add.controller';
import ProjectsEdit from './edit/projects-edit.controller';
import ProjectList from './projects.list';
import ProjectsForm from './projects.form';
import { N_ } from '../i18n';
import GetProjectPath from './factories/get-project-path.factory';
import GetProjectIcon from './factories/get-project-icon.factory';
@ -22,6 +23,7 @@ angular.module('Projects', [])
.factory('GetProjectIcon', GetProjectIcon)
.factory('GetProjectToolTip', GetProjectToolTip)
.factory('ProjectList', ProjectList)
.factory('ProjectsForm', ProjectsForm)
.config(['$stateProvider', 'stateDefinitionsProvider',
function($stateProvider, stateDefinitionsProvider) {
let stateDefinitions = stateDefinitionsProvider.$get();

View File

@ -10,10 +10,9 @@
* @description This form is for adding/editing projects
*/
export default
angular.module('ProjectFormDefinition', ['SchedulesListDefinition'])
.factory('ProjectsFormObject', ['i18n', function(i18n) {
return {
export default ['i18n', 'NotificationsList', function(i18n, NotificationsList) {
return function() {
var projectsFormObj = {
addTitle: i18n._('NEW PROJECT'),
editTitle: '{{ name }}',
@ -266,18 +265,15 @@ angular.module('ProjectFormDefinition', ['SchedulesListDefinition'])
}
}
};}])
};
.factory('ProjectsForm', ['ProjectsFormObject', 'NotificationsList',
function(ProjectsFormObject, NotificationsList) {
return function() {
var itm;
for (itm in ProjectsFormObject.related) {
if (ProjectsFormObject.related[itm].include === "NotificationsList") {
ProjectsFormObject.related[itm] = NotificationsList;
ProjectsFormObject.related[itm].generateList = true; // tell form generator to call list generator and inject a list
}
}
return ProjectsFormObject;
};
}]);
var itm;
for (itm in projectsFormObj.related) {
if (projectsFormObj.related[itm].include === "NotificationsList") {
projectsFormObj.related[itm] = NotificationsList;
projectsFormObj.related[itm].generateList = true; // tell form generator to call list generator and inject a list
}
}
return projectsFormObj;
}}];