%@ 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" %>
<%= gettext("Transaktion Unterzeichnen") %>
<% if(state == PAGE_TRANSACTION_TRANSFER) { auto transferTransaction = processingTransaction->getTransferTransaction(); memo = transferTransaction->getMemo(); %><%= gettext("Überweisung") %>
<%= gettext("Transaktion Unterzeichnen") %>
<%= gettext("Überweisung") %>
| <%= gettext("Konto") %> | <%= gettext("Gradido") %> |
|---|---|
<%= gettext("Schöpfung") %>
| <%= gettext("Konto") %> | <%= gettext("Zieldatum") %> | <%= gettext("Gradido") %> | |
|---|---|---|---|
| <%= transactionUser->getFirstName() %> <%= transactionUser->getLastName() %> <<%= transactionUser->getEmail() %>> | <% } else { %>0x<%= creationTransaction->getPublicHex() %> | <% } %><%= creationTransaction->getTargetDateString() %> | <%= creationTransaction->getAmountString() %> GDD |
| <%= gettext("Aktives Konto") %> |
|---|
| <%= accountUser->getFirstName() %> <%= accountUser->getLastName() %> <<%= accountUser->getEmail() %>> |
| <%= gettext("Verwendungszweck") %> |
|---|
| <%= memo %> |