{"id":1969,"date":"2025-04-11T11:51:07","date_gmt":"2025-04-11T11:51:07","guid":{"rendered":"https:\/\/aa1.es\/?page_id=1969"},"modified":"2025-05-12T10:20:38","modified_gmt":"2025-05-12T10:20:38","slug":"persoal-investigador-nuevo","status":"publish","type":"page","link":"https:\/\/aa1.es\/?page_id=1969","title":{"rendered":"Persoal investigador"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1969\" class=\"elementor elementor-1969\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-80b2f91 e-con-full e-flex e-con e-parent\" data-id=\"80b2f91\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;background_motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;background_motion_fx_translateX_effect&quot;:&quot;yes&quot;,&quot;background_motion_fx_translateX_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1.1,&quot;sizes&quot;:[]},&quot;background_motion_fx_translateX_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;background_motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;laptop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7aa4bdf e-flex e-con-boxed e-con e-parent\" data-id=\"7aa4bdf\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a217321 elementor-widget elementor-widget-html\" data-id=\"a217321\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"width: 80%; margin: 0 auto;\">\n<!DOCTYPE html>\n<html lang=\"gl\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter&amp;wght@400;700&amp;display=swap\" rel=\"stylesheet\">\n  <style>\n    *, *::before, *::after {\n      box-sizing: border-box;\n    }\n\n    html, body {\n      margin: 0;\n      padding: 0;\n      width: 100%;\n    }\n\n    body {\n      font-family: 'Inter', sans-serif;\n      background: #fff;\n    }\n\n    .wrapper {\n      padding: 20px;\n    }\n\n    .tabs-container {\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      gap: 10px;\n      margin-bottom: 20px;\n    }\n\n    .tabs {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: flex-start;\n      gap: 10px;\n      width: 100%;\n      padding-left: 0;\n    }\n\n    .secondary-tabs {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: flex-start;\n      gap: 10px;\n      width: 100%;\n      margin-top: 20px;\n      padding-left: 0;\n    }\n\n    .tab {\n      display: flex;\n      align-items: center;\n      gap: 6px;\n      background: #f1f1f1;\n      padding: 8px 16px;\n      border-radius: 999px;\n      color: #333;\n      font-weight: 500;\n      cursor: pointer;\n      transition: 0.2s;\n      border: 2px solid transparent;\n    }\n\n    .tab.active {\n      background: #4CAF50;\n      color: white;\n      border-color: #4CAF50;\n      border-radius: 20px 0 20px 0;\n    }\n\n    .tab:hover {\n      background: #e0e0e0;\n      color: #4CAF50;\n      border: none;\n    }\n\n    .search-container {\n      display: flex;\n      justify-content: flex-end;\n      width: 100%;\n    }\n\n    .search-input {\n      width: 250px;\n      padding: 12px 20px;\n      border-radius: 30px !important; \/* M\u00e1s redondeado *\/\n      border: 2px solid #ccc;\n      font-size: 14px;\n      color: #333;\n      background-color: #fff;\n      transition: border-color 0.3s ease;\n    }\n\n    .search-input:focus {\n      outline: none;\n      border-color: #4CAF50;\n    }\n\n    #category-select {\n      display: none;\n    }\n\n    .grid {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center;\n      gap: 30px;\n      margin: 20px 0;\n    }\n\n    .card {\n      width: 250px;\n      min-height: 300px;\n      box-sizing: border-box;\n      border-radius: 20px 0 20px 0;\n      box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n      text-align: center;\n      padding: 0;\n      background: white;\n      transition: transform 0.3s ease;\n      display: flex;\n      flex-direction: column;\n      overflow: hidden;\n      position: relative;\n    }\n\n    .card:hover {\n      transform: scale(1.02);\n    }\n\n    .card img {\n      width: 100%;\n      height: 180px; \/* Ajustado para proporci\u00f3n 924x665 (1.39 ratio) *\/\n      object-fit: contain; \/* Cambiado a contain para evitar recortes *\/\n      object-position: center;\n      background: #f5f5f5;\n      border-radius: 20px 0 0 0;\n    }\n\n    .category-label {\n      position: absolute;\n      top: 0;\n      left: 0;\n      background: #4CAF50;\n      color: white;\n      padding: 4px 10px;\n      font-size: 0.7rem;\n      font-weight: bold;\n      border-radius: 20px 0 20px 0;\n      z-index: 1;\n      display: none; \/* Oculto por defecto *\/\n    }\n\n    .name {\n      font-weight: 700;\n      font-size: 1rem;\n      margin: 12px 0 6px;\n      padding: 0 10px;\n    }\n\n    .dept {\n      font-style: italic;\n      color: #555;\n      font-size: 0.85rem;\n      margin: 0 10px 12px;\n      padding: 0 10px;\n    }\n\n    .icons {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center; \/* Centrados *\/\n      gap: 6px;\n      margin-top: auto;\n      padding: 10px;\n    }\n\n    .icons a img {\n      height: 22px;\n      width: 22px;\n      border-radius: 50%;\n    }\n\n    .empty-msg {\n      padding: 40px;\n      color: #aaa;\n      font-style: italic;\n      text-align: center;\n      width: 100%;\n    }\n\n    @media (max-width: 768px) {\n      .tabs {\n        display: none;\n      }\n\n      .secondary-tabs {\n        display: none;\n      }\n\n      .search-input {\n        width: 100%;\n      }\n\n      #category-select {\n        display: block;\n        width: 100%;\n        margin: 10px 0 20px;\n        padding: 10px;\n        font-size: 16px;\n        border-radius: 10px;\n        border: 2px solid #ccc;\n      }\n\n      .card {\n        width: 100%;\n        margin-bottom: 20px;\n      }\n    }\n\n    @media (min-width: 769px) {\n      .tabs-container {\n        flex-direction: row;\n        justify-content: space-between;\n        align-items: center;\n      }\n\n      .search-container {\n        justify-content: flex-end;\n        width: auto;\n      }\n\n      #category-select {\n        display: none;\n      }\n\n      .tabs {\n        display: flex;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n\n<div class=\"wrapper\">\n  <div class=\"tabs-container\">\n    <div class=\"tabs\" id=\"tabs\"><\/div>\n    <div class=\"search-container\">\n      <input type=\"text\" id=\"search\" class=\"search-input\" placeholder=\"Buscar por nome...\" oninput=\"filterNames()\" \/>\n    <\/div>\n  <\/div>\n  <select id=\"category-select\" onchange=\"onCategoryChange(this.value)\"><\/select>\n  <div class=\"grid\" id=\"grid\"><\/div>\n  <div class=\"secondary-tabs\" id=\"secondary-tabs\"><\/div>\n<\/div>\n\n<script>\n  const sheetURL = 'https:\/\/docs.google.com\/spreadsheets\/d\/18RSXrscFbJ4Q8iK3h0xMk3Ls-Hu-3DB4T09y1smaxNo\/gviz\/tq?tqx=out:json';\n\n  let data = [];\n  let mainCategories = [\n    \"Profesors\", \n    \"Readers\", \n    \"Lecturers\", \n    \"Post-Doctoral Researchers\", \n    \"PhD Students\", \n    \"Technical Staff\"\n  ];\n\n  let secondaryCategories = [\n    \"Former Members\",\n    \"Visitors\"\n  ];\n\n  fetch(sheetURL)\n    .then(res => res.text())\n    .then(text => {\n      const json = JSON.parse(text.substr(47).slice(0, -2));\n      const rows = json.table.rows;\n\n      rows.slice(1).forEach(row => {\n        const c = row.c;\n        const entry = {\n          foto: c[0]?.v || \"\",\n          nombre: c[1]?.v || \"\",\n          depto: c[2]?.v || \"\",\n          scopus: c[3]?.v,\n          orcid: c[4]?.v,\n          scholar: c[5]?.v,\n          wos: c[6]?.v,\n          sci: c[7]?.v,\n          rg: c[8]?.v,\n          uvigo: c[9]?.v,\n          categoria: c[10]?.v?.trim() || \"\"\n        };\n        data.push(entry);\n      });\n\n      renderTabs(mainCategories, \"tabs\");\n      renderTabs(secondaryCategories, \"secondary-tabs\");\n\n      \/\/ Activar primera pesta\u00f1a por defecto\n      document.querySelector('#tabs .tab:first-child').classList.add('active');\n      renderCards(mainCategories[0]);\n\n      const storedSearch = localStorage.getItem('termoBusca');\n      if (storedSearch) {\n        document.getElementById(\"search\").value = storedSearch;\n        filterNames();\n      }\n    });\n\n  function renderTabs(cats, containerId) {\n    const tabContainer = document.getElementById(containerId);\n    const select = document.getElementById(\"category-select\");\n    tabContainer.innerHTML = \"\";\n\n    if (containerId === \"tabs\") {\n      select.innerHTML = \"\";\n    }\n\n    cats.forEach((cat, index) => {\n      const tab = document.createElement(\"div\");\n      tab.className = \"tab\";\n      tab.innerText = cat;\n      tab.onclick = () => {\n        if (containerId === \"tabs\") {\n          document.querySelectorAll(\"#tabs .tab\").forEach(t => t.classList.remove(\"active\"));\n        } else {\n          document.querySelectorAll(\"#secondary-tabs .tab\").forEach(t => t.classList.remove(\"active\"));\n        }\n        tab.classList.add(\"active\");\n        renderCards(cat);\n        \n        if (containerId === \"tabs\") {\n          select.value = cat;\n        }\n      };\n      tabContainer.appendChild(tab);\n\n      if (containerId === \"tabs\") {\n        const option = document.createElement(\"option\");\n        option.value = cat;\n        option.textContent = cat;\n        select.appendChild(option);\n      }\n    });\n  }\n\n  function renderCards(category) {\n    localStorage.setItem('categoriaActiva', category);\n\n    const grid = document.getElementById(\"grid\");\n    grid.innerHTML = \"\";\n\n    const filtered = data.filter(p =>\n      p.categoria.trim().toLowerCase() === category.trim().toLowerCase()\n    );\n\n    filtered.sort((a, b) => a.nombre.localeCompare(b.nombre));\n\n    if (filtered.length === 0) {\n      const empty = document.createElement(\"div\");\n      empty.className = \"empty-msg\";\n      empty.textContent = \"Non se atoparon resultados.\";\n      grid.appendChild(empty);\n      return;\n    }\n\n    filtered.forEach(p => {\n      const card = document.createElement(\"div\");\n      card.className = \"card\";\n      const img = p.foto || \"https:\/\/via.placeholder.com\/924x665?text=Sen+foto\";\n\n      card.innerHTML = `\n        <div class=\"category-label\">${p.categoria}<\/div>\n        <img decoding=\"async\" src=\"${img}\" alt=\"Foto de ${p.nombre}\" onerror=\"this.onerror=null;this.src='https:\/\/via.placeholder.com\/924x665?text=Sen+foto';\" \/>\n        <div class=\"name\">${p.nombre}<\/div>\n        <div class=\"dept\">${p.depto}<\/div>\n        <div class=\"icons\">\n          ${p.scopus ? `<a href=\"${p.scopus}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/Scopus_favicon.png\"\/><\/a>` : \"\"}\n          ${p.orcid ? `<a href=\"${p.orcid}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/0\/06\/ORCID_iD.svg\"\/><\/a>` : \"\"}\n          ${p.scholar ? `<a href=\"${p.scholar}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/png-clipart-google-logo-screenshot-computer-science-google-scholar-doctor-of-philosophy-google-logo-university-of-california-berkeley-google-blue-text-thumbnail.png\"\/><\/a>` : \"\"}\n          ${p.wos ? `<a href=\"${p.wos}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/logo-wos.png\"\/><\/a>` : \"\"}\n          ${p.sci ? `<a href=\"${p.sci}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/images.jpeg\"\/><\/a>` : \"\"}\n          ${p.rg ? `<a href=\"${p.rg}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/5\/5e\/ResearchGate_icon_SVG.svg\"\/><\/a>` : \"\"}\n          ${p.uvigo ? `<a href=\"${p.uvigo}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/unnamed.png\"\/><\/a>` : \"\"}\n        <\/div>\n      `;\n\n      grid.appendChild(card);\n    });\n  }\n\n  function filterNames() {\n    const searchInput = document.getElementById(\"search\");\n    const searchTerm = searchInput.value.toLowerCase();\n\n    localStorage.setItem('termoBusca', searchInput.value);\n\n    const filteredData = searchTerm \n      ? data.filter(person => person.nombre.toLowerCase().includes(searchTerm))\n      : data;\n\n    filteredData.sort((a, b) => a.nombre.localeCompare(b.nombre));\n\n    const grid = document.getElementById(\"grid\");\n    grid.innerHTML = \"\";\n\n    if (filteredData.length === 0) {\n      const empty = document.createElement(\"div\");\n      empty.className = \"empty-msg\";\n      empty.textContent = \"Non se atoparon resultados.\";\n      grid.appendChild(empty);\n      return;\n    }\n\n    filteredData.forEach(p => {\n      const card = document.createElement(\"div\");\n      card.className = \"card\";\n      const img = p.foto || \"https:\/\/via.placeholder.com\/924x665?text=Sen+foto\";\n\n      card.innerHTML = `\n        <div class=\"category-label\">${p.categoria}<\/div>\n        <img decoding=\"async\" src=\"${img}\" alt=\"Foto de ${p.nombre}\" onerror=\"this.onerror=null;this.src='https:\/\/via.placeholder.com\/924x665?text=Sen+foto';\" \/>\n        <div class=\"name\">${p.nombre}<\/div>\n        <div class=\"dept\">${p.depto}<\/div>\n        <div class=\"icons\">\n          ${p.scopus ? `<a href=\"${p.scopus}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/Scopus_favicon.png\"\/><\/a>` : \"\"}\n          ${p.orcid ? `<a href=\"${p.orcid}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/0\/06\/ORCID_iD.svg\"\/><\/a>` : \"\"}\n          ${p.scholar ? `<a href=\"${p.scholar}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/png-clipart-google-logo-screenshot-computer-science-google-scholar-doctor-of-philosophy-google-logo-university-of-california-berkeley-google-blue-text-thumbnail.png\"\/><\/a>` : \"\"}\n          ${p.wos ? `<a href=\"${p.wos}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/logo-wos.png\"\/><\/a>` : \"\"}\n          ${p.sci ? `<a href=\"${p.sci}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/images.jpeg\"\/><\/a>` : \"\"}\n          ${p.rg ? `<a href=\"${p.rg}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/5\/5e\/ResearchGate_icon_SVG.svg\"\/><\/a>` : \"\"}\n          ${p.uvigo ? `<a href=\"${p.uvigo}\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/aa1.es\/wp-content\/uploads\/2025\/03\/unnamed.png\"\/><\/a>` : \"\"}\n        <\/div>\n      `;\n\n      \/\/ Mostrar etiqueta solo en b\u00fasqueda\n      if (searchTerm) {\n        card.querySelector('.category-label').style.display = 'block';\n      }\n\n      grid.appendChild(card);\n    });\n  }\n\n  function onCategoryChange(value) {\n    document.getElementById(\"search\").value = \"\";\n    localStorage.removeItem('termoBusca');\n    renderCards(value);\n    document.querySelectorAll(\".tab\").forEach(t => {\n      t.classList.toggle(\"active\", t.innerText === value);\n    });\n  }\n<\/script>\n\n<\/body>\n<\/html>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_theme","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-1969","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"AA1 Grupo de Investigaciones Agrarias y Alimentarias","author_link":"https:\/\/aa1.es\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/aa1.es\/index.php?rest_route=\/wp\/v2\/pages\/1969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aa1.es\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aa1.es\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aa1.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aa1.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1969"}],"version-history":[{"count":155,"href":"https:\/\/aa1.es\/index.php?rest_route=\/wp\/v2\/pages\/1969\/revisions"}],"predecessor-version":[{"id":2232,"href":"https:\/\/aa1.es\/index.php?rest_route=\/wp\/v2\/pages\/1969\/revisions\/2232"}],"wp:attachment":[{"href":"https:\/\/aa1.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}