Tabla de contenidos
No hay encabezados
var limit = $limit ?? $0 ?? 100;
var sortby = $sortby ?? $1 ?? "-date.lastlogin";
var slExclude = $exclude ?? $2 ?? null; //@himikel #add 2010/05/06 : Add Exclude User List
var nRecentDays = $recdays ?? $3 ?? 0; //@himikel #add 2010/05/07 : Add Recent Days Filter
//@himikel #add 2010/07/06 : Add Group selection
var sGroup = $group ?? $4 ?? "";
//@himikel #add 2010/07/06 : Add Users Home Url
var sHomeUrl = $homeUrl ?? "";
//@himikel #add 2010/08/23 : Minimun recent users
var nMin = $min ?? 0;
if ((sHomeUrl!="")&&(!String.EndsWith(sHomeUrl,"/")))
let sHomeUrl..="/";
var users_xml = wiki.api(site.api & 'users' & { sortby: sortby, limit: limit });
var user_data = [
{ nick: xml.text(usr, 'nick'), lastlogin: xml.text(usr, 'date.lastlogin'),
useruri: (wiki.getuser(xml.text(usr, 'nick')).uri), timezone: wiki.getuser(xml.text(usr, 'nick')).timezone,
useravatar: (wiki.getpage('/User:'..xml.text(usr, 'nick')).files)['Avatar.jpg'].api,
usergravatar: wiki.getuser(xml.text(usr, 'nick')).gravatar,
//@himikel #add 2010/07/06 : Add Users Home Url
userhome: (sHomeUrl!="" ? sHomeUrl..xml.text(usr, 'nick') : null)
}
foreach var usr in xml.select(users_xml, '/users/user')
];
//@himikel #add 2010/07/06 : Add Group selection
var slGroupUsers=null;
if (sGroup!="")
{
var xGroupUsers=Wiki.Api(Uri.Build(site.api, ["groups", "="..sGroup, "users"] ));
//Web.Pre(Json.Format(xGroupUsers));
let slGroupUsers=[ Xml.Text(xUser, 'username') foreach var xUser in Xml.Select(xGroupUsers, '/users/user') ];
}//if
//@himikel #mod 2010/05/07 : Add Recent Days Filter
//@himikel #add 2010/05/06 : Add Exclude User List
var lmUsrData=null;
if ((slExclude!=null)||(nRecentDays>0)||(sGroup!="")) {
var dlLastLogin=List.Collect(user_data,"lastlogin");
foreach (var sNick in List.Collect(user_data,"nick")) {
if (sNick not in slExclude)
{
var bInclude=true;
if (nRecentDays>0)
{
var dLastLogin=dlLastLogin[__index];
var nDiffDays=Date.DiffDays(date.now,dLastLogin);
if (nDiffDays>nRecentDays)
let bInclude=false;
}
//@himikel #add 2010/07/06 : Add Group selection
if ((sGroup!="")&&(sNick not in slGroupUsers))
let bInclude=false;
//@himikel #mod 2010/08/23 : Minimun recent users
if ((bInclude)||(#lmUsrData<nMin))
let lmUsrData..=[user_data[__index]];
}
}
}
else
let lmUsrData=user_data;
TSTable {
options: { zebra:true, width:"50%" },
columns: [
{ key:"(web.image($.useravatar ?? $.usergravatar, 50, 50))", title:"Avatar", width:"%10", style:"text-align:center" },
{ key:"(web.link($.userhome ?? $.useruri,$.nick))", title:"Alias", width:"20%", initial: ((sortby=="nick") ? 0 : nil) },
{ key:"(date.format(date.ChangeTimezone($.lastlogin,$.timezone),'u'))", title:"Último login", width:"30%", initial: ((sortby=="-date.lastlogin") ? 1 : nil) }
],
data: lmUsrData //@himikel #mod 2010/05/06 : Add Exclude User List
}
/*
{ key:"(wiki.getuser($.nick).id)", title:"Alias", width:"20%" },
MindTouch.Deki.Script.DekiScriptInvokeException: function 'list.apply' failed ---> MindTouch.Deki.Script.DekiScriptUndefinedNameException: reference to undefined name 'wiki': line 1, column 2
{ key:"(var n=$.nick; #n>0 ? wiki.getuser(n).id : 'kk2')", title:"Alias", width:"20%" },
*/