From b02131ea683c71155531beaf241c7aa63084650e Mon Sep 17 00:00:00 2001 From: Tina_Azure <-> Date: Sat, 19 Aug 2023 11:37:03 +0200 Subject: [PATCH] Submission/Submission alias deletion WIP --- src/main.cpp | 17 ++++++++ src/templateConstCollection.cpp | 1 + src/utilities.cpp | 12 ++++++ ...ancer_Submission_Management_View_Link.html | 40 +++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 templates/freelancer_Submission_Management_View_Link.html diff --git a/src/main.cpp b/src/main.cpp index 3b829bb..9315d71 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1209,6 +1209,23 @@ int main(int argc, char *argv[]) { return page.render(ctx); }); + /* + * Page for freelancer to view existing Links to a submission + */ + CROW_ROUTE(app, "/freelancer/submissionManagement/view/viewLink") + ([&, configuration](const crow::request& getRequest) { + auto& cookieCtx = app.get_context(getRequest); + crow::mustache::context ctx; + if (Utilities::checkCookieLoginState(configuration, cookieCtx)) { + ctx = Utilities::getFreelancerSubmissionLinks(configuration, cookieCtx.get_cookie(COOKIE_FREELANCER_EMAIL)); + + + ctx[MUSTACHE_COOKIE_LOGGED_IN] = true; + } + auto page = crow::mustache::load(TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK); + return page.render(ctx); + }); + /* * Page for freelancer to generate link to a particular submission */ diff --git a/src/templateConstCollection.cpp b/src/templateConstCollection.cpp index 64bde8e..a070ac4 100644 --- a/src/templateConstCollection.cpp +++ b/src/templateConstCollection.cpp @@ -36,6 +36,7 @@ namespace TemplateConstCollection { const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT = "freelancer_Submission_Management.html"; const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_ADD = "freelancer_Submission_Management_Add.html"; const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW = "freelancer_Submission_Management_View.html"; + const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK = "freelancer_Submission_Management_View_Link.html"; const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_GENERATE_LINK = "freelancer_Submission_Management_View_Generate_link.html"; const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_GENERATE_LINK_FULFILMENT = "freelancer_Submission_Management_View_Generate_link_fulfilment.html"; diff --git a/src/utilities.cpp b/src/utilities.cpp index 0fa5648..49ab466 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -719,6 +719,18 @@ namespace Utilities { return jsonFreelancerSubmissions; } + /* + * Gets the freelancer submission alias links and converts them into a wvalue JSON under the name "submissions" + * takes config and freelancer email and filename + */ + crow::json::wvalue getFreelancerSubmissionLinks(const Utilities::config& configuration, const std::string& emailAddress, const std::string& fileName) { + pqxx::connection databaseConnection(configuration.databaseConnectionString); + Database::prepareStatement(databaseConnection, ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS); + pqxx::result resultJsonFreelancerSubmissions = Database::executePreparedStatement_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS(databaseConnection, emailAddress, fileName); + crow::json::wvalue jsonFreelancerSubmissions = Database::convertResultToJSON(resultJsonFreelancerSubmissions, "submissionlinks"); + return jsonFreelancerSubmissions; + } + /* * Gets the freelancer alias and converts them into a wvalue JSON under the name "alias" * takes config and freelancer email diff --git a/templates/freelancer_Submission_Management_View_Link.html b/templates/freelancer_Submission_Management_View_Link.html new file mode 100644 index 0000000..8212b1a --- /dev/null +++ b/templates/freelancer_Submission_Management_View_Link.html @@ -0,0 +1,40 @@ + + + + {{> templateIncludes/style.css.html}} + + +

Submission Management

+ {{^COOKIE_LOGGED_IN}} + Please Log in. + {{/COOKIE_LOGGED_IN}} + {{#COOKIE_LOGGED_IN}} + + {{#submissionlinks}} + + + + + {{/submissionlinks}} +
+ {{submissionLink}} + +
+ +
+
+

+

+ +
+

+ {{/COOKIE_LOGGED_IN}} + {{> templateIncludes/freelancerLoginSignupProfileLogoutInterface.html.html}} +
+ {{> templateIncludes/returnToIndexButton.html.html}} + + + + + + \ No newline at end of file