diff --git a/_includes/fragment_reviews_needed.md b/_includes/fragment_reviews_needed.md index 768039da..f9326297 100644 --- a/_includes/fragment_reviews_needed.md +++ b/_includes/fragment_reviews_needed.md @@ -6,7 +6,7 @@ http://opensource.org/licenses/MIT.
BETA: This documentation has not been extensively reviewed by Bitcoin experts and so likely contains numerous errors. Please use the Issue and Edit links on the bottom left menu to help us improve. Click here to close this disclaimer. -X +X
diff --git a/_layouts/base.html b/_layouts/base.html index 14183d3d..6b8c26ef 100644 --- a/_layouts/base.html +++ b/_layouts/base.html @@ -29,7 +29,7 @@ {% endif %}
- {{ wallet[1].title }}{{ wallet[1].titleshort }} + {{ wallet[1].title }}{{ wallet[1].titleshort }}
{% endfor %}{% endfor %} @@ -1002,7 +1002,7 @@ wallets:

{% translate {{platform[1].text}} %}

screenshot
- {{ wallet[1].title }}{{ wallet[1].titleshort }} + {{ wallet[1].title }}{{ wallet[1].titleshort }} {% endfor %}{% endfor %}{% endfor %} diff --git a/_templates/development.html b/_templates/development.html index bea4edff..d4bbbd1c 100755 --- a/_templates/development.html +++ b/_templates/development.html @@ -56,7 +56,7 @@ id: development
  • picocoin - A tiny library with lightweight client and utilities, written in C.
  • python-bitcoinlib - A library for structures and protocols, written in Python.
  • Python Blkmaker - A client library for the getblocktemplate mining protocol, written in Python.
  • -
  • {% translate moremore %}
  • +
  • {% translate moremore %}
  • diff --git a/_templates/press.html b/_templates/press.html index 61aacded..22c4121e 100644 --- a/_templates/press.html +++ b/_templates/press.html @@ -55,26 +55,26 @@ dialogs:
    - {% translate whatisbitcoin faq %} + {% translate whatisbitcoin faq %}

    {% translate whatisbitcointxt1 faq %}

    - {% translate howitworks faq %} + {% translate howitworks faq %}

    {% translate howitworkstxt1 faq %}

    {% translate howitworkstxt2 faq %}

    - {% translate whatismining faq %} + {% translate whatismining faq %}

    {% translate whatisminingtxt1 faq %}

    - {% translate acquire faq %} + {% translate acquire faq %}
    • {% translate acquireli1 faq %}
    • @@ -86,7 +86,7 @@ dialogs:
    - {% translate used faq %} + {% translate used faq %}

    {% translate usedtxt1 faq %}

    @@ -95,14 +95,14 @@ dialogs:

    - {% translate makepayment faq %} + {% translate makepayment faq %}

    {% translate makepaymenttxt1 faq %}

    ScreenshotScreenshot

    - {% translate advantages faq %} + {% translate advantages faq %}
    • {% translate advantagesli1 faq %}
    • @@ -114,7 +114,7 @@ dialogs:
    - {% translate disadvantages faq %} + {% translate disadvantages faq %}
    • {% translate disadvantagesli1 faq %}
    • @@ -124,13 +124,13 @@ dialogs:
    - {% translate secure faq %} + {% translate secure faq %}

    {% translate securetxt1 faq %}

    - {% translate islegal faq %} + {% translate islegal faq %}

    {% translate islegaltxt1 faq %}

    {% translate islegaltxt2 faq %}

    @@ -141,13 +141,13 @@ dialogs:
    - {% translate taxes faq %} + {% translate taxes faq %}

    {% translate taxestxt1 faq %}

    - {% translate illegalactivities faq %} + {% translate illegalactivities faq %}

    {% translate illegalactivitiestxt1 faq %}

    {% translate illegalactivitiestxt2 faq %}

    @@ -155,51 +155,51 @@ dialogs:
    - {% translate bubble faq %} + {% translate bubble faq %}

    {% translate bubbletxt1 faq %}

    - {% translate whyvalue faq %} + {% translate whyvalue faq %}

    {% translate whyvaluetxt1 faq %}

    - {% translate ponzi faq %} + {% translate ponzi faq %}

    {% translate ponzitxt1 faq %}

    {% translate ponzitxt2 faq %}

    - {% translate creator faq %} + {% translate creator faq %}

    {% translate creatortxt1 faq %}

    {% translate creatortxt2 faq %}

    - {% translate worthless faq %} + {% translate worthless faq %}

    {% translate worthlesstxt1 faq %}

    - {% translate virtual faq %} + {% translate virtual faq %}

    {% translate virtualtxt1 faq %}

    - {% translate trust faq %} + {% translate trust faq %}

    {% translate trusttxt1 faq %}

    - {% translate anonymous faq %} + {% translate anonymous faq %}

    {% translate anonymoustxt1 faq %}

    {% translate anonymoustxt2 faq %}

    diff --git a/_templates/secure-your-wallet.html b/_templates/secure-your-wallet.html index 454aa98a..f98c565d 100755 --- a/_templates/secure-your-wallet.html +++ b/_templates/secure-your-wallet.html @@ -50,7 +50,7 @@ id: secure-your-wallet

    {% translate offlinetxt %}

    -

    {% translate offlinetx %}

    +

    {% translate offlinetx %}

    {% translate offlinetxtxt1 %}

    1. {% translate offlinetxtxt2 %}
    2. @@ -62,7 +62,7 @@ id: secure-your-wallet
      diff --git a/js/base.js b/js/base.js index 905df292..5eacc3db 100644 --- a/js/base.js +++ b/js/base.js @@ -90,15 +90,16 @@ for (var i = 0, nd = document.getElementsByTagName('*'), n = nd.length; i < n; i } } -function onTouchClick(e, callback) { +function onTouchClick(e, callback, callbackClick) { // Detect and handle clicks using click and touch events while preventing accidental or ghost clicks. var timeout = 1000, + srcEvent = e, touchEndListener = function(e) { // Call callback if touch events match the patterns of a click. removeEvent(t, 'touchend', touchEndListener); setClickTimeout(); if (Math.abs(e.changedTouches[0].pageX - x) > 20 || Math.abs(e.changedTouches[0].pageY - y) > 20) return; - callback(e); + callback(srcEvent); }, wrongClickListener = function(e) { // Cancel click events on different targets within timeframe. @@ -115,6 +116,7 @@ var timeout = 1000, var ti = document.body.getAttribute('data-touchtimeout'); return (ti === null || ti === '' || parseInt(ti, 10) < new Date().getTime()); }; +if (callbackClick === undefined) callbackClick = function() {}; // Apply appropriate actions according to each event type. switch (getEvent(e, 'type')) { case 'touchstart': @@ -131,8 +133,10 @@ switch (getEvent(e, 'type')) { break; case 'click': // Call callback on click in the absence of a recent touchstart event to prevent ghost clicks. + // Always call callbackClick to let it cancel click events on links. + callbackClick(srcEvent); if (!clickReady()) return; - callback(); + callback(srcEvent); break; } } @@ -143,6 +147,7 @@ var show = function() { var mm = document.getElementById('menusimple'); var ml = document.getElementById('langselect'); mm.style.display = ml.style.display = (mm.style.display == 'block') ? '' : 'block'; + addClass(mm, 'menutap'); cancelEvent(e); }; onTouchClick(e, show); @@ -154,14 +159,13 @@ var t = getEvent(e, 'target'), fn = (t.parentNode.className.indexOf('hover') === -1) ? addClass : removeClass, initHover = function() { if (t.nodeName != 'A') return; - if (fn == removeClass && t.parentNode.getElementsByTagName('UL').length == 0) return; + if (fn == removeClass && !hasSubItems(t)) return; var p = t; while (p.parentNode.nodeName == 'UL' || p.parentNode.nodeName == 'LI') p = p.parentNode; - addClass(p, 'menutap'); for (var i = 0, nds = p.getElementsByTagName('LI'), n = nds.length; i < n; i++) { if (nds[i] == t.parentNode) continue; removeClass(nds[i], 'active'); - if (nds[i].getElementsByTagName('UL').length > 0) continue; + if (hasSubItems(nds[i])) continue; removeClass(nds[i], 'hover'); } while (t != p) { @@ -171,8 +175,18 @@ var t = getEvent(e, 'target'), } t = t.parentNode; } + }, + hasSubItems = function(t) { + while (t.nodeName != 'LI') t = t.parentNode; + return (t.getElementsByTagName('UL').length > 0); + }, + // Prevent clicks on parent element links in the menu. + filterClick = function(e) { + var t = getEvent(e, 'target'); + if (t.nodeName != 'A') return; + if (hasSubItems(t)) cancelEvent(e); }; -onTouchClick(e, initHover); +onTouchClick(e, initHover, filterClick); } function addAnchorLinks() {