Skip to content

Instantly share code, notes, and snippets.

@briedis
Last active June 11, 2018 08:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save briedis/2bc4744445c7fc8b730a6de9f49cb757 to your computer and use it in GitHub Desktop.
Save briedis/2bc4744445c7fc8b730a6de9f49cb757 to your computer and use it in GitHub Desktop.
Breezy All-Company Wide Search
javascript:(function () {
var search = prompt('Ko meklēt?');
if (!search) {
return;
}
var parsedCompanies = {};
var results = [];
var pendingRequests = 0;
var outputResults = function () {
var msg = 'Rezultāti meklējot "' + search + "\"\n\n";
for (var i in results) {
var r = results[i];
msg += '<b>' + r.Name + '</b> [' + r.Email + "] (" + r.Company + ' @ ' + r.Position + ")\n";
}
var pre = $('<pre/>');
pre.html(msg);
pre.css({
border: '1px solid black',
background: 'white',
width: '1100px',
padding: '15px',
position: 'absolute',
top: '5%',
left: '50%',
marginLeft: '-550px',
zIndex: 5000,
fontFamily: 'monospace'
});
pre.prepend("<a href='javascript:' onclick='$(this).closest(\"pre\").remove();' class='button blue'>Aizvērt</a><br><br>");
$('body').append(pre);
};
var onCompanyResultLoaded = function (companyId, result) {
pendingRequests -= 1;
for (var i in result) {
var row = result[i];
results.push({
"Company": parsedCompanies[companyId],
"Name": row.name,
"Email": row.email_address,
"Position": row.position.name
});
}
if (!pendingRequests) {
outputResults();
}
};
var performSearch = function () {
for (var i in parsedCompanies) {
pendingRequests += 1;
$.get(
'https://breezy.hr/api/company/' + i + '/search?q=' + encodeURIComponent(search),
onCompanyResultLoaded.bind(this, i)
);
}
};
var companiesLoaded = function (result) {
for (var i in result) {
var company = result[i].company;
parsedCompanies[company._id] = company.name;
}
performSearch();
};
$.get('https://breezy.hr/api/user/companies/meta', companiesLoaded);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment