CINXE.COM
IPT
<!DOCTYPE html> <html lang="en" class="h-100"> <head> <!-- Bootstrap CSS --> <link rel="stylesheet" type="text/css" href="https://ipt.gbif.org/styles/bootstrap/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="https://ipt.gbif.org/styles/bootstrap/bootstrap-borders.css" /> <link rel="stylesheet" type="text/css" href="https://ipt.gbif.org/styles/dataTables/jquery.dataTables-1.13.6.min.css" /> <link rel="stylesheet" type="text/css" href="https://ipt.gbif.org/styles/dataTables/responsive.dataTables-2.5.0.min.css" /> <!-- Bootstrap icons --> <link rel="stylesheet" type="text/css" href="https://ipt.gbif.org/styles/bootstrap-icons/font/bootstrap-icons.css" /> <!-- Google fonts --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"> <!-- IPT CSS --> <style> :root { --color-gbif-primary: 97,168,97; --color-gbif-danger: 227, 99, 112; --color-gbif-secondary: 78, 86, 95; --color-gbif-warning: 255, 193, 8; --navbar-color: 120,181,120; --navbar-link-color: 255,255,255; --navbar-gbif-logo-color: 255,255,255; --navbar-active-tab-color: 255,255,255; --link-color: 75,162,206; } </style> <link rel="stylesheet" type="text/css" href="https://ipt.gbif.org/styles/main.css" /> <!-- Custom CSS for customizations --> <link rel="stylesheet" type="text/css" href="https://ipt.gbif.org/styles/custom.css" /> <link rel="shortcut icon" href="https://ipt.gbif.org/images/icons/favicon-16x16.png" type="image/x-icon" /> <link href="https://ipt.gbif.org/rss.do" title="Latest Resources" rel="alternate" type="application/rss+xml" /> <!-- for support of old browsers, like IE8. See http://modernizr.com/docs/#html5inie --> <script src="https://ipt.gbif.org/js/modernizr.js"></script> <script src="https://ipt.gbif.org/js/jquery/jquery-3.7.0.min.js"></script> <script src="https://ipt.gbif.org/js/jquery/jquery-ui.min-1.12.1.js"></script> <script src="https://ipt.gbif.org/js/global.js"></script> <script> window.addEventListener("scroll", () => { const header = document.querySelector("header"); const scrollY = window.scrollY; if (scrollY > 100) { // Adjust the scroll position where the header should shrink header.classList.add("shrink"); } else { header.classList.remove("shrink"); } }); </script> <script> setTimeout(function(){ window.location.reload(); }, 600000); </script> <meta name="description" content="A demo installation of the latest IPT version. For more information about the IPT, please visit https://www.gbif.org/ipt Testing." /> <meta name="keywords" content="GBIF, Global Biodiversity Information Facility, IPT, Integrated Publishing Toolkit, checklist, occurrence, metadata, DwC-A, Darwin Core, Darwin Core Archive, biodiversity data, data paper, EML" /> <meta name="generator" content="IPT 3.1.0-r7df05e5" /> <meta name="inventory" content="https://ipt.gbif.org/inventory/dataset"/> <meta name="foaf:seeAlso" content="https://ipt.gbif.org/dcat"/> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>IPT</title> </head> <script> function handleCustomLogoError() { document.getElementById("gbif-logo-custom").style = "display: none;"; document.getElementById("gbif-logo").style = "display: inline-block;"; var loginPageLogoCustom = document.getElementById("login-page-logo-custom"); if (loginPageLogoCustom) { loginPageLogoCustom.style = "display: none;"; } var loginPageLogo = document.getElementById("login-page-logo"); if (loginPageLogo) { loginPageLogo.style = "display: inline-block;"; } } </script> <script> // Check if the public URL is correct, otherwise display the fallback page document.addEventListener("DOMContentLoaded", function() { var xhr = new XMLHttpRequest(); xhr.open("GET", "https://ipt.gbif.org/styles/main.css"); xhr.onload = function() { if (xhr.status !== 200) { window.location.href = "/fallback.do"; } }; xhr.onerror = function() { window.location.href = "/fallback.do"; }; xhr.send(); }); </script> <body class="bg-body d-flex flex-column h-100"> <header> <nav class="main-nav navbar navbar-expand-xl navbar-dark bg-gbif-main-navbar fixed-top py-0 border-bottom"> <div class="container-fluid"> <a href="https://ipt.gbif.org/" rel="home" title="Logo" class="navbar-brand" > <svg id="gbif-logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 539.7 523.9" style="enable-background:new 0 0 539.7 523.9;" xml:space="preserve"> <path class="ipt-icon-piece" d="M230.7,255.5c0-102.2,49.9-190.7,198.4-190.7C429.1,167.2,361.7,255.5,230.7,255.5"/> <path class="ipt-icon-piece" d="M468.6,523.9c27.8,0,49.2-4,71.1-12c0-80.9-48.3-138.7-133.5-180.4c-65.2-32.7-145.5-49.7-218.8-49.7C219.5,185.4,196.1,65.7,165,0c-34.5,68.8-56,186.8-22.9,282.8C77,287.6,25.4,315.9,3.6,353.3c-1.6,2.8-5,8.9-3,10c1.6,0.8,4.1-1.7,5.6-3.1c23.5-21.8,54.6-32.4,84.5-32.4c69.1,0,117.8,57.3,152.3,91.7C317.1,493.5,389.4,524.1,468.6,523.9"/> </svg> <img id="gbif-logo-custom" src="https://ipt.gbif.org/appLogo.do" onerror="handleCustomLogoError()" /> <span class="test-mode-banner">TEST MODE</span> </a> <button class="navbar-toggler my-2" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path stroke="rgba(var(--navbar-link-color), 0.75)" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"/></svg> </button> <div class="collapse navbar-collapse ps-2" id="navbarCollapse"> <!-- Navbar --> <ul class="navbar-nav mx-auto mb-md-0"> <li class="nav-item nav-item-border-bottom"> <a class="nav-link custom-nav-link active" href="https://ipt.gbif.org/">Home</a> </li> <li class="nav-item nav-item-border-bottom"> <a class="nav-link custom-nav-link " href="https://ipt.gbif.org/about.do">About</a> </li> </ul> <div class="d-xl-flex align-content-between"> <!-- Health --> <div class="navbar-nav nav-item-border-bottom"> <a href="https://ipt.gbif.org/health.do" class="nav-link position-relative health-link" title="Health status"> <svg class="gbif-heartbeat-icon " height="20" width="20" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-356 246.5 90 77.6" xml:space="preserve"> <path d="M-277.2,286.2h-22.9l-5,11l-10.1-43.8l-10.9,32.8h-18.6c-1.8,0-3.2,1.4-3.2,3.2c0,1.8,1.4,3.2,3.2,3.2h23.3l5.2-15.5l9.2,40l11.1-24.5h18.7c1.8,0,3.2-1.4,3.2-3.2C-274,287.7-275.4,286.2-277.2,286.2z"/> </svg> </a> </div> <!-- Languages --> <div id="navbarNavDropdown"> <ul class="navbar-nav"> <!-- add more languages as translations become available. --> <li class="nav-item dropdown"> <a class="nav-link" href="#" id="languageDropdownLink" role="button" data-bs-toggle="dropdown" aria-expanded="false" title="Select language"> <svg class="gbif-translate-icon" height="20" viewBox="0 0 24 24" width="20" xmlns="http://www.w3.org/2000/svg"> <path d="M0 0h24v24H0z" fill="none"/> <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/> </svg> </a> <ul class="dropdown-menu dropdown-menu-end dropdown-menu-light text-light fs-smaller" aria-labelledby="languageDropdownLink"> <li> <a class="dropdown-item dropdown-item-active menu-link" > <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check text-gbif-primary" viewBox="0 0 16 16"> <path d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"/> </svg> English </a> </li> <li> <a class="dropdown-item menu-link" href="https://ipt.gbif.org/?request_locale=fr"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#ffffff" class="bi bi-check" viewBox="0 0 16 16"> <path d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"/> </svg> Française </a> </li> <li> <a class="dropdown-item menu-link" href="https://ipt.gbif.org/?request_locale=es"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#ffffff" class="bi bi-check" viewBox="0 0 16 16"> <path d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"/> </svg> Español </a> </li> <li> <a class="dropdown-item menu-link" href="https://ipt.gbif.org/?request_locale=zh"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#ffffff" class="bi bi-check" viewBox="0 0 16 16"> <path d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"/> </svg> 繁體中文 </a> </li> <li> <a class="dropdown-item menu-link" href="https://ipt.gbif.org/?request_locale=pt"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#ffffff" class="bi bi-check" viewBox="0 0 16 16"> <path d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"/> </svg> Português </a> </li> <li> <a class="dropdown-item menu-link" href="https://ipt.gbif.org/?request_locale=ja"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#ffffff" class="bi bi-check" viewBox="0 0 16 16"> <path d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"/> </svg> 日本語 </a> </li> <li> <a class="dropdown-item menu-link" href="https://ipt.gbif.org/?request_locale=ru"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#ffffff" class="bi bi-check" viewBox="0 0 16 16"> <path d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"/> </svg> Русский </a> </li> </ul> </li> </ul> </div> <!-- Login, account --> <form action="https://ipt.gbif.org/login.do" method="post" class="d-xl-flex align-content-xl-center"> <button id="login-button" class="btn btn-sm m-xl-auto navbar-button text-capitalize show-xl-bigger" type="submit" name="login-submit"> login </button> <div class="navbar-nav show-xl-smaller nav-item-border-top"> <a href="javascript:{}" class="nav-link text-capitalize" onclick="this.closest('form').submit();return false;"> login </a> </div> </form> </div> </div> </div> </nav> </header> <div id="dialog-confirm" class="modal fade" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true"></div> <script src="https://ipt.gbif.org/js/jquery/jquery-3.7.0.min.js"></script> <script src="https://ipt.gbif.org/js/jquery/jquery.dataTables-1.13.6.min.js"></script> <script src="https://ipt.gbif.org/js/jquery/dataTables.responsive-2.5.0.min.js"></script> <script charset="utf-8"> // parse a date in yyyy-mm-dd format function parseDate(input) { var parts = input.match(/(\d+)/g); return new Date(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]); // months are 0-based } function getSafe(object, key, defaultVal) { try { return object[key] ? object[key] : defaultVal; } catch (e) { return defaultVal; } } $(document).ready(function () { const SEARCH_PARAM = "search"; const SORT_PARAM = "sort"; const ORDER_PARAM = "order"; const PAGE_PARAM = "page"; var columnIndexName = { 1: "name", 2: "organisation", 3: "type", 4: "subtype", 5: "records", 6: "lastModified", 7: "lasPublished", 8: "nextPublished", 9: "visibility", 10: "author" }; var columnNameIndex = { "name": 1, "organisation": 2, "type": 3, "subtype": 4, "records": 5, "lastModified": 6, "lasPublished": 7, "nextPublished": 8, "visibility": 9, "author": 10 }; var urlParams = new URLSearchParams(window.location.search); var searchParam = urlParams.get(SEARCH_PARAM) ? urlParams.get(SEARCH_PARAM) : ""; var sortParam = urlParams.get(SORT_PARAM) ? getSafe(columnNameIndex, urlParams.get(SORT_PARAM), 1) : 1; var orderParam = urlParams.get(ORDER_PARAM) ? urlParams.get(ORDER_PARAM) : "asc"; var rawPageParam = urlParams.get(PAGE_PARAM); // converted from page to start param (1, 2, 3 etc. -> 0, 10, 20, 30 etc.) var start = rawPageParam && rawPageParam > 0 ? (urlParams.get(PAGE_PARAM) - 1) * 10 : 0; $.fn.dataTable.Responsive.breakpoints.push( { name: 'desktop', width: Infinity }, { name: 'tablet-l', width: 1200 }, { name: 'tablet-p', width: 992 }, { name: 'mobile-l', width: 768 }, { name: 'mobile-p', width: 320 } ); $('#tableContainer').html('<table class="display dataTable resourcesTable" id="rtable"></table>'); var dt = $('#rtable').DataTable({ ajax: { url: 'https://ipt.gbif.org/api/resources', type: 'POST' }, responsive: true, "bProcessing": true, "bServerSide": true, "displayStart": start, "iDisplayLength": 10, "bLengthChange": false, "oLanguage": { "sEmptyTable": "No resources are currently available", "sZeroRecords": "No resources were found", "sInfo": "Showing _START_ to _END_ of _TOTAL_", "sInfoEmpty": "Showing 0 to 0 of 0", "sInfoFiltered": "(filtered from _MAX_ total)", "sSearch": "Filter:", "oPaginate": { "sNext": "next", "sPrevious": "previous" } }, "aoColumns": [ {"sTitle": "Logo", "bSearchable": false, "bSortable": false, "sClass": "desktop", "bVisible": true}, {"sTitle": "Name", "sClass": "all text-break"}, {"sTitle": "Organization", "sClass": "desktop tablet-l"}, {"sTitle": "Type", "sClass": "desktop tablet-l tablet-p"}, {"sTitle": "Subtype", "sClass": "desktop"}, {"sTitle": "Records", "bSearchable": false, "sType": "number", "sClass": "text-xl-end desktop"}, {"sTitle": "Last modified", "bSearchable": false, "sClass": "text-xl-end desktop"}, {"sTitle": "Last publication", "bSearchable": false, orderSequence: ["desc", "asc"], "sClass": "text-xl-end desktop tablet-l tablet-p"}, {"sTitle": "Next publication", "bSearchable": false, "sClass": "text-xl-end desktop"}, {"sTitle": "Visibility", "bSearchable": false, "sClass": "desktop tablet-l", "bVisible": false}, {"sTitle": "Author", "sClass": "desktop tablet-l", "bVisible": false}, {"sTitle": "Shortname", "bVisible": false}, {"sTitle": "Keywords", "bVisible": false} ], "aaSorting": [[sortParam, orderParam]], "aoColumnDefs": [ {'bSortable': false, 'aTargets': [0]} ], "oSearch": {"sSearch": searchParam}, "fnInitComplete": function (oSettings) { /* Do nothing for now, may need in the future */ } }); // display page parameter in the URL $(document).on("click", "a.paginate_button", function (e) { var page = dt.page() + 1; var params = new URLSearchParams(window.location.search); page !== 0 ? params.set(PAGE_PARAM, page) : params.delete(PAGE_PARAM); var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + '?' + params.toString(); window.history.pushState({path: newurl}, '', newurl); }); // display search and sort parameters in the URL dt.on('search.dt', function () { if (history.pushState) { var searchValue = dt.search(); var sortFieldIndex = dt.order()[0][0]; var sortFieldOrder = dt.order()[0][1]; var params = new URLSearchParams(window.location.search); var page = params.get(PAGE_PARAM); // reset page param if (page) { params.set(PAGE_PARAM, 1); } searchValue ? params.set(SEARCH_PARAM, searchValue) : params.delete(SEARCH_PARAM); params.set(SORT_PARAM, getSafe(columnIndexName, sortFieldIndex, "name")); params.set(ORDER_PARAM, sortFieldOrder); var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + '?' + params.toString(); window.history.pushState({path: newurl}, '', newurl); } }); }); </script> <div class="container"> </div> <div class="container-fluid border-bottom"> <div class="container bg-body border rounded-2 mb-4"> <div class="container my-3 p-3"> <div class="text-center fs-smaller"> Home </div> <div class="text-center"> <h1 class="pb-2 mb-0 pt-2 text-gbif-header fs-2 fw-normal"> Hosted resources available through this IPT </h1> <div class="text-smaller text-gbif-primary mb-2"> 251 resource(s) currently available </div> </div> </div> </div> </div> <main class="container main-content-container border rounded my-4"> <div class="py-md-4 py-3 px-md-5 px-3"> <div id="tableContainer" class="resource-table text-smaller pt-2"></div> <!-- RSS Feed shown if there are resources --> <p class="mb-0 pt-2 text-center"> <i class="bi bi-rss"></i> The most recently updated resources are also available as an <a href="https://ipt.gbif.org/rss.do">RSS feed</a>. </p> </div> </main> <footer class="footer bg-light border-top mt-auto text-center text-smaller py-3"> <div class="container"> <div class="mb-1 footer-text"> <img title="IPT 3.1.0-r7df05e5" class="footer-gbif-logo" alt="GBIF" src="https://ipt.gbif.org/images/GBIF-2015-standard-ipt.png"/> Integrated Publishing Toolkit (IPT) Version 3.1.0 </div> <ul class="list-inline mb-0"> <li class="list-inline-item ipt-footer-item"> <a class="footer-link" href="https://www.gbif.org/ipt"><small>About the IPT</small></a> </li> <li class="list-inline-item ipt-footer-item"> <a class="footer-link" href="https://ipt.gbif.org/manual/" target="_blank"><small>User manual</small></a> </li> <li class="list-inline-item ipt-footer-item"> <a class="footer-link" href="https://github.com/gbif/ipt/issues/new" target="_blank"><small>Report a bug</small></a> </li> <li class="list-inline-item"> <a class="footer-link" href="https://github.com/gbif/ipt/issues/new" target="_blank"><small>Request new feature</small></a> </li> </ul> </div> </footer> <div class="dataTables_processing" style="display: none;"> <div><div></div><div></div><div></div><div></div></div> </div> <div id="modalbox"> <div id="modalback"></div> <div id="modalcontainer"> <div id="modalcontent" class="container-fluid"></div> </div> </div> <script src="https://ipt.gbif.org/js/bootstrap/bootstrap.bundle.min.js"></script> <script src="https://ipt.gbif.org/js/form-validation.js"></script> <script src='https://ipt.gbif.org/js/sortable/html5sortable-0.13.3.js'></script> <script> var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')) var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { return new bootstrap.Popover(popoverTriggerEl) }) try { var popover = new bootstrap.Popover(document.querySelector('.popover-dismiss'), { trigger: 'focus' }) } catch (TypeError) {} </script> </body> </html>