mirror of https://github.com/Fabio286/antares.git
feat(SQLite): connection add/edit masks
This commit is contained in:
parent
b3f10220b3
commit
c54438d6d3
|
@ -3,7 +3,8 @@
|
||||||
"UI",
|
"UI",
|
||||||
"core",
|
"core",
|
||||||
"MySQL",
|
"MySQL",
|
||||||
"PostgreSQL"
|
"PostgreSQL",
|
||||||
|
"SQLite"
|
||||||
],
|
],
|
||||||
"svg.preview.background": "transparent"
|
"svg.preview.background": "transparent"
|
||||||
}
|
}
|
|
@ -8,6 +8,9 @@ module.exports = {
|
||||||
collations: false,
|
collations: false,
|
||||||
engines: false,
|
engines: false,
|
||||||
connectionSchema: false,
|
connectionSchema: false,
|
||||||
|
sslConnection: false,
|
||||||
|
sshConnection: false,
|
||||||
|
fileConnection: false,
|
||||||
// Tools
|
// Tools
|
||||||
processesList: false,
|
processesList: false,
|
||||||
usersManagement: false,
|
usersManagement: false,
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
maria: require('./mysql'),
|
maria: require('./mysql'),
|
||||||
mysql: require('./mysql'),
|
mysql: require('./mysql'),
|
||||||
pg: require('./postgresql')
|
pg: require('./postgresql'),
|
||||||
|
sqlite: require('./sqlite')
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,6 +10,8 @@ module.exports = {
|
||||||
connectionSchema: true,
|
connectionSchema: true,
|
||||||
collations: true,
|
collations: true,
|
||||||
engines: true,
|
engines: true,
|
||||||
|
sslConnection: true,
|
||||||
|
sshConnection: true,
|
||||||
// Tools
|
// Tools
|
||||||
processesList: true,
|
processesList: true,
|
||||||
// Structure
|
// Structure
|
||||||
|
|
|
@ -8,6 +8,8 @@ module.exports = {
|
||||||
defaultDatabase: 'postgres',
|
defaultDatabase: 'postgres',
|
||||||
// Core
|
// Core
|
||||||
database: true,
|
database: true,
|
||||||
|
sslConnection: true,
|
||||||
|
sshConnection: true,
|
||||||
// Tools
|
// Tools
|
||||||
processesList: true,
|
processesList: true,
|
||||||
// Structure
|
// Structure
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
module.exports = {
|
||||||
|
// Defaults
|
||||||
|
defaultPort: null,
|
||||||
|
defaultUser: null,
|
||||||
|
defaultDatabase: null,
|
||||||
|
// Core
|
||||||
|
database: false,
|
||||||
|
collations: false,
|
||||||
|
engines: false,
|
||||||
|
connectionSchema: false,
|
||||||
|
fileConnection: true,
|
||||||
|
// Tools
|
||||||
|
processesList: false,
|
||||||
|
usersManagement: false,
|
||||||
|
variables: false,
|
||||||
|
// Structure
|
||||||
|
schemas: false,
|
||||||
|
tables: false,
|
||||||
|
views: false,
|
||||||
|
triggers: false,
|
||||||
|
triggerFunctions: false,
|
||||||
|
routines: false,
|
||||||
|
functions: false,
|
||||||
|
schedulers: false,
|
||||||
|
// Settings
|
||||||
|
elementsWrapper: '',
|
||||||
|
stringsWrapper: '"',
|
||||||
|
tableAdd: false,
|
||||||
|
viewAdd: false,
|
||||||
|
triggerAdd: false,
|
||||||
|
triggerFunctionAdd: false,
|
||||||
|
routineAdd: false,
|
||||||
|
functionAdd: false,
|
||||||
|
schedulerAdd: false,
|
||||||
|
databaseEdit: false,
|
||||||
|
schemaEdit: false,
|
||||||
|
tableSettings: false,
|
||||||
|
viewSettings: false,
|
||||||
|
triggerSettings: false,
|
||||||
|
triggerFunctionSettings: false,
|
||||||
|
routineSettings: false,
|
||||||
|
functionSettings: false,
|
||||||
|
schedulerSettings: false,
|
||||||
|
indexes: false,
|
||||||
|
foreigns: false,
|
||||||
|
sortableFields: false,
|
||||||
|
unsigned: false,
|
||||||
|
nullable: false,
|
||||||
|
zerofill: false,
|
||||||
|
tableOptions: false,
|
||||||
|
autoIncrement: false,
|
||||||
|
comment: false,
|
||||||
|
collation: false,
|
||||||
|
definer: false,
|
||||||
|
onUpdate: false,
|
||||||
|
tableArray: false,
|
||||||
|
viewAlgorithm: false,
|
||||||
|
viewSqlSecurity: false,
|
||||||
|
viewUpdateOption: false,
|
||||||
|
procedureDeterministic: false,
|
||||||
|
procedureDataAccess: false,
|
||||||
|
procedureSql: false,
|
||||||
|
procedureContext: false,
|
||||||
|
procedureLanguage: false,
|
||||||
|
functionDeterministic: false,
|
||||||
|
functionDataAccess: false,
|
||||||
|
functionSql: false,
|
||||||
|
functionContext: false,
|
||||||
|
functionLanguage: false,
|
||||||
|
triggerSql: false,
|
||||||
|
triggerStatementInCreation: false,
|
||||||
|
triggerMultipleEvents: false,
|
||||||
|
triggerTableInName: false,
|
||||||
|
triggerUpdateColumns: false,
|
||||||
|
triggerOnlyRename: false,
|
||||||
|
triggerEnableDisable: false,
|
||||||
|
triggerFunctionSql: false,
|
||||||
|
triggerFunctionlanguages: false,
|
||||||
|
parametersLength: false,
|
||||||
|
languages: false
|
||||||
|
};
|
|
@ -11,6 +11,7 @@
|
||||||
<a class="tab-link">{{ $t('word.general') }}</a>
|
<a class="tab-link">{{ $t('word.general') }}</a>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
|
v-if="customizations.sslConnection"
|
||||||
class="tab-item c-hand"
|
class="tab-item c-hand"
|
||||||
:class="{'active': selectedTab === 'ssl'}"
|
:class="{'active': selectedTab === 'ssl'}"
|
||||||
@click="selectTab('ssl')"
|
@click="selectTab('ssl')"
|
||||||
|
@ -18,6 +19,7 @@
|
||||||
<a class="tab-link">{{ $t('word.ssl') }}</a>
|
<a class="tab-link">{{ $t('word.ssl') }}</a>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
|
v-if="customizations.sshConnection"
|
||||||
class="tab-item c-hand"
|
class="tab-item c-hand"
|
||||||
:class="{'active': selectedTab === 'ssh'}"
|
:class="{'active': selectedTab === 'ssh'}"
|
||||||
@click="selectTab('ssh')"
|
@click="selectTab('ssh')"
|
||||||
|
@ -49,25 +51,17 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="column col-8 col-sm-12">
|
<div class="column col-8 col-sm-12">
|
||||||
<select v-model="connection.client" class="form-select">
|
<select v-model="connection.client" class="form-select">
|
||||||
<option value="mysql">
|
<option
|
||||||
MySQL
|
v-for="client in clients"
|
||||||
|
:key="client.slug"
|
||||||
|
:value="client.slug"
|
||||||
|
>
|
||||||
|
{{ client.name }}
|
||||||
</option>
|
</option>
|
||||||
<option value="maria">
|
|
||||||
MariaDB
|
|
||||||
</option>
|
|
||||||
<option value="pg">
|
|
||||||
PostgreSQL
|
|
||||||
</option>
|
|
||||||
<!-- <option value="mssql">
|
|
||||||
Microsoft SQL
|
|
||||||
</option>
|
|
||||||
<option value="oracledb">
|
|
||||||
Oracle DB
|
|
||||||
</option> -->
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12">
|
<div class="column col-4 col-sm-12">
|
||||||
<label class="form-label">{{ $t('word.hostName') }}/IP</label>
|
<label class="form-label">{{ $t('word.hostName') }}/IP</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -79,7 +73,20 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="customizations.fileConnection" class="form-group columns">
|
||||||
|
<div class="column col-4 col-sm-12">
|
||||||
|
<label class="form-label">{{ $t('word.database') }}</label>
|
||||||
|
</div>
|
||||||
|
<div class="column col-8 col-sm-12">
|
||||||
|
<BaseUploadInput
|
||||||
|
:value="connection.databasePath"
|
||||||
|
:message="$t('word.browse')"
|
||||||
|
@clear="pathClear('databasePath')"
|
||||||
|
@change="pathSelection($event, 'databasePath')"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12">
|
<div class="column col-4 col-sm-12">
|
||||||
<label class="form-label">{{ $t('word.port') }}</label>
|
<label class="form-label">{{ $t('word.port') }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -105,7 +112,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12">
|
<div class="column col-4 col-sm-12">
|
||||||
<label class="form-label">{{ $t('word.user') }}</label>
|
<label class="form-label">{{ $t('word.user') }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -118,7 +125,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12">
|
<div class="column col-4 col-sm-12">
|
||||||
<label class="form-label">{{ $t('word.password') }}</label>
|
<label class="form-label">{{ $t('word.password') }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -144,7 +151,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12" />
|
<div class="column col-4 col-sm-12" />
|
||||||
<div class="column col-8 col-sm-12">
|
<div class="column col-8 col-sm-12">
|
||||||
<label class="form-checkbox form-inline">
|
<label class="form-checkbox form-inline">
|
||||||
|
@ -369,11 +376,18 @@ export default {
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
clients: [
|
||||||
|
{ name: 'MySQL', slug: 'mysql' },
|
||||||
|
{ name: 'MariaDB', slug: 'maria' },
|
||||||
|
{ name: 'PostgreSQL', slug: 'pg' },
|
||||||
|
{ name: 'SQLite', slug: 'sqlite' }
|
||||||
|
],
|
||||||
connection: {
|
connection: {
|
||||||
name: '',
|
name: '',
|
||||||
client: 'mysql',
|
client: 'mysql',
|
||||||
host: '127.0.0.1',
|
host: '127.0.0.1',
|
||||||
database: null,
|
database: null,
|
||||||
|
databasePath: '',
|
||||||
port: null,
|
port: null,
|
||||||
user: null,
|
user: null,
|
||||||
password: '',
|
password: '',
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
<a class="tab-link">{{ $t('word.general') }}</a>
|
<a class="tab-link">{{ $t('word.general') }}</a>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
|
v-if="customizations.sslConnection"
|
||||||
class="tab-item c-hand"
|
class="tab-item c-hand"
|
||||||
:class="{'active': selectedTab === 'ssl'}"
|
:class="{'active': selectedTab === 'ssl'}"
|
||||||
@click="selectTab('ssl')"
|
@click="selectTab('ssl')"
|
||||||
|
@ -18,6 +19,7 @@
|
||||||
<a class="tab-link">{{ $t('word.ssl') }}</a>
|
<a class="tab-link">{{ $t('word.ssl') }}</a>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
|
v-if="customizations.sshConnection"
|
||||||
class="tab-item c-hand"
|
class="tab-item c-hand"
|
||||||
:class="{'active': selectedTab === 'ssh'}"
|
:class="{'active': selectedTab === 'ssh'}"
|
||||||
@click="selectTab('ssh')"
|
@click="selectTab('ssh')"
|
||||||
|
@ -49,19 +51,17 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="column col-8 col-sm-12">
|
<div class="column col-8 col-sm-12">
|
||||||
<select v-model="localConnection.client" class="form-select">
|
<select v-model="localConnection.client" class="form-select">
|
||||||
<option value="mysql">
|
<option
|
||||||
MySQL
|
v-for="client in clients"
|
||||||
</option>
|
:key="client.slug"
|
||||||
<option value="maria">
|
:value="client.slug"
|
||||||
MariaDB
|
>
|
||||||
</option>
|
{{ client.name }}
|
||||||
<option value="pg">
|
|
||||||
PostgreSQL
|
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12">
|
<div class="column col-4 col-sm-12">
|
||||||
<label class="form-label">{{ $t('word.hostName') }}/IP</label>
|
<label class="form-label">{{ $t('word.hostName') }}/IP</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -73,7 +73,20 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="customizations.fileConnection" class="form-group columns">
|
||||||
|
<div class="column col-4 col-sm-12">
|
||||||
|
<label class="form-label">{{ $t('word.database') }}</label>
|
||||||
|
</div>
|
||||||
|
<div class="column col-8 col-sm-12">
|
||||||
|
<BaseUploadInput
|
||||||
|
:value="localConnection.databasePath"
|
||||||
|
:message="$t('word.browse')"
|
||||||
|
@clear="pathClear('databasePath')"
|
||||||
|
@change="pathSelection($event, 'databasePath')"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12">
|
<div class="column col-4 col-sm-12">
|
||||||
<label class="form-label">{{ $t('word.port') }}</label>
|
<label class="form-label">{{ $t('word.port') }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -99,7 +112,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12">
|
<div class="column col-4 col-sm-12">
|
||||||
<label class="form-label">{{ $t('word.user') }}</label>
|
<label class="form-label">{{ $t('word.user') }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -112,7 +125,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12">
|
<div class="column col-4 col-sm-12">
|
||||||
<label class="form-label">{{ $t('word.password') }}</label>
|
<label class="form-label">{{ $t('word.password') }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -138,7 +151,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group columns">
|
<div v-if="!customizations.fileConnection" class="form-group columns">
|
||||||
<div class="column col-4 col-sm-12" />
|
<div class="column col-4 col-sm-12" />
|
||||||
<div class="column col-8 col-sm-12">
|
<div class="column col-8 col-sm-12">
|
||||||
<label class="form-checkbox form-inline">
|
<label class="form-checkbox form-inline">
|
||||||
|
@ -374,6 +387,12 @@ export default {
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
clients: [
|
||||||
|
{ name: 'MySQL', slug: 'mysql' },
|
||||||
|
{ name: 'MariaDB', slug: 'maria' },
|
||||||
|
{ name: 'PostgreSQL', slug: 'pg' },
|
||||||
|
{ name: 'SQLite', slug: 'sqlite' }
|
||||||
|
],
|
||||||
isConnecting: false,
|
isConnecting: false,
|
||||||
isTesting: false,
|
isTesting: false,
|
||||||
isAsking: false,
|
isAsking: false,
|
||||||
|
@ -383,7 +402,7 @@ export default {
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
customizations () {
|
customizations () {
|
||||||
return customizations[this.connection.client];
|
return customizations[this.localConnection.client];
|
||||||
},
|
},
|
||||||
isBusy () {
|
isBusy () {
|
||||||
return this.isConnecting || this.isTesting;
|
return this.isConnecting || this.isTesting;
|
||||||
|
|
Before Width: | Height: | Size: 1004 B After Width: | Height: | Size: 1004 B |
|
@ -20,6 +20,10 @@
|
||||||
background-image: url("../images/svg/pg.svg");
|
background-image: url("../images/svg/pg.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.dbi-sqlite {
|
||||||
|
background-image: url("../images/svg/sqlite.svg");
|
||||||
|
}
|
||||||
|
|
||||||
&.dbi-oracledb {
|
&.dbi-oracledb {
|
||||||
background-image: url("../images/svg/oracledb.svg");
|
background-image: url("../images/svg/oracledb.svg");
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,12 +24,24 @@ export default {
|
||||||
getConnections: state => state.connections,
|
getConnections: state => state.connections,
|
||||||
getConnectionName: state => uid => {
|
getConnectionName: state => uid => {
|
||||||
const connection = state.connections.filter(connection => connection.uid === uid)[0];
|
const connection = state.connections.filter(connection => connection.uid === uid)[0];
|
||||||
if (!connection) return '';
|
let connectionName = '';
|
||||||
return connection.name
|
|
||||||
? connection.name
|
if (connection.name)
|
||||||
: connection.ask
|
connectionName = connection.name;
|
||||||
? `${connection.host}:${connection.port}`
|
else if (connection.ask)
|
||||||
: `${connection.user + '@'}${connection.host}:${connection.port}`;
|
connectionName = `${connection.host}:${connection.port}`;
|
||||||
|
else if (connection.databasePath) {
|
||||||
|
let string = connection.databasePath.split(/[/\\]+/).pop();
|
||||||
|
|
||||||
|
if (string.length >= 30)
|
||||||
|
string = `...${string.slice(-30)}`;
|
||||||
|
|
||||||
|
connectionName = string;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
connectionName = `${connection.user + '@'}${connection.host}:${connection.port}`;
|
||||||
|
|
||||||
|
return connectionName;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
|
|
Loading…
Reference in New Issue