Sunda Cyber Army


* Sunda Cyber Army 2k17 *
Indonesia Defacer ~


Path : /home/dent/public_html/accounts/configurator/js/angular/
File Upload :
Current File : /home/dent/public_html/accounts/configurator/js/angular/controllers.js

/* Controllers */
var scope;
var showTable;
var modalInstance;
var configuratorApp = angular.module('configuratorApp', ['ui.bootstrap']);
configuratorApp.controller('ConfiguratorCtrl', ['$scope', '$window', '$modal', function ($scope, $window, $modal) {
  if (scope == null)
    scope = $scope;

  $scope.openModal = function () {
    modalInstance = $modal.open({
      templateUrl: 'form.html',
      controller: ModalInstanceCtrl,
      scope: $scope,
      dialogClass: 'modal form'
    });
  }

  $scope.closeModal = function () {
    modalInstance.dismiss('cancel');
  }
}]);


function angularUpdate(parts) {
  if(system != 4){
    var summaryParts = new Array();
    for (var i = 0; i < parts.length; i++) {
      var part = partsContainer.getChildByName(parts[i]);
      
      var found = false;
      for (var j = 0; j < summaryParts.length; j++) {
        if (summaryParts[j].sku == part.partData.sku) {
          summaryParts[j].quantity++;
          found = true;
          break;
        }
        
      }
      if (!found) {
        summaryParts.push(summaryEntry(part.partData));
      }
    }
    scope.showTable = showTable;
    scope.parts = summaryParts;
    scope.$apply();
  }else{
    angularMPASUpdate(parts);
  }
}

function angularMPASUpdate(parts) {
  let summaryParts = [];
  let found = [];
  let addedParts = {};
  for (var i = 0; i < parts.length; i++) {
    let part = partsContainer.getChildByName(parts[i]).partData;
    if(found.includes(part.sku)){
      let j = found.indexOf(part.sku);
      summaryParts[j].quantity++;
      if(addedParts.hasOwnProperty(part.sku)){
        let k = found.indexOf(addedParts[part.sku]);
        summaryParts[k].quantity +=2;
      }
    }else{
      summaryParts.push(summaryEntry(part));
      found.push(part.sku);
      if(part.ladder){
        switch (part.sku) {
          case "MPASSW2":
            summaryParts.push(summaryEntry({
              sku: "MPASHR2",
              gsku: "MPASHR2",
              description: "36.5\"H Stair Handrails",
              quantity: 2
            }));
            found.push("MPASHR2");
            addedParts[part.sku] = "MPASHR2";
            break;
          case "MPASSW3":
            summaryParts.push(summaryEntry({
              sku: "MPASHR3",
              gsku: "MPASHR3",
              description: "36.5\"H Stair Handrails",
              quantity: 2
            }));
            found.push("MPASHR3");
            addedParts[part.sku] = "MPASHR3";
            break;
          case "MPASSW4":
            summaryParts.push(summaryEntry({
              sku: "MPASHR4",
              gsku: "MPASHR4",
              description: "36.5\"H Stair Handrails",
              quantity: 2
            }));
            found.push("MPASHR4");
            addedParts[part.sku] = "MPASHR4";
            break;
          case "MPASSW5":
            summaryParts.push(summaryEntry({
              sku: "MPASHR5",
              gsku: "MPASHR5",
              description: "36.5\"H Stair Handrails",
              quantity: 2
            }));
            found.push("MPASHR5");
            addedParts[part.sku] = "MPASHR5";
            break;
          case "MPASSW6":
            summaryParts.push(summaryEntry({
              sku: "MPASHR6",
              gsku: "MPASHR6",
              description: "36.5\"H Stair Handrails",
              quantity: 2
            }));
            found.push("MPASHR6");
            addedParts[part.sku] = "MPASHR6";
            break;
          case "MPASSW7":
            summaryParts.push(summaryEntry({
              sku: "MPASHR7",
              gsku: "MPASHR7",
              description: "36.5\"H Stair Handrails",
              quantity: 2
            }));
            found.push("MPASHR7");
            addedParts[part.sku] = "MPASHR7";
            break;
          case "MPASSW8":
            summaryParts.push(summaryEntry({
              sku: "MPASHR8",
              gsku: "MPASHR8",
              description: "36.5\"H Stair Handrails",
              quantity: 2
            }));
            found.push("MPASHR8");
            addedParts[part.sku] = "MPASHR8";
            break;
          case "MPASSW9":
            summaryParts.push(summaryEntry({
              sku: "MPASHR9",
              gsku: "MPASHR9",
              description: "36.5\"H Stair Handrails",
              quantity: 2
            }));
            found.push("MPASHR9");
            addedParts[part.sku] = "MPASHR9";
            break;
      
        }
      }
    }
    if(part.bridgeSpan){
      let bar = (part.bridgeHeight/10)+1;
      let elem ={
        sku: `MPASST${bar}`,
            gsku: `MPASST${bar}`,
            description: `${(bar*10)-bar}\"H platform support legs`,
            quantity: 2
      }
      if(found.includes(elem.sku))
      {
        let k = found.indexOf(elem.sku);
        summaryParts[k].quantity +=2;
      }
      else{
        summaryParts.push(summaryEntry(elem));
        found.push(elem.sku);
      }
    }
  }
  scope.showTable = showTable;
  scope.parts = summaryParts;
  scope.$apply();

}

