mirror of
https://github.com/mmumshad/ansible-playable.git
synced 2025-02-13 17:11:58 +00:00
91 lines
2.5 KiB
JavaScript
91 lines
2.5 KiB
JavaScript
'use strict';
|
|
const angular = require('angular');
|
|
|
|
const uiRouter = require('angular-ui-router');
|
|
|
|
import routes from './designer.routes';
|
|
|
|
export class DesignerComponent {
|
|
/*@ngInject*/
|
|
constructor($scope,Projects,ansible) {
|
|
'ngInject';
|
|
$scope.selectedInventoryFileName = null;
|
|
|
|
/**
|
|
* Get list of projects from server
|
|
*/
|
|
$scope.getProjects = function(){
|
|
$scope.projects = Projects.resource.query(function(){
|
|
if($scope.projects.length){
|
|
$scope.selectedProjectID = localStorage.selectedProjectID || $scope.projects[0]._id;
|
|
$scope.projectSelected($scope.selectedProjectID)
|
|
}
|
|
|
|
})
|
|
};
|
|
|
|
/**
|
|
* On ProjectSelected - set selectedProjectID in cache
|
|
* @param projectID
|
|
*/
|
|
$scope.projectSelected = function(projectID){
|
|
localStorage.selectedProjectID = projectID;
|
|
|
|
$scope.selectedProject = Projects.resource.get({id: projectID},function(){
|
|
Projects.selectedProject = $scope.selectedProject;
|
|
$scope.listOfInventoryFiles();
|
|
$scope.$broadcast('projectLoaded');
|
|
// Refresh modules list on project load
|
|
ansible.getAnsibleModules();
|
|
})
|
|
|
|
};
|
|
|
|
|
|
/**
|
|
* Get List of inventory files in project root folder
|
|
*/
|
|
$scope.listOfInventoryFiles = function(){
|
|
|
|
var rolesTestFolder = null;
|
|
|
|
/*if(roleName){
|
|
rolesTestFolder = projectFolder + '/' + roleName + '/tests'
|
|
}*/
|
|
|
|
ansible.getInventoryList(function(response){
|
|
$scope.inventoryFiles = response.data;
|
|
console.log($scope.inventoryFiles);
|
|
Projects.selectedInventoryFileName = localStorage.selectedInventoryFileName || $scope.inventoryFiles[0];
|
|
localStorage.selectedInventoryFileName = $scope.inventoryFiles[0];
|
|
$scope.selectedInventoryFileName = localStorage.selectedInventoryFileName
|
|
},
|
|
function(response){
|
|
$scope.err_msg = response.data
|
|
},rolesTestFolder)
|
|
};
|
|
|
|
/**
|
|
* Set selected inventory file in local cache.
|
|
* @param selectedInventoryFileName - Selected inventory file name
|
|
*/
|
|
$scope.inventoryFileSelected = function(selectedInventoryFileName){
|
|
localStorage.selectedInventoryFileName = selectedInventoryFileName;
|
|
};
|
|
|
|
/**
|
|
* Main - Get Projects
|
|
*/
|
|
|
|
$scope.getProjects();
|
|
}
|
|
}
|
|
|
|
export default angular.module('webAppApp.designer', [uiRouter])
|
|
.config(routes)
|
|
.component('designer', {
|
|
template: require('./designer.html'),
|
|
controller: DesignerComponent,
|
|
controllerAs: 'designerCtrl'
|
|
})
|
|
.name;
|