From 98c9cbc6258f699fc944f025230c35faf8575bc2 Mon Sep 17 00:00:00 2001 From: kdam0 Date: Mon, 30 Jan 2017 00:02:09 -0500 Subject: feat. added auto fill for search bar. --- assets/js/home_page.js | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'assets/js/home_page.js') diff --git a/assets/js/home_page.js b/assets/js/home_page.js index 449461d..b04832c 100644 --- a/assets/js/home_page.js +++ b/assets/js/home_page.js @@ -22,5 +22,47 @@ function main(){ console.log("Error: Click not registered"); } }); + + + // 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 controllers + $.ajax({ + url: '/auto-complete-courses', + type: 'GET', + success: function(data){ + // console.log(JSON.parse(data)); + var states = JSON.parse(data); + + $('.typeahead').typeahead({ + hint: true, + highlight: true, + minLength: 1 + }, + { + name: 'courseNames', + source: substringMatcher(states) + }); + } + }); } -$(document).ready(main); \ No newline at end of file +$(document).ready(main); -- cgit v1.2.3 From e78238959da75e4574bb4bbd4dc1c4433d02785b Mon Sep 17 00:00:00 2001 From: kdam0 Date: Wed, 1 Feb 2017 20:55:12 -0500 Subject: better error handling and clean up --- assets/js/home_page.js | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) (limited to 'assets/js/home_page.js') diff --git a/assets/js/home_page.js b/assets/js/home_page.js index b04832c..059444c 100644 --- a/assets/js/home_page.js +++ b/assets/js/home_page.js @@ -23,7 +23,7 @@ function main(){ } }); - + // TODO: move this function to a general helper class?? // for auto-complete var substringMatcher = function(strs) { return function findMatches(q, cb) { @@ -45,23 +45,29 @@ function main(){ cb(matches); }; }; - // get array of all courses from controllers + + + // get array of all courses from controller $.ajax({ url: '/auto-complete-courses', type: 'GET', success: function(data){ - // console.log(JSON.parse(data)); - var states = JSON.parse(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) - }); + $('.typeahead').typeahead({ + hint: true, + highlight: true, + minLength: 1 + }, + { + name: 'courseNames', + source: substringMatcher(states) + }); + } else { // console log the error mssg + console.log(jsonData.data); + } } }); } -- cgit v1.2.3 From c06a7af55e7a40abc6eb12fff56851c6512e32c7 Mon Sep 17 00:00:00 2001 From: kdam0 Date: Fri, 14 Apr 2017 13:36:32 -0400 Subject: feat / updated the css and js for the search bar input --- assets/js/home_page.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'assets/js/home_page.js') diff --git a/assets/js/home_page.js b/assets/js/home_page.js index 059444c..4c9151a 100644 --- a/assets/js/home_page.js +++ b/assets/js/home_page.js @@ -9,13 +9,21 @@ function main(){ switch(type) { case "Courses": - $("#search-field").attr("action","/search/courses"); - $("#user-input").attr("placeholder", "Enter coure code"); + // hide the input for user search + $("#user-input-users").css("display", "none"); + // show the input for courses search + $("#custom-autocomplete").css("display", "block"); + + $("#search-field").attr("action", "/search/courses"); $("#drop-down-value").text("Courses"); break; case "Users": - $("#search-field").attr("action","/search/users"); - $("#user-input").attr("placeholder", "Enter user info"); + // hide the input for courses search + $("#custom-autocomplete").css("display", "none"); + // show the input for users search + $("#user-input-users").css("display", "block"); + + $("#search-field").attr("action", "/search/users"); $("#drop-down-value").text("Users"); break; default: -- cgit v1.2.3 From 60a53ac331e33cab3173a6803dcf11de3ff47ae6 Mon Sep 17 00:00:00 2001 From: kdam0 Date: Fri, 14 Apr 2017 22:26:18 -0400 Subject: fixed form submt on home page --- assets/js/home_page.js | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'assets/js/home_page.js') diff --git a/assets/js/home_page.js b/assets/js/home_page.js index 4c9151a..1bc5ccf 100644 --- a/assets/js/home_page.js +++ b/assets/js/home_page.js @@ -1,4 +1,14 @@ function main(){ + $("#go-button").on('click', function(e) { + e.preventDefault(); + if ($("#drop-down-value").text() == "Courses") { + // $("#search-field").attr("action", "search/courses"); + window.location += 'search/courses?search=' + $("#user-input-course").val(); + } else { + // $("#search-field").attr("action", "search/users"); + window.location += 'search/users?search=' + $("#user-input-users").val(); + } + }); // Search bar drop down scripting (some of it is shared with nav panel // in script.js but this code in this file is exclusive to search bar -- cgit v1.2.3