diff --git a/src/manage/ManageResults.cpp b/src/manage/ManageResults.cpp index 27d62db..e7110ac 100644 --- a/src/manage/ManageResults.cpp +++ b/src/manage/ManageResults.cpp @@ -43,7 +43,7 @@ namespace platform { } std::cout << Colors::RESET() << "Done!" << std::endl; } - void ManageResults::list(const std::string& status_message, const std::string& status_color, int index_A, int index_B) + void ManageResults::list(const std::string& status_message_init, const std::string& status_color, int index_A, int index_B) { // // Page info @@ -102,6 +102,7 @@ namespace platform { oss << " A: " << (index_A == -1 ? "" : std::to_string(index_A)) << " B: " << (index_B == -1 ? "" : std::to_string(index_B)) << " "; int status_length = std::max(oss.str().size(), maxLine - oss.str().size()); + auto status_message = status_message_init.substr(0, status_length - 1); std::string status = status_message + std::string(std::max(size_t(0), status_length - status_message.size()), ' '); auto color = (index_A != -1 && index_B != -1) ? Colors::IGREEN() : Colors::IYELLOW(); std::cout << color << Colors::REVERSE() << oss.str() << Colors::RESET() << Colors::WHITE() @@ -129,27 +130,27 @@ namespace platform { std::cout << "Not done!" << std::endl; return false; } - void ManageResults::report_compared(const int index_A, const int index_B) + std::string ManageResults::report_compared(const int index_A, const int index_B) { - std::cout << "Comparing " << results.at(index_A).getFilename() << " with " << results.at(index_B).getFilename() << std::endl; auto data_A = results.at(index_A).getJson(); auto data_B = results.at(index_B).getJson(); ReportExcelCompared reporter(data_A, data_B); reporter.report(); + return results.at(index_A).getFilename() + " Vs " + results.at(index_B).getFilename(); } - void ManageResults::report(const int index, const bool excelReport) + std::string ManageResults::report(const int index, const bool excelReport) { - std::cout << Colors::YELLOW() << "Reporting " << results.at(index).getFilename() << std::endl; auto data = results.at(index).getJson(); if (excelReport) { ReportExcel reporter(data, compare, workbook); reporter.show(); openExcel = true; workbook = reporter.getWorkbook(); - std::cout << "Adding sheet to " << Paths::excel() + Paths::excelResults() << std::endl; + return results.at(index).getFilename() + "->" + Paths::excel() + Paths::excelResults(); } else { ReportConsole reporter(data, compare); reporter.show(); + return "Reporting " + results.at(index).getFilename(); } } void ManageResults::showIndex(const int index, const int idx) @@ -229,7 +230,7 @@ namespace platform { } else { std::tie(option, subIndex) = parser.parse(Colors::IBLUE(), listOptions, 'r', 0, results.at(index).getJson()["results"].size() - 1); } - std::string status_message, status_color; + switch (option) { case 'p': if (paginator.valid(index)) { @@ -284,7 +285,7 @@ namespace platform { list("Need to set A and B first!", Colors::RED(), index_A, index_B); break; } - report_compared(index_A, index_B); + list(report_compared(index_A, index_B), Colors::GREEN(), index_A, index_B); break; case 'l': list(STATUS_OK, STATUS_COLOR, index_A, index_B); @@ -292,25 +293,35 @@ namespace platform { break; case 'd': filename = results.at(index).getFilename(); - if (!confirmAction("delete", filename)) - list("File: " + filename + " not deleted!", Colors::YELLOW(), index_A, index_B); + if (!confirmAction("delete", filename)) { + list(filename + " not deleted!", Colors::YELLOW(), index_A, index_B); + break; + } std::cout << "Deleting " << filename << std::endl; results.deleteResult(index); - list("File: " + filename + " deleted!", Colors::RED(), index_A, index_B); + list(filename + " deleted!", Colors::RED(), index_A, index_B); break; case 'h': - filename = results.at(index).getFilename(); - if (!confirmAction("hide", filename)) - list("File: " + filename + " not hidden!", Colors::YELLOW(), index_A, index_B); - filename = results.at(index).getFilename(); - std::cout << "Hiding " << filename << std::endl; - results.hideResult(index, Paths::hiddenResults()); - status_message = "File: " + filename + " hidden! (moved to " + Paths::hiddenResults() + ")"; - list(status_message, Colors::YELLOW(), index_A, index_B); + { + std::string status_message; + filename = results.at(index).getFilename(); + if (!confirmAction("hide", filename)) { + list(filename + " not hidden!", Colors::YELLOW(), index_A, index_B); + break; + } + filename = results.at(index).getFilename(); + std::cout << "Hiding " << filename << std::endl; + results.hideResult(index, Paths::hiddenResults()); + status_message = filename + " hidden! (moved to " + Paths::hiddenResults() + ")"; + list(status_message, Colors::YELLOW(), index_A, index_B); + } break; case 's': - tie(status_color, status_message) = sortList(); - list(status_message, status_color, index_A, index_B); + { + std::string status_message, status_color; + tie(status_color, status_message) = sortList(); + list(status_message, status_color, index_A, index_B); + } break; case 'r': if (indexList) { @@ -321,20 +332,24 @@ namespace platform { } break; case 'e': - report(index, true); + list(report(index, true), Colors::GREEN(), index_A, index_B); break; case 't': - std::cout << "Title: " << results.at(index).getTitle() << std::endl; - std::cout << "New title: "; - std::string newTitle; - getline(std::cin, newTitle); - if (!newTitle.empty()) { - results.at(index).setTitle(newTitle); - results.at(index).save(); - status_message = "Title changed to " + newTitle; - list(status_message, Colors::GREEN(), index_A, index_B); + { + std::string status_message; + std::cout << "Title: " << results.at(index).getTitle() << std::endl; + std::cout << "New title: "; + std::string newTitle; + getline(std::cin, newTitle); + if (!newTitle.empty()) { + results.at(index).setTitle(newTitle); + results.at(index).save(); + status_message = "Title changed to " + newTitle; + list(status_message, Colors::GREEN(), index_A, index_B); + break; + } + list("No title change!", Colors::YELLOW(), index_A, index_B); } - list("No title change!", Colors::YELLOW(), index_A, index_B); break; } } diff --git a/src/manage/ManageResults.h b/src/manage/ManageResults.h index 176a8de..f181772 100644 --- a/src/manage/ManageResults.h +++ b/src/manage/ManageResults.h @@ -13,8 +13,8 @@ namespace platform { private: void list(const std::string& status, const std::string& color, int index_A, int index_B); bool confirmAction(const std::string& intent, const std::string& fileName) const; - void report(const int index, const bool excelReport); - void report_compared(const int index_A, const int index_B); + std::string report(const int index, const bool excelReport); + std::string report_compared(const int index_A, const int index_B); void showIndex(const int index, const int idx); std::pair sortList(); void menu();