diff --git a/ResoursesManager/ResoursesManager/App_Data/ResourceImages/b4dcrlcs.jpeg b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/b4dcrlcs.jpeg deleted file mode 100644 index 9aa2be2..0000000 Binary files a/ResoursesManager/ResoursesManager/App_Data/ResourceImages/b4dcrlcs.jpeg and /dev/null differ diff --git a/ResoursesManager/ResoursesManager/App_Data/ResourceImages/r3pwxdm0.jpeg b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/bluetooth.jpg similarity index 100% rename from ResoursesManager/ResoursesManager/App_Data/ResourceImages/r3pwxdm0.jpeg rename to ResoursesManager/ResoursesManager/App_Data/ResourceImages/bluetooth.jpg diff --git a/ResoursesManager/ResoursesManager/App_Data/ResourceImages/udebpkxl.png b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/laptop.jpg similarity index 100% rename from ResoursesManager/ResoursesManager/App_Data/ResourceImages/udebpkxl.png rename to ResoursesManager/ResoursesManager/App_Data/ResourceImages/laptop.jpg diff --git a/ResoursesManager/ResoursesManager/App_Data/ResourceImages/dfxabb0x.jpeg b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/mobile.jpg similarity index 100% rename from ResoursesManager/ResoursesManager/App_Data/ResourceImages/dfxabb0x.jpeg rename to ResoursesManager/ResoursesManager/App_Data/ResourceImages/mobile.jpg diff --git a/ResoursesManager/ResoursesManager/App_Data/ResourceImages/nsbf4oyr.jpeg b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/mt.jpg similarity index 100% rename from ResoursesManager/ResoursesManager/App_Data/ResourceImages/nsbf4oyr.jpeg rename to ResoursesManager/ResoursesManager/App_Data/ResourceImages/mt.jpg diff --git a/ResoursesManager/ResoursesManager/App_Data/ResourceImages/phone.jpg b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/phone.jpg new file mode 100644 index 0000000..0a3dbc7 Binary files /dev/null and b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/phone.jpg differ diff --git a/ResoursesManager/ResoursesManager/App_Data/ResourceImages/projector.jpg b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/projector.jpg new file mode 100644 index 0000000..2917ccf Binary files /dev/null and b/ResoursesManager/ResoursesManager/App_Data/ResourceImages/projector.jpg differ diff --git a/ResoursesManager/ResoursesManager/Controllers/AccountController.cs b/ResoursesManager/ResoursesManager/Controllers/AccountController.cs index ea68631..5730db6 100644 --- a/ResoursesManager/ResoursesManager/Controllers/AccountController.cs +++ b/ResoursesManager/ResoursesManager/Controllers/AccountController.cs @@ -17,6 +17,7 @@ namespace ResoursesManager.Controllers { private ApplicationSignInManager _signInManager; private ApplicationUserManager _userManager; + private ApplicationDbContext db = new ApplicationDbContext(); public AccountController() { @@ -79,6 +80,13 @@ namespace ResoursesManager.Controllers switch (result) { case SignInStatus.Success: + db.Statistic.Add(new StatisticModel() + { + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.Login, + DateTime = DateTime.Now + }); + db.SaveChanges(); return RedirectToLocal(returnUrl); case SignInStatus.LockedOut: return View("Lockout"); @@ -158,7 +166,13 @@ namespace ResoursesManager.Controllers if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false); - + db.Statistic.Add(new StatisticModel() + { + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.Register, + DateTime = DateTime.Now + }); + db.SaveChanges(); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); @@ -393,6 +407,13 @@ namespace ResoursesManager.Controllers [ValidateAntiForgeryToken] public ActionResult LogOff() { + db.Statistic.Add(new StatisticModel() + { + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.Logout, + DateTime = DateTime.Now + }); + db.SaveChanges(); AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie); return RedirectToAction("Index", "Home"); } diff --git a/ResoursesManager/ResoursesManager/Controllers/ReservationsController.cs b/ResoursesManager/ResoursesManager/Controllers/ReservationsController.cs index b052408..eb26eeb 100644 --- a/ResoursesManager/ResoursesManager/Controllers/ReservationsController.cs +++ b/ResoursesManager/ResoursesManager/Controllers/ReservationsController.cs @@ -144,8 +144,8 @@ namespace ResoursesManager.Controllers }; if (resourceId != null) { - model.Reservation.Begining = DateTime.Now; - model.Reservation.End = DateTime.Now.AddHours(1); + model.Reservation.Begining = DateTime.Now.AddHours(1); + model.Reservation.End = DateTime.Now.AddHours(2); model.Reservation.ResourceId = (int)resourceId; model.Reservation.Resource = db.Resources.Find(resourceId); } @@ -211,6 +211,14 @@ namespace ResoursesManager.Controllers } db.Reservations.Add(model); + db.Statistic.Add(new StatisticModel() + { + ReservationId = model.Id, + ResourceId = model.ResourceId, + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.Reserv, + DateTime = DateTime.Now + }); db.SaveChanges(); log.Info("Új Foglalás: " + model.ToString()); @@ -310,7 +318,15 @@ namespace ResoursesManager.Controllers var r = db.Reservations.First(f => f.Id == reservation.Id); r.Begining = reservation.Begining; r.End = reservation.End; - + + db.Statistic.Add(new StatisticModel() + { + ReservationId = r.Id, + ResourceId = r.ResourceId, + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.ReservartionModified, + DateTime = DateTime.Now + }); db.SaveChanges(); log.Info("Új foglalás: " + r.ToString()); @@ -377,6 +393,14 @@ namespace ResoursesManager.Controllers NotificationHelper.Send(users, "Foglalás törlés", message, reservation.Resource.ImagePath, null); db.Reservations.Remove(reservation); + db.Statistic.Add(new StatisticModel() + { + ReservationId = reservation.Id, + ResourceId = reservation.ResourceId, + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.ReservationDelete, + DateTime = DateTime.Now + }); db.SaveChanges(); log.Info("Foglalás törölve id: " + id); } diff --git a/ResoursesManager/ResoursesManager/Controllers/ResourcesController.cs b/ResoursesManager/ResoursesManager/Controllers/ResourcesController.cs index ab610dd..14acf62 100644 --- a/ResoursesManager/ResoursesManager/Controllers/ResourcesController.cs +++ b/ResoursesManager/ResoursesManager/Controllers/ResourcesController.cs @@ -153,6 +153,13 @@ namespace ResoursesManager.Controllers { resource.Users = db.Users.ToList(); db.Resources.Add(pictureUploadTo(resource)); + db.Statistic.Add(new StatisticModel() + { + ResourceId = resource.Id, + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.ResourceCreate, + DateTime = DateTime.Now + }); db.SaveChanges(); } catch (Exception e) @@ -249,6 +256,13 @@ namespace ResoursesManager.Controllers model.TimeLimit = resource.TimeLimit; db.Entry(model).State = EntityState.Modified; + db.Statistic.Add(new StatisticModel() + { + ResourceId = resource.Id, + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.ResourceModified, + DateTime = DateTime.Now + }); db.SaveChanges(); //Értesítés küldés @@ -302,6 +316,13 @@ namespace ResoursesManager.Controllers NotificationHelper.Send(users, "Erőforrás törlés", message, null, null); db.Resources.Remove(resource); + db.Statistic.Add(new StatisticModel() + { + ResourceId = resource.Id, + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.ResourceDelete, + DateTime = DateTime.Now + }); db.SaveChanges(); pictureDelete(resource.ImagePath); } diff --git a/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs b/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs new file mode 100644 index 0000000..5353a6d --- /dev/null +++ b/ResoursesManager/ResoursesManager/Controllers/StatisticsController.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Linq; +using System.Net; +using System.Web; +using System.Web.Mvc; +using ResoursesManager.Models; + +namespace ResoursesManager.Controllers +{ + public class StatisticsController : Controller + { + private ApplicationDbContext db = new ApplicationDbContext(); + + // GET: Statistics + public ActionResult Index() + { + return View(db.Statistic.ToList()); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + } +} diff --git a/ResoursesManager/ResoursesManager/Controllers/SubscribeController.cs b/ResoursesManager/ResoursesManager/Controllers/SubscribeController.cs index ef7c596..88d00c1 100644 --- a/ResoursesManager/ResoursesManager/Controllers/SubscribeController.cs +++ b/ResoursesManager/ResoursesManager/Controllers/SubscribeController.cs @@ -32,6 +32,13 @@ namespace ResoursesManager.Controllers var user = db.Users.Find(User.Identity.GetUserId()); db.Resources.Find(resourceId).Users.Add(user); + db.Statistic.Add(new StatisticModel() + { + ResourceId = (int)resourceId, + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.Subscribe, + DateTime = DateTime.Now + }); db.SaveChanges(); } catch (Exception e) @@ -52,6 +59,12 @@ namespace ResoursesManager.Controllers { item.Users.Remove(user); } + db.Statistic.Add(new StatisticModel() + { + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.SubscribeAll, + DateTime = DateTime.Now + }); db.SaveChanges(); } catch (Exception e) @@ -71,6 +84,12 @@ namespace ResoursesManager.Controllers { item.Users.Add(user); } + db.Statistic.Add(new StatisticModel() + { + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.UnsubscirbeAll, + DateTime = DateTime.Now + }); db.SaveChanges(); } catch (Exception e) @@ -92,6 +111,13 @@ namespace ResoursesManager.Controllers } var user = db.Users.Find(User.Identity.GetUserId()); db.Resources.Find(resourceId).Users.Remove(user); + db.Statistic.Add(new StatisticModel() + { + ResourceId = (int)resourceId, + UserId = User.Identity.GetUserId(), + StatisticType = StatisticType.Unsubscirbe, + DateTime = DateTime.Now + }); db.SaveChanges(); } catch (Exception e) diff --git a/ResoursesManager/ResoursesManager/Helpers/NotificationHelper.cs b/ResoursesManager/ResoursesManager/Helpers/NotificationHelper.cs index 308b817..39306fa 100644 --- a/ResoursesManager/ResoursesManager/Helpers/NotificationHelper.cs +++ b/ResoursesManager/ResoursesManager/Helpers/NotificationHelper.cs @@ -59,13 +59,14 @@ namespace ResoursesManager.Helpers db.Notifications.Add(notify); } db.SaveChanges(); + //todo: null exeptionre fut + var id = db.Notifications.OrderByDescending(k => k.CreateDate).FirstOrDefault(k => k.User == HttpContext.Current.User.Identity.Name).Id; + GlobalHost.ConnectionManager.GetHubContext().Clients.Users(users).send(title, message, img, url, id); } catch (Exception e) { logger.Error("Save notification message", e); } - var id = db.Notifications.OrderByDescending(k => k.CreateDate).FirstOrDefault(k => k.User == HttpContext.Current.User.Identity.Name).Id; - GlobalHost.ConnectionManager.GetHubContext().Clients.Users(users).send(title, message, img, url, id); } } } diff --git a/ResoursesManager/ResoursesManager/Models/IdentityModels.cs b/ResoursesManager/ResoursesManager/Models/IdentityModels.cs index 505df24..c8cf3ee 100644 --- a/ResoursesManager/ResoursesManager/Models/IdentityModels.cs +++ b/ResoursesManager/ResoursesManager/Models/IdentityModels.cs @@ -38,6 +38,7 @@ namespace ResoursesManager.Models public DbSet Reservations { get; set; } public DbSet Resources { get; set; } public DbSet Notifications { get; set; } + public DbSet Statistic { get; set; } public static ApplicationDbContext Create() { @@ -60,12 +61,32 @@ namespace ResoursesManager.Models } } - - - public class MyDbInitializer : DropCreateDatabaseIfModelChanges + + public class MyDbInitializer : CreateDatabaseIfNotExists { protected override void Seed(ApplicationDbContext context) { + List defaults = new List(); + + defaults.Add(new Resource() { Name = "Kihangosító", AssetTag = "ASDF654", Description = "A kedvenc kihangosítónk.", TimeLimit = 1, ImagePath = "~/App_Data/ResourceImages/bluetooth.jpg" }); + defaults.Add(new Resource() { Name = "Laptop", AssetTag = "GFDS5412", Description = "Ez egy szép piros laptop", TimeLimit = 24, ImagePath= "~/App_Data/ResourceImages/laptop.jpg" }); + defaults.Add(new Resource() { Name = "Piros Telefon", AssetTag = "ASDHGD5423", Description = "Ez a vészhívó telefon", ImagePath = "~/App_Data/ResourceImages/phone.jpg" }); + defaults.Add(new Resource() { Name = "Projektor", AssetTag = "BD435", Description = "A fekete projektor", TimeLimit = 4, ImagePath = "~/App_Data/ResourceImages/projector.jpg" }); + defaults.Add(new Resource() { Name = "Tárgyaló", AssetTag = "BDFS4353", Description = "A céges tárgyaló", TimeLimit = 12, ImagePath = "~/App_Data/ResourceImages/mt.jpg" }); + defaults.Add(new Resource() { Name = "Asus Laptop", AssetTag = "FSDAFAS423", Description = "Ez egy szép zöld laptop", TimeLimit = 72, ImagePath = "~/App_Data/ResourceImages/laptop.jpg" }); + defaults.Add(new Resource() { Name = "Lenovo Mobil", AssetTag = "FAS324", Description = "Ez egy mobil", ImagePath = "~/App_Data/ResourceImages/mobile.jpg" }); + defaults.Add(new Resource() { Name = "Benq Projektor", AssetTag = "BD434355", Description = "A szürke projektor", ImagePath = "~/App_Data/ResourceImages/projector.jpg" }); + defaults.Add(new Resource() { Name = "Dell Laptop", AssetTag = "HFG435", Description = "Ez egy szép laptop", ImagePath = "~/App_Data/ResourceImages/laptop.jpg" }); + defaults.Add(new Resource() { Name = "IPhone", AssetTag = "GDSG3453", Description = "Ez egy iPhone", ImagePath = "~/App_Data/ResourceImages/mobile.jpg" }); + defaults.Add(new Resource() { Name = "Epson Projektor", AssetTag = "BFR435", Description = "Az Epson projektor", TimeLimit = 8, ImagePath = "~/App_Data/ResourceImages/projector.jpg" }); + defaults.Add(new Resource() { Name = "Egyéb", AssetTag = "HFG345", Description = "Ez valami egyéb gyári képpel.", ImagePath = "~/App_Data/ResourceImages/DefaultResource.png" }); + + foreach (var item in defaults) + { + context.Resources.Add(item); + } + + base.Seed(context); } } } \ No newline at end of file diff --git a/ResoursesManager/ResoursesManager/Models/StatisticModel.cs b/ResoursesManager/ResoursesManager/Models/StatisticModel.cs new file mode 100644 index 0000000..3d311f3 --- /dev/null +++ b/ResoursesManager/ResoursesManager/Models/StatisticModel.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace ResoursesManager.Models +{ + public enum StatisticType + { + ResourceCreate, ResourceModified, ResourceDelete, Reserv, ReservartionModified, ReservationDelete, Subscribe, Unsubscirbe, SubscribeAll, UnsubscirbeAll, Register, Login, Logout + } + public class StatisticModel + { + public int Id { get; set; } + public string UserId { get; set; } + public int ResourceId { get; set; } + public int ReservationId { get; set; } + public StatisticType StatisticType { get; set; } + public DateTime DateTime { get; set; } + } +} \ No newline at end of file diff --git a/ResoursesManager/ResoursesManager/ResoursesManager.csproj b/ResoursesManager/ResoursesManager/ResoursesManager.csproj index 95f0632..53bba17 100644 --- a/ResoursesManager/ResoursesManager/ResoursesManager.csproj +++ b/ResoursesManager/ResoursesManager/ResoursesManager.csproj @@ -215,6 +215,7 @@ + Global.asax @@ -228,13 +229,20 @@ + + + + + + + @@ -251,6 +259,8 @@ + + @@ -345,6 +355,7 @@ + diff --git a/ResoursesManager/ResoursesManager/Scripts/dateformat.js b/ResoursesManager/ResoursesManager/Scripts/dateformat.js new file mode 100644 index 0000000..37d67e7 --- /dev/null +++ b/ResoursesManager/ResoursesManager/Scripts/dateformat.js @@ -0,0 +1,130 @@ +/* +* Date Format 1.2.3 +* (c) 2007-2009 Steven Levithan +* MIT license +* +* Includes enhancements by Scott Trenda +* and Kris Kowal +* +* Accepts a date, a mask, or a date and a mask. +* Returns a formatted version of the given date. +* The date defaults to the current date/time. +* The mask defaults to dateFormat.masks.default. +*/ + +var dateFormat = function () +{ + var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, + timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, + timezoneClip = /[^-+\dA-Z]/g, + pad = function (val, len) + { + val = String(val); + len = len || 2; + while (val.length < len) val = "0" + val; + return val; + }; + + // Regexes and supporting functions are cached through closure + return function (date, mask, utc) + { + var dF = dateFormat; + + // You can't provide utc if you skip other args (use the "UTC:" mask prefix) + if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) { + mask = date; + date = undefined; + } + + // Passing date through Date applies Date.parse, if necessary + date = date ? new Date(date) : new Date; + if (isNaN(date)) throw SyntaxError("invalid date"); + + mask = String(dF.masks[mask] || mask || dF.masks["default"]); + + // Allow setting the utc argument via the mask + if (mask.slice(0, 4) == "UTC:") { + mask = mask.slice(4); + utc = true; + } + + var _ = utc ? "getUTC" : "get", + d = date[_ + "Date"](), + D = date[_ + "Day"](), + m = date[_ + "Month"](), + y = date[_ + "FullYear"](), + H = date[_ + "Hours"](), + M = date[_ + "Minutes"](), + s = date[_ + "Seconds"](), + L = date[_ + "Milliseconds"](), + o = utc ? 0 : date.getTimezoneOffset(), + flags = { + d: d, + dd: pad(d), + ddd: dF.i18n.dayNames[D], + dddd: dF.i18n.dayNames[D + 7], + m: m + 1, + mm: pad(m + 1), + mmm: dF.i18n.monthNames[m], + mmmm: dF.i18n.monthNames[m + 12], + yy: String(y).slice(2), + yyyy: y, + h: H % 12 || 12, + hh: pad(H % 12 || 12), + H: H, + HH: pad(H), + M: M, + MM: pad(M), + s: s, + ss: pad(s), + l: pad(L, 3), + L: pad(L > 99 ? Math.round(L / 10) : L), + t: H < 12 ? "a" : "p", + tt: H < 12 ? "am" : "pm", + T: H < 12 ? "A" : "P", + TT: H < 12 ? "AM" : "PM", + Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), + o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), + S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] + }; + + return mask.replace(token, function ($0) + { + return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); + }); + }; +} (); + +// Some common format strings +dateFormat.masks = { + "default": "ddd mmm dd yyyy HH:MM:ss", + shortDate: "m/d/yy", + mediumDate: "mmm d, yyyy", + longDate: "mmmm d, yyyy", + fullDate: "dddd, mmmm d, yyyy", + shortTime: "h:MM TT", + mediumTime: "h:MM:ss TT", + longTime: "h:MM:ss TT Z", + isoDate: "yyyy-mm-dd", + isoTime: "HH:MM:ss", + isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", + isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" +}; + +// Internationalization strings +dateFormat.i18n = { + dayNames: [ + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", + "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" + ], + monthNames: [ + "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", + "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" + ] +}; + +// For convenience... +Date.prototype.format = function (mask, utc) +{ + return dateFormat(this, mask, utc); +} diff --git a/ResoursesManager/ResoursesManager/Scripts/dateformat.min.js b/ResoursesManager/ResoursesManager/Scripts/dateformat.min.js new file mode 100644 index 0000000..67df8fa --- /dev/null +++ b/ResoursesManager/ResoursesManager/Scripts/dateformat.min.js @@ -0,0 +1 @@ +var dateFormat=function(){var t=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,r=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,i=/[^-+\dA-Z]/g,n=function(n,t){n=String(n),t=t||2;while(n.length99?Math.round(l/10):l),t:s<12?"a":"p",tt:s<12?"am":"pm",T:s<12?"A":"P",TT:s<12?"AM":"PM",Z:e?"UTC":(String(u).match(r)||[""]).pop().replace(i,""),o:(v>0?"-":"+")+n(Math.floor(Math.abs(v)/60)*100+Math.abs(v)%60,4),S:["th","st","nd","rd"][c%10>3?0:(c%100-c%10!=10)*c%10]};return f.replace(t,function(n){return n in p?p[n]:n.slice(1,n.length-1)})}}();dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"},dateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]},Date.prototype.format=function(n,t){return dateFormat(this,n,t)} \ No newline at end of file diff --git a/ResoursesManager/ResoursesManager/Views/Reservations/Create.cshtml b/ResoursesManager/ResoursesManager/Views/Reservations/Create.cshtml index 3dd3ff0..b97d2ff 100644 --- a/ResoursesManager/ResoursesManager/Views/Reservations/Create.cshtml +++ b/ResoursesManager/ResoursesManager/Views/Reservations/Create.cshtml @@ -42,7 +42,7 @@
*@Html.LabelFor(model => model.Reservation.Begining, htmlAttributes: new { @class = "control-label col-md-2" })
- + @Html.ValidationMessageFor(model => model.Reservation.Begining, "", new { @class = "text-danger" })
@@ -50,7 +50,7 @@
*@Html.LabelFor(model => model.Reservation.End, htmlAttributes: new { @class = "control-label col-md-2" })
- + @Html.ValidationMessageFor(model => model.Reservation.End, "", new { @class = "text-danger" })
@@ -69,12 +69,19 @@ @section Scripts{ } \ No newline at end of file diff --git a/ResoursesManager/ResoursesManager/Views/Reservations/Day.cshtml b/ResoursesManager/ResoursesManager/Views/Reservations/Day.cshtml index 7460284..19a88a3 100644 --- a/ResoursesManager/ResoursesManager/Views/Reservations/Day.cshtml +++ b/ResoursesManager/ResoursesManager/Views/Reservations/Day.cshtml @@ -34,7 +34,7 @@ if (item.Begining.Hour == i.Hour) { - @item.Begining.ToString("hh:mm") - @item.End.ToString("hh:mm") @item.Resource.Name @item.Resource.AssetTag
+ @item.Begining.ToString("HH:mm") - @item.End.ToString("HH:mm") @item.Resource.Name @item.Resource.AssetTag
} } diff --git a/ResoursesManager/ResoursesManager/Views/Reservations/Index.cshtml b/ResoursesManager/ResoursesManager/Views/Reservations/Index.cshtml index 009a5ee..9355b8b 100644 --- a/ResoursesManager/ResoursesManager/Views/Reservations/Index.cshtml +++ b/ResoursesManager/ResoursesManager/Views/Reservations/Index.cshtml @@ -54,7 +54,7 @@ if (item.Begining.Month == i.Month && item.Begining.Day == i.Day) { - @item.Begining.ToString("hh")-@item.Begining.ToString("hh")ó @item.Resource.Name + @item.Begining.ToString("HH")-@item.End.ToString("HH")ó @item.Resource.Name
j++; } diff --git a/ResoursesManager/ResoursesManager/Views/Reservations/Week.cshtml b/ResoursesManager/ResoursesManager/Views/Reservations/Week.cshtml index 5cb80a9..4f276d1 100644 --- a/ResoursesManager/ResoursesManager/Views/Reservations/Week.cshtml +++ b/ResoursesManager/ResoursesManager/Views/Reservations/Week.cshtml @@ -47,7 +47,7 @@ if (item.Begining.Day == j.Day && item.Begining.Hour == j.Hour) { - @item.Begining.ToString("hh")-@item.Begining.ToString("hh")ó @item.Resource.Name + @item.Begining.ToString("HH")-@item.End.ToString("HH")ó @item.Resource.Name
} diff --git a/ResoursesManager/ResoursesManager/Views/Shared/_Layout.cshtml b/ResoursesManager/ResoursesManager/Views/Shared/_Layout.cshtml index 4d107ce..ae161e2 100644 --- a/ResoursesManager/ResoursesManager/Views/Shared/_Layout.cshtml +++ b/ResoursesManager/ResoursesManager/Views/Shared/_Layout.cshtml @@ -24,6 +24,10 @@
  • @Html.ActionLink("ErÅ‘források", "Index", "Resources")
  • @Html.ActionLink("Felíratkozás", "Index", "Subscribe")
  • @Html.ActionLink("Naptár", "Index", "Reservations")
  • + @if (Context.User.IsInRole("Admin")) + { +
  • @Html.ActionLink("Statisztika", "Index", "Statistics")
  • + } @Html.Partial("_LoginPartial") @@ -72,6 +76,7 @@ +