diff --git a/frontend/src/views/Import.vue b/frontend/src/views/Import.vue index 3dad14d..a2381dd 100644 --- a/frontend/src/views/Import.vue +++ b/frontend/src/views/Import.vue @@ -284,7 +284,7 @@ export default Vue.extend({ // Import progress bar value. progress() { - if (!this.status) { + if (!this.status || !this.status.total > 0) { return 0; } return Math.ceil((this.status.imported / this.status.total) * 100); diff --git a/internal/subimporter/importer.go b/internal/subimporter/importer.go index 9129c99..1ff7816 100644 --- a/internal/subimporter/importer.go +++ b/internal/subimporter/importer.go @@ -432,8 +432,14 @@ func (s *Session) LoadCSV(srcPath string, delim rune) error { s.log.Printf("error counting lines in '%s': '%v'", srcPath, err) return err } + + if numLines == 0 { + return errors.New("empty file") + } + s.im.Lock() - s.im.status.Total = numLines + // Exclude the header from count. + s.im.status.Total = numLines - 1 s.im.Unlock() // Rewind, now that we've done a linecount on the same handler.