Check if dialplan_detail_enabled is true or if null consider the value as true and add line feeds to improve readability of the SQL statement.

This commit is contained in:
FusionPBX
2021-01-19 18:59:09 -07:00
committed by GitHub
parent e64c70ff9d
commit 1ddf5bbf41
+25 -24
View File
@@ -600,42 +600,43 @@
if ($this->source == "details") { if ($this->source == "details") {
//get the data using a join between the dialplans and dialplan details tables //get the data using a join between the dialplans and dialplan details tables
$sql = "select "; $sql = "select \n";
$sql .= "p.domain_uuid, p.dialplan_uuid, p.app_uuid, p.dialplan_context, p.dialplan_name, p.dialplan_number, "; $sql .= "p.domain_uuid, p.dialplan_uuid, p.app_uuid, p.dialplan_context, p.dialplan_name, p.dialplan_number, \n";
$sql .= "p.dialplan_continue, p.dialplan_order, p.dialplan_enabled, p.dialplan_description, "; $sql .= "p.dialplan_continue, p.dialplan_order, p.dialplan_enabled, p.dialplan_description, \n";
$sql .= "s.dialplan_detail_uuid, s.dialplan_detail_tag, s.dialplan_detail_type, s.dialplan_detail_data, "; $sql .= "s.dialplan_detail_uuid, s.dialplan_detail_tag, s.dialplan_detail_type, s.dialplan_detail_data, \n";
$sql .= "s.dialplan_detail_break, s.dialplan_detail_inline, s.dialplan_detail_group, s.dialplan_detail_order "; $sql .= "s.dialplan_detail_break, s.dialplan_detail_inline, s.dialplan_detail_group, s.dialplan_detail_order, s.dialplan_detail_enabled \n";
$sql .= "from v_dialplans as p, v_dialplan_details as s "; $sql .= "from v_dialplans as p, v_dialplan_details as s \n";
$sql .= "where p.dialplan_uuid = s.dialplan_uuid "; $sql .= "where p.dialplan_uuid = s.dialplan_uuid \n";
if ($this->is_empty == "dialplan_xml") { if ($this->is_empty == "dialplan_xml") {
$sql .= "and p.dialplan_xml is null "; $sql .= "and p.dialplan_xml is null \n";
} }
if (isset($this->context)) { if (isset($this->context)) {
if ($this->context == "public" || substr($this->context, 0, 7) == "public@" || substr($this->context, -7) == ".public") { if ($this->context == "public" || substr($this->context, 0, 7) == "public@" || substr($this->context, -7) == ".public") {
$sql .= "and p.dialplan_context = :dialplan_context "; $sql .= "and p.dialplan_context = :dialplan_context \n";
} }
else { else {
$sql .= "and (p.dialplan_context = :dialplan_context or p.dialplan_context = '\${domain_name}') "; $sql .= "and (p.dialplan_context = :dialplan_context or p.dialplan_context = '\${domain_name}') \n";
} }
$sql .= "and p.dialplan_enabled = 'true' "; $sql .= "and p.dialplan_enabled = 'true' \n";
$parameters['dialplan_context'] = $this->context; $parameters['dialplan_context'] = $this->context;
} }
if (is_uuid($this->uuid)) { if (is_uuid($this->uuid)) {
$sql .= "and p.dialplan_uuid = :dialplan_uuid "; $sql .= "and p.dialplan_uuid = :dialplan_uuid \n";
$sql .= "and s.dialplan_uuid = :dialplan_uuid "; $sql .= "and s.dialplan_uuid = :dialplan_uuid \n";
$parameters['dialplan_uuid'] = $this->uuid; $parameters['dialplan_uuid'] = $this->uuid;
} }
$sql .= "order by "; $sql .= "and (s.dialplan_detail_enabled = 'true' or s.dialplan_detail_enabled is null) \n";
$sql .= "p.dialplan_order asc, "; $sql .= "order by \n";
$sql .= "p.dialplan_name asc, "; $sql .= "p.dialplan_order asc, \n";
$sql .= "p.dialplan_uuid asc, "; $sql .= "p.dialplan_name asc, \n";
$sql .= "s.dialplan_detail_group asc, "; $sql .= "p.dialplan_uuid asc, \n";
$sql .= "case s.dialplan_detail_tag "; $sql .= "s.dialplan_detail_group asc, \n";
$sql .= "when 'condition' then 1 "; $sql .= "case s.dialplan_detail_tag \n";
$sql .= "when 'action' then 2 "; $sql .= "when 'condition' then 1 \n";
$sql .= "when 'anti-action' then 3 "; $sql .= "when 'action' then 2 \n";
$sql .= "else 100 end, "; $sql .= "when 'anti-action' then 3 \n";
$sql .= "s.dialplan_detail_order asc "; $sql .= "else 100 end, \n";
$sql .= "s.dialplan_detail_order asc \n";
$database = new database; $database = new database;
$results = $database->select($sql, $parameters, 'all'); $results = $database->select($sql, $parameters, 'all');
unset($sql, $parameters); unset($sql, $parameters);