Ejemplo n.º 1
0
 /**
  * \brief Generate output for this plug-in.
  */
 function Output()
 {
     if ($this->State != PLUGIN_STATE_READY) {
         return;
     }
     global $SysConf;
     global $Plugins;
     $html = "<table width='100%' border=0 cellpadding=0>\n  <tr>\n";
     $Uri = Traceback_dir();
     if (@$SysConf['SYSCONFIG']['LogoImage'] and @$SysConf['SYSCONFIG']['LogoLink']) {
         $LogoLink = $SysConf['SYSCONFIG']['LogoLink'];
         $LogoImg = $SysConf['SYSCONFIG']['LogoImage'];
     } else {
         $LogoLink = 'http://fossology.org';
         $LogoImg = Traceback_uri . 'images/fossology-logo.gif';
     }
     $html .= "    <td width='15%'>";
     $html .= "<a href='{$LogoLink}' target='_top'><img src='{$LogoImg}' align=absmiddle border=0></a>";
     $html .= "</td>\n";
     $html .= "    <td valign='top'>";
     $Menu =& $Plugins[plugin_find_id("menus")];
     $Menu->OutputSet($this->OutputType, 0);
     $html .= $Menu->Output();
     $html .= "    </td>\n";
     $html .= "  </tr>\n";
     $html .= "</table>\n";
     return $html;
 }
Ejemplo n.º 2
0
 /**
  * \brief Generate output for this plug-in.
  */
 function Output()
 {
     global $Plugins;
     global $SysConf;
     if ($this->State != PLUGIN_STATE_READY) {
         return;
     }
     $V = "";
     switch ($this->OutputType) {
         case "XML":
             break;
         case "HTML":
             $Uri = Traceback_dir();
             $V .= "<table width='100%' border=0 cellpadding=0>\n";
             $V .= "  <tr>\n";
             /* custom or default logo? */
             if (@$SysConf['SYSCONFIG']['LogoImage'] and @$SysConf['SYSCONFIG']['LogoLink']) {
                 $LogoLink = $SysConf['SYSCONFIG']['LogoLink'];
                 $LogoImg = $SysConf['SYSCONFIG']['LogoImage'];
             } else {
                 $LogoLink = 'http://fossology.org';
                 $LogoImg = Traceback_uri . 'images/fossology-logo.gif';
             }
             $V .= "    <td width='15%'>";
             $V .= "<a href='{$LogoLink}' target='_top'><img src='{$LogoImg}' align=absmiddle border=0></a>";
             $V .= "</td>\n";
             $V .= "    <td valign='top'>";
             $Menu =& $Plugins[plugin_find_id("menus")];
             $Menu->OutputSet($this->OutputType, 0);
             $V .= $Menu->Output();
             $Menu->OutputUnSet();
             $V .= "    </td>\n";
             $V .= "  </tr>\n";
             $V .= "</table>\n";
             break;
         case "Text":
             break;
         default:
             break;
     }
     if (!$this->OutputToStdout) {
         return $V;
     }
     print "{$V}";
     return;
 }
 /**
  * \brief test for Traceback_dir()
  */
 function test_Traceback_dir()
 {
     print "test function Traceback_dir()\n";
     $source = "http://fossology.org/repo/testdir?mod=test&parm=abc";
     $_SERVER['REQUEST_URI'] = $source;
     $expected = "http://fossology.org/repo/";
     $result = Traceback_dir();
     $this->assertEquals($expected, $result);
     print "Ending unit test for common-parm.php\n";
 }
