root = exports ? this root.Qrammer = alert: (msg) -> alert(msg) confirm: (callback, content) -> content ||= 'Are you sure?' wrapper = $('') callback_wrapper = -> wrapper.modal('hide') callback() header = $('') .append('') .append('

Confirm

').appendTo(wrapper) body = $('').append('

'+content+'

').appendTo(wrapper) footer = $('') .append($('Close').click(-> wrapper.modal('hide'))) .append($('Yes').click(callback_wrapper)) .appendTo(wrapper) wrapper.modal() currency: (num) -> num = 0.0 if isNaN(num) || num == '' || num == null '€ ' + parseFloat(num).toFixed(2) clear_active_list: -> window.active_products_list = {} $('#active-order-table').hide() handle_response: (res) -> if(typeof(res) == 'string') return unless res.length if res[0] == '{' res = JSON.parse(res) else eval(res) return window.location = '/' if res['message'] && !res['ok'] window.location = '/user/active_list' if res['ok'] load_active_orders: () -> $.get('/supplier/active_orders.json', (res) -> body = $('#active-orders-table tbody') body.find('tr').remove() foot = $('#active-orders-table tfoot') if(!res.orders && !res.orders.length) alert('No orders in list'); return; for order in res.orders order_txts = [] row = $('').appendTo(body) process_btn = $('') process_callback = ( (ord) -> -> my_btn = $(this) $.post('/supplier/mark_order_in_process', {order_id: ord.id}, (res)-> my_btn.remove()) )(order) process_btn.click(process_callback) delivered_btn = $('') delivered_callback = ( (ord, r) -> -> my_btn = $(this) $.post('/supplier/order_is_delivered', {order_id: ord.id}, (res)-> r.slideUp('slow')) )(order, row) delivered_btn.click(delivered_callback) for product in order.products order_txts.push(product.name + ' (' + product['number'] + ')') row.append($('').text(order_txts.join(', '))) row.append($('').text(order.table_number)) row.append($('').html(Qrammer.currency(order.total_amount))) td_buttons = $('') td_buttons.append(process_btn).append(' ') if order.state == 'placed' td_buttons.append(delivered_btn) row.append(td_buttons) #foot.append(''+Qrammer.currency(res.total_amount)+''); ) load_active_lists: () -> $.get('/supplier/active_lists.json', (res) -> body = $('#active-lists-table tbody') body.find('tr').remove() foot = $('#active-lists-table tfoot') for list in res.lists order_txts = [] row = $('').appendTo(body) close_btn = $('') close_callback = ( (lst, r) -> -> my_btn = $(this) $.post('/supplier/close_list', {list_id: list._id}, (res)-> r.slideUp('slow')) )(list, row) close_btn.click(close_callback) needs_help_btn = $('') needs_help_callback = ( (lst, r) -> -> my_btn = $(this) $.post('/supplier/mark_list_as_helped', {list_id: list._id}, (res)-> my_btn.remove() ) )(list, row) needs_help_btn.click(needs_help_callback) icons_td = $('').appendTo(row) icons_td.append('').append(' ') if list.needs_help # or icon-bell icons_td.append('') if list.needs_payment row.append($('').text(list.table_number)) row.append($('').html(Qrammer.currency(list.total_amount))) td_buttons = $('') td_buttons.append(needs_help_btn).append(' ') if list.needs_help td_buttons.append(close_btn) row.append(td_buttons) #foot.append(''+Qrammer.currency(res.total_amount)+''); ) build_product_list_as_modal: -> wrapper = $('') callback_wrapper = -> wrapper.modal('hide') callback() header = $('') .append('') .append('

Product list

').appendTo(wrapper) body = $('') table = $('
').appendTo(body) tbody = $('').appendTo(table) for product_id, info of window.active_products_list row = $('').appendTo(tbody) row.append(''+info.product.name+'') row.append(''+info.number+'') row.append(''+Qrammer.currency(info.product.price * info.number)+'') body.appendTo(wrapper) footer = $('') .append($('Close').click(-> wrapper.modal('hide'))) .append($('Yes').click(callback_wrapper)) .appendTo(wrapper) wrapper.modal() jQuery.ajaxSetup 'beforeSend': (xhr) -> xhr.setRequestHeader("Accept", "text/javascript")