<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal>We added an extra customized column in the Admin/Users/index.html.
The column name is called “LastAccessTime”. The purpose is to
display the last access time of the user. It is combined with the Config “AutoLogoff”
setting and the customized function to retrieve the “LastUpdated”
value from the “sessions” table.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>We added the function at the callback: /local/html/Callbacks/xx/Elements/RT__User/ColumnMap/ColumnMap:<o:p></o:p></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#A020F0'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#A020F0'>sub </span><span style='font-size:
10.0pt;font-family:"Courier New";color:black'>get_last_access</span><span
style='font-size:10.0pt;font-family:"Courier New"'> {<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#B22200'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A020F0'>my </span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>$</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>User</span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>= </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>shift</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>;</span><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#B22200'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A020F0'>my </span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>$</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>lastAccessed</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>;</span><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#B22200'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A020F0'>my </span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>$</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>sessions</span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>= </span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>$</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>User</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>-></span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>get_sessions</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>;</span><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#B22200'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>$</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>lastAccessed</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'> = </span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>$</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>sessions</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>->{</span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>$</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>User</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>-></span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>id</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>} || </span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>""</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>;</span><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#B22200'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#B22200'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A020F0'>return </span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>$</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A000F0'>lastAccessed</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>;</span><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'>}<span style='color:black'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:black'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:black'>$</span><span style='font-size:10.0pt;
font-family:"Courier New";color:#A000F0'>COLUMN_MAP</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>->{</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>'LastAccessTime'</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>}->{</span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>value</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>} = \</span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>&get_last_access</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>;</span><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:black'>$</span><span style='font-size:10.0pt;
font-family:"Courier New";color:#A000F0'>COLUMN_MAP</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>->{</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>'LastAccessTime'</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>}->{</span><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>title</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#B22200'>} = </span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>"Last Access
Time"</span><span style='font-size:10.0pt;font-family:"Courier New";
color:#B22200'>;<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:#B22200'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'>Everything went well, except
that this additional column is not sortable. Since the value is computed and
the “attribute” is not in the database, we are wondering if it is
possible to use the “OrderBy” param. <o:p></o:p></p>
<p class=MsoNormal style='text-autospace:none'><o:p> </o:p></p>
<p class=MsoNormal style='text-autospace:none'>Any idea on how to sort this
customized column?<o:p></o:p></p>
<p class=MsoNormal style='text-autospace:none'><o:p> </o:p></p>
<p class=MsoNormal style='text-autospace:none'>Thanks a lot!<o:p></o:p></p>
<p class=MsoNormal style='text-autospace:none'>Yan<o:p></o:p></p>
<p class=MsoNormal style='text-autospace:none'><o:p> </o:p></p>
<p class=MsoNormal style='text-autospace:none'> <o:p></o:p></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
</div>
</body>
</html>