Skip to content

Commit

Permalink
优化日历加载时JS的性能,修复会议创建时任何人都可以编辑别人的会议BUG
Browse files Browse the repository at this point in the history
  • Loading branch information
shihaoking committed Sep 4, 2015
1 parent c433ef4 commit 1ddca66
Show file tree
Hide file tree
Showing 14 changed files with 156 additions and 34 deletions.
Binary file modified MeetingCanlendar.v12.suo
Binary file not shown.
3 changes: 3 additions & 0 deletions MeetingCanlendar/Content/css/fullcalendar.css
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,9 @@ temporary rendered events).
/* Global Event Styles
--------------------------------------------------------------------------------------------------*/

.fc-event{
cursor:pointer;
}
.fc-event,
.fc-event:active
{
Expand Down
7 changes: 7 additions & 0 deletions MeetingCanlendar/Content/css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,13 @@ header{ position:absolute; left:20;}
#meeting-list .menu-catg.menu-catg-mine{ border-top-right-radius: 4px; border-bottom-right-radius: 4px;}
#meeting-list .menu-catg.menu-catg-all{ border-top-left-radius: 4px; border-bottom-left-radius: 4px; border-right:none;}
#meeting-list .menu-catg.menu-catg-selected{ background-color:#FF3B30; color:White}
#meeting-list .ml-menu-position {
padding-top:10px;
text-align:left;
}
#meeting-list .meeting-position-select {
width:200px;
}
.ml-list ul{ margin:0; padding:0;font-size:0; }
.ml-list ul li{ -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; -khtml-user-select: none; user-select: none;}
.ml-list ul.ml-ul{ background-color:White;}
Expand Down
8 changes: 7 additions & 1 deletion MeetingCanlendar/Controllers/MeetingController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ public class MeetingController : Controller

public ActionResult Index()
{
UserModel userModel = new UserModel();
user_info userInfo = userModel.GetUserInfo(User.Identity.Name);
ViewBag.UserId = userInfo.id;
ViewBag.UserLevel = userInfo.user_grade_catg.gc_level;

return View();
}

Expand Down Expand Up @@ -95,7 +100,8 @@ public ActionResult GetMeetingsByMonths(string months)
people = r.mi_people,
memo = r.mi_memo,
position = r.mi_position_id,
creator = r.mi_creator_name,
creator = r.mi_creator,
creatorName = r.mi_creator_name,
level = r.mi_level_id,
createTime = r.mi_create_time,
className = r.mi_creator == userInfo.id ? "fc-event-mine" : "",
Expand Down
2 changes: 2 additions & 0 deletions MeetingCanlendar/MeetingCanlendar.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,8 @@
</Compile>
<Compile Include="MeetingHub.cs" />
<Compile Include="Models\MeetingModel.cs" />
<Compile Include="Models\MeetingResultDataModel.cs" />
<Compile Include="Models\MeetingResultModel.cs" />
<Compile Include="Models\MySqlDBModel.cs" />
<Compile Include="Models\UserAuthAttribute.cs" />
<Compile Include="Models\UserModel.cs" />
Expand Down
43 changes: 24 additions & 19 deletions MeetingCanlendar/MeetingHub.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,21 @@
using Microsoft.AspNet.SignalR;
using DBEntity;
using MeetingCanlendar.Models;
using System.Threading.Tasks;

