Skip to content
Snippets Groups Projects
Commit 9d0f67f0 authored by jensilo's avatar jensilo
Browse files

fix error when creating new file

parent 439a8696
No related branches found
No related tags found
No related merge requests found
......@@ -76,17 +76,13 @@ func DirSearch(baseDir string, query string) ([]string, error) {
return dirs, nil
}
// FileSearch searches the base directory + a specified sub-path for .csv-files containing the query string in their name.
// FileSearch searches a specified subdirectory for .csv-files containing the query string in their name.
// Only files with the .csv-extension are considered. The search is case-insensitive. Returns a slice of matching files.
func FileSearch(baseDir string, subPath string, query string) ([]string, error) {
func FileSearch(dirPath string, query string) ([]string, error) {
var files []string
queryLower := strings.ToLower(query)
if subPath != "" {
subPath = filepath.Clean(subPath)
}
err := filepath.WalkDir(filepath.Join(baseDir, subPath), func(path string, d os.DirEntry, err error) error {
err := filepath.WalkDir(dirPath, func(path string, d os.DirEntry, err error) error {
if err != nil {
return err
}
......@@ -109,7 +105,7 @@ func FileSearch(baseDir string, subPath string, query string) ([]string, error)
return nil
})
if err != nil {
if err != nil && !os.IsNotExist(err) { // ignore "file/dir does not exist" errors - the search might be submitted before the file/dir is created
return nil, err
}
......
......@@ -269,7 +269,7 @@ func parseRequirement(appCtx *hctx.AppCtx, webCtx *web.Ctx, cfg Cfg) http.Handle
templateID := web.URLParam(request, "templateID")
variant := web.URLParam(request, "variant")
outputDir := BuildDirPath(cfg.Output.BaseDir, request.FormValue("elicitationOutputDir"))
outputFile := BuildFilename(request.FormValue("elicitationOutputFile"))
outputFileRaw := request.FormValue("elicitationOutputFile")
formData, err := TemplateFormFromRequest(
ctx,
......@@ -284,6 +284,11 @@ func parseRequirement(appCtx *hctx.AppCtx, webCtx *web.Ctx, cfg Cfg) http.Handle
return io.InlineError(err)
}
if outputFileRaw == "" {
outputFileRaw = formData.Template.Name
}
outputFile := BuildFilename(outputFileRaw)
segmentMap, err := SegmentMapFromRequest(request, len(formData.Variant.Rules))
if err != nil {
return io.InlineError(web.ErrInternal)
......@@ -391,7 +396,7 @@ func outputFileSearch(appCtx *hctx.AppCtx, webCtx *web.Ctx, cfg Cfg) http.Handle
query := request.FormValue("output-file")
dir := request.FormValue("output-dir")
files, err := FileSearch(cfg.Output.BaseDir, dir, query)
files, err := FileSearch(BuildDirPath(cfg.Output.BaseDir, dir), query)
if err != nil {
return io.InlineError(web.ErrInternal, err)
}
......
......@@ -25,7 +25,7 @@
</div>
</div>
<div class="accordion mt-5 eiffel-elicitation-template-info" id="eiffelTemplateInfoAccordion">
<div class="accordion mt-4 eiffel-elicitation-template-info" id="eiffelTemplateInfoAccordion">
<div class="accordion-item">
<h2 class="accordion-header" id="headingConstruction">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseConstruction" aria-expanded="true" aria-controls="collapseConstruction">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment