Room-Editing: offer a dropdown to choose from configured domains
authorWilfried Goesgens <dothebart@citadel.org>
Mon, 17 Dec 2012 23:43:58 +0000 (00:43 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Mon, 17 Dec 2012 23:43:58 +0000 (00:43 +0100)
webcit/inetconf.c
webcit/roomops.c
webcit/static/t/room/edit/alias_domainname.html [new file with mode: 0644]
webcit/static/t/room/edit/tab_listserv.html

index d7707f019c3804df68354361b2cb9f047fce1f88..bbba2eece9ef9f27fd93baf960efb53be86bd976 100644 (file)
@@ -201,6 +201,48 @@ HashList *GetInetConfHash(StrBuf *Target, WCTemplputParams *TP)
        return vHash;
 }
 
+
+HashList *GetValidDomainNames(StrBuf *Target, WCTemplputParams *TP) 
+{
+       StrBuf *Line;
+       HashList *ValidDomainNames = NULL;
+       long State;
+       int gvdnlevel = 0;
+       
+       serv_printf("GVDN %d", gvdnlevel);
+       Line = NewStrBuf();
+       StrBuf_ServGetln(Line);
+       if (GetServerStatus(Line, &State) == 1) 
+       {
+               int Done = 0;
+               int n = 0;
+
+               ValidDomainNames = NewHash(1, NULL);
+               while(!Done && (StrBuf_ServGetln(Line) >= 0))
+                       if ( (StrLength(Line)==3) && 
+                            !strcmp(ChrPtr(Line), "000"))
+                       {
+                               Done = 1;
+                       }
+                       else
+                       {
+                               Put(ValidDomainNames, 
+                                   IKEY(n),
+                                   NewStrBufDup(Line), 
+                                   HFreeStrBuf);
+                               n++; /* #0 is the type... */
+                       }
+       }
+       else if (State == 550)
+               AppendImportantMessage(_("Higher access is required to access this function."), -1);
+
+       FreeStrBuf(&Line);
+
+       return ValidDomainNames;
+}
+
+
+
 void 
 InitModule_INETCONF
 (void)
@@ -208,4 +250,6 @@ InitModule_INETCONF
        WebcitAddUrlHandler(HKEY("save_inetconf"), "", 0, new_save_inetconf, 0);
        RegisterIterator("SERVCFG:INET", 1, NULL, GetInetConfHash, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
        RegisterNamespace("SERVCFG:FLUSHINETCFG",0, 0, DeleteInetConfHash, NULL, CTX_NONE);
+       RegisterIterator("ITERATE:VALID:DOMAINNAMES", 1, NULL, GetValidDomainNames, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
+
 }
index 3dd97ecab4773327348561da6fb9753ab23fb98c..23f027f853ac66da7228b354f1633061bfe4e082 100644 (file)
@@ -1078,9 +1078,16 @@ void netedit(void) {
                strcat(line, bstr("suffix"));
        }
        else if (havebstr("alias")) {
+               const char *domain;
                malias = 1;
                sepchar = ',';
+               domain = bstr("aliasdomain");
                strcat(line, bstr("prefix"));
+               if (!IsEmptyStr(domain))
+               {
+                       strcat(line, "@");
+                       strcat(line, domain);
+               }
                strcat(line, ",");
                strcat(line, "room_");
                strcat(line, ChrPtr(WC->CurRoom.name));
diff --git a/webcit/static/t/room/edit/alias_domainname.html b/webcit/static/t/room/edit/alias_domainname.html
new file mode 100644 (file)
index 0000000..cca1277
--- /dev/null
@@ -0,0 +1 @@
+                                 <option value="<?CONTEXTSTR("U")>"><?CONTEXTSTR("U")></option>
index f34e024ee7f3f40afad5726a93c0407d3471866e..1c1db769e1a316382be570cd9195f54a6e140cba 100644 (file)
                          <input type="hidden" name="nonce" value="<?NONCE>">
                          <input type="hidden" name="go" value="<?THISROOM:NAME("X")>">
                          <input type="text" id="prefix" name="prefix">
+                         @ 
+                         <select size="1" name="aliasdomain">
+                                 <option value=""><?_("All Domains")></option>
+                                 <?ITERATE("ITERATE:VALID:DOMAINNAMES", ="room_edit_alias_domainname", 0, 0, -1, "")>
+                         </select>
                          <input type="submit" name="add_button" value="<?_("Add")>">
                        </p>
                      </form>