Skip to content

Commit 265d148

Browse files
authored
Merge branch 'main' into task/GSK-1343
2 parents 39da3ea + 938d0a2 commit 265d148

2 files changed

Lines changed: 55 additions & 42 deletions

File tree

frontend/src/views/main/project/FiltersCatalog.vue

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
<SuiteInputListSelector :editing="true" :modelValue="slicingArguments" :inputs="inputType" :project-id="props.projectId" class="pt-0 mt-0" :doc="doc"></SuiteInputListSelector>
106106
<div class="d-flex">
107107
<v-spacer></v-spacer>
108-
<v-btn width="100" small class="primaryLightBtn" color="primaryLight" @click="runSlicingFunction">
108+
<v-btn width="100" small class="primaryLightBtn" color="primaryLight" @click="runSlicingFunction" :loading="isSlicingFunctionRunning">
109109
Run
110110
</v-btn>
111111
</div>
@@ -182,6 +182,7 @@ const sliceResult = ref<SlicingResultDTO | null>(null);
182182
const selectedDataset = ref<string | null>(null);
183183
const selectedColumn = ref<string | null>(null);
184184
let slicingArguments = ref<{ [name: string]: FunctionInputDTO }>({})
185+
const isSlicingFunctionRunning = ref<boolean>(false);
185186
186187
const panel = ref<number[]>([0]);
187188
@@ -222,27 +223,32 @@ onActivated(async () => {
222223
});
223224
224225
async function runSlicingFunction() {
225-
const params = Object.values(slicingArguments.value);
226-
if (selected.value!.cellLevel) {
227-
params.push({
228-
isAlias: false,
229-
name: 'column_name',
230-
params: [],
231-
type: 'str',
232-
value: selectedColumn.value
233-
})
226+
isSlicingFunctionRunning.value = true;
227+
try {
228+
const params = Object.values(slicingArguments.value);
229+
if (selected.value!.cellLevel) {
230+
params.push({
231+
isAlias: false,
232+
name: 'column_name',
233+
params: [],
234+
type: 'str',
235+
value: selectedColumn.value
236+
})
237+
}
238+
239+
mixpanel.track("Run slicing function from Catalog", {
240+
slicingFunctionName: selected.value!.name,
241+
inputs: anonymize(params),
242+
});
243+
244+
sliceResult.value = await api.datasetProcessing(props.projectId, selectedDataset.value!, [{
245+
uuid: selected.value!.uuid,
246+
params,
247+
type: 'SLICING',
248+
}]);
249+
} finally {
250+
isSlicingFunctionRunning.value = false;
234251
}
235-
236-
mixpanel.track("Run slicing function from Catalog", {
237-
slicingFunctionName: selected.value!.name,
238-
inputs: anonymize(params),
239-
});
240-
241-
sliceResult.value = await api.datasetProcessing(props.projectId, selectedDataset.value!, [{
242-
uuid: selected.value!.uuid,
243-
params,
244-
type: 'SLICING',
245-
}]);
246252
}
247253
248254
watch(() => selected.value, () => {

frontend/src/views/main/project/TransformationsCatalog.vue

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108

109109
<div class="d-flex">
110110
<v-spacer></v-spacer>
111-
<v-btn width="100" small class="primaryLightBtn" color="primaryLight" @click="runTransformationFunction">
111+
<v-btn width="100" small class="primaryLightBtn" color="primaryLight" @click="runTransformationFunction" :loading="isTransformationFunctionRunning">
112112
Run
113113
</v-btn>
114114
</div>
@@ -182,6 +182,7 @@ const transformationResult = ref<FunctionInputDTO | null>(null);
182182
const selectedDataset = ref<string | null>(null);
183183
const selectedColumn = ref<string | null>(null);
184184
let transformationArguments = ref<{ [name: string]: FunctionInputDTO }>({})
185+
const isTransformationFunctionRunning = ref<boolean>(false);
185186
186187
const monacoOptions: IEditorOptions = inject('monacoOptions');
187188
const panel = ref<number[]>([0]);
@@ -222,27 +223,33 @@ onActivated(async () => {
222223
});
223224
224225
async function runTransformationFunction() {
225-
const params = Object.values(transformationArguments.value);
226-
if (selected.value!.cellLevel) {
227-
params.push({
228-
isAlias: false,
229-
name: 'column_name',
230-
params: [],
231-
type: 'str',
232-
value: selectedColumn.value
233-
})
226+
isTransformationFunctionRunning.value = true;
227+
try {
228+
const params = Object.values(transformationArguments.value);
229+
if (selected.value!.cellLevel) {
230+
params.push({
231+
isAlias: false,
232+
name: 'column_name',
233+
params: [],
234+
type: 'str',
235+
value: selectedColumn.value
236+
})
237+
}
238+
239+
mixpanel.track("Run transformation function from Catalog", {
240+
transformationFunctionName: selected.value!.name,
241+
inputs: anonymize(params),
242+
});
243+
244+
transformationResult.value = await api.datasetProcessing(props.projectId, selectedDataset.value!, [{
245+
uuid: selected.value!.uuid,
246+
params,
247+
type: 'TRANSFORMATION'
248+
}]);
249+
}
250+
finally {
251+
isTransformationFunctionRunning.value = false;
234252
}
235-
236-
mixpanel.track("Run transformation function from Catalog", {
237-
transformationFunctionName: selected.value!.name,
238-
inputs: anonymize(params),
239-
});
240-
241-
transformationResult.value = await api.datasetProcessing(props.projectId, selectedDataset.value!, [{
242-
uuid: selected.value!.uuid,
243-
params,
244-
type: 'TRANSFORMATION'
245-
}]);
246253
}
247254
248255
watch(() => selected.value, () => {

0 commit comments

Comments
 (0)