/* FILE $Id: tjobfunc.h 6 2005-11-24 00:02:59Z ggw $ (tAuthorize.cPasswd template set member) PURPOSE AUTHOR Template and mysqlRAD2 author: (c) 2001,2002 Gary Wallis. GPL License applies, see www.fsf.org for details */ //ModuleFunctionProtos() void tJobNavList(void); void RecentJobList(void); void ExtProcesstJobVars(pentry entries[], int x) { /* register int i; for(i=0;i=12) { ProcesstJobVars(entries,x); //Check global conditions for new record here mode=2000; tJob(LANG_NB_CONFIRMNEW); } } else if(!strcmp(command,LANG_NB_CONFIRMNEW)) { if(uPermLevel>=12) { ProcesstJobVars(entries,x); //Check entries here uJob=0; uCreatedBy=uLoginClient; uOwner=uLoginClient; uModBy=0;//Never modified uModDate=0; NewtJob(0); } } else if(!strcmp(command,LANG_NB_DELETE)) { ProcesstJobVars(entries,x); if(uOwner) GetClientOwner(uOwner,&uReseller); if( (uPermLevel>=12 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) { mode=2001; tJob(LANG_NB_CONFIRMDEL); } } else if(!strcmp(command,LANG_NB_CONFIRMDEL)) { ProcesstJobVars(entries,x); if(uOwner) GetClientOwner(uOwner,&uReseller); if( (uPermLevel>=12 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) { mode=5; DeletetJob(); } } else if(!strcmp(command,LANG_NB_MODIFY)) { ProcesstJobVars(entries,x); if(uOwner) GetClientOwner(uOwner,&uReseller); if( (uPermLevel>=12 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) { mode=2002; tJob(LANG_NB_CONFIRMMOD); } } else if(!strcmp(command,LANG_NB_CONFIRMMOD)) { ProcesstJobVars(entries,x); if(uOwner) GetClientOwner(uOwner,&uReseller); if( (uPermLevel>=12 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) { uModBy=uLoginClient; ModtJob(); } } else if(!strcmp(command,"Purge")) { if(uPermLevel>=12) { sprintf(query,"DELETE FROM tJob"); mysql_query(&mysql,query); if(mysql_errno(&mysql)) tJob(mysql_error(&mysql)); tJob("tJob queue purged"); } } } }//void ExttJobCommands(pentry entries[], int x) void ExttJobButtons(void) { printf("\n"); printf("\n"); printf("
"); printf(""); printf(""); switch(mode) { case 2000: printf("Enter required data
"); printf(""); printf(LANG_NBB_CONFIRMNEW); printf("
\n"); break; case 2001: printf(""); printf(LANG_NBB_CONFIRMDEL); printf("
\n"); break; case 2002: printf("Review record data
"); printf(""); printf(LANG_NBB_CONFIRMMOD); printf("
\n"); break; } tJobNavList(); RecentJobList(); if(uPermLevel>=13) { printf("

"); printf(""); } printf(""); if(uPermLevel>11) { printf("


