+void
+InitModule_ROOMOPS
+(void)
+{
+ RegisterPreference("roomlistview",
+ _("Room list view"),
+ PRF_STRING,
+ NULL);
+ RegisterPreference("emptyfloors", _("Show empty floors"), PRF_YESNO, NULL);
+
+ RegisterNamespace("ROOMNAME", 0, 1, tmplput_RoomName, NULL, CTX_NONE);
+
+ WebcitAddUrlHandler(HKEY("knrooms"), "", 0, knrooms, 0);
+ WebcitAddUrlHandler(HKEY("dotgoto"), "", 0, dotgoto, NEED_URL);
+ WebcitAddUrlHandler(HKEY("dotskip"), "", 0, dotskip, NEED_URL);
+ WebcitAddUrlHandler(HKEY("display_private"), "", 0, _display_private, 0);
+ WebcitAddUrlHandler(HKEY("goto_private"), "", 0, goto_private, NEED_URL);
+ WebcitAddUrlHandler(HKEY("zapped_list"), "", 0, zapped_list, 0);
+ WebcitAddUrlHandler(HKEY("display_zap"), "", 0, display_zap, 0);
+ WebcitAddUrlHandler(HKEY("zap"), "", 0, zap, 0);
+ WebcitAddUrlHandler(HKEY("display_entroom"), "", 0, display_entroom, 0);
+ WebcitAddUrlHandler(HKEY("entroom"), "", 0, entroom, 0);
+ WebcitAddUrlHandler(HKEY("display_whok"), "", 0, display_whok, 0);
+ WebcitAddUrlHandler(HKEY("do_invt_kick"), "", 0, do_invt_kick, 0);
+ WebcitAddUrlHandler(HKEY("display_editroom"), "", 0, display_editroom, 0);
+ WebcitAddUrlHandler(HKEY("netedit"), "", 0, netedit, 0);
+ WebcitAddUrlHandler(HKEY("editroom"), "", 0, editroom, 0);
+ WebcitAddUrlHandler(HKEY("delete_room"), "", 0, delete_room, 0);
+ WebcitAddUrlHandler(HKEY("set_room_policy"), "", 0, set_room_policy, 0);
+ WebcitAddUrlHandler(HKEY("changeview"), "", 0, change_view, 0);
+ WebcitAddUrlHandler(HKEY("toggle_self_service"), "", 0, toggle_self_service, 0);
+ RegisterNamespace("ROOMBANNER", 0, 1, tmplput_roombanner, NULL, CTX_NONE);
+
+ RegisterConditional(HKEY("COND:ROOM:TYPE_IS"), 0, ConditionalIsRoomtype, CTX_NONE);
+ RegisterConditional(HKEY("COND:THISROOM:FLAG:QR"), 0, ConditionalCurrentRoomHas_QRFlag, CTX_NONE);
+ RegisterConditional(HKEY("COND:ROOM:FLAG:QR"), 0, ConditionalRoomHas_QRFlag, CTX_ROOMS);
+
+ REGISTERTokenParamDefine(QR_PERMANENT);
+ REGISTERTokenParamDefine(QR_INUSE);
+ REGISTERTokenParamDefine(QR_PRIVATE);
+ REGISTERTokenParamDefine(QR_PASSWORDED);
+ REGISTERTokenParamDefine(QR_GUESSNAME);
+ REGISTERTokenParamDefine(QR_DIRECTORY);
+ REGISTERTokenParamDefine(QR_UPLOAD);
+ REGISTERTokenParamDefine(QR_DOWNLOAD);
+ REGISTERTokenParamDefine(QR_VISDIR);
+ REGISTERTokenParamDefine(QR_ANONONLY);
+ REGISTERTokenParamDefine(QR_ANONOPT);
+ REGISTERTokenParamDefine(QR_NETWORK);
+ REGISTERTokenParamDefine(QR_PREFONLY);
+ REGISTERTokenParamDefine(QR_READONLY);
+ REGISTERTokenParamDefine(QR_MAILBOX);
+ REGISTERTokenParamDefine(QR2_SYSTEM);
+ REGISTERTokenParamDefine(QR2_SELFLIST);
+ REGISTERTokenParamDefine(QR2_COLLABDEL);
+ REGISTERTokenParamDefine(QR2_SUBJECTREQ);
+ REGISTERTokenParamDefine(QR2_SMTP_PUBLIC);
+ REGISTERTokenParamDefine(QR2_MODERATED);
+
+ REGISTERTokenParamDefine(UA_KNOWN);
+ REGISTERTokenParamDefine(UA_GOTOALLOWED);
+ REGISTERTokenParamDefine(UA_HASNEWMSGS);
+ REGISTERTokenParamDefine(UA_ZAPPED);
+ REGISTERTokenParamDefine(UA_POSTALLOWED);
+ REGISTERTokenParamDefine(UA_ADMINALLOWED);
+ REGISTERTokenParamDefine(UA_DELETEALLOWED);
+ REGISTERTokenParamDefine(UA_ISTRASH);
+
+ REGISTERTokenParamDefine(US_NEEDVALID);
+ REGISTERTokenParamDefine(US_PERM);
+ REGISTERTokenParamDefine(US_LASTOLD);
+ REGISTERTokenParamDefine(US_EXPERT);
+ REGISTERTokenParamDefine(US_UNLISTED);
+ REGISTERTokenParamDefine(US_NOPROMPT);
+ REGISTERTokenParamDefine(US_PROMPTCTL);
+ REGISTERTokenParamDefine(US_DISAPPEAR);
+ REGISTERTokenParamDefine(US_REGIS);
+ REGISTERTokenParamDefine(US_PAGINATOR);
+ REGISTERTokenParamDefine(US_INTERNET);
+ REGISTERTokenParamDefine(US_FLOORS);
+ REGISTERTokenParamDefine(US_COLOR);
+ REGISTERTokenParamDefine(US_USER_SET);
+
+
+ RegisterConditional(HKEY("COND:ROOMAIDE"), 2, ConditionalRoomAide, CTX_NONE);
+ RegisterConditional(HKEY("COND:ACCESS:DELETE"), 2, ConditionalRoomAcessDelete, CTX_NONE);
+
+ RegisterConditional(HKEY("COND:UNGOTO"), 0, ConditionalHaveUngoto, CTX_NONE);
+ RegisterConditional(HKEY("COND:ROOM:EDITACCESS"), 0, ConditionalHaveRoomeditRights, CTX_NONE);
+
+ RegisterNamespace("CURRENT_ROOM", 0, 1, tmplput_current_room, NULL, CTX_NONE);
+ RegisterNamespace("ROOM:UNGOTO", 0, 0, tmplput_ungoto, NULL, CTX_NONE);
+ RegisterIterator("FLOORS", 0, NULL, GetFloorListHash, NULL, NULL, CTX_FLOORS, CTX_NONE, IT_NOFLAG);