diff --git a/css/xeroc.css b/css/xeroc.css index bd458fd..ef77b20 100644 --- a/css/xeroc.css +++ b/css/xeroc.css @@ -189,3 +189,28 @@ td.invoice_summary{ td.invoice_summary_header{ background-color: #ededed; } + +.select_client_check_box span.client_name{ + color: grey; + font-size: 1.1em; +} +.select_client_check_box span.ticon{ + color: lightgrey; + font-size: 2em; + padding-right: 10px; + font-weight: 900; +} +.select_client_check_box input:checked+span.ticon{ + color:red; +} +.select_client_check_box input:checked+span.ticon + span{ + color:black; + font-weight:900; +} + +#checkall_clients { + font-size: 1.5em; + padding-top: 20px; + padding-bottom: 20px; +} + diff --git a/js/xeroc.js b/js/xeroc.js index f896fbf..5795f76 100644 --- a/js/xeroc.js +++ b/js/xeroc.js @@ -31,7 +31,6 @@ function on_download_ndis_csv (){} return "

Sync to Xero

"; } - function display_hour_lines(response) { $('#staff').html(''); @@ -339,26 +338,24 @@ function on_download_ndis_csv (){} } function setup_clients_pick() { - var options = {}; - console.log(get_template('#select_ndis_client')); - options.id = "{{id}}"; - console.log(get_template('#select_ndis_client', options)); - options.remove_class = "hidden"; - console.log(get_template('#select_ndis_client', options)); - options.remove_classes= ['hidden', 'bts_template']; - console.log(get_template('#select_ndis_client', options)); - options.begin="{{#data}}"; - console.log(get_template('#select_ndis_client', options)); - options.end="{{/data}}"; - console.log(get_template('#select_ndis_client', options)); - options.add_classes=["clas1", "clas2", "class3"]; - console.log(get_template('#select_ndis_client', options)); - options.add_class="addclas1"; - console.log(get_template('#select_ndis_client', options)); - - return; show_loading_client(); - $('div.clientlist div.peopleitem').remove(); //clear it + $('.select_client_check_box').remove(); + var options = { + remove_classes: ['hidden', 'bts_template'], + begin:"{{#users}}", + end: "{{/users}}", + add_classes:['select_client_check_box', "c{{login}}"], + id : "s_{{login}}", + data: { + 'data-account' : "{{account}}", + 'data-login' : "{{login}}", + 'data-first' : "{{firstname}}", + 'data-display': "{{display_name}}", + 'data-last': "{{lastname}}", + } + }; + var template = get_template('#select_ndis_client', options); + console.log(template); $.post(bts().ajax_url, { // POST request _ajax_nonce: bts().nonce, // nonce action: "list_client", // action @@ -366,20 +363,32 @@ function on_download_ndis_csv (){} if (response.status =='success'){ bts().client = response.users; bts().client_map = {}; + hide_loading_client(); response.users.forEach(function(u){ bts().client_map[u.login] = u; - hide_loading_client(); - var html = bts_client_html(u); - jQuery('div.clientlist').append(html); - new People("#p" + u.login, '#client_item' ,u); + if (u.payment != 'invoice') + u.ndis_checked ="checked"; }); + var html = Mustache.render(template,response); + $('#select_ndis_client').after(html); }else{ alert('error getting Client list'); } }); - - } + function get_checked_ndis_clients() + { + var clients=[]; + $('.select_client_check_box input.client_check').each(function(){ + if( $(this).prop('checked') ){ + clients.push($(this).data().login); + } + }); + return clients; + }; + + function show_loading_client(){}; + function hide_loading_client(){}; function get_template(id, options) { @@ -418,7 +427,14 @@ function on_download_ndis_csv (){} if (typeof options.id !='undefined') { el.attr('id', options.id); - } + } + + if (typeof options.data != 'undefined'){ + Object.keys(options.data).forEach(function(key,i){ + el.attr(key, options.data[key]); + }); + } + html = el.allHTML(); if (typeof options.begin != 'undefined' && options.begin != '') { @@ -440,19 +456,27 @@ function on_download_ndis_csv (){} $('input[name="finish"]').attr('value', val); }); + $('#checkall').click(function(){ + var val = $(this).prop('checked'); + $('input.client_check').prop('checked', val); + + }); + + function do_download_ndis(){ var form = $('#ndis'); + $('#ndis input.dynamic').remove(); - var clients = ["client1", "client2", "client3", "client4"]; - clients.forEach(function(e,i){ - if ( $('#e' + i).length == 0 ){ - var input = $(''); + var clients = get_checked_ndis_clients(); + if ( clients.length > 0 ){ + clients.forEach(function(e,i){ + var input = $(''); form.append(input); - }else{ - $('#e' + i).attr('value', e); - } - }); - form.submit(); + }); + form.submit(); + }else{ + alert("Please select one or more client"); + } } datebox(); diff --git a/ts.php b/ts.php index 79c7fc0..ddb2356 100644 --- a/ts.php +++ b/ts.php @@ -799,7 +799,7 @@ ZOT; if (! empty($client)){ $response['status'] = 'success'; foreach( $client as $s){ - $response['users'][] = array( + $data_item = array( 'login' => $s->user_login, 'firstname'=> $s->first_name, 'lastname'=> $s->last_name, @@ -808,10 +808,11 @@ ZOT; 'email'=> $s->user_email, 'account'=> get_user_meta($s->ID, 'account', true), 'address' => get_user_meta($s->ID, 'address', true), - 'paymemt'=>get_user_meta($s->ID, 'payment', true), + 'payment'=>get_user_meta($s->ID, 'payment', true), 'rating'=> 0, 'unconfirmedjob'=> 0, - ); + ); + $response['users'][] = $data_item; } } wp_send_json($response);