Subversion Repositories DevTools

Rev

Rev 6080 | Rev 6701 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'|                                                   |
'|         View Release Licencing Details            |
'|                                                   |
'=====================================================
Option explicit
' Good idea to set when using redirect
Response.Expires = 0  ' always load the page, dont store
%>
<!--#include file="common/conf.asp"-->
<!--#include file="common/globals.asp"-->
<!--#include file="common/formating.asp"-->
<!--#include file="common/qstr.asp"-->
<!--#include file="common/common_subs.asp"-->
<!--#include file="common/_form_window_common.asp"-->
<%
' Make sure rtag_id is always present
If Request("rtag_id") = "" Then
    Call Destroy_All_Objects
        Response.Redirect("index.asp")
End If

' Set rfile parameter. This is a return page after Login
Call objPMod.StoreParameter ( "rfile", "dependencies.asp" )
'------------ ACCESS CONTROL ------------------
%>
<!--#include file="_access_control_login.asp"-->
<!--#include file="_access_control_general.asp"-->
<!--#include file="_access_control_project.asp"-->
<%
'------------ Variable Definition -------------
Dim bShowAll
Dim bShowAny
Dim bShowNone
Dim sPrevPage
'------------ Constants Declaration -----------

'------------ Variable Init -------------------
sPrevPage = QStrParDefault("prevPage", Request.ServerVariables("HTTP_REFERER"))
bShowAll = Request("ShowAll")
bShowAny = Request("ShowAny")
bShowNone = Request("ShowNone")
If isEmpty(bShowAll) AND isEmpty(bShowAny) Then
    bShowNone = TRUE
End If


'--------------------------------------------------------------------------------------------------------------------------
'  release_licencing_query_string
'
'  DESCRIPTION
'     Constructs a query string using the provided release tag, designed to elicit
'     a list of PV_ID's, thier package names, versions and extensions, and licencing
'     associations from the release. Only those PV_IDs with one or more licencing
'     associations are returned.
'
'  INPUTS
'     NNrtag_id : The release tag to be used in the query string
'
Function release_licencing_query_string(NNrtag_id)

   release_licencing_query_string = _
                    "WITH AllPkgLic AS " &_
                    "  (SELECT pkg_id, " &_
                    "    listagg(name, ',') within GROUP ( " &_
                    "  ORDER BY name) AS Name " &_
                    "  FROM " &_
                    "    (SELECT pv.pkg_id, " &_
                    "      ld.name, " &_
                    "      row_number() over (partition BY pv.pkg_id, ld.name order by pv.pkg_id) AS rn " &_
                    "    FROM LICENCING lg, " &_
                    "      LICENCES ld , " &_
                    "      package_versions pv " &_
                    "    WHERE lg.pv_id = pv.pv_id " &_
                    "    AND lg.LICENCE = ld.LICENCE " &_
                    "    ) " &_
                    "  WHERE rn = 1 " &_
                    "  GROUP BY pkg_id " &_
                    "  ), " &_
                    "  AllPvIDs AS " &_
                    "  ( SELECT DISTINCT * " &_
                    "  FROM " &_
                    "    ( SELECT pv_id FROM RELEASE_CONTENT rc WHERE rc.rtag_id = :rtag_id " &_
                    "    UNION " &_
                    "    SELECT pv_id FROM work_in_progress wip WHERE wip.rtag_id = :rtag_id " &_
                    "    UNION " &_
                    "    SELECT pv_id " &_
                    "    FROM planned pl " &_
                    "    WHERE pl.rtag_id   = :rtag_id " &_
                    "    AND (pl.operation IS NULL " &_
                    "    OR pl.operation    = 'R') " &_
                    "    ) " &_
                    "  ) " &_
                    "SELECT DISTINCT pv.pv_id, " &_
                    "  pkg.pkg_name, " &_
                    "  pv.pkg_version, " &_
                    "  pv.v_ext, " &_
                    "  pv.pv_description, " &_
                    "  lcs.name AS licenceName , " &_
                    "  CASE " &_
                    "    WHEN al.NAME  IS NOT NULL " &_
                    "    AND lcs.name  IS NOT NULL " &_
                    "    AND ( lcs.name = al.NAME ) " &_
                    "    THEN NULL " &_
                    "    ELSE al.NAME " &_
                    "  END AS OTHERLICENSES " &_
                    "FROM AllPvIDs rc, " &_
                    "  package_versions pv, " &_
                    "  packages pkg, " &_
                    "  licencing lcng, " &_
                    "  licences lcs, " &_
                    "  AllPkgLic al " &_
                    "WHERE pv.pv_id   = rc.pv_id " &_
                    "AND pkg.pkg_id   = pv.pkg_id " &_
                    "AND pv.pv_id     = lcng.pv_id (+) " &_
                    "AND lcng.licence = lcs.licence (+) " &_
                    "AND pv.pkg_id    = al.pkg_id(+) " &_
                    "AND ((lcng.licence is not null) OR ('" & bShowAll & "' is not null) OR ( (al.name is not null) AND ('" & bShowAny & "' is not null) )) " &_
                    "ORDER BY Upper( pkg.pkg_name), " &_
                    "  Upper(pv.pkg_version) "
                                    
