gradido/src/cpsp/checkTransaction.cpsp
2019-12-04 17:04:14 +01:00

178 lines
6.2 KiB
Plaintext

<%@ page class="CheckTransactionPage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "../model/TransactionCreation.h"
#include "../model/TransactionTransfer.h"
enum PageState {
PAGE_TRANSACTION_CREATION,
PAGE_TRANSACTION_TRANSFER,
PAGE_NO_TRANSACTIONS
};
%>
<%%
const char* pageName = gettext("&Uuml;berpr&uuml;fe Transaktion");
auto accountUser = mSession->getUser();
auto userBalance = accountUser->getBalance();
std::string memo = "";
bool hasErrors = false;
bool enableLogout = true;
if(!form.empty()) {
auto ok = form.get("ok", "");
auto abort = form.get("abort", "");
if(abort != "") {
mSession->finalizeTransaction(false, true);
} else if(ok != "") {
if(!accountUser->hasCryptoKey()) {
auto pwd = form.get("sign-password", "");
if(!mSession->isPwdValid(pwd)) {
addError(new Error(gettext("Passwort"), gettext("Das Passwort stimmt nicht. Bitte verwende dein Passwort von der Registrierung")));
hasErrors = true;
}
}
if(!hasErrors) {
mSession->finalizeTransaction(true, false);
}
}
}
PageState state = PAGE_NO_TRANSACTIONS;
size_t notReadyTransactions = 0;
size_t sumTransactions = mSession->getProcessingTransactionCount();
if(sumTransactions == 0) {
response.redirect(ServerConfig::g_php_serverPath);
return;
}
auto processingTransaction = mSession->getNextReadyTransaction(&notReadyTransactions);
if(sumTransactions > 0) {
enableLogout = false;
}
if(!processingTransaction.isNull()) {
auto transactionType = processingTransaction->getType();
switch(transactionType) {
case TRANSACTION_CREATION: state = PAGE_TRANSACTION_CREATION; break;
case TRANSACTION_TRANSFER: state = PAGE_TRANSACTION_TRANSFER; break;
}
}
%><%@ include file="header_navi.cpsp" %>
<div class="col-md-10 equel-grid mb-3">
<small class="text-gray d-block mt-3">
<% if(sumTransactions > 0 && sumTransactions - notReadyTransactions != 1) { %>
<% if(notReadyTransactions > 0) { %>
<%= sumTransactions - notReadyTransactions %> <%= gettext("von") %> <%= sumTransactions %> <%= gettext("Transaktionen sind bereit zum best&auml;tigen") %>
<% } else { %>
<%= sumTransactions %> <%= gettext("Transaktionen warten darauf best&auml;tigt zu werden.") %>
<% } %>
<% } %>
<% if(state == PAGE_NO_TRANSACTIONS) { %>
<% if(sumTransactions == 0) { %>
<%= gettext("Es gibt zurzeit keine Transaktionen zum best&auml;tigen") %>
<% } else { %>
<%= gettext("Transaktion(en) werden noch vorbereitet, bitte lade die Seite in wenigen Augenblicken erneut.") %>
<% } %>
<% } %>
</small>
</div>
<% if(state != PAGE_NO_TRANSACTIONS) { %>
<div class="col-md-10 equel-grid">
<div class="grid">
<p class="grid-header"><%= gettext("Transaktion Unterzeichnen") %></p>
<div class="grid-body">
<div class="item-wrapper">
<div class="row mb-3">
<div class="col-md-10 mx-auto">
<% if(state == PAGE_TRANSACTION_TRANSFER) {
auto transferTransaction = processingTransaction->getTransferTransaction();
memo = transferTransaction->getMemo();
%>
<p class="card-title ml-n1 mb-3"><%= gettext("&Uuml;berweisung") %></p>
<div class="table-responsive mb-4">
<table class="table info-table table-striped table-bordered">
<thead>
<tr><th><%= gettext("Konto") %></th><th><%= gettext("Gradido") %></th></tr>
</thead>
<tbody>
<% for(int i = 0; i < transferTransaction->getKontoTableSize(); i++) { %>
<tr>
<%= transferTransaction->getKontoNameCell(i) %>
<%= transferTransaction->getAmountCell(i) %>
</tr>
<% } %>
</tbody>
</table>
</div>
<% } else if(state == PAGE_TRANSACTION_CREATION) {
auto creationTransaction = processingTransaction->getCreationTransaction();
auto transactionUser = creationTransaction->getUser();
memo = creationTransaction->getMemo();
%>
<p class="card-title ml-n1 mb-3"><%= gettext("Sch&ouml;pfung") %></p>
<div class="table-responsive mb-4">
<table class="table info-table table-striped table-bordered">
<thead>
<tr><th><%= gettext("Konto") %></th><th><%= gettext("Gradido") %></th></tr>
</thead>
<tbody>
<tr>
<% if(transactionUser) { %>
<td><%= transactionUser->getFirstName() %> <%= transactionUser->getLastName() %> &lt;<%= transactionUser->getEmail() %>&gt;</td>
<% } else { %>
<td class="small">0x<%= creationTransaction->getPublicHex() %></td>
<% } %>
<td class="grd-success-color"><%= creationTransaction->getAmountString() %> GDD</td>
</tr>
</tbody>
</table>
</div>
<% } %>
<div class="table-responsive mb-4">
<table class="table info-table table-bordered table-auto-break">
<thead><tr><th><%= gettext("Aktives Konto") %></th></tr></thead>
<tbody><tr><td><%= accountUser->getFirstName() %> <%= accountUser->getLastName() %> &lt;<%= accountUser->getEmail() %>&gt;</td></tr></tbody>
</table>
</div>
<div class="table-responsive mb-4">
<table class="table info-table table-bordered table-auto-break tab-container">
<thead><tr><th><%= gettext("Verwendungszweck") %></th></tr></thead>
<tbody><tr>
<td class="tab-content"><%= memo %></td></tr></tbody>
</table>
</div>
</div>
</div>
<form>
<div class="row mb-3">
<div class="col-md-10 mx-auto">
<% if(!accountUser->hasCryptoKey()) {%>
<div class="form-group">
<label for="sign-password"><%= gettext("Ich brauche nochmal dein Passwort") %></label>
<input type="password" class="form-control" id="sign-password" name="sign-password" placeholder="<%= gettext("Passwort") %>">
</div>
<% } %>
<button type="submit" class="btn btn-sm btn-primary" name="ok" value="ok">
<i class="mdi mdi-signature-freehand"></i>
<%= gettext("Transaktion unterzeichnen") %>
</button>
<button type="submit" class="btn btn-sm btn-warning" name="abort" value="abort">
<i class="mdi mdi-delete"></i>
<%= gettext("Transaktion verwerfen") %>
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<% } %><%@ include file="footer_ripple.cpsp" %>