!7 mainPackage gazelle mainClassName main module GazAI > GazelleBEA { transient long filesObjectID = 270; /*O html4(Req req) { ret hfullcenter(centerGazelleLogo()); }*/ @Override O serveHomePage_base() { new HTMLFramer1 framer; framer.title = "Gaz.AI"; framer.renderTitle = () -> ""; framer.addInHead(hsansserif()); framer.add(hfullcenter( centerGazelleLogo() + p(ahref(baseLink + "/login", "Internal")) )); ret framer!; } @Override Cl cruddableClasses(DynGazelleRocks.Req req) { ret addAllAndReturnCollection(super.cruddableClasses(req), Settings); } S authFormMoreContent() { printStackTrace(); ret super.authFormMoreContent(); } void init :: after { runRefChecker = false; botName = heading = adminName = "Gaz.AI"; showCRUDToEveryone = false; showCRUDToNonMasterUsers = true; // TODO: make sure no classes "leak" showInputAndPatternNavItems = false; set authedDialogIDForEveryCookie; } L publicCRUDs() { ret ll(UploadedImage.class, UploadedSound.class); } // put the public CRUDs here but make sure to filter them in // the next method! @Override L crudClasses(DynGazelleRocks.Req req) { if (!masterAuthed(req)) ret publicCRUDs(); else ret super.crudClasses(req); } @Override MapSO filtersForClass(Class c, DynGazelleRocks.Req req) { if (!masterAuthed(req) && contains(publicCRUDs(), c)) ret litmap(user := user(req)); ret super.filtersForClass(c, req); } O serve404Page() { if (startsWith(currentReq().uri, "/crud/")) ret hredirect(baseLink + "/login"); else ret subBot_serve404("Resource not found, please try the " + ahref("/", "home page")); } @Override O serveDefaultPage(DynGazelleRocks.Req req) { if (ewicOneOf(req.uri(), ".css", ".js")) ret serve404Page(); if (eqicOneOf(req.uri(), "/gazelle.jar", "/webhook")) ret eleu_callModuleHTMLMethod("gazAiHomePage", req); //ret subBot_serveRedirect("https://ultrafast.gaz.ai" + req.uri()); S uri = replacePrefix("/kb/", "/", req.uri()); ret hrefresh(addParamsToURL("https://gazelle.rocks/kb" + uri, req.params()); } @Override O serveOtherPage2(Req req) { new Matches m; S uri = req.uri(); if (startsWith(uri, "/files/", m)) { req.subURI = m.rest(); ret beaCall(filesObjectID, "html", req); } ret super.serveOtherPage2(req); } void makeNavItems_base(DynGazelleRocks.Req req, HTMLFramer1 framer) { super.makeNavItems_base(req, framer); if (isMasterAuthed(req)) framer.addNavItem(ahref("https://vnc.gaz.ai", "VNC")); } } !include early #1031418 // Gazelle BEA