!7 sS templateID = #1029809; sS cssID = #1029808; sS botName = "AVOR Demonstrator"; sS heading = "AVOR Demonstrator"; sS adminName = "AVOR Demonstrator Admin"; sS botImageID = #1102935; sS userImageID = #1102803; sS chatHeaderImageID = #1102802; sS timeZone = ukTimeZone_string(); sS baseLink = ""; cmodule AvorDemonstrator > DynNewBot { start { baseLink = ""; } O html(IWebRequest req) { S uri = addSlash(req.uri()); new Matches m; if (startsWith(uri, "/uiDemonstrator/", m)) ret serveUIDemonstrator(webRequest_modifyURI(addSlashPrefix(m.rest()), req)); ret super.html(req); } L crudClasses(bool masterAuthed) { L l = super.crudClasses(masterAuthed); ret masterAuthed ? listPlus(l, Avatar) : l; } void makeFramer(Req req) { super.makeFramer(req); req.framer.addNavItem(baseLink + "/uiDemonstrator", "UI Demonstrator", targetBlank := true); } O serveUIDemonstrator(IWebRequest req) { ret hhtml(hhead_title("URI: " + req.uri()) + hframeset_cols("*,*", hframe("botFrame", baseLink + "/demo") + hframeset_rows("*,*", hframe("botAdminFrame", baseLink + "/crud/Conversation") + hframe("botThoughtsFrame", baseLink + "/thoughts"))) ); } } concept Avatar { S name, comment; new Ref image; }