#include "gb-include.h"
#include "Pages.h"
#include "TcpSocket.h"
#include "HttpRequest.h"
#include "Collectiondb.h"
//#include "CollectionRec.h"
#include "Users.h"
bool sendPageAddDelColl ( TcpSocket *s , HttpRequest *r , bool add ) ;
bool sendPageAddColl ( TcpSocket *s , HttpRequest *r ) {
return sendPageAddDelColl ( s , r , true );
}
bool sendPageDelColl ( TcpSocket *s , HttpRequest *r ) {
return sendPageAddDelColl ( s , r , false );
}
bool sendPageAddDelColl ( TcpSocket *s , HttpRequest *r , bool add ) {
// get collection name
//long nclen;
//char *nc = r->getString ( "nc" , &nclen );
//long cpclen;
//char *cpc = r->getString ( "cpc" , &cpclen );
g_errno = 0;
//bool cast = r->getLong("cast",0);
char *msg = NULL;
// if any host in network is dead, do not do this
//if ( g_hostdb.hasDeadHost() ) msg = "A host in the network is dead.";
// . are we adding a collection?
// . return if error adding, might already exist!
// . g_errno should be set
// . WE DO NOT NEED THIS ANYMORE. Pages.cpp now broadcasts
// addcoll as CommandAddColl() parm.
/*
if ( nclen > 0 && add && ! cast ) {
// do not allow "main" that is used for the "" collection
// for backwards compatibility
//if ( strcmp ( nc , "main" ) != 0 )
g_collectiondb.addRec (nc,cpc,cpclen,true,(collnum_t)-1,
false , // isdump?
true ) ;// save it?
//else
// log("admin: \"main\" collection is forbidden.");
}
if ( ! add && ! cast ) g_collectiondb.deleteRecs ( r ) ;
*/
char buf [ 64*1024 ];
SafeBuf p(buf, 64*1024);
// print standard header
g_pages.printAdminTop ( &p , s , r );
//long page = g_pages.getDynamicPageNumber ( r );
//char *coll = r->getString ( "c" );
//char *pwd = r->getString ( "pwd" );
//char *username = g_users.getUsername( r );
//long user = g_pages.getUserType ( s , r );
//if ( ! coll ) coll = "";
//if ( ! nc ) nc = "";
//if ( ! pwd ) pwd = "";
if ( g_errno ) msg = mstrerror(g_errno);
if ( msg ) {
char *cc = "deleting";
if ( add ) cc = "adding";
p.safePrintf (
"
\n"
""
"Error %s collection: %s. "
"See log file for details."
""
"
\n",cc,msg);
}
// print the add collection box
if ( add /*&& (! nc[0] || g_errno ) */ ) {
p.safePrintf (
"\n
\n");
// wrap up the form started by printAdminTop
g_pages.printAdminBottom ( &p );
long bufLen = p.length();
return g_httpServer.sendDynamicPage (s,p.getBufStart(),bufLen);
}
// if we added a collection, print its page
//if ( add && nc[0] && ! g_errno )
// return g_parms.sendPageGeneric2 ( s , r , PAGE_SEARCH ,
// nc , pwd );
if ( g_collectiondb.m_numRecsUsed <= 0 ) goto skip;
// print all collections out in a checklist so you can check the
// ones you want to delete, the values will be the id of that collectn
p.safePrintf (
"\n\n"
"Delete Collections"
" |
\n"
""
"Select the collections you wish to delete. "
//"This feature is currently under "
//"development."
" |
\n"
""
// table within a table
" |
\n" );
skip:
// wrap up the form started by printAdminTop
g_pages.printAdminBottom ( &p );
long bufLen = p.length();
return g_httpServer.sendDynamicPage (s,p.getBufStart(),bufLen);
}