diff options
author | matthewsotoudeh <matthewsot@outlook.com> | 2015-07-18 20:54:00 -0700 |
---|---|---|
committer | matthewsotoudeh <matthewsot@outlook.com> | 2015-07-18 20:54:00 -0700 |
commit | 0f5e9c2e2fa3af9349df132ea9dc80e0b873e3ed (patch) | |
tree | 58c63b2382866617ded28389f09e20ec7f3b7215 | |
parent | 68d8b9135ad6319c2d214b011bf241f437c22b26 (diff) |
small changes
-rw-r--r-- | Classfinder/Classfinder/Controllers/HomeController.cs | 27 | ||||
-rw-r--r-- | Classfinder/Classfinder/Views/Shared/_SchedulePicker.cshtml | 38 |
2 files changed, 49 insertions, 16 deletions
diff --git a/Classfinder/Classfinder/Controllers/HomeController.cs b/Classfinder/Classfinder/Controllers/HomeController.cs index 660258d..e041265 100644 --- a/Classfinder/Classfinder/Controllers/HomeController.cs +++ b/Classfinder/Classfinder/Controllers/HomeController.cs @@ -1,7 +1,5 @@ using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Linq; -using System.Web; using System.Web.Mvc; using Classfinder.Models; using Microsoft.AspNet.Identity; @@ -13,13 +11,28 @@ namespace Classfinder.Controllers { private CfDb db = new CfDb(); - private ICollection<Class> CheckAndFillWithNoClass(ICollection<Class> schedule) + private ICollection<Class> CheckAndFillWithNoClass(ICollection<Class> schedule, string school) { for (var i = 1; i <= 7; i++) { - if (!schedule.Any(@class => @class.Period == i)) + if (schedule.All(@class => @class.Period != i)) { - schedule.Add(db.Classes.First(@class => @class.Name == "No Class" && @class.Period == i)); + var noClass = + db.Classes.FirstOrDefault( + @class => @class.Name == "No Class" && @class.Period == i && @class.School == school); + + if (noClass == null) + { + noClass = new Class() + { + Name = "No Class", + Period = i, + School = school + }; + db.Classes.Add(noClass); + } + + schedule.Add(noClass); } } db.SaveChanges(); @@ -56,8 +69,8 @@ namespace Classfinder.Controllers ViewBag.UserName = loggedInUser.UserName; } - ViewBag.FirstSemester = CheckAndFillWithNoClass(user.FirstSemester).OrderBy(@class => @class.Period); - ViewBag.SecondSemester = CheckAndFillWithNoClass(user.SecondSemester).OrderBy(@class => @class.Period); + ViewBag.FirstSemester = CheckAndFillWithNoClass(user.FirstSemester, user.School).OrderBy(@class => @class.Period); + ViewBag.SecondSemester = CheckAndFillWithNoClass(user.SecondSemester, user.School).OrderBy(@class => @class.Period); return View(); } diff --git a/Classfinder/Classfinder/Views/Shared/_SchedulePicker.cshtml b/Classfinder/Classfinder/Views/Shared/_SchedulePicker.cshtml index fceb857..ce44b8b 100644 --- a/Classfinder/Classfinder/Views/Shared/_SchedulePicker.cshtml +++ b/Classfinder/Classfinder/Views/Shared/_SchedulePicker.cshtml @@ -88,7 +88,7 @@ }); function addClass(className) { - if (className == "") { + if (className === "") { alert("Please enter a class"); } else { @@ -99,6 +99,8 @@ currClassId = data.id; $("#selected-class").text(className); $("#class-input").val(""); + + setSelectedResult(className, data.id); } }); } @@ -111,6 +113,12 @@ addClass(getClassName()); }); + $("#subject-input").keydown(function(e) { + if (e.which === 13) { + $("#add-class-btn").click(); + } + }); + $("#no-class-btn").click(function() { addClass("No Class"); $(".selected-result").removeClass("selected-result"); @@ -124,25 +132,37 @@ <div id="results"></div> <script type="text/javascript"> + function setSelectedResult(name, id) { + if (name === "No Class") return; + + $(".selected-result").removeClass("selected-result"); + + var found = $("#results div[data-class-id=\"" + id + "\"]"); + if (found.length > 0) { + found.addClass("selected-result"); + $("#results").prepend(found); + } else { + $("#results").prepend('<div data-class-id="' + id + '" class="result selected-result transparent">' + name + "</div>"); + } + } + function fillTableWithClasses(classes) { $("#results").html(""); for (var i = 0; i < classes.length; i++) { var clss = classes[i]; if (clss.id == currClassId) { - $("#results").append('<div data-class-id="' + clss.id + '" class="selected-result transparent">' + clss.name + "</div>"); + $("#results").prepend('<div data-class-id="' + clss.id + '" class="result selected-result transparent">' + clss.name + "</div>"); } else { - $("#results").append('<div data-class-id="' + clss.id + '" class="transparent">' + clss.name + "</div>"); + $("#results").append('<div data-class-id="' + clss.id + '" class="result transparent">' + clss.name + "</div>"); } } - - $("#results").children("div").click(function () { - addClass($(this).text()); - $(".selected-result").removeClass("selected-result"); - $(this).addClass("selected-result"); - }); } + $("#results").on("click", ".result", function () { + addClass($(this).text()); + }); + $("#teacher-input").trigger("keyup"); </script> </div> |