asked on
<cfcomponent output="false">
<cfscript>
//returns a name for when the client access occured, relative to today
//Will name each day of the current week, then by week number
function getSectionName(daysPast){
var access_date = DateAdd("d",-arguments.daysPast,now());
//var WeeksAgo=DateDiff("ww",access_date,now());
var WeeksAgo=DatePart("ww",now()) - DatePart("ww",access_date);
if(daysPast GTE 30){
return "Older";
}
if (WeeksAgo GT 1){
return "#WeeksAgo# Weeks Ago";
}
if (WeeksAgo EQ 1){
return "#WeeksAgo# Week Ago";
}
if (daysPast NEQ 0){
return DayOfWeekAsString(DayOfWeek(access_date)) & " " & WeeksAgo;
}
if(daysPast EQ 0){
return "Today";
}
return "Unknown";
}
</cfscript>
<cffunction name="getRecentSubjectsHTML">
<cfargument name="user_id">
<cfset var recents = getRecentSubjectsRecordSet(arguments.user_id)>
<cfsavecontent variable="rsuHTML">
<ul class="TreeRoot">
<cfoutput query="recents" group="section_name">
<cfif recents.section_name neq "">
<li class="TreeBranch" id="#recents.section_id#">
<a href="javascript:treeToggle('#recents.section_id#')">
#recents.section_name#
</a>
<ul class="RecentList">
<cfoutput>
<cfif rsu_access_date neq "">
<li class="#recents.subject_type_name#">
<a
href="javascript:selectSubject('#recents.rsu_subject_ind#','#recents.rsu_subject_id#');"
title="Accessed at #TimeFormat(recents.rsu_access_time,"HH:MM")# on #DateFormat(recents.rsu_access_date,"DD/MMM/YY")#"
>
<cfif recents.subject_type_name EQ "Organisation">
<img src="/cfi/application_store/skins/style/default/images/icon_org.gif">
<cfelse>
<img src="/cfi/application_store/skins/style/default/images/icon_person.gif">
</cfif>
#recents.subject_name# (#recents.rsu_subject_id#)
</a>
</li>
</cfif>
</cfoutput>
</ul>
</li>
</cfif>
</cfoutput>
</ul>
</cfsavecontent>
<cfreturn rsuHTML />
</cffunction>
<cffunction name="getRecentSubjectsRecordSet">
<cfargument name="user_id">
<cfargument name="order" required="false" default="ASC">
<cfset var sectionName="">
<cfset var sectionNames=ArrayNew(1)>
<cfset var sectionIDs=ArrayNew(1)>
<cfset var recents="">
<cfset var tempQuery=QueryNew("rsu_subject_id,days_past,subject_type_name,subject_name,rsu_subject_ind,rsu_access_date,rsu_access_time")>
<!--- <cfset var newQuery=QueryNew("section_id,section_name,rsu_subject_id,days_past,subject_type_name,subject_name,rsu_subject_ind,rsu_access_date,rsu_access_time")> --->
<cfquery name="getAccessTime" datasource="#application.db.dsn#">
SELECT
rsu_access_time,rsu_access_date
FROM
o_recent_subjects
WHERE
rsu_user_id = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.user_id#">
</cfquery>
<cfquery name="getAccessTime1" datasource="#application.db.dsn#">
SELECT
rsu_access_time,rsu_access_date
FROM
o_recent_subjects
WHERE
rsu_user_id = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.user_id#">
AND
rownum = 1
</cfquery>
<!--- Now run the main query itself --->
<cfquery name="recents" datasource="#application.db.dsn#">
SELECT
rsu_subject_id,
rsu_subject_ind,
rsu_access_time,
rsu_access_date,
TRUNC(SYSDATE) - rsu_access_date AS days_past,
DECODE(rsu_subject_ind,
'O',cfi_person_org.return_oun_name(rsu_subject_id),
'P',cfi_person_org.return_per_name(rsu_subject_id),
'Unknown') subject_name,
DECODE(rsu_subject_ind,
'O','Organisation',
'P','Person') subject_type_name
FROM
o_recent_subjects
WHERE
rsu_user_id = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.user_id#">
ORDER BY
rsu_access_date #arguments.order#
</cfquery>
<!--- <cfset newRow = QueryAddRow(tempQuery,#recents.recordcount#) /> --->
<!--- Calculate the section names and add them as a new column --->
<cfoutput query="recents" group="rsu_access_date">
<cfset sectionName = getSectionName(recents.days_past)>
<cfset ArrayAppend(sectionNames,sectionName)>
<cfset ArrayAppend(sectionIDs,Replace(sectionName," ","_","ALL"))>
<!--- <cfset QuerySetCell(tempQuery,"rsu_subject_id",#recents.rsu_subject_id#,#recents.currentrow#)>
<cfset QuerySetCell(tempQuery,"rsu_subject_ind",#recents.rsu_subject_ind#,#recents.currentrow#)>
<cfset QuerySetCell(tempQuery,"days_past",#recents.days_past#,#recents.currentrow#)>
<cfset QuerySetCell(tempQuery,"subject_type_name",#recents.subject_type_name#,#recents.currentrow#)>
<cfset QuerySetCell(tempQuery,"subject_name",#recents.subject_name#,#recents.currentrow#)> --->
</cfoutput>
<!--- <cfset QueryAddColumn(tempQuery,"section_name",sectionNames)>
<cfset QueryAddColumn(tempQuery,"section_id",sectionIDs)> --->
<cfset QueryAddColumn(recents,"section_name",sectionNames)>
<cfset QueryAddColumn(recents,"section_id",sectionIDs)>
<cfreturn recents />
<!--- <cfdump var="#tempQuery#"><cfabort>
<cfreturn tempQuery /> --->
</cffunction>
</cfcomponent>