hide delete button from modules list when uninstaller exists

This commit is contained in:
Jean-Christian Paul Denis 2023-04-23 22:01:38 +02:00
parent 3e02bd7d00
commit 6f5e6f42b3
Signed by: JcDenis
GPG Key ID: 1B5B8C5B90B6C951
4 changed files with 27 additions and 7 deletions

View File

@ -1,10 +1,6 @@
/*global $, dotclear */
'use strict';
Object.assign(dotclear.msg, dotclear.getData('uninstaller'));
$(() => {
$('#uninstall-form').on('submit', function () {
return window.confirm(dotclear.msg.confirm_uninstall);
});
$('a.uninstall_module_button').parent().find('input.delete').hide();
});

10
js/manage.js Normal file
View File

@ -0,0 +1,10 @@
/*global $, dotclear */
'use strict';
Object.assign(dotclear.msg, dotclear.getData('uninstaller'));
$(() => {
$('#uninstall-form').on('submit', function () {
return window.confirm(dotclear.msg.confirm_uninstall);
});
});

View File

@ -19,6 +19,7 @@ use dcCore;
use dcModuleDefine;
use dcNsProcess;
use dcPage;
use dcUtils;
use Exception;
class Backend extends dcNsProcess
@ -47,7 +48,7 @@ class Backend extends dcNsProcess
return empty(Uninstaller::instance()->loadModules([$define])->getUserActions($define->getId())) ? '' :
sprintf(
' <a href="%s" class="button delete">' . __('Uninstall') . '</a>',
' <a href="%s" class="button delete uninstall_module_button">' . __('Uninstall') . '</a>',
dcCore::app()->adminurl?->get('admin.plugin.' . My::id(), ['type' => $define->get('type'), 'id' => $define->getId()])
);
},
@ -59,6 +60,14 @@ class Backend extends dcNsProcess
'pluginBeforeDeleteV2' => function (dcModuleDefine $define): void {
self::moduleBeforeDelete($define);
},
// add js to hide delete button when uninstaller exists
'pluginsToolsHeadersV2' => function (): string {
return self::modulesToolsHeader();
},
// add js to hide delete button when uninstaller exists
'themesToolsHeadersV2' => function (): string {
return self::modulesToolsHeader();
},
]);
return true;
@ -98,4 +107,9 @@ class Backend extends dcNsProcess
dcCore::app()->error->add($e->getMessage());
}
}
protected static function modulesToolsHeader()
{
return dcUtils::jsModuleLoad(My::id() . '/js/backend.js');
}
}

View File

@ -127,7 +127,7 @@ class Manage extends dcNsProcess
dcPage::openModule(
My::name(),
dcPage::jsJson('uninstaller', ['confirm_uninstall' => __('Are you sure you perform these ations?')]) .
dcPage::jsModuleLoad(My::id() . '/js/backend.js') .
dcPage::jsModuleLoad(My::id() . '/js/manage.js') .
# --BEHAVIOR-- UninstallerHeader
dcCore::app()->callBehavior('UninstallerHeader')