/* FILE tJobStatus source code of mysqlSendmail.cgi (built by mysqlRAD2.cgi (c) Gary Wallis 2001,2002 GPL Licensed) $Id: tjobstatus.c 6 2005-11-24 00:02:59Z ggw $ (tAuthorize.cPasswd template set member) PURPOSE */ #include "mysqlrad.h" //Table Variables //uJobStatus: Primary Key static unsigned uJobStatus=0; //cLabel: Short label static char cLabel[33]={""}; //uOwner: Record owner static unsigned uOwner=0; //uCreatedBy: uClient for last insert static unsigned uCreatedBy=0; #define ISM3FIELDS //uCreatedDate: Unix seconds date last insert static long unsigned uCreatedDate=0; //uModBy: uClient for last update static unsigned uModBy=0; //uModDate: Unix seconds date last update static long unsigned uModDate=0; #define VAR_LIST_tJobStatus "tJobStatus.uJobStatus,tJobStatus.cLabel,tJobStatus.uOwner,tJobStatus.uCreatedBy,tJobStatus.uCreatedDate,tJobStatus.uModBy,tJobStatus.uModDate" //Local only void Insert_tJobStatus(void); void Update_tJobStatus(char *rowid); int InsertUpdate_tJobStatus(char *cKey); void ProcesstJobStatusListVars(pentry entries[], int x); //In tJobStatusfunc.h file included below void ExtProcesstJobStatusVars(pentry entries[], int x); void ExttJobStatusCommands(pentry entries[], int x); void ExttJobStatusButtons(void); void ExttJobStatusNavBar(void); void ExttJobStatusGetHook(entry gentries[], int x); void ExttJobStatusSelect(void); void ExttJobStatusSelectRow(void); void ExttJobStatusListSelect(void); void ExttJobStatusListFilter(void); void ExttJobStatusAuxTable(void); #include "tjobstatusfunc.h" //Table Variables Assignment Function void ProcesstJobStatusVars(pentry entries[], int x) { register int i; for(i=0;i\n"); printf("\n"); printf(""); printf("
"); ExttJobStatusNavBar(); printf(""); printf("",rowid); if(i) { printf(" "); if(mode==6) //printf(" Found"); printf(LANG_NBR_FOUND); else if(mode==5) //printf(" Modified"); printf(LANG_NBR_MODIFIED); else if(mode==4) //printf(" New"); printf(LANG_NBR_NEW); printf(LANG_NBRF_SHOWING,rowid,i); } else { if(!result[0]) //printf(" No records found"); printf(LANG_NBR_NORECS); } if(result[0]) printf(" %s",result); printf("
"); ExttJobStatusButtons(); printf(""); printf("\n"); if(mode==2000 || mode==2002) tJobStatusInputContent(); else tJobStatusContent(); printf("
\n"); printf("
\n"); //Bottom table ExttJobStatusAuxTable(); printf("\n"); Footer_ism3(); }//end of tJobStatus(); void tJobStatusContent(void) { OpenRow(LANG_FL_tJobStatus_uJobStatus,"white"); printf("%u\n",uJobStatus,uJobStatus); printf("  "); OpenRow(LANG_FL_tJobStatus_cLabel,"white"); printf("%s",cLabel,EncodeDoubleQuotes(cLabel)); printf("  "); OpenRow(LANG_FL_tJobStatus_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); printf("  "); OpenRow(LANG_FL_tJobStatus_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); printf("  "); OpenRow(LANG_FL_tJobStatus_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); printf("  "); OpenRow(LANG_FL_tJobStatus_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); printf("  "); OpenRow(LANG_FL_tJobStatus_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("  "); printf("\n"); }//tJobStatusContent() void tJobStatusInputContent(void) { OpenRow(LANG_FL_tJobStatus_uJobStatus,"white"); if(uPermLevel>=20) printf("\n",LANG_FT_tJobStatus_uJobStatus,uJobStatus); else printf("%u\n",uJobStatus,uJobStatus); OpenRow(LANG_FL_tJobStatus_cLabel,"white"); if(uPermLevel>=12) printf("\n",LANG_FT_tJobStatus_cLabel,EncodeDoubleQuotes(cLabel)); else printf("%s",cLabel,EncodeDoubleQuotes(cLabel)); OpenRow(LANG_FL_tJobStatus_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); OpenRow(LANG_FL_tJobStatus_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); OpenRow(LANG_FL_tJobStatus_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); OpenRow(LANG_FL_tJobStatus_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); OpenRow(LANG_FL_tJobStatus_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("\n"); }//void tJobStatusInputContent(void) void NewtJobStatus(unsigned uMode) { register int i=0; MYSQL_RES *res; //New select sprintf(query,"SELECT uJobStatus FROM tJobStatus\ WHERE uJobStatus=%u" ,uJobStatus); mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); if(i) //tJobStatus("Record already exists"); tJobStatus(LANG_NBR_RECEXISTS); //insert query Insert_tJobStatus(); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"New record %u added"); uJobStatus=mysql_insert_id(&mysql); if(!uMode) { sprintf(query,LANG_NBR_NEWRECADDED,uJobStatus); tJobStatus(query); } }//NewtJobStatus(unsigned uMode) void DeletetJobStatus(void) { #ifdef ISM3FIELDS sprintf(query,"DELETE FROM tJobStatus WHERE uJobStatus=%u AND ( uOwner=%u OR %u>9 )" ,uJobStatus,uLoginClient,uPermLevel); #else sprintf(query,"DELETE FROM tJobStatus WHERE uJobStatus=%u" ,uJobStatus); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //tJobStatus("Record Deleted"); if(mysql_affected_rows(&mysql)>0) tJobStatus(LANG_NBR_RECDELETED); else tJobStatus(LANG_NBR_RECNOTDELETED); }//void DeletetJobStatus(void) void Insert_tJobStatus(void) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //insert query //insert query sprintf(query,"INSERT INTO tJobStatus SET uJobStatus=%u, cLabel='%s', uOwner=%u, uCreatedBy=%u, uCreatedDate=%lu, uModBy=%u, uModDate=0", uJobStatus ,TextAreaSave(cLabel) ,uOwner ,uCreatedBy ,(long unsigned)clock ,uModBy ); mysql_query(&mysql,query); #ifdef ISM3FIELDS uCreatedDate=clock; #endif }//void Insert_tJobStatus(void) void Update_tJobStatus(char *rowid) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //update query //update query sprintf(query,"UPDATE tJobStatus SET uJobStatus=%u,cLabel='%s',uModBy=%u,uModDate=%lu WHERE _rowid=%s", uJobStatus ,TextAreaSave(cLabel) ,uModBy ,(long unsigned)clock ,rowid); mysql_query(&mysql,query); #ifdef ISM3FIELDS uModDate=clock; #endif }//void Update_tJobStatus(void) void ModtJobStatus(void) { register int i=0; MYSQL_RES *res; MYSQL_ROW field; #ifdef ISM3FIELDS unsigned uPreModDate=0; //Mod select query if(uPermLevel<10) sprintf(query,"SELECT tJobStatus.uJobStatus,\ tJobStatus.uModDate\ FROM tJobStatus,tClient\ WHERE tJobStatus.uJobStatus=%u\ AND tJobStatus.uOwner=tClient.uClient\ AND (tClient.uOwner=%u OR tClient.uClient=%u)" ,uJobStatus,uLoginClient,uLoginClient); else sprintf(query,"SELECT uJobStatus,uModDate FROM tJobStatus\ WHERE uJobStatus=%u" ,uJobStatus); #else sprintf(query,"SELECT uJobStatus FROM tJobStatus\ WHERE uJobStatus=%u" ,uJobStatus); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); //if(i<1) tJobStatus("Record does not exist"); if(i<1) tJobStatus(LANG_NBR_RECNOTEXIST); //if(i>1) tJobStatus("Multiple rows!"); if(i>1) tJobStatus(LANG_NBR_MULTRECS); field=mysql_fetch_row(res); #ifdef ISM3FIELDS sscanf(field[1],"%u",&uPreModDate); if(uPreModDate!=uModDate) tJobStatus(LANG_NBR_EXTMOD); #endif Update_tJobStatus(field[0]); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"record %s modified",field[0]); sprintf(query,LANG_NBRF_REC_MODIFIED,field[0]); tJobStatus(query); }//ModtJobStatus(void) void tJobStatusList(void) { MYSQL_RES *res; MYSQL_ROW field; ExttJobStatusListSelect(); mysql_query(&mysql,query); if(mysql_error(&mysql)[0]) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); PageMachine("tJobStatusList",1,"");//1 is auto header list mode. Opens table! //Filter select drop down ExttJobStatusListFilter(); printf("",command); printf("\n"); printf("\n"); printf(""); mysql_data_seek(res,start-1); for(n=0;n<(end-start+1);n++) { field=mysql_fetch_row(res); if(!field) { printf("
uJobStatuscLabeluOwneruCreatedByuCreatedDateuModByuModDate
End of data
"); Footer_ism3(); } if(n % 2) printf(""); else printf(""); printf(" %s%s%s%s%s%s%s" ,field[0] ,field[0] ,field[1] ,field[2] ,field[3] ,field[4] ,field[5] ,field[6] ); } printf("\n"); Footer_ism3(); }//tJobStatusList() void CreatetJobStatus(void) { sprintf(query,"CREATE TABLE tJobStatus ( uJobStatus int unsigned PRIMARY KEY AUTO_INCREMENT, cLabel varchar(32) NOT NULL DEFAULT '', uOwner int unsigned NOT NULL DEFAULT 0,index (uOwner), uCreatedBy int unsigned NOT NULL DEFAULT 0, uCreatedDate int unsigned NOT NULL DEFAULT 0, uModBy int unsigned NOT NULL DEFAULT 0, uModDate int unsigned NOT NULL DEFAULT 0 )"); mysql_query(&mysql,qstr); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); }//CreatetJobStatus() //sedall patch1