diff --git a/CMakeLists.txt b/CMakeLists.txt index 466e009..571de21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,5 @@ cmake_minimum_required(VERSION 2.8) -#list(INSERT - # CMAKE_MODULE_PATH 0 ${PROJECT_SOURCE_DIR}/cmake) -set(CMAKE_MODULE_PATH - ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - set(PROJECT_NAME xmrblocks) @@ -191,7 +186,7 @@ set(LIBRARIES crypto ssl) -if (!APPLE) +if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(LIBRARIES ${LIBRARIES} unwind) endif() diff --git a/main.cpp b/main.cpp index b69efe6..4b7a21f 100644 --- a/main.cpp +++ b/main.cpp @@ -304,6 +304,11 @@ int main(int ac, const char* av[]) { return xmrblocks.search(string(req.url_params.get("value"))); }); + CROW_ROUTE(app, "/mempool") + ([&](const crow::request& req) { + return xmrblocks.mempool(true); + }); + CROW_ROUTE(app, "/robots.txt") ([&]() { string text = "User-agent: *\n" diff --git a/src/page.h b/src/page.h index 8f1050d..ba5a8a7 100644 --- a/src/page.h +++ b/src/page.h @@ -258,6 +258,9 @@ class page { bool enable_pusher; + uint64_t no_of_mempool_tx_of_frontpage; + + public: page(MicroCore* _mcore, Blockchain* _core_storage, @@ -272,6 +275,7 @@ public: enable_pusher {_enable_pusher} { css_styles = xmreg::read(TMPL_CSS_STYLES); + no_of_mempool_tx_of_frontpage = 25; } @@ -651,7 +655,7 @@ public: * Render mempool data */ string - mempool() + mempool(bool add_header_and_footer = false) { std::vector mempool_txs; @@ -774,9 +778,37 @@ public: return t1 > t2; }); - // read index.html + // read mempool.html string mempool_html = xmreg::read(TMPL_MEMPOOL); + if (add_header_and_footer) + { + // this is when mempool is on its own page, /mempool + add_css_style(context); + + context["partial_mempool_shown"] = false; + + // add header and footer + string full_page = get_full_page(mempool_html); + + // render the page + return mstch::render(full_page, context); + } + + // this is for partial disply on front page. + + context["mempool_fits_on_front_page"] = (txs.size() <= no_of_mempool_tx_of_frontpage); + context["no_of_mempool_tx_of_frontpage"] = no_of_mempool_tx_of_frontpage; + + if (txs.size() > no_of_mempool_tx_of_frontpage) + { + // dont show more than the specific number mempool txs on + // the front page + txs.resize(no_of_mempool_tx_of_frontpage); + } + + context["partial_mempool_shown"] = true; + // render the page return mstch::render(mempool_html, context); } diff --git a/src/templates/mempool.html b/src/templates/mempool.html index 05f79a5..0cb810f 100644 --- a/src/templates/mempool.html +++ b/src/templates/mempool.html @@ -1,12 +1,14 @@ -

- Memory pool (no of txs: {{mempool_size}}, size: {{mempool_size_kB}} kB) +

+ Memory pool

+

(no of txs: {{mempool_size}}, size: {{mempool_size_kB}} kB)

+ @@ -19,6 +21,7 @@ + @@ -30,5 +33,14 @@ {{/mempooltxs}}
height age [h:m:s]size [kB] transaction hash fee outputs
N/A {{age}}N/A {{hash}} {{fee}} {{xmr_outputs}}
+ {{^mempool_fits_on_front_page}} + {{#partial_mempool_shown}} + + {{/partial_mempool_shown}} + + {{/mempool_fits_on_front_page}} +