From 4cc4f08bbc89937ccba770b0479fe7f1b5840936 Mon Sep 17 00:00:00 2001 From: Jared Hancock <jared@osticket.com> Date: Sun, 2 Aug 2015 21:16:49 -0500 Subject: [PATCH] dept: Fix incorrect SQL removing a department * Set all "route department" filter actions to "unchanged" * Fix bug in quick-add code where new option was not properly added --- include/class.dept.php | 12 +++++++++++- include/class.filter_action.php | 6 +++--- scp/js/scp.js | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/include/class.dept.php b/include/class.dept.php index a483eecc6..9979d2d0c 100644 --- a/include/class.dept.php +++ b/include/class.dept.php @@ -367,7 +367,17 @@ implements TemplateVariable { ->filter(array('dept_id' => $id)) ->delete(); - db_query('UPDATE '.FILTER_TABLE.' SET dept_id=0 WHERE dept_id='.db_input($id)); + foreach(FilterAction::objects() + ->filter(array('type' => FA_RouteDepartment::$type)) as $fa + ) { + $config = $fa->getConfiguration(); + if ($config && $config['dept_id'] == $id) { + $config['dept_id'] = 0; + // FIXME: Move this code into FilterAction class + $fa->set('configuration', JsonDataEncoder::encode($config)); + $fa->save(); + } + } // Delete extended access entries StaffDeptAccess::objects() diff --git a/include/class.filter_action.php b/include/class.filter_action.php index 62d66cb32..65a316c4d 100644 --- a/include/class.filter_action.php +++ b/include/class.filter_action.php @@ -285,10 +285,10 @@ class FA_RouteDepartment extends TriggerAction { 'prompt' => __('Unchanged'), 'data' => array('quick-add' => 'department'), ), - 'choices' => array_merge( - Dept::getDepartments(), + 'choices' => + Dept::getDepartments() + array(':new:' => '— '.__('Add New').' —') - ), + , 'validators' => function($self) { if ($self->getClean() === ':new:') $self->addError(__('Select a department')); diff --git a/scp/js/scp.js b/scp/js/scp.js index 9d72b9637..0568c6064 100644 --- a/scp/js/scp.js +++ b/scp/js/scp.js @@ -1058,7 +1058,7 @@ $(document).on('change', 'select[data-quick-add]', function() { $('<option>') .attr('value', id) .text(data.name) - .insertBefore($('select[data-quick-add="'+type+'"] option[data-quick-add]')); + .insertBefore(selected) $select.val(id); } }); -- GitLab