///
///
(function (window) {
if (!ts.program.regulatorycode)
ts.program.regulatorycode = {};
ts.program.regulatorycode = {
programId: null,
hasAddPermission: false,
hasModifyPermission: false,
hasDeletePermission: false,
hasReadPermission: false,
mode: null,
modalId: null,
init: function (programId, hasAddPermission, hasModifyPermission, hasDeletePermission, hasReadPermission) {
this.programId = programId;
this.hasAddPermission = hasAddPermission;
this.hasModifyPermission = hasModifyPermission;
this.hasDeletePermission = hasDeletePermission;
this.hasReadPermission = hasReadPermission;
this.registerEvents();
},
registerEvents: function () {
var scope = this;
if (ts.program.regulatorycode.hasAddPermission) {
$('#addRegulatoryCode').live('click', {}, function () {
scope.add();
});
} else {
$('#addRegulatoryCode').attr('disabled', 'disabled');
}
ts.program.regulatorycode.prepList();
ts.program.regulatorycode.prepareList();
},
registerRegulatoryTypeChangeEvent: function() {
$(".regulatoryCodeType").unbind("change").change(function () {
if($(this).val().toLowerCase() == "cip")
$(".socCode").show();
else {
$(".socCode").hide();
$("#SOCCode").val("");
}
});
$(".regulatoryCodeType").trigger("change");
},
add: function () {
var scope = this;
ts.ajax.send({
url: String.format('/Setup/Academics/Program/{0}/RegulatoryCode/Add', this.programId),
data: null,
type: 'GET',
successHandler: function (data) {
ts.ajax.handleResult(data);
if (data.State == 0) {
if (data.Subject.ProgramRegulatoryCodeTypes.length > 0) {
var id = ts.win.modal({
id: 'newRegulatoryCode',
htmlResult: data.HtmlResult,
binder: function () {
scope.save(id, 'Add', 0);
scope.cancel(id);
scope.registerRegulatoryTypeChangeEvent();
},
title: 'Add Program Regulatory Code'
});
ts.msg.sendInfo('Add Program Regulatory Code');
}
else {
ts.msg.sendError('No Program Regulatory Code Types available. Please try to edit code of an existing type.');
}
}
else { //json response object returned
ts.msg.sendError(data.Messages[0].Message);
}
},
errorHandler: function (data) {
ts.msg.sendError('An error occurred setting Program Regulatory Code data.');
ts.msg.sendMsg('sysWarning', 'unknown error ts.note.save ajax: ' + data.responseText);
}
});
},
edit: function (e) {
var scope = this;
var regulatoryCodeId = $(e.currentTarget).attr('regulatorycodeid');
if ($(e.target).is('a')) {
e.stopImmediatePropagation();
if (ts.program.regulatorycode.hasDeletePermission) {
if (!confirm("Are you sure you want to delete the selected regulatory code?"))
return;
else {
ts.msg.sendWarning('Deleting .. please wait');
ts.program.regulatorycode.deleteItem(regulatoryCodeId);
return;
}
}
else
ts.msg.sendInfo('You don\'t have delete permission');
}
else {
if (ts.program.regulatorycode.hasModifyPermission) {
var id = ts.win.modal({
url: String.format('/Setup/Academics/Program/{0}/RegulatoryCode/Edit/{1}', this.programId, regulatoryCodeId),
id: 'editRegulatoryCode',
binder: function () {
if (!$('#Type').attr('disabled')) {
$('#Type').attr('disabled', 'disabled');
}
scope.save(id, 'Edit/', regulatoryCodeId);
scope.cancel(id);
scope.registerRegulatoryTypeChangeEvent();
},
title: 'Edit Program Regulatory Code'
});
ts.msg.sendInfo('Edit Program Regulatory Code');
}
else
ts.msg.sendInfo('You don\'t have modify permission');
}
},
save: function (id, mode, regulatoryCodeId) {
var scope = this;
if ((regulatoryCodeId == 0 && !ts.program.regulatorycode.hasAddPermission) || (regulatoryCodeId != 0 && !ts.program.regulatorycode.hasModifyPermission)) {
$('regulatoryCodeSaveLink').attr('disabled', 'disabled');
}
else {
$('#regulatoryCodeSaveLink').click(function (e) {
if ($('#addEditProgramRegulatoryCode').valid()) {
if ($('#Type').attr('disabled')) {
$('#Type').removeAttr('disabled');
}
ts.ajax.send({
url: String.format('/Setup/Academics/Program/{0}/RegulatoryCode/{1}{2}', scope.programId, mode, (regulatoryCodeId == 0 ? '' : regulatoryCodeId)),
data: $('#addEditProgramRegulatoryCode').serialize(),
type: 'POST',
successHandler: function (data) {
ts.ajax.handleResult(data);
if (data.State == 0) {
ts.win.closeModal(id);
scope.updateItem(data.Subject.ProgramRegulatoryCodeId, data.HtmlResult, mode);
ts.msg.sendInfo('Program Regulatory Code saved successfully');
}
else { //json response object returned
ts.msg.sendError(data.Messages[0].Message);
}
},
errorHandler: function (data) {
ts.msg.sendError('An error occurred while saving Program Regulatory Code.');
ts.msg.sendMsg('sysWarning', 'unknown error ts.note.save ajax: ' + data.responseText);
}
});
}
});
}
},
deleteItem: function (regulatoryCodeId) {
if (confirm('Are you sure you want to delete the Program Regulatory Code?')) {
ts.ajax.send({
url: String.format('/Setup/Academics/Program/{0}/RegulatoryCode/Delete/{1}', this.programId, regulatoryCodeId),
type: 'POST',
successHandler: function (result) {
ts.ajax.handleResult(result);
ts.msg.sendInfo('Program Regulatory Code deleted successfully');
if (result.State == 0) $('div[regulatorycodeid="' + regulatoryCodeId + '"]').remove();
},
errorHandler: function (result) {
ts.msg.sendError('An error occurred while deleting the Program Regulatory Code.');
ts.msg.sendMsg('sysWarning', 'unknown error ts.program.regulatorycode.deleteItem ajax: ' + result.responseText);
}
});
}
else
return;
},
updateItem: function (regulatoryCodeId, regulatoryCodeHtml, mode) {
if (mode == 'Add') {
$('#regulatoryCodesContainer').prepend(regulatoryCodeHtml);
}
else {
$('#RegulatoryCode' + regulatoryCodeId).replaceWith(regulatoryCodeHtml);
}
this.prepList();
},
prepList: function () {
ts.list.prepList('.regulatoryCodeTile');
$('.regulatoryCodeTile').click(function (e) {
ts.program.regulatorycode.edit(e);
});
},
loadItemMenu: function (el) {
var html = $('.itemMenu').html();
$('.itemMenuLive').parent().height('auto');
$('.itemMenuLive').remove();
var h = $(el).height();
$(el).append(html);
var top = -15;
$(el).find('.itemMenuI').css('top', top);
$(el).find('.itemMenuI').css('left', $(el).width() - $(el).find('.itemMenuI').width());
$(el).find('#regulatoryCodesContainer .deleteItem').click(function (e) {
e.stopImmediatePropagation();
ts.program.regulatorycode.deleteItem($(el).attr('regulatorycodeid'));
});
$(el).find('.itemMenuI').addClass('itemMenuLive');
$(el).height(h);
},
removeItemMenu: function () {
$('.itemMenuLive').remove();
},
prepareList: function () {
if (!ts.program.regulatorycode.hasDeletePermission) return;
var s = this;
$('.regulatoryCodeTile').live('mouseenter', null, function (e) {
e.stopImmediatePropagation();
$(this).addClass('currentItem');
s.loadItemMenu(this);
});
$('.regulatoryCodeTile').live('mouseleave', null, function (e) {
e.stopImmediatePropagation();
$(this).removeClass('currentItem');
s.removeItemMenu();
});
},
cancel: function (id) {
$('div #regulatoryCodeCancelLink').click(function (e) {
ts.win.closeModal(id);
});
}
};
$(document).ready(function () {
});
})(window);