@ -7,7 +7,7 @@ export class StackdriverConfigCtrl {
inputDataValid : boolean ;
defaultProject : string ;
projectsError : string ;
projects : string [ ] ;
projects : any [ ] ;
loadingProjects : boolean ;
/** @ngInject */
@ -15,6 +15,7 @@ export class StackdriverConfigCtrl {
this . datasourceSrv = datasourceSrv ;
this . current . jsonData = this . current . jsonData || { } ;
this . current . secureJsonData = this . current . secureJsonData || { } ;
this . defaultProject = this . current . jsonData . defaultProject ;
this . projects = [ ] ;
}
@ -80,11 +81,12 @@ export class StackdriverConfigCtrl {
try {
this . loadingProjects = true ;
const ds = await this . datasourceSrv . loadDatasource ( this . current . name ) ;
const response = await ds . doRequest ( ` /cloudresourcemanager/v1/projects ` ) ;
this . projects = await ds . getProjects ( ) ;
this . $scope . $apply ( ( ) = > {
this . projects = response . data . projects . map ( p = > ( { id : p.projectId , name : p.name } ) ) ;
if ( this . projects . length > 0 ) {
this . current . jsonData . defaultProject = this . current . jsonData . defaultProject || this . projects [ 0 ] . id ;
}
} ) ;
console . log ( this . projects ) ;
} catch ( error ) {
let message = 'Projects cannot be fetched: ' ;
message += error . statusText ? error . statusText + ': ' : '' ;
@ -100,10 +102,9 @@ export class StackdriverConfigCtrl {
} else {
message += 'Cannot connect to Stackdriver API' ;
}
this . $scope . $apply ( ( ) = > {
this . loadingProjects = false ;
this . projectsError = message ;
} ) ;
this . $scope . $apply ( ( ) = > ( this . projectsError = message ) ) ;
} finally {
this . $scope . $apply ( ( ) = > ( this . loadingProjects = false ) ) ;
}
}
}