Fossil SCM

Change the /setup_ulist page to show the most recently changed users first by default, as that seems to be the most common use case.

drh 2024-11-13 11:23 trunk
Commit 7b0a2378952457588d7479d463c27794b5ba59220293fc01cf976679dfd4123e
1 file changed +6 -4
+6 -4
--- src/setupuser.c
+++ src/setupuser.c
@@ -115,11 +115,11 @@
115115
}
116116
if( !bUnusedOnly ){
117117
style_submenu_element("Unused", "setup_ulist?unused");
118118
}
119119
@ <table border=1 cellpadding=2 cellspacing=0 class='userTable sortable' \
120
- @ data-column-types='ktxTTKt' data-init-sort='2'>
120
+ @ data-column-types='ktxKTKt' data-init-sort='4'>
121121
@ <thead><tr>
122122
@ <th>Login Name<th>Caps<th>Info<th>Date<th>Expire<th>Last Login\
123123
@ <th>Alerts</tr></thead>
124124
@ <tbody>
125125
db_multi_exec(
@@ -161,15 +161,16 @@
161161
" lower(login) AS sortkey, "
162162
" CASE WHEN info LIKE '%%expires 20%%'"
163163
" THEN substr(info,instr(lower(info),'expires')+8,10)"
164164
" END AS exp,"
165165
"atime,"
166
- " subscriber.ssub, subscriber.subscriberId"
166
+ " subscriber.ssub, subscriber.subscriberId,"
167
+ " user.mtime AS sorttime"
167168
" FROM user LEFT JOIN lastAccess ON login=uname"
168169
" LEFT JOIN subscriber ON login=suname"
169170
" WHERE login NOT IN ('anonymous','nobody','developer','reader') %s"
170
- " ORDER BY sortkey", zWith/*safe-for-%s*/
171
+ " ORDER BY sorttime DESC", zWith/*safe-for-%s*/
171172
);
172173
rNow = db_double(0.0, "SELECT julianday('now');");
173174
while( db_step(&s)==SQLITE_ROW ){
174175
int uid = db_column_int(&s, 0);
175176
const char *zLogin = db_column_text(&s, 1);
@@ -180,10 +181,11 @@
180181
const char *zExp = db_column_text(&s,6);
181182
double rATime = db_column_double(&s,7);
182183
char *zAge = 0;
183184
const char *zSub;
184185
int sid = db_column_int(&s,9);
186
+ sqlite3_int64 sorttime = db_column_int64(&s, 10);
185187
if( rATime>0.0 ){
186188
zAge = human_readable_age(rNow - rATime);
187189
}
188190
if( bUbg ){
189191
@ <tr style='background-color: %h(user_color(zLogin));'>
@@ -192,11 +194,11 @@
192194
}
193195
@ <td data-sortkey='%h(zSortKey)'>\
194196
@ <a href='setup_uedit?id=%d(uid)'>%h(zLogin)</a>
195197
@ <td>%h(zCap)
196198
@ <td>%h(zInfo)
197
- @ <td>%h(zDate?zDate:"")
199
+ @ <td data-sortkey='%09llx(sorttime)'>%h(zDate?zDate:"")
198200
@ <td>%h(zExp?zExp:"")
199201
@ <td data-sortkey='%f(rATime)' style='white-space:nowrap'>%s(zAge?zAge:"")
200202
if( db_column_type(&s,8)==SQLITE_NULL ){
201203
@ <td>
202204
}else if( (zSub = db_column_text(&s,8))==0 || zSub[0]==0 ){
203205
--- src/setupuser.c
+++ src/setupuser.c
@@ -115,11 +115,11 @@
115 }
116 if( !bUnusedOnly ){
117 style_submenu_element("Unused", "setup_ulist?unused");
118 }
119 @ <table border=1 cellpadding=2 cellspacing=0 class='userTable sortable' \
120 @ data-column-types='ktxTTKt' data-init-sort='2'>
121 @ <thead><tr>
122 @ <th>Login Name<th>Caps<th>Info<th>Date<th>Expire<th>Last Login\
123 @ <th>Alerts</tr></thead>
124 @ <tbody>
125 db_multi_exec(
@@ -161,15 +161,16 @@
161 " lower(login) AS sortkey, "
162 " CASE WHEN info LIKE '%%expires 20%%'"
163 " THEN substr(info,instr(lower(info),'expires')+8,10)"
164 " END AS exp,"
165 "atime,"
166 " subscriber.ssub, subscriber.subscriberId"
 
167 " FROM user LEFT JOIN lastAccess ON login=uname"
168 " LEFT JOIN subscriber ON login=suname"
169 " WHERE login NOT IN ('anonymous','nobody','developer','reader') %s"
170 " ORDER BY sortkey", zWith/*safe-for-%s*/
171 );
172 rNow = db_double(0.0, "SELECT julianday('now');");
173 while( db_step(&s)==SQLITE_ROW ){
174 int uid = db_column_int(&s, 0);
175 const char *zLogin = db_column_text(&s, 1);
@@ -180,10 +181,11 @@
180 const char *zExp = db_column_text(&s,6);
181 double rATime = db_column_double(&s,7);
182 char *zAge = 0;
183 const char *zSub;
184 int sid = db_column_int(&s,9);
 
185 if( rATime>0.0 ){
186 zAge = human_readable_age(rNow - rATime);
187 }
188 if( bUbg ){
189 @ <tr style='background-color: %h(user_color(zLogin));'>
@@ -192,11 +194,11 @@
192 }
193 @ <td data-sortkey='%h(zSortKey)'>\
194 @ <a href='setup_uedit?id=%d(uid)'>%h(zLogin)</a>
195 @ <td>%h(zCap)
196 @ <td>%h(zInfo)
197 @ <td>%h(zDate?zDate:"")
198 @ <td>%h(zExp?zExp:"")
199 @ <td data-sortkey='%f(rATime)' style='white-space:nowrap'>%s(zAge?zAge:"")
200 if( db_column_type(&s,8)==SQLITE_NULL ){
201 @ <td>
202 }else if( (zSub = db_column_text(&s,8))==0 || zSub[0]==0 ){
203
--- src/setupuser.c
+++ src/setupuser.c
@@ -115,11 +115,11 @@
115 }
116 if( !bUnusedOnly ){
117 style_submenu_element("Unused", "setup_ulist?unused");
118 }
119 @ <table border=1 cellpadding=2 cellspacing=0 class='userTable sortable' \
120 @ data-column-types='ktxKTKt' data-init-sort='4'>
121 @ <thead><tr>
122 @ <th>Login Name<th>Caps<th>Info<th>Date<th>Expire<th>Last Login\
123 @ <th>Alerts</tr></thead>
124 @ <tbody>
125 db_multi_exec(
@@ -161,15 +161,16 @@
161 " lower(login) AS sortkey, "
162 " CASE WHEN info LIKE '%%expires 20%%'"
163 " THEN substr(info,instr(lower(info),'expires')+8,10)"
164 " END AS exp,"
165 "atime,"
166 " subscriber.ssub, subscriber.subscriberId,"
167 " user.mtime AS sorttime"
168 " FROM user LEFT JOIN lastAccess ON login=uname"
169 " LEFT JOIN subscriber ON login=suname"
170 " WHERE login NOT IN ('anonymous','nobody','developer','reader') %s"
171 " ORDER BY sorttime DESC", zWith/*safe-for-%s*/
172 );
173 rNow = db_double(0.0, "SELECT julianday('now');");
174 while( db_step(&s)==SQLITE_ROW ){
175 int uid = db_column_int(&s, 0);
176 const char *zLogin = db_column_text(&s, 1);
@@ -180,10 +181,11 @@
181 const char *zExp = db_column_text(&s,6);
182 double rATime = db_column_double(&s,7);
183 char *zAge = 0;
184 const char *zSub;
185 int sid = db_column_int(&s,9);
186 sqlite3_int64 sorttime = db_column_int64(&s, 10);
187 if( rATime>0.0 ){
188 zAge = human_readable_age(rNow - rATime);
189 }
190 if( bUbg ){
191 @ <tr style='background-color: %h(user_color(zLogin));'>
@@ -192,11 +194,11 @@
194 }
195 @ <td data-sortkey='%h(zSortKey)'>\
196 @ <a href='setup_uedit?id=%d(uid)'>%h(zLogin)</a>
197 @ <td>%h(zCap)
198 @ <td>%h(zInfo)
199 @ <td data-sortkey='%09llx(sorttime)'>%h(zDate?zDate:"")
200 @ <td>%h(zExp?zExp:"")
201 @ <td data-sortkey='%f(rATime)' style='white-space:nowrap'>%s(zAge?zAge:"")
202 if( db_column_type(&s,8)==SQLITE_NULL ){
203 @ <td>
204 }else if( (zSub = db_column_text(&s,8))==0 || zSub[0]==0 ){
205

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button