/** * (POST only) * params: route_id, priority */ protected function action_change_priority() { $input = $this->input; $route = new nc_routing_route($input->fetch_post('route_id')); $old_priority = (int) $route->get('priority'); $new_priority = (int) $input->fetch_post('priority'); if ($new_priority && $old_priority != $new_priority) { if ($new_priority < $old_priority) { // moving upward $direction = '+'; $min = $new_priority; $max = $old_priority; } else { // moving downward $direction = '-'; $min = $old_priority; $max = $new_priority; } nc_db()->query("UPDATE `{$route->get_table_name()}`\n SET `Priority` = `Priority` {$direction} 1\n WHERE `Site_ID` = " . (int) $route->get('site_id') . "\n AND `Priority` BETWEEN {$min} AND {$max}"); $route->set('priority', $new_priority)->save(); } exit; }