%PDF- %PDF-
| Direktori : /www/klubovnaostrava_o/test/wp-content/plugins/filebird/assets/js/ |
| Current File : /www/klubovnaostrava_o/test/wp-content/plugins/filebird/assets/js/setting.js |
jQuery(document).ready(function () {
const { utils, i18n } = fbv_data;
const { $message } = utils;
var njt_auto_run_import = false;
var fb_tools_page = new URL(fbv_data.auto_import_url);
fb_tools_page.searchParams.delete("autorun");
//import from old version
jQuery(".njt_fbv_import_from_old_now").on("click", function () {
var $this = jQuery(this);
if ($this.hasClass("updating-message")) return false;
$this.addClass("updating-message");
get_folders(
function (res) {
if (res.success) {
insert_folder(
res.data.folders,
0,
function () {
$this.removeClass("updating-message");
const mess = `${i18n.filebird_db_updated} <a href="${fbv_data.media_url}">${fbv_data.i18n.go_to_media}</a>`;
$message.success(
(h) => h("span", { domProps: { innerHTML: mess } }),
5
);
if (njt_auto_run_import) {
location.replace(fb_tools_page.href);
}
},
function () {
$this.removeClass("updating-message");
}
);
}
},
function () {
$this.removeClass("updating-message");
$message.error(
(h) => h("span", { domProps: { innerHTML: i18n.import_failed } }),
5
);
}
);
function get_folders(onDone, onFail) {
jQuery
.ajax({
cache: false,
dataType: "json",
contentType: "application/json",
url: fbv_data.json_url + "/fb-get-old-data",
method: "POST",
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
})
.done(function (res) {
onDone(res);
})
.fail(function (res) {
onFail(res);
});
}
function insert_folder(folders, index, onDone, onFail) {
if (typeof folders[index] != "undefined") {
jQuery
.ajax({
cache: false,
dataType: "json",
contentType: "application/json",
url: fbv_data.json_url + "/fb-insert-old-data",
method: "POST",
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
data: JSON.stringify({
folders: folders[index],
autorun: njt_auto_run_import,
}),
})
.done(function (res) {
insert_folder(folders, index + 1, onDone, onFail);
})
.fail(function (res) {
onFail();
$message.error(i18n.please_try_again);
});
} else {
onDone();
}
}
});
//wipe old data
jQuery(".njt_fbv_wipe_old_data").on("click", function () {
if (!confirm(fbv_data.i18n.are_you_sure)) return false;
var $this = jQuery(this);
if ($this.hasClass("updating-message")) return false;
$this.addClass("updating-message");
jQuery
.ajax({
cache: false,
dataType: "json",
contentType: "application/json",
url: fbv_data.json_url + "/fb-wipe-old-data",
method: "POST",
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
})
.done(function (res) {
$this.removeClass("updating-message");
$message.success(res.data.mess);
})
.fail(function (res) {
$this.removeClass("updating-message");
$message.error(res.data.mess);
});
});
//clear all data
jQuery(".njt_fbv_clear_all_data").on("click", function () {
if (!confirm(fbv_data.i18n.are_you_sure)) return false;
var $this = jQuery(this);
if ($this.hasClass("updating-message")) return false;
$this.focusout().addClass("updating-message");
jQuery
.ajax({
cache: false,
dataType: "json",
contentType: "application/json",
url: fbv_data.json_url + "/fb-wipe-clear-all-data",
method: "POST",
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
})
.done(function (res) {
$this.removeClass("updating-message");
$message.success(res.data.mess);
})
.fail(function (res) {
$this.removeClass("updating-message");
$message.error(res.data.mess);
});
});
//no thanks btn
jQuery(".njt_fb_no_thanks_btn").on("click", function () {
var $this = jQuery(this);
$this.addClass("updating-message");
jQuery
.ajax({
dataType: "json",
contentType: "application/json",
type: "post",
cache: false,
url: fbv_data.json_url + "/fb-no-thanks",
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
data: JSON.stringify({
site: $this.data("site"),
}),
success: function (res) {
$this.removeClass("updating-message");
jQuery(".njt.notice.notice-warning." + $this.data("site")).hide();
},
})
.fail(function (res) {
$this.removeClass("updating-message");
$message.error(i18n.please_try_again);
});
});
jQuery(".njt-fb-import").on("click", function () {
var $this = jQuery(this);
$this.addClass("updating-message");
jQuery
.ajax({
dataType: "json",
contentType: "application/json",
url: fbv_data.json_url + "/fb-import",
method: "POST",
cache: false,
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
data: JSON.stringify({
site: $this.data("site"),
count: $this.data("count"),
}),
})
.done(function (res) {
if (res.data.folders) {
var folders = res.data.folders;
var site = res.data.site;
var count = res.data.count;
import_site(folders, site, 0, { count: count }, function (res) {
if (res.success) {
$this.removeClass("updating-message");
var html_notice =
'<div class="njt-success-notice notice notice-success is-dismissible"><p>' +
res.data.mess +
'</p><button type="button" class="notice-dismiss" onClick="jQuery(\'.njt-success-notice\').remove()"><span class="screen-reader-text">Dismiss this notice.</span></button></div>';
jQuery(html_notice).insertBefore("form#fbv-setting-form");
}
});
} else {
$this.removeClass("updating-message");
$message.error(res.data.mess);
}
})
.fail(function (res) {
$this.removeClass("updating-message");
$message.error(i18n.please_try_again);
});
});
function import_site(folders, site, index, more_data_when_done, on_done) {
if (typeof folders[index] != "undefined") {
jQuery
.ajax({
dataType: "json",
contentType: "application/json",
url: fbv_data.json_url + "/fb-import-insert-folder",
method: "POST",
cache: false,
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
data: JSON.stringify({
site: site,
folders: folders[index],
}),
})
.done(function (res) {
import_site(folders, site, index + 1, more_data_when_done, on_done);
});
} else {
jQuery
.ajax({
dataType: "json",
contentType: "application/json",
url: fbv_data.json_url + "/fb-import-after-inserting",
method: "POST",
cache: false,
data: JSON.stringify({
site: site,
count: more_data_when_done.count,
}),
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
})
.done(function (res) {
on_done(res);
});
}
}
//generate API key
jQuery(".fbv_generate_api_key_now").on("click", function () {
if (!confirm(fbv_data.i18n.are_you_sure)) return false;
var $this = jQuery(this);
$this.addClass("updating-message");
jQuery
.ajax({
dataType: "json",
contentType: "application/json",
type: "post",
cache: false,
url: fbv_data.json_url + "/fbv-api",
data: JSON.stringify({
act: "generate-key",
}),
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
success: function (res) {
$this.removeClass("updating-message");
if (res.success) {
var key = res.data.key;
jQuery("#fbv_rest_api_key").removeClass("hidden");
jQuery("#fbv_rest_api_key").val(key);
} else {
$message.error(res.data.mess);
}
},
})
.fail(function (res) {
$this.removeClass("updating-message");
$message.error(i18n.please_try_again);
});
});
//submit form
jQuery("input.njt-submittable").on("change", function () {
var $this = jQuery(this);
var data = $this.closest("form").serializeArray();
let slider = $this.closest(".njt-switch").find("span.slider");
if (slider.length) {
slider.addClass("njt_loading");
}
jQuery
.post("options.php", data)
.success(function (res) {
if (slider.length) {
slider.removeClass("njt_loading");
}
$message.success(i18n.set_setting_success);
})
.error(function (res) {
if (slider.length) {
slider.removeClass("njt_loading");
}
$message.error(i18n.please_try_again);
});
});
//notice dismiss
jQuery("#filebird-empty-folder-notice").on("click", function (event) {
if (jQuery(event.target).hasClass("notice-dismiss")) {
jQuery
.ajax({
dataType: "json",
url: window.ajaxurl,
type: "post",
cache: false,
data: {
action: "fbv_first_folder_notice",
nonce: window.fbv_data.nonce,
},
})
.done(function (result) {})
.fail(function (res) {});
}
});
function convertArrayOfObjectsToCSV(args) {
const data = args.data;
if (!data || !data.length) return;
const columnDelimiter = args.columnDelimiter || ",";
const lineDelimiter = args.lineDelimiter || "\n";
const keys = Object.keys(data[0]);
let result = "";
result += keys.join(columnDelimiter);
result += lineDelimiter;
data.forEach((item) => {
ctr = 0;
keys.forEach((key) => {
if (ctr > 0) result += columnDelimiter;
result += item[key];
ctr++;
});
result += lineDelimiter;
});
return result;
}
function generateDownloadCSV(args) {
let csv = convertArrayOfObjectsToCSV({ data: args.data });
const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" });
if (!csv) return;
const filename = args.filename || "export.csv";
const link = document.createElement("a");
link.setAttribute("href", URL.createObjectURL(blob));
link.setAttribute("download", filename);
link.click();
}
function getUserFromCSV(fileValue) {
let fileUpload = new FormData();
if (!fileValue.length) {
return Promise.reject("There is no file!");
}
if (fileValue.length) {
fileUpload.append("file", fileValue[0]);
return jQuery
.ajax({
url: fbv_data.json_url + "/import-csv-detail",
method: "POST",
processData: false,
cache: false,
contentType: false,
beforeSend: function () {
// $this.addClass("updating-message");
},
data: fileUpload,
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
})
.done((res) => {
let users = {
"": "",
"-1": fbv_data.i18n.all_folders,
0: fbv_data.i18n.common_folders,
};
if (Object.entries(res).length) {
users = {
...users,
...res,
};
}
jQuery("#njt-fb-csv-user-import").closest("p").removeClass("hidden");
jQuery("#njt-fb-csv-user-import").html(
Object.entries(users)
.sort()
.map(
(user) =>
jQuery("<option></option>").val(user[0]).html(user[1])[0]
.outerHTML
)
.join("")
);
});
}
}
jQuery(document).on("change", "#njt-fb-csv-user-import", function (event) {
let description = "";
const val = event.target.value;
if (val) {
if (val === "-1") description = fbv_data.i18n.all_folders_description;
else if (val === "0")
description = fbv_data.i18n.common_folders_description;
else
description = `${fbv_data.i18n.user_folders_description} ${jQuery(
"option:selected",
event.target
).text()}.`;
jQuery(".njt-fb-csv-import").prop("disabled", false);
jQuery("#njt-fb-csv-user-import-description").html(description);
} else {
jQuery(".njt-fb-csv-import").prop("disabled", true);
jQuery("#njt-fb-csv-user-import-description").empty();
}
});
jQuery(".njt-fb-csv-export").on("click", function () {
const $this = jQuery(this);
jQuery
.ajax({
dataType: "json",
contentType: "application/json",
type: "get",
cache: false,
url: fbv_data.json_url + "/export-csv",
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
beforeSend: function () {
$this.addClass("updating-message");
},
success: function (res) {
jQuery("#njt-fb-download-csv")
.unbind("click")
.bind("click", function () {
generateDownloadCSV({
filename: "filebird.csv",
data: res.folders,
});
});
$this.removeClass("updating-message");
jQuery("#njt-fb-download-csv").show();
$message.success(i18n.successfully_exported);
},
})
.fail(function (res) {
$this.removeClass("updating-message");
$message.error(i18n.please_try_again);
});
});
jQuery("#njt-fb-upload-csv").on("change", async function (event) {
const fileValue = event.target.files;
let fileUpload = new FormData();
jQuery("#njt-fb-csv-user-import").val("");
jQuery("#njt-fb-csv-user-import-description").empty();
jQuery(".njt-fb-csv-import").prop("disabled", true);
await getUserFromCSV(fileValue);
if (fileValue.length) {
fileUpload.append("file", fileValue[0]);
jQuery(".njt-fb-csv-import").removeClass("hidden");
jQuery(".njt-fb-csv-import")
.unbind("click")
.bind("click", function () {
fileUpload.append("userId", jQuery("#njt-fb-csv-user-import").val());
$this = jQuery(this);
jQuery
.ajax({
url: fbv_data.json_url + "/import-csv",
method: "POST",
processData: false,
cache: false,
contentType: false,
beforeSend: function () {
$this.addClass("updating-message");
},
data: fileUpload,
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
})
.done((res) => {
if (res.success) {
$this.removeClass("updating-message");
$this.text(fbv_data.i18n.imported);
$this.prop("disabled", true);
$message.success(i18n.successfully_imported);
} else {
$this.removeClass("updating-message");
if (res.message) {
$message.error(res.message);
return;
}
$message.error(i18n.please_try_again);
}
})
.fail((error) => {
console.log(error);
$this.removeClass("updating-message");
$message.error(i18n.please_try_again);
});
});
}
});
jQuery(".fbv-tab-name").on("click", function () {
var $this = jQuery(this);
jQuery(".fbv-tab-name").removeClass("nav-tab-active");
$this.addClass("nav-tab-active");
jQuery(".fbv-tab-content").addClass("hidden");
jQuery("#fbv-settings-tab-" + $this.attr("data-id")).removeClass("hidden");
return false;
});
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const page = urlParams.get("page");
const autorun = urlParams.get("autorun");
if (page === "filebird-settings" && autorun == "true") {
njt_auto_run_import = true;
jQuery(".njt_fbv_import_from_old_now").click();
}
jQuery(".fbv-pro-feature").each(function (index, el) {
jQuery("input", el).on("mousedown click", function (e) {
e.preventDefault();
});
fbv_data.utils.tippy(el, {
theme: "fbv-pro",
content: i18n.active_to_use_feature,
animation: "shift-away",
});
});
jQuery(".njt_fbv_generate_attachment_size").on("click", function (e) {
const processingStatus = jQuery(
".fbv-generate-attachment-size .processing-status"
);
const $this = this;
const TIME_INTERVAL = 2000;
$this.classList.add("updating-message");
$this.disabled = true;
const generating = setInterval(() => {
jQuery
.ajax({
url: fbv_data.json_url + "/generate-attachment-size",
method: "POST",
cache: false,
dataType: "json",
contentType: "application/json",
// data: JSON.stringify({
// generateAll,
// }),
headers: {
"X-WP-Nonce": fbv_data.rest_nonce,
},
beforeSend: function () {},
})
.done((json) => {
if (!json.isProcessing) {
processingStatus.hide();
$this.classList.remove("updating-message");
$this.disabled = false;
clearInterval(generating);
return;
}
if (processingStatus.css("display") === "none") {
processingStatus.show();
console.log("display here");
}
processingStatus.text(
`${fbv_data.i18n.processing} ${json.current}/${json.total}`
);
})
.fail((json) => {
$this.classList.remove("updating-message");
$this.disabled = false;
});
}, TIME_INTERVAL);
});
jQuery(".njt_fbv_sync_wpml").on("click", function () {
jQuery(this).addClass("updating-message");
jQuery
.ajax({
url: window.ajaxurl,
method: "POST",
cache: false,
data: {
action: "fbv_sync_wpml",
nonce: window.fbv_data.nonce,
},
})
.then((res) => {
jQuery(this).next().text(res.message);
})
.catch((err) => console.log(err))
.always(() => {
jQuery(this).removeClass("updating-message");
});
});
});