prueba con json bd

Directorio de Consultoras en Uruguay

Encuentra las mejores empresas de consultoría en recursos humanos

44
Consultoras
13
Multinacionales
31
Nacionales
0
Marcadas
Tipo:
Redes sociales:
Columnas:
Ordenar:
Mostrando 44 de 44 consultoras
FAQ = Preguntas Frecuentes
Consultora Descripción Redes Sociales Marcar
'; } card.innerHTML = '' + '
' + '' + '
' + '

' + c.nombre + '

' + (c.razonSocial ? '' + c.razonSocial + '' : '') + '
' + '
' + (c.tipo === 'nacional' ? 'Nacional' : 'Multinacional') + '
' + faqHTML + '
' + '
' + c.descripcion + '
' + '' + countryHTML; grid.appendChild(card); }); sortCards(); updateBookmarksUI(); } function getSocialLinksHTML(c) { var socials = [ {key: 'linkedin', icon: 'fab fa-linkedin', class: 'linkedin'}, {key: 'instagram', icon: 'fab fa-instagram', class: 'instagram'}, {key: 'facebook', icon: 'fab fa-facebook', class: 'facebook'}, {key: 'twitter', icon: '𝕏', class: 'x-twitter', isText: true}, {key: 'tiktok', icon: 'fab fa-tiktok', class: 'tiktok'}, {key: 'youtube', icon: 'fab fa-youtube', class: 'youtube'}, {key: 'web', icon: 'fas fa-globe', class: 'website'} ]; var html = ''; socials.forEach(function(social) { var url = c[social.key]; if (url) { html += ''; } else { html += ''; } }); return html; } function updateStats() { var total = CONSULTORAS_DATA.consultoras.length; var multinacionales = CONSULTORAS_DATA.consultoras.filter(function(c) { return c.tipo === 'multinacional'; }).length; var nacionales = CONSULTORAS_DATA.consultoras.filter(function(c) { return c.tipo === 'nacional'; }).length; document.getElementById('totalConsultoras').textContent = total; document.getElementById('totalMultinacionales').textContent = multinacionales; document.getElementById('totalNacionales').textContent = nacionales; document.getElementById('totalMarcadas').textContent = bookmarkedCompanies.length; } function initFiltersToggle() { var toggleBtn = document.getElementById('filtersToggle'); var filtersContent = document.getElementById('filtersContent'); toggleBtn.addEventListener('click', function() { filtersContent.classList.toggle('show'); toggleBtn.classList.toggle('active'); }); } function bindAllEvents() { document.getElementById('lightBtn').addEventListener('click', function() { setTheme('light'); }); document.getElementById('darkBtn').addEventListener('click', function() { setTheme('dark'); }); document.getElementById('lightBtnMobile').addEventListener('click', function() { setTheme('light'); }); document.getElementById('darkBtnMobile').addEventListener('click', function() { setTheme('dark'); }); document.getElementById('searchInput').addEventListener('input', filterCards); document.querySelectorAll('.filter-btn').forEach(function(btn) { btn.addEventListener('click', function() { document.querySelectorAll('.filter-btn').forEach(function(b) { b.classList.remove('active'); }); this.classList.add('active'); currentFilter = this.dataset.filter; filterCards(); }); }); document.querySelectorAll('.social-filter-btn').forEach(function(btn) { btn.addEventListener('click', function() { var social = this.dataset.social; if (this.classList.contains('active')) { this.classList.remove('active'); activeSocialFilters = activeSocialFilters.filter(function(s) { return s !== social; }); } else { this.classList.add('active'); activeSocialFilters.push(social); } filterCards(); }); }); document.querySelectorAll('.sort-btn').forEach(function(btn) { btn.addEventListener('click', function() { document.querySelectorAll('.sort-btn').forEach(function(b) { b.classList.remove('active'); }); this.classList.add('active'); currentSort = this.dataset.sort; sortCards(); if (currentView === 'table') generateTable(); }); }); document.querySelectorAll('.view-btn').forEach(function(btn) { btn.addEventListener('click', function() { document.querySelectorAll('.view-btn').forEach(function(b) { b.classList.remove('active'); }); this.classList.add('active'); currentView = this.dataset.view; if (currentView === 'grid') { document.getElementById('consultoresGrid').style.display = 'grid'; document.getElementById('tableView').classList.remove('active'); document.getElementById('columnsControls').classList.add('show'); } else { document.getElementById('consultoresGrid').style.display = 'none'; document.getElementById('tableView').classList.add('active'); document.getElementById('columnsControls').classList.remove('show'); generateTable(); } }); }); document.querySelectorAll('.column-btn').forEach(function(btn) { btn.addEventListener('click', function() { document.querySelectorAll('.column-btn').forEach(function(b) { b.classList.remove('active'); }); this.classList.add('active'); currentColumns = parseInt(this.dataset.columns); document.getElementById('consultoresGrid').className = 'consultoras-grid columns-' + currentColumns; }); }); bindBookmarkButtons(); } function bindBookmarkButtons() { document.querySelectorAll('.bookmark-btn, .table-bookmark-btn').forEach(function(btn) { btn.addEventListener('click', function() { var company = this.dataset.company; var index = bookmarkedCompanies.indexOf(company); if (index > -1) { bookmarkedCompanies.splice(index, 1); } else { bookmarkedCompanies.push(company); } localStorage.setItem('bookmarks', JSON.stringify(bookmarkedCompanies)); updateBookmarksUI(); updateStats(); if (currentFilter === 'bookmarked') filterCards(); }); }); } function updateBookmarksUI() { document.querySelectorAll('.bookmark-btn, .table-bookmark-btn').forEach(function(btn) { var company = btn.dataset.company; if (bookmarkedCompanies.indexOf(company) > -1) { btn.classList.add('bookmarked'); } else { btn.classList.remove('bookmarked'); } }); } function setTheme(theme) { currentTheme = theme; localStorage.setItem('theme', theme); applyTheme(theme); } function applyTheme(theme) { var lightButtons = [document.getElementById('lightBtn'), document.getElementById('lightBtnMobile')]; var darkButtons = [document.getElementById('darkBtn'), document.getElementById('darkBtnMobile')]; if (theme === 'dark') { wrapper.classList.add('dark-mode'); lightButtons.forEach(function(btn) { if(btn) btn.classList.remove('active'); }); darkButtons.forEach(function(btn) { if(btn) btn.classList.add('active'); }); } else { wrapper.classList.remove('dark-mode'); lightButtons.forEach(function(btn) { if(btn) btn.classList.add('active'); }); darkButtons.forEach(function(btn) { if(btn) btn.classList.remove('active'); }); } } function sortCards() { var grid = document.getElementById('consultoresGrid'); var cards = Array.from(document.querySelectorAll('.consultora-card')); cards.sort(function(a, b) { var nameA = a.querySelector('h3').textContent.trim(); var nameB = b.querySelector('h3').textContent.trim(); return currentSort === 'az' ? nameA.localeCompare(nameB, 'es') : nameB.localeCompare(nameA, 'es'); }); cards.forEach(function(card) { grid.appendChild(card); }); } function filterCards() { var searchTerm = document.getElementById('searchInput').value.toLowerCase(); var cards = document.querySelectorAll('.consultora-card'); var visibleCount = 0; cards.forEach(function(card) { var name = card.dataset.name; var tipo = card.dataset.tipo; var company = card.querySelector('.bookmark-btn').dataset.company; var text = card.textContent.toLowerCase(); var matchesSearch = text.indexOf(searchTerm) > -1; var matchesTypeFilter = true; var matchesSocialFilters = true; if (currentFilter === 'multinacional' || currentFilter === 'nacional') { matchesTypeFilter = tipo === currentFilter; } else if (currentFilter === 'bookmarked') { matchesTypeFilter = bookmarkedCompanies.indexOf(company) > -1; } if (activeSocialFilters.length > 0) { var socialLinks = card.querySelectorAll('.social-link.available'); var availableSocials = Array.from(socialLinks).map(function(link) { if (link.classList.contains('linkedin')) return 'linkedin'; if (link.classList.contains('instagram')) return 'instagram'; if (link.classList.contains('facebook')) return 'facebook'; if (link.classList.contains('x-twitter')) return 'x-twitter'; if (link.classList.contains('tiktok')) return 'tiktok'; if (link.classList.contains('youtube')) return 'youtube'; if (link.classList.contains('website')) return 'website'; return null; }).filter(function(s) { return s !== null; }); matchesSocialFilters = activeSocialFilters.every(function(filter) { return availableSocials.indexOf(filter) > -1; }); } if (matchesSearch && matchesTypeFilter && matchesSocialFilters) { card.style.display = 'block'; visibleCount++; } else { card.style.display = 'none'; } }); document.getElementById('resultsCount').textContent = 'Mostrando ' + visibleCount + ' de ' + CONSULTORAS_DATA.consultoras.length + ' consultoras'; if (currentView === 'table') generateTable(); } function generateTable() { var tbody = document.getElementById('tableBody'); var cards = Array.from(document.querySelectorAll('.consultora-card')); tbody.innerHTML = ''; var visibleCards = cards.filter(function(card) { return card.style.display !== 'none'; }); visibleCards.sort(function(a, b) { var nameA = a.querySelector('h3').textContent.trim(); var nameB = b.querySelector('h3').textContent.trim(); return currentSort === 'az' ? nameA.localeCompare(nameB, 'es') : nameB.localeCompare(nameA, 'es'); }); visibleCards.forEach(function(card) { var name = card.querySelector('h3').textContent; var logo = card.querySelector('.logo').src; var tipo = card.querySelector('.tipo').textContent; var desc = card.querySelector('.description').textContent; var socials = card.querySelector('.social-links').innerHTML; var company = card.querySelector('.bookmark-btn').dataset.company; var isBookmarked = bookmarkedCompanies.indexOf(company) > -1; var razonSocialElem = card.querySelector('.razon-social'); var razonSocial = razonSocialElem ? razonSocialElem.textContent : ''; var faqLink = card.querySelector('.faq-badge'); var faqBadgeHtml = faqLink ? ' FAQ' : ' FAQ'; var row = document.createElement('tr'); row.innerHTML = '
' + name + '
' + tipo + '' + faqBadgeHtml + '
' + '' + desc + (razonSocial ? '
' + razonSocial + '
' : '') + '' + '' + ''; tbody.appendChild(row); }); bindBookmarkButtons(); } })();

Directorio de Consultoras

Encuentra y filtra consultoras de RRHH en Uruguay.

Cargando…
hola pelotudo

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.