From 837ace277ea3c0fe254175372e5fe71098e47636 Mon Sep 17 00:00:00 2001 From: Udo Walter Date: Fri, 17 Jan 2020 00:45:55 +0100 Subject: [systemconfig] Add warning to the assign step at the end of module creation if other modules would be replaced because the module is unique --- modules-available/sysconfig/addmodule.inc.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'modules-available/sysconfig/addmodule.inc.php') diff --git a/modules-available/sysconfig/addmodule.inc.php b/modules-available/sysconfig/addmodule.inc.php index b4a84537..91fee45d 100644 --- a/modules-available/sysconfig/addmodule.inc.php +++ b/modules-available/sysconfig/addmodule.inc.php @@ -177,9 +177,29 @@ class AddModule_Assign extends AddModule_Base protected function renderInternal() { - $data = ['edit' => $this->edit->id(), 'configs' => SysConfig::getAll()]; + $data = ['configs' => SysConfig::getAll()]; if (count($data['configs']) === 0) Util::redirect('?do=SysConfig'); + + $moduleType = $this->edit->moduleType(); + if (ConfigModule::getList()[$moduleType]['unique']) { + $modules = Database::queryAll('SELECT configtgz_module.moduleid as moduleid, configtgz_module.title as title, configtgz_x_module.configid as configid' + . ' FROM configtgz_module INNER JOIN configtgz_x_module ON configtgz_module.moduleid = configtgz_x_module.moduleid' + . ' WHERE configtgz_module.moduletype = :moduletype', + array('moduletype' => $moduleType)); + + $modulesByConfigId = []; + foreach ($modules as $module) { + $modulesByConfigId[$module['configid']] = $module; + } + + foreach ($data['configs'] as &$config) { + if (!isset($modulesByConfigId[$config['configid']])) continue; + $config['replaces'] = $modulesByConfigId[$config['configid']]['title']; + } + } + + $data['edit'] = $this->edit->id(); Render::addDialog(Dictionary::translate('lang_moduleAssign'), false, 'assign', $data); } -- cgit v1.2.3-55-g7522