HEX
Server: LiteSpeed
System: Linux cde2.duelhost.dk 4.18.0-553.34.1.lve.el8.x86_64 #1 SMP Thu Jan 9 16:30:32 UTC 2025 x86_64
User: dtptviut (1121)
PHP: 8.0.30
Disabled: exec,system,passthru,shell_exec,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/dtptviut/domains/teleweb.dk/public_html/wp-content/plugins/w3-total-cache/pub/js/popup.js
function w3tc_seconds_to_string(seconds) {
  var string = "",
    days,
    hours,
    minutes;
  days = Math.floor(seconds / 86400);
  if (days) {
    seconds -= days * 86400;
    string += days + "d ";
  }
  hours = Math.floor(seconds / 3600);
  if (hours) {
    seconds -= hours * 3600;
    string += hours + "h ";
  }
  minutes = Math.floor(seconds / 60);
  if (minutes) {
    seconds -= minutes * 60;
    string += minutes + "m ";
  }

  if (seconds) {
    string += seconds + "s";
  }

  return string;
}

var W3tc_Popup_Cdn_Export_File = {
  paused: 0,
  limit: 25,
  retry_seconds: 10,
  seconds_elapsed: 0,
  timer: null,
  nonce: "",
  files: [],
  initialized: false,
  upload_files: [],

  set_progress: function (percent) {
    jQuery("#cdn_export_file_progress .bar").width(percent + "%");
    jQuery("#cdn_export_file_progress .percent").html(percent + "%");
  },

  set_status: function (status) {
    jQuery("#cdn_export_file_status").html(status);
  },

  set_processed: function (processed) {
    jQuery("#cdn_export_file_processed").html(processed);
  },

  set_button_text: function (text) {
    jQuery("#cdn_export_file_start").val(text);
  },

  set_last_response: function () {
    var date = new Date();
    jQuery("#cdn_export_file_last_response").html(
      date.toLocaleTimeString() + " " + date.toLocaleDateString(),
    );
  },

  set_elapsed: function (text) {
    jQuery("#cdn_export_file_elapsed").html(text);
  },

  add_log: function (path, result, error) {
    jQuery("#cdn_export_file_log").prepend(
      '<div class="log-' +
        (result == 1 ? "success" : "error") +
        '">' +
        path +
        " <strong>" +
        error +
        "</strong></div>",
    );
  },

  clear_log: function () {
    jQuery("#cdn_export_file_log").html("");
  },

  process: function () {
    if (this.paused) {
      return;
    }

    if (!this.initialized) {
      this.upload_files = this.files.slice(0);
      this.initialized = true;
    }

    to_upload = this.upload_files.slice(0, this.limit);

    var me = this;
    if (to_upload.length) {
      jQuery.ajax({
        type: "POST",
        url: "admin.php?page=w3tc_cdn",
        data: {
          w3tc_cdn_export_process: 1,
          "files[]": to_upload,
          _wpnonce: this.nonce,
        },
        dataType: "json",
        success: function (data) {
          me.set_last_response();
          me.process_callback(data);
        },
        error: function () {
          me.set_last_response();
          me.retry(me.retry_seconds);
        },
      });
    }
  },

  retry: function (seconds) {
    if (this.paused) {
      return;
    }
    this.set_status("request failed (retry in " + seconds + "s)");
    if (seconds) {
      var me = this;
      setTimeout(function () {
        me.retry(--seconds);
      }, 1000);
    } else {
      this.set_status("processing");
      this.process();
    }
  },

  process_callback: function (data) {
    var failed = false;
    for (var i = 0; i < data.results.length; i++) {
      var remote_path = data.results[i].file;
      for (var n = 0; n < this.upload_files.length; n++) {
        if (this.upload_files[n] == remote_path) {
          this.upload_files.splice(n, 1);
          break;
        }
      }

      this.add_log(remote_path, data.results[i].result, data.results[i].error);
      if (data.results[i].result == -1) {
        failed = true;
        break;
      }
    }

    if (failed) {
      this.set_progress(0);
      this.set_processed(1);
      this.set_status("failed");
      this.set_button_text("Start");
      clearInterval(this.timer);
    } else {
      var count_processed = this.files.length - this.upload_files.length;
      this.set_progress(
        ((count_processed * 100) / this.files.length).toFixed(0),
      );
      this.set_processed(count_processed);

      if (this.upload_files.length) {
        this.process();
      } else {
        this.set_status("done");
        this.set_button_text("Start");
        clearInterval(this.timer);
      }
    }
  },

  timer_callback: function () {
    this.seconds_elapsed++;
    this.set_elapsed(w3tc_seconds_to_string(this.seconds_elapsed));
  },

  init: function () {
    var me = this;
    jQuery("#cdn_export_file_start").click(function () {
      if (this.value == "Pause") {
        me.paused = 1;
        me.set_button_text("Resume");
        me.set_status("paused");
        clearInterval(me.timer);
      } else {
        if (this.value == "Start") {
          me.seconds_elapsed = 0;
          me.initialized = false;
          me.clear_log();
          me.set_progress(0);
          me.set_processed(0);
          me.set_elapsed("-");
        }
        me.paused = 0;
        me.set_button_text("Pause");
        me.set_status("processing");
        me.timer = setInterval(function () {
          me.timer_callback();
        }, 1000);
      }

      me.process();
    });
  },
};

