1
0
Fork 0
mirror of https://github.com/mmumshad/ansible-playable.git synced 2025-02-13 17:11:58 +00:00
ansible-playable/client/app/designer/designer.component.js
2017-06-12 23:49:17 -04:00

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;