Warning: session_start(): open(/var/lib/php/sessions/sess_f3kkluu3r0vgc0nno7a0tebl8l, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
abstract sclass DynQuickSearch extends DynCalculatedList {
transient S query;
transient new RestartableCountdown autoHide;
start {
calculateWhenHidden = true;
ownResource(vmBus_onMessage('topInput, voidfunc(S s) { doSearch(s) }));
ownResource(vmBus_onMessage('topInputChanged, voidfunc(S s) { if (neq(s, query)) doSearch(s) }));
ownResource(vmBus_onMessage('hideQuickSearchModules, rEnter dm_hideModule);
}
void doSearch(S s) enter {
if (dm_osLoading() || dm_dontQuickSearch(s)) ret;
query = s;
O qsm = dm_quickSearchManager();
if (qsm != null && !dm_isMe(qsm)) {
results = calc();
dm_call(qsm, 'setResultsForModule, dm_moduleID(), query, results);
} else {
super.update();
if (nempty(query) && nempty(results)) {
dm_placeModuleUnderAIBar(this, query);
dm_autoHide(autoHide);
} else
dm_hideModule();
}
}
final L calc() {
if (empty(query)) ret emptyList();
ret calc_impl();
}
abstract LS calc_impl();
void enhanceFrame(Container f) {
super.enhanceFrame(f);
setClosable(f, false);
internalFramePopupMenuItem(f, "Delete", rThread { dm_deleteModuleInBackground(module()) });
}
// API
void selectFirstEntry() {
selectRow(list, 0);
}
}