var W3tc_Popup_Cdn_Export_Library = {
  paused: 0,
  limit: 25,
  offset: 0,
  retry_seconds: 10,
  seconds_elapsed: 0,
  timer: null,
  nonce: "",

  set_progress: function (percent) {
    jQuery("#cdn_export_library_progress .bar").width(percent + "%");
    jQuery("#cdn_export_library_progress .percent").html(percent + "%");
  },

  set_status: function (status) {
    jQuery("#cdn_export_library_status").html(status);
  },

  set_processed: function (processed) {
    jQuery("#cdn_export_library_processed").html(processed);
  },

  set_total: function (total) {
    jQuery("#cdn_export_library_total").html(total);
  },

  set_button_text: function (text) {
    jQuery("#cdn_export_library_start").val(text);
  },

  set_last_response: function () {
    var date = new Date();
    jQuery("#cdn_export_library_last_response").html(
      date.toLocaleTimeString() + " " + date.toLocaleDateString(),
    );
  },

  set_elapsed: function (text) {
    jQuery("#cdn_export_library_elapsed").html(text);
  },

  add_log: function (path, result, error) {
    jQuery("#cdn_export_library_log").prepend(
      '<div class="log-' +
        (result == 1 ? "success" : "error") +
        '">' +
        path +
        " <strong>" +
        error +
        "</strong></div>",
    );
  },

  clear_log: function () {
    jQuery("#cdn_export_library_log").html("");
  },

  process: function () {
    if (this.paused) {
      return;
    }

    var me = this;
    jQuery.ajax({
      type: "POST",
      url: "admin.php?page=w3tc_cdn",
      data: {
        w3tc_cdn_export_library_process: 1,
        limit: this.limit,
        offset: this.offset,
        _wpnonce: this.nonce,
      },
      dataType: "json",
      success: function (data) {
        me.set_last_response();
        me.process_callback(data);
      },
      error: function () {
        me.set_last_response();
        me.retry(me.retry_seconds);
      },
    });
  },

  retry: function (seconds) {
    if (this.paused) {
      return;
    }
    this.set_status("request failed (retry in " + seconds + "s)");
    if (seconds) {
      var me = this;
      setTimeout(function () {
        me.retry(--seconds);
      }, 1000);
    } else {
      this.set_status("processing");
      this.process();
    }
  },

  process_callback: function (data, status) {
    this.offset += data.count;

    this.set_total(data.total);
    this.set_processed(this.offset);
    this.set_progress(((this.offset * 100) / data.total).toFixed(0));

    var failed = false;
    for (var i = 0; i < data.results.length; i++) {
      this.add_log(
        data.results[i].remote_path,
        data.results[i].result,
        data.results[i].error,
      );
      if (data.results[i].result == -1) {
        failed = true;
        break;
      }
    }

    if (failed) {
      this.set_progress(0);
      this.set_processed(1);
      this.set_status("failed");
      this.set_button_text("Start");
      clearInterval(this.timer);
    } else {
      if (this.offset < data.total) {
        this.process();
      } else {
        this.set_status("done");
        this.set_button_text("Start");
        clearInterval(this.timer);
      }
    }
  },

  timer_callback: function () {
    this.seconds_elapsed++;
    this.set_elapsed(w3tc_seconds_to_string(this.seconds_elapsed));
  },

  init: function () {
    var me = this;
    jQuery("#cdn_export_library_start").click(function () {
      if (this.value == "Pause") {
        me.paused = 1;
        me.set_status("paused");
        me.set_button_text("Resume");
        clearInterval(me.timer);
      } else {
        if (this.value == "Start") {
          me.offset = 0;
          me.seconds_elapsed = 0;
          me.clear_log();
          me.set_progress(0);
          me.set_elapsed("-");
        }
        me.paused = 0;
        me.set_status("processing");
        me.set_button_text("Pause");
        me.timer = setInterval(function () {
          me.timer_callback();
        }, 1000);
      }

      me.process();
    });
  },
};

