2017-11-08 Fred Gleason <fredg@paravelsystems.com>

* Added 'FILTER' and 'RECENT' call parameters to the 'ListLogs' Web
	API call.
This commit is contained in:
Fred Gleason 2017-11-08 10:25:39 -05:00
parent fb2c080d35
commit 83d36698a0
4 changed files with 59 additions and 4 deletions

View File

@ -16336,3 +16336,6 @@
RDListLog.
2017-11-08 Fred Gleason <fredg@paravelsystems.com>
* Added a filter widget to the 'List Logs' dialog in rdairplay(1).
2017-11-08 Fred Gleason <fredg@paravelsystems.com>
* Added 'FILTER' and 'RECENT' call parameters to the 'ListLogs' Web
API call.

View File

@ -2463,7 +2463,7 @@
SERVICE_NAME
</entry>
<entry>
Limits returns to logs that are owned by specified service
Limit returns to logs that are owned by specified service
</entry>
<entry>
Optional. Default is to return all logs.
@ -2485,10 +2485,35 @@
TRACKABLE
</entry>
<entry>
Limits returns to logs that contain one or more voicetrack slots
Limit returns to logs that contain one or more voicetrack slots
</entry>
<entry>
Optional, valid values 0=no, 1=yes. Default is to return all logs
Optional, valid values 0=no, 1=yes. Default is to return all logs.
</entry>
</row>
<row>
<entry>
FILTER
</entry>
<entry>
Limit returns to logs that contain the specified string in
the <computeroutput>Name</computeroutput>,
<computeroutput>Description</computeroutput> or
<computeroutput>Service</computeroutput> fields.
</entry>
<entry>
Optional. Default is to return all logs.
</entry>
</row>
<row>
<entry>
RECENT
</entry>
<entry>
Limit returns to the 14 most recently created logs.
</entry>
<entry>
Optional, valid values 0=no, 1=yes. Default is to return all logs.
</entry>
</row>
</tbody>

View File

@ -122,6 +122,8 @@ void Xport::ListLogs()
QString service_name="";
QString log_name="";
QString trackable;
QString filter="";
QString recent="";
//
// Get Options
@ -129,12 +131,15 @@ void Xport::ListLogs()
xport_post->getValue("SERVICE_NAME",&service_name);
xport_post->getValue("LOG_NAME",&log_name);
xport_post->getValue("TRACKABLE",&trackable);
xport_post->getValue("FILTER",&filter);
xport_post->getValue("RECENT",&recent);
//
// Generate Log List
//
sql="select NAME from LOGS";
if((!service_name.isEmpty())||(!log_name.isEmpty())||(trackable=="1")) {
if((!service_name.isEmpty())||(!log_name.isEmpty())||(trackable=="1")||
(!filter.isEmpty())||(recent=="1")) {
sql+=" where";
if(!log_name.isEmpty()) {
sql+=" (NAME=\""+RDEscapeString(log_name)+"\")&&";
@ -145,9 +150,23 @@ void Xport::ListLogs()
if(trackable=="1") {
sql+=" (SCHEDULED_TRACKS>0)&&";
}
if(!filter.isEmpty()) {
if(service_name.isEmpty()) {
sql+=" ((LOGS.NAME like \"%%"+RDEscapeString(filter)+"%%\")||";
sql+="(LOGS.DESCRIPTION like \"%%"+RDEscapeString(filter)+"%%\")||";
sql+="(LOGS.SERVICE like \"%%"+RDEscapeString(filter)+"%%\"))&&";
}
else {
sql+=" ((LOGS.NAME like \"%%"+RDEscapeString(filter)+"%%\")||";
sql+="(LOGS.DESCRIPTION like \"%%"+RDEscapeString(filter)+"%%\"))&&";
}
}
sql=sql.left(sql.length()-2);
}
sql+=" order by NAME";
if(recent=="1") {
sql+=QString().sprintf(" limit %d",RD_LOGFILTER_LIMIT_QUAN);
}
q=new RDSqlQuery(sql);
//

View File

@ -30,6 +30,14 @@
<td><input type="text" name="TRACKABLE" size="2" maxlength="1"></td>
</tr>
<tr>
<td align="right">FILTER:</td>
<td><input type="text" name="FILTER" size="20"></td>
</tr>
<tr>
<td align="right">RECENT:</td>
<td><input type="text" name="RECENT" size="2" maxlength="1"></td>
</tr>
<tr>
<td colspan="2" align="right">&nbsp;</td>
</tr>
<tr>