"); printf(""); } printf("
\n"); }//void ExttJobButtons(void) void ExttJobAuxTable(void) { }//void ExttJobAuxTable(void) void ExttJobGetHook(entry gentries[], int x) { register int i; for(i=0;i=9) sprintf(query,"SELECT %s FROM tJob ORDER BY\ uJob", VAR_LIST_tJob); else sprintf(query,"SELECT %s FROM tJob WHERE uOwner=%u ORDER BY\ uJob", VAR_LIST_tJob,uLoginClient); }//void ExttJobSelect(void) void ExttJobSelectRow(void) { if(uPermLevel<10) sprintf(query,"SELECT %s FROM tJob,tClient \ WHERE tJob.uOwner=tClient.uClient\ AND (tClient.uOwner=%u OR tClient.uClient=%u)\ AND tJob.uJob=%u", VAR_LIST_tJob, uLoginClient,uLoginClient,uJob); else sprintf(query,"SELECT %s FROM tJob WHERE uJob=%u", VAR_LIST_tJob,uJob); }//void ExttJobSelectRow(void) void ExttJobListSelect(void) { char cCat[512]; if(uPermLevel<10) sprintf(query,"SELECT %s FROM tJob,tClient \ WHERE tJob.uOwner=tClient.uClient \ AND (tClient.uOwner=%u OR tClient.uClient=%u)", VAR_LIST_tJob, uLoginClient, uLoginClient); else sprintf(query,"SELECT %s FROM tJob", VAR_LIST_tJob); //Changes here must be reflected below in ExttJobListFilter() if(!strcmp(filter,"uJob")) { sscanf(command,"%u",&uJob); if(uPermLevel<10) strcat(query," AND "); else strcat(query," WHERE "); sprintf(cCat,"tJob.uJob=%u \ ORDER BY uJob", uJob); strcat(query,cCat); } else if(!strcmp(filter,"cJobName")) { if(uPermLevel<10) strcat(query," AND "); else strcat(query," WHERE "); sprintf(cCat,"tJob.cJobName LIKE '%s' ORDER BY cJobName",command); strcat(query,cCat); } else if(1) { //None NO FILTER strcpy(filter,"None"); strcat(query," ORDER BY uJob"); } }//void ExttJobListSelect(void) void ExttJobListFilter(void) { //Filter printf("Select "); printf(""); }//void ExttJobListFilter(void) void ExttJobNavBar(void) { if(uOwner) GetClientOwner(uOwner,&uReseller); printf(LANG_NBB_SKIPFIRST); printf(LANG_NBB_SKIPBACK); printf(LANG_NBB_SEARCH); if(uPermLevel>=12) printf(LANG_NBB_NEW); if( uPermLevel>=12 || (uPermLevel>9 && uOwner!=1) ) printf(LANG_NBB_MODIFY); if( uPermLevel>=12 || (uPermLevel>9 && uOwner!=1) ) printf(LANG_NBB_DELETE); printf(LANG_NBB_LIST); printf(LANG_NBB_SKIPNEXT); printf(LANG_NBB_SKIPLAST); }//void ExttJobNavBar(void) void tJobNavList(void) { MYSQL_RES *res; MYSQL_ROW field; char *cp; unsigned uCount=0; if(uPermLevel<10) sprintf(query,"SELECT tJob.uJob\ ,tJob.cJobName,tJobStatus.cLabel,tJob.cJobData\ FROM tJob,tClient,tJobStatus\ WHERE tJob.uOwner=tClient.uClient\ AND tJob.uJobStatus=tJobStatus.uJobStatus\ AND (tJob.uJobStatus=1 OR tJob.uJobStatus=4 OR tJob.uJobStatus=10)\ AND (tClient.uOwner=%u OR tClient.uClient=%u) LIMIT 101", uLoginClient,uLoginClient); else sprintf(query,"SELECT uJob,cJobName,tJobStatus.cLabel,tJob.cJobData FROM tJob,tJobStatus WHERE tJob.uJobStatus=tJobStatus.uJobStatus AND ( tJob.uJobStatus=1 OR tJob.uJobStatus=4 OR tJob.uJobStatus=10) LIMIT 101"); mysql_query(&mysql,query); if(mysql_errno(&mysql)) { printf("%s",mysql_error(&mysql)); return; } res=mysql_store_result(&mysql); if(mysql_num_rows(res)) { printf(""); printf("

tJobNavList: Waiting&Errors
\n"); while((field=mysql_fetch_row(res))) { if((cp=strchr(field[3],'\n'))) *cp=0; printf("%s:%s %s
\n",field[0],field[1],field[3],field[2]); uCount++; } if(uCount>100) printf("More than 100. Contact sysadmin asap!\n"); } mysql_free_result(res); }//void tJobNavList(void) void RecentJobList(void) { MYSQL_RES *res; MYSQL_ROW field; time_t u24HrsAgo; unsigned uCount=0; char *cp; time(&u24HrsAgo); u24HrsAgo-= (24*3600); if(uPermLevel<10) sprintf(query,"SELECT tJob.uJob\ ,tJob.cJobName,tJobStatus.cLabel,tJob.cJobData\ FROM tJob,tClient,tJobStatus\ WHERE tJob.uOwner=tClient.uClient\ AND tJob.uJobStatus=tJobStatus.uJobStatus\ AND tJob.uJobStatus=3\ AND tJob.uModDate>=%lu\ AND (tClient.uOwner=%u OR tClient.uClient=%u) ORDER BY tJob.uModDate DESC LIMIT 101",(long unsigned)u24HrsAgo,uLoginClient,uLoginClient); else sprintf(query,"SELECT uJob,cJobName,tJobStatus.cLabel,tJob.cJobData FROM tJob,tJobStatus WHERE tJob.uJobStatus=tJobStatus.uJobStatus AND tJob.uModDate>=%lu AND tJob.uJobStatus=3 ORDER BY tJob.uModDate DESC LIMIT 101",(long unsigned)u24HrsAgo); mysql_query(&mysql,query); if(mysql_errno(&mysql)) { printf("%s",mysql_error(&mysql)); return; } res=mysql_store_result(&mysql); if(mysql_num_rows(res)) { printf(""); printf("

Recently Deployed Jobs
\n"); while((field=mysql_fetch_row(res))) { if((cp=strchr(field[3],'\n'))) *cp=0; printf("%s:%s %s
\n",field[0],field[1],field[3],field[2]); uCount++; } if(uCount>100) printf("More than 100. Only first 101 displayed.\n"); } mysql_free_result(res); }//void RecentJobList(void) //sedall patch1 //sedall patch2