[FRAMEWORK] Xây dựng page Account Phần 11 (ok)

Like Post, Unlike Post

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\js\account-business.js

jQuery(document).ready(function($) {
  function account_activity_business_load(type) {
    $(".status").removeClass("d-none");
    $.ajax({
      url: app.ajaxUrl,
      type: "post",
      dataType: "text",
      data: {
        action: 'account_activity_load_list_' + type,
        token: $("#nonce_token").val()
      },
      success: function(output) {
        $(".tab-" + type + " .account-list-item").append(output);
        $(".status").addClass("d-none");
      }
    });
  }
  function account_get_tab_number(type = "activity") {
    $.ajax({
      url: app.ajaxUrl,
      type: "post",
      dataType: "text",
      data: {
        action: 'account_activity_get_tab_number',
        type: type,
        token: $("#nonce_token").val()
      },
      success: function(output) {
        if (output != "error") {
          const obj = JSON.parse(output, function(key, value) {
            $(".account-load-btn[data-id='" + key + "'] span").text(value);
          });
        }
      }
    });
  }
  function checkPhoneNumber(element) {
    var flag = false;
    var phone = $(element).val().trim();
    phone = phone.replace('(+84)', '0');
    phone = phone.replace('+84', '0');
    phone = phone.replace('0084', '0');
    phone = phone.replace(/ /g, '');
    if (phone != '') {
      var firstNumber = phone.substring(0, 1);
      if ((firstNumber == '0') && phone.length == 10) {
        if (phone.match(/^\d{10}/)) {
          flag = true;
        }
      }
    }
    return flag;
  }
  // ==
  account_activity_business_load("deal");
  account_get_tab_number();
  // ==
  $('body').on('click', '#change-acc', function(e) {
    const $this = $(this);
    const btnScan = $('#scan-voucher');
    const type = $this.attr('data-type');
    const userId = $this.attr('data-id');
    const tab_active = $(".tab-active").data("tab-id");
    $.ajax({
      url: app.ajaxUrl,
      type: "post",
      dataType: "text",
      data: {
        action: 'change_business_activity',
        token: $('#nonce_token').val(),
        type: type,
        id: userId,
      },
      beforeSend: function() {
        $(".account-list-item:not('.news') .col-6").not(".col-addnew").remove();
        $this.find('svg').addClass('spin');
      },
      success: function(response) {
        $(".menu-tab-account .li").not(".active").find("a").addClass("load");
        $this.find('svg').removeClass('spin');
        btnScan.toggle();
        if (type == 'activity') {
          account_get_tab_number("activity");
          $this.attr('data-type', 'business').find('span').text(app.business);
          $(".account-list-item .col-addnew").removeClass("d-none");
          account_activity_business_load(tab_active);
          $(".col-activity-event").remove();
          return;
        }
        $this.data('type', 'activity').find('span').text(app.activity);
        $(".account-list-item .col-addnew").addClass("d-none");
        account_get_tab_number("business");
        $(".menu-tab-account ul li:last-child,.tab-news").removeClass("d-none");
      },
      error: function() {
        $this.find('svg').removeClass('spin');
        alert('Error');
      }
    })
    return false;
  });
  // ==
  var exclude_img = [];
  var input_btn = 0;
  var xp = -1;
  $(document).on("click", ".add-image-btn", function(e) {
    let select = $(this).closest("form");
    input_btn++;
    select.find(".list-input-file").append("<input type='file' name='upload_files[]' id='filenumber" + input_btn + "' class='img_file upload_files' accept='.gif,.jpg,.jpeg,.png,' multiple/>");
    $("#filenumber" + input_btn).click();
  });
  $(document).on("change", ".upload_files", function(e) {
    let select = $(this).closest("form")
    files = e.target.files;
    filesLength = files.length;
    for (var i = 0; i < filesLength; i++) {
      var f = files[i];
      var res_ext = files[i].name.split(".");
      var img_or_video = res_ext[res_ext.length - 1];
      var fileReader = new FileReader();
      fileReader.name = f.name;
      fileReader.onload = function(e) {
        xp++;
        var file = e.target;
        select.find(".images-box").append("<div class='box preview-image'><div class='images-preview' style='background-image: url(" + e.target.result + ")'><button type='button' data-id='" + xp + "' class='remove-img btn-close' title='Remove'></button></div></div>");
      };
      fileReader.readAsDataURL(f);
    }
  });
  $(document).on("click", ".images-box .remove-img", function() {
    $(this).closest(".box").remove();
    exclude_img.push($(this).attr("data-id"));
  });
  // ==
  var is_busy = false;
  var add_deal_form = "#add-deal-form ";
  $(add_deal_form).submit(function() {
    if (is_busy == true) return;
    is_busy = true;
    var formData = new FormData(document.getElementById("add-deal-form"));
    formData.append('action', 'add_deal');
    formData.append('exclude_img', exclude_img);
    $.ajax({
      url: app.ajaxUrl,
      type: "post",
      contentType: false,
      processData: false,
      data: formData,
      success: function(output) {
        is_busy = false;
        if (output == "success") {
          $("#alert-success").modal("show");
          $("#add_deal_form").remove();
        }
      }
    });
    return false;
  });
  $(document).on("click", ".deal.add-favorite", function() {
    if (is_busy == true) return;
    is_busy = true;
    let select = $(this);
    $.ajax({
      url: app.ajaxUrl,
      type: "post",
      dataType: "text",
      data: {
        action: 'deal_favorite_process',
        id: $(this).data("id"),
        token: $(this).data("token"),
      },
      success: function(output) {
        $(".status").addClass("d-none");
        is_busy = false;
        if (output == "success") {
          select.toggleClass("added");
        }
      }
    })
  });
  $(".account-load-btn").click(function() {
    if ($(this).hasClass("load")) {
      let data_type = $(this).data("id");
      let account_type = $("#change-acc").data("type");
      account_activity_business_load(data_type);
      $(this).removeClass("load");
    }
  });
  $(".save-date-time").click(function() {
    let select = ".add-date-time ";
    let date = $(select + "input[name='date_']").val();
    let time_from = $(select + "input[name='time_from']").val();
    let time_to = $(select + "input[name='time_to']").val();
    if (time_to == null || time_from == null || date == "") {
      $(".date-time-message").html('<div class="alert alert-warning" role="alert">' + app.fill_infor + '</div>')
    } else {
      let date_time = date + ", " + time_from + " - " + time_to;
      $(".event-datetime-text").val(date_time);
      $(".add-date-time").modal("hide");
      $(".step-1").modal("show");
      $(".date-time-message").html("");
    }
  });
  var add_event_class_arr = ["event-datetime-text", "address-input", "description", "title", "phone"];
  $.each(add_event_class_arr, function(index, value) {
    $("#add-event-form ." + value).click(function() {
      $("#add-event-form  .step-1-message").html('');
    });
  });
  $(".add-event-btn").click(function() {
    $.each(add_event_class_arr, function(index, value) {
      if ($("#add-event-form ." + value).val() == "") {
        $("#add-event-form  .step-1-message").html('<div class="alert alert-warning" role="alert">' + app.fill_infor + '</div>');
        return;
      }
      if (!checkPhoneNumber("#add-event-form [name='phone']")) {
        $("#add-event-form .step-1-message").html('<div class="alert alert-warning" role="alert">' + app.phone_valid + '</div>');
        return;
      }
    });
  });
  $("#add-event-form").submit(function() {
    if (is_busy == true) return;
    is_busy = true;
    var formData = new FormData(document.getElementById("add-event-form"));
    formData.append('action', 'add_event');
    formData.append('exclude_img', exclude_img);
    $.ajax({
      url: app.ajaxUrl,
      type: "post",
      contentType: false,
      processData: false,
      data: formData,
      success: function(output) {
        is_busy = false;
        if (output == "success") {
          $("#add-market-success").modal("show");
          $("#add_event_form").remove();
        }
      }
    });
    return false;
  });
  $("#add-post-form").submit(function() {
    if (is_busy == true) return;
    is_busy = true;
    var formData = new FormData(document.getElementById("add-post-form"));
    formData.append('action', 'add_post');
    formData.append('exclude_img', exclude_img);
    $.ajax({
      url: app.ajaxUrl,
      type: "post",
      contentType: false,
      processData: false,
      data: formData,
      success: function(output) {
        is_busy = false;
        if (output == "success") {
          $("#add-market-success").modal("show");
          $("#add_event_form").remove();
        }
      }
    });
    return false;
  });
  $(".save-address").click(function() {
    let city_val = $(".province-select").val();
    let city_text = $(".province-select option:selected").text();
    let district_val = $(".district-select").val();
    let district_text = $(".district-select option:selected").text();
    let ward_val = $(".ward-select").val();
    let ward_text = $(".ward-select option:selected").text();
    let street_text = $(".street").val();
    if (city_val == null || district_val == null || ward_val == null || street_text == "") {
      $(".address-message").html('<div class="alert alert-warning" role="alert">' + app.fill_infor + '</div>')
    } else {
      let address = street_text + ", " + ward_text + ", " + district_text + ", " + city_text;
      $(".address-input").val(address);
      $(".add-adress").modal("hide");
      $(".step-1").modal("show");
      $(".address-message").html("");
    }
  });
  $(document).on("click", ".news.add-favorite", function() {
    if (is_busy == true) return;
    is_busy = true;
    let select = $(this);
    $.ajax({
      url: app.ajaxUrl,
      type: "post",
      dataType: "text",
      data: {
        action: 'news_favorite_process',
        post_id: $(this).data("id"),
        token: $("#nonce_token").val()
      },
      success: function(output) {
        if (output == "success") {
          select.toggleClass("added");
        }
        is_busy = false;
      }
    })
  });
});

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\ajax\news.php

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\ajax\account.php

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\models\post.php

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\views\post\item.php

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\inc\functions\function-setup.php

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\comments.php

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\ajax\business.php

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\views\post\add-post.php

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\controllers\Account.php

Last updated

Was this helpful?