mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
120 lines
4.2 KiB
Plaintext
120 lines
4.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 = "Überprüfe Transaktion";
|
|
auto accountUser = mSession->getUser();
|
|
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("Passwort", "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 + "/");
|
|
}
|
|
auto processingTransaction = mSession->getNextReadyTransaction(¬ReadyTransactions);
|
|
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.cpsp" %><%@ include file="navi.cpsp" %>
|
|
<div class="grd_container">
|
|
<h1>Eine Transaktion prüfen</h1>
|
|
<%= getErrorsHtml() %>
|
|
<% if(sumTransactions > 0 && sumTransactions - notReadyTransactions != 1) { %>
|
|
<% if(notReadyTransactions > 0) { %>
|
|
<pre><%= sumTransactions - notReadyTransactions %> von <%= sumTransactions %> Transaktionen sind bereit zum prüfen</pre>
|
|
<% } else { %>
|
|
<pre><%= sumTransactions %> Transaktionen warten darauf überprüft zu werden.</pre>
|
|
<% } %>
|
|
<% } %>
|
|
<% if(state == PAGE_NO_TRANSACTIONS) { %>
|
|
<div class="grd_text-max-width">
|
|
<% if(sumTransactions == 0) { %>
|
|
<div class="grd_text">Es gibt zurzeit keine Transaktionen zum überprüfen</div>
|
|
<% } else { %>
|
|
<div class="grd_text">Transaktion(en) werden noch vorbereitet, bitte lade die Seite in wenigen Augenblicken erneut.</div>
|
|
<% } %>
|
|
</div>
|
|
|
|
<% } else if(state == PAGE_TRANSACTION_CREATION) {
|
|
auto creationTransaction = processingTransaction->getCreationTransaction();
|
|
auto transactionUser = creationTransaction->getUser();
|
|
|
|
%>
|
|
<div class="grd_text-max-width">
|
|
<h2>Schöpfungstransaktion</h2>
|
|
<b>Memo: </b>
|
|
<p><%= creationTransaction->getMemo() %></p>
|
|
<b>Empfänger: </b>
|
|
<% if(transactionUser) { %>
|
|
<p class="grd_small"><%= transactionUser->getFirstName() %> <%= transactionUser->getLastName() %></p>
|
|
<p class="grd_small"><%= transactionUser->getEmail() %></p>
|
|
<% } else { %>
|
|
<p class="grd_small"><%= creationTransaction->getPublicHex() %></p>
|
|
<% } %>
|
|
<b>Summe: </b>
|
|
<%= creationTransaction->getAmountString() %> Gradido
|
|
<form >
|
|
Unterschreiben mit aktuellem Account?<br>
|
|
<p class="grd_small"><%= accountUser->getFirstName() %> <%= accountUser->getLastName() %></p>
|
|
<p class="grd_small"><%= accountUser->getEmail() %></p>
|
|
<% // TODO: additional password check %>
|
|
<% if(!accountUser->hasCryptoKey()) {%>
|
|
<p>Ich brauche nochmal dein Passwort</p>
|
|
<p class="grd_small">
|
|
<label for="sign-password">Passwort</label>
|
|
<input id="sign-password" type="password" name="sign-password"/>
|
|
</p>
|
|
<% } %>
|
|
<input class="grd-form-bn grd-form-bn-succeed grd_clickable" type="submit" name="ok" value="Transaktion unterzeichnen">
|
|
<input class="grd-form-bn grd-form-bn-discard grd_clickable" type="submit" name="abort" value="Transaktion verwerfen">
|
|
</form>
|
|
</div>
|
|
<% } %>
|
|
</div>
|
|
<%@ include file="footer.cpsp" %> |