1
1
mirror of https://github.com/Fabio286/antares.git synced 2025-06-05 21:59:22 +02:00

feat: stored routines delete

This commit is contained in:
2021-01-06 11:07:55 +01:00
parent 82fdc0bcd7
commit aa33850286
4 changed files with 31 additions and 12 deletions

View File

@ -440,9 +440,12 @@ export class MySQLClient extends AntaresCore {
.split(',') .split(',')
.map(el => { .map(el => {
const param = el.split(' '); const param = el.split(' ');
const type = param[2] ? param[2].replace(')', '').split('(') : ['', null];
return { return {
name: param[1] ? param[1].replaceAll('`', '') : '', name: param[1] ? param[1].replaceAll('`', '') : '',
type: param[2] ? param[2].replace(',', '') : '', type: type[0],
length: +type[1],
context: param[0] ? param[0].replace('\n', '') : '' context: param[0] ? param[0].replace('\n', '') : ''
}; };
}).filter(el => el.name); }).filter(el => el.name);
@ -509,7 +512,7 @@ export class MySQLClient extends AntaresCore {
*/ */
async createRoutine (routine) { async createRoutine (routine) {
const parameters = routine.parameters.reduce((acc, curr) => { const parameters = routine.parameters.reduce((acc, curr) => {
acc.push(`${curr.context} \`${curr.name}\` ${curr.type}`); acc.push(`${curr.context} \`${curr.name}\` ${curr.type}${curr.length ? `(${curr.length})` : ''}`);
return acc; return acc;
}, []).join(','); }, []).join(',');

View File

@ -37,6 +37,7 @@ import { mapGetters, mapActions } from 'vuex';
import BaseContextMenu from '@/components/BaseContextMenu'; import BaseContextMenu from '@/components/BaseContextMenu';
import ConfirmModal from '@/components/BaseConfirmModal'; import ConfirmModal from '@/components/BaseConfirmModal';
import Triggers from '@/ipc-api/Triggers'; import Triggers from '@/ipc-api/Triggers';
import Routines from '@/ipc-api/Routines';
export default { export default {
name: 'WorkspaceExploreBarMiscContext', name: 'WorkspaceExploreBarMiscContext',
@ -66,7 +67,8 @@ export default {
switch (this.selectedMisc.type) { switch (this.selectedMisc.type) {
case 'trigger': case 'trigger':
return this.$t('message.deleteTrigger'); return this.$t('message.deleteTrigger');
case 'procedure':
return this.$t('message.deleteRoutine');
default: default:
return ''; return '';
} }
@ -106,12 +108,12 @@ export default {
trigger: this.selectedMisc.name trigger: this.selectedMisc.name
}); });
break; break;
// case 'procedure': case 'procedure':
// res = await Tables.dropProcedure({ res = await Routines.dropRoutine({
// uid: this.selectedWorkspace, uid: this.selectedWorkspace,
// procedure: this.selectedMisc.name routine: this.selectedMisc.name
// }); });
// break; break;
// case 'schedules': // case 'schedules':
// res = await Tables.dropScheduler({ // res = await Tables.dropScheduler({
// uid: this.selectedWorkspace, // uid: this.selectedWorkspace,

View File

@ -48,7 +48,7 @@
<div class="tile-title"> <div class="tile-title">
{{ param.name }} {{ param.name }}
</div> </div>
<small class="tile-subtitle text-gray">{{ param.type }} · {{ param.context }}</small> <small class="tile-subtitle text-gray">{{ param.type }}{{ param.length ? `(${param.length})` : '' }} · {{ param.context }}</small>
</div> </div>
<div class="tile-action"> <div class="tile-action">
<button <button
@ -105,6 +105,18 @@
</select> </select>
</div> </div>
</div> </div>
<div class="form-group">
<label class="form-label col-3">
{{ $t('word.length') }}
</label>
<div class="column">
<input
v-model="selectedParamObj.length"
class="form-input"
type="number"
>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="form-label col-3"> <label class="form-label col-3">
{{ $t('word.context') }} {{ $t('word.context') }}
@ -216,7 +228,8 @@ export default {
this.parametersProxy = [...this.parametersProxy, { this.parametersProxy = [...this.parametersProxy, {
name: `Param${this.i++}`, name: `Param${this.i++}`,
type: 'INT', type: 'INT',
context: 'IN' context: 'IN',
length: 10
}]; }];
if (this.parametersProxy.length === 1) if (this.parametersProxy.length === 1)

View File

@ -156,7 +156,8 @@ module.exports = {
routineBody: 'Routine body', routineBody: 'Routine body',
dataAccess: 'Data access', dataAccess: 'Data access',
thereAreNoParameters: 'There are no parameters', thereAreNoParameters: 'There are no parameters',
createNewParameter: 'Create new parameter' createNewParameter: 'Create new parameter',
deleteRoutine: 'Delete stored routine'
}, },
// Date and Time // Date and Time
short: { short: {