/** * @brief HTML output * @param $Master * @param $uploadtree_pk1 * @param $uploadtree_pk2 * @param $in_uploadtree_pk1 * @param $in_uploadtree_pk2 * @param $filter * @param $TreeInfo1 * @param $TreeInfo2 * @param $BucketDefArray * @return HTML as string. */ function HTMLout($Master, $uploadtree_pk1, $uploadtree_pk2, $in_uploadtree_pk1, $in_uploadtree_pk2, $filter, $TreeInfo1, $TreeInfo2, $BucketDefArray) { /* Initialize */ $FreezeText = _("Freeze Path"); $FrozenText = _("Frozen, Click to unfreeze"); $OutBuf = ''; /******* javascript functions ********/ $OutBuf .= "\n<script language='javascript'>\n"; /* function to replace this page specifying a new filter parameter */ $OutBuf .= "function ChangeFilter(selectObj, utpk1, utpk2){"; $OutBuf .= " var selectidx = selectObj.selectedIndex;"; $OutBuf .= " var filter = selectObj.options[selectidx].value;"; $OutBuf .= ' window.location.assign("?mod=' . $this->Name . '&item1="+utpk1+"&item2="+utpk2+"&filter=" + filter); '; $OutBuf .= "}\n"; /* Freeze function (path list in banner) FreezeColNo is the ID of the column to freeze: 1 or 2 Toggle Freeze button label: Freeze Path <-> Unfreeze Path Toggle Freeze button background color: white to light blue Toggle which paths are frozen: if path1 freezes, then unfreeze path2. Rewrite urls: eg &item1 -> &Fitem1 */ $OutBuf .= "function Freeze(FreezeColNo) {"; $OutBuf .= "var FreezeElt1 = document.getElementById('Freeze1');"; $OutBuf .= "var FreezeElt2 = document.getElementById('Freeze2');"; $OutBuf .= "var AddFreezeArg = 1; "; //1 to add &freeze=, 0 to remove &freeze= from url $OutBuf .= "var old_uploadtree_pk;\n"; /* change the freeze labels to denote their new status */ $OutBuf .= "if (FreezeColNo == '1')"; $OutBuf .= "{"; $OutBuf .= "if (FreezeElt1.innerHTML == '{$FrozenText}') "; $OutBuf .= "{"; $OutBuf .= "FreezeElt1.innerHTML = '{$FreezeText}';"; $OutBuf .= "FreezeElt1.style.backgroundColor = 'white'; "; $OutBuf .= "AddFreezeArg = 0;"; $OutBuf .= "}"; $OutBuf .= "else { "; $OutBuf .= "FreezeElt1.innerHTML = '{$FrozenText}'; "; $OutBuf .= "FreezeElt1.style.backgroundColor = '#EAF7FB'; "; $OutBuf .= "FreezeElt2.innerHTML = '{$FreezeText}';"; $OutBuf .= "FreezeElt2.style.backgroundColor = 'white';"; $OutBuf .= "old_uploadtree_pk = {$in_uploadtree_pk1};"; $OutBuf .= "}"; $OutBuf .= "}"; $OutBuf .= "else {"; $OutBuf .= "if (FreezeElt2.innerHTML == '{$FrozenText}') "; $OutBuf .= "{"; $OutBuf .= "FreezeElt2.innerHTML = '{$FreezeText}';"; $OutBuf .= "FreezeElt2.style.backgroundColor = 'white';"; $OutBuf .= "AddFreezeArg = 0;"; $OutBuf .= "}"; $OutBuf .= "else {"; $OutBuf .= "FreezeElt1.innerHTML = '{$FreezeText}';"; $OutBuf .= "FreezeElt1.style.backgroundColor = 'white';"; $OutBuf .= "FreezeElt2.innerHTML = '{$FrozenText}';"; $OutBuf .= "FreezeElt2.style.backgroundColor = '#EAF7FB';"; $OutBuf .= "old_uploadtree_pk = {$in_uploadtree_pk2};"; $OutBuf .= "}"; $OutBuf .= "}"; /* Alter the url to add or remove freeze={column number} */ $OutBuf .= "var i=0;\n"; $OutBuf .= "var linkid;\n"; $OutBuf .= "var linkelt;\n"; $OutBuf .= "var FreezeIdx;\n"; $OutBuf .= "var BaseURL;\n"; $OutBuf .= "var numlinks = document.links.length;\n"; $OutBuf .= "for (i=0; i < numlinks; i++)\n"; $OutBuf .= "{"; $OutBuf .= "linkelt = document.links[i];\n"; // freeze is the last url arg, so trim it off if it exists $OutBuf .= "FreezeIdx = linkelt.href.indexOf('&freeze');\n"; $OutBuf .= "if (FreezeIdx > 0) \n"; $OutBuf .= "BaseURL = linkelt.href.substr(0,FreezeIdx); \n"; $OutBuf .= "else "; $OutBuf .= "BaseURL = linkelt.href; \n"; $OutBuf .= "if (AddFreezeArg == 1) \n "; $OutBuf .= "linkelt.href = BaseURL + '&freeze=' + FreezeColNo + '&itemf=' + old_uploadtree_pk;"; $OutBuf .= "else \n"; $OutBuf .= "linkelt.href = BaseURL;"; $OutBuf .= "}\n"; $OutBuf .= "}\n"; $OutBuf .= "</script>\n"; /******* END javascript functions ********/ /* Select list for filters */ $SelectFilter = "<select name='diff_filter' id='diff_filter' onchange='ChangeFilter(this,{$uploadtree_pk1}, {$uploadtree_pk2})'>"; $Selected = $filter == 'none' ? "selected" : ""; $SelectFilter .= "<option {$Selected} value='none'>Remove nothing"; $Selected = $filter == 'samebucketlist' ? "selected" : ""; $SelectFilter .= "<option {$Selected} value='samebucketlist'>Remove unchanged bucket lists"; $SelectFilter .= "</select>"; $StyleRt = "style='float:right'"; $OutBuf .= "<a name='flist' href='#histo' {$StyleRt} > Jump to histogram </a><br>"; /* Switch to license diff view */ $text = _("Switch to license view"); $switchURL = Traceback_uri(); $switchURL .= "?mod=nomosdiff&item1={$uploadtree_pk1}&item2={$uploadtree_pk2}"; $OutBuf .= "<a href='{$switchURL}' {$StyleRt} > {$text} </a> "; // $TableStyle = "style='border-style:collapse;border:1px solid black'"; $TableStyle = ""; $OutBuf .= "<table border=0 id='dirlist' {$TableStyle}>"; /* Select filter pulldown */ $OutBuf .= "<tr><td colspan=5 align='center'>Filter: {$SelectFilter}<br> </td></tr>"; /* File path */ $OutBuf .= "<tr>"; $Path1 = Dir2Path($uploadtree_pk1); $Path2 = Dir2Path($uploadtree_pk2); $OutBuf .= "<td colspan=2>"; $OutBuf .= Dir2BrowseDiff($Path1, $Path2, $filter, 1, $this); $OutBuf .= "</td>"; $OutBuf .= "<td {$this->ColumnSeparatorStyleL} colspan=3>"; $OutBuf .= Dir2BrowseDiff($Path1, $Path2, $filter, 2, $this); $OutBuf .= "</td></tr>"; /* File comparison table */ $OutBuf .= $this->ItemComparisonRows($Master, $TreeInfo1['agent_pk'], $TreeInfo2['agent_pk'], $BucketDefArray); /* Separator row */ $ColumnSeparatorStyleTop = "style='border:solid 0 #006600; border-top-width:2px; border-bottom-width:2px;'"; $OutBuf .= "<tr>"; $OutBuf .= "<td colspan=5 {$ColumnSeparatorStyleTop}>"; $OutBuf .= "<a name='histo' href='#flist' style='float:right'> Jump to top </a>"; $OutBuf .= "</a>"; $OutBuf .= "</tr>"; /* License histogram */ $OutBuf .= "<tr>"; $Tree1Hist = $this->UploadHist($uploadtree_pk1, $TreeInfo1, $BucketDefArray); $OutBuf .= "<td colspan=2 valign='top' align='center'>{$Tree1Hist}</td>"; $OutBuf .= "<td {$this->ColumnSeparatorStyleL}> </td>"; $Tree2Hist = $this->UploadHist($uploadtree_pk2, $TreeInfo2, $BucketDefArray); $OutBuf .= "<td colspan=2 valign='top' align='center'>{$Tree2Hist}</td>"; $OutBuf .= "</tr></table>\n"; $OutBuf .= "<a href='#flist' style='float:right'> Jump to top </a><p>"; return $OutBuf; }
/** * \brief HTML output, returns HTML as string. */ function HTMLout($Master, $uploadtree_pk1, $uploadtree_pk2, $in_uploadtree_pk1, $in_uploadtree_pk2, $filter, $TreeInfo1, $TreeInfo2) { /* Initialize */ $FreezeText = _("Freeze Path"); $unFreezeText = _("Frozen, Click to unfreeze"); $OutBuf = ''; /******* javascript functions ********/ $OutBuf .= "\n<script language='javascript'>\n"; /* function to replace this page specifying a new filter parameter */ $OutBuf .= "function ChangeFilter(selectObj, utpk1, utpk2){"; $OutBuf .= " var selectidx = selectObj.selectedIndex;"; $OutBuf .= " var filter = selectObj.options[selectidx].value;"; $OutBuf .= ' window.location.assign("?mod=' . $this->Name . '&item1="+utpk1+"&item2="+utpk2+"&filter=" + filter); '; $OutBuf .= "}"; /* Freeze function (path list in banner) FreezeColNo is the ID of the column to freeze: 1 or 2 Toggle Freeze button label: Freeze Path <-> Unfreeze Path Toggle Freeze button background color: white to light blue Toggle which paths are frozen: if path1 freezes, then unfreeze path2. Rewrite urls: eg &item1 -> &Fitem1 */ $OutBuf .= "function Freeze(FreezeColNo) {"; $OutBuf .= "var FreezeElt1 = document.getElementById('Freeze1');"; $OutBuf .= "var FreezeElt2 = document.getElementById('Freeze2');"; /* change the freeze labels to denote their new status */ $OutBuf .= "if (FreezeColNo == '1')"; $OutBuf .= "{"; $OutBuf .= "if (FreezeElt1.innerHTML == '{$unFreezeText}') "; $OutBuf .= "{"; $OutBuf .= "FreezeElt1.innerHTML = '{$FreezeText}';"; $OutBuf .= "FreezeElt1.style.backgroundColor = 'white';"; $OutBuf .= "}"; $OutBuf .= "else {"; $OutBuf .= "FreezeElt1.innerHTML = '{$unFreezeText}';"; $OutBuf .= "FreezeElt1.style.backgroundColor = '#EAF7FB';"; $OutBuf .= "FreezeElt2.innerHTML = '{$FreezeText}';"; $OutBuf .= "FreezeElt2.style.backgroundColor = 'white';"; $OutBuf .= "}"; $OutBuf .= "}"; $OutBuf .= "else {"; $OutBuf .= "if (FreezeElt2.innerHTML == '{$unFreezeText}') "; $OutBuf .= "{"; $OutBuf .= "FreezeElt2.innerHTML = '{$FreezeText}';"; $OutBuf .= "FreezeElt2.style.backgroundColor = 'white';"; $OutBuf .= "}"; $OutBuf .= "else {"; $OutBuf .= "FreezeElt1.innerHTML = '{$FreezeText}';"; $OutBuf .= "FreezeElt1.style.backgroundColor = 'white';"; $OutBuf .= "FreezeElt2.innerHTML = '{$unFreezeText}';"; $OutBuf .= "FreezeElt2.style.backgroundColor = '#EAF7FB';"; $OutBuf .= "}"; $OutBuf .= "}"; /* Alter the url to add freeze={column number} */ $OutBuf .= "var i=0;"; $OutBuf .= "var linkid;"; $OutBuf .= "var linkelt;"; $OutBuf .= "var UpdateCol;"; $OutBuf .= "if (FreezeColNo == 1) UpdateCol=2;else UpdateCol=1;"; $OutBuf .= "var numlinks = document.links.length;"; $OutBuf .= "for (i=0; i < numlinks; i++)"; $OutBuf .= "{"; $OutBuf .= "linkelt = document.links[i];"; $OutBuf .= "if (linkelt.href.indexOf('col='+UpdateCol) >= 0)"; $OutBuf .= "{"; $OutBuf .= "linkelt.href = linkelt.href + '&freeze=' + FreezeColNo;"; $OutBuf .= "}"; $OutBuf .= "}"; $OutBuf .= "}"; $OutBuf .= "</script>\n"; /******* END javascript functions ********/ /* Select list for filters */ $SelectFilter = "<select name='diff_filter' id='diff_filter' onchange='ChangeFilter(this,{$uploadtree_pk1}, {$uploadtree_pk2})'>"; $Selected = $filter == 'none' ? "selected" : ""; $SelectFilter .= "<option {$Selected} value='none'>0. Remove nothing"; $Selected = $filter == 'samehash' ? "selected" : ""; $SelectFilter .= "<option {$Selected} value='samehash'>1. Remove duplicate (same hash) files"; $Selected = $filter == 'samelic' ? "selected" : ""; $SelectFilter .= "<option {$Selected} value='samelic'>2. Remove duplicate files (different hash) with unchanged licenses"; $Selected = $filter == 'samelicfuzzy' ? "selected" : ""; $SelectFilter .= "<option {$Selected} value='samelicfuzzy'>2b. Same as 2 but fuzzy match file names"; $Selected = $filter == 'nolics' ? "selected" : ""; $SelectFilter .= "<option {$Selected} value='nolics'>3. Same as 2b. but also remove files with no license"; $SelectFilter .= "</select>"; $StyleRt = "style='float:right'"; $OutBuf .= "<a name='flist' href='#histo' {$StyleRt} > Jump to histogram </a><br>"; /* Switch to bucket diff view */ $text = _("Switch to bucket view"); $BucketURL = Traceback_uri(); $BucketURL .= "?mod=bucketsdiff&item1={$uploadtree_pk1}&item2={$uploadtree_pk2}"; $OutBuf .= "<a href='{$BucketURL}' {$StyleRt} > {$text} </a> "; // $TableStyle = "style='border-style:collapse;border:1px solid black'"; $TableStyle = ""; $OutBuf .= "<table border=0 id='dirlist' {$TableStyle}>"; /* Select filter pulldown */ $OutBuf .= "<tr><td colspan=5 align='center'>Filter: {$SelectFilter}<br> </td></tr>"; /* File path */ $OutBuf .= "<tr>"; $Path1 = Dir2Path($uploadtree_pk1, $TreeInfo1['uploadtree_tablename']); $Path2 = Dir2Path($uploadtree_pk2, $TreeInfo2['uploadtree_tablename']); $OutBuf .= "<td colspan=2>"; $OutBuf .= Dir2BrowseDiff($Path1, $Path2, $filter, 1, $this); $OutBuf .= "</td>"; $OutBuf .= "<td {$this->ColumnSeparatorStyleL} colspan=3>"; $OutBuf .= Dir2BrowseDiff($Path1, $Path2, $filter, 2, $this); $OutBuf .= "</td></tr>"; /* File comparison table */ $OutBuf .= $this->ItemComparisonRows($Master, $TreeInfo1['agent_pk'], $TreeInfo2['agent_pk']); /* Separator row */ $ColumnSeparatorStyleTop = "style='border:solid 0 #006600; border-top-width:2px; border-bottom-width:2px;'"; $OutBuf .= "<tr>"; $OutBuf .= "<td colspan=5 {$ColumnSeparatorStyleTop}>"; $OutBuf .= "<a name='histo' href='#flist' style='float:right'> Jump to top </a>"; $OutBuf .= "</a>"; $OutBuf .= "</tr>"; /* License histogram */ $OutBuf .= "<tr>"; $Tree1Hist = $this->UploadHist($uploadtree_pk1, $TreeInfo1); $OutBuf .= "<td colspan=2 valign='top' align='center'>{$Tree1Hist}</td>"; $OutBuf .= "<td {$this->ColumnSeparatorStyleL}> </td>"; $Tree2Hist = $this->UploadHist($uploadtree_pk2, $TreeInfo2); $OutBuf .= "<td colspan=2 valign='top' align='center'>{$Tree2Hist}</td>"; $OutBuf .= "</tr></table>\n"; $OutBuf .= "<a href='#flist' style='float:right'> Jump to top </a><p>"; return $OutBuf; }