%
'=====================================================
' NEW VERSION
' PAGE
'=====================================================
%>
<%
'------------ Variable Definition -------------
Dim parPv_id
Dim rsLocRel
Dim parPage_title
Dim objPkgInfo
Dim rsTemp2
Dim rsLatest
Dim aVersions
Dim lastRow, i
Dim objSortHelper
Dim newPackage
Dim majorState
Dim minorState
Dim patchState
Dim parBase_view_id
Dim verNumber
Dim parPkgName
'------------ Constants Declaration -----------
'------------ Variable Init -------------------
parPv_id = QStrPar("pv_id")
parBase_view_id = Request("base_view_id")
parPkgName = QStrPar("pkgName")
parPage_title = "NEW VERSION"
If ( parPkgName <> "" ) Then
newPackage = 1
parPv_id = NULL
Else
newPackage = 0
End if
majorState = ""
minorState = ""
patchState = "checked"
Set objPkgInfo = CreateObject("Scripting.Dictionary")
'-----------------------------------------------------------------------------------------------------------------------------
Sub GetPackageInfo( nPvId, outPkgInfo )
Dim rsTemp, Query_String
If (IsEmpty(nPvId) OR newPackage > 0) Then Exit Sub
Query_String = _
" SELECT pv.pv_id, pkg.pkg_id, pkg.pkg_name, pv.pkg_version, pv.v_ext"&_
" FROM packages pkg, package_versions pv"&_
" WHERE pkg.pkg_id = pv.pkg_id AND pv.pv_id ="& nPvId
Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
outPkgInfo.Item("pv_id") = rsTemp.Fields("pv_id")
outPkgInfo.Item("pkg_id") = rsTemp.Fields("pkg_id")
outPkgInfo.Item("pkg_name") = rsTemp.Fields("pkg_name")
outPkgInfo.Item("pkg_version") = rsTemp.Fields("pkg_version")
if rsTemp.Fields("v_ext") <> "" Then
outPkgInfo.Item("v_ext") = rsTemp.Fields("v_ext")
Else
outPkgInfo.Item("v_ext") = ""
End If
End If
rsTemp.Close
Set rsTemp = nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function Get_Latest_All_Ext ( NNpkg_id, nPv_id )
Get_Latest_All_Ext = _
" SELECT pv.pkg_version, pv.dlocked,"&_
" DECODE ( pv.pv_id, "& nPv_id &", 'selected', NULL ) AS selected"&_
" FROM PACKAGES pkg, package_versions pv"&_
" WHERE pkg.pkg_id = pv.pkg_id AND pkg.pkg_id = "& NNpkg_id
End Function
'-------------------------------------------------------------------------------------------------------------
' Returns TRUE if the specified version has a COTS extension
' Really determines if the extension has to be strict Major.Minor.PatchBuild
' or is allowed to be more relaxes. As in COTS and TOOL packages.
'
' Read from the database to determine type
' If we cannot determine the project suffix then assume the worst
'
Function HasCotsExtension(aExt)
Dim rsQry, Query_String
HasCotsExtension = FALSE
if aExt <> "" Then
Query_String = "SELECT EXT_NAME FROM PROJECT_EXTENTIONS pe WHERE " &_
"pe.IS_COTS='Y' AND pe.EXT_NAME='" & LCase(aExt) & "'"
Set rsQry = OraDatabase.DbCreateDynaset( Query_String, ORADYN_DEFAULT )
If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
HasCotsExtension = TRUE
End If
rsQry.Close
Else
HasCotsExtension = TRUE
end If
Set rsQry = Nothing
End Function
'-------------------------------------------------------------------------------------------------------------
'Returns TRUE if the specified version has a patch-build number.
Function HasPatchBuildNumber(aversion)
'test for a version with a patch build number, ie a dot and at least 4 digits before the extenstion.
Dim re: Set re = New RegExp
re.Pattern = "\.\d{4,}\.[^\.]+$"
HasPatchBuildNumber = re.Test(aversion)
Set re = Nothing
End Function
'-------------------------------------------------------------------------------------------------------------
'Returns TRUE if the specified version has a well formed version number
Function HasWellFormedVersion(aversion)
'If a package has a major.minor.patch-build number then it is well formed
Dim re: Set re = New RegExp
re.Pattern = "^\d+\.\d+\.\d{4,}\.[^\.]+$"
HasWellFormedVersion = re.Test(aversion)
Set re = Nothing
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub Get_All_Base_Views ( NNnewgroup_id )
Dim rsTemp, Query_String
Query_String = _
" SELECT vi.view_id, vi.view_name "&_
" FROM views vi "&_
" WHERE UPPER(vi.base_view) = 'Y'"&_
" ORDER BY vi.view_name ASC"
Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
If NNnewgroup_id = Cstr( rsTemp.Fields("view_id")) Then
Response.write ""
Else
Response.write ""
End If
rsTemp.MoveNext
WEnd
rsTemp.Close
Set rsTemp = nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Get_All_Personal_Views ( NNuser_id )
Dim rsTemp, Query_String
If NNuser_id = "" Then Exit Sub
Query_String = _
" SELECT vi.view_id, vi.view_name"&_
" FROM view_settings vs,"&_
" views vi"&_
" WHERE vs.view_id = vi.view_id"&_
" AND vs.user_id = vi.owner_id "&_
" AND vs.user_id = "& NNuser_id &_
" AND vi.base_view = 'N'"&_
" ORDER BY UPPER(vi.view_name)"
Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
Response.write ""
rsTemp.MoveNext
WEnd
rsTemp.Close
Set rsTemp = nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
%>
<%
'===================== MAIN LINE ============================
Dim bDisableAuto, bPatchOnly, bIsCots, bIsAuto
If NOT (newPackage > 0 ) Then
Call GetPackageInfo( parPv_id, objPkgInfo )
parPkgName = objPkgInfo.Item("pkg_name")
' Extract version number without extension
verNumber = objPkgInfo.Item("pkg_version")
verNumber = Mid( verNumber,1, Len(verNumber) - Len(objPkgInfo.Item("v_ext")))
bIsCots = HasCotsExtension(objPkgInfo.Item("v_ext"))
'Disable the "Auto" build option if the package is a COTS package and the version doesn't have a patch-build number.
bDisableAuto = bIsCots and not HasPatchBuildNumber(objPkgInfo.Item("pkg_version"))
'Enable only the "Patch Change" option if the package is a COTS package and the version has a patch-build number.
bPatchOnly = bIsCots and not HasWellFormedVersion(objPkgInfo.Item("pkg_version")) and HasPatchBuildNumber(objPkgInfo.Item("pkg_version"))
'if "Auto" build option is disabled then select the Manual option
bIsAuto = NOT bDisableAuto
Else
' If New Package and First version
parPage_title = "NEW PACKAGE and FIRST VERSION"
bIsCots = FALSE
bDisableAuto = FALSE
bPatchOnly = FALSE
bIsAuto = TRUE
majorState = "checked"
minorState = ""
patchState = ""
verNumber = "1.0.0000"
End If
'============================================================
%>