lib_plankton.zoo_page.register( "list", (parameters, target_element) => { type type_item = { id : int; preview : { membership_number : string; name_real_value : string; name_real_index : int; }; }; const term : (null | string) = (parameters["term"] ?? ""); target_element.appendChild(template_request("list")); target_element.querySelector(".list-title").textContent = lib_plankton.translate.get("page.list.title"); const search : lib_plankton.zoo_search.type_search = lib_plankton.zoo_search.make( (term) => _espe.backend.member_list(term), { "encode_item": (item) => lib_plankton.string.coin( "{{membership_number}} | {{name}}{{addition}}", { "membership_number": item.preview.membership_number, "name": item.preview.name_real_value, "addition": ( ( (item.preview.name_real_index === null) || (item.preview.name_real_index <= 1) ) ? "" : (" (" + item.preview.name_real_index.toFixed(0) + ")") ), } ), "hooks_begin": [ (term) => { lib_plankton.zoo_page.set( { "name": "list", "parameters": { "term": term, } } ); } ], "hooks_select": [ (item) => { lib_plankton.zoo_page.set( { "name": "view", "parameters": { "id": item.id.toFixed(0), } } ); } ] } ); lib_plankton.zoo_search.render( search, target_element.querySelector(".list-search"), { "state": { "term": term, } } ); } );