admin: tab system improvement, search: ?search qp
tab content classes (e.g. settingsList, activityList) can implement "AsTab", "Navigatable" and or "PageEventBindable", the first giving them a tab name, a subpath and a reloader function, the second an "isURL" and "navigate" function for loading resources, the last giving them bind/unbindPageEvent methods. These are looped through in ts/admin.ts still crudely, maybe tabs.ts could accept "AsTab" implementers directly. "Search" class now has a ?search query param which just encodes the search box content, set when you perform a server search (hit enter or press the button). ?user queries from the accounts or activity tab will be converted to this form on loading.
This commit is contained in:
@@ -784,6 +784,8 @@ class DOMInvite implements Invite {
|
||||
}
|
||||
|
||||
export class DOMInviteList implements InviteList {
|
||||
readonly tabName = "invites";
|
||||
readonly pagePath = "";
|
||||
private _list: HTMLDivElement;
|
||||
private _empty: boolean;
|
||||
// since invite reload sends profiles, this event it broadcast so the createInvite object can load them.
|
||||
@@ -804,14 +806,14 @@ export class DOMInviteList implements InviteList {
|
||||
this.focusInvite(event.detail);
|
||||
});
|
||||
|
||||
isInviteURL = () => {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
isURL = (url?: string) => {
|
||||
const urlParams = new URLSearchParams(url || window.location.search);
|
||||
const inviteCode = urlParams.get("invite");
|
||||
return Boolean(inviteCode);
|
||||
};
|
||||
|
||||
loadInviteURL = () => {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
navigate = (url?: string) => {
|
||||
const urlParams = new URLSearchParams(url || window.location.search);
|
||||
const inviteCode = urlParams.get("invite");
|
||||
this.focusInvite(inviteCode, window.lang.notif("errorInviteNotFound"));
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user