HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/sigedo-dev.allup.com.co/resources/js/views/userprograms.js
$(document).ready(function() {
  $("#institution_id").on("change", function(e) {
    getCovenants(e.target.value);
  });

  $("#covenant_id").on("change", function(e) {
    getCovenantprograms(e.target.value);
  });

  $("#covenantprogram_id").on("change", function(e) {
    getServices(e.target.value);
  });

  var route = window.location.href;
  route = route.split("/");
  if (
    route[3] == "userprograms" &&
    route[5] == "programs" &&
    route[7] == "edit"
  ) {
    var institution_id = document.getElementById("institution_id").value;
    var covenant_id = document.getElementById("covenant_id");
    covenant_id = covenant_id.getAttribute("current");
    var covenantprogram_id = document.getElementById("covenantprogram_id");
    covenantprogram_id = covenantprogram_id.getAttribute("current");
    var service_id = document.getElementById("service_id");
    service_id = service_id.getAttribute("current");

    var data = {
      covenant_id,
      covenantprogram_id,
      service_id,
    };
    getCovenants(institution_id, data);
  }

  function getData() {
    var institution_id = document.getElementById("institution_id").value;
    var covenant_id = document.getElementById("covenant_id").value;
    var covenantprogram_id = document.getElementById("covenantprogram_id")
      .value;
    var service_id = document.getElementById("service_id").value;
    var rotation_start_date = document.getElementById("rotation_start_date")
      .value;
    var rotation_end_date = document.getElementById("rotation_end_date").value;

    if (!institution_id || institution_id == 0) {
      Swal.fire({
        type: "error",
        title: "Oops...",
        text: Lang.get("fronjs.institution_required"),
      });
      return;
    }

    if (!covenant_id || covenant_id == 0) {
      Swal.fire({
        type: "error",
        title: "Oops...",
        text: Lang.get("fronjs.covenant_required"),
      });
      return;
    }

    if (!covenantprogram_id || covenantprogram_id == 0) {
      Swal.fire({
        type: "error",
        title: "Oops...",
        text: Lang.get("fronjs.covenantprogram_required"),
      });
      return;
    }

    if (!service_id || service_id == 0) {
      Swal.fire({
        type: "error",
        title: "Oops...",
        text: Lang.get("fronjs.services_required"),
      });
      return;
    }

    var data = {
      institution_id,
      covenant_id,
      covenantprogram_id,
      service_id,
      rotation_start_date,
      rotation_end_date,
    };

    return data;
  }

  $("#button_create").on("click", function(e) {
    e.preventDefault();

    if ((data = getData())) {
      var user_id = $("#form_create").attr("user_id");
      data.user_id = user_id;
      Swal.fire({
        title: Lang.get("fronjs.title_create"),
        text: Lang.get("fronjs.text_create"),
        type: "warning",
        showCancelButton: true,
        confirmButtonColor: "#3085d6",
        cancelButtonColor: "#d33",
        confirmButtonText: Lang.get("fronjs.yes"),
        cancelButtonText: Lang.get("fronjs.not"),
      }).then((result) => {
        if (result.value) {
          var laddaBtn = e.currentTarget;
          var ladda = Ladda.create(laddaBtn);
          ladda.start();
          $.ajax({
            url: "/userprograms/" + user_id + "/programs",
            type: "POST",
            dataType: "json",
            contentType: "application/json",
            data: JSON.stringify(data),
            success: function(response) {
              ladda.stop();
              if (response.status) {
                Swal.fire({
                  type: response.type,
                  title: response.title,
                  text: response.message,
                  showConfirmButton: true,
                }).then((val) => {
                  $(location).attr(
                    "href",
                    "/userprograms/" + user_id + "/programs"
                  );
                });
              } else {
                Swal.fire({
                  type: response.type,
                  title: response.title,
                  text: response.message,
                });
              }
            },
          });
        }
      });
    }
  });

  $("#button_update").on("click", function(e) {
    e.preventDefault();
    var data = getData();
    if (data) {
      var user_id = $("#form_edit").attr("user_id");
      data.user_id = user_id;
      var userprogram_id = $("#form_edit").attr("userprogram_id");
      const newData = Object.assign(
        { _method: $("input[name=_method]").val() },
        data
      );

      Swal.fire({
        title: Lang.get("fronjs.title_update"),
        text: Lang.get("fronjs.text_update"),
        type: "warning",
        showCancelButton: true,
        confirmButtonColor: "#3085d6",
        cancelButtonColor: "#d33",
        confirmButtonText: Lang.get("fronjs.yes"),
        cancelButtonText: Lang.get("fronjs.not"),
      }).then((result) => {
        if (result.value) {
          var laddaBtn = e.currentTarget;
          var ladda = Ladda.create(laddaBtn);
          ladda.start();
          $.ajax({
            url:
              "/userprograms/" +
              user_id +
              "/programs/" +
              userprogram_id +
              "/edit",
            type: "POST",
            dataType: "json",
            contentType: "application/json",
            data: JSON.stringify(newData),
            success: function(response) {
              ladda.stop();
              if (response.status) {
                Swal.fire({
                  type: response.type,
                  title: response.title,
                  text: response.message,
                  showConfirmButton: true,
                }).then((val) => {
                  $(location).attr(
                    "href",
                    "/userprograms/" + user_id + "/programs"
                  );
                });
              } else {
                Swal.fire({
                  type: response.type,
                  title: response.title,
                  text: response.message,
                });
              }
            },
          });
        }
      });
    }
  });
});

