/* FILE tStatus source code of mysqlSendmail.cgi (built by mysqlRAD2.cgi (c) Gary Wallis 2001,2002 GPL Licensed) $Id: tstatus.c 6 2005-11-24 00:02:59Z ggw $ (tAuthorize.cPasswd template set member) PURPOSE */ #include "mysqlrad.h" //Table Variables //uStatus: Primary Key static unsigned uStatus=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_tStatus "tStatus.uStatus,tStatus.cLabel,tStatus.uOwner,tStatus.uCreatedBy,tStatus.uCreatedDate,tStatus.uModBy,tStatus.uModDate" //Local only void Insert_tStatus(void); void Update_tStatus(char *rowid); int InsertUpdate_tStatus(char *cKey); void ProcesstStatusListVars(pentry entries[], int x); //In tStatusfunc.h file included below void ExtProcesstStatusVars(pentry entries[], int x); void ExttStatusCommands(pentry entries[], int x); void ExttStatusButtons(void); void ExttStatusNavBar(void); void ExttStatusGetHook(entry gentries[], int x); void ExttStatusSelect(void); void ExttStatusSelectRow(void); void ExttStatusListSelect(void); void ExttStatusListFilter(void); void ExttStatusAuxTable(void); #include "tstatusfunc.h" //Table Variables Assignment Function void ProcesstStatusVars(pentry entries[], int x) { register int i; for(i=0;i\n"); printf("\n"); printf(""); printf("
"); ExttStatusNavBar(); 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("
"); ExttStatusButtons(); printf(""); printf("\n"); if(mode==2000 || mode==2002) tStatusInputContent(); else tStatusContent(); printf("
\n"); printf("
\n"); //Bottom table ExttStatusAuxTable(); printf("\n"); Footer_ism3(); }//end of tStatus(); void tStatusContent(void) { OpenRow(LANG_FL_tStatus_uStatus,"white"); printf("%u\n",uStatus,uStatus); printf("  "); OpenRow(LANG_FL_tStatus_cLabel,"white"); printf("%s",cLabel,EncodeDoubleQuotes(cLabel)); printf("  "); OpenRow(LANG_FL_tStatus_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); printf("  "); OpenRow(LANG_FL_tStatus_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); printf("  "); OpenRow(LANG_FL_tStatus_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); printf("  "); OpenRow(LANG_FL_tStatus_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); printf("  "); OpenRow(LANG_FL_tStatus_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("  "); printf("\n"); }//tStatusContent() void tStatusInputContent(void) { OpenRow(LANG_FL_tStatus_uStatus,"white"); if(uPermLevel>=20) printf("\n",LANG_FT_tStatus_uStatus,uStatus); else printf("%u\n",uStatus,uStatus); OpenRow(LANG_FL_tStatus_cLabel,"white"); if(uPermLevel>=12) printf("\n",LANG_FT_tStatus_cLabel,EncodeDoubleQuotes(cLabel)); else printf("%s",cLabel,EncodeDoubleQuotes(cLabel)); OpenRow(LANG_FL_tStatus_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); OpenRow(LANG_FL_tStatus_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); OpenRow(LANG_FL_tStatus_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); OpenRow(LANG_FL_tStatus_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); OpenRow(LANG_FL_tStatus_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("\n"); }//void tStatusInputContent(void) void NewtStatus(unsigned uMode) { register int i=0; MYSQL_RES *res; //New select sprintf(query,"SELECT uStatus FROM tStatus\ WHERE uStatus=%u" ,uStatus); mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); if(i) //tStatus("Record already exists"); tStatus(LANG_NBR_RECEXISTS); //insert query Insert_tStatus(); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"New record %u added"); uStatus=mysql_insert_id(&mysql); if(!uMode) { sprintf(query,LANG_NBR_NEWRECADDED,uStatus); tStatus(query); } }//NewtStatus(unsigned uMode) void DeletetStatus(void) { #ifdef ISM3FIELDS sprintf(query,"DELETE FROM tStatus WHERE uStatus=%u AND ( uOwner=%u OR %u>9 )" ,uStatus,uLoginClient,uPermLevel); #else sprintf(query,"DELETE FROM tStatus WHERE uStatus=%u" ,uStatus); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //tStatus("Record Deleted"); if(mysql_affected_rows(&mysql)>0) tStatus(LANG_NBR_RECDELETED); else tStatus(LANG_NBR_RECNOTDELETED); }//void DeletetStatus(void) void Insert_tStatus(void) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //insert query //insert query sprintf(query,"INSERT INTO tStatus SET uStatus=%u, cLabel='%s', uOwner=%u, uCreatedBy=%u, uCreatedDate=%lu, uModBy=%u, uModDate=0", uStatus ,TextAreaSave(cLabel) ,uOwner ,uCreatedBy ,(long unsigned)clock ,uModBy ); mysql_query(&mysql,query); #ifdef ISM3FIELDS uCreatedDate=clock; #endif }//void Insert_tStatus(void) void Update_tStatus(char *rowid) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //update query //update query sprintf(query,"UPDATE tStatus SET uStatus=%u,cLabel='%s',uModBy=%u,uModDate=%lu WHERE _rowid=%s", uStatus ,TextAreaSave(cLabel) ,uModBy ,(long unsigned)clock ,rowid); mysql_query(&mysql,query); #ifdef ISM3FIELDS uModDate=clock; #endif }//void Update_tStatus(void) void ModtStatus(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 tStatus.uStatus,\ tStatus.uModDate\ FROM tStatus,tClient\ WHERE tStatus.uStatus=%u\ AND tStatus.uOwner=tClient.uClient\ AND (tClient.uOwner=%u OR tClient.uClient=%u)" ,uStatus,uLoginClient,uLoginClient); else sprintf(query,"SELECT uStatus,uModDate FROM tStatus\ WHERE uStatus=%u" ,uStatus); #else sprintf(query,"SELECT uStatus FROM tStatus\ WHERE uStatus=%u" ,uStatus); #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) tStatus("Record does not exist"); if(i<1) tStatus(LANG_NBR_RECNOTEXIST); //if(i>1) tStatus("Multiple rows!"); if(i>1) tStatus(LANG_NBR_MULTRECS); field=mysql_fetch_row(res); #ifdef ISM3FIELDS sscanf(field[1],"%u",&uPreModDate); if(uPreModDate!=uModDate) tStatus(LANG_NBR_EXTMOD); #endif Update_tStatus(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]); tStatus(query); }//ModtStatus(void) void tStatusList(void) { MYSQL_RES *res; MYSQL_ROW field; ExttStatusListSelect(); mysql_query(&mysql,query); if(mysql_error(&mysql)[0]) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); PageMachine("tStatusList",1,"");//1 is auto header list mode. Opens table! //Filter select drop down ExttStatusListFilter(); 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("
uStatuscLabeluOwneruCreatedByuCreatedDateuModByuModDate
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(); }//tStatusList() void CreatetStatus(void) { sprintf(query,"CREATE TABLE tStatus ( uStatus 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)); }//CreatetStatus() //sedall patch1