|
|
@@ -0,0 +1,50 @@
|
|
|
+import _ from 'lodash';
|
|
|
+
|
|
|
+export class PostgresConfigCtrl {
|
|
|
+ static templateUrl = 'partials/config.html';
|
|
|
+
|
|
|
+ current: any;
|
|
|
+ datasourceSrv: any;
|
|
|
+
|
|
|
+ /** @ngInject **/
|
|
|
+ constructor($scope, datasourceSrv) {
|
|
|
+ this.datasourceSrv = datasourceSrv;
|
|
|
+ this.current.jsonData.sslmode = this.current.jsonData.sslmode || 'verify-full';
|
|
|
+ this.current.jsonData.postgresVersion = this.current.jsonData.postgresVersion || 903;
|
|
|
+ this.autoDetectPostgresVersion();
|
|
|
+ }
|
|
|
+
|
|
|
+ autoDetectPostgresVersion() {
|
|
|
+ if (!this.current.id) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.datasourceSrv
|
|
|
+ .loadDatasource(this.current.name)
|
|
|
+ .then(ds => {
|
|
|
+ return ds.getVersion();
|
|
|
+ })
|
|
|
+ .then(version => {
|
|
|
+ version = Number(version[0].text);
|
|
|
+ let major = Math.trunc(version / 100);
|
|
|
+ let minor = version % 100;
|
|
|
+ let name = String(major);
|
|
|
+ if (version < 1000) {
|
|
|
+ name = String(major) + '.' + String(minor);
|
|
|
+ }
|
|
|
+ if (!_.find(this.postgresVersions, (p: any) => p.value === version)) {
|
|
|
+ this.postgresVersions.push({ name: name, value: version });
|
|
|
+ }
|
|
|
+ this.current.jsonData.postgresVersion = version;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // the value portion is derived from postgres server_version_num/100
|
|
|
+ postgresVersions = [
|
|
|
+ { name: '9.3', value: 903 },
|
|
|
+ { name: '9.4', value: 904 },
|
|
|
+ { name: '9.5', value: 905 },
|
|
|
+ { name: '9.6', value: 906 },
|
|
|
+ { name: '10', value: 1000 },
|
|
|
+ ];
|
|
|
+}
|