diff --git a/static/js/bootstrap-alert.js b/static/js/bootstrap-alert.js new file mode 100644 index 0000000..4a65b13 --- /dev/null +++ b/static/js/bootstrap-alert.js @@ -0,0 +1,91 @@ +/* ========================================================== + * bootstrap-alert.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function ( el ) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype = { + + constructor: Alert + + , close: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.trigger('close') + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.removeClass('in') + + function removeElement() { + $parent.remove() + $parent.trigger('closed') + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}( window.jQuery ) diff --git a/static/js/deposit.js b/static/js/deposit.js new file mode 100644 index 0000000..8721d9e --- /dev/null +++ b/static/js/deposit.js @@ -0,0 +1,51 @@ +$(document).ready(function() { + function enable_all_customers() { + $("li.customer").each(function(i) { + $(this).removeClass("marked"); + $(this).show(); + }); + } + function filter_customers(typed) { + /* FIXME: Does not work well. */ + setTimeout(function() { + $("li.customer").each(function(i) { + if($(this).children("span.name").text().indexOf(typed) == -1) { + $(this).hide(); + $(this).removeClass("marked"); + } else { + $(this).show(); + } + /* Full match */ + if($(this).children("span.name").text() == typed) { + $(this).addClass("marked"); + } + }); + }, 50); + } + /* Customer search */ + $('.typeahead').typeahead(); + $('#id_customer_name').keydown(function(event) { + filter_customers(event.srcElement.value); + }); + /* Customer selection */ + $("li.customer").click( function() { + enable_all_customers(); + /* Disable the customer button just clicked */ + $(this).addClass("marked"); + /* Update the typeahead field */ + var username = $(this).children("span.name").text() + $("#id_customer_typeahead").val(username); + /* Update the select field */ + var id = $(this).children("span.id").text() + $("#id_user option").removeAttr('selected'); + $("#id_user option[value="+id+"]").attr('selected','selected'); + }); + /* Hide alert messages */ + $("a[data-dismiss=alert]").click(function(){ + $(this).parent().parent().parent().slideUp(); + }); + setTimeout( function() { + $("a[data-dismiss=alert]").parent().parent().parent().slideUp(); + }, 5000); + +});