Changeset - efe90bd2d04e
[Not reviewed]
0 3 0
Bradley Kuhn (bkuhn) - 9 years ago 2015-03-09 15:46:16
bkuhn@ebb.org
Better animation effects when donate link clicked.

The banner always faded in/out, but now other texts can be designated
with the class 'donate-box-highlight' and those will fade out and fade
back in with bold and slightly larger font.
3 files changed with 16 insertions and 8 deletions:
0 comments (0 inline, 0 general)
www/conservancy/static/npoacct/index.html
Show inline comments
...
 
@@ -64,192 +64,192 @@ el.attachEvent('on'+ev, function() {handler.apply(el);});
 
        case 201:
 
            // WOO HOO! MONEY!
 
            // response.data.uri == URI of the bank account resource you
 
            // should store this bank account URI to later credit it
 
            console.log(response.data);
 
            var $form = $("#bank-account-form");
 
            // the uri is an opaque token referencing the tokenized bank account
 
            var bank_account_uri = response.data['uri'];
 
            // append the token as a hidden field to submit to the server
 
            $('<input>').attr({
 
               type: 'hidden',
 
               value: bank_account_uri,
 
               name: 'balancedBankAccountURI'
 
            }).appendTo($form);
 
            $form.attr({action: requestBinURL});
 
            $form.get(0).submit();
 
        break;
 
    default:
 
        console.log(response.status);
 
        }
 
    }
 
   //alert('allo?');
 

	
 
   var tokenizeInstrument = function(e) {
 
        alert('what"s going on?');
 
        e.preventDefault();
 
   
 
        var $form = $('#bank-account-form');
 
        var bankAccountData = {
 
            name: $form.find('.ba-name').val(),
 
            account_number: $form.find('.ba-an').val(),
 
            bank_code: $form.find('.ba-rn').val(),
 
            type: $form.find('select').val()
 
        };
 
 
 
 
 
        balanced.bankAccount.create(bankAccountData, responseCallbackHandler);
 
    };
 
   $('#bank-account-form').submit(tokenizeInstrument);
 
*/
 
</script>
 
-->
 
<h3>Support NPO Accounting Project Now!</h3>
 
$<span id="fundraiser-so-far">{{ fundgoal.fundraiser_so_far_amount|floatformat:0|intcomma }}</span> raised toward<br/>
 
our $<span id="fundraiser-goal">{{ fundgoal.fundraiser_goal_amount|floatformat:0|intcomma  }}</span> goal.<br/>
 
<div id="progressbar"><span id="fundraiser-percentage">(i.e., {{ fundgoal.percentage_there|floatformat:1 }}%)</span></div>
 
<p style="font-size: 75%">(Progress bar updated daily.)</p>
 
<a id="donate" style="text-decoration:none"></a>
 
<h3>Help us reach our goal:</h3>
 
<h3 class="donate-box-highlight">Help us reach our goal:</h3>
 

	
 
<!-- PayPal start -->
 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
 
<input type="hidden" name="cmd" value="_s-xclick">
 
<input type="hidden" name="hosted_button_id" value="3VRTJALJ5PQRW">
 
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" style="border:0" name="submit" alt="Donate Now!">
 
<img alt="" style="border:0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
 
</form>
 
<!-- PayPal end -->
 

	
 
<!-- Balanced start -
 
<div class="container">
 
- <form action="#" method="POST" id="bank-account-form" class="form-horizontal" onsubmit="balanced.card.create(cardData, function(response) { alert(response.status); });"> -
 
<form action="#" method="POST" id="bank-account-form" class="form-horizontal">
 
    <fieldset>
 
        <legend>Bank Account Information</legend>
 
        <p><label>Account Holder's Name
 
            <input type="text"
 
                   autocomplete="off"
 
                   placeholder="Bank Account Holder's name"
 
                   class="ba-name"
 
                   name="ba_name"
 
                   value="4111 1111 1111 1111">
 
        </label></p>
 
        <p><label>Routing Number
 
            <input type="text"
 
                   autocomplete="off"
 
                   placeholder="Routing Number"
 
                   class="ba-rn"
 
                   name="ba_rn"
 
                   value="4">
 
        </label></p>
 
        <p><label>Account Number
 
            <input type="text"
 
                   autocomplete="off"
 
                   placeholder="Account Number"
 
                   class="ba-an"
 
                   name="ba_an"
 
                   value="2014">
 
        </label></p>
 
        <p><label>Account Something
 
            <input type="text"
 
                   autocomplete="off"
 
                   placeholder="Account Something"
 
                   class="ba-as"
 
                   name="ba_as"
 
                   value="something someone">
 
        </label></p>
 
        <p><label>Account Type
 
            <select name="ba_type">
 
                <option value='' disabled selected style='display:none;'>
 
                    Select Account Type
 
                </option>
 
                <option value="checking" default>CHECKING</option>
 
                <option value="savings">SAVINGS</option>
 
            </select>
 
        </label></p>
 
        <button type="submit" class="btn">
 
            Tokenize
 
        </button>
 
    </fieldset>
 
