On Sun, 20 Jul 2003, John Morrow wrote:
> What version of qmailadmin are you applying the patch to to get the new
> look. I am using 1.0.24 and get errors during make. The qmail_button is
> being defined more then once.
This diff almost works. It fails in alias.c even with a ton of fuzz
applied. The only thing I read worse than C is C with html interspersed.
I'm running with the unpatched alias and I haven't yet seen whatever
visual glitch this would introduce.
Is there any word on whether this template set will be incorporated into a
release? It's a much nicer looking interface, and having all the menu
items on the left at all times makes it much easier for end users to
navigate (IMHO). Keeping up with all the changes will be rough as
qmailadmin continues to improve. It's always problematic to have html
within code like this. It looks like it would be easier to workaround
here than in say, sqwebmail.
Charles
> Thanks John
>
>
>
>
--- alias.c Mon Jun 16 20:43:38 2003
+++ ../qmailadmin-template/alias.c Tue Jul 1 12:24:16 2003
@@ -147,12 +147,14 @@
fprintf(actout, "<a
href=\"%s/com/moddotqmail?user=%s&dom=%s&time=%d&modu=%s\">",
CGIPATH,user,dom,mytime,alias_name);
fprintf(actout, "<img src=\"%s/modify.png\" border=\"0\"></a>", IMAGEURL);
fprintf(actout, "</td>\n");
fprintf(actout, "<td align=\"left\">%s</td>\n", alias_name);
+
+ fprintf(actout, "<td align=\"center\"><img src=\"%s/arrow.png\"
border=\"0\"></td>\n", IMAGEURL);
fprintf(actout, "<td align=\"left\">");
while (!stop) {
alias_name_from_command = dotqmail_alias_command(TmpBuf2);
/* check to see if it is an invalid line ,
* if so skip to next
@@ -202,13 +204,13 @@
/* bk: fix memory leak */
for (m=0; m<n; m++)
free(namelist[m]);
free(namelist);
if (AdminType == DOMAIN_ADMIN) {
- fprintf(actout, "<tr><td align=\"right\" colspan=\"4\">");
+ fprintf(actout, "<tr><td align=\"right\" colspan=\"5\">");
fprintf(actout, "[ ");
if(atoi(Pagenumber) > 1 ) {
fprintf(actout, "<a
href=\"%s/com/showforwards?user=%s&dom=%s&time=%d&page=%d\">%s</a>",
CGIPATH,user,dom,mytime,atoi(Pagenumber)-1?atoi(Pagenumber)-1:atoi(Pagenumber),get_html_text("135"));
fprintf(actout, " | ");
}
@@ -257,42 +259,53 @@
sprintf(StatusMessage,"%s %s<br>\n", get_html_text("144"), dot_file);
vclose();
exit(0);
}
fprintf(actout, "<tr>");
- fprintf(actout, "<td align=\"center\" valign=\"top\"><b>%s</b></td>", user);
memset(TmpBuf2, 0, sizeof(TmpBuf2));
- while (fgets( TmpBuf2, sizeof(TmpBuf2), fs) != NULL) {
+ while (fgets( TmpBuf2, sizeof(TmpBuf2), fs) != NULL)
+ {
alias_name_from_command = dotqmail_alias_command(TmpBuf2);
/* check to see if it is an invalid line , if so skip to next*/
if (alias_name_from_command == NULL ) continue;
strcpy(alias_user, alias_name_from_command);
/* get the domain alone from alias_user */
alias_domain = alias_user;
+
for(;*alias_domain != '\0' && *alias_domain != '@'; alias_domain++);
alias_domain++;
- if(strcmp(alias_domain, Domain)==0) {
+
+ if(strcmp(alias_domain, Domain)==0)
+ {
/* if a local user, exclude the domain */
strcpy(TmpBuf3, alias_user);
for(j=0; TmpBuf3[j]!=0 && TmpBuf3[j]!='@';j++);
TmpBuf3[j]=0;
- if (check_local_user(TmpBuf3)) {
+
+ if (check_local_user(TmpBuf3))
+ {
strcpy(alias_user, TmpBuf3);
- } else {
+ }
+ else
+ {
/* make it red so it jumps out -- this is no longer a valid forward */
sprintf(alias_user, "<font color=\"red\">%s</font>",
alias_name_from_command);
}
}
+
+ fprintf(actout, "<td align=\"left\" valign=\"top\"><b>%s</b></td>", user);
+ fprintf(actout, "<td align=\"left\" valign=\"top\"><b>GOES TO</b> <img
src=\"%s/arrow.png\" style=\"vertical-align:center;\"></td>",
+ IMAGEURL);
fprintf(actout, "<td align=\"center\" valign=\"top\">%s</td>\n", alias_user);
- fprintf(actout, "<td align=\"center\" valign=\"top\">\n");
+ fprintf(actout, "<td align=\"right\" valign=\"top\">\n");
fprintf(actout, "<form method=\"post\" name=\"moddotqmail\"
action=\"%s/com/moddotqmailnow\">\n", CGIPATH);
fprintf(actout, "<input type=\"hidden\" name=\"user\" value=\"%s\">\n",
Username);
fprintf(actout, "<input type=\"hidden\" name=\"dom\" value=\"%s\">\n",
Domain);
fprintf(actout, "<input type=\"hidden\" name=\"time\" value=\"%i\">\n",
@@ -307,13 +320,12 @@
fprintf(actout, "</form>\n");
fprintf(actout, "</td>\n");
fprintf(actout, "</tr>\n");
fprintf(actout, "<tr>\n");
- fprintf(actout, "<td align=\"left\"> </td>\n");
}
/* finish up the last line (all empty) */
fprintf(actout, "<td align=\"left\"> </td>");
fprintf(actout, "<td align=\"left\"> </td>");
fprintf(actout, "</tr>");
fclose(fs);
--- mailinglist.c Mon Jun 16 20:44:14 2003
+++ ../qmailadmin-template/mailinglist.c Tue Jul 1 12:50:26 2003
@@ -91,13 +91,13 @@
if ( (mydir = opendir(".")) == NULL ) {
fprintf(actout,"<tr><td>%s %d</tr><td>", get_html_text("143"), 1);
return(0);
}
/* First display the title row */
- fprintf(actout, "<tr bgcolor=\"#cccccc\">");
+ fprintf(actout, "<tr bgcolor=\"#F2F2F2\">");
fprintf(actout, "<th align=center><font size=2>%s</font></th>",
get_html_text("072"));
#ifdef EZMLMIDX
fprintf(actout, "<th align=center><font size=2>%s</font></th>",
get_html_text("071"));
#endif
fprintf(actout, "<th align=center><font size=2>%s</font></th>",
get_html_text("081"));
fprintf(actout, "<th align=center><font size=2>%s</font></th>",
get_html_text("083"));
@@ -146,29 +146,29 @@
#ifdef EZMLMIDX
qmail_button(addr, "modmailinglist", user, dom, mytime, "modify.png");
#endif
fprintf(actout,"<td align=left>%s</td>\n", addr);
- qmail_button(addr, "addlistuser", user, dom, mytime, "delete.png");
- qmail_button(addr, "dellistuser", user, dom, mytime, "delete.png");
- qmail_button(addr, "showlistusers", user, dom, mytime, "delete.png");
+ qmail_button(addr, "addlistuser", user, dom, mytime, "modify.png");
+ qmail_button(addr, "dellistuser", user, dom, mytime, "modify.png");
+ qmail_button(addr, "showlistusers", user, dom, mytime, "modify.png");
#ifdef EZMLMIDX
- qmail_button(addr, "addlistmod", user, dom, mytime, "delete.png");
- qmail_button(addr, "dellistmod", user, dom, mytime, "delete.png");
- qmail_button(addr, "showlistmod", user, dom, mytime, "delete.png");
+ qmail_button(addr, "addlistmod", user, dom, mytime, "modify.png");
+ qmail_button(addr, "dellistmod", user, dom, mytime, "modify.png");
+ qmail_button(addr, "showlistmod", user, dom, mytime, "modify.png");
/* Is it a digest list? */
if ( (fs=fopen(testfn,"r"))==NULL) {
/* not a digest list */
fprintf (actout, "<TD COLSPAN=3> </TD>");
} else {
- qmail_button(addr, "addlistdig", user, dom, mytime, "delete.png");
- qmail_button(addr, "dellistdig", user, dom, mytime, "delete.png");
- qmail_button(addr, "showlistdig", user, dom, mytime, "delete.png");
+ qmail_button(addr, "addlistdig", user, dom, mytime, "modify.png");
+ qmail_button(addr, "dellistdig", user, dom, mytime, "modify.png");
+ qmail_button(addr, "showlistdig", user, dom, mytime, "modify.png");
fclose(fs);
}
#endif
fprintf(actout, "</tr>\n");
}
sort_cleanup();
@@ -235,14 +235,14 @@
sort_cleanup();
return 0;
}
fprintf(actout,"<hr><table width=100%% cellpadding=1 cellspacing=0 border=0");
fprintf(actout," align=center bgcolor=\"#000000\"><tr><td>");
- fprintf(actout,"<table width=100%% cellpadding=0 cellspacing=0 border=0
bgcolor=\"#e6e6e6\">");
- fprintf(actout,"<tr><th bgcolor=\"#000000\" colspan=2>");
+ fprintf(actout,"<table width=100%% cellpadding=0 cellspacing=0 border=0
bgcolor=\"#F2F2F2\">");
+ fprintf(actout,"<tr><th bgcolor=\"#162C46\" colspan=2>");
fprintf(actout,"<font color=\"#ffffff\">%s</font></th>\n",
get_html_text("095"));
sort_dosort();
fprintf(actout, "<INPUT NAME=number_of_mailinglist TYPE=hidden VALUE=%d>\n",
listcount);
--- template.c Thu Jun 19 01:46:13 2003
+++ ../qmailadmin-template/template.c Tue Jul 1 16:21:36 2003
@@ -443,117 +443,122 @@
QA_PACKAGE, QA_VERSION);
printf("<a href=\"http://www.inter7.com/vpopmail/\">%s</a> %s<BR>",
PACKAGE, VERSION);
break;
case 'v':
- fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></font><br>",
- Domain);
- fprintf(actout,
- "<font size=\"2\" color=\"#ff0000\"><b>%s</b></font><br>",
- get_html_text("001"));
+
if (AdminType==DOMAIN_ADMIN){
+ fprintf(actout,
+ "<tr>
+ <td><img src=\"%s/email_accounts.gif\" width=\"149\"
height=\"19\"></td>
+ </tr>",
+ IMAGEURL);
+
if (MaxPopAccounts != 0) {
fprintf(actout,
- "<a href=\"%s/com/showusers?user=%s&time=%i&dom=%s&\">",
- CGIPATH,Username,Mytime,Domain);
+ "<tr>
+ <td
onclick=\"location.href='%s/com/showusers?user=%s&time=%i&dom=%s&'\"
onMouseover=\"this.bgColor='#D0D2DD'\" onMouseout=\"this.bgColor='#FFFFFF'\"
bgcolor=\"#FFFFFF\" align=\"left\" style=\"cursor: pointer; cursor: hand;
border-style: solid; border-width: 1px; border-color: #162C46; padding: 3px;\"><a
href=\"%s/com/showusers?user=%s&time=%i&dom=%s&\" class=\"links_display\">Manage
%s</a></td>
+ </tr>",
+
CGIPATH,Username,Mytime,Domain,CGIPATH,Username,Mytime,Domain,get_html_text("061"));
+ }
+
+ if (MaxPopAccounts != 0) {
fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></font></a><br>",
- get_html_text("061"));
+ "<tr>
+ <td
onclick=\"location.href='%s/com/adduser?user=%s&time=%i&dom=%s&'\"
onMouseover=\"this.bgColor='#D0D2DD'\" onMouseout=\"this.bgColor='#FFFFFF'\"
bgcolor=\"#FFFFFF\" align=\"left\" style=\"cursor: pointer; cursor: hand;
border-style: solid; border-width: 1px; border-color: #162C46; padding: 3px;\"><a
href=\"%s/com/adduser?user=%s&time=%i&dom=%s&\" class=\"links_display\">%s</a></td>
+ </tr>",
+
CGIPATH,Username,Mytime,Domain,CGIPATH,Username,Mytime,Domain,get_html_text("125"));
}
+ fprintf(actout,
+ "<tr>
+ <td><img src=\"%s/forwards.gif\" width=\"149\"
height=\"19\"></td>
+ </tr>",
+ IMAGEURL);
+
if (MaxForwards != 0 || MaxAliases != 0) {
fprintf(actout,
- "<a href=\"%s/com/showforwards?user=%s&time=%i&dom=%s&\">",
- CGIPATH,Username,Mytime,Domain);
+ "<tr>
+ <td
onclick=\"location.href='%s/com/showforwards?user=%s&time=%i&dom=%s&'\"
onMouseover=\"this.bgColor='#D0D2DD'\" onMouseout=\"this.bgColor='#FFFFFF'\"
bgcolor=\"#FFFFFF\" align=\"left\" style=\"cursor: pointer; cursor: hand;
border-style: solid; border-width: 1px; border-color: #162C46; padding: 3px;\"><a
href=\"%s/com/showforwards?user=%s&time=%i&dom=%s&\" class=\"links_display\">Manage
%s</a></td>
+ </tr>",
+
CGIPATH,Username,Mytime,Domain,CGIPATH,Username,Mytime,Domain,get_html_text("122"));
+ }
+
+ if (MaxForwards != 0) {
fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></font></a><br>",
- get_html_text("122"));
+ "<tr>
+ <td
onclick=\"location.href='%s/com/adddotqmail?atype=forward&user=%s&time=%i&dom=%s&'\"
onMouseover=\"this.bgColor='#D0D2DD'\" onMouseout=\"this.bgColor='#FFFFFF'\"
bgcolor=\"#FFFFFF\" align=\"left\" style=\"cursor: pointer; cursor: hand;
border-style: solid; border-width: 1px; border-color: #162C46; padding: 3px;\"><a
href=\"%s/com/adddotqmail?atype=forward&user=%s&time=%i&dom=%s&\"
class=\"links_display\">%s</a></td>
+ </tr>",
+ CGIPATH, Username,Mytime,Domain,CGIPATH,
Username,Mytime,Domain,get_html_text("127"));
}
+ fprintf(actout,
+ "<tr>
+ <td><img src=\"%s/auto_responses.gif\" width=\"149\"
height=\"19\"></td>
+ </tr>",
+ IMAGEURL);
+
if (MaxAutoResponders != 0) {
fprintf(actout,
- "<a href=\"%s/com/showautoresponders?user=%s&time=%i&dom=%s&\">",
- CGIPATH,Username,Mytime,Domain);
+ "<tr>
+ <td
onclick=\"location.href='%s/com/showautoresponders?user=%s&time=%i&dom=%s&'\"
onMouseover=\"this.bgColor='#D0D2DD'\" onMouseout=\"this.bgColor='#FFFFFF'\"
bgcolor=\"#FFFFFF\" align=\"left\" style=\"cursor: pointer; cursor: hand;
border-style: solid; border-width: 1px; border-color: #162C46; padding: 3px;\"><a
href=\"%s/com/showautoresponders?user=%s&time=%i&dom=%s&\"
class=\"links_display\">%s</a></td>
+ </tr>",
+
CGIPATH,Username,Mytime,Domain,CGIPATH,Username,Mytime,Domain,get_html_text("077"));
+ }
+
+ if (MaxAutoResponders != 0) {
fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></a></font><br>",
- get_html_text("077"));
+ "<tr>
+ <td
onclick=\"location.href='%s/com/addautorespond?user=%s&time=%i&dom=%s&'\"
onMouseover=\"this.bgColor='#D0D2DD'\" onMouseout=\"this.bgColor='#FFFFFF'\"
bgcolor=\"#FFFFFF\" align=\"left\" style=\"cursor: pointer; cursor: hand;
border-style: solid; border-width: 1px; border-color: #162C46; padding: 3px;\"><a
href=\"%s/com/addautorespond?user=%s&time=%i&dom=%s&\"
class=\"links_display\">%s</a></td>
+ </tr>",
+ CGIPATH, Username,Mytime,Domain,CGIPATH,
Username,Mytime,Domain,get_html_text("128"));
}
- if (*EZMLMDIR != 'n' && MaxMailingLists != 0) {
+ if (MaxMailingLists != 0) {
+
fprintf(actout,
- "<a href=\"%s/com/showmailinglists?user=%s&time=%i&dom=%s&\">",
- CGIPATH, Username,Mytime,Domain);
+ "<tr>
+ <td><img src=\"%s/mailing_lists.gif\" width=\"149\"
height=\"19\"></td>
+ </tr>",
+ IMAGEURL);
+
fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></font></a><br>",
- get_html_text("080"));
+ "<tr>
+ <td
onclick=\"location.href='%s/com/showmailinglists?user=%s&time=%i&dom=%s&'\"
onMouseover=\"this.bgColor='#D0D2DD'\" onMouseout=\"this.bgColor='#FFFFFF'\"
bgcolor=\"#FFFFFF\" align=\"left\" style=\"cursor: pointer; cursor: hand;
border-style: solid; border-width: 1px; border-color: #162C46; padding: 3px;\"><a
href=\"%s/com/showmailinglists?user=%s&time=%i&dom=%s&\"
class=\"links_display\">%s</a></td>
+ </tr>",
+ CGIPATH, Username,Mytime,Domain,CGIPATH,
Username,Mytime,Domain,get_html_text("080"));
+
+ fprintf(actout,
+ "<tr>
+ <td
onclick=\"location.href='%s/com/addmailinglist?user=%s&time=%i&dom=%s&'\"
onMouseover=\"this.bgColor='#D0D2DD'\" onMouseout=\"this.bgColor='#FFFFFF'\"
bgcolor=\"#FFFFFF\" align=\"left\" style=\"cursor: pointer; cursor: hand;
border-style: solid; border-width: 1px; border-color: #162C46; padding: 3px;\"><a
href=\"%s/com/addmailinglist?user=%s&time=%i&dom=%s&\"
class=\"links_display\">%s</a></td>
+ </tr>",
+ CGIPATH, Username,Mytime,Domain,CGIPATH,
Username,Mytime,Domain,get_html_text("129"));
}
- } else {
+
+ }
+ else {
long diskquota = 0, maxmsg = 0;
char path[256];
+ struct vqpasswd *vpw;
vpw = vauth_getpw(Username, Domain);
- fprintf(actout,
- "<a href=\"%s/com/moduser?user=%s&time=%i&dom=%s&moduser=%s\">",
- CGIPATH,Username,Mytime,Domain,Username);
- fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s %s</b></font></a><br><br>",
- get_html_text("111"), Username);
if (strncmp(vpw->pw_shell, "NOQUOTA", 2) != 0) {
quota_to_megabytes(qconvert, vpw->pw_shell); }
else { sprintf(qconvert, "unlimited"); qnote = ""; }
- fprintf(actout, "<font size=\"2\" color=\"#000000\"><b>Quota:</b><br>%s
%s %s", get_html_text("253"), qconvert, qnote);
- fprintf(actout, "<br>%s ", get_html_text("254"));
+ fprintf(actout, "<tr>
+ <td><img src=\"%s/mailbox_quota.gif\" width=\"149\"
height=\"19\"><br><br> <b>%s %s %s</b>",IMAGEURL, get_html_text("253"),
qconvert, qnote);
+ fprintf(actout, "<br> <b>%s</b> ", get_html_text("254"));
snprintf(path, sizeof(path), "%s/Maildir", vpw->pw_dir);
readuserquota(path, &diskquota, &maxmsg);
- fprintf(actout, "%-2.2lf MB</font><br>",
((double)diskquota)/1048576.0); /* Convert to MB */
+ fprintf(actout, "<b>%-2.2lf MB</b></font><br></td>
+ </tr>", ((double)diskquota)/1048576.0); /* Convert to MB */
}
- if (AdminType == DOMAIN_ADMIN) {
- fprintf(actout, "<br>");
- fprintf(actout,
- "<font size=\"2\" color=\"#ff0000\"><b>%s</b></font><br>",
- get_html_text("124"));
-
- if (MaxPopAccounts != 0) {
- fprintf(actout,
- "<a href=\"%s/com/adduser?user=%s&time=%i&dom=%s&\">",
- CGIPATH,Username,Mytime,Domain);
- fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></font></a><br>",
- get_html_text("125"));
- }
-
- if (MaxForwards != 0) {
- fprintf(actout,
- "<a href=\"%s/com/adddotqmail?atype=forward&user=%s&time=%i&dom=%s&\">",
- CGIPATH, Username,Mytime,Domain);
- fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></font></a><br>",
- get_html_text("127"));
- }
- if (MaxAutoResponders != 0) {
- fprintf(actout,
- "<a href=\"%s/com/addautorespond?user=%s&time=%i&dom=%s&\">",
- CGIPATH, Username,Mytime,Domain);
- fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></a></font><br>",
- get_html_text("128"));
- }
- if (*EZMLMDIR != 'n' && MaxMailingLists != 0) {
- fprintf(actout,
- "<a href=\"%s/com/addmailinglist?user=%s&time=%i&dom=%s&\">",
- CGIPATH, Username,Mytime,Domain);
- fprintf(actout,
- "<font size=\"2\" color=\"#000000\"><b>%s</b></font></a><br>",
- get_html_text("129"));
- }
- }
break;
/* dictionary line, we three more chars for the line */
case 'X':
for(i=0;i<3;++i) dchar[i] = fgetc(fs);
dchar[i] = 0;
--- user.c Thu Jun 26 01:08:30 2003
+++ ../qmailadmin-template/user.c Tue Jul 1 15:21:10 2003
@@ -242,26 +242,26 @@
}
fprintf(actout, "</td>");
fprintf(actout, "</tr>\n");
fprintf(actout, "<tr bgcolor=%s>", get_color_text("000"));
fprintf(actout, "<td colspan=%i>", colspan);
- fprintf(actout, "<table border=0 cellpadding=3 cellspacing=0
width=\"100%%\"><tr><td align=\"center\"><br>");
- fprintf(actout, "<form method=\"get\" action=\"%s/com/showusers\">",
+ fprintf(actout, "<table border=0 cellpadding=3 cellspacing=0
width=\"100%%\"><form method=\"get\" action=\"%s/com/showusers\"><tr><td
align=\"center\"><br>",
CGIPATH);
fprintf(actout, "<input type=\"hidden\" name=\"user\" value=\"%s\">",
user);
fprintf(actout, "<input type=\"hidden\" name=\"dom\" value=\"%s\">",
dom);
fprintf(actout, "<input type=\"hidden\" name=\"time\" value=\"%d\">",
mytime);
fprintf(actout, "<input type=\"text\" name=\"searchuser\" value=\"%s\"> ",
SearchUser);
- fprintf(actout, "<input type=\"submit\" value=\"%s\">",
- get_html_text("204"));
- fprintf(actout, "</form>");
- fprintf(actout, "</td></tr></table>");
+
+ fprintf(actout, "<input type=\"image\" src=\"%s/find_user_button.png\"
style=\"vertical-align:top;\">",
+ IMAGEURL);
+
+ fprintf(actout, "</td></tr></form></table>");
fprintf(actout, "<hr>");
fprintf(actout, "</td></tr>\n");
#endif
fprintf(actout, "<tr bgcolor=%s>", get_color_text("000"));
fprintf(actout, "<td colspan=\"%i\" align=\"right\">", colspan);