var ModalInstanceCtrl = function ($scope, $modalInstance) {
  $scope.renderPrintView = function () {
    var printWindow = window.open("", "MsgWindow", "width=960,height=960");
    printWindow.document.write("<link rel='stylesheet' type='text/css' href='css/bootstrap.min.css'><div class='row'><img style='display: block; margin-left: auto; margin-right: auto' src='assets/UDesignLogo.jpg'></div><BR><div class='container'><h4 align='center'>Components in Configuration</h4><div class='container'><table class='table table-bordered table-responsive'><tr><th>Tri-Arc Part #</th><th>Quantity</th><th>Description</th></tr>");
    for (var i = 0; i < scope.parts.length; i++) {
      printWindow.document.write("<tr><td>" + scope.parts[i].sku + "</td><td>" + scope.parts[i].quantity + "</td><td>" + scope.parts[i].description + "</td></tr>");
    }
    printWindow.document.write("</table></div></div><div class='row'><div class='col-sm-12'><table class='table table-responsive'><tr><td><img src='assets/TriArcLogo.jpg'></td><td></td><td></td></table></div></div>")
    printWindow.document.write("<img src='" + scope.imageData + "'>")
    if(system!=4){
      printWindow.document.write("<img src='" + scope.overviewImage + "'>")
    }
    printWindow.document.focus();
    printWindow.print();
  };
}

function summaryEntry(partData) {
  var entry = {
    sku: partData.sku,
    price: partData?.price ?? 0,
    gsku: partData.gsku,
    description: partData.description,
    quantity: partData?.quantity ?? 1,
    cost: partData?.price ?? 0
  };
  if(typeof treadType !== 'undefined'&& system == 4 && treadType == 'ss'){
    entry.sku = entry.sku+"-S";
  }
  return entry;
}

function exportImage() {
  focusCanvas();
  scope.imageData = stage.toDataURL();
  stage.update();
  if (system != 3)
    stage.addChild(TopDownView(true));
  else
    stage.addChild(MaxTopDownView(true));
  stage.update();
  scope.overviewImage = stage.toDataURL();
  scope.completed = true;
  restoreCanvas();
  if (!VENDOR) {
    scope.openModal();
    scope.$apply();
  }
  else {
    var printWindow = window.open("", "MsgWindow", "width=960,height=960");
    printWindow.document.write("<link rel='stylesheet' type='text/css' href='css/bootstrap.min.css'><div class='row'><img style='display: block; margin-left: auto; margin-right: auto' src='assets/UDesignLogo.jpg'></div><BR><div class='container'><h4 align='center'>Components in Configuration</h4><div class='container'><table class='table table-bordered table-responsive'><tr><th style='color:red;'>Grainger Stock No.</th><th>Tri-Arc Part #</th><th>Quantity</th><th>Description</th></tr>");
    for (var i = 0; i < scope.parts.length; i++) {
      printWindow.document.write("<tr><td style='color:red;'>" + scope.parts[i].gsku + "</td><td>" + scope.parts[i].sku + "</td><td>" + scope.parts[i].quantity + "</td><td>" + scope.parts[i].description + "</td></tr>");
    }
    printWindow.document.write("</table></div></div><div class='row'><div class='col-sm-12'><table class='table table-responsive'><tr><td><img src='assets/TriArcLogo.jpg'></td><td></td><td><img style='float:right' src='assets/GraingerLogo.jpg'></td></table></div></div>")
    printWindow.document.write("<img src='" + scope.imageData + "'>")
    printWindow.document.write("<img src='" + scope.overviewImage + "'>")
    printWindow.focus();
    printWindow.print();
    scope.$apply();
  }
}

function submitForm(form) {
  form.parts.value = "<table class='table table-bordered table-responsive'><tr><th>Tri-Arc Part #</th><th>Quantity</th><th>Description</th></tr>";
  for (var i = 0; i < scope.parts.length; i++) {
    form.parts.value += "<tr><td>" + scope.parts[i].sku + "</td><td>" + scope.parts[i].quantity + "</td><td>" + scope.parts[i].description + "</td></tr>";
  }
  form.parts.value += "</table>";
  form.image.value = scope.imageData;
  form.overviewImage.value = scope.overviewImage;
  if (form.name.value.length < 1 || form.company.value.length < 1 || form.email.value.length < 1 || form.phone.value.length < 1)
    return;
  $.ajax({
    url: 'https://tri-arc.com/configurator/mailer.php',
    method: 'POST',
    type: "json",
    data: {
      name: form.name.value,
      company: form.company.value,
      phone: form.phone.value,
      email: form.email.value,
      parts: form.parts.value,
      zipcode: form.zipcode.value,
      comments: form.comments.value,
      referrer: form.referrer.value,
      image: form.image.value,
      overviewImage: form.overviewImage.value
    },
    success: function (msg) {
      msg = JSON.parse(msg);
      if(msg.status == 'success') {
        alert("Email Sent");
      } else {
        alert("Something went wrong");
      }
    }
  });
}