///
///
(function (window) {
if (!ts.program.subprogram)
ts.program.subprogram = {};
ts.program.subprogram = {
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.subprogram.hasModifyPermission) {
$('#addSubProgram').live('click', {}, function () {
scope.add();
});
}
else {
$('#addSubProgram').attr('disabled', 'disabled');
}
scope.prepList();
},
prepList: function () {
ts.list.prepList('.subProgramTile');
},
add: function () {
var scope = this;
ts.ajax.send({
url: String.format('/Setup/Academics/Program/{0}/SubProgram/Add', this.programId),
data: null,
type: 'GET',
successHandler: function (data) {
ts.ajax.handleResult(data);
if (data.State == 0) {
ts.msg.sendInfo('Add/Edit Start Period');
var id = ts.win.modal({
id: 'newSubProgram',
htmlResult: data.HtmlResult,
binder: function () {
scope.save(id);
scope.cancel(id);
},
title: 'Associated Sub Programs'
});
ts.msg.sendInfo('Associated Sub Programs');
}
else { //json response object returned
ts.msg.sendError(data.Messages[0].Message);
}
},
errorHandler: function (data) {
ts.msg.sendError('An error occurred setting Program Sub Program data.');
ts.msg.sendMsg('sysWarning', 'unknown error ts.note.save ajax: ' + data.responseText);
}
});
},
save: function (id) {
var scope = this;
if (!ts.program.subprogram.hasModifyPermission) {
$('#subProgramSaveLink').attr('disabled', 'disabled');
}
else {
$('#subProgramSaveLink').click(function(e) {
var serializedData = scope.formSerialize();
var postData = { '__RequestVerificationToken': $('input[name=__RequestVerificationToken]').val(), 'ProgramId': scope.programId, 'SubProgramViews': serializedData };
if ($('#addEditProgramSubProgram').valid()) {
ts.ajax.send({
url: String.format('/Setup/Academics/Program/{0}/SubProgram/Add', scope.programId),
data: postData,
type: 'POST',
successHandler: function(data) {
ts.ajax.handleResult(data);
if (data.State == 0) {
ts.msg.sendInfo('Start Periods saved successfully');
ts.win.closeModal(id);
$('#subProgramsTab').html(data.HtmlResult);
} else { //json response object returned
ts.msg.sendError(data.Messages[0].Message);
}
},
errorHandler: function(data) {
ts.msg.sendError('An error occurred while saving Program Sub Programs.');
ts.msg.sendMsg('sysWarning', 'unknown error ts.note.save ajax: ' + data.responseText);
}
});
}
});
}
},
cancel: function (id) {
$('div #subProgramCancelLink').click(function (e) {
ts.win.closeModal(id);
});
},
formSerialize: function () {
var results = new Array();
$.each($('.subProgram'), function (index, element) {
var checkboxId = $(element).attr('subprogramname') + $(element).attr('subprogramid');
var isChecked = $(element).find('[name=' + checkboxId + '][type=checkbox]').is(':checked');
if (isChecked) {
var o = { SubProgramId: $(element).attr('subprogramid'),
Name: $(element).attr('subprogramname'),
IsUsed: isChecked,
ProgramSubProgramrId: $(element).attr('programsubprogramid')
};
results.push(o);
}
});
return results;
}
};
$(document).ready(function () {
});
})(window);