namespace MeetingCanlendar
{
public class MeetingHub : Hub
{
public void AddMeeting(string userName, meeting_info metData)
public void AddMeeting(int userId, meeting_info metData)
{
MeetingModel metModel = new MeetingModel();
UserModel userModel = new UserModel();
user_info userInfo = userModel.GetUserInfo(userName);
object result;

user_info userInfo = userModel.GetUserInfo(userId);

if (metModel.CheckMeetingAvailable(metData.id, metData.mi_start_time, metData.mi_end_time) == false)
{
result = new { type = 0, msg = "该时间段内已经有会议,请更改会议时间。", data = new { id = metData.id } };
Clients.Caller.broadcastMeetingEdit(result);
Clients.Caller.broadcastMeetingEdit(new { type = 0, msg = "该时间段内已经有会议,请更改会议时间。", data = new { id = metData.id } });
return;
}

Expand Down Expand Up @@ -50,7 +49,7 @@ public void AddMeeting(string userName, meeting_info metData)
return;
}
}

metInfo.mi_start_time = metData.mi_start_time;
metInfo.mi_end_time = metData.mi_end_time;
metInfo.mi_level_id = metData.mi_level_id;
Expand Down Expand Up @@ -94,17 +93,16 @@ public void AddMeeting(string userName, meeting_info metData)
}
catch (Exception ex)
{
result = new { type = 0, msg = "添加失败,请联系管理员。\n错误信息:" + ex.Message, data = new { id = metData.id } };
Clients.Caller.broadcastMeetingEdit(result);
Clients.Caller.broadcastMeetingEdit(new { type = 0, msg = "添加失败,请联系管理员。\n错误信息:" + ex.Message, data = new { id = metData.id } });
return;
}

result = new

MeetingResultModel result = new MeetingResultModel()
{
type = editType,
msg = "添加成功",
data = new
data = new MeetingResultDataModel()
{
id = metInfo.id,
title = metInfo.mi_title,
Expand All @@ -115,26 +113,33 @@ public void AddMeeting(string userName, meeting_info metData)
memo = metInfo.mi_memo,
position = metInfo.mi_position_id,
positionName = metInfo.meeting_positionReference.Value.mp_name,
creator = metInfo.user_infoReference.Value.ui_name,
creator = metInfo.mi_creator,
creatorName = metInfo.user_infoReference.Value.ui_name,
level = metInfo.mi_level_id,
levelName = metInfo.meeting_level_catgReference.Value.ml_name,
createTime = metInfo.mi_create_time.ToString("yyyy-MM-ddTHH:mm:ss"),
className = metInfo.mi_creator == userInfo.id ? "fc-event-mine" : "",
editable = metInfo.mi_creator == userInfo.id || userInfo.user_grade_catg.gc_level == 9 ? 1 : 0,
isMine = metInfo.mi_creator == userInfo.id ? 1 : 0
className = "fc-event-mine",
editable = 1,
isMine = 1
}
};

Clients.All.broadcastMeetingEdit(result);
Clients.Caller.broadcastMeetingEdit(result);

result.data.className = "";
result.data.isMine = 0;
result.data.editable = 0;

Clients.Others.broadcastMeetingEdit(result);
}

public void DeleteMeeting(string userName, int id)
public void DeleteMeeting(int userId, int id)
{
MeetingModel metModel = new MeetingModel();
meeting_info metInfo = metModel.GetMeeting(id);

UserModel userModel = new UserModel();
user_info userInfo = userModel.GetUserInfo(userName);
user_info userInfo = userModel.GetUserInfo(userId);

if (metInfo.mi_creator != userInfo.id && userInfo.user_grade_catg.gc_level != 9)
{
Expand Down
28 changes: 28 additions & 0 deletions MeetingCanlendar/Models/MeetingResultDataModel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MeetingCanlendar.Models
{
public class MeetingResultDataModel
{
public int id { get; set; }
public string title { get; set; }
public string start { get; set; }
public string end { get; set; }
public string people { get; set; }
public string peopleName { get; set; }
public string memo { get; set; }
public int position { get; set; }
public string positionName { get; set; }
public int creator { get; set; }
public string creatorName { get; set; }
public int level { get; set; }
public string levelName { get; set; }
public string createTime { get; set; }
public string className { get; set; }
public int editable { get; set; }
public int isMine { get; set; }
}
}
15 changes: 15 additions & 0 deletions MeetingCanlendar/Models/MeetingResultModel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MeetingCanlendar.Models
{
public class MeetingResultModel
{
public int type { get; set; }
public string msg { get; set; }

public MeetingResultDataModel data { get; set; }
}
}
Loading

0 comments on commit 1ddca66

Please sign in to comment.