/
rule-list.cfc
97 lines (79 loc) · 2.93 KB
/
rule-list.cfc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<cfcomponent extends="_config.PageController" output="no">
<!--- Copy any component references to variables scope --->
<cfset loadExternalVars("Rules,Components",".RulesMgr")>
<cfset setInherits(variables.Rules)>
<cffunction name="loadData" access="public" returntype="struct" output="no">
<cfset var vars = getDefaultVars("Rules","list")>
<!--- Param URL variables --->
<cfset default("URL.component","numeric",0)>
<!--- Set default values for vars variables --->
<cfset vars.sRules = StructNew()>
<cfset vars.qComponents = variables.Components.getComponents()>
<cfset vars.qComponent = 0>
<cfset vars.Title = "Business Rules">
<cfif URL.component GT 0>
<cfset vars.qComponent = variables.Components.getComponent(URL.component)>
<cfif vars.qComponent.RecordCount>
<cfset vars.Title = "#vars.Title# for ""#vars.qComponent.ComponentName#""">
<cfset vars.sRules["ComponentID"] = URL.component>
</cfif>
</cfif>
<cfset vars.qRules = Variables.Rules.getRules(ArgumentCollection=vars.sRules)>
<cfset vars.qStatuses = getStatuses(vars.qRules)>
<cfset vars.PercentPassed = getPercentPassed(vars.qStatuses)>
<cfset vars.SebTableAttributes.isAddable = false>
<cfset vars.SebTableAttributes.isEditable = false>
<cfset vars.SebTableAttributes.CFC_GetArgs = vars.sRules>
<cfset vars.SebTableAttributes.query = "qRules">
<cfset vars.SebTableAttributes.editpage = "rule-edit.cfm?&component=#URL.component#">
<cfreturn vars>
</cffunction>
<cffunction name="getPercentPassed" access="public" returntype="numeric" output="no">
<cfargument name="qStatuses" type="query" required="yes">
<cfset var result = 0>
<cfset var sValues = StructNew()>
<cfset var total = 0>
<cfif Arguments.qStatuses.RecordCount AND ListFindNoCase(ValueList(qStatuses.status),"Passed")>
<cfoutput query="qStatuses">
<cfset sValues[status] = NumRules>
<cfset total = total + NumRules>
</cfoutput>
<cfif total>
<cfset result = Round((Val(sValues["Passed"]) / total) * 100)>
</cfif>
</cfif>
<cfreturn result>
</cffunction>
<cffunction name="getStatuses" access="public" returntype="query" output="no">
<cfargument name="qRules" type="query" required="yes">
<cfset var qStatuses = 0>
<cfset var statcolor = "">
<cfquery name="qStatuses" dbtype="query">
SELECT status, count(RuleID) AS NumRules, '' AS color
FROM qRules
GROUP BY status, color
ORDER BY NumRules DESC
</cfquery>
<cfoutput query="qStatuses">
<cfif status EQ "">
<cfset QuerySetCell(qStatuses,"status","Untested",CurrentRow)>
</cfif>
<cfswitch expression="#status#">
<cfcase value="Passed">
<cfset statcolor = "green">
</cfcase>
<cfcase value="Failed">
<cfset statcolor = "##FF9900">
</cfcase>
<cfcase value="Error">
<cfset statcolor = "Red">
</cfcase>
<cfdefaultcase>
<cfset statcolor = "gray">
</cfdefaultcase>
</cfswitch>
<cfset QuerySetCell(qStatuses,"color",statcolor,CurrentRow)>
</cfoutput>
<cfreturn qStatuses>
</cffunction>
</cfcomponent>