var W3tc_Popup_Cdn_Import_Library = {
  paused: 0,
  limit: 5,
  offset: 0,
  retry_seconds: 10,
  seconds_elapsed: 0,
  timer: null,
  nonce: "",
  cdn_host: "",

  set_progress: function (percent) {
    jQuery("#cdn_import_library_progress .bar").width(percent + "%");
    jQuery("#cdn_import_library_progress .percent").html(percent + "%");
  },

  set_status: function (status) {
    jQuery("#cdn_import_library_status").html(status);
  },

  set_processed: function (processed) {
    jQuery("#cdn_import_library_processed").html(processed);
  },

  set_total: function (total) {
    jQuery("#cdn_import_library_total").html(total);
  },

  set_button_text: function (text) {
    jQuery("#cdn_import_library_start").val(text);
  },

  set_last_response: function () {
    var date = new Date();
    jQuery("#cdn_import_library_last_response").html(
      date.toLocaleTimeString() + " " + date.toLocaleDateString(),
    );
  },

  set_elapsed: function (text) {
    jQuery("#cdn_import_library_elapsed").html(text);
  },

  is_redirect_permanent: function () {
    return jQuery("#cdn_import_library_redirect_permanent:checked").length > 0;
  },

  is_redirect_cdn: function () {
    return jQuery("#cdn_import_library_redirect_cdn:checked").length > 0;
  },

  add_log: function (path, result, error) {
    jQuery("#cdn_import_library_log").prepend(
      '<div class="log-' +
        (result == 1 ? "success" : "error") +
        '">' +
        path +
        " <strong>" +
        error +
        "</strong></div>",
    );
  },

  clear_log: function () {
    jQuery("#cdn_import_library_log").html("");
  },

  add_rule: function (src, dst) {
    if (/^https?:\/\//.test(src)) {
      return;
    }

    if (this.is_redirect_cdn()) {
      dst =
        "http://" +
        (this.cdn_host.length > 0 ? this.cdn_host : document.location.host) +
        "/" +
        dst;
    } else {
      dst = "/" + dst;
    }

    if (src.indexOf("/") != 0) {
      src = "/" + src;
    }

    var rules = jQuery("#cdn_import_library_rules");
    rules.val(
      rules.val() +
        "Redirect " +
        (this.is_redirect_permanent() ? "302 " : "") +
        src +
        " " +
        dst +
        "\r\n",
    );
  },

  clear_rules: function () {
    jQuery("#cdn_import_library_rules").val("");
  },

  process: function () {
    if (this.paused) {
      return;
    }

    var me = this;
    var cdn_import_external = jQuery("input#cdn_import_external").is(
      ":checked",
    );
    jQuery.ajax({
      type: "POST",
      url: "admin.php?page=w3tc_cdn",
      data: {
        w3tc_cdn_import_library_process: 1,
        limit: this.limit,
        offset: this.offset,
        _wpnonce: this.nonce,
        cdn_import_external: cdn_import_external,
      },
      dataType: "json",
      success: function (data) {
        me.set_last_response();
        me.process_callback(data);
      },
      error: function () {
        me.set_last_response();
        me.retry(me.retry_seconds);
      },
    });
  },

  retry: function (seconds) {
    if (this.paused) {
      return;
    }
    this.set_status("request failed (retry in " + seconds + "s)");
    if (seconds) {
      var me = this;
      setTimeout(function () {
        me.retry(--seconds);
      }, 1000);
    } else {
      this.set_status("processing");
      this.process();
    }
  },

  process_callback: function (data) {
    this.offset += data.count;

    this.set_total(data.total);
    this.set_processed(this.offset);
    this.set_progress(((this.offset * 100) / data.total).toFixed(0));

    var failed = false;
    for (var i = 0; i < data.results.length; i++) {
      this.add_log(
        data.results[i].src,
        data.results[i].result,
        data.results[i].error,
      );
      if (data.results[i].result == 1) {
        this.add_rule(data.results[i].src, data.results[i].dst);
      } else if (data.results[i].result == -1) {
        failed = true;
        break;
      }
    }

    if (failed) {
      this.set_progress(0);
      this.set_processed(1);
      this.set_status("failed");
      this.set_button_text("Start");
      clearInterval(this.timer);
    } else {
      if (this.offset < data.total) {
        this.process();
      } else {
        this.set_status("done");
        this.set_button_text("Start");
        clearInterval(this.timer);
      }
    }
  },

  timer_callback: function () {
    this.seconds_elapsed++;
    this.set_elapsed(w3tc_seconds_to_string(this.seconds_elapsed));
  },

  init: function () {
    var me = this;
    jQuery("#cdn_import_library_start").click(function () {
      if (this.value == "Pause") {
        me.paused = 1;
        me.set_button_text("Resume");
        me.set_status("paused");
        clearInterval(me.timer);
      } else {
        if (this.value == "Start") {
          me.offset = 0;
          me.seconds_elapsed = 0;
          me.clear_log();
          me.set_progress(0);
          me.clear_rules();
          me.set_elapsed("-");
        }
        me.paused = 0;
        me.set_button_text("Pause");
        me.set_status("processing");
        me.timer = setInterval(function () {
          me.timer_callback();
        }, 1000);
      }

      me.process();
    });
  },
};