Ejemplo n.º 4
0
    /**
    * @brief Output(): 
    * Requires:\n
           filter: optional filter to apply\n
           item1:  uploadtree_pk of the column 1 tree\n
           item2:  uploadtree_pk of the column 2 tree\n
           freeze: column number (1 or 2) to freeze
    */
    function Output()
    {
        if ($this->State != PLUGIN_STATE_READY) {
            return 0;
        }
        $uTime = microtime(true);
        $V = "";
        /**/
        $UpdCache = GetParm("updcache", PARM_INTEGER);
        /* Remove "updcache" from the GET args and set $this->UpdCache
         * This way all the url's based on the input args won't be
         * polluted with updcache
         * Use Traceback_parm_keep to ensure that all parameters are in order
         */
        $CacheKey = "?mod=" . $this->Name . Traceback_parm_keep(array("item1", "item2", "filter", "col", "freeze", "itemf"));
        if ($UpdCache) {
            $UpdCache = $_GET['updcache'];
            $_SERVER['REQUEST_URI'] = preg_replace("/&updcache=[0-9]*/", "", $_SERVER['REQUEST_URI']);
            unset($_GET['updcache']);
            $V = ReportCachePurgeByKey($CacheKey);
        } else {
            $V = ReportCacheGet($CacheKey);
        }
        /**/
        if (empty($V)) {
            $filter = GetParm("filter", PARM_STRING);
            if (empty($filter)) {
                $filter = "none";
            }
            $FreezeCol = GetParm("freeze", PARM_INTEGER);
            // which column to freeze?  1 or 2 or null
            $ClickedCol = GetParm("col", PARM_INTEGER);
            // which column was clicked on?  1 or 2 or null
            $ItemFrozen = GetParm("itemf", PARM_INTEGER);
            // frozen item or null
            $in_uploadtree_pk1 = GetParm("item1", PARM_INTEGER);
            $in_uploadtree_pk2 = GetParm("item2", PARM_INTEGER);
            if (empty($in_uploadtree_pk1) || empty($in_uploadtree_pk2)) {
                Fatal("Bad input parameters.  Both item1 and item2 must be specified.", __FILE__, __LINE__);
            }
            /* If you click on a item in a frozen column, then you are a dope so ignore $ItemFrozen */
            if ($FreezeCol == $ClickedCol) {
                $ItemFrozen = 0;
                $FreezeCol = 0;
            }
            /* Check item1 upload permission */
            $Item1Row = GetSingleRec("uploadtree", "WHERE uploadtree_pk = {$in_uploadtree_pk1}");
            $UploadPerm = GetUploadPerm($Item1Row['upload_fk']);
            if ($UploadPerm < PERM_READ) {
                $text = _("Permission Denied");
                echo "<h2>{$text} item 1<h2>";
                return;
            }
            /* Check item2 upload permission */
            $Item2Row = GetSingleRec("uploadtree", "WHERE uploadtree_pk = {$in_uploadtree_pk2}");
            $UploadPerm = GetUploadPerm($Item2Row['upload_fk']);
            if ($UploadPerm < PERM_READ) {
                $text = _("Permission Denied");
                echo "<h2>{$text} item 2<h2>";
                return;
            }
            $uploadtree_pk1 = $in_uploadtree_pk1;
            $uploadtree_pk2 = $in_uploadtree_pk2;
            if ($FreezeCol == 1) {
                $uploadtree_pk1 = $ItemFrozen;
            } else {
                if ($FreezeCol == 2) {
                    $uploadtree_pk2 = $ItemFrozen;
                }
            }
            $newURL = Traceback_dir() . "?mod=" . $this->Name . "&item1={$uploadtree_pk1}&item2={$uploadtree_pk2}";
            if (!empty($filter)) {
                $newURL .= "&filter={$filter}";
            }
            // rewrite page with new uploadtree_pks */
            if ($uploadtree_pk1 != $in_uploadtree_pk1 || $uploadtree_pk2 != $in_uploadtree_pk2) {
                print <<<JSOUT
<script type="text/javascript">
  window.location.assign('{$newURL}');
</script>
JSOUT;
            }
            $TreeInfo1 = $this->GetTreeInfo($uploadtree_pk1);
            $TreeInfo2 = $this->GetTreeInfo($uploadtree_pk2);
            $ErrText = _("No license data for tree %d.  Use Jobs > Agents to schedule a license scan.");
            $ErrMsg = '';
            if ($TreeInfo1['agent_pk'] == 0) {
                $ErrMsg = sprintf($ErrText, 1);
            } else {
                if ($TreeInfo2['agent_pk'] == 0) {
                    $ErrMsg = sprintf($ErrText, 2);
                } else {
                    $BucketDefArray = initBucketDefArray($TreeInfo1['bucketpool_pk']);
                    /* Get list of children */
                    $Children1 = GetNonArtifactChildren($uploadtree_pk1);
                    $Children2 = GetNonArtifactChildren($uploadtree_pk2);
                    /* Add fuzzyname to children */
                    FuzzyName($Children1);
                    // add fuzzyname to children
                    FuzzyName($Children2);
                    // add fuzzyname to children
                    /* add element licstr to children */
                    $this->AddBucketStr($TreeInfo1, $Children1, $BucketDefArray);
                    $this->AddBucketStr($TreeInfo2, $Children2, $BucketDefArray);
                    /* Master array of children, aligned.   */
                    $Master = MakeMaster($Children1, $Children2);
                    /* add linkurl to children */
                    FileList($Master, $TreeInfo1['agent_pk'], $TreeInfo2['agent_pk'], $filter, $this, $uploadtree_pk1, $uploadtree_pk2);
                    /* Apply filter */
                    $this->FilterChildren($filter, $Master, $BucketDefArray);
                }
            }
            switch ($this->OutputType) {
                case "XML":
                    break;
                case "HTML":
                    if ($ErrMsg) {
                        $V .= $ErrMsg;
                    } else {
                        $V .= $this->HTMLout($Master, $uploadtree_pk1, $uploadtree_pk2, $in_uploadtree_pk1, $in_uploadtree_pk2, $filter, $TreeInfo1, $TreeInfo2, $BucketDefArray);
                    }
                    break;
                case "Text":
                    break;
                default:
            }
            $Cached = false;
        } else {
            $Cached = true;
        }
        if (!$this->OutputToStdout) {
            return $V;
        }
        print "{$V}";
        $Time = microtime(true) - $uTime;
        // convert usecs to secs
        $text = _("Elapsed time: %.2f seconds");
        printf("<small>{$text}</small>", $Time);
        /**/
        if ($Cached) {
            $text = _("cached");
            $text1 = _("Update");
            echo " <i>{$text}</i>   <a href=\"{$_SERVER['REQUEST_URI']}&updcache=1\"> {$text1} </a>";
        } else {
            //  Cache Report if this took longer than 1/2 second
            if ($Time > 0.5) {
                ReportCachePut($CacheKey, $V);
            }
        }
        /**/
        return;
    }
