anchor.diff:  section.col-xs-12.content(ng-controller="HistoryCtrl")
   
  -  //- Disconnected
  -
  -  group.disconnected(ng-hide="connected")
  -    p.literal(l10n) You have to be online to see this screen
  -
  -  group.disconnected(ng-hide="!connected || loadState.transactions || (!loadingAccount && !account.Balance && loadState.account)")
  +  group.disconnected(ng-hide="loadState.transactions || (!loadingAccount && !account.Balance && loadState.account)")
       div(id="section_loader")
         img(src="img/sections.png", class="loader")
         div(class="loading_sections", l10n) Loading History
   
     //- Account is unfunded
  -  div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected")
  +  div(ng-show="loadState.transactions && !account.Balance")
       include banner/unfunded
       p.literal(l10n) Your account history is empty
   
     //- Connected
   
  -  group.row(ng-show="connected && loadState.transactions && account.Balance")
  +  group.row(ng-show="loadState.transactions && historyShow.length")
       .filters.row-padding-small.col-lg-3.col-md-4.col-sm-5.col-xs-12
         .filter.type-filter.row
           .col-xs-12.filters-wrapper
  
positive.code: 
      .transactions.col-lg-9.col-md-8.col-sm-7.col-xs-12
        .head.row.hidden-xs
          .col-md-9.hidden-sm
            .type
            .i
            .dt(l10n) Date
            .desc(l10n) Description
          .visible-sm.col-sm-5
          .col-md-3.col-sm-7.export-btn-wrapper.text-right
            a#csv.btn.btn-primary.btn-block.btn-sm(href='', ng-click='exportCsv()', rp-download='historyCsv', rp-download-csv='true', rp-download-filename='ripple_historic.csv', l10n) Export to CSV
        .message(ng-hide="historyState=='loading' || historyShow", l10n)
          | Sorry, no transactions match your current filter.
        .head.row.visible-xs
          .col-xs-12.export-btn-wrapper.text-right
            a#csv.btn.btn-primary.btn-block.btn-sm(href='', ng-click='exportCsv()', rp-download='historyCsv', rp-download-csv='true', rp-download-filename='ripple_historic.csv', l10n) Export to CSV
        ul
          li(class="{{entry.transaction.type}}", ng-repeat="entry in historyShow track by entry.hash"
              ng-click='details[entry.hash] = !details[entry.hash]'
              ng-class="{open: details[entry.hash]}"
              ng-class-odd="'odd'"
              rp-pretty-amount-date="entry.dateRaw")
            div
              span.type &nbsp;
              span.i(ng-hide="entry.details")
                i.fa.fa-arrow-down(ng-show="entry.transaction.type=='received'")
                i.fa.fa-arrow-up(ng-show="entry.transaction.type=='sent'")
                i.fa.fa-download.fa-rotate-90(ng-show="entry.transaction.type=='trusted'")
                i.fa.fa-download.fa-rotate-270(ng-show="entry.transaction.type=='trusting'")
                i.fa.fa-exchange(ng-show="!entry.transaction.type || entry.transaction.type=='offernew' || entry.transaction.type=='offercancel' || entry.transaction.type=='exchange' || entry.transaction.type=='rippling'")
                i.fa.fa-cogs(ng-show="entry.transaction.type=='accountset'")
                i.fa.fa-exclamation-triangle(ng-show="entry.transaction.type=='failed'")
              span.i(ng-show="entry.details")
                i.fa.fa-arrow-down
              span.dt {{entry.date | date:'EEE, MMM d, h:mm:ss a'}}&#32;
              span.desc(ng-hide="entry.details", ng-switch on="entry.transaction.type")
                span(ng-switch-when="sent")
                  span(l10n, rp-span-spacing) You sent
                    span.amount(rp-pretty-amount-high-precision="entry.transaction.amountSent || entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amountSent || entry.transaction.amount")
                    | to
                    span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty")
                  != require("./history/effects.jade")()
                span(ng-switch-when="received")
                  span(l10n, rp-span-spacing)
                    span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty")
                    | sent you
                    span.amount(rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount")
                  != require("./history/effects.jade")()
                span(ng-switch-when="exchange")
                  span(l10n, rp-span-spacing) You requested to exchange
                    span.amount(rp-pretty-amount="entry.transaction.spent", rp-address-popover, rp-address-popover-sum="entry.transaction.spent")
                    | to
                    span.amount(rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount")
                  != require("./history/effects.jade")()
                span(ng-switch-when="trusted")
                  span(l10n, rp-span-spacing)
                    span.address(title="{{entry.transaction.counterparty}}") {{entry.transaction.counterparty | rpcontactname}}
                    | now trusts you for
                    span.amount(rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount")
                  != require("./history/effects.jade")()
                span(ng-switch-when="trusting")
                  span(l10n, rp-span-spacing) You have now connected to the gateway&#32;
                    span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty")
                    span(ng-show="globalOptions.advanced_feature_switch", l10n-inc) &#32;for&#32;
                    span.amount(ng-show="globalOptions.advanced_feature_switch", rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount")
                    | .
                  != require("./history/effects.jade")()
                span(ng-switch-when="offernew")
                  span(ng-show="entry.transaction.sell", l10n, rp-span-spacing) You created an order to sell
                    span.amount(rp-pretty-amount-high-precision="entry.transaction.gets", rp-address-popover, rp-address-popover-sum="entry.transaction.gets")
                    | for
                    span.amount(rp-pretty-amount-high-precision="entry.transaction.pays", rp-address-popover, rp-address-popover-sum="entry.transaction.pays")
                  span(ng-hide="entry.transaction.sell", l10n, rp-span-spacing) You created an order to buy
                    span.amount(rp-pretty-amount-high-precision="entry.transaction.pays", rp-address-popover, rp-address-popover-sum="entry.transaction.pays")
                    | for
                    span.amount(rp-pretty-amount-high-precision="entry.transaction.gets", rp-address-popover, rp-address-popover-sum="entry.transaction.gets")
                  != require("./history/effects.jade")()
                span(ng-switch-when="offercancel")
                  span(l10n, rp-span-spacing) You cancelled an order accepting&#32;
                    span.amount(rp-pretty-amount-high-precision="entry.transaction.pays", rp-address-popover, rp-address-popover-sum="entry.transaction.pays")
                    | for
                    span.amount(rp-pretty-amount-high-precision="entry.transaction.gets", rp-address-popover, rp-address-popover-sum="entry.transaction.gets")
                  != require("./history/effects.jade")()
                span(ng-switch-when="accountset")
                  span(l10n) Account details have been changed
                  != require("./history/effects.jade")()
                span(ng-switch-when="rippling")
                  span(l10n) Rippling
                  != require("./history/effects.jade")()
                span(ng-switch-when="failed", l10n) Failed transaction
                span(ng-switch-when="error")
                  strong(l10n) Unknown transaction
                  ul.effects(rp-if="details[entry.hash]")
                    li
                      span(l10n) The client failed to parse this transaction. The developers have been notified of the issue.
                span(ng-switch-default)
                  != require("./history/effects.jade")()
              span.desc(ng-show="entry.details", ng-switch on="entry.details.type")
                span(ng-switch-when="giveaway")
                  span(l10n, rp-span-spacing)
  
negative.code:                   |  using {{entry.details.app.name}}
                  != require("./history/effects.jade")()
  
              .details(ng-if="details[entry.hash]")
                .effects(ng-show="entry.balanceEffects")
                  .title(l10n) Balance Changes
                  .effect.header
                    span.description(l10n) Description
                    span.issuer(l10n, ng-show="entry.balanceEffects | rpAmountHasIssuer") Issuer
                    span.amount(l10n) Amount
                    span.balance(l10n) Final balance
                  .effect(ng-repeat="effect in entry.balanceEffects")
                    span.description
                      span(ng-show="effect.type == 'balance_change'", data-label="Description", l10n) XRP Balance Change
                      span(ng-show="effect.type == 'trust_change_balance'", data-label="Description", l10n) {{effect.currency}} Balance Change
                      span(ng-show="effect.type == 'fee'", data-label="Description", l10n) Fee
                    span.issuer(
                      ng-show="entry.balanceEffects | rpAmountHasIssuer"
                      rp-pretty-issuer="effect.amount.issuer().to_json()"
                      rp-pretty-issuer-contacts="userBlob.data.contacts"
                      rp-pretty-issuer-default="-"
                      data-label="Issuer"
                    )
                    span.amount(data-label="Amount", rp-pretty-amount="effect.amount", rp-address-popover, rp-address-popover-sum="effect.amount")
                    span.balance(data-label="Final balance", rp-pretty-amount="effect.balance", rp-address-popover, rp-address-popover-sum="effect.balance")
                .links
                  a.txLink(rp-link-tx="entry.hash", l10n) Transaction details
                  a.addLink(href="#/contact?to={{entry.transaction.counterparty}}", rp-no-propagate
                    ng-show="entry.transaction.counterparty && !(entry.transaction.counterparty | rponlycontactname)", l10n)
                    | Add
                    strong  {{entry.transaction.counterparty | rpcontactname}}
                    |  to contact list
        .foot
          div(ng-show="historyState=='loading'", l10n)
            img(src="img/button-s.png", class="loader", id="button_loader")
  