Subversion Repositories DevTools

Rev

Rev 13 | Blame | Last modification | View Log | RSS feed

<%
'===================================================================
'                                                       Common Subs
'===================================================================
%>
<%
'-----------------------------------------------------------------------------------------------------------------------------
Sub CloseWindow
%>
        <SCRIPT language="JavaScript" type="text/javascript">
        <!--
        self.close();
        //-->
        </SCRIPT>
<%
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub OpenChildWindow ( SStitle, SSurl, SSH, SSW, BBscroll )
        Dim scrlBar
        If BBscroll Then
                scrlBar = "yes"
        Else
                scrlBar = "no"
        End If
%>
        <script language="JavaScript" type="text/javascript">
        <!--
        window.open('<%=SSurl%>','<%=SStitle%>','scrollbars=<%=scrlBar%>,resizable=yes,width=<%=SSW%>,height=<%=SSH%>');
        //-->
        </script>
<%
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub OpenInParentWindow ( SSurl )
%>
        <script language="JavaScript" type="text/javascript">
        <!--
        window.opener.document.location='<%=SSurl%>';
        //-->   
        </script>
<%
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub OpenInWindow ( SSurl )
        Response.Redirect ( SSurl )
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function onClickOpenWindow ( sURL, sWindowName, nWidth, nHeight, sWindowParams )
        If NOT IsNull(sWindowParams)  OR  (sWindowParams <> "") Then sWindowParams = sWindowParams &"," ' Append comma if params are not empty
        
        onClickOpenWindow = "onClick='MM_openBrWindow("""& sURL &""", """& sWindowName &""", """& sWindowParams &"width="& nWidth &",height="& nHeight &",top=200,left=""+ ( screen.width / 2 - "& nWidth \ 2 &" ) +""  "");'"
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function ReadFile( sPath )
        Dim filesys, rfile
        Set filesys = CreateObject("Scripting.FileSystemObject")
        Set rfile = filesys.OpenTextFile( sPath, 1, false)
        ReadFile = rfile.ReadAll
        rfile.close
        Set filesys = nothing
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function GetQuery ( sQryName )
        GetQuery = ReadFile( QUERIES_PATH &"\"& sQryName )
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function BoldSelected ( sItem, nItemId, nrsItemId )
        ' Exit on empty or null
        If ( nItemId = "" )  OR  IsNull( nItemId )  OR  ( nrsItemId = "" )  OR  IsNull( nrsItemId ) Then 
                BoldSelected = sItem
                Exit Function
        End If
        
        If CInt( nItemId ) = CInt( nrsItemId ) Then
                BoldSelected = "<b>"& sItem &"</b>"
        Else
                BoldSelected = sItem
        End If
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function Get_From_DUAL ( SSclm )
        Dim rsTemp, Query_String, OraSession2, OraDatabase2
        Set OraSession2 = CreateObject("OracleInProcServer.XOraSession")
        Set OraDatabase2 = OraSession2.OpenDatabase( TNS_NAME, DB_AUTHENTICATION, Cint(0))
    
        Query_String = _
        " SELECT "& SSclm &" AS result FROM DUAL"
        Set rsTemp = OraDatabase2.DbCreateDynaset( Query_String, cint(0))
        
        If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
                Get_From_DUAL = (rsTemp.Fields("result"))
        End If
        
        rsTemp.Close
        Set rsTemp = nothing
        Set OraDatabase2 = nothing
        Set OraSession2 = nothing
End Function
'----------------------------------------------------------------------------------------------------------------------------------------------
Sub InitialiseCrumbs ( objCrumbs )
        Dim rsCrumb
        'L1par = enumDB_DEFAULT_EMPTY
        'L2par = enumDB_DEFAULT_EMPTY
        'L3par = enumDB_DEFAULT_EMPTY
        
        
        ' This section will ensure only one level parameter is processed in order
        'If Request("bom_id") <> "" Then
        '       L3par = Request("bom_id")
        '       
        'ElseIf Request("branch_id") <> "" Then
        '       L2par = Request("branch_id")
        '       
        'ElseIf Request("proj_id") <> "" Then
                'L1par = Request("proj_id")
        '       
        'End If
        
        OraDatabase.Parameters.Add "PROJ_ID",   dbPARproj_id,   ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "BRANCH_ID", dbPARbranch_id, ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "BOM_ID",    dbPARbom_id,    ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "NODE_ID",   dbPARnode_id,   ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "OS_ID",     dbPARos_id,     ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "PROD_ID",   dbPARprod_id,   ORAPARM_INPUT, ORATYPE_NUMBER 
        
        Set rsCrumb = OraDatabase.DbCreateDynaset( GetQuery ("Crumbs.sql") , ORADYN_DEFAULT )
        
        objCrumbs.CrumbMaxDepth = 7             ' e.g.  [1] Home / [2] ProjectName / [3] BranchName / [4] BomName
        
        objCrumbs.AddLevel "Home", "Default.asp", 0
        While ((NOT rsCrumb.BOF) AND (NOT rsCrumb.EOF))
                objCrumbs.AddLevel rsCrumb("crumb_name"), rsCrumb("crumb_link"), rsCrumb("crumb_level")
                rsCrumb.MoveNext()
        WEnd
        
        ' Clean up
        rsCrumb.Close
        Set rsCrumb = Nothing
        OraDatabase.Parameters.Remove "PROJ_ID"
        OraDatabase.Parameters.Remove "BRANCH_ID"
        OraDatabase.Parameters.Remove "BOM_ID"
        OraDatabase.Parameters.Remove "NODE_ID"
        OraDatabase.Parameters.Remove "OS_ID"
        OraDatabase.Parameters.Remove "PROD_ID"
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function Expander ( sExpand )
        Const IMG_PLUS = "<img src='icons/i_plus.gif' width='9' height='9' align='absmiddle' border='0'>"
        Const IMG_MINUS = "<img src='icons/i_minus.gif' width='9' height='9' align='absmiddle' border='0'>"
        Const IMG_NO_EXPAND = "<img src='images/spacer.gif' width='9' height='9' align='absmiddle' border='0'>"
        
        If sExpand = "+" Then
                Expander = IMG_PLUS
                
        ElseIf sExpand = "-" Then
                Expander = IMG_MINUS
                
        Else
                Expander = IMG_NO_EXPAND
                
        End If
        
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub GetMainDBParameters ( dbPARproj_id, dbPARbranch_id, dbPARbom_id, dbPARnode_id, dbPARos_id, dbPARprod_id )
        Dim query, rsQry
        
        ' Preset all to enumDB_DEFAULT_EMPTY
        dbPARproj_id    = enumDB_DEFAULT_EMPTY
        dbPARbranch_id  = enumDB_DEFAULT_EMPTY
        dbPARbom_id     = enumDB_DEFAULT_EMPTY
        dbPARnode_id    = enumDB_DEFAULT_EMPTY
        dbPARos_id              = enumDB_DEFAULT_EMPTY
        dbPARprod_id    = enumDB_DEFAULT_EMPTY
        
        
        ' Get the actual values from Request
        If Request("proj_id")  <> "" Then       dbPARproj_id = Request("proj_id")
        If Request("branch_id")  <> "" Then dbPARbranch_id = Request("branch_id")
        If Request("bom_id")  <> "" Then        dbPARbom_id = Request("bom_id")
        If Request("node_id") <> "" Then    dbPARnode_id = Request("node_id")
        If Request("os_id")   <> "" Then        dbPARos_id = Request("os_id")
        If Request("prod_id") <> "" Then        dbPARprod_id = Request("prod_id")
        
        
        ' Resolve some parametes with DB lookup
        If ( dbPARbom_id <> enumDB_DEFAULT_EMPTY ) AND ( dbPARos_id <> enumDB_DEFAULT_EMPTY ) Then
                ' Resolve with bom_id and os_id
                query = _
                " SELECT nn.node_id, br.BRANCH_ID, br.PROJ_ID "&_
                "  FROM BOM_CONTENTS bc,"&_
                "          NETWORK_NODES nn,"&_
                "          OPERATING_SYSTEMS os,"&_
                "       BOMS bo,"&_
                "      BRANCHES br"&_
                " WHERE os.node_id = nn.node_id"&_
                "   AND bc.NODE_ID = nn.NODE_ID"&_
                "   AND bc.BOM_ID = bo.BOM_ID"&_
                "   AND bo.BRANCH_ID = br.BRANCH_ID"&_
                "   AND bc.bom_id = :BOM_ID"&_
                "   AND os.os_id = :OS_ID"
                
        ElseIf ( dbPARbom_id <> enumDB_DEFAULT_EMPTY ) Then
                ' Resolve with bom_id and node_id
                query = _
                " SELECT :NODE_ID AS NODE_ID, br.BRANCH_ID, br.PROJ_ID "&_
                "  FROM BOMS bo,"&_
                "       BRANCHES br"&_
                " WHERE bo.BRANCH_ID = br.BRANCH_ID"&_
                "   AND bo.bom_id = :BOM_ID"
                
        End If
        
        
        If query <> "" Then
                OraDatabase.Parameters.Add "BOM_ID",    dbPARbom_id,    ORAPARM_INPUT, ORATYPE_NUMBER 
                OraDatabase.Parameters.Add "NODE_ID",   dbPARnode_id,   ORAPARM_INPUT, ORATYPE_NUMBER 
                OraDatabase.Parameters.Add "OS_ID",     dbPARos_id,     ORAPARM_INPUT, ORATYPE_NUMBER 
                
                Set rsQry = OraDatabase.DbCreateDynaset( query , ORADYN_DEFAULT )
                
                If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                        dbPARproj_id = CInt( rsQry("proj_id") )
                        dbPARbranch_id = CInt( rsQry("branch_id") )
                        dbPARnode_id = CInt( rsQry("node_id") )
                End If
                
                rsQry.Close
                Set rsQry = Nothing
                OraDatabase.Parameters.Remove "BOM_ID"
                OraDatabase.Parameters.Remove "NODE_ID"
                OraDatabase.Parameters.Remove "OS_ID"
        End If
        
        
        ' --- Get which level (used for pop-up menu add prod,os,node.)
        AT_PROD_LEVEL = FALSE
        AT_OS_LEVEL = FALSE
        AT_NODE_LEVEL = FALSE
        AT_BOM_LEVEL = FALSE
        
        If dbPARprod_id <> enumDB_DEFAULT_EMPTY Then
                ' Product Level
                AT_PROD_LEVEL = TRUE
                
        ElseIf dbPARos_id <> enumDB_DEFAULT_EMPTY Then
                ' OS Level
                AT_OS_LEVEL = TRUE
                
        ElseIf dbPARnode_id <> enumDB_DEFAULT_EMPTY Then
                ' Node Level
                AT_NODE_LEVEL = TRUE
                
        ElseIf dbPARbom_id <> enumDB_DEFAULT_EMPTY Then
                ' Bom Level
                AT_BOM_LEVEL = TRUE
                
        End If
        
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function GetNodeImage ( nNode_id )
        Dim query, rsQry
        query = _
        "SELECT nt.NODE_IMAGE "&_
        "  FROM NETWORK_NODES nn,"&_
        "           NODE_TYPES nt"&_
        " WHERE nn.NODE_TYPE_ID = nt.NODE_TYPE_ID"&_
        "   AND nn.node_id = :NODE_ID"
        
        OraDatabase.Parameters.Add "NODE_ID",   nNode_id,       ORAPARM_INPUT, ORATYPE_NUMBER 
        Set rsQry = OraDatabase.DbCreateDynaset( query , ORADYN_DEFAULT )
        
        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                GetNodeImage = "<img src='icons/"& rsQry("node_image") &"'>"
        End If
        
        rsQry.Close
        Set rsQry = Nothing
        OraDatabase.Parameters.Remove "NODE_ID"
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub LoadTabActionButtons ( aBtns,  ByRef objControl )
        ' -- Load Action Buttons
        Call objControl.LoadActionButtons ( aBtns, OraDatabase )
        
        ' -- Set button spacer
        objControl.ButtonSpacer = 10
        
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Messenger ( sMessage, nMessageType, sWidth )
        Dim msgTemplate, Img
        
        If (sMessage = "") OR IsNull(sMessage) Then Exit Sub
        
        Select Case CStr(nMessageType)
                Case "1"
                        Img = "s_critical.gif"
                Case "2"
                        Img = "s_warning.gif"
                Case "3"
                        Img = "s_note.gif"
                Case Else
                        Img = nMessageType
        End Select
        
        
        msgTemplate = ReadFile( APP_ROOT &"\scripts\message_style.html" )
        msgTemplate = Replace( msgTemplate, "%WIDTH%", sWidth )
        msgTemplate = Replace( msgTemplate, "%IMAGE%", Img )
        msgTemplate = Replace( msgTemplate, "%MESSAGE%", sMessage )
        
        Response.write msgTemplate
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function IsTicked ( ByVal nParId, ByVal sParList )
        ' Used only with check boxes as they send comma-separated list
        nParId   = ","&  Replace(nParId, " ", "") &","
        sParList = ","&  Replace(sParList, " ", "") &","
        
        If InStr( sParList, nParId ) > 0 Then
                IsTicked = TRUE
        Else
                IsTicked = FALSE
        End If
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function ProgressBar ()
        ProgressBar = "<DIV name='divProgressBar' id='divProgressBar' style='visibility:hidden;'><img src='icons/i_processing.gif' width='79' height='14'></DIV>"
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function HighlightSubstring ( SSstr, SSsubstr )
        Dim leftSTR, startPos
        startPos = InStr( 1, SSstr, SSsubstr, 1 )
        
        If startPos > 0 Then
                leftSTR = Left ( SSstr, startPos - 1 )
                Highlight_Substring = leftSTR &"<SPAN style='background:#ffff99;'>"& Mid( SSstr, startPos, Len(SSsubstr) ) &"</SPAN>"&  Right ( SSstr, Len(SSstr) - Len(leftSTR) - Len(SSsubstr)  )
        Else
                ' Subtring not found
                Highlight_Substring = SSstr
        End If
        
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub DisplayColumn( sColumnName, sTableColumn, outOrderBy, bSetToDefault )
        Dim selectedColumnTemplate, tempColumnName, ordBy, ordType, ordImg, sLink, isDefaultColumn
        
        '--- Set Default Column ---
        isDefaultColumn = FALSE
        If (Request("ordby") = "")  AND bSetToDefault Then
                isDefaultColumn = TRUE
        End If
        
        '--- Create border for selected column ---
        selectedColumnTemplate = _
        "background='images/bg_table_border.gif'><table width='100%'  border='0' cellspacing='1' cellpadding='2'>"&_
    "  <tr>"&_
    "    <td align='right' nowrap background='images/bg_table_col.gif'>%COLUMN_NAME%</td>"&_
    "  </tr>"&_
    "</table>"
        
        
        '--- Create Order Name ---
        ordBy = LCase( Replace( sColumnName, " ", "_" ) )
        
        
        '--- Toggle Order Type ---
        ordType = "asc"
        ordImg = ""
        If Request("ordby") = ordBy  OR  isDefaultColumn Then
                If Request("ordtype") = "desc" Then
                        ordType = "asc"
                        ordImg = "<img src='icons/b_sort_desc.gif' hspace='4' border='0' align='absmiddle'>"
                Else
                        ordType = "desc"
                        ordImg = "<img src='icons/b_sort_asc.gif' hspace='4' border='0' align='absmiddle'>"
                End If
        End If
        
        
        '--- Set temporary Column name and link
        sLink = SCRIPT_NAME &"?ordby="& ordBy &"&ordtype="& ordType &"&"& objPMod.ComposeURL() 
        
        tempColumnName = "<a href='"& sLink &"' class='body_linkbold'>&nbsp;"& ordImg & sColumnName &"&nbsp;</a>"
        
        
        '--- Display Formated Column Name ---
        If Request("ordby") = ordBy  OR  isDefaultColumn Then
                ' This column is selected
                outOrderBy = " ORDER BY UPPER("& sTableColumn &") "& Request("ordtype")
                Response.write Replace( selectedColumnTemplate, "%COLUMN_NAME%", tempColumnName) 
                
        Else
                ' Check if column is sortable
                If NOT IsNull(sTableColumn)  OR (sTableColumn <> "") Then
                        Response.write "background='images/bg_table_col.gif'>" & tempColumnName
                Else
                        Response.write "background='images/bg_table_col.gif' class='body_col'>"& sColumnName
                End If
                
                
        End If
        
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function BomIcon ( sIsReadonly, sIsRejected )
        
        If sIsReadonly = enumDB_NO Then
                BomIcon = enumBOM_EDITMODE
        Else
                If (sIsRejected = "") OR IsNull(sIsRejected) Then
                        BomIcon = enumBOM_NEW
                        
                ElseIf sIsRejected = enumDB_YES Then
                        BomIcon = enumBOM_REJECTED
                        
                ElseIf sIsRejected = enumDB_NO Then
                        BomIcon = enumBOM_ACCEPTED
                        
                End If
                
        End If
        
End Function
'-----------------------------------------------------------------------------------------------------------------
Sub GetBomDetails ( nBom_id, ByRef outobjDetails )
        Dim rsQry, query
        OraDatabase.Parameters.Add "BOM_ID", nBom_id,   ORAPARM_INPUT, ORATYPE_NUMBER 
        
        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("BomDetails.sql") , ORADYN_DEFAULT )
        
        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                outobjDetails.Item ("bom_id")   = rsQry("bom_id")
                outobjDetails.Item ("bom_name") = rsQry("bom_name")
                outobjDetails.Item ("bom_name_id") = rsQry("bom_name_id")
                outobjDetails.Item ("branch_id") = rsQry("branch_id")
                outobjDetails.Item ("bom_version") = rsQry("bom_version")
                outobjDetails.Item ("bom_lifecycle") = rsQry("bom_lifecycle")
                outobjDetails.Item ("bom_comments") = rsQry("bom_comments")
                outobjDetails.Item ("is_readonly") = rsQry("is_readonly")
                outobjDetails.Item ("is_rejected") = rsQry("is_rejected")
                outobjDetails.Item ("parent_bom_id") = rsQry("parent_bom_id")
                outobjDetails.Item ("base_env_count") = rsQry("base_env_count")
                outobjDetails.Item ("rtag_id_fk") = rsQry("rtag_id_fk")
                
        Else
                Err.Raise 8, "Sub GetBomDetails", "Empty record set returned. nBom_id="& nBom_id
                
        End If
        
        OraDatabase.Parameters.Remove "BOM_ID"
        rsQry.Close
        Set rsQry = Nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function Wiki2HTML ( ByVal sWikiString )
        '=== Definition ===
        sWikiString = Replace ( sWikiString, "[BREAKLINE]", "<hr noshade size='1' color='#DAD7C8'>"  )
        sWikiString = Replace ( sWikiString, "[NEWLINE]", "<br>"  )
        
        Wiki2HTML = sWikiString
End Function
'----------------------------------------------------------------------------------------------------------------------------------------------
Function GetProductIcon ( rsQry )
        Const LIMG_BB_PRODUCT = "<img src='icons/i_product.gif' width='19' height='19' border='0' align='absmiddle'>"
        Const LIMG_BB_PATCH = "<img src='icons/i_patch_small.gif' border='0' align='absmiddle' hspace='2'>"
        Const LIMG_BB_PATCH_OBSOLETE = "<img src='icons/i_patch_small_obsolete.gif' border='0' align='absmiddle' hspace='2'>"
        Const LIMG_BB_PRODUCT_REJECTED = "<img src='icons/i_product_rejected.gif' width='19' height='19' border='0' align='absmiddle' title='Product is REJECTED! Click to see details.'>"
        
        '-- Set default icon
        GetProductIcon = LIMG_BB_PRODUCT
        
        If IsObject(rsQry) Then
                '/* Recordset is passed */
                If rsQry("is_rejected") = enumDB_YES Then
                        GetProductIcon = LIMG_BB_PRODUCT_REJECTED
                        
                ElseIf rsQry("is_obsolete") = enumDB_YES Then
                        GetProductIcon = LIMG_BB_PATCH_OBSOLETE
                
                ElseIf rsQry("is_patch") = enumDB_YES Then
                        GetProductIcon = LIMG_BB_PATCH
                
                
                        
                End If
                
        Else
                '/* Single Value is passed */
                If rsQry = enumDB_YES Then
                        GetProductIcon = LIMG_BB_PRODUCT_REJECTED
                End If
                
        End If
        
End Function
'----------------------------------------------------------------------------------------------------------------------------------------------
Function GetRootVersion ( sBomVersion )
        Dim tempArr
        
        If InStr( sBomVersion, "." ) > 0 Then
                '-- Dot separator found --
                
                '-- Split version --
                tempArr = Split( sBomVersion, "." )
                
                '-- Return first element as root version
                GetRootVersion = tempArr(0)
                
        Else
                '-- No dot separator, hence root version is version itself
                GetRootVersion = sBomVersion
                
        End If
        
End Function
'--------------------------------------------------------------------------------------------------------------------------
Function HighlightSubstring ( SSstr, SSsubstr )
        Dim leftSTR, startPos
        startPos = InStr( 1, SSstr, SSsubstr, 1 )
        
        If startPos > 0 Then
                leftSTR = Left ( SSstr, startPos - 1 )
                HighlightSubstring = leftSTR &"<SPAN style='background:#ffff99;'>"& Mid( SSstr, startPos, Len(SSsubstr) ) &"</SPAN>"&  Right ( SSstr, Len(SSstr) - Len(leftSTR) - Len(SSsubstr)  )
        Else
                ' Subtring not found
                HighlightSubstring = SSstr
        End If
        
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub Destroy_All_Objects
        On Error Resume Next
        set brokenReadyHash = nothing
        set brokenHash = nothing
        set pkgInfoHash = nothing
        set OraDatabase = nothing
        set OraSession = nothing
        set userdetailsHash = nothing
End Sub
%>