mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-03-28 17:42:57 +01:00
430 lines
14 KiB
JavaScript
430 lines
14 KiB
JavaScript
function setDisplayClassic() {
|
|
$(".pluginContainer").removeClass("line").removeClass("compact").addClass("classic");
|
|
|
|
$(".pluginDesc").show();
|
|
$(".pluginDescCompact").hide();
|
|
$(".pluginActions").show();
|
|
$(".pluginActionsSmallIcons").hide();
|
|
|
|
$(".pluginMiniBoxNameCell").removeClass("pluginMiniBoxNameCellCompact");
|
|
|
|
// normalTitle();
|
|
}
|
|
|
|
function setDisplayCompact() {
|
|
$(".pluginContainer").removeClass("line").addClass("compact").removeClass("classic");
|
|
|
|
$(".pluginDesc").hide();
|
|
$(".pluginDescCompact").show();
|
|
$(".pluginActions").hide();
|
|
$(".pluginActionsSmallIcons").show();
|
|
|
|
$(".pluginMiniBoxNameCell").addClass("pluginMiniBoxNameCellCompact");
|
|
|
|
// reduceTitle()
|
|
}
|
|
|
|
function setDisplayLine() {
|
|
$(".pluginContainer").addClass("line").removeClass("compact").removeClass("classic");
|
|
|
|
$(".pluginDesc").show();
|
|
$(".pluginDescCompact").hide();
|
|
$(".pluginActions").show();
|
|
$(".pluginActionsSmallIcons").hide();
|
|
// normalTitle();
|
|
}
|
|
|
|
function reduceTitle() {
|
|
var x = document.getElementsByClassName("pluginMiniBoxNameCell");
|
|
var length = 22;
|
|
|
|
for (const div of x) {
|
|
var text = div.innerHTML.trim()
|
|
if (text.length > length) {
|
|
var newText = text.substring(0, length);
|
|
newText = newText + "...";
|
|
|
|
div.innerHTML = newText;
|
|
div.title = text
|
|
}
|
|
}
|
|
}
|
|
|
|
function normalTitle() {
|
|
var x = document.getElementsByClassName("pluginMiniBoxNameCell");
|
|
|
|
for (const div of x) {
|
|
div.innerHTML = div.dataset.title
|
|
}
|
|
}
|
|
|
|
function activatePlugin(id) {
|
|
$("#"+id+" .switch").attr("disabled", true);
|
|
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
url: 'ws.php',
|
|
data: { method: 'pwg.plugins.performAction',
|
|
action: 'activate',
|
|
plugin: id,
|
|
pwg_token: pwg_token,
|
|
format: 'json' },
|
|
success: function (data) {
|
|
if (data.stat == 'ok') {
|
|
let pluginName = id;
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .AddPluginSuccess label span:first").html(plugin_added_str);
|
|
$("#" + id + " .AddPluginSuccess").css("display", "flex");
|
|
|
|
nb_plugin.active += 1;
|
|
nb_plugin.inactive -= 1;
|
|
actualizeFilter();
|
|
}
|
|
},
|
|
error: function (e) {
|
|
console.log(e);
|
|
console.log("It didn't work");
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .PluginActionError label span:first").html(plugin_action_error);
|
|
$("#" + id + " .PluginActionError").css("display", "flex");
|
|
$("#" + id + " .PluginActionError").delay(1500).fadeOut(2500);
|
|
}
|
|
}).done(function (data) {
|
|
$("#"+id+" .switch").attr("disabled", false);
|
|
$("#" + id + " .AddPluginSuccess").fadeOut(3000);
|
|
})
|
|
}
|
|
|
|
function disactivatePlugin(id) {
|
|
$("#"+id+" .switch").attr("disabled", true);
|
|
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
url: 'ws.php',
|
|
data: { method: 'pwg.plugins.performAction',
|
|
action: 'deactivate',
|
|
plugin: id,
|
|
pwg_token: pwg_token,
|
|
format: 'json' },
|
|
success: function (data) {
|
|
if (data.stat == 'ok') {
|
|
let pluginName = id;
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .DeactivatePluginSuccess label span:first").html(plugin_deactivated_str);
|
|
$("#" + id + " .DeactivatePluginSuccess").css("display", "flex");
|
|
|
|
nb_plugin.inactive += 1;
|
|
nb_plugin.active -= 1;
|
|
actualizeFilter();
|
|
}
|
|
},
|
|
error: function (e) {
|
|
console.log(e);
|
|
console.log("It didn't work");
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .PluginActionError label span:first").html(plugin_action_error);
|
|
$("#" + id + " .PluginActionError").css("display", "flex");
|
|
$("#" + id + " .PluginActionError").delay(1500).fadeOut(2500);
|
|
}
|
|
}).done(function (data) {
|
|
$("#"+id+" .switch").attr("disabled", false);
|
|
$("#" + id + " .DeactivatePluginSuccess").fadeOut(3000);
|
|
})
|
|
}
|
|
|
|
function deletePlugin(id, name) {
|
|
$.alert({
|
|
title : deleted_plugin_msg.replace("%s",name),
|
|
content: function() {
|
|
return $.ajax({
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
url: 'ws.php',
|
|
data: { method: 'pwg.plugins.performAction',
|
|
action: 'delete',
|
|
plugin: id,
|
|
pwg_token: pwg_token,
|
|
format: 'json' },
|
|
success: function (data) {
|
|
if (data.stat === "ok") {
|
|
$("#"+id).remove();
|
|
nb_plugin.inactive -=1;
|
|
nb_plugin.all -=1;
|
|
actualizeFilter();
|
|
}
|
|
},
|
|
error: function (e) {
|
|
console.log(e);
|
|
console.log("It didn't work");
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .PluginActionError label span:first").html(plugin_action_error);
|
|
$("#" + id + " .PluginActionError").css("display", "flex");
|
|
$("#" + id + " .PluginActionError").delay(1500).fadeOut(2500);
|
|
}
|
|
})
|
|
},
|
|
...jConfirm_alert_options
|
|
});
|
|
}
|
|
|
|
function restorePlugin(id) {
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
url: 'ws.php',
|
|
data: { method: 'pwg.plugins.performAction',
|
|
action: 'restore',
|
|
plugin: id,
|
|
pwg_token: pwg_token,
|
|
format: 'json' },
|
|
success: function (data) {
|
|
if (data.stat == 'ok') {
|
|
let pluginName = id;
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .RestorePluginSuccess label span:first").html(plugin_restored_str);
|
|
$("#" + id + " .RestorePluginSuccess").css("display", "flex");
|
|
}
|
|
},
|
|
error: function (e) {
|
|
console.log(e);
|
|
console.log("It didn't work");
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .PluginActionError label span:first").html(plugin_action_error);
|
|
$("#" + id + " .PluginActionError").css("display", "flex");
|
|
$("#" + id + " .PluginActionError").delay(1500).fadeOut(2500);
|
|
}
|
|
}).done(function (data) {
|
|
$("#" + id + " .RestorePluginSuccess").fadeOut(3000);
|
|
})
|
|
}
|
|
|
|
function uninstallPlugin(id) {
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
url: 'ws.php',
|
|
data: { method: 'pwg.plugins.performAction',
|
|
action: 'uninstall',
|
|
plugin: id,
|
|
pwg_token: pwg_token,
|
|
format: 'json' },
|
|
success: function (data) {
|
|
$("#"+id).remove();
|
|
nb_plugin.other -=1;
|
|
nb_plugin.all -=1;
|
|
actualizeFilter();
|
|
},
|
|
error: function (e) {
|
|
console.log(e);
|
|
console.log("It didn't work");
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .PluginActionError label span:first").html(plugin_action_error);
|
|
$("#" + id + " .PluginActionError").css("display", "flex");
|
|
$("#" + id + " .PluginActionError").delay(1500).fadeOut(2500);
|
|
}
|
|
})
|
|
}
|
|
|
|
$(document).ready(function () {
|
|
actualizeFilter();
|
|
|
|
if (!$.cookie("pwg_plugin_manager_view")) {
|
|
$.cookie("pwg_plugin_manager_view", "classic");
|
|
}
|
|
|
|
if ($("#displayClassic").is(":checked")) {
|
|
setDisplayClassic();
|
|
};
|
|
|
|
if ($("#displayCompact").is(":checked")) {
|
|
setDisplayCompact();
|
|
};
|
|
|
|
if ($("#displayLine").is(":checked")) {
|
|
setDisplayLine();
|
|
};
|
|
|
|
$("#displayClassic").change(function () {
|
|
setDisplayClassic();
|
|
$.cookie("pwg_plugin_manager_view", "classic");
|
|
})
|
|
|
|
$("#displayCompact").change(function () {
|
|
setDisplayCompact();
|
|
$.cookie("pwg_plugin_manager_view", "compact");
|
|
})
|
|
|
|
$("#displayLine").change(function () {
|
|
setDisplayLine();
|
|
$.cookie("pwg_plugin_manager_view", "line");
|
|
})
|
|
|
|
/* Plugin Filters */
|
|
|
|
// Set filter on Active on load
|
|
if (nb_plugin.active > 0) {
|
|
$(".pluginMiniBox").each(function () {
|
|
if (!$(this).hasClass("plugin-active")) {
|
|
$(this).hide();
|
|
}
|
|
});
|
|
$("#seeActive").trigger("click");
|
|
} else {
|
|
$(".pluginMiniBox").show();
|
|
}
|
|
|
|
|
|
$("#seeAll").on("change", function () {
|
|
$(".pluginMiniBox").show();
|
|
$('.search-input').trigger("input");
|
|
})
|
|
|
|
$("#seeActive").on("change", function () {
|
|
$(".pluginMiniBox").show();
|
|
$(".pluginMiniBox").each(function () {
|
|
if (!$(this).hasClass("plugin-active")) {
|
|
$(this).hide();
|
|
}
|
|
})
|
|
$('.search-input').trigger("input");
|
|
})
|
|
|
|
$("#seeInactive").on("change", function () {
|
|
$(".pluginMiniBox").show();
|
|
$(".pluginMiniBox").each(function () {
|
|
if (!$(this).hasClass("plugin-inactive")) {
|
|
$(this).hide();
|
|
}
|
|
})
|
|
$('.search-input').trigger("input");
|
|
})
|
|
|
|
$("#seeOther").on("change", function () {
|
|
$(".pluginMiniBox").show();
|
|
$(".pluginMiniBox").each(function () {
|
|
if (($(this).hasClass("plugin-active") || $(this).hasClass("plugin-inactive"))) {
|
|
$(this).hide();
|
|
}
|
|
})
|
|
$('.search-input').trigger("input");
|
|
})
|
|
|
|
/* Plugin Actions */
|
|
/**
|
|
* Activate / Deactivate
|
|
*/
|
|
if (isWebmaster != 0) {
|
|
$(".switch").change(function () {
|
|
$(".pluginMiniBox").addClass("usable");
|
|
|
|
if ($(this).find("#toggleSelectionMode").is(':checked')) {
|
|
activatePlugin($(this).parent().parent().attr("id"));
|
|
|
|
$(this).parent().parent().addClass("plugin-active").removeClass("plugin-inactive");
|
|
if ($(this).parent().parent().find(".pluginUnavailableAction").attr("href")) {
|
|
$(this).parent().parent().find(".pluginUnavailableAction").removeClass("pluginUnavailableAction").addClass("pluginActionLevel1");
|
|
}
|
|
} else {
|
|
disactivatePlugin($(this).parent().parent().attr("id"))
|
|
|
|
$(this).parent().parent().removeClass("plugin-active").addClass("plugin-inactive");
|
|
$(this).parent().parent().find(".pluginActionLevel1").removeClass("pluginActionLevel1").addClass("pluginUnavailableAction");
|
|
}
|
|
|
|
actualizeFilter();
|
|
})
|
|
} else {
|
|
$(".pluginMiniBox").addClass("notUsable");
|
|
$(".plugin-active").find(".slider").addClass("desactivate_disabled");
|
|
$(".plugin-inactive").find(".slider").addClass("activate_disabled");
|
|
$(".switch input").on("click", function (event) {
|
|
$(this).addClass("disabled");
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
|
|
var id = $(this).parent().parent().parent().attr("id");
|
|
$("#" + id + " .pluginNotif").stop(false, true);
|
|
$("#" + id + " .PluginActionError label span:first").html(not_webmaster);
|
|
$("#" + id + " .PluginActionError").css("display", "flex");
|
|
$("#" + id + " .PluginActionError").delay(1500).fadeOut(2500);
|
|
|
|
setTimeout(function(){
|
|
$(".switch input").removeClass("disabled");
|
|
}, 400); //Same duration as the animation "desactivate_disabled" in css
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Delete
|
|
*/
|
|
$(".pluginContent").find('.dropdown-option.delete-plugin-button').on('click', function () {
|
|
let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim();
|
|
let plugin_id = $(this).closest(".pluginContent").parent().attr("id");
|
|
$.confirm({
|
|
title: delete_plugin_msg.replace("%s",plugin_name),
|
|
buttons: {
|
|
confirm: {
|
|
text: confirm_msg,
|
|
btnClass: 'btn-red',
|
|
action: function () {
|
|
deletePlugin(plugin_id, plugin_name);
|
|
},
|
|
},
|
|
cancel: {
|
|
text: cancel_msg
|
|
}
|
|
},
|
|
...jConfirm_confirm_options
|
|
})
|
|
})
|
|
|
|
/**
|
|
* Restore
|
|
*/
|
|
$(".pluginContent").find('.dropdown-option.plugin-restore').on('click', function () {
|
|
let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim();
|
|
let plugin_id = $(this).closest(".pluginContent").parent().attr("id");
|
|
$.confirm({
|
|
title: restore_plugin_msg.replace('%s', plugin_name),
|
|
buttons: {
|
|
confirm: {
|
|
text: confirm_msg,
|
|
btnClass: 'btn-red',
|
|
action: function () {
|
|
restorePlugin(plugin_id);
|
|
},
|
|
},
|
|
cancel: {
|
|
text: cancel_msg
|
|
}
|
|
},
|
|
...jConfirm_confirm_options
|
|
})
|
|
})
|
|
|
|
/**
|
|
* Uninstall
|
|
*/
|
|
$(".pluginContent").find('.uninstall-plugin-button').on('click', function () {
|
|
let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim();
|
|
let plugin_id = $(this).closest(".pluginContent").parent().attr("id");
|
|
$.confirm({
|
|
title: uninstall_plugin_msg.replace('%s', plugin_name),
|
|
buttons: {
|
|
confirm: {
|
|
text: confirm_msg,
|
|
btnClass: 'btn-red',
|
|
action: function () {
|
|
uninstallPlugin(plugin_id);
|
|
},
|
|
},
|
|
cancel: {
|
|
text: cancel_msg
|
|
}
|
|
},
|
|
...jConfirm_confirm_options
|
|
})
|
|
})
|
|
}) |