diff --git a/include/class.dept.php b/include/class.dept.php index a483eecc6e23b3d9f059c4e17307c9bf377ae1f1..9979d2d0cf31f93627367c4bb8b62bfd3a53de6c 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 62d66cb325d8ff2d4b70b60bbad8f2697ada7908..65a316c4d00690a0e040688f71f338c49f650cf5 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 9d72b96378aa90bebc0560349d0f42f9133fe45b..0568c60641f4faae00b866043f304aee5e6aeb59 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); } });