var W3tc_Popup_Cdn_Rename_Domain = {
  paused: 0,
  limit: 25,
  offset: 0,
  retry_seconds: 10,
  seconds_elapsed: 0,
  timer: null,
  nonce: "",

  set_progress: function (percent) {
    jQuery("#cdn_rename_domain_progress .bar").width(percent + "%");
    jQuery("#cdn_rename_domain_progress .percent").html(percent + "%");
  },

  set_status: function (status) {
    jQuery("cdn_rename_domain_status").html(status);
  },

  set_processed: function (processed) {
    jQuery("#cdn_rename_domain_processed").html(processed);
  },

  set_total: function (total) {
    jQuery("#cdn_rename_domain_total").html(total);
  },

  set_button_text: function (text) {
    jQuery("#cdn_rename_domain_start").val(text);
  },

  set_last_response: function () {
    var date = new Date();
    jQuery("#cdn_rename_domain_last_response").html(
      date.toLocaleTimeString() + " " + date.toLocaleDateString(),
    );
  },

  set_elapsed: function (text) {
    jQuery("#cdn_rename_domain_elapsed").html(text);
  },

  add_log: function (path, result, error) {
    jQuery("#cdn_rename_domain_log").prepend(
      '<div class="log-' +
        (result == 1 ? "success" : "error") +
        '">' +
        path +
        " <strong>" +
        error +
        "</strong></div>",
    );
  },

  clear_log: function () {
    jQuery("#cdn_rename_domain_log").html("");
  },

  get_domain_names: function () {
    return jQuery("#cdn_rename_domain_names").val();
  },

  process: function () {
    if (this.paused) {
      return;
    }

    var me = this;
    jQuery.ajax({
      type: "POST",
      url: "admin.php?page=w3tc_cdn",
      data: {
        w3tc_cdn_rename_domain_process: 1,
        names: this.get_domain_names(),
        limit: this.limit,
        offset: this.offset,
        _wpnonce: this.nonce,
      },
      dataType: "json",
      success: function (data) {
        me.set_last_response();
        me.process_callback(data);
      },
      error: function () {
        me.set_last_response();
        me.retry(me.retry_seconds);
      },
    });
  },

  retry: function (seconds) {
    if (this.paused) {
      return;
    }
    this.set_status("request failed (retry in " + seconds + "s)");
    if (seconds) {
      var me = this;
      setTimeout(function () {
        me.retry(--seconds);
      }, 1000);
    } else {
      this.set_status("processing");
      this.process();
    }
  },

  process_callback: function (data) {
    this.offset += data.count;

    this.set_total(data.total);
    this.set_processed(this.offset);
    this.set_progress(((this.offset * 100) / data.total).toFixed(0));

    var failed = false;
    for (var i = 0; i < data.results.length; i++) {
      this.add_log(
        data.results[i].old,
        data.results[i].result,
        data.results[i].error,
      );
      if (data.results[i].result == -1) {
        failed = true;
        break;
      }
    }

    if (failed) {
      this.set_progress(0);
      this.set_processed(1);
      this.set_status("failed");
      this.set_button_text("Start");
      clearInterval(this.timer);
    } else {
      if (this.offset < data.total) {
        this.process();
      } else {
        this.set_status("done");
        this.set_button_text("Start");
        clearInterval(this.timer);
      }
    }
  },

  timer_callback: function () {
    this.seconds_elapsed++;
    this.set_elapsed(w3tc_seconds_to_string(this.seconds_elapsed));
  },

  init: function (cdn_host) {
    var me = this;
    this.cdn_host = cdn_host;
    jQuery("#cdn_rename_domain_start").click(function () {
      if (this.value == "Pause") {
        me.paused = 1;
        me.set_button_text("Resume");
        me.set_status("paused");
        clearInterval(me.timer);
      } else {
        if (this.value == "Start") {
          if (!me.get_domain_names()) {
            alert("Empty domains to rename!");
            return;
          }
          me.offset = 0;
          me.seconds_elapsed = 0;
          me.clear_log();
          me.set_progress(0);
          me.set_elapsed("-");
        }
        me.paused = 0;
        me.set_button_text("Pause");
        me.set_status("processing");
        me.timer = setInterval(function () {
          me.timer_callback();
        }, 1000);
      }

      me.process();
    });
  },
};

