aboutsummaryrefslogtreecommitdiff
path: root/assets/js/home_page.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/home_page.js')
-rw-r--r--assets/js/home_page.js50
1 files changed, 49 insertions, 1 deletions
diff --git a/assets/js/home_page.js b/assets/js/home_page.js
index 449461d..059444c 100644
--- a/assets/js/home_page.js
+++ b/assets/js/home_page.js
@@ -22,5 +22,53 @@ function main(){
console.log("Error: Click not registered");
}
});
+
+ // TODO: move this function to a general helper class??
+ // for auto-complete
+ var substringMatcher = function(strs) {
+ return function findMatches(q, cb) {
+ var matches, substringRegex;
+ // an array that will be populated with substring matches
+ matches = [];
+
+ // regex used to determine if a string contains the substring `q`
+ substrRegex = new RegExp(q, 'i');
+
+ // iterate through the pool of strings and for any string that
+ // contains the substring `q`, add it to the `matches` array
+ $.each(strs, function(i, str) {
+ if (substrRegex.test(str)) {
+ matches.push(str);
+ }
+ });
+
+ cb(matches);
+ };
+ };
+
+
+ // get array of all courses from controller
+ $.ajax({
+ url: '/auto-complete-courses',
+ type: 'GET',
+ success: function(data){
+ var jsonData = JSON.parse(data);
+ if (jsonData.success) {
+ var states = jsonData.data;
+
+ $('.typeahead').typeahead({
+ hint: true,
+ highlight: true,
+ minLength: 1
+ },
+ {
+ name: 'courseNames',
+ source: substringMatcher(states)
+ });
+ } else { // console log the error mssg
+ console.log(jsonData.data);
+ }
+ }
+ });
}
-$(document).ready(main); \ No newline at end of file
+$(document).ready(main);