mirror of
https://github.com/e107inc/e107.git
synced 2025-08-04 21:57:51 +02:00
Fixed #109: Can't delete multiple users
This commit is contained in:
@@ -2727,10 +2727,11 @@ class e_admin_controller_ui extends e_admin_controller
|
|||||||
//$multi_name = vartrue($this->fields['checkboxes']['toggle'], 'multiselect');
|
//$multi_name = vartrue($this->fields['checkboxes']['toggle'], 'multiselect');
|
||||||
$multi_name = $this->getFieldAttr('checkboxes', 'toggle', 'multiselect');
|
$multi_name = $this->getFieldAttr('checkboxes', 'toggle', 'multiselect');
|
||||||
$selected = array_values($this->getPosted($multi_name, array()));
|
$selected = array_values($this->getPosted($multi_name, array()));
|
||||||
|
$trigger = $tp->toDB(explode('__', $batch_trigger));
|
||||||
|
|
||||||
if(empty($selected))
|
if(empty($selected) && !$this->getPosted('etrigger_delete_confirm')) // it's a delete batch, confirm screen
|
||||||
{
|
{
|
||||||
$params = $this->getFieldAttr($field, 'writeParms', array());
|
$params = $this->getFieldAttr($trigger[1], 'writeParms', array());
|
||||||
if(!is_array($params)) parse_str($params, $params);
|
if(!is_array($params)) parse_str($params, $params);
|
||||||
if(!vartrue($params['batchNoCheck']))
|
if(!vartrue($params['batchNoCheck']))
|
||||||
{
|
{
|
||||||
@@ -2738,8 +2739,14 @@ class e_admin_controller_ui extends e_admin_controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$selected = array_map('intval', $selected);
|
if($selected)
|
||||||
$trigger = $tp->toDB(explode('__', $batch_trigger));
|
{
|
||||||
|
foreach ($selected as $i => $_sel)
|
||||||
|
{
|
||||||
|
$selected[$i] = preg_replace('/[^\w\-]/', '', $_sel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$this->setTriggersEnabled(false); //disable further triggering
|
$this->setTriggersEnabled(false); //disable further triggering
|
||||||
|
|
||||||
@@ -3774,7 +3781,6 @@ class e_admin_ui extends e_admin_controller_ui
|
|||||||
*/
|
*/
|
||||||
protected function handleListDeleteBatch($selected)
|
protected function handleListDeleteBatch($selected)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(!$this->getBatchDelete())
|
if(!$this->getBatchDelete())
|
||||||
{
|
{
|
||||||
e107::getMessage()->add(LAN_UI_BATCHDEL_ERROR, E_MESSAGE_WARNING);
|
e107::getMessage()->add(LAN_UI_BATCHDEL_ERROR, E_MESSAGE_WARNING);
|
||||||
@@ -3791,15 +3797,19 @@ class e_admin_ui extends e_admin_controller_ui
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// already confirmed, resurrect selected values
|
// already confirmed, resurrect selected values
|
||||||
$selected = array_map('intval', explode(',', $this->getPosted('delete_confirm_value')));
|
$selected = explode(',', $this->getPosted('delete_confirm_value'));
|
||||||
|
foreach ($selected as $i => $_sel)
|
||||||
|
{
|
||||||
|
$selected[$i] = preg_replace('/[^\w\-]/', '', $_sel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete one by one - more control, less performance
|
// delete one by one - more control, less performance
|
||||||
// pass afterDelete() callback to tree delete method
|
// pass afterDelete() callback to tree delete method
|
||||||
$set_messages = true;
|
$set_messages = true;
|
||||||
|
$delcount = 0;
|
||||||
|
$nfcount = 0;
|
||||||
foreach ($selected as $id)
|
foreach ($selected as $id)
|
||||||
{
|
{
|
||||||
$data = array();
|
$data = array();
|
||||||
@@ -3810,6 +3820,7 @@ class e_admin_ui extends e_admin_controller_ui
|
|||||||
if($this->beforeDelete($data, $id))
|
if($this->beforeDelete($data, $id))
|
||||||
{
|
{
|
||||||
$check = $this->getTreeModel()->delete($id);
|
$check = $this->getTreeModel()->delete($id);
|
||||||
|
if($check) $delcount++;
|
||||||
if(!$this->afterDelete($data, $id, $check))
|
if(!$this->afterDelete($data, $id, $check))
|
||||||
{
|
{
|
||||||
$set_messages = false;
|
$set_messages = false;
|
||||||
@@ -3818,13 +3829,20 @@ class e_admin_ui extends e_admin_controller_ui
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$set_messages = "Couldn't get model";
|
$set_messages = true;
|
||||||
|
$nfcount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//$this->getTreeModel()->delete($selected);
|
//$this->getTreeModel()->delete($selected);
|
||||||
if($set_messages) $this->getTreeModel()->setMessages();
|
if($set_messages)
|
||||||
|
{
|
||||||
|
$this->getTreeModel()->setMessages();
|
||||||
|
// FIXME lan
|
||||||
|
if($delcount) e107::getMessage()->addSuccess(sprintf('<strong>%1$d records</strong> successfully deleted.', $delcount));
|
||||||
|
if($nfcount) e107::getMessage()->addError(sprintf('<strong>%1$d records</strong> not found and not deleted.', $nfcount));
|
||||||
|
}
|
||||||
|
|
||||||
//$this->redirect();
|
//$this->redirect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user