///
(function (window) {
var attendanceEmail = {
labels: {
EMAIL_MODAL_LOADING: window.loadingEmailer || "Emailer loading ...",
EMAIL_MODAL_LOADING_ERROR: window.loadingEmailerError || "An error occured on loading Enailer.",
ERROR_ON_EMAIL_SENDING: window.errorOnEmailSending || "An error occurred while sending Emails",
EMAILER_TITLE: window.emailerTitle || "Send Email",
SENDING_EMAIL: window.sendingEmail || "Sending emails ..."
},
forOneStudent: false,
init: function () {
this.forOneStudent = $('#forOneStudent').length != 0 ? $('#forOneStudent').val(): false;
$('#emailAttendance').click(function (e) {
ts.announcements.sendMsg('info',attendanceEmail.labels.EMAIL_MODAL_LOADING);
attendanceEmail.loadForEmail();
});
},
closeEmail: function (e) {
ts.win.closeModal('emailRosterWin');
},
addEmailTo: function () {
var exist = false;
$('#ListBoxTo option').each(function (i, option) {
if ($(option).val() == $('#StudentsList').val())
exist = true;
if (exist) return;
});
if (!exist) {
var value = '';
if (this.forOneStudent) {
value = '"';
} else {
value = '"';
}
$('#ListBoxTo').append(value);
}
},
addEmailClassTo: function () {
var exist = false;
$('#StudentsList option').each(function () {
var item = this;
$('#ListBoxTo option').each(function (i, option) {
if ($(option).val() == $(item).val())
exist = true;
if (exist) return;
});
if (!exist) {
var value = '"';
$('#ListBoxTo').append(value);
}
exist = false;
});
},
addEmailCc: function () {
var exist = false;
$('#ListBoxCc option').each(function (i, option) {
if ($(option).val() == $('#EmployeesList').val())
exist = true;
if (exist) return;
});
if (!exist) {
var value = '"';
$('#ListBoxCc').append(value);
}
},
addEmailBcc: function () {
var exist = false;
$('#ListBoxBcc option').each(function (i, option) {
if ($(option).val() == $('#EmployeesList').val())
exist = true;
if (exist) return;
});
if (!exist) {
var value = '"';
$('#ListBoxBcc').append(value);
}
},
clearBoxTo: function () {
$('#ListBoxTo option:selected').each(function (i, option) {
$(option).remove();
});
},
clearBoxCc: function () {
$('#ListBoxCc option:selected').each(function (i, option) {
$(option).remove();
});
},
clearBoxBCc: function () {
$('#ListBoxBcc option:selected').each(function (i, option) {
$(option).remove();
});
},
sendEmails: function (e) {
$('#ListBoxTo option').each(function (i, option) {
$(option).attr("selected", "selected");
});
if ($('#RosterEmailForm').valid()) {
ts.announcements.sendMsg('info',attendanceEmail.labels.SENDING_EMAIL);
var url = '/Academics/Attendance/' + $("#CourseSectionEid").val() + '/Email/Send';
this.forOneStudent = $('#forOneStudent').length != 0 ? $('#forOneStudent').val() : false;
if (this.forOneStudent)
url = '/Academics/StudentAttendance/{courseSectionEid}/Email/Send/{studentEid}'.bind({ courseSectionEid: $("#CourseSectionEid").val(), studentEid: $("#StudentEid").val()});
$('#ListBoxTo option').each(function (i, option) {
$(option).attr("selected", "selected");
});
$('#ListBoxCc option').each(function (i, option) {
$(option).attr("selected", "selected");
});
$('#ListBoxBcc option').each(function (i, option) {
$(option).attr("selected", "selected");
});
var data = $('#RosterEmailForm').serialize();
ts.ajax.send({
url: url,
data: data,
type: 'POST',
successHandler: function (result) {
if (result.State == 0) {
ts.win.closeModal('emailRosterWin');
attendanceEmail.sendSuccessMsg(result);
}
else {
attendanceEmail.sendErrorMsg(result, '#emailattendance-message-area');
$('#ListBoxTo option').each(function (i, option) {
$(option).removeAttr("selected");
});
$('#ListBoxCc option').each(function (i, option) {
$(option).removeAttr("selected");
});
$('#ListBoxBcc option').each(function (i, option) {
$(option).removeAttr("selected");
});
}
}
, errorHandler: function (result) {
$('#ListBoxTo option').each(function (i, option) {
$(option).removeAttr("selected");
});
$('#ListBoxCc option').each(function (i, option) {
$(option).removeAttr("selected");
});
$('#ListBoxBcc option').each(function (i, option) {
$(option).removeAttr("selected");
});
attendanceEmail.sendErrorMsg(attendanceEmail.labels.ERROR_ON_EMAIL_SENDING, '#emailattendance-message-area');
}
});
}
else {
$('#ListBoxTo option').each(function (i, option) {
$(option).removeAttr("selected");
});
}
},
loadForEmail: function () {
var url = '/Academics/Attendance/' + $("#CourseSectionEid").val() + '/Email';
if (this.forOneStudent)
url = '/Academics/StudentAttendance/{courseSectionEid}/Email/{studentEid}'.bind({ courseSectionEid: $("#CourseSectionEid").val(), studentEid: $("#StudentEid").val()});
ts.ajax.send({
url: url,
type: 'GET',
successHandler: function (data) {
if (data.State == 0) {
attendanceEmail.sendSuccessMsg(data);
var id = ts.win.modal({
id: 'emailRosterWin',
htmlResult: data.HtmlResult,
binder: function () {
$('#EmailBody').cleditor({ width: "100%", height: "100%" })[0];
$('#AddTo').click(function (e) {
attendanceEmail.addEmailTo();
});
$('#AddClass').click(function (e) {
attendanceEmail.addEmailClassTo();
});
$('#AddCc').click(function (e) {
attendanceEmail.addEmailCc();
});
$('#AddBcc').click(function (e) {
attendanceEmail.addEmailBcc();
});
$('#clearBoxTo').click(function (e) {
attendanceEmail.clearBoxTo();
});
$('#clearBoxCc').click(function (e) {
attendanceEmail.clearBoxCc();
});
$('#clearBoxBCc').click(function (e) {
attendanceEmail.clearBoxBCc();
});
},
title: attendanceEmail.labels.EMAILER_TITLE
});
}
else { //json response object returned
attendanceEmail.sendErrorMsg(data);
}
},
errorHandler: function (data) {
attendanceEmail.sendErrorMsg(attendanceEmail.labels.EMAIL_MODAL_LOADING_ERROR);
}
});
},
sendSuccessMsg: function (result, target) {
if (result.State == 0 && !!result.Messages && result.Messages.length > 0) {
$(result.Messages).each(function (idx) {
if(target)
ts.announcements.sendSuccess(this.Message,target);
else
ts.announcements.sendSuccess(this.Message);
});
}
},
sendErrorMsg: function(result, target) {
if (result.Messages && result.Messages.length > 0) {
$(result.Messages).each(function (idx) {
if(target)
ts.announcements.sendError(this.Message,target);
else
ts.announcements.sendError(this.Message);
});
}
}
};
window.attendanceEmail = attendanceEmail;
$(document).ready(function () {
attendanceEmail.init();
});
})(window);