mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
272 lines
10 KiB
Plaintext
272 lines
10 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 "../SingletonManager/SingletonTaskObserver.h"
|
|
#include "../model/TransactionCreation.h"
|
|
#include "../model/TransactionTransfer.h"
|
|
|
|
#include "Poco/Thread.h"
|
|
|
|
enum PageState {
|
|
PAGE_TRANSACTION_CREATION,
|
|
PAGE_TRANSACTION_TRANSFER,
|
|
PAGE_NO_TRANSACTIONS
|
|
};
|
|
|
|
%>
|
|
<%%
|
|
const char* pageName = gettext("Überprü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) {
|
|
/*auto observer = SingletonTaskObserver::getInstance();
|
|
auto emailHash = DRMakeStringHash(mSession->getUser()->getEmail());
|
|
int breakCount = 0;
|
|
while(observer->getTaskCount(emailHash, TASK_OBSERVER_SIGN_TRANSACTION) > 0) {
|
|
if(breakCount > 100) break;
|
|
breakCount++;
|
|
Poco::Thread::sleep(10);
|
|
}*/
|
|
auto lastExternReferer = mSession->getLastReferer();
|
|
//lastExternReferer = "";
|
|
if(lastExternReferer != "" && lastExternReferer.find("transaction-send-coins") == std::string::npos) {
|
|
//printf("last extern referer: %s\n", lastExternReferer.data());
|
|
response.redirect(lastExternReferer);
|
|
} else {
|
|
response.redirect(ServerConfig::g_php_serverPath + "state-balances/overview");
|
|
}
|
|
return;
|
|
}
|
|
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_navi_chr.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ätigen") %>
|
|
<% } else { %>
|
|
<%= sumTransactions %> <%= gettext("Transaktionen warten darauf bestätigt zu werden.") %>
|
|
<% } %>
|
|
<% } %>
|
|
<% if(state == PAGE_NO_TRANSACTIONS) { %>
|
|
<% if(sumTransactions == 0) { %>
|
|
<%= gettext("Es gibt zurzeit keine Transaktionen zum bestätigen") %>
|
|
<% } else { %>
|
|
<%= gettext("Transaktion(en) werden noch vorbereitet, bitte lade die Seite in wenigen Augenblicken erneut.") %>
|
|
<% } %>
|
|
<% } %>
|
|
</small>
|
|
</div>
|
|
<div class="content-container main-container">
|
|
<div class="action-form">
|
|
<p class="form-header"><%= gettext("Transaktion Unterzeichnen") %></p>
|
|
<% if(state == PAGE_TRANSACTION_TRANSFER) {
|
|
auto transferTransaction = processingTransaction->getTransferTransaction();
|
|
memo = transferTransaction->getMemo();
|
|
%>
|
|
<div class="form-content">
|
|
<p><%= gettext("Überweisung") %></p>
|
|
<div class="content-table">
|
|
<div class="content-row content-row-header">
|
|
<span class="content-cell"><%= gettext("Konto") %></span>
|
|
<span class="content-cell"><%= gettext("Gradido") %></span>
|
|
</div>
|
|
<% for(int i = 0; i < transferTransaction->getKontoTableSize(); i++) { %>
|
|
<%= transferTransaction->getKontoNameCellChr(i) %>
|
|
<%= transferTransaction->getAmountCellChr(i) %>
|
|
<% } %>
|
|
<div class="content-row content-row-bg">
|
|
<span class="content-cell">Normaler User <info@software-labor.de></span>
|
|
<span class="content-cell alert-color">-10 GDD</span>
|
|
</div>
|
|
<div class="content-row">
|
|
<span class="content-cell">dario frodo <dariofrodo@gmx.de></span>
|
|
<span class="content-cell success-color">10 GDD</span>
|
|
</div>
|
|
</div>
|
|
<div class="content-table">
|
|
<div class="content-row content-row-header">
|
|
<span class="content-cell">Aktives Konto</span>
|
|
</div>
|
|
<div class="content-row">
|
|
<span class="content-cell">Normaler User <info@software-labor.de></span>
|
|
</div>
|
|
</div>
|
|
<div class="content-table">
|
|
<div class="content-row content-row-header">
|
|
<span class="content-cell">Verwendungszweck</span>
|
|
</div>
|
|
<div class="content-row content-row-bg">
|
|
<span class="content-cell"> </span>
|
|
</div>
|
|
</div>
|
|
<form>
|
|
<button type="submit" class="form-button" name="ok" value="ok">
|
|
<i class="material-icons-outlined">verified_user</i>
|
|
Transaktion unterzeichnen
|
|
</button>
|
|
<button type="submit" class="form-button button-cancel" name="abort" value="abort">
|
|
<i class="material-icons-outlined">delete</i>
|
|
Transaktion verwerfen
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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ätigen") %>
|
|
<% } else { %>
|
|
<%= sumTransactions %> <%= gettext("Transaktionen warten darauf bestätigt zu werden.") %>
|
|
<% } %>
|
|
<% } %>
|
|
<% if(state == PAGE_NO_TRANSACTIONS) { %>
|
|
<% if(sumTransactions == 0) { %>
|
|
<%= gettext("Es gibt zurzeit keine Transaktionen zum bestä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("Ü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ö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("Zieldatum") %></th><th><%= gettext("Gradido") %></th></tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<% if(transactionUser) { %>
|
|
<td><%= transactionUser->getFirstName() %> <%= transactionUser->getLastName() %> <<%= transactionUser->getEmail() %>></td>
|
|
<% } else { %>
|
|
<td class="small">0x<%= creationTransaction->getPublicHex() %></td>
|
|
<% } %>
|
|
<td><%= creationTransaction->getTargetDateString() %></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() %> <<%= accountUser->getEmail() %>></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_chr.cpsp" %> |