Ejemplo n.º 5
0
function menu_to_1html($Menu, $ShowRefresh = 1, $ShowTraceback = 0, $ShowAll = 1)
{
    $V = "";
    $Std = "";
    global $menu_to_1html_counter;
    if ($ShowTraceback) {
        global $Plugins;
        $Refresh =& $Plugins[plugin_find_id("refresh")];
        if (!empty($Refresh)) {
            $text = _("Traceback");
            $URL = Traceback_dir() . "?" . $Refresh->GetRefresh();
            $Std .= "<a href='{$URL}' target='_top'>{$text}</a>";
        }
    }
    if ($ShowRefresh) {
        if (!empty($Std)) {
            $Std .= " | ";
        }
        $text = _("Refresh");
        $Std .= "<a href='" . Traceback() . "'>{$text}</a>";
    }
    $First = 1;
    if (!empty($Menu)) {
        foreach ($Menu as $Val) {
            if ($Val->Name == "[BREAK]") {
                if (!$First) {
                    $V .= " &nbsp;&nbsp;&bull;&nbsp;&nbsp; ";
                }
                $First = 1;
            } else {
                if (!empty($Val->HTML)) {
                    $V .= $Val->HTML;
                    $First = 0;
                } else {
                    if (!empty($Val->URI)) {
                        if (!$First) {
                            $V .= " | ";
                        }
                        $V .= "<a href='" . Traceback_uri() . "?mod=" . $Val->URI . "'";
                        if (!empty($Val->Title)) {
                            $V .= " title='" . htmlentities($Val->Title, ENT_QUOTES) . "'";
                        }
                        $V .= ">";
                        if (@$_SESSION['fullmenudebug'] == 1) {
                            $V .= $Val->FullName . "(" . $Val->Order . ")";
                        } else {
                            $V .= $Val->Name;
                        }
                        $V .= "</a>";
                        $First = 0;
                    } else {
                        if ($ShowAll) {
                            if (!$First) {
                                $V .= " | ";
                            }
                            if (@$_SESSION['fullmenudebug'] == 1) {
                                $V .= $Val->FullName . "(" . $Val->Order . ")";
                            } else {
                                $V .= $Val->Name;
                            }
                            $First = 0;
                        }
                    }
                }
            }
        }
    }
    if (!empty($Std)) {
        if (!$First) {
            $V .= " &nbsp;&nbsp;&bull;&nbsp;&nbsp; ";
        }
        $V .= $Std;
        $Std = NULL;
    }
    $menu_to_1html_counter++;
    return "<div id='menu1html-{$menu_to_1html_counter}' align='right' style='padding:0px 5px 0px 5px'><small>{$V}</small></div>";
}
Ejemplo n.º 6
0
    public function htmlContent()
    {
        $filter = GetParm("filter", PARM_STRING);
        if (empty($filter)) {
            $filter = "none";
        }
        $FreezeCol = GetParm("freeze", PARM_INTEGER);
        // which column to freeze?  1 or 2 or null
        $ClickedCol = GetParm("col", PARM_INTEGER);
        // which column was clicked on?  1 or 2 or null
        $ItemFrozen = GetParm("itemf", PARM_INTEGER);
        // frozen item or null
        $in_uploadtree_pk1 = GetParm("item1", PARM_INTEGER);
        $in_uploadtree_pk2 = GetParm("item2", PARM_INTEGER);
        if (empty($in_uploadtree_pk1) || empty($in_uploadtree_pk2)) {
            Fatal("Bad input parameters.  Both item1 and item2 must be specified.", __FILE__, __LINE__);
        }
        /* If you click on a item in a frozen column, then you are a dope so ignore $ItemFrozen */
        if ($FreezeCol == $ClickedCol) {
            $ItemFrozen = 0;
            $FreezeCol = 0;
        }
        /* @var $uploadDao UploadDao */
        $uploadDao = $GLOBALS['container']->get('dao.upload');
        /* Check item1 upload permission */
        $Item1Row = $uploadDao->getUploadEntry($in_uploadtree_pk1);
        if (!$uploadDao->isAccessible($Item1Row['upload_fk'], Auth::getGroupId())) {
            $text = _("Permission Denied");
            return "<h2>{$text} item 1</h2>";
        }
        /* Check item2 upload permission */
        $Item2Row = $uploadDao->getUploadEntry($in_uploadtree_pk2);
        if (!$uploadDao->isAccessible($Item2Row['upload_fk'], Auth::getGroupId())) {
            $text = _("Permission Denied");
            return "<h2>{$text} item 2</h2>";
        }
        $uploadtree_pk1 = $in_uploadtree_pk1;
        $uploadtree_pk2 = $in_uploadtree_pk2;
        if ($FreezeCol == 1) {
            $uploadtree_pk1 = $ItemFrozen;
        } else {
            if ($FreezeCol == 2) {
                $uploadtree_pk2 = $ItemFrozen;
            }
        }
        $newURL = Traceback_dir() . "?mod=" . $this->Name . "&item1={$uploadtree_pk1}&item2={$uploadtree_pk2}";
        if (!empty($filter)) {
            $newURL .= "&filter={$filter}";
        }
        // rewrite page with new uploadtree_pks */
        if ($uploadtree_pk1 != $in_uploadtree_pk1 || $uploadtree_pk2 != $in_uploadtree_pk2) {
            print <<<JSOUT
<script type="text/javascript">
  window.location.assign('{$newURL}');
</script>
JSOUT;
        }
        $TreeInfo1 = $this->GetTreeInfo($uploadtree_pk1);
        $TreeInfo2 = $this->GetTreeInfo($uploadtree_pk2);
        $ErrText = _("No license data for tree %d.  Use Jobs > Agents to schedule a license scan.");
        $ErrMsg = '';
        if ($TreeInfo1['agent_pk'] == 0) {
            $ErrMsg = sprintf($ErrText, 1);
        } else {
            if ($TreeInfo2['agent_pk'] == 0) {
                $ErrMsg = sprintf($ErrText, 2);
            } else {
                $BucketDefArray1 = initBucketDefArray($TreeInfo1['bucketpool_pk']);
                $BucketDefArray2 = initBucketDefArray($TreeInfo2['bucketpool_pk']);
                $BucketDefArray = $BucketDefArray1 + $BucketDefArray2;
                /* Get list of children */
                $Children1 = GetNonArtifactChildren($uploadtree_pk1);
                $Children2 = GetNonArtifactChildren($uploadtree_pk2);
                /* Add fuzzyname to children */
                FuzzyName($Children1);
                // add fuzzyname to children
                FuzzyName($Children2);
                // add fuzzyname to children
                /* add element licstr to children */
                $this->AddBucketStr($TreeInfo1, $Children1, $BucketDefArray);
                $this->AddBucketStr($TreeInfo2, $Children2, $BucketDefArray);
                /* Master array of children, aligned.   */
                $Master = MakeMaster($Children1, $Children2);
                /* add linkurl to children */
                FileList($Master, $TreeInfo1['agent_pk'], $TreeInfo2['agent_pk'], $filter, $this, $uploadtree_pk1, $uploadtree_pk2);
                /* Apply filter */
                $this->FilterChildren($filter, $Master, $BucketDefArray);
            }
        }
        if ($this->OutputType == 'HTML') {
            if ($ErrMsg) {
                $V .= $ErrMsg;
            } else {
                $V .= $this->HTMLout($Master, $uploadtree_pk1, $uploadtree_pk2, $in_uploadtree_pk1, $in_uploadtree_pk2, $filter, $TreeInfo1, $TreeInfo2, $BucketDefArray);
            }
        }
        return $V;
    }