");
// Restriction policy link in first column?
if (restrictedColumn == 1)
printf("Restriction Policy | ", (columnCount - restrictedColumn),ENCODE_DATA_RELEASE_POLICY);
printf(" ",(restrictedColumn > 1 ? (restrictedColumn - 1) : columnCount));
// Total
@@ -860,30 +860,36 @@
errAbort("TABLE NOT FOUND: '%s.%s'.\n",db,MDB_DEFAULT_NAME);
// Get an mdbObj list of all that belong to this track and have a fileName
char buf[256];
safef(buf,sizeof(buf),"%s=%s %s=?",MDB_VAR_COMPOSITE,tdb->track,MDB_VAR_FILENAME);
struct mdbByVar *mdbVars = mdbByVarsLineParse(buf);
struct mdbObj *mdbList = mdbObjsQueryByVars(conn,mdbTable,mdbVars);
// Now get Indexes But be sure not to duplicate entries in the list!!!
safef(buf,sizeof(buf),"%s=%s %s= %s!=",MDB_VAR_COMPOSITE,tdb->track,MDB_VAR_FILEINDEX,MDB_VAR_FILENAME);
mdbVars = mdbByVarsLineParse(buf);
mdbList = slCat(mdbList, mdbObjsQueryByVars(conn,mdbTable,mdbVars));
mdbObjRemoveHiddenVars(mdbList);
hFreeConn(&conn);
+if (mdbList)
+ {
+ (void)mdbObjsFilter(&mdbList,"objStatus","rejected",TRUE);
+ (void)mdbObjsFilter(&mdbList,"objStatus","replaced",TRUE);
+ }
+
if (slCount(mdbList) == 0)
{
warn("No files specified in metadata for: %s\n%s",tdb->track,tdb->longLabel);
return;
}
// Verify file existance and make fileList of those found
struct fileDb *fileList = NULL; // Will contain found files
int fileCount = filesFindInDir(db, &mdbList, &fileList, NULL, 0, NULL);
assert(fileCount == slCount(fileList));
if (fileCount == 0)
{
warn("No downloadable files currently available for: %s\n%s",tdb->track,tdb->longLabel);
@@ -926,30 +932,37 @@
filesPrintTable(db,tdb,fileList,sortOrder,filterable);
//fileDbFree(&fileList); // Why bother on this very long running cgi?
//mdbObjsFree(&mdbList);
}
int fileSearchResults(char *db, struct sqlConnection *conn, struct slPair *varValPairs, char *fileType)
// Prints list of files in downloads directories matching mdb search terms. Returns count
{
struct sqlConnection *connLocal = conn;
if (conn == NULL)
connLocal = hAllocConn(db);
struct mdbObj *mdbList = mdbObjRepeatedSearch(connLocal,varValPairs,FALSE,TRUE);
if (conn == NULL)
hFreeConn(&connLocal);
+
+if (mdbList)
+ {
+ (void)mdbObjsFilter(&mdbList,"objStatus","rejected",TRUE);
+ (void)mdbObjsFilter(&mdbList,"objStatus","replaced",TRUE);
+ }
+
if (slCount(mdbList) == 0)
{
printf(" No files found.
\n");
return 0;
}
// Now sort mdbObjs so that composites will stay together and lookup of files will be most efficient
mdbObjsSortOnVars(&mdbList, MDB_VAR_COMPOSITE);
mdbObjRemoveHiddenVars(mdbList);
#define FOUND_FILE_LIMIT 1000
struct fileDb *fileList = NULL; // Will contain found files
int filesExpected = slCount(mdbList);
boolean exceededLimit = FALSE;
int fileCount = filesFindInDir(db, &mdbList, &fileList, fileType, FOUND_FILE_LIMIT, &exceededLimit);
|