window.deleteRegistry = function(user_id, userprogram_id) {
  var data = {
    _method: "DELETE",
  };

  Swal.fire({
    title: Lang.get("fronjs.title_delete"),
    type: "warning",
    showCancelButton: true,
    confirmButtonColor: "#3085d6",
    cancelButtonColor: "#d33",
    confirmButtonText: Lang.get("fronjs.yes"),
    cancelButtonText: Lang.get("fronjs.not"),
    showLoaderOnConfirm: true,
    allowOutsideClick: false,
    allowEscapeKey: false,
    preConfirm: (login) => {
      return new Promise((resolve, reject) => {
        $.ajax({
          url: "/userprograms/" + userprogram_id + "/programs",
          type: "POST",
          dataType: "json",
          contentType: "application/json",
          data: JSON.stringify(data),
          success: function(response) {
            if (response.status) {
              Swal.fire({
                type: response.type,
                title: response.title,
                text: response.message,
                showConfirmButton: true,
              }).then((val) => {
                $(location).attr(
                  "href",
                  "/userprograms/" + user_id + "/programs"
                );
              });
            } else {
              Swal.fire({
                type: response.type,
                title: response.title,
                text: response.message,
              });
            }
          },
        });
      });
    },
  }).then((result) => {
    console.log(result);
  });
};

window.getCovenants = function(institution_id, data = false) {
  $("#covenant_id")
    .find("option")
    .remove()
    .end();
  $("#covenantprogram_id")
    .find("option")
    .remove()
    .end();
  $("#service_id")
    .find("option")
    .remove()
    .end();
  if (!institution_id || institution_id == 0) {
    return;
  }

  $.ajax({
    url: "/userprograms/listCovenants/" + institution_id,
    type: "GET",
    data: null,
    success: function(response) {
      if (response.status) {
        var covenants = response.data;
        $("#covenant_id").append(
          `<option value="0" disabled selected>${Lang.get(
            "fronjs.select"
          )}</option>`
        );
        for (var i = 0; i < covenants.length; i++) {
          $("#covenant_id").append(
            `<option value="${covenants[i].id}" ${
              data && data.covenant_id == covenants[i].id ? "selected" : ""
            }>${covenants[i].name}</option>`
          );
        }
        if (data) {
          getCovenantprograms(data.covenant_id, data);
        }
      } else {
        Swal.fire({
          type: response.type,
          title: response.title,
          text: response.message,
        });
      }
    },
  });
};

window.getCovenantprograms = function(covenant_id, data = false) {
  $("#covenantprogram_id")
    .find("option")
    .remove()
    .end();
  $("#service_id")
    .find("option")
    .remove()
    .end();
  if (!covenant_id || covenant_id == 0) {
    return;
  }

  $.ajax({
    url: "/userprograms/listCovenantprograms/" + covenant_id,
    type: "GET",
    data: null,
    success: function(response) {
      if (response.status) {
        var covenant = response.data;
        $("#covenantprogram_id").append(
          `<option value="0" disabled selected>${Lang.get(
            "fronjs.select"
          )}</option>`
        );
        for (var i = 0; i < covenant["covenantprograms"].length; i++) {
          $("#covenantprogram_id").append(
            `<option value="${covenant["covenantprograms"][i].id}" ${
              data &&
              data.covenantprogram_id == covenant["covenantprograms"][i].id
                ? "selected"
                : ""
            }>
            ${covenant["covenantprograms"][i].program.name} - ${
              covenant["covenantprograms"][i].rotation.name
            }</option>`
          );
        }
        if (data) {
          getServices(data.covenantprogram_id, data.service_id);
        }
      } else {
        Swal.fire({
          type: response.type,
          title: response.title,
          text: response.message,
        });
      }
    },
  });
};

window.getServices = function(covenantprogram_id, curren_service = false) {
  $("#service_id")
    .find("option")
    .remove()
    .end();
  if (!covenantprogram_id || covenantprogram_id == 0) {
    return;
  }

  $.ajax({
    url: "/userprograms/listServices/" + covenantprogram_id,
    type: "GET",
    data: null,
    success: function(response) {
      if (response.status) {
        var covenantprogram = response.data;
        $("#service_id").append(
          `<option value="0" disabled selected>${Lang.get(
            "fronjs.select"
          )}</option>`
        );
        for (var i = 0; i < covenantprogram["services"].length; i++) {
          $("#service_id").append(
            `<option value="${covenantprogram["services"][i].id}" ${
              curren_service &&
              curren_service == covenantprogram["services"][i].id
                ? "selected"
                : ""
            }>${covenantprogram["services"][i].name}</option>`
          );
        }
      } else {
        Swal.fire({
          type: response.type,
          title: response.title,
          text: response.message,
        });
      }
    },
  });
};