function w3tc_ps_expand(expand) {
  jQuery(".ps-rule").each(function () {
    var e = jQuery(this).find(".ps-expander");
    var a = jQuery(this).find(".ps-expand a");

    if (!expand) {
      e.hide();
      a.html("+");
    } else {
      e.show();
      a.html("-");
    }
  });
}

jQuery(function () {
  jQuery(".tab").click(function () {
    jQuery(".tab").removeClass("tab-selected");
    jQuery(".tab-content").hide();
    jQuery(this).addClass("tab-selected");
    jQuery(this.rel).show();
  });

  jQuery(".cdn_queue_delete").click(function () {
    return confirm("Are you sure you want to remove this file from the queue?");
  });

  jQuery(".cdn_queue_empty").click(function () {
    return confirm("Are you sure you want to empty the queue?");
  });

  jQuery(".ps-rule").click(function () {
    var e = jQuery(this).find(".ps-expander");
    var a = jQuery(this).find(".ps-expand a");

    if (e.is(":visible")) {
      e.hide();
      a.html("+");
    } else {
      e.show();
      a.html("-");
    }

    return false;
  });

  jQuery(".ps-rule p a,.ps-expander").click(function (event) {
    event.stopPropagation();
  });

  jQuery(".ps-expand-all").click(function () {
    w3tc_ps_expand(1);
  });

  jQuery(".ps-collapse-all").click(function () {
    w3tc_ps_expand(0);
  });
});