End Function


'--------------------------------------------------------------------------------------------------------------------------
'  PV_ID_ListHTML
'
'  DESCRIPTION
'     Constructs the HTML to render the rows of package names, versions and extensions, and licences
'
Function PV_ID_ListHTML
   Dim rsQry
   Dim html_string


   OraDatabase.Parameters.Add "RTAG_ID", parRtag_Id, ORAPARM_INPUT, ORATYPE_NUMBER
   Set rsQry = OraDatabase.DbCreateDynaset( release_licencing_query_string(parRtag_Id), cint(0) )
   OraDatabase.Parameters.Remove "PV_ID"

   '--- Render rows ---
   Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)

      ' BEGIN ROW
      html_string = html_string & "<tr>"

      ' PACKAGE NAME
      html_string = html_string & "<td nowrap class='body_rowg'>"
      html_string = html_string & "<a href=dependencies.asp?pv_id=" & rsQry("pv_id") & "&rtag_id=" & parRtag_Id & ">" & rsQry("pkg_name") & "</a>"
      html_string = html_string & "</td>"

      ' PACKAGE VERSION
      If IsNull(rsQry("v_ext")) Then
         html_string = html_string & "<td nowrap class='body_rowg'>" & rsQry("pkg_version") & "</td>"
      Else
         html_string = html_string & "<td nowrap class='body_rowg'>" & Left(rsQry("pkg_version"), Len(rsQry("pkg_version")) - Len(rsQry("v_ext")) ) & "</td>"
      End If

      ' PACKAGE EXTENSION
      html_string = html_string & "<td nowrap class='body_rowg'>" & rsQry("v_ext") & "</td>"

      ' PACKAGE Short Description
      html_string = html_string & "<td class='body_rowg'>" & rsQry("pv_description") & "</td>"

      ' LICENCE NAME
      html_string = html_string & "<td nowrap class='body_rowg'>" & rsQry("licenceName") & "</td>"

      ' Other Licenses
      html_string = html_string & "<td nowrap class='body_rowg'>" & rsQry("otherlicenses") & "</td>"

      ' Edit License
      Dim sonclick
      sonclick="""MM_openVixIFrame('_wform_change_licence.asp?pv_id="& rsQry("pv_id") &"&rtag_id="& parRtag_id &"','Change License')"""
      Dim data

      If canActionControlInProject ("EditPackageLicence") OR canActionControl("MSMaintainer") Then
        data = "<a href='javascript:;' onClick=" & sonclick & " class='body_txt'>" &_
               "<img src='images/i_edit.gif' width='12' height='12' border='0'>" &_
               "</a>"
     Else
        data = "<img src='images/i_edit_disable.gif' width='12' height='12' border='0'>"
     End If

      html_string = html_string & "<td nowrap class='body_rowg'>" & data & "</td>"

      ' END ROW
      html_string = html_string & "</tr>"

      rsQry.MoveNext

      ' ROW SEPERATOR
      If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then
         html_string = html_string & "<tr><td colspan='8' background='images/bg_table_border.gif'><img src='images/spacer.gif' width='1' height='1'></td></tr>"
      End If
   Loop

   ' destroy objects
   rsQry.Close()
   Set rsQry = nothing

   ' return result
   PV_ID_ListHTML = html_string
End Function

'--------------------------------------------------------------------------------------------------------------------------
'--------------------------------------------------------------------------------------------------------------------------
'------------ RUN BEFORE PAGE RENDER ----------



'----------------------------------------------
%>

<html>
<head>
<title>Release Manager</title>
<link rel="shortcut icon" href="<%=FavIcon%>"/>
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css">
<link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css">
<script language="JavaScript" src="images/common.js?ver=<%=VixVerNum%>"></script>
<script language="JavaScript" src="scripts/remote_scripting.js?ver=<%=VixVerNum%>"></script>
<!-- DROPDOWN MENUS -->
<!--#include file="_jquery_includes.asp"-->
<!--#include file="_menu_def.asp"-->
<script language="JavaScript1.2" src="images/popup_menu.js?ver=<%=VixVerNum%>"></script>
<!-- TIPS -->
<script language="JavaScript" src="images/tipster.js?ver=<%=VixVerNum%>"></script>
<script language="JavaScript" src="images/_help_tips.js?ver=<%=VixVerNum%>"></script>
<script language="JavaScript" type="text/javascript">
<!--
formTips.tips.h_licenses       = stdTip(300, 'License', 'A list of licenses found on this version of this package' +
                                                          '<p>Licenses are specified for a specific version of a package.' + 
                                                          '<p>A package may have several licenses and the packages licenses may chnage over time.' 
                                                          );