</form>
 
</div>
 
<script type="text/javascript">
 

	
 
evbind(document.getElementById('bank-account-form'), 'submit',
 
  function(e) {
 
    e.preventDefault();
 
    console.log(this.ba_as.value);
 
    balanced.card.create(
 
 {
 
  "name": this.ba_as.value,
 
  "card_number": this.ba_name.value,
 
  "expiration_month": this.ba_rn.value,
 
  "expiration_year": this.ba_an.value,
 
/*
 
  "name": "Bernhard Riemann",                 // Optional
 
  "card_number": "4111 1111 1111 1111",
 
  "expiration_month": 4,
 
  "expiration_year": 2014,
 
*/
 
 },
 
    function(response) {
 
      console.log(response);
 
      console.log(response.data.uri);
 
      $.ajax("/campaign/?token=" + response.data.uri + '&amount=' + document.getElementById('bank-account-form').ba_an.value);
 
      alert(response.status);
 
    });
 
});
 

	
 
</script>
 
- Balanced end -->
 

	
 
<p>
 
Other donation methods:
 
  <span class="donate-box-highlight">Other donation methods:</span>
 
<div class="toggle-unit">
 
    <h4 class="toggle-control" data-text="Wire Transfer" 
 
    data-expanded-text="Wire Transfer:">Wire Transfer</h4>
 
    <div class="toggle-content">
 
        Please
 
            contact <a href="mailto:accounting@sfconservancy.org">Conservancy
 
            by email</a><br/> for wire transfer instructions.<br/>
 
            Please Include your currency and country.<br/>
 
    </div><!-- /.toggle-content -->
 
</div><!-- /.toggle.unit -->
 

	
 
<div class="toggle-unit">
 
    <h4 class="toggle-control" data-text="Paper Check" 
 
    data-expanded-text="Paper Check:">Paper Check</h4>
 
    <div class="toggle-content">
 
    Send paper check donations to:<br/>
 
    Software Freedom Conservancy, Inc.<br/>
 
    137 MONTAGUE ST  STE 380<br/>
 
    BROOKLYN, NY 11201-3548<br/>
 
    Please write <q>NPO ACCOUNTING</q> in the memo line. 
 
    </div><!-- /.toggle-content -->
 
</div><!-- /.toggle.unit -->
 

	
 
<!-- Flattr start -->
 
<p><a href="https://flattr.com/thing/1296704/NPOAcct-to-develop-Free-and-Open-Source-Non-Profit-Accounting-Software" target="_blank"><img src="https://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" style="border:0" /></a></p>
 
<!-- Flattr end -->
 
</td></tr></table>
 
</div>
 

	
 
<div class="content-with-donate-sidebar">
 
<!-- begin campaign text -->
 

	
 
<h2>Fundraising Campaign: Non-Profit Accounting Software</h2>
 

	
 
<img src="/img/conservancy-accounting-campaign-logo.png" alt="Conservancy accounting campaign logo" style="float:left;" />
 

	
 
<blockquote>
 
<p><strong>Update on 2014-12-03:</strong> As can be seen, Conservancy sadly
 
  never reached our fundraising target for this project.  However, as we
 
  promised below, we <a href="http://npoacct.sfconservancy.org/">continue to
 
  work on this project</a>.  We'd really appreciate more donations, as we've
 
  needed to make a lot of compromises in our plans since we didn't reach our
 
  fundraising goal.  We did complete Phase 0 described below
 
  (<a href="http://npoacct.sfconservancy.org/">results are on our wiki</a>),
 
  and Phase 1 now comprises the development of an REST API for double-entry
 
  accounting  which many applications (including this one) can use.</p>
 
</blockquote>
 
<br/>
www/conservancy/static/supporter-page.js
Show inline comments
...
 
@@ -14,100 +14,108 @@ $(document).ready(function() {
 
    var incrementSoFar = 0.00;
 

	
 
    $('span#fundraiser-percentage').text("");
 
    $('span#fundraiser-percentage').css({ 'color'        : 'green',
 
                                          'font-weight'  : 'bold',
 
                                          'float'        : 'right',
 
                                          'margin-right' : '40%',
 
                                          'margin-top'   : '2.5%',
 
                                          'text-align'   : 'inherit'});
 
    $("#progressbar").progressbar({ value:  curValue });
 

	
 
    function slowRise() {
 
        if (curValue >= percentage) {
 
            $('span#fundraiser-so-far').text(soFar);
 
            $("#progressbar").progressbar({ value :  percentage });
 
            $('span#fundraiser-percentage').text(percentage.toFixed(1) + "%");
 
        } else {
 
            var newVal = (curValue / 100.00) * noCommaGoal;
 
            $("#progressbar").progressbar({ value:  curValue });
 
            $('span#fundraiser-so-far').text(newVal.toLocaleString());
 
            curValue += 0.5;
 
            setTimeout(slowRise, 50);
 
        }
 
    }
 
    slowRise();
 

	
 
    $('.toggle-content').hide();
 

	
 
    $('.toggle-control')
 
     .addClass('clickable')
 
     .bind('click', function() {
 
        var $control = $(this);
 
        var $parent = $control.parents('.toggle-unit');
 

	
 
        $parent.toggleClass('expanded');
 
        $parent.find('.toggle-content').slideToggle();
 

	
 
        // if control has HTML5 data attributes, use to update text
 
        if ($parent.hasClass('expanded')) {
 
            $control.html($control.attr('data-expanded-text'));
 
        } else {
 
            $control.html($control.attr('data-text'));
 
        }
 
    });
 
    $('a.donate-now')
 
      .addClass('clickable')
 
      .bind('click', function() {
 
        var $control = $('#donate-box');
 
        var $otherTextControl = $('.donate-sidebar');
 

	
 
        setTimeout(function() { $control.find('.toggle-content').slideUp(100);
 
                                $control.toggleClass('expanded');
 
        $control.find('.toggle-content').slideUp("slow");
 
        $control.find('.toggle-content').slideDown("slow");
 
                                $control.find('.toggle-content').slideDown(800).fadeOut(10);
 
                                $otherTextControl.find('.donate-box-highlight').fadeOut(100);
 
                              }, 300);
 
          setTimeout(function() { $control.find('.toggle-content').fadeIn(2000);
 
                                  $otherTextControl.find('.donate-box-highlight')
 
                                  .css({'font-weight': 'bold', 'font-size' : '110%' });
 
                                  $otherTextControl.find('.donate-box-highlight').fadeIn(10000);
 
                                }, 500);
 
    });
 
    $(".t-shirt-size-selector").hide();
 
    $('input[name=on0]:radio').change(function() {
 
        var input=$(this);
 
        var tShirtSelector = input.parent().children('.t-shirt-size-selector')
 
        var noShippingSelector = input.parent().children('input#no_shipping');
 
        var value = input.val();
 
        if (value == "wantGiftYes") {
 
            tShirtSelector.show();
 
            noShippingSelector.val("2");
 
        } else {
 
            tShirtSelector.hide();
 
            noShippingSelector.val("0");
 
        }
 
    });
 

	
 
    // Forms start in "invalid" form, with the errors shown, so that
 
    // non-Javascript users see the errors by default and know what they must
 
    // enter.  The following two lines correct that.
 
    $('*#amount').addClass("valid");
 
    $('.supporter-form-inputs .form-error-show')
 
        .removeClass('form-error-show').addClass('form-error');
 
    $('.dinner-form-inputs .form-error-show')
 
        .removeClass('form-error-show').addClass('form-error');
 

	
 
    $('*#amount').on('input', function() {
 
        var input=$(this);
 
        var value = input.val();
 
        var errorElement=$("span#error", input.parent());
 
        var noCommaValue = value;
 
        noCommaValue = value.replace(/,/g, "");
 
        var re = /^((\d{1,3}(,?\d{3})*?(\.\d{0,2})?)|\d+(\.\d{0,2})?)$/;
 
        var isValid = ( re.test(value) &&
 
                        parseInt(noCommaValue) >= parseInt(input.attr("minimum")));
 
        if (isValid)  {
 
           input.removeClass("invalid").addClass("valid");
 
           errorElement.removeClass("form-error-show").addClass("form-error");
 
           $("#form-correction-needed").removeClass("form-error-show").addClass("form-error");
 
        }
 
        else {
 
            input.removeClass("valid").addClass("invalid");
 
            errorElement.removeClass("form-error").addClass("form-error-show");
 
        }
 
    });
 
    var validateFormAtSubmission = function(element, event) {
 
            var valid = element.hasClass("valid");
 
            if (! valid) {
 
                $("#form-correction-needed").removeClass("form-error").addClass("form-error-show")
www/conservancy/templates/base_compliance.html
Show inline comments
 
{% extends "base_conservancy.html" %}
 
{% load cache %}
 
{% load humanize %}
 
{% block head %}
 
<link href="/jquery-ui.css" rel="stylesheet" type="text/css"/>
 
<link href="/forms.css" rel="stylesheet" type="text/css"/>
 
<script type="text/javascript" src="/jquery.min.js"></script>
 
<script type="text/javascript" src="/jquery-ui.min.js"></script>
 
<script type="text/javascript" src="/supporter-page.js"></script>
 

	
 
{% endblock %}
 

	
 
{% block outercontent %}
 
<div class="donate-sidebar">
 
<table style="background-color:#afe478;width:100%;">
 
<tr><td style="text-align:center;padding:10px;padding-bottom:10px;">
 
<div id="donate-box" class="toggle-unit"><h1 class="toggle-content">Support
 
    Now!</h1></div>
 

	
 
<h3>Support GPL Compliance Now!</h3>
 

	
 
<p>Support our GPL compliance work now &amp; <strong>donations count double!</strong></p>
 
<p>Support our GPL compliance work now &amp; <span class="donate-box-highlight">donations count double!</span></p>
 

	
 
{% cache 3600 compliancedonation fundgoal.fundraiser_so_far_amount %}
 
$<span id="fundraiser-so-far">{{ fundgoal.fundraiser_so_far_amount|floatformat:0|intcomma }}</span>
 
of $<span id="fundraiser-goal">{{ fundgoal.fundraiser_goal_amount|floatformat:0|intcomma  }}</span> match met.<br/>
 
<div id="progressbar"><span id="fundraiser-percentage">(i.e., {{ fundgoal.percentage_there|floatformat:1 }}%)</span></div>
 
{% endcache %}
 

	
 
<p>Donate now via PayPal:
 
<p><span class="donate-box-highlight">Donate now via PayPal:</span>
 
</p>
 
<!-- PayPal start -->
 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
 
<input type="hidden" name="cmd" value="_s-xclick">
 
<input type="hidden" name="hosted_button_id" value="4ZKJN4F9BMFAS">
 
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" style="border:0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 
<img alt="" style="border:0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
 
</form>
 
<!-- PayPal end -->
 

	
 
<p>Or, <a href="/supporter/#annual"><strong>become a Conservancy
 
      Supporter</strong></a> (&mdash; a better option if you're donating more
 
<p>Or, <a href="/supporter/#annual"><span class="donate-box-highlight">become a Conservancy
 
      Supporter</span></a> (&mdash; a better option if you're donating more
 
      than $120, since you'll get a t-shirt!).</p>
 
</td></tr></table>
 
</div>
 
<div class="content-with-donate-sidebar">
 
    <div id="container">
 
         <div id="sidebar" class="{% block submenuselection %}other{% endblock %}">
 
            <h2>Our GPL {% block category %}Compliance{% endblock %} Work</h2>
 
            <ul>
 
            <li class="VMwareLawsuitAppeal"><a href="/linux-compliance/vmware-lawsuit-appeal.html">Stand Up For GPL!</a></li>
 
            <li><a href="/news/2015/mar/05/vmware-lawsuit/">VMware Lawsuit: Press Release</a></li>
 
            <li class="VMwareLawsuitFAQ"><a href="/linux-compliance/vmware-lawsuit-faq.html">
 
                <abbr title="Frequently Asked Questions">FAQ</abbr> on VMware Lawsuit</a></li>
 
            <li class="AboutCompliance"><a href="/linux-compliance/about.html">About GPL Compliance Project for Linux Developers</a></li>
 
            <li class="CopyleftOrg"><a href="https://copyleft.org/">copyleft.org</a></li>
 
            </ul>
 
         </div>
 
               <div id="mainContent">{% block content %}{% endblock %}
 
               </div>
 
</div></div>
 
{% endblock %}
0 comments (0 inline, 0 general)