| 1 | /* |
|---|
| 2 | FILE |
|---|
| 3 | tTemplate source code of unxsVZ.cgi |
|---|
| 4 | Built by mysqlRAD2.cgi (C) Gary Wallis 2001-2007 |
|---|
| 5 | $Id$ |
|---|
| 6 | PURPOSE |
|---|
| 7 | Schema dependent RAD generated file. |
|---|
| 8 | Program app functionality in ttemplatefunc.h while |
|---|
| 9 | RAD is still to be used. |
|---|
| 10 | */ |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | #include "mysqlrad.h" |
|---|
| 14 | |
|---|
| 15 | //Table Variables |
|---|
| 16 | //Table Variables |
|---|
| 17 | //uTemplate: Primary Key |
|---|
| 18 | static unsigned uTemplate=0; |
|---|
| 19 | //cLabel: Short label |
|---|
| 20 | static char cLabel[33]={""}; |
|---|
| 21 | //uTemplateSet: Short label |
|---|
| 22 | static unsigned uTemplateSet=0; |
|---|
| 23 | static char cuTemplateSetPullDown[256]={""}; |
|---|
| 24 | //uTemplateType: Short label |
|---|
| 25 | static unsigned uTemplateType=0; |
|---|
| 26 | static char cuTemplateTypePullDown[256]={""}; |
|---|
| 27 | //cComment: About the template |
|---|
| 28 | static char *cComment={""}; |
|---|
| 29 | //cTemplate: Template itself |
|---|
| 30 | static char *cTemplate={""}; |
|---|
| 31 | //uOwner: Record owner |
|---|
| 32 | static unsigned uOwner=0; |
|---|
| 33 | //uCreatedBy: uClient for last insert |
|---|
| 34 | static unsigned uCreatedBy=0; |
|---|
| 35 | //uCreatedDate: Unix seconds date last insert |
|---|
| 36 | static time_t uCreatedDate=0; |
|---|
| 37 | //uModBy: uClient for last update |
|---|
| 38 | static unsigned uModBy=0; |
|---|
| 39 | //uModDate: Unix seconds date last update |
|---|
| 40 | static time_t uModDate=0; |
|---|
| 41 | |
|---|
| 42 | |
|---|
| 43 | |
|---|
| 44 | #define VAR_LIST_tTemplate "tTemplate.uTemplate,tTemplate.cLabel,tTemplate.uTemplateSet,tTemplate.uTemplateType,tTemplate.cComment,tTemplate.cTemplate,tTemplate.uOwner,tTemplate.uCreatedBy,tTemplate.uCreatedDate,tTemplate.uModBy,tTemplate.uModDate" |
|---|
| 45 | |
|---|
| 46 | //Local only |
|---|
| 47 | void Insert_tTemplate(void); |
|---|
| 48 | void Update_tTemplate(char *cRowid); |
|---|
| 49 | void ProcesstTemplateListVars(pentry entries[], int x); |
|---|
| 50 | |
|---|
| 51 | //In tTemplatefunc.h file included below |
|---|
| 52 | void ExtProcesstTemplateVars(pentry entries[], int x); |
|---|
| 53 | void ExttTemplateCommands(pentry entries[], int x); |
|---|
| 54 | void ExttTemplateButtons(void); |
|---|
| 55 | void ExttTemplateNavBar(void); |
|---|
| 56 | void ExttTemplateGetHook(entry gentries[], int x); |
|---|
| 57 | void ExttTemplateSelect(void); |
|---|
| 58 | void ExttTemplateSelectRow(void); |
|---|
| 59 | void ExttTemplateListSelect(void); |
|---|
| 60 | void ExttTemplateListFilter(void); |
|---|
| 61 | void ExttTemplateAuxTable(void); |
|---|
| 62 | |
|---|
| 63 | #include "ttemplatefunc.h" |
|---|
| 64 | |
|---|
| 65 | //Table Variables Assignment Function |
|---|
| 66 | void ProcesstTemplateVars(pentry entries[], int x) |
|---|
| 67 | { |
|---|
| 68 | register int i; |
|---|
| 69 | |
|---|
| 70 | |
|---|
| 71 | for(i=0;i<x;i++) |
|---|
| 72 | { |
|---|
| 73 | if(!strcmp(entries[i].name,"uTemplate")) |
|---|
| 74 | sscanf(entries[i].val,"%u",&uTemplate); |
|---|
| 75 | else if(!strcmp(entries[i].name,"cLabel")) |
|---|
| 76 | sprintf(cLabel,"%.32s",entries[i].val); |
|---|
| 77 | else if(!strcmp(entries[i].name,"uTemplateSet")) |
|---|
| 78 | sscanf(entries[i].val,"%u",&uTemplateSet); |
|---|
| 79 | else if(!strcmp(entries[i].name,"cuTemplateSetPullDown")) |
|---|
| 80 | { |
|---|
| 81 | sprintf(cuTemplateSetPullDown,"%.255s",entries[i].val); |
|---|
| 82 | uTemplateSet=ReadPullDown("tTemplateSet","cLabel",cuTemplateSetPullDown); |
|---|
| 83 | } |
|---|
| 84 | else if(!strcmp(entries[i].name,"uTemplateType")) |
|---|
| 85 | sscanf(entries[i].val,"%u",&uTemplateType); |
|---|
| 86 | else if(!strcmp(entries[i].name,"cuTemplateTypePullDown")) |
|---|
| 87 | { |
|---|
| 88 | sprintf(cuTemplateTypePullDown,"%.255s",entries[i].val); |
|---|
| 89 | uTemplateType=ReadPullDown("tTemplateType","cLabel",cuTemplateTypePullDown); |
|---|
| 90 | } |
|---|
| 91 | else if(!strcmp(entries[i].name,"cComment")) |
|---|
| 92 | cComment=entries[i].val; |
|---|
| 93 | else if(!strcmp(entries[i].name,"cTemplate")) |
|---|
| 94 | cTemplate=entries[i].val; |
|---|
| 95 | else if(!strcmp(entries[i].name,"uOwner")) |
|---|
| 96 | sscanf(entries[i].val,"%u",&uOwner); |
|---|
| 97 | else if(!strcmp(entries[i].name,"uCreatedBy")) |
|---|
| 98 | sscanf(entries[i].val,"%u",&uCreatedBy); |
|---|
| 99 | else if(!strcmp(entries[i].name,"uCreatedDate")) |
|---|
| 100 | sscanf(entries[i].val,"%lu",&uCreatedDate); |
|---|
| 101 | else if(!strcmp(entries[i].name,"uModBy")) |
|---|
| 102 | sscanf(entries[i].val,"%u",&uModBy); |
|---|
| 103 | else if(!strcmp(entries[i].name,"uModDate")) |
|---|
| 104 | sscanf(entries[i].val,"%lu",&uModDate); |
|---|
| 105 | |
|---|
| 106 | } |
|---|
| 107 | |
|---|
| 108 | //After so we can overwrite form data if needed. |
|---|
| 109 | ExtProcesstTemplateVars(entries,x); |
|---|
| 110 | |
|---|
| 111 | }//ProcesstTemplateVars() |
|---|
| 112 | |
|---|
| 113 | |
|---|
| 114 | void ProcesstTemplateListVars(pentry entries[], int x) |
|---|
| 115 | { |
|---|
| 116 | register int i; |
|---|
| 117 | |
|---|
| 118 | for(i=0;i<x;i++) |
|---|
| 119 | { |
|---|
| 120 | if(!strncmp(entries[i].name,"ED",2)) |
|---|
| 121 | { |
|---|
| 122 | sscanf(entries[i].name+2,"%u",&uTemplate); |
|---|
| 123 | guMode=2002; |
|---|
| 124 | tTemplate(""); |
|---|
| 125 | } |
|---|
| 126 | } |
|---|
| 127 | }//void ProcesstTemplateListVars(pentry entries[], int x) |
|---|
| 128 | |
|---|
| 129 | |
|---|
| 130 | int tTemplateCommands(pentry entries[], int x) |
|---|
| 131 | { |
|---|
| 132 | ProcessControlVars(entries,x); |
|---|
| 133 | |
|---|
| 134 | ExttTemplateCommands(entries,x); |
|---|
| 135 | |
|---|
| 136 | if(!strcmp(gcFunction,"tTemplateTools")) |
|---|
| 137 | { |
|---|
| 138 | if(!strcmp(gcFind,LANG_NB_LIST)) |
|---|
| 139 | { |
|---|
| 140 | tTemplateList(); |
|---|
| 141 | } |
|---|
| 142 | |
|---|
| 143 | //Default |
|---|
| 144 | ProcesstTemplateVars(entries,x); |
|---|
| 145 | tTemplate(""); |
|---|
| 146 | } |
|---|
| 147 | else if(!strcmp(gcFunction,"tTemplateList")) |
|---|
| 148 | { |
|---|
| 149 | ProcessControlVars(entries,x); |
|---|
| 150 | ProcesstTemplateListVars(entries,x); |
|---|
| 151 | tTemplateList(); |
|---|
| 152 | } |
|---|
| 153 | |
|---|
| 154 | return(0); |
|---|
| 155 | |
|---|
| 156 | }//tTemplateCommands() |
|---|
| 157 | |
|---|
| 158 | |
|---|
| 159 | void tTemplate(const char *cResult) |
|---|
| 160 | { |
|---|
| 161 | MYSQL_RES *res; |
|---|
| 162 | MYSQL_RES *res2; |
|---|
| 163 | MYSQL_ROW field; |
|---|
| 164 | |
|---|
| 165 | //Internal skip reloading |
|---|
| 166 | if(!cResult[0]) |
|---|
| 167 | { |
|---|
| 168 | if(guMode) |
|---|
| 169 | ExttTemplateSelectRow(); |
|---|
| 170 | else |
|---|
| 171 | ExttTemplateSelect(); |
|---|
| 172 | |
|---|
| 173 | mysql_query(&gMysql,gcQuery); |
|---|
| 174 | if(mysql_errno(&gMysql)) |
|---|
| 175 | { |
|---|
| 176 | if(strstr(mysql_error(&gMysql)," doesn't exist")) |
|---|
| 177 | { |
|---|
| 178 | CreatetTemplate(); |
|---|
| 179 | unxsVZ("New tTemplate table created"); |
|---|
| 180 | } |
|---|
| 181 | else |
|---|
| 182 | { |
|---|
| 183 | htmlPlainTextError(mysql_error(&gMysql)); |
|---|
| 184 | } |
|---|
| 185 | } |
|---|
| 186 | |
|---|
| 187 | res=mysql_store_result(&gMysql); |
|---|
| 188 | if((guI=mysql_num_rows(res))) |
|---|
| 189 | { |
|---|
| 190 | if(guMode==6) |
|---|
| 191 | { |
|---|
| 192 | sprintf(gcQuery,"SELECT _rowid FROM tTemplate WHERE uTemplate=%u" |
|---|
| 193 | ,uTemplate); |
|---|
| 194 | MYSQL_RUN_STORE(res2); |
|---|
| 195 | field=mysql_fetch_row(res2); |
|---|
| 196 | sscanf(field[0],"%lu",&gluRowid); |
|---|
| 197 | gluRowid++; |
|---|
| 198 | } |
|---|
| 199 | PageMachine("",0,""); |
|---|
| 200 | if(!guMode) mysql_data_seek(res,gluRowid-1); |
|---|
| 201 | field=mysql_fetch_row(res); |
|---|
| 202 | sscanf(field[0],"%u",&uTemplate); |
|---|
| 203 | sprintf(cLabel,"%.32s",field[1]); |
|---|
| 204 | sscanf(field[2],"%u",&uTemplateSet); |
|---|
| 205 | sscanf(field[3],"%u",&uTemplateType); |
|---|
| 206 | cComment=field[4]; |
|---|
| 207 | cTemplate=field[5]; |
|---|
| 208 | sscanf(field[6],"%u",&uOwner); |
|---|
| 209 | sscanf(field[7],"%u",&uCreatedBy); |
|---|
| 210 | sscanf(field[8],"%lu",&uCreatedDate); |
|---|
| 211 | sscanf(field[9],"%u",&uModBy); |
|---|
| 212 | sscanf(field[10],"%lu",&uModDate); |
|---|
| 213 | |
|---|
| 214 | } |
|---|
| 215 | |
|---|
| 216 | }//Internal Skip |
|---|
| 217 | |
|---|
| 218 | Header_ism3(":: tTemplate",0); |
|---|
| 219 | printf("<table width=100%% cellspacing=0 cellpadding=0>\n"); |
|---|
| 220 | printf("<tr><td colspan=2 align=right valign=center>"); |
|---|
| 221 | |
|---|
| 222 | |
|---|
| 223 | printf("<input type=hidden name=gcFunction value=tTemplateTools>"); |
|---|
| 224 | printf("<input type=hidden name=gluRowid value=%lu>",gluRowid); |
|---|
| 225 | if(guI) |
|---|
| 226 | { |
|---|
| 227 | if(guMode==6) |
|---|
| 228 | //printf(" Found"); |
|---|
| 229 | printf(LANG_NBR_FOUND); |
|---|
| 230 | else if(guMode==5) |
|---|
| 231 | //printf(" Modified"); |
|---|
| 232 | printf(LANG_NBR_MODIFIED); |
|---|
| 233 | else if(guMode==4) |
|---|
| 234 | //printf(" New"); |
|---|
| 235 | printf(LANG_NBR_NEW); |
|---|
| 236 | printf(LANG_NBRF_SHOWING,gluRowid,guI); |
|---|
| 237 | } |
|---|
| 238 | else |
|---|
| 239 | { |
|---|
| 240 | if(!cResult[0]) |
|---|
| 241 | //printf(" No records found"); |
|---|
| 242 | printf(LANG_NBR_NORECS); |
|---|
| 243 | } |
|---|
| 244 | if(cResult[0]) printf("%s",cResult); |
|---|
| 245 | printf("</td></tr>"); |
|---|
| 246 | printf("<tr><td valign=top width=25%%>"); |
|---|
| 247 | |
|---|
| 248 | ExttTemplateButtons(); |
|---|
| 249 | |
|---|
| 250 | printf("</td><td valign=top>"); |
|---|
| 251 | // |
|---|
| 252 | OpenFieldSet("tTemplate Record Data",100); |
|---|
| 253 | |
|---|
| 254 | if(guMode==2000 || guMode==2002) |
|---|
| 255 | tTemplateInput(1); |
|---|
| 256 | else |
|---|
| 257 | tTemplateInput(0); |
|---|
| 258 | |
|---|
| 259 | // |
|---|
| 260 | CloseFieldSet(); |
|---|
| 261 | |
|---|
| 262 | //Bottom table |
|---|
| 263 | printf("<tr><td colspan=2>"); |
|---|
| 264 | ExttTemplateAuxTable(); |
|---|
| 265 | |
|---|
| 266 | Footer_ism3(); |
|---|
| 267 | |
|---|
| 268 | }//end of tTemplate(); |
|---|
| 269 | |
|---|
| 270 | |
|---|
| 271 | void tTemplateInput(unsigned uMode) |
|---|
| 272 | { |
|---|
| 273 | |
|---|
| 274 | //uTemplate |
|---|
| 275 | OpenRow(LANG_FL_tTemplate_uTemplate,"black"); |
|---|
| 276 | printf("<input title='%s' type=text name=uTemplate value=%u size=16 maxlength=10 " |
|---|
| 277 | ,LANG_FT_tTemplate_uTemplate,uTemplate); |
|---|
| 278 | if(guPermLevel>=20 && uMode) |
|---|
| 279 | { |
|---|
| 280 | printf("></td></tr>\n"); |
|---|
| 281 | } |
|---|
| 282 | else |
|---|
| 283 | { |
|---|
| 284 | printf("disabled></td></tr>\n"); |
|---|
| 285 | printf("<input type=hidden name=uTemplate value=%u >\n",uTemplate); |
|---|
| 286 | } |
|---|
| 287 | //cLabel |
|---|
| 288 | OpenRow(LANG_FL_tTemplate_cLabel,"black"); |
|---|
| 289 | printf("<input title='%s' type=text name=cLabel value=\"%s\" size=40 maxlength=32 " |
|---|
| 290 | ,LANG_FT_tTemplate_cLabel,EncodeDoubleQuotes(cLabel)); |
|---|
| 291 | if(guPermLevel>=7 && uMode) |
|---|
| 292 | { |
|---|
| 293 | printf("></td></tr>\n"); |
|---|
| 294 | } |
|---|
| 295 | else |
|---|
| 296 | { |
|---|
| 297 | printf("disabled></td></tr>\n"); |
|---|
| 298 | printf("<input type=hidden name=cLabel value=\"%s\">\n",EncodeDoubleQuotes(cLabel)); |
|---|
| 299 | } |
|---|
| 300 | //uTemplateSet |
|---|
| 301 | OpenRow(LANG_FL_tTemplate_uTemplateSet,"black"); |
|---|
| 302 | if(guPermLevel>=7 && uMode) |
|---|
| 303 | tTablePullDown("tTemplateSet;cuTemplateSetPullDown","cLabel","cLabel",uTemplateSet,1); |
|---|
| 304 | else |
|---|
| 305 | tTablePullDown("tTemplateSet;cuTemplateSetPullDown","cLabel","cLabel",uTemplateSet,0); |
|---|
| 306 | //uTemplateType |
|---|
| 307 | OpenRow(LANG_FL_tTemplate_uTemplateType,"black"); |
|---|
| 308 | if(guPermLevel>=7 && uMode) |
|---|
| 309 | tTablePullDown("tTemplateType;cuTemplateTypePullDown","cLabel","cLabel",uTemplateType,1); |
|---|
| 310 | else |
|---|
| 311 | tTablePullDown("tTemplateType;cuTemplateTypePullDown","cLabel","cLabel",uTemplateType,0); |
|---|
| 312 | //cComment |
|---|
| 313 | OpenRow(LANG_FL_tTemplate_cComment,"black"); |
|---|
| 314 | printf("<textarea title='%s' cols=80 wrap=hard rows=16 name=cComment " |
|---|
| 315 | ,LANG_FT_tTemplate_cComment); |
|---|
| 316 | if(guPermLevel>=7 && uMode) |
|---|
| 317 | { |
|---|
| 318 | printf(">%s</textarea></td></tr>\n",TransformAngleBrackets(cComment)); |
|---|
| 319 | } |
|---|
| 320 | else |
|---|
| 321 | { |
|---|
| 322 | printf("disabled>%s</textarea></td></tr>\n",TransformAngleBrackets(cComment)); |
|---|
| 323 | printf("<input type=hidden name=cComment value=\"%s\" >\n",EncodeDoubleQuotes(cComment)); |
|---|
| 324 | } |
|---|
| 325 | //cTemplate |
|---|
| 326 | OpenRow(LANG_FL_tTemplate_cTemplate,"black"); |
|---|
| 327 | printf("<textarea title='%s' cols=80 wrap=off rows=16 name=cTemplate " |
|---|
| 328 | ,LANG_FT_tTemplate_cTemplate); |
|---|
| 329 | if(guPermLevel>=7 && uMode) |
|---|
| 330 | { |
|---|
| 331 | printf(">%s</textarea></td></tr>\n",TransformAngleBrackets(cTemplate)); |
|---|
| 332 | } |
|---|
| 333 | else |
|---|
| 334 | { |
|---|
| 335 | printf("disabled>%s</textarea></td></tr>\n",TransformAngleBrackets(cTemplate)); |
|---|
| 336 | printf("<input type=hidden name=cTemplate value=\"%s\" >\n",EncodeDoubleQuotes(cTemplate)); |
|---|
| 337 | } |
|---|
| 338 | //uOwner |
|---|
| 339 | OpenRow(LANG_FL_tTemplate_uOwner,"black"); |
|---|
| 340 | if(guPermLevel>=20 && uMode) |
|---|
| 341 | { |
|---|
| 342 | printf("%s<input type=hidden name=uOwner value=%u >\n",ForeignKey("tClient","cLabel",uOwner),uOwner); |
|---|
| 343 | } |
|---|
| 344 | else |
|---|
| 345 | { |
|---|
| 346 | printf("%s<input type=hidden name=uOwner value=%u >\n",ForeignKey("tClient","cLabel",uOwner),uOwner); |
|---|
| 347 | } |
|---|
| 348 | //uCreatedBy |
|---|
| 349 | OpenRow(LANG_FL_tTemplate_uCreatedBy,"black"); |
|---|
| 350 | if(guPermLevel>=20 && uMode) |
|---|
| 351 | { |
|---|
| 352 | printf("%s<input type=hidden name=uCreatedBy value=%u >\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); |
|---|
| 353 | } |
|---|
| 354 | else |
|---|
| 355 | { |
|---|
| 356 | printf("%s<input type=hidden name=uCreatedBy value=%u >\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); |
|---|
| 357 | } |
|---|
| 358 | //uCreatedDate |
|---|
| 359 | OpenRow(LANG_FL_tTemplate_uCreatedDate,"black"); |
|---|
| 360 | if(uCreatedDate) |
|---|
| 361 | printf("%s\n\n",ctime(&uCreatedDate)); |
|---|
| 362 | else |
|---|
| 363 | printf("---\n\n"); |
|---|
| 364 | printf("<input type=hidden name=uCreatedDate value=%lu >\n",uCreatedDate); |
|---|
| 365 | //uModBy |
|---|
| 366 | OpenRow(LANG_FL_tTemplate_uModBy,"black"); |
|---|
| 367 | if(guPermLevel>=20 && uMode) |
|---|
| 368 | { |
|---|
| 369 | printf("%s<input type=hidden name=uModBy value=%u >\n",ForeignKey("tClient","cLabel",uModBy),uModBy); |
|---|
| 370 | } |
|---|
| 371 | else |
|---|
| 372 | { |
|---|
| 373 | printf("%s<input type=hidden name=uModBy value=%u >\n",ForeignKey("tClient","cLabel",uModBy),uModBy); |
|---|
| 374 | } |
|---|
| 375 | //uModDate |
|---|
| 376 | OpenRow(LANG_FL_tTemplate_uModDate,"black"); |
|---|
| 377 | if(uModDate) |
|---|
| 378 | printf("%s\n\n",ctime(&uModDate)); |
|---|
| 379 | else |
|---|
| 380 | printf("---\n\n"); |
|---|
| 381 | printf("<input type=hidden name=uModDate value=%lu >\n",uModDate); |
|---|
| 382 | printf("</tr>\n"); |
|---|
| 383 | |
|---|
| 384 | |
|---|
| 385 | |
|---|
| 386 | }//void tTemplateInput(unsigned uMode) |
|---|
| 387 | |
|---|
| 388 | |
|---|
| 389 | void NewtTemplate(unsigned uMode) |
|---|
| 390 | { |
|---|
| 391 | register int i=0; |
|---|
| 392 | MYSQL_RES *res; |
|---|
| 393 | |
|---|
| 394 | sprintf(gcQuery,"SELECT uTemplate FROM tTemplate WHERE uTemplate=%u",uTemplate); |
|---|
| 395 | MYSQL_RUN_STORE(res); |
|---|
| 396 | i=mysql_num_rows(res); |
|---|
| 397 | |
|---|
| 398 | if(i) |
|---|
| 399 | //tTemplate("<blink>Record already exists"); |
|---|
| 400 | tTemplate(LANG_NBR_RECEXISTS); |
|---|
| 401 | |
|---|
| 402 | //insert query |
|---|
| 403 | Insert_tTemplate(); |
|---|
| 404 | if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); |
|---|
| 405 | //sprintf(gcQuery,"New record %u added"); |
|---|
| 406 | uTemplate=mysql_insert_id(&gMysql); |
|---|
| 407 | uCreatedDate=luGetCreatedDate("tTemplate",uTemplate); |
|---|
| 408 | unxsVZLog(uTemplate,"tTemplate","New"); |
|---|
| 409 | if(!uMode) |
|---|
| 410 | { |
|---|
| 411 | sprintf(gcQuery,LANG_NBR_NEWRECADDED,uTemplate); |
|---|
| 412 | tTemplate(gcQuery); |
|---|
| 413 | } |
|---|
| 414 | |
|---|
| 415 | }//NewtTemplate(unsigned uMode) |
|---|
| 416 | |
|---|
| 417 | |
|---|
| 418 | void DeletetTemplate(void) |
|---|
| 419 | { |
|---|
| 420 | sprintf(gcQuery,"DELETE FROM tTemplate WHERE uTemplate=%u AND ( uOwner=%u OR %u>9 )" |
|---|
| 421 | ,uTemplate,guLoginClient,guPermLevel); |
|---|
| 422 | MYSQL_RUN; |
|---|
| 423 | //tTemplate("Record Deleted"); |
|---|
| 424 | if(mysql_affected_rows(&gMysql)>0) |
|---|
| 425 | { |
|---|
| 426 | unxsVZLog(uTemplate,"tTemplate","Del"); |
|---|
| 427 | tTemplate(LANG_NBR_RECDELETED); |
|---|
| 428 | } |
|---|
| 429 | else |
|---|
| 430 | { |
|---|
| 431 | unxsVZLog(uTemplate,"tTemplate","DelError"); |
|---|
| 432 | tTemplate(LANG_NBR_RECNOTDELETED); |
|---|
| 433 | } |
|---|
| 434 | |
|---|
| 435 | }//void DeletetTemplate(void) |
|---|
| 436 | |
|---|
| 437 | |
|---|
| 438 | void Insert_tTemplate(void) |
|---|
| 439 | { |
|---|
| 440 | |
|---|
| 441 | //insert query |
|---|
| 442 | sprintf(gcQuery,"INSERT INTO tTemplate SET uTemplate=%u,cLabel='%s',uTemplateSet=%u,uTemplateType=%u,cComment='%s',cTemplate='%s',uOwner=%u,uCreatedBy=%u,uCreatedDate=UNIX_TIMESTAMP(NOW())", |
|---|
| 443 | uTemplate |
|---|
| 444 | ,TextAreaSave(cLabel) |
|---|
| 445 | ,uTemplateSet |
|---|
| 446 | ,uTemplateType |
|---|
| 447 | ,TextAreaSave(cComment) |
|---|
| 448 | ,TextAreaSave(cTemplate) |
|---|
| 449 | ,uOwner |
|---|
| 450 | ,uCreatedBy |
|---|
| 451 | ); |
|---|
| 452 | |
|---|
| 453 | MYSQL_RUN; |
|---|
| 454 | |
|---|
| 455 | }//void Insert_tTemplate(void) |
|---|
| 456 | |
|---|
| 457 | |
|---|
| 458 | void Update_tTemplate(char *cRowid) |
|---|
| 459 | { |
|---|
| 460 | |
|---|
| 461 | //update query |
|---|
| 462 | sprintf(gcQuery,"UPDATE tTemplate SET uTemplate=%u,cLabel='%s',uTemplateSet=%u,uTemplateType=%u,cComment='%s',cTemplate='%s',uModBy=%u,uModDate=UNIX_TIMESTAMP(NOW()) WHERE _rowid=%s", |
|---|
| 463 | uTemplate |
|---|
| 464 | ,TextAreaSave(cLabel) |
|---|
| 465 | ,uTemplateSet |
|---|
| 466 | ,uTemplateType |
|---|
| 467 | ,TextAreaSave(cComment) |
|---|
| 468 | ,TextAreaSave(cTemplate) |
|---|
| 469 | ,uModBy |
|---|
| 470 | ,cRowid); |
|---|
| 471 | |
|---|
| 472 | MYSQL_RUN; |
|---|
| 473 | |
|---|
| 474 | }//void Update_tTemplate(void) |
|---|
| 475 | |
|---|
| 476 | |
|---|
| 477 | void ModtTemplate(void) |
|---|
| 478 | { |
|---|
| 479 | register int i=0; |
|---|
| 480 | MYSQL_RES *res; |
|---|
| 481 | MYSQL_ROW field; |
|---|
| 482 | unsigned uPreModDate=0; |
|---|
| 483 | |
|---|
| 484 | //Mod select gcQuery |
|---|
| 485 | if(guPermLevel<10) |
|---|
| 486 | sprintf(gcQuery,"SELECT tTemplate.uTemplate,\ |
|---|
| 487 | tTemplate.uModDate\ |
|---|
| 488 | FROM tTemplate,tClient\ |
|---|
| 489 | WHERE tTemplate.uTemplate=%u\ |
|---|
| 490 | AND tTemplate.uOwner=tClient.uClient\ |
|---|
| 491 | AND (tClient.uOwner=%u OR tClient.uClient=%u)" |
|---|
| 492 | ,uTemplate,guLoginClient,guLoginClient); |
|---|
| 493 | else |
|---|
| 494 | sprintf(gcQuery,"SELECT uTemplate,uModDate FROM tTemplate WHERE uTemplate=%u",uTemplate); |
|---|
| 495 | |
|---|
| 496 | MYSQL_RUN_STORE(res); |
|---|
| 497 | i=mysql_num_rows(res); |
|---|
| 498 | |
|---|
| 499 | //if(i<1) tTemplate("<blink>Record does not exist"); |
|---|
| 500 | if(i<1) tTemplate(LANG_NBR_RECNOTEXIST); |
|---|
| 501 | //if(i>1) tTemplate("<blink>Multiple rows!"); |
|---|
| 502 | if(i>1) tTemplate(LANG_NBR_MULTRECS); |
|---|
| 503 | |
|---|
| 504 | field=mysql_fetch_row(res); |
|---|
| 505 | sscanf(field[1],"%u",&uPreModDate); |
|---|
| 506 | if(uPreModDate!=uModDate) tTemplate(LANG_NBR_EXTMOD); |
|---|
| 507 | |
|---|
| 508 | Update_tTemplate(field[0]); |
|---|
| 509 | if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); |
|---|
| 510 | //sprintf(query,"record %s modified",field[0]); |
|---|
| 511 | sprintf(gcQuery,LANG_NBRF_REC_MODIFIED,field[0]); |
|---|
| 512 | uModDate=luGetModDate("tTemplate",uTemplate); |
|---|
| 513 | unxsVZLog(uTemplate,"tTemplate","Mod"); |
|---|
| 514 | tTemplate(gcQuery); |
|---|
| 515 | |
|---|
| 516 | }//ModtTemplate(void) |
|---|
| 517 | |
|---|
| 518 | |
|---|
| 519 | void tTemplateList(void) |
|---|
| 520 | { |
|---|
| 521 | MYSQL_RES *res; |
|---|
| 522 | MYSQL_ROW field; |
|---|
| 523 | |
|---|
| 524 | ExttTemplateListSelect(); |
|---|
| 525 | |
|---|
| 526 | MYSQL_RUN_STORE(res); |
|---|
| 527 | guI=mysql_num_rows(res); |
|---|
| 528 | |
|---|
| 529 | PageMachine("tTemplateList",1,"");//1 is auto header list guMode. Opens table! |
|---|
| 530 | |
|---|
| 531 | //Filter select drop down |
|---|
| 532 | ExttTemplateListFilter(); |
|---|
| 533 | |
|---|
| 534 | printf("<input type=text size=16 name=gcCommand maxlength=98 value=\"%s\" >",gcCommand); |
|---|
| 535 | |
|---|
| 536 | printf("</table>\n"); |
|---|
| 537 | |
|---|
| 538 | printf("<table bgcolor=#9BC1B3 border=0 width=100%%>\n"); |
|---|
| 539 | printf("<tr bgcolor=black><td><font face=arial,helvetica color=white>uTemplate<td><font face=arial,helvetica color=white>cLabel<td><font face=arial,helvetica color=white>uTemplateSet<td><font face=arial,helvetica color=white>uTemplateType<td><font face=arial,helvetica color=white>cComment<td><font face=arial,helvetica color=white>cTemplate<td><font face=arial,helvetica color=white>uOwner<td><font face=arial,helvetica color=white>uCreatedBy<td><font face=arial,helvetica color=white>uCreatedDate<td><font face=arial,helvetica color=white>uModBy<td><font face=arial,helvetica color=white>uModDate</tr>"); |
|---|
| 540 | |
|---|
| 541 | mysql_data_seek(res,guStart-1); |
|---|
| 542 | |
|---|
| 543 | for(guN=0;guN<(guEnd-guStart+1);guN++) |
|---|
| 544 | { |
|---|
| 545 | field=mysql_fetch_row(res); |
|---|
| 546 | if(!field) |
|---|
| 547 | { |
|---|
| 548 | printf("<tr><td><font face=arial,helvetica>End of data</table>"); |
|---|
| 549 | Footer_ism3(); |
|---|
| 550 | } |
|---|
| 551 | if(guN % 2) |
|---|
| 552 | printf("<tr bgcolor=#BBE1D3>"); |
|---|
| 553 | else |
|---|
| 554 | printf("<tr>"); |
|---|
| 555 | time_t luTime8=strtoul(field[8],NULL,10); |
|---|
| 556 | char cBuf8[32]; |
|---|
| 557 | if(luTime8) |
|---|
| 558 | ctime_r(&luTime8,cBuf8); |
|---|
| 559 | else |
|---|
| 560 | sprintf(cBuf8,"---"); |
|---|
| 561 | time_t luTime10=strtoul(field[10],NULL,10); |
|---|
| 562 | char cBuf10[32]; |
|---|
| 563 | if(luTime10) |
|---|
| 564 | ctime_r(&luTime10,cBuf10); |
|---|
| 565 | else |
|---|
| 566 | sprintf(cBuf10,"---"); |
|---|
| 567 | printf("<td><input type=submit name=ED%s value=Edit> %s<td>%s<td>%s<td>%s" |
|---|
| 568 | "<td><textarea disabled>%s</textarea>" |
|---|
| 569 | "<td><textarea disabled>%s</textarea>" |
|---|
| 570 | "<td>%s<td>%s<td>%s<td>%s<td>%s</tr>" |
|---|
| 571 | ,field[0] |
|---|
| 572 | ,field[0] |
|---|
| 573 | ,field[1] |
|---|
| 574 | ,ForeignKey("tTemplateSet","cLabel",strtoul(field[2],NULL,10)) |
|---|
| 575 | ,ForeignKey("tTemplateType","cLabel",strtoul(field[3],NULL,10)) |
|---|
| 576 | ,TransformAngleBrackets(field[4]) |
|---|
| 577 | ,TransformAngleBrackets(field[5]) |
|---|
| 578 | ,ForeignKey("tClient","cLabel",strtoul(field[6],NULL,10)) |
|---|
| 579 | ,ForeignKey("tClient","cLabel",strtoul(field[7],NULL,10)) |
|---|
| 580 | ,cBuf8 |
|---|
| 581 | ,ForeignKey("tClient","cLabel",strtoul(field[9],NULL,10)) |
|---|
| 582 | ,cBuf10 |
|---|
| 583 | ); |
|---|
| 584 | |
|---|
| 585 | } |
|---|
| 586 | |
|---|
| 587 | printf("</table></form>\n"); |
|---|
| 588 | Footer_ism3(); |
|---|
| 589 | |
|---|
| 590 | }//tTemplateList() |
|---|
| 591 | |
|---|
| 592 | |
|---|
| 593 | void CreatetTemplate(void) |
|---|
| 594 | { |
|---|
| 595 | sprintf(gcQuery,"CREATE TABLE IF NOT EXISTS tTemplate ( uTemplate INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, cLabel VARCHAR(32) NOT NULL DEFAULT '', INDEX (cLabel), 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, cComment TEXT NOT NULL DEFAULT '', cTemplate TEXT NOT NULL DEFAULT '', uTemplateSet INT UNSIGNED NOT NULL DEFAULT 0, uTemplateType INT UNSIGNED NOT NULL DEFAULT 0 )"); |
|---|
| 596 | MYSQL_RUN; |
|---|
| 597 | |
|---|
| 598 | }//CreatetTemplate() |
|---|
| 599 | |
|---|