|
|
@ -166,6 +166,8 @@ func ProcessCSVHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
|
// UploadDocumentsHandler handles document uploads to jobs
|
|
|
// UploadDocumentsHandler handles document uploads to jobs
|
|
|
func UploadDocumentsHandler(w http.ResponseWriter, r *http.Request) { |
|
|
func UploadDocumentsHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
startTime := time.Now() |
|
|
|
|
|
|
|
|
session, ok := r.Context().Value(middleware.SessionKey).(*api.Session) |
|
|
session, ok := r.Context().Value(middleware.SessionKey).(*api.Session) |
|
|
if !ok { |
|
|
if !ok { |
|
|
http.Error(w, "Unauthorized", http.StatusUnauthorized) |
|
|
http.Error(w, "Unauthorized", http.StatusUnauthorized) |
|
|
@ -428,8 +430,10 @@ func UploadDocumentsHandler(w http.ResponseWriter, r *http.Request) { |
|
|
results[result.JobID] = append(results[result.JobID], result) |
|
|
results[result.JobID] = append(results[result.JobID], result) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
log.Printf("All results collected. Total: %d, Total bytes uploaded: %.2f MB", |
|
|
// Calculate total duration
|
|
|
resultsCount, float64(totalBytesUploaded)/(1024*1024)) |
|
|
totalDuration := time.Since(startTime) |
|
|
|
|
|
log.Printf("All results collected. Total: %d, Total bytes uploaded: %.2f MB, Total time: %v", |
|
|
|
|
|
resultsCount, float64(totalBytesUploaded)/(1024*1024), totalDuration) |
|
|
|
|
|
|
|
|
var resultHTML bytes.Buffer |
|
|
var resultHTML bytes.Buffer |
|
|
var totalSuccess, totalFailure int |
|
|
var totalSuccess, totalFailure int |
|
|
@ -450,14 +454,14 @@ func UploadDocumentsHandler(w http.ResponseWriter, r *http.Request) { |
|
|
resultHTML.WriteString(fmt.Sprintf("<div class=\"stat-box success-stat\"><div class=\"stat-value\">%d</div><div class=\"stat-label\">Successful Uploads</div></div>", totalSuccess)) |
|
|
resultHTML.WriteString(fmt.Sprintf("<div class=\"stat-box success-stat\"><div class=\"stat-value\">%d</div><div class=\"stat-label\">Successful Uploads</div></div>", totalSuccess)) |
|
|
resultHTML.WriteString(fmt.Sprintf("<div class=\"stat-box error-stat\"><div class=\"stat-value\">%d</div><div class=\"stat-label\">Failed Uploads</div></div>", totalFailure)) |
|
|
resultHTML.WriteString(fmt.Sprintf("<div class=\"stat-box error-stat\"><div class=\"stat-value\">%d</div><div class=\"stat-label\">Failed Uploads</div></div>", totalFailure)) |
|
|
resultHTML.WriteString(fmt.Sprintf("<div class=\"stat-box\"><div class=\"stat-value\">%d</div><div class=\"stat-label\">Files Processed</div></div>", resultsCount)) |
|
|
resultHTML.WriteString(fmt.Sprintf("<div class=\"stat-box\"><div class=\"stat-value\">%d</div><div class=\"stat-label\">Files Processed</div></div>", resultsCount)) |
|
|
resultHTML.WriteString("</div>") |
|
|
resultHTML.WriteString(fmt.Sprintf("<div class=\"stat-box\"><div class=\"stat-value\">%v</div><div class=\"stat-label\">Total Time</div></div>", totalDuration)) |
|
|
|
|
|
|
|
|
if totalFailure == 0 && resultsCount > 0 { |
|
|
if totalFailure == 0 && resultsCount > 0 { |
|
|
resultHTML.WriteString("<p>All documents were successfully uploaded to ServiceTrade!</p>") |
|
|
resultHTML.WriteString(fmt.Sprintf("<p>All documents were successfully uploaded to ServiceTrade in %v!</p>", totalDuration)) |
|
|
} else if resultsCount == 0 { |
|
|
} else if resultsCount == 0 { |
|
|
resultHTML.WriteString("<p>No documents were processed for upload.</p>") |
|
|
resultHTML.WriteString("<p>No documents were processed for upload.</p>") |
|
|
} else { |
|
|
} else { |
|
|
resultHTML.WriteString("<p>Some documents failed to upload. See details below.</p>") |
|
|
resultHTML.WriteString(fmt.Sprintf("<p>Some documents failed to upload. Process completed in %v. See details below.</p>", totalDuration)) |
|
|
} |
|
|
} |
|
|
resultHTML.WriteString("</div>") |
|
|
resultHTML.WriteString("</div>") |
|
|
|
|
|
|
|
|
|