// ******************************************************************
// Filename - book.html
// Shortname - BK
// Purpose - This page displays a form allowing the user to book a meeting
// Copyright - (C) 1996, Ingenia Communications Corporation
// Authors - Kjell Wooding
// - Chris Grant
// Contact - kwooding@ingenia.com
// ******************************************************************
CM_Authorize();
// Variables used in the HTML
var formURL=addClient("book.html");
var strPubDesc = "";
var strPriDesc = "";
var bEdit=false;
var arDefEmps=null;
var arDefEmpid=null;
var Display = "book";
// Fetch parameters and clear client attributes
if (client.DefaultRoomID) {
var idRoom=client.DefaultRoomID;
client.DefaultRoomID="";
} else {
CM_Connect();
stmt="select * from Employee where Employee_ID='"+client.EmployeeID+"'";
var csEmp=database.cursor(stmt);
csEmp.next();
var idRoom=csEmp.Room_ID;
CM_Disconnect();
}
if (client.DefaultBuildingID) {
var idBuilding=client.DefaultBuildingID;
client.DefaultBuildingID="";
} else {
var idBuilding=null;
}
if (request.strDate) { // passed a date in MM/DD/YY format
client.DefaultDate=CM_strDatetoInt(request.strDate);
} else if (request.dtDate) { // received a new date in millisecond format
client.DefaultDate = request.dtDate;
} else if (client.DefaultDate) { // We have been passed a date
var dtDate = new Date();
dtDate.setTime(client.DefaultDate);
var strDate=CM_ExtractDate(dtDate.toLocaleString());
} else { // no date - assume today
var dtDate= new Date();
var strDate=CM_ExtractDate(dtDate.toLocaleString());
}
if (client.DefaultStartTime) { // we have been passed a start time from search
var dtStartTime=new Date();
var dtEndTime=new Date();
dtStartTime.setTime(client.DefaultStartTime);
dtEndTime.setTime(client.DefaultEndTime);
var strStartTime=CM_ExtractTime(dtStartTime.toLocaleString());
var strEndTime=CM_ExtractTime(dtEndTime.toLocaleString());
client.DefaultStartTime="";
client.DefaultEndTime="";
} else { // no start time - assume 8am
dtStartTime=new Date();
dtEndTime=new Date();
dtStartTime.setHours(8);
dtStartTime.setMinutes(0);
dtStartTime.setSeconds(0);
dtEndTime.setHours(9);
dtEndTime.setMinutes(0);
dtEndTime.setSeconds(0);
strStartTime="08:00";
strEndTime="09:00";
}
// Handlers
if (request.doBookAnyway) {
request.doBook = "yes";
}
if (request.doBook) {
intErrorOccured = 0;
dtStartDate = new Date(request.strDate+ " "+request.StartTime);
dtEndDate = new Date(request.strDate+" "+request.EndTime);
if (request.optEmployeeID) {
var intEmpCount = getOptionValueCount("optEmployeeID");
arEmployees=new CM_MakeArray(intEmpCount);
for (var i = 1; i <= intEmpCount; i++) {
arEmployees[i]= getOptionValue("optEmployeeID", i-1);
}
} else {
BK_Error("對不起, 您至少需邀請一位同事參加此會議");
}
if (BK_FindConflicts(arEmployees, dtStartDate, dtEndDate) > 0) {
if(request.doBookAnyway == "Book" && request.Dialog == "2") {
request.doBookAnyway = "dont";
}
Display = "dialog";
}
if (BK_CheckRoomSize(arEmployees, request.roomid) != 1) {
if (request.doBookAnyway != "dont") {
Display = "dialog2";
}
}
if (request.doBookAnyway == "Book" || Display == "book") {
if (intErrorOccured == 0) {
BK_DBBookMeeting(dtStartDate,dtEndDate,arEmployees,request.roomid);
var dtCurrent = new Date();
dtCurrent.setTime(dtStartDate.getTime());
dtCurrent.setHours(0);
dtCurrent.setMinutes(0);
dtCurrent.setSeconds(0);
client.DefaultDate=dtCurrent.getTime();
redirect(client.homeURL);
}
}
} else if (request.doConflict) {
BK_Conflict();
} else if (request.doCancel) {
redirect(client.homeURL);
} else if (request.doModify) {
idRoom = request.roomid
strPubDesc = request.pubdesc;
strPriDesc = request.pridesc;
a = request.StartTime;
b = request.EndTime;
dtStartTime = new Date();
dtEndTime = new Date();
dtStartTime.setTime(request.MeetDate);
dtStartTime.setHours(a.substring(0, a.indexOf(":")));
dtStartTime.setMinutes(a.substring(a.indexOf(":") + 1, a.length));
dtEndTime.setTime(request.MeetDate);
dtEndTime.setHours(b.substring(0, b.indexOf(":")));
dtEndTime.setMinutes(b.substring(b.indexOf(":") + 1, b.length));
arDefEmps = request.arDefEmps;
arDefEmpid = request.arDefEmpid;
bEdit = true;
var intEmpCount = getOptionValueCount("optEmployeeID");
arDefEmps = new CM_MakeArray(intEmpCount);
arDefEmpid = new CM_MakeArray(intEmpCount);
CM_Connect();
for (var i = 1; i <= intEmpCount; i++) {
arDefEmpid[i] = getOptionValue("optEmployeeID", i-1);
strSQL = "SELECT First_Name, Last_Name ";
strSQL += "FROM Employee ";
strSQL += "WHERE Employee_ID = " + arDefEmpid[i];
csName = database.cursor(strSQL);
csName.next();
arDefEmps[i] = CM_FormEscape(csName.Last_Name) + ", " +
CM_FormEscape(csName.First_Name);
csName.close();
}
CM_Disconnect();
} else if (request.doEdit) {
var strSQL = "SELECT * FROM Meeting WHERE Meeting_ID = " + request.oldMeetingID;
bEdit=true;
CM_Connect();
csTemp = database.cursor(strSQL);
csTemp.next();
idRoom = csTemp.Room_ID;
dtStartTime = csTemp.Start_Time;
dtEndTime = csTemp.End_Time;
strPubDesc = CM_StripSpace(CM_FormEscape(csTemp.Public_Desc));
strPriDesc = CM_StripSpace(CM_FormEscape(csTemp.Private_Desc));
csTemp.close();
var strSQL = "SELECT First_Name, Last_Name, Employee.Employee_ID " +
"FROM Meeting_Attendance, Employee " +
"WHERE Meeting_ID = " + request.oldMeetingID + " " +
"AND Meeting_Attendance.Employee_ID = Employee.Employee_ID " +
"ORDER BY Last_Name, First_Name ";
var count=CM_CountRows(strSQL);
arDefEmps=new CM_MakeArray(count);
arDefEmpid=new CM_MakeArray(count);
var csAttending = database.cursor(strSQL);
var i=1;
while(csAttending.next()) {
arDefEmps[i] = CM_FormEscape(csAttending.Last_Name) +
", " + CM_FormEscape(csAttending.First_Name);
arDefEmpid[i] = csAttending.Employee_ID;
i++;
}
csAttending.close();
CM_Disconnect();
strStartTime=CM_ExtractTime(dtStartTime.toLocaleString());
strEndTime=CM_ExtractTime(dtEndTime.toLocaleString());
strDate = CM_ExtractDate(dtStartTime.toLocaleString());
}
if (Display == "book") {
iMeet 會議室預訂系統 - 預訂會議室
IF_EmpPickerHeader(arDefEmps,arDefEmpid); // Employee Picker
IF_VerifyRoutines(); // Input Verification
IF_DateWidget("strDate",0); // JavaScript routines for date widget
BK_Header(client.DefaultDate);
IF_DisplayToolbar(false);
會議室: |
|
時間: 從 |
到
JV_TimeBar("images/time.gif",36,27,"formBook","StartTime","EndTime");
|
選擇參加成員:
IF_EmpPicker(bEdit);
會議內容概述:
參加成員注意事項:
if (bEdit==true && !request.doModify) {
write("");
write("");
write("");
write("");
write("");
}
if (request.doModify && request.doEdit) {
write("");
write("");
write("");
write("");
write("");
}
IF_DisplayCopyright();
} else {
預訂會議室 - 抵觸說明
預訂會議室 - 牴觸說明
注意:
if (Display == "dialog") {
以下的成員在您預定會議的時間內已另有其他的行程 :
write(request.ConflictNames);
您有三種選擇. 1.您允許和您所安排的會議時間有所衝突的成員自由的選擇是否參加, 2.
修改會議時間, 3.取消會議時程.
}