View Submission Alias
This commit is contained in:
@ -746,6 +746,18 @@ namespace Database {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Executes the prepared statement SELECT_FREELANCER_FILE_SUBMISSION_ALIAS
|
||||||
|
* Takes an open pqxx::connection the file name and the freelancer Email
|
||||||
|
* returns the alias of the file
|
||||||
|
*/
|
||||||
|
pqxx::result executePreparedStatement_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS(pqxx::connection &connection, const std::string& freelancerEmail, const std::string& fileName) {
|
||||||
|
pqxx::work work(connection);
|
||||||
|
pqxx::result result = work.exec_prepared(PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS, freelancerEmail, fileName);
|
||||||
|
work.commit();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Executes the prepared statement INSERT_FREELANCER_FILE_SUBMISSION
|
* Executes the prepared statement INSERT_FREELANCER_FILE_SUBMISSION
|
||||||
|
@ -268,6 +268,20 @@ namespace DatabaseStatementConstCollection {
|
|||||||
const static std::string PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS = "insertFreelancerFileSubmissionAlias";
|
const static std::string PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS = "insertFreelancerFileSubmissionAlias";
|
||||||
const static std::string SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS = "insert into aliasroutes (aliasname, freelancerid, route, routeparameter) values($3, $1, $2, 'FILESUBMISSION');";
|
const static std::string SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS = "insert into aliasroutes (aliasname, freelancerid, route, routeparameter) values($3, $1, $2, 'FILESUBMISSION');";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Name and Statement for prepared statement to delete alias of a file submission
|
||||||
|
* 1=freelancer email, 2=filename, 3=aliasname as {ID}/{Alias}
|
||||||
|
*/
|
||||||
|
const static std::string PREPARED_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS = "deleteFreelancerFileSubmissionAlias";
|
||||||
|
const static std::string SQL_STATEMENT_DELETE_FREELANCER_FILE_SUBMISSION_ALIAS = "delete from aliasroutes where freelancerid = (select freelancers.id from freelancers where emailaddress = $1) and route = $2 and aliasname = $3 and routeparameter = 'FILESUBMISSION';";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Name and Statement for prepared statement to select alias for a file submission
|
||||||
|
* 1=freelancer email, 2=filename
|
||||||
|
*/
|
||||||
|
const static std::string PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS = "selectFreelancerFileSubmissionAlias";
|
||||||
|
const static std::string SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS = "select aliasname from aliasroutes where freelancerid = (select freelancers.id from freelancers where emailaddress = $1) and route = $2 and routeparameter = 'FILESUBMISSION';";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Name and Statement for prepared statement to delete a submission based on freelancer email and filename
|
* Name and Statement for prepared statement to delete a submission based on freelancer email and filename
|
||||||
*/
|
*/
|
||||||
@ -336,6 +350,7 @@ namespace DatabaseStatementConstCollection {
|
|||||||
const static int ID_INSERT_FREELANCER_FILE_SUBMISSION = 42;
|
const static int ID_INSERT_FREELANCER_FILE_SUBMISSION = 42;
|
||||||
const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH = 43;
|
const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH = 43;
|
||||||
const static int ID_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS = 44;
|
const static int ID_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS = 44;
|
||||||
|
const static int ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS = 45;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -387,7 +402,8 @@ namespace DatabaseStatementConstCollection {
|
|||||||
{PREPARED_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION, SQL_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION},
|
{PREPARED_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION, SQL_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION},
|
||||||
{PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION, SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION},
|
{PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION, SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION},
|
||||||
{PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH},
|
{PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH},
|
||||||
{PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS, SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS}
|
{PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS, SQL_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS},
|
||||||
|
{PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS, SQL_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS}
|
||||||
};
|
};
|
||||||
/*
|
/*
|
||||||
* Easy access to prepared statement name via int
|
* Easy access to prepared statement name via int
|
||||||
@ -437,7 +453,8 @@ namespace DatabaseStatementConstCollection {
|
|||||||
{ID_PRUGE_FREELANCER_FILE_SUBMISSION, PREPARED_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION},
|
{ID_PRUGE_FREELANCER_FILE_SUBMISSION, PREPARED_STATEMENT_PRUGE_FREELANCER_FILE_SUBMISSION},
|
||||||
{ID_INSERT_FREELANCER_FILE_SUBMISSION, PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION},
|
{ID_INSERT_FREELANCER_FILE_SUBMISSION, PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION},
|
||||||
{ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH},
|
{ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS_PATH},
|
||||||
{ID_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS, PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS}
|
{ID_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS, PREPARED_STATEMENT_INSERT_FREELANCER_FILE_SUBMISSION_ALIAS},
|
||||||
|
{ID_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS, PREPARED_STATEMENT_SELECT_FREELANCER_FILE_SUBMISSION_ALIAS}
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
25
src/main.cpp
25
src/main.cpp
@ -1212,13 +1212,14 @@ int main(int argc, char *argv[]) {
|
|||||||
/*
|
/*
|
||||||
* Page for freelancer to view existing Links to a submission
|
* Page for freelancer to view existing Links to a submission
|
||||||
*/
|
*/
|
||||||
CROW_ROUTE(app, "/freelancer/submissionManagement/view/viewLink")
|
CROW_ROUTE(app, "/freelancer/submissionManagement/view/viewLink/<string>").methods(crow::HTTPMethod::GET)
|
||||||
([&, configuration](const crow::request& getRequest) {
|
([&, configuration](const crow::request& getRequest, const string& fileName) {
|
||||||
auto& cookieCtx = app.get_context<crow::CookieParser>(getRequest);
|
auto& cookieCtx = app.get_context<crow::CookieParser>(getRequest);
|
||||||
crow::mustache::context ctx;
|
crow::mustache::context ctx;
|
||||||
if (Utilities::checkCookieLoginState(configuration, cookieCtx)) {
|
if (Utilities::checkCookieLoginState(configuration, cookieCtx)) {
|
||||||
ctx = Utilities::getFreelancerSubmissionLinks(configuration, cookieCtx.get_cookie(COOKIE_FREELANCER_EMAIL));
|
ctx = Utilities::getFreelancerSubmissionLinks(configuration, cookieCtx.get_cookie(COOKIE_FREELANCER_EMAIL), fileName);
|
||||||
|
ctx["filename"] = fileName;
|
||||||
|
ctx["domain"] = configuration.domain;
|
||||||
|
|
||||||
ctx[MUSTACHE_COOKIE_LOGGED_IN] = true;
|
ctx[MUSTACHE_COOKIE_LOGGED_IN] = true;
|
||||||
}
|
}
|
||||||
@ -1226,6 +1227,22 @@ int main(int argc, char *argv[]) {
|
|||||||
return page.render(ctx);
|
return page.render(ctx);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Page for freelancer to delete existing Link to a submission todo:implement
|
||||||
|
*/
|
||||||
|
CROW_ROUTE(app, "/freelancer/submissionManagement/view/viewLink/<string>/delete").methods(crow::HTTPMethod::GET)
|
||||||
|
([&, configuration](const crow::request& getRequest, const string& aliasName) {
|
||||||
|
auto& cookieCtx = app.get_context<crow::CookieParser>(getRequest);
|
||||||
|
crow::mustache::context ctx;
|
||||||
|
if (Utilities::checkCookieLoginState(configuration, cookieCtx)) {
|
||||||
|
|
||||||
|
|
||||||
|
ctx[MUSTACHE_COOKIE_LOGGED_IN] = true;
|
||||||
|
}
|
||||||
|
auto page = crow::mustache::load(TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK_DELETE_FULFILMENT);
|
||||||
|
return page.render(ctx);
|
||||||
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Page for freelancer to generate link to a particular submission
|
* Page for freelancer to generate link to a particular submission
|
||||||
*/
|
*/
|
||||||
|
@ -37,6 +37,7 @@ namespace TemplateConstCollection {
|
|||||||
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_ADD = "freelancer_Submission_Management_Add.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 = "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_LINK = "freelancer_Submission_Management_View_Link.html";
|
||||||
|
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_LINK_DELETE_FULFILMENT = "freelancer_Submission_Management_View_Link_Delete_Fulfilment.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 = "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";
|
const static std::string TEMPLATE_FREELANCER_SUBMISSION_MANAGEMENT_VIEW_GENERATE_LINK_FULFILMENT = "freelancer_Submission_Management_View_Generate_link_fulfilment.html";
|
||||||
|
|
||||||
|
@ -30,8 +30,8 @@
|
|||||||
</form>
|
</form>
|
||||||
</th>
|
</th>
|
||||||
<th>
|
<th>
|
||||||
<form action="/freelancer/submissionManagement/view/viewLink" method="post">
|
<form action="/freelancer/submissionManagement/view/viewLink/{{filename}}" method="get">
|
||||||
<button type="submit" name="filename" value="{{filename}}" class="button">View Links</button>
|
<button type="submit" class="button">View Links</button>
|
||||||
</form>
|
</form>
|
||||||
</th>
|
</th>
|
||||||
<th>
|
<th>
|
||||||
|
@ -13,11 +13,16 @@
|
|||||||
{{#submissionlinks}}
|
{{#submissionlinks}}
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
<a href="https://{{submissionLink}}">{{submissionLink}}</a>
|
<form action="/commissionSubmission/{{aliasname}}" method="get">
|
||||||
|
<button type="submit" class="button">{{aliasname}}</button>
|
||||||
|
</form>
|
||||||
</th>
|
</th>
|
||||||
<th>
|
<th>
|
||||||
<form action="/freelancer/submissionManagement/view/delete" method="post">
|
<a href="https://{{domain}}/commissionSubmission/{{aliasname}}">https://{{domain}}/commissionSubmission/{{aliasname}}</a>
|
||||||
<button type="submit" name="filename" value="{{filename}}" class="button">Delete</button>
|
</th>
|
||||||
|
<th>
|
||||||
|
<form action="/freelancer/submissionManagement/view/viewLink/{{aliasname}}/delete" method="get">
|
||||||
|
<button type="submit" class="button">Delete</button>
|
||||||
</form>
|
</form>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
Reference in New Issue
Block a user