summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatthewsotoudeh <matthewsot@outlook.com>2015-07-18 20:54:00 -0700
committermatthewsotoudeh <matthewsot@outlook.com>2015-07-18 20:54:00 -0700
commit0f5e9c2e2fa3af9349df132ea9dc80e0b873e3ed (patch)
tree58c63b2382866617ded28389f09e20ec7f3b7215
parent68d8b9135ad6319c2d214b011bf241f437c22b26 (diff)
small changes
-rw-r--r--Classfinder/Classfinder/Controllers/HomeController.cs27
-rw-r--r--Classfinder/Classfinder/Views/Shared/_SchedulePicker.cshtml38
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>
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback