diff --git a/awx/ui/client/src/app.js b/awx/ui/client/src/app.js index 0ba9100784..9ea9e3594e 100644 --- a/awx/ui/client/src/app.js +++ b/awx/ui/client/src/app.js @@ -147,7 +147,6 @@ var tower = angular.module('Tower', [ 'JobTemplateFormDefinition', 'JobTemplatesHelper', 'JobSubmissionHelper', - 'ProjectFormDefinition', 'ProjectStatusDefinition', 'CompletedJobsDefinition', 'AllJobsDefinition', diff --git a/awx/ui/client/src/forms.js b/awx/ui/client/src/forms.js index db46a6d0d8..c1aba00142 100644 --- a/awx/ui/client/src/forms.js +++ b/awx/ui/client/src/forms.js @@ -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, diff --git a/awx/ui/client/src/helpers/Projects.js b/awx/ui/client/src/helpers/Projects.js new file mode 100644 index 0000000000..40a82ce2c5 --- /dev/null +++ b/awx/ui/client/src/helpers/Projects.js @@ -0,0 +1,84 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + /** + * @ngdoc function + * @name helpers.function:Projects + * @description + * Use GetProjectPath({ scope: , master: }) 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; + }; + }]); diff --git a/awx/ui/client/src/projects/main.js b/awx/ui/client/src/projects/main.js index b2fb214918..b43d1d29a4 100644 --- a/awx/ui/client/src/projects/main.js +++ b/awx/ui/client/src/projects/main.js @@ -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(); diff --git a/awx/ui/client/src/forms/Projects.js b/awx/ui/client/src/projects/projects.form.js similarity index 93% rename from awx/ui/client/src/forms/Projects.js rename to awx/ui/client/src/projects/projects.form.js index 3b2a69c044..3621d71244 100644 --- a/awx/ui/client/src/forms/Projects.js +++ b/awx/ui/client/src/projects/projects.form.js @@ -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; +}}];