|
- (function ($) {
- $(function () {
- /*_____________________________________________*/
- var template = $('#bts_feedback_card').html();
- for (var i=0;i<1;i++){
- var data = {id: i};
- var h = Mustache.render(template, data);
- $("#workspace").after(h);
- }
-
- $('input').click(function(){
- var d = $(this).closest('div.rate').attr('data-job-id');
- alert('job id =' + d + ' ' + $(this).attr('value'));
- });
-
-
- function get_my_jobs(){
- $.post(bts().ajax_url, { // POST request
- _ajax_nonce: bts().nonce, // nonce
- action: "list_job_by_client", // action
- start: get_start_date(),
- finish: get_finish_date(),
- }, function(response, status, xhr){
- if (response.status == "success"){
- //pre_process(response);
- load_client_jobs(response);
- }else{
- display_error(response);
- }
- });
- }
-
- //add extra info to response.jobs
- function pre_process(response)
- {
- var newjobs = [];
- $.each(response.jobs, function(idx, val){
-
- val.hl_start_date = get_hl_start_date(val.start);
- val.hl_start = get_hh_mm(val.start);
- val.hl_finish = get_hh_mm(val.finish);
-
- val.checked_1 = get_checked(1, val.rating);
- val.checked_2 = get_checked(2, val.rating);
- val.checked_3 = get_checked(3, val.rating);
- val.checked_4 = get_checked(4, val.rating);
- val.checked_5 = get_checked(5, val.rating);
-
- if (val.rating >=1 && val.rating<=5){
- val.rated= 'rated';
- }
-
- val.start_day = get_weekday_name(val.start);
- val.finish_day = get_weekday_name(val.finish);
- newjobs.push(val);
- });
- response.jobs = newjobs;
- }
-
- function get_hl_start_date(start)
- {
- var s = new Date(start);
- dd = s.getDate();
- if (dd< 10)
- dd = "0" + dd;
- m = s.getMonth() + 1;
- return dd +"/" + m;
- }
-
- function get_hh_mm(date){
- var s = new Date(date);
- var hh = s.getHours();
- var mm = s.getMinutes();
- if (hh<10)
- hh = "0" + hh;
- if (mm<10)
- mm = "0" + mm;
- return hh +":"+ mm ;
-
- }
-
- function get_checked(idx, rating)
- {
- if ( idx == rating)
- return "checked";
- else
- return "";
- }
-
- function load_client_jobs(response)
- {
- set_user_name_at_summary(response.client_name);
- var template = $('#bts_feedback_card').html();
- var html = Mustache.render(template, response);
- $("#workspace").after(html);
- }
-
- function set_user_name_at_summary(name){
- var title = '';
- if ( typeof name != 'undefined' && name != "")
- title = name + "'s Schedule";
- else
- title = "Service Schedule";
- $('.bts_client_name span').html(title);
- }
-
- function display_error()
- {
- err_message_box("Network Error", "Your Jobs for this week cannot be loaded, please try again later. For urgent job arrangement please contact <strong>Helen</strong> directly.");
- }
-
- function get_weekday_name(dateString)
- {
- var days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat'];
- var d = new Date(dateString);
- var dayName = days[d.getDay()];
- return dayName;
- }
-
- function format_date(date){
- var dd = date.getDate();
- var mm = date.getMonth() + 1; //January is 0!
- var hh = date.getHours();
- var ii = date.getMinutes();
- var ss = date.getSeconds();
- var yyyy = date.getFullYear();
-
- if (dd < 10) {
- dd = '0' + dd;
- }
- if (mm < 10) {
- mm = '0' + mm;
- }
- if (hh< 10){
- hh = '0' + hh;
- }
- if (ii < 10){
- ii = '0' + ii;
- }
-
- if (ss <10 ){
- ss = '0' + ss;
- }
- return yyyy + '-' + mm + '-' +dd + " " +hh +":" + ii + ":" + ss;
- }
-
- function format_date_only(date){
- var dd = date.getDate();
- var mm = date.getMonth() + 1; //January is 0!
- var yyyy = date.getFullYear();
-
- if (dd < 10) {
- dd = '0' + dd;
- }
- if (mm < 10) {
- mm = '0' + mm;
- }
- return yyyy + '-' + mm + '-' +dd;
- }
-
- function get_this_week_start(){
- var curr = new Date; // get current date
- // First day is the day of the month - the day of the week
- var first = curr.getDate() - curr.getDay() + 1; //+1 we want Mon as first
- var last = first + 6; // last day is the first day + 6
-
- var firstday = new Date(curr.setDate(first)); //Mon
- firstday.setHours(0,0,0);
- return format_date(firstday);
- }
-
- function get_this_week_end(){
- var curr = new Date; // get current date
- // First day is the day of the month - the day of the week
- var first = curr.getDate() - curr.getDay() + 1; //+1 we want Mon as first
- var last = first + 6; // last day is the first day + 6
- var lastday = new Date(curr.setDate(last)); //Sat
- lastday.setHours(23,59,59);
- return format_date(lastday);
- }
-
- function get_start_date()
- {
- var b=feedback_card;
- if (b.bts_job_start != '')
- return b.bts_job_start + " 00:00:00";
- else
- return get_this_week_start();
- }
- function get_finish_date()
- {
- var b=feedback_card;
- if (b.bts_job_finish != '')
- return b.bts_job_finish +" 23:59:59";
- else
- return get_this_week_end();
- }
-
- function info_message_box(title, message)
- {
- message_box('.job_ok_box', title, message);
- }
-
- function err_message_box(title, message)
- {
- message_box('.job_error_box', title, message);
- }
-
- function message_box(selector, title,message)
- {
- set_modal_title(selector, title);
- set_modal_message(selector, message);
- $(selector + '_trigger').trigger('click');
- }
-
- function set_modal_title(selector, title)
- {
- var el = selector + ' .ult_modal-title ';
- $(el).html(title);
- }
-
- function set_modal_message(selector, msg)
- {
- var el = selector + ' .ult_modal-body ';
- $(el).html(msg);
- }
-
-
- function do_update_ack(id, rating)
- {
- $.post(bts().ajax_url, { // POST request
- _ajax_nonce: bts().nonce, // nonce
- action: "client_ack_job", // action
- job_id: id,
- rating: rating,
- }, function(response, status, xhr){
- if (response.status == "success"){
- display_job_ack(id, response.rating);
- }else{
- console.warn("%o", response);
- clear_job_ack(id);
- }
- });
- }
-
- function clear_job_ack(id)
- {
- display_job_ack(id, 0); //clear it
- }
- function display_job_ack(id, rating)
- {
- for (var i=1; i<=5; i++){
- var selector = 'star' + i + '_' + id;
- $(selector).prop('checked',(rating == i));
- }
- if (rating >=1 && rating <=5){
- $('#container_' + id).addClass('rated');
- }else{
- $('#container_' + id).removeClass('rated');
- }
- }
-
- $(document).on('click', '.card input[type="radio"]', function(){
- var job_id = $(this).closest('div.rate').attr('data-job-id');
- var rating = $(this).attr('value');
- do_update_ack(job_id, rating);
- });
-
-
- get_my_jobs();
-
- /*_____________________________________________*/
- });
- })(jQuery);
-
|