diff --git a/code/css/popup.css b/code/css/popup.css
index f67c149..76e5c47 100644
--- a/code/css/popup.css
+++ b/code/css/popup.css
@@ -18,6 +18,7 @@ html {
padding-bottom: 15%;
margin: 0 auto;
}
+
.footer {
position: relative;
@@ -29,6 +30,11 @@ html {
margin-top: 2%;
}
+ .favListItem {
+ display: inline-block;
+ width: 33%;
+ }
+
li {
padding-left: 40px;
}
diff --git a/code/js/popup.js b/code/js/popup.js
index 37ceb71..aa224ef 100644
--- a/code/js/popup.js
+++ b/code/js/popup.js
@@ -6,7 +6,10 @@ obj = {"bit_manipulation/src/count_set_bits": ["countSetBits.js", "count_set_bit
//Tags for easy search
var tags = ['sort','search','math','string','crypto','data structures','graph','greedy','operating systems','artificial intelligence'];
- var bricklayer ;
+var favs = [];
+var filenames = [];
+var bricklayer ;
+
function AddNewTags (tagName)
{
/*Function can be used and improved for adding new Tags in the tags array
@@ -14,34 +17,62 @@ function AddNewTags (tagName)
tags.push(tagName);
}
+function updateFavs(x, filename) {
+ x.classList.toggle("checked");
+
+ if (chrome && chrome.storage) {
+ chrome.storage.sync.get({favs: []}, function(items) {
+ if (!chrome.runtime.error) {
+ favs = items.favs;
+
+ if(!favs.includes(filename)) {
+ favs.push(filename);
+ } else {
+ var index = favs.indexOf(filename);
+ if (index > -1) {
+ favs.splice(index, 1);
+ }
+ }
+
+ chrome.storage.sync.set({ favs : favs }, function() {
+ if (chrome.runtime.error) {
+ console.log("Runtime error.");
+ }
+ });
+
+ }
+ });
+ }
+}
$(function() {
$('#search').change(function() {
$('.bricklayer').empty();
$('#error-message').empty();
- $('#no_of_results').empty();
- dumpBookmarks($('#search').val());
-
-
+ $('#no_of_results').empty();
+ dumpBookmarks($('#search').val());
});
});
-$(function(){
+$(function() {
$(document).on("click", ".button-pop", function(){
- $('.bricklayer').empty();
+ $('#front').show();
+ $('#no_of_results').show();
+ $('.bricklayer').empty();
$('#error-message').empty();
$('#no_of_results').empty();
dumpBookmarks($(this).val());
-
-
});
});
+var current_fname;
function dumpBookmarks(query)
{
$('#search').val(query);
$("#front").hide();
- bricklayer = new Bricklayer(document.querySelector('.bricklayer'));
+ $("#favorites").hide();
+ $('.bricklayer').show();
+ bricklayer = new Bricklayer(document.querySelector('.bricklayer'));
var found = 0;
@@ -51,7 +82,6 @@ function dumpBookmarks(query)
for(var pos in single_query)
{
-
current_query = single_query[pos];
if(current_query != "")
{
@@ -61,70 +91,99 @@ function dumpBookmarks(query)
}
if(found_word == 1)
- for (var key in obj)
+
+ for (var key in obj)
+ {
+ var current_found = 0;
+
+ for(var pos in single_query)
{
- var current_found = 0;
+ current_query = single_query[pos];
+ if(current_query == "")
+ continue;
+
+ if ( current_found == 0 && ((String(key).toLowerCase()).indexOf(current_query.toLowerCase()) != -1))
+ {
+ found = 1;
+ current_found = 1;
+
+ let str = key;
+ let inside_text = '';
+ str = str.split("/").pop();
+ str = str.split('_').join(' ');
+ str = str.replace(/\w\S*/g, function(txt) {
+ return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
+ });
+
+ if(obj[key].length ==1 && ((String(obj[key]).toLowerCase()).indexOf("README.md".toLowerCase()) != -1))
+ continue;
+ else
+ {
+ if(chrome && chrome.storage) {
+ chrome.storage.sync.get({favs: []}, function(items) {
+ if (!chrome.runtime.error) {
+ favs = items.favs;
+ }
+ });
+ }
+ let sub_result_number = 1;
+ total++;
+
+ for (var dd in obj[key])
+ {
+ var fname= key+"/"+obj[key][dd];
+
+ temp = fname;
+ temp = temp.replace(/[-\/\\^$*+?.()|[\]{}]/g,'');
+ temp = temp.replace(/_/g, '');
+
+
+ if(((String(obj[key][dd]).toLowerCase()).indexOf("README.md".toLowerCase()) != -1)){}
+
+ else
+ {
+
+ if(!favs.includes(fname)) {
+ inside_text = inside_text + ""+sub_result_number+". "+obj[key][dd]+""+"
";
+ } else {
+ inside_text = inside_text + ""+sub_result_number+". "+obj[key][dd]+""+"
";
+ }
+ sub_result_number++;
+ }
+
+ var send = '#myStar'+temp;
+ $(document).on("click", send , function() {
+ var filename_pos = '#myStar'+this.id.substr(6, this.id.length);
+ updateFavs(this, filenames[filename_pos]);
+ });
+
+
+ }
- for(var pos in single_query)
- {
+ //Individual Cards
+ var card = document.createElement('div');
+ card.setAttribute("class", "card");
+ card.setAttribute("style","margin-bottom: 8px");
+
+ var card_title = document.createElement('div');
+ card_title.setAttribute("class","card-title");
+ card_title.innerHTML = str;
- current_query = single_query[pos];
- if(current_query == "")
- continue;
+ var card_body = document.createElement('div');
+ card_body.setAttribute("class","card-body");
+ card_body.innerHTML = inside_text;
- if ( current_found == 0 && ((String(key).toLowerCase()).indexOf(current_query.toLowerCase()) != -1))
- {
+ card.appendChild(card_title);
+ card.appendChild(card_body);
- found = 1;
- current_found = 1;
-
- let str = key;
- let inside_text = '';
- str = str.split("/").pop();
- str = str.split('_').join(' ');
- str = str.replace(/\w\S*/g, function(txt) {
- return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
- });
-
- if(obj[key].length ==1 && ((String(obj[key]).toLowerCase()).indexOf("README.md".toLowerCase()) != -1))
- continue;
- else
- {
- let sub_result_number = 1;
- total++;
- for (var dd in obj[key])
- {
- if(((String(obj[key][dd]).toLowerCase()).indexOf("README.md".toLowerCase()) != -1)){}
-
- else{
- inside_text = inside_text + ""+sub_result_number+". "+obj[key][dd]+"
";
- sub_result_number++;
- }
- }
- //Individual Cards
- var card = document.createElement('div');
- card.setAttribute("class", "card");
- card.setAttribute("style","margin-bottom: 8px");
-
- var card_title = document.createElement('div');
- card_title.setAttribute("class","card-title");
- card_title.innerHTML = str;
-
- var card_body = document.createElement('div');
- card_body.setAttribute("class","card-body");
- card_body.innerHTML = inside_text;
-
- card.appendChild(card_title);
- card.appendChild(card_body);
-
- //Adding Card to Brick Layer
- bricklayer.append(card);
-
- }
+ //Adding Card to Brick Layer
+ bricklayer.append(card);
}
}
- }
+ }
+ }
+
if(total>1)
res="results";
@@ -133,6 +192,7 @@ function dumpBookmarks(query)
if(total!=0)
$('#no_of_results').append("
We could not find anything interesting for your query. Try something simple like \"sort\".
Help us by informing us about your query at team@opengenus.org.
We have something to make you smile:
No favorites yet!
Click on the star icon beside your favorite codes to access them easily.