formTips.tips.h_other       = stdTip(300, 'Other License', 'A list of licenses found in others versions of this package, if they differ from the one specified' +
                                                          'for this package.' +
                                                          '<p>Licenses are specified for a specific version of a package.' + 
                                                          '<p>A package may have several licenses and the packages licenses may chnage over time.' 
                                                          );
</script>
</head>
<!-- HEADER -->
<!--#include file="_header.asp"-->
<!-- BODY ---->

<table width="100%" border="0" cellspacing="0" cellpadding="0">
   <%
   '-- FROM START ---------------------------------------------------------------------------------------------------------

   objFormComponent.FormName = "FormName"
   objFormComponent.Method = "post"
   objFormComponent.Action = ScriptName & "?rtag_id=" & parRtag_Id
   Call objFormComponent.FormStart()
   %>
   <tr>
      <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
      <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
         <table width="95%" border="0" cellspacing="0" cellpadding="0">
            <tr>
               <td width="1%"></td>
               <td width="100%">
                  <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                     <tr>
                        <td nowrap class="body_txt"></td>
                     </tr>
                  </table>
                  <table width="100%" border="0" cellspacing="0" cellpadding="0">
                     <tr>
                        <td nowrap class="form_ttl"><p>&nbsp;</p>
                           <p>VIEW RELEASE LICENCING DETAILS</p>
                        </td>
                        <td align="right" valign="bottom"></td>
                     </tr>
                  </table>
               </td>
               <td width="1%"></td>
            </tr>
            <tr>
               <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
               <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
               <td align="right" valign="top"  background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
            </tr>
            <tr>
               <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
               <td bgcolor="#FFFFFF" valign="top">
                  <%
                  %>
                  <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                  <!--#include file="messages/_msg_inline.asp"-->
                  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                  <br>
                  <table width="100%"  border="0" cellspacing="2" cellpadding="0">
                     <tr>
                        <td valign="top"></td>
                        <tr>
                           <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Package Name</td>
                           <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Package Version</td>
                           <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Package Extension</td>
                           <td valign="top" background="images/bg_table_col.gif" class="body_col">Short Description</td>
                           <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Licences<%=Quick_Help("h_licenses")%></td>
                           <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Other Licenses<%=Quick_Help("h_other")%></td>
                           <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Edit</td>
                           <td valign="top">
                        </tr>
                        <%=PV_ID_ListHTML()%>
                        <tr>
                           <td class="form_iname">&nbsp;</td>
                           <td>&nbsp;</td>
                           <td class="val_err"></td>
                        </tr>
                     </tr>
                  </table>
               </td>
               <td background="images/lbox_bgside_white.gif">&nbsp;</td>
            </tr>
            <tr>
               <td background="images/bg_action_norm.gif" ></td>
               <td align="right" background="images/bg_action_norm.gif" >
                  <input name="btn_submit" type="reset" class="form_btn" value="OK", onClick="location.href='<%=sPrevPage%>';">
                  <%If NOT IsEmpty(bShowNone)Then%>
                  <input name="showAny" type="submit" class="form_btn" value="Show Any">
                  <%ElseIf NOT IsEmpty(bShowAny) Then%>
                  <input name="showAll" type="submit" class="form_btn" value="Show All">
                  <%Else%>
                  <input name="showNone" type="submit" class="form_btn" value="Hide Unspecified">
                  <%End If%>
               </td>
                  <input name="prevPage" type="hidden" value="<%=sPrevPage%>">
               <td background="images/bg_action_norm.gif" ><img src="images/h_trsp_dot.gif" width="5" height="30"></td>
            </tr>
            <tr>
               <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
               <td background="images/lbox_bg_blue.gif"></td>
               <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
            </tr>
         </table>
      </td>
      <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
   </tr>
   <tr>
      <td valign="bottom" align="center" background="images/bg_home_orange.gif"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td>
      <td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="500"></td>
   </tr>
   <%
   Call objFormComponent.FormEnd()
   '-- FROM END ----------------------------------------------------------------------------------------------------------------
   %>
</table>
<!-- FOOTER -->
<!--#include file="_footer.asp"-->
</body>
</html>