Fix creating report from user query result in plugin Report
authorJehan-Guillaume (ioguix) de Rorthais <ioguix@free.fr>
Wed, 16 Oct 2013 10:27:46 +0000 (12:27 +0200)
committerJehan-Guillaume de Rorthais <ioguix@free.fr>
Mon, 11 Nov 2013 18:41:46 +0000 (19:41 +0100)
Same story than in previous commit 3ec985e, but for plugin Report.

plugins/Report/plugin.php

index de464a6ab67d092b31318e4477ab3b9016700835..b37d8161cacf7c108825e2da807bb16964df6587 100644 (file)
@@ -248,8 +248,8 @@ class Report extends Plugin {
                                        = $_REQUEST['paginate'];
 
                                if (!empty($_SESSION['sqlquery'])) {
-                                       $params['navlinks']['report_link']['attr']['href']['urlvars']['report_sql']
-                                               = $_SESSION['sqlquery'];
+                                       $params['navlinks']['report_link']['attr']['href']['urlvars']['fromsql']
+                                               = 1;
                                }
                                else {
                                        if (isset($_REQUEST['subject'])
@@ -539,15 +539,21 @@ class Report extends Plugin {
                if (!isset($_REQUEST['db_name'])) $_REQUEST['db_name'] = '';
                if (!isset($_REQUEST['descr'])) $_REQUEST['descr'] = '';
                if (!isset($_REQUEST['report_sql'])) {
-                       $_REQUEST['sortkey'] = isset($_REQUEST['sortkey']) ? $_REQUEST['sortkey'] : '';
-                       if (preg_match('/^[0-9]+$/', $_REQUEST['sortkey']) && $_REQUEST['sortkey'] > 0) $orderby = array($_REQUEST['sortkey'] => $_REQUEST['sortdir']);
-                               else $orderby = array();
+                       // Set the query from session if linked from a user query result
+                       if (isset($_REQUEST['fromsql']) and $_REQUEST['fromsql'] == 1 ) {
+                               $_REQUEST['report_sql'] = $_SESSION['sqlquery'];
+                       }
+                       else {
+                               $_REQUEST['sortkey'] = isset($_REQUEST['sortkey']) ? $_REQUEST['sortkey'] : '';
+                               if (preg_match('/^[0-9]+$/', $_REQUEST['sortkey']) && $_REQUEST['sortkey'] > 0) $orderby = array($_REQUEST['sortkey'] => $_REQUEST['sortdir']);
+                                       else $orderby = array();
 
-            $subject = isset($_REQUEST['subject']) && isset($_REQUEST[$_REQUEST['subject']])
-                ? $_REQUEST[$_REQUEST['subject']]
-                : '';
+                               $subject = isset($_REQUEST['subject']) && isset($_REQUEST[$_REQUEST['subject']])
+                                       ? $_REQUEST[$_REQUEST['subject']]
+                                       : '';
 
-            $_REQUEST['report_sql'] = $data->getSelectSQL($subject, array(), array(), array(), $orderby);
+                               $_REQUEST['report_sql'] = $data->getSelectSQL($subject, array(), array(), array(), $orderby);
+                       }
                }
 
                if (isset($_REQUEST['database'])) {