Created
August 8, 2019 05:15
-
-
Save nomoney4me/f4b2ec5f085e0b9caf54ba34137f7964 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var Bb = Backbone, | |
Bbc = Backbone.Collection, | |
Bbm = Backbone.Model, | |
Hb = Handlebars; | |
(function (a) { | |
var c = p3.module("utilities/smodal"), | |
d = p3.module("utilities/sort"), | |
b = p3.module("shared/datepicker"); | |
a.Data.Configs = { | |
Admissions: { | |
AuditName: "Admissions", | |
SearchTemplate: "admaudit/admaudit.search.template.html", | |
AuditsTemplate: "admaudit/admaudit.audits.template.html", | |
AuditTemplate: "admaudit/auditlog.audit.template.html", | |
InfoTemplate: "utilities/utilities.smodal.message.html", | |
FilterTemplate: "admaudit/admaudit.adm.filter.template.html", | |
Filters: { | |
tableName: "Table name is @value", | |
columnName: "Column name is @value", | |
modifiedBy: "Modified by @value", | |
startDate: "Start date is @value or later", | |
endDate: "End date is @value or earlier" | |
}, | |
Columns: [{ | |
Selected: true, | |
SortName: "Action", | |
DisplayName: "Action", | |
Description: "The type of action taken by the user", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "TableName", | |
DisplayName: "Location", | |
Description: "Table and column name of the transaction (Sorted by table)", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "Before", | |
DisplayName: "Data Before", | |
Description: "Data before the transaction", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "After", | |
DisplayName: "Data After", | |
Description: "Data after the transaction", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ModifiedDate", | |
DisplayName: "Modified Date", | |
Description: "Response Code", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ModifiedBy", | |
DisplayName: "Modified By", | |
Description: "Response Data", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "Addendum", | |
DisplayName: "Info", | |
Description: "Additional information button", | |
Sortable: false | |
}] | |
}, | |
Medical: { | |
AuditName: "Medical", | |
SearchTemplate: "admaudit/admaudit.search.template.html", | |
AuditsTemplate: "admaudit/admaudit.audits.template.html", | |
AuditTemplate: "admaudit/auditlog.audit.template.html", | |
InfoTemplate: "utilities/utilities.smodal.message.html", | |
FilterTemplate: "admaudit/admaudit.medical.filter.template.html", | |
Filters: { | |
tableName: "Table name is @value", | |
columnName: "Column name is @value", | |
modifiedBy: "Modified by @value", | |
startDate: "Start date is @value or later", | |
endDate: "End date is @value or earlier", | |
dataValue: "Data before or data after is @value" | |
}, | |
Columns: [{ | |
Selected: true, | |
SortName: "Action", | |
DisplayName: "Action", | |
Description: "The type of action taken by the user", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "TableName", | |
DisplayName: "Location", | |
Description: "Table and column name of the transaction (Sorted by table)", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "Before", | |
DisplayName: "Data Before", | |
Description: "Data before the transaction", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "After", | |
DisplayName: "Data After", | |
Description: "Data after the transaction", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ModifiedDate", | |
DisplayName: "Modified Date", | |
Description: "Response Code", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ModifiedBy", | |
DisplayName: "Modified By", | |
Description: "Response Data", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "Info", | |
DisplayName: "Info", | |
Description: "Additional information button", | |
Sortable: false | |
}] | |
}, | |
Smart: { | |
AuditName: "Smart Tuition Contract", | |
SearchTemplate: "admaudit/admaudit.search.template.html", | |
AuditsTemplate: "admaudit/admaudit.audits.template.html", | |
AuditTemplate: "admaudit/admaudit.audit.template.html", | |
InfoTemplate: "admaudit/admaudit.smart.info.template.html", | |
FilterTemplate: "admaudit/admaudit.smart.filter.template.html", | |
Filters: { | |
nbrEntries: "Show up to @value records", | |
contractId: "Contract id is @value", | |
errorInd: "Has errors @value", | |
startDate: "Start date is @value or later", | |
endDate: "End date is @value or earlier", | |
userId1: "Contains user id @value", | |
userId2: "Contains user id @value", | |
userId3: "Contains user id @value", | |
requestType: "Request type is @value" | |
}, | |
Columns: [{ | |
Selected: true, | |
SortName: "LogId", | |
DisplayName: "Log Id", | |
Description: "Log Id", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ContractId", | |
DisplayName: "Contract Id", | |
Description: "Contract Id", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "RequestBegin", | |
DisplayName: "Start Trans", | |
Description: "Transaction start date and time", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "RequestEnd", | |
DisplayName: "End Trans", | |
Description: "Transaction end date and time", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ResponseStatusCode", | |
DisplayName: "Response", | |
Description: "Response Code", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "ResponseData", | |
DisplayName: "Response Data", | |
Description: "Response Data", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ParentLogId", | |
DisplayName: "Parent Id", | |
Description: "Parent Id", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "InsertUserId", | |
DisplayName: "Insert User Id", | |
Description: "User Id of user or impersonated user", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "MasterUserId", | |
DisplayName: "Master User Id", | |
Description: "User Id of user who logged in", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "IsError", | |
DisplayName: "Error", | |
Description: "Contract has an error", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "IsEnrollment", | |
DisplayName: "Enrollment", | |
Description: "Contract was an enrollment", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "Pending", | |
DisplayName: "Pending", | |
Description: "Contract in a pending state", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "IsRetry", | |
DisplayName: "Retry", | |
Description: "Contract has been tried more than once", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "RetryCount", | |
DisplayName: "Retry Count", | |
Description: "Number of times a contract has been retried", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "Info", | |
DisplayName: "Info", | |
Description: "Additional information button", | |
Sortable: false | |
}] | |
}, | |
BBTM: { | |
AuditName: "Blackbaud Tuition Management Contract", | |
SearchTemplate: "admaudit/admaudit.search.template.html", | |
AuditsTemplate: "admaudit/admaudit.audits.template.html", | |
AuditTemplate: "admaudit/admaudit.audit.template.html", | |
InfoTemplate: "admaudit/admaudit.smart.info.template.html", | |
FilterTemplate: "admaudit/admaudit.smart.filter.template.html", | |
Filters: { | |
nbrEntries: "Show up to @value records", | |
contractId: "Contract id is @value", | |
errorInd: "Has errors @value", | |
startDate: "Start date is @value or later", | |
endDate: "End date is @value or earlier", | |
userId1: "Contains user id @value", | |
userId2: "Contains user id @value", | |
userId3: "Contains user id @value", | |
requestType: "Request type is @value" | |
}, | |
Columns: [{ | |
Selected: true, | |
SortName: "LogId", | |
DisplayName: "Log Id", | |
Description: "Log Id", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ContractId", | |
DisplayName: "Contract Id", | |
Description: "Contract Id", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "RequestBegin", | |
DisplayName: "Start Trans", | |
Description: "Transaction start date and time", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "RequestEnd", | |
DisplayName: "End Trans", | |
Description: "Transaction end date and time", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ResponseStatusCode", | |
DisplayName: "Response", | |
Description: "Response Code", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "ResponseData", | |
DisplayName: "Response Data", | |
Description: "Response Data", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "InsertUserId", | |
DisplayName: "Insert User Id", | |
Description: "User Id of user or impersonated user", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "MasterUserId", | |
DisplayName: "Master User Id", | |
Description: "User Id of user who logged in", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "IsError", | |
DisplayName: "Error", | |
Description: "Contract has an error", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "IsEnrollment", | |
DisplayName: "Enrollment", | |
Description: "Contract was an enrollment", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "Pending", | |
DisplayName: "Pending", | |
Description: "Contract in a pending state", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "IsRetry", | |
DisplayName: "Retry", | |
Description: "Contract has been tried more than once", | |
Sortable: true | |
}, { | |
Selected: false, | |
SortName: "RetryCount", | |
DisplayName: "Retry Count", | |
Description: "Number of times a contract has been retried", | |
Sortable: true | |
}, { | |
Selected: true, | |
SortName: "Info", | |
DisplayName: "Info", | |
Description: "Additional information button", | |
Sortable: false | |
}] | |
} | |
}; | |
a.Ms.Filter = Bbm.extend({}); | |
a.Cs.AdmissionsAudit = Bbc.extend({ | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, d.Us.CollectionSort)) | |
}, | |
url: function () { | |
return aP + "DataDirect/AdmissionsAuditGet/" | |
} | |
}); | |
a.Cs.MedicalAudit = Bbc.extend({ | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, d.Us.CollectionSort)) | |
}, | |
url: function () { | |
return aP + "DataDirect/MedicalAuditGet/" | |
} | |
}); | |
a.Cs.SmartAudit = Bbc.extend({ | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, d.Us.CollectionSort)) | |
}, | |
url: function () { | |
return aP + "SmartTuition/ApiLogSearch/" | |
} | |
}); | |
a.Cs.SmartAuditExport = Bbc.extend({ | |
url: function () { | |
return aP + "SmartTuition/ApiLogExport/" | |
} | |
}); | |
a.Cs.BBTMAudit = Bbc.extend({ | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, d.Us.CollectionSort)) | |
}, | |
url: function () { | |
return aP + "TmsContract/ApiLogSearch/" | |
} | |
}); | |
a.Cs.BBTMAuditExport = Bbc.extend({ | |
url: function () { | |
return aP + "TmsContract/ApiLogExport/" | |
} | |
}); | |
a.Cs.Columns = Bbc.extend({}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "admaudit/admaudit.layout.template.html", | |
render: function (e) { | |
var f = this; | |
p3.setTitle(a.Data.AuditConfig.AuditName + " Audit"); | |
$(e).html(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (h) { | |
e.$el.html(h({ | |
auditType: a.Data.AuditConfig.AuditName | |
})); | |
var f, g; | |
switch (a.Data.AuditType) { | |
case "admissions": | |
f = new a.Cs.AdmissionsAudit(); | |
break; | |
case "medical": | |
f = new a.Cs.MedicalAudit(); | |
break; | |
case "smart": | |
f = new a.Cs.SmartAudit(); | |
break; | |
case "bbtm": | |
f = new a.Cs.BBTMAudit(); | |
break | |
} | |
g = new a.Vs.Audits({ | |
collection: f | |
}); | |
p3.rV(new a.Vs.Search({ | |
template: a.Data.AuditConfig.SearchTemplate, | |
callback: function () { | |
g.refreshData() | |
} | |
}), e.$(".search"), false); | |
p3.rV(g, e.$(".results"), false) | |
}) | |
} | |
}); | |
a.Vs.Search = Bb.View.extend({ | |
className: "mb-15", | |
events: { | |
"click .refresh": "refreshRecords", | |
"click .filter-edit": "editFilter", | |
"click .columns-edit": "editColumns", | |
"click .export-create": "createExport" | |
}, | |
render: function (e) { | |
$(e).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.options.template, function (g) { | |
var f = {}; | |
if (e.collection && e.collection.models) { | |
f.collection = e.collection.toJSON() | |
} | |
f.variables = $.extend(true, {}, e.options.variables); | |
e.$el.html(g(f)) | |
}) | |
}, | |
refreshRecords: function (e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
var f = this; | |
if (f.options.callback) { | |
f.options.callback() | |
} | |
}, | |
editFilter: function (e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
var g = this, | |
f; | |
f = c.Vs.Modal2.extend({ | |
template: a.Data.AuditConfig.FilterTemplate, | |
model: a.Data.Filter, | |
size: "md", | |
modalRendered: function () { | |
b.Us.initialize(".date-input", { | |
yearRange: "-1:+1" | |
}) | |
}, | |
modalSave: function () { | |
p3.Layout.Containers.Modal.modal("hide"); | |
if (g.options.callback) { | |
g.options.callback() | |
} | |
return false | |
} | |
}); | |
c.Us.renderModal(new f()) | |
}, | |
editColumns: function (e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
var g = this, | |
f; | |
f = c.Vs.Modal2.extend({ | |
template: "admaudit/admaudit.columns.template.html", | |
collection: a.Data.Columns, | |
size: "md", | |
modalRendered: function () { | |
var h = this; | |
_.each(h.collection.models, function (j) { | |
var i = new a.Vs.Column({ | |
model: j | |
}); | |
p3.rV(i, h.$("tbody"), false) | |
}) | |
}, | |
modalUpdate: function () { | |
return false | |
}, | |
modalSave: function () { | |
p3.Layout.Containers.Modal.modal("hide"); | |
if (g.options.callback) { | |
g.options.callback() | |
} | |
return false | |
} | |
}); | |
c.Us.renderModal(new f()) | |
}, | |
createExport: function (e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
var f = new a.Cs.SmartAuditExport(); | |
f.fetch({ | |
data: a.Data.Filter.toJSON() || {}, | |
cache: false, | |
success: function () { | |
p3.log(f) | |
} | |
}) | |
} | |
}); | |
a.Vs.Column = Bb.View.extend({ | |
template: "admaudit/admaudit.column.template.html", | |
tagName: "tr", | |
events: { | |
"click .checkbox-sky-input": "updateModel" | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).append(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (f) { | |
e.$el.html(f({ | |
model: e.model.toJSON() | |
})) | |
}) | |
}, | |
updateModel: function (e) { | |
var f = this; | |
c.Us.updateModel(e, f.model, "name") | |
} | |
}); | |
a.Vs.Audits = Bb.View.extend({ | |
className: "audits-table", | |
initialize: function () { | |
var e = this; | |
e.template = a.Data.AuditConfig.AuditsTemplate; | |
e.moreResults = false | |
}, | |
events: { | |
"click th.sortable": "sort" | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).html(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var g = this, | |
e, f = g.collection.sortDirection === "asc" ? "p3icon-sortDown" : "p3icon-sortUp"; | |
p3.fT(g.template, function (i) { | |
g.$el.html(i({ | |
columns: a.Data.Columns.toJSON() | |
})); | |
e = g.$("th[data-sort=" + g.collection.sortProp + "]"); | |
e.removeClass("muted"); | |
e.find("i").removeClass("p3icon-sortOff").addClass(f); | |
var h = $(".filter-list"); | |
h.empty(); | |
_.each(a.Data.Filter.toJSON(), function (k, j) { | |
if (k && a.Data.AuditConfig.Filters[j]) { | |
h.append('<span class="label label-success" style="display:inline-block;line-height:1.5;margin:3px 3px;">' + a.Data.AuditConfig.Filters[j].replace("@value", k) + "</span>") | |
} | |
}); | |
g.collection.fetch({ | |
data: a.Data.Filter.toJSON() || {}, | |
cache: false, | |
success: function () { | |
$(".results-count").html(g.collection.models.length + " Records"); | |
_.each(g.collection.models, function (k) { | |
var j = new a.Vs.Audit({ | |
model: k | |
}); | |
p3.rV(j, g.$("tbody"), false) | |
}) | |
} | |
}) | |
}) | |
}, | |
refreshData: function () { | |
var f = this, | |
e = $(".filter-list"); | |
e.empty(); | |
_.each(a.Data.Filter.toJSON(), function (h, g) { | |
if (h && a.Data.AuditConfig.Filters[g]) { | |
e.append('<span class="label label-success" style="display:inline-block;line-height:1.5;margin:3px 3px;">' + a.Data.AuditConfig.Filters[g].replace("@value", h) + "</span>") | |
} | |
}); | |
f.collection.fetch({ | |
data: a.Data.Filter.toJSON() || {}, | |
cache: false, | |
success: function () { | |
$(".results-count").html(f.collection.models.length + " Records"); | |
f.refreshTemplate() | |
} | |
}) | |
}, | |
refreshTemplate: function () { | |
var g = this, | |
e, f = g.collection.sortDirection === "asc" ? "p3icon-sortDown" : "p3icon-sortUp"; | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({ | |
columns: a.Data.Columns.toJSON() | |
})); | |
e = g.$("th[data-sort=" + g.collection.sortProp + "]"); | |
e.removeClass("muted"); | |
e.find("i").removeClass("p3icon-sortOff").addClass(f); | |
_.each(g.collection.models, function (j) { | |
var i = new a.Vs.Audit({ | |
model: j | |
}); | |
p3.rV(i, g.$("tbody"), false) | |
}) | |
}) | |
}, | |
sort: function (e) { | |
var f = this; | |
f.collection.setSort($(e.currentTarget).data("sort")); | |
f.refreshTemplate() | |
} | |
}); | |
a.Vs.Audit = Bb.View.extend({ | |
tagName: "tr", | |
initialize: function () { | |
var e = this; | |
e.template = a.Data.AuditConfig.AuditTemplate | |
}, | |
events: { | |
"click .info": "showInfo" | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).append(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var f = this, | |
e; | |
if (f.model.get("Before") && f.model.get("Before").slice(-1) === "=") { | |
f.model.set({ | |
Before: "[Encrypted]" | |
}) | |
} | |
if (f.model.get("After") && f.model.get("After").slice(-1) === "=") { | |
f.model.set({ | |
After: "[Encrypted]" | |
}) | |
} | |
e = _.object(_.map(_.where(a.Data.Columns.toJSON(), { | |
Selected: true | |
}), function (h, g) { | |
return [h.SortName, f.model.get(h.SortName)] | |
})); | |
p3.fT(f.template, function (g) { | |
f.$el.html(g({ | |
model: e | |
})) | |
}) | |
}, | |
showInfo: function () { | |
var f = this, | |
e; | |
p3.log(f.model.toJSON()); | |
e = c.Vs.Modal2.extend({ | |
template: a.Data.AuditConfig.InfoTemplate, | |
model: f.model, | |
variables: { | |
title: a.Data.AuditConfig.AuditName + " log info", | |
infoText: f.model.get("Addendum") | |
} | |
}); | |
c.Us.renderModal(new e()) | |
} | |
}); | |
Hb.registerHelper("admLogAction", function (f) { | |
var e = ""; | |
if (f) { | |
switch (f.toUpperCase()) { | |
case "D": | |
e = '<span class="label label-danger" style="background-color:#d9534f;">Delete</span>'; | |
break; | |
case "U": | |
e = '<span class="label label-warning" style="background-color:#f0ad4e;">Update</span>'; | |
break; | |
case "I": | |
e = '<span class="label label-success" style="background-color:#5cb85c;">Create</span>'; | |
break; | |
case "W": | |
e = "Waived"; | |
break | |
} | |
} | |
return new Hb.SafeString(e) | |
}); | |
p3.router().route("admaudit/:type", "admissionsaudit", function (e) { | |
switch (e.toLowerCase()) { | |
case "admissions": | |
a.Data.AuditConfig = a.Data.Configs.Admissions; | |
break; | |
case "medical": | |
a.Data.AuditConfig = a.Data.Configs.Medical; | |
break; | |
case "smart": | |
a.Data.AuditConfig = a.Data.Configs.Smart; | |
break; | |
case "bbtm": | |
a.Data.AuditConfig = a.Data.Configs.BBTM; | |
break | |
} | |
a.Data.AuditType = e.toLowerCase(); | |
a.Data.Filter = new a.Ms.Filter({ | |
nbrEntries: 20, | |
andOperator: true | |
}); | |
a.Data.Columns = new a.Cs.Columns(a.Data.AuditConfig.Columns); | |
p3.renderMainPage(new a.Vs.Layout()) | |
}) | |
}(p3.module("admissions/admaudit"))); | |
(function (a) { | |
var d = p3.module("shared/datepicker"), | |
j = p3.module("shared/timepicker"), | |
f = p3.module("shared/feeds"), | |
i = p3.module("utilities/smodal"), | |
h = p3.module("utilities/multifetch"), | |
l = p3.module("utilities/validate"), | |
b = p3.module("shared/base"), | |
e = p3.Us.Enum, | |
c = p3.Us.Culture, | |
g = p3.Us.InfoMessageLibrary, | |
k = p3.Us.Tools; | |
a.Data = {}; | |
a.Ms.DictionaryItem = Bbm.extend({}); | |
a.Cs.Dictionary = Bbc.extend({ | |
model: a.Ms.DictionaryItem, | |
url: "datadirect/DictionaryGet/" | |
}); | |
a.Ms.ScheduleItem = Bbm.extend({}); | |
a.Ms.Visit = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "VisitId", | |
validation: { | |
VisitDate: [{ | |
fn: function (o, m, n) { | |
if ($('[name="VisitDate"]').val() == "" || $('[name="VisitTime"]').val() == "") { | |
return g.P3.RequiredInfoNotEntered | |
} | |
} | |
}, { | |
date: true | |
}], | |
"VisitType.VisitTypeId": [{ | |
required: true, | |
msg: g.P3.RequiredInfoNotEntered | |
}], | |
Candidate: [{ | |
fn: function (o, m, n) { | |
if (l.isEmptier(n.ProspectInstanceId)) { | |
$(".modal-body ul.token-input-list").addClass("box-validate"); | |
return g.P3.RequiredInfoNotEntered | |
} | |
$(".modal-body ul.token-input-list").removeClass("box-validate") | |
} | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/ProspectVisit/" + this.id + "/" : aP + "Admissions/ProspectVisit/" | |
} | |
}); | |
a.Ms.Interview = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "InterviewId", | |
validation: { | |
InterviewDate: [{ | |
fn: function (o, m, n) { | |
if ($('[name="InterviewDate"]').val() == "" || $('[name="InterviewTime"]').val() == "") { | |
return g.P3.RequiredInfoNotEntered | |
} | |
} | |
}, { | |
date: true | |
}], | |
"InterviewType.InterviewTypeId": [{ | |
required: true, | |
msg: g.P3.RequiredInfoNotEntered | |
}], | |
LengthMinutes: [{ | |
fn: function (o, m, n) { | |
if (parseInt(o, 10) < 0 || parseInt(o, 10) > 59) { | |
return g.Admissions.MinuteRange | |
} | |
} | |
}], | |
Candidate: [{ | |
fn: function (o, m, n) { | |
if (l.isEmptier(n.ProspectInstanceId)) { | |
$(".modal-body ul.token-input-list").addClass("box-validate"); | |
return g.P3.RequiredInfoNotEntered | |
} | |
$(".modal-body ul.token-input-list").removeClass("box-validate") | |
} | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/ProspectInterview/" + this.id + "/" : aP + "Admissions/ProspectInterview/" | |
} | |
}); | |
a.Cs.ScheduleItem = Bbc.extend({ | |
model: a.Ms.ScheduleItem, | |
initialize: function (m, n) { | |
this.scheduleType = n.scheduleType || 0 | |
}, | |
url: function () { | |
return aP + "datadirect/AdmissionSchedulingGet/" | |
}, | |
setScheduleTypeFilter: function (m) { | |
this.scheduleType = m | |
} | |
}); | |
a.Cs.CalendarItem = Bbc.extend({ | |
model: a.Ms.ScheduleItem, | |
initialize: function (m, n) { | |
this.startDate = n.startDate || null; | |
this.scheduleDuration = n.scheduleDuration || 0; | |
this.scheduleType = n.scheduleType || 0 | |
}, | |
url: function () { | |
return aP + "datadirect/AdmissionSchedulingGet/" | |
}, | |
setScheduleTypeFilter: function (m) { | |
this.scheduleType = m | |
} | |
}); | |
a.Cs.ProspectInstanceIds = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/ProspectInstanceIdsGet/" | |
} | |
}); | |
a.Cs.ListItems = Bbc.extend({ | |
model: a.Ms.ListItem | |
}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.template.html", | |
initialize: function () { | |
this.todayDate = c.localDateTime(); | |
a.Data.Culture = c.getCulture() | |
}, | |
render: function (m) { | |
var n = this; | |
p3.setTitle("Admissions Calendar"); | |
$(m).html(n.el); | |
h.Us.Fetch({ | |
ADMVisitTypes: { | |
data: new h.Cs.Dictionary(), | |
dataParams: e.DictionaryData.ADMVisitTypes | |
}, | |
ADMInterviewTypes: { | |
data: new h.Cs.Dictionary(), | |
dataParams: e.DictionaryData.ADMInterviewTypes | |
}, | |
ADMStaff: { | |
data: new h.Cs.Dictionary(), | |
dataParams: e.DictionaryData.ADMStaff | |
} | |
}, function (o, q, p) { | |
a.Data.Dictionaries = o; | |
n.renderData() | |
}) | |
}, | |
renderData: function () { | |
var m = this; | |
p3.fT(m.template, function (n) { | |
m.$el.html(n()); | |
p3.rV(new a.Vs.FullCalendarView({}), m.$(".col-center"), false) | |
}) | |
} | |
}); | |
a.Vs.FullCalendarView = Bb.View.extend({ | |
template: "page/page.1col.wide.template.html", | |
events: { | |
"click .scheduleTypeFilter": "setScheduleType", | |
"click #week-view": "weekView", | |
"click #month-view": "monthView", | |
"click #button-today": "gotoToday", | |
"click #button-previous": "movePrevious", | |
"click #button-next": "moveNext" | |
}, | |
initialize: function () { | |
var p = this, | |
n, o, m; | |
n = p3.Data.Context.getSelectedPersona().Id; | |
if (n === 3 || n === 7) { | |
this.options.canEdit = true | |
} else { | |
this.options.canEdit = false | |
} | |
this.options.fullCalendar = true; | |
p.todayDate = c.localDateTime(); | |
o = new Date(p.todayDate.toString()); | |
o.setMonth(o.getMonth() - 3); | |
m = new Date(p.todayDate.toString()); | |
m.setMonth(m.getMonth() + 3); | |
a.Data.startDate = o; | |
a.Data.endDate = m; | |
a.Data.fullView = true | |
}, | |
render: function (m) { | |
var p = this, | |
n = 0, | |
o = '<div id="loading" class="alert alert-info" style="position: absolute; left: 47%; top: 38%; padding:6px; border:solid 1px #ff000;text-align: center;z-index: 1000; "><span id="load-icon"></span></div>'; | |
$(m).html(p.el); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
p3.fT(p.template, function (q) { | |
p.$el.html(q()); | |
$("#col-main").prepend(o); | |
p3.loadingIcon("#load-icon"); | |
p.collection = new a.Cs.ScheduleItem({}, { | |
scheduleType: 0 | |
}); | |
p.collection.fetch({ | |
data: { | |
date: p3.Us.DateTime.format(p.todayDate, "MM/dd/yyyy"), | |
duration: n | |
}, | |
success: function (r, s) { | |
a.Data.scheduleItems = r; | |
a.Us.BuildCalendarEventArray(0, p.options.canEdit); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.AthleticCalendar, p.initializeCalendar, p.options); | |
$("#loading").remove() | |
}, | |
error: function (r, s) { | |
p3.displayError("Error loading schedule") | |
} | |
}) | |
}) | |
}) | |
}, | |
initializeCalendar: function (m) { | |
a.Us.initializeCalendar(m) | |
}, | |
setScheduleType: function (m) { | |
a.Us.setScheduleType(m); | |
a.Us.BuildCalendarEventArray(0, true); | |
$("#col-main").fullCalendar("removeEvents"); | |
$("#col-main").fullCalendar("addEventSource", a.Data.CalendarEvents) | |
}, | |
weekView: function (m) { | |
var n = this; | |
$("#col-main").fullCalendar("changeView", "basicWeek"); | |
n.ensureData() | |
}, | |
monthView: function (m) { | |
var n = this; | |
$("#col-main").fullCalendar("changeView", "month"); | |
n.ensureData() | |
}, | |
gotoToday: function (m) { | |
var n = this; | |
$("#col-main").fullCalendar("today"); | |
n.ensureData() | |
}, | |
movePrevious: function (m) { | |
var n = this; | |
$("#col-main").fullCalendar("prev"); | |
n.ensureData() | |
}, | |
moveNext: function (m) { | |
var n = this; | |
$("#col-main").fullCalendar("next"); | |
n.ensureData() | |
}, | |
ensureData: function () { | |
var q = this, | |
o = 0, | |
p, n = $("#col-main").fullCalendar("getView"), | |
m; | |
if (n.visStart < a.Data.startDate) { | |
o = -3; | |
p = a.Data.startDate | |
} else { | |
if (n.visEnd > a.Data.endDate) { | |
o = 3; | |
p = a.Data.endDate | |
} | |
} | |
if (o != 0) { | |
m = new a.Cs.CalendarItem({}, { | |
startDate: k.shortDateDisplayNoTime(p), | |
scheduleDuration: o | |
}); | |
m.fetch({ | |
data: { | |
date: k.shortDateDisplayNoTime(p), | |
duration: o | |
}, | |
error: function (r, s) { | |
p3.displayError("Error loading additional events") | |
}, | |
success: function (r, s) { | |
m.each(function (t) { | |
if (o == 3) { | |
a.Data.scheduleItems.push(t) | |
} else { | |
a.Data.scheduleItems.unshift(t) | |
} | |
}); | |
if (o == 3) { | |
a.Data.endDate.setMonth(a.Data.endDate.getMonth() + 3) | |
} else { | |
a.Data.startDate.setMonth(a.Data.startDate.getMonth() - 3) | |
} | |
a.Us.BuildCalendarEventArray(0, q.options.canEdit); | |
$("#col-main").fullCalendar("removeEvents"); | |
$("#col-main").fullCalendar("addEventSource", a.Data.CalendarEvents) | |
} | |
}) | |
} | |
} | |
}); | |
a.Us.setScheduleType = function (n) { | |
var m = $(n.currentTarget), | |
o = 0; | |
if (n.currentTarget.id != "scheduleFilterAll") { | |
if (m.hasClass("active")) { | |
m.removeClass("active cal-filter-on").addClass("cal-filter-off"); | |
m.find("i").removeClass("p3icon-ok").addClass("p3icon-check") | |
} else { | |
m.addClass("active cal-filter-on").removeClass("cal-filter-off"); | |
m.find("i").removeClass("p3icon-check").addClass("p3icon-ok") | |
} | |
$(".scheduleTypeFilter").each(function () { | |
if ($(this).hasClass("active")) { | |
o += parseInt($(this).data("val"), 10) | |
} | |
}); | |
if (o === 7) { | |
o = 0 | |
} | |
} | |
if (o == 0) { | |
$(".scheduleTypeFilter").removeClass("active cal-filter-on").addClass("cal-filter-off"); | |
$(".filter-row .btn-group i.p3icon-ok").removeClass("p3icon-ok").addClass("p3icon-check"); | |
$("#scheduleFilterAll").addClass("active cal-filter-on").removeClass("cal-filter-off"); | |
$("#scheduleFilterAll").find("i").removeClass("p3icon-check").addClass("p3icon-ok") | |
} else { | |
$("#scheduleFilterAll").removeClass("active cal-filter-on").addClass("cal-filter-off"); | |
$("#scheduleFilterAll").find("i").removeClass("p3icon-ok").addClass("p3icon-check") | |
} | |
a.Data.scheduleItems.setScheduleTypeFilter(o) | |
}; | |
a.Us.initializeCalendar = function (m) { | |
var n; | |
n = a.Data.Culture.App.ShortMonthDayYearPattern.split("Y").join("y").split("D").join("d"); | |
if (n.indexOf("d") < n.indexOf("M")) { | |
n = n.split(" yyyy").join(" [yyyy]").split(" MMM").join(" [MMM]") + "{ '-' " + n + "}" | |
} else { | |
n = n.split(" yyyy").join(" [yyyy]") + "{ '-' " + n.split(" MMM").join(" [MMM]") + "}" | |
} | |
$("#col-main").fullCalendar({ | |
editable: m.canEdit, | |
disableResizing: true, | |
header: { | |
left: "", | |
center: "title", | |
right: "" | |
}, | |
defaultView: "month", | |
titleFormat: { | |
month: a.Data.Culture.App.YearMonthPattern.replace(",", "").split("Y").join("y"), | |
week: n, | |
day: a.Data.Culture.App.ShortMonthDayYearPattern | |
}, | |
columnFormat: { | |
week: a.Data.Culture.App.ShortDayDatePattern.split("D").join("d") | |
}, | |
firstDay: a.Data.Culture.App.firstDay, | |
events: a.Data.CalendarEvents, | |
eventRender: function (p, o) { | |
o.find(".fc-event-title").html('<span style="font-size: 12px; font-weight: bold;">' + o.find(".fc-event-time").text() + " </span>" + o.find(".fc-event-title").text()) | |
}, | |
dayClick: function (q, o, s, v) { | |
var u = c.displayDate(q, "shortDate") + " " + c.displayDate(q, "shortTime"), | |
r = true, | |
t = new a.Ms.Visit({ | |
VisitDate: u, | |
VisitType: { | |
"$type": "clBLL.nAdmissions.VisitType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}), | |
p = new a.Vs.CalendarModal({ | |
model: t, | |
dictionaries: a.Data.Dictionaries, | |
variables: { | |
visit: r | |
} | |
}); | |
i.Us.renderModal(p) | |
}, | |
eventClick: function (o, s, u) { | |
var t, r, q, p; | |
switch (o.type) { | |
case "V": | |
t = new a.Ms.Visit({ | |
Name: o.name | |
}); | |
r = true; | |
q = 12; | |
p = "VisitId"; | |
break; | |
case "I": | |
t = new a.Ms.Interview({ | |
Name: o.name | |
}); | |
r = false; | |
q = 7; | |
p = "InterviewId"; | |
break | |
} | |
if (t) { | |
t.fetch({ | |
cache: false, | |
data: { | |
id: o.id, | |
prospectInstanceId: o.instanceId, | |
userId: o.userId | |
}, | |
success: function (v, w) { | |
h.Us.Fetch({ | |
dictionary_127: { | |
data: new h.Cs.Dictionary(), | |
dataParams: { | |
id: 127, | |
keyName: "checklist_item_id", | |
valueName: "checklist_item_description", | |
inputParam: "prospect_instance_id=" + v.get("ProspectInstanceId") + "[i],data_collection_type_id=" + q + "[i],data_collection_pk=" + v.get(p) + "[i]" | |
} | |
}, | |
dictionary_128: { | |
data: new h.Cs.Dictionary(), | |
dataParams: { | |
id: 128, | |
keyName: "item_status_id", | |
valueName: "item_status_desc", | |
inputParam: "data_collection_type_id=" + q + "[i]" | |
} | |
} | |
}, function (y, A, z) { | |
var B = $.extend(true, {}, a.Data.Dictionaries), | |
x; | |
B.dictionary_127 = y.dictionary_127; | |
B.dictionary_128 = y.dictionary_128; | |
x = new a.Vs.CalendarModal({ | |
model: v, | |
dictionaries: B, | |
variables: { | |
visit: r | |
} | |
}); | |
i.Us.renderModal(x) | |
}) | |
} | |
}) | |
} | |
return false | |
}, | |
eventDragStart: function (o, p, q, r) { | |
if (!o.canDrag) { | |
p.preventDefault() | |
} | |
}, | |
eventDrop: function (q, p, s, o, t, r, u, x) { | |
var w, v; | |
x.newDate = c.getDateString(q.start) + " " + c.getTimeString(q.start); | |
switch (q.type) { | |
case "V": | |
w = new a.Ms.Visit(); | |
v = "VisitDate"; | |
break; | |
case "I": | |
w = new a.Ms.Interview(); | |
v = "InterviewDate"; | |
break | |
} | |
w.fetch({ | |
cache: false, | |
data: { | |
id: q.id, | |
prospectInstanceId: q.instanceId | |
}, | |
success: function (z, A) { | |
var y = {}; | |
y[v] = x.newDate; | |
w.set(y); | |
w.save({}, { | |
error: function (C, B) { | |
p3.displayError("Error moving calendar item") | |
} | |
}) | |
} | |
}) | |
}, | |
loading: function (o) { | |
var p = '<div id="loading" class="alert alert-info" style="position: absolute; left: 47%; top: 38%; padding:6px; border:solid 1px #ff000;text-align: center;z-index: 1000; "><span id="load-icon"></span>Loading ...</div>'; | |
if (o) { | |
$("#col-main").prepend(p); | |
p3.loadingIcon("#load-icon") | |
} else { | |
$("#loading").remove() | |
} | |
}, | |
viewDisplay: function (u) { | |
var p = 0, | |
o, q = false, | |
t = false, | |
r = false, | |
s = false; | |
if (p == 0) { | |
q = true | |
} | |
if (p == 1 || p == 3 || p == 5) { | |
t = true | |
} | |
if (p == 2 || p == 3 || p == 6) { | |
r = true | |
} | |
if (p == 4 || p == 5 || p == 6) { | |
s = true | |
} | |
p3.fT("admissions/scheduling.calendar.header.template.html", function (v) { | |
if ($("tr.calendar-tile").length === 0) { | |
$(".fc-header").html(v({ | |
typeAll: q, | |
typeVisits: t, | |
typeInterviews: r, | |
typeRegistrations: s, | |
date: u.title | |
})) | |
} | |
p3.rV(new f.Vs.iCalAdmissions({ | |
personaId: 7, | |
sdate: a.Data.startDate, | |
edate: a.Data.endDate | |
}), $(".rss-schedule"), true); | |
$(".fc-widget-header").addClass("cal-column-header"); | |
$(".fc-content").addClass("white-bgc"); | |
$(".date-row .btn").removeClass("active"); | |
o = new Date().getTime(); | |
if (o >= u.visStart.getTime() && o <= u.visEnd.getTime()) { | |
$("#button-today").prop("disabled", true) | |
} else { | |
$("#button-today").prop("disabled", false) | |
} | |
switch (u.name) { | |
case "basicWeek": | |
$("#week-view").addClass("active"); | |
break; | |
case "month": | |
$("#month-view").addClass("active"); | |
break | |
} | |
$("#col-main").css("margin-bottom", "20px") | |
}) | |
} | |
}) | |
}; | |
a.Us.BuildCalendarEventArray = function (s, y) { | |
var r = [], | |
w = "", | |
n = "", | |
m, q, p, v = false, | |
t = false, | |
u = false, | |
x = a.Data.scheduleItems.scheduleType, | |
o; | |
v = (x == 0) || (x == 1) || (x == 3) || (x == 5); | |
t = (x == 0) || (x == 2) || (x == 3) || (x == 6); | |
u = (x == 0) || (x == 4) || (x == 5) || (x == 6); | |
_.each(a.Data.scheduleItems.models, function (z) { | |
q = false; | |
p = false; | |
m = false; | |
o = ""; | |
if (s > 0 || x == 0 || (v && z.get("ScheduleType") === "V") || (t && z.get("ScheduleType") === "I") || (u && z.get("ScheduleType") === "R")) { | |
if (z.get("StartTime") == "00:00:00") { | |
m = true | |
} | |
switch (z.get("ScheduleType")) { | |
case "V": | |
w = '<span style="font-size:12px;"><strong>' + z.get("Name") + "</strong><br />Visit: " + z.get("ScheduleDesc") + "</span>"; | |
n = "#DDEFFC"; | |
p = true; | |
q = true; | |
o = '<br/><span style="color:#595858;">'; | |
if (z.get("Staff")) { | |
o += "Staff: " + z.get("Staff") + "<br />" | |
} | |
if (z.get("ScheduledWith") !== null) { | |
o += "Guide: " + z.get("ScheduledWith") + "<br />" | |
} else { | |
if (z.get("ScheduledOther") !== null) { | |
o += "Guide: " + z.get("ScheduledOther") + "<br />" | |
} | |
} | |
o += "</span>"; | |
break; | |
case "I": | |
w = '<span style="font-size:12px;"><strong>' + z.get("Name") + "</strong><br />Interview: " + z.get("ScheduleDesc") + "</span>"; | |
n = "#C5F6C5"; | |
p = true; | |
q = true; | |
o = '<br/><span style="color:#595858;">'; | |
if (z.get("Staff")) { | |
o += "Staff: " + z.get("Staff") + "<br />" | |
} | |
if (z.get("ScheduledWith") !== null) { | |
o += "Interviewer: " + z.get("ScheduledWith") + "<br />" | |
} else { | |
if (z.get("ScheduledOther") !== null) { | |
o += "Interviewer: " + z.get("ScheduledOther") + "<br />" | |
} | |
} | |
o += "</span>"; | |
break; | |
case "R": | |
w = '<span style="font-size:12px;"><strong></strong><br />Registration: ' + z.get("ScheduleDesc") + "</span>"; | |
n = "#F9E9D2"; | |
break | |
} | |
r.push({ | |
title: w + o, | |
start: c.getDate(z.get("ScheduleDate")), | |
end: c.getDate(z.get("EndDate")), | |
backgroundColor: n, | |
borderColor: "#c6c4c4", | |
allDay: m, | |
canEdit: q, | |
editable: q, | |
id: z.get("ScheduleId"), | |
instanceId: z.get("ProspectInstanceId"), | |
userId: z.get("UserId"), | |
name: z.get("Name"), | |
type: z.get("ScheduleType"), | |
canDrag: p | |
}) | |
} | |
}); | |
a.Data.CalendarEvents = r | |
}; | |
a.Us.updateHeaderDisplay = function (r) { | |
var o = r.visStart, | |
n = r.visEnd, | |
m, p = "", | |
q; | |
switch (r.name) { | |
case "basicDay": | |
p = c.displayDate(c.getDateString(o), "fullDate"); | |
break; | |
case "basicWeek": | |
m = new Date(n.getTime() - (24 * 60 * 60 * 1000)); | |
p = c.getDateRangeString(o, m); | |
break; | |
case "month": | |
m = new Date(o.getTime() + (8 * 24 * 60 * 60 * 1000)); | |
p = c.displayDate(c.getDateString(m), "monthYear"); | |
break | |
} | |
$("#date-display-label").html(p); | |
$("#small-date-display-label").html(p); | |
q = c.localDateTime(); | |
if (q > r.visStart && q < r.visEnd) { | |
$("#button-today").addClass("active") | |
} else { | |
$("#button-today").removeClass("active") | |
} | |
$("#view-buttons .btn-inverseCal").removeClass("active"); | |
switch (r.name) { | |
case "basicWeek": | |
$("#week-view").addClass("active"); | |
break; | |
case "month": | |
$("#month-view").addClass("active"); | |
break; | |
case "basicDay": | |
$("#day-view").addClass("active"); | |
break | |
} | |
}; | |
a.Us.InitializeAutoComplete = function (p, n, m, o) { | |
$.ajax({ | |
url: aP + "datadirect/UsersByRole?format=json&parentRoleId=" + m + "&resultSize=4000", | |
cache: false, | |
success: function (q) { | |
_.each(q, function (s) { | |
s.FullName = ""; | |
s.FullName += (s.FirstName) ? s.FirstName + " " : ""; | |
s.FullName += s.LastName || ""; | |
s.id = s.Id | |
}); | |
var r = null; | |
_.each(r, function (s) { | |
s.FullName = ""; | |
s.FullName += (s.FirstName) ? s.FirstName + " " : ""; | |
s.FullName += s.LastName || ""; | |
s.id = s.UserId | |
}); | |
n.tokenInput(q, { | |
minChars: 2, | |
searchDelay: 100, | |
preventDuplicates: true, | |
animateDropdown: false, | |
propertyToSearch: "FullName", | |
hintText: "Type to find a candidate", | |
classes: { | |
tokenList: "token-input-list span3 col-md-3", | |
dropdown: "token-input-dropdown input-xlarge" | |
}, | |
resultsFormatter: function (s) { | |
return "<li>" + s.FullName + "</li>" | |
}, | |
prePopulate: r, | |
tokenLimit: o, | |
onAdd: function (s) { | |
p.pidCollection = new a.Cs.ProspectInstanceIds(); | |
p.pidCollection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: s.id | |
}, | |
success: function (t, u) { | |
p.options.model.set("ProspectInstanceId", t.models[0].get("ProspectInstanceId")); | |
if (p.options.visit) { | |
p.dataType = 12; | |
p.dataPk = null | |
} else { | |
p.dataType = 7; | |
p.dataPk = null | |
} | |
h.Us.Fetch({ | |
dictionary_127: { | |
data: new h.Cs.Dictionary(), | |
dataParams: { | |
id: 127, | |
keyName: "checklist_item_id", | |
valueName: "checklist_item_description", | |
inputParam: "prospect_instance_id=" + p.model.get("ProspectInstanceId") + "[i],data_collection_type_id=" + p.dataType + "[i],data_collection_pk=null" | |
} | |
}, | |
dictionary_128: { | |
data: new h.Cs.Dictionary(), | |
dataParams: { | |
id: 128, | |
keyName: "item_status_id", | |
valueName: "item_status_desc", | |
inputParam: "data_collection_type_id=" + p.dataType + "[i]" | |
} | |
} | |
}, function (v, x, w) { | |
if (v.dictionary_127.length) { | |
$(".checklist-item").removeClass("hide"); | |
_.each(v.dictionary_127, function (y) { | |
$('select[name="ChecklistItemId"]').append($("<option />").val(y.dd_id).text(y.dd_description)) | |
}); | |
_.each(v.dictionary_128, function (y) { | |
$('select[name="ChecklistItemStatus"]').append($("<option />").val(y.dd_id).text(y.dd_description)) | |
}) | |
} | |
}) | |
} | |
}) | |
}, | |
onDelete: function () { | |
p.options.model.set("ProspectInstanceId", null); | |
$('select[name="ChecklistItemId"]').empty().append($("<option />").val("").text("-- Select an Option --")); | |
$('select[name="ChecklistItemStatus"]').empty().append($("<option />").val("").text("-- Select an Option --")); | |
$(".checklist-item").addClass("hide"); | |
$(".checklist-status").addClass("hide") | |
} | |
}) | |
} | |
}) | |
}; | |
a.Vs.CalendarModal = i.Vs.Modal2.extend({ | |
template: "admissions/scheduling.calendar.edit.template.html", | |
size: "md", | |
events: { | |
"keyup textarea.counter-input": "updateCharacterCounter", | |
'change select[name="ChecklistItemId"]': "toggleChecklistStatus", | |
"click #switch-add-schedule-link": "switchAddMode" | |
}, | |
modalRendered: function (n) { | |
var m = this; | |
d.Us.initialize(".date-input", { | |
yearRange: "-30:+20" | |
}); | |
j.Us.initialize(".time-input"); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.TokenInput, function () { | |
if (m.$('[name="Candidate"]').length > 0) { | |
a.Us.InitializeAutoComplete(m, $('[name="Candidate"]'), 554, 1) | |
} | |
}); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.AutoSize, function () { | |
m.$("textarea").autosize() | |
}); | |
_.each(m.$("textarea.counter-input"), function (o) { | |
$(o).trigger($.Event("keyup")) | |
}); | |
m.initializeFileUpload_File(); | |
if ($('select[name="ChecklistItemId"] option:selected').val() != "") { | |
$(".checklist-status").removeClass("hide") | |
} | |
}, | |
switchAddMode: function (n) { | |
var p = this, | |
o, q, m; | |
n.preventDefault(); | |
n.stopPropagation(); | |
p3.Layout.Containers.Modal.modal("hide"); | |
if (p.options.variables.visit == true) { | |
o = false; | |
q = new a.Ms.Interview({ | |
InterviewDate: p.model.get("VisitDate"), | |
InterviewType: { | |
"$type": "clBLL.nAdmissions.InterviewType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} else { | |
o = true; | |
q = new a.Ms.Visit({ | |
VisitDate: p.model.get("InterviewDate"), | |
VisitType: { | |
"$type": "clBLL.nAdmissions.VisitType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} | |
m = new a.Vs.CalendarModal({ | |
model: q, | |
dictionaries: a.Data.Dictionaries, | |
variables: { | |
visit: o | |
} | |
}); | |
i.Us.renderModal(m) | |
}, | |
updateCharacterCounter: function (n) { | |
var o = this, | |
m = o.$(n.currentTarget); | |
m.siblings().find(".characterCounter").html(m.val().length); | |
if (m.val().length > 4000) { | |
m.siblings().find(".characterCounter").addClass("badge-important") | |
} else { | |
m.siblings().find(".characterCounter").removeClass("badge-important") | |
} | |
}, | |
toggleChecklistStatus: function (m) { | |
var n = this; | |
if ($(m.target).prop("value") == "") { | |
n.$('select[name="ChecklistItemStatus"]').val(""); | |
n.$(".checklist-status").addClass("hide") | |
} else { | |
n.$(".checklist-status").removeClass("hide") | |
} | |
}, | |
modalSavedSuccess: function (m) { | |
a.Us.UpdateCalendar(0, true) | |
} | |
}); | |
a.Us.UpdateCalendar = function (o) { | |
var m = $("#col-main").fullCalendar("getView"), | |
p = new Date(m.visStart), | |
n = new Date(m.visStart); | |
p.setMonth(m.visStart.getMonth() - 3); | |
n.setMonth(m.visStart.getMonth() + 3); | |
a.Data.startDate = p; | |
a.Data.endDate = n; | |
a.Data.scheduleItems.reset(); | |
a.Data.scheduleItems.startDate = k.shortDateDisplayNoTime(m.visStart); | |
a.Data.scheduleItems.fetch({ | |
data: { | |
date: p3.Us.DateTime.format(new Date(m.visStart), "MM/dd/yyyy"), | |
duration: 0 | |
}, | |
error: function (q, r) { | |
p3.displayError("Error loading schedule") | |
}, | |
success: function (q, r) { | |
var s = 0; | |
a.Us.BuildCalendarEventArray(s, true); | |
$("#col-main").fullCalendar("removeEvents"); | |
$("#col-main").fullCalendar("addEventSource", a.Data.CalendarEvents) | |
} | |
}) | |
} | |
}(p3.module("admissions/admissionscalendar"))); | |
(function (a) { | |
var b = p3.module("shared/base"), | |
d = p3.module("utilities/smodal"), | |
c = p3.Us.InfoMessageLibrary; | |
a.Ms.CommentBox = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "SchoolId", | |
validation: { | |
CandidateProgressText: [{ | |
maxLength: 4000, | |
msg: c.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/AdmissionOptions/" + this.id + "/" : aP + "admissions/AdmissionOptions/" | |
} | |
}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "admissions/admissionoptions.progresstext.template.html", | |
events: { | |
"click button.save": "saveProgressText" | |
}, | |
initialize: function () { | |
var e = this; | |
e.model = new a.Ms.CommentBox({ | |
SchoolId: p3.Data.SchoolContext.attributes.SchoolInfo.SchoolId | |
}); | |
e.model.defaults = $.extend(true, {}, e.model.attributes); | |
e.Containers = {}; | |
Bb.Validation.bind(e, { | |
forceUpdate: true, | |
selector: e.selector | |
}) | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).append(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
e.model.off("sync"); | |
p3.fT(e.template, function (f) { | |
e.model.fetch({ | |
cache: false, | |
success: function (h, i) { | |
var g; | |
e.$el.html(f({ | |
model: e.model.toJSON() | |
})); | |
g = e.$(".tinyeditor"); | |
d.Us.showHtmlEditor(e, "tinyeditor", function () { | |
$.each(g, function () { | |
var j = tinyMCE.get(this.id); | |
e.$(".characterCounter").html(j.save().length); | |
if (j.save().length > 4000) { | |
e.$(".characterCounter").addClass("bb-badge-danger") | |
} else { | |
e.$(".characterCounter").removeClass("bb-badge-danger") | |
} | |
j.onChange.add(function (l, k) { | |
e.$(".characterCounter").html(l.save().length); | |
if (l.save().length > 4000) { | |
e.$(".characterCounter").addClass("bb-badge-danger") | |
} else { | |
e.$(".characterCounter").removeClass("bb-badge-danger") | |
} | |
$.each(g, function () { | |
var m = {}; | |
m[this.name] = tinyMCE.get(this.id).save(); | |
e.model.set(m) | |
}) | |
}); | |
j.onKeyUp.add(function (l, k) { | |
e.$(".characterCounter").html(l.save().length); | |
if (l.save().length > 4000) { | |
e.$(".characterCounter").addClass("bb-badge-danger") | |
} else { | |
e.$(".characterCounter").removeClass("bb-badge-danger") | |
} | |
$.each(g, function () { | |
var m = {}; | |
m[this.name] = tinyMCE.get(this.id).save(); | |
e.model.set(m) | |
}) | |
}) | |
}) | |
}) | |
} | |
}) | |
}) | |
}, | |
saveProgressText: function () { | |
var f = this, | |
e = f.$(".save"); | |
e.button("loading").prop("disabled", true); | |
$.each(f.$(".tinyeditor"), function () { | |
var g = {}; | |
g[this.id] = tinyMCE.get(this.id).save(); | |
f.model.set(g) | |
}); | |
if (f.model.isValid(true)) { | |
f.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(f.model.attributes, function (i, g, h) { | |
d.Us.setFieldsToNull(f.model, i, g, h, "") | |
}); | |
f.model.save({}, { | |
dataParam: f.options.dataParam, | |
complete: function () { | |
e.button("reset") | |
} | |
}) | |
} else { | |
e.button("reset") | |
} | |
} | |
}); | |
p3.router().route("admissionOptions", "admissionOptions", function (e) { | |
p3.renderMainPage(new a.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/admissionOptions"))); | |
(function (a) { | |
var j = p3.module("system/mycalendar"), | |
l = p3.module("utilities/smodal"), | |
d = p3.module("shared/datepicker"), | |
n = p3.module("shared/timepicker"), | |
f = p3.module("cms/shared/event"), | |
i = p3.module("utilities/multifetch"), | |
p = p3.module("utilities/validate"), | |
b = p3.module("shared/base"), | |
g = p3.module("admissions/form/forms"), | |
m = p3.module("utilities/sort"), | |
k = p3.module("officialNote"), | |
h = p3.Us.InfoMessageLibrary, | |
c = p3.Us.Culture, | |
e = p3.Us.Enum, | |
o = p3.Us.Tools; | |
a.Ms.Settings = Bbm.extend({ | |
idAttribute: "SchoolId", | |
validation: { | |
"VisitNotification.CandidateConfirm.SendTo": [{ | |
fn: "VisitCandidateConfirm" | |
}], | |
"VisitNotification.CandidateConfirm.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.VisitNotification.CandidateConfirm.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"VisitNotification.CandidateConfirm.FromName": [{ | |
fn: "VisitCandidateConfirm" | |
}], | |
"VisitNotification.CandidateConfirm.Subject": [{ | |
fn: "VisitCandidateConfirm" | |
}], | |
"VisitNotification.CandidateConfirm.Body": [{ | |
fn: "VisitCandidateConfirm" | |
}], | |
"VisitNotification.CandidateReminder.SendTo": [{ | |
fn: "VisitCandidateReminder" | |
}], | |
"VisitNotification.CandidateReminder.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.VisitNotification.CandidateReminder.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"VisitNotification.CandidateReminder.FromName": [{ | |
fn: "VisitCandidateReminder" | |
}], | |
"VisitNotification.CandidateReminder.ReminderOption": [{ | |
fn: "VisitCandidateReminder" | |
}], | |
"VisitNotification.CandidateReminder.Subject": [{ | |
fn: "VisitCandidateReminder" | |
}], | |
"VisitNotification.CandidateReminder.Body": [{ | |
fn: "VisitCandidateReminder" | |
}], | |
"VisitNotification.ParticipantConfirm.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.VisitNotification.ParticipantConfirm.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"VisitNotification.ParticipantConfirm.FromName": [{ | |
fn: "VisitParticipantConfirm" | |
}], | |
"VisitNotification.ParticipantConfirm.Subject": [{ | |
fn: "VisitParticipantConfirm" | |
}], | |
"VisitNotification.ParticipantConfirm.Body": [{ | |
fn: "VisitParticipantConfirm" | |
}], | |
"VisitNotification.ParticipantReminder.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.VisitNotification.ParticipantReminder.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"VisitNotification.ParticipantReminder.FromName": [{ | |
fn: "VisitParticipantReminder" | |
}], | |
"VisitNotification.ParticipantReminder.Subject": [{ | |
fn: "VisitParticipantReminder" | |
}], | |
"VisitNotification.ParticipantReminder.ReminderOption": [{ | |
fn: "VisitParticipantReminder" | |
}], | |
"VisitNotification.ParticipantReminder.Body": [{ | |
fn: "VisitParticipantReminder" | |
}], | |
"InterviewNotification.CandidateConfirm.SendTo": [{ | |
fn: "InterviewCandidateConfirm" | |
}], | |
"InterviewNotification.CandidateConfirm.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.InterviewNotification.CandidateConfirm.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"InterviewNotification.CandidateConfirm.FromName": [{ | |
fn: "InterviewCandidateConfirm" | |
}], | |
"InterviewNotification.CandidateConfirm.Subject": [{ | |
fn: "InterviewCandidateConfirm" | |
}], | |
"InterviewNotification.CandidateConfirm.Body": [{ | |
fn: "InterviewCandidateConfirm" | |
}], | |
"InterviewNotification.CandidateReminder.SendTo": [{ | |
fn: "InterviewCandidateReminder" | |
}], | |
"InterviewNotification.CandidateReminder.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.InterviewNotification.CandidateReminder.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"InterviewNotification.CandidateReminder.FromName": [{ | |
fn: "InterviewCandidateReminder" | |
}], | |
"InterviewNotification.CandidateReminder.ReminderOption": [{ | |
fn: "InterviewCandidateReminder" | |
}], | |
"InterviewNotification.CandidateReminder.Subject": [{ | |
fn: "InterviewCandidateReminder" | |
}], | |
"InterviewNotification.CandidateReminder.Body": [{ | |
fn: "InterviewCandidateReminder" | |
}], | |
"InterviewNotification.ParticipantConfirm.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.InterviewNotification.ParticipantConfirm.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"InterviewNotification.ParticipantConfirm.FromName": [{ | |
fn: "InterviewParticipantConfirm" | |
}], | |
"InterviewNotification.ParticipantConfirm.Subject": [{ | |
fn: "InterviewParticipantConfirm" | |
}], | |
"InterviewNotification.ParticipantConfirm.Body": [{ | |
fn: "InterviewParticipantConfirm" | |
}], | |
"InterviewNotification.ParticipantReminder.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.InterviewNotification.ParticipantReminder.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"InterviewNotification.ParticipantReminder.FromName": [{ | |
fn: "InterviewParticipantReminder" | |
}], | |
"InterviewNotification.ParticipantReminder.ReminderOption": [{ | |
fn: "InterviewParticipantReminder" | |
}], | |
"InterviewNotification.ParticipantReminder.Subject": [{ | |
fn: "InterviewParticipantReminder" | |
}], | |
"InterviewNotification.ParticipantReminder.Body": [{ | |
fn: "InterviewParticipantReminder" | |
}], | |
"SelfSchedulingVisit.SelfScheduleNum": [{ | |
fn: function (t, q, r) { | |
var s = this; | |
if (r.SelfSchedulingVisit.AllowSelfSchedule && r.SelfSchedulingVisit.ControlSelfSchedule) { | |
if (p.isEmptier(t)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (Bb.Validation.validators.pattern(t, q, "digits", s)) { | |
return h.P3.DigitError | |
} | |
if (Bb.Validation.validators.max(t, q, 365, s)) { | |
return "Maximum value is 365" | |
} | |
} | |
} | |
}], | |
"SelfSchedulingVisit.SelfScheduleOpeningsNum": [{ | |
fn: function (t, q, r) { | |
var s = this; | |
if (r.SelfSchedulingVisit.AllowSelfSchedule && r.SelfSchedulingVisit.ControlSelfScheduleOpenings) { | |
if (p.isEmptier(t)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (Bb.Validation.validators.pattern(t, q, "digits", s)) { | |
return h.P3.DigitError | |
} | |
if (Bb.Validation.validators.max(t, q, 365, s)) { | |
return "Maximum value is 365" | |
} | |
} | |
} | |
}], | |
"SelfSchedulingInterview.SelfScheduleNum": [{ | |
fn: function (t, q, r) { | |
var s = this; | |
if (r.SelfSchedulingInterview.AllowSelfSchedule && r.SelfSchedulingInterview.ControlSelfSchedule) { | |
if (p.isEmptier(t)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (Bb.Validation.validators.pattern(t, q, "digits", s)) { | |
return h.P3.DigitError | |
} | |
if (Bb.Validation.validators.max(t, q, 365, s)) { | |
return "Maximum value is 365" | |
} | |
} | |
} | |
}], | |
"SelfSchedulingInterview.SelfScheduleOpeningsNum": [{ | |
fn: function (t, q, r) { | |
var s = this; | |
if (r.SelfSchedulingInterview.AllowSelfSchedule && r.SelfSchedulingInterview.ControlSelfScheduleOpenings) { | |
if (p.isEmptier(t)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (Bb.Validation.validators.pattern(t, q, "digits", s)) { | |
return h.P3.DigitError | |
} | |
if (Bb.Validation.validators.max(t, q, 365, s)) { | |
return "Maximum value is 365" | |
} | |
} | |
} | |
}], | |
"SelfSchedulingNotification.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.SelfSchedulingNotification.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"SelfSchedulingNotification.FromName": [{ | |
fn: "SelfSchedulingNotification" | |
}], | |
"SelfSchedulingNotification.Subject": [{ | |
fn: "SelfSchedulingNotification" | |
}], | |
"SelfSchedulingNotification.Body": [{ | |
fn: "SelfSchedulingNotification" | |
}], | |
"SelfReSchedulingNotification.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.SelfReSchedulingNotification.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"SelfReSchedulingNotification.FromName": [{ | |
fn: "SelfReSchedulingNotification" | |
}], | |
"SelfReSchedulingNotification.Subject": [{ | |
fn: "SelfReSchedulingNotification" | |
}], | |
"SelfReSchedulingNotification.Body": [{ | |
fn: "SelfReSchedulingNotification" | |
}], | |
"SelfSchedulingCancellationNotification.ReplyAddress": [{ | |
fn: function (s, q, r) { | |
if (r.SelfSchedulingCancellationNotification.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!Bb.Validation.patterns.email.test(s)) { | |
return h.P3.EmailError | |
} | |
} | |
} | |
}], | |
"SelfSchedulingCancellationNotification.FromName": [{ | |
fn: "SelfSchedulingCancellationNotification" | |
}], | |
"SelfSchedulingCancellationNotification.Subject": [{ | |
fn: "SelfSchedulingCancellationNotification" | |
}], | |
"SelfSchedulingCancellationNotification.Body": [{ | |
fn: "SelfSchedulingCancellationNotification" | |
}] | |
}, | |
VisitCandidateConfirm: function (s, q, r) { | |
if (r.VisitNotification.CandidateConfirm.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
VisitCandidateReminder: function (s, q, r) { | |
if (r.VisitNotification.CandidateReminder.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
VisitParticipantConfirm: function (s, q, r) { | |
if (r.VisitNotification.ParticipantConfirm.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
VisitParticipantReminder: function (s, q, r) { | |
if (r.VisitNotification.ParticipantReminder.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
InterviewCandidateConfirm: function (s, q, r) { | |
if (r.InterviewNotification.CandidateConfirm.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
InterviewCandidateReminder: function (s, q, r) { | |
if (r.InterviewNotification.CandidateReminder.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
InterviewParticipantConfirm: function (s, q, r) { | |
if (r.InterviewNotification.ParticipantConfirm.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
InterviewParticipantReminder: function (s, q, r) { | |
if (r.InterviewNotification.ParticipantReminder.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
SelfSchedulingNotification: function (s, q, r) { | |
if (r.SelfSchedulingNotification.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
SelfReSchedulingNotification: function (s, q, r) { | |
if (r.SelfReSchedulingNotification.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
SelfSchedulingCancellationNotification: function (s, q, r) { | |
if (r.SelfSchedulingCancellationNotification.Active) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
url: function () { | |
return aP + "AdmScheduling/Settings" | |
} | |
}); | |
a.Ms.Opening = Bbm.extend({ | |
idAttribute: "OpeningDetailId", | |
validation: { | |
Date: [{ | |
fn: function (s, q, r) { | |
if (r.Occurrence === "single" && p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
StartTime: [{ | |
fn: function (s, q, r) { | |
if (r.Occurrence === "single") { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!this.isStartEndTimeValid(s, r.EndTime)) { | |
return "Please enter valid start and end times" | |
} | |
} | |
} | |
}], | |
EndTime: [{ | |
fn: function (s, q, r) { | |
if (r.Occurrence === "single") { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!this.isStartEndTimeValid(r.StartTime, s)) { | |
return "Please enter valid start and end times" | |
} | |
} | |
} | |
}], | |
"Recurrence.StartTimeDisplay": [{ | |
fn: function (s, q, r) { | |
if (r.Occurrence === "multiple") { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!this.isStartEndTimeValid(s, r.Recurrence.EndTimeDisplay)) { | |
return "Please enter valid start and end times" | |
} | |
} | |
} | |
}], | |
"Recurrence.EndTimeDisplay": [{ | |
fn: function (s, q, r) { | |
if (r.Occurrence === "multiple") { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!this.isStartEndTimeValid(r.Recurrence.StartTimeDisplay, s)) { | |
return "Please enter valid start and end times" | |
} | |
} | |
} | |
}], | |
VisitTypeId: [{ | |
fn: function (s, q, r) { | |
if (p.isEmptier(r.InterviewTypeId) && p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
InterviewTypeId: [{ | |
fn: function (s, q, r) { | |
if (p.isEmptier(r.VisitTypeId) && p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
Grades: [{ | |
fn: function (t, q, r) { | |
var s = _.some(t, function (u) { | |
return u.Selected | |
}); | |
if (!s) { | |
p3.Us.InfoMessage.ErrorBox("Please select a School/grade level.", ".modal-body", false); | |
$(".modal-body").animate({ | |
scrollTop: 0 | |
}, "fast"); | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
SlotsAvailable: [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}, { | |
range: [1, 100], | |
msg: "Number of openings must be between 1 and 100" | |
}] | |
}, | |
isStartEndTimeValid: function (v, r) { | |
var s = true, | |
u = c.getDateString(new Date()), | |
t, q; | |
if (v && r) { | |
t = c.getDate(u + " " + v); | |
q = c.getDate(u + " " + r); | |
s = t.getTime() < q.getTime() | |
} | |
return s | |
}, | |
url: function () { | |
if (this.attributes.Occurrence === "single") { | |
return this.id ? aP + "AdmScheduling/Opening/" + this.id : aP + "AdmScheduling/Opening" | |
} | |
if (this.attributes.Occurrence === "multiple") { | |
return this.attributes.OpeningId ? aP + "AdmScheduling/OpeningSeries/" + this.attributes.OpeningId : aP + "AdmScheduling/Opening" | |
} | |
} | |
}); | |
a.Ms.Visit = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "VisitId", | |
validation: { | |
Date: [{ | |
fn: function (s, q, r) { | |
if ($(".custom-opening-holder:visible").length > 0) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!p3.Us.Culture.isDate(s)) { | |
return h.P3.DateError.fixDateFormat() | |
} | |
} | |
} | |
}], | |
StartTime: [{ | |
fn: function (s, q, r) { | |
if ($(".custom-opening-holder:visible").length > 0 && p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
VisitDate: [{ | |
date: true | |
}, { | |
fn: function (u, q, r) { | |
if (r.OpeningDetailId && r.OpeningDetail) { | |
var t = c.getDate(r.OpeningDetail.StartDate), | |
s = c.getDate(r.OpeningDetail.EndDate), | |
v = c.getDate(u); | |
if (v < t || v >= s) { | |
return "Please select a visit start time within the opening period.x" | |
} | |
} | |
} | |
}], | |
OpeningDetailId: [{ | |
fn: function (s, q, r) { | |
if (r.SelfScheduleInd) { | |
if (p.isEmptier(r.VisitDate)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} else { | |
if ($(".available-opening-holder:visible").length > 0 && p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
} | |
}], | |
"VisitType.VisitTypeId": [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}], | |
ProspectInstanceId: [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}] | |
}, | |
getTypeObject: function () { | |
return this.get("VisitType") || {} | |
}, | |
getScheduledDate: function () { | |
return this.get("VisitDate") | |
}, | |
setScheduledDate: function (q) { | |
this.set("VisitDate", q) | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/ProspectVisit/" + this.id + "/" : aP + "Admissions/ProspectVisit/" | |
} | |
}); | |
a.Ms.Interview = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "InterviewId", | |
validation: { | |
Date: [{ | |
fn: function (s, q, r) { | |
if ($(".custom-opening-holder:visible").length > 0) { | |
if (p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
if (!p3.Us.Culture.isDate(s)) { | |
return h.P3.DateError.fixDateFormat() | |
} | |
} | |
} | |
}], | |
StartTime: [{ | |
fn: function (s, q, r) { | |
if ($(".custom-opening-holder:visible").length > 0 && p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
InterviewDate: [{ | |
date: true | |
}, { | |
fn: function (v, q, r) { | |
if (r.OpeningDetailId && r.OpeningDetail) { | |
var u = c.getDate(r.OpeningDetail.StartDate), | |
s = c.getDate(r.OpeningDetail.EndDate), | |
t = c.getDate(v); | |
if (t < u || t >= s) { | |
return "Please select an interview start time within the opening period." | |
} | |
} | |
} | |
}], | |
OpeningDetailId: [{ | |
fn: function (s, q, r) { | |
if (r.SelfScheduleInd) { | |
if (p.isEmptier(r.InterviewDate)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} else { | |
if ($(".available-opening-holder:visible").length > 0 && p.isEmptier(s)) { | |
return h.P3.RequiredInfoNotEntered | |
} | |
} | |
} | |
}], | |
"InterviewType.InterviewTypeId": [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}], | |
ProspectInstanceId: [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}] | |
}, | |
getTypeObject: function () { | |
return this.get("InterviewType") || {} | |
}, | |
getScheduledDate: function () { | |
return this.get("InterviewDate") | |
}, | |
setScheduledDate: function (q) { | |
this.set("InterviewDate", q) | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/ProspectInterview/" + this.id + "/" : aP + "Admissions/ProspectInterview/" | |
} | |
}); | |
a.Ms.CandidateSnapshot = Bbm.extend({ | |
url: function () { | |
return this.id ? aP + "AdmScheduling/CandidateSnapshot/" + this.id + "/" : aP + "AdmScheduling/CandidateSnapshot/" | |
} | |
}); | |
a.Ms.Activity = Bbm.extend({ | |
validation: { | |
StartTime: [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}], | |
EndTime: [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}], | |
Activity: [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}] | |
} | |
}); | |
a.Ms.Participant = Bbm.extend({ | |
validation: { | |
ParticipantUserId: [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}], | |
ParticipantTypeId: [{ | |
required: true, | |
msg: h.P3.RequiredInfoNotEntered | |
}] | |
} | |
}); | |
a.Ms.ChecklistVisit = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "VisitId", | |
url: function () { | |
if (this.get("MyDay")) { | |
return this.id ? aP + "AdmScheduling/AgendaParticipantVisit/" + this.id + "/" : aP + "AdmScheduling/AgendaParticipantVisit/" | |
} | |
return this.id ? aP + "Admissions/ParentProspectVisit/" + this.id + "/" : aP + "Admissions/ParentProspectVisit/" | |
} | |
}); | |
a.Ms.ChecklistInterview = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "InterviewId", | |
url: function () { | |
if (this.get("MyDay")) { | |
return this.id ? aP + "AdmScheduling/AgendaParticipantInterview/" + this.id + "/" : aP + "AdmScheduling/AgendaParticipantInterview/" | |
} | |
return this.id ? aP + "Admissions/ParentProspectInterview/" + this.id + "/" : aP + "Admissions/ParentProspectInterview/" | |
} | |
}); | |
a.Cs.GradeLevels = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/OnlineFormGradeLevels" | |
} | |
}); | |
a.Cs.ProspectInstanceIds = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/ProspectInstanceIdsGet/" | |
} | |
}); | |
a.Cs.OpeningAvailable = Bbc.extend({ | |
sync: b.DataParamSync, | |
model: a.Ms.Opening, | |
url: function () { | |
return aP + "AdmScheduling/OpeningAvailable/" | |
} | |
}); | |
a.Cs.Candidates = Bbc.extend({ | |
url: function () { | |
return aP + "AdmScheduling/ProspectSearch" | |
} | |
}); | |
a.Cs.CandidateParents = Bbc.extend({ | |
url: function () { | |
return aP + "AdmScheduling/ProspectParents" | |
} | |
}); | |
a.Cs.Locations = Bbc.extend({ | |
url: function () { | |
return aP + "dorm/allrooms" | |
} | |
}); | |
a.Cs.Participants = Bbc.extend({ | |
url: function () { | |
return aP + "AdmScheduling/ParticipantSearch" | |
} | |
}); | |
a.Cs.MyDaySchedules = Bbc.extend({ | |
sync: b.DataParamSync, | |
url: function () { | |
return aP + "schedule/MyDayCalendarStudentList/" | |
} | |
}); | |
a.Data.ReminderOptions = [{ | |
dd_id: 1, | |
dd_description: "1 Day before" | |
}, { | |
dd_id: 2, | |
dd_description: "2 Days before" | |
}, { | |
dd_id: 3, | |
dd_description: "3 Days before" | |
}, { | |
dd_id: 4, | |
dd_description: "4 Days before" | |
}, { | |
dd_id: 5, | |
dd_description: "5 Days before" | |
}, { | |
dd_id: 6, | |
dd_description: "6 Days before" | |
}, { | |
dd_id: 7, | |
dd_description: "7 Days before" | |
}]; | |
a.Data.ViewConfigs = { | |
Visit: { | |
AppointmentType: "Visit", | |
AppointmentTypeLower: "visit", | |
Template: "admscheduling/admscheduling.visit.edit.template.html", | |
AccompanyTemplate: "admscheduling/admscheduling.visit.edit.basics.accompany.template.html", | |
HasAgenda: true, | |
DateName: "VisitDate", | |
ApptTypePath: "VisitType.VisitTypeId", | |
ApptTypeIdName: "VisitTypeId", | |
ApptTypeIdLowerName: "visitTypeId", | |
DataCollectionTypeId: "12", | |
BasicsView: { | |
template: "admscheduling/admscheduling.visit.edit.basics.template.html" | |
}, | |
NotesView: { | |
template: "admscheduling/admscheduling.visit.edit.notes.template.html" | |
} | |
}, | |
VisitSelfSchedule: { | |
AppointmentType: "Visit", | |
AppointmentTypeLower: "visit", | |
Template: "admscheduling/admscheduling.visit.selfschedule.edit.template.html", | |
AccompanyTemplate: "admscheduling/admscheduling.visit.edit.basics.accompany.template.html", | |
HasAgenda: false, | |
DateName: "VisitDate", | |
ApptTypePath: "VisitType.VisitTypeId", | |
ApptTypeIdName: "VisitTypeId", | |
ApptTypeIdLowerName: "visitTypeId", | |
DataCollectionTypeId: "12", | |
BasicsView: { | |
template: "admscheduling/admscheduling.visit.edit.basics.template.html" | |
} | |
}, | |
Interview: { | |
AppointmentType: "Interview", | |
AppointmentTypeLower: "interview", | |
Template: "admscheduling/admscheduling.interview.edit.template.html", | |
AccompanyTemplate: "admscheduling/admscheduling.interview.edit.basics.accompany.template.html", | |
HasAgenda: true, | |
DateName: "InterviewDate", | |
ApptTypePath: "InterviewType.InterviewTypeId", | |
ApptTypeIdName: "InterviewTypeId", | |
ApptTypeIdLowerName: "interviewTypeId", | |
DataCollectionTypeId: "7", | |
BasicsView: { | |
template: "admscheduling/admscheduling.interview.edit.basics.template.html" | |
}, | |
NotesView: { | |
template: "admscheduling/admscheduling.interview.edit.notes.template.html" | |
} | |
}, | |
InterviewSelfSchedule: { | |
AppointmentType: "Interview", | |
AppointmentTypeLower: "interview", | |
Template: "admscheduling/admscheduling.interview.selfschedule.edit.template.html", | |
AccompanyTemplate: "admscheduling/admscheduling.interview.edit.basics.accompany.template.html", | |
HasAgenda: false, | |
DateName: "InterviewDate", | |
ApptTypePath: "InterviewType.InterviewTypeId", | |
ApptTypeIdName: "InterviewTypeId", | |
ApptTypeIdLowerName: "interviewTypeId", | |
DataCollectionTypeId: "7", | |
BasicsView: { | |
template: "admscheduling/admscheduling.interview.edit.basics.template.html" | |
} | |
} | |
}; | |
a.Vs.Settings = l.Vs.Modal2.extend({ | |
template: "admscheduling/admscheduling.settings.template.html", | |
size: "lg", | |
modalRendered: function () { | |
var q = this; | |
q.candidateSnapshotView = new a.Vs.CandidateSnapshot({ | |
model: q.model | |
}); | |
p3.rV(q.candidateSnapshotView, q.$("#tab1"), true); | |
q.selfSchedulingView = new a.Vs.SelfScheduling({ | |
model: q.model | |
}); | |
p3.rV(q.selfSchedulingView, q.$("#tab2"), true); | |
q.activityTemplatesView = new a.Vs.ActivityTemplates({ | |
model: q.model | |
}); | |
p3.rV(q.activityTemplatesView, q.$("#tab3"), true); | |
q.visitNotificationsView = new a.Vs.NotificationGroup({ | |
data: q.model.get("VisitNotification"), | |
notifSetup: { | |
title: "Visit", | |
participantName: "Participant", | |
path: "VisitNotification" | |
} | |
}); | |
p3.rV(q.visitNotificationsView, q.$("#tab4"), true); | |
q.interviewNotificationsView = new a.Vs.NotificationGroup({ | |
data: q.model.get("InterviewNotification"), | |
notifSetup: { | |
title: "Interview", | |
participantName: "Participant", | |
path: "InterviewNotification" | |
} | |
}); | |
p3.rV(q.interviewNotificationsView, q.$("#tab5"), true) | |
}, | |
modalUpdated: function (r) { | |
var q = this; | |
q.updateNotificationLabel(q.$("#visit-candidate-confirm"), q.model.get("VisitNotification").CandidateConfirm.Active); | |
q.updateNotificationLabel(q.$("#visit-candidate-reminder"), q.model.get("VisitNotification").CandidateReminder.Active); | |
q.updateNotificationLabel(q.$("#visit-participant-confirm"), q.model.get("VisitNotification").ParticipantConfirm.Active); | |
q.updateNotificationLabel(q.$("#visit-participant-reminder"), q.model.get("VisitNotification").ParticipantReminder.Active); | |
q.updateNotificationLabel(q.$("#interview-candidate-confirm"), q.model.get("InterviewNotification").CandidateConfirm.Active); | |
q.updateNotificationLabel(q.$("#interview-candidate-reminder"), q.model.get("InterviewNotification").CandidateReminder.Active); | |
q.updateNotificationLabel(q.$("#interview-participant-confirm"), q.model.get("InterviewNotification").ParticipantConfirm.Active); | |
q.updateNotificationLabel(q.$("#interview-participant-reminder"), q.model.get("InterviewNotification").ParticipantReminder.Active) | |
}, | |
updateNotificationLabel: function (q, r) { | |
if (r) { | |
q.siblings(".active-label").find(".label").removeClass("label-warning").addClass("label-success").html("Active") | |
} else { | |
q.siblings(".active-label").find(".label").removeClass("label-success").addClass("label-warning").html("Inactive") | |
} | |
}, | |
modalSave: function () { | |
var r = this, | |
q; | |
q = r.model.isValid(true); | |
r.tabToggleError("#tab1", q); | |
r.tabToggleError("#tab2", q); | |
r.tabToggleError("#tab3", q); | |
r.tabToggleError("#tab4", q); | |
r.tabToggleError("#tab5", q) | |
}, | |
tabToggleError: function (u, s) { | |
var t = this, | |
v = !s, | |
q = t.$('[data-target="' + u + '"]'), | |
r = t.$(u); | |
if (!s) { | |
v = r.find(".box-validate").length > 0 | |
} | |
q.closest("li").toggleClass("box-validate", v) | |
} | |
}); | |
a.Vs.CandidateSnapshot = Bb.View.extend({ | |
template: "admscheduling/admscheduling.settings.candidatesnapshot.template.html", | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({ | |
model: q.model.toJSON() | |
})); | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}) | |
} | |
}); | |
a.Vs.SelfScheduling = Bb.View.extend({ | |
render: function (q) { | |
this.$el.appendTo(q); | |
p3.rV(new a.Vs.SelfSchedulingSettings({ | |
label: "Visit", | |
data: this.model.get("SelfSchedulingVisit") | |
}), this.$el, false); | |
p3.rV(new a.Vs.SelfSchedulingSettings({ | |
label: "Interview", | |
data: this.model.get("SelfSchedulingInterview") | |
}), this.$el, false); | |
p3.rV(new a.Vs.SelfSchedulingNotification({ | |
data: this.model.get("SelfSchedulingNotification"), | |
notifSetup: { | |
title: "Admin notification - Self-schedule confirmation", | |
path: "SelfSchedulingNotification" | |
} | |
}), this.$el, false); | |
p3.rV(new a.Vs.SelfSchedulingNotification({ | |
data: this.model.get("SelfReSchedulingNotification"), | |
notifSetup: { | |
title: "Admin notification - Self-reschedule confirmation", | |
path: "SelfReSchedulingNotification" | |
} | |
}), this.$el, false); | |
p3.rV(new a.Vs.SelfSchedulingNotification({ | |
data: this.model.get("SelfSchedulingCancellationNotification"), | |
notifSetup: { | |
title: "Admin notification - Self-schedule cancellations", | |
path: "SelfSchedulingCancellationNotification" | |
} | |
}), this.$el, false) | |
} | |
}); | |
a.Vs.SelfSchedulingSettings = Bb.View.extend({ | |
template: "admscheduling/admscheduling.settings.selfschedulingsettings.template.html", | |
tagName: "section", | |
className: "bb-tile", | |
events: { | |
'click [data-action="collapse"]': "clickCollapseSettings", | |
'click [name="SelfSchedulingVisit.ControlSelfSchedule"]': "updateSelfScheduleStartDate", | |
'click [name="SelfSchedulingInterview.ControlSelfSchedule"]': "updateSelfScheduleStartDate", | |
'click [name="SelfSchedulingVisit.ControlSelfScheduleOpenings"]': "updateSelfScheduleDateRange", | |
'click [name="SelfSchedulingInterview.ControlSelfScheduleOpenings"]': "updateSelfScheduleDateRange" | |
}, | |
render: function (q) { | |
var r = this; | |
p3.fT(r.template, function (s) { | |
if (!r.options.data.ControlSelfSchedule) { | |
r.options.data.SelfScheduleNum = 0 | |
} | |
if (!r.options.data.ControlSelfScheduleOpenings) { | |
r.options.data.SelfScheduleOpeningsNum = 180 | |
} | |
r.$el.html(s({ | |
label: r.options.label, | |
data: r.options.data | |
})); | |
r.clickCollapseSettings(); | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}); | |
r.$el.appendTo(q) | |
}, | |
updateSelfScheduleStartDate: function (s) { | |
var t = this, | |
r = $(s.currentTarget), | |
q = t.$('[name="SelfScheduling' + t.options.label + '.SelfScheduleNum"]'); | |
if (r.is(":checked")) { | |
q.val("").prop("disabled", false) | |
} else { | |
q.val(0).prop("disabled", true) | |
} | |
l.Us.setPropByString(t.options.data, "SelfScheduleNum", q.val()) | |
}, | |
updateSelfScheduleDateRange: function (s) { | |
var t = this, | |
r = $(s.currentTarget), | |
q = t.$('[name="SelfScheduling' + t.options.label + '.SelfScheduleOpeningsNum"]'); | |
if (r.is(":checked")) { | |
q.val("").prop("disabled", false) | |
} else { | |
q.val(180).prop("disabled", true) | |
} | |
l.Us.setPropByString(t.options.data, "SelfScheduleOpeningsNum", q.val()) | |
}, | |
clickCollapseSettings: function () { | |
var q = this; | |
q.$(".collapse").collapse(q.$('[data-value="show-detail"]').is(":checked") ? "show" : "hide") | |
} | |
}); | |
a.Vs.SelfSchedulingNotification = Bb.View.extend({ | |
template: "admscheduling/admscheduling.settings.selfschedulingnotification.template.html", | |
tagName: "section", | |
className: "bb-tile", | |
render: function (q) { | |
var r = this; | |
p3.fT(r.template, function (s) { | |
r.$el.html(s({ | |
title: r.options.notifSetup.title, | |
path: r.options.notifSetup.path | |
})); | |
p3.rV(new a.Vs.Notification({ | |
data: r.options.data, | |
notifSetup: r.options.notifSetup | |
}), r.$("#notification-settings"), true); | |
r.recipientView = new g.Vs.NotifyRecipients({ | |
model: new Bbm({ | |
AdminRecipients: r.options.data.AdminRecipients | |
}) | |
}); | |
r.recipientView.on("recipientsUpdated", function (t) { | |
r.options.data.AdminRecipients = this.model.get("AdminRecipients") | |
}); | |
p3.rV(r.recipientView, r.$("#notification-recipients"), true); | |
if (!r.options.data.Active) { | |
r.$(".bb-tile-content").collapse("hide") | |
} | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}); | |
r.$el.appendTo(q) | |
} | |
}); | |
a.Vs.ActivityTemplates = Bb.View.extend({ | |
template: "admscheduling/admscheduling.settings.activitytemplates.template.html", | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({})); | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}) | |
} | |
}); | |
a.Vs.NotificationGroup = Bb.View.extend({ | |
template: "admscheduling/admscheduling.settings.notification.group.template.html", | |
initialize: function (q) { | |
var r = this; | |
r.notifSetup = r.options.notifSetup || {}; | |
r.data = r.options.data || {} | |
}, | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({ | |
notifSetup: q.notifSetup, | |
candidateConfirmActive: q.data.CandidateConfirm.Active, | |
candidateReminderActive: q.data.CandidateReminder.Active, | |
participantConfirmActive: q.data.ParticipantConfirm.Active, | |
participantReminderActive: q.data.ParticipantReminder.Active | |
})); | |
q.renderNotificationGroup() | |
}) | |
}, | |
renderNotificationGroup: function () { | |
var u = this, | |
q = "#" + u.notifSetup.title.toLowerCase() + "-candidate-confirm", | |
r = "#" + u.notifSetup.title.toLowerCase() + "-candidate-reminder", | |
s = "#" + u.notifSetup.title.toLowerCase() + "-participant-confirm", | |
t = "#" + u.notifSetup.title.toLowerCase() + "-participant-reminder"; | |
u.candidateConfirmView = new a.Vs.Notification({ | |
data: u.data.CandidateConfirm, | |
notifSetup: $.extend({}, u.notifSetup, { | |
path: u.notifSetup.path + ".CandidateConfirm" | |
}) | |
}); | |
p3.rV(u.candidateConfirmView, u.$(q), true); | |
u.candidateReminderView = new a.Vs.Notification({ | |
data: u.data.CandidateReminder, | |
notifSetup: $.extend({}, u.notifSetup, { | |
path: u.notifSetup.path + ".CandidateReminder" | |
}) | |
}); | |
p3.rV(u.candidateReminderView, u.$(r), true); | |
u.participantConfirmView = new a.Vs.Notification({ | |
data: u.data.ParticipantConfirm, | |
notifSetup: $.extend({}, u.notifSetup, { | |
path: u.notifSetup.path + ".ParticipantConfirm" | |
}) | |
}); | |
p3.rV(u.participantConfirmView, u.$(s), true); | |
u.participantReminderView = new a.Vs.Notification({ | |
data: u.data.ParticipantReminder, | |
notifSetup: $.extend({}, u.notifSetup, { | |
path: u.notifSetup.path + ".ParticipantReminder" | |
}) | |
}); | |
p3.rV(u.participantReminderView, u.$(t), true) | |
} | |
}); | |
a.Vs.Notification = Bb.View.extend({ | |
template: "admscheduling/admscheduling.settings.notification.template.html", | |
events: { | |
"click button.placeholder": "addPlaceholder" | |
}, | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({ | |
Notification: q.options.data, | |
SettingsProperty: q.options.notifSetup.path, | |
placeholders: g.Us.toPlaceholderArray(q.options.data.Placeholders), | |
reminderOptions: a.Data.ReminderOptions | |
})); | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
addPlaceholder: function (s) { | |
s.preventDefault(); | |
var y = this, | |
v = "[" + $(s.currentTarget).data("value") + "]", | |
q = y.$(".notify-body"), | |
u = q.val(), | |
t = q[0], | |
x = "", | |
w = 0, | |
r = 0; | |
if (t.selectionStart || t.selectionStart === 0) { | |
w = t.selectionStart; | |
r = t.selectionEnd; | |
x = u.substring(0, w) + v + u.substring(r, u.length) | |
} else { | |
x = v | |
} | |
q.val(x).focus().trigger($.Event("change")); | |
t.selectionStart = w + v.length; | |
t.selectionEnd = w + v.length | |
} | |
}); | |
a.Vs.VisitNotifications = Bb.View.extend({ | |
template: "admscheduling/admscheduling.settings.visitnotifications.template.html", | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({})); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
} | |
}); | |
a.Vs.InterviewNotifications = Bb.View.extend({ | |
template: "admscheduling/admscheduling.settings.interviewnotifications.template.html", | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({})); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
} | |
}); | |
a.Vs.AddOpening = l.Vs.Modal2.extend({ | |
template: "admscheduling/admscheduling.opening.template.html", | |
size: "md", | |
modalRendered: function () { | |
d.Us.initialize(".date-input", { | |
maxDate: "+1y", | |
minDate: 0 | |
}); | |
n.Us.initialize(".time-input") | |
}, | |
modalUpdate: function (y) { | |
var x = this, | |
v = y.eventCurrentTarget.data("gradeid"), | |
w = x.model.get("Grades"), | |
z = y.eventCurrentTarget.prop("name"), | |
s = y.eventCurrentTarget.children("input"), | |
r = x.$(".occurrence-single-holder"), | |
q = x.$(".occurrence-multiple-holder"), | |
t, u; | |
if (v && w) { | |
t = _.findWhere(w, { | |
GradeId: v | |
}); | |
if (t) { | |
_.defer(function () { | |
t.Selected = y.eventCurrentTarget.hasClass("active") | |
}); | |
return false | |
} | |
} | |
if (z === "Date" || z === "StartTime" || z === "EndTime") { | |
u = x.$('[name="Date"]').val(); | |
x.model.set({ | |
StartDate: u + " " + x.$('[name="StartTime"]').val(), | |
EndDate: u + " " + x.$('[name="EndTime"]').val() | |
}) | |
} | |
if (z === "Recurrence.StartDateDisplay" || z === "Recurrence.StartTimeDisplay" || z === "Recurrence.EndTimeDisplay") { | |
u = x.$('[name="Recurrence.StartDateDisplay"]').val(); | |
l.Us.setPropsByString(x.model.attributes, { | |
"Recurrence.StartDate": u + " " + x.$('[name="Recurrence.StartTimeDisplay"]').val(), | |
"Recurrence.EndDate": u + " " + x.$('[name="Recurrence.EndTimeDisplay"]').val() | |
}) | |
} | |
if (s.prop("name") === "Recurrence.frequency") { | |
a.Us.ToggleRecurHolder(x, s.val()); | |
return false | |
} | |
if (s.prop("name") === "Occurrence") { | |
if (s.val() === "single") { | |
r.show(); | |
q.hide() | |
} else { | |
if (s.val() === "multiple") { | |
r.hide(); | |
q.show() | |
} | |
} | |
} | |
}, | |
modalSave: function () { | |
var r = this, | |
s = true, | |
q; | |
r.$(".modal-body #infomessage-error").remove(); | |
if (r.model.get("Occurrence") === "multiple") { | |
s = f.Us.BuildRecurrencePattern(r.model, r); | |
if (!s) { | |
q = r.errorMessage; | |
r.errorMessage = null; | |
p3.Us.InfoMessage.ErrorBox(q, ".modal-body", false); | |
r.scrollTo(); | |
return false | |
} | |
} | |
}, | |
modalSavedSuccess: function () { | |
if (this.options.refresh) { | |
this.options.refresh.call() | |
} else { | |
$("#fullCalView").fullCalendar("refetchEvents") | |
} | |
}, | |
modalSavedError: function () { | |
p3.Us.InfoMessage.ErrorBox("Error saving opening", ".modal-body", false) | |
} | |
}); | |
a.Vs.EditOpening = l.Vs.Modal2.extend({ | |
template: "admscheduling/admscheduling.opening.edit.template.html", | |
size: "md", | |
events: { | |
"click .occurrence": "toggleOccurrence", | |
"click .delete": "deleteOpening" | |
}, | |
modalRendered: function () { | |
var q = this, | |
r = q.model.get("Recurrence"); | |
d.Us.initialize(".date-input", { | |
maxDate: "+1y", | |
minDate: 0 | |
}); | |
n.Us.initialize(".time-input"); | |
if (r) { | |
a.Us.ToggleRecurHolder(q, r.frequency) | |
} | |
}, | |
modalUpdate: function (w) { | |
var v = this, | |
t = w.eventCurrentTarget.data("gradeid"), | |
u = v.model.get("Grades"), | |
x = w.eventCurrentTarget.prop("name"), | |
q = w.eventCurrentTarget.children("input"), | |
r, s; | |
if (t && u) { | |
r = _.findWhere(u, { | |
GradeId: t | |
}); | |
if (r) { | |
_.defer(function () { | |
r.Selected = w.eventCurrentTarget.hasClass("active") | |
}); | |
return false | |
} | |
} | |
if (x === "Date" || x === "StartTime" || x === "EndTime") { | |
s = v.$('[name="Date"]').val(); | |
v.model.set({ | |
StartDate: s + " " + v.$('[name="StartTime"]').val(), | |
EndDate: s + " " + v.$('[name="EndTime"]').val() | |
}) | |
} | |
if (x === "Recurrence.StartDateDisplay" || x === "Recurrence.StartTimeDisplay" || x === "Recurrence.EndTimeDisplay") { | |
s = v.$('[name="Recurrence.StartDateDisplay"]').val(); | |
l.Us.setPropsByString(v.model.attributes, { | |
"Recurrence.StartDate": s + " " + v.$('[name="Recurrence.StartTimeDisplay"]').val(), | |
"Recurrence.EndDate": s + " " + v.$('[name="Recurrence.EndTimeDisplay"]').val() | |
}) | |
} | |
if (q.prop("name") === "Recurrence.frequency") { | |
a.Us.ToggleRecurHolder(v, q.val()); | |
return false | |
} | |
}, | |
modalSave: function () { | |
var r = this, | |
s = true, | |
q; | |
r.$(".modal-body #infomessage-error").remove(); | |
if (r.model.get("Occurrence") === "multiple") { | |
s = f.Us.BuildRecurrencePattern(r.model, r); | |
if (!s) { | |
q = r.errorMessage; | |
r.errorMessage = null; | |
p3.Us.InfoMessage.ErrorBox(q, ".modal-body", false); | |
r.scrollTo(); | |
return false | |
} | |
} | |
}, | |
modalSavedSuccess: function () { | |
if (this.options.refresh) { | |
this.options.refresh.call() | |
} else { | |
$("#fullCalView").fullCalendar("refetchEvents") | |
} | |
}, | |
modalSavedError: function () { | |
p3.Us.InfoMessage.ErrorBox("Error saving opening", ".modal-body", false) | |
}, | |
toggleOccurrence: function (x) { | |
var z = this, | |
q = z.$(".bb-dialog-header"), | |
s = z.$(".occurrence"), | |
u = z.$(".occurrence-single-holder"), | |
t = z.$(".occurrence-multiple-holder"), | |
v = z.$(".occurrence-toggle"), | |
r = z.$(".delete"), | |
A = z.model.get("StartDate"), | |
w = z.model.get("EndDate"), | |
y = !!z.model.get("RecurrencePattern"); | |
if (z.model.get("Occurrence") === "single") { | |
z.model.set({ | |
Occurrence: "multiple" | |
}); | |
q.text(z.options.variables.seriesTitle); | |
s.text("Edit occurrence"); | |
u.hide(); | |
t.show(); | |
v.attr("disabled", false); | |
r.text("Delete series").toggle(y); | |
if (!y) { | |
if (A) { | |
z.$("#rdoDaily").prop("checked", true).change(); | |
z.$('input[name="Recurrence.StartDateDisplay"]').val(c.getDateString(new Date(A))).change(); | |
z.$('input[name="Recurrence.StartTimeDisplay"]').val(c.getTimeString(new Date(A))).change(); | |
if (w) { | |
z.$('input[name="Recurrence.EndTimeDisplay"]').val(c.getTimeString(new Date(w))).change() | |
} | |
} | |
} | |
} else { | |
if (z.model.get("Occurrence") === "multiple") { | |
z.model.set({ | |
Occurrence: "single" | |
}); | |
q.text(z.options.variables.title); | |
s.text((y ? "Edit" : "Add") + " series"); | |
u.show(); | |
t.hide(); | |
v.attr("disabled", y); | |
r.text("Delete occurrence").show() | |
} | |
} | |
}, | |
deleteOpening: function () { | |
var q = this; | |
a.Us.DeleteOpening(q.model, function () { | |
if (q.options.refresh) { | |
q.options.refresh.call() | |
} else { | |
$("#fullCalView").fullCalendar("refetchEvents") | |
} | |
}) | |
} | |
}); | |
a.Vs.EditAppointment = l.Vs.Modal2.extend({ | |
size: "lg", | |
events: { | |
"keyup textarea.counter-input": "updateCharacterCounter", | |
"click form .bb-select-field-single": "showSelector", | |
'change select[name="ChecklistItemId"]': "toggleChecklistStatus", | |
"click .delete-appt": "deleteAppointment" | |
}, | |
modalInitialized: function (r) { | |
var q = this; | |
q.viewConfig = r.modalView.options.viewConfig || {}; | |
q.proto.template = q.viewConfig.Template; | |
q.filterByGrade = []; | |
q.appLocation = window.location.hash.toLowerCase().indexOf("candidateview") > -1 ? "candidateview" : window.location.hash.toLowerCase().indexOf("candidate") > -1 ? "candidate" : window.location.hash.toLowerCase().indexOf("visitinterview") > -1 ? "visitinterview" : window.location.hash.toLowerCase().indexOf("dashboard") > -1 ? "dashboard" : "calendar"; | |
q.OpeningAvailable = new a.Cs.OpeningAvailable(); | |
_.bindAll(q, "renderProspect") | |
}, | |
modalRendered: function () { | |
var q = this; | |
q.basicsView = new a.Vs.Basics({ | |
model: q.model, | |
viewConfig: q.viewConfig.BasicsView, | |
dictionaries: q.options.dictionaries, | |
parent: q | |
}); | |
p3.rV(q.basicsView, q.$("#tab1"), true); | |
if (q.viewConfig.HasAgenda) { | |
q.agendaView = new a.Vs.Agenda({ | |
model: q.model, | |
dictionaries: q.options.dictionaries, | |
parent: q | |
}); | |
p3.rV(q.agendaView, q.$("#tab2"), true) | |
} | |
if (q.viewConfig.NotesView) { | |
q.notesView = new a.Vs.Notes({ | |
model: q.model, | |
viewConfig: q.viewConfig.NotesView, | |
dictionaries: q.options.dictionaries, | |
parent: q | |
}); | |
p3.rV(q.notesView, q.$("#tab3"), true) | |
} | |
}, | |
modalUpdate: function (v) { | |
var u = this, | |
r = v.eventCurrentTarget, | |
w = r.prop("name"), | |
x = r.val(), | |
t, q, s = { | |
prospectInstanceId: u.model.get("ProspectInstanceId"), | |
selfScheduleInd: u.model.get("SelfScheduleInd"), | |
checklistItemId: u.model.get("ChecklistItemId") | |
}; | |
s[u.viewConfig.ApptTypeIdLowerName] = x; | |
if (r.hasClass("sub-collection")) { | |
return false | |
} | |
if (w === "Date" || w === "StartTime") { | |
t = u.$('[name="Date"]').val(); | |
u.model.attributes[u.viewConfig.DateName] = t + " " + u.$('[name="StartTime"]').val() | |
} | |
if (w === "ScheduledTime") { | |
u.fieldValid("ScheduledTime"); | |
u.model.attributes[u.viewConfig.DateName] = u.model.get("ScheduledDate") + " " + r.val(); | |
if (!u.model.isValid(u.viewConfig.DateName)) { | |
u.fieldInvalid("ScheduledTime", "Please select a start time within the opening period.") | |
} | |
} | |
if (w === u.viewConfig.ApptTypePath) { | |
u.clearOpeningSelection(); | |
if (!p.isEmptier(x) && !p.isEmptier(u.model.get("ProspectInstanceId"))) { | |
u.$(".scheduled-opening-select").show(); | |
u.$(".scheduled-opening-empty").hide(); | |
u.OpeningAvailable.fetch({ | |
cache: false, | |
data: s, | |
success: function () { | |
if (u.OpeningAvailable.length > 0) { | |
u.$(".available-opening-holder").show(); | |
u.$(".available-opening-holder-empty").hide() | |
} else { | |
u.$(".available-opening-holder").hide(); | |
u.$(".available-opening-holder-empty").show() | |
} | |
} | |
}) | |
} else { | |
u.$(".scheduled-opening-select").hide(); | |
u.$(".scheduled-opening-empty").show() | |
} | |
} | |
if (w === "FirstName") { | |
_.findWhere(u.model.get("AccompanyingAdults"), { | |
_tempid: r.data("tempid") | |
}).FirstName = x; | |
return false | |
} | |
if (w === "LastName") { | |
_.findWhere(u.model.get("AccompanyingAdults"), { | |
_tempid: r.data("tempid") | |
}).LastName = x; | |
return false | |
} | |
if (w === "Email") { | |
_.findWhere(u.model.get("AccompanyingAdults"), { | |
_tempid: r.data("tempid") | |
}).Email = x; | |
return false | |
} | |
if (w === "AccompanyingAdultId") { | |
u.updateAccompany(); | |
return false | |
} | |
if (r.hasClass("accompany-remove")) { | |
r.parents(".accompanying-adult").find('[name="AccompanyingAdultId"]').val(""); | |
u.updateAccompany(); | |
return false | |
} | |
if (r.hasClass("accompany-add")) { | |
u.$(".accompany-new-holder").show(); | |
u.$(".accompany-add").hide() | |
} | |
if (w === "ProspectInstanceId") { | |
return false | |
} | |
if (r.hasClass("toggle-opening-holder")) { | |
u.$(".scheduled-opening-holder").toggle(); | |
q = u.$(".custom-opening-holder"); | |
q.toggle(); | |
if (q.is(":visible")) { | |
u.clearOpeningSelection() | |
} | |
} | |
}, | |
modalSave: function () { | |
var r = this, | |
q = r.model.isValid(true); | |
_.each(r.$(".accompany-selected-holder"), function (t) { | |
var s = $(t); | |
if (s.find('[name="AccompanyingAdultId"]').val() === "-1") { | |
if (p.isEmptier(s.find('[name="FirstName"]').val())) { | |
s.find('[name="FirstName"]').addClass("box-validate"); | |
q = true | |
} else { | |
s.find('[name="FirstName"]').removeClass("box-validate") | |
} | |
if (p.isEmptier(s.find('[name="LastName"]').val())) { | |
s.find('[name="LastName"]').addClass("box-validate"); | |
q = true | |
} else { | |
s.find('[name="LastName"]').removeClass("box-validate") | |
} | |
if (p.isEmptier(s.find('[name="Email"]').val()) || !Bb.Validation.patterns.email.test(s.find('[name="Email"]').val())) { | |
s.find('[name="Email"]').addClass("box-validate"); | |
q = true | |
} else { | |
s.find('[name="Email"]').removeClass("box-validate") | |
} | |
} | |
}); | |
r.tabToggleError("#tab1", q); | |
r.tabToggleError("#tab2", q); | |
r.tabToggleError("#tab3", q); | |
if (!q) { | |
return false | |
} | |
}, | |
tabToggleError: function (u, s) { | |
var t = this, | |
v = !s, | |
q = t.$('[data-target="' + u + '"]'), | |
r = t.$(u); | |
if (!s) { | |
v = r.find(".box-validate").length > 0 | |
} | |
q.closest("li").toggleClass("box-validate", v) | |
}, | |
modalSavedSuccess: function () { | |
var q = this; | |
if (q.appLocation === "calendar") { | |
$("#fullCalView").fullCalendar("refetchEvents") | |
} else { | |
if (q.appLocation === "dashboard") { | |
$("#sort-table").trigger("refreshData") | |
} else { | |
if (q.appLocation === "candidateview") { | |
$("#checklistHeader").trigger("refreshData") | |
} else { | |
if (q.appLocation === "visitinterview") { | |
$(".visitinterview-worklist-refresh").trigger("refreshData") | |
} else { | |
$(".candidate-header").parent().parent().trigger("renderdata") | |
} | |
} | |
} | |
} | |
}, | |
deleteAppointment: function () { | |
var q = this; | |
a.Us.DeleteAppointment(q.model, true) | |
}, | |
updateCharacterCounter: function (r) { | |
var s = this, | |
q = s.$(r.currentTarget); | |
q.siblings().find(".characterCounter").html(q.val().length); | |
if (q.val().length > 4000) { | |
q.siblings().find(".characterCounter").addClass("badge-important") | |
} else { | |
q.siblings().find(".characterCounter").removeClass("badge-important") | |
} | |
}, | |
showSelector: function () { | |
var r = this, | |
q; | |
q = l.Vs.Modal2.extend({ | |
template: "admscheduling/admscheduling.appointment.edit.basics.opening.template.html", | |
model: r.model, | |
dictionaries: { | |
OpeningAvailable: r.OpeningAvailable.toJSON() | |
}, | |
events: { | |
"click .clear": "clearSelection" | |
}, | |
subModal: true, | |
modalUpdate: function (s) { | |
var t = s.eventCurrentTarget.data("id"); | |
if (s.eventCurrentTarget.hasClass("bb-checklist-list-row")) { | |
if (t) { | |
r.model.set({ | |
OpeningDetailId: t | |
}) | |
} else { | |
r.model.unset("OpeningDetailId") | |
} | |
r.model.setScheduledDate(); | |
r.renderOpeningSelection(); | |
l.Us.showMainModal(); | |
p3.setModalHeight(p3.Layout.Containers.Modal); | |
return false | |
} | |
}, | |
modalCancel: function (s) { | |
l.Us.showMainModal(); | |
p3.setModalHeight(p3.Layout.Containers.Modal); | |
return false | |
}, | |
clearSelection: function () { | |
r.clearOpeningSelection(); | |
l.Us.showMainModal(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
}); | |
l.Us.showSubModal(); | |
p3.rV(new q(), $(".modal .modal-sub"), true) | |
}, | |
clearOpeningSelection: function () { | |
var q = this; | |
q.model.unset("OpeningDetailId"); | |
q.model.unset("OpeningDetail"); | |
q.model.unset("ScheduledDate"); | |
q.$('[name="OpeningDetailId"] .bb-select-field-single-title').html('<span class="bb-select-field-single-title-placeholder">Select a value</span>') | |
}, | |
renderOpeningSelection: function () { | |
var s = this, | |
t = s.model.get("OpeningDetailId"), | |
u = t ? s.OpeningAvailable.get(t) : s.OpeningAvailable.find(function (w) { | |
return w.get("OpeningDetailId") === t | |
}), | |
v = s.model.getScheduledDate() || u.get("StartDate"), | |
r = u.get("EndDate"), | |
q = s.$(".scheduled-opening-holder"); | |
s.model.set({ | |
ScheduledDate: c.getDateString(v) | |
}); | |
s.model.attributes[s.viewConfig.DateName] = v; | |
s.model.set({ | |
OpeningDetail: u.toJSON() | |
}); | |
q.find('input[name="ScheduledTime"]').val(c.getTimeString(c.getDate(v))); | |
s.$('[name="OpeningDetailId"] .bb-select-field-single-title').text(c.displayDate(v, "abbrDay") + " " + c.displayDate(v) + " " + c.displayTime(v) + " - " + c.displayTime(r)); | |
if (t) { | |
s.filterByGrade = _.chain(s.model.attributes.OpeningDetail.Grades).where({ | |
Selected: true | |
}).pluck("GradeId").value() | |
} | |
}, | |
initializeAutoComplete: function () { | |
var t = this, | |
q = t.$('[name="ProspectInstanceId"]'), | |
r, s, v, u; | |
q.autocomplete({ | |
userAll: null, | |
minLength: 2, | |
previousSearch: "", | |
source: function (w, x) { | |
r = this; | |
if (r.options.userAll === null) { | |
r.options.userAll = new a.Cs.Candidates() | |
} | |
r.fetchComplete = function (y) { | |
r.previous = q.prop("value"); | |
s = new RegExp($.ui.autocomplete.escapeRegex(this.term), "i"); | |
x($.map(y.models, function (z) { | |
v = ""; | |
u = true; | |
if (t.model.get("OpeningDetailId")) { | |
if (!_.contains(t.filterByGrade, z.attributes.EnteringGradeId)) { | |
u = false | |
} | |
} | |
if (u) { | |
if (z.attributes.FirstName !== "") { | |
v += z.attributes.FirstName | |
} | |
if (z.attributes.LastName !== "") { | |
v += " " + z.attributes.LastName | |
} | |
if (z.attributes.EnteringYear !== "") { | |
v += " (" + z.attributes.EnteringYear + ")" | |
} | |
z.attributes.SearchString = v; | |
if (z.attributes.SearchString.match(s)) { | |
return { | |
value: v, | |
obj: z | |
} | |
} | |
} | |
})) | |
}; | |
if ((r.options.userAll.length === 0) || (q.prop("value").slice(0, 2) !== r.previous.slice(0, 2))) { | |
r.options.userAll.fetch({ | |
data: { | |
searchText: q.prop("value").slice(0, 2) | |
}, | |
success: function (y) { | |
r.fetchComplete(y) | |
} | |
}) | |
} else { | |
r.fetchComplete(r.options.userAll) | |
} | |
}, | |
select: function (w, x) { | |
t.model.set({ | |
ProspectInstanceId: x.item.obj.get("ProspectInstanceId") | |
}); | |
t.renderProspect() | |
} | |
}); | |
q.focus(function () { | |
var w = $(this); | |
if (w.val().length > 1) { | |
w.autocomplete("search") | |
} | |
}) | |
}, | |
updateAccompany: function () { | |
var r = this, | |
s = true, | |
t, q = _.clone(r.model.get("AccompanyingAdults")); | |
r.model.set({ | |
AccompanyingAdults: [] | |
}); | |
_.each(r.$('[name="AccompanyingAdultId"]'), function (w) { | |
var u = $(w), | |
x = o.stringToInt(u.val()), | |
v = o.stringToInt(u.data("id")); | |
if (p.isEmptier(u.val())) { | |
s = false | |
} else { | |
if (u.val() === "-1") { | |
t = u.data("tempid"); | |
if (t) { | |
r.model.get("AccompanyingAdults").push({ | |
_tempid: t, | |
UserId: -1, | |
FirstName: r.$('[name="FirstName"][data-tempid="' + t + '"]').val(), | |
LastName: r.$('[name="LastName"][data-tempid="' + t + '"]').val(), | |
Email: r.$('[name="Email"][data-tempid="' + t + '"]').val() | |
}) | |
} else { | |
r.model.get("AccompanyingAdults").push({ | |
_tempid: _.uniqueId("_tempid_"), | |
UserId: -1, | |
FirstName: "", | |
LastName: "", | |
Email: "" | |
}) | |
} | |
} else { | |
if (v) { | |
r.model.get("AccompanyingAdults").push(_.findWhere(q, { | |
AccompanyingAdultId: v | |
})) | |
} else { | |
r.model.get("AccompanyingAdults").push(_.findWhere(r.CandidateParents.toJSON(), { | |
UserId: x | |
})) | |
} | |
} | |
} | |
}); | |
if (s) { | |
r.$(".accompany-add-holder").show() | |
} else { | |
r.$(".accompany-add-holder").hide() | |
} | |
r.refreshAccompany() | |
}, | |
refreshAccompany: function () { | |
var q = this, | |
r = _.chain(q.model.get("AccompanyingAdults")).filter(function (s) { | |
return s.UserId > 0 | |
}).pluck("UserId").value(); | |
p3.fT(q.viewConfig.AccompanyTemplate, function (s) { | |
q.$(".accompanying-holder").html(s({ | |
accompanyingAdults: q.model.get("AccompanyingAdults"), | |
candidateParents: q.CandidateParents.toJSON(), | |
usedCandidateParents: r | |
})) | |
}) | |
}, | |
renderProspect: function () { | |
var s = this, | |
t = { | |
ADMCandidateDataCollectionStatuses: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
id: 128, | |
keyName: "item_status_id", | |
valueName: "item_status_desc", | |
inputParam: "data_collection_type_id=" + s.viewConfig.DataCollectionTypeId + "[i]" | |
} | |
} | |
}, | |
q = s.model.get("ChecklistItemId"), | |
r = s.model.get("ChecklistItemStatus"); | |
if (s.model.get("ProspectInstanceId")) { | |
t.ADMChecklistStep = { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
id: 127, | |
keyName: "checklist_item_id", | |
valueName: "checklist_item_description", | |
inputParam: "prospect_instance_id=" + s.model.get("ProspectInstanceId") + "[i],data_collection_type_id=" + s.viewConfig.DataCollectionTypeId + "[i]" + (s.model.id ? ",data_collection_pk=" + s.model.id + "[i]" : "") | |
} | |
}; | |
if (s.appLocation === "calendar" || s.appLocation === "visitinterview") { | |
t.CandidateSnapshot = { | |
data: new a.Ms.CandidateSnapshot({ | |
HomeAddress: {}, | |
CandidateUser: {} | |
}), | |
dataParams: { | |
id: s.model.get("ProspectInstanceId") | |
} | |
} | |
} | |
t.CandidateParents = { | |
data: new a.Cs.CandidateParents(), | |
dataParams: { | |
id: s.model.get("ProspectInstanceId") | |
} | |
} | |
} | |
i.Us.Fetch(t, function (w, y, x) { | |
var u = s.$('select[name="ChecklistItemId"]'), | |
v = s.$('select[name="ChecklistItemStatus"]'), | |
z, A = s.model.getTypeObject(); | |
if (w.CandidateSnapshot) { | |
z = w.CandidateSnapshot.get("HomeAddress"); | |
if (z) { | |
z.State = z.State || z.StateShort; | |
z.Zip = z.Zip || z.ZipCode; | |
z.AddressFull = o.addressFormat(z, false) | |
} | |
w.CandidateSnapshot.get("CandidateUser").NameFull = o.userNameFormat(w.CandidateSnapshot.get("CandidateUser"), 'F "N" L'); | |
w.CandidateSnapshot.get("CandidateUser").Age = c.getAgeString(w.CandidateSnapshot.get("CandidateUser").BirthDate); | |
p3.fT("admscheduling/admscheduling.visit.edit.basics.snapshot.template.html", function (B) { | |
s.$(".snapshot-holder").html(B({ | |
model: w.CandidateSnapshot.toJSON() | |
})); | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}) | |
} | |
if (!p.isEmptier(A.VisitTypeId || A.InterviewTypeId)) { | |
s.$(".scheduled-opening-select").show(); | |
s.$(".scheduled-opening-empty").hide(); | |
s.OpeningAvailable.fetch({ | |
cache: false, | |
data: { | |
visitTypeId: A.VisitTypeId, | |
interviewTypeId: A.InterviewTypeId, | |
prospectInstanceId: s.model.get("ProspectInstanceId"), | |
openingDetailId: s.model.get("OpeningDetailId"), | |
selfScheduleInd: s.model.get("SelfScheduleInd"), | |
checklistItemId: s.model.get("ChecklistItemId") | |
}, | |
success: function (B) { | |
if (B.length > 0) { | |
s.$(".available-opening-holder").show(); | |
s.$(".available-opening-holder-empty").hide(); | |
if (s.model.get("OpeningDetailId") || s.model.get("SelfScheduleInd")) { | |
s.renderOpeningSelection() | |
} | |
} else { | |
s.$(".available-opening-holder").hide(); | |
s.$(".available-opening-holder-empty").show() | |
} | |
s.toggleScheduleHolder(); | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
} | |
}) | |
} else { | |
s.$(".scheduled-opening-select").hide(); | |
s.$(".scheduled-opening-empty").show() | |
} | |
s.CandidateParents = w.CandidateParents || new a.Cs.CandidateParents(); | |
s.$(".accompanying-holder").show(); | |
s.$(".accompanying-holder-empty").hide(); | |
s.refreshAccompany(); | |
if (w.ADMChecklistStep && w.ADMChecklistStep.length) { | |
s.$(".checklist-item").show(); | |
u.empty().append($("<option />").val("").text("-- Select an Option --")); | |
_.each(w.ADMChecklistStep, function (B) { | |
u.append($("<option />").val(B.dd_id).text(B.dd_description).prop("selected", (B.dd_id === q))) | |
}); | |
v.empty().append($("<option />").val("").text("-- Select an Option --")); | |
_.each(w.ADMCandidateDataCollectionStatuses, function (B) { | |
v.append($("<option />").val(B.dd_id).text(B.dd_description).prop("selected", (B.dd_id === r))) | |
}); | |
u.change(); | |
if (s.model.get("SelfScheduleInd")) { | |
s.$("#checklist-name").html(_.findWhere(w.ADMChecklistStep, { | |
dd_id: q | |
}).dd_description) | |
} | |
} | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
toggleChecklistStatus: function (q) { | |
var r = this; | |
if ($(q.target).prop("value") == "") { | |
r.$('select[name="ChecklistItemStatus"]').val(""); | |
r.$(".checklist-status").hide() | |
} else { | |
r.$(".checklist-status").show() | |
} | |
}, | |
toggleScheduleHolder: function () { | |
var s = this, | |
q = !!s.model.get("OpeningDetailId"), | |
r = !!s.model.getScheduledDate(), | |
t = s.model.get("SelfScheduleInd"); | |
if (q || !r || t) { | |
s.$(".scheduled-opening-holder").toggle(true); | |
s.$(".custom-opening-holder").toggle(false) | |
} else { | |
s.$(".scheduled-opening-holder").toggle(false); | |
s.$(".custom-opening-holder").toggle(true) | |
} | |
} | |
}); | |
a.Vs.DeleteAppointment = l.Vs.Modal2.extend({ | |
template: "admscheduling/admscheduling.appointment.delete.template.html", | |
events: { | |
"shown.bs.collapse #send-official-note": "showCollapse", | |
"hidden.bs.collapse #send-official-note": "hideCollapse" | |
}, | |
modalInitialized: function () { | |
this.options.variables = { | |
labelDelete: (!this.model.get("SelfScheduleInd") && this.model.get("ChecklistItemStatus") === 2) ? "Decline" : "Delete", | |
labelType: (this.model.has("VisitId")) ? "Visit" : "Interview", | |
hasComposeAccess: p3.Data.Context.findByTaskId(53186) | |
}; | |
this.appLocation = window.location.hash.toLowerCase().indexOf("candidateview") > -1 ? "candidateview" : window.location.hash.toLowerCase().indexOf("candidate") > -1 ? "candidate" : window.location.hash.toLowerCase().indexOf("visitinterview") > -1 ? "visitinterview" : window.location.hash.toLowerCase().indexOf("dashboard") > -1 ? "dashboard" : "calendar" | |
}, | |
modalUpdate: function (q) { | |
return false | |
}, | |
modalRendered: function () { | |
var q = this; | |
if (q.options.variables.hasComposeAccess) { | |
k.PrepopulateData = q.model.get("ProspectUserId"); | |
q.officialNote = new k.Vs.AdmissionsCompose({ | |
hideModal: true, | |
detailId: 0 | |
}); | |
p3.rV(q.officialNote, q.$("#send-official-note"), true) | |
} | |
}, | |
modalSave: function () { | |
var q = this; | |
if (q.$('[name="send-official-note"]').is(":checked")) { | |
q.officialNote.once("saveSuccess", q.deleteAppointment, this); | |
q.officialNote.save({ | |
target: { | |
id: "send" | |
} | |
}) | |
} else { | |
q.deleteAppointment() | |
} | |
return false | |
}, | |
deleteAppointment: function () { | |
var q = this; | |
q.model.destroy({ | |
dataParam: { | |
prospectInstanceId: q.model.get("ProspectInstanceId"), | |
selfScheduleInd: q.model.get("SelfScheduleInd") | |
}, | |
wait: true, | |
success: function () { | |
if (!_.has(q.model._events, "destroy")) { | |
if (q.appLocation === "calendar") { | |
$("#fullCalView").fullCalendar("refetchEvents") | |
} else { | |
if (q.appLocation === "dashboard") { | |
$("#sort-table").trigger("refreshData") | |
} else { | |
if (q.appLocation === "candidateview") { | |
$("#checklistHeader").trigger("refreshData") | |
} else { | |
if (q.appLocation === "visitinterview") { | |
$(".visitinterview-worklist-refresh").trigger("refreshData") | |
} else { | |
$(".candidate-header").parent().parent().trigger("renderdata") | |
} | |
} | |
} | |
} | |
} | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function () { | |
p3.displayError("Error deleting appointment") | |
} | |
}) | |
}, | |
modalCancel: function (q) { | |
if (this.options.subModal) { | |
l.Us.showMainModal(); | |
p3.setModalHeight(p3.Layout.Containers.Modal); | |
return false | |
} | |
}, | |
showCollapse: function () { | |
this.$(".save").html(this.options.variables.labelDelete + " & send official note") | |
}, | |
hideCollapse: function () { | |
this.$(".save").html(this.options.variables.labelDelete) | |
} | |
}); | |
a.Vs.Basics = Bb.View.extend({ | |
initialize: function (q) { | |
var r = this; | |
r.viewConfig = q.viewConfig || {}; | |
r.template = r.viewConfig.template | |
}, | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var s = this, | |
q = s.model.getScheduledDate(), | |
r = (s.options.parent.appLocation === "calendar" || (s.options.parent.appLocation === "visitinterview" && _.isNull(s.model.get("ProspectInstanceId")))); | |
if (q) { | |
q = new Date(q); | |
s.model.set({ | |
Date: c.getDateString(q), | |
StartTime: c.getTimeString(q) | |
}) | |
} | |
p3.fT(s.template, function (t) { | |
s.$el.html(t({ | |
model: s.model.toJSON(), | |
dictionaries: s.options.dictionaries, | |
id: s.model.id, | |
showCandidate: r, | |
viewConfig: s.viewConfig | |
})); | |
d.Us.initialize(".date-input", { | |
yearRange: "-1:+1" | |
}); | |
n.Us.initialize(".time-input"); | |
if (r) { | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
s.options.parent.initializeAutoComplete() | |
}) | |
} | |
if (s.model.get("ProspectInstanceId") || s.model.get("OpeningDetailId")) { | |
s.options.parent.renderProspect() | |
} | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}) | |
} | |
}); | |
a.Vs.Agenda = Bb.View.extend({ | |
template: "admscheduling/admscheduling.appointment.edit.agenda.template.html", | |
id: "agenda-main", | |
events: { | |
"click .add-activity": "addActivity", | |
refreshactivities: "refreshActivities" | |
}, | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({ | |
model: q.model.toJSON() | |
})); | |
q.refreshActivities() | |
}) | |
}, | |
refreshActivities: function () { | |
var r = this, | |
q = r.$(".activity-list-holder"); | |
q.empty(); | |
if (!r.model.get("Agenda").Activities) { | |
r.model.get("Agenda").Activities = [] | |
} | |
_.each(r.model.get("Agenda").Activities, function (s) { | |
if (c.isDate(s.StartTime)) { | |
s.StartTime = c.getTimeString(c.getDate(s.StartTime)) | |
} | |
s.Sort = c.displayTime(s.StartTime, null, "timeSpan") | |
}); | |
r.model.get("Agenda").Activities.sort(function (s, t) { | |
return m.Us.naturalSort(s.Sort, t.Sort, "asc") | |
}); | |
if (r.model.get("Agenda").Activities.length) { | |
_.each(r.model.get("Agenda").Activities, function (u, t) { | |
if (!u.DeleteInd) { | |
u._tempindex = t; | |
if (!u.Participants) { | |
u.Participants = [] | |
} | |
var s = new a.Vs.Activity({ | |
model: new a.Ms.Activity(u), | |
dictionaries: r.options.dictionaries, | |
parent: r.options.parent | |
}); | |
p3.rV(s, q, false) | |
} | |
}) | |
} else { | |
q.html('<div class="bb-deemphasized mt-20">No activities scheduled</div>') | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
addActivity: function () { | |
var r = this, | |
q = new a.Ms.Activity({ | |
Participants: [] | |
}); | |
a.Us.EditActivity(r, q, r.model) | |
} | |
}); | |
a.Vs.Activity = Bb.View.extend({ | |
template: "admscheduling/admscheduling.appointment.edit.agenda.activity.template.html", | |
className: "col-xs-12", | |
events: { | |
"click .edit-activity": "editActivity", | |
"click .delete-activity": "deleteActivity" | |
}, | |
render: function (q) { | |
var r = this; | |
$(q).append(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({ | |
model: q.model.toJSON(), | |
dictionaries: q.options.dictionaries | |
})); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
editActivity: function (q) { | |
q.preventDefault(); | |
q.stopPropagation(); | |
var r = this; | |
r.$(".dropdown").removeClass("open"); | |
a.Us.EditActivity(r, r.model, r.options.parent.model) | |
}, | |
deleteActivity: function (r) { | |
r.preventDefault(); | |
r.stopPropagation(); | |
var s = this, | |
q; | |
q = _.reject(s.options.parent.model.get("Agenda").Activities, function (u, t) { | |
if (t === s.model.get("_tempindex")) { | |
if (p.isEmptier(u.ActivityId)) { | |
return true | |
} | |
u.DeleteInd = true | |
} | |
}); | |
s.options.parent.model.get("Agenda").Activities = q; | |
$("#agenda-main").trigger("refreshactivities") | |
} | |
}); | |
a.Us.EditActivity = function (t, s, q) { | |
var r; | |
i.Us.Fetch({ | |
ADMParticipantType: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
id: 148, | |
inputParam: "@" + t.options.parent.viewConfig.AppointmentTypeLower + "_ind=1[i]" | |
} | |
}, | |
Locations: new a.Cs.Locations() | |
}, function (u, w, v) { | |
r = l.Vs.Modal2.extend({ | |
template: "admscheduling/admscheduling.appointment.edit.agenda.editactivity.template.html", | |
model: s, | |
dictionaries: u, | |
events: { | |
"click .show-participant-add": "showParticipant", | |
"click .cancel-participant": "hideParticipant", | |
"click .save-participant": "saveParticipant", | |
"click .remove-participant": "removeParticipant", | |
"click .show-schedule": "showMyDaySchedule" | |
}, | |
subModal: true, | |
modalInitialized: function () { | |
var x = this; | |
p3.fT("admscheduling/admscheduling.myday.schedule.template.html", function (y) { | |
x.scheduleTemplateFunction = y | |
}) | |
}, | |
modalDispose: function () { | |
var x = this; | |
x.disposePopover() | |
}, | |
modalRendered: function () { | |
var x = this; | |
x.refreshParticipants(); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
a.Us.AutoComplete(x.$('[name="ParticipantUserId"]'), new a.Cs.Participants(), "ParticipantName", function (y, z) { | |
x.NewParticipant.set({ | |
ParticipantUserId: z.item.obj.get("ParticipantUserId") | |
}); | |
x.NewParticipant.set({ | |
ParticipantName: z.item.obj.get("ParticipantName") | |
}); | |
a.Us.GetMyDaySchedule(z.item.obj.get("ParticipantUserId"), q.get("Date"), function (A) { | |
if (A && A.length) { | |
x.NewParticipant.set({ | |
HasSchedule: true, | |
MyDaySchedule: A | |
}); | |
x.$(".participant-add-holder .student-schedule-holder").show() | |
} | |
}) | |
}); | |
a.Us.AutoComplete(x.$('[name="BuildingRoomId"]'), new a.Cs.Locations(), "FullName", function (y, z) { | |
x.model.set({ | |
BuildingRoomId: z.item.obj.get("BuildingRoomId") | |
}) | |
}) | |
}); | |
n.Us.initialize(".time-input"); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.AutoSize, function () { | |
x.$("textarea").autosize() | |
}); | |
_.each(x.$("textarea.counter-input"), function (y) { | |
$(y).trigger($.Event("keyup")) | |
}); | |
$(document).on("click.AdmSchedule", function (y) { | |
if ($(y.target).closest(".popover").length === 0) { | |
x.closePopover() | |
} | |
}); | |
$("#site-modal").one("hidden.bs.modal", function (y) { | |
x.disposePopover() | |
}) | |
}, | |
modalUpdate: function (y) { | |
var z = this, | |
x = y.eventCurrentTarget, | |
A = x.prop("name"), | |
B = x.val(); | |
if (A === "ParticipantUserId") { | |
return false | |
} | |
if (A === "BuildingRoomId") { | |
return false | |
} | |
if (A === "ParticipantTypeId") { | |
z.NewParticipant.set({ | |
ParticipantTypeId: o.stringToInt(B) | |
}); | |
return false | |
} | |
}, | |
modalCancel: function (x) { | |
var y = this; | |
y.disposePopover(); | |
l.Us.showMainModal(); | |
p3.setModalHeight(p3.Layout.Containers.Modal); | |
return false | |
}, | |
modalSave: function (x) { | |
var y = this; | |
if (y.model.isValid(true)) { | |
if (!p.isEmptier(y.model.get("_tempindex"))) { | |
t.options.parent.model.get("Agenda").Activities[y.model.get("_tempindex")] = y.model.toJSON() | |
} else { | |
t.options.parent.model.get("Agenda").Activities.push(y.model.toJSON()) | |
} | |
y.disposePopover(); | |
l.Us.showMainModal(); | |
$("#agenda-main").trigger("refreshactivities") | |
} | |
return false | |
}, | |
showParticipant: function () { | |
var x = this; | |
x.NewParticipant = new a.Ms.Participant({ | |
ParticipantId: null | |
}); | |
x.$(".show-participant-add").hide(); | |
x.$(".participant-add-holder").show() | |
}, | |
hideParticipant: function () { | |
var z = this, | |
y = z.$('[name="ParticipantUserId"]'), | |
x = z.$('[name="ParticipantTypeId"]'); | |
y.val(""); | |
x.val(""); | |
y.removeClass("box-validate"); | |
x.removeClass("box-validate"); | |
z.$(".show-participant-add").show(); | |
z.$(".participant-add-holder").hide(); | |
z.$(".participant-add-holder .student-schedule-holder").hide() | |
}, | |
saveParticipant: function () { | |
var A = this, | |
z = A.$('[name="ParticipantUserId"]'), | |
y = A.$('[name="ParticipantTypeId"]'), | |
x = true; | |
if (p.isEmptier(A.NewParticipant.get("ParticipantUserId"))) { | |
z.val("") | |
} else { | |
z.val(A.NewParticipant.get("ParticipantName")) | |
} | |
if (p.isEmptier(z.val())) { | |
z.addClass("box-validate"); | |
x = false | |
} else { | |
z.removeClass("box-validate") | |
} | |
if (p.isEmptier(y.val())) { | |
y.addClass("box-validate"); | |
x = false | |
} else { | |
y.removeClass("box-validate") | |
} | |
if (x) { | |
A.model.get("Participants").push(A.NewParticipant.toJSON()); | |
A.hideParticipant(); | |
A.refreshParticipants() | |
} | |
}, | |
removeParticipant: function (x) { | |
var z = this, | |
y; | |
y = _.reject(z.model.get("Participants"), function (A) { | |
if (A.ParticipantUserId === z.$(x.currentTarget).data("userid")) { | |
if (p.isEmptier(A.ParticipantId)) { | |
return true | |
} | |
A.DeleteInd = true | |
} | |
}); | |
z.model.set({ | |
Participants: y | |
}); | |
z.refreshParticipants() | |
}, | |
refreshParticipants: function () { | |
var A = this, | |
x = A.$(".participant-holder"), | |
z = A.model.get("Participants"), | |
y = q.get("Date"); | |
p3.fT("admscheduling/admscheduling.appointment.edit.agenda.editactivity.participants.template.html", function (B) { | |
x.html(B({ | |
model: A.model.toJSON(), | |
dictionaries: u | |
})); | |
if (q.isNew() && y && z && z.length) { | |
_.each(z, function (C) { | |
if (!C.hasOwnProperty("HasSchedule")) { | |
a.Us.GetMyDaySchedule(C.ParticipantUserId, y, function (D) { | |
if (D && D.length) { | |
C.HasSchedule = true; | |
C.MyDaySchedule = D; | |
A.$(".show-schedule[data-userid=" + C.ParticipantUserId + "]").closest(".student-schedule-holder").show() | |
} else { | |
C.HasSchedule = false | |
} | |
}) | |
} | |
}) | |
} | |
A.initPopover() | |
}); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
showMyDaySchedule: function (y) { | |
y.preventDefault(); | |
var A = this, | |
x = $(y.currentTarget), | |
z, B; | |
A.closePopover(); | |
if (x.parents(".participant-add-holder").length) { | |
z = A.NewParticipant.toJSON() | |
} else { | |
B = x.data("userid"); | |
z = _.findWhere(A.model.get("Participants"), { | |
ParticipantUserId: B | |
}) | |
} | |
if (z && z.HasSchedule) { | |
A.scheduleParticipant = z; | |
if (z.MyDaySchedule && z.MyDaySchedule.length) { | |
_.defer(function () { | |
x.popover("show") | |
}) | |
} else { | |
a.Us.GetMyDaySchedule(z.ParticipantUserId, q.get("Date"), function (C) { | |
if (C && C.length) { | |
z.MyDaySchedule = C; | |
x.popover("show") | |
} | |
}) | |
} | |
} | |
}, | |
getScheduleContent: function (y) { | |
var x = this; | |
return x.scheduleTemplateFunction({ | |
items: x.scheduleParticipant.MyDaySchedule.toJSON() | |
}) | |
}, | |
initPopover: function () { | |
var y = this, | |
x = y.$(".show-schedule"); | |
x.popover({ | |
html: true, | |
title: function () { | |
return y.popoverTitle(this) | |
}, | |
placement: "bottom", | |
container: "body", | |
content: function () { | |
return y.getScheduleContent(this) | |
}, | |
template: '<div class="popover schedule-popover" role="tooltip" style="z-index:1110; max-width:600px"><div class="arrow"></div><a class="close pull-right iconColor popover-close mr-5">×</a><h3 class="popover-title"></h3><div class="popover-content"></div></div>', | |
trigger: "manual" | |
}).on("shown.bs.popover", function () { | |
$(".schedule-popover .popover-close").click(function () { | |
y.closePopover() | |
}) | |
}) | |
}, | |
popoverTitle: function (y) { | |
var x = this; | |
return x.scheduleParticipant.ParticipantName + "'s schedule for " + c.displayDate(q.get("Date")) | |
}, | |
closePopover: function () { | |
$(".popover.schedule-popover").hide().remove() | |
}, | |
disposePopover: function () { | |
var x = this; | |
x.closePopover(); | |
$(document).off(".AdmSchedule") | |
} | |
}); | |
l.Us.showSubModal(); | |
p3.rV(new r(), $(".modal .modal-sub"), true) | |
}) | |
}; | |
a.Vs.Notes = Bb.View.extend({ | |
initialize: function (q) { | |
var r = this; | |
r.viewConfig = q.viewConfig || {}; | |
r.template = r.viewConfig.template | |
}, | |
render: function (q) { | |
var r = this; | |
$(q).html(r.el); | |
r.renderData() | |
}, | |
renderData: function () { | |
var q = this; | |
p3.fT(q.template, function (r) { | |
q.$el.html(r({ | |
model: q.model.toJSON() | |
})); | |
l.Us.initializeUpload_File(q, "name"); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.AutoSize, function () { | |
q.$("textarea").autosize() | |
}); | |
_.each(q.$("textarea.counter-input"), function (s) { | |
$(s).trigger($.Event("keyup")) | |
}); | |
a.Us.SetModalHeight(p3.Layout.Containers.Modal) | |
}) | |
} | |
}); | |
a.Us.ToggleRecurHolder = function (r, q) { | |
q = o.stringToInt(q); | |
r.$(".recur-holder").hide(); | |
if (q === 4) { | |
r.$(".daily-holder").show() | |
} else { | |
if (q === 5) { | |
r.$(".weekly-holder").show() | |
} else { | |
if (q === 6) { | |
r.$(".monthly-holder").show() | |
} else { | |
if (q === 7) { | |
r.$(".yearly-holder").show() | |
} | |
} | |
} | |
} | |
}; | |
a.Us.AddOpening = function (t, u) { | |
var q = {}, | |
v, r, s = new a.Ms.Opening({ | |
Occurrence: "single", | |
SlotsAvailable: 1, | |
Recurrence: { | |
frequency: 4 | |
} | |
}); | |
q.Months = p3.Us.DataLibrary.Months; | |
q.Days = p3.Us.DataLibrary.Days; | |
r = { | |
GradeLevels: new a.Cs.GradeLevels() | |
}; | |
if (t === "visit") { | |
r.ADMVisitTypes = { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Visit Types", | |
id: 103, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}; | |
v = "Add a visit opening" | |
} else { | |
if (t === "interview") { | |
r.ADMInterviewTypes = { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Interview Types", | |
id: 101, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}; | |
v = "Add an interview opening" | |
} | |
} | |
i.Us.Fetch(r, function (w, y, x) { | |
var z = 0; | |
if (t === "visit") { | |
q.ADMVisitTypes = w.ADMVisitTypes; | |
if (q.ADMVisitTypes.length) { | |
q.ADMVisitTypes = _.filter(q.ADMVisitTypes, function (A) { | |
if (A.dd_active) { | |
return A | |
} | |
}) | |
} | |
} else { | |
if (t === "interview") { | |
q.ADMInterviewTypes = w.ADMInterviewTypes; | |
if (q.ADMInterviewTypes.length) { | |
q.ADMInterviewTypes = _.filter(q.ADMInterviewTypes, function (A) { | |
if (A.dd_active) { | |
return A | |
} | |
}) | |
} | |
} | |
} | |
q.GradeLevels = _.chain(w.GradeLevels.toJSON()).groupBy("SchoolLevelDesc").each(function (A) { | |
A.LevelDesc = A[0].SchoolLevelDesc; | |
A.LevelNum = A[0].SchoolLevelNum; | |
_.each(A, function (B) { | |
B.index = z; | |
z++ | |
}) | |
}).value(); | |
s.set({ | |
Grades: w.GradeLevels.toJSON() | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.AddOpening({ | |
model: s, | |
dictionaries: q, | |
variables: { | |
title: v, | |
openingType: t | |
}, | |
refresh: u | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}; | |
a.Us.EditOpening = function (u, r, v, y) { | |
var q = {}, | |
x, w, s, t = new a.Ms.Opening({ | |
Occurrence: "single", | |
OpeningDetailId: r, | |
Recurrence: { | |
frequency: 4 | |
} | |
}); | |
q.Months = p3.Us.DataLibrary.Months; | |
q.Days = p3.Us.DataLibrary.Days; | |
s = { | |
Opening: t | |
}; | |
if (u === "visit") { | |
s.ADMVisitTypes = { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Visit Types", | |
id: 103, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}; | |
x = "Edit a visit opening occurrence"; | |
w = "Edit a visit opening series" | |
} else { | |
if (u === "interview") { | |
s.ADMInterviewTypes = { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Interview Types", | |
id: 101, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}; | |
x = "Edit an interview opening occurrence"; | |
w = "Edit an interview opening series" | |
} | |
} | |
i.Us.Fetch(s, function (z, B, A) { | |
var C = 0, | |
D; | |
if (u === "visit") { | |
q.ADMVisitTypes = z.ADMVisitTypes; | |
if (q.ADMVisitTypes.length) { | |
q.ADMVisitTypes = _.filter(q.ADMVisitTypes, function (E) { | |
if (E.dd_active) { | |
return E | |
} | |
}) | |
} | |
} else { | |
if (u === "interview") { | |
q.ADMInterviewTypes = z.ADMInterviewTypes; | |
if (q.ADMInterviewTypes.length) { | |
q.ADMInterviewTypes = _.filter(q.ADMInterviewTypes, function (E) { | |
if (E.dd_active) { | |
return E | |
} | |
}) | |
} | |
} | |
} | |
q.GradeLevels = _.chain(t.toJSON().Grades).groupBy("SchoolLevelDesc").each(function (E) { | |
E.LevelDesc = E[0].SchoolLevelDesc; | |
E.LevelNum = E[0].SchoolLevelNum; | |
_.each(E, function (F) { | |
F.index = C; | |
C++ | |
}) | |
}).value(); | |
t.set({ | |
Date: c.getDateString(c.getDate(t.get("StartDate"))), | |
StartTime: c.getTimeString(c.getDate(t.get("StartDate"))), | |
EndTime: c.getTimeString(c.getDate(t.get("EndDate"))) | |
}); | |
D = new a.Vs.EditOpening({ | |
model: t, | |
dictionaries: q, | |
variables: { | |
title: x, | |
seriesTitle: w, | |
openingType: u | |
}, | |
refresh: v | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(D, p3.Layout.Containers.Modal, true); | |
if (y) { | |
D.toggleOccurrence() | |
} | |
}) | |
}; | |
a.Us.DeleteOpening = function (q, s) { | |
var r = q.get("Occurrence") === "single" ? "occurrence" : "series"; | |
p3.showConfirm("Delete opening " + r, "Wait a minute. Are you really sure you want to delete this opening " + r + "?", null, function () { | |
q.destroy({ | |
success: function () { | |
s.call(); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function () { | |
p3.displayError("Error deleting opening") | |
} | |
}) | |
}) | |
}; | |
a.Us.AddVisit = function (r, s) { | |
var q, t = new a.Ms.Visit({ | |
VisitType: {}, | |
OpeningDetailId: r, | |
ProspectInstanceId: s, | |
AccompanyingAdults: [], | |
Agenda: { | |
Activities: [] | |
} | |
}); | |
q = { | |
ADMVisitTypes: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Visit Types", | |
id: 103, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}, | |
ADMStaff: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
id: e.DictionaryData.ADMStaff.id, | |
keyName: e.DictionaryData.ADMStaff.keyName, | |
valueName: e.DictionaryData.ADMStaff.valueName, | |
inputParam: e.DictionaryData.ADMStaff.inputParam | |
} | |
} | |
}; | |
if (r) { | |
q.Opening = new a.Ms.Opening({ | |
OpeningDetailId: r, | |
Occurrence: "single" | |
}) | |
} | |
i.Us.Fetch(q, function (u, w, v) { | |
if (r) { | |
t.set({ | |
VisitType: { | |
VisitTypeId: u.Opening.get("VisitTypeId") | |
}, | |
VisitDate: u.Opening.get("StartDate"), | |
OpeningDetail: u.Opening.toJSON() | |
}) | |
} | |
if (u.ADMVisitTypes.length) { | |
u.ADMVisitTypes = _.filter(u.ADMVisitTypes, function (x) { | |
if (x.dd_active) { | |
return x | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.EditAppointment({ | |
model: t, | |
dictionaries: u, | |
viewConfig: a.Data.ViewConfigs.Visit | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}; | |
a.Us.EditVisit = function (t, r) { | |
var q, s = new a.Ms.Visit({ | |
VisitId: t | |
}); | |
s.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: r | |
}, | |
success: function () { | |
q = { | |
ADMVisitTypes: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Visit Types", | |
id: 103, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}, | |
ADMStaff: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
id: e.DictionaryData.ADMStaff.id, | |
keyName: e.DictionaryData.ADMStaff.keyName, | |
valueName: e.DictionaryData.ADMStaff.valueName, | |
inputParam: e.DictionaryData.ADMStaff.inputParam | |
} | |
} | |
}; | |
i.Us.Fetch(q, function (u, w, v) { | |
if (u.ADMVisitTypes.length) { | |
u.ADMVisitTypes = _.filter(u.ADMVisitTypes, function (x) { | |
if (x.dd_active || (x.dd_id === s.get("VisitType").VisitTypeId)) { | |
return x | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.EditAppointment({ | |
model: s, | |
dictionaries: u, | |
viewConfig: a.Data.ViewConfigs.Visit | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error opening visit") | |
} | |
}) | |
}; | |
a.Us.AddSelfScheduleVisit = function (s, q) { | |
var r, t = new a.Ms.Visit({ | |
VisitType: {}, | |
ProspectInstanceId: s, | |
ChecklistItemId: q, | |
SelfScheduleInd: true, | |
AccompanyingAdults: [], | |
Agenda: { | |
Activities: [] | |
} | |
}); | |
r = { | |
ADMVisitTypes: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Visit Types", | |
id: 103, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data", | |
inputParam: "checklist_item_id =" + q + "[i]" | |
} | |
} | |
}; | |
if (!_.has(a.Data.ViewConfigs.VisitSelfSchedule.BasicsView, "SelfScheduleText")) { | |
r.Settings = new a.Ms.Settings() | |
} | |
i.Us.Fetch(r, function (u, w, v) { | |
if (u.Settings) { | |
a.Data.ViewConfigs.VisitSelfSchedule.BasicsView.SelfScheduleText = u.Settings.get("SelfSchedulingVisit").SelfScheduleText | |
} | |
if (u.ADMVisitTypes.length) { | |
u.ADMVisitTypes = _.filter(u.ADMVisitTypes, function (x) { | |
if (x.dd_data) { | |
return x | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.EditAppointment({ | |
model: t, | |
dictionaries: u, | |
viewConfig: a.Data.ViewConfigs.VisitSelfSchedule | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}; | |
a.Us.EditSelfScheduleVisit = function (s, q, u) { | |
var r, t = new a.Ms.Visit({ | |
VisitId: u, | |
SelfScheduleInd: true | |
}); | |
t.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: s | |
}, | |
success: function () { | |
r = { | |
ADMVisitTypes: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Visit Types", | |
id: 103, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data", | |
inputParam: "checklist_item_id =" + q + "[i]" | |
} | |
} | |
}; | |
if (!_.has(a.Data.ViewConfigs.VisitSelfSchedule.BasicsView, "SelfScheduleText")) { | |
r.Settings = new a.Ms.Settings() | |
} | |
i.Us.Fetch(r, function (v, x, w) { | |
if (v.Settings) { | |
a.Data.ViewConfigs.VisitSelfSchedule.BasicsView.SelfScheduleText = v.Settings.get("SelfSchedulingVisit").SelfScheduleText | |
} | |
if (v.ADMVisitTypes.length) { | |
v.ADMVisitTypes = _.filter(v.ADMVisitTypes, function (y) { | |
if (y.dd_data || (y.dd_id === t.get("VisitType").VisitTypeId)) { | |
return y | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.EditAppointment({ | |
model: t, | |
dictionaries: v, | |
viewConfig: a.Data.ViewConfigs.VisitSelfSchedule | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error opening visit") | |
} | |
}) | |
}; | |
a.Us.AddInterview = function (s, t) { | |
var r, q = new a.Ms.Interview({ | |
InterviewType: {}, | |
OpeningDetailId: s, | |
ProspectInstanceId: t, | |
AccompanyingAdults: [], | |
Agenda: { | |
Activities: [] | |
} | |
}); | |
r = { | |
ADMInterviewTypes: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Interview Types", | |
id: 101, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}, | |
ADMStaff: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
id: 102, | |
keyName: "user_id", | |
valueName: "user_name", | |
inputParam: "@admissions_staff_id=null,@onBoard_ind=1[i]" | |
} | |
} | |
}; | |
if (s) { | |
r.Opening = new a.Ms.Opening({ | |
OpeningDetailId: s, | |
Occurrence: "single" | |
}) | |
} | |
i.Us.Fetch(r, function (u, w, v) { | |
if (s) { | |
q.set({ | |
InterviewType: { | |
InterviewTypeId: u.Opening.get("InterviewTypeId") | |
}, | |
InterviewDate: u.Opening.get("StartDate"), | |
OpeningDetail: u.Opening.toJSON() | |
}) | |
} | |
if (u.ADMInterviewTypes.length) { | |
u.ADMInterviewTypes = _.filter(u.ADMInterviewTypes, function (x) { | |
if (x.dd_active) { | |
return x | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.EditAppointment({ | |
model: q, | |
dictionaries: u, | |
viewConfig: a.Data.ViewConfigs.Interview | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}; | |
a.Us.EditInterview = function (r, t) { | |
var s, q = new a.Ms.Interview({ | |
InterviewId: r | |
}); | |
q.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: t | |
}, | |
success: function () { | |
s = { | |
ADMInterviewTypes: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Interview Types", | |
id: 101, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}, | |
ADMStaff: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
id: 102, | |
keyName: "user_id", | |
valueName: "user_name", | |
inputParam: "@admissions_staff_id=null,@onBoard_ind=1[i]" | |
} | |
} | |
}; | |
i.Us.Fetch(s, function (u, w, v) { | |
if (u.ADMInterviewTypes.length) { | |
u.ADMInterviewTypes = _.filter(u.ADMInterviewTypes, function (x) { | |
if (x.dd_active || (x.dd_id === q.get("InterviewType").InterviewTypeId)) { | |
return x | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.EditAppointment({ | |
model: q, | |
dictionaries: u, | |
viewConfig: a.Data.ViewConfigs.Interview | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error opening interview") | |
} | |
}) | |
}; | |
a.Us.AddSelfScheduleInterview = function (t, q) { | |
var s, r = new a.Ms.Interview({ | |
InterviewType: {}, | |
ProspectInstanceId: t, | |
ChecklistItemId: q, | |
SelfScheduleInd: true, | |
AccompanyingAdults: [] | |
}); | |
s = { | |
ADMInterviewTypes: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Interview Types", | |
id: 101, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data", | |
inputParam: "checklist_item_id =" + q + "[i]" | |
} | |
} | |
}; | |
if (!_.has(a.Data.ViewConfigs.InterviewSelfSchedule.BasicsView, "SelfScheduleText")) { | |
s.Settings = new a.Ms.Settings() | |
} | |
i.Us.Fetch(s, function (u, w, v) { | |
if (u.Settings) { | |
a.Data.ViewConfigs.InterviewSelfSchedule.BasicsView.SelfScheduleText = u.Settings.get("SelfSchedulingInterview").SelfScheduleText | |
} | |
if (u.ADMInterviewTypes.length) { | |
u.ADMInterviewTypes = _.filter(u.ADMInterviewTypes, function (x) { | |
if (x.dd_data) { | |
return x | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.EditAppointment({ | |
model: r, | |
dictionaries: u, | |
viewConfig: a.Data.ViewConfigs.InterviewSelfSchedule | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}; | |
a.Us.EditSelfScheduleInterview = function (u, q, s) { | |
var t, r = new a.Ms.Interview({ | |
InterviewId: s, | |
SelfScheduleInd: true | |
}); | |
r.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: u | |
}, | |
success: function (v) { | |
t = { | |
ADMInterviewTypes: { | |
data: new i.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Interview Types", | |
id: 101, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data", | |
inputParam: "checklist_item_id =" + q + "[i]" | |
} | |
} | |
}; | |
if (!_.has(a.Data.ViewConfigs.InterviewSelfSchedule.BasicsView, "SelfScheduleText")) { | |
t.Settings = new a.Ms.Settings() | |
} | |
i.Us.Fetch(t, function (w, y, x) { | |
if (w.Settings) { | |
a.Data.ViewConfigs.InterviewSelfSchedule.BasicsView.SelfScheduleText = w.Settings.get("SelfSchedulingInterview").SelfScheduleText | |
} | |
if (w.ADMInterviewTypes.length) { | |
w.ADMInterviewTypes = _.filter(w.ADMInterviewTypes, function (z) { | |
if (z.dd_data || (z.dd_id === r.get("InterviewType").InterviewTypeId)) { | |
return z | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.EditAppointment({ | |
model: r, | |
dictionaries: w, | |
viewConfig: a.Data.ViewConfigs.InterviewSelfSchedule | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error opening interview") | |
} | |
}) | |
}; | |
a.Us.AutoComplete = function (q, u, s, t) { | |
var r, v; | |
q.autocomplete({ | |
userAll: null, | |
minLength: 2, | |
previousSearch: "", | |
source: function (w, x) { | |
r = this; | |
if (r.options.userAll === null) { | |
r.options.userAll = u | |
} | |
r.fetchComplete = function (y) { | |
r.previous = q.prop("value"); | |
v = new RegExp($.ui.autocomplete.escapeRegex(this.term), "i"); | |
x($.map(y.models, function (z) { | |
if (z.get(s).match(v)) { | |
return { | |
value: z.get(s), | |
obj: z | |
} | |
} | |
})) | |
}; | |
if ((r.options.userAll.length === 0) || (q.prop("value").slice(0, 2) !== r.previous.slice(0, 2))) { | |
r.options.userAll.fetch({ | |
data: { | |
searchText: q.prop("value").slice(0, 2) | |
}, | |
success: function (y) { | |
r.fetchComplete(y) | |
} | |
}) | |
} else { | |
r.fetchComplete(r.options.userAll) | |
} | |
}, | |
select: function (w, x) { | |
t(w, x) | |
} | |
}); | |
q.focus(function () { | |
var w = $(this); | |
if (w.val().length > 1) { | |
w.autocomplete("search") | |
} | |
}) | |
}; | |
a.Us.DeleteAppointment = function (r, s) { | |
var q = new a.Vs.DeleteAppointment({ | |
model: r, | |
dictionaries: { | |
Appointment: r.toJSON() | |
}, | |
subModal: s | |
}); | |
if (s) { | |
l.Us.showSubModal(); | |
p3.rV(q, $(".modal .modal-sub"), true) | |
} else { | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(q, p3.Layout.Containers.Modal, true) | |
} | |
}; | |
a.Us.AgendaModal = function (s, r, v, w, u) { | |
var t, q; | |
u = u || false; | |
switch (s) { | |
case 7: | |
q = new a.Ms.ChecklistInterview({ | |
InterviewId: r, | |
MyDay: u | |
}); | |
break; | |
case 12: | |
q = new a.Ms.ChecklistVisit({ | |
VisitId: r, | |
MyDay: u | |
}); | |
break | |
} | |
q.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: v | |
}, | |
success: function () { | |
t = l.Vs.Modal2.extend({ | |
template: "admscheduling/admscheduling.agenda.template.html", | |
model: q, | |
size: "md", | |
variables: { | |
userName: w | |
} | |
}); | |
l.Us.renderModal(new t({})) | |
}, | |
error: function (x, z, y) { | |
p3.displayError("Error loading agenda.") | |
} | |
}) | |
}; | |
a.Us.GetMyDaySchedule = function (t, s, q) { | |
if (t && s) { | |
var r = new a.Cs.MyDaySchedules(); | |
r.fetch({ | |
data: { | |
userId: t, | |
scheduleDate: s, | |
personaId: e.AppPersona.ONBOARD.Value | |
}, | |
error: function () { | |
p3.displayError("Error getting student schedule") | |
}, | |
complete: function () { | |
if (_.isFunction(q)) { | |
q(r) | |
} | |
} | |
}) | |
} else { | |
if (_.isFunction(q)) { | |
q() | |
} | |
} | |
}; | |
a.Us.SetModalHeight = _.debounce(p3.setModalHeight, 300); | |
p3.router().route("admissions/scheduling", "admissions/scheduling", function () { | |
p3.renderMainPage(new j.Vs.Layout({ | |
CalendarSet: e.CalendarSet.AdmScheduling | |
})) | |
}) | |
}(p3.module("admissions/admissionsscheduling"))); | |
(function (a) { | |
var b = p3.module("shared/base"), | |
f = p3.module("utilities/smodal"), | |
g = p3.Us.Tools, | |
d = p3.Us.InfoMessageLibrary, | |
c = p3.Us.Enum, | |
e = p3.module("utilities/multifetch"); | |
a.Ms.Test = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "AdmissionsTestId", | |
validation: { | |
Description: [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}], | |
SortOrder: [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}, { | |
pattern: "number", | |
msg: d.P3.NotNumeric | |
}], | |
AdmTestTypeId: [{ | |
fn: function (j, h, i) { | |
if ((g.stringToInt(this.attributes.AdmTestTypeId) !== g.stringToInt(this.attributes.InitialTestTypeInUse)) && this.attributes.IsSelectedTestTypeInUse) { | |
return "This Test Type is in use by another test. Test Type can only be used by one test at a time." | |
} | |
} | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissionstest/AdmissionsTest/" + this.id + "/" : aP + "admissionstest/AdmissionsTest/" | |
} | |
}); | |
a.Ms.SubTest = Bbm.extend({ | |
sync: b.DataParamSync, | |
validation: { | |
"SubTest.Description": [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}], | |
"SubTest.SortOrder": [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}, { | |
pattern: "number", | |
msg: d.P3.NotNumeric | |
}], | |
"SubTest.AdmSubTestTypeId": [{ | |
fn: function (m, h, j) { | |
var k = _.chain(this.collection.toJSON()).pluck("SubTest").pluck("AdmSubTestTypeId").value(), | |
i = [], | |
l; | |
_.each(k, function (n) { | |
i.push(g.stringToInt(n)) | |
}); | |
l = _.chain(i).compact().countBy().value(); | |
if (l[m] > 1) { | |
return "Each Sub Test type can only be used once." | |
} | |
} | |
}] | |
} | |
}); | |
a.Ms.InUse = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "AdmissionsTestId", | |
url: function () { | |
return this.id ? aP + "admissionstest/AdmissionsTestInUse/" + this.id + "/" : aP + "admissionstest/AdmissionsTestInUse/" | |
} | |
}); | |
a.Ms.SubTestInUse = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "SubTestId", | |
url: function () { | |
return aP + "admissionstest/AdmissionsSubTestInUse/" | |
} | |
}); | |
a.Cs.Tests = Bbc.extend({ | |
model: a.Ms.Test, | |
url: function () { | |
return aP + "admissionstest/AdmissionsTestList/" | |
} | |
}); | |
a.Cs.SubTests = Bbc.extend({ | |
model: a.Ms.SubTest, | |
isValid: f.Us.isValidCollection | |
}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.template.html", | |
initialize: function () { | |
this.Containers = {} | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).html(i.el); | |
p3.fT(i.template, function (j) { | |
p3.setTitle("Tests"); | |
i.$el.html(j()); | |
p3.rV(new a.Vs.Tests({}), $("#content"), false) | |
}) | |
} | |
}); | |
a.Vs.Tests = Bb.View.extend({ | |
template: "tests/tests.layout.template.html", | |
initialize: function () { | |
var h = this; | |
h.collection = new a.Cs.Tests(); | |
h.collection.bind("add", function (i) { | |
var j = new a.Vs.Test({ | |
model: i, | |
layoutView: h | |
}); | |
i.bind("sync", h.renderData, h); | |
p3.rV(j, h.$("#testTable"), false) | |
}, h) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click button.create": "createTest" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var h = this; | |
h.collection.reset(); | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({})); | |
h.collection.fetch({ | |
update: true, | |
cache: false | |
}) | |
}) | |
}, | |
toggleSection: function (i) { | |
var h = $(i.currentTarget); | |
h.siblings(".toggledetail").slideToggle("fast"); | |
if (h.hasClass("active")) { | |
h.removeClass("active") | |
} else { | |
h.addClass("active") | |
} | |
return false | |
}, | |
createTest: function () { | |
var j = this, | |
i, h; | |
i = new a.Ms.Test({ | |
Description: "", | |
SortOrder: 0, | |
ProspectTestId: 0, | |
SubTests: [] | |
}); | |
i.bind("sync", j.renderData, j); | |
e.Us.Fetch({ | |
TestTypes: { | |
data: new e.Cs.Dictionary(), | |
dataParams: c.DictionaryData.ADMTestType | |
} | |
}, function (k, m, l) { | |
if (l) { | |
p3.displayError("There was an error loading data.") | |
} | |
if (m) { | |
h = new a.Vs.TestModal({ | |
model: i, | |
dictionaries: k | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(h, p3.Layout.Containers.Modal, true) | |
} | |
}) | |
} | |
}); | |
a.Vs.Test = Bb.View.extend({ | |
template: "tests/tests.test.template.html", | |
tagName: "tr", | |
initialize: function () { | |
this.model.bind("destroy", this.deleteElement, this); | |
this.model.bind("remove", this.deleteElement, this) | |
}, | |
events: { | |
"click .edit": "editTest", | |
"click .delete": "deleteTest", | |
"click a.togglebutton": "toggleInfo" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.inUse = new a.Ms.InUse(); | |
i.inUse.fetch({ | |
data: { | |
testId: i.model.attributes.AdmissionsTestId | |
}, | |
success: function (j) { | |
i.renderData() | |
} | |
}) | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (j) { | |
h.$el.html(j({ | |
model: h.model.toJSON(), | |
inUse: h.inUse.attributes.Message | |
})); | |
var i = ""; | |
if (g.stringToInt(h.inUse.attributes.Message) === 1) { | |
i = "Test scores have been recorded for the test type '" + h.model.attributes.Description + "'. It may not be deleted." | |
} else { | |
if (g.stringToInt(h.inUse.attributes.Message) === 2) { | |
i = "The test type '" + h.model.attributes.Description + "' is used on one or more transcripts. It may not be deleted." | |
} else { | |
if (g.stringToInt(h.inUse.attributes.Message) === 3) { | |
i = "Test scores have been recorded for the test type '" + h.model.attributes.Description + "' and it is also used on one or more transcripts. It may not be deleted." | |
} | |
} | |
} | |
$(".tooltip-inuse").tooltip({ | |
title: i, | |
placement: "left" | |
}) | |
}) | |
}, | |
toggleInfo: function (i) { | |
var j = this, | |
h = $(i.currentTarget); | |
j.$(".toggleinfo").slideToggle("fast"); | |
if (h.hasClass("active")) { | |
h.removeClass("active") | |
} else { | |
h.addClass("active") | |
} | |
return false | |
}, | |
editTest: function () { | |
var h = this; | |
e.Us.Fetch({ | |
TestTypes: { | |
data: new e.Cs.Dictionary(), | |
dataParams: c.DictionaryData.ADMTestType | |
}, | |
SubTests: { | |
data: new a.Ms.Test(), | |
dataParams: { | |
testId: h.model.attributes.AdmissionsTestId | |
} | |
}, | |
SubTestTypes: { | |
data: new e.Cs.Dictionary(), | |
dataParams: { | |
id: 150, | |
adm_test_type_id: this.model.attributes.AdmissionsTestId | |
} | |
} | |
}, function (i, k, j) { | |
if (j) { | |
p3.displayError("There was an error loading data.") | |
} | |
if (k) { | |
h.model.set({ | |
SubTests: i.SubTests.attributes[0].AdmissionsSubTests | |
}); | |
var l = new a.Vs.TestModal({ | |
model: h.model, | |
dictionaries: i, | |
variables: { | |
Test: i.SubTests.attributes[0].AdmTestTypeId | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(l, p3.Layout.Containers.Modal, true) | |
} | |
}) | |
}, | |
deleteTest: function (h) { | |
var i = this; | |
if (g.stringToInt(i.inUse.attributes.Message) === 0) { | |
p3.showConfirm("Delete Test", "Wait a minute. Are you really sure you want to delete this test?", null, function () { | |
i.model.destroy({ | |
dataParam: { | |
testId: i.model.attributes.AdmissionsTestId | |
} | |
}) | |
}) | |
} | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
a.Vs.TestModal = f.Vs.Modal2.extend({ | |
template: "tests/tests.test.edit.template.html", | |
modalInitialized: function () { | |
var h = this; | |
h.subTestCollection = new a.Cs.SubTests(h.model.get("SubTests")) | |
}, | |
events: { | |
"click .test-add": "optionAdd", | |
"click .test-delete": "optionDelete", | |
"change .test-type": "optionSelectTestType" | |
}, | |
modalRendered: function () { | |
var h = this, | |
i = $(".test-type"); | |
a.Us.ShowSubTestTypes(); | |
_.each(h.subTestCollection.models, function (j) { | |
p3.rV(new a.Vs.SubTest({ | |
model: j, | |
dictionaries: h.options.dictionaries | |
}), h.$("table.subtests tbody"), false) | |
}); | |
h.model.attributes.IsSelectedTestTypeInUse = i.find(":selected").data("is-test-type-in-use"); | |
h.model.attributes.InitialTestTypeInUse = i.find(":selected").val() | |
}, | |
modalUpdate: function (i) { | |
var h = i.eventCurrentTarget; | |
if (h.hasClass("description")) { | |
return false | |
} | |
if (h.hasClass("sortorder")) { | |
return false | |
} | |
if (h.hasClass("ignore")) { | |
return false | |
} | |
}, | |
updateSubTestTypes: function (i) { | |
var h = this, | |
j = h.$(".sub-test-type"); | |
j.html(""); | |
j.append('<option value="">-- Select an Option --</option>'); | |
_.each(h.options.dictionaries.SubTestTypes, function (k) { | |
j.append('<option value="' + k.dd_id + '">' + k.dd_description + "</option>") | |
}); | |
a.Us.ShowSubTestTypes() | |
}, | |
optionSelectTestType: function (h) { | |
var j = this, | |
l = $(".test-type"), | |
k = parseInt(l.val(), 10), | |
i = l.find(":selected").data("is-test-type-in-use"); | |
j.model.attributes.IsSelectedTestTypeInUse = i; | |
j.model.attributes.TestTypeChanged = 1; | |
if (!isNaN(k)) { | |
e.Us.Fetch({ | |
SubTestTypes: { | |
data: new e.Cs.Dictionary(), | |
dataParams: { | |
id: 150, | |
adm_test_type_id: k | |
} | |
} | |
}, function (m, o, n) { | |
if (n) { | |
p3.displayError("There was an error loading data.") | |
} | |
if (o) { | |
j.options.dictionaries.SubTestTypes = m.SubTestTypes; | |
j.updateSubTestTypes() | |
} | |
}) | |
} else { | |
j.options.dictionaries.SubTestTypes = []; | |
_.each(j.subTestCollection.models, function (m) { | |
m.attributes.SubTest.SubTestId = ""; | |
m.attributes.SubTest.AdmSubTestTypeId = "" | |
}); | |
j.updateSubTestTypes() | |
} | |
}, | |
optionAdd: function (h) { | |
var i = this, | |
j = new a.Ms.SubTest(); | |
i.subTestCollection.add(j); | |
p3.rV(new a.Vs.SubTest({ | |
model: j, | |
dictionaries: i.options.dictionaries | |
}), i.$("table.subtests tbody"), false) | |
}, | |
optionDelete: function (i) { | |
var j = this, | |
h = $(i.currentTarget), | |
k = j.subTestCollection.find(function (l) { | |
return l.get("SubTest").SubTestId === h.parent().parent().find(".description").data("subtestid") | |
}); | |
j.subTestCollection.remove(k); | |
h.parent().parent().remove(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
modalSave: function (i) { | |
var h = this, | |
k = "<subtest>", | |
j = 0; | |
_.each(h.subTestCollection.models, function (l) { | |
if (l.isValid(true)) { | |
j++ | |
} | |
}); | |
if (h.model.isValid(true) && j === h.subTestCollection.length) { | |
_.each(h.$("table.subtests tr:not(:first)"), function (m) { | |
var o = $(m).find(".description").data("subtestid"), | |
l = $(m).find(".description").val(), | |
n = $(m).find(".sortorder").val() || 0, | |
p = $(m).find(".sub-test-type").val(); | |
if (p) { | |
k += '<i stid="' + o + '" sd="' + l + '" subtest_type_id="' + p + '" so="' + n + '" />' | |
} else { | |
k += '<i stid="' + o + '" sd="' + l + '" so="' + n + '" />' | |
} | |
}); | |
k += "</subtest>"; | |
h.model.set({ | |
XMLList: k | |
}) | |
} else { | |
return false | |
} | |
} | |
}); | |
a.Vs.SubTest = Bb.View.extend({ | |
template: "tests/tests.subtest.template.html", | |
tagName: "tr", | |
events: { | |
"change input[type=text]": "updateModel", | |
"change select": "updateModel" | |
}, | |
initialize: function () { | |
var h = this; | |
Bb.Validation.bind(h, { | |
forceUpdate: true, | |
selector: "name" | |
}) | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({ | |
model: h.model.toJSON(), | |
dictionaries: h.options.dictionaries | |
})); | |
a.Us.ShowSubTestTypes() | |
}) | |
}, | |
updateModel: function (h) { | |
var i = this; | |
f.Us.updateModel(h, i.model, "name", null) | |
} | |
}); | |
a.Us.ShowSubTestTypes = function () { | |
var h = $(".sub-test-type-column"), | |
i = $(".sub-test-type-row"); | |
if ($(".test-type").val() !== "") { | |
h.show(); | |
i.show(); | |
return true | |
} | |
h.hide(); | |
i.hide(); | |
return false | |
}; | |
p3.router().route("tests", "tests", function () { | |
p3.renderMainPage(new a.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/admissionstests"))); | |
(function (a) { | |
var b = p3.module("shared/base"), | |
c = p3.module("shared/datepicker"), | |
h = p3.module("utilities/validate"), | |
f = p3.module("utilities/smodal"), | |
e = p3.module("officialNote"), | |
g = p3.module("utilities/sort"), | |
d = p3.module("utilities/multifetch"); | |
a.Ms.Criteria = Bbm.extend({}); | |
a.Ms.Worklist = Bbm.extend({ | |
idAttribute: "Id", | |
urlRoot: "IntermediateLM/crud" | |
}); | |
a.Ms.RoleGroupTask = Bbm.extend({ | |
idAttribute: "RoleGroupId" | |
}); | |
a.Cs.WorklistDDLB = Bbm.extend({ | |
url: function () { | |
return aP + "DataDirect/ILMDDLBget/" | |
} | |
}); | |
a.Cs.Worklists = Bbc.extend({ | |
model: a.Ms.Worklist, | |
url: function () { | |
return aP + "IntermediateLM/List/" | |
} | |
}); | |
a.Cs.Criterias = Bbc.extend({ | |
sync: b.DataParamSync, | |
url: function () { | |
return aP + "IntermediateLM/CriteriaList/" | |
} | |
}); | |
a.Cs.Blocks = Bbc.extend({}); | |
a.Cs.Fields = Bbc.extend({}); | |
a.Cs.Criteria = Bbc.extend({ | |
sync: b.DataParamSync, | |
url: function () { | |
return aP + "IntermediateLM/ResultsList/" | |
} | |
}); | |
a.Cs.Results = Bbc.extend({ | |
sync: b.DataParamSync, | |
sortProp: "Name", | |
sortDirection: "asc", | |
setSort: function (j, i) { | |
this.sortProp = j; | |
if (i) { | |
if (i === "toggle") { | |
this.sortDirection = (this.sortDirection === "asc") ? "desc" : "asc" | |
} else { | |
this.sortDirection = i | |
} | |
} | |
this.sort() | |
}, | |
comparator: function (i, j) { | |
if (this.sortProp) { | |
return g.Us.naturalSort(i.get(this.sortProp), j.get(this.sortProp), this.sortDirection) | |
} | |
return 0 | |
}, | |
url: function () { | |
return aP + "IntermediateLM/ResultsList/" | |
} | |
}); | |
a.Cs.ExportCriterias = Bbc.extend({ | |
sync: b.DataParamSync, | |
url: function () { | |
return aP + "IntermediateLM/ExportCriteria/" | |
} | |
}); | |
a.Ms.UpdateStatus = Bbm.extend({ | |
urlRoot: "IntermediateLM/updatestatus" | |
}); | |
a.Cs.RoleGroupTasks = Bbc.extend({ | |
model: a.Ms.RoleGroupTask, | |
url: "PeopleFinder/RoleGroupTaskList" | |
}); | |
a.Cs.OutputColumns = Bbc.extend({ | |
sync: b.DataParamSync, | |
url: function () { | |
return aP + "IntermediateLM/SavedSearchFields/" | |
} | |
}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "worklist/worklist.admissions.layout.template.html", | |
initialize: function () { | |
$(document).click(function (j) { | |
var i = $(j.target); | |
if (!i.hasClass("range-input") && !i.hasClass("ui-icon") && !i.hasClass("ui-datepicker-current") && !i.hasClass("ui-datepicker-close") && !i.hasClass("worklist-dropdown") && !i.hasClass("worklist-field") && !i.hasClass("worklist-bit")) { | |
$(".popover-markup").popover("hide").removeClass("on") | |
} | |
}) | |
}, | |
dispose: function () { | |
$("BODY").removeClass("background-gray-texture"); | |
p3.closeFixedFooter(); | |
$(".popover").remove(); | |
$(document).off("click") | |
}, | |
render: function (i) { | |
var j = this; | |
p3.setTitle("Worklist"); | |
$(i).append(j.el); | |
d.Us.Fetch({ | |
OutputColumns: { | |
data: new a.Cs.OutputColumns(), | |
dataParams: { | |
id: a.Data.worklistId | |
} | |
} | |
}, function (k, m, l) { | |
if (l) { | |
p3.displayError("There was an error loading data.") | |
} | |
a.Data.OutputColumns = k.OutputColumns; | |
j.renderData() | |
}); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({})); | |
p3.rV(new a.Vs.Main({ | |
layoutView: i | |
}), i.$("#workspace-main"), true); | |
p3.renderFixedFooter(new a.Vs.Footer({ | |
layoutView: i | |
})) | |
}) | |
} | |
}); | |
a.Vs.Main = Bb.View.extend({ | |
template: "worklist/worklist.admissions.main.template.html", | |
id: "listmanager-main", | |
className: "workspace shadowborder white-bgc", | |
initialize: function () { | |
var i = this; | |
i.collection = new a.Cs.Criterias(); | |
a.Data.Criterias = i.collection | |
}, | |
events: { | |
saveworklist: "saveWorklist" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
a.Us.setCriteriaDirty(false); | |
a.Us.setResultsDirty(false); | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({})); | |
i.Containers = { | |
Header: i.$("#worklist-header"), | |
Results: i.$("#worklist-results") | |
}; | |
p3.rV(new a.Vs.Header({ | |
layoutView: i.options.layoutView, | |
parentView: i | |
}), i.Containers.Header, false); | |
p3.rV(new a.Vs.Criterias({ | |
layoutView: i.options.layoutView, | |
parentView: i | |
}), i.Containers.Results, false); | |
p3.rV(new a.Vs.Results({ | |
layoutView: i.options.layoutView, | |
parentView: i | |
}), i.Containers.Results, false) | |
}) | |
}, | |
saveWorklist: function () { | |
var i = this; | |
i.collection.save({ | |
dataParam: { | |
id: i.options.layoutView.options.worklistId | |
}, | |
success: function (j, k) { | |
a.Us.setCriteriaDirty(false); | |
a.Us.setResultsDirty(false); | |
a.Us.displayDirtyMessage() | |
}, | |
error: function (k, j) { | |
p3.displayError("Error Saving Worklist") | |
} | |
}) | |
} | |
}); | |
a.Vs.Header = Bb.View.extend({ | |
template: "worklist/worklist.admissions.header.template.html", | |
id: "listmanager-header", | |
initialize: function () { | |
var i = this; | |
i.collection = new a.Cs.Worklists() | |
}, | |
events: { | |
"click #add-criteria": "addCriteria", | |
"click #edit-output": "editOutput" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.collection.fetch({ | |
data: { | |
directoryId: 1 | |
}, | |
update: true, | |
cache: false, | |
complete: function () { | |
var l = "Untitled", | |
k = _.findWhere(i.collection.toJSON(), { | |
Id: parseInt(i.options.layoutView.options.worklistId, 10) | |
}); | |
if (k) { | |
l = k.Name | |
} | |
i.options.layoutView.worklistName = l; | |
i.$el.html(j({ | |
collection: i.collection.toJSON(), | |
worklistName: l | |
})) | |
} | |
}) | |
}) | |
}, | |
addCriteria: function (i) { | |
i.preventDefault(); | |
$("#listmanager-criterias").trigger("addcriteria") | |
}, | |
editOutput: function (i) { | |
i.stopPropagation(); | |
i.preventDefault(); | |
var k = this, | |
j; | |
j = f.Vs.Modal2.extend({ | |
template: "worklist/worklist.admissions.outputcolumns.template.html", | |
collection: a.Data.OutputColumns, | |
dataParam: { | |
id: k.options.layoutView.options.worklistId | |
}, | |
modalRendered: function (m) { | |
var l = this; | |
l.collection.each(function (n) { | |
var o = new a.Vs.OutputColumn({ | |
model: n, | |
selector: l.selector | |
}); | |
p3.rV(o, l.$(".ui-sortable"), false) | |
}) | |
}, | |
modalUpdate: function (l) { | |
if (l.eventCurrentTarget.attr("name") === "Selected") { | |
return false | |
} | |
}, | |
modalSave: function (n) { | |
var m = this, | |
l = m.$("#output-error"); | |
if (_.where(m.collection.toJSON(), { | |
Selected: true | |
}).length > 8) { | |
l.html("Please select no more than 8 output columns."); | |
l.show(); | |
return false | |
} | |
if (_.where(m.collection.toJSON(), { | |
Selected: true | |
}).length === 0) { | |
l.html("Please select at least 1 output column."); | |
l.show(); | |
return false | |
} | |
l.hide() | |
}, | |
modalSavedSuccess: function (l) { | |
a.Data.OutputColumns.reset(l.response); | |
$("#listmanager-results").trigger("runresults") | |
} | |
}); | |
f.Us.renderModal(new j({})) | |
} | |
}); | |
a.Vs.Criterias = Bb.View.extend({ | |
template: "worklist/worklist.admissions.criterias.template.html", | |
id: "listmanager-criterias", | |
className: function () { | |
var i = ""; | |
return i | |
}, | |
events: { | |
addcriteria: "addCriteria", | |
"click .runresults": "runResults" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.options.parentView.collection.fetch({ | |
cache: false, | |
data: { | |
id: j.options.layoutView.options.worklistId, | |
directoryId: 1 | |
}, | |
success: function () { | |
j.renderData() | |
} | |
}) | |
}, | |
renderData: function () { | |
var j = this, | |
i = a.Us.getResultsDirty(); | |
p3.fT(j.template, function (l) { | |
j.$el.html(l({ | |
collection: j.options.parentView.collection, | |
resultsDirty: i | |
})); | |
var k = _.chain(j.options.parentView.collection.toJSON()).where({ | |
Selected: true | |
}).pluck("Id").value(); | |
k = k.join(","); | |
j.WorklistDDLB = new a.Cs.WorklistDDLB(); | |
j.WorklistDDLB.fetch({ | |
cache: false, | |
data: { | |
list: k | |
}, | |
success: function (m, n) { | |
_.each(j.options.parentView.collection.models, function (o) { | |
if (o.get("Selected")) { | |
var p = new a.Vs.Criteria({ | |
model: o, | |
parentView: j | |
}); | |
p3.rV(p, j.$("#criterias"), false) | |
} | |
}) | |
} | |
}) | |
}) | |
}, | |
addCriteria: function (i) { | |
i.stopPropagation(); | |
i.preventDefault(); | |
var j = this; | |
j.modal2Extend = f.Vs.Modal2.extend({ | |
template: "worklist/worklist.admissions.criterias.edit.template.html", | |
collection: j.options.parentView.collection, | |
events: { | |
"click .toggle-category": "toggleCategory", | |
"submit .search-form": "searchCategories" | |
}, | |
modalUpdate: function (m) { | |
var l = this, | |
p = m.eventCurrentTarget.attr(l.selector), | |
q, k = {}, | |
o, n; | |
if (m.eventCurrentTarget.hasClass("criteria")) { | |
m.eventCurrentTarget.toggleClass("active"); | |
q = (m.eventCurrentTarget.hasClass("active")) ? true : false; | |
if (!_.contains(p, ".")) { | |
k[p] = q; | |
j.model.set(k) | |
} else { | |
l.setPropByString(l.collection.models, p, q) | |
} | |
return false | |
} | |
if (m.eventCurrentTarget.hasClass("search")) { | |
o = $.trim(m.eventCurrentTarget.siblings("input").val()); | |
m.eventCurrentTarget.siblings(".search-input").val(o); | |
n = _.chain(l.collection.toJSON()).flatten(true).filter(function (r) { | |
return r.Name.toLowerCase().indexOf(o.toLowerCase()) >= 0 | |
}).pluck("Id").value(); | |
l.$el.find("tr").hide(); | |
_.each(n, function (r) { | |
l.$el.find("tr[data-criteriaid=" + r + "]").show() | |
}); | |
l.$el.find("table").show(); | |
return false | |
} | |
if (m.eventCurrentTarget.hasClass("search-input")) { | |
return false | |
} | |
}, | |
modalSave: function (k) { | |
a.Us.setCriteriaDirty(true); | |
p3.Layout.Containers.Modal.modal("hide"); | |
j.renderData(); | |
return false | |
}, | |
searchCategories: function (k) { | |
var l = this; | |
l.$el.find(".search").click() | |
}, | |
toggleCategory: function (k) { | |
var l = this; | |
l.$(k.currentTarget).siblings("table").toggle() | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new j.modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
runResults: function (i) { | |
i.stopPropagation(); | |
i.preventDefault(); | |
$("#listmanager-results").trigger("runresults") | |
} | |
}); | |
a.Vs.OutputColumn = Bb.View.extend({ | |
template: "worklist/worklist.admissions.outputcolumn.template.html", | |
tagName: "tr", | |
initialize: function (i) { | |
var j = this; | |
Bb.Validation.bind(j, { | |
forceUpdate: true, | |
selector: i.selector | |
}) | |
}, | |
events: { | |
'click [name="Selected"]': "selected" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
model: i.model.toJSON() | |
})); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
selected: function (i) { | |
var j = this; | |
_.defer(function () { | |
j.model.set({ | |
Selected: $(i.currentTarget).hasClass("active") | |
}) | |
}) | |
} | |
}); | |
a.Vs.Criteria = Bb.View.extend({ | |
template: "worklist/worklist.admissions.criteria.template.html", | |
className: "label label-info", | |
events: { | |
"change select": "updateCriteria", | |
"click .delete": "deleteCriteria" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (k) { | |
var j = _.where(i.options.parentView.WorklistDDLB.toJSON(), { | |
BlockId: i.model.get("Id") | |
}); | |
i.$el.html(k({ | |
model: i.model.toJSON(), | |
ddlb: j | |
})); | |
if (i.model.toJSON().Field != null && i.model.toJSON().Field.length == 1 && i.model.toJSON().Field[0].FieldTypeId == 1) { | |
if (h.isEmptier(i.model.toJSON().Field[0].Value)) { | |
i.model.toJSON().Field[0].Value = j[0].dd_id | |
} | |
} | |
i.$(".popover-markup").popover({ | |
html: true, | |
title: function () { | |
return $(this).parent().find(".head").html() | |
}, | |
placement: "bottom", | |
content: function () { | |
return i.getOptionContent(j) | |
}, | |
trigger: "manual" | |
}).click(function (l) { | |
var m = (!i.$(".popover-markup").hasClass("on")); | |
$(".popover-markup.on").popover("hide"); | |
$(".popover-markup.on").removeClass("on"); | |
if (m) { | |
$(this).popover("show"); | |
i.$(".popover-markup").addClass("on"); | |
$(".popover").css("z-index", "2000").css("max-width", "none"); | |
$(".popover-inner").css("width", "auto").css("padding", "0px"); | |
$(".arrow").css("top", "-5px").css("left", "50%").css("margin-left", "-10px").css("border-bottom-color", "#ffffff").css("border-width", "0px 10px 10px 0px"); | |
$(".worklist-multi").bind("click", function (n) { | |
i.updateMultiSelect(n) | |
}); | |
$(".range-input").bind("change", function (n) { | |
i.updateRange(n) | |
}); | |
$(".range-input").bind("blur", function (n) { | |
i.updateRange(n) | |
}); | |
$(".worklist-dropdown").bind("change", function (n) { | |
i.updateDropdown(n) | |
}); | |
$(".worklist-field").bind("change", function (n) { | |
i.updateText(n) | |
}); | |
$(".worklist-bit").bind("click", function (n) { | |
i.updateBit(n) | |
}); | |
c.Us.initialize(".date-input") | |
} | |
l.preventDefault(); | |
l.stopPropagation() | |
}) | |
}) | |
}, | |
getOptionContent: function (k) { | |
var n = this, | |
m = [], | |
j = "", | |
l; | |
if (n.model.get("BlockTypeId") == 3) { | |
return n.getComplexContent(k) | |
} | |
if (h.isEmptier(n.model.toJSON().Field[0].Value)) { | |
m = "" | |
} else { | |
m = n.model.toJSON().Field[0].Value.split(",") | |
} | |
j = "<form><fieldset><h6>" + n.model.get("Name") + "</h6>"; | |
switch (n.model.get("Id")) { | |
case 3: | |
j += "<table><tr>"; | |
for (l = 0; l < k.length; l++) { | |
if (l % 4 === 0) { | |
j += "</tr><tr>" | |
} | |
j += '<td><div style="margin-bottom:5px;margin-right:5px;" class="btn btn-default btn-mini btn-approve worklist-multi'; | |
if ($.inArray(k[l].dd_id, m) > -1) { | |
j += " active" | |
} | |
j += '" data-toggle="button" data-id="' + k[l].dd_id + '" data-field="2"><i class="p3icon-check"></i> ' + k[l].dd_description + "</div></td>" | |
} | |
j += "</tr></table>"; | |
break; | |
default: | |
j += n.getMultiSelectButtons(k, m, n.model.toJSON().Field[0].Id); | |
break | |
} | |
j += "</fieldset></form>"; | |
return j | |
}, | |
getComplexContent: function (l) { | |
var r = this, | |
k = "", | |
p = [], | |
m = r.model.toJSON().Field, | |
n, o, q; | |
for (n = 0; n < m.length; n++) { | |
q = ""; | |
if (n > 0) { | |
k += '<hr style="margin:5px -5px 5px -10px">' | |
} | |
k += "<h6>" + m[n].Label + "</h6>"; | |
switch (m[n].FieldTypeId) { | |
case p3.Us.Enum.WorklistFieldType.MULTISELECT: | |
if (m[n].Value != null && m[n].Value.length > 0) { | |
p = m[n].Value.split(",") | |
} else { | |
p = [] | |
} | |
k += r.getMultiSelectButtons(l, p, m[n].Id); | |
break; | |
case p3.Us.Enum.WorklistFieldType.DATERANGE: | |
if (h.isEmptier(m[n].Value)) { | |
p = [] | |
} else { | |
p = m[n].Value.split("|") | |
} | |
k += '<input type="text" data-field="' + m[n].Id + '" class="range-input date-input start" style="width:90px;color:#29202b;"'; | |
if (p.length > 0) { | |
k += ' value="' + p[0] + '"' | |
} | |
k += '/> to <input type="text" data-field="' + m[n].Id + '" class="range-input date-input end" style="width:90px;color:#29202b;"'; | |
if (p.length > 0) { | |
k += ' value="' + p[1] + '"' | |
} | |
k += "/>"; | |
break; | |
case p3.Us.Enum.WorklistFieldType.NUMERICRANGE: | |
if (h.isEmptier(m[n].Value)) { | |
p = [] | |
} else { | |
p = m[n].Value.split("|") | |
} | |
k += '<input type="text" data-field="' + m[n].Id + '" class="range-input start" style="width:90px;color:#29202b;"'; | |
if (p.length > 0) { | |
k += ' value="' + p[0] + '"' | |
} | |
k += '/> to <input type="text" data-field="' + m[n].Id + '" class="range-input end" style="width:90px;color:#29202b;"'; | |
if (p.length > 0) { | |
k += ' value="' + p[1] + '"' | |
} | |
k += "/>"; | |
break; | |
case p3.Us.Enum.WorklistFieldType.TEXTBOX: | |
if (!h.isEmptier(m[n].Value)) { | |
q = m[n].Value | |
} | |
k += '<input type="text" data-field="' + m[n].Id + '"class="worklist-field" value="' + q + '" style="color:#29202b;"/>'; | |
break; | |
case p3.Us.Enum.WorklistFieldType.DROPDOWN: | |
k += '<select data-field="' + m[n].Id + '"class="worklist-dropdown" style="color:#29202b;"><option value="0">All</option>'; | |
for (o = 0; o < l.length; o++) { | |
if (l[o].FieldId == m[n].Id) { | |
k += '<option value="' + l[o].dd_id + '"'; | |
if (m[n].Value == l[o].dd_id) { | |
k += ' selected="selected"' | |
} | |
k += ">" + l[o].dd_description + "</option>" | |
} | |
} | |
k += "</select>"; | |
break; | |
case p3.Us.Enum.WorklistFieldType.BITFIELD: | |
k += '<div class="btn-group" data-toggle="buttons"><label data-field="' + m[n].Id + '" class="btn btn-default btn-approve worklist-bit'; | |
if (m[n].Value == "1") { | |
k += " active" | |
} | |
k += '"><input type="radio">Yes</label><label data-field="' + m[n].Id + '" class="btn btn-default btn-denied worklist-bit'; | |
if (m[n].Value == "0") { | |
k += " active" | |
} | |
k += '"><input type="radio">No</label></div>'; | |
break; | |
case p3.Us.Enum.WorklistFieldType.NOTEXISTSBITFIELD: | |
k += '<div class="btn-group" data-toggle="buttons"><label data-field="' + m[n].Id + '" class="btn btn-default btn-approve worklist-bit'; | |
if (m[n].Value == "1") { | |
k += " active" | |
} | |
k += '"><input type="radio">Yes</label><label data-field="' + m[n].Id + '" class="btn btn-default btn-denied worklist-bit'; | |
if (m[n].Value == "0") { | |
k += " active" | |
} | |
k += '"><input type="radio">No</button></div>'; | |
break | |
} | |
} | |
return k | |
}, | |
getMultiSelectButtons: function (j, n, k) { | |
var m = "", | |
l; | |
for (l = 0; l < j.length; l++) { | |
if (j[l].FieldId == k) { | |
m += '<div style="margin-bottom:5px" class="btn btn-default btn-mini btn-approve worklist-multi'; | |
if ($.inArray(j[l].dd_id, n) > -1) { | |
m += " active" | |
} | |
m += '" data-toggle="button" data-id="' + j[l].dd_id + '" data-field="' + k + '"><i class="p3icon-check"></i> ' + j[l].dd_description + "</div><br />" | |
} | |
} | |
return m | |
}, | |
deleteCriteria: function (i) { | |
var j = this; | |
j.model.set({ | |
Selected: false | |
}); | |
_.each(j.model.toJSON().Field, function (k) { | |
k.Value = null | |
}); | |
j.$el.remove(); | |
a.Us.setCriteriaDirty(true); | |
j.options.parentView.renderData(); | |
$(".popover").remove() | |
}, | |
updateCriteria: function (i) { | |
a.Us.setCriteriaDirty(true); | |
var j = this; | |
j.model.toJSON().Field[0].Value = $(i.currentTarget).val() | |
}, | |
updateMultiSelect: function (k) { | |
a.Us.setCriteriaDirty(true); | |
var r = this, | |
j = $(k.currentTarget), | |
o = j.data("id"), | |
l = j.data("field"), | |
p = !j.hasClass("active"), | |
q = "", | |
m = r.model.toJSON().Field, | |
n; | |
if (p) { | |
q = o.toString(); | |
j.addClass("active") | |
} else { | |
j.removeClass("active") | |
} | |
$(".worklist-multi.active").each(function (i, s) { | |
if ($(s).data("id") != o && $(s).data("field") == l) { | |
if (q.length > 0) { | |
q += "," | |
} | |
q += $(s).data("id").toString() | |
} | |
}); | |
for (n = 0; n < m.length; n++) { | |
if (m[n].Id == l) { | |
m[n].Value = q; | |
break | |
} | |
} | |
k.stopPropagation() | |
}, | |
updateRange: function (l) { | |
a.Us.setCriteriaDirty(true); | |
var r = this, | |
j = $(l.currentTarget), | |
m = j.data("field"), | |
n = r.model.toJSON().Field, | |
q = "", | |
k = "", | |
p = "", | |
o; | |
if (j.hasClass("start")) { | |
q = j.val(); | |
k = $(".end[data-field=" + m + "]").val() | |
} else { | |
if (j.hasClass("end")) { | |
k = j.val(); | |
q = $(".start[data-field=" + m + "]").val() | |
} | |
} | |
if (q.length > 0 || k.length > 0) { | |
p = q + "|" + k | |
} | |
for (o = 0; o < n.length; o++) { | |
if (n[o].Id == m) { | |
n[o].Value = p; | |
break | |
} | |
} | |
}, | |
updateBit: function (k) { | |
a.Us.setCriteriaDirty(true); | |
var p = this, | |
j = $(k.currentTarget), | |
l = j.data("field"), | |
m = p.model.toJSON().Field, | |
o = 0, | |
n; | |
if (j.hasClass("btn-approve")) { | |
o = 1 | |
} | |
for (n = 0; n < m.length; n++) { | |
if (m[n].Id == l) { | |
m[n].Value = o; | |
break | |
} | |
} | |
}, | |
updateText: function (k) { | |
a.Us.setCriteriaDirty(true); | |
var o = this, | |
j = $(k.currentTarget), | |
l = j.data("field"), | |
m = o.model.toJSON().Field, | |
n; | |
for (n = 0; n < m.length; n++) { | |
if (m[n].Id == l) { | |
m[n].Value = j.val(); | |
break | |
} | |
} | |
}, | |
updateDropdown: function (k) { | |
a.Us.setCriteriaDirty(true); | |
var p = this, | |
j = $(k.currentTarget), | |
l = j.data("field"), | |
m = p.model.toJSON().Field, | |
o = j.val(), | |
n; | |
if (o === "0") { | |
o = "" | |
} | |
for (n = 0; n < m.length; n++) { | |
if (m[n].Id == l) { | |
m[n].Value = o; | |
break | |
} | |
} | |
} | |
}); | |
a.Vs.CriteriaEdit = Bb.View.extend({ | |
template: "worklist/worklist.admissions.criteria.edit.template.html", | |
tagName: "tr", | |
events: { | |
"click button.criteria": "setCriteria" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
model: i.model.toJSON() | |
})) | |
}) | |
}, | |
setCriteria: function (i) { | |
var l = this, | |
j = $(i.currentTarget), | |
k; | |
j.toggleClass("active"); | |
k = (j.hasClass("active")) ? true : false; | |
l.model.set({ | |
Selected: k | |
}) | |
} | |
}); | |
a.Vs.Results = Bb.View.extend({ | |
template: "worklist/worklist.admissions.results.template.html", | |
id: "listmanager-results", | |
initialize: function () { | |
var i = this; | |
i.criteria = new a.Cs.Criteria(); | |
i.results = new a.Cs.Results(); | |
a.Data.Results = i.results | |
}, | |
events: { | |
runresults: "renderData", | |
"click th": "resultSort", | |
"click .start-worklist-session": "startWorklistSession" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
a.Data.roleGroupTasks = new a.Cs.RoleGroupTasks(); | |
a.Data.roleGroupTasks.fetch({ | |
data: { | |
id: 1 | |
}, | |
success: function (k, l) { | |
j.dictionaries = {}; | |
j.dictionaries.RoleGroupTasks = l[0].RoleGroupTasks; | |
j.renderData() | |
}, | |
error: function () { | |
p3.displayError("Error loading landing pages") | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var j = this, | |
i = j.options.parentView.collection.toJSON(); | |
j.criteria.reset(i); | |
p3.fT(j.template, function (k) { | |
j.criteria.save({ | |
dataParam: { | |
id: j.options.layoutView.options.worklistId, | |
changed: true | |
}, | |
success: function (l, m) { | |
j.columns = []; | |
_.each(a.Data.OutputColumns.toJSON(), function (n) { | |
if (n.Selected === true) { | |
j.columns.push({ | |
SortName: n.FieldName, | |
DisplayName: n.Header, | |
Sortable: true | |
}) | |
} | |
}); | |
j.results.sortProp = j.columns[0].SortName; | |
_.each(l, function (n) { | |
_.each(_.difference(_.pluck(j.columns, "SortName"), _.keys(n)), function (o) { | |
n[o] = "" | |
}) | |
}); | |
j.results.reset(l); | |
j.$el.html(k({ | |
dictionaries: j.dictionaries, | |
columns: j.columns | |
})); | |
j.$("th").first().click(); | |
a.Us.setResultsDirty(a.Us.getCriteriaDirty()); | |
a.Us.displayDirtyMessage() | |
}, | |
error: function (l, m) { | |
p3.displayError("Error Running Results") | |
} | |
}) | |
}) | |
}, | |
startWorklistSession: function (i) { | |
i.preventDefault(); | |
var l = this, | |
j = $(i.currentTarget).data("id"), | |
k = l.results.pluck("UserId").map(function (m) { | |
return m.toString() | |
}); | |
k.unshift(l.options.layoutView.worklistName); | |
k.unshift(l.options.layoutView.options.worklistId); | |
k.unshift(0); | |
if (k) { | |
p3.setSessionState("AdmWorkList", k, function () { | |
p3.router().navigate("#candidate/" + j + "/" + l.$("#worklist-task").val().toLowerCase(), true) | |
}) | |
} | |
}, | |
resultSort: function (i) { | |
i.preventDefault(); | |
var n = this, | |
l = $(i.currentTarget), | |
m = l.data("sort"), | |
j = (l.hasClass("muted")) ? "asc" : "toggle", | |
k = (l.find("i").hasClass("p3icon-sortUp")) ? "p3icon-sortDown" : "p3icon-sortUp"; | |
p3.fT(n.template, function (o) { | |
n.results.setSort(m, j); | |
n.$el.html(o({ | |
dictionaries: n.dictionaries, | |
collection: n.results.toJSON(), | |
columns: n.columns, | |
count: n.results.length | |
})); | |
l = n.$("th[data-sort=" + m + "]"); | |
l.removeClass("muted"); | |
l.find("i").removeClass("p3icon-sortOff").addClass(k); | |
_.each($("#listmanager-results th:not(:last-child)"), function (p) { | |
$(p).width($(p).width()) | |
}); | |
n.columnResize() | |
}) | |
}, | |
columnResize: function () { | |
$(".resize").draggable({ | |
axis: "x", | |
containment: $("#listmanager-results table"), | |
stop: function () { | |
$(this).css("left", "0px") | |
} | |
}) | |
} | |
}); | |
a.Vs.Footer = Bb.View.extend({ | |
template: "worklist/worklist.admissions.footer.template.html", | |
id: "listmanager-footer", | |
className: "workspace-footer", | |
events: { | |
"click .save": "saveChanges", | |
"click .export": "exportResults", | |
"click .sendmessage": "sendMessage", | |
"click .maillabels": "mailLabels" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
id: i.options.layoutView.options.worklistId, | |
columnListId: 1 | |
})) | |
}) | |
}, | |
saveChanges: function (i) { | |
i.preventDefault(); | |
$("#listmanager-main").trigger("saveworklist") | |
}, | |
exportResults: function (l) { | |
var n = this, | |
i = $(l.currentTarget), | |
m = n.options.layoutView.options.worklistId, | |
j = aP + "IntermediateLM/ExportFile/" + m + "?columnListid=1", | |
k = new a.Cs.ExportCriterias(a.Data.Criterias.toJSON()); | |
i.prop("disabled", true).button("loading"); | |
k.save({ | |
dataParam: { | |
id: m, | |
changed: true | |
}, | |
success: function (o, p) { | |
window.location.replace(j) | |
}, | |
error: function () { | |
p3.displayError("Error storing current criteria") | |
}, | |
complete: function () { | |
i.prop("disabled", false).button("reset") | |
} | |
}) | |
}, | |
sendMessage: function (j) { | |
j.preventDefault(); | |
var i; | |
if (a.Data.Results && a.Data.Results.length) { | |
i = _.chain(a.Data.Results.toJSON()).pluck("UserId").uniq().value(); | |
if (i.length) { | |
e.PrepopulateData = i.join() | |
} | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new e.Vs.AdmissionsCompose({ | |
detailId: 0 | |
}), p3.Layout.Containers.Modal, false) | |
}, | |
mailLabels: function (i) { | |
i.preventDefault(); | |
window.open("/podium/default.aspx?t=38466&wapp=1&ilm=1", "_blank") | |
} | |
}); | |
a.Vs.Worklists = Bb.View.extend({ | |
template: "worklist/worklist.worklists.template.html", | |
initialize: function () { | |
var i = this; | |
i.collection = new a.Cs.Worklists(); | |
i.searchTerm = ""; | |
i.filterBy = 0 | |
}, | |
events: { | |
"click .filter-link": "filterChange", | |
"click #search-button": "doSearch", | |
"keydown #search-box": "doSearchEnter", | |
"click .copy-list-button": "openCopyDialog", | |
"click .delete-list-button": "openDeleteDialog", | |
"click .edit-list-button": "editList", | |
"click #add-worklist-button": "openAddDialog" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({})); | |
i.renderLists(i.getListArray(true)) | |
}) | |
}, | |
getListArray: function (i) { | |
var l = this, | |
j = [], | |
k; | |
if (i) { | |
l.collection.fetch({ | |
async: false, | |
data: { | |
directoryId: 1 | |
}, | |
error: function () { | |
p3.displayError("Error Loading Worklists") | |
} | |
}) | |
} | |
if (l.searchTerm.length > 0 || l.filterBy > 0) { | |
k = l.collection.filter(function (m) { | |
var n = false; | |
if (l.searchTerm.length > 0) { | |
n = (m.get("Name").toLowerCase().indexOf(l.searchTerm) > -1) | |
} | |
if (l.filterBy > 0 && (l.searchTerm.length == 0 || n)) { | |
if (l.filterBy == 1) { | |
n = (m.get("Active")) | |
} else { | |
n = (!m.get("Active")) | |
} | |
} | |
return n | |
}); | |
_.each(k, function (m) { | |
j.push(m.toJSON()) | |
}) | |
} else { | |
j = l.collection.toJSON() | |
} | |
return j | |
}, | |
renderLists: function (i) { | |
var k = this, | |
j = new a.Vs.ListItems({ | |
lists: i | |
}); | |
p3.rV(j, "#worklist-items-container", true); | |
j.on("statusChange", function (m, l) { | |
var n = k.collection.get(m); | |
n.set("Active", l); | |
if (k.filterBy > 0) { | |
k.renderLists(k.getListArray(false)) | |
} | |
}); | |
j.on("nameChange", function (l, n) { | |
var m = k.collection.get(l); | |
m.set("Name", n) | |
}) | |
}, | |
filterChange: function (j) { | |
var k = this, | |
i = $(j.currentTarget); | |
$(".filter-icon").removeClass("p3icon-ok").addClass("p3icon-check"); | |
$(".filter-color").css("color", "#999"); | |
i.find(".filter-icon").removeClass("p3icon-check").addClass("p3icon-ok"); | |
i.find(".filter-color").css("color", "#424242"); | |
switch (j.currentTarget.id) { | |
case "filter-all-link": | |
k.filterBy = 0; | |
break; | |
case "filter-active-link": | |
k.filterBy = 1; | |
break; | |
case "filter-inactive-link": | |
k.filterBy = 2; | |
break | |
} | |
k.renderLists(k.getListArray(false)); | |
return false | |
}, | |
doSearchEnter: function (i) { | |
if (i.keyCode === 13) { | |
this.doSearch(i) | |
} | |
}, | |
doSearch: function (i) { | |
var j = this; | |
j.searchTerm = $("#search-box").val().toLowerCase(); | |
j.renderLists(j.getListArray(false)); | |
return false | |
}, | |
openDeleteDialog: function (j) { | |
var k = this, | |
i = $(j.currentTarget); | |
p3.showConfirm("Delete Work List", "Are you sure you want to delete this Work List?", null, function () { | |
var l = new a.Ms.Worklist({ | |
Id: i.data("id") | |
}); | |
l.destroy({ | |
error: function () { | |
p3.displayError("Error deleting work list") | |
}, | |
success: function () { | |
i.parents("tr").remove(); | |
k.collection.remove(k.collection.get(i.data("id"))) | |
} | |
}) | |
}); | |
return false | |
}, | |
openAddDialog: function (j) { | |
var i = new a.Vs.AddWorklist(); | |
p3.rV(i, p3.Layout.Containers.Modal, true); | |
p3.showModal(p3.Layout.Containers.Modal); | |
return false | |
}, | |
editList: function (i) { | |
var j = $(i.currentTarget).data("id"); | |
p3.router().navigate("#admissionsworklist/" + j, true); | |
return false | |
} | |
}); | |
a.Vs.ListItems = Bb.View.extend({ | |
template: "worklist/worklist.listitems.template.html", | |
initialize: function () { | |
var i = this; | |
i.lists = i.options.lists | |
}, | |
events: { | |
"mouseover td.inline-edit": "handleHover", | |
"mouseout td.inline-edit": "handleHoverOff", | |
"click td.inline-edit": "inlineEdit", | |
"focusout .edit-cell": "inlineClose", | |
"change .status-select": "saveStatus" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
worklist: i.lists | |
})) | |
}) | |
}, | |
handleHover: function (j) { | |
var i = $(j.target).closest("td"), | |
k = "fa fa-pencil"; | |
if (!$(".edit-cell-icon").length) { | |
if (!i.hasClass("edit-cell")) { | |
i.prepend($("<i>", { | |
"class": k + " edit-cell-icon pull-right" | |
})) | |
} | |
i.addClass("on"); | |
i.mouseleave(function () { | |
if (i.hasClass("on")) { | |
i.removeClass("on") | |
} | |
}) | |
} | |
}, | |
handleHoverOff: function (i) { | |
if (!$(i.target).hasClass("on")) { | |
this.$("i.edit-cell-icon").remove() | |
} | |
}, | |
inlineEdit: function (k) { | |
var i = $(k.target).closest("td"), | |
j = false, | |
l = ""; | |
if (!i.hasClass("edit-cell")) { | |
if (i.hasClass("list-status")) { | |
if (i.html().indexOf("Inactive") == -1) { | |
j = true | |
} | |
l = '<select class="status-select input-small form-control" style="width:auto;"><option value="Active"'; | |
if (j) { | |
l += ' selected="selected"' | |
} | |
l += '>Active</option><option value="Inactive"'; | |
if (!j) { | |
l += ' selected="selected"' | |
} | |
l += ">Inactive</option></select>"; | |
i.html(l); | |
i.addClass("edit-cell"); | |
i.find("select").focus() | |
} else { | |
i.html('<input type="text" class="list-name-box input-medium form-control" max-length="50" value="' + i.find("P").html() + '"/>'); | |
i.addClass("edit-cell"); | |
i.find(".list-name-box").focus() | |
} | |
} | |
}, | |
inlineClose: function (l, k) { | |
var r = this, | |
j, m, q, o, n, p = ""; | |
if (!_.isEqual(l.target, l.currentTarget)) { | |
j = $(l.target); | |
if (j.hasClass("list-name-box")) { | |
n = j.closest("td").data("id"); | |
for (m = 0; m < r.lists.length; m++) { | |
if (r.lists[m].Id == n) { | |
o = r.lists[m]; | |
if (j.val().length > 0 && j.val() != o.Name) { | |
p = j.val() | |
} else { | |
p = o.Name | |
} | |
break | |
} | |
} | |
q = new a.Ms.UpdateStatus(); | |
q.save({ | |
id: n, | |
activeInd: o.Active, | |
searchName: p | |
}, { | |
success: function () { | |
r.trigger("nameChange", n, p) | |
}, | |
error: function () { | |
p3.displayError("Error saving list name") | |
} | |
}); | |
j.closest("td").removeClass("edit-cell").html('<p style="margin:5px 0px 0px 0px">' + p + "</p>") | |
} else { | |
j.closest("td").removeClass("edit-cell").html(j.val()) | |
} | |
} | |
}, | |
saveStatus: function (j) { | |
var m = this, | |
i = $(j.target), | |
k = i.closest("td").data("id"), | |
l = new a.Ms.UpdateStatus(); | |
l.save({ | |
id: k, | |
activeInd: i.val() === "Active", | |
searchName: "" | |
}, { | |
error: function () { | |
p3.displayError("Error saving list status") | |
}, | |
success: function () { | |
m.trigger("statusChange", k, i.val() === "Active") | |
} | |
}) | |
} | |
}); | |
a.Vs.AddWorklist = Bb.View.extend({ | |
template: "worklist/worklist.add.template.html", | |
events: { | |
"click #btnSave": "saveWorkList" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({})) | |
}) | |
}, | |
saveWorkList: function (k) { | |
var j = $("#name-box"), | |
i = $(".control-group"), | |
l; | |
i.removeClass("error"); | |
if (j.val().trim().length > 0) { | |
l = new a.Ms.Worklist({ | |
Name: j.val(), | |
DirectoryId: 1 | |
}); | |
l.save({}, { | |
success: function (m, n) { | |
$("#site-modal").modal("hide"); | |
p3.router().navigate("#admissionsworklist/" + n, true) | |
}, | |
error: function (m, n) { | |
p3.displayError("Error creating worklist") | |
} | |
}) | |
} else { | |
i.addClass("error") | |
} | |
} | |
}); | |
a.Vs.popup = Bb.View.extend({ | |
template: "worklist/worklist.add.template.html", | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({})) | |
}) | |
} | |
}); | |
Hb.registerHelper("eachWorklistResultWithName", function (l, j, k) { | |
var m = _.pick(l, _.pluck(j, "SortName")), | |
i = ""; | |
_.each(m, function (o, n) { | |
if (n === "Name") { | |
i += k.fn('<a class="start-worklist-session" href="#" data-id="' + l.UserId + '">' + o + "</a>") | |
} else { | |
i += k.fn(o) | |
} | |
}); | |
return i | |
}); | |
Hb.registerHelper("eachWorklistResult", function (p, l, o) { | |
var q = _.chain(p).pick(l).values().value(), | |
k = "", | |
m, n; | |
for (m = 0, n = q.length; m < n; m++) { | |
k += o.fn(q[m]) | |
} | |
return k | |
}); | |
a.Us.getCriteriaDirty = function () { | |
return a.Data.criteriaDirty | |
}; | |
a.Us.setCriteriaDirty = function (i) { | |
a.Data.criteriaDirty = i | |
}; | |
a.Us.getResultsDirty = function () { | |
return a.Data.resultsDirty | |
}; | |
a.Us.setResultsDirty = function (i) { | |
a.Data.resultsDirty = i | |
}; | |
a.Us.displayDirtyMessage = function () { | |
if (a.Data.resultsDirty) { | |
$(".dirtymessage").show() | |
} else { | |
$(".dirtymessage").hide() | |
} | |
}; | |
p3.router().route("admissionsworklist/:worklistid", "admissionsworklist", function (i) { | |
a.Data.worklistId = i; | |
a.Data.criteriaDirty = false; | |
a.Data.resultsDirty = false; | |
p3.renderMainPage(new a.Vs.Layout({ | |
worklistId: i | |
})) | |
}); | |
p3.router().route("admissionsworklists", "admissionsworklists", function () { | |
p3.renderMainPage(new a.Vs.Worklists({})) | |
}) | |
}(p3.module("admissions/admissionsworklist"))); | |
(function (a) { | |
a.Ms.MigrationStatus = Bbm.extend({ | |
url: function () { | |
return aP + "Inquiry/MigrationStatus" | |
} | |
}); | |
a.Cs.ProcessGet = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/DashboardProcessGet/" | |
} | |
}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.template.html", | |
render: function (b) { | |
var c = this; | |
p3.setTitle("Admissions Overview"); | |
$(b).html(c.el); | |
c.renderData() | |
}, | |
renderData: function () { | |
var b = this; | |
p3.fT(b.template, function (c) { | |
b.$el.html(c({})); | |
p3.rV(new a.Vs.Candidates(), b.$(".col-center"), false) | |
}) | |
} | |
}); | |
a.Vs.Candidates = Bb.View.extend({ | |
template: "admissions/overview.template.html", | |
className: "mt-20", | |
render: function (b) { | |
var d = this, | |
c = new a.Ms.MigrationStatus(); | |
c.fetch({ | |
cache: false, | |
success: function (e, f) { | |
d.MigrateStatusId = c.get("MigrateStatusId"); | |
$(b).html(d.el); | |
d.renderData() | |
} | |
}) | |
}, | |
renderData: function () { | |
var b = this; | |
p3.fT(b.template, function (c) { | |
b.$el.html(c({ | |
migrateStatusId: b.MigrateStatusId | |
})); | |
p3.rV(new a.Vs.ProcessCounts(), b.$(".process-counts"), false) | |
}) | |
} | |
}); | |
a.Vs.ProcessCounts = Bb.View.extend({ | |
template: "admissions/overview.process.template.html", | |
initialize: function () { | |
var b = this; | |
b.collection = new a.Cs.ProcessGet() | |
}, | |
render: function (b) { | |
var c = this; | |
$(b).html(c.el); | |
c.renderData() | |
}, | |
renderData: function () { | |
var b = this; | |
b.collection.fetch({ | |
success: function () { | |
p3.fT(b.template, function (c) { | |
b.$el.html(c({ | |
collection: b.collection.toJSON() | |
})) | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error loading overview") | |
} | |
}) | |
} | |
}); | |
p3.router().route("admissions/overview", "admissionsoverview", function () { | |
p3.renderMainPage(new a.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/admoverview"))); | |
(function (a) { | |
var c = p3.module("report"), | |
b = p3.module("lists"); | |
a.Ms.Assignment = Bbm.extend({}); | |
a.Ms.AdmissionStatus = Bbm.extend({}); | |
a.Cs.Assignments = Bbc.extend({ | |
model: a.Ms.Assignment, | |
url: function () { | |
return aP + "datadirect/ParentStudentUserAssignments/" | |
} | |
}); | |
a.Cs.AdmissionStatuses = Bbc.extend({ | |
model: a.Ms.AdmissionStatus, | |
url: function () { | |
return aP + "datadirect/AdmissionStatusCountChartGet/" | |
} | |
}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "admissions/analytics.layout.template.html", | |
initialize: function () { | |
b.loadLists() | |
}, | |
render: function (d) { | |
var e = this; | |
e.$el.appendTo(d); | |
p3.fT(e.template, function (j) { | |
p3.setTitle("Analytics"); | |
e.$el.html(j()); | |
var f = e.$el.find("#page-2col-wideleft"), | |
g = e.$el.find("#page-2col-slimright"), | |
h = new a.Cs.AdmissionStatuses(), | |
i = new a.Vs.AdmissionStatusChart({ | |
collection: h | |
}); | |
p3.rV(i, f, false); | |
c.reportList(g); | |
p3.rV(new b.Vs.ListsView(), g, false) | |
}) | |
} | |
}); | |
a.Vs.AdmissionStatusChart = Bb.View.extend({ | |
template: "admissions/chart.template.html", | |
events: {}, | |
initialize: function (d) { | |
var e = this; | |
d.chart = function (f) { | |
e.options.collection.fetch({ | |
data: { | |
numberOfItems: 6 | |
}, | |
success: function (g, h) { | |
d3.select("#chart-container svg").datum(e.newChartData(g)).transition().duration(500).call(f) | |
} | |
}) | |
} | |
}, | |
dispose: function () { | |
$(window).off("resize") | |
}, | |
render: function (d) { | |
var e = this; | |
e.$el.appendTo(d); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.Chart, function () { | |
nv.addGraph(function () { | |
var f = nv.models.multiBarChart().x(function (g, h) { | |
return g.label | |
}).y(function (g) { | |
return g.value | |
}).showControls(true); | |
f.xAxis.tickFormat(function (g) { | |
return g | |
}); | |
f.yAxis.tickFormat(function (g) { | |
return g | |
}); | |
e.options.chart(f); | |
return f | |
}); | |
e.renderTemplate() | |
}) | |
}, | |
renderTemplate: function () { | |
var d = this; | |
p3.fT(d.template, function (e) { | |
d.$el.html(e({ | |
title: "Status Counts by Entering Year", | |
height: 400 | |
})) | |
}) | |
}, | |
newChartData: function (d) { | |
var f = this, | |
e = _.groupBy(d.models, function (g) { | |
return g.get("DataLabel1") | |
}); | |
f.newChartData = []; | |
f.newTicks = []; | |
_.each(e, function (h) { | |
var g = []; | |
_.each(h, function (j, i) { | |
g.push({ | |
label: j.get("AxisLabel"), | |
value: j.get("DataValue1") | |
}) | |
}); | |
f.newChartData.push({ | |
key: h[0].get("DataLabel1"), | |
values: g | |
}) | |
}); | |
return f.newChartData | |
} | |
}) | |
}(p3.module("admissions/analytics"))); | |
(function (a) { | |
var d = p3.module("admissions/managecandidates"), | |
m = p3.module("system/logosandseals"), | |
l = p3.module("admissions/form/inquiries"), | |
b = p3.module("admissions/form/applications"), | |
q = p3.module("utilities/smodal"), | |
c = p3.module("shared/base"), | |
i = p3.module("admissions/form/forms"), | |
g = p3.module("shared/datepicker"), | |
n = p3.module("utilities/multifetch"), | |
p = p3.module("shared/schoolforms"), | |
e = p3.module("admissions/form/contracts"), | |
o = p3.module("admissions/form/recommendations"), | |
t = p3.module("utilities/validate"), | |
h = p3.Us.Enum, | |
s = p3.Us.Tools, | |
k = p3.Us.InfoMessageLibrary, | |
j = p3.Us.InfoMessage, | |
f = p3.Us.Culture, | |
r = p3.module("shared/task"); | |
a.Ms.BaseForm = Bbm.extend({ | |
sync: c.DataParamSync, | |
idAttribute: "ApplicationFormId", | |
url: function () { | |
return this.id ? aP + "OnlineApplication/ApplicationForm/" + this.id + "/" : aP + "OnlineApplication/ApplicationForm/" | |
} | |
}); | |
a.Ms.ApplicationForm = a.Ms.BaseForm.extend({ | |
defaults: { | |
FormType: h.FormType.APPLICATION.Value | |
}, | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, a.Us.NotificationValidation)); | |
_.extend(this.validation, { | |
Name: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
EffectiveDate: [{ | |
date: true | |
}], | |
EndDate: [{ | |
date: true | |
}], | |
Fee: [{ | |
required: false, | |
pattern: "number", | |
msg: k.P3.NotNumeric | |
}] | |
}) | |
} | |
}); | |
a.Ms.ContractForm = a.Ms.BaseForm.extend({ | |
defaults: { | |
FormType: h.FormType.CONTRACT.Value, | |
OkToEdit: true | |
}, | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, a.Us.NotificationValidation)); | |
_.extend(this.validation, { | |
SchoolYear: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
ContractTypeId: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
EffectiveDate: [{ | |
date: true, | |
required: false | |
}], | |
EndDate: [{ | |
date: true, | |
required: false | |
}], | |
DueDate: [{ | |
fn: function (w, u, v) { | |
if (!v.ignoreDueDate) { | |
if (t.isEmptier(w)) { | |
return k.P3.RequiredInfoNotEntered | |
} | |
if (!t.isDate(w)) { | |
return k.P3.DateError.fixDateFormat() | |
} | |
} | |
} | |
}], | |
InSchoolPmtText: [{ | |
fn: function (x, v, w) { | |
var u = $("#" + v); | |
if (w.InSchoolPmt && t.isEmptier(x)) { | |
u.parent().addClass("box-validate"); | |
return k.P3.RequiredInfoNotEntered | |
} | |
u.parent().removeClass("box-validate") | |
} | |
}] | |
}) | |
}, | |
IsMigrationLocked: function () { | |
var v = this, | |
u; | |
if (v.get("FormType") === h.FormType.SMART_TUITION_CONTRACT.Value || v.get("FormType") === h.FormType.TMS_CONTRACT.Value) { | |
u = v.get("HasGeneratedContracts") || !v.get("TemplateFormId") || v.get("TemplateFormId") <= 0 | |
} | |
return u | |
} | |
}); | |
a.Ms.InquiryForm = Bbm.extend({ | |
sync: c.DataParamSync, | |
idAttribute: "ApplicationFormId", | |
defaults: { | |
FormType: h.FormType.INQUIRY.Value, | |
ActiveInd: false, | |
InquiryAdmissionsInd: true | |
}, | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, a.Us.NotificationValidation)); | |
_.extend(this.validation, { | |
Name: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
EffectiveDate: [{ | |
date: true | |
}], | |
EndDate: [{ | |
date: true | |
}] | |
}) | |
}, | |
urlRoot: "OnlineApplication/ApplicationForm/" | |
}); | |
a.Ms.SchoolForm = a.Ms.BaseForm.extend({ | |
defaults: { | |
ActiveInd: false, | |
ESigNbr: 99, | |
ESigFrom: 2, | |
OkToEdit: true | |
}, | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, a.Us.NotificationValidation)); | |
_.extend(this.validation, { | |
FormType: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
Name: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
EffectiveDate: [{ | |
date: true | |
}], | |
EndDate: [{ | |
date: true | |
}], | |
DueDate: [{ | |
date: true, | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
ESigNbr: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}] | |
}) | |
}, | |
getRecipientCollection: function () { | |
var u = new p.Cs.UsersRegarding(this.get("UsersRegarding")); | |
u.parentModel = this; | |
return u | |
}, | |
url: function () { | |
return this.id ? aP + "SchoolForm/Edit/" + this.id + "/" : aP + "SchoolForm/Edit/" | |
}, | |
parse: function (v, u) { | |
_(v.UsersRegarding).each(function (w) { | |
w.Name = w.LastName + ", " + w.FirstName; | |
_(w.Recipients).each(function (x) { | |
x.Name = x.LastName + ", " + x.FirstName | |
}) | |
}); | |
return v | |
}, | |
sync: function (u, v, w) { | |
if (u.toLowerCase() !== "read") { | |
w.url = v.url(); | |
if (!_.isEmpty(w.dataParam)) { | |
var x = (w.url.indexOf("?") > -1) ? "&" : "?"; | |
w.url += x + $.param(w.dataParam) | |
} | |
if (u.toLowerCase() === "update") { | |
v.attributes.UsersRegarding = _(v.attributes.UsersRegarding).map(function (z) { | |
var y = _(z.Recipients).map(function (A) { | |
return { | |
UserId: A.UserId, | |
Selected: A.Selected | |
} | |
}); | |
return { | |
UserId: z.UserId, | |
Recipients: y | |
} | |
}) | |
} | |
} | |
return Bb.sync.apply(this, arguments) | |
} | |
}); | |
a.Ms.RecommendationForm = Bbm.extend({ | |
sync: c.DataParamSync, | |
idAttribute: "ApplicationFormId", | |
defaults: { | |
FormType: h.FormType.RECOMMENDATION.Value, | |
ActiveInd: false | |
}, | |
initialize: function () { | |
var u = this, | |
v = o.Us.FormValidation(u); | |
_.extend(u, v) | |
}, | |
urlRoot: "RecommendationForm/FormDetail/", | |
isNotifFieldRequired: function (v, u) { | |
var w = q.Us.getPropByString(u, v); | |
return u.ActiveInd && w && w.Active | |
} | |
}); | |
a.Ms.Section = Bbm.extend({ | |
sync: c.DataParamSync, | |
idAttribute: "ApplicationSectionId", | |
validation: { | |
Name: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "OnlineApplication/ApplicationSection/" + this.id + "/" : aP + "OnlineApplication/ApplicationSection/" | |
} | |
}); | |
a.Ms.Element = Bbm.extend({ | |
idAttribute: "Id" | |
}); | |
a.Ms.Block = Bbm.extend({ | |
idAttribute: "Id" | |
}); | |
a.Ms.SectionItem = Bbm.extend({ | |
sync: c.DataParamSync, | |
idAttribute: "SectionItemId", | |
url: function () { | |
return this.id ? aP + "OnlineApplication/SectionItem/" + this.id + "/" : aP + "OnlineApplication/SectionItem/" | |
}, | |
validation: { | |
"FieldBlockItem.RatingWeight": [{ | |
required: false, | |
pattern: "digits", | |
min: 1, | |
max: 10000, | |
msg: k.P3.DigitError | |
}] | |
}, | |
isElement: function () { | |
return (this.get("ElementItem").Id) ? true : false | |
}, | |
isBlock: function () { | |
return (this.get("FieldBlockItem").Id) ? true : false | |
}, | |
isFormField: function () { | |
return (this.get("FieldBlockItem").Id === 41) ? true : false | |
}, | |
hasFields: function () { | |
var v = false, | |
u; | |
if (this.isBlock()) { | |
u = this.get("FieldElementItems"); | |
if (u && u.length) { | |
v = _.some(u, function (w) { | |
return w.FieldItem.Id ? true : false | |
}) | |
} | |
} | |
return v | |
}, | |
displayOnlyFields: function () { | |
var v = false, | |
u; | |
if (this.isBlock()) { | |
u = this.get("FieldElementItems"); | |
if (u && u.length) { | |
v = _.every(u, function (w) { | |
return w.FieldItem.DisplayOnly | |
}) | |
} | |
} | |
return v | |
}, | |
isBasicElement: function () { | |
var v = false, | |
u; | |
if (this.isElement()) { | |
u = a.Us.findElementById(this.get("ElementItem").Id); | |
v = u ? u.BasicElement : true | |
} | |
return v | |
} | |
}); | |
a.Ms.ElementField = Bbm.extend({ | |
sync: c.DataParamSync, | |
idAttribute: "FieldElementItemId", | |
validation: { | |
"ElementItem.DisplayAs": function (v) { | |
var u = this.get("ElementItem").Id == h.Element.HTML.Value ? 50000 : 2000; | |
if (v != null && v.trim().length > u) { | |
return k.P3.MaxLengthExceeded | |
} | |
} | |
}, | |
url: function () { | |
return this.id ? aP + "OnlineApplication/FieldBlockItem/" + this.id + "/" : aP + "OnlineApplication/FieldBlockItem/" | |
}, | |
isBasicElement: function () { | |
var u = a.Us.findElementById(this.get("ElementItem").Id); | |
return u ? u.BasicElement : true | |
} | |
}); | |
a.Ms.BlockField = Bbm.extend({ | |
sync: c.DataParamSync, | |
idAttribute: "FieldElementItemId", | |
url: function () { | |
return aP + "OnlineApplication/FieldBlockItem/" + this.id + "/" | |
} | |
}); | |
a.Ms.FormField = Bbm.extend({ | |
sync: c.DataParamSync, | |
idAttribute: "FieldElementItemId", | |
validation: { | |
"FieldItem.LookUpList": [{ | |
fn: function (x, u, v) { | |
if (v.FieldItem.UIType === "DD" || v.FieldItem.UIType === "CheckBoxSingleSelect" || v.FieldItem.UIType === "CheckBoxMultiSelect") { | |
var w = _.filter(v.FieldItem.LookUpList, function (y) { | |
return !t.isEmptier(y.dd_description) | |
}); | |
if (!w.length) { | |
return "Please enter a label." | |
} | |
} | |
} | |
}] | |
}, | |
url: function () { | |
return aP + "OnlineApplication/FieldBlockItem/" + this.id + "/" | |
} | |
}); | |
a.Ms.PaymentGateway = Bbm.extend({ | |
sync: c.DataParamSync, | |
url: function () { | |
return aP + "OnlineApplication/PaymentGatewayAccount/" | |
} | |
}); | |
a.Ms.ContractPaymentPlan = Bbm.extend({ | |
idAttribute: "PaymentPlanId", | |
validation: { | |
"PaymentPlan.NumberOfPayments": [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}, { | |
pattern: "number", | |
msg: k.P3.NotNumeric | |
}, { | |
fn: function (x, u, v) { | |
if (v.Selected) { | |
var w = parseInt(x, 10); | |
if (!isNaN(w) && w < 1) { | |
return "Please enter Number of Payments greater than zero" | |
} | |
} | |
} | |
}] | |
} | |
}); | |
a.Ms.SmartPaymentPlan = Bbm.extend({ | |
idAttribute: "PaymentPlanId", | |
validation: { | |
ExpireDate: [{ | |
required: false, | |
fn: function (z, u, v) { | |
if (z && v.SmartExpireDate) { | |
var x = new Date(z), | |
y = new Date(v.SmartExpireDate), | |
w = f.getDateString(y); | |
if (x > y) { | |
return "The expiration date cannot be later then the expiration date in Smart Tuition (" + w + ")" | |
} | |
} | |
} | |
}] | |
} | |
}); | |
a.Ms.TmsPaymentPlan = Bbm.extend({ | |
idAttribute: "BbtmId" | |
}); | |
a.Ms.FeeType = Bbm.extend({ | |
idAttribute: "FeeTypeId" | |
}); | |
a.Ms.Fee = Bbm.extend({ | |
idAttribute: "FeeId", | |
urlRoot: "OnlineApplication/Fee", | |
validation: { | |
Name: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
Amount: [{ | |
required: true, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
EffectiveDate: [{ | |
required: false, | |
fn: function (y, u, v) { | |
if (y && v.EndDate) { | |
var w = new Date(y), | |
x = new Date(v.EndDate); | |
if (w > x) { | |
return "Please enter an effective date prior to the end date." | |
} | |
} | |
} | |
}], | |
EndDate: [{ | |
required: false, | |
fn: function (y, u, v) { | |
if (y && v.EffectiveDate) { | |
var w = new Date(v.EffectiveDate), | |
x = new Date(y); | |
if (x < w) { | |
return "Please enter an end date after the effective date." | |
} | |
} | |
} | |
}] | |
}, | |
findGrade: function (u) { | |
return a.Us.findGrade(this.get("Grades"), u) | |
}, | |
validateGrades: function () { | |
var u = this.get("Grades") || []; | |
if (!_.some(u, function (v) { | |
return v.SelectedInd | |
})) { | |
return "Please select one or more grades." | |
} | |
} | |
}); | |
a.Ms.RatingMatrix = Bbm.extend({ | |
idAttribute: "ratingMatrixId", | |
urlRoot: "Rating/RatingMatrix/", | |
getAttributeList: function () { | |
return this.getCsvList(this.get("RatingAttributes"), "Name") | |
}, | |
getLevelList: function () { | |
return this.getCsvList(this.get("RatingScale"), "Name") | |
}, | |
getCsvList: function (u, v) { | |
if (!u || !u.length) { | |
return "" | |
} | |
return _.pluck(u, v).join(", ") | |
} | |
}); | |
a.Ms.SmartFeeSelect = Bbm.extend({ | |
idAttribute: "SmartFeeId" | |
}); | |
a.Ms.TmsFeeSelect = Bbm.extend({ | |
idAttribute: "idAttrib", | |
parse: function (v, u) { | |
v.idAttrib = v.BbtmId + "," + v.Amount; | |
return v | |
} | |
}); | |
a.Ms.GenerateContracts = Bbm.extend({ | |
sync: c.DataParamSync, | |
url: function () { | |
return "EnrollmentContract/GenerateContracts/" | |
}, | |
userIds: null, | |
applicationFormId: null | |
}); | |
a.Ms.StyleElement = Bbm.extend({}); | |
a.Ms.StyleProperty = Bbm.extend({ | |
idAttribute: "StyleFormId", | |
sync: c.DataParamSync, | |
url: function () { | |
return this.id ? aP + "FormStyle/Property/" + this.id + "/" : aP + "FormStyle/Property/" | |
} | |
}); | |
a.Ms.SmartTuitionFee = Bbm.extend({ | |
idAttribute: "SchoolYearLabel", | |
urlRoot: "SmartTuition/HasTuitionFees/" | |
}); | |
a.Cs.Elements = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.Element, | |
url: function () { | |
return aP + "OnlineApplication/ElementList/" | |
} | |
}); | |
a.Cs.Blocks = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.Block, | |
url: function () { | |
return aP + "OnlineApplication/FieldBlockList/" | |
} | |
}); | |
a.Cs.Sections = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.Section, | |
url: function () { | |
return aP + "OnlineApplication/ApplicationSectionList/" | |
} | |
}); | |
a.Cs.SectionItems = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.SectionItem, | |
url: function () { | |
return aP + "OnlineApplication/SectionItemList/" | |
} | |
}); | |
a.Cs.BlockFields = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: function (u, v) { | |
if (u.ElementItem.Id) { | |
return new a.Ms.ElementField(u, v) | |
} | |
if (u.FieldItem.Id) { | |
if (u.FieldItem.Id === 253) { | |
return new a.Ms.FormField(u, v) | |
} | |
return new a.Ms.BlockField(u, v) | |
} | |
}, | |
url: function () { | |
return aP + "OnlineApplication/FieldBlockItemList/" | |
} | |
}); | |
a.Cs.ContractPaymentPlans = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.ContractPaymentPlan, | |
url: function () { | |
return aP + "EnrollmentContract/FormPaymentPlanList" | |
} | |
}); | |
a.Cs.ContractPaymentPlansSelect = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.ContractPaymentPlan, | |
url: function () { | |
return aP + "EnrollmentContract/FormPaymentPlanSelect/" | |
} | |
}); | |
a.Cs.SmartPaymentPlansSelect = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.SmartPaymentPlan, | |
url: function () { | |
return aP + "SmartTuition/PaymentPlanSelect/" | |
} | |
}); | |
a.Cs.TmsPaymentPlansSelect = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.TmsPaymentPlan, | |
url: function () { | |
return aP + "TmsContract/PaymentPlanSelect/" | |
} | |
}); | |
a.Cs.FeeTypes = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.FeeType, | |
url: "DataDirect/ContractFeeTypes" | |
}); | |
a.Cs.FeeSchedule = Bbc.extend({ | |
model: a.Ms.Fee, | |
url: "OnlineApplication/FeeSchedule/", | |
initialize: function (u, v) { | |
this.applicationFormId = v.applicationFormId; | |
this.feeTypeId = v.feeTypeId | |
}, | |
hasTuitionFees: function () { | |
var u = this, | |
v = false; | |
if (a.Data.FormType !== h.FormType.CONTRACT && u.feeTypeId === h.ContractFeeType.TUITION.Value && u.length > 0) { | |
v = u.any(function (w) { | |
return w.get("SmartFeeId") || w.get("BbtmFeeId") | |
}) | |
} | |
return v | |
}, | |
hasOnboardTuition: function () { | |
var u = this, | |
v = false; | |
if (a.Data.FormType !== h.FormType.TMS_CONTRACT && u.feeTypeId === h.ContractFeeType.TUITION.Value && u.length > 0) { | |
v = u.any(function (w) { | |
return !w.get("SmartFeeId") | |
}) | |
} | |
return v | |
} | |
}); | |
a.Cs.SmartFeeSelect = Bbc.extend({ | |
sync: c.DataParamSync, | |
model: a.Ms.SmartFeeSelect, | |
duplicateTuitionFees: function (y) { | |
var w = {}, | |
v, x, u = []; | |
_.each(y.models, function (z) { | |
z.set({ | |
preSelectedFee: true | |
}) | |
}); | |
u = this.models.concat(y.models); | |
_.each(u, function (z) { | |
if (z.get("Selected") || z.get("preSelectedFee")) { | |
_.each(z.get("Grades"), function (A) { | |
x = A.GradeId.toString(); | |
if (w[x]) { | |
w[x].push(z) | |
} else { | |
w[x] = [z] | |
} | |
}) | |
} | |
}); | |
v = _.pick(w, function (z) { | |
return z.length > 1 | |
}); | |
return v | |
}, | |
url: function () { | |
return aP + "SmartTuition/FeeSelect/" | |
} | |
}); | |
a.Cs.TmsFeeSelect = Bbc.extend({ | |
model: a.Ms.TmsFeeSelect, | |
sync: c.DataParamSync, | |
url: function () { | |
return aP + "TmsContract/FeeSelect/" | |
} | |
}); | |
a.Cs.ContractGenerateStudentList = Bbc.extend({ | |
url: "EnrollmentContract/GeneratePreview/" | |
}); | |
a.Cs.Style = Bbm.extend({ | |
sync: c.DataParamSync, | |
url: function () { | |
return this.id ? aP + "FormStyle/Style/" + this.id + "/" : aP + "FormStyle/Style/" | |
} | |
}); | |
a.Cs.StyleProperties = Bbm.extend({}); | |
a.Cs.FormFieldType = Bbc.extend({ | |
sync: c.DataParamSync, | |
url: "DataDirect/FormFieldTypeGet/" | |
}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "formedit/formedit.main.template.html", | |
id: "application-main", | |
initialize: function (u) { | |
var v = this; | |
v.ApplicationFormId = a.Data.ApplicationFormId | |
}, | |
dispose: function () { | |
p3.closeFixedSidebar(); | |
p3.closeFixedFooter(); | |
a.Us.DeleteStyle() | |
}, | |
render: function (v) { | |
var w = this, | |
u; | |
$(v).append(w.el); | |
u = new a.Ms.BaseForm({ | |
ApplicationFormId: a.Data.ApplicationFormId | |
}); | |
u.fetch({ | |
cache: false, | |
success: function (x, y) { | |
a.Data.FormModel = u; | |
a.Data.FormType = _.findWhere(h.FormType, { | |
Value: y.FormType | |
}); | |
a.Data.SecurePayment = x.get("UseSecurePayment"); | |
a.Data.PaymentSectionVisible = x.get("PaymentSectionVisible"); | |
w.options.formType = a.Data.FormType; | |
w.FormType = a.Data.FormType; | |
w.ArchivedInd = x.get("ArchivedInd"); | |
a.Data.FormModel = new a.Ms[a.Data.FormType.Model](y); | |
p3.setTitle(w.title()); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
w.renderData() | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error loading form") | |
} | |
}) | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({})); | |
p3.rV(new a.Vs.Content({ | |
layoutView: u, | |
selectedTab: "content" | |
}), u.$(".col-md-12"), true); | |
p3.renderFixedSidebar(new a.Vs.Sidebar({ | |
layoutView: u | |
})); | |
p3.renderFixedFooter(new a.Vs.Footer({ | |
layoutView: u | |
})) | |
}) | |
}, | |
title: function () { | |
return a.Data.FormType.Name + " Forms Edit" | |
} | |
}); | |
a.Vs.Sidebar = Bb.View.extend({ | |
className: "workspace-sidebar", | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.rV(new a.Vs.SidebarOptions({ | |
layoutView: u.options.layoutView | |
}), u.el, false); | |
if (a.Data.FormType.Value == h.FormType.INQUIRY.Value || a.Data.FormType.Value == h.FormType.APPLICATION.Value) { | |
p3.rV(new a.Vs.SidebarTabs({ | |
layoutView: u.options.layoutView | |
}), u.el, false) | |
} | |
p3.rV(new a.Vs.SidebarMenu({ | |
layoutView: u.options.layoutView | |
}), u.el, false) | |
} | |
}); | |
a.Vs.SidebarOptions = Bb.View.extend({ | |
template: "admissions/applicationformsedit.sidebaroptions.template.html", | |
className: "workspace-sidebar-header", | |
initialize: function (u) { | |
var v = this; | |
v.model = new a.Ms[a.Data.FormType.Model](); | |
v.model.set(v.model.idAttribute, a.Data.ApplicationFormId) | |
}, | |
events: { | |
editsettings: "editSettings", | |
editpayment: "editPayment", | |
editsignatures: "editSignatures" | |
}, | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
u.model.unbind("sync", u.renderData); | |
p3.fT(u.template, function (v) { | |
u.model.fetch({ | |
cache: false, | |
success: function (w, y) { | |
var z = false, | |
x = u.model.get("Name"); | |
if (a.Data.FormType.IsContractForm) { | |
if (x) { | |
z = x.indexOf(w.get("SchoolYear")) < 0 | |
} else { | |
z = true | |
} | |
} | |
u.$el.html(v({ | |
model: w.toJSON(), | |
showYear: z, | |
formType: a.Data.FormType | |
})); | |
a.Data.FormModel = u.model.clone() | |
}, | |
error: function () { | |
p3.displayError("Error loading options") | |
}, | |
complete: function () { | |
u.model.bind("sync", u.renderData, u) | |
} | |
}) | |
}) | |
}, | |
editSettings: function (v) { | |
var x = this, | |
w, u = false; | |
v.stopPropagation(); | |
v.preventDefault(); | |
x.model.unbind("sync", x.renderData); | |
x.model.fetch({ | |
success: function (y, z) { | |
if (a.Data.FormType.Value == h.FormType.INQUIRY.Value) { | |
w = new l.Vs.InquiryForm({ | |
model: x.model, | |
variables: { | |
hideEdit: true | |
} | |
}) | |
} else { | |
if (a.Data.FormType.Value == h.FormType.APPLICATION.Value) { | |
w = new b.Vs.ApplicationForm({ | |
model: x.model, | |
variables: { | |
hideEdit: true | |
} | |
}) | |
} else { | |
if (a.Data.FormType.IsSchoolForm) { | |
w = new p.Vs.Settings({ | |
model: x.model, | |
variables: { | |
hideEdit: true | |
} | |
}) | |
} else { | |
if (a.Data.FormType.IsContractForm) { | |
e.Us.ShowContractSettings(x.model, { | |
hideEdit: true | |
}); | |
u = true | |
} else { | |
if (a.Data.FormType.Value == h.FormType.RECOMMENDATION.Value) { | |
o.Us.ShowRecommendationSettings(x.model.get("ApplicationFormId")); | |
u = true | |
} | |
} | |
} | |
} | |
} | |
if (u) { | |
return | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(w, p3.Layout.Containers.Modal, true) | |
}, | |
error: function () { | |
p3.displayError("Error loading options") | |
}, | |
complete: function () { | |
x.model.bind("sync", x.renderData, x) | |
} | |
}) | |
}, | |
editPayment: function (w, u) { | |
w.stopPropagation(); | |
w.preventDefault(); | |
var E = this, | |
y = new a.Ms.PaymentGateway(), | |
z, A, B, C, D, x, v = { | |
DepositPercentageType: { | |
data: new n.Cs.Dictionary(), | |
dataParams: { | |
name: "Deposit Percentage Type", | |
id: 131, | |
inputParam: "@oa_form_type_id=" + a.Data.FormType.Value + "[i]" | |
} | |
} | |
}; | |
if (parseInt(u.FieldBlockId, 10) === 65) { | |
E.model.set("hidePaymentGateway", true) | |
} else { | |
v.PaymentGateway = y; | |
E.model.set("hidePaymentGateway", false) | |
} | |
if (a.Data.FormType === h.FormType.TMS_CONTRACT) { | |
E.model.set("hideExceptions", true) | |
} | |
n.Us.Fetch(v, function (F, H, G) { | |
E.dictionaries = F; | |
E.dictionaries.PaymentGateway = (F.PaymentGateway) ? _.toArray(F.PaymentGateway.toJSON()) : {}; | |
if (a.Data.FormType === h.FormType.TMS_CONTRACT) { | |
E.dictionaries.PaymentGateway = _.filter(E.dictionaries.PaymentGateway, function (I) { | |
return I.GatewayId === 6 | |
}) | |
} | |
E.model.set({ | |
ignoreDueDate: true | |
}); | |
z = new i.Cs.FeeRules(E.model.get("FeeRules")); | |
A = z.ruleTypeExists(1); | |
B = z.ruleTypeExists(2); | |
C = z.ruleTypeExists(3); | |
D = z.ruleTypeExists(4); | |
if (A) { | |
x = 1 | |
} else { | |
if (B) { | |
x = 2 | |
} else { | |
if (C) { | |
x = 3 | |
} else { | |
if (D) { | |
x = 4 | |
} | |
} | |
} | |
} | |
E.modal2Extend = q.Vs.Modal2.extend({ | |
template: "formedit/formedit.block.settings.payment.template.html", | |
model: E.model, | |
selector: "id", | |
dictionaries: E.dictionaries, | |
variables: { | |
formType: a.Data.FormType, | |
ruleType1: A, | |
ruleType2: B, | |
ruleType3: C, | |
ruleType4: D, | |
firstRuleType: x, | |
BBTMLink: a.Us.GetBBTMLinkForAuthorizedUsers | |
}, | |
events: { | |
"change select.GatewayAccount_AccountId": "changeGateway", | |
"click button.select-all": "selectAll", | |
"click button.btn-select-toggle": "toggleSelection", | |
"click .toggleFee": "toggleFee", | |
"click .toggleGrade": "toggleGrade", | |
"click .togglePercentage": "togglePercentage", | |
"click .paymentoptions-input": "togglePaymentOption" | |
}, | |
modalRendered: function () { | |
var I = this; | |
I.showGateway(); | |
q.Us.showHtmlEditor(I, "tinyeditor") | |
}, | |
showGateway: function () { | |
var I = this; | |
E.hasEFT = false; | |
if (_.contains(E.model.get("PaymentOptions"), 5)) { | |
E.hasEFT = true | |
} | |
I.changeGateway() | |
}, | |
changeGateway: function (J) { | |
var L = this, | |
K, I = L.$(".paymentoptions-holder"); | |
I.empty(); | |
p3.fT("formedit/formedit.block.settings.paymentoptions.template.html", function (M) { | |
K = _.chain(L.dictionaries.PaymentGateway).filter(function (N) { | |
return N.AccountId === s.stringToInt($(".GatewayAccount_AccountId").val()) | |
}).first().value(); | |
if (K) { | |
E.model.set({ | |
PaymentOptions: _.chain(K.OnlineFormSelectedCards.split(",").join("").split("")).map(function (N) { | |
return parseInt(N, 10) | |
}).filter(function (N) { | |
return N !== 5 | |
}).value() | |
}); | |
if (E.hasEFT) { | |
E.model.get("PaymentOptions").push(5); | |
E.hasEFT = false | |
} | |
_.each(K.OnlineFormSelectedCards.split(",").join("").split(""), function (P, N) { | |
P = s.stringToInt(P); | |
var Q = _.findWhere(_.values(h.OnlineFormPaymentType), { | |
Value: P | |
}), | |
O = (N === 0) ? true : false; | |
I.append(M({ | |
isFirst: O, | |
paymentOption: Q, | |
securePayment: a.Data.SecurePayment, | |
paymentOptionsList: E.model.get("PaymentOptions").join() | |
})) | |
}) | |
} else { | |
E.model.set({ | |
PaymentOptions: [] | |
}) | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
selectAll: function (K) { | |
K.preventDefault(); | |
var L = this, | |
J = $(K.currentTarget), | |
M = J.data("selector"), | |
I = L.$("." + M + ":not(.active)"); | |
I.click() | |
}, | |
toggleSelection: function (J) { | |
J.preventDefault(); | |
var M = this, | |
I = $(J.currentTarget), | |
P = I.closest("tr"), | |
N = P.data("prop"), | |
K = P.data("id"), | |
L = $.extend(true, [], M.model.get(N)), | |
O; | |
if (N === "FeeRules" && L) { | |
O = _.find(L, function (Q) { | |
return Q.FeeRuleId == K | |
}); | |
if (O) { | |
O.InUseOnForm = !O.InUseOnForm; | |
M.model.set("FeeRules", L) | |
} | |
} | |
}, | |
toggleFee: function (I) { | |
var J = this; | |
_.defer(function () { | |
J.$(".feeHolder").show(); | |
J.$(".gradeHolder").hide(); | |
J.$(".percentageHolder").hide() | |
}) | |
}, | |
toggleGrade: function (I) { | |
var J = this; | |
_.defer(function () { | |
J.$(".feeHolder").hide(); | |
J.$(".gradeHolder").show(); | |
J.$(".percentageHolder").hide() | |
}) | |
}, | |
togglePercentage: function (I) { | |
var J = this; | |
_.defer(function () { | |
J.$(".feeHolder").hide(); | |
J.$(".gradeHolder").hide(); | |
J.$(".percentageHolder").show() | |
}) | |
}, | |
togglePaymentOption: function (J) { | |
var I = $(J.currentTarget), | |
L = s.stringToInt(I.prop("value")), | |
K = E.model.get("PaymentOptions") || []; | |
L = s.stringToInt(I.children("input").prop("value")); | |
if (I.data("action") === "add") { | |
if (K.indexOf(L) === -1) { | |
K.push(L) | |
} | |
} else { | |
if (I.data("action") === "remove") { | |
if (K.indexOf(L) > -1) { | |
K.splice(K.indexOf(L), 1) | |
} | |
} | |
} | |
E.model.set({ | |
PaymentOptions: K | |
}) | |
}, | |
modalSave: function () { | |
var I = this, | |
J = true; | |
$.each(I.$(".tinyeditor"), function () { | |
var K = {}; | |
K[this.id] = tinyMCE.get(this.id).save(); | |
I.model.set(K) | |
}); | |
if (!E.model.isValid(true)) { | |
if (!I.$el.find(".control-group.error").length) { | |
J = false; | |
I.$el.find(".error-holder .alert").html("Please check form settings for missing or invalid fields."); | |
I.$el.find(".error-holder").show(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
} | |
return J | |
}, | |
modalSavedSuccess: function (I) { | |
E.model.set({ | |
ignoreDueDate: false | |
}) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new E.modal2Extend(), p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
editSignatures: function (u, v) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var w = this; | |
if (v && _.isFunction(v.callback)) { | |
w.model.once("sync", v.callback, v.context) | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new d.Vs.Modal({ | |
template: "formedit/formedit.block.settings.esignature.template.html", | |
model: w.model | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}); | |
a.Vs.SidebarTabs = Bb.View.extend({ | |
template: "admissions/applicationformsedit.sidebartabs.template.html", | |
className: "workspace-sidebar-tabs", | |
events: { | |
"click .edit": "editSettings", | |
"click .content": "showContent", | |
"click .style": "showStyle" | |
}, | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({})) | |
}) | |
}, | |
editSettings: function (u) { | |
u.stopPropagation(); | |
$(".workspace-sidebar-header").trigger("editsettings") | |
}, | |
showContent: function (u) { | |
var v = this; | |
u.stopPropagation(); | |
a.Data.EditMode = "content"; | |
v.$(".active").removeClass("active"); | |
v.$(u.currentTarget).addClass("active"); | |
a.trigger("rendermain"); | |
a.trigger("rendersidebar") | |
}, | |
showStyle: function (u) { | |
var v = this; | |
u.stopPropagation(); | |
a.Us.GetStyle(a.Data.ApplicationFormId, function (w) { | |
a.Data.Style = w; | |
a.Us.SetStyle(a.Data.Style.StyleElements); | |
a.Data.EditMode = "style"; | |
v.$(".active").removeClass("active"); | |
v.$(u.currentTarget).addClass("active"); | |
a.trigger("rendermain"); | |
a.trigger("rendersidebar") | |
}) | |
} | |
}); | |
a.Vs.SidebarMenu = Bb.View.extend({ | |
className: function () { | |
return "workspace-sidebar-content m-10" | |
}, | |
initialize: function () { | |
var u = this; | |
a.on("rendersidebar", function () { | |
u.renderData() | |
}, u); | |
a.on("editstyle", function () { | |
u.editStyle() | |
}, u) | |
}, | |
dispose: function () { | |
a.off("rendersidebar") | |
}, | |
events: { | |
"click .edit": "editSettings" | |
}, | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var v = this, | |
u; | |
if (a.Data.EditMode === "content") { | |
v.template = "formedit/formedit.sidebarmenu.template.html" | |
} else { | |
if (a.Data.EditMode === "style") { | |
v.template = "formedit/formedit.sidebar.style.template.html"; | |
if (a.Data.FormType.Value == h.FormType.INQUIRY.Value) { | |
u = s.createEmbed("#inquiry/" + a.Data.ApplicationFormId) | |
} | |
} | |
} | |
p3.fT(v.template, function (w) { | |
v.$el.html(w({ | |
formType: a.Data.FormType, | |
formEmbed: u | |
})); | |
if (a.Data.EditMode === "content") { | |
p3.rV(new a.Vs.Elements({ | |
layoutView: v.options.layoutView | |
}), v.$("#elements"), true); | |
p3.rV(new a.Vs.Blocks({ | |
layoutView: v.options.layoutView | |
}), v.$("#blocks"), true) | |
} | |
}) | |
}, | |
editSettings: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
$(".workspace-sidebar-header").trigger("editsettings") | |
}, | |
editStyle: function () { | |
var w = this, | |
u = $("#application-workspace .style-element.selected"), | |
v = _.findWhere(a.Data.Style.StyleElements, { | |
StyleElementId: u.data("id") | |
}); | |
p3.rV(new a.Vs.StyleProperties({ | |
model: new a.Ms.StyleElement(v) | |
}), w.$(".style-holder"), true) | |
} | |
}); | |
a.Vs.StyleProperties = Bb.View.extend({ | |
template: "formedit/formedit.sidebar.style.properties.template.html", | |
events: { | |
"click .reset": "resetStyle" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.JSColor, function () { | |
v.renderData() | |
}) | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})); | |
_.each(u.model.get("StyleProperties"), function (x, w) { | |
p3.rV(new a.Vs.StyleProperty({ | |
model: new a.Ms.StyleProperty(x), | |
parent: u.model.toJSON(), | |
path: "StyleProperties." + w | |
}), u.$(".style-properties"), false) | |
}) | |
}) | |
}, | |
resetStyle: function (u) { | |
var v = this; | |
u.stopPropagation(); | |
u.preventDefault(); | |
_.each(v.$(".form-group"), function (w) { | |
$(w).trigger("deleteproperty") | |
}) | |
} | |
}); | |
a.Vs.StyleProperty = Bb.View.extend({ | |
template: "formedit/formedit.sidebar.style.property.template.html", | |
events: { | |
"change .style-input": "updateProperty", | |
deleteproperty: "deleteProperty" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})); | |
if (u.$(".color").length > 0) { | |
jscolor.color(u.$(".color")[0], { | |
required: false, | |
hash: true, | |
pickerPosition: "bottom" | |
}) | |
} | |
}) | |
}, | |
updateProperty: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var v = this; | |
q.Us.updateModel(u, v.model, "name"); | |
if (s.stringToInt($(u.currentTarget).data("id")) === 2) { | |
v.model.set({ | |
PropertyValue: v.model.get("PropertyValue") + "px" | |
}) | |
} | |
v.model.save({}, { | |
success: function (w, x) { | |
q.Us.setPropByString(v.options.parent, v.options.path, x); | |
a.Us.SetStyle(a.Data.Style.StyleElements) | |
}, | |
error: function (x, w) { | |
p3.displayError("Error updating style") | |
} | |
}) | |
}, | |
deleteProperty: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var v = this; | |
if (v.model.id) { | |
v.model.set({ | |
ResetInd: true | |
}); | |
v.model.save({}, { | |
success: function (w, x) { | |
q.Us.setPropByString(v.options.parent, v.options.path, x); | |
v.renderData(); | |
a.Us.SetStyle(a.Data.Style.StyleElements) | |
}, | |
error: function (x, w) { | |
p3.displayError("Error deleting style") | |
} | |
}) | |
} | |
} | |
}); | |
a.Vs.Elements = Bb.View.extend({ | |
template: "formedit/formedit.sidebar.elements.template.html", | |
initialize: function (u) { | |
var v = this; | |
this.collection = new a.Cs.Elements(); | |
this.collection.bind("add", function (z) { | |
var y, w, x; | |
if (z.get("Id") === 12) { | |
x = i.Us.findElementById(z.get("Id")); | |
z.set({ | |
IconClass: x.IconClass | |
}); | |
y = new a.Vs.FormField({ | |
model: z, | |
attributes: { | |
"data-id": 41, | |
"data-type": "formfield" | |
}, | |
layoutView: v.options.layoutView | |
}); | |
p3.rV(y, this.el, false) | |
} else { | |
w = new a.Vs.Element({ | |
model: z, | |
attributes: { | |
"data-id": z.get("Id"), | |
"data-type": "element" | |
}, | |
layoutView: v.options.layoutView | |
}); | |
x = i.Us.findElementById(z.get("Id")); | |
z.set({ | |
IconClass: x.IconClass | |
}); | |
p3.rV(w, v.el, false) | |
} | |
}, this) | |
}, | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
u.collection.reset(); | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({})); | |
u.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
FormType: a.Data.FormType.Value | |
}, | |
complete: function () { | |
u.initializeDrag() | |
}, | |
error: function () { | |
p3.displayError("Error loading element list") | |
} | |
}) | |
}) | |
}, | |
initializeDrag: function () { | |
$(".workspace-sidebar-content .drag-element").draggable({ | |
connectToSortable: ".drop-element", | |
distance: 5, | |
tolerance: "pointer", | |
helper: "clone", | |
appendTo: "body", | |
start: function (u, v) { | |
$("textarea.as-html").each(function (x, y) { | |
var w = $(y).attr("id"); | |
tinyMCE.execCommand("mceRemoveControl", false, w) | |
}) | |
}, | |
stop: function () { | |
$("textarea.as-html").each(function (v, w) { | |
var u = $(w).attr("id"); | |
tinyMCE.execCommand("mceAddControl", false, u) | |
}) | |
} | |
}).mousedown(function () { | |
$("input,textarea").blur() | |
}).disableSelection(); | |
$(".workspace-sidebar-content .drag-block").draggable({ | |
connectToSortable: ".drop-block", | |
distance: 5, | |
tolerance: "pointer", | |
helper: "clone", | |
appendTo: "body", | |
start: function (u, v) { | |
$("textarea.as-html").each(function (x, y) { | |
var w = $(y).attr("id"); | |
tinyMCE.execCommand("mceRemoveControl", false, w) | |
}) | |
}, | |
stop: function () { | |
$("textarea.as-html").each(function (v, w) { | |
var u = $(w).attr("id"); | |
tinyMCE.execCommand("mceAddControl", false, u) | |
}) | |
} | |
}).mousedown(function () { | |
$("input,textarea").blur() | |
}).disableSelection() | |
} | |
}); | |
a.Vs.Element = Bb.View.extend({ | |
template: "formedit/formedit.sidebar.element.template.html", | |
className: function () { | |
return "btn btn-default btn-sm draggable-item drag-element" | |
}, | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})) | |
}) | |
} | |
}); | |
a.Vs.FormField = Bb.View.extend({ | |
template: "formedit/formedit.sidebar.content.formfield.template.html", | |
className: function () { | |
return "btn btn-default btn-sm draggable-item" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.$el.addClass("drag-block"); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})) | |
}) | |
} | |
}); | |
a.Vs.Blocks = Bb.View.extend({ | |
template: "formedit/formedit.sidebar.blocks.template.html", | |
className: "blocks-holder", | |
initialize: function (u) { | |
var v = this; | |
this.collection = new a.Cs.Blocks(); | |
this.collection.bind("add", function (x) { | |
var w = new a.Vs.Block({ | |
model: x, | |
attributes: { | |
"data-id": x.id, | |
"data-type": "block" | |
}, | |
layoutView: v.options.layoutView | |
}); | |
p3.rV(w, this.el, false) | |
}, this) | |
}, | |
events: { | |
refreshlibrary: "refreshLibrary" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
u.collection.reset(); | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({})); | |
u.collection.fetch({ | |
update: true, | |
remove: false, | |
cache: false, | |
data: { | |
applicationFormId: a.Data.ApplicationFormId, | |
formType: a.Data.FormType.Value | |
}, | |
complete: function () { | |
u.initializeDrag() | |
}, | |
error: function () { | |
p3.displayError("Error loading block list") | |
} | |
}) | |
}) | |
}, | |
initializeDrag: function () { | |
$(".workspace-sidebar-content .drag-block").draggable({ | |
connectToSortable: ".drop-block", | |
distance: 5, | |
tolerance: "pointer", | |
helper: "clone", | |
appendTo: "body", | |
start: function (u, v) { | |
$("textarea.as-html").each(function (x, y) { | |
var w = $(y).attr("id"); | |
tinyMCE.execCommand("mceRemoveControl", false, w) | |
}) | |
}, | |
stop: function () { | |
$("textarea.as-html").each(function (v, w) { | |
var u = $(w).attr("id"); | |
tinyMCE.execCommand("mceAddControl", false, u) | |
}) | |
} | |
}).mousedown(function () { | |
$("input,textarea").blur() | |
}).disableSelection() | |
}, | |
refreshLibrary: function (u) { | |
var v = this; | |
u.stopPropagation(); | |
u.preventDefault(); | |
v.renderData() | |
} | |
}); | |
a.Vs.Block = Bb.View.extend({ | |
template: "formedit/formedit.sidebar.block.template.html", | |
className: function () { | |
return "btn btn-default btn-sm draggable-item a" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.$el.css("white-space", "normal"); | |
if (!v.model.get("BlockInUseInd")) { | |
v.$el.addClass("drag-block") | |
} else { | |
v.$el.attr("disabled", true); | |
v.$el.attr("rel", "tooltip"); | |
v.$el.attr("data-original-title", "Used in " + v.model.get("BlockUsedInSection")); | |
v.$el.tooltip() | |
} | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})) | |
}) | |
} | |
}); | |
a.Vs.Content = Bb.View.extend({ | |
initialize: function () { | |
var u = this; | |
a.on("rendermain", function () { | |
u.renderData() | |
}, u) | |
}, | |
dispose: function () { | |
a.off("rendermain") | |
}, | |
events: { | |
renderdata: "renderData", | |
"click .style-element": "editStyle" | |
}, | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
if (a.Data.EditMode === "content") { | |
u.template = "applications/applications.edit.content.template.html" | |
} else { | |
if (a.Data.EditMode === "style") { | |
u.template = "formedit/formedit.main.style.template.html" | |
} | |
} | |
p3.fT(u.template, function (v) { | |
if (a.Data.EditMode === "style") { | |
u.$el.html(v({ | |
style: a.Data.Style | |
})) | |
} else { | |
u.$el.html(v({})) | |
} | |
p3.rV(new a.Vs.Sections({ | |
layoutView: u.options.layoutView | |
}), u.$("#application-sections"), true) | |
}) | |
}, | |
editStyle: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
$("#application-workspace .style-element.selected").removeClass("selected"); | |
$(u.currentTarget).addClass("selected"); | |
a.trigger("editstyle") | |
} | |
}); | |
a.Vs.Sections = Bb.View.extend({ | |
template: "admissions/applicationformsedit.sections.template.html", | |
initialize: function (u) { | |
var v = this; | |
this.collection = new a.Cs.Sections(); | |
v.Containers = {}; | |
this.collection.bind("add", function (w) { | |
if (w.get("LockedType") !== 1 || a.Data.PaymentSectionVisible) { | |
var x = new a.Vs.Section({ | |
model: w, | |
layoutView: v.options.layoutView | |
}); | |
w.View = x; | |
x.on("sectionDeleted", function () { | |
if (v.collection.length) { | |
x = v.collection.at(0); | |
x.View.selectSection() | |
} else { | |
v.renderData() | |
} | |
}); | |
v.Containers.NavTabs = v.$(".nav-tabs"); | |
p3.rV(x, v.Containers.NavTabs, false) | |
} | |
}, this) | |
}, | |
events: { | |
"click .create": "createSection" | |
}, | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
u.collection.reset(); | |
p3.fT(u.template, function (w) { | |
var v = a.Us.getOkToEdit() && a.Data.FormType != h.FormType.INQUIRY; | |
u.$el.html(w({ | |
okToEdit: v | |
})); | |
u.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
applicationFormId: a.Data.ApplicationFormId | |
}, | |
complete: function () { | |
u.$(".nav-tabs li:first").trigger("selectsection"); | |
if (a.Us.getOkToEdit()) { | |
u.initializeSort() | |
} | |
}, | |
error: function () { | |
p3.displayError("Error loading sections") | |
} | |
}) | |
}) | |
}, | |
createSection: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var w = this, | |
v = new a.Ms.Section({ | |
ApplicationFormId: a.Data.ApplicationFormId | |
}); | |
v.bind("sync", w.renderData, w); | |
w.Modal2Extend = q.Vs.Modal2.extend({ | |
template: "formedit/formedit.section.create.template.html", | |
model: v, | |
size: "md", | |
modalRendered: function () { | |
var x = this; | |
x.setFocus() | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new w.Modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
initializeSort: function () { | |
var u = this; | |
u.$(".nav").sortable({ | |
axis: "y", | |
distance: 5, | |
tolerance: "pointer", | |
appendTo: "body", | |
items: "li:not(.locked)", | |
start: function () { | |
$(".locked", this).each(function () { | |
var v = $(this); | |
v.data("pos", v.index()) | |
}) | |
}, | |
change: function () { | |
var x = $(this), | |
w = $(".locked", this).detach(), | |
v = $("<li></li>").prependTo(this); | |
w.each(function () { | |
var y = $(this), | |
z = y.data("pos"); | |
y.insertAfter($("li", x).eq(z)) | |
}); | |
v.remove() | |
}, | |
update: function (x, A) { | |
_.each(u.$(".nav").children(), function (C, B) { | |
$(C).trigger("sortorder", [(B + 1)]) | |
}); | |
var w = { | |
applicationFormId: a.Data.ApplicationFormId | |
}, | |
z = u.collection.findWhere({ | |
Locked: true, | |
LockedType: 1 | |
}), | |
v = u.collection.findWhere({ | |
Locked: true, | |
LockedType: 2 | |
}), | |
y = u.collection.size(); | |
if (v) { | |
v.set("Position", y + 2) | |
} | |
if (z) { | |
z.set("Position", y + 1) | |
} | |
u.collection.save({ | |
dataParam: w | |
}) | |
} | |
}).mousedown(function () { | |
$("input,textarea").blur() | |
}).disableSelection() | |
} | |
}); | |
a.Vs.Section = Bb.View.extend({ | |
template: "admissions/applicationformsedit.section.template.html", | |
tagName: "li", | |
className: "p-0", | |
initialize: function (u) { | |
var v = this; | |
v.Containers = {}; | |
v.model.bind("remove", this.deleteElement, this) | |
}, | |
events: { | |
"click a.sectionItem": "selectSection", | |
selectsection: "selectSection", | |
sortorder: "sortOrder", | |
editsectionsettings: "editSectionSettings", | |
getsectionlocked: "getSectionLocked" | |
}, | |
render: function (u) { | |
var v = this; | |
if (v.model.get("Locked")) { | |
$(v.el).addClass("locked") | |
} | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})) | |
}) | |
}, | |
sortOrder: function (u, v) { | |
var w = this; | |
u.stopPropagation(); | |
u.preventDefault(); | |
w.model.set({ | |
Position: v | |
}) | |
}, | |
selectSection: function (u) { | |
var v = this; | |
if (u) { | |
u.preventDefault(); | |
u.stopPropagation() | |
} | |
v.$el.siblings("li").removeClass("active"); | |
v.$el.addClass("active"); | |
v.Containers.AppWorkspace = $("#application-workspace"); | |
p3.rV(new a.Vs.SectionItems({ | |
sectionId: v.model.id, | |
locked: v.model.get("Locked"), | |
lockedType: v.model.get("LockedType"), | |
layoutView: v.options.layoutView | |
}), v.Containers.AppWorkspace, true) | |
}, | |
editSectionSettings: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var w = this, | |
v = !(w.model.get("Locked") || a.Data.FormType.Value == h.FormType.INQUIRY.Value); | |
w.model.set({ | |
FormTypeName: a.Data.FormType.Name, | |
okToDelete: v | |
}, { | |
silent: true | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new d.Vs.Modal({ | |
template: "formedit/formedit.section.edit.template.html", | |
model: w.model, | |
formModel: a.Data.FormModel | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
deleteElement: function () { | |
var u = this; | |
u.trigger("sectionDeleted"); | |
$(this.el).remove() | |
}, | |
getSectionLocked: function (u) { | |
var v = this; | |
return v.model.get("Locked") | |
} | |
}); | |
a.Vs.SectionItems = Bb.View.extend({ | |
template: "admissions/applicationformsedit.section.items.template.html", | |
initialize: function (u) { | |
var v = this; | |
v.collection = new a.Cs.SectionItems(); | |
v.Containers = {}; | |
v.collection.bind("add", function (x) { | |
var y, w = true; | |
if (x.isElement()) { | |
y = new a.Vs.ElementItem({ | |
model: x, | |
layoutView: v.options.layoutView, | |
parentView: v, | |
sectionId: x.id, | |
locked: v.options.locked | |
}) | |
} else { | |
if (x.isBlock()) { | |
if (x.isFormField()) { | |
y = new a.Vs.SectionItemFormField({ | |
model: x, | |
layoutView: v.options.layoutView, | |
parentView: v, | |
sectionId: x.id, | |
locked: v.options.locked | |
}); | |
x.bind("sync", v.renderDataDeferred, v) | |
} else { | |
w = a.Us.allowElements(x.get("FieldBlockItem").Id, v.options.locked); | |
y = new a.Vs.SectionItemBlock({ | |
model: x, | |
layoutView: v.options.layoutView, | |
parentView: v, | |
sectionId: x.id, | |
locked: v.options.locked, | |
allowElements: w | |
}); | |
x.bind("sync", v.renderDataDeferred, v) | |
} | |
} | |
} | |
v.Containers.FormSectionItems = v.$(".form-section-items"); | |
p3.rV(y, v.Containers.FormSectionItems, false) | |
}, this) | |
}, | |
events: { | |
"click .edit": "editSectionSettings" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
u.collection.reset(); | |
p3.fT(u.template, function (w) { | |
var v = a.Us.getOkToEdit(); | |
u.$el.html(w({ | |
locked: u.options.locked, | |
lockedType: u.options.lockedType, | |
okToEdit: v | |
})); | |
u.collection.fetch({ | |
update: true, | |
remove: false, | |
cache: false, | |
data: { | |
applicationFormId: a.Data.ApplicationFormId, | |
sectionId: u.options.sectionId, | |
builder: true | |
}, | |
success: function () { | |
var x = (u.collection.models.length > 0) ? false : true; | |
if (x) { | |
$("#emptysection").show() | |
} else { | |
$("#emptysection").hide() | |
} | |
}, | |
complete: function () { | |
if (a.Us.getOkToEdit()) { | |
u.initializeSort() | |
} else { | |
if (u.options.locked) { | |
u.initializeSort() | |
} | |
} | |
}, | |
error: function () { | |
p3.displayError("Error loading section items") | |
} | |
}) | |
}) | |
}, | |
renderDataDeferred: function () { | |
var u = this; | |
_.delay(function () { | |
u.renderData() | |
}, 200) | |
}, | |
initializeSort: function () { | |
var u = this; | |
u.$(".form-section-items").sortable({ | |
placeholder: "sortable-placeholder", | |
distance: 5, | |
tolerance: "pointer", | |
helper: "clone", | |
appendTo: "body", | |
scroll: true, | |
scrollSensitivity: 160, | |
scrollSpeed: 40, | |
containment: "parent", | |
update: function (x, C) { | |
var v = $(C.item), | |
B = v.index(), | |
w = null, | |
y = null, | |
z = B + 1, | |
A; | |
if (v.hasClass("drag-element") || v.hasClass("drag-block")) { | |
if (v.data("type") === "element") { | |
w = v.data("id") | |
} else { | |
if (v.data("type") === "block") { | |
y = v.data("id") | |
} else { | |
if (v.data("type") === "formfield") { | |
y = v.data("id") | |
} | |
} | |
} | |
v.remove(); | |
A = new a.Ms.SectionItem({ | |
ApplicationFormId: a.Data.ApplicationFormId, | |
ApplicationSectionId: u.options.sectionId, | |
ElementItem: { | |
"$type": "clBLL.nOnlineApplication.ElementItem, clBLL", | |
Id: w | |
}, | |
FieldBlockItem: { | |
"$type": "clBLL.nOnlineApplication.FieldBlockItem, clBLL", | |
Id: y | |
} | |
}); | |
A.save({}, { | |
dataParam: { | |
returnModel: true | |
}, | |
success: function (D, E) { | |
D.set({ | |
Position: z | |
}); | |
u.collection.add(D, { | |
at: B | |
}); | |
u.setSortOrder() | |
}, | |
complete: function () { | |
if (v.data("type") === "block") { | |
$("#blocks .blocks-holder").trigger("refreshlibrary") | |
} | |
} | |
}) | |
} else { | |
u.setSortOrder() | |
} | |
}, | |
start: function (v, w) { | |
$("textarea.as-html").each(function (y, z) { | |
var x = $(z); | |
x.blur(); | |
tinyMCE.execCommand("mceRemoveControl", false, x.attr("id")) | |
}); | |
u.$(".form-section-items").sortable("refresh") | |
}, | |
stop: function () { | |
$("textarea.as-html").each(function (w, x) { | |
var v = $(x).attr("id"); | |
tinyMCE.execCommand("mceAddControl", false, v) | |
}) | |
} | |
}) | |
}, | |
setSortOrder: function () { | |
var w = this, | |
v = [], | |
u; | |
_.each(w.$(".form-section-items").children(), function (y, x) { | |
$(y).trigger("sortorder", [(x + 1)]) | |
}); | |
v = []; | |
_.each(w.collection.toJSON(), function (x) { | |
v.push(_.pick(x, "SectionItemId", "Position")) | |
}); | |
u = new a.Cs.SectionItems(v); | |
u.save({ | |
dataParam: { | |
sectionId: w.options.sectionId | |
} | |
}); | |
w.checkSectionItems() | |
}, | |
editSectionSettings: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
$("ul.nav-tabs li.active").trigger("editsectionsettings") | |
}, | |
checkSectionItems: function (u) { | |
var w = this, | |
v = (w.collection.models.length > 0) ? false : true; | |
if (v) { | |
$("#emptysection").show() | |
} else { | |
$("#emptysection").hide() | |
} | |
} | |
}); | |
a.Vs.ElementItem = Bb.View.extend({ | |
template: "admissions/applicationformsedit.section.item.element.field.template.html", | |
tagName: function () { | |
if (!this.options.blockMode) { | |
return "div" | |
} | |
return "tr" | |
}, | |
className: function () { | |
if (this.options) { | |
if (this.options.blockMode) { | |
return "form-greybox" | |
} | |
return "form-section-item form-greybox" | |
} | |
return undefined | |
}, | |
initialize: function (u) { | |
var v = this; | |
switch (v.model.get("ElementItem").Id) { | |
case h.Element.HEADER.Value: | |
v.template = "formedit/formedit.element.header.template.html"; | |
break; | |
case h.Element.TEXT.Value: | |
v.template = "formedit/formedit.element.text.template.html"; | |
break; | |
case h.Element.IMAGE.Value: | |
v.template = "formedit/formedit.element.image.template.html"; | |
break; | |
case h.Element.SPACER.Value: | |
v.template = "formedit/formedit.element.spacer.template.html"; | |
break; | |
case h.Element.HORIZONTALLINE.Value: | |
v.template = "formedit/formedit.element.horizontalline.template.html"; | |
break; | |
case h.Element.LOGO.Value: | |
v.template = "formedit/formedit.element.logo.template.html"; | |
break; | |
case h.Element.PAYMENTPLANLIST.Value: | |
v.template = "formedit/formedit.element.paymentplanlist.template.html"; | |
break; | |
case h.Element.FEESCHEDULE.Value: | |
v.template = "formedit/formedit.element.feeschedule.template.html"; | |
break; | |
case h.Element.SPECIALCONSIDERATION.Value: | |
v.template = "formedit/formedit.element.specialconsideration.template.html"; | |
break; | |
case h.Element.RATINGMATRIX.Value: | |
v.template = "formedit/formedit.element.ratingmatrix.template.html"; | |
break; | |
default: | |
v.template = "admissions/applicationformsedit.section.item.element.field.template.html" | |
} | |
v.blockMode = u.blockMode || false; | |
v.Containers = {}; | |
v.model.bind("destroy", this.deleteElement, this); | |
v.model.bind("remove", this.deleteElement, this); | |
Bb.Validation.bind(v, { | |
forceUpdate: true, | |
selector: "id" | |
}) | |
}, | |
events: { | |
sortorder: "sortOrder", | |
"change input:not(.file-upload-input):not(.financialaid)": "updateModel", | |
"change textarea": "updateModel", | |
"click .radio-input": "updateModel", | |
"click .edit": "editSectionElement", | |
"click .delete": "deleteElementItem", | |
"click .deleteimage": "deleteImage", | |
"change .logo": "updateModel", | |
"blur textarea.as-html": "htmlEditorBlur" | |
}, | |
dispose: function () { | |
var u = this; | |
u.$("textarea.as-html").each(function () { | |
var v = tinyMCE.get($(this).attr("id")); | |
if (v) { | |
v.remove(); | |
v = null | |
} | |
}) | |
}, | |
render: function (w) { | |
var y = this, | |
x = (y.model.get("Position") - 1), | |
v = w.children(), | |
u; | |
if (x > 0) { | |
u = y.options.blockMode ? v.filter("tr:nth-child(" + x + ")") : v.filter("div:nth-child(" + x + ")"); | |
if (u.length) { | |
u.after(y.el) | |
} else { | |
w.append(y.el) | |
} | |
} else { | |
if (v.length) { | |
w.prepend(y.el) | |
} else { | |
w.append(y.el) | |
} | |
} | |
y.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (w) { | |
u.$el.html(w({ | |
model: u.model.toJSON(), | |
modelId: u.model.id, | |
okToEdit: a.Us.getOkToEdit(), | |
sectionLocked: (u.blockMode) ? undefined : a.Us.isSectionLocked(), | |
isBasicElement: u.model.isBasicElement(), | |
blockMode: u.blockMode | |
})); | |
u.$("#ElementItem\\.DisplayAs").trigger(jQuery.Event("keyup")); | |
var v = u.$("textarea"); | |
if (v.length) { | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.AutoSize, function () { | |
if (u.model.get("ElementItem").Id !== h.Element.TEXT.Value) { | |
v.autosize() | |
} | |
}) | |
} | |
switch (u.model.get("ElementItem").Id) { | |
case h.Element.IMAGE.Value: | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.FileUpload, function () { | |
u.initializeFileUpload_Photo(u) | |
}); | |
break; | |
case h.Element.TEXT.Value: | |
u.renderTextElement(); | |
break; | |
case h.Element.HTML.Value: | |
u.renderHTMLElement(); | |
break; | |
case h.Element.LOGO.Value: | |
u.renderLogoElement(); | |
break; | |
case h.Element.PAYMENTPLANLIST.Value: | |
u.renderPaymentPlans(); | |
break; | |
case h.Element.FEESCHEDULE.Value: | |
u.renderFeeSchedule(); | |
break; | |
case h.Element.RATINGMATRIX.Value: | |
u.renderRatingMatrix(); | |
break | |
} | |
}) | |
}, | |
renderTextElement: function () { | |
var v = this, | |
u = v.$("textarea.as-html").prop("id"); | |
p3.showHtmlEditor(u, p3.Us.Enum.HtmlEditorCategories.CONTRACTS, false, function () { | |
var w = tinyMCE.get(u); | |
v.updateCharacterCounter(w); | |
w.onChange.add(function (y, x) { | |
v.updateCharacterCounter(y) | |
}); | |
w.onKeyUp.add(function (y, x) { | |
v.updateCharacterCounter(y) | |
}); | |
$(w.getBody()).blur(function () { | |
v.$("textarea.as-html").blur() | |
}) | |
}, p3.Us.Enum.HtmlEditorEncoding.NAMED) | |
}, | |
renderHTMLElement: function () { | |
var u = this; | |
u.$("textarea.as-html").each(function (x, v) { | |
var w = $(v).attr("id"); | |
p3.showHtmlEditor(w, p3.Us.Enum.HtmlEditorCategories.CONTRACTS, false, function () { | |
var y = tinyMCE.get(w); | |
if (y) { | |
$(y.getBody()).blur(function () { | |
$(v).blur() | |
}) | |
} | |
}, p3.Us.Enum.HtmlEditorEncoding.NUMERIC) | |
}) | |
}, | |
renderPaymentPlans: function () { | |
var v = this, | |
u = new a.Cs.ContractPaymentPlans(); | |
u.fetch({ | |
data: { | |
formId: a.Data.ApplicationFormId | |
}, | |
success: function () { | |
var w = new a.Vs.ContractPaymentPlans({ | |
collection: u, | |
elementModel: v.model | |
}); | |
v.Containers.PaymentPlans = v.$(".element-container"); | |
p3.rV(w, v.Containers.PaymentPlans, true) | |
}, | |
error: function () { | |
p3.displayError("Error loading payment plan list") | |
} | |
}) | |
}, | |
renderFeeSchedule: function () { | |
var v = this, | |
u = new a.Cs.FeeTypes(); | |
a.Data.FormModel.fetch({ | |
success: function () { | |
u.fetch({ | |
data: { | |
formTypeId: a.Data.FormType.Value | |
}, | |
success: function () { | |
var w = new a.Vs.FeeSchedule({ | |
collection: u, | |
elementModel: v.model | |
}); | |
v.Containers.FeeSchedule = v.$(".element-container"); | |
p3.rV(w, v.Containers.FeeSchedule, true) | |
}, | |
error: function () { | |
p3.displayError("Error loading fee types") | |
} | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error loading application form") | |
} | |
}) | |
}, | |
renderLogoElement: function (v) { | |
var x = this, | |
w = new m.Cs.SchoolLogoGet(), | |
u = x.$(".logo"); | |
w.fetch({ | |
success: function () { | |
w.each(function (y) { | |
if (y.get("LogoId") === s.stringToInt(x.model.get("ElementItem").Setting1)) { | |
u.append('<option value="' + y.get("LogoId") + '" selected="selected">' + y.get("ShortDescription") + "</option>") | |
} else { | |
u.append('<option value="' + y.get("LogoId") + '">' + y.get("ShortDescription") + "</option>") | |
} | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error loading logos") | |
} | |
}) | |
}, | |
renderRatingMatrix: function () { | |
var x = this, | |
u = x.model.get("ElementItem"), | |
v = new a.Ms.RatingMatrix(), | |
w = new a.Vs.RatingMatrix({ | |
model: x.model, | |
ratingMatrix: v | |
}); | |
x.Containers.RatingMatrix = x.$(".element-container"); | |
if (u.RatingMatrixId) { | |
v.fetch({ | |
data: { | |
id: u.RatingMatrixId | |
}, | |
success: function () { | |
p3.rV(w, x.Containers.RatingMatrix, true) | |
}, | |
error: function () { | |
p3.displayError("Error loading rating matrix") | |
} | |
}) | |
} else { | |
p3.rV(w, x.Containers.RatingMatrix, true) | |
} | |
}, | |
sortOrder: function (u, v) { | |
var w = this; | |
u.stopPropagation(); | |
u.preventDefault(); | |
w.model.set({ | |
Position: v | |
}) | |
}, | |
initializeFileUpload_Photo: function (u) { | |
window.setTimeout(function () { | |
var v = p3.Us.Enum.UploadType.IMAGE; | |
u.$(".imgUpload").fileupload({ | |
url: p3.Config.RootPath + "utilities/FileTransferHandler.ashx", | |
autoUpload: true, | |
acceptFileTypes: v.ValidExtensions, | |
formData: { | |
safeName: true | |
}, | |
add: function (x, w) { | |
var y = p3.Us.FileTools.isValidFile(v, w.files[0].name); | |
if (y) { | |
w.submit() | |
} else { | |
u.$(".imgUpload form .alert ").remove(); | |
u.$(".imgUpload form").append(p3.Us.FileTools.validateFiles(v, w)) | |
} | |
} | |
}).bind("fileuploaddone", function (x, w) { | |
var y = u.model.get("ElementItem"); | |
u.model.defaults = $.extend(true, {}, u.model.attributes); | |
u.$(".imgNice").prop("src", "/ftpimages/pdTemp/" + w.result[0].name); | |
u.$(".imgDisplay").show(); | |
u.$(".imgUpload").hide(); | |
if (!y.AttachmentFile) { | |
y.AttachmentFile = {} | |
} | |
y.AttachmentFile.Attachment = w.result[0].original_name; | |
y.AttachmentFile.AttachmentTemp = w.result[0].name; | |
if (u.model.isValid(true)) { | |
u.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(u.model.attributes, function (B, z, A) { | |
a.Us.recursiveFunction(u, B, z, A, "") | |
}); | |
u.model.save({}, { | |
dataParam: u.options.dataParam, | |
success: function (z, A) { | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function (A, z) { | |
p3.displayError("Error saving field") | |
} | |
}) | |
} | |
}) | |
}, 1000) | |
}, | |
updateCharacterCounter: function (v) { | |
var x = this, | |
u = v.getContent(), | |
w = 4000; | |
if (u.length > w) { | |
u = u.substring(0, w); | |
v.setContent(u); | |
v.focus(); | |
v.selection.select(v.getBody(), true); | |
v.selection.collapse(false) | |
} | |
x.$(".characterCounter").html(u.length) | |
}, | |
htmlEditorBlur: function (y) { | |
y.preventDefault(); | |
y.stopPropagation(); | |
var B = this, | |
u = $(y.currentTarget), | |
z = u.attr("id"), | |
x, w, A, v; | |
if (u.hasClass("as-html")) { | |
x = tinyMCE.get(z); | |
w = false; | |
if (x) { | |
A = u.val(); | |
v = a.Us.FixHTML(x.getContent()); | |
w = (A !== v) | |
} | |
if (w) { | |
B.updateModel(y) | |
} | |
} | |
}, | |
updateModel: function (x, z) { | |
x.preventDefault(); | |
var F = this, | |
C = $(x.currentTarget), | |
A = C.prop("id"), | |
B = A, | |
D = C.val(), | |
y = C.hasClass("as-html"), | |
u = C.closest(".section-item-container").attr("id"), | |
v = {}, | |
w, E; | |
F.model.defaults = $.extend(true, {}, F.model.attributes); | |
if (C.hasClass("radio-input")) { | |
B = C.parent().prop("id") | |
} else { | |
if (C.hasClass("logo")) { | |
D = s.stringToInt(C.val()) | |
} else { | |
if (y) { | |
w = tinyMCE.get(A); | |
if (w) { | |
D = a.Us.FixHTML(w.save()); | |
w.setContent(D) | |
} | |
B = C.prop("name") | |
} | |
} | |
} | |
if (!_.contains(B, ".")) { | |
v[B] = D; | |
F.model.set(v) | |
} else { | |
a.Us.setPropByString(F.model.attributes, B, D); | |
E = y ? u : B; | |
if (F.model.isValid(B)) { | |
Bb.Validation.callbacks.valid(F, E, "id") | |
} else { | |
Bb.Validation.callbacks.invalid(F, E, "Entered value contains an error.", "id") | |
} | |
} | |
if (F.model.isValid(true)) { | |
F.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(F.model.attributes, function (I, G, H) { | |
a.Us.recursiveFunction(F, I, G, H, "") | |
}); | |
F.model.save({}, { | |
dataParam: F.options.dataParam, | |
success: function (G, H) { | |
p3.Layout.Containers.Modal.modal("hide"); | |
if (_.isFunction(z)) { | |
z() | |
} | |
}, | |
error: function (H, G) { | |
p3.displayError("Error saving field") | |
} | |
}) | |
} | |
}, | |
deleteImage: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var v = this; | |
v.model.defaults = $.extend(true, {}, v.model.attributes); | |
v.$(".imgDisplay").hide(); | |
v.$(".imgUpload").show(); | |
v.model.get("ElementItem").AttachmentFile.AttachmentRemove = v.model.get("ElementItem").AttachmentFile.Attachment; | |
v.model.get("ElementItem").AttachmentFile.Attachment = null; | |
if (v.model.isValid(true)) { | |
v.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(v.model.attributes, function (y, w, x) { | |
a.Us.recursiveFunction(v, y, w, x, "") | |
}); | |
v.model.save({}, { | |
dataParam: v.options.dataParam, | |
error: function (x, w) { | |
p3.displayError("Error removing image") | |
} | |
}) | |
} | |
}, | |
editSectionElement: function (u) { | |
u.stopPropagation(); | |
u.preventDefault() | |
}, | |
deleteElementItem: function (u) { | |
var v = this; | |
u.stopPropagation(); | |
u.preventDefault(); | |
p3.showConfirm("Remove Element", "Wait a minute. Are you really sure you want to remove this " + v.model.get("ElementItem").Name + " element from this section?", null, function () { | |
v.model.destroy({ | |
complete: function () { | |
if (!v.blockMode) { | |
v.options.parentView.checkSectionItems() | |
} | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
a.Vs.SectionItemFormField = Bb.View.extend({ | |
template: "formedit/formedit.main.section.item.formfield.template.html", | |
className: function () { | |
return "form-section-item white-bgc" | |
}, | |
initialize: function (u) { | |
var v = this; | |
v.collection = new a.Cs.BlockFields(); | |
v.parentView = u.parentView; | |
v.collection.bind("add", function (x) { | |
var w; | |
if (x.get("ElementItem").Id) { | |
w = new a.Vs.ElementItem({ | |
model: x, | |
elementName: v.model.get("ElementItem").Name, | |
blockMode: true | |
}) | |
} else { | |
if (x.get("FieldItem").Id) { | |
w = new a.Vs.BlockField({ | |
model: x | |
}) | |
} | |
} | |
if (x.get("FieldItem").Id != 180) { | |
p3.rV(w, v.$(".fields"), false) | |
} | |
}, this) | |
}, | |
events: { | |
sortorder: "sortOrder", | |
"click .delete": "deleteSectionBlock" | |
}, | |
render: function (w) { | |
var y = this, | |
x = (y.model.get("Position") - 1), | |
v = w.children(), | |
u; | |
if (x > 0) { | |
u = v.filter("div:nth-child(" + x + ")"); | |
if (u.length) { | |
u.after(y.el) | |
} else { | |
w.append(y.el) | |
} | |
} else { | |
if (v.length) { | |
w.prepend(y.el) | |
} else { | |
w.append(y.el) | |
} | |
} | |
y.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON(), | |
okToEdit: a.Us.getOkToEdit(), | |
hasFields: u.model.hasFields(), | |
displayOnlyFields: u.model.displayOnlyFields() | |
})); | |
_.each(u.model.get("FieldElementItems"), function (w) { | |
u.collection.add(w) | |
}) | |
}) | |
}, | |
sortOrder: function (u, v) { | |
var w = this; | |
u.stopPropagation(); | |
u.preventDefault(); | |
w.model.set({ | |
Position: v | |
}) | |
}, | |
initializeSort: function () { | |
var u = this; | |
u.$(".fields").sortable({ | |
distance: 5, | |
placeholder: "sortable-placeholder", | |
tolerance: "pointer", | |
helper: "clone", | |
appendTo: "body", | |
containment: "parent", | |
update: function (y, B) { | |
var v = $(B.item), | |
A = v.index(), | |
x = null, | |
z = A + 1, | |
w; | |
if (v.hasClass("drag-element")) { | |
if (v.data("type") === "element") { | |
x = v.data("id") | |
} | |
v.remove(); | |
w = new a.Ms.ElementField({ | |
ApplicationFormId: a.Data.ApplicationFormId, | |
ApplicationSectionId: u.model.get("ApplicationSectionId"), | |
SectionItemId: u.model.get("SectionItemId"), | |
ElementItem: { | |
"$type": "clBLL.nOnlineApplication.ElementItem, clBLL", | |
Id: x, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}, | |
FieldItem: { | |
"$type": "clBLL.nOnlineApplication.FieldItem, clBLL" | |
} | |
}); | |
w.save({}, { | |
dataParam: { | |
returnModel: true | |
}, | |
success: function (C, D) { | |
C.set({ | |
Position: z | |
}); | |
u.collection.add(C.toJSON(), { | |
at: A | |
}); | |
u.setSortOrder() | |
} | |
}) | |
} else { | |
u.setSortOrder() | |
} | |
}, | |
start: function (v, w) { | |
$("textarea.as-html").each(function (y, z) { | |
var x = $(z).attr("id"); | |
tinyMCE.execCommand("mceRemoveControl", false, x) | |
}); | |
u.$(".form-section-items").sortable("refresh") | |
}, | |
stop: function (v, w) { | |
$("textarea.as-html").each(function (y, z) { | |
var x = $(z).attr("id"); | |
tinyMCE.execCommand("mceAddControl", false, x) | |
}) | |
} | |
}).mousedown(function () { | |
u.$("input,textarea").blur() | |
}) | |
}, | |
setSortOrder: function () { | |
var u = this; | |
if (u.model.get("FieldBlockItem").Id === 14) { | |
_.each(u.$(".fields").children(), function (w, v) { | |
$(w).trigger("sortorder", [(v + 5)]) | |
}); | |
_.each(u.collection.models, function (v) { | |
if (v.attributes.FieldItem.Id === 180) { | |
v.attributes.Position = 1 | |
} | |
}) | |
} else { | |
_.each(u.$(".fields").children(), function (w, v) { | |
$(w).trigger("sortorder", [(v + 1)]) | |
}) | |
} | |
u.collection.save({ | |
dataParam: { | |
sectionItemId: u.model.get("SectionItemId") | |
} | |
}) | |
}, | |
deleteSectionBlock: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var v = this; | |
p3.showConfirm("Remove Block", "Wait a minute. Are you really sure you want to remove the " + v.model.get("FieldBlockItem").Name + " element from this section?", null, function () { | |
var w = {}; | |
v.model.destroy({ | |
dataParam: w, | |
complete: function () { | |
$("#blocks .blocks-holder").trigger("refreshlibrary"); | |
v.options.parentView.checkSectionItems() | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
a.Vs.SectionItemBlock = Bb.View.extend({ | |
template: "admissions/applicationformsedit.section.item.block.template.html", | |
className: function () { | |
return "form-section-item white-bgc" | |
}, | |
initialize: function (u) { | |
var v = this; | |
v.collection = new a.Cs.BlockFields(); | |
v.parentView = u.parentView; | |
v.collection.bind("add", function (x) { | |
var w; | |
if (x.get("ElementItem").Id) { | |
w = new a.Vs.ElementItem({ | |
model: x, | |
elementName: v.model.get("ElementItem").Name, | |
blockMode: true | |
}) | |
} else { | |
if (x.get("FieldItem").Id) { | |
w = new a.Vs.BlockField({ | |
model: x | |
}) | |
} | |
} | |
if (x.get("FieldItem").Id != 180) { | |
p3.rV(w, v.$(".fields"), false) | |
} | |
}, this) | |
}, | |
events: { | |
sortorder: "sortOrder", | |
"click .edit": "editBlock", | |
"click .edit-payment": "editPaymentBlock", | |
"click .delete": "deleteSectionBlock" | |
}, | |
render: function (w) { | |
var y = this, | |
x = (y.model.get("Position") - 1), | |
v = w.children(), | |
u; | |
if (x > 0) { | |
u = v.filter("div:nth-child(" + x + ")"); | |
if (u.length) { | |
u.after(y.el) | |
} else { | |
w.append(y.el) | |
} | |
} else { | |
if (v.length) { | |
w.prepend(y.el) | |
} else { | |
w.append(y.el) | |
} | |
} | |
y.renderData() | |
}, | |
renderData: function () { | |
var v = this, | |
u; | |
p3.fT(v.template, function (w) { | |
v.$el.html(w({ | |
model: v.model.toJSON(), | |
okToEdit: a.Us.getOkToEdit(), | |
hasFields: v.model.hasFields(), | |
displayOnlyFields: v.model.displayOnlyFields(), | |
allowElements: v.options.allowElements | |
})); | |
u = _.unique(v.model.get("FieldElementItems"), function (x) { | |
return x.FieldElementItemId | |
}); | |
_.each(u, function (x) { | |
v.collection.add(x) | |
}); | |
if (a.Us.getOkToEdit()) { | |
v.initializeSort() | |
} else { | |
if (v.options.locked) { | |
v.initializeSort() | |
} | |
} | |
}) | |
}, | |
refreshData: function (u) { | |
var w = this, | |
v; | |
w.$(".fields").empty(); | |
w.collection.reset(); | |
v = _.unique(u, function (x) { | |
return x.FieldElementItemId | |
}); | |
_.each(v, function (x) { | |
w.collection.add(x) | |
}) | |
}, | |
sortOrder: function (u, v) { | |
var w = this; | |
u.stopPropagation(); | |
u.preventDefault(); | |
w.model.set({ | |
Position: v | |
}) | |
}, | |
initializeSort: function () { | |
var u = this; | |
u.$(".fields").sortable({ | |
distance: 5, | |
placeholder: "sortable-placeholder", | |
tolerance: "pointer", | |
helper: "clone", | |
appendTo: "body", | |
containment: "parent", | |
update: function (y, B) { | |
var v = $(B.item), | |
A = v.index(), | |
x = null, | |
z = A + 1, | |
w; | |
if (v.hasClass("drag-element")) { | |
if (v.data("type") === "element") { | |
x = v.data("id") | |
} | |
v.remove(); | |
w = new a.Ms.ElementField({ | |
ApplicationFormId: a.Data.ApplicationFormId, | |
ApplicationSectionId: u.model.get("ApplicationSectionId"), | |
SectionItemId: u.model.get("SectionItemId"), | |
ElementItem: { | |
"$type": "clBLL.nOnlineApplication.ElementItem, clBLL", | |
Id: x, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}, | |
FieldItem: { | |
"$type": "clBLL.nOnlineApplication.FieldItem, clBLL" | |
} | |
}); | |
w.save({}, { | |
dataParam: { | |
returnModel: true | |
}, | |
success: function (C, D) { | |
C.set({ | |
Position: z | |
}); | |
u.collection.add(C.toJSON(), { | |
at: A | |
}); | |
u.setSortOrder() | |
} | |
}) | |
} else { | |
u.setSortOrder() | |
} | |
}, | |
start: function (v, w) { | |
$("textarea.as-html").each(function (y, z) { | |
var x = $(z); | |
x.blur(); | |
tinyMCE.execCommand("mceRemoveControl", false, x.attr("id")) | |
}); | |
u.$(".form-section-items").sortable("refresh") | |
}, | |
stop: function (v, w) { | |
$("textarea.as-html").each(function (y, z) { | |
var x = $(z).attr("id"); | |
tinyMCE.execCommand("mceAddControl", false, x) | |
}) | |
} | |
}).mousedown(function (v) { | |
u.$("input,textarea").not(".as-html").blur() | |
}) | |
}, | |
setSortOrder: function () { | |
var u = this; | |
if (u.model.get("FieldBlockItem").Id === 14) { | |
_.each(u.$(".fields").children(), function (w, v) { | |
$(w).trigger("sortorder", [(v + 5)]) | |
}); | |
_.each(u.collection.models, function (v) { | |
if (v.attributes.FieldItem.Id === 180) { | |
v.attributes.Position = 1 | |
} | |
}) | |
} else { | |
_.each(u.$(".fields").children(), function (w, v) { | |
$(w).trigger("sortorder", [(v + 1)]) | |
}) | |
} | |
u.collection.save({ | |
dataParam: { | |
sectionItemId: u.model.get("SectionItemId"), | |
returnCollection: true | |
}, | |
success: function (v) { | |
u.refreshData(v) | |
} | |
}) | |
}, | |
editBlock: function (w) { | |
w.stopPropagation(); | |
w.preventDefault(); | |
var y = this, | |
x = "", | |
u, v = $(w.currentTarget).data("id"); | |
switch (v) { | |
case 42: | |
case 44: | |
case 45: | |
case 46: | |
x = "formedit/formedit.block.settings.update.template.html"; | |
break; | |
case 43: | |
x = "formedit/formedit.block.settings.updatehousehold.template.html"; | |
break; | |
case 23: | |
case 63: | |
x = "formedit/formedit.block.settings.paymentplans.template.html"; | |
break; | |
case 25: | |
case 40: | |
y.editSignatureBlock(); | |
break; | |
case 36: | |
x = "formedit/formedit.block.settings.interests.template.html"; | |
break; | |
case 38: | |
x = "formedit/formedit.block.settings.address.template.html"; | |
break; | |
case 72: | |
y.editRatingMatrixBlock(); | |
break; | |
default: | |
if (y.model.get("FieldBlockItem").BlockMultipleInd) { | |
x = "formedit/formedit.block.settings.multiple.template.html" | |
} | |
} | |
if (x) { | |
u = new a.Vs.BlockEdit({ | |
template: x, | |
model: y.model | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(u, p3.Layout.Containers.Modal, true) | |
} | |
}, | |
editPaymentBlock: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
$(".workspace-sidebar-header").trigger("editpayment", { | |
FieldBlockId: this.model.get("FieldBlockItem").Id | |
}) | |
}, | |
editSignatureBlock: function () { | |
var v = this, | |
u; | |
a.Data.FormModel.once("sync", function () { | |
if (v.parentView) { | |
v.parentView.renderDataDeferred() | |
} | |
}, v); | |
u = q.Vs.Modal2.extend({ | |
template: "formedit/formedit.block.settings.esignature.template.html", | |
model: a.Data.FormModel, | |
variables: { | |
isContractForm: a.Data.FormType.IsContractForm | |
}, | |
size: "md", | |
events: { | |
"click button.delete": "deleteModel", | |
"click .show-agreement": "showAgreement" | |
}, | |
modalRendered: function (x) { | |
var w = this; | |
q.Us.showHtmlEditor(w, "tinyeditor") | |
}, | |
modalUpdate: function (z) { | |
var y = this, | |
w = z.eventCurrentTarget, | |
x = y.$(".agreement-holder"); | |
if (w.children("input").prop("name") === "ESigAgreement") { | |
if (w.children("input").is(":checked")) { | |
x.show() | |
} else { | |
x.hide() | |
} | |
} | |
}, | |
modalSave: function () { | |
var x = this, | |
w = x.$(".agreement-holder .controls"); | |
if (x.model.get("ESigAgreement")) { | |
$.each(x.$(".tinyeditor"), function () { | |
var y = {}; | |
y[this.id] = tinyMCE.get(this.id).save(); | |
x.model.set(y) | |
}); | |
if (t.isEmptier(x.model.get("ESigAgreementText"))) { | |
w.addClass("box-validate"); | |
return false | |
} | |
w.removeClass("box-validate") | |
} else { | |
x.model.set({ | |
ESigAgreementText: "" | |
}); | |
w.removeClass("box-validate") | |
} | |
}, | |
deleteModel: function (x) { | |
x.stopPropagation(); | |
x.preventDefault(); | |
var B = this, | |
A = B.$("#modal-form"), | |
z = B.$("#modal-confirm"), | |
w, y; | |
y = q.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.confirm.html", | |
model: a.Data.FormModel, | |
subModal: true, | |
variables: { | |
title: "Remove Block", | |
errorText: "Wait a minute. Are you really sure you want to remove the Signature block from this section?", | |
cancelText: "Cancel", | |
confirmText: "Confirm" | |
}, | |
modalSave: function () { | |
v.model.destroy({ | |
dataParam: { | |
applicationFormId: B.model.get("ApplicationFormId"), | |
deleteSectionItems: true | |
}, | |
success: function () { | |
if ($("#blocks .blocks-holder").length > 0) { | |
$("#blocks .blocks-holder").trigger("refreshlibrary") | |
} | |
}, | |
error: function () { | |
p3.displayError("Error deleting block.") | |
} | |
}); | |
p3.Layout.Containers.Modal.modal("hide"); | |
return false | |
} | |
}); | |
w = new y(); | |
A.hide(); | |
z.show(); | |
p3.rV(w, z, true) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new u(), p3.Layout.Containers.Modal, true) | |
}, | |
editRatingMatrixBlock: function () { | |
var w = this, | |
v = w.model.get("FieldBlockItem").RatingMatrixId, | |
u = { | |
RatingMatrix: { | |
data: new n.Cs.Dictionary(), | |
dataParams: { | |
name: "Rating Matrix", | |
id: h.DictionaryData.RatingMatrix.id, | |
inputParam: "@oa_application_form_id=" + w.model.get("ApplicationFormId") + "[i]" | |
} | |
} | |
}; | |
if (v) { | |
u.RatingMatrix.dataParams.inputParam += ",@rating_matrix_id=" + v + "[i]" | |
} | |
n.Us.Fetch(u, function (x, z, y) { | |
if (z) { | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.BlockEdit({ | |
template: "formedit/formedit.block.settings.ratingMatrix.template.html", | |
model: w.model, | |
dictionaries: x | |
}), p3.Layout.Containers.Modal, true) | |
} else { | |
p3.displayError("Error retrieving rating matrix list") | |
} | |
}) | |
}, | |
deleteSectionBlock: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var v = this; | |
p3.showConfirm("Remove Block", "Wait a minute. Are you really sure you want to remove the " + v.model.get("FieldBlockItem").Name + " block from this section?", null, function () { | |
v.model.destroy({ | |
dataParam: {}, | |
complete: function () { | |
$("#blocks .blocks-holder").trigger("refreshlibrary"); | |
v.options.parentView.checkSectionItems() | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
a.Vs.BlockField = Bb.View.extend({ | |
tagName: function () { | |
return "tr" | |
}, | |
className: "form-greybox", | |
initialize: function (u) { | |
var v = this; | |
Bb.Validation.bind(v, { | |
forceUpdate: true, | |
selector: "id" | |
}) | |
}, | |
events: { | |
sortorder: "sortOrder", | |
"click .radio-input": "updateModel", | |
"change input": "updateModel", | |
"click #AllowDdlbSelection": "ddlbSelections", | |
"click .options": "fieldOptions" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
if (v.model.get("FieldItem").Id === 253) { | |
n.Us.Fetch({ | |
FormFieldType: new a.Cs.FormFieldType() | |
}, function (w, y, x) { | |
v.dictionaries = {}; | |
v.dictionaries.FormFieldType = w.FormFieldType.toJSON(); | |
v.renderData() | |
}) | |
} else { | |
v.renderData() | |
} | |
}, | |
renderData: function () { | |
var u = this; | |
if (u.model.get("FieldItem").Id === 250) { | |
u.template = "admissions/applicationformsedit.section.item.block.field.interests.template.html" | |
} else { | |
u.template = "admissions/applicationformsedit.section.item.block.field.template.html" | |
} | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON(), | |
okToEdit: a.Us.getOkToEdit(), | |
sectionLocked: a.Us.isSectionLocked(), | |
formType: a.Data.FormType, | |
dictionaries: u.dictionaries | |
})) | |
}) | |
}, | |
sortOrder: function (u, v) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var w = this; | |
w.model.set({ | |
Position: v | |
}) | |
}, | |
updateModel: function (v) { | |
v.stopPropagation(); | |
v.preventDefault(); | |
var z = this, | |
x = $(v.currentTarget), | |
w = x.prop("id"), | |
y, u = {}; | |
z.model.defaults = $.extend(true, {}, z.model.attributes); | |
if (x.hasClass("radio-input")) { | |
x.siblings().removeClass("active"); | |
x.addClass("active"); | |
y = x.prop("value"); | |
w = $(x).parent().prop("id") | |
} else { | |
y = x.prop("value") | |
} | |
if (!_.contains(w, ".")) { | |
u[w] = y; | |
z.model.set(u) | |
} else { | |
a.Us.setPropByString(z.model.attributes, w, y); | |
if (z.model.isValid(w)) { | |
Bb.Validation.callbacks.valid(z, w, "id") | |
} else { | |
Bb.Validation.callbacks.invalid(z, w, "Entered value contains an error.", "id") | |
} | |
} | |
if (z.model.isValid(true)) { | |
z.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(z.model.attributes, function (C, A, B) { | |
a.Us.recursiveFunction(z, C, A, B, "") | |
}); | |
z.model.save({}, { | |
dataParam: z.options.dataParam, | |
success: function (A, B) { | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function (B, A) { | |
p3.displayError("Error saving field") | |
} | |
}) | |
} | |
}, | |
ddlbSelections: function (u) { | |
u.preventDefault(); | |
var w = this, | |
v = ""; | |
if (w.model.get("FieldItem").Id === 250) { | |
v = "Interests" | |
} else { | |
v = w.model.get("FieldItem").Name | |
} | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.DdlbSelections({ | |
model: w.model, | |
variables: { | |
name: v | |
} | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
fieldOptions: function (u) { | |
u.preventDefault(); | |
var v = this; | |
v.modal2Extend = q.Vs.Modal2.extend({ | |
template: "formedit/formedit.main.section.item.formfield.options.template.html", | |
model: v.model, | |
dictionaries: v.dictionaries, | |
dataParam: { | |
returnModel: true | |
}, | |
events: { | |
"click .option-add": "optionAdd", | |
"click .option-delete": "optionDelete" | |
}, | |
modalRendered: function () { | |
var w = this; | |
if (w.$("table.options .option").length === 1) { | |
w.$(".option-delete").hide() | |
} | |
w.updateDescription(w.model.get("FieldItem").UIType); | |
w.updateOptions(w.model.get("FieldItem").UIType); | |
w.setFocus(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
modalUpdate: function (x) { | |
var w = this; | |
if (x.eventCurrentTarget.hasClass("option")) { | |
return false | |
} | |
if (x.eventCurrentTarget.attr("name") === "FieldItem.UIType") { | |
w.updateDescription(x.eventCurrentTarget.val()); | |
w.updateOptions(x.eventCurrentTarget.val()) | |
} | |
}, | |
modalSave: function (x) { | |
var w = this, | |
y = []; | |
_.each(w.$("table.options .option"), function (A) { | |
var z = $(A); | |
if (!t.isEmptier(z.val())) { | |
y.push({ | |
dd_id: z.data("id") !== 0 ? z.data("id") : null, | |
dd_description: z.val(), | |
dd_selected: true | |
}) | |
} | |
}); | |
q.Us.setPropByString(w.model.toJSON(), "FieldItem.LookUpList", y) | |
}, | |
modalSavedSuccess: function (w) { | |
v.renderData() | |
}, | |
optionAdd: function (w) { | |
var x = this; | |
p3.fT("formedit/formedit.main.section.item.formfield.option.template.html", function (y) { | |
x.$("table.options tbody").append(y({})); | |
if (x.$("table.options .option").length > 1) { | |
x.$(".option-delete").show() | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
optionDelete: function (w) { | |
var x = this; | |
$(w.currentTarget).parent().parent().remove(); | |
if (x.$("table.options .option").length === 1) { | |
x.$(".option-delete").hide() | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
updateDescription: function (y) { | |
var x = this, | |
w = _.findWhere(x.dictionaries.FormFieldType, { | |
dd_data: y | |
}); | |
if (t.isEmptier(w.Description)) { | |
x.$(".description").hide() | |
} else { | |
x.$(".description").html(w.Description); | |
x.$(".description").show() | |
} | |
}, | |
updateOptions: function (x) { | |
var w = this; | |
if (x === "T" || x === "TA" || x === "RB") { | |
w.$(".options-holder").hide() | |
} else { | |
w.$(".options-holder").show() | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new v.modal2Extend(), p3.Layout.Containers.Modal, true) | |
} | |
}); | |
a.Vs.DdlbSelections = q.Vs.Modal2.extend({ | |
template: "admissions/applicationformsedit.ddlb.selections.template.html", | |
events: { | |
"click #select-all": "selectAll", | |
"click td .btn": "setSelectAll" | |
}, | |
modalRendered: function () { | |
this.setSelectAll() | |
}, | |
modalUpdate: function () { | |
var u = this; | |
return u.model.get("FieldItem").Id === 250 | |
}, | |
selectAll: function (v) { | |
var w = this, | |
u = $(v.currentTarget); | |
_.defer(function () { | |
var x = u.hasClass("active"); | |
w.$("td .btn").toggleClass("active", x) | |
}) | |
}, | |
setSelectAll: function () { | |
var u = this; | |
_.defer(function () { | |
var v = (u.$("td .btn").not(".active").length === 0); | |
u.$("#select-all").toggleClass("active", v) | |
}) | |
}, | |
modalSave: function () { | |
var v = this, | |
u = v.model.get("FieldItem").LookUpList; | |
v.$("td .btn").each(function (z, x) { | |
var w = $(x), | |
y = w.data("id"), | |
A = _.findWhere(u, { | |
dd_id: y | |
}); | |
if (A) { | |
A.dd_selected = w.hasClass("active") ? 1 : 0 | |
} | |
}) | |
} | |
}); | |
a.Vs.Footer = Bb.View.extend({ | |
template: "formedit/formedit.footer.template.html", | |
events: { | |
"click .preview": "renderPreview", | |
"click .generate": "showGenerateModal" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
applicationId: a.Data.ApplicationFormId, | |
formType: a.Data.FormType, | |
archivedInd: u.options.layoutView.ArchivedInd | |
})) | |
}) | |
}, | |
renderPreview: function (u) { | |
u.preventDefault(); | |
u.stopPropagation(); | |
var v = h.FormType, | |
w = a.Us.getSelectedPersona().Description, | |
x = p3.Config.RootPath + w; | |
if (a.Data.FormType.Value == v.APPLICATION.Value) { | |
x += "#application/" + a.Data.ApplicationFormId + "/keyid=preview" | |
} else { | |
if (a.Data.FormType.IsContractForm) { | |
x += "#contract/" + a.Data.ApplicationFormId + "/keyid=0" | |
} else { | |
if (a.Data.FormType.Value == v.INQUIRY.Value) { | |
x += "#inquiry/" + a.Data.ApplicationFormId + "/keyid=preview" | |
} else { | |
if (a.Data.FormType.Value == v.RECOMMENDATION.Value || _.contains([v.ACKNOWLEDGEMENT_PERMISSION, v.EMERGENCY_CONTACTS, v.PROFILE_UPDATES, v.BLANK_FORM, v.MEDICAL_FORM], a.Data.FormType)) { | |
x += "#schoolform/" + a.Data.ApplicationFormId + "/keyid=preview" | |
} | |
} | |
} | |
} | |
if (x) { | |
window.open(x, "_blank") | |
} | |
}, | |
showGenerateModal: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new a.Vs.GenerateContracts({ | |
model: a.Data.FormModel | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}); | |
a.Vs.ContractPaymentPlans = Bb.View.extend({ | |
template: "contracts/contracts.contract.edit.paymentplans.template.html", | |
className: "element-sub-block", | |
initialize: function (u) { | |
this.elementModel = u.elementModel | |
}, | |
events: { | |
"click .element-select-btn:not(.disabled)": "selectPlans" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
n.Us.Fetch({ | |
ADMTuitionInsuranceTypes: { | |
data: new n.Cs.Dictionary(), | |
dataParams: h.DictionaryData.ADMTuitionInsuranceTypes | |
} | |
}, function (w, y, x) { | |
v.dictionaries = {}; | |
v.dictionaries = w; | |
v.renderData() | |
}) | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
plans: u.collection.toJSON(), | |
okToEdit: a.Us.getOkToEdit(), | |
sectionLocked: a.Us.isSectionLocked(), | |
dictionaries: u.dictionaries, | |
formType: a.Data.FormType.Value | |
})); | |
g.Us.initialize(".date-input", { | |
yearRange: "-10:+10" | |
}) | |
}) | |
}, | |
refreshData: function () { | |
var u = this; | |
u.collection.fetch({ | |
data: { | |
formId: a.Data.ApplicationFormId | |
}, | |
success: function () { | |
u.renderData() | |
}, | |
error: function () { | |
p3.displayError("Error loading contract plan list") | |
} | |
}) | |
}, | |
selectPlans: function (u) { | |
u.preventDefault(); | |
var v = this; | |
if (a.Data.FormType === h.FormType.SMART_TUITION_CONTRACT) { | |
v.showSmartPlansModal(u) | |
} else { | |
if (a.Data.FormType === h.FormType.TMS_CONTRACT) { | |
v.showTmsPlansModal(u) | |
} else { | |
v.showPlansModal(u) | |
} | |
} | |
}, | |
showPlansModal: function (v) { | |
v.preventDefault(); | |
var w = this, | |
u = new a.Cs.ContractPaymentPlansSelect(); | |
u.fetch({ | |
data: { | |
formId: a.Data.ApplicationFormId | |
}, | |
success: function () { | |
w.modal2Extend = q.Vs.Modal2.extend({ | |
template: "contracts/contracts.contract.edit.paymentplans.edit.template.html", | |
collection: u, | |
disableValidation: true, | |
variables: { | |
hasOnAccount: a.Data.HasOnAccount | |
}, | |
events: { | |
"click #select-all": "selectAll" | |
}, | |
modalRendered: function (y) { | |
var x = this; | |
x.collection.bind("add", function (z) { | |
var A = new a.Vs.PaymentPlan({ | |
model: z, | |
selector: x.selector, | |
dictionaries: w.dictionaries | |
}); | |
p3.rV(A, x.$(".ui-sortable"), false) | |
}, x); | |
x.collection.each(function (z) { | |
var A = new a.Vs.PaymentPlan({ | |
model: z, | |
selector: x.selector, | |
dictionaries: w.dictionaries | |
}); | |
p3.rV(A, x.$(".ui-sortable"), false) | |
}) | |
}, | |
modalUpdate: function (x) { | |
if (x.eventCurrentTarget.attr("name") === "Selected") { | |
return false | |
} | |
if (x.eventCurrentTarget.attr("name") === "PaymentPlan.NumberOfPayments") { | |
return false | |
} | |
if (x.eventCurrentTarget.attr("name") === "PaymentPlan.TuitionInsuranceCode") { | |
return false | |
} | |
if (x.eventCurrentTarget.attr("name") === "ExpireDate") { | |
return false | |
} | |
if (x.eventCurrentTarget.hasClass("disabled")) { | |
return false | |
} | |
}, | |
saveModel: function () { | |
var y = this, | |
x = true; | |
x = _.every(y.collection.models, function (z) { | |
return z.isValid(true) | |
}); | |
if (x) { | |
y.collection.save({ | |
dataParam: { | |
formId: a.Data.ApplicationFormId | |
}, | |
success: function (z) { | |
w.refreshData(); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function (z) { | |
w.$(".save").button("reset") | |
} | |
}) | |
} | |
return false | |
}, | |
selectAll: function (x) { | |
x.preventDefault(); | |
var y = this; | |
y.$('[name="Selected"]:not(.active)').trigger("selectall") | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new w.modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
error: function () { | |
p3.displayError("Error loading contract payment plans") | |
} | |
}) | |
}, | |
showSmartPlansModal: function (u) { | |
var w = this, | |
v; | |
v = q.Vs.Modal2.extend({ | |
template: "contracts/contracts.contract.edit.billingsystem.plans.edit.template.html", | |
collection: new a.Cs.SmartPaymentPlansSelect(), | |
events: { | |
"click #select-all": "selectAll" | |
}, | |
dataParam: { | |
formId: a.Data.ApplicationFormId | |
}, | |
modalRendered: function (y) { | |
var x = this; | |
x.collection.fetch({ | |
cache: false, | |
data: { | |
formId: a.Data.ApplicationFormId | |
}, | |
success: function (z, A) { | |
x.collection.each(function (C) { | |
var B = new a.Vs.BillingSystemPlan({ | |
model: C, | |
selector: x.selector, | |
dictionaries: w.dictionaries | |
}); | |
p3.rV(B, x.$("tbody"), false) | |
}) | |
}, | |
error: function (z, B, A) { | |
if (B.responseText.indexOf("SMART-TUITION-SETTINGS-NOTFOUND") >= 0) { | |
j.ErrorBox("Smart Tuition settings are not available for this school year.", x.$(".modal-body"), false) | |
} else { | |
if (B.responseText.indexOf("SMART-TUITION-PLANS-NOTFOUND") >= 0) { | |
j.ErrorBox("Smart Tuition payment plans are not available for this school year.", x.$(".modal-body"), false) | |
} else { | |
j.ErrorBox("Error retrieving Smart Tuition payment plan list.", x.$(".modal-body"), false) | |
} | |
} | |
}, | |
complete: function (z, B, A) { | |
x.$(".spinner").hide() | |
} | |
}) | |
}, | |
modalUpdate: function () { | |
return false | |
}, | |
saveModel: function () { | |
var A = this, | |
z = true, | |
y = A.$(".save"), | |
x = A.$(".cancel"); | |
y.button("loading").prop("disabled", true); | |
x.prop("disabled", true); | |
z = _.every(A.collection.models, function (B) { | |
return B.isValid(true) | |
}); | |
if (z) { | |
A.collection.save({ | |
dataParam: { | |
formId: a.Data.ApplicationFormId | |
}, | |
success: function (B) { | |
w.refreshData(); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
complete: function () { | |
y.button("reset").prop("disabled", false); | |
x.prop("disabled", false) | |
} | |
}) | |
} | |
return false | |
}, | |
selectAll: function (x) { | |
x.preventDefault(); | |
var y = this; | |
y.$('[name="Selected"]:not(.active)').trigger("selectall") | |
} | |
}); | |
q.Us.renderModal(new v()) | |
}, | |
showTmsPlansModal: function (u) { | |
var w = this, | |
v; | |
v = q.Vs.Modal2.extend({ | |
template: "contracts/contracts.contract.edit.billingsystem.plans.edit.template.html", | |
collection: new a.Cs.TmsPaymentPlansSelect(), | |
events: { | |
"click #select-all": "selectAll" | |
}, | |
dataParam: { | |
formId: a.Data.ApplicationFormId | |
}, | |
variables: { | |
formTypeId: a.Data.FormType.Value | |
}, | |
modalRendered: function (y) { | |
var x = this; | |
x.collection.fetch({ | |
cache: false, | |
data: { | |
formId: a.Data.ApplicationFormId | |
}, | |
success: function (z, A) { | |
x.collection.each(function (C) { | |
var B = new a.Vs.BillingSystemPlan({ | |
model: C, | |
selector: x.selector, | |
dictionaries: w.dictionaries, | |
variables: { | |
formTypeId: a.Data.FormType.Value, | |
selectedTuitionInsuranceTypeDesc: w.dictionaries.ADMTuitionInsuranceTypes.find(function (D) { | |
return D.dd_id === C.attributes.PaymentPlan.TuitionInsuranceCode | |
}).dd_description | |
} | |
}); | |
p3.rV(B, x.$("tbody"), false) | |
}) | |
}, | |
error: function (z, B, A) { | |
j.ErrorBox("Error retrieving Blackbaud Tuition Management payment plan list.", x.$(".modal-body"), false) | |
}, | |
complete: function (z, B, A) { | |
x.$(".spinner").hide() | |
} | |
}) | |
}, | |
modalUpdate: function () { | |
return false | |
}, | |
saveModel: function () { | |
var A = this, | |
z = true, | |
y = A.$(".save"), | |
x = A.$(".cancel"); | |
y.button("loading").prop("disabled", true); | |
x.prop("disabled", true); | |
z = _.every(A.collection.models, function (B) { | |
return B.isValid(true) | |
}); | |
if (z) { | |
A.collection.save({ | |
dataParam: { | |
formId: a.Data.ApplicationFormId | |
}, | |
success: function (B) { | |
w.refreshData(); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
complete: function () { | |
y.button("reset").prop("disabled", false); | |
x.prop("disabled", false) | |
} | |
}) | |
} | |
return false | |
}, | |
selectAll: function (x) { | |
x.preventDefault(); | |
var y = this; | |
y.$('[name="Selected"]:not(.active)').trigger("selectall") | |
} | |
}); | |
q.Us.renderModal(new v()) | |
} | |
}); | |
a.Vs.PaymentPlan = Bb.View.extend({ | |
template: "contracts/contracts.contract.edit.paymentplan.edit.template.html", | |
tagName: "tr", | |
initialize: function (u) { | |
var v = this; | |
Bb.Validation.bind(v, { | |
forceUpdate: true, | |
selector: u.selector | |
}) | |
}, | |
events: { | |
'change input[name="ExpireDate"]': "updateModel", | |
'change input[name="PaymentPlan.NumberOfPayments"]': "updateModel", | |
'change select[name="PaymentPlan.TuitionInsuranceCode"]': "updateModel", | |
"mouseover td.inline-edit": "inlineEditOver", | |
"mouseout td.inline-edit": "inlineEditOut", | |
"click .inline-edit": "showInlineEdit", | |
"blur .inline-edit .edit input": "hideInlineEdit", | |
"blur .inline-edit .edit select": "hideInlineEdit", | |
selectall: "selectAll", | |
'click [name="Selected"]': "togglePlan" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON(), | |
dictionaries: u.options.dictionaries | |
})); | |
g.Us.initialize(".date-input", { | |
yearRange: "-10:+10" | |
}); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
updateModel: function (u) { | |
var v = this; | |
q.Us.updateModel(u, v.model, "name") | |
}, | |
inlineEditOver: function (u) { | |
$(u.currentTarget).find("i").show() | |
}, | |
inlineEditOut: function (u) { | |
$(u.currentTarget).find("i").hide() | |
}, | |
showInlineEdit: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var v = $(u.currentTarget); | |
v.find(".display").hide(); | |
v.find(".edit").show(); | |
if (v.find(".edit input").length > 0) { | |
v.find(".edit input").focus() | |
} else { | |
v.find(".edit select").focus() | |
} | |
}, | |
hideInlineEdit: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var z = this, | |
x = $(u.currentTarget), | |
w = x.attr("name"), | |
y = x.val(), | |
v; | |
q.Us.setPropByString(z.model.toJSON(), w, y); | |
if (z.model.isValid(w)) { | |
Bb.Validation.callbacks.valid(z, w, "name"); | |
if (w === "PaymentPlan.TuitionInsuranceCode") { | |
for (v = 0; v < z.options.dictionaries.ADMTuitionInsuranceTypes.length; v++) { | |
if (y == z.options.dictionaries.ADMTuitionInsuranceTypes[v].dd_id) { | |
y = z.options.dictionaries.ADMTuitionInsuranceTypes[v].dd_description; | |
break | |
} | |
} | |
} | |
x.parent().siblings(".display").html(y + '<i class="p3icon-edit edit-cell-icon pull-right" style="display: none;"></i>'); | |
x.parent().siblings(".display").show(); | |
x.parent().hide() | |
} else { | |
Bb.Validation.callbacks.invalid(z, w, k.P3.RequiredInfoNotEntered, "name"); | |
x.parent().siblings(".display i").hide() | |
} | |
}, | |
selectAll: function (u) { | |
var v = this; | |
v.model.set({ | |
Selected: true | |
}); | |
v.$('[name="Selected"]').addClass("active"); | |
v.$('[name="ExpireDate"]').prop("disabled", false) | |
}, | |
togglePlan: function (w) { | |
var x = this, | |
v = $(w.currentTarget), | |
u; | |
_.defer(function () { | |
x.model.set({ | |
Selected: v.hasClass("active") | |
}); | |
u = x.$('[name="ExpireDate"]'); | |
if (x.model.get("Selected")) { | |
u.prop("disabled", false) | |
} else { | |
x.model.set({ | |
ExpireDate: null | |
}); | |
u.val(""); | |
u.prop("disabled", true) | |
} | |
}) | |
} | |
}); | |
a.Vs.BillingSystemPlan = Bb.View.extend({ | |
template: "contracts/contracts.contract.edit.billingsystem.plan.edit.template.html", | |
tagName: "tr", | |
events: { | |
'change input[name="ExpireDate"]': "updateModel", | |
"mouseover td.inline-edit": "inlineEditOver", | |
"mouseout td.inline-edit": "inlineEditOut", | |
"click .inline-edit": "showInlineEdit", | |
"blur .inline-edit .edit input": "hideInlineEdit", | |
"blur .inline-edit .edit select": "hideInlineEdit", | |
selectall: "selectAll", | |
'click [name="Selected"]': "togglePlan" | |
}, | |
initialize: function (u) { | |
var v = this; | |
Bb.Validation.bind(v, { | |
forceUpdate: true, | |
selector: u.selector | |
}) | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON(), | |
dictionaries: u.options.dictionaries, | |
okToEdit: a.Us.getOkToEdit(), | |
variables: u.options.variables | |
})); | |
g.Us.initialize(".date-input", { | |
yearRange: "-10:+10" | |
}); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
updateModel: function (u) { | |
var v = this; | |
q.Us.updateModel(u, v.model, "name") | |
}, | |
inlineEditOver: function (u) { | |
$(u.currentTarget).find("i").show() | |
}, | |
inlineEditOut: function (u) { | |
$(u.currentTarget).find("i").hide() | |
}, | |
showInlineEdit: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var v = $(u.currentTarget); | |
v.find(".display").hide(); | |
v.find(".edit").show(); | |
if (v.find(".edit input").length > 0) { | |
v.find(".edit input").focus() | |
} else { | |
v.find(".edit select").focus() | |
} | |
}, | |
hideInlineEdit: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var z = this, | |
x = $(u.currentTarget), | |
w = x.attr("name"), | |
y = x.val(), | |
v; | |
q.Us.setPropByString(z.model.toJSON(), w, y); | |
if (z.model.isValid(w)) { | |
Bb.Validation.callbacks.valid(z, w, "name"); | |
if (w === "PaymentPlan.TuitionInsuranceCode") { | |
for (v = 0; v < z.options.dictionaries.ADMTuitionInsuranceTypes.length; v++) { | |
if (y == z.options.dictionaries.ADMTuitionInsuranceTypes[v].dd_id) { | |
y = z.options.dictionaries.ADMTuitionInsuranceTypes[v].dd_description; | |
break | |
} | |
} | |
} | |
x.parent().siblings(".display").html(y + '<i class="p3icon-edit edit-cell-icon pull-right" style="display: none;"></i>'); | |
x.parent().siblings(".display").show(); | |
x.parent().hide() | |
} else { | |
Bb.Validation.callbacks.invalid(z, w, k.P3.RequiredInfoNotEntered, "name"); | |
x.parent().siblings(".display i").hide() | |
} | |
}, | |
selectAll: function (u) { | |
var v = this; | |
v.model.set({ | |
Selected: true | |
}); | |
v.$('[name="Selected"]').addClass("active"); | |
if (a.Data.FormType === h.FormType.TMS_CONTRACT) { | |
v.$('[name="ExpireDate"]').prop("disabled", false) | |
} | |
}, | |
togglePlan: function (w) { | |
var x = this, | |
v = $(w.currentTarget), | |
u; | |
_.defer(function () { | |
x.model.set({ | |
Selected: v.hasClass("active") | |
}); | |
if (a.Data.FormType === h.FormType.TMS_CONTRACT) { | |
u = x.$('[name="ExpireDate"]'); | |
if (x.model.get("Selected")) { | |
u.prop("disabled", false) | |
} else { | |
x.model.set({ | |
ExpireDate: null | |
}); | |
u.val(""); | |
u.prop("disabled", true) | |
} | |
} | |
}) | |
} | |
}); | |
a.Vs.FeeSchedule = Bb.View.extend({ | |
template: "contracts/contracts.feeschedule.template.html", | |
className: "fee-schedule", | |
initialize: function (u) { | |
this.ElementModel = u.elementModel; | |
this.Containers = {} | |
}, | |
events: { | |
"click .btn-approve:not(.disabled)": "updateFinancialAid", | |
"click .btn-denied:not(.disabled)": "updateFinancialAid" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
appForm: a.Data.FormModel.toJSON(), | |
feeTypes: u.collection.toJSON(), | |
okToEdit: a.Us.getOkToEdit(), | |
sectionLocked: a.Us.isSectionLocked(), | |
isBBTMContract: (a.Data.FormType === h.FormType.TMS_CONTRACT), | |
BBTMLink: a.Us.GetBBTMLinkForAuthorizedUsers | |
})); | |
u.collection.each(function (x) { | |
var w = new a.Cs.FeeSchedule([], { | |
applicationFormId: a.Data.ApplicationFormId, | |
feeTypeId: x.id | |
}); | |
w.fetch({ | |
data: { | |
applicationFormId: a.Data.ApplicationFormId, | |
feeTypeId: w.feeTypeId | |
}, | |
success: function () { | |
var A = "#fee-type" + x.id, | |
y = u.$(A), | |
z = new a.Vs.FeeTypeList({ | |
collection: w, | |
feeType: x | |
}); | |
u.Containers[A] = y; | |
p3.rV(z, u.Containers[A], false) | |
}, | |
error: function () { | |
p3.displayError("Error loading fees") | |
} | |
}) | |
}) | |
}) | |
}, | |
updateFinancialAid: function (v) { | |
v.preventDefault(); | |
var u = $(v.currentTarget), | |
w = u.hasClass("btn-approve"); | |
w = s.stringToBoolean(u.children("input").prop("value")); | |
a.Data.FormModel.set("FinancialAidVisible", w); | |
a.Data.FormModel.save({}, { | |
error: function () { | |
p3.displayError("Error saving contract") | |
} | |
}) | |
} | |
}); | |
a.Vs.FeeTypeList = Bb.View.extend({ | |
className: "element-sub-block", | |
template: "contracts/contracts.feeschedule.feelist.template.html", | |
initialize: function (u) { | |
this.feeType = u.feeType; | |
this.elementModel = u.elementModel | |
}, | |
events: { | |
"click .element-select-btn:not(.disabled)": "addEditFee", | |
"click .edit-fee:not(.disabled)": "addEditFee", | |
"click .delete-fee:not(.disabled)": "deleteFee" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
feeType: u.feeType.toJSON(), | |
fees: u.collection.toJSON(), | |
okToEdit: a.Us.getOkToEdit(), | |
formTypeId: a.Data.FormType.Value, | |
sectionLocked: a.Us.isSectionLocked(), | |
appForm: a.Data.FormModel.toJSON(), | |
isBBTMContract: (a.Data.FormType === h.FormType.TMS_CONTRACT), | |
BBTMLink: a.Us.GetBBTMLinkForAuthorizedUsers | |
})); | |
u.initializeSort() | |
}) | |
}, | |
deleteFee: function (v) { | |
v.preventDefault(); | |
var y = this, | |
u = $(v.currentTarget), | |
w = u.closest("tr").data("id"), | |
x = y.collection.get(w); | |
if (x) { | |
p3.showConfirm("Delete Fee", "Are you sure you want to remove this " + x.get("Name") + " fee from the fee schedule?", null, function () { | |
x.destroy({ | |
success: function () { | |
y.renderData() | |
}, | |
error: function () { | |
p3.displayError("Error removing fee") | |
} | |
}) | |
}) | |
} | |
}, | |
addEditFee: function (v) { | |
v.preventDefault(); | |
var z = this, | |
u = $(v.currentTarget), | |
x = u.hasClass("element-select-btn"), | |
y, w; | |
if (!x) { | |
w = u.closest("tr").data("id") | |
} | |
z.getModalType(w, function (A) { | |
if (A === "onboard") { | |
y = new a.Ms.Fee(); | |
y.fetch({ | |
data: { | |
id: w, | |
applicationFormId: a.Data.ApplicationFormId, | |
feeTypeId: z.feeType.id, | |
includeEligibleGrades: true | |
}, | |
success: function () { | |
z.showFeeModal(y) | |
}, | |
error: function () { | |
p3.displayError("Error loading fee") | |
} | |
}) | |
} else { | |
if (A === "smart") { | |
z.showSmartFeeModal() | |
} else { | |
if (A === "tms") { | |
z.showTMSFeeModal() | |
} | |
} | |
} | |
}) | |
}, | |
getModalType: function (v, u) { | |
var w = this; | |
if (v || a.Data.FormType === h.FormType.CONTRACT) { | |
u("onboard") | |
} else { | |
if (a.Data.FormType === h.FormType.TMS_CONTRACT) { | |
u("tms") | |
} else { | |
if ((w.feeType.id !== h.ContractFeeType.TUITION.Value) || (w.feeType.id === h.ContractFeeType.TUITION.Value && w.collection.hasTuitionFees())) { | |
u("smart") | |
} else { | |
w.getUsesTuitionFees(function (x) { | |
if (!w.collection.length) { | |
u(x ? "smart" : "onboard") | |
} else { | |
if (x && w.collection.hasOnboardTuition()) { | |
w.modal2Extend = q.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.message.html", | |
variables: { | |
title: "Incorrect Tuition Setup", | |
errorText: "This form has been setup with EMS tuition amounts, but should be using tuition fees.<br>Please remove all current EMS tuition entries, then click Add to add tuition fees from Smart." | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new w.modal2Extend(), p3.Layout.Containers.Modal, true) | |
} else { | |
u(x ? "smart" : "onboard") | |
} | |
} | |
}) | |
} | |
} | |
} | |
}, | |
getUsesTuitionFees: function (u) { | |
if (a.Data.FormType === h.FormType.CONTRACT) { | |
u(false) | |
} else { | |
if (a.Data.FormType === h.FormType.TMS_CONTRACT) { | |
u(true) | |
} else { | |
var v = new a.Ms.SmartTuitionFee(); | |
v.fetch({ | |
data: { | |
schoolYearLabel: a.Data.FormModel.get("SchoolYear") | |
}, | |
success: function (w, x) { | |
u(x.HasTuitionFees) | |
}, | |
error: function () { | |
p3.displayError("Error loading fees") | |
} | |
}) | |
} | |
} | |
}, | |
showFeeModal: function (v) { | |
var w = this, | |
u; | |
u = q.Vs.Modal2.extend({ | |
template: "contracts/contracts.contract.edit.fee.edit.template.html", | |
model: v, | |
selector: "id", | |
variables: { | |
feeType: w.feeType.toJSON(), | |
isNew: v.isNew() | |
}, | |
modalRendered: function () { | |
var x = this; | |
g.Us.initialize(".date-input", { | |
yearRange: "-2:+2" | |
}); | |
x.setFocus() | |
}, | |
modalUpdated: function (x) { | |
var y = this, | |
z = false; | |
_.defer(function () { | |
_.each(y.$(".grades-group button.active"), function (A) { | |
if ($(A).data("smart")) { | |
z = true | |
} | |
}); | |
if (z) { | |
y.$(".alert.alert-warning").show() | |
} else { | |
y.$(".alert.alert-warning").hide() | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
modalSave: function () { | |
var B = this, | |
A = $.extend(true, [], B.model.get("Grades")), | |
x = B.$("#Grades"), | |
y = x.closest("div.control-group"), | |
z; | |
y.removeClass("error"); | |
x.removeClass("alert-error"); | |
if (x.data("tooltip")) { | |
x.tooltip("disable") | |
} | |
B.$(".grades-group button").each(function (G, D) { | |
var C = $(D), | |
F = C.data("id"), | |
E = a.Us.findGrade(A, F); | |
E.SelectedInd = C.hasClass("active") | |
}); | |
B.model.set({ | |
Name: B.$("#Name").val(), | |
Amount: B.$("#Amount").val(), | |
Grades: A | |
}); | |
z = B.model.validateGrades(); | |
if (z) { | |
x.addClass("alert-error").tooltip({ | |
placement: "right", | |
title: z | |
}).tooltip("enable"); | |
y.addClass("error") | |
} | |
if (B.model.isValid(true) && !z) { | |
B.model.save({}, { | |
success: function (C, E, D) { | |
w.collection.fetch({ | |
data: { | |
applicationFormId: a.Data.ApplicationFormId, | |
feeTypeId: w.collection.feeTypeId | |
}, | |
success: function () { | |
w.renderData() | |
}, | |
error: function () { | |
p3.displayError("Error loading fees") | |
}, | |
complete: function () { | |
p3.showModal(p3.Layout.Containers.Modal, "hide") | |
} | |
}) | |
}, | |
error: function () { | |
p3.showModal(p3.Layout.Containers.Modal, "hide"); | |
p3.displayError("Error saving fee") | |
} | |
}) | |
} | |
return false | |
} | |
}); | |
q.Us.renderModal(new u()) | |
}, | |
showSmartFeeModal: function () { | |
var v = this, | |
u; | |
u = q.Vs.Modal2.extend({ | |
template: "contracts/contracts.contract.edit.billingsystem.edit.template.html", | |
collection: new a.Cs.SmartFeeSelect(), | |
variables: { | |
feeTypeName: v.feeType.get("Name") | |
}, | |
dataParam: { | |
formId: a.Data.ApplicationFormId, | |
feeTypeId: v.feeType.get("FeeTypeId") | |
}, | |
modalRendered: function (x) { | |
var w = this; | |
w.collection.fetch({ | |
cache: false, | |
data: { | |
formId: a.Data.ApplicationFormId, | |
feeTypeId: v.feeType.id | |
}, | |
success: function (y, z) { | |
if (!w.collection || !w.collection.length) { | |
j.InformationBox("There are no more Smart Tuition fees available for this school year.", w.$(".modal-body"), false); | |
w.$("button.save").prop("disabled", true) | |
} else { | |
w.collection.each(function (A) { | |
var B = new a.Vs.BillingSystemFee({ | |
model: A, | |
parentView: w | |
}); | |
p3.rV(B, w.$("tbody"), false) | |
}) | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
error: function (y, A, z) { | |
if (A.responseText.indexOf("SMART-TUITION-SETTINGS-NOTFOUND") >= 0) { | |
j.ErrorBox("Smart Tuition settings are not available for this school year.", w.$(".modal-body"), false) | |
} else { | |
if (A.responseText.indexOf("SMART-TUITION-FEES-NOTFOUND") >= 0) { | |
j.ErrorBox("Smart Tuition fees are not available for this school year.", w.$(".modal-body"), false) | |
} else { | |
if (A.responseText.indexOf("SMART-TUITION-FEES-GRADE-NOTFOUND") >= 0) { | |
j.ErrorBox("One or more Smart Tuition grades attached to a fee have not been mapped. Please complete the grade mapping before continuing.", w.$(".modal-body"), false) | |
} else { | |
j.ErrorBox("Error retrieving Smart Tuition fee list.", w.$(".modal-body"), false) | |
} | |
} | |
} | |
}, | |
complete: function (y, A, z) { | |
w.$(".spinner").hide() | |
} | |
}) | |
}, | |
modalUpdate: function () { | |
return false | |
}, | |
modalSave: function () { | |
var y = this, | |
w, x, z; | |
if (v.feeType.id === h.ContractFeeType.TUITION.Value) { | |
w = y.collection.duplicateTuitionFees(v.collection); | |
x = w ? _.keys(w) : null; | |
y.collection.each(function (A) { | |
A.view.removeError() | |
}); | |
if (x && x.length > 0) { | |
_.each(x, function (A) { | |
_.each(w[A], function (B) { | |
if (!B.get("preSelectedFee")) { | |
B.view.showError("Select only one tuition amount per grade") | |
} | |
}) | |
}); | |
return false | |
} | |
} else { | |
z = y.collection.where({ | |
Selected: true | |
}); | |
y.collection.reset(z) | |
} | |
}, | |
modalSavedSuccess: function (w) { | |
v.collection.reset(w.response); | |
v.renderData() | |
} | |
}); | |
q.Us.renderModal(new u()) | |
}, | |
showTMSFeeModal: function () { | |
var v = this, | |
u; | |
u = q.Vs.Modal2.extend({ | |
template: "contracts/contracts.contract.edit.billingsystem.edit.template.html", | |
collection: new a.Cs.TmsFeeSelect(), | |
variables: { | |
feeTypeName: v.feeType.get("Name") | |
}, | |
dataParam: { | |
formId: a.Data.ApplicationFormId, | |
feeTypeId: v.feeType.get("FeeTypeId"), | |
returnCollection: true | |
}, | |
modalRendered: function (x) { | |
var w = this; | |
w.collection.fetch({ | |
cache: false, | |
data: { | |
formId: a.Data.ApplicationFormId, | |
feeTypeId: v.feeType.id | |
}, | |
success: function (y, z) { | |
if (!w.collection || !w.collection.length) { | |
j.InformationBox("There are no more BBTM fees available for this school year.", w.$(".modal-body"), false); | |
w.$("button.save").prop("disabled", true) | |
} else { | |
_.each(w.collection.models, function (A) { | |
var B = new a.Vs.BillingSystemFee({ | |
model: A, | |
parentView: w | |
}); | |
p3.rV(B, w.$("tbody"), false) | |
}) | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
complete: function (y, A, z) { | |
w.$(".spinner").hide() | |
} | |
}) | |
}, | |
modalUpdate: function () { | |
return false | |
}, | |
modalSave: function () { | |
var w = this, | |
x; | |
x = w.collection.where({ | |
Selected: true | |
}); | |
w.collection.reset(x) | |
}, | |
modalSavedSuccess: function (w) { | |
v.collection.reset(w.response); | |
v.renderData() | |
} | |
}); | |
q.Us.renderModal(new u()) | |
}, | |
initializeSort: function () { | |
var v = this, | |
u = v.$("tbody"); | |
u.sortable({ | |
items: "tr.contract-fee", | |
placeholder: "sortable-placeholder", | |
distance: 5, | |
tolerance: "pointer", | |
helper: function (y, z) { | |
var x = z.children(), | |
w = z.clone(); | |
w.children().each(function (A) { | |
$(this).width(x.eq(A).width()) | |
}); | |
return w.addClass("gray-boxshadow") | |
}, | |
containment: "tbody.fee-type" + v.feeType.id, | |
appendTo: "body", | |
scroll: true, | |
scrollSensitivity: 160, | |
scrollSpeed: 40, | |
update: function (w, x) { | |
v.setSortOrder() | |
}, | |
start: function (w, x) { | |
u.sortable("refresh") | |
} | |
}) | |
}, | |
setSortOrder: function () { | |
var v = this, | |
u = v.$("tr.contract-fee"); | |
u.each(function (A, x) { | |
var w = $(x), | |
y = w.data("id"), | |
z = v.collection.get(y); | |
z.set("SortOrder", A) | |
}); | |
v.collection.sync("update", v.collection, { | |
error: function () { | |
p3.displayError("Error saving fee sort order") | |
} | |
}) | |
} | |
}); | |
a.Vs.BillingSystemFee = Bb.View.extend({ | |
template: "contracts/contracts.contract.edit.billingsystem.fee.edit.template.html", | |
tagName: "tr", | |
events: { | |
"click button:not(:disabled)": "updateModel", | |
"click .checkbox-input": "updateModel" | |
}, | |
initialize: function () { | |
this.model.view = this | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})); | |
u.$el.attr("id", u.model.cid); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
updateModel: function (u) { | |
var v = this; | |
q.Us.updateModel(u, v.model, "name") | |
}, | |
showError: function (u) { | |
var v = this; | |
Bb.Validation.callbacks.invalid(v.options.parentView, v.model.cid, u, "id") | |
}, | |
removeError: function () { | |
var u = this; | |
Bb.Validation.callbacks.valid(u.options.parentView, u.model.cid, "id") | |
} | |
}); | |
a.Vs.RatingMatrix = Bb.View.extend({ | |
template: "ratings/rating.matrix.summary.template.html", | |
initialize: function (u) { | |
var v = this; | |
v.ratingMatrix = u.ratingMatrix | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON(), | |
ratingMatrix: u.ratingMatrix.toJSON(), | |
attributeList: u.ratingMatrix.getAttributeList(), | |
levelList: u.ratingMatrix.getLevelList() | |
})) | |
}) | |
} | |
}); | |
a.Vs.GenerateContracts = Bb.View.extend({ | |
template: "contracts/contracts.generate.template.html", | |
events: { | |
"click .save:not(:disabled)": "generateContracts", | |
"click .cancel:not(:disabled)": "refreshContracts", | |
"change .userContract": "enableGenerate", | |
"click .select-all": "selectAllusers", | |
"click .clear-all": "clearAllusers" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({})); | |
p3.loadingIcon(u.$(".modal-body"), "mt-50 mb-50"); | |
u.collection = new a.Cs.ContractGenerateStudentList(); | |
u.collection.fetch({ | |
data: { | |
applicationFormId: a.Data.ApplicationFormId | |
}, | |
success: function () { | |
p3.fT("contracts/contracts.generate.info.template.html", function (B) { | |
var D = new Bbc(u.collection.filter(function (E) { | |
return E.get("GenerateInd") && !E.get("TooManySignersInd") && !E.get("FinancialAidNeedsMappingInd") && !E.get("CalcErrorInd") | |
})), | |
A = new Bbc(u.collection.filter(function (E) { | |
return !E.get("GenerateInd") | |
})), | |
C = new Bbc(u.collection.filter(function (E) { | |
return E.get("GenerateInd") && E.get("TooManySignersInd") | |
})), | |
y = new Bbc(u.collection.filter(function (E) { | |
return E.get("GenerateInd") && E.get("FinancialAidNeedsMappingInd") | |
})), | |
w = new Bbc(u.collection.filter(function (E) { | |
return E.get("GenerateInd") && E.get("CalcErrorInd") | |
})), | |
z = D.some(function (E) { | |
return E.get("ModifiedSinceGeneratedInd") | |
}), | |
x = D.length ? true : false; | |
u.$(".modal-body").html(B({ | |
updateContracts: D.toJSON(), | |
savedContracts: A.toJSON(), | |
tooManySigners: C.toJSON(), | |
financialAidNeedsMapping: y.toJSON(), | |
calcError: w.toJSON(), | |
totalContracts: u.collection.length, | |
hasContracts: u.collection.length ? true : false, | |
hasModifiedContracts: z, | |
canGenerate: x | |
})); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
error: function (w, y, x) { | |
u.$(".modal-body").empty(); | |
if (y.responseText.indexOf("SMART-TUITION-GRADES-MISSING") >= 0) { | |
j.ErrorBox("Grade mapping must be completed under Core > Settings > Blackbaud connections > Smart Tuition prior to contracts being generated.", u.$(".modal-body"), false) | |
} else { | |
if (y.responseText.indexOf("VENDOR_API_ERROR") >= 0) { | |
j.ErrorBox("There was an error communicating with Smart Tuition. Please try again.", u.$(".modal-body"), false) | |
} else { | |
j.ErrorBox("Error generating contracts.", u.$(".modal-body"), false) | |
} | |
} | |
} | |
}) | |
}) | |
}, | |
generateContracts: function (w) { | |
w.preventDefault(); | |
var z = this, | |
x, y = [], | |
v = z.$(".save"), | |
u = z.$(".cancel"); | |
$.each($("input[name='UserId']:checked"), function (B, A) { | |
y.push(parseInt($(A).val(), 10)) | |
}); | |
if (!z.collection.length) { | |
return false | |
} | |
v.button("saving").prop("disabled", true); | |
u.prop("disabled", true); | |
p3.loadingIcon(z.$(".modal-body"), "mt-50 mb-50"); | |
x = new a.Ms.GenerateContracts(); | |
x.save({ | |
applicationFormId: a.Data.ApplicationFormId, | |
userIds: y | |
}, { | |
success: function () { | |
a.trigger("rendermain"); | |
p3.showModal(p3.Layout.Containers.Modal, "hide") | |
}, | |
error: function (A, C, B) { | |
z.$(".modal-body").empty(); | |
if (C.responseText.indexOf("SMART-TUITION-GRADES-MISSING") >= 0) { | |
j.ErrorBox("Grade mapping must be completed under Core > Settings > Smart Tuition prior to contracts being generated.", z.$(".modal-body"), false) | |
} else { | |
j.ErrorBox("Error generating contracts.", z.$(".modal-body"), false) | |
} | |
v.button("reset").prop("disabled", false); | |
u.prop("disabled", false) | |
} | |
}) | |
}, | |
refreshContracts: function (u) { | |
a.trigger("rendermain") | |
}, | |
enableGenerate: function () { | |
var v = this, | |
u; | |
u = $("input.userContract:checked").length; | |
if (u !== 0) { | |
v.$("button.save").prop("disabled", false).removeClass("disabled") | |
} else { | |
v.$("button.save").prop("disabled", false).addClass("disabled") | |
} | |
}, | |
selectAllusers: function () { | |
var u = 0, | |
v; | |
v = document.getElementsByName("UserId"); | |
for (u; u < v.length; u++) { | |
if (v[u].type === "checkbox") { | |
v[u].checked = true | |
} | |
} | |
this.enableGenerate() | |
}, | |
clearAllusers: function () { | |
var u = 0, | |
v; | |
v = document.getElementsByName("UserId"); | |
for (u; u < v.length; u++) { | |
if (v[u].type === "checkbox") { | |
v[u].checked = false | |
} | |
} | |
this.enableGenerate() | |
} | |
}); | |
a.Vs.BlockEdit = q.Vs.Modal2.extend({ | |
modalInitialized: function () { | |
var u = this; | |
u.proto.template = u.options.template | |
}, | |
size: "md", | |
events: { | |
"click .delete": "deleteModel" | |
}, | |
deleteModel: function (v) { | |
v.stopPropagation(); | |
v.preventDefault(); | |
var z = this, | |
y = z.$("#modal-form"), | |
x = z.$("#modal-confirm"), | |
u, w; | |
w = q.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.confirm.html", | |
model: z.model, | |
subModal: true, | |
variables: { | |
title: "Remove Block", | |
errorText: "Wait a minute. Are you really sure you want to remove the " + z.model.get("FieldBlockItem").Name + " block from this section?", | |
cancelText: "Cancel", | |
confirmText: "Confirm" | |
}, | |
modalSave: function () { | |
z.model.destroy({ | |
dataParam: { | |
applicationFormId: z.model.get("ApplicationFormId"), | |
deleteSectionItems: true | |
}, | |
success: function () { | |
if ($("#blocks .blocks-holder").length > 0) { | |
$("#blocks .blocks-holder").trigger("refreshlibrary") | |
} | |
}, | |
error: function () { | |
p3.displayError("Error deleting block.") | |
} | |
}); | |
p3.Layout.Containers.Modal.modal("hide"); | |
return false | |
} | |
}); | |
u = new w(); | |
y.hide(); | |
x.show(); | |
p3.rV(u, x, true) | |
} | |
}); | |
a.Us.getOkToEdit = function () { | |
return a.Data.FormModel.get("OkToEdit") | |
}; | |
a.Us.isSectionLocked = function () { | |
return $(".nav-tabs li.active").triggerHandler("getsectionlocked") | |
}; | |
a.Us.allowElements = function (v, w) { | |
var u = true; | |
switch (v) { | |
case 19: | |
case 21: | |
case 22: | |
case 23: | |
case 25: | |
case 62: | |
case 63: | |
case 39: | |
case 40: | |
case 72: | |
u = false; | |
break | |
} | |
if (w) { | |
u = false | |
} | |
return u | |
}; | |
a.Us.getSelectedPersona = function (w, u) { | |
var v = p3.Data.Context.get("Personas"), | |
x; | |
x = _.find(v, function (y) { | |
return y.Selected == true | |
}); | |
if (!x) { | |
x = _.first(v) | |
} | |
return x | |
}; | |
a.Us.FixHTML = function (u) { | |
var v = $("<div>"), | |
w; | |
v.append(u).find("a").has("br").after("<br />").find("br").remove(); | |
w = v.html(); | |
return w | |
}; | |
a.Us.recursiveFunction = function (F, E, w, x, z) { | |
var D = E, | |
A = w, | |
B = x, | |
C = z, | |
y, u, v; | |
if (_.isObject(D) && !_.isArray(D)) { | |
D.FieldsToNull = []; | |
if (C != "") { | |
y = C + A + "." | |
} else { | |
y = A + "." | |
} | |
_.each(D, function (I, G, H) { | |
a.Us.recursiveFunction(F, I, G, H, y) | |
}) | |
} else { | |
u = a.Us.getPropByString(F.model.attributes, C + A); | |
v = a.Us.getPropByString(F.model.defaults, C + A); | |
if (((D === "") || (D === null)) && (u != v)) { | |
B.FieldsToNull.push(A) | |
} | |
} | |
}; | |
a.Us.getPropByString = function (w, z) { | |
if (!z) { | |
return w | |
} | |
var x, y = z.split("."), | |
u, v; | |
for (u = 0, v = y.length - 1; u < v; u++) { | |
x = y[u]; | |
if (typeof w === "object" && w !== null && w.hasOwnProperty(x) && w[x] !== null) { | |
w = w[x] | |
} else { | |
break | |
} | |
} | |
return w[y[u]] | |
}; | |
a.Us.setPropByString = function (w, z, A) { | |
if (!z) { | |
return w | |
} | |
var x, y = z.split("."), | |
u, v; | |
for (u = 0, v = y.length - 1; u < v; u++) { | |
x = y[u]; | |
if (typeof w === "object" && w !== null && w.hasOwnProperty(x) && w[x] !== null) { | |
w = w[x] | |
} else { | |
break | |
} | |
} | |
w[y[u]] = A | |
}; | |
a.Us.findElementById = function (u) { | |
return _.find(h.Element, function (v) { | |
return v.Value == u | |
}) | |
}; | |
a.Us.findGrade = function (v, u) { | |
return _.find(v, function (w) { | |
return w.GradeId == u | |
}) | |
}; | |
a.Us.GetStyle = function (v, u) { | |
var w = new a.Cs.Style({ | |
id: v | |
}); | |
w.fetch({ | |
success: function (x, y) { | |
u(y) | |
} | |
}) | |
}; | |
a.Us.SetStyle = function (u) { | |
if ($("head style.form").length > 0) { | |
$("head style.form").html("") | |
} else { | |
$("head").append('<style class="form"></style>') | |
} | |
var v = ""; | |
_.each(u, function (w) { | |
v += w.Selector; | |
v += " { "; | |
_.each(w.StyleProperties, function (x) { | |
v += x.Name + ": " + x.PropertyValue + "; " | |
}); | |
v += "} " | |
}); | |
$("head style.form").append(v) | |
}; | |
a.Us.DeleteStyle = function () { | |
if ($("head style.form").length > 0) { | |
$("head style.form").remove("") | |
} | |
}; | |
a.Us.NotificationValidation = { | |
validation: { | |
ActiveInd: [{ | |
required: false, | |
fn: function (y, u, v) { | |
if (p3.Us.Tools.stringToBoolean(y) === true) { | |
var x = [], | |
w; | |
if (v.ConfirmNotification && v.ConfirmNotification.Active) { | |
if (!v.ConfirmNotification.ReplyAddress) { | |
x.push("confirm notification reply address") | |
} | |
if (!v.ConfirmNotification.FromName) { | |
x.push("confirm notification from name") | |
} | |
if (!v.ConfirmNotification.Subject) { | |
x.push("confirm notification subject") | |
} | |
if (!v.ConfirmNotification.Body) { | |
x.push("confirm notification body") | |
} | |
} | |
if (v.AdminNotification && v.AdminNotification.Active) { | |
if (!v.AdminNotification.ReplyAddress) { | |
x.push("admin notification reply address") | |
} | |
if (!v.AdminNotification.FromName) { | |
x.push("admin notification from name") | |
} | |
if (!v.AdminNotification.Subject) { | |
x.push("admin notification subject") | |
} | |
if (!v.AdminNotification.Body) { | |
x.push("admin notification body") | |
} | |
} | |
if (v.RemindNotification && v.RemindNotification.Active) { | |
if (!v.RemindNotification.ReplyAddress) { | |
x.push("reminder notification reply address") | |
} | |
if (!v.RemindNotification.FromName) { | |
x.push("reminder notification from name") | |
} | |
if (!v.RemindNotification.Subject) { | |
x.push("reminder notification subject") | |
} | |
w = parseInt(v.RemindNotification.ReminderOption, 10); | |
if (t.isEmptier(w) && !v.ReminderWhenActive) { | |
x.push("reminder notification option") | |
} | |
if (!v.RemindNotification.Body) { | |
x.push("reminder notification body") | |
} | |
if (!v.DueDate) { | |
if (!v.ignoreDueDate) { | |
if (t.isEmptier(y)) { | |
x.push("due date") | |
} | |
if (!t.isDate(y)) { | |
x.push("correct date format") | |
} | |
} | |
} | |
} | |
if (x.length > 0) { | |
x[0] = x[0].charAt(0).toUpperCase() + x[0].slice(1); | |
if (x.length === 1) { | |
return x[0] + " is required to make active." | |
} | |
return x.join(", ") + " are required to make active." | |
} | |
} | |
} | |
}], | |
"ConfirmNotification.ReplyAddress": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("ConfirmNotification", v) | |
}, | |
pattern: "email", | |
msg: k.P3.EmailError | |
}], | |
"ConfirmNotification.FromName": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("ConfirmNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"ConfirmNotification.Subject": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("ConfirmNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"ConfirmNotification.Body": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("ConfirmNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"AdminNotification.ReplyAddress": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("AdminNotification", v) | |
}, | |
pattern: "email", | |
msg: k.P3.EmailError | |
}], | |
"AdminNotification.FromName": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("AdminNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"AdminNotification.Subject": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("AdminNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"AdminNotification.Body": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("AdminNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"RemindNotification.ReplyAddress": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("RemindNotification", v) | |
}, | |
pattern: "email", | |
msg: k.P3.EmailError | |
}], | |
"RemindNotification.FromName": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("RemindNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"RemindNotification.Subject": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("RemindNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"RemindNotification.ReminderOption": [{ | |
required: function (w, u, v) { | |
if (!v.ReminderWhenActive) { | |
return this.validateNotification("RemindNotification", v) | |
} | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
"RemindNotification.Body": [{ | |
required: function (w, u, v) { | |
return this.validateNotification("RemindNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}], | |
DueDate: [{ | |
required: function (w, u, v) { | |
return this.validateNotification("RemindNotification", v) | |
}, | |
msg: k.P3.RequiredInfoNotEntered | |
}] | |
}, | |
validateNotification: function (v, u) { | |
return u.ActiveInd && u[v] && u[v].Active | |
} | |
}; | |
a.Us.GetBBTMLinkForAuthorizedUsers = function () { | |
var u = r.Us.getUrlById(53757); | |
return (u !== "#") ? u : undefined | |
}; | |
p3.router().route("settings/applications/:id", "applicationformsedit", function (u) { | |
a.Data.FormModel = null; | |
a.Data.FormType = h.FormType.APPLICATION; | |
a.Data.ApplicationFormId = u; | |
a.Data.EditMode = "content"; | |
a.Data.SecurePayment = false; | |
p3.renderMainPage(new a.Vs.Layout({ | |
formType: h.FormType.APPLICATION | |
})) | |
}); | |
p3.router().route("settings/contracts/:id", "contractsedit", function (u) { | |
a.Data.FormModel = null; | |
a.Data.ApplicationFormId = u; | |
a.Data.EditMode = "content"; | |
a.Data.SecurePayment = false; | |
a.Data.HasOnAccount = p3.Data.SchoolContext.hasAppCategory(h.AppCategories.TUITIONMANAGEMENT); | |
p3.renderMainPage(new a.Vs.Layout({ | |
formType: h.FormType.CONTRACT | |
})) | |
}); | |
p3.router().route("settings/inquiries/:id", "inquiriesedit", function (u) { | |
a.Data.FormModel = null; | |
a.Data.FormType = h.FormType.INQUIRY; | |
a.Data.ApplicationFormId = u; | |
a.Data.EditMode = "content"; | |
p3.renderMainPage(new a.Vs.Layout({ | |
formType: h.FormType.INQUIRY | |
})) | |
}); | |
p3.router().route("settings/schoolforms/:id", "schoolformsedit", function (u) { | |
a.Data.FormModel = null; | |
a.Data.ApplicationFormId = u; | |
a.Data.EditMode = "content"; | |
a.Data.SecurePayment = false; | |
p3.renderMainPage(new a.Vs.Layout()) | |
}); | |
p3.router().route("settings/recommendations/:id", "recommendationformsedit", function (u) { | |
a.Data.FormModel = null; | |
a.Data.ApplicationFormId = u; | |
a.Data.EditMode = "content"; | |
a.Data.SecurePayment = false; | |
p3.renderMainPage(new a.Vs.Layout()) | |
}) | |
}(p3.module("admissions/applicationformsedit"))); | |
(function (a) { | |
var b = p3.module("admissions/candidateprogress"); | |
a.Ms.HasOnlineApp = Bbm.extend({ | |
url: function () { | |
return aP + "onlineapplication/hasonlineapp" | |
} | |
}); | |
p3.router().route("apply", "apply", function () { | |
p3.setTitle("Apply"); | |
var c = new a.Ms.HasOnlineApp(); | |
c.fetch({ | |
success: function () { | |
if (c.get("Message") == "True") { | |
b.Us.ApplyCandidate() | |
} | |
} | |
}) | |
}) | |
}(p3.module("admissions/apply"))); | |
(function (b) { | |
var a = p3.module("shared/base"), | |
g = p3.module("shared/task"), | |
f = p3.module("utilities/multifetch"), | |
e = p3.module("shared/mainbulletin"), | |
c = p3.Us.Enum, | |
d = p3.Us.InfoMessageLibrary; | |
b.Ms.ProspectDecision = Bbm.extend({}); | |
b.Ms.ProspectDecisionUpdate = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "decisionId", | |
url: function () { | |
return this.id ? aP + "admissions/ProspectCandidateDecisionUpdate/" + this.id + "/" : aP + "admissions/ProspectCandidateDecisionUpdate/" | |
} | |
}); | |
b.Ms.DecisionText = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "SchoolId", | |
validation: { | |
CandidateDecisionText: [{ | |
maxLength: 4000, | |
required: false, | |
msg: d.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/AdmissionOptions/" + this.id + "/" : aP + "admissions/AdmissionOptions/" | |
} | |
}); | |
b.Cs.ProspectInstanceIds = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/ProspectInstanceIdsGet/" | |
} | |
}); | |
b.Cs.ProspectDecision = Bbc.extend({ | |
model: b.Ms.ProspectDecision, | |
url: function () { | |
return aP + "datadirect/ProspectDecisionGet/" | |
} | |
}); | |
b.Cs.Decisions = Bbc.extend({ | |
model: b.Ms.ProspectDecision, | |
url: function () { | |
return aP + "admissions/ProspectDecisionList/" | |
} | |
}); | |
b.Cs.ProspectDecisionPlaceholders = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/ProspectDecisionPlaceholdersGet/" | |
} | |
}); | |
b.Cs.CommentBox = Bbm.extend({ | |
sync: a.DataParamSync, | |
model: b.Ms.CommentBox, | |
url: function () { | |
return aP + "admissions/AdmissionOptions/" | |
} | |
}); | |
b.Cs.Acknowledgements = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/AcknowledgementsGet/" | |
} | |
}); | |
b.Vs.Layout = Bb.View.extend({ | |
template: "admissions/candidateview.decision.template.html", | |
initialize: function () { | |
var h = this; | |
h.instanceIds = new b.Cs.ProspectInstanceIds(); | |
b.Data.DecisionInfo = { | |
userId: h.options.userId, | |
instanceId: null, | |
showDefaultText: false, | |
schoolDecisionMadeId: null, | |
schoolDecisionTypeComment: null, | |
accepted: false, | |
downloadLink: null, | |
showDownloadLink: false, | |
acknowledgements: null, | |
decisionAcknowledgementId: null, | |
decisionAcknowledgement: null | |
}; | |
b.Data.dictionaries = {} | |
}, | |
render: function (h) { | |
var i = this; | |
p3.setTitle("Decision"); | |
$(h).html(i.el); | |
i.instanceIds.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: b.Data.DecisionInfo.userId | |
}, | |
success: function (j, k) { | |
b.Data.DecisionInfo.instanceId = j.models[0].get("ProspectInstanceId"); | |
b.Data.DecisionInfo.schoolDecisionMadeId = j.models[0].get("DecisionMadeId"); | |
i.renderData() | |
} | |
}) | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({ | |
decisionInfo: b.Data.DecisionInfo | |
})); | |
if (b.Data.DecisionInfo.schoolDecisionMadeId == null) { | |
b.Data.DecisionInfo.showDefaultText = true; | |
p3.rV(new b.Vs.DecisionText({}), $("#candidate-decision-text"), true) | |
} else { | |
p3.rV(new b.Vs.Banner({}), $("#candidate-decision-banner"), true) | |
} | |
}) | |
} | |
}); | |
b.Vs.Banner = Bb.View.extend({ | |
template: "admissions/candidateview.decision.banner.template.html", | |
initialize: function () { | |
var h = this; | |
h.schoolDecisions = new b.Cs.Decisions(); | |
h.prospectDecisions = new b.Cs.ProspectDecision(); | |
h.acknowledgementList = new b.Cs.Acknowledgements() | |
}, | |
events: { | |
"click .radio-sky-input": "selectDecision", | |
"click .toggle-decision": "toggleDecision", | |
"click .submit-decision": "submitDecision" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).html(i.el); | |
i.schoolDecisions.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: b.Data.DecisionInfo.instanceId, | |
userId: b.Data.DecisionInfo.userId | |
}, | |
success: function () { | |
b.Data.DecisionInfo.admDecisionId = i.schoolDecisions.models[0].attributes.AdmDecisionId; | |
b.Data.DecisionInfo.admDecisionTypeId = i.schoolDecisions.models[0].attributes.AdmDecisionType.AdmDecisionTypeId; | |
b.Data.DecisionInfo.displayDeclineReason = i.schoolDecisions.models[0].attributes.AdmDecisionType.DisplayDeclineReason; | |
b.Data.DecisionInfo.displayDeclineSchool = i.schoolDecisions.models[0].attributes.AdmDecisionType.DisplayDeclineSchool; | |
f.Us.Fetch({ | |
ADMReasonsDeclinedAll: { | |
data: new f.Cs.Dictionary(), | |
dataParams: c.DictionaryData.ADMReasonsDeclinedAll | |
}, | |
TransferSchool: { | |
data: new f.Cs.Dictionary(), | |
dataParams: { | |
id: 94, | |
inputParam: "@chosen_inq=1[i]" | |
} | |
} | |
}, function (j, l, k) { | |
b.Data.dictionaries = j; | |
b.Data.DecisionInfo.accepted = (b.Data.DecisionInfo.admDecisionTypeId == 1) ? true : false; | |
i.renderData() | |
}) | |
} | |
}) | |
}, | |
renderData: function () { | |
var i = this, | |
h = new Date(); | |
i.prospectDecisions.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: b.Data.DecisionInfo.instanceId, | |
decisionMadeId: b.Data.DecisionInfo.schoolDecisionMadeId | |
}, | |
success: function (j, k) { | |
b.Data.DecisionInfo.decisionIsPublished = j.models[0].get("IsPublished"); | |
b.Data.DecisionInfo.decisionAcknowledgementId = j.models[0].get("DecisionAcknowledgementId"); | |
b.Data.DecisionInfo.decisionAcknowledgement = j.models[0].get("DecisionAcknowledgement"); | |
if (!b.Data.DecisionInfo.decisionIsPublished) { | |
b.Data.DecisionInfo.showDefaultText = true; | |
p3.rV(new b.Vs.DecisionText({}), $("#candidate-decision-text"), true) | |
} else { | |
b.Data.DecisionInfo.schoolDecisionTypeComment = j.models[0].attributes.DecisionTypeComment; | |
b.Data.DecisionInfo.downloadLink = g.Us.getUrlById(52681, "pk=392&tid=" + i.prospectDecisions.models[0].attributes.TemplateId + "&ext=pdf&piid=" + b.Data.DecisionInfo.instanceId + "&uid=" + b.Data.DecisionInfo.userId + "&pre=True&app=34&dol=" + h); | |
b.Data.DecisionInfo.showDownloadLink = i.prospectDecisions.models[0].attributes.TemplateId; | |
i.acknowledgementList.fetch({ | |
data: { | |
decisionId: b.Data.DecisionInfo.admDecisionId, | |
publishedOnlyInd: true | |
}, | |
success: function (l, m) { | |
b.Data.DecisionInfo.acknowledgements = i.acknowledgementList.toJSON(); | |
if (b.Data.DecisionInfo.accepted || b.Data.DecisionInfo.showDownloadLink || b.Data.DecisionInfo.decisionAcknowledgementId || b.Data.DecisionInfo.acknowledgements.length > 0) { | |
p3.fT(i.template, function (n) { | |
i.$el.html(n({ | |
decisionInfo: b.Data.DecisionInfo, | |
dictionaries: b.Data.dictionaries | |
})) | |
}) | |
} | |
p3.rV(new b.Vs.DecisionText({ | |
decisionInfo: b.Data.DecisionInfo | |
}), $("#candidate-decision-text"), true) | |
} | |
}) | |
} | |
} | |
}) | |
}, | |
selectDecision: function (j) { | |
var k = this, | |
h = $(j.currentTarget), | |
i = h.data("type"); | |
i = h.children("input").data("type"); | |
if (i === 2) { | |
if (b.Data.DecisionInfo.displayDeclineReason) { | |
k.$(".decline-reason").show() | |
} | |
if (b.Data.DecisionInfo.displayDeclineSchool) { | |
k.$(".decline-school").show() | |
} | |
} else { | |
k.$(".decline-reason").hide(); | |
k.$("#DeclinedId").val(""); | |
k.$(".decline-school").hide(); | |
k.$("#ChosenSchool").val("") | |
} | |
}, | |
submitDecision: function (h) { | |
h.stopPropagation(); | |
h.preventDefault(); | |
var j = this, | |
i; | |
i = new b.Ms.ProspectDecisionUpdate({ | |
userId: b.Data.DecisionInfo.userId, | |
prospectInstanceId: b.Data.DecisionInfo.instanceId, | |
decisionId: b.Data.DecisionInfo.schoolDecisionMadeId, | |
candDecisionId: j.$('[name="parent-decision"]:checked').val(), | |
candDeclineId: j.$("#DeclinedId").val(), | |
candChosenSchool: j.$("#ChosenSchool").val() | |
}); | |
i.save({}, { | |
dataParam: j.options.dataParam, | |
success: function (k, l) { | |
j.$("#select-decision").html('<h5 style="margin:5px 15px 0px 0px; color:#000; text-align:right;">Thank you. Your decision has been submitted.</h5>'); | |
e.Us.ShowMainBulletin() | |
}, | |
error: function (l, k) { | |
j.$(".save").button("reset") | |
} | |
}) | |
}, | |
toggleDecision: function (h) { | |
h.stopPropagation(); | |
h.preventDefault(); | |
var i = this; | |
i.$(".info-decision").toggle() | |
} | |
}); | |
b.Vs.DecisionText = Bb.View.extend({ | |
template: "admissions/candidateview.decision.text.template.html", | |
render: function (h) { | |
var i = this; | |
$(h).html(i.el); | |
if (b.Data.DecisionInfo.showDefaultText) { | |
i.schoolDecisionText = new b.Ms.DecisionText(); | |
i.schoolDecisionText.fetch({ | |
cache: false, | |
data: { | |
id: b.Data.DecisionInfo.instanceId | |
}, | |
success: function (j, k) { | |
b.Data.DecisionInfo.schoolDecisionTypeComment = i.schoolDecisionText.toJSON().CandidateDecisionText; | |
i.renderData() | |
} | |
}) | |
} else { | |
i.placeholders = new b.Cs.ProspectDecisionPlaceholders(); | |
i.placeholders.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: b.Data.DecisionInfo.instanceId, | |
decisionMadeId: b.Data.DecisionInfo.schoolDecisionMadeId | |
}, | |
success: function (j, k) { | |
_.each(i.placeholders.toJSON(), function (l) { | |
if (l.PData !== null) { | |
b.Data.DecisionInfo.schoolDecisionTypeComment = b.Data.DecisionInfo.schoolDecisionTypeComment.replace("[" + l.DisplayName + "]", l.PData) | |
} else { | |
b.Data.DecisionInfo.schoolDecisionTypeComment = b.Data.DecisionInfo.schoolDecisionTypeComment.replace("[" + l.DisplayName + "]", "") | |
} | |
}); | |
i.renderData() | |
} | |
}) | |
} | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({ | |
decisionInfo: b.Data.DecisionInfo | |
})) | |
}) | |
} | |
}) | |
}(p3.module("admissions/candidatedecision"))); | |
(function (d) { | |
var f = p3.module("shared/datepicker"), | |
l = p3.module("shared/timepicker"), | |
c = p3.module("admissions/managecandidates"), | |
a = p3.module("admissions/admissionsscheduling"), | |
k = p3.module("utilities/smodal"), | |
g = p3.module("utilities/dictionary"), | |
j = p3.module("utilities/multifetch"), | |
b = p3.module("shared/base"), | |
m = p3.Us.Tools, | |
h = p3.Us.Enum, | |
e = p3.Us.Culture, | |
i = p3.Us.InfoMessageLibrary; | |
d.Ms.DictionaryItem = Bbm.extend({}); | |
d.Cs.Dictionary = Bbc.extend({ | |
model: d.Ms.DictionaryItem, | |
url: "datadirect/DictionaryGet/" | |
}); | |
d.Ms.Information = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ProspectInstanceId", | |
validation: { | |
"CustomFields.0.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.1.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.2.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.3.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.4.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.5.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.6.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.7.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.8.Value": [{ | |
fn: "customFields" | |
}], | |
"CustomFields.9.Value": [{ | |
fn: "customFields" | |
}] | |
}, | |
customFields: function (q, n, p) { | |
var o = k.Us.getParentByString(p, n); | |
if (o && o.Published === true) { | |
if (o.Type === 5 && !e.isDate(q)) { | |
return i.P3.DateError.fixDateFormat() | |
} | |
} | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/Prospect/" + this.id + "/" : aP + "Admissions/Prospect/" | |
} | |
}); | |
d.Ms.CustomFieldsDictionaries = Bbm.extend({ | |
url: function () { | |
return aP + "datadirect/CustomFieldsGet" | |
} | |
}); | |
d.Ms.Visit = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "VisitId", | |
validation: { | |
VisitDate: [{ | |
fn: function (p, n, o) { | |
if ($("#VisitDate").val() == "" || $("#VisitTime").val() == "") { | |
return i.P3.RequiredInfoNotEntered | |
} | |
} | |
}, { | |
date: true | |
}], | |
"VisitType.VisitTypeId": [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/ProspectVisit/" + this.id + "/" : aP + "Admissions/ProspectVisit/" | |
} | |
}); | |
d.Ms.Interview = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "InterviewId", | |
validation: { | |
InterviewDate: [{ | |
fn: function (p, n, o) { | |
if ($("#InterviewDate").val() == "" || $("#InterviewTime").val() == "") { | |
return i.P3.RequiredInfoNotEntered | |
} | |
} | |
}, { | |
date: true | |
}], | |
"InterviewType.InterviewTypeId": [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}], | |
LengthMinutes: [{ | |
fn: function (p, n, o) { | |
if (parseInt(p, 10) < 0 || parseInt(p, 10) > 59) { | |
return i.Admissions.MinuteRange | |
} | |
} | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/ProspectInterview/" + this.id + "/" : aP + "Admissions/ProspectInterview/" | |
} | |
}); | |
d.Ms.Recommendation = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ReferenceId", | |
validation: { | |
ReferenceDate: [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}, { | |
date: true | |
}], | |
"ReferenceType.ReferenceTypeId": [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}], | |
ReferenceName: [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}], | |
RelationshipMonths: [{ | |
required: false, | |
min: 0, | |
max: 11, | |
msg: i.Admissions.MonthRange | |
}], | |
EmailAddress: [{ | |
required: false, | |
pattern: "email", | |
msg: i.P3.EmailError | |
}], | |
Zip: [{ | |
required: false, | |
fn: function (p, n, o) { | |
if (o.Country === "US") { | |
if (!/^\d{5}(-\d{4})?$/.test(p)) { | |
return i.Profile.PostalCodeError | |
} | |
} | |
} | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/ProspectReference/" + this.id + "/" : aP + "Admissions/ProspectReference/" | |
} | |
}); | |
d.Ms.TestScore = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "TestScoreId", | |
validation: { | |
TestDate: [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}, { | |
date: true | |
}], | |
RegisteredDate: [{ | |
date: true | |
}], | |
"Test.TestId": [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}], | |
OverallScore: [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.0.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.1.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.2.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.3.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.4.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.5.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.6.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.7.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.8.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.9.Score": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.0.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.1.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.2.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.3.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.4.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.5.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.6.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.7.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.8.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.9.Percentile": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.0.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.1.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.2.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.3.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.4.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.5.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.6.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.7.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.8.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.9.Scale": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.0.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.1.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.2.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.3.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.4.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.5.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.6.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.7.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.8.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}], | |
"ProspectSubTests.9.Stanie": [{ | |
required: false, | |
pattern: "number", | |
msg: i.P3.NotNumeric | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/prospecttest/" + this.id + "/" : aP + "Admissions/prospecttest/" | |
} | |
}); | |
d.Ms.Interest = Bbm.extend({ | |
sync: b.DataParamSync, | |
validation: { | |
CommentCandidate: [{ | |
maxLength: 2000, | |
required: false, | |
msg: i.P3.MaxLengthExceeded | |
}], | |
CommentSchool: [{ | |
maxLength: 2000, | |
required: false, | |
msg: i.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return aP + "Admissions/prospectinterest/" | |
} | |
}); | |
d.Ms.Event = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "EventId", | |
validation: { | |
EventDate: [{ | |
fn: function (p, n, o) { | |
if ($('[name="EventDate"]').val() == "" || $('[name="EventTime"]').val() == "") { | |
return i.P3.RequiredInfoNotEntered | |
} | |
} | |
}, { | |
date: true | |
}], | |
"EventType.EventTypeId": [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Admissions/ProspectEvent/" + this.id + "/" : aP + "Admissions/ProspectEvent/" | |
} | |
}); | |
d.Ms.DeleteForm = Bbm.extend({ | |
url: function () { | |
return aP + "OnlineApplication/FormData/" + this.id + "/" | |
} | |
}); | |
d.Ms.DeletePodiumInquiry = Bbm.extend({ | |
url: function () { | |
return aP + "Inquiry/ApplicationRequest/" + this.id + "/" | |
} | |
}); | |
d.Ms.MiscellaneousFile = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ProspectFileId", | |
validation: { | |
AttachmentFile: [{ | |
required: true, | |
fn: function (p, n, o) { | |
if (this.attributes.AttachmentFile === null || this.attributes.AttachmentFile === undefined) { | |
return "Attachment file is required" | |
} | |
if (this.attributes.AttachmentFile.Attachment === null || this.attributes.AttachmentFile.Attachment === undefined) { | |
return "Attachment file is required" | |
} | |
} | |
}], | |
"FileType.FileTypeId": [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Candidate/FileDetail/" + this.id + "/" : aP + "Candidate/FileDetail/" | |
} | |
}); | |
d.Cs.Visits = Bbc.extend({ | |
model: d.Ms.Visit, | |
url: function () { | |
return aP + "Admissions/ProspectVisitList/" | |
} | |
}); | |
d.Cs.Interviews = Bbc.extend({ | |
model: d.Ms.Interview, | |
url: function () { | |
return aP + "Admissions/ProspectInterviewList/" | |
} | |
}); | |
d.Cs.Recommendations = Bbc.extend({ | |
model: d.Ms.Recommendation, | |
url: function () { | |
return aP + "Admissions/ProspectReferenceList/" | |
} | |
}); | |
d.Cs.TestScores = Bbc.extend({ | |
model: d.Ms.TestScore, | |
url: function () { | |
return aP + "Admissions/ProspectTestList/" | |
} | |
}); | |
d.Cs.SubTests = Bbc.extend({ | |
url: function () { | |
return aP + "Admissions/ProspectSubTestList/" | |
} | |
}); | |
d.Cs.Interests = Bbc.extend({ | |
sync: b.DataParamSync, | |
model: d.Ms.Interest, | |
url: function () { | |
return aP + "Admissions/ProspectInterestList/" | |
} | |
}); | |
d.Cs.Events = Bbc.extend({ | |
model: d.Ms.Event, | |
url: function () { | |
return aP + "Admissions/ProspectEventList/" | |
} | |
}); | |
d.Cs.ChecklistItems = Bbc.extend({ | |
url: function () { | |
return aP + "Admissions/ProspectDataCollectionPkItems/" | |
} | |
}); | |
d.Cs.ChecklistStatuses = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/ProspectDataCollectionPkStatuses/" | |
} | |
}); | |
d.Cs.MiscellaneousFiles = Bbc.extend({ | |
model: d.Ms.MiscellaneousFile, | |
url: function () { | |
return aP + "Candidate/FileList" | |
} | |
}); | |
d.Vs.Layout = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.template.html", | |
events: { | |
"click .toggleLink": "toggleSection" | |
}, | |
initialize: function () { | |
if (this.options) { | |
this.userId = this.options.userId | |
} | |
}, | |
render: function (n) { | |
var o = this; | |
p3.setTitle("Candidate Profile"); | |
$(n).html(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var o = this, | |
n; | |
p3.fT(o.template, function (p) { | |
o.$el.html(p()); | |
n = $("#content"); | |
p3.rV(new d.Vs.Information({ | |
instanceId: o.options.instanceId, | |
userId: o.options.userId | |
}), n, false); | |
p3.rV(new d.Vs.Visits({ | |
instanceId: o.options.instanceId | |
}), n, false); | |
p3.rV(new d.Vs.Interviews({ | |
instanceId: o.options.instanceId | |
}), n, false); | |
p3.rV(new d.Vs.Recommendations({ | |
instanceId: o.options.instanceId | |
}), n, false); | |
p3.rV(new d.Vs.TestScores({ | |
instanceId: o.options.instanceId, | |
userId: o.options.userId | |
}), n, false); | |
p3.rV(new d.Vs.Interests({ | |
instanceId: o.options.instanceId, | |
userId: o.options.userId, | |
layoutView: o | |
}), n, false); | |
p3.rV(new d.Vs.Events({ | |
instanceId: o.options.instanceId, | |
userId: o.options.userId, | |
layoutView: o | |
}), n, false); | |
p3.rV(new d.Vs.MiscellaneousFiles({ | |
instanceId: o.options.instanceId | |
}), n, false) | |
}) | |
}, | |
toggleSection: function (o) { | |
var n = $(o.currentTarget); | |
o.preventDefault(); | |
o.stopPropagation(); | |
n.closest(".bb-tile").find(".bb-tile-content").slideToggle("fast", function () { | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}); | |
d.Us.SwapChevronClass(n.find(".fa")); | |
d.Us.SwapActiveClass(n); | |
return false | |
} | |
}); | |
d.Vs.Information = Bb.View.extend({ | |
template: "candidate/candidate.record.information.template.html", | |
events: { | |
"click button.edit": "editInformation", | |
"click .togglebutton": "toggleInfo", | |
"click button.delete-inquiry": "deleteInquiry" | |
}, | |
initialize: function () { | |
var n = this; | |
n.model = new d.Ms.Information() | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
j.Us.Fetch({ | |
GradeLevel: { | |
data: new j.Cs.Dictionary(), | |
dataParams: { | |
id: 35, | |
inputParam: "@append_school_level=0[i],@level_num=null,@duration_id=null,@adm_ind=1[i],@Directory_ind=0[i]" | |
} | |
}, | |
InquirySource: { | |
data: new j.Cs.Dictionary(), | |
dataParams: { | |
id: 38, | |
keyName: "pk", | |
valueName: "short_description", | |
inputParam: "@exclude_web=0[i]" | |
} | |
}, | |
SchoolYearCurrent: { | |
data: new j.Cs.Dictionary(), | |
dataParams: { | |
id: 83, | |
inputParam: "@display=5[i]" | |
} | |
}, | |
ADMStaff: { | |
data: new j.Cs.Dictionary(), | |
dataParams: h.DictionaryData.ADMStaff | |
}, | |
ADMInactiveStatusTypes: { | |
data: new j.Cs.Dictionary(), | |
dataParams: h.DictionaryData.ADMInactiveStatusTypes | |
}, | |
ReferralTypes: { | |
data: new j.Cs.Dictionary(), | |
dataParams: h.DictionaryData.ReferralTypes | |
}, | |
DictionariesCustom: { | |
data: new d.Ms.CustomFieldsDictionaries() | |
}, | |
Sessions: { | |
data: new j.Cs.Dictionary(), | |
dataParams: h.DictionaryData.Sessions | |
} | |
}, function (p, r, q) { | |
if (q) { | |
p3.displayError("There was an error loading data.") | |
} | |
o.dictionaries = p; | |
var t, s = _.groupBy(p.DictionariesCustom.toJSON(), function (u) { | |
return u.ordinal | |
}); | |
for (t in s) { | |
if (s.hasOwnProperty(t)) { | |
o.dictionaries["DictionaryCustom_" + t] = s[t] | |
} | |
} | |
o.renderData() | |
}) | |
}, | |
renderData: function () { | |
var n = this; | |
n.model.unbind("sync"); | |
p3.fT(n.template, function (o) { | |
n.model.fetch({ | |
cache: false, | |
data: { | |
id: n.options.instanceId | |
}, | |
success: function (p, q) { | |
n.$el.html(o({ | |
model: p.toJSON(), | |
dictionaries: n.dictionaries | |
})) | |
}, | |
complete: function () { | |
n.model.bind("sync", n.renderData, n) | |
} | |
}) | |
}) | |
}, | |
editInformation: function (n) { | |
n.preventDefault(); | |
n.stopPropagation(); | |
var p = this, | |
o = new c.Cs.StatusHistory(); | |
o.fetch({ | |
data: { | |
userId: p.options.userId, | |
prospectInstanceId: p.options.instanceId | |
}, | |
success: function () { | |
var q = true; | |
if (o.models.length === 0) { | |
q = false | |
} | |
p.modal2Extend = k.Vs.Modal2.extend({ | |
template: "candidate/candidate.record.information.edit.template.html", | |
model: p.model, | |
dictionaries: p.dictionaries, | |
variables: { | |
hasChecklist: q | |
}, | |
events: { | |
"keyup textarea.counter-input": "updateCharacterCounter" | |
}, | |
modalRendered: function (s) { | |
var r = this; | |
f.Us.initialize(".date-input", { | |
yearRange: "-30:+20" | |
}); | |
_.each(r.$("textarea.counter-input"), function (t) { | |
$(t).trigger($.Event("keyup")) | |
}); | |
r.initializeFileUpload_File(); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.FileUpload, function () { | |
window.setTimeout(function () { | |
r.$(".fileupload").each(function () { | |
var t = (!$(this).data("filetype")) ? p3.Us.Enum.UploadType.All : p3.Us.Enum.UploadType[$(this).data("filetype").toUpperCase()]; | |
$(this).fileupload({ | |
url: p3.Config.RootPath + "utilities/FileTransferHandler.ashx", | |
autoUpload: true, | |
acceptFileTypes: t.ValidExtensions, | |
formData: { | |
safeName: true | |
}, | |
dropZone: $(this), | |
add: function (v, u) { | |
var w = $(v.currentTarget), | |
x = p3.Us.FileTools.isValidFile(t, u.files[0].name); | |
if (x) { | |
u.submit() | |
} else { | |
w.find(".attachment-name").empty(); | |
w.find(".attachment-name").append(p3.Us.FileTools.validateFiles(t, u)) | |
} | |
} | |
}).on("fileuploaddone", function (v, u) { | |
var w = $(v.currentTarget); | |
w.find(".attachment-name").html('<img style="width:90px;" class="imgNice" src="/ftpimages/pdTemp/' + u.result[0].name + '" />'); | |
r.setPropByString(r.model.attributes, w.find(".attachment-name").attr(r.selector), u.result[0].original_name); | |
r.setPropByString(r.model.attributes, w.find(".attachment-add").attr(r.selector), u.result[0].name); | |
r.setPropByString(r.model.attributes, "FamilyPhotoNew.DeleteInd", false); | |
w.find(".attachment-add").hide(); | |
w.find(".attachment-view").show() | |
}) | |
}) | |
}, 1000) | |
}); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.TokenInput, function () { | |
$.ajax({ | |
url: aP + "datadirect/UsersByRole?format=json&parentRoleId=10102&resultSize=4000", | |
cache: false, | |
success: function (t) { | |
var v, u = null; | |
_.each(t, function (w) { | |
w.FullName = ""; | |
w.FullName += (w.FirstName) ? w.FirstName + " " : ""; | |
w.FullName += w.LastName || ""; | |
w.id = w.Id | |
}); | |
u = r.model.get("EducationalConsultant"); | |
_.each(u, function (w) { | |
w.FullName = ""; | |
w.FullName += (w.FirstName) ? w.FirstName + " " : ""; | |
w.FullName += w.LastName || ""; | |
w.id = w.UserId | |
}); | |
v = "token-input-list"; | |
r.$('[name="EducationalConsultant"]').tokenInput(t, { | |
minChars: 2, | |
searchDelay: 100, | |
preventDuplicates: true, | |
animateDropdown: false, | |
propertyToSearch: "FullName", | |
hintText: "Type to find an educational consultant", | |
classes: { | |
tokenList: v, | |
dropdown: "token-input-dropdown input-xlarge" | |
}, | |
resultsFormatter: function (w) { | |
return "<li>" + w.FullName + "</li>" | |
}, | |
prePopulate: u | |
}) | |
} | |
}) | |
}) | |
}, | |
updateCharacterCounter: function (s) { | |
var t = this, | |
r = t.$(s.currentTarget); | |
r.siblings().find(".characterCounter").html(r.val().length); | |
if (r.val().length > 4000) { | |
r.siblings().find(".characterCounter").addClass("badge-important") | |
} else { | |
r.siblings().find(".characterCounter").removeClass("badge-important") | |
} | |
}, | |
modalUpdate: function (u) { | |
var t = this, | |
v, w, s, r; | |
if (u.eventCurrentTarget.hasClass("attachment-delete")) { | |
t.setPropByString(t.model.attributes, "FamilyPhoto.DeleteInd", true); | |
t.setPropByString(t.model.attributes, "FamilyPhotoNew.DeleteInd", true); | |
u.eventCurrentTarget.parent().hide(); | |
u.eventCurrentTarget.parent().siblings(".attachment-add").show(); | |
return false | |
} | |
if (u.eventCurrentTarget.parent().hasClass("candidate-status")) { | |
v = $('[name="InactiveStatusType\\.InactiveStatusTypeId"]'); | |
s = u.eventCurrentTarget.attr("value"); | |
w = v.closest("div.picklist-container"); | |
if (m.stringToBoolean(s) === false) { | |
t.model.set({ | |
MakeInactiveInd: 1 | |
}); | |
if (!t.getPropByString(t.model.attributes, "InactiveStatusType.InactiveStatusTypeId") && v.length) { | |
r = v[0].value; | |
if (r) { | |
t.setPropByString(t.model.attributes, "InactiveStatusType.InactiveStatusTypeId", r) | |
} | |
} | |
w.show() | |
} else { | |
if (m.stringToBoolean(s) === true) { | |
t.model.set({ | |
MakeInactiveInd: 0 | |
}); | |
t.setPropByString(t.model.attributes, "InactiveStatusType.InactiveStatusTypeId", ""); | |
w.hide() | |
} | |
} | |
} | |
}, | |
modalSave: function (u) { | |
var t = this, | |
s, v, r = $("#infomessage-error"); | |
if (t.model.get("MakeInactiveInd") && t.model.get("ActiveAndEnrollingInd")) { | |
s = "This candidate is expected to enroll at your school and cannot be inactivated at this time. If this is incorrect, update the Candidate Decision before inactivating this candidate."; | |
$("div.modal-body").animate({ | |
scrollTop: 0 | |
}, "fast"); | |
r.html(s).show(); | |
return false | |
} | |
r.html("").hide(); | |
v = new c.Cs.TokenItems(); | |
_.each(t.$('[name="EducationalConsultant"]').tokenInput("get"), function (w) { | |
var x = new c.Ms.TokenItem({ | |
UserId: w.id | |
}); | |
v.add(x) | |
}); | |
t.model.set({ | |
EducationalConsultant: v.toJSON(), | |
Comment: c.Data.prospectInfo.get("Comment") | |
}) | |
}, | |
modalSavedSuccess: function (v) { | |
var u = this, | |
x, s = "", | |
w, t, y, r; | |
if ($("#candidateInfo #enteringyear").length > 0) { | |
if ($("#candidateInfo #enteringyear-select").length > 0) { | |
$("#candidateInfo #enteringyear strong").html(u.model.get("EnteringYear") + ' <span class="caret"></span>'); | |
$("#candidateInfo #enteringyear-select li a").each(function () { | |
if (this.id == u.model.get("ProspectInstanceId")) { | |
$(this).html(u.model.get("EnteringYear")) | |
} | |
}) | |
} else { | |
$("#candidateInfo #enteringyear strong").html(u.model.get("EnteringYear")) | |
} | |
} | |
if ($("#candidateInfo #enteringgrade").length > 0) { | |
x = u.model.get("EnteringGrade").grade_id; | |
for (t = 0; t < u.dictionaries.GradeLevel.length; t++) { | |
if (x == u.dictionaries.GradeLevel[t].dd_id) { | |
w = u.dictionaries.GradeLevel[t].dd_description; | |
if (!isNaN(w)) { | |
y = parseInt(w, 10); | |
r = ["th", "st", "nd", "rd"]; | |
s = w + r[y % 10 > 3 ? 0 : (y % 100 - y % 10 != 10) * y % 10] + " Grade" | |
} else { | |
s = w | |
} | |
break | |
} | |
} | |
$("#enteringgrade strong").html(s) | |
} | |
$(".candidate-header").parent().trigger("renderheader") | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new p.modal2Extend(), p3.Layout.Containers.Modal, true) | |
} | |
}) | |
}, | |
toggleInfo: function (o) { | |
var n = $(o.currentTarget); | |
o.preventDefault(); | |
o.stopPropagation(); | |
n.closest("tr").find(".toggleinfo").slideToggle("fast"); | |
d.Us.SwapChevronClass(n); | |
d.Us.SwapActiveClass(n) | |
}, | |
deleteInquiry: function (p) { | |
p.preventDefault(); | |
p.stopPropagation(); | |
var q = this, | |
o = null, | |
n = $(p.currentTarget); | |
p3.showConfirm("Delete Inquiry", "Wait a minute. Are you really sure you want to delete this inquiry form?<br /><br /><b>This cannot be undone.</b>", null, function () { | |
if (n.hasClass("podium")) { | |
o = new d.Ms.DeletePodiumInquiry({ | |
id: n.data("id") | |
}) | |
} else { | |
if (n.hasClass("onboard")) { | |
o = new d.Ms.DeleteForm({ | |
id: n.data("id") | |
}) | |
} | |
} | |
o.destroy({ | |
success: function () { | |
q.renderData() | |
}, | |
error: function (s, r) { | |
p3.displayError("Error deleting inquiry") | |
} | |
}) | |
}) | |
} | |
}); | |
d.Vs.Visits = Bb.View.extend({ | |
template: "candidate/candidate.record.visits.template.html", | |
initialize: function () { | |
var n = this; | |
this.collection = new d.Cs.Visits(); | |
this.collection.bind("add", function (o) { | |
var p = new d.Vs.Visit({ | |
model: o, | |
dictionaries: n.dictionaries, | |
instanceId: n.options.instanceId | |
}); | |
o.bind("sync", n.renderData, n); | |
p3.rV(p, this.$("#visits"), false) | |
}, this) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click button.create": "createVisit" | |
}, | |
render: function (n) { | |
var p = this, | |
o = 0; | |
$(n).append(p.el); | |
p.dictionaries = { | |
ADMVisitTypes: h.DictionaryData.ADMVisitTypes, | |
dictionary_102: { | |
id: 102, | |
keyName: "user_id", | |
valueName: "user_name", | |
inputParam: "@admissions_staff_id=null,@onBoard_ind=1[i]", | |
dictionary: {} | |
} | |
}; | |
_.each(p.dictionaries, function (q) { | |
var r = new j.Cs.Dictionary(); | |
r.fetch({ | |
data: { | |
dictionaryId: q.id, | |
key: q.keyName, | |
value: q.valueName, | |
inputParam: q.inputParam | |
}, | |
success: function (s) { | |
q.dictionary = s.toJSON(); | |
o++; | |
if (o === _.size(p.dictionaries)) { | |
p.renderData() | |
} | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var n = this; | |
n.collection.reset(); | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({})); | |
n.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: n.options.instanceId | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (n) { | |
d.Us.ToggleSection(n) | |
}, | |
createVisit: function () { | |
var n = this; | |
if (p3.Data.Context.findByTaskId(53624)) { | |
a.Us.AddVisit(null, n.options.instanceId) | |
} else { | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 12, null, function (o) { | |
n.dictionaries.dictionary_127 = o.dictionary_127; | |
n.dictionaries.dictionary_128 = o.dictionary_128; | |
var p = new d.Ms.Visit({ | |
prospectInstanceId: n.options.instanceId, | |
VisitType: { | |
"$type": "clBLL.nAdmissions.VisitType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}); | |
p.bind("sync", n.renderData, n); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "candidate/candidate.record.visit.edit.template.html", | |
model: p, | |
dictionaries: n.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
} | |
} | |
}); | |
d.Vs.Visit = Bb.View.extend({ | |
template: "candidate/candidate.record.visit.template.html", | |
tagName: "tr", | |
initialize: function () { | |
this.model.bind("destroy", this.deleteElement, this); | |
this.model.bind("remove", this.deleteElement, this) | |
}, | |
events: { | |
"click .edit": "editVisit", | |
"click .delete": "deleteVisit", | |
"click .togglebutton": "toggleInfo" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var p = this, | |
n = p.model.get("AttachmentFile"), | |
o = p.model.get("Comment") || (n && n.hasOwnProperty("Attachment") && n.Attachment.length > 0); | |
p3.fT(p.template, function (q) { | |
p.$el.html(q({ | |
model: p.model.toJSON(), | |
hasSlider: o, | |
dictionaries: p.options.dictionaries | |
})) | |
}) | |
}, | |
toggleInfo: function (n) { | |
d.Us.ToggleComments(this, n) | |
}, | |
editVisit: function () { | |
var n = this; | |
if (p3.Data.Context.findByTaskId(53624)) { | |
a.Us.EditVisit(n.model.get("VisitId"), n.model.get("ProspectInstanceId")) | |
} else { | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 12, n.model.get("VisitId"), function (o) { | |
n.options.dictionaries.dictionary_127 = o.dictionary_127; | |
n.options.dictionaries.dictionary_128 = o.dictionary_128; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
n.model.fetch({ | |
data: { | |
prospectInstanceId: n.model.get("ProspectInstanceId") | |
}, | |
cache: false, | |
success: function (p, q) { | |
p3.rV(new c.Vs.Modal({ | |
template: "candidate/candidate.record.visit.edit.template.html", | |
model: n.model, | |
dictionaries: n.options.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
error: function () { | |
p3.displayError("Error loading visit") | |
} | |
}) | |
}) | |
} | |
}, | |
deleteVisit: function (n) { | |
a.Us.DeleteAppointment(this.model) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
d.Vs.Interviews = Bb.View.extend({ | |
template: "candidate/candidate.record.interviews.template.html", | |
initialize: function () { | |
var n = this; | |
this.collection = new d.Cs.Interviews(); | |
this.collection.bind("add", function (p) { | |
var o = new d.Vs.Interview({ | |
model: p, | |
dictionaries: n.dictionaries, | |
instanceId: n.options.instanceId | |
}); | |
p.bind("sync", n.renderData, n); | |
p3.rV(o, this.$("#interviews"), false) | |
}, this) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click button.create": "createInterview" | |
}, | |
render: function (n) { | |
var p = this, | |
o = 0; | |
$(n).append(p.el); | |
p.dictionaries = { | |
ADMInterviewTypes: h.DictionaryData.ADMInterviewTypes, | |
dictionary_102: { | |
id: 102, | |
keyName: "user_id", | |
valueName: "user_name", | |
inputParam: "@admissions_staff_id=null,@onBoard_ind=1[i]", | |
dictionary: {} | |
} | |
}; | |
_.each(p.dictionaries, function (q) { | |
var r = new j.Cs.Dictionary(); | |
r.fetch({ | |
data: { | |
dictionaryId: q.id, | |
key: q.keyName, | |
value: q.valueName, | |
inputParam: q.inputParam | |
}, | |
success: function (s) { | |
q.dictionary = s.toJSON(); | |
o++; | |
if (o === _.size(p.dictionaries)) { | |
p.renderData() | |
} | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var n = this; | |
n.collection.reset(); | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({})); | |
n.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: n.options.instanceId | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (n) { | |
d.Us.ToggleSection(n) | |
}, | |
createInterview: function () { | |
var n = this; | |
if (p3.Data.Context.findByTaskId(53624)) { | |
a.Us.AddInterview(null, n.options.instanceId) | |
} else { | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 7, null, function (o) { | |
n.dictionaries.dictionary_127 = o.dictionary_127; | |
n.dictionaries.dictionary_128 = o.dictionary_128; | |
var p = new d.Ms.Interview({ | |
ProspectInstanceId: n.options.instanceId, | |
InterviewType: { | |
"$type": "clBLL.nAdmissions.InterviewType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}); | |
p.bind("sync", n.renderData, n); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "candidate/candidate.record.interview.edit.template.html", | |
model: p, | |
dictionaries: n.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
} | |
} | |
}); | |
d.Vs.Interview = Bb.View.extend({ | |
template: "candidate/candidate.record.interview.template.html", | |
tagName: "tr", | |
initialize: function () { | |
var n = this; | |
n.model.bind("destroy", n.deleteElement, n); | |
n.model.bind("remove", n.deleteElement, n) | |
}, | |
events: { | |
"click .edit": "editInterview", | |
"click .delete": "deleteInterview", | |
"click .togglebutton": "toggleInfo" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var p = this, | |
n = p.model.get("AttachmentFile"), | |
o = p.model.get("Comment") || (n && n.hasOwnProperty("Attachment") && n.Attachment.length > 0); | |
p3.fT(p.template, function (q) { | |
p.$el.html(q({ | |
model: p.model.toJSON(), | |
hasSlider: o, | |
dictionaries: p.options.dictionaries | |
})) | |
}) | |
}, | |
toggleInfo: function (n) { | |
d.Us.ToggleComments(this, n) | |
}, | |
editInterview: function () { | |
var n = this; | |
if (p3.Data.Context.findByTaskId(53624)) { | |
a.Us.EditInterview(n.model.get("InterviewId"), n.model.get("ProspectInstanceId")) | |
} else { | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 7, n.model.get("InterviewId"), function (o) { | |
n.options.dictionaries.dictionary_127 = o.dictionary_127; | |
n.options.dictionaries.dictionary_128 = o.dictionary_128; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
n.model.fetch({ | |
data: { | |
prospectInstanceId: n.model.get("ProspectInstanceId") | |
}, | |
cache: false, | |
success: function () { | |
p3.rV(new c.Vs.Modal({ | |
template: "candidate/candidate.record.interview.edit.template.html", | |
model: n.model, | |
dictionaries: n.options.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
error: function () { | |
p3.displayError("Error loading interview") | |
} | |
}) | |
}) | |
} | |
}, | |
deleteInterview: function (n) { | |
a.Us.DeleteAppointment(this.model) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
d.Vs.Recommendations = Bb.View.extend({ | |
template: "candidate/candidate.record.recommendations.template.html", | |
initialize: function () { | |
var n = this; | |
this.collection = new d.Cs.Recommendations(); | |
this.collection.bind("add", function (o) { | |
var p = new d.Vs.Recommendation({ | |
model: o, | |
dictionaries: n.dictionaries, | |
instanceId: n.options.instanceId | |
}); | |
o.bind("sync", n.renderData, n); | |
p3.rV(p, this.$("#recommendations"), false) | |
}, this) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click button.create": "createRecommendation" | |
}, | |
render: function (n) { | |
var p = this, | |
o = 0; | |
$(n).append(p.el); | |
p.dictionaries = { | |
dictionary_123: { | |
id: 123, | |
inputParam: [], | |
dictionary: {} | |
}, | |
ADMReferenceTypes: h.DictionaryData.ADMReferenceTypes, | |
dictionary_20: { | |
id: 20, | |
keyName: "country_code", | |
valueName: "country_name", | |
inputParam: [], | |
dictionary: {} | |
} | |
}; | |
_.each(p.dictionaries, function (q) { | |
var r = new j.Cs.Dictionary(); | |
r.fetch({ | |
data: { | |
dictionaryId: q.id, | |
key: q.keyName, | |
value: q.valueName, | |
inputParam: q.inputParam | |
}, | |
success: function (s) { | |
q.dictionary = s.toJSON(); | |
o++; | |
if (o === _.size(p.dictionaries)) { | |
p.renderData() | |
} | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var n = this; | |
n.collection.reset(); | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({})); | |
n.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: n.options.instanceId | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (n) { | |
d.Us.ToggleSection(n) | |
}, | |
createRecommendation: function () { | |
var n = this; | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 4, null, function (o) { | |
n.dictionaries.dictionary_127 = o.dictionary_127; | |
n.dictionaries.dictionary_128 = o.dictionary_128; | |
var p = new d.Ms.Recommendation({ | |
ProspectInstanceId: n.options.instanceId, | |
ReferenceType: { | |
"$type": "clBLL.nAdmissions.ReferenceType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}); | |
p.bind("sync", n.renderData, n); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "candidate/candidate.record.recommendation.edit.template.html", | |
model: p, | |
dictionaries: n.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
} | |
}); | |
d.Vs.Recommendation = Bb.View.extend({ | |
template: "candidate/candidate.record.recommendation.template.html", | |
tagName: "tr", | |
initialize: function () { | |
this.model.bind("destroy", this.deleteElement, this); | |
this.model.bind("remove", this.deleteElement, this) | |
}, | |
events: { | |
"click .togglebutton": "toggleInfo", | |
"click .edit": "editRecommendation", | |
"click .delete": "deleteRecommendation" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var p = this, | |
n = p.model.get("AttachmentFile"), | |
o = p.model.get("Comment") || (n && n.hasOwnProperty("Attachment") && n.Attachment.length > 0); | |
p3.fT(p.template, function (q) { | |
p.$el.html(q({ | |
model: p.model.toJSON(), | |
hasSlider: o, | |
dictionaries: p.options.dictionaries | |
})) | |
}) | |
}, | |
toggleInfo: function (n) { | |
d.Us.ToggleComments(this, n) | |
}, | |
editRecommendation: function () { | |
var n = this; | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 4, n.model.get("ReferenceId"), function (o) { | |
n.options.dictionaries.dictionary_127 = o.dictionary_127; | |
n.options.dictionaries.dictionary_128 = o.dictionary_128; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "candidate/candidate.record.recommendation.edit.template.html", | |
model: n.model, | |
dictionaries: n.options.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
deleteRecommendation: function (n) { | |
var o = this; | |
p3.showConfirm("Delete Recommendation", "Wait a minute. Are you really sure you want to delete this recommendation information?", null, function () { | |
o.model.destroy({ | |
dataParam: { | |
prospectInstanceId: o.options.instanceId | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
d.Vs.TestScores = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.testscores.template.html", | |
initialize: function () { | |
var n = this; | |
this.collection = new d.Cs.TestScores(); | |
this.collection.bind("add", function (o) { | |
var p = new d.Vs.TestScore({ | |
model: o, | |
dictionaries: n.dictionaries, | |
userId: n.options.userId, | |
instanceId: n.options.instanceId | |
}); | |
o.bind("sync", n.renderData, n); | |
p3.rV(p, this.$("#testscores"), false) | |
}, this) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click button.create": "createTestScore" | |
}, | |
render: function (n) { | |
var p = this, | |
o = 0; | |
$(n).append(p.el); | |
p.dictionaries = { | |
dictionary_105: { | |
id: 105, | |
keyName: "pk", | |
valueName: "short_description", | |
inputParam: [], | |
dictionary: {} | |
}, | |
dictionary_102: { | |
id: 102, | |
keyName: "user_id", | |
valueName: "user_name", | |
inputParam: "@admissions_staff_id=null,@onBoard_ind=1[i]", | |
dictionary: {} | |
} | |
}; | |
_.each(p.dictionaries, function (q) { | |
var r = new j.Cs.Dictionary(); | |
r.fetch({ | |
data: { | |
dictionaryId: q.id, | |
key: q.keyName, | |
value: q.valueName, | |
inputParam: q.inputParam | |
}, | |
success: function (s) { | |
q.dictionary = s.toJSON(); | |
o++; | |
if (o === _.size(p.dictionaries)) { | |
p.renderData() | |
} | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var n = this; | |
n.collection.reset(); | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({})); | |
n.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: n.options.userId | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (n) { | |
d.Us.ToggleSection(n) | |
}, | |
createTestScore: function () { | |
var n = this; | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 2, null, function (o) { | |
n.dictionaries.dictionary_127 = o.dictionary_127; | |
n.dictionaries.dictionary_128 = o.dictionary_128; | |
var p = new d.Ms.TestScore({ | |
userId: n.options.userId, | |
prospectInstanceId: n.options.instanceId, | |
Test: { | |
"$type": "clBLL.nAdmissions.Test, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}); | |
p.bind("sync", n.renderData, n); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "admissions/candidate.detail.profile.testscore.edit.template.html", | |
model: p, | |
dictionaries: n.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
} | |
}); | |
d.Vs.TestScore = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.testscore.template.html", | |
tagName: "tr", | |
initialize: function () { | |
this.model.bind("destroy", this.deleteElement, this); | |
this.model.bind("remove", this.deleteElement, this) | |
}, | |
events: { | |
"click .edit": "editTestScore", | |
"click .delete": "deleteTestScore", | |
"click .togglebutton": "toggleInfo" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var p = this, | |
n = p.model.get("AttachmentFile"), | |
o = p.model.get("Comment") || (n && n.hasOwnProperty("Attachment") && n.Attachment.length > 0); | |
p3.fT(p.template, function (q) { | |
p.$el.html(q({ | |
model: p.model.toJSON(), | |
hasSlider: o, | |
dictionaries: p.options.dictionaries | |
})) | |
}) | |
}, | |
toggleInfo: function (n) { | |
d.Us.ToggleComments(this, n) | |
}, | |
editTestScore: function () { | |
var n = this; | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 2, n.model.get("TestScoreId"), function (o) { | |
n.options.dictionaries.dictionary_127 = o.dictionary_127; | |
n.options.dictionaries.dictionary_128 = o.dictionary_128; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "admissions/candidate.detail.profile.testscore.edit.template.html", | |
model: n.model, | |
dictionaries: n.options.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
deleteTestScore: function (n) { | |
var o = this; | |
p3.showConfirm("Delete Test Score", "Wait a minute. Are you really sure you want to delete this test score information?", null, function () { | |
o.model.destroy({ | |
dataParam: { | |
userId: o.options.userId | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
d.Vs.Interests = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.interests.template.html", | |
initialize: function () { | |
var n = this; | |
n.collection = new d.Cs.Interests() | |
}, | |
events: { | |
"click .togglebutton": "toggleInfo", | |
"click #manageInterests": "manage" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var n = this; | |
n.collection.reset(); | |
p3.fT(n.template, function (o) { | |
n.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: n.options.userId | |
}, | |
success: function (p) { | |
n.$el.html(o({ | |
collection: n.collection | |
})) | |
} | |
}) | |
}) | |
}, | |
toggleInfo: function (o) { | |
var n = $(o.currentTarget); | |
o.preventDefault(); | |
o.stopPropagation(); | |
n.closest("tr").next("tr").find(".toggleinfo").slideToggle("fast"); | |
d.Us.SwapChevronClass(n); | |
d.Us.SwapActiveClass(n) | |
}, | |
manage: function () { | |
var o = this, | |
n = { | |
userId: o.options.userId, | |
returnModel: true | |
}; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new d.Vs.ManageInterestsModal({ | |
template: "admissions/candidate.detail.profile.interests.manage.template.html", | |
collection: o.collection, | |
layoutView: o.options.layoutView, | |
interestsView: o, | |
dataParam: n | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}); | |
d.Vs.Interest = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.interest.template.html", | |
tagName: "tr", | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var n = this; | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({ | |
model: n.model.toJSON(), | |
dictionaries: n.options.dictionaries | |
})) | |
}) | |
} | |
}); | |
d.Vs.ManageInterestsModal = Bb.View.extend({ | |
initialize: function (n) { | |
var o = this; | |
o.collection.defaults = o.collection.toJSON() | |
}, | |
events: { | |
"click button.cancel": "cancelCollection", | |
"click button.save": "saveCollection", | |
"click a.toggleLink": "toggleSection" | |
}, | |
render: function (n) { | |
$(n).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var n = this; | |
p3.fT(n.options.template, function (p) { | |
var o = {}; | |
o.collection = n.collection; | |
o.access = n.options.access; | |
o.layoutView = n.options.layoutView; | |
o.dictionaries = n.options.dictionaries; | |
n.$el.html(p(o)); | |
$(".required-indicator").tooltip(); | |
_.each(n.collection.models, function (r) { | |
var q = new d.Vs.InterestEdit({ | |
model: r, | |
layoutView: n.options.layoutView | |
}); | |
p3.rV(q, n.$(".detail-" + q.model.get("CategoryId")), false) | |
}) | |
}) | |
}, | |
toggleSection: function (n) { | |
$(n.currentTarget).siblings(".toggledetail").slideToggle("fast", function () { | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}); | |
return false | |
}, | |
cancelCollection: function () { | |
this.collection.reset(this.collection.defaults) | |
}, | |
saveCollection: function () { | |
var p = this, | |
o = true, | |
n = p.$(".save"); | |
n.button("loading"); | |
_.each(p.collection.models, function (q) { | |
q.isValid(true); | |
if (!q.isValid(true)) { | |
o = false | |
} | |
}); | |
if (o) { | |
p.collection.save({ | |
dataParam: p.options.dataParam, | |
success: function (q, r, s) { | |
$(p.options.interestsView.el).find(".detail").empty(); | |
p.options.interestsView.renderData(); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function (r, q) { | |
n.button("reset") | |
} | |
}) | |
} else { | |
n.button("reset") | |
} | |
} | |
}); | |
d.Vs.InterestEdit = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.interest.edit.template.html", | |
tagName: "tr", | |
initialize: function () { | |
var n = this; | |
Bb.Validation.bind(n, { | |
forceUpdate: true, | |
selector: "id" | |
}) | |
}, | |
events: { | |
"change textarea": "updateModel", | |
"change input": "updateModel", | |
"change select": "updateModel", | |
"change .interestOption": "checkShown", | |
"keyup textarea": "updateCharacterCounter", | |
checkshown: "checkShown" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(this.el); | |
p3.fT(o.template, function (q) { | |
o.$el.html(q({ | |
model: o.model.toJSON(), | |
userId: o.options.layoutView.userId | |
})); | |
o.$("textarea#CommentCandidate").trigger(jQuery.Event("keyup")); | |
o.$("textarea#CommentSchool").trigger(jQuery.Event("keyup")); | |
var p = false; | |
_.each(o.$(".interestOption"), function (r) { | |
if ($(r).prop("type") === "checkbox") { | |
if (m.stringToBoolean($(r).prop("checked")) === true) { | |
p = true | |
} | |
} else { | |
if ($(r).val() != "") { | |
p = true | |
} | |
} | |
}); | |
if (m.stringToBoolean(p) === true) { | |
o.$(".interestCheckbox").prop("disabled", "disabled") | |
} else { | |
o.$(".interestCheckbox").prop("disabled", "") | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
checkShown: function (n) { | |
n.stopPropagation(); | |
var q = this, | |
p = $(n.currentTarget).closest("table"), | |
o = false; | |
_.each(p.find(".interestOption"), function (r) { | |
if ($(r).prop("type") === "checkbox") { | |
if (m.stringToBoolean($(r).prop("checked")) === true) { | |
o = true | |
} | |
} else { | |
if ($(r).val() != "") { | |
o = true | |
} | |
} | |
}); | |
if (m.stringToBoolean(o) === true) { | |
p.find(".interestCheckbox").prop("disabled", "disabled"); | |
p.find(".interestCheckbox").prop("checked", "checked"); | |
q.model.get("Interest").InterestShown = true | |
} else { | |
p.find(".interestCheckbox").prop("disabled", "") | |
} | |
}, | |
updateCharacterCounter: function (o) { | |
var p = this, | |
n = p.$(o.currentTarget); | |
o.stopPropagation(); | |
o.preventDefault(); | |
n.siblings("p").find(".characterCounter").html(n.val().length); | |
if (n.val().length > 2000) { | |
n.siblings("p").find(".characterCounter").addClass("badge-important") | |
} else { | |
n.siblings("p").find(".characterCounter").removeClass("badge-important") | |
} | |
}, | |
updateModel: function (o) { | |
var p = $(o.currentTarget), | |
t, n = {}, | |
q = p.prop("id").split("."), | |
s, r, u; | |
if (p.prop("type") === "checkbox") { | |
t = p.prop("checked") | |
} else { | |
if (p.hasClass("date-input")) { | |
if (p.siblings().hasClass("time-input")) { | |
s = p.siblings(".time-input").prop("value"); | |
r = p.prop("value"); | |
t = r + " " + s | |
} else { | |
t = p.prop("value") | |
} | |
} else { | |
if (p.hasClass("time-input")) { | |
if (p.siblings().hasClass("date-input")) { | |
r = p.siblings(".date-input").prop("value"); | |
s = p.prop("value"); | |
t = r + " " + s | |
} else { | |
t = p.prop("value") | |
} | |
} else { | |
if (p.hasClass("url-input") && (p.prop("value") != "")) { | |
u = /((http[s]?):\/\/|mailto:)/; | |
t = !u.test(p.prop("value")) ? "http://" + p.prop("value") : p.prop("value") | |
} else { | |
if (p.prop("value") === "true") { | |
t = true | |
} else { | |
if (p.prop("value") === "false") { | |
t = false | |
} else { | |
t = p.prop("value") | |
} | |
} | |
} | |
} | |
} | |
} | |
if (q.length < 2) { | |
n[q[0]] = t; | |
this.model.set(n) | |
} else { | |
this.model.get(q[0])[q[1]] = t; | |
if (this.model.isValid(p.prop("id"))) { | |
Bb.Validation.callbacks.valid(this, p.prop("id"), "id") | |
} else { | |
Bb.Validation.callbacks.invalid(this, p.prop("id"), "Entered value contains an error.", "id") | |
} | |
} | |
} | |
}); | |
d.Vs.Events = Bb.View.extend({ | |
template: "candidate/candidate.record.events.template.html", | |
initialize: function () { | |
var n = this; | |
this.collection = new d.Cs.Events(); | |
this.collection.bind("add", function (p) { | |
var o = new d.Vs.Event({ | |
model: p, | |
dictionaries: n.dictionaries, | |
instanceId: n.options.instanceId | |
}); | |
p.bind("sync", n.renderData, n); | |
p3.rV(o, this.$("#events"), false) | |
}, this) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click button.create": "createEvent" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
j.Us.Fetch({ | |
ADMEventTypes: { | |
data: new j.Cs.Dictionary(), | |
dataParams: h.DictionaryData.ADMEventTypes | |
} | |
}, function (p, r, q) { | |
if (q) { | |
p3.displayError("There was an error loading event data.") | |
} | |
o.dictionaries = p; | |
o.renderData() | |
}) | |
}, | |
renderData: function () { | |
var n = this; | |
n.collection.reset(); | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({})); | |
n.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: n.options.instanceId | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (n) { | |
d.Us.ToggleSection(n) | |
}, | |
createEvent: function () { | |
var n = this; | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 17, null, function (o) { | |
var p, q; | |
n.dictionaries.dictionary_127 = o.dictionary_127; | |
n.dictionaries.dictionary_128 = o.dictionary_128; | |
p = new d.Ms.Event({ | |
prospectInstanceId: n.options.instanceId, | |
EventType: { | |
"$type": "clBLL.nAdmissions.EventType, clBLL" | |
} | |
}); | |
p.bind("sync", n.renderData, n); | |
q = new d.Vs.EventEditModal({ | |
model: p, | |
dictionaries: n.dictionaries | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(q, p3.Layout.Containers.Modal, true) | |
}) | |
} | |
}); | |
d.Vs.Event = Bb.View.extend({ | |
template: "candidate/candidate.record.event.template.html", | |
tagName: "tr", | |
events: { | |
"click .edit": "editEvent", | |
"click .delete": "deleteEvent", | |
"click .togglebutton": "toggleInfo" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var n = this; | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({ | |
model: n.model.toJSON(), | |
dictionaries: n.options.dictionaries | |
})) | |
}) | |
}, | |
toggleInfo: function (n) { | |
d.Us.ToggleComments(this, n) | |
}, | |
editEvent: function () { | |
var n = this; | |
d.Us.ChecklistDictionaryGet(n.options.instanceId, 17, n.model.get("EventId"), function (o) { | |
n.options.dictionaries.dictionary_127 = o.dictionary_127; | |
n.options.dictionaries.dictionary_128 = o.dictionary_128; | |
var p = new d.Vs.EventEditModal({ | |
model: n.model, | |
dictionaries: n.options.dictionaries | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(p, p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
deleteEvent: function (n) { | |
var o = this; | |
p3.showConfirm("Delete Event", "Wait a minute. Are you really sure you want to delete this event information?", null, function () { | |
var p = { | |
prospectInstanceId: o.options.instanceId | |
}; | |
o.model.destroy({ | |
dataParam: p, | |
success: function () { | |
o.deleteElement() | |
}, | |
error: function () { | |
p3.displayError("There was an error deleting this event.") | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
d.Vs.EventEditModal = k.Vs.Modal2.extend({ | |
template: "candidate/candidate.record.event.edit.template.html", | |
events: { | |
"keyup textarea": "updateCharacterCounter", | |
'change select[name="ChecklistItemId"]': "toggleChecklistStatus" | |
}, | |
modalRendered: function (o) { | |
var n = this; | |
f.Us.initialize(".date-input", { | |
yearRange: "-20:+2" | |
}); | |
l.Us.initialize(".time-input"); | |
if (n.$('[name="ChecklistItemId"] option:selected').val() != "") { | |
n.$(".checklist-status").removeClass("hide") | |
} | |
}, | |
updateCharacterCounter: function (o) { | |
var p = this, | |
n = p.$(o.currentTarget); | |
o.stopPropagation(); | |
o.preventDefault(); | |
n.siblings("p").find(".characterCounter").html(n.val().length); | |
if (n.val().length > 4000) { | |
n.siblings("p").find(".characterCounter").addClass("badge-important") | |
} else { | |
n.siblings("p").find(".characterCounter").removeClass("badge-important") | |
} | |
}, | |
toggleChecklistStatus: function (n) { | |
var o = this; | |
if (o.$(n.target).prop("value") == "") { | |
o.$('[name="ChecklistItemId"]').val(""); | |
o.$(".checklist-status").addClass("hide") | |
} else { | |
o.$(".checklist-status").removeClass("hide") | |
} | |
}, | |
modalSavedSuccess: function () { | |
var n = this; | |
n.trigger("modelSaved") | |
} | |
}); | |
d.Vs.MiscellaneousFiles = Bb.View.extend({ | |
template: "candidate/candidate.record.miscellaneous.files.template.html", | |
initialize: function () { | |
var n = this; | |
this.collection = new d.Cs.MiscellaneousFiles(); | |
this.collection.bind("add", function (p) { | |
var o = new d.Vs.MiscellaneousFile({ | |
model: p | |
}); | |
p.bind("sync", n.renderData, n); | |
p3.rV(o, this.$("#miscellaneous-files"), false) | |
}, this) | |
}, | |
events: { | |
"click button.create": "createMiscFile" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
o.renderData() | |
}, | |
renderData: function () { | |
var n = this; | |
n.collection.reset(); | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({})); | |
n.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: n.options.instanceId | |
} | |
}) | |
}) | |
}, | |
createMiscFile: function () { | |
var q = this, | |
o, p, n = []; | |
o = new d.Ms.MiscellaneousFile(); | |
o.bind("sync", q.renderData, q); | |
d.Us.ChecklistDictionaryGet(q.options.instanceId, 18, null, function (r) { | |
n.dictionary_127 = r.dictionary_127; | |
n.dictionary_128 = r.dictionary_128; | |
j.Us.Fetch({ | |
FileTypes: { | |
data: new j.Cs.Dictionary(), | |
dataParams: h.DictionaryData.ProspectFileType | |
} | |
}, function (s, u, t) { | |
if (t) { | |
p3.displayError("There was an error loading data.") | |
} | |
if (u) { | |
p = new d.Vs.MiscellaneousFileModal({ | |
model: o, | |
dictionaries: Object.assign({}, s, n), | |
ProspectInstanceId: q.options.instanceId | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(p, p3.Layout.Containers.Modal, true) | |
} | |
}) | |
}) | |
} | |
}); | |
d.Vs.MiscellaneousFile = Bb.View.extend({ | |
template: "candidate/candidate.record.miscellaneous.file.template.html", | |
tagName: "tr", | |
initialize: function () { | |
this.model.bind("destroy", this.deleteElement, this); | |
this.model.bind("remove", this.deleteElement, this) | |
}, | |
events: { | |
"click .togglebutton": "toggleInfo", | |
"click .edit": "editMiscFile", | |
"click .delete": "deleteMiscFile" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
o.renderData() | |
}, | |
renderData: function () { | |
var p = this, | |
n = p.model.get("AttachmentFile"), | |
o = p.model.get("Comment") || (n && n.hasOwnProperty("Attachment") && n.Attachment.length > 0); | |
p3.fT(p.template, function (q) { | |
p.$el.html(q({ | |
model: p.model.toJSON(), | |
hasSlider: o | |
})) | |
}) | |
}, | |
toggleInfo: function (n) { | |
d.Us.ToggleComments(this, n) | |
}, | |
editMiscFile: function () { | |
var p = this, | |
o, n = []; | |
d.Us.ChecklistDictionaryGet(p.model.get("ProspectInstanceId"), 18, p.model.get("ProspectFileId"), function (q) { | |
n.dictionary_127 = q.dictionary_127; | |
n.dictionary_128 = q.dictionary_128; | |
j.Us.Fetch({ | |
FileTypes: { | |
data: new j.Cs.Dictionary(), | |
dataParams: h.DictionaryData.ProspectFileType | |
} | |
}, function (r, t, s) { | |
if (s) { | |
p3.displayError("There was an error loading data.") | |
} | |
if (t) { | |
o = new d.Vs.MiscellaneousFileModal({ | |
model: p.model, | |
dictionaries: Object.assign({}, r, n), | |
ProspectInstanceId: p.model.attributes.ProspectInstanceId | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(o, p3.Layout.Containers.Modal, true) | |
} | |
}) | |
}) | |
}, | |
deleteMiscFile: function (n) { | |
var o = this; | |
p3.showConfirm("Delete Recommendation", "Wait a minute. Are you really sure you want to delete this recommendation information?", null, function () { | |
o.model.destroy({ | |
dataParam: { | |
prospectInstanceId: o.model.attributes.ProspectInstanceId | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
d.Vs.MiscellaneousFileModal = k.Vs.Modal2.extend({ | |
template: "candidate/candidate.record.miscellaneous.file.edit.template.html", | |
events: { | |
"keyup textarea": "updateCharacterCounter", | |
'change select[name="ChecklistItemId"]': "toggleChecklistStatus", | |
"click .attachment-delete": "deleteAttachment" | |
}, | |
modalRendered: function () { | |
var n = this; | |
_.each(n.$("textarea.counter-input"), function (o) { | |
$(o).trigger($.Event("keyup")) | |
}); | |
n.initializeFileUpload_File(); | |
n.model.attributes.ProspectInstanceId = n.options.ProspectInstanceId | |
}, | |
updateCharacterCounter: function (o) { | |
var p = this, | |
n = p.$(o.currentTarget); | |
o.stopPropagation(); | |
o.preventDefault(); | |
n.siblings("p").find(".characterCounter").html(n.val().length); | |
if (n.val().length > 4000) { | |
n.siblings("p").find(".characterCounter").addClass("badge-important") | |
} else { | |
n.siblings("p").find(".characterCounter").removeClass("badge-important") | |
} | |
}, | |
toggleChecklistStatus: function (n) { | |
var o = this; | |
if (o.$(n.target).prop("value") == "") { | |
o.$('[name="ChecklistItemId"]').val(""); | |
o.$(".checklist-status").addClass("hide") | |
} else { | |
o.$(".checklist-status").removeClass("hide") | |
} | |
}, | |
deleteAttachment: function () { | |
var n = this; | |
n.model.unset("AttachmentFile"); | |
n.modalRendered() | |
}, | |
modalSavedSuccess: function () { | |
var n = this; | |
n.trigger("modelSaved") | |
} | |
}); | |
d.Us.ChecklistDictionaryGet = function (p, r, q, n) { | |
var o = ""; | |
if (q) { | |
o = ",data_collection_pk=" + q + "[i]" | |
} | |
g.Us.FetchAll({ | |
dictionary_127: { | |
id: 127, | |
keyName: "checklist_item_id", | |
valueName: "checklist_item_description", | |
inputParam: "prospect_instance_id=" + p + "[i],data_collection_type_id=" + r + "[i]" + o | |
}, | |
dictionary_128: { | |
id: 128, | |
keyName: "item_status_id", | |
valueName: "item_status_desc", | |
inputParam: "data_collection_type_id=" + r + "[i]" | |
} | |
}, function (s) { | |
n(s) | |
}) | |
}; | |
d.Us.EditEvent = function (o, q) { | |
var p, n = new d.Ms.Event({ | |
EventId: o | |
}); | |
n.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: q | |
}, | |
success: function () { | |
p = { | |
ADMEventTypes: { | |
data: new j.Cs.Dictionary(), | |
dataParams: h.DictionaryData.ADMEventTypes | |
} | |
}; | |
j.Us.Fetch(p, function (r, t, s) { | |
d.Us.ChecklistDictionaryGet(q, 17, o, function (u) { | |
r.dictionary_127 = u.dictionary_127; | |
r.dictionary_128 = u.dictionary_128; | |
var v = new d.Vs.EventEditModal({ | |
model: n, | |
dictionaries: r | |
}); | |
k.Us.renderModal(v) | |
}) | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error opening event") | |
} | |
}) | |
}; | |
d.Us.ToggleComments = function (p, o) { | |
var n = $(o.currentTarget); | |
o.stopPropagation(); | |
o.preventDefault(); | |
p.$(".toggleinfo").slideToggle("fast"); | |
d.Us.SwapActiveClass(n); | |
d.Us.SwapChevronClass(n) | |
}; | |
d.Us.ToggleSection = function (o) { | |
var n = $(o.currentTarget); | |
o.preventDefault(); | |
o.stopPropagation(); | |
n.siblings(".toggledetail").slideToggle("fast"); | |
d.Us.SwapActiveClass(n) | |
}; | |
d.Us.SwapActiveClass = function (n) { | |
if (n.hasClass("active")) { | |
n.removeClass("active") | |
} else { | |
n.addClass("active") | |
} | |
}; | |
d.Us.SwapChevronClass = function (n) { | |
if (n.hasClass("fa-chevron-up")) { | |
n.removeClass("fa-chevron-up"); | |
n.addClass("fa-chevron-down") | |
} else { | |
if (n.hasClass("fa-chevron-down")) { | |
n.removeClass("fa-chevron-down"); | |
n.addClass("fa-chevron-up") | |
} | |
} | |
}; | |
Hb.registerHelper("dictionaryCustom", function (s, p, n) { | |
var q, r = p["DictionaryCustom_" + n], | |
o; | |
if (_.isArray(r)) { | |
for (o = 0; o < r.length; o++) { | |
if (s == r[o].dd_id) { | |
q = r[o].dd_description; | |
break | |
} | |
} | |
} | |
return q | |
}); | |
Hb.registerHelper("eachDictionaryCustom", function (u, s, n, t) { | |
var o = "", | |
v = s["DictionaryCustom_" + n], | |
p, r, q; | |
if (_.isArray(v)) { | |
for (p = 0, r = v.length; p < r; p++) { | |
q = v[p]; | |
q.selectedId = u; | |
o += t.fn(q) | |
} | |
} | |
return o | |
}) | |
}(p3.module("admissions/candidateprofile"))); | |
(function (b) { | |
var f = p3.module("utilities/smodal"), | |
e = p3.module("utilities/multifetch"), | |
h = p3.module("utilities/validate"), | |
a = p3.module("shared/base"), | |
c = p3.Us.Enum, | |
g = p3.Us.Tools, | |
d = p3.Us.InfoMessageLibrary; | |
b.Data.SettingType = { | |
CONNECTION: { | |
Name: "Connection Types", | |
Value: 1 | |
}, | |
EVENT: { | |
Name: "Event Types", | |
Value: 2 | |
}, | |
INACTIVATION: { | |
Name: "Candidate Inactivation Reasons", | |
Value: 3 | |
}, | |
INTERVIEW: { | |
Name: "Interview Types", | |
Value: 4 | |
}, | |
RECOMMENDATION: { | |
Name: "Recommendation Types", | |
Value: 5, | |
Sub: { | |
Required: false, | |
Unique: true | |
}, | |
Dictionaries: ["SaoRecommendationType"], | |
ModalTemplate: "admprofilesettings/admprofilesettings.type.edit.recommendation.template.html", | |
ModalRowTemplate: "admprofilesettings/admprofilesettings.type.edit.row.recommendation.template.html" | |
}, | |
SCHOOLPROGRAM: { | |
Name: "School Program Types", | |
Value: 6 | |
}, | |
SCHOOL: { | |
Name: "School Types", | |
Value: 7 | |
}, | |
SPECIALRELATIONSHIP: { | |
Name: "Special Relationship Types", | |
Value: 8 | |
}, | |
VISIT: { | |
Name: "Visit Types", | |
Value: 9 | |
}, | |
FINANCIALAID: { | |
Name: "Financial Aid", | |
Value: 10 | |
}, | |
REASONDECLINED: { | |
Name: "Reason for Declining", | |
Value: 11 | |
}, | |
FINANCIALAIDDECISIONS: { | |
Name: "Financial Aid Decisions", | |
Value: 12, | |
Sub: { | |
Required: true, | |
Unique: false | |
}, | |
Dictionaries: ["ADMFinancialAidDecisionType"], | |
ModalTemplate: "admprofilesettings/admprofilesettings.type.edit.financialaiddecisions.template.html", | |
ModalRowTemplate: "admprofilesettings/admprofilesettings.type.edit.row.financialaiddecisions.template.html" | |
}, | |
VISITPARTICIPANT: { | |
Name: "Visit Participant Types", | |
Value: 13 | |
}, | |
INTERVIEWPARTICIPANT: { | |
Name: "Interview Participant Types", | |
Value: 14 | |
}, | |
MISCFILETYPE: { | |
Name: "Miscellaneous File Types", | |
Value: 15 | |
} | |
}; | |
b.Ms.ProfileSettingType = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ProfileSettingTypeId", | |
validation: { | |
ShortDescription: [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}, { | |
maxLength: 50 | |
}], | |
SubIdentifier: [{ | |
required: function () { | |
return _.contains([12], this.get("SettingTypeId")) ? true : false | |
}, | |
msg: d.P3.RequiredInfoNotEntered | |
}, { | |
fn: function (l, i, j) { | |
if (_.contains([5], this.get("SettingTypeId"))) { | |
var k = _.chain(this.collection.toJSON()).pluck("SubIdentifier").compact().countBy().value(); | |
if (k[l] > 1) { | |
return "Each SAO recommendation type can only be used once." | |
} | |
} | |
} | |
}] | |
} | |
}); | |
b.Cs.ProfileSettingTypes = Bbc.extend({ | |
sync: a.DataParamSync, | |
model: b.Ms.ProfileSettingType, | |
url: function () { | |
return aP + "AdmProfileSettings/AdmProfileSettingTypeList/" | |
}, | |
isValid: f.Us.isValidCollection | |
}); | |
b.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.template.html", | |
render: function (i) { | |
var j = this; | |
p3.setTitle("Candidate Profile Settings"); | |
$(i).html(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({})); | |
p3.rV(new b.Vs.Main(), i.$(".col-center"), false) | |
}) | |
} | |
}); | |
b.Vs.Main = Bb.View.extend({ | |
template: "admprofilesettings/admprofilesettings.main.template.html", | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var j = this, | |
i; | |
p3.fT(j.template, function (k) { | |
j.$el.html(k({})); | |
i = j.$(".candidate-settings-table tbody"); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.INACTIVATION | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.CONNECTION | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.EVENT | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.FINANCIALAID | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.FINANCIALAIDDECISIONS | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.INTERVIEW | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.INTERVIEWPARTICIPANT | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.MISCFILETYPE | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.REASONDECLINED | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.RECOMMENDATION | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.SCHOOLPROGRAM | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.SCHOOL | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.SPECIALRELATIONSHIP | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.VISIT | |
}), i, false); | |
p3.rV(new b.Vs.Type({ | |
collection: new b.Cs.ProfileSettingTypes(), | |
settingType: b.Data.SettingType.VISITPARTICIPANT | |
}), i, false) | |
}) | |
} | |
}); | |
b.Vs.Type = Bb.View.extend({ | |
template: "admprofilesettings/admprofilesettings.type.template.html", | |
tagName: "tr", | |
initialize: function (i) { | |
var j = this; | |
j.settingType = j.options.settingType; | |
j.modalTemplate = j.settingType.ModalTemplate || "admprofilesettings/admprofilesettings.type.edit.template.html"; | |
j.modalRowTemplate = j.settingType.ModalRowTemplate || "admprofilesettings/admprofilesettings.type.edit.row.template.html" | |
}, | |
events: { | |
"click .edit": "edit", | |
"click .toggleLink": "toggleSection" | |
}, | |
render: function (i) { | |
var j = this; | |
j.dictionaries = {}; | |
j.settingOpen = false; | |
$(i).append(j.el); | |
if (j.settingType.Dictionaries) { | |
_.each(j.settingType.Dictionaries, function (l, k) { | |
j.dictionaries[l] = { | |
data: new e.Cs.Dictionary(), | |
dataParams: c.DictionaryData[l] | |
} | |
}); | |
e.Us.Fetch(j.dictionaries, function (k, m, l) { | |
j.dictionaries = k; | |
j.renderData() | |
}) | |
} else { | |
j.renderData() | |
} | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.collection.fetch({ | |
data: { | |
settingTypeId: i.settingType.Value | |
}, | |
update: true, | |
cache: false, | |
success: function (k, l) { | |
i.$el.html(j({ | |
collection: i.collection.toJSON(), | |
settingName: i.settingType.Name, | |
settingOpen: i.settingOpen | |
})) | |
} | |
}) | |
}) | |
}, | |
edit: function (i) { | |
var k = this, | |
j; | |
j = f.Vs.Modal2.extend({ | |
template: k.modalTemplate, | |
collection: k.collection, | |
dictionaries: k.dictionaries, | |
variables: { | |
settingName: k.settingType.Name | |
}, | |
initSortable: function () { | |
var l = this; | |
l.$(".ui-sortable").sortable({ | |
startIndex: 0, | |
stopIndex: 0, | |
items: ".sort-drag-block", | |
axis: "y", | |
distance: 5, | |
containment: ".ui-sortable", | |
appendTo: "#edit-types-holder", | |
placeholder: "sortable-placeholder", | |
helper: function (n, o) { | |
var m = '<table class="table table-striped sort-drag-block-helper"><tbody>' + o.context.outerHTML + "</tbody></table>"; | |
return m | |
}, | |
start: function (m, n) { | |
this.startIndex = n.item.index() | |
}, | |
update: function (m, n) { | |
this.stopIndex = n.item.index(); | |
l.collection.models = g.arrayMove(l.collection.models, this.startIndex, this.stopIndex) | |
} | |
}).disableSelection() | |
}, | |
modalRendered: function (m) { | |
var l = this; | |
l.collection.bind("add", function (o) { | |
var n = new b.Vs.EditType({ | |
model: o, | |
selector: l.selector, | |
template: k.modalRowTemplate, | |
dictionaries: k.dictionaries | |
}); | |
p3.rV(n, l.$(".ui-sortable"), false) | |
}, l); | |
l.collection.each(function (o) { | |
var n = new b.Vs.EditType({ | |
model: o, | |
selector: l.selector, | |
template: k.modalRowTemplate, | |
dictionaries: k.dictionaries | |
}); | |
p3.rV(n, l.$(".ui-sortable"), false) | |
}); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
_.defer(function () { | |
l.initSortable() | |
}) | |
}) | |
}, | |
modalUpdate: function (p) { | |
var n = this, | |
m, q, l, r, o; | |
if (p.eventCurrentTarget.hasClass("add")) { | |
m = true; | |
q = n.$('[name="ShortDescriptionAdd"]'); | |
l = n.$('[name="ActiveIndAdd"]'); | |
r = n.$('[name="SubIdentifierAdd"]'); | |
n.fieldValid("ShortDescriptionAdd"); | |
if (q.val() == "") { | |
n.fieldInvalid("ShortDescriptionAdd", "Required field for adding"); | |
m = false | |
} | |
if (k.settingType.Sub && k.settingType.Sub.Required) { | |
n.fieldValid("SubIdentifierAdd"); | |
if (r.val() == "") { | |
n.fieldInvalid("SubIdentifierAdd", "Required field for adding"); | |
m = false | |
} | |
} | |
if (m) { | |
o = { | |
ShortDescription: q.val(), | |
ActiveInd: l.hasClass("active"), | |
LockInd: 0 | |
}; | |
if (k.settingType.Sub) { | |
o.SubIdentifier = g.stringToInt(r.val()) | |
} | |
n.collection.add(o); | |
q.val(""); | |
if (k.settingType.Sub) { | |
r.val("") | |
} | |
} | |
return false | |
} | |
if (p.eventCurrentTarget.attr("name") === "ShortDescriptionAdd") { | |
return false | |
} | |
if (p.eventCurrentTarget.attr("name") === "ActiveIndAdd") { | |
return false | |
} | |
if (p.eventCurrentTarget.attr("name") === "SubIdentifierAdd") { | |
return false | |
} | |
if (p.eventCurrentTarget.attr("name") === "ShortDescription") { | |
return false | |
} | |
if (p.eventCurrentTarget.attr("name") === "SubIdentifier") { | |
return false | |
} | |
if (p.eventCurrentTarget.attr("name") === "ActiveInd") { | |
return false | |
} | |
if (p.eventCurrentTarget.attr("name") === "DeleteInd") { | |
return false | |
} | |
if (p.eventCurrentTarget.hasClass("disabled")) { | |
return false | |
} | |
}, | |
saveModel: function () { | |
var l = this; | |
if (l.collection.isValid()) { | |
l.collection.save({ | |
dataParam: { | |
settingTypeId: k.settingType.Value, | |
returnModel: true | |
}, | |
success: function (m) { | |
p3.fT(k.template, function (n) { | |
k.$(k.el).empty(); | |
k.collection.reset(m); | |
k.$el.html(n({ | |
collection: k.collection.toJSON(), | |
settingName: k.settingType.Name, | |
settingOpen: k.settingOpen | |
})) | |
}); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function (n, m) { | |
k.$(".save").button("reset") | |
} | |
}) | |
} | |
return false | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new j(), p3.Layout.Containers.Modal, true) | |
}, | |
toggleSection: function (j) { | |
j.preventDefault(); | |
j.stopPropagation(); | |
var k = this, | |
i = $(j.currentTarget); | |
i.siblings(".toggledetail").slideToggle("fast"); | |
i.find("i").toggleClass("p3icon-downArrow p3icon-sideArrow"); | |
if (i.hasClass("active")) { | |
i.removeClass("active"); | |
k.settingOpen = false | |
} else { | |
i.addClass("active"); | |
k.settingOpen = true | |
} | |
} | |
}); | |
b.Vs.EditType = Bb.View.extend({ | |
tagName: "tr", | |
className: "sort-drag-block", | |
initialize: function (i) { | |
var j = this; | |
j.template = i.template; | |
j.dictionaries = i.dictionaries; | |
Bb.Validation.bind(j, { | |
forceUpdate: true, | |
selector: i.selector | |
}) | |
}, | |
events: { | |
"mouseover td.inline-edit": "inlineEditOver", | |
"mouseout td.inline-edit": "inlineEditOut", | |
"click .inline-edit": "showInlineEdit", | |
"blur .inline-edit .edit input": "hideInlineEdit", | |
"blur .inline-edit .edit select": "hideInlineEdit", | |
sortorder: "sortOrder", | |
'click [name="ActiveInd"]': "activeInd", | |
'click [name="DeleteInd"]': "deleteInd" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
model: i.model.toJSON(), | |
dictionaries: i.dictionaries | |
})); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
inlineEditOver: function (i) { | |
$(i.currentTarget).find("i").show() | |
}, | |
inlineEditOut: function (i) { | |
$(i.currentTarget).find("i").hide() | |
}, | |
showInlineEdit: function (i) { | |
i.stopPropagation(); | |
i.preventDefault(); | |
var j = $(i.currentTarget); | |
j.find(".display").hide(); | |
j.find(".edit").show(); | |
if (j.find(".edit input").length > 0) { | |
j.find(".edit input").focus() | |
} else { | |
j.find(".edit select").focus() | |
} | |
}, | |
hideInlineEdit: function (k) { | |
k.stopPropagation(); | |
k.preventDefault(); | |
var p = this, | |
m = $(k.currentTarget), | |
l = m.attr("name"), | |
o, n, j = "", | |
i = {}; | |
o = m.val(); | |
i[l] = o; | |
p.model.set(i); | |
if (p.model.isValid(l)) { | |
Bb.Validation.callbacks.valid(p, l, "name"); | |
if (m[0].tagName === "SELECT") { | |
n = m.find("option:selected").text(); | |
j = !h.isEmptier(o) ? n : "" | |
} else { | |
j = o | |
} | |
m.parent().siblings(".display").html(j + '<i class="fa fa-pencil pull-right collapse" style="display: none;"></i>'); | |
m.parent().siblings(".display").show(); | |
m.parent().hide() | |
} else { | |
m.parent().siblings(".display i").hide() | |
} | |
}, | |
sortOrder: function (i) { | |
var j = this; | |
return j.model | |
}, | |
activeInd: function (i) { | |
var j = this; | |
_.defer(function () { | |
j.model.set({ | |
ActiveInd: $(i.currentTarget).hasClass("active") | |
}) | |
}) | |
}, | |
deleteInd: function (i) { | |
var j = this; | |
_.defer(function () { | |
j.model.set({ | |
DeleteInd: $(i.currentTarget).hasClass("active") | |
}) | |
}) | |
} | |
}); | |
p3.router().route("settings/candidateprofile", "settings/candidateprofile", function () { | |
b.Data.Dictionaries = {}; | |
p3.renderMainPage(new b.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/CandidateProfileSettings"))); | |
(function (d) { | |
var c = p3.module("admissions/candidateprofile"), | |
h = p3.module("utilities/smodal"), | |
g = p3.module("utilities/multifetch"), | |
b = p3.module("shared/base"), | |
j = p3.module("utilities/validate"), | |
i = p3.Us.Tools, | |
e = p3.Us.Culture, | |
a = p3.module("admissions/admissionsscheduling"), | |
f = p3.Us.InfoMessageLibrary; | |
d.Data.ProspectUserId = undefined; | |
d.Ms.DictionaryItem = Bbm.extend({}); | |
d.Ms.ListItems = Bbc.extend({}); | |
d.Ms.ApplicationHolder = Bbm.extend({}); | |
d.Ms.ApplicationForm = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ApplicationFormId", | |
validation: { | |
Name: [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "OnlineApplication/ApplicationForm/" + this.id + "/" : aP + "OnlineApplication/ApplicationForm/" | |
} | |
}); | |
d.Ms.Checklist = Bbm.extend({ | |
sync: b.DataParamSync, | |
hasItemWithDataCollectionType: function (k) { | |
var m = this.toJSON(), | |
l = false; | |
_.each(m.ProspectChecklistStep, function (n) { | |
_.each(n.ProspectChecklistItem, function (o) { | |
if (o.DataCollectionTypeId == k) { | |
l = true | |
} | |
}) | |
}); | |
return l | |
}, | |
url: function () { | |
return aP + "admissions/ProspectCheckList/" | |
} | |
}); | |
d.Ms.ChecklistStep = Bbm.extend({ | |
sync: b.DataParamSync, | |
url: function () { | |
return aP + "admissions/ProspectCheckList/" | |
} | |
}); | |
d.Ms.ChecklistItem = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ChecklistItemId", | |
url: function () { | |
return aP + "admissions/ProspectCheckList/" + this.id | |
} | |
}); | |
d.Ms.CommentBox = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "SchoolId", | |
validation: { | |
CandidateProgressText: [{ | |
maxLength: 4000, | |
required: false, | |
msg: f.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/AdmissionOptions/" + this.id + "/" : aP + "admissions/AdmissionOptions/" | |
} | |
}); | |
d.Ms.HasOnlineApp = Bbm.extend({ | |
url: function () { | |
return aP + "onlineapplication/hasonlineapp" | |
} | |
}); | |
d.Ms.CreateAccount = Bbm.extend({ | |
defaults: { | |
CandidateFirstName: null, | |
CandidateLastName: null, | |
NickName: null, | |
CandidateDOB: null, | |
EnteringYear: null, | |
EnteringGradeId: null, | |
Agree: false, | |
ProspectUserId: "0", | |
CurrentApplicant: false | |
}, | |
validation: { | |
ProspectUserId: [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}], | |
CandidateFirstName: [{ | |
fn: "requiredNewCandidate" | |
}], | |
CandidateLastName: [{ | |
fn: "requiredNewCandidate" | |
}], | |
CandidateDOB: [{ | |
fn: "requiredCandidateDOB" | |
}], | |
EnteringYear: [{ | |
fn: "requiredNewAndNotCurrentCandidate" | |
}], | |
EnteringGradeId: [{ | |
fn: "requiredNewAndNotCurrentCandidate" | |
}], | |
Agree: [{ | |
acceptance: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return aP + "admissions/ApplyCandidate/" | |
}, | |
requiredNewCandidate: function (m, k, l) { | |
if (i.stringToInt(l.ProspectUserId) === 0) { | |
if (j.isEmptier(m)) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
requiredNewAndNotCurrentCandidate: function (m, k, l) { | |
if (i.stringToInt(l.ProspectUserId) === 0 || i.stringToBoolean(l.CurrentApplicant) === false) { | |
if (j.isEmptier(m)) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}, | |
requiredCandidateDOB: function (o, k, l) { | |
var n = new Date(o), | |
m = new Date(); | |
m.setFullYear(m.getFullYear() + 1); | |
if (i.stringToInt(l.ProspectUserId) === 0 || i.stringToBoolean(l.CurrentApplicant) === false) { | |
if (j.isEmptier(o)) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
if (!e.isDate(o)) { | |
return f.P3.DateError.fixDateFormat() | |
} | |
if (n > m) { | |
return f.Login.MaxDateOfBirth | |
} | |
} | |
} | |
}); | |
d.Ms.LoginSetup = Bbm.extend({ | |
url: function () { | |
return aP + "OnlineApplication/CreateAcctSettings/" | |
} | |
}); | |
d.Ms.ChecklistUpload = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "UploadId", | |
url: function () { | |
return aP + "ProspectChecklist/FileUpload/" | |
} | |
}); | |
d.Ms.ChecklistRecommendation = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "RecommendationId", | |
validation: { | |
TeacherName: [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}], | |
TeacherEmail: [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}, { | |
pattern: "email", | |
msg: f.P3.EmailError | |
}] | |
}, | |
url: function () { | |
return aP + "ProspectChecklist/Recommendation/" | |
} | |
}); | |
d.Ms.RecommendationResend = Bbm.extend({ | |
idAttribute: "RecommendationId", | |
url: "ProspectChecklist/RecommendationResend/" | |
}); | |
d.Cs.Dictionary = Bbc.extend({ | |
model: d.Ms.DictionaryItem, | |
url: "datadirect/DictionaryGet/" | |
}); | |
d.Cs.CommentBox = Bbm.extend({ | |
sync: b.DataParamSync, | |
model: d.Ms.CommentBox, | |
url: function () { | |
return aP + "admissions/AdmissionOptions/" | |
} | |
}); | |
d.Cs.ApplicationForms = Bbc.extend({ | |
sync: b.DataParamSync, | |
model: d.Ms.ApplicationForm, | |
url: function () { | |
return aP + "OnlineApplication/ApplicationFormList/" | |
}, | |
getFormsForGrade: function (m, k) { | |
var l = this.filter(function (n) { | |
if (n.get("ActiveInd") || !k) { | |
return _.some(n.get("Grades"), function (o) { | |
return o.GradeId == m && o.Selected | |
}) | |
} | |
return false | |
}); | |
return l | |
} | |
}); | |
d.Cs.ChecklistSteps = Bbc.extend({ | |
model: d.Ms.ChecklistStep | |
}); | |
d.Cs.ChecklistItems = Bbc.extend({ | |
model: d.Ms.ChecklistItem | |
}); | |
d.Cs.ProspectInstanceIds = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/ProspectInstanceIdsGet/" | |
} | |
}); | |
d.Cs.SubmittedApplicationGet = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/SubmittedApplicationGet/" | |
} | |
}); | |
d.Cs.EnteringYears = Bbc.extend({ | |
url: "admissions/EnteringAdmissionsYear/" | |
}); | |
d.Cs.EnteringGrades = Bbc.extend({ | |
url: "admissions/EnteringGrade/" | |
}); | |
d.Cs.ChildrenNonStudent = Bbc.extend({ | |
url: "DataDirect/ChildrenNonStudent/" | |
}); | |
d.Cs.Register = Bbc.extend({ | |
url: "ProspectCheckList/ProspectCheckListRegister/" | |
}); | |
d.Cs.LoggedInUserSchoolFormsGet = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/GetMyFileForms" | |
} | |
}); | |
d.Vs.Layout = Bb.View.extend({ | |
template: "candidateview/candidateview.progress.layout.template.html", | |
events: { | |
"click #applicationBtn": "chooseApplication", | |
"click .print-application": "printApplication", | |
"refreshData #checklistHeader": "renderData" | |
}, | |
initialize: function () { | |
var k = this; | |
if (k.options) { | |
k.userId = k.options.userId; | |
d.Data.userName = k.options.userName; | |
d.Data.ProspectUserId = k.options.userId | |
} | |
$(document).on("click", function (l) { | |
if ($(l.target).closest(".popover").length === 0) { | |
d.Us.closeDetailBubbles() | |
} | |
}); | |
k.subs = {}; | |
k.prospectInstanceIds = new d.Cs.ProspectInstanceIds(); | |
k.applicationForms = new d.Cs.ApplicationForms(); | |
k.submittedApps = new d.Cs.SubmittedApplicationGet(); | |
k.loggedInUserSchoolForms = new d.Cs.LoggedInUserSchoolFormsGet(); | |
k.model = new d.Ms.Checklist(); | |
d.Data.AppInfo = { | |
onlineAppInstalled: false, | |
formId: null, | |
appId: null, | |
completed: false, | |
continueApp: false, | |
showApplicationInHeader: false, | |
appsDisabled: false, | |
printUrl: null, | |
prospectOriginId: null | |
} | |
}, | |
dispose: function () { | |
d.Us.closeDetailBubbles() | |
}, | |
render: function (k) { | |
var m = this, | |
l = 0; | |
$(k).html(m.el); | |
p3.setTitle("Admissions Progress"); | |
m.dictionaries = { | |
dictionary_83: { | |
id: 83, | |
keyName: "dd_id", | |
valueName: "dd_description", | |
dictionary: {} | |
} | |
}; | |
_.each(m.dictionaries, function (n) { | |
var o = new c.Cs.Dictionary(); | |
o.fetch({ | |
data: { | |
dictionaryId: n.id, | |
key: n.keyName, | |
value: n.valueName, | |
inputParam: n.inputParam | |
}, | |
success: function (p) { | |
n.dictionary = p.toJSON(); | |
l++; | |
if (l === _.size(m.dictionaries)) { | |
m.prospectInstanceIds.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: m.userId | |
}, | |
success: function (q, r) { | |
if (m.prospectInstanceIds.models.length > 0) { | |
m.prospectInstanceId = m.prospectInstanceIds.models[0].get("ProspectInstanceId") | |
} else { | |
m.prospectInstanceId = 0 | |
} | |
d.Data.ProspectInstanceId = m.prospectInstanceId; | |
m.renderData() | |
} | |
}) | |
} | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var k = this; | |
p3.fT(k.template, function (m) { | |
var l = new d.Ms.HasOnlineApp(); | |
l.fetch({ | |
success: function () { | |
if (i.stringToBoolean(l.get("Message")) === true) { | |
d.Data.AppInfo.onlineAppInstalled = true | |
} | |
k.loggedInUserSchoolForms.fetch({ | |
cache: false, | |
data: { | |
userId: p3.Data.Context.get("UserInfo").UserId | |
}, | |
success: function () { | |
d.Data.UserSchoolFormsInfo = k.loggedInUserSchoolForms.toJSON(); | |
k.applicationForms.fetch({ | |
cache: false, | |
data: { | |
activeApps: true, | |
formType: 1, | |
prospectInstanceId: k.prospectInstanceId | |
}, | |
success: function () { | |
d.Data.AppInfo.appsDisabled = (k.applicationForms.models.length > 0) ? false : true; | |
k.submittedApps.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: k.prospectInstanceId | |
}, | |
success: function (n, o) { | |
_.each(k.submittedApps.toJSON(), function (p) { | |
if (p.date_submitted != null) { | |
d.Data.AppInfo.completed = true; | |
d.Data.AppInfo.formId = k.submittedApps.models[0].attributes.oa_application_form_id; | |
d.Data.AppInfo.appId = k.submittedApps.models[0].attributes.oa_application_id; | |
d.Data.AppInfo.printUrl = k.submittedApps.models[0].attributes.print_url; | |
d.Data.AppInfo.prospectOriginId = k.submittedApps.models[0].attributes.si_adm_prospect_origin_id | |
} | |
}); | |
if (k.submittedApps.length > 0) { | |
d.Data.AppInfo.continueApp = true | |
} | |
k.model.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: k.prospectInstanceId | |
}, | |
success: function () { | |
var p = k.model.get("CheckList"); | |
d.Data.CheckListId = p ? p.CheckListId : null; | |
if (d.Data.AppInfo.onlineAppInstalled && !k.model.hasItemWithDataCollectionType(8)) { | |
d.Data.AppInfo.showApplicationInHeader = true | |
} | |
k.$el.html(m({ | |
showApplication: d.Data.AppInfo.showApplicationInHeader, | |
appsDisabled: d.Data.AppInfo.appsDisabled, | |
completed: d.Data.AppInfo.completed, | |
formId: d.Data.AppInfo.formId, | |
appId: d.Data.AppInfo.appId, | |
continueApp: d.Data.AppInfo.continueApp, | |
printUrl: d.Data.AppInfo.printUrl, | |
prospectOriginId: d.Data.AppInfo.prospectOriginId | |
})); | |
if ($("#candidate-viewer").triggerHandler("getmode") === "fillout") { | |
$("#applicationBtn").click() | |
} | |
p3.rV(new d.Vs.Checklist({ | |
layoutView: k, | |
userId: k.userId, | |
prospectInstanceId: k.prospectInstanceId, | |
model: k.model | |
}), $("#checklist"), true); | |
p3.rV(new d.Vs.ContactBox({ | |
layoutView: k, | |
userId: k.userId | |
}), $("#main-right"), true) | |
}, | |
error: function () { | |
p3.displayError("Error loading information") | |
} | |
}) | |
} | |
}) | |
} | |
}) | |
} | |
}) | |
} | |
}) | |
}) | |
}, | |
chooseApplication: function (k) { | |
k.preventDefault(); | |
var m = this, | |
l; | |
if ($(k.currentTarget).attr("disabled") != "disabled") { | |
if (m.submittedApps.length > 0) { | |
l = "#application/" + m.submittedApps.models[0].attributes.oa_application_form_id + "/keyid=" + m.prospectInstanceId; | |
p3.router().navigate(l, true) | |
} else { | |
if (m.applicationForms.models.length === 1) { | |
l = "#application/" + m.applicationForms.models[0].attributes.ApplicationFormId + "/keyid=" + m.prospectInstanceId; | |
p3.router().navigate(l, true) | |
} else { | |
m.Modal2Extend = h.Vs.Modal2.extend({ | |
template: "admissions/candidate.view.choose.application.template.html", | |
collection: m.applicationForms, | |
size: "md", | |
variables: { | |
prospectInstanceId: m.prospectInstanceId | |
}, | |
modalRendered: function () { | |
var n = this; | |
n.setFocus() | |
}, | |
modalUpdate: function () { | |
return false | |
}, | |
modalSave: function () { | |
var n = this; | |
l = n.$("#ApplicationForm").prop("value"); | |
p3.router().navigate(l, true); | |
return false | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new m.Modal2Extend(), p3.Layout.Containers.Modal, true) | |
} | |
} | |
} | |
}, | |
printApplication: function (k) { | |
k.preventDefault(); | |
k.stopPropagation(); | |
window.open(d.Data.AppInfo.printUrl, "_blank") | |
} | |
}); | |
d.Vs.Checklist = Bb.View.extend({ | |
template: "candidateview/candidateview.progress.checklist.template.html", | |
initialize: function () { | |
var k = this; | |
if (k.options) { | |
k.userId = k.options.userId; | |
k.prospectInstanceId = k.options.prospectInstanceId | |
} | |
k.subs = {}; | |
k.collection = new d.Cs.ChecklistItems() | |
}, | |
render: function (k) { | |
var l = this; | |
$(k).append(l.el); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.CalPopover, function () { | |
l.renderData() | |
}) | |
}, | |
renderData: function () { | |
var k = this; | |
p3.fT(k.template, function (m) { | |
k.$el.html(m({})); | |
var l = new d.Cs.ChecklistSteps(k.model.get("ProspectChecklistStep")); | |
if (l.length > 0) { | |
$("#checklistHeader").removeClass("hide"); | |
$("#checklist").removeClass("hide"); | |
p3.rV(new d.Vs.ChecklistSteps({ | |
collection: l | |
}), k.$("#checklistItemsHolder"), false) | |
} | |
}) | |
} | |
}); | |
d.Vs.ChecklistSteps = Bb.View.extend({ | |
render: function (k) { | |
var l = this; | |
$(k).append(l.el); | |
l.renderData() | |
}, | |
renderData: function () { | |
var k = this; | |
k.$el.html(); | |
_.each(k.collection.models, function (l) { | |
p3.rV(new d.Vs.ChecklistStep({ | |
model: l | |
}), k.$el, false) | |
}) | |
} | |
}); | |
d.Vs.ChecklistStep = Bb.View.extend({ | |
template: "candidateview/candidateview.progress.checklist.step.template.html", | |
render: function (k) { | |
var l = this; | |
$(k).append(l.el); | |
l.renderData() | |
}, | |
renderData: function () { | |
var k = this; | |
p3.fT(k.template, function (m) { | |
k.$el.html(m({ | |
model: k.model.toJSON() | |
})); | |
var l = new d.Cs.ChecklistItems(k.model.get("ProspectChecklistItem")); | |
p3.rV(new d.Vs.ChecklistItems({ | |
collection: l | |
}), k.$(".checklistitems"), false) | |
}) | |
} | |
}); | |
d.Vs.ChecklistItems = Bb.View.extend({ | |
tagName: "tbody", | |
render: function (k) { | |
var l = this; | |
$(k).append(l.el); | |
l.renderData() | |
}, | |
renderData: function () { | |
var k = this; | |
k.$el.html(); | |
_.each(k.collection.models, function (l) { | |
if (l.get("ChecklistItemId")) { | |
p3.rV(new d.Vs.ChecklistItem({ | |
model: l | |
}), k.$el, false) | |
} | |
}) | |
} | |
}); | |
d.Vs.ChecklistItem = Bb.View.extend({ | |
template: "candidateview/candidateview.progress.checklist.item.template.html", | |
tagName: "tr", | |
events: { | |
"click .upload": "uploadAttachment", | |
"click .agenda": "showAgenda", | |
"click .delete": "deleteAttachment", | |
"click .recommendation": "startRecommendation", | |
startrecommendation: "startRecommendation", | |
"click .resend": "resendRecommendation", | |
"click .print-application": "printApplication", | |
"click .register": "register", | |
"click [data-collection-type]": "updateDataCollection", | |
"click #schoolFormProceedBtn": "proceedToSchoolForm", | |
"click #printSchoolFormBtn": "printSchoolForm" | |
}, | |
render: function (k) { | |
var l = this; | |
$(k).append(l.el); | |
l.renderData() | |
}, | |
renderData: function () { | |
var k = this; | |
if (k.model.get("PublishDescription") || k.model.get("PublishLink") || k.model.get("PublishFile") || k.model.get("AgendaId") || (k.model.get("Recommendation") && k.model.get("Recommendation").AllowResend)) { | |
k.model.set("ShowDetails", 1) | |
} | |
k.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var n = this, | |
l = (_.findWhere(p3.Data.Context.attributes.Personas, { | |
Description: "Parent", | |
Active: true | |
})) ? true : false, | |
k = n.model.get("ApplicationFormId"), | |
m; | |
if (k > 0) { | |
m = _.find(d.Data.UserSchoolFormsInfo, function (o) { | |
return o.ApplicationFormId === k | |
}) | |
} | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({ | |
model: n.model.toJSON(), | |
appInfo: d.Data.AppInfo, | |
userSchoolFormsInfo: m, | |
prospectOriginId: d.Data.AppInfo.prospectOriginId, | |
isParent: l | |
})) | |
}) | |
}, | |
uploadAttachment: function (k) { | |
k.stopPropagation(); | |
var m = this, | |
l = new d.Ms.ChecklistUpload($.extend(true, {}, m.model.get("ProspectChecklistUpload"))); | |
m.Modal2Extend = h.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.upload.html", | |
model: l, | |
variables: { | |
title: "Upload", | |
fileType: "DOCIMAGE" | |
}, | |
modalRendered: function (o) { | |
var n = this; | |
n.initializeFileUpload_File() | |
}, | |
modalSavedSuccess: function (o) { | |
var n = this; | |
m.model.set("ProspectChecklistUpload", n.model.toJSON()); | |
_.defer(function () { | |
m.renderData() | |
}) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new m.Modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
deleteAttachment: function (k) { | |
var l = this; | |
k.stopPropagation(); | |
p3.showConfirm("Delete File", "Wait a minute. Are you really sure you want to delete this file?", null, function () { | |
var m = new d.Ms.ChecklistUpload($.extend(true, {}, l.model.get("ProspectChecklistUpload"))); | |
h.Us.setPropByString(m.toJSON(), "AttachmentFile.AttachmentRemove", h.Us.getPropByString(m.toJSON(), "AttachmentFile.Attachment")); | |
h.Us.setPropByString(m.toJSON(), "AttachmentFile.Attachment", null); | |
m.save({}, { | |
success: function (n, o) { | |
l.model.set("ProspectChecklistUpload", o); | |
_.defer(function () { | |
l.renderData() | |
}) | |
} | |
}) | |
}) | |
}, | |
startRecommendation: function (l, o, n, m) { | |
var p = this, | |
k = new d.Ms.ChecklistRecommendation({ | |
ProspectInstanceId: p.model.get("ProspectInstanceId"), | |
CheckListId: d.Data.CheckListId, | |
ChecklistItemId: p.model.get("ChecklistItemId"), | |
TeacherName: o || null, | |
RequestComments: m || null | |
}); | |
p.Modal2Extend = h.Vs.Modal2.extend({ | |
template: "candidateview/candidateview.progress.recommendation.template.html", | |
model: k, | |
variables: { | |
ChecklistItemDesc: p.model.get("ChecklistItemDesc"), | |
RecommendRecipientLabel: p.model.get("RecommendRecipientLabel") | |
}, | |
events: { | |
"click .preview": "showPreview", | |
"click .request": "showRequest" | |
}, | |
showPreview: function (t) { | |
var u = this, | |
v = /([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, | |
r = u.$(".comments"), | |
q = u.model.get("RequestComments") ? u.model.get("RequestComments").replace(v, "$1<br />$2") : null, | |
s = p.model.get("RecommendEmailText") ? p.model.get("RecommendEmailText").replace(v, "$1<br />$2") : null, | |
w = p3.Data.SchoolContext.get("SchoolInfo"); | |
if (!j.isEmptier(q)) { | |
r.removeClass("muted").html(q).append("<hr />") | |
} else { | |
r.addClass("muted").html("Additional Comments will appear here if filled out") | |
} | |
if (!j.isEmptier(u.model.get("TeacherName"))) { | |
s = s.replace(/\[recipient_name\]/g, u.model.get("TeacherName")); | |
s = s.replace(/\[recommender_name\]/g, u.model.get("TeacherName")) | |
} | |
if (!j.isEmptier(d.Data.userName)) { | |
s = s.replace(/\[candidate_name\]/g, d.Data.userName) | |
} | |
s = s.replace(/\[school_name\]/g, w.SchoolName); | |
s += "<br /><br />To complete the recommendation please follow the link below.<br />[Accept Link Placeholder]<br/><br/>"; | |
s += "If you wish to decline this request or feel you have received this message in error please follow the link below.<br/>[Decline Link Placeholder]"; | |
u.$(".emailText").html(s); | |
u.$(".request-holder").hide(); | |
u.$(".preview-holder").show(); | |
u.$(".modal-body").addClass("bg-f6f4f4"); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
showRequest: function (q) { | |
var r = this; | |
r.$(".preview-holder").hide(); | |
r.$(".request-holder").show(); | |
r.$(".modal-body").removeClass("bg-f6f4f4"); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
modalSavedSuccess: function (q) { | |
p.model.set(q.response); | |
_.defer(function () { | |
p.renderData() | |
}) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new p.Modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
resendRecommendation: function (k) { | |
k.preventDefault(); | |
k.stopPropagation(); | |
var m = this, | |
l = m.model.get("Recommendation"); | |
m.Modal2Extend = h.Vs.Modal2.extend({ | |
template: "candidateview/candidateview.progress.recommendation.resend.template.html", | |
variables: { | |
teacherName: l.TeacherName, | |
teacherEmail: l.TeacherEmail, | |
requestComments: l.RequestComments | |
}, | |
events: { | |
"click .continue:not(.disabled)": "resend", | |
"click input[name=resend]": "updateSaveName" | |
}, | |
updateSaveName: function (o) { | |
var n = this; | |
switch (i.stringToInt(n.$("input[name=resend]:checked").val())) { | |
case 1: | |
n.$(".continue").removeClass("disabled").text("Send Request"); | |
break; | |
case 2: | |
case 3: | |
n.$(".continue").removeClass("disabled").text("Continue"); | |
break | |
} | |
}, | |
resend: function (o) { | |
var n = this, | |
p; | |
switch (i.stringToInt(n.$("input[name=resend]:checked").val())) { | |
case 1: | |
p = new d.Ms.RecommendationResend(); | |
p.save({ | |
RecommendationId: l.RecommendationId | |
}, { | |
success: function (q, s, r) { | |
h.Us.setPropByString(s, "Recommendation.AllowResend", false); | |
m.model.set(s); | |
p3.Layout.Containers.Modal.modal("hide"); | |
_.defer(function () { | |
m.renderData() | |
}) | |
}, | |
error: function (q, s, r) { | |
p3.displayError("Error resending request.") | |
} | |
}); | |
break; | |
case 2: | |
p3.Layout.Containers.Modal.modal("hide"); | |
m.$el.triggerHandler("startrecommendation", [l.TeacherName, l.TeacherEmail, l.RequestComments]); | |
break; | |
case 3: | |
p3.Layout.Containers.Modal.modal("hide"); | |
m.$el.triggerHandler("startrecommendation"); | |
break | |
} | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new m.Modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
printApplication: function (k) { | |
k.preventDefault(); | |
k.stopPropagation(); | |
var m = this, | |
l = m.model.get("PrintUrl"); | |
window.open(l, "_blank") | |
}, | |
register: function (l) { | |
l.preventDefault(); | |
l.stopPropagation(); | |
var n = this, | |
m, k = $(l.currentTarget); | |
if (n.model.get("ActiveRegistrationInd")) { | |
n.register = new d.Cs.Register(); | |
n.register.fetch({ | |
cache: false, | |
data: { | |
id: n.model.get("ChecklistItemId"), | |
prospectInstanceId: d.Data.ProspectInstanceId | |
}, | |
success: function () { | |
if (n.register.length > 1) { | |
p3.fT("candidateview/candidateview.progress.checklist.item.popover.template.html", function (p) { | |
var o = p({ | |
collection: n.register.toJSON() | |
}); | |
k.removeData("popover"); | |
d.Us.closeDetailBubbles(); | |
k.calpopover({ | |
title: null, | |
html: true, | |
content: o, | |
trigger: "manual", | |
placement: "auto top" | |
}); | |
k.addClass("has-open-popover"); | |
k.calpopover("show"); | |
$(".popover-close").click(function () { | |
d.Us.closeDetailBubbles() | |
}); | |
$(".registerlink").click(function (q) { | |
q.preventDefault(); | |
q.stopPropagation(); | |
window.location = $(q.currentTarget).data("link") | |
}) | |
}) | |
} else { | |
window.location = n.register.toJSON()[0].RegistrationLink | |
} | |
} | |
}) | |
} else { | |
m = h.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.message.html", | |
variables: { | |
title: "Register", | |
infoText: "There are no available events at this time." | |
} | |
}); | |
h.Us.renderModal(new m({})) | |
} | |
}, | |
showAgenda: function () { | |
var k = this; | |
a.Us.AgendaModal(k.model.get("DataCollectionTypeId"), k.model.get("DataCollectionPk"), d.Data.ProspectInstanceId, d.Data.userName) | |
}, | |
updateDataCollection: function (o) { | |
o.stopPropagation(); | |
o.preventDefault(); | |
var p = this, | |
m = p.model.get("DataCollectionTypeId"), | |
l = p.model.get("DataCollectionPk"), | |
k = p.model.get("ChecklistItemId"), | |
n; | |
switch (m) { | |
case 7: | |
if (l) { | |
n = new c.Ms.Interview({ | |
disabled: true | |
}) | |
} else { | |
n = new c.Ms.Interview({ | |
disabled: true, | |
ChecklistItemId: k, | |
ProspectInstanceId: d.Data.ProspectInstanceId, | |
InterviewType: { | |
"$type": "clBLL.nAdmissions.InterviewType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} | |
break; | |
case 12: | |
if (l) { | |
n = new c.Ms.Visit({ | |
disabled: true | |
}) | |
} else { | |
n = new c.Ms.Visit({ | |
disabled: true, | |
ChecklistItemId: k, | |
prospectInstanceId: d.Data.ProspectInstanceId, | |
VisitType: { | |
"$type": "clBLL.nAdmissions.VisitType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} | |
break | |
} | |
if (l) { | |
n.fetch({ | |
data: { | |
prospectInstanceId: d.Data.ProspectInstanceId, | |
id: l, | |
userId: d.Data.ProspectUserId | |
}, | |
success: function (q) { | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
if (m === 7) { | |
a.Us.EditSelfScheduleInterview(d.Data.ProspectInstanceId, k, l) | |
} else { | |
if (m === 12) { | |
a.Us.EditSelfScheduleVisit(d.Data.ProspectInstanceId, k, l) | |
} | |
} | |
} | |
}) | |
} else { | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
if (m === 7) { | |
a.Us.AddSelfScheduleInterview(d.Data.ProspectInstanceId, k) | |
} else { | |
if (m === 12) { | |
a.Us.AddSelfScheduleVisit(d.Data.ProspectInstanceId, k) | |
} | |
} | |
} | |
}, | |
proceedToSchoolForm: function (l) { | |
l.preventDefault(); | |
l.stopPropagation(); | |
var k = l.target.getAttribute("data-application-form-id"); | |
p3.router().navigate("#schoolform/" + k + "/keyid=" + d.Data.ProspectUserId, true) | |
}, | |
printSchoolForm: function (k) { | |
k.preventDefault(); | |
k.stopPropagation(); | |
var l = "/podium/default.aspx?t=1691&wapp=1&ch=1&pk=502&ext=pdf&fid=" + k.target.getAttribute("data-application-form-id") + "&appid=" + k.target.getAttribute("data-application-id"); | |
window.open(l, "_blank") | |
} | |
}); | |
d.Vs.ContactBox = Bb.View.extend({ | |
template: "admissions/candidateview.contactbox.template.html", | |
events: { | |
"click #applyNewCandidate": "applyCandidate" | |
}, | |
initialize: function () { | |
var k = this; | |
if (k.options) { | |
k.userId = k.options.userId | |
} | |
k.model = new d.Ms.CommentBox({ | |
SchoolId: p3.Data.SchoolContext.attributes.SchoolInfo.SchoolId | |
}); | |
k.prospectInstanceIds = new d.Cs.ProspectInstanceIds(); | |
k.Containers = {} | |
}, | |
render: function (k) { | |
var l = this; | |
$(k).html(l.el); | |
l.dictionaries = {}; | |
l.dictionaries.enteringYears = new d.Ms.LoginSetup(); | |
l.dictionaries.enteringGrades = new d.Cs.EnteringGrades(); | |
l.dictionaries.childrenNonStudent = new d.Cs.ChildrenNonStudent(); | |
l.dictionaries.applicationForms = new d.Cs.ApplicationForms(); | |
l.renderData() | |
}, | |
renderData: function () { | |
var k = this; | |
k.model.off("sync"); | |
p3.fT(k.template, function (m) { | |
var l = (_.findWhere(p3.Data.Context.attributes.Personas, { | |
Description: "Parent", | |
Active: true | |
})) ? true : false; | |
k.model.fetch({ | |
cache: false, | |
data: { | |
id: k.options.layoutView.prospectInstanceId | |
}, | |
success: function (n, o) { | |
k.$el.html(m({ | |
model: k.model.toJSON(), | |
showApplication: d.Data.AppInfo.onlineAppInstalled, | |
appsDisabled: d.Data.AppInfo.appsDisabled, | |
isParent: l | |
})) | |
}, | |
complete: function () { | |
k.model.on("sync", k.renderData, k) | |
} | |
}) | |
}) | |
}, | |
applyCandidate: function (k) { | |
d.Us.ApplyCandidate() | |
} | |
}); | |
d.Us.closeDetailBubbles = function () { | |
var k = $(".popover"); | |
$(".has-open-popover").removeClass("has-open-popover"); | |
k.hide(); | |
k.remove() | |
}; | |
d.Us.ApplyCandidate = function () { | |
var m, l = {}, | |
n = {}, | |
k = new d.Ms.CreateAccount(); | |
l.enteringYears = new d.Ms.LoginSetup(); | |
l.enteringGrades = new d.Cs.EnteringGrades(); | |
l.childrenNonStudent = new d.Cs.ChildrenNonStudent(); | |
g.Us.Fetch({ | |
EnteringYears: l.enteringYears, | |
EnteringGrades: l.enteringGrades, | |
ChildrenNonStudent: l.childrenNonStudent | |
}, function (o, q, p) { | |
l.enteringYears.dictionary = o.EnteringYears.toJSON(); | |
l.enteringGrades.dictionary = o.EnteringGrades.toJSON(); | |
l.childrenNonStudent.dictionary = o.ChildrenNonStudent.toJSON(); | |
l.enteringYears.dictionary = _.filter(l.enteringYears.toJSON().CreateAccountSchoolYears, function (r) { | |
return i.stringToBoolean(r.SelectedInd) === true | |
}); | |
if (l.enteringYears.dictionary.length > 1) { | |
n.singleEnteringYear = false | |
} else { | |
n.singleEnteringYear = true; | |
k.set({ | |
EnteringYear: l.enteringYears.dictionary[0].SchoolYearLabel | |
}) | |
} | |
m = h.Vs.Modal2.extend({ | |
template: "resourceboard/resourceboard.application.template.html", | |
model: k, | |
dictionaries: l, | |
variables: n, | |
size: "md", | |
modalInitialized: function () { | |
var r = this; | |
r.prospectInstanceIds = new d.Cs.ProspectInstanceIds() | |
}, | |
modalRendered: function () { | |
var r = this; | |
r.disableSubmitted() | |
}, | |
disableSubmitted: function () { | |
var r = this; | |
_.each(l.childrenNonStudent.dictionary, function (s) { | |
r.prospectInstanceIds.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: s.dd_id | |
}, | |
success: function (t, u) { | |
if (r.prospectInstanceIds.models[0]) { | |
if (i.stringToInt(r.prospectInstanceIds.models[0].attributes.AppFormId) === -1) { | |
$("input[value='" + s.dd_id + "']").attr("disabled", "disabled") | |
} | |
} | |
} | |
}) | |
}) | |
}, | |
modalUpdated: function (s) { | |
var r = this; | |
if (s.eventCurrentTarget.hasClass("radio-sky-input") || s.eventCurrentTarget.attr("name") === "ProspectUserId") { | |
r.prospectInstanceIds.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: r.model.get("ProspectUserId") | |
}, | |
success: function (v, z) { | |
var t, u, w, y, x; | |
r.candidate = false; | |
r.currentCandidate = false; | |
r.currentProspectInstanceId = 0; | |
r.enteringGradeId = null; | |
if (v.models.length > 0) { | |
r.candidate = true; | |
t = _.filter(v.toJSON(), function (A) { | |
return A.AdmCurrentYearInd == true | |
}); | |
u = _.chain(t).pluck("AppFormId").uniq().value(); | |
r.appFormId = _.filter(u, function (A) { | |
return A != null | |
}); | |
if (t.length > 0) { | |
r.currentCandidate = true | |
} | |
w = _.chain(t).pluck("ProspectInstanceId").uniq().value(); | |
r.currentProspectInstanceId = w[0]; | |
y = v.find(function (A) { | |
return A.get("ProspectInstanceId") == r.currentProspectInstanceId | |
}); | |
if (y) { | |
r.enteringGradeId = y.get("EnteringGradeId") | |
} | |
} | |
x = _.pluck(v.toJSON(), "EnteringYear"); | |
r.$('[name="EnteringYear"] option').remove(); | |
if (!n.singleEnteringYear) { | |
r.$('[name="EnteringYear"]').append('<option value="">-- Select an Option --</option>') | |
} | |
_.each(l.enteringYears.dictionary, function (A) { | |
if (!_.contains(x, A.SchoolYearLabel)) { | |
r.$('[name="EnteringYear"]').append('<option value="' + A.SchoolYearLabel + '">' + A.SchoolYearLabel + "</option>") | |
} | |
}); | |
if (i.stringToInt(r.model.get("ProspectUserId")) === 0) { | |
r.model.set({ | |
CurrentApplicant: false | |
}); | |
r.$(".new-candidate").show(); | |
r.$(".new-candidate-year").show() | |
} else { | |
if (r.candidate) { | |
if (r.currentCandidate) { | |
r.model.set({ | |
CurrentApplicant: true | |
}); | |
r.$(".new-candidate").hide(); | |
r.$(".new-candidate-year").hide() | |
} else { | |
r.model.set({ | |
CurrentApplicant: false | |
}); | |
r.$(".new-candidate").hide(); | |
r.$(".new-candidate-year").show() | |
} | |
} else { | |
r.model.set({ | |
CurrentApplicant: false | |
}); | |
r.$(".new-candidate").hide(); | |
r.$(".new-candidate-year").show() | |
} | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
}); | |
r.model.set({ | |
CandidateFirstName: null, | |
CandidateLastName: null, | |
NickName: null, | |
CandidateDOB: null, | |
EnteringGradeId: null, | |
Agree: false | |
}); | |
r.$('[name="CandidateFirstName"]').val(""); | |
r.$('[name="CandidateLastName"]').val(""); | |
r.$('[name="NickName"]').val(""); | |
r.$('[name="CandidateDOB"]').val(r.model.get("CandidateDOB")); | |
r.$('[name="EnteringGradeId"]').val(r.model.get("EnteringGradeId")); | |
r.$('[name="Agree"]').prop("checked", false); | |
if (i.stringToBoolean(n.singleEnteringYear) === false) { | |
r.model.set({ | |
EnteringYear: null | |
}); | |
r.$('[name="EnteringYear"]').val(r.model.get("EnteringYear")) | |
} | |
Bb.Validation.callbacks.valid(r, "CandidateFirstName", "name"); | |
Bb.Validation.callbacks.valid(r, "CandidateLastName", "name"); | |
Bb.Validation.callbacks.valid(r, "NickName", "name"); | |
Bb.Validation.callbacks.valid(r, "CandidateDOB", "name"); | |
Bb.Validation.callbacks.valid(r, "EnteringYear", "name"); | |
Bb.Validation.callbacks.valid(r, "EnteringGradeId", "name"); | |
Bb.Validation.callbacks.valid(r, "Agree", "name"); | |
r.$("#infomessage-error").remove() | |
} | |
}, | |
modalSave: function () { | |
var r = this; | |
r.$(".save").button("loading"); | |
if (r.model.isValid(true)) { | |
if (r.currentCandidate) { | |
if (r.appFormId > 0) { | |
p3.router().navigate("#application/" + r.appFormId + "/keyid=" + r.currentProspectInstanceId, true) | |
} else { | |
d.Us.ApplicationSelect(r.enteringGradeId, r.currentProspectInstanceId) | |
} | |
} else { | |
r.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(r.model.attributes, function (u, s, t) { | |
r.setFieldsToNull(r.model, u, s, t, "") | |
}); | |
if (r.model.get("ProspectUserId") != "0") { | |
r.model.set({ | |
CandidateFirstName: null, | |
CandidateLastName: null, | |
NickName: null | |
}) | |
} | |
r.model.save({}, { | |
dataParam: r.options.dataParam, | |
success: function (s, t) { | |
p3.Data.Context.forceRefresh({ | |
success: function (u) { | |
$("#topnav-containter").trigger("renderSiteNav"); | |
$("#site-switcher-container").trigger("renderPersona"); | |
d.Us.ApplicationSelect(r.model.get("EnteringGradeId"), r.model.get("ProspectInstanceId")) | |
} | |
}) | |
}, | |
error: function (t, s) { | |
r.$(".save").button("reset") | |
} | |
}) | |
} | |
} else { | |
r.$(".save").button("reset") | |
} | |
return false | |
} | |
}); | |
h.Us.renderModal(new m()) | |
}) | |
}; | |
d.Us.ApplicationSelect = function (m, o) { | |
var n, l = {}, | |
k = new d.Ms.CreateAccount(); | |
l.applicationForms = new d.Cs.ApplicationForms(); | |
g.Us.Fetch({ | |
ApplicationForms: { | |
data: l.applicationForms, | |
dataParams: { | |
activeApps: true, | |
formType: 1 | |
} | |
} | |
}, function (p, r, q) { | |
l.applicationForms.models = l.applicationForms.getFormsForGrade(m, true); | |
l.applicationForms.dictionary = l.applicationForms.toJSON(); | |
if (l.applicationForms.dictionary.length > 0) { | |
if (l.applicationForms.dictionary.length === 1) { | |
p3.router().navigate("#application/" + l.applicationForms.dictionary[0].ApplicationFormId + "/keyid=" + o, true) | |
} else { | |
n = h.Vs.Modal2.extend({ | |
template: "resourceboard/resourceboard.applicationselect.template.html", | |
model: k, | |
size: "md", | |
dictionaries: l, | |
variables: { | |
prospectInstanceId: o | |
}, | |
modalSave: function (t) { | |
var s = this; | |
p3.router().navigate(s.model.get("ApplicationForm"), true); | |
return false | |
} | |
}); | |
h.Us.renderModal(new n()) | |
} | |
} else { | |
n = h.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.message.html", | |
size: "md", | |
variables: { | |
title: "Choose Application", | |
errorText: "There are no available applications at this time." | |
} | |
}); | |
h.Us.renderModal(new n()) | |
} | |
}) | |
} | |
}(p3.module("admissions/candidateprogress"))); | |
(function (c) { | |
var f = p3.module("shared/profilecontactcard"), | |
b = p3.module("admissions/candidateprogress"), | |
a = p3.module("admissions/candidatedecision"), | |
e = p3.module("officialNote"), | |
d = p3.module("shared/message"), | |
g = p3.Us.Tools; | |
c.Ms.CandidateInfo = Bbm.extend({ | |
url: function () { | |
return aP + "datadirect/ParentStudentUserInfo/" | |
} | |
}); | |
c.Ms.NavItem = Bbm.extend({}); | |
c.Ms.ViewTabs = Bbm.extend({ | |
url: function () { | |
return aP + "admissions/CandidateViewTabs/" | |
} | |
}); | |
c.Cs.CandidateInfo = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/ParentStudentUserInfo/" | |
} | |
}); | |
c.Cs.NavItems = Bbc.extend({ | |
model: c.Ms.NavItem | |
}); | |
c.Vs.Layout = Bb.View.extend({ | |
template: "admissions/candidateview.layout.template.html", | |
id: "candidate-viewer", | |
initialize: function () { | |
var h = this; | |
h.Containers = {} | |
}, | |
events: { | |
getmode: "getMode" | |
}, | |
render: function (h) { | |
var i = this, | |
j; | |
$(h).append(i.el); | |
i.Containers.MainContent = $("#main-content"); | |
i.Containers.Header = $("#header"); | |
i.Containers.TabNav = $("#candidateHeader"); | |
j = new c.Ms.ViewTabs(); | |
j.fetch({ | |
cache: false, | |
data: { | |
showUserId: i.options.userId | |
}, | |
success: function (k) { | |
_.each(k.toJSON(), function (l) { | |
if ((l.Key === i.options.page) && (g.stringToBoolean(l.Value) === true)) { | |
i.pageAccess = k.toJSON(); | |
i.renderData() | |
} | |
}) | |
} | |
}) | |
}, | |
renderData: function () { | |
var i = this, | |
h = new c.Ms.CandidateInfo(); | |
p3.fT(i.template, function (j) { | |
i.$el.html(j()); | |
p3.rV(new c.Vs.Header({ | |
userInfo: h, | |
layoutView: i, | |
userId: i.options.userId | |
}), $("#header"), true) | |
}) | |
}, | |
getMode: function () { | |
var h = this; | |
return h.options.mode | |
} | |
}); | |
c.Vs.Header = Bb.View.extend({ | |
template: "admissions/candidateview.header.template.html", | |
initialize: function (h) { | |
var i = this; | |
i.model = i.options.userInfo | |
}, | |
events: { | |
"click .sendmessage": "sendMessage" | |
}, | |
render: function (h) { | |
$(h).append(this.el); | |
this.renderTemplate() | |
}, | |
renderTemplate: function (h) { | |
var i = this; | |
i.model.fetch({ | |
cache: false, | |
data: { | |
userId: i.options.userId | |
}, | |
success: function (j, k) { | |
p3.fT(i.template, function (l) { | |
i.$el.html(l({ | |
collection: k[0], | |
photoRefresh: new Date().getTime(), | |
hasComposeAccess: d.Us.hasComposeAccess() && p3.Data.SchoolContext.get("SchoolInfo").IndividualMessageEnabled, | |
userId: i.options.userId | |
})); | |
i.removeLastBar() | |
}); | |
c.Data.fullName = k[0] ? k[0].fullname : ""; | |
i.navItems = new c.Cs.NavItems(); | |
p3.rV(new c.Vs.Navigation({ | |
collection: i.navItems, | |
userInfo: i.options.userInfo, | |
layoutView: i.options.layoutView, | |
model: i.options.layoutView.profilePublishField, | |
page: i.options.layoutView.options.page, | |
userId: i.options.userId, | |
hasComposeAccess: d.Us.hasComposeAccess() && p3.Data.SchoolContext.get("SchoolInfo").IndividualMessageEnabled | |
}), $("#candidateHeader"), false) | |
}, | |
error: function () { | |
p3.displayError("Error loading candidate information") | |
} | |
}) | |
}, | |
removeLastBar: function () { | |
var i = $("#candidateInfo").html(), | |
h = i.lastIndexOf("|"); | |
$("#candidateInfo").html(i.substring(0, h)) | |
}, | |
sendMessage: function (h) { | |
d.Us.composeMessage(["12_" + this.options.userId + "_0"]) | |
} | |
}); | |
c.Vs.Navigation = Bb.View.extend({ | |
template: "admissions/candidateview.subnav.template.html", | |
id: "candidateNav", | |
render: function (h) { | |
var i = this; | |
$(h).html(i.el); | |
i.renderTemplate() | |
}, | |
renderTemplate: function (h) { | |
var k = this, | |
i, j = false; | |
p3.fT(k.template, function (l) { | |
if (k.collection.length === 0) { | |
_.each(k.options.layoutView.pageAccess, function (m) { | |
if (g.stringToBoolean(m.Value) === true) { | |
switch (m.Key) { | |
case "progress": | |
k.collection.add([{ | |
Key: m.Key, | |
Route: "#candidateview", | |
Page: "#candidateview/" + k.options.userId + "/progress", | |
Label: "Admissions Progress", | |
Icon: "p3icon-admissionProgress", | |
Selected: false | |
}]); | |
break; | |
case "decision": | |
k.collection.add([{ | |
Key: m.Key, | |
Route: "#candidateview", | |
Page: "#candidateview/" + k.options.userId + "/decision", | |
Label: "Decision", | |
Icon: "p3icon-decision", | |
Selected: false | |
}]); | |
break; | |
case "officialNotes": | |
k.collection.add([{ | |
Key: m.Key, | |
Route: "#candidateview", | |
Page: "#candidateview/" + k.options.userId + "/officialNotes", | |
Label: "Official Notes", | |
Icon: "p3icon-officalNote", | |
Selected: false | |
}]); | |
break; | |
case "contactcard": | |
k.collection.add([{ | |
Key: m.Key, | |
Route: "#candidateview", | |
Page: "#candidateview/" + k.options.userId + "/contactcard", | |
Label: "Contact Card", | |
Icon: "p3icon-contactCard", | |
Selected: false | |
}]); | |
break; | |
default: | |
break | |
} | |
} | |
}) | |
} | |
i = k.options.page.toLowerCase(); | |
_.each(k.collection.models, function (m) { | |
if (m.get("Key").toLowerCase() === i) { | |
m.set({ | |
Selected: true | |
}); | |
j = true | |
} else { | |
m.set({ | |
Selected: false | |
}) | |
} | |
}); | |
if (!j) { | |
k.collection.at(0).set({ | |
Selected: true | |
}) | |
} | |
k.$el.html(l({ | |
collection: k.collection.toJSON(), | |
userId: k.options.userId | |
})); | |
k.shown(k.options.page) | |
}) | |
}, | |
shown: function (h) { | |
var i = this; | |
switch (h) { | |
case "progress": | |
p3.rV(new b.Vs.Layout({ | |
userId: i.options.userId, | |
userName: c.Data.fullName | |
}), $("#maincontent"), false); | |
$('.nav-pills li a[href="#candidateview/' + i.options.userId + '/progress"]').closest("li").addClass("active"); | |
break; | |
case "decision": | |
p3.rV(new a.Vs.Layout({ | |
userId: i.options.userId | |
}), $("#maincontent"), false); | |
$('.nav-pills li a[href="#candidateview/' + i.options.userId + '/decision"]').closest("li").addClass("active"); | |
break; | |
case "officialNotes": | |
e.Data.currentApp = 34; | |
e.Us.loadViewHistoryNoHeader(i.options.userId, $("#maincontent")); | |
$('.nav-pills li a[href="#candidateview/' + i.options.userId + '/officialNotes"]').closest("li").addClass("active"); | |
break; | |
case "contactcard": | |
p3.rV(new f.Vs.Layout({ | |
userId: i.options.userId | |
}), $("#maincontent"), false); | |
$('.nav-pills li a[href="#candidateview/' + i.options.userId + '/contactcard"]').closest("li").addClass("active"); | |
break; | |
default: | |
break | |
} | |
} | |
}); | |
p3.router().route("candidateview/:id/:page(/:mode)", "candidateview", function (h, j, i) { | |
p3.renderMainPage(new c.Vs.Layout({ | |
userId: h, | |
page: j, | |
mode: i | |
})) | |
}) | |
}(p3.module("admissions/candidateview"))); | |
(function (b) { | |
var a = p3.module("shared/base"), | |
f = p3.module("utilities/validate"), | |
e = p3.module("utilities/smodal"), | |
c = p3.module("utilities/filter"), | |
d = p3.Us.InfoMessageLibrary; | |
b.Ms.Checklist = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ChecklistId", | |
validation: { | |
Name: [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "AdmChecklist/Edit/" + this.id + "/" : aP + "AdmChecklist/Edit/" | |
} | |
}); | |
b.Ms.Status = Bbm.extend({ | |
idAttribute: "StatusTypeId", | |
defaults: { | |
NpiReport: true | |
}, | |
validation: { | |
Name: [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}, { | |
maxLength: 50, | |
msg: d.P3.MaxLengthExceeded | |
}] | |
} | |
}); | |
b.Ms.ChecklistCopy = Bbm.extend({ | |
sync: a.DataParamSync, | |
validation: { | |
Name: [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return aP + "AdmChecklist/Copy/" | |
} | |
}); | |
b.Ms.ItemCategoriesIndex = Bbm.extend({ | |
sync: a.DataParamSync, | |
initialize: function () { | |
this.ItemCategories = new b.Cs.ChecklistItemCategories() | |
}, | |
url: function () { | |
return aP + "AdmChecklistItemCategory/Index/" | |
} | |
}); | |
b.Ms.ChecklistItemCategory = Bbm.extend({ | |
initialize: function () { | |
this.set("Cid", this.cid, { | |
silent: true | |
}) | |
}, | |
validation: { | |
Name: [{ | |
required: true, | |
msg: d.P3.RequiredInfoNotEntered | |
}] | |
}, | |
isValid: function () { | |
return (f.isEmptier(this.get("Name"))) ? false : true | |
} | |
}); | |
b.Cs.Checklists = Bbc.extend({ | |
model: b.Ms.Checklist, | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, c.Us.CollectionFilter)) | |
}, | |
url: function () { | |
return aP + "AdmChecklist/List/" | |
} | |
}); | |
b.Cs.Statuses = Bbc.extend({ | |
model: b.Ms.Status, | |
url: "AdmChecklistStatus/List/" | |
}); | |
b.Cs.ChecklistItemCategories = Bbc.extend({ | |
model: b.Ms.ChecklistItemCategory, | |
setModelCids: function () { | |
this.each(function (g) { | |
g.set("Cid", g.cid, { | |
silent: true | |
}) | |
}) | |
} | |
}); | |
b.Cs.ChecklistItems = Bbc.extend({}); | |
b.Vs.Layout = Bb.View.extend({ | |
template: "page/page.10-2.template.html", | |
initialize: function () { | |
var g = this; | |
g.Containers = {} | |
}, | |
render: function (g) { | |
var h = this; | |
p3.setTitle("Checklists"); | |
$(g).html(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var i = this, | |
g, h; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({})); | |
i.Containers = { | |
LeftColumn: i.$(".col-left"), | |
RightColumn: i.$(".col-right") | |
}; | |
g = new b.Cs.Checklists(); | |
g.addExceptionValue("IsSample", "true"); | |
h = new b.Vs.Checklists({ | |
collection: g | |
}); | |
p3.rV(h, i.Containers.LeftColumn, false); | |
p3.rV(new c.Vs.Filter({ | |
template: "checklists/checklists.filter.template.html", | |
collection: g, | |
callback: function () { | |
h.renderData() | |
} | |
}), i.Containers.RightColumn, false) | |
}) | |
} | |
}); | |
b.Vs.Checklists = Bb.View.extend({ | |
template: "checklists/checklists.content.template.html", | |
events: { | |
"click #addChecklist": "addChecklist", | |
"click #statuses": "manageStatuses", | |
"click #report-categories": "editReportCategories" | |
}, | |
initialize: function (g) { | |
var h = this; | |
h.collection.bind("add", function (j) { | |
var i = new b.Vs.Checklist({ | |
model: j, | |
parentView: h | |
}); | |
j.bind("sync", h.renderData, h); | |
p3.rV(i, h.$(".checklists-table"), false) | |
}, this) | |
}, | |
render: function (g) { | |
var h = this; | |
$(g).append(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var g = this; | |
g.collection.reset(); | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({})); | |
g.collection.fetch({ | |
update: true, | |
cache: false | |
}) | |
}) | |
}, | |
addChecklist: function () { | |
b.Us.AddChecklist() | |
}, | |
manageStatuses: function () { | |
b.Us.ManageStatuses() | |
}, | |
editReportCategories: function (g) { | |
b.Us.EditReportCategories() | |
} | |
}); | |
b.Vs.Checklist = Bb.View.extend({ | |
template: "checklists/checklists.checklist.template.html", | |
tagName: "tr", | |
events: { | |
"click .edit:not(.disabled)": "editChecklist", | |
"click .delete:not(.disabled)": "deleteChecklist", | |
"click .copy:not(.disabled)": "copyChecklist", | |
"click a.togglebutton": "toggleInfo", | |
"change #InactiveInd": "updateStatus", | |
"click .inline-edit:not(.disabled)": "toggleInlineEdit", | |
"blur .inline-edit .nameedit input": "closeInlineEdit", | |
"change input#Name": "updateModel", | |
"mouseover td.inline-edit": "inlineEditOver", | |
"mouseout td.inline-edit": "inlineEditOut" | |
}, | |
render: function (g) { | |
var h = this; | |
$(g).append(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var g = this; | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({ | |
model: g.model.toJSON() | |
})) | |
}) | |
}, | |
toggleInfo: function (g) { | |
var h = this; | |
h.$(".toggleinfo").slideToggle("fast"); | |
if ($(g.currentTarget).hasClass("active")) { | |
$(g.currentTarget).removeClass("active") | |
} else { | |
$(g.currentTarget).addClass("active") | |
} | |
return false | |
}, | |
editChecklist: function (g) { | |
var h = this; | |
g.stopPropagation(); | |
g.preventDefault(); | |
p3.router().navigate("#settings/checklists/" + h.model.get("ChecklistId"), true) | |
}, | |
copyChecklist: function (i, k) { | |
var l = this, | |
h = { | |
Id: l.model.get("ChecklistId") | |
}, | |
g = new b.Ms.ChecklistCopy({ | |
ChecklistId: l.model.get("ChecklistId"), | |
Name: "Copy of " + l.model.get("Name") | |
}), | |
j; | |
g.bind("sync", l.options.parentView.renderData, l.options.parentView); | |
j = e.Vs.Modal2.extend({ | |
template: "checklists/checklists.checklist.copy.template.html", | |
model: g, | |
dataParam: h, | |
variables: { | |
name: l.model.get("Name") | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new j(), p3.Layout.Containers.Modal, true) | |
}, | |
updateStatus: function (h) { | |
h.preventDefault(); | |
var j = this, | |
g = $(h.currentTarget), | |
i = g.val(); | |
j.model.set("InactiveInd", i); | |
j.model.save({}, { | |
error: function () { | |
p3.displayError("Error saving checklist status") | |
} | |
}) | |
}, | |
deleteChecklist: function (g) { | |
var h = this; | |
p3.showConfirm("Delete Checklist", "Wait a minute. Are you really sure you want to delete " + h.model.get("Name") + "?", null, function () { | |
$(h.el).find("button").addClass("disabled"); | |
$(h.el).find("button.delete").prepend('<div class="textcenter"><img width="19px" height="19px" src="' + p3.Config.CssImagePath + 'spinner.gif" ></div>').find("h5").hide(); | |
$(h.el).find("button.delete h5").hide(); | |
h.model.destroy({ | |
dataParam: { | |
id: h.model.get("ChecklistId") | |
}, | |
success: function () { | |
h.deleteElement() | |
}, | |
error: function () { | |
$(h.el).find("button").removeClass("disabled"); | |
$(h.el).find("button.delete div").remove(); | |
$(h.el).find("button.delete h5").show(); | |
p3.displayError("Error deleting checklist") | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
}, | |
inlineEditOver: function (g) { | |
g.stopPropagation(); | |
g.preventDefault(); | |
$(g.currentTarget).find("i").show() | |
}, | |
inlineEditOut: function (g) { | |
g.stopPropagation(); | |
g.preventDefault(); | |
$(g.currentTarget).find("i").hide() | |
}, | |
toggleInlineEdit: function (g) { | |
g.stopPropagation(); | |
g.preventDefault(); | |
var h = $(g.currentTarget); | |
h.find(".display").hide(); | |
h.find(".nameedit").show(); | |
h.find(".nameedit input").focus() | |
}, | |
closeInlineEdit: function (g) { | |
var h = this; | |
g.stopPropagation(); | |
g.preventDefault(); | |
if (h.model.isValid(true)) { | |
h.$(".display").show(); | |
h.$(".nameedit").hide(); | |
h.updateModel(g) | |
} | |
}, | |
updateModel: function (i) { | |
var m = this, | |
k = $(i.currentTarget), | |
j = k.attr("name"), | |
l, g = {}, | |
h; | |
i.stopPropagation(); | |
i.preventDefault(); | |
m.model.defaults = $.extend(true, {}, m.model.attributes); | |
if (j === "Name") { | |
l = k.prop("value"); | |
if (!l) { | |
l = null | |
} | |
} | |
if (!_.contains(j, ".")) { | |
g[j] = l; | |
m.model.set(g) | |
} else { | |
m.setPropByString(m.model.attributes, j, l); | |
if (m.model.isValid(j)) { | |
Bb.Validation.callbacks.valid(m, j, "name") | |
} else { | |
Bb.Validation.callbacks.invalid(m, j, "Entered value contains an error.", "name") | |
} | |
} | |
if (m.model.isValid(true)) { | |
m.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(m.model.attributes, function (p, n, o) { | |
m.recursiveFunction(p, n, o, "") | |
}); | |
h = { | |
Id: m.model.get("ChecklistId") | |
}; | |
m.model.save({}, { | |
dataParam: h, | |
error: function (o, n) { | |
p3.displayError("Error saving") | |
} | |
}); | |
if (j === "Name") { | |
k.parent().siblings(".display").html(l) | |
} | |
} | |
}, | |
recursiveFunction: function (j, g, h, i) { | |
var k = this; | |
e.Us.setFieldsToNull(k.model, j, g, h, i) | |
}, | |
getPropByString: function (g, h) { | |
return e.Us.getPropByString(g, h) | |
}, | |
setPropByString: function (g, h, i) { | |
e.Us.setPropByString(g, h, i) | |
} | |
}); | |
b.Vs.Sidebar = Bb.View.extend({ | |
template: "checklists/checklists.sidebar.template.html", | |
className: "checklists-sidebar", | |
events: { | |
"click #addChecklist": "addChecklist", | |
"click #statuses": "manageStatuses", | |
"click #report-categories": "editReportCategories" | |
}, | |
render: function (g) { | |
var h = this; | |
$(g).html(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var g = this; | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({})) | |
}) | |
}, | |
addChecklist: function () { | |
b.Us.AddChecklist() | |
}, | |
manageStatuses: function () { | |
b.Us.ManageStatuses() | |
}, | |
editReportCategories: function (g) { | |
b.Us.EditReportCategories() | |
} | |
}); | |
b.Vs.StatusesManage = Bb.View.extend({ | |
template: "checklists/checklists.statuses.template.html", | |
initialize: function (g) { | |
this.model = new b.Ms.Status(); | |
Bb.Validation.bind(this, { | |
forceUpdate: true, | |
selector: "id" | |
}); | |
this.Containers = {} | |
}, | |
events: { | |
"click #btnAdd": "addStatus", | |
"click .save": "saveStatuses" | |
}, | |
render: function (g) { | |
var h = this; | |
$(g).append(h.el); | |
h.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var g = this; | |
p3.fT(g.template, function (i) { | |
g.$el.html(i({})); | |
g.Containers = { | |
EditList: g.$("#status-list") | |
}; | |
var h = new b.Vs.StatusEditList({ | |
collection: g.collection | |
}); | |
p3.rV(h, g.Containers.EditList, true); | |
g.collection.on("add", function () { | |
h.renderTemplate() | |
}); | |
$(".required-indicator").tooltip() | |
}) | |
}, | |
addStatus: function (k) { | |
k.preventDefault(); | |
var l = this, | |
i = l.$("#Name"), | |
j = 0, | |
g = l.$(".error-holder"), | |
h = l.$(".error-holder .alert"); | |
l.model.set({ | |
Name: i.val(), | |
InUse: false, | |
DeleteInd: false | |
}); | |
_.each(l.collection.models, function (m) { | |
if (m.attributes.Name === i.val()) { | |
j = 1 | |
} | |
}); | |
if (j !== 1) { | |
h.html(""); | |
g.hide(); | |
if (l.model.isValid(true)) { | |
l.collection.add(l.model); | |
l.model = new b.Ms.Status(); | |
Bb.Validation.bind(this, { | |
forceUpdate: true, | |
selector: "id" | |
}); | |
i.val("") | |
} | |
} else { | |
h.html("Status name must be unique."); | |
g.show() | |
} | |
}, | |
saveStatuses: function (g) { | |
g.preventDefault(); | |
var h = this; | |
h.collection.sync("update", h.collection, { | |
success: function () { | |
p3.showModal(p3.Layout.Containers.Modal, "hide") | |
}, | |
error: function () { | |
p3.showModal(p3.Layout.Containers.Modal, "hide"); | |
p3.displayError("Error saving statuses") | |
} | |
}) | |
} | |
}); | |
b.Vs.StatusEditList = Bb.View.extend({ | |
template: "checklists/checklists.statuses.edit.template.html", | |
id: "edit-statuses-holder", | |
events: { | |
"click button.npi-report": "npiReportClicked", | |
"click button.status-delete": "statusDeleteClicked", | |
"click .inline-edit": "toggleInlineEdit", | |
"blur .inline-edit .edit input": "closeInlineEdit", | |
"change input#Name": "updateModel", | |
"mouseover td.inline-edit": "inlineEditOver", | |
"mouseout td.inline-edit": "inlineEditOut" | |
}, | |
render: function (g) { | |
var h = this; | |
$(g).append(h.el); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
h.renderTemplate() | |
}) | |
}, | |
renderTemplate: function () { | |
var g = this; | |
g.collection.each(function (h) { | |
h.set({ | |
cid: h.cid | |
}, { | |
silent: true | |
}) | |
}); | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({ | |
statuses: g.collection.toJSON() | |
})); | |
g.initSortable(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
initSortable: function () { | |
var g = this; | |
g.$(".ui-sortable").sortable({ | |
items: ".sort-drag-block", | |
axis: "y", | |
distance: 5, | |
containment: ".ui-sortable", | |
appendTo: "#edit-statuses-holder", | |
placeholder: "sortable-placeholder", | |
helper: function (h, i) { | |
return '<table class="table table-striped sort-drag-block-helper"><tbody>' + i.context.outerHTML + "</tbody></table>" | |
}, | |
update: function (h, l) { | |
var j = l.item.index(), | |
i = l.item.data("cid"), | |
k = g.collection.get(i); | |
if (k) { | |
g.collection.remove(k); | |
g.collection.add(k, { | |
at: j, | |
silent: true | |
}) | |
} | |
} | |
}).disableSelection() | |
}, | |
npiReportClicked: function (i) { | |
i.preventDefault(); | |
var j = this, | |
g = $(i.currentTarget), | |
h = g.closest("tr").data("cid"); | |
j.model = j.collection.get(h); | |
if (j.model) { | |
_.defer(function () { | |
j.model.set("NpiReport", g.hasClass("active")) | |
}) | |
} | |
}, | |
statusDeleteClicked: function (i) { | |
i.preventDefault(); | |
var j = this, | |
g = $(i.currentTarget), | |
h = g.closest("tr").data("cid"); | |
j.model = j.collection.get(h); | |
if (j.model && !j.model.get("InUse")) { | |
j.model.set("DeleteInd", !j.model.get("DeleteInd")) | |
} | |
}, | |
inlineEditOver: function (g) { | |
g.stopPropagation(); | |
g.preventDefault(); | |
$(g.currentTarget).find("i").show() | |
}, | |
inlineEditOut: function (g) { | |
g.stopPropagation(); | |
g.preventDefault(); | |
$(g.currentTarget).find("i").hide() | |
}, | |
toggleInlineEdit: function (i) { | |
var j = this, | |
g = $(i.currentTarget), | |
h; | |
i.stopPropagation(); | |
i.preventDefault(); | |
h = g.closest("tr").data("cid"); | |
j.model = j.collection.get(h); | |
g.find(".display").hide(); | |
g.find(".edit").show(); | |
g.find(".edit input").focus() | |
}, | |
closeInlineEdit: function (i) { | |
var j = this, | |
g = $(i.currentTarget), | |
h; | |
i.stopPropagation(); | |
i.preventDefault(); | |
h = g.closest("tr").data("cid"); | |
j.model = j.collection.get(h); | |
if (j.model.isValid(true)) { | |
j.$(".display").show(); | |
j.$(".edit").hide(); | |
j.updateModel(i) | |
} | |
}, | |
updateModel: function (h) { | |
var l = this, | |
j = $(h.currentTarget), | |
i = j.attr("name"), | |
k, g = {}; | |
h.stopPropagation(); | |
h.preventDefault(); | |
l.model.defaults = $.extend(true, {}, l.model.attributes); | |
if (i === "Name") { | |
k = j.prop("value"); | |
if (!k) { | |
k = null | |
} | |
} else { | |
k = j.prop("value") | |
} | |
if (!_.contains(i, ".")) { | |
g[i] = k; | |
l.model.set(g) | |
} else { | |
l.setPropByString(l.model.attributes, i, k); | |
if (l.model.isValid(i)) { | |
Bb.Validation.callbacks.valid(l, i, "name") | |
} else { | |
Bb.Validation.callbacks.invalid(l, i, "Entered value contains an error.", "name") | |
} | |
} | |
if (l.model.isValid(true)) { | |
l.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(l.model.attributes, function (o, m, n) { | |
l.recursiveFunction(o, m, n, "") | |
}); | |
if (i === "Name") { | |
j.parent().siblings(".display").text(k) | |
} | |
} | |
}, | |
recursiveFunction: function (j, g, h, i) { | |
var k = this; | |
e.Us.setFieldsToNull(k.model, j, g, h, i) | |
}, | |
getPropByString: function (g, h) { | |
return e.Us.getPropByString(g, h) | |
}, | |
setPropByString: function (g, h, i) { | |
e.Us.setPropByString(g, h, i) | |
} | |
}); | |
b.Us.AddChecklist = function () { | |
var g = new b.Ms.Checklist({ | |
InactiveInd: 1 | |
}), | |
h; | |
h = e.Vs.Modal2.extend({ | |
template: "checklists/checklists.checklist.create.template.html", | |
model: g, | |
modalSavedSuccess: function (j) { | |
var i = this; | |
p3.router().navigate("#settings/checklists/" + i.model.toJSON().ChecklistId, true) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new h(), p3.Layout.Containers.Modal, true) | |
}; | |
b.Us.ManageStatuses = function () { | |
var g = new b.Cs.Statuses(); | |
g.fetch({ | |
success: function () { | |
p3.rV(new b.Vs.StatusesManage({ | |
collection: g | |
}), p3.Layout.Containers.Modal, true); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error loading statuses") | |
} | |
}) | |
}; | |
b.Us.EditReportCategories = function () { | |
var g = new b.Ms.ItemCategoriesIndex(); | |
g.fetch({ | |
success: function (i, j) { | |
var h = e.Vs.Modal2.extend({ | |
template: "checklists/checklists.reportcategories.template.html", | |
model: g, | |
ChecklistItemCategories: new b.Cs.ChecklistItemCategories(g.toJSON().AdmChecklistItemCategories), | |
ChecklistItems: new b.Cs.ChecklistItems(g.toJSON().AdmChecklists), | |
events: { | |
"click .nav-tabs li": "selectTab", | |
"click .left-tabs div": "selectTab" | |
}, | |
modalRendered: function (l) { | |
var k = this; | |
k.tabNumber = 1; | |
k.renderTabs() | |
}, | |
adjustedSelector: function (k) { | |
var l = this; | |
k = k.replace("nav-tabs li", "left-tabs div"); | |
k = k.replace("nav-tabs", "left-tabs"); | |
k = k.replace("] a", "]"); | |
return l.$(k) | |
}, | |
renderTabs: function (k) { | |
var l = this; | |
p3.fT("checklists/checklists.reportcategories.tab.template.html", function (m) { | |
l.$(".tab-holder").html(m({ | |
collection: l.ChecklistItemCategories.toJSON() | |
})); | |
_.each(l.ChecklistItemCategories.toJSON(), function (n) { | |
_.each(l.ChecklistItems.toJSON(), function (o) { | |
_.each(o.ChecklistCategoryIndex, function (p) { | |
_.each(p.ChecklistItemCategories, function (q) { | |
if (n.ChecklistItemCategoryId === q.ChecklistItemCategoryId) { | |
q.Cid = n.Cid | |
} | |
}) | |
}) | |
}) | |
}); | |
if (l.ChecklistItemCategories.toJSON().length) { | |
l.adjustedSelector(".nav-tabs li").first().click() | |
} else { | |
l.$(".tab-content").html('<div class="tab-pane active mb-20" style="text-align:center;"><h3>No categories have been created.</h3><button class="btn btn-default btn-sm bb-btn-secondary add"><i class="fa fa-plus-circle"></i> Add Category</button></div>') | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
selectTab: function (l) { | |
var m = this, | |
n, k = m.$(l.currentTarget); | |
l.stopPropagation(); | |
l.preventDefault(); | |
m.adjustedSelector(".nav-tabs li.active").removeClass("active"); | |
k.addClass("active"); | |
k.closest(".left-item").siblings(".left-item").removeClass("white-bgc"); | |
k.closest(".left-item").addClass("white-bgc"); | |
m.cId = k.data("cid"); | |
n = _.findWhere(m.ChecklistItemCategories.toJSON(), { | |
Cid: m.cId | |
}); | |
m.categoryName = n.Name; | |
m.categoryId = n.ChecklistItemCategoryId; | |
m.deleteInd = n.DeleteInd; | |
m.errorInd = k.hasClass("box-validate"); | |
m.renderContent() | |
}, | |
renderContent: function (k) { | |
var l = this; | |
p3.fT("checklists/checklists.reportcategories.content.template.html", function (m) { | |
l.$(".tab-content").html(m({ | |
collection: l.ChecklistItems.toJSON(), | |
categoryName: l.categoryName, | |
errorInd: l.errorInd, | |
deleteInd: l.deleteInd, | |
cid: l.cId, | |
id: l.categoryId | |
})); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
modalUpdate: function (m) { | |
var l = this, | |
o, n, k, p; | |
if (m.eventCurrentTarget.hasClass("checklist-step")) { | |
o = _.findWhere(l.ChecklistItems.toJSON(), { | |
ChecklistId: m.eventCurrentTarget.data("checklistid") | |
}); | |
n = _.findWhere(o.ChecklistCategoryIndex, { | |
ChecklistItemId: m.eventCurrentTarget.data("itemid") | |
}); | |
if (m.eventCurrentTarget.hasClass("active")) { | |
n.ChecklistItemCategories = _.reject(n.ChecklistItemCategories, function (q) { | |
return q.Cid === l.cId | |
}) | |
} else { | |
n.ChecklistItemCategories.push({ | |
ChecklistItemCategoryId: l.categoryId, | |
Cid: l.cId | |
}) | |
} | |
return false | |
} | |
if (m.eventCurrentTarget.attr("name") === "Name") { | |
_.each(l.ChecklistItemCategories.models, function (q) { | |
if (q.get("Cid") === l.cId) { | |
q.set({ | |
Name: m.eventCurrentTarget.val() | |
}) | |
} | |
}); | |
return false | |
} | |
if (m.eventCurrentTarget.hasClass("delete")) { | |
if (m.eventCurrentTarget.hasClass("active")) { | |
k = false; | |
l.$(".category-items").show() | |
} else { | |
k = true; | |
l.$(".category-items").hide() | |
} | |
_.each(l.ChecklistItemCategories.models, function (q) { | |
if (q.get("Cid") === l.cId) { | |
q.set({ | |
DeleteInd: k | |
}) | |
} | |
}); | |
return false | |
} | |
if (m.eventCurrentTarget.hasClass("add")) { | |
l.ChecklistItemCategories.add({ | |
ChecklistItemCategoryId: null, | |
Cid: null, | |
DeleteInd: false, | |
FieldsToNull: [], | |
InsertDate: null, | |
LastModifyDate: null, | |
LastModifyUserId: null, | |
LockInd: 1, | |
Name: "Category " + l.tabNumber, | |
SortOrder: null, | |
UseFieldsToNull: false, | |
insert_by: null, | |
internal_id: null, | |
modified_by: null, | |
school_id: null, | |
vendor_external_id: null | |
}); | |
p = l.ChecklistItemCategories.at(l.ChecklistItemCategories.length - 1).get("Cid"); | |
l.adjustedSelector(".nav-tabs").append('<div class="left-item m-0 p-0" data-cid="' + p + '"><p class="m-0 p-10">Category ' + l.tabNumber + '</p></div><hr class="divider p-0 m-0">'); | |
l.adjustedSelector('.nav-tabs li[data-cid="' + p + '"]').click(); | |
l.tabNumber++ | |
} | |
}, | |
modalSave: function (m) { | |
var l = this, | |
k = true; | |
l.adjustedSelector(".nav-tabs li a").removeClass("box-validate"); | |
l.adjustedSelector('.tab-content [name="Name"]').removeClass("box-validate"); | |
l.$(".tab-content .control-label").removeClass("error"); | |
_.each(l.ChecklistItemCategories.models, function (n) { | |
if (!n.isValid()) { | |
l.adjustedSelector('.nav-tabs li[data-cid="' + n.get("Cid") + '"] a').addClass("box-validate"); | |
k = false; | |
if (l.adjustedSelector('.nav-tabs li[data-cid="' + n.get("Cid") + '"]').hasClass("active")) { | |
l.$('.tab-content [name="Name"]').addClass("box-validate"); | |
l.$(".tab-content .control-label").addClass("error") | |
} | |
} | |
}); | |
g.set({ | |
AdmChecklistItemCategories: l.ChecklistItemCategories.toJSON(), | |
AdmChecklists: l.ChecklistItems.toJSON() | |
}); | |
if (!k) { | |
return false | |
} | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new h(), p3.Layout.Containers.Modal, true) | |
} | |
}) | |
}; | |
Hb.registerHelper("formatLength", function (h, g) { | |
return (h.length > g) ? h.substr(0, g) + "..." : h | |
}); | |
Hb.registerHelper("eachChecklistCategory", function (g, n) { | |
var k, m, l, h = ""; | |
if (!_.isArray(g)) { | |
g = [g] | |
} | |
for (k = 0, m = g.length; k < m; k++) { | |
l = g[k]; | |
l.startTag = ""; | |
l.endTag = ""; | |
if (k % 3 === 0) { | |
l.startTag = "<tr>"; | |
if (k !== 0) { | |
l.endTag = "</tr>" | |
} | |
} | |
h += n.fn(l) | |
} | |
return h | |
}); | |
Hb.registerHelper("isChecklistItemActive", function (g, h, j) { | |
var i = _.some(g, function (k) { | |
return k.Cid === h | |
}); | |
return new Hb.SafeString(i ? " active" : "") | |
}); | |
p3.router().route("settings/checklists", "settings/checklists", function () { | |
p3.renderMainPage(new b.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/checklists"))); | |
(function (b) { | |
var c = p3.module("shared/datepicker"), | |
a = p3.module("shared/base"), | |
h = p3.module("utilities/smodal"), | |
d = p3.module("utilities/dictionary"), | |
g = p3.module("utilities/multifetch"), | |
i = p3.module("utilities/validate"), | |
e = p3.Us.Enum, | |
f = p3.Us.InfoMessageLibrary; | |
b.Ms.Checklist = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ChecklistId", | |
url: function () { | |
return this.id ? aP + "AdmChecklist/Edit/" + this.id + "/" : aP + "AdmChecklist/Edit/" | |
} | |
}); | |
b.Ms.Milestone = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ChecklistStepId", | |
validation: { | |
ChecklistStepDesc: [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}], | |
StatusChange: [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}], | |
NewStatusTypeId: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.StatusChange) && _.contains(["2", "3"], k.StatusChange.toString()) && i.isEmptier(l)) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "AdmChecklistStep/Edit/" + this.id + "/" : aP + "AdmChecklistStep/Edit/" | |
}, | |
getStep: function (j) { | |
var l = this.get("AdmChecklistItem"), | |
k; | |
if (l && l.length) { | |
k = _.find(l, function (m) { | |
return m.ChecklistItemId === j | |
}); | |
if (k) { | |
k = new b.Ms.Step(k) | |
} | |
} | |
return k | |
} | |
}, { | |
DisplayName: "Milestone" | |
}); | |
b.Ms.Step = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ChecklistItemId", | |
validation: { | |
ChecklistItemDesc: [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}], | |
DateDue: [{ | |
date: true | |
}], | |
ReminderDays: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.ReminderTypeId) && _.contains(["3", "4", "5"], k.ReminderTypeId.toString()) && i.isEmptier(l)) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
FamilyReminderDays: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.FamilyReminderTypeId) && _.contains(["3", "4", "5"], k.FamilyReminderTypeId.toString()) && i.isEmptier(l)) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
RecommendTypeId: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.DataCollectionTypeId) && _.contains(["4", "20"], k.DataCollectionTypeId.toString()) && i.isEmptier(l) && k.Publish === true && k.RecommendInd === true) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
RecommendRecipientLabel: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.DataCollectionTypeId) && _.contains(["4", "20"], k.DataCollectionTypeId.toString()) && i.isEmptier(l) && k.Publish === true && k.RecommendInd === true) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
RecommendEmailText: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.DataCollectionTypeId) && _.contains(["4"], k.DataCollectionTypeId.toString()) && i.isEmptier(l) && k.Publish === true && k.RecommendInd === true) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
RecommendPageText: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.DataCollectionTypeId) && _.contains(["4", "20"], k.DataCollectionTypeId.toString()) && i.isEmptier(l) && k.Publish === true && k.RecommendInd === true) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
FormTypeId: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.DataCollectionTypeId) && _.contains(["19"], k.DataCollectionTypeId.toString()) && i.isEmptier(l)) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}], | |
ApplicationFormId: [{ | |
fn: function (l, j, k) { | |
if (!i.isEmptier(k.DataCollectionTypeId) && _.contains(["19", "20"], k.DataCollectionTypeId.toString()) && i.isEmptier(l)) { | |
return f.P3.RequiredInfoNotEntered | |
} | |
} | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "AdmChecklistItem/Edit/" + this.id + "/" : aP + "AdmChecklistItem/Edit/" | |
} | |
}, { | |
DisplayName: "Step" | |
}); | |
b.Ms.CandidateApply = Bbm.extend({ | |
defaults: { | |
ApplyToCandidates: false, | |
SchoolYears: [], | |
GradeLevels: [] | |
}, | |
validation: { | |
ApplyToCandidates: { | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
} | |
}, | |
getOptions: function () { | |
return { | |
applyToCandidates: this.get("ApplyToCandidates"), | |
schoolYears: this.get("SchoolYears").join(","), | |
gradeLevels: this.get("GradeLevels").join(",") | |
} | |
} | |
}); | |
b.Ms.ChecklistSort = Bbm.extend({ | |
parse: function (j) { | |
this.MileStones = new b.Cs.Milestones(j.ChecklistSteps); | |
this.CandidateApplyOptions = new b.Ms.CandidateApply(j.CandidateApplyOptions); | |
return j | |
}, | |
urlRoot: "AdmChecklistStep/EditSort" | |
}); | |
b.Cs.Milestones = Bbc.extend({ | |
sync: a.DataParamSync, | |
model: b.Ms.Milestone, | |
url: function () { | |
return aP + "AdmChecklistStep/List/" | |
} | |
}); | |
b.Cs.Steps = Bbc.extend({ | |
sync: a.DataParamSync, | |
model: b.Ms.Step | |
}); | |
b.Cs.AdmDataCollectionTypes = Bbc.extend({ | |
url: function () { | |
return aP + "DataDirect/AdmDataCollectionTypes/" | |
} | |
}); | |
b.Cs.EventRegistrationTypes = Bbc.extend({ | |
url: function () { | |
return aP + "AdmChecklistItem/RegistrationList/" | |
} | |
}); | |
b.Cs.SchoolFormTypes = Bbc.extend({ | |
url: function () { | |
return aP + "DataDirect/SchoolFormPermissionGet/" | |
} | |
}); | |
b.Cs.SchoolForms = Bbc.extend({ | |
url: function () { | |
return aP + "SchoolForm/List/" | |
} | |
}); | |
b.Cs.RecommendationForms = Bbc.extend({ | |
url: function () { | |
return aP + "RecommendationForm/FormList/" | |
} | |
}); | |
b.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.header.template.html", | |
id: "checklistedit-main", | |
initialize: function (j) { | |
var k = this; | |
j = j || {}; | |
k.ChecklistId = j.ChecklistId | |
}, | |
events: {}, | |
render: function (j) { | |
var k = this; | |
p3.setTitle("Checklist Edit"); | |
$(j).append(k.el); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
d.Us.FetchAll({ | |
ADMChecklistStatus: e.DictionaryData.ADMChecklistStatus, | |
ADMStaff: e.DictionaryData.ADMStaff, | |
ADMReminderTypes: e.DictionaryData.ADMReminderTypes, | |
ADMReferenceTypes: e.DictionaryData.ADMReferenceTypes, | |
GradeLevel: e.DictionaryData.GradeLevel, | |
SchoolYearCurrentFuture: { | |
name: "School Year Current Future", | |
id: 83, | |
inputParam: "display=7[i]" | |
} | |
}, function (l) { | |
b.Data.Dictionaries = l; | |
k.renderData() | |
}) | |
}) | |
}, | |
renderData: function () { | |
var j = this; | |
p3.fT(j.template, function (l) { | |
var k; | |
j.$el.html(l({})); | |
k = $(".col-center"); | |
p3.rV(new b.Vs.Header({}), k, false) | |
}) | |
} | |
}); | |
b.Vs.Header = Bb.View.extend({ | |
template: "checklists/checklists.edit.header.html", | |
id: "checklistedit-header", | |
initialize: function (j) { | |
var k = this; | |
k.model = new b.Ms.Checklist(); | |
k.dictionaries = b.Data.Dictionaries; | |
b.Data.Checklist = k.model | |
}, | |
events: { | |
"click .create-milestone": "createMilestone", | |
"click .edit": "editSort" | |
}, | |
render: function (j) { | |
var k = this; | |
$(j).append(k.el); | |
k.renderData() | |
}, | |
renderData: function () { | |
var j = this; | |
p3.fT(j.template, function (k) { | |
j.model.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
id: b.Data.ChecklistId | |
}, | |
success: function (m, n) { | |
var l; | |
j.$el.html(k({ | |
model: m.toJSON() | |
})); | |
l = $(".milestones-content-section"); | |
p3.rV(new b.Vs.Milestones({ | |
model: m | |
}), l, false) | |
} | |
}) | |
}) | |
}, | |
createMilestone: function (j) { | |
var m = this, | |
k = new b.Ms.Milestone({ | |
ChecklistId: b.Data.ChecklistId | |
}), | |
l; | |
l = h.Vs.Modal2.extend({ | |
template: "checklists/checklists.edit.editmilestone.template.html", | |
size: "md", | |
model: k, | |
dictionaries: m.dictionaries, | |
variables: { | |
hideNewStatusTypeId: true | |
}, | |
modalUpdate: function (o) { | |
var n = this; | |
if (o.eventCurrentTarget.parent().attr("name") === "StatusChange") { | |
if (o.eventCurrentTarget.val() === "1" || o.eventCurrentTarget.val() === 1 || o.eventCurrentTarget.attr("value") === "1" || o.eventCurrentTarget.attr("value") === 1) { | |
n.$(".status-options").hide(); | |
n.setAll("NewStatusTypeId", null); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} else { | |
n.$(".status-options").show(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
} | |
}, | |
modalSave: function (o) { | |
var n = this; | |
return b.Us.ManageApplyToCandidatesView(n, k, o) | |
}, | |
modalSavedSuccess: function (n) { | |
$("#main-checklist").triggerHandler("createdata", n.response) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new l(), p3.Layout.Containers.Modal, true) | |
}, | |
editSort: function (k) { | |
k.preventDefault(); | |
var m = this, | |
j = new b.Ms.ChecklistSort(), | |
l; | |
j.fetch({ | |
data: { | |
checklistId: m.model.id | |
}, | |
success: function (n, p, o) { | |
l = new b.Vs.ChecklistSort({ | |
model: j | |
}); | |
l.on("sortSaved", function () { | |
b.trigger("refreshMilestones") | |
}); | |
p3.rV(l, p3.Layout.Containers.Modal, true); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}) | |
}, | |
error: function (n, p, o) { | |
p3.displayError("Error loading checklist") | |
} | |
}) | |
} | |
}); | |
b.Vs.Milestones = Bb.View.extend({ | |
id: "main-checklist", | |
className: "adm-well-top", | |
initialize: function (j) { | |
var k = this; | |
k.collection = new b.Cs.Milestones(); | |
k.collection.bind("add", function (m) { | |
var l = new b.Vs.Milestone({ | |
model: m | |
}); | |
p3.rV(l, this.$el, false) | |
}, k); | |
b.on("refreshMilestones", function () { | |
k.$el.empty(); | |
k.collection.reset(); | |
k.renderData() | |
}, k) | |
}, | |
events: { | |
renderdata: "renderData", | |
createdata: "createData" | |
}, | |
render: function (j) { | |
var k = this; | |
$(j).append(k.el); | |
k.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var j = this; | |
j.renderData() | |
}, | |
renderData: function () { | |
var j = this; | |
j.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
checklistId: b.Data.ChecklistId | |
}, | |
complete: function () { | |
j.collection.reset() | |
} | |
}) | |
}, | |
createData: function (j, k) { | |
var l = this; | |
l.collection.add(k) | |
} | |
}); | |
b.Vs.Milestone = Bb.View.extend({ | |
template: "checklists/checklists.edit.milestone.html", | |
initialize: function (j) { | |
var k = this; | |
k.dictionaries = b.Data.Dictionaries; | |
k.model.bind("sync", k.refreshData, k); | |
k.model.bind("destroy", k.deleteElement, k); | |
k.model.bind("remove", k.deleteElement, k) | |
}, | |
events: { | |
"click .toggleLink": "toggleSection", | |
"click .create-step": "createStep", | |
"click .edit-milestone": "editMilestone", | |
"click .delete-milestone": "deleteMilestone" | |
}, | |
render: function (j) { | |
var k = this; | |
$(j).append(k.el); | |
k.renderData() | |
}, | |
renderData: function () { | |
var j = this; | |
p3.fT(j.template, function (l) { | |
j.$el.html(l({ | |
model: j.model.toJSON() | |
})); | |
var k = new b.Vs.Steps({ | |
data: j.model.toJSON().AdmChecklistItem, | |
milestone: j.model.get("ChecklistStepDesc"), | |
milestoneView: j | |
}); | |
p3.rV(k, j.$("table"), false) | |
}) | |
}, | |
refreshData: function () { | |
var j = this; | |
j.model.unbind("sync"); | |
p3.fT(j.template, function (k) { | |
j.model.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
checklistId: b.Data.ChecklistId, | |
checklistStepId: j.model.get("ChecklistStepId") | |
}, | |
success: function (l, m) { | |
j.$el.html(k({ | |
model: j.model.toJSON() | |
})); | |
var n = new b.Vs.Steps({ | |
data: j.model.toJSON().AdmChecklistItem, | |
milestone: j.model.get("ChecklistStepDesc"), | |
milestoneView: j | |
}); | |
p3.rV(n, j.$("table"), false) | |
}, | |
complete: function () { | |
j.model.bind("sync", j.renderData, j) | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (j) { | |
j.preventDefault(); | |
j.stopPropagation(); | |
$(j.currentTarget).parent("div").siblings(".toggledetail").slideToggle("fast"); | |
$(j.currentTarget).find("i").toggleClass("fa-chevron-up fa-chevron-down"); | |
if ($(j.currentTarget).hasClass("active")) { | |
$(j.currentTarget).removeClass("active") | |
} else { | |
$(j.currentTarget).addClass("active") | |
} | |
}, | |
createStep: function (l) { | |
var D = this, | |
y = true, | |
r = true, | |
B = true, | |
n = true, | |
m = true, | |
s = true, | |
o = true, | |
A = true, | |
t = true, | |
x = true, | |
v = false, | |
w = true, | |
p = true, | |
q = true, | |
z = true, | |
j = true, | |
u = true, | |
C, k; | |
g.Us.Fetch({ | |
AdmDataCollectionTypes: { | |
data: new b.Cs.AdmDataCollectionTypes(), | |
dataParams: { | |
checklistId: b.Data.ChecklistId | |
} | |
}, | |
ADMInterviewTypes: { | |
data: new g.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Interview Types", | |
id: 101, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}, | |
ADMVisitTypes: { | |
data: new g.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Visit Types", | |
id: 103, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data" | |
} | |
}, | |
EventRegistrationTypes: { | |
data: new b.Cs.EventRegistrationTypes(), | |
dataParams: { | |
checklistId: b.Data.ChecklistId | |
} | |
}, | |
ProspectFileTypes: { | |
data: new g.Cs.Dictionary(), | |
dataParams: e.DictionaryData.ProspectFileType | |
}, | |
SchoolFormTypes: { | |
data: new b.Cs.SchoolFormTypes(), | |
dataParams: { | |
personaId: p3.Data.Context.getSelectedPersona().Id | |
} | |
} | |
}, function (E, G, F) { | |
D.dictionaries.AdmDataCollectionTypes = E.AdmDataCollectionTypes.toJSON(); | |
D.dictionaries.EventRegistrationTypes = E.EventRegistrationTypes.toJSON(); | |
D.dictionaries.ProspectFileTypes = E.ProspectFileTypes; | |
D.dictionaries.SchoolFormTypes = E.SchoolFormTypes.toJSON(); | |
if (E.ADMInterviewTypes.length) { | |
D.dictionaries.ADMInterviewTypes = _.map(E.ADMInterviewTypes, function (H) { | |
H.InterviewType = {}; | |
H.InterviewType.InterviewTypeName = H.dd_description; | |
H.InterviewType.InterviewTypeId = H.dd_id; | |
H.Selected = H.dd_data; | |
H.IsActive = H.dd_active; | |
H.ChecklistItemId = b.Data.ChecklistId; | |
return H | |
}) | |
} | |
if (E.ADMVisitTypes.length) { | |
D.dictionaries.ADMVisitTypes = _.map(E.ADMVisitTypes, function (H) { | |
H.VisitType = {}; | |
H.VisitType.VisitTypeName = H.dd_description; | |
H.VisitType.VisitTypeId = H.dd_id; | |
H.Selected = H.dd_data; | |
H.IsActive = H.dd_active; | |
H.ChecklistItemId = b.Data.ChecklistId; | |
return H | |
}) | |
} | |
C = new b.Ms.Step({ | |
ChecklistId: b.Data.ChecklistId, | |
ChecklistStepId: D.model.get("ChecklistStepId"), | |
Required: false, | |
DataCollectionTypeId: 1, | |
ReminderTypeId: 1, | |
Publish: false, | |
PublishToChecklist: false, | |
RecommendInd: false, | |
Registrations: [], | |
AppointmentTypes: [], | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}); | |
k = new b.Vs.EditChecklistStep({ | |
model: C, | |
milestoneView: D, | |
dictionaries: D.dictionaries, | |
variables: { | |
milestone: D.model.get("ChecklistStepDesc"), | |
hideReminderDays: y, | |
hideInterviewToggle: r, | |
hideVisitToggle: B, | |
hideEventToggle: n, | |
hideDecisionToggle: m, | |
hidePublishOptions: s, | |
hideFamilyNotification: o, | |
hideUploadToggle: A, | |
hidePublishToggle: t, | |
hideRecommendationToggle: x, | |
hideRecommendationNotificationToggle: v, | |
hideRecommendationOptions: w, | |
hideFamilyReminderDays: p, | |
hideFileTypeToggle: q, | |
hideSchoolFormTypeToggle: z, | |
disableSchoolFormsSelect: j, | |
hideRecommendationFormToggle: u, | |
placeHolders: [{ | |
label: "Recipient Name", | |
holder: "recipient_name" | |
}, { | |
label: "Candidate Name", | |
holder: "candidate_name" | |
}] | |
} | |
}); | |
h.Us.renderModal(k) | |
}) | |
}, | |
editMilestone: function () { | |
var l = this, | |
j = true, | |
k; | |
if (_.contains(["2", "3"], l.model.get("StatusChange").toString())) { | |
j = false | |
} else { | |
l.model.set({ | |
NewStatusTypeId: null | |
}) | |
} | |
k = h.Vs.Modal2.extend({ | |
template: "checklists/checklists.edit.editmilestone.template.html", | |
model: l.model, | |
size: "md", | |
dictionaries: l.dictionaries, | |
variables: { | |
hideNewStatusTypeId: j | |
}, | |
modalUpdate: function (n) { | |
var m = this; | |
if (n.eventCurrentTarget.parent().attr("name") === "StatusChange") { | |
if (n.eventCurrentTarget.val() === "1" || n.eventCurrentTarget.val() === 1) { | |
m.$(".status-options").hide(); | |
m.setAll("NewStatusTypeId", null); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} else { | |
m.$(".status-options").show(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
} | |
}, | |
modalSave: function (n) { | |
var m = this; | |
return b.Us.ManageApplyToCandidatesView(m, l.model, n) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new k(), p3.Layout.Containers.Modal, true) | |
}, | |
deleteMilestone: function (k) { | |
var l = this, | |
j = new b.Vs.ConfirmDeleteApply({ | |
model: l.model, | |
modelName: l.model.get("ChecklistStepDesc"), | |
confirmCallback: function (m) { | |
var n = m.getOptions(); | |
n.id = l.model.get("ChecklistStepId"); | |
l.model.destroy({ | |
dataParam: n, | |
error: function () { | |
p3.displayError("Error deleting milestone") | |
} | |
}) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(j, p3.Layout.Containers.Modal, true) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
b.Vs.Steps = Bb.View.extend({ | |
tagName: "tbody", | |
initialize: function (j) { | |
var k = this; | |
k.collection = new b.Cs.Steps(); | |
k.collection.bind("add", function (l) { | |
var m = new b.Vs.Step({ | |
model: l, | |
milestone: k.options.milestone, | |
milestoneView: k.options.milestoneView | |
}); | |
p3.rV(m, k.$el, false) | |
}, k) | |
}, | |
events: { | |
createdata: "createData" | |
}, | |
render: function (j) { | |
var k = this; | |
$(j).append(k.el); | |
k.renderData() | |
}, | |
renderData: function () { | |
var j = this; | |
_.each(j.options.data, function (k) { | |
j.collection.add(k) | |
}) | |
}, | |
createData: function (j, k) { | |
var l = this; | |
l.collection.add(k) | |
} | |
}); | |
b.Vs.Step = Bb.View.extend({ | |
template: "checklists/checklists.edit.step.html", | |
tagName: "tr", | |
initialize: function (j) { | |
var k = this; | |
k.dictionaries = b.Data.Dictionaries; | |
k.model.bind("sync", k.renderData, k); | |
k.model.bind("destroy", k.deleteElement, k); | |
k.model.bind("remove", k.deleteElement, k) | |
}, | |
events: { | |
"click .edit-step": "editStep", | |
"click .delete-step": "deleteStep" | |
}, | |
render: function (j) { | |
var k = this; | |
$(j).append(k.el); | |
k.renderData() | |
}, | |
renderData: function () { | |
var j = this; | |
p3.fT(j.template, function (k) { | |
j.$el.html(k({ | |
model: j.model.toJSON() | |
})) | |
}) | |
}, | |
editStep: function (k) { | |
var C = this, | |
y = true, | |
o = true, | |
q = true, | |
B = true, | |
m = true, | |
l = true, | |
s, A = true, | |
t = true, | |
r, x = true, | |
v, w, n, p = true, | |
z = true, | |
j = true, | |
u = true; | |
C.deferModalLoad = false; | |
g.Us.Fetch({ | |
AdmDataCollectionTypes: { | |
data: new b.Cs.AdmDataCollectionTypes(), | |
dataParams: { | |
checklistId: b.Data.ChecklistId, | |
checklistItemId: C.model.get("ChecklistItemId") | |
} | |
}, | |
ADMInterviewTypes: { | |
data: new g.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Interview Types", | |
id: 101, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data", | |
inputParam: "checklist_item_id =" + C.model.get("ChecklistItemId") + "[i]" | |
} | |
}, | |
ADMVisitTypes: { | |
data: new g.Cs.Dictionary(), | |
dataParams: { | |
name: "ADM Visit Types", | |
id: 103, | |
keyName: "pk", | |
valueName: "short_description", | |
dataName: "dd_data", | |
inputParam: "checklist_item_id =" + C.model.get("ChecklistItemId") + "[i]" | |
} | |
}, | |
EventRegistrationTypes: { | |
data: new b.Cs.EventRegistrationTypes(), | |
dataParams: { | |
checklistId: b.Data.ChecklistId, | |
id: C.model.get("ChecklistItemId") | |
} | |
}, | |
ProspectFileTypes: { | |
data: new g.Cs.Dictionary(), | |
dataParams: e.DictionaryData.ProspectFileType | |
}, | |
SchoolFormTypes: { | |
data: new b.Cs.SchoolFormTypes(), | |
dataParams: { | |
personaId: p3.Data.Context.getSelectedPersona().Id | |
} | |
} | |
}, function (D, F, E) { | |
C.dictionaries.AdmDataCollectionTypes = D.AdmDataCollectionTypes.toJSON(); | |
C.dictionaries.EventRegistrationTypes = D.EventRegistrationTypes.toJSON(); | |
C.dictionaries.ProspectFileTypes = D.ProspectFileTypes; | |
C.dictionaries.SchoolFormTypes = D.SchoolFormTypes.toJSON(); | |
if (D.ADMInterviewTypes.length) { | |
C.dictionaries.ADMInterviewTypes = _.map(D.ADMInterviewTypes, function (G) { | |
G.InterviewType = {}; | |
G.InterviewType.InterviewTypeName = G.dd_description; | |
G.InterviewType.InterviewTypeId = G.dd_id; | |
G.Selected = G.dd_data; | |
G.IsActive = G.dd_active; | |
G.ChecklistItemId = b.Data.ChecklistId; | |
return G | |
}) | |
} | |
if (D.ADMVisitTypes.length) { | |
C.dictionaries.ADMVisitTypes = _.map(D.ADMVisitTypes, function (G) { | |
G.VisitType = {}; | |
G.VisitType.VisitTypeName = G.dd_description; | |
G.VisitType.VisitTypeId = G.dd_id; | |
G.Selected = G.dd_data; | |
G.IsActive = G.dd_active; | |
G.ChecklistItemId = b.Data.ChecklistId; | |
return G | |
}) | |
} | |
if (_.contains(["3", "4", "5"], C.model.get("ReminderTypeId").toString())) { | |
y = false | |
} else { | |
C.model.set({ | |
ReminderDays: null | |
}) | |
} | |
if (_.contains(["3", "4", "5"], C.model.get("FamilyReminderTypeId").toString())) { | |
o = false | |
} else { | |
C.model.set({ | |
FamilyReminderDays: null | |
}) | |
} | |
switch (C.model.get("DataCollectionTypeId")) { | |
case e.DataCollectionType.TEST: | |
A = false; | |
t = false; | |
break; | |
case e.DataCollectionType.REFERENCE: | |
x = false; | |
break; | |
case e.DataCollectionType.DECISION: | |
l = false; | |
break; | |
case e.DataCollectionType.INTERVIEW: | |
q = false; | |
A = false; | |
t = false; | |
h.Us.setPropByString(C.model.attributes, "AppointmentTypes", $.extend(true, [], C.dictionaries.ADMInterviewTypes)); | |
break; | |
case e.DataCollectionType.SCHOOL: | |
A = false; | |
break; | |
case e.DataCollectionType.VISIT: | |
B = false; | |
t = false; | |
h.Us.setPropByString(C.model.attributes, "AppointmentTypes", $.extend(true, [], C.dictionaries.ADMVisitTypes)); | |
break; | |
case e.DataCollectionType.FAMILYPHOTO: | |
A = false; | |
break; | |
case e.DataCollectionType.AGEVERIFICATION: | |
A = false; | |
break; | |
case e.DataCollectionType.EDUCATIONALTESTING: | |
A = false; | |
break; | |
case e.DataCollectionType.EVENT: | |
m = false; | |
h.Us.setPropByString(C.model.attributes, "Registrations", $.extend(true, [], C.dictionaries.EventRegistrationTypes)); | |
break; | |
case e.DataCollectionType.MISCFILE: | |
p = false; | |
A = false; | |
h.Us.setPropByString(C.model.attributes, "ProspectFileTypes", $.extend(true, [], C.dictionaries.ProspectFileTypes)); | |
break; | |
case e.DataCollectionType.SCHOOLFORM: | |
z = false; | |
t = false; | |
j = false; | |
C.deferModalLoad = true; | |
C.fetchSchoolFormsAndRenderModal(); | |
break; | |
case e.DataCollectionType.RECOMMENDATIONFORM: | |
u = false; | |
x = false; | |
v = true; | |
r = true; | |
C.deferModalLoad = true; | |
C.fetchRecommendationFormsAndRenderModal(); | |
break; | |
default: | |
break | |
} | |
s = (C.model.get("Publish").toString() === "true") ? false : true; | |
w = (C.model.get("RecommendInd").toString() === "true") ? false : true; | |
n = (C.model.get("FamilyNotification").toString() === "true") ? false : true; | |
C.EditChecklistStepModal = new b.Vs.EditChecklistStep({ | |
model: C.model, | |
milestoneView: C.options.milestoneView, | |
dictionaries: C.dictionaries, | |
variables: { | |
milestone: C.options.milestone, | |
hideReminderDays: y, | |
hideInterviewToggle: q, | |
hideVisitToggle: B, | |
hideEventToggle: m, | |
hideDecisionToggle: l, | |
hidePublishOptions: s, | |
hideFamilyNotification: n, | |
hideUploadToggle: A, | |
hidePublishToggle: t, | |
hidePublishFileUpload: r, | |
hideRecommendationToggle: x, | |
hideRecommendationNotificationToggle: v, | |
hideRecommendationOptions: w, | |
hideFamilyReminderDays: o, | |
hideFileTypeToggle: p, | |
hideSchoolFormTypeToggle: z, | |
disableSchoolFormsSelect: j, | |
hideRecommendationFormToggle: u, | |
placeHolders: [{ | |
label: "Recipient Name", | |
holder: "recipient_name" | |
}, { | |
label: "Candidate Name", | |
holder: "candidate_name" | |
}] | |
} | |
}); | |
if (!C.deferModalLoad) { | |
h.Us.renderModal(C.EditChecklistStepModal) | |
} | |
}) | |
}, | |
deleteStep: function (k) { | |
var l = this, | |
j = new b.Vs.ConfirmDeleteApply({ | |
model: l.model, | |
modelName: l.model.get("ChecklistItemDesc"), | |
confirmCallback: function (m) { | |
var n = m.getOptions(); | |
n.id = l.model.get("ChecklistItemId"); | |
l.model.destroy({ | |
dataParam: n, | |
success: function () { | |
if (l.options.milestoneView.model.get("AdmChecklistItem")) { | |
l.options.milestoneView.model.attributes.AdmChecklistItem = _.filter(l.options.milestoneView.model.attributes.AdmChecklistItem, function (o) { | |
return o.ChecklistItemId !== parseInt(l.model.get("ChecklistItemId"), 10) | |
}) | |
} | |
}, | |
error: function () { | |
p3.displayError("Error deleting step") | |
} | |
}) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(j, p3.Layout.Containers.Modal, true) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
}, | |
fetchSchoolFormsAndRenderModal: function (j) { | |
var k = this; | |
b.Us.FetchSchoolFormsAndItems(function (n, m, l) { | |
if (l) { | |
k.dictionaries.SchoolForms = n; | |
k.dictionaries.SchoolFormChecklistItems = m; | |
h.Us.renderModal(k.EditChecklistStepModal) | |
} | |
}) | |
}, | |
fetchRecommendationFormsAndRenderModal: function (j) { | |
var k = this; | |
b.Us.FetchRecommendationFormsAndItems(function (n, m, l) { | |
if (l) { | |
k.dictionaries.RecommendationForms = n; | |
k.dictionaries.RecommendationFormChecklistItems = m; | |
h.Us.renderModal(k.EditChecklistStepModal) | |
} | |
}) | |
} | |
}); | |
b.Vs.ChecklistSort = Bb.View.extend({ | |
template: "checklists/checklists.milestones.sort.template.html", | |
initialize: function (j) { | |
var k = this; | |
k.collection = k.model.MileStones | |
}, | |
events: { | |
"click #btnSave": "saveSort" | |
}, | |
render: function (j) { | |
var k = this; | |
$(j).append(k.el); | |
k.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var j = this; | |
p3.fT(j.template, function (k) { | |
j.$el.html(k({ | |
milestones: j.collection.toJSON() | |
})); | |
if (j.collection.length) { | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
_.defer(function () { | |
j.initSortable() | |
}) | |
}) | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
initSortable: function () { | |
var j = this; | |
j.$("#milestones").sortable({ | |
items: "li", | |
axis: "y", | |
containment: "#milestones", | |
distance: 5 | |
}).disableSelection(); | |
j.$("tbody.checklist-steps").sortable({ | |
items: "tr.checklist-step", | |
axis: "y", | |
connectWith: "tbody.checklist-steps", | |
containment: "#milestones", | |
distance: 5, | |
dropOnEmpty: true, | |
placeholder: "sortable-placeholder", | |
helper: function (l, n) { | |
var m = n.find("div").text(), | |
k = $('<div class="sort-drag-block-helper">' + m + "</div>"); | |
return k | |
}, | |
start: function (k, m) { | |
var l = m.item.siblings(".checklist-step").length; | |
if (!l) { | |
m.item.parent().append('<tr class="empty-row"><td></td></tr>') | |
} | |
}, | |
update: function (k, m) { | |
var l = m.item.siblings(".empty-row"); | |
if (l.length) { | |
l.remove() | |
} | |
} | |
}).disableSelection() | |
}, | |
saveSort: function (j) { | |
j.preventDefault(); | |
var l = this, | |
k; | |
if (b.Us.ManageApplyToCandidatesView(l, l.model)) { | |
if (l.collection.length) { | |
k = new b.Cs.Milestones(); | |
l.$(".checklist-milestone").each(function (o, p) { | |
var n = $(p), | |
q = new b.Ms.Milestone({ | |
ChecklistStepId: n.data("id"), | |
ChecklistId: b.Data.ChecklistId | |
}), | |
r = []; | |
n.find(".checklist-step").each(function (m, t) { | |
r.push({ | |
ChecklistItemId: $(t).data("id") | |
}) | |
}); | |
q.set("AdmChecklistItem", r); | |
k.add(q) | |
}); | |
l.model.save({ | |
ChecklistSteps: k.toJSON() | |
}, { | |
success: function (m, o, n) { | |
l.trigger("sortSaved"); | |
p3.showModal(p3.Layout.Containers.Modal, "hide") | |
}, | |
error: function (n, m) { | |
p3.showModal(p3.Layout.Containers.Modal, "hide"); | |
p3.displayError("Error saving checklist sort order") | |
} | |
}) | |
} else { | |
p3.showModal(p3.Layout.Containers.Modal, "hide") | |
} | |
} | |
} | |
}); | |
b.Vs.ApplyToCandidates = Bb.View.extend({ | |
template: "checklists/checklists.edit.candidate.apply.template.html", | |
initialize: function (j) { | |
var k = this; | |
k.parentModel = j.parentModel; | |
k.model = new b.Ms.CandidateApply(); | |
Bb.Validation.bind(k, { | |
forceUpdate: true, | |
selector: "id" | |
}) | |
}, | |
events: { | |
"click .select-all": "selectAll", | |
"click .filter-items button": "filterButtonClicked" | |
}, | |
render: function (j) { | |
var k = this; | |
$(j).append(k.el); | |
k.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var j = this; | |
p3.fT(j.template, function (k) { | |
j.$el.html(k({ | |
SchoolYearCurrent: b.Data.Dictionaries.SchoolYearCurrentFuture.dictionary, | |
GradeLevels: b.Data.Dictionaries.GradeLevel.dictionary, | |
IsNew: j.parentModel.isNew(), | |
ModelType: j.parentModel.constructor.DisplayName, | |
IsSchoolFormChanged: j.parentModel._previousAttributes.ApplicationFormId && (j.parentModel.get("ApplicationFormId") !== j.parentModel._previousAttributes.ApplicationFormId), | |
IsSchoolFormRemoved: (j.parentModel._previousAttributes.ApplicationFormId === undefined && j.parentModel.get("ApplicationFormId")) || (j.parentModel._previousAttributes.DataCollectionTypeId && j.parentModel._previousAttributes.DataCollectionTypeId === e.DataCollectionType.SCHOOLFORM && !j.parentModel.get("ApplicationFormId")) | |
})); | |
j.$(".required-indicator").tooltip(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
selectAll: function (l) { | |
var k = $(l.currentTarget), | |
m = !(k.hasClass("active")), | |
j = k.siblings(".filter-items").find("input"); | |
j.prop("checked", m) | |
}, | |
filterButtonClicked: function (m) { | |
var l = $(m.currentTarget), | |
k = l.closest(".control-group").find(".select-all"), | |
j = l.closest("table").find("button"); | |
_.defer(function () { | |
if (j.not(".active").length) { | |
k.removeClass("active") | |
} else { | |
k.addClass("active") | |
} | |
}) | |
}, | |
updateModel: function () { | |
var p = this, | |
l = p.$(".btn-apply").hasClass("active"), | |
m = true, | |
k, j, o, n; | |
p.model.set(p.model.defaults); | |
_.each(_.keys(p.model.attributes), function (q) { | |
Bb.Validation.callbacks.valid(p, q, "id") | |
}); | |
if (l) { | |
k = p.$("#SchoolYears input:checked"); | |
j = p.$("#GradeLevels input:checked"); | |
o = []; | |
n = []; | |
k.each(function (q, r) { | |
o.push($(r).data("id")) | |
}); | |
j.each(function (r, q) { | |
n.push($(q).data("id")) | |
}); | |
if (!o.length) { | |
m = false; | |
Bb.Validation.callbacks.invalid(p, "SchoolYears", f.P3.RequiredInfoNotEntered, "id") | |
} | |
if (!n.length) { | |
m = false; | |
Bb.Validation.callbacks.invalid(p, "GradeLevels", f.P3.RequiredInfoNotEntered, "id") | |
} | |
if (m) { | |
p.model.set({ | |
ApplyToCandidates: true, | |
SchoolYears: o, | |
GradeLevels: n | |
}) | |
} | |
} | |
if (m) { | |
p.parentModel.set("CandidateApplyOptions", p.model.toJSON()) | |
} | |
return m | |
} | |
}); | |
b.Vs.ConfirmDeleteApply = Bb.View.extend({ | |
template: "checklists/checklists.node.delete.confirm.apply.html", | |
events: { | |
"click #btnConfirm": "doConfirm", | |
"click #btnCancel": "doCancel" | |
}, | |
render: function (j) { | |
var k = this; | |
$(j).append(k.el); | |
k.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var j = this; | |
p3.fT(j.template, function (k) { | |
j.$el.html(k({ | |
ModelType: j.model.constructor.DisplayName, | |
ModelName: j.options.modelName | |
})) | |
}) | |
}, | |
doConfirm: function (l) { | |
l.preventDefault(); | |
var m = this, | |
k = m.options.confirmCallback, | |
j; | |
if (b.Us.ManageApplyToCandidatesView(m, m.model)) { | |
j = (m.applyView) ? m.applyView.model : new b.Ms.CandidateApply(); | |
p3.showModal(p3.Layout.Containers.Modal, "hide"); | |
if (_.isFunction(k)) { | |
k(j) | |
} | |
} | |
}, | |
doCancel: function (j) { | |
j.preventDefault(); | |
p3.showModal(p3.Layout.Containers.Modal, "hide") | |
} | |
}); | |
b.Vs.EditChecklistStep = h.Vs.Modal2.extend({ | |
template: "checklists/checklists.edit.editstep.template.html", | |
size: "md", | |
events: { | |
'keyup form input[name="ChecklistItemDesc"]': "modalKeyUp", | |
"click button.placeholder": "addPlaceholder" | |
}, | |
modalRender: function () { | |
var l = this, | |
j = l.model.get("DataCollectionTypeId"), | |
k = l.model.get("FormTypeId"); | |
l.dictionaries = b.Data.Dictionaries; | |
if (k && j === e.DataCollectionType.SCHOOLFORM) { | |
l.dictionaries.AvailableSchoolForms = l.getFilteredSchoolForms(k) | |
} | |
if (j === e.DataCollectionType.RECOMMENDATIONFORM) { | |
l.getFilteredRecommendationForms(); | |
l.model.attributes.FormTypeId = e.FormType.RECOMMENDATION.Value | |
} | |
}, | |
modalRendered: function (k) { | |
var j = this; | |
if (j.options.variables.hideRecommendationOptions) { | |
j.parentHide("RecommendInd") | |
} | |
c.Us.initialize(".date-input", { | |
yearRange: "-30:+20" | |
}); | |
j.$('input[name = "ChecklistItemDesc"]').trigger(jQuery.Event("keyup")); | |
j.initializeFileUpload_File(); | |
j.$interviewToggle = j.$(".interview-toggle"); | |
j.$interviewSelect = j.$(".interview-select button.active"); | |
j.$visitToggle = j.$(".visit-toggle"); | |
j.$visitSelect = j.$(".visit-select button.active"); | |
j.$eventToggle = j.$(".event-toggle"); | |
j.$eventSelect = j.$(".event-select button.active"); | |
j.$decisionToggle = j.$(".decision-toggle"); | |
j.$recommendationToggle = j.$(".recommendation-toggle"); | |
j.$recommendationNotificationToggle = j.$(".recommendation-notification-toggle"); | |
j.$uploadToggle = j.$(".upload-toggle"); | |
j.$publishToggle = j.$(".publish-toggle"); | |
j.$publishOptions = j.$(".publish-options"); | |
j.$publishFileUpload = j.$(".publish-file-upload"); | |
j.$reminderDays = j.$('[name="ReminderDays"]'); | |
j.$familyReminderDays = j.$('[name="FamilyReminderDays"]'); | |
j.$fileTypeToggle = j.$(".file-type-toggle"); | |
j.$schoolFormTypeToggle = j.$(".school-form-type-toggle"); | |
j.$schoolFormsDropdown = j.$(".school-forms-dropdown"); | |
j.$inactiveFormWarning = j.$(".inactive-form-warning"); | |
j.$recommendationFormToggle = j.$(".recommendation-form-toggle"); | |
j.$recommendationFormsDropdown = j.$(".recommendation-forms-dropdown"); | |
j.$samplePageRef = j.$("#sample-page-ref")[0]; | |
if (j.dictionaries.SchoolForms || j.dictionaries.RecommendationForms) { | |
j.toggleInactiveFormWarning(j.model.get("ApplicationFormId")) | |
} | |
}, | |
modalUpdate: function (o) { | |
var l = this, | |
p, j, n, m, s = "", | |
r = 0, | |
k = 0, | |
q; | |
if (o.eventCurrentTarget.attr("name") === "DataCollectionTypeId") { | |
l.$eventToggle.hide(); | |
l.setPropByString(l.model.attributes, "Registrations", []); | |
l.$eventSelect.removeClass("active"); | |
l.$visitToggle.hide(); | |
l.$interviewToggle.hide(); | |
l.setPropByString(l.model.attributes, "AppointmentTypes", []); | |
l.$visitSelect.removeClass("active"); | |
l.$interviewSelect.removeClass("active"); | |
l.$decisionToggle.hide(); | |
l.setAll("DecisionAutoWaive", null); | |
l.$uploadToggle.hide(); | |
l.setAll("AllowUpload", false); | |
l.$publishToggle.hide(); | |
l.$publishFileUpload.show(); | |
l.setAll("PublishToChecklist", false); | |
l.$recommendationToggle.hide(); | |
l.$recommendationNotificationToggle.show(); | |
l.setAll("RecommendInd", false); | |
l.parentHide("RecommendInd"); | |
l.$fileTypeToggle.hide(); | |
l.setAll("FileTypeId", null); | |
l.$schoolFormTypeToggle.hide(); | |
l.setAll("FormTypeId", null); | |
l.setAll("ApplicationFormId", null); | |
l.$schoolFormsDropdown.html($("<option></option>").val("").html("-- Select an Option --")); | |
l.$schoolFormsDropdown.prop("disabled", true); | |
l.$inactiveFormWarning.hide(); | |
l.fieldValid("school-forms-dropdown"); | |
l.$recommendationFormToggle.hide(); | |
l.$recommendationFormsDropdown.html($("<option></option>").val("").html("-- Select an Option --")); | |
l.$recommendationFormsDropdown.prop("disabled", true); | |
l.fieldValid("recommendation-forms-dropdown"); | |
l.$samplePageRef.href = "//libs-e1.myschoolapp.com/p3-cache/img/recommendation.png"; | |
switch (parseInt(o.eventCurrentTarget.val(), 10)) { | |
case e.DataCollectionType.TEST: | |
l.$uploadToggle.show(); | |
l.$publishToggle.show(); | |
break; | |
case e.DataCollectionType.REFERENCE: | |
l.$recommendationToggle.show(); | |
break; | |
case e.DataCollectionType.DECISION: | |
l.$decisionToggle.show(); | |
break; | |
case e.DataCollectionType.INTERVIEW: | |
l.$uploadToggle.show(); | |
l.$publishToggle.show(); | |
l.$interviewToggle.show(); | |
l.setPropByString(l.model.attributes, "AppointmentTypes", $.extend(true, [], l.dictionaries.ADMInterviewTypes)); | |
break; | |
case e.DataCollectionType.SCHOOL: | |
l.$uploadToggle.show(); | |
break; | |
case e.DataCollectionType.VISIT: | |
l.$publishToggle.show(); | |
l.$visitToggle.show(); | |
l.setPropByString(l.model.attributes, "AppointmentTypes", $.extend(true, [], l.dictionaries.ADMVisitTypes)); | |
break; | |
case e.DataCollectionType.FAMILYPHOTO: | |
l.$uploadToggle.show(); | |
break; | |
case e.DataCollectionType.AGEVERIFICATION: | |
l.$uploadToggle.show(); | |
break; | |
case e.DataCollectionType.EDUCATIONALTESTING: | |
l.$uploadToggle.show(); | |
break; | |
case e.DataCollectionType.EVENT: | |
l.$eventToggle.show(); | |
l.setPropByString(l.model.attributes, "Registrations", $.extend(true, [], l.dictionaries.EventRegistrationTypes)); | |
break; | |
case e.DataCollectionType.MISCFILE: | |
l.$fileTypeToggle.show(); | |
l.$uploadToggle.show(); | |
break; | |
case e.DataCollectionType.SCHOOLFORM: | |
l.$schoolFormTypeToggle.show(); | |
l.$publishToggle.show(); | |
break; | |
case e.DataCollectionType.RECOMMENDATIONFORM: | |
l.$recommendationFormToggle.show(); | |
l.$publishFileUpload.hide(); | |
l.$recommendationToggle.show(); | |
l.$recommendationNotificationToggle.hide(); | |
l.getFilteredRecommendationForms(); | |
l.model.attributes.FormTypeId = e.FormType.RECOMMENDATION.Value; | |
l.$samplePageRef.href = "//libs-e1.myschoolapp.com/p3-cache/img/recommendation_start.png"; | |
break; | |
default: | |
break | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} else { | |
if (o.eventCurrentTarget.attr("name") === "ReminderTypeId") { | |
if (_.contains(["3", "4", "5"], o.eventCurrentTarget.val())) { | |
l.$reminderDays.show() | |
} else { | |
l.$reminderDays.hide(); | |
l.setPropByString(l.model.attributes, "ReminderDays", null); | |
l.$reminderDays.val("") | |
} | |
} else { | |
if (o.eventCurrentTarget.parent().attr("name") === "Publish") { | |
if (b.Us.CheckboxIsChecked(o.eventCurrentTarget)) { | |
l.$publishOptions.show(); | |
l.scrollTo('[name="Publish"]') | |
} else { | |
l.$publishOptions.hide(); | |
l.setAll("ExternalDesc", null); | |
l.setAll("PublishDesc", null); | |
l.setAll("PublishLink", null); | |
l.setAll("AttachmentFile.Attachment", null); | |
l.setAll("AllowUpload", false); | |
l.setAll("PublishToChecklist", false); | |
l.setAll("RecommendInd", false); | |
l.parentHide("RecommendInd") | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} else { | |
if (o.eventCurrentTarget.parent().attr("name") === "RecommendInd") { | |
if (b.Us.CheckboxIsChecked(o.eventCurrentTarget)) { | |
l.parentShow("RecommendInd"); | |
l.scrollTo('[name="RecommendInd"]') | |
} else { | |
l.parentHide("RecommendInd") | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} else { | |
if (o.eventCurrentTarget.parent().attr("name") === "FamilyNotification") { | |
if (b.Us.CheckboxIsChecked(o.eventCurrentTarget)) { | |
l.$(".family-notifications").show(); | |
l.scrollTo('[name="FamilyNotification"]') | |
} else { | |
l.$(".family-notifications").hide(); | |
l.setAll("FamilyReminderTypeId", 1); | |
l.setAll("FamilyReminderDays", null) | |
} | |
} else { | |
if (o.eventCurrentTarget.attr("name") === "FamilyReminderTypeId") { | |
if (_.contains(["3", "4", "5"], o.eventCurrentTarget.val())) { | |
l.$familyReminderDays.show() | |
} else { | |
l.$familyReminderDays.hide(); | |
l.setPropByString(l.model.attributes, "FamilyReminderDays", null); | |
l.$familyReminderDays.val("") | |
} | |
} else { | |
if (o.eventCurrentTarget.hasClass("placeholder")) { | |
p = "[" + o.eventCurrentTarget.data("value") + "]"; | |
j = l.$('[name="RecommendEmailText"]'); | |
n = j.val(); | |
m = j[0]; | |
if (m.selectionStart || m.selectionStart === 0) { | |
r = m.selectionStart; | |
k = m.selectionEnd; | |
s = n.substring(0, r) + p + n.substring(k, n.length) | |
} else { | |
s = p | |
} | |
j.val(s).focus().trigger($.Event("change")); | |
m.selectionStart = r + p.length; | |
m.selectionEnd = r + p.length | |
} else { | |
if (o.eventCurrentTarget.attr("name") === "FormTypeId") { | |
l.$schoolFormsDropdown.val("").change(); | |
l.$schoolFormsDropdown.html($("<option></option>").val("").html("-- Select an Option --")); | |
l.$schoolFormsDropdown.prop("disabled", true); | |
q = function () { | |
if (o.eventCurrentTarget.val() !== "") { | |
l.dictionaries.AvailableSchoolForms = l.getFilteredSchoolForms(parseInt(o.eventCurrentTarget.val(), 10)); | |
$.each(l.dictionaries.AvailableSchoolForms, function (t, u) { | |
l.$schoolFormsDropdown.append($("<option></option>").val(u.ApplicationFormId).html(u.Name)) | |
}); | |
l.$schoolFormsDropdown.prop("disabled", false) | |
} | |
}; | |
if (!l.dictionaries.SchoolForms || !l.dictionaries.SchoolFormChecklistItems) { | |
b.Us.FetchSchoolFormsAndItems(function (v, u, t) { | |
if (t) { | |
l.dictionaries.SchoolForms = v; | |
l.dictionaries.SchoolFormChecklistItems = u; | |
q() | |
} | |
}) | |
} else { | |
q() | |
} | |
} else { | |
if (o.eventCurrentTarget.attr("name") === "ApplicationFormId") { | |
l.toggleInactiveFormWarning(parseInt(o.eventCurrentTarget.val(), 10)) | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
modalKeyUp: function (j) { | |
var k = this, | |
l = k.$(j.currentTarget).val(); | |
k.$('[name="ExternalDesc"]').prop("placeholder", l) | |
}, | |
modalSave: function (k) { | |
var j = this; | |
if ($(".recommendation-forms-dropdown").is(":visible")) { | |
if (!j.model.isValid("ApplicationFormId")) { | |
j.fieldInvalid("recommendation-forms-dropdown", "") | |
} else { | |
j.fieldValid("recommendation-forms-dropdown") | |
} | |
} | |
if ($(".school-forms-dropdown").is(":visible")) { | |
if (!j.model.isValid("ApplicationFormId")) { | |
j.fieldInvalid("school-forms-dropdown", "") | |
} else { | |
j.fieldValid("school-forms-dropdown") | |
} | |
} | |
return b.Us.ManageApplyToCandidatesView(j, j.model, k) | |
}, | |
modalSavedSuccess: function (k) { | |
var j = this; | |
if (j.options.milestoneView.model.get("AdmChecklistItem")) { | |
j.options.milestoneView.model.attributes.AdmChecklistItem = _.filter(j.options.milestoneView.model.attributes.AdmChecklistItem, function (l) { | |
return l.ChecklistItemId !== parseInt(j.model.get("ChecklistItemId"), 10) | |
}); | |
j.options.milestoneView.model.attributes.AdmChecklistItem.push(j.model.toJSON()) | |
} | |
j.options.milestoneView.$("tbody").triggerHandler("createdata", [k.response]); | |
if (k.eventCurrentTarget.hasClass("addanother")) { | |
p3.Layout.Containers.Modal.modal("hide"); | |
j.options.milestoneView.$(".create-step").click(); | |
return false | |
} | |
}, | |
getFilteredSchoolForms: function (l) { | |
var m = this, | |
j = m.model.get("ChecklistItemId"), | |
n = [], | |
k = []; | |
if (m.dictionaries.SchoolForms) { | |
if (m.dictionaries.SchoolFormChecklistItems) { | |
n = _.chain(m.dictionaries.SchoolFormChecklistItems).filter(function (o) { | |
return o.ApplicationFormId && o.ChecklistItemId !== j | |
}).pluck("ApplicationFormId").value() | |
} | |
k = _.filter(m.dictionaries.SchoolForms, function (o) { | |
return o.FormType === l && !n.includes(o.ApplicationFormId) | |
}) | |
} | |
return k | |
}, | |
getFilteredRecommendationForms: function () { | |
var l = this, | |
k = l.model.get("ChecklistItemId"), | |
j = l.model.get("ApplicationFormId"), | |
m = [], | |
n; | |
n = function () { | |
m = _.chain(l.dictionaries.RecommendationFormChecklistItems).filter(function (o) { | |
return o.ApplicationFormId && o.ChecklistItemId !== k | |
}).pluck("ApplicationFormId").value(); | |
l.dictionaries.AvailableRecommendationForms = _.filter(l.dictionaries.RecommendationForms, function (p) { | |
var o = true; | |
if (m.includes(p.ApplicationFormId)) { | |
o = false | |
} else { | |
if (p.ArchivedInd) { | |
if (p.ApplicationFormId === j) { | |
o = true | |
} else { | |
o = false | |
} | |
} | |
} | |
return o | |
}); | |
if (l.$recommendationFormsDropdown) { | |
l.$recommendationFormsDropdown.val("").change(); | |
l.$recommendationFormsDropdown.html($("<option></option>").val("").html("-- Select an Option --")); | |
l.$recommendationFormsDropdown.prop("disabled", true); | |
$.each(l.dictionaries.AvailableRecommendationForms, function (o, p) { | |
l.$recommendationFormsDropdown.append($("<option></option>").val(p.ApplicationFormId).html(p.Name)) | |
}); | |
l.$recommendationFormsDropdown.prop("disabled", false) | |
} | |
}; | |
if (!l.dictionaries.RecommendationForms || !l.dictionaries.RecommendationFormChecklistItems) { | |
b.Us.FetchRecommendationFormsAndItems(function (q, p, o) { | |
if (o) { | |
l.dictionaries.RecommendationForms = q; | |
l.dictionaries.RecommendationFormChecklistItems = p; | |
n() | |
} | |
}) | |
} else { | |
n() | |
} | |
}, | |
toggleInactiveFormWarning: function (j) { | |
var k = this, | |
m, l; | |
m = _.find(k.dictionaries.SchoolForms, function (n) { | |
return n.ApplicationFormId === j | |
}); | |
l = _.find(k.dictionaries.RecommendationForms, function (n) { | |
return n.ApplicationFormId === j | |
}); | |
if (m) { | |
k.$inactiveFormWarning.toggle(!(m.ActiveInd && m.PublishedInd)) | |
} else { | |
if (l) { | |
k.$inactiveFormWarning.toggle(!(l.ActiveInd && l.PublishedInd)) | |
} else { | |
k.$inactiveFormWarning.hide() | |
} | |
} | |
}, | |
fieldValid: function (j) { | |
var k = this; | |
Bb.Validation.callbacks.valid(k, j, "class") | |
}, | |
fieldInvalid: function (j, l) { | |
var k = this; | |
Bb.Validation.callbacks.invalid(k, j, l, "class") | |
}, | |
modalDispose: function () { | |
var j = this; | |
j.dictionaries.SchoolForms = undefined; | |
j.dictionaries.SchoolFormChecklistItems = undefined; | |
j.dictionaries.RecommendationForms = undefined; | |
j.dictionaries.RecommendationFormChecklistItems = undefined | |
} | |
}); | |
b.Us.CheckboxIsChecked = function (j) { | |
var k; | |
k = ($(j).find("input").val()); | |
return (k === true || k === "true") | |
}; | |
b.Us.ShowApplyToCandidatesView = function (n, m, l) { | |
var k = n.$("button.save.addanother"), | |
j = n.$("button.save").not(".addanother"); | |
n.$(".modal-header h2").html("Confirmation"); | |
if (l.eventCurrentTarget && l.eventCurrentTarget.hasClass("addanother")) { | |
j.hide(); | |
k.html("Confirm") | |
} else { | |
j.html("Confirm"); | |
k.hide() | |
} | |
n.$("#model-form").hide(); | |
n.$("#candidate-apply").show(); | |
n.applyView = new b.Vs.ApplyToCandidates({ | |
parentModel: m | |
}); | |
p3.rV(n.applyView, n.$("#candidate-apply"), true); | |
n.applyViewVisible = true | |
}; | |
b.Us.ManageApplyToCandidatesView = function (l, k, j) { | |
j = j || {}; | |
if (l.applyViewVisible) { | |
if (!l.applyView.updateModel()) { | |
return false | |
} | |
} else { | |
if (b.Data.Checklist.get("LockInd") && k.isValid(true)) { | |
b.Us.ShowApplyToCandidatesView(l, k, j); | |
return false | |
} | |
} | |
return true | |
}; | |
b.Us.FetchSchoolFormsAndItems = function (j) { | |
var l = [], | |
k = []; | |
g.Us.Fetch({ | |
SchoolForms: { | |
data: new b.Cs.SchoolForms(), | |
dataParams: { | |
personaId: p3.Data.Context.getSelectedPersona().Id | |
} | |
}, | |
MileStones: { | |
data: new b.Cs.Milestones(), | |
dataParams: { | |
checklistId: b.Data.ChecklistId | |
} | |
} | |
}, function (m, o, n) { | |
if (o) { | |
if (m.SchoolForms) { | |
l = m.SchoolForms.toJSON() | |
} | |
if (!p3.Config.IsSmallCollege) { | |
l = _.filter(l, function (p) { | |
return p.ESigFrom !== 1 | |
}) | |
} | |
if (m.MileStones) { | |
m.MileStones.each(function (p) { | |
_.each(p.get("AdmChecklistItem"), function (q) { | |
if (q.ApplicationFormId) { | |
k.push(q) | |
} | |
}) | |
}) | |
} | |
if (_.isFunction(j)) { | |
j(l, k, o, n) | |
} | |
} | |
}) | |
}; | |
b.Us.FetchRecommendationFormsAndItems = function (j) { | |
var l = [], | |
k = []; | |
g.Us.Fetch({ | |
RecommendationForms: { | |
data: new b.Cs.RecommendationForms() | |
}, | |
MileStones: { | |
data: new b.Cs.Milestones(), | |
dataParams: { | |
checklistId: b.Data.ChecklistId | |
} | |
} | |
}, function (m, o, n) { | |
if (o) { | |
if (m.RecommendationForms) { | |
l = m.RecommendationForms.toJSON() | |
} | |
if (m.MileStones) { | |
m.MileStones.each(function (p) { | |
_.each(p.get("AdmChecklistItem"), function (q) { | |
if (q.ApplicationFormId) { | |
k.push(q) | |
} | |
}) | |
}) | |
} | |
if (_.isFunction(j)) { | |
j(l, k, o, n) | |
} | |
} | |
}) | |
}; | |
p3.router().route("settings/checklists/:id", "checklistsedit", function (j) { | |
b.Data.ChecklistId = j; | |
p3.renderMainPage(new b.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/checklistsedit"))); | |
(function (a) { | |
a.Ms.SectionItem = Bbm.extend({}) | |
}(p3.module("admissions/contract"))); | |
(function (a) { | |
var c = p3.module("utilities/multifetch"), | |
d = p3.module("utilities/smodal"), | |
b = p3.module("admissions/form/inquiries"); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.header.template.html", | |
render: function (e) { | |
var f = this; | |
p3.setTitle("Create Inquiry"); | |
$(e).html(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (f) { | |
e.$el.html(f({})); | |
p3.rV(new a.Vs.Header(), e.$(".header"), false); | |
p3.rV(new a.Vs.Main(), e.$(".col-center"), false) | |
}) | |
} | |
}); | |
a.Vs.Header = Bb.View.extend({ | |
className: "subhead", | |
render: function (e) { | |
var f = this; | |
$(e).html(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
e.$el.html("<h1>Create Inquiry</h1>") | |
} | |
}); | |
a.Vs.Main = Bb.View.extend({ | |
template: "inquiries/inquiries.inquiry.new.template.html", | |
initialize: function () { | |
var e = this; | |
e.model = new b.Ms.Submit(); | |
Bb.Validation.bind(e, { | |
forceUpdate: true, | |
selector: "name" | |
}) | |
}, | |
events: { | |
"change form select": "updateModel", | |
"click .save": "saveModel" | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).html(f.el); | |
f.sources = new b.Cs.Sources(); | |
f.inquiriesList = new b.Cs.InquiriesList(); | |
c.Us.Fetch({ | |
sources: { | |
data: f.sources | |
}, | |
inquiriesList: { | |
data: f.inquiriesList, | |
dataParams: { | |
active: 1 | |
} | |
} | |
}, function (g, i, h) { | |
if (h) { | |
p3.displayError("There was an error loading data.") | |
} | |
f.renderData() | |
}) | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (f) { | |
e.$el.html(f({ | |
inquiriesList: e.inquiriesList.toJSON(), | |
sources: e.sources.toJSON() | |
})) | |
}) | |
}, | |
updateModel: function (e) { | |
var f = this; | |
d.Us.updateModel(e, f.model, "name") | |
}, | |
saveModel: function (e) { | |
var f = this; | |
e.preventDefault(); | |
e.stopPropagation(); | |
if (f.model.isValid(true)) { | |
p3.router().navigate("#inquiry/" + f.model.get("Inquiry") + "/keyid=admin/source=" + f.model.get("Source"), true) | |
} | |
} | |
}); | |
p3.router().route("createinquiry", "createinquiry", function () { | |
a.Data.Dictionaries = {}; | |
p3.renderMainPage(new a.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/CreateInquiry"))); | |
(function (c) { | |
var d = p3.module("admissions/scheduling"), | |
a = p3.module("admissions/admissionscalendar"), | |
b = p3.module("admissions/analytics"); | |
c.Ms.NavItem = Bbm.extend({}); | |
c.Cs.NavItems = Bbc.extend({ | |
model: c.Ms.NavItem | |
}); | |
c.Cs.ToProcessGet = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/DashboardProcessGet/" | |
} | |
}); | |
c.Vs.Layout = Bb.View.extend({ | |
initialize: function () { | |
this.Containers = {} | |
}, | |
dispose: function () { | |
$("BODY").removeClass("background-gray-texture") | |
}, | |
render: function (e) { | |
var f = this; | |
p3.rV(new c.Vs.ToProcess(), p3.Layout.Containers.MainPage, false); | |
$(e).html(f.el); | |
switch (this.options.page) { | |
case "scheduling": | |
p3.rV(new d.Vs.Layout(), $("#site-main"), false); | |
break; | |
case "admissionscalendar": | |
p3.rV(new a.Vs.Layout(), $("#site-main"), false); | |
break | |
} | |
} | |
}); | |
c.Vs.LowerNav = Bb.View.extend({ | |
template: "admissions/nav.bottom.template.html", | |
className: "admissions-nav res-container clearfix", | |
render: function (e) { | |
$(e).html(this.el); | |
p3.showLowerNav(); | |
var f = this; | |
p3.fT(f.template, function (g) { | |
f.collection.add([{ | |
Route: "#dashboard", | |
Page: "scheduling", | |
Label: "Scheduling", | |
Icon: "p3icon-schedule", | |
Selected: false | |
}, { | |
Route: "#dashboard", | |
Page: "analytics", | |
Label: "Analytics", | |
Icon: "p3icon-analytics", | |
Selected: false | |
}]); | |
f.$el.html(g({ | |
collection: f.collection.toJSON() | |
})); | |
f.shown(f.options.page) | |
}) | |
}, | |
shown: function (e) { | |
switch (e) { | |
case "scheduling": | |
p3.rV(new d.Vs.Layout(), $("#site-main"), false); | |
$('.nav-pills li a[href="#dashboard/scheduling"]').closest("li").addClass("active"); | |
break; | |
case "analytics": | |
p3.rV(new b.Vs.Layout(), $("#site-main"), false); | |
$('.nav-pills li a[href="#dashboard/analytics"]').closest("li").addClass("active"); | |
break; | |
case "admissionscalendar": | |
p3.rV(new a.Vs.Layout(), $("#site-main"), false); | |
break | |
} | |
} | |
}); | |
c.Vs.ToProcess = Bb.View.extend({ | |
template: "admissions/onboard.process.template.html", | |
className: "wContainer noshadow", | |
attributes: { | |
style: "margin-top:-32px; margin-bottom:25px; padding:0px;" | |
}, | |
events: { | |
"click a.toggle-siblings": "toggleSiblings" | |
}, | |
initialize: function () { | |
this.collection = new c.Cs.ToProcessGet() | |
}, | |
render: function (e) { | |
var f = this; | |
e.before(this.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
e.collection.fetch({ | |
success: function (f, g) { | |
if (f.length) { | |
p3.fT(e.template, function (h) { | |
e.$el.html(h({ | |
collection: g | |
})) | |
}) | |
} | |
} | |
}) | |
}, | |
toggleSiblings: function (h) { | |
h.preventDefault(); | |
var f = $(h.currentTarget), | |
g = f.closest("li").siblings(); | |
if (!g.first().hasClass("hide")) { | |
f.removeClass("p3icon-up").addClass("p3icon-down"); | |
g.addClass("hide") | |
} else { | |
g.removeClass("hide"); | |
f.removeClass("p3icon-down").addClass("p3icon-up") | |
} | |
return false | |
} | |
}); | |
p3.router().route("dashboard/:page", "dashboard", function (e) { | |
p3.renderMainPage(new c.Vs.Layout({ | |
page: e | |
}), true) | |
}) | |
}(p3.module("admissions/dashboard"))); | |
(function (b) { | |
var a = p3.module("shared/base"), | |
d = p3.module("utilities/smodal"), | |
c = p3.Us.InfoMessageLibrary; | |
b.Ms.CommentBox = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "SchoolId", | |
validation: { | |
CandidateDecisionText: [{ | |
maxLength: 4000, | |
msg: c.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/AdmissionOptions/" + this.id + "/" : aP + "admissions/AdmissionOptions/" | |
} | |
}); | |
b.Vs.Layout = Bb.View.extend({ | |
template: "admissions/admissionoptions.decisiontext.template.html", | |
events: { | |
"click button.save": "saveProgressText" | |
}, | |
initialize: function () { | |
var e = this; | |
e.model = new b.Ms.CommentBox({ | |
SchoolId: p3.Data.SchoolContext.attributes.SchoolInfo.SchoolId | |
}); | |
e.model.defaults = $.extend(true, {}, e.model.attributes); | |
e.Containers = {}; | |
Bb.Validation.bind(e, { | |
forceUpdate: true, | |
selector: e.selector | |
}) | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).append(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
e.model.off("sync"); | |
p3.fT(e.template, function (f) { | |
e.model.fetch({ | |
cache: false, | |
success: function (h, i) { | |
var g; | |
e.$el.html(f({ | |
model: e.model.toJSON() | |
})); | |
g = e.$(".tinyeditor"); | |
d.Us.showHtmlEditor(e, "tinyeditor", function () { | |
$.each(g, function () { | |
var j = tinyMCE.get(this.id); | |
e.$(".characterCounter").html(j.save().length); | |
if (j.save().length > 4000) { | |
e.$(".characterCounter").addClass("bb-badge-danger") | |
} else { | |
e.$(".characterCounter").removeClass("bb-badge-danger") | |
} | |
j.onChange.add(function (l, k) { | |
e.$(".characterCounter").html(l.save().length); | |
if (l.save().length > 4000) { | |
e.$(".characterCounter").addClass("bb-badge-danger") | |
} else { | |
e.$(".characterCounter").removeClass("bb-badge-danger") | |
} | |
$.each(g, function () { | |
var m = {}; | |
m[this.name] = tinyMCE.get(this.id).save(); | |
e.model.set(m) | |
}) | |
}); | |
j.onKeyUp.add(function (l, k) { | |
e.$(".characterCounter").html(l.save().length); | |
if (l.save().length > 4000) { | |
e.$(".characterCounter").addClass("bb-badge-danger") | |
} else { | |
e.$(".characterCounter").removeClass("bb-badge-danger") | |
} | |
$.each(g, function () { | |
var m = {}; | |
m[this.name] = tinyMCE.get(this.id).save(); | |
e.model.set(m) | |
}) | |
}) | |
}) | |
}) | |
} | |
}) | |
}) | |
}, | |
saveProgressText: function () { | |
var f = this, | |
e = f.$(".save"); | |
e.button("loading").prop("disabled", true); | |
$.each(f.$(".tinyeditor"), function () { | |
var g = {}; | |
g[this.id] = tinyMCE.get(this.id).save(); | |
f.model.set(g) | |
}); | |
if (f.model.isValid(true)) { | |
f.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(f.model.attributes, function (i, g, h) { | |
d.Us.setFieldsToNull(f.model, i, g, h, "") | |
}); | |
f.model.save({}, { | |
dataParam: f.options.dataParam, | |
complete: function () { | |
e.button("reset") | |
} | |
}) | |
} else { | |
e.button("reset") | |
} | |
} | |
}); | |
p3.router().route("decisionText", "decisionText", function (e) { | |
p3.renderMainPage(new b.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/decisionText"))); | |
(function (b) { | |
var c = p3.module("utilities/smodal"), | |
d = p3.Us.Tools, | |
a = p3.Us.InfoMessageLibrary; | |
b.Ms.Interest = Bbm.extend({ | |
idAttribute: "InterestId", | |
validation: { | |
InterestName: [{ | |
required: true, | |
msg: a.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "Interest/Edit/" + this.id + "/" : aP + "Interest/Edit/" | |
} | |
}); | |
b.Ms.Category = Bbm.extend({ | |
idAttribute: "CategoryId", | |
validation: { | |
CategoryName: [{ | |
required: true, | |
msg: a.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "InterestCategory/Edit/" + this.id + "/" : aP + "InterestCategory/Edit/" | |
} | |
}); | |
b.Cs.InterestsSort = Bbc.extend({ | |
url: function () { | |
return aP + "InterestCategory/EditSort/" | |
} | |
}); | |
b.Cs.Categories = Bbc.extend({ | |
model: b.Ms.Category, | |
url: function () { | |
return aP + "InterestCategory/List/" | |
} | |
}); | |
b.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.template.html", | |
render: function (e) { | |
var f = this; | |
p3.setTitle("Interests"); | |
$(e).html(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (h) { | |
e.$el.html(h({})); | |
var f = new b.Cs.Categories(), | |
g = new b.Vs.Interests({ | |
collection: f | |
}); | |
p3.rV(g, e.interestsElement(), false) | |
}) | |
}, | |
interestsElement: function () { | |
var e = this; | |
return e.$(".col-center") | |
} | |
}); | |
b.Vs.Interests = Bb.View.extend({ | |
template: "interests/interests.interests.template.html", | |
initialize: function (e) { | |
var f = this; | |
f.collection.bind("add", function (h) { | |
var g = new b.Vs.Category({ | |
model: h | |
}); | |
p3.rV(g, this.interestListElement(this), false) | |
}, f); | |
f.collection.on("refreshInterests", function () { | |
var g = this.interestListElement(this); | |
g.empty(); | |
f.collection.reset(); | |
f.renderData() | |
}, f) | |
}, | |
interestListElement: function (e) { | |
return e.$("#interestList") | |
}, | |
sidebarElement: function (e) { | |
return e.$(".col-sidebar") | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).html(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (f) { | |
e.$el.empty(); | |
e.$el.html(f({})); | |
p3.rV(new b.Vs.Sidebar({ | |
collection: e.collection | |
}), e.sidebarElement(e), false); | |
e.collection.fetch({ | |
update: true, | |
cache: false | |
}) | |
}) | |
} | |
}); | |
b.Vs.Category = Bb.View.extend({ | |
template: "interests/interests.category.template.html", | |
initialize: function (e) { | |
var f = this; | |
f.model.on("sync", f.renderData, f) | |
}, | |
dispose: function () { | |
var e = this; | |
e.model.off() | |
}, | |
events: { | |
"click .toggleLink": "toggleSection", | |
"click .create-interest": "createInterest", | |
"click .edit-category": "editCategory", | |
"click .delete-category": "deleteCategory" | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).append(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (f) { | |
e.$el.html(f({ | |
model: e.model.toJSON() | |
})); | |
_.each(e.model.get("InterestDetail"), function (h, g) { | |
p3.rV(new b.Vs.Interest({ | |
model: new b.Ms.Interest(h), | |
parent: e.model.toJSON(), | |
path: "InterestDetail." + g | |
}), e.$("tbody"), false) | |
}) | |
}) | |
}, | |
toggleSection: function (e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
$(e.currentTarget).siblings(".toggledetail").slideToggle("fast"); | |
$(e.currentTarget).find("i").toggleClass("p3icon-downArrow p3icon-sideArrow"); | |
if ($(e.currentTarget).hasClass("active")) { | |
$(e.currentTarget).removeClass("active") | |
} else { | |
$(e.currentTarget).addClass("active") | |
} | |
}, | |
editCategory: function (e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
var f = this; | |
f.modal2Extend = c.Vs.Modal2.extend({ | |
template: "interests/interests.category.create.template.html", | |
model: f.model, | |
modalRendered: function () { | |
var g = this; | |
g.setFocus() | |
}, | |
modalUpdate: function (i) { | |
var h = this, | |
g = h.$(".active-alert"); | |
if (i.eventCurrentTarget.parent().attr("name") === "Inactive") { | |
if (d.stringToBoolean(i.eventCurrentTarget.val()) === true) { | |
g.hide() | |
} else { | |
g.show() | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
}, | |
modalSavedSuccess: function (g) { | |
f.renderData() | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new f.modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
deleteCategory: function (e) { | |
var f = this; | |
e.preventDefault(); | |
e.stopPropagation(); | |
f.$(".delete").prop("disabled", true); | |
p3.showConfirm("Delete Category", "Wait a minute. Are you really sure you want to delete " + f.model.get("CategoryName") + "?", null, function () { | |
f.model.destroy({ | |
success: function () { | |
f.deleteElement() | |
}, | |
error: function () { | |
p3.displayError("Error deleting category"); | |
f.$(".delete").prop("disabled", false) | |
} | |
}) | |
}) | |
}, | |
createInterest: function (e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
var g = this, | |
f = new b.Ms.Interest({ | |
CategoryId: g.model.id | |
}); | |
g.modal2Extend = c.Vs.Modal2.extend({ | |
template: "interests/interests.interest.create.template.html", | |
model: f, | |
modalRendered: function () { | |
var h = this; | |
h.setFocus() | |
}, | |
modalSavedSuccess: function (h) { | |
g.model.get("InterestDetail").push(h.response); | |
g.renderData() | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new g.modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
b.Vs.Interest = Bb.View.extend({ | |
template: "interests/interests.interest.template.html", | |
tagName: "tr", | |
initialize: function () { | |
Bb.Validation.bind(this, { | |
forceUpdate: true, | |
selector: "name" | |
}) | |
}, | |
events: { | |
"click .checkbox-input": "updateModel", | |
"click .delete-interest": "deleteInterest", | |
"click .inline-edit": "toggleInlineEdit", | |
"blur .inline-edit .edit input": "closeInlineEdit", | |
"change input": "updateModel", | |
"mouseover td.inline-edit": "inlineEditOver", | |
"mouseout td.inline-edit": "inlineEditOut" | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).append(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (f) { | |
e.$el.html(f({ | |
model: e.model.toJSON() | |
})) | |
}) | |
}, | |
inlineEditOver: function (e) { | |
e.stopPropagation(); | |
$(e.currentTarget).find("i").show() | |
}, | |
inlineEditOut: function (e) { | |
e.stopPropagation(); | |
$(e.currentTarget).find("i").hide() | |
}, | |
toggleInlineEdit: function (f) { | |
f.stopPropagation(); | |
f.preventDefault(); | |
var e = $(f.currentTarget); | |
e.find(".display").hide(); | |
e.find(".edit").show(); | |
e.find(".edit input").focus() | |
}, | |
closeInlineEdit: function (e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
var f = this; | |
if (f.model.isValid(true)) { | |
f.$(".display").show(); | |
f.$(".edit").hide(); | |
f.updateModel(e) | |
} | |
}, | |
updateModel: function (g) { | |
var j = this, | |
e = $(g.currentTarget), | |
h = e.attr("name"), | |
i, f = false; | |
j.model.defaults = $.extend(true, {}, j.model.attributes); | |
if (e.hasClass("checkbox-input")) { | |
e.find("h5").find("i").toggleClass("p3icon-ok").toggleClass("p3icon-check"); | |
f = true; | |
_.defer(function () { | |
if (h === "Inactive") { | |
i = (e.hasClass("active")) ? false : true | |
} else { | |
i = (e.hasClass("active")) ? true : false | |
} | |
i = i ? false : true; | |
c.Us.setPropByString(j.model.attributes, h, i); | |
j.saveModel() | |
}) | |
} else { | |
i = e.prop("value") | |
} | |
if (!f) { | |
c.Us.setPropByString(j.model.attributes, h, i); | |
j.saveModel() | |
} | |
}, | |
saveModel: function () { | |
var e = this; | |
if (e.model.isValid(true)) { | |
e.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(e.model.attributes, function (h, f, g) { | |
c.Us.setFieldsToNull(e.model, h, f, g, "") | |
}); | |
e.model.save({}, { | |
success: function (f, g) { | |
c.Us.setPropByString(e.options.parent, e.options.path, g); | |
e.renderData() | |
}, | |
error: function (g, f) { | |
p3.displayError("Error updating interest"); | |
e.model.set(e.model.defaults); | |
e.renderData() | |
} | |
}) | |
} else { | |
e.model.set(e.model.defaults); | |
e.renderData() | |
} | |
}, | |
deleteInterest: function (e) { | |
var f = this; | |
e.preventDefault(); | |
e.stopPropagation(); | |
f.$(".delete").prop("disabled", true); | |
p3.showConfirm("Delete Interest", "Wait a minute. Are you really sure you want to delete " + f.model.get("InterestName") + "?", null, function () { | |
f.model.destroy({ | |
success: function () { | |
c.Us.removeObjByString(f.options.parent, f.options.path); | |
f.deleteElement() | |
}, | |
error: function () { | |
p3.displayError("Error deleting interest"); | |
f.$(".delete").prop("disabled", false) | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
b.Vs.Sidebar = Bb.View.extend({ | |
template: "interests/interests.sidebar.template.html", | |
className: "checklists-sidebar", | |
events: { | |
"click .create-category": "createCategory", | |
"click .edit-order": "editOrder" | |
}, | |
render: function (e) { | |
var f = this; | |
$(e).html(f.el); | |
f.renderData() | |
}, | |
renderData: function () { | |
var e = this; | |
p3.fT(e.template, function (f) { | |
e.$el.html(f({})) | |
}) | |
}, | |
createCategory: function (f) { | |
f.preventDefault(); | |
f.stopPropagation(); | |
var g = this, | |
e = new b.Ms.Category({ | |
Inactive: false | |
}); | |
g.modal2Extend = c.Vs.Modal2.extend({ | |
template: "interests/interests.category.create.template.html", | |
model: e, | |
modalRendered: function () { | |
var h = this; | |
h.setFocus() | |
}, | |
modalUpdate: function (j) { | |
var i = this, | |
h = i.$(".active-alert"); | |
if (j.eventCurrentTarget.parent().attr("name") === "Inactive") { | |
if (d.stringToBoolean(j.eventCurrentTarget.val()) === true) { | |
h.hide() | |
} else { | |
h.show() | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
}, | |
modalSavedSuccess: function (h) { | |
g.collection.add(h.response) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new g.modal2Extend(), p3.Layout.Containers.Modal, true) | |
}, | |
editOrder: function (e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
var f = this; | |
f.modal2Extend = c.Vs.Modal2.extend({ | |
template: "interests/interests.category.sort.template.html", | |
collection: f.collection, | |
modalRendered: function (h) { | |
var g = this; | |
g.$("#categories").sortable({ | |
items: "li", | |
axis: "y", | |
containment: "#categories", | |
distance: 5 | |
}).disableSelection(); | |
g.$("tbody.interests").sortable({ | |
items: "tr.interest", | |
axis: "y", | |
connectWith: "tbody.interests", | |
containment: "#categories", | |
distance: 5, | |
dropOnEmpty: true, | |
placeholder: "sortable-placeholder", | |
helper: function (j, k) { | |
var i = '<table class="table table-striped sort-drag-block-helper"><tbody>' + k.context.outerHTML + "</tbody></table>"; | |
return i | |
}, | |
start: function (i, k) { | |
var j = k.item.siblings(".interest").length; | |
if (!j) { | |
k.item.parent().append('<tr class="empty-row"><td></td></tr>') | |
} | |
}, | |
update: function (j, k) { | |
var i = k.item.siblings(".empty-row"); | |
if (i.length) { | |
i.remove() | |
} | |
} | |
}).disableSelection() | |
}, | |
modalSave: function (i) { | |
var h = this, | |
g; | |
if (h.collection.length) { | |
g = new b.Cs.InterestsSort(); | |
_.each(h.$(".category"), function (k) { | |
var j = $(k), | |
l = []; | |
_.each(j.find(".interest"), function (m) { | |
l.push({ | |
InterestId: $(m).data("id") | |
}) | |
}); | |
g.add({ | |
CategoryId: j.data("id"), | |
InterestDetail: l | |
}) | |
}); | |
g.save({ | |
success: function (j, l, k) { | |
h.collection.trigger("refreshInterests"); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function (j, k) { | |
p3.displayError("Error saving interest sort order") | |
} | |
}); | |
return false | |
} | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new f.modal2Extend(), p3.Layout.Containers.Modal, true) | |
} | |
}); | |
p3.router().route("settings/interests", "settings/interests", function () { | |
p3.renderMainPage(new b.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/interests"))); | |
(function (c) { | |
var a = p3.module("app"), | |
r = p3.module("shared/task"), | |
i = p3.module("shared/datepicker"), | |
s = p3.module("shared/timepicker"), | |
d = p3.module("admissions/candidateprofile"), | |
e = p3.module("admissions/candidate/checklist"), | |
p = p3.module("admissions/candidate/schools"), | |
k = p3.module("admissions/candidate/financialaid"), | |
g = p3.module("admissions/candidate/contracts"), | |
o = p3.module("shared/profilecontactcard"), | |
f = p3.module("admissions/candidate/connections"), | |
b = p3.module("shared/base"), | |
n = p3.module("officialNote"), | |
q = p3.module("utilities/smodal"), | |
l = p3.module("admissions/form/forms"), | |
j = p3.Us.Enum, | |
m = p3.Us.InfoMessageLibrary, | |
h = p3.Us.Culture, | |
t = p3.Us.Tools; | |
c.Ms.DictionaryItem = Bbm.extend({}); | |
c.Cs.Dictionary = Bbc.extend({ | |
model: c.Ms.DictionaryItem, | |
url: "datadirect/DictionaryGet/" | |
}); | |
c.Ms.NavItem = Bbm.extend({}); | |
c.Ms.ParentStudentUserInfo = Bbm.extend({}); | |
c.Ms.ProspectInstanceIds = Bbm.extend({}); | |
c.Ms.UserViewed = Bbm.extend({ | |
url: function () { | |
return aP + "user/UserViewedSave/" | |
} | |
}); | |
c.Ms.RecentlyViewed = Bbm.extend({}); | |
c.Ms.TokenItem = Bbm.extend({}); | |
c.Ms.Information = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ProspectInstanceId", | |
validation: { | |
Comment: [{ | |
maxLength: 4000, | |
required: false, | |
msg: m.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/prospect/" + this.id + "/" : aP + "admissions/prospect/" | |
} | |
}); | |
c.Ms.StudentHeader = Bbm.extend({ | |
idAttribute: "UserId", | |
urlRoot: "Admissions/ProfileStudentHeader" | |
}); | |
c.Ms.MailMerge = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "CommunicationId", | |
validation: { | |
ContactDate: [{ | |
required: true, | |
msg: m.P3.RequiredInfoNotEntered | |
}, { | |
date: true | |
}], | |
Subject: [{ | |
required: true, | |
msg: m.P3.RequiredInfoNotEntered | |
}], | |
"MailMergeJob.TemplateId": [{ | |
required: true, | |
msg: m.P3.RequiredInfoNotEntered | |
}], | |
Comment: [{ | |
maxLength: 4000, | |
required: false, | |
msg: m.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/ProspectCommunication/" + this.id + "/" : aP + "admissions/ProspectCommunication/" | |
} | |
}); | |
c.Ms.ProspectDelete = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ProspectInstanceId", | |
validation: { | |
DeleteReason: [{ | |
required: true, | |
msg: m.P3.RequiredInfoNotEntered | |
}, { | |
maxLength: 1000, | |
msg: m.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/prospect/" + this.id + "/" : aP + "admissions/prospect/" | |
} | |
}); | |
c.Cs.ParentStudentUserInfo = Bbc.extend({ | |
model: c.Ms.ParentStudentUserInfo, | |
url: function () { | |
return aP + "datadirect/ParentStudentUserInfo/" | |
} | |
}); | |
c.Cs.NavItems = Bbc.extend({ | |
model: c.Ms.NavItem | |
}); | |
c.Cs.ProspectInstanceIds = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/ProspectInstanceIdsGet/" | |
} | |
}); | |
c.Cs.RecentlyViewed = Bbc.extend({ | |
model: c.Ms.RecentlyViewed, | |
url: function () { | |
return aP + "datadirect/UserLastViewed/" | |
} | |
}); | |
c.Cs.TokenItems = Bbc.extend({ | |
model: c.Ms.TokenItem | |
}); | |
c.Cs.StatusHistory = Bbc.extend({ | |
sync: b.DataParamSync, | |
url: function () { | |
return aP + "Admissions/ProspectStatusHistoryList/" | |
} | |
}); | |
c.Cs.SchoolYears = Bbc.extend({ | |
url: function () { | |
return aP + "DataDirect/SchoolYearsGet/" | |
} | |
}); | |
c.Cs.MailMerge = Bbc.extend({ | |
model: c.Ms.MailMerge, | |
url: function () { | |
return aP + "admissions/ProspectCommunicationList/" | |
} | |
}); | |
c.Cs.MailMergeTemplates = Bbc.extend({ | |
model: c.Ms.ParentStudentUserInfo, | |
url: function () { | |
return aP + "datadirect/MailMergeTemplatesGet/" | |
} | |
}); | |
c.Cs.FilesAndForms = Bbc.extend({ | |
url: "Candidate/ProspectAttachments" | |
}); | |
c.Vs.Layout = Bb.View.extend({ | |
template: "admissions/candidate.detail.layout.template.html", | |
events: { | |
renderdata: "renderData" | |
}, | |
initialize: function () { | |
var u = this, | |
v; | |
u.Containers = {}; | |
u.schoolyears = new c.Cs.SchoolYears(); | |
v = new c.Ms.UserViewed(); | |
v.save({ | |
userId: c.Data.userId, | |
viewType: 1 | |
}); | |
c.Data.profilePublishField = new o.Ms.ProfilePublishField() | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).html(v.el); | |
p3.fT(v.template, function (w) { | |
v.$el.html(w({})); | |
c.Data.profilePublishField.fetch({ | |
data: { | |
showUserId: c.Data.userId | |
}, | |
success: function (x) { | |
v.schoolyears.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: c.Data.userId, | |
display: 5 | |
}, | |
success: function (y, z) { | |
_.each(v.schoolyears.toJSON(), function (A) { | |
if (A.AdmCurrentYearInd) { | |
c.Data.AdmCurrentYear = A.Id | |
} | |
}); | |
v.renderData() | |
} | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error loading publish fields") | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var u = this; | |
p3.rV(new c.Vs.Header({ | |
layoutView: u | |
}), $("#header"), true); | |
p3.rV(new c.Vs.Sidebar({ | |
layoutView: u, | |
access: c.Data.profilePublishField.get("editList") | |
}), $("#page-2col-slimright"), true); | |
p3.rV(new c.Vs.Navigation({ | |
layoutView: u, | |
model: c.Data.profilePublishField, | |
page: u.options.page | |
}), $("#candidateHeader"), false) | |
} | |
}); | |
c.Vs.Header = Bb.View.extend({ | |
template: "admissions/candidate.detail.header.template.html", | |
events: { | |
renderheader: "renderData", | |
"mouseover #candidatePhoto": "showedit", | |
"mouseout #candidatePhoto": "hideedit", | |
"click .editPhotoIcon": "editphoto", | |
"click .yearselect": "selectYear", | |
"click .statushistory": "statusHistory", | |
"click #currentYearLink": "selectCurrentYear", | |
"click .delete-entering-year": "deleteEnteringYear" | |
}, | |
initialize: function (u) { | |
var v = this; | |
v.hideWarning = 1; | |
c.Data.prospectInfo = new c.Ms.Information(); | |
v.generalInformation = new o.Ms.GeneralInformation({ | |
id: c.Data.userId | |
}) | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.generalInformation.off("sync"); | |
v.generalInformation.fetch({ | |
data: { | |
propertylist: "FieldsToNull,LastName,FirstName,NickName,ProfilePhotoFile,BirthDate,Status" | |
}, | |
success: function (w, x) { | |
v.ageString = "None"; | |
if (v.generalInformation.get("BirthDate") != null) { | |
v.ageString = h.getAgeString(v.generalInformation.get("BirthDate")) | |
} | |
v.renderData() | |
} | |
}) | |
}, | |
renderData: function () { | |
var v = this, | |
u; | |
p3.fT(v.template, function (w) { | |
if (c.Data.instanceId) { | |
c.Data.prospectInfo.fetch({ | |
cache: false, | |
data: { | |
id: c.Data.instanceId | |
}, | |
success: function (y, z) { | |
v.hideWarning = y.get("CurrentYearInd"); | |
c.Data.statusId = y.get("Status"); | |
v.currentYearIndex = null; | |
var x = 0; | |
_.each(c.Data.pidCollection.models, function (A) { | |
x++; | |
if (A.get("EnteringYear") == c.Data.AdmCurrentYear) { | |
v.currentYearIndex = x; | |
v.currentYearProspectInstanceId = A.get("ProspectInstanceId") | |
} | |
}); | |
v.$el.html(w({ | |
model: v.generalInformation.toJSON(), | |
status: c.Data.statusId, | |
studentWithdrawn: y.get("StudentWithdrawn"), | |
ageString: v.ageString, | |
collection: c.Data.pidCollection, | |
candidate: c.Data.pidCollection.models[c.Data.modelIndex].toJSON(), | |
hideWarning: v.hideWarning, | |
showLink: v.currentYearIndex, | |
access: c.Data.profilePublishField.get("editList") | |
})); | |
p3.rV(new c.Vs.CandidateNote({}), $("#candidate-note-holder"), true) | |
} | |
}) | |
} else { | |
u = new c.Ms.StudentHeader({ | |
UserId: c.Data.userId | |
}); | |
u.fetch({ | |
success: function (x, y) { | |
v.$el.html(w({ | |
model: v.generalInformation.toJSON(), | |
studentWithdrawn: x.get("StudentWithdrawn"), | |
ageString: v.ageString, | |
hideWarning: v.hideWarning, | |
showLink: v.currentYearIndex | |
})); | |
p3.rV(new c.Vs.CandidateNote({}), $("#candidate-note-holder"), true) | |
} | |
}) | |
} | |
}) | |
}, | |
showedit: function (u) { | |
$(".editPhotoIcon").removeClass("hide") | |
}, | |
hideedit: function (u) { | |
$(".editPhotoIcon").addClass("hide") | |
}, | |
editphoto: function (u) { | |
var v = this; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "parentchild/contactcard.modal.edit.profilephoto.template.html", | |
model: v.generalInformation, | |
layoutView: v.options.layoutView, | |
photoRefresh: new Date().getTime() | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
selectYear: function (u) { | |
var v = this; | |
u.preventDefault(); | |
c.Data.modelIndex = parseInt(u.target.getAttribute("data"), 10) - 1; | |
p3.setSessionState(p3.Data.Context.attributes.UserInfo.UserId + "_" + c.Data.userId, c.Data.modelIndex); | |
c.Data.instanceId = $(u.currentTarget).prop("id"); | |
v.options.layoutView.renderData() | |
}, | |
selectCurrentYear: function (u) { | |
var v = this; | |
u.preventDefault(); | |
c.Data.modelIndex = v.currentYearIndex - 1; | |
p3.setSessionState(p3.Data.Context.attributes.UserInfo.UserId + "_" + c.Data.userId, c.Data.modelIndex); | |
c.Data.instanceId = v.currentYearProspectInstanceId; | |
v.options.layoutView.renderData() | |
}, | |
statusHistory: function (u) { | |
u.preventDefault(); | |
u.stopPropagation(); | |
var w = this, | |
v = new c.Cs.StatusHistory(); | |
v.fetch({ | |
data: { | |
userId: c.Data.userId, | |
prospectInstanceId: c.Data.instanceId | |
}, | |
success: function (x) { | |
w.Modal2Extend = q.Vs.Modal2.extend({ | |
template: "admissions/candidate.detail.header.statushistory.template.html", | |
collection: v | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new w.Modal2Extend(), p3.Layout.Containers.Modal, true) | |
} | |
}) | |
}, | |
deleteEnteringYear: function (w) { | |
w.preventDefault(); | |
w.stopPropagation(); | |
var x, y = new c.Ms.ProspectDelete({ | |
ProspectInstanceId: t.stringToInt(c.Data.instanceId) | |
}), | |
u = c.Data.pidCollection.findWhere({ | |
ProspectInstanceId: y.id | |
}), | |
v = u.get("EnteringYear"); | |
if (c.Data.statusId === 2) { | |
x = q.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.message.html", | |
variables: { | |
title: "Delete entering year " + v, | |
infoText: "The candidate has already been enrolled and must first be withdrawn before any entering years can be deleted." | |
} | |
}) | |
} else { | |
x = q.Vs.Modal2.extend({ | |
template: "candidate/candidate.header.deleteyear.template.html", | |
model: y, | |
size: "md", | |
events: { | |
"keyup textarea.counter-input": "updateCharacterCounter" | |
}, | |
variables: { | |
enteringYear: v | |
}, | |
modalRendered: function (A) { | |
var z = this; | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.AutoSize, function () { | |
z.$("textarea").autosize() | |
}); | |
_.each(z.$("textarea.counter-input"), function (B) { | |
$(B).trigger($.Event("keyup")) | |
}) | |
}, | |
modalSave: function () { | |
var B = this, | |
A = B.$(".save"), | |
z = B.$(".cancel"), | |
C = p3.Data.Context.attributes.UserInfo.UserId + "_" + c.Data.userId; | |
if (B.model.isValid(true)) { | |
A.button("loading").prop("disabled", true); | |
z.prop("disabled", true); | |
B.model.save({}, { | |
method: "delete", | |
success: function () { | |
p3.Layout.Containers.Modal.modal("hide"); | |
if (c.Data.pidCollection.models.length > 1) { | |
c.Data.instanceId = null; | |
c.Data.modelIndex = 0; | |
if (p3.getSessionState(C)) { | |
p3.setSessionState(C, 0) | |
} | |
c.Us.RenderMainPage() | |
} else { | |
p3.router().navigate("#dashboard/scheduling", true) | |
} | |
}, | |
error: function () { | |
p3.displayError("Error deleting entering year."); | |
A.button("reset").prop("disabled", false); | |
z.prop("disabled", false) | |
} | |
}) | |
} | |
return false | |
}, | |
updateCharacterCounter: function (A) { | |
var B = this, | |
z = B.$(A.currentTarget); | |
z.siblings().find(".characterCounter").html(z.val().length); | |
if (z.val().length > 4000) { | |
z.siblings().find(".characterCounter").addClass("badge-important") | |
} else { | |
z.siblings().find(".characterCounter").removeClass("badge-important") | |
} | |
} | |
}) | |
} | |
q.Us.renderModal(new x()) | |
} | |
}); | |
c.Vs.CandidateNote = Bb.View.extend({ | |
template: "admissions/candidate.detail.note.template.html", | |
id: "candidateNote", | |
className: "sticky taped2", | |
events: { | |
"click button.editCommentIcon": "editcomment" | |
}, | |
initialize: function () { | |
var u = this; | |
if (this.options) { | |
this.userId = this.options.userId | |
} | |
u.model = c.Data.prospectInfo | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).html(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
u.model.off("sync"); | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})); | |
u.model.on("sync", u.renderData, u) | |
}) | |
}, | |
editcomment: function (u) { | |
var v = this; | |
v.modal2Extend = q.Vs.Modal2.extend({ | |
template: "admissions/candidate.detail.edit.comment.template.html", | |
model: v.model, | |
modalRendered: function (x) { | |
var w = this; | |
o.Us.showHtmlEditor(w, "tinyeditor", function () { | |
$.each(w.$(".tinyeditor"), function () { | |
var y = tinyMCE.get(this.id); | |
w.$(".characterCounter").html(y.save().length); | |
if (y.save().length > 4000) { | |
w.$(".characterCounter").addClass("badge-important") | |
} else { | |
w.$(".characterCounter").removeClass("badge-important") | |
} | |
y.onChange.add(function (A, z) { | |
w.$(".characterCounter").html(A.save().length); | |
if (A.save().length > 4000) { | |
w.$(".characterCounter").addClass("badge-important") | |
} else { | |
w.$(".characterCounter").removeClass("badge-important") | |
} | |
}); | |
y.onKeyUp.add(function (A, z) { | |
w.$(".characterCounter").html(A.save().length); | |
if (A.save().length > 4000) { | |
w.$(".characterCounter").addClass("badge-important") | |
} else { | |
w.$(".characterCounter").removeClass("badge-important") | |
} | |
}) | |
}) | |
}) | |
}, | |
modalSave: function () { | |
var w = this; | |
$.each(w.$(".tinyeditor"), function () { | |
var x = {}; | |
x[this.id] = tinyMCE.get(this.id).save(); | |
w.model.set(x) | |
}) | |
} | |
}); | |
q.Us.renderModal(new v.modal2Extend()) | |
} | |
}); | |
c.Vs.Navigation = Bb.View.extend({ | |
template: "admissions/candidate.detailnav.template.html", | |
id: "candidateNav", | |
events: { | |
"click a": "clickCandidateTab" | |
}, | |
initialize: function () { | |
var u = this; | |
u.collection = new c.Cs.NavItems() | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).html(v.el); | |
v.collection.comparator = function (w) { | |
return w.get("id") | |
}; | |
p3.fT(v.template, function (D) { | |
if (v.collection.length === 0) { | |
var A = p3.Data.Context.findByTaskId(53090), | |
y = p3.Data.Context.findByTaskId(53693), | |
C = null, | |
w = null, | |
B = null, | |
z = null, | |
x = null; | |
if (c.Data.instanceId) { | |
C = { | |
Route: "#candidate", | |
Page: "#candidate/" + c.Data.userId + "/record", | |
Label: "Record", | |
Icon: "p3icon-roster", | |
Selected: false | |
}; | |
w = { | |
Route: "#candidate", | |
Page: "#candidate/" + c.Data.userId + "/checklist", | |
Label: "Checklist", | |
Icon: "p3icon-admissionProgress", | |
Selected: false | |
}; | |
x = { | |
Route: "#candidate", | |
Page: "#candidate/" + c.Data.userId + "/connections", | |
Label: "Connections", | |
Icon: "p3icon-connections", | |
Selected: false | |
} | |
} | |
if (A) { | |
B = { | |
Route: "#candidate", | |
Page: A.HashString.replace(":id", c.Data.userId), | |
Label: "Financial Aid", | |
Icon: "p3icon-finAid", | |
Selected: false | |
} | |
} | |
if (y) { | |
z = { | |
Route: "#candidate", | |
Page: y.HashString.replace(":id", c.Data.userId), | |
Label: "Contracts", | |
Icon: "p3icon-editContent", | |
Selected: false | |
} | |
} | |
v.collection.add([C, w, { | |
Route: "#candidate", | |
Page: "#candidate/" + c.Data.userId + "/schools", | |
Label: "Schools", | |
Icon: "p3icon-school", | |
Selected: false | |
}, B, z, { | |
Route: "#candidate", | |
Page: "#candidate/" + c.Data.userId + "/contactcard", | |
Label: "Contact Card", | |
Icon: "p3icon-contactCard", | |
Selected: false | |
}, x]) | |
} | |
v.$el.html(D({ | |
collection: v.collection.toJSON(), | |
userId: c.Data.userId | |
})); | |
v.shown(v.options.page) | |
}) | |
}, | |
clickCandidateTab: function (u) { | |
u.preventDefault(); | |
u.stopPropagation(); | |
p3.router().navigate(u.currentTarget.hash, true) | |
}, | |
shown: function (u) { | |
var v = this; | |
switch (u) { | |
case "record": | |
p3.rV(new d.Vs.Layout({ | |
instanceId: c.Data.instanceId, | |
userId: c.Data.userId | |
}), $("#main-content"), false); | |
$('.nav-tabs li a[href="#candidate/' + c.Data.userId + '/record"]').closest("li").addClass("active"); | |
break; | |
case "checklist": | |
p3.rV(new e.Vs.Layout({ | |
instanceId: c.Data.instanceId, | |
userId: c.Data.userId, | |
enteringYear: c.Data.enteringYear, | |
enteringGrade: c.Data.enteringGrade, | |
statusId: c.Data.statusId | |
}), $("#main-content"), false); | |
$('.nav-tabs li a[href="#candidate/' + c.Data.userId + '/checklist"]').closest("li").addClass("active"); | |
break; | |
case "schools": | |
p3.rV(new p.Vs.Layout({ | |
instanceId: c.Data.instanceId, | |
userId: c.Data.userId | |
}), $("#main-content"), false); | |
$('.nav-tabs li a[href="#candidate/' + c.Data.userId + '/schools"]').closest("li").addClass("active"); | |
break; | |
case "financialaid": | |
p3.rV(new k.Vs.Layout({ | |
instanceId: c.Data.instanceId, | |
userId: c.Data.userId | |
}), $("#main-content"), false); | |
$('.nav-tabs li a[href="#candidate/' + c.Data.userId + '/financialaid"]').closest("li").addClass("active"); | |
break; | |
case "contracts": | |
p3.rV(new g.Vs.Layout({ | |
instanceId: c.Data.instanceId, | |
userId: c.Data.userId | |
}), $("#main-content"), false); | |
$('.nav-tabs li a[href="#candidate/' + c.Data.userId + '/contracts"]').closest("li").addClass("active"); | |
break; | |
case "contactcard": | |
p3.rV(new o.Vs.Layout({ | |
userId: c.Data.userId, | |
showPhoto: false | |
}), $("#main-content"), false); | |
$('.nav-tabs li a[href="#candidate/' + c.Data.userId + '/contactcard"]').closest("li").addClass("active"); | |
break; | |
case "connections": | |
p3.rV(new f.Vs.Layout({ | |
instanceId: c.Data.instanceId, | |
layoutView: v, | |
userId: c.Data.userId | |
}), $("#main-content"), false); | |
$('.nav-tabs li a[href="#candidate/' + c.Data.userId + '/connections"]').closest("li").addClass("active"); | |
break; | |
default: | |
break | |
} | |
p3.rV(new c.Vs.WorklistNav({ | |
userId: c.Data.userId | |
}), $("#site-nav-lower"), false) | |
} | |
}); | |
c.Vs.WorklistNav = Bb.View.extend({ | |
template: "admissions/candidate.detail.worklistnav.template.html", | |
className: "admissions-nav res-container clearfix", | |
initialize: function () { | |
var u = this; | |
u.navArgs = { | |
user: null, | |
list: null, | |
prev: null, | |
pos: null, | |
count: null, | |
next: null, | |
worklistId: null, | |
worklistName: null, | |
timerstart: null, | |
timernow: null, | |
worklistState: null, | |
render: false, | |
remove: false, | |
task: null | |
} | |
}, | |
render: function (u) { | |
var v = this; | |
v.navArgs.user = v.options.userId; | |
v.navArgs.worklistState = p3.getSessionState("AdmWorkList"); | |
v.navArgs.task = _.find(Bb.history.fragment.split("/").reverse()); | |
if (v.navArgs.worklistState) { | |
v.navArgs.remove = true; | |
if (v.navArgs.worklistState.length > 3) { | |
v.navArgs.timerstart = v.navArgs.worklistState[0]; | |
v.navArgs.timernow = Date.parse(new Date().toString()); | |
if (!(v.navArgs.timerstart && v.navArgs.timernow - v.navArgs.timerstart > 1800000)) { | |
v.navArgs.worklistId = v.navArgs.worklistState[1]; | |
v.navArgs.worklistName = v.navArgs.worklistState[2]; | |
v.navArgs.list = _.rest(v.navArgs.worklistState, 3); | |
if (v.navArgs.list) { | |
v.navArgs.count = v.navArgs.list.length; | |
if (v.navArgs.count) { | |
v.navArgs.remove = false; | |
v.navArgs.pos = _.indexOf(v.navArgs.list, v.navArgs.user) + 1; | |
if (v.navArgs.pos > 0) { | |
v.navArgs.prev = (v.navArgs.pos > 1) ? v.navArgs.list[v.navArgs.pos - 2] : 0; | |
v.navArgs.next = (v.navArgs.pos >= 1 && v.navArgs.pos < v.navArgs.count) ? v.navArgs.list[v.navArgs.pos] : 0; | |
v.navArgs.render = true; | |
if (v.navArgs.timerstart) { | |
v.navArgs.worklistState[0] = 0; | |
p3.setSessionState("AdmWorkList", v.navArgs.worklistState) | |
} | |
} else { | |
if (!v.navArgs.worklistState[0]) { | |
v.navArgs.worklistState[0] = v.navArgs.timernow; | |
p3.setSessionState("AdmWorkList", v.navArgs.worklistState) | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
if (v.navArgs.render) { | |
$(u).html(v.el); | |
p3.showLowerNav(); | |
v.renderData() | |
} else { | |
if (v.navArgs.remove) { | |
p3.setSessionState("AdmWorkList", null) | |
} | |
} | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
args: u.navArgs | |
})) | |
}) | |
} | |
}); | |
c.Vs.Sidebar = Bb.View.extend({ | |
template: "admissions/candidate.detail.sidebar.template.html", | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click .sendmessage": "sendMessage" | |
}, | |
initialize: function () { | |
var u = this; | |
u.model = new c.Ms.Information(); | |
u.Containers = {} | |
}, | |
render: function (u) { | |
$(u).html(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var w = this, | |
v, u; | |
if (c.Data.instanceId) { | |
v = r.Us.getUrlById(1691, "pk=316&ext=word&piid=" + c.Data.instanceId + "&o_pk=|" + c.Data.enteringYear + "|" + c.Data.instanceId + "|" + c.Data.checklistId + "|"); | |
u = r.Us.getUrlById(1691, "pk=316&ext=pdf&piid=" + c.Data.instanceId + "&o_pk=|" + c.Data.enteringYear + "|" + c.Data.instanceId + "|" + c.Data.checklistId + "|"); | |
w.model.unbind("sync"); | |
p3.fT(w.template, function (x) { | |
w.$el.html(x({ | |
wordLink: v, | |
pdfLink: u, | |
userId: c.Data.userId | |
})); | |
p3.rV(new c.Vs.MailMerge({ | |
layoutView: w, | |
instanceId: c.Data.instanceId, | |
userId: c.Data.userId | |
}), $("#mailmerge"), false); | |
p3.rV(new c.Vs.OfficialNotes({ | |
layoutView: w, | |
instanceId: c.Data.instanceId, | |
userId: c.Data.userId | |
}), $("#officialNotesHolder"), false); | |
p3.rV(new c.Vs.FilesAndForms({ | |
layoutView: w, | |
instanceId: c.Data.instanceId, | |
userId: c.Data.userId | |
}), $("#attachmentsHolder"), false); | |
n.PrepopulateData = c.Data.userId | |
}) | |
} | |
}, | |
toggleSection: function (u) { | |
$(u.currentTarget).siblings(".toggledetail").slideToggle("fast", function () { | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}); | |
return false | |
}, | |
sendMessage: function (u) { | |
u.preventDefault(); | |
p3.router().navigate("#admissionsofficialnote/compose/0", true) | |
} | |
}); | |
c.Vs.MailMerge = Bb.View.extend({ | |
template: "admissions/candidate.detail.sidebar.mailmergeholder.template.html", | |
initialize: function () { | |
var u = this; | |
u.collection = new c.Cs.MailMerge(); | |
u.collection.bind("add", function (w) { | |
var v = new c.Vs.MailMergeRow({ | |
model: w, | |
dictionaries: u.dictionaries, | |
instanceId: c.Data.instanceId, | |
parentView: u, | |
userId: c.Data.userId | |
}); | |
w.bind("sync", u.renderData, u); | |
if (w.attributes.DeliveryMethodType.Name.toLowerCase().indexOf("mail merge") >= 0) { | |
p3.rV(v, this.$("#mailMergeHolder"), false) | |
} else { | |
if (this.$("#communicationHolder").hasClass("hide")) { | |
this.$("#communicationHolder").removeClass("hide") | |
} | |
p3.rV(v, this.$("#communicationHolder"), false) | |
} | |
}, this) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click .create": "createMailMerge" | |
}, | |
render: function (u) { | |
var w = this, | |
v = 0; | |
$(u).append(w.el); | |
w.dictionaries = { | |
ADMVisitTypes: j.DictionaryData.ADMVisitTypes, | |
dictionary_102: { | |
id: 102, | |
keyName: "user_id", | |
valueName: "user_name", | |
inputParam: "@admissions_staff_id=null,@onBoard_ind=1[i]", | |
dictionary: {} | |
} | |
}; | |
_.each(w.dictionaries, function (x) { | |
var y = new c.Cs.Dictionary(); | |
y.fetch({ | |
data: { | |
dictionaryId: x.id, | |
key: x.keyName, | |
value: x.valueName, | |
inputParam: x.inputParam | |
}, | |
success: function (z) { | |
x.dictionary = z.toJSON(); | |
v++; | |
if (v === _.size(w.dictionaries)) { | |
w.dictionaries.mailMergeTemplates = new c.Cs.MailMergeTemplates(); | |
w.dictionaries.mailMergeTemplates.fetch({ | |
cache: false, | |
success: function (A, B) { | |
w.dictionaries.mailMergeTemplates.dictionary = B; | |
w.renderData() | |
} | |
}) | |
} | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var u = this; | |
u.collection.reset(); | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
userId: c.Data.userId | |
})); | |
u.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: c.Data.instanceId | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (u) { | |
$(u.currentTarget).siblings(".toggledetail").slideToggle("fast"); | |
if ($(u.currentTarget).hasClass("active")) { | |
$(u.currentTarget).removeClass("active") | |
} else { | |
$(u.currentTarget).addClass("active") | |
} | |
return false | |
}, | |
createMailMerge: function (u) { | |
var w = this, | |
v = new c.Ms.MailMerge({ | |
prospectInstanceId: c.Data.instanceId, | |
ContactDate: h.getDateString(), | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
}, | |
MailMergeJob: { | |
"$type": "clBLL.nAdmissions.MailMergeJob, clBLL" | |
} | |
}); | |
u.stopPropagation(); | |
u.preventDefault(); | |
v.bind("sync", w.renderData, w); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "admissions/candidate.detail.sidebar.mailmerge.create.template.html", | |
model: v, | |
dictionaries: w.dictionaries, | |
layoutView: w | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}); | |
c.Vs.MailMergeRow = Bb.View.extend({ | |
template: "admissions/candidate.detail.sidebar.mailmerge.template.html", | |
tagName: function () { | |
return "div" | |
}, | |
initialize: function () { | |
this.model.bind("destroy", this.deleteElement, this); | |
this.model.bind("remove", this.deleteElement, this) | |
}, | |
events: { | |
"click .mmEdit": "mmEdit", | |
"click .commEdit": "commEdit", | |
"click .togglebutton": "toggleInfo" | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.userId = c.Data.userId; | |
v.renderData() | |
}, | |
renderData: function () { | |
var v = this, | |
u = v.model.attributes.DeliveryMethodType.Name.toLowerCase().indexOf("mail merge") >= 0; | |
p3.fT(v.template, function (w) { | |
v.$el.html(w({ | |
model: v.model.toJSON(), | |
dictionaries: v.options.dictionaries, | |
mailMerge: u | |
})) | |
}) | |
}, | |
toggleInfo: function (v) { | |
var w = this, | |
u = $(v.currentTarget); | |
w.$(".toggleinfo").slideToggle("fast"); | |
if (u.hasClass("active")) { | |
u.removeClass("active") | |
} else { | |
u.addClass("active") | |
} | |
if (u.hasClass("fa-chevron-up")) { | |
u.removeClass("fa-chevron-up").addClass("fa-chevron-down") | |
} else { | |
if (u.hasClass("fa-chevron-down")) { | |
u.removeClass("fa-chevron-down").addClass("fa-chevron-up") | |
} | |
} | |
return false | |
}, | |
mmEdit: function (u) { | |
var v = this; | |
u.preventDefault(); | |
u.stopPropagation(); | |
v.editModel = new c.Ms.MailMerge(); | |
v.editModel.fetch({ | |
update: true, | |
data: { | |
prospectInstanceId: c.Data.instanceId, | |
id: v.model.get("CommunicationId") | |
}, | |
success: function (w) { | |
v.editModel.bind("sync", v.options.parentView.renderData, v.options.parentView); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "admissions/candidate.detail.sidebar.mailmerge.edit.template.html", | |
model: v.editModel, | |
dictionaries: v.options.dictionaries, | |
layoutView: v | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
error: function () { | |
p3.displayError("Error loading mail merge get") | |
} | |
}) | |
}, | |
commEdit: function (u) { | |
var v = this; | |
u.preventDefault(); | |
u.stopPropagation(); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "admissions/candidate.detail.sidebar.communication.edit.template.html", | |
model: v.model, | |
dictionaries: v.options.dictionaries, | |
layoutView: v | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
c.Vs.OfficialNotes = Bb.View.extend({ | |
template: "admissions/candidate.detail.sidebar.communication.template.html", | |
tagName: "table", | |
className: function () { | |
return "table table-sky message-list" | |
}, | |
events: { | |
"click .detail": "noteDetail", | |
renderData: "renderData" | |
}, | |
initialize: function () { | |
var u = this; | |
u.collection = new n.Cs.Inbox(); | |
n.Data.inbox = {} | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var x = this, | |
v = n.Us.GetStatus(), | |
w = n.Us.GetTypes(), | |
u = n.Us.GetSearchText(); | |
x.collection.fetch({ | |
data: { | |
currentInd: (n.Us.GetYear() == 5) ? 0 : 1, | |
statusXml: (v.length > 0) ? JSON.stringify(v) : "", | |
commentTypeXml: (w.length > 0) ? JSON.stringify(w) : "", | |
fromDate: n.Us.getFromDateForDataCall(), | |
toDate: n.Us.getToDateForDataCall(), | |
searchText: u, | |
studentUserId: c.Data.userId, | |
categoryId: 34 | |
}, | |
success: function () { | |
p3.fT("admissions/candidate.detail.sidebar.officialnote.template.html", function (y) { | |
n.Data.currentApp = 34; | |
$(".message-list").html(y({ | |
imagePath: p3.Config.FtpImagePath + "user/", | |
officalnote: x.collection.toJSON(), | |
nonHistoryView: n.Data.nonHistoryView | |
})) | |
}) | |
} | |
}) | |
}, | |
noteDetail: function (u) { | |
var v = this; | |
p3.rV(new c.Vs.NoteDetail({ | |
commentId: $(u.target).attr("data-comment-id"), | |
conversationId: $(u.target).attr("data-convo-id"), | |
notesList: v.collection.pluck("CommentId"), | |
displayArchive: this.options.displayArchive, | |
layoutView: v | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}); | |
c.Vs.NoteDetail = Bb.View.extend({ | |
template: "officialnote/officialnote.detail.template.html", | |
events: { | |
"click #send": "sendMessage", | |
"click #delete": "deleteMessage", | |
initPlugin: "initPlugin", | |
"click [data-note-id]": "showNoteDetail" | |
}, | |
initialize: function (u) { | |
var v = this; | |
v.categoryId = n.Us.GetApp(); | |
v.model = new n.Ms.Detail().on("change", v.renderTemplate, this); | |
v.fetchDetail(function () { | |
p3.showModal(p3.Layout.Containers.Modal) | |
}); | |
if (v.categoryId == 34) { | |
v.template = "officialnote/officialnote.adm.conversation.messages.template.html" | |
} | |
this.Containers = {}; | |
_.bindAll(this, "sendMessage") | |
}, | |
dispose: function () { | |
var u = tinyMCE.get("comment-text"); | |
if (u) { | |
u.remove() | |
} | |
this.options.layoutView.renderData() | |
}, | |
render: function (u) { | |
$(u).append(this.el) | |
}, | |
renderTemplate: function (v) { | |
var w = this, | |
u = (p3.Data.Context.attributes.UserInfo.FirstName + " " + p3.Data.Context.attributes.UserInfo.LastName); | |
p3.fT(w.template, function (x) { | |
w.$el.html(x({ | |
imagePath: p3.Config.FtpImagePath + "user/", | |
conversation: v, | |
FromSelf: u | |
})); | |
setTimeout(function () { | |
w.$("#comment-type").trigger("change"); | |
w.$el.trigger("initPlugin"); | |
w.$(".required-indicator").tooltip(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, 200) | |
}) | |
}, | |
loadPrevNext: function () { | |
var x = this, | |
w = this.options.notesList.indexOf(parseInt(this.options.commentId, 10)), | |
v = $("<button>", { | |
type: "button", | |
"class": "btn btn-default btn-primary disabled", | |
"data-note-id": this.options.notesList[w - 1] | |
}).html("Prev"), | |
u = $("<button>", { | |
type: "button", | |
"class": "btn btn-default btn-primary disabled", | |
"data-note-id": this.options.notesList[w + 1] | |
}).html("Next"); | |
if (x.categoryId == 34) { | |
this.$el.find(".navBtns").prepend(v, u) | |
} else { | |
this.$el.find(".modal-footer").prepend(v, u) | |
} | |
if (v.is("[data-note-id]")) { | |
v.removeClass("disabled") | |
} | |
if (u.is("[data-note-id]")) { | |
u.removeClass("disabled") | |
} | |
}, | |
showNoteDetail: function (u) { | |
var v = this; | |
v.options.commentId = $(u.target).attr("data-note-id"); | |
v.conversationId = $(u.target).attr("data-convo-id"); | |
v.fetchDetail(function () { | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
fetchDetail: function (u) { | |
var v = this; | |
if (v.options.commentId) { | |
v.model.fetch({ | |
update: true, | |
data: { | |
Id: v.options.commentId, | |
conversationId: v.options.conversationId | |
}, | |
success: function () { | |
u() | |
} | |
}) | |
} | |
}, | |
initPlugin: function () { | |
p3.showHtmlEditor("comment-text", p3.Us.Enum.HtmlEditorCategories.FULL, false, function () { | |
setTimeout(function () { | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, 200) | |
}, p3.Us.Enum.HtmlEditorEncoding.NUMERIC) | |
}, | |
sendMessage: function () { | |
this.createMessage(2); | |
return false | |
}, | |
deleteMessage: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var y = this, | |
x = y.$("#modal-form"), | |
w = y.$("#modal-confirm"), | |
v, z = new n.Ms.OfficialNoteDelete({ | |
SchoolId: p3.Data.SchoolContext.attributes.SchoolInfo.SchoolId | |
}); | |
v = q.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.confirm.html", | |
model: z, | |
subModal: true, | |
variables: { | |
title: "Delete Official Note", | |
errorText: "Wait a minute. Are you really sure you want to delete this official note?", | |
cancelText: "Cancel", | |
confirmText: "Confirm" | |
}, | |
modalSave: function () { | |
z.destroy({ | |
dataParam: { | |
commentId: y.model.get("0").ConversationId, | |
categoryId: 34 | |
}, | |
success: function () { | |
$("#site-modal").modal("hide"); | |
y.options.layoutView.renderData() | |
}, | |
error: function () { | |
p3.displayError("Error deleting official note") | |
} | |
}); | |
return false | |
} | |
}); | |
x.hide(); | |
w.show(); | |
p3.rV(new v(), w, true) | |
}, | |
createMessage: function (y) { | |
var z = this, | |
x = true, | |
w = new Bbc(), | |
v = new Bbm({ | |
StudentId: z.model.attributes[0].StudentUserId | |
}), | |
u = new Bbc(); | |
w.add(v); | |
u.add({ | |
GroupId: 0 | |
}); | |
new n.Ms.Compose().save({ | |
commentTypeId: z.model.attributes[0].CommentTypeId, | |
student: JSON.stringify(w), | |
comment: (tinyMCE.get("comment-text") == undefined) ? "" : tinyMCE.get("comment-text").getContent(), | |
statusInd: z.model.attributes[0].StatusInd, | |
accessGroup: JSON.stringify(u), | |
sendEmail: x, | |
inboxInd: true, | |
categoryId: 34, | |
templateId: null, | |
conversationId: z.options.conversationId | |
}, { | |
success: function (A, B) { | |
$("#site-modal").modal("hide"); | |
z.options.layoutView.renderData() | |
}, | |
error: function (B, A) { | |
p3.displayError("Error Saving Official Note") | |
} | |
}); | |
return false | |
} | |
}); | |
c.Vs.FilesAndForms = Bb.View.extend({ | |
template: "admissions/candidate.detail.sidebar.attachments.template.html", | |
events: { | |
renderData: "renderData" | |
}, | |
initialize: function () { | |
var u = this; | |
u.collection = new c.Cs.FilesAndForms(); | |
u.collection.bind("add", function (w) { | |
var v = new c.Vs.Attachment({ | |
model: w | |
}); | |
p3.rV(v, u.$(".attachments-list"), false) | |
}, this) | |
}, | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
u.collection.reset(); | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({})); | |
u.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: u.options.instanceId | |
} | |
}) | |
}) | |
} | |
}); | |
c.Vs.Attachment = Bb.View.extend({ | |
template: "admissions/candidate.detail.sidebar.attachment.template.html", | |
tagName: "tr", | |
render: function (u) { | |
var v = this; | |
$(u).append(v.el); | |
v.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.template, function (v) { | |
u.$el.html(v({ | |
model: u.model.toJSON() | |
})) | |
}) | |
} | |
}); | |
c.Vs.Modal = Bb.View.extend({ | |
initialize: function (u) { | |
var v = this; | |
v.model.defaults = $.extend(true, {}, v.model.attributes); | |
v.selector = v.options.selector || "id"; | |
Bb.Validation.bind(v, { | |
forceUpdate: true, | |
selector: v.selector | |
}) | |
}, | |
events: { | |
"click button.cancel": "cancelModel", | |
"click button.save": "saveModel", | |
"click button.delete": "deleteModel", | |
"click button.delete-attachment-file": "deleteAttachmentFile", | |
"click button.select-all": "selectAll", | |
"click button.btn-select-toggle": "toggleSelection", | |
"click label.toggleGrades": "toggleGrades", | |
"change form input": "updateModel", | |
"blur form input.time-input": "updateModel", | |
"blur form input.date-input": "updateModel", | |
"change form select": "updateModel", | |
"click form .radio-input": "updateModel", | |
"change form textarea": "updateModel", | |
"change select.country-input": "changeCountry", | |
"change select.testtype": "changeTestType", | |
"change select#ChecklistItemId": "toggleChecklistStatus", | |
"keyup textarea": "updateCharacterCounter", | |
"change select.GatewayAccount_AccountId": "changeGateway", | |
"change select#ContractTypeId": "changeContractType" | |
}, | |
dispose: function () { | |
var u = this; | |
$.each(u.$(".tinyeditor"), function () { | |
var v = tinyMCE.get(this.id); | |
if (v) { | |
v.remove() | |
} | |
}) | |
}, | |
render: function (u) { | |
$(u).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var u = this; | |
p3.fT(u.options.template, function (x) { | |
var w = {}, | |
v; | |
w.model = u.model.toJSON(); | |
w.layoutView = u.options.layoutView; | |
w.dictionaries = u.options.dictionaries; | |
w.variables = u.options.variables; | |
w.options = u.options; | |
v = new l.Cs.FeeRules(u.model.get("FeeRules")); | |
w.ruleType1 = v.ruleTypeExists(1); | |
w.ruleType2 = v.ruleTypeExists(2); | |
w.ruleType3 = v.ruleTypeExists(3); | |
if (w.ruleType1) { | |
w.firstRuleType = 1 | |
} else { | |
if (w.ruleType2) { | |
w.firstRuleType = 2 | |
} else { | |
if (w.ruleType3) { | |
w.firstRuleType = 3 | |
} | |
} | |
} | |
u.$el.html(x(w)); | |
u.setFocus(); | |
i.Us.initialize(".date-input", { | |
yearRange: "-30:+20" | |
}); | |
o.Us.showHtmlEditor(u, "tinyeditor"); | |
$(".required-indicator").tooltip(); | |
u.$("textarea").trigger(jQuery.Event("keyup")); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.AutoSize, function () { | |
u.$("textarea").autosize() | |
}); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.FileUpload, function () { | |
u.initializeFileUpload_Photo(u); | |
u.initializeFileUpload_File(u) | |
}) | |
}); | |
s.Us.initialize(".time-input"); | |
u.changeCountry(); | |
if (w.dictionaries && w.dictionaries.dictionary_paymentgateway) { | |
u.changeGateway() | |
} | |
u.$("textarea#Comment").trigger(jQuery.Event("keyup")); | |
if ($("#ChecklistItemId option:selected").val() != "") { | |
$(".checklist-status").removeClass("hide") | |
} | |
}) | |
}, | |
initializeFileUpload_Photo: function (u) { | |
window.setTimeout(function () { | |
var v = p3.Us.Enum.UploadType.IMAGE; | |
$("#photoUpload").fileupload({ | |
url: p3.Config.RootPath + "utilities/FileTransferHandler.ashx", | |
autoUpload: true, | |
acceptFileTypes: v.ValidExtensions, | |
formData: { | |
safeName: true | |
}, | |
add: function (x, w) { | |
var y = p3.Us.FileTools.isValidFile(v, w.files[0].name); | |
if (y) { | |
w.submit() | |
} else { | |
u.$("#attachment-file").empty(); | |
u.$("#attachment-file").append(p3.Us.FileTools.validateFiles(v, w)) | |
} | |
} | |
}).bind("fileuploaddone", function (x, w) { | |
$(".profilePhoto").prop("src", "/ftpimages/pdTemp/" + w.result[0].name); | |
u.model.get("ProfilePhoto").LargeFilename = w.result[0].name; | |
u.model.get("ProfilePhoto").LargeFilenameUrl = "/ftpimages/pdTemp/" + w.result[0].name; | |
u.model.photo = true; | |
u.model.forceReset = true | |
}) | |
}, 1000) | |
}, | |
initializeFileUpload_File: function (u) { | |
window.setTimeout(function () { | |
var v = p3.Us.Enum.UploadType.All; | |
$("#fileUpload").fileupload({ | |
url: p3.Config.RootPath + "utilities/FileTransferHandler.ashx", | |
autoUpload: true, | |
acceptFileTypes: v.ValidExtensions, | |
formData: { | |
safeName: true | |
}, | |
add: function (x, w) { | |
var y = p3.Us.FileTools.isValidFile(v, w.files[0].name); | |
if (y) { | |
w.submit() | |
} else { | |
u.$("#attachment-file").empty(); | |
u.$("#attachment-file").append(p3.Us.FileTools.validateFiles(v, w)) | |
} | |
} | |
}).bind("fileuploaddone", function (x, w) { | |
$("#attachment-file").html(w.result[0].original_name); | |
u.model.get("AttachmentFile").Attachment = w.result[0].original_name; | |
u.model.get("AttachmentFile").AttachmentTemp = w.result[0].name; | |
$("#fileUpload").hide(); | |
$(".delete-attachment-file").show() | |
}) | |
}, 1000) | |
}, | |
deleteAttachmentFile: function (u) { | |
var v = this; | |
u.stopPropagation(); | |
u.preventDefault(); | |
v.model.get("AttachmentFile").AttachmentRemove = v.model.get("AttachmentFile").Attachment; | |
v.model.get("AttachmentFile").Attachment = null; | |
$("#attachment-file").empty(); | |
$("#fileUpload").show(); | |
$(".delete-attachment-file").hide() | |
}, | |
changeCountry: function (u) { | |
var v = this; | |
if ((v.$("#Country").length) && (v.$("#Country").val().toLowerCase() === "united states")) { | |
v.$("#State").parents(".control-group").show(); | |
v.$("#Province").parents(".control-group").hide(); | |
v.$("#Province").val("") | |
} else { | |
v.$("#State").parents(".control-group").hide(); | |
v.$("#Province").parents(".control-group").show(); | |
v.$("#State").val("") | |
} | |
}, | |
changeTestType: function (u) { | |
var v = this; | |
v.collection = new d.Cs.SubTests(); | |
v.collection.fetch({ | |
cache: false, | |
data: { | |
testid: u.target.value | |
}, | |
success: function (w) { | |
$("#subtestHolder").html(""); | |
if (w.length > 0) { | |
v.model.attributes.ProspectSubTests = w.toJSON(); | |
p3.fT("admissions/candidate.detail.profile.subtest.template.html", function (x) { | |
$("#subtestHolder").html(x({ | |
model: v.model.toJSON() | |
})) | |
}) | |
} | |
} | |
}) | |
}, | |
toggleChecklistStatus: function (u) { | |
if ($(u.target).prop("value") === "") { | |
$("#ChecklistItemStatus").val(""); | |
$(".checklist-status").addClass("hide") | |
} else { | |
$(".checklist-status").removeClass("hide") | |
} | |
}, | |
changeGateway: function (y) { | |
var v = $("button.paymentoptions-input[value='5']").filter(".btn-denied"), | |
x = $(".GatewayAccount_AccountId").val(), | |
u = $("div.pm-opt-eft"), | |
w = $("div#no-sup-msg"), | |
z = this.options.dictionaries.dictionary_paymentgateway.dictionary.filter(function (A) { | |
return A.AccountId === Number(x) | |
}); | |
if (z && z.length > 0) { | |
if (z[0].GatewayId == 5) { | |
w.html("<i>Not supported by selected gateway.</i>"); | |
w.show(); | |
v.click(); | |
u.hide() | |
} else { | |
w.html(""); | |
w.hide(); | |
u.show() | |
} | |
} | |
}, | |
changeContractType: function (y) { | |
var B = this, | |
w = $(y.currentTarget), | |
x = w.val(), | |
u = B.$("#SchoolYear"), | |
v = u.find("option"), | |
z = B.options.dictionaries.contractTypes.get(x), | |
A = z.get("SchoolYears"); | |
u.val(""); | |
v.each(function () { | |
var C = $(this), | |
D = C.prop("value"); | |
if (_.contains(A, D)) { | |
C.attr("disabled", "disabled") | |
} else { | |
C.removeAttr("disabled") | |
} | |
}) | |
}, | |
updateCharacterCounter: function (u) { | |
u.stopPropagation(); | |
u.preventDefault(); | |
var v = this; | |
v.$(u.currentTarget).siblings("p").find(".characterCounter").html($(u.currentTarget).val().length); | |
if ($(u.currentTarget).val().length > 4000) { | |
v.$(u.currentTarget).siblings("p").find(".characterCounter").addClass("badge-important") | |
} else { | |
v.$(u.currentTarget).siblings("p").find(".characterCounter").removeClass("badge-important") | |
} | |
}, | |
selectAll: function (w) { | |
w.preventDefault(); | |
var y = this, | |
v = $(w.currentTarget), | |
x = v.data("selector"), | |
u = y.$("." + x + ":not(.active)"); | |
u.click() | |
}, | |
toggleSelection: function (v) { | |
v.preventDefault(); | |
var B = this, | |
u = $(v.currentTarget), | |
A = u.closest("tr"), | |
y = A.data("prop"), | |
w = A.data("id"), | |
x = $.extend(true, [], B.model.get(y)), | |
z; | |
if (y === "FeeRules" && x) { | |
z = _.find(x, function (C) { | |
return C.FeeRuleId == w | |
}); | |
if (z) { | |
z.InUseOnForm = !z.InUseOnForm; | |
B.model.set("FeeRules", x) | |
} | |
} | |
}, | |
toggleGrades: function (u) { | |
if (!$("#DepositByGrade").prop("checked")) { | |
$(".toggleGrades").removeClass("active"); | |
$(".depositsByGrade").addClass("hide"); | |
$("#Fee").removeAttr("disabled") | |
} else { | |
$(".toggleGrades").addClass("active"); | |
$(".depositsByGrade").removeClass("hide"); | |
$("#Fee").attr("disabled", "disabled") | |
} | |
}, | |
updateModel: function (v) { | |
var D = this, | |
z = $(v.currentTarget), | |
y = z.attr(D.selector), | |
B, u = {}, | |
A, x, C, w; | |
if (z.prop("type") === "checkbox") { | |
B = z.prop("checked") | |
} else { | |
if (z.hasClass("date-input")) { | |
if (z.siblings().hasClass("time-input")) { | |
A = z.siblings(".time-input").prop("value"); | |
x = z.prop("value"); | |
B = x; | |
if (A != "") { | |
B += " " + A | |
} | |
} else { | |
B = z.prop("value") | |
} | |
if (B == "") { | |
B = null | |
} | |
} else { | |
if (z.hasClass("time-input")) { | |
if (z.siblings().hasClass("date-input")) { | |
x = z.siblings(".date-input").prop("value"); | |
A = z.prop("value"); | |
B = x; | |
if (A != "") { | |
B += " " + A | |
} | |
y = z.siblings(".date-input").prop(D.selector) | |
} else { | |
B = z.prop("value") | |
} | |
if (B == "") { | |
B = null | |
} | |
} else { | |
if (z.hasClass("radio-input")) { | |
if (z.hasClass("paymentoptions-input")) { | |
B = parseInt(z.prop("value"), 10); | |
if (D.model.get("PaymentOptions") == null) { | |
D.model.set({ | |
PaymentOptions: [] | |
}) | |
} | |
if (z.data("action") == "add") { | |
if (D.model.get("PaymentOptions").indexOf(B) == -1) { | |
D.model.get("PaymentOptions").push(B) | |
} | |
} else { | |
if (z.data("action") === "remove") { | |
if (D.model.get("PaymentOptions").indexOf(B) > -1) { | |
D.model.get("PaymentOptions").splice(D.model.get("PaymentOptions").indexOf(B), 1) | |
} | |
} | |
} | |
B = D.model.get("PaymentOptions"); | |
y = $(z).parent().prop(D.selector) | |
} else { | |
B = z.prop("value"); | |
y = $(z).parent().prop(D.selector) | |
} | |
} else { | |
if (z.hasClass("url-input") && (z.prop("value") != "")) { | |
C = /((http[s]?):\/\/|mailto:)/; | |
B = !C.test(z.prop("value")) ? "http://" + z.prop("value") : z.prop("value") | |
} else { | |
if (z.prop("value") === "true") { | |
B = true | |
} else { | |
if (z.prop("value") === "false") { | |
B = false | |
} else { | |
if (z.hasClass("wholenumber-input")) { | |
if (z.prop("value") == "") { | |
B = null | |
} else { | |
w = z.val().replace(/[^0-9.]/g, "").split("."); | |
B = parseInt(w[0], 10); | |
if (isNaN(B)) { | |
B = null | |
} | |
z.val(B) | |
} | |
} else { | |
B = z.prop("value") | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
if (!_.contains(y, ".")) { | |
u[y] = B; | |
D.model.set(u) | |
} else { | |
D.setPropByString(D.model.attributes, y, B); | |
if (D.model.isValid(y)) { | |
Bb.Validation.callbacks.valid(D, y, D.selector) | |
} else { | |
Bb.Validation.callbacks.invalid(D, y, "Entered value contains an error.", D.selector) | |
} | |
} | |
}, | |
cancelModel: function (u) { | |
this.model.set(this.model.defaults) | |
}, | |
saveModel: function (u) { | |
var w = this, | |
v; | |
w.$(".save").button("loading"); | |
$.each(w.$(".url-input"), function () { | |
if ($(this).prop("value") != "") { | |
var A = /((http[s]?):\/\/|mailto:)/, | |
x = {}, | |
z = $(this).prop("value"), | |
y = $(this).prop(w.selector); | |
x[y] = !A.test(z) ? "http://" + z : z; | |
w.model.set(x) | |
} | |
}); | |
if (w.model.isValid(true)) { | |
$.each(w.$(".tinyeditor"), function () { | |
var x = {}; | |
x[this.id] = tinyMCE.get(this.id).save(); | |
w.model.set(x) | |
}); | |
if (w.$(".token-input").length > 0) { | |
v = new c.Cs.TokenItems(); | |
_.each($("#EducationalConsultant").tokenInput("get"), function (x) { | |
var y = new c.Ms.TokenItem({ | |
UserId: x.id | |
}); | |
v.add(y) | |
}); | |
w.model.set({ | |
EducationalConsultant: v.toJSON() | |
}) | |
} | |
w.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(w.model.attributes, function (z, x, y) { | |
w.recursiveFunction(z, x, y, "") | |
}); | |
w.model.save({}, { | |
dataParam: w.options.dataParam, | |
success: function (x, y) { | |
if (w.model.forceReset) { | |
w.model.forceReset = false; | |
y.forceReset = new Date().getTime() | |
} | |
if (x.get("ApplicationSectionId") && $("ul.nav-tabs li.active a.sectionItem").length > 0) { | |
$("ul.nav-tabs li.active a.sectionItem").html(x.get("Name")) | |
} | |
$(".candidate-header").parent().parent().trigger("renderdata"); | |
w.trigger("modalsave"); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function (y, x) { | |
if (x.responseText.indexOf("School Name Other or Sending School has to be unique per school year.") > -1) { | |
Bb.Validation.callbacks.invalid(w, "TransferSchool.TransferSchoolId", m.Admissions.UniqueSchool, "id"); | |
Bb.Validation.callbacks.invalid(w, "SchoolNameOther", m.Admissions.UniqueSchool, "id") | |
} | |
w.$(".save").button("reset") | |
} | |
}) | |
} else { | |
w.$(".save").button("reset") | |
} | |
}, | |
deleteModel: function (y) { | |
y.preventDefault(); | |
y.stopPropagation(); | |
var A = this, | |
v, w, u, z, x; | |
A.Containers = {}; | |
A.Containers.Form = A.$("#modal-form"); | |
A.Containers.Confirm = A.$("#modal-confirm"); | |
A.Containers.Confirm.hide(); | |
v = function () { | |
var B = { | |
applicationFormId: A.model.get("ApplicationFormId"), | |
deleteSectionItems: true | |
}; | |
A.model.destroy({ | |
dataParam: B, | |
success: function () { | |
if ($("#blocks .blocks-holder").length > 0) { | |
$("#blocks .blocks-holder").trigger("refreshlibrary") | |
} | |
}, | |
error: function () { | |
p3.displayError("Error deleting section.") | |
} | |
}); | |
p3.Layout.Containers.Modal.modal("hide") | |
}; | |
w = function () { | |
A.model.destroy({ | |
dataParam: { | |
prospectInstanceId: A.model.get("ProspectInstanceId") | |
}, | |
error: function () { | |
p3.displayError("Error deleting mail merge.") | |
} | |
}); | |
p3.Layout.Containers.Modal.modal("hide") | |
}; | |
u = function () { | |
A.Containers.Confirm.fadeOut("fast", function () { | |
A.Containers.Form.fadeIn("fast") | |
}) | |
}; | |
if (A.model.get("FieldBlockItem")) { | |
z = A.model.get("FieldBlockItem").Name; | |
x = new a.Vs.Confirm({ | |
ConfirmationTitle: "Remove Block", | |
ConfirmationText: "Wait a minute. Are you really sure you want to remove the " + z + " block from this section?", | |
ConfirmCallback: v, | |
CancelCallback: u, | |
KeepOpen: true | |
}) | |
} else { | |
if (_.isObject(A.model.get("MailMergeJob"))) { | |
z = A.model.get("Subject"); | |
x = new a.Vs.Confirm({ | |
ConfirmationTitle: "Delete Mail Merge", | |
ConfirmationText: "Are you sure you want to delete this mail merge " + z + "? This cannot be undone.", | |
ConfirmCallback: w, | |
CancelCallback: u, | |
KeepOpen: true | |
}) | |
} else { | |
z = A.model.get("FormType") == j.FormType.CONTRACT.Value ? A.options.formModel.get("SchoolYear") + " " + A.options.formModel.get("ContractTypeName") + " " + A.model.get("FormTypeName") : A.model.get("FormTypeName") + " Form"; | |
x = new a.Vs.Confirm({ | |
ConfirmationTitle: "Delete Section", | |
ConfirmationText: "Are you sure you want to delete this section and all the blocks and elements within it from the " + z + "? This cannot be undone.", | |
ConfirmCallback: v, | |
CancelCallback: u, | |
KeepOpen: true | |
}) | |
} | |
} | |
x.on("render", function () { | |
A.Containers.Form.fadeOut("fast", function () { | |
A.Containers.Confirm.fadeIn("fast") | |
}) | |
}); | |
p3.rV(x, A.Containers.Confirm, true) | |
}, | |
recursiveFunction: function (E, w, x, z) { | |
var F = this, | |
D = E, | |
A = w, | |
B = x, | |
C = z, | |
y, u, v; | |
if (_.isObject(D) && !_.isArray(D)) { | |
D.FieldsToNull = []; | |
if (C != "") { | |
y = C + A + "." | |
} else { | |
y = A + "." | |
} | |
_.each(D, function (I, G, H) { | |
F.recursiveFunction(I, G, H, y) | |
}) | |
} else { | |
u = F.getPropByString(F.model.attributes, C + A); | |
v = F.getPropByString(F.model.defaults, C + A); | |
if (((D === "") || (D === null)) && (u != v)) { | |
B.FieldsToNull.push(A) | |
} | |
} | |
}, | |
getPropByString: function (w, z) { | |
if (!z) { | |
return w | |
} | |
var x, y = z.split("."), | |
u, v; | |
for (u = 0, v = y.length - 1; u < v; u++) { | |
x = y[u]; | |
if (typeof w === "object" && w !== null && w.hasOwnProperty(x)) { | |
w = w[x] | |
} else { | |
break | |
} | |
} | |
return w[y[u]] | |
}, | |
setPropByString: function (w, z, A) { | |
if (!z) { | |
return w | |
} | |
var x, y = z.split("."), | |
u, v; | |
for (u = 0, v = y.length - 1; u < v; u++) { | |
x = y[u]; | |
if (typeof w === "object" && w !== null && w.hasOwnProperty(x)) { | |
w = w[x] | |
} else { | |
break | |
} | |
} | |
w[y[u]] = A | |
}, | |
setFocus: function () { | |
$("form :input[type=text],[type=password],[type=button],[type=checkbox],[type=radio],:input[type=submit]:visible:enabled,select").filter(":first").focus() | |
} | |
}); | |
c.Us.RenderMainPage = function () { | |
c.Data.pidCollection.fetch({ | |
cache: false, | |
reset: true, | |
data: { | |
userId: c.Data.userId, | |
alwaysReturn: true | |
}, | |
success: function (u, v) { | |
c.Data.instanceId = u.models[c.Data.modelIndex].get("ProspectInstanceId"); | |
c.Data.enteringYear = u.models[c.Data.modelIndex].get("EnteringYear"); | |
c.Data.enteringGrade = u.models[c.Data.modelIndex].get("EnteringGrade"); | |
c.Data.checklistId = u.models[c.Data.modelIndex].get("ChecklistId"); | |
if ((!c.Data.instanceId) && (c.Data.page === "record" || c.Data.page === "checklist" || c.Data.page === "connections")) { | |
c.Data.page = "schools"; | |
p3.router().navigate("candidate/" + c.Data.userId + "/" + c.Data.page, false) | |
} | |
p3.renderMainPage(new c.Vs.Layout({ | |
userId: c.Data.userId, | |
page: c.Data.page | |
})) | |
} | |
}) | |
}; | |
p3.router().route("candidate/:id/:page", "candidate", function (u, v) { | |
c.Data.userId = u; | |
c.Data.page = v; | |
c.Data.instanceId = null; | |
c.Data.pidCollection = new c.Cs.ProspectInstanceIds(); | |
if (p3.getSessionState(p3.Data.Context.attributes.UserInfo.UserId + "_" + c.Data.userId)) { | |
c.Data.modelIndex = p3.getSessionState(p3.Data.Context.attributes.UserInfo.UserId + "_" + c.Data.userId) | |
} else { | |
c.Data.modelIndex = 0 | |
} | |
c.Us.RenderMainPage() | |
}) | |
}(p3.module("admissions/managecandidates"))); | |
(function (OfficialNotes) { | |
var Task = p3.module("shared/task"), | |
InfoMessage = p3.module("utilities/infomessage"); | |
OfficialNotes.Ms.OfficialNoteTemplateEdit = Bbm.extend({ | |
idAttribute: "TemplateId", | |
urlRoot: "OfficialNoteTemplate/edit", | |
validation: { | |
Description: [{ | |
required: true, | |
msg: p3.Us.InfoMessageLibrary.P3.RequiredInfoNotEntered | |
}] | |
} | |
}); | |
OfficialNotes.Ms.Type = Bbm.extend({ | |
idAttribute: "OfficialNoteTypeId", | |
urlRoot: "officialnotetype/edit/", | |
validation: { | |
OfficialNoteDescription: [{ | |
required: true, | |
msg: p3.Us.InfoMessageLibrary.P3.RequiredInfoNotEntered | |
}], | |
validateAccess: [{ | |
fn: function (value, attr, computedState) { | |
var list = eval(value); | |
if (_.find(list, function (item) { | |
return item.email && !item.required && !item.display | |
})) { | |
return 'Either "Display" or "Required" must be selected when "E-Mail" is selected.' | |
} | |
} | |
}] | |
} | |
}); | |
OfficialNotes.Ms.MonitorTeam = Bbm.extend({ | |
idAttribute: "MonitorTeamId", | |
urlRoot: "monitorteam/edit/", | |
validation: { | |
ShortDescription: [{ | |
required: true, | |
msg: p3.Us.InfoMessageLibrary.P3.RequiredInfoNotEntered | |
}] | |
} | |
}); | |
OfficialNotes.Ms.MonitorTeamMemberDelete = Bbm.extend({ | |
idAttribute: "MemberId", | |
url: "monitorteammember/memberdelete/" | |
}); | |
OfficialNotes.Ms.AdmissionOptions = Bbm.extend({ | |
idAttribute: "SchoolId", | |
url: function () { | |
return this.id ? aP + "admissions/AdmissionOptions/" + this.id + "/" : aP + "admissions/AdmissionOptions/" | |
} | |
}); | |
OfficialNotes.Cs.OfficialNotesPlaceholderGet = Bbc.extend({ | |
url: "DataDirect/OfficialNotesPlaceholderGet/" | |
}); | |
OfficialNotes.Cs.AccessGroupList = Bbc.extend({ | |
url: "datadirect/OfficialNoteAccessGroupList/" | |
}); | |
OfficialNotes.Cs.TemplateList = Bbc.extend({ | |
model: OfficialNotes.Ms.OfficialNoteTemplateEdit, | |
url: "OfficialNoteTemplate/List/" | |
}); | |
OfficialNotes.Cs.TypeList = Bbc.extend({ | |
model: OfficialNotes.Ms.Type, | |
url: "officialnotetype/list/", | |
comparator: function (item) { | |
return item.get("Inactive") + item.get("ShortDescription") | |
} | |
}); | |
OfficialNotes.Cs.UsersGet = Bbc.extend({ | |
url: "DataDirect/UsersGet/" | |
}); | |
OfficialNotes.Cs.MonitorTeamList = Bbc.extend({ | |
model: OfficialNotes.Ms.MonitorTeam, | |
url: "monitorteam/monitorteamlist/", | |
comparator: function (item) { | |
return (1000 + (item.get("SortOrder") || 0)) + item.get("MonitorTeamDescription") | |
} | |
}); | |
OfficialNotes.Cs.MonitoringCommentTypeGet = Bbc.extend({ | |
url: "DataDirect/MonitoringCommentTypeGet/" | |
}); | |
OfficialNotes.Cs.MonitoringMemberGet = Bbc.extend({ | |
url: "DataDirect/MonitoringMemberGet/" | |
}); | |
OfficialNotes.Vs.Layout = Bb.View.extend({ | |
template: "officialnote/officialnote.sky.layout.template.html", | |
initialize: function (options) { | |
options.settings = new Bbm() | |
}, | |
render: function (container) { | |
p3.setTitle("Official Notes"); | |
var view = this; | |
p3.fT(view.template, function (tmpl) { | |
view.$el.html(tmpl({})); | |
view.Containers = { | |
Header: view.$("#header"), | |
LeftColumn: view.$(".col-left"), | |
RightColumn: view.$(".col-right") | |
}; | |
view.Containers.Header.addClass("subhead").html($('<H1 class="was-jmbtrn">').html("Official Notes")); | |
p3.rV(new OfficialNotes.Vs.Templates(view.options), view.$("#first-left-tile"), true); | |
p3.rV(new OfficialNotes.Vs.Types(view.options), view.$("#additional-left-tiles"), false); | |
p3.rV(new OfficialNotes.Vs.DeleteOfficialNotes(), view.$("#delete-official-notes"), false); | |
p3.rV(new OfficialNotes.Vs.Monitors(view.options), view.Containers.RightColumn, false) | |
}); | |
this.$el.appendTo(container) | |
}, | |
dispose: function () { | |
this.options.settings.off() | |
} | |
}); | |
OfficialNotes.Vs.Templates = Bb.View.extend({ | |
template: "OfficialNote/officialnote.settings.tile.template.html", | |
className: "bottom-spaced", | |
events: { | |
'click button[data-action="add-template"]': "addTemplate" | |
}, | |
initialize: function (options) { | |
this.collection = new OfficialNotes.Cs.TemplateList().on("add", this.renderTemplateRow, this).on("destroy", this.deleteRow, this); | |
this.syncTemplate(this.model, null, {}) | |
}, | |
render: function (container) { | |
var view = this; | |
p3.fT(view.template, function (tmpl) { | |
view.$el.appendTo(container); | |
view.$el.html(tmpl({ | |
tileHeader: "Templates", | |
listName: "template-list", | |
dataAction: "add-template", | |
buttonText: " Add Template", | |
emptyId: "no-templates", | |
emptyMessage: "No Official Note Templates" | |
})); | |
view.Containers = { | |
Tbody: view.$("tbody") | |
} | |
}) | |
}, | |
renderTemplateRow: function (model) { | |
var view = this; | |
if (view.collection.indexOf(model) == 0) { | |
view.$("#no-templates").hide() | |
} | |
p3.rV(new OfficialNotes.Vs.TemplateRow({ | |
model: model.on("sync", view.syncTemplate, view) | |
}), view.Containers.Tbody, false) | |
}, | |
syncTemplate: function (model, response, options) { | |
var view = this; | |
if (!options.silent) { | |
if (options.isSave) { | |
this.clearTemplate(); | |
this.collection.fetch({ | |
update: true, | |
success: function (collection) { | |
if (view.$el.find("tbody tr").length == 0) { | |
collection.each(function (model) { | |
view.renderTemplateRow(model) | |
}) | |
} | |
} | |
}) | |
} else { | |
this.collection.fetch({ | |
update: true | |
}) | |
} | |
if (options.addAnother) { | |
this.addTemplate() | |
} | |
} | |
}, | |
addTemplate: function () { | |
p3.rV(new OfficialNotes.Vs.TemplateModal({ | |
model: new OfficialNotes.Ms.OfficialNoteTemplateEdit().once("sync", this.syncTemplate, this) | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
clearTemplate: function () { | |
this.Containers.Tbody.empty() | |
}, | |
deleteRow: function (model) { | |
if (this.collection.length == 0) { | |
this.$("#no-templates").show() | |
} | |
}, | |
dispose: function () { | |
this.collection.off("add") | |
} | |
}); | |
OfficialNotes.Vs.TemplateRow = Bb.View.extend({ | |
tagName: "TR", | |
events: { | |
'click button[data-action="edit"]': "editItem", | |
'click button[data-action="delete"]': "deleteItem" | |
}, | |
render: function (container) { | |
this.$el.appendTo(container).append($("<td>", { | |
"class": "span10 col-md-10" | |
}).html(this.model.get("Description")), $("<td>", { | |
"class": "span12 col-md-12" | |
}).append($("<div>", { | |
"class": "btn-group-spaced pull-right" | |
}).append($("<button>", { | |
"class": "btn btn-default btn-sm", | |
"data-action": "edit" | |
}).html($("<i>", { | |
"class": "fa fa-pencil" | |
})), $("<button>", { | |
"class": "btn btn-default btn-sm", | |
"data-action": "delete" | |
}).html($("<i>", { | |
"class": "fa fa-trash" | |
}))))) | |
}, | |
editItem: function () { | |
this.model.fetch({ | |
silent: true, | |
success: function (model) { | |
p3.rV(new OfficialNotes.Vs.TemplateModal({ | |
model: model | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}) | |
}, | |
deleteItem: function (event) { | |
var view = this; | |
p3.showConfirm("Delete Template", "Are you sure you want to remove this template?", null, function () { | |
view.model.destroy({ | |
silent: true, | |
success: function () { | |
view.remove(); | |
p3.displaySiteMessage("Template deleted successfully.", "alert-success") | |
}, | |
destroySport: true, | |
error: function () { | |
p3.displayError("Error deleting template.") | |
} | |
}) | |
}) | |
} | |
}); | |
OfficialNotes.Vs.TemplateModal = Bb.View.extend({ | |
template: "OfficialNote/officialnote.template.modal.html", | |
events: { | |
initPlugin: "initPlugin", | |
"click .placeholder": "addPlaceHolder", | |
"click .toggle-placeholders": "slideContent", | |
'click button[data-action="another"]': "save", | |
'click button[data-action="save"]': "save" | |
}, | |
initialize: function (options) { | |
this.options.placeHolders = new OfficialNotes.Cs.OfficialNotesPlaceholderGet().on("reset", this.renderTemplate, this); | |
this.model.on("validated:invalid", this.invalidModel, this); | |
Bb.Validation.bind(this) | |
}, | |
dispose: function () { | |
this.options.placeHolders.off("reset"); | |
this.model.off("validated:invalid"); | |
var ed = tinyMCE.get("editor"); | |
if (ed) { | |
ed.remove() | |
} | |
}, | |
render: function (container) { | |
$(container).append(this.el); | |
this.fetchPlaceHolders() | |
}, | |
renderTemplate: function (collection) { | |
var view = this; | |
p3.fT(view.template, function (tmpl) { | |
view.$el.html(tmpl({ | |
placeholders: collection.toJSON(), | |
model: view.model.toJSON() | |
})); | |
view.$(".required-indicator").tooltip(); | |
p3.showModal(p3.Layout.Containers.Modal); | |
view.$el.trigger("initPlugin") | |
}) | |
}, | |
invalidModel: function () { | |
this.$(".modal-footer BUTTON").button("reset") | |
}, | |
initPlugin: function () { | |
p3.showHtmlEditor("editor", p3.Us.Enum.HtmlEditorCategories.FULL, false, function () { | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, p3.Us.Enum.HtmlEditorEncoding.NUMERIC) | |
}, | |
addPlaceHolder: function (e) { | |
tinyMCE.execCommand("mceReplaceContent", false, "[" + $(e.target).html() + "]"); | |
return false | |
}, | |
fetchPlaceHolders: function () { | |
this.options.placeHolders.fetch({ | |
data: { | |
categoryId: 34 | |
} | |
}, { | |
error: function () { | |
p3.displayError("Error loading placeholders") | |
} | |
}) | |
}, | |
slideContent: function (event) { | |
var $slideContent = $(event.target).closest("div .toggle-placeholders").next("div.data-box"), | |
$icon = $(event.target).closest("div").find("i"), | |
isOpenClass = "fa fa-chevron-up", | |
isClosedClass = "fa fa-chevron-down"; | |
if ($slideContent.is(":visible")) { | |
$icon.attr("class", isClosedClass) | |
} else { | |
$icon.attr("class", isOpenClass) | |
} | |
$slideContent.slideToggle(200, function () { | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
save: function (e) { | |
var view = this, | |
edit = false, | |
$btnClicked = $(e.target), | |
templatetxt = tinyMCE.activeEditor.getContent(), | |
checkText, placeHolders; | |
if (view.model.get("TemplateId") > 0) { | |
edit = true | |
} | |
$btnClicked.button("loading"); | |
checkText = templatetxt.replace(new RegExp('(<span style="white-space: pre;">)', "g"), ""); | |
checkText = checkText.replace(new RegExp("(</span>)", "g"), ""); | |
checkText = checkText.replace(new RegExp("(<br />)", "g"), ""); | |
checkText = checkText.replace(new RegExp("( )", "g"), ""); | |
checkText = checkText.replace(new RegExp("(<div>)", "g"), ""); | |
checkText = checkText.replace(new RegExp("(</div>)", "g"), ""); | |
checkText = checkText.replace(/( )*/g, ""); | |
checkText = checkText.replace(/\s/g, ""); | |
placeHolders = OfficialNotes.Us.GetPlaceholders(templatetxt, view.options.placeHolders); | |
view.model.save({ | |
Description: view.$("#Description").val(), | |
TemplateType: 0, | |
TemplateStyle: 1, | |
Status: 0, | |
Body: (checkText != "") ? templatetxt : "", | |
SchoolLogo: 0, | |
SchoolWatermark: 0, | |
AppCategoryId: 34, | |
PlaceHolders: (placeHolders.length > 0) ? placeHolders : null, | |
TemplateMode: 2, | |
NewTemplateId: 0, | |
SubjectLine: view.$("#SubjectLine").val() | |
}, { | |
validate: true, | |
isSave: edit ? true : false, | |
addAnother: ($btnClicked.attr("data-action") === "another") ? true : false, | |
success: function () { | |
p3.showModal(p3.Layout.Containers.Modal, "hide"); | |
p3.displaySiteMessage("Your template has been saved.", "alert-success") | |
}, | |
error: function () { | |
p3.displayError("Error saving template") | |
} | |
}) | |
} | |
}); | |
OfficialNotes.Vs.Types = Bb.View.extend({ | |
template: "OfficialNote/officialnote.settings.tile.template.html", | |
className: "bottom-spaced", | |
events: { | |
'click button[data-action="add"]': "addType" | |
}, | |
initialize: function (options) { | |
options.settings.on("change:refreshTypes", this.fetchCollection, this); | |
this.collection = new OfficialNotes.Cs.TypeList().on("add", this.renderTypeRow, this).on("destroy", this.deleteRow, this) | |
}, | |
render: function (container) { | |
var view = this; | |
p3.fT(view.template, function (tmpl) { | |
view.$el.appendTo(container); | |
view.$el.html(tmpl({ | |
tileHeader: "Note Types", | |
listName: "type-list", | |
dataAction: "add", | |
buttonText: " Add Type", | |
emptyId: "no-types", | |
emptyMessage: "No Official Note Types" | |
})); | |
view.Containers = { | |
Tbody: view.$("tbody") | |
}; | |
view.fetchCollection(view.options.settings, null, {}) | |
}) | |
}, | |
renderTypeRow: function (model, response, options) { | |
if (this.collection.indexOf(model) == 0) { | |
this.$("#no-types").hide() | |
} | |
p3.rV(new OfficialNotes.Vs.TypesRow({ | |
model: model | |
}), this.Containers.Tbody, false) | |
}, | |
addType: function (event) { | |
p3.rV(new OfficialNotes.Vs.TypeModal({ | |
model: new OfficialNotes.Ms.Type().once("sync", this.fetchCollection, this) | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
fetchCollection: function (model, response, options) { | |
this.collection.fetch({ | |
data: { | |
categoryId: 34 | |
}, | |
update: true, | |
refreshTypes: model.get("refreshTypes") | |
}); | |
model.unset("refreshTypes", { | |
silent: true | |
}); | |
if (options.addAnother) { | |
this.addType() | |
} | |
}, | |
deleteRow: function (model) { | |
if (this.collection.length === 0) { | |
this.$("#no-types").show() | |
} | |
}, | |
dispose: function () { | |
this.collection.off() | |
} | |
}); | |
OfficialNotes.Vs.TypesRow = Bb.View.extend({ | |
tagName: "TR", | |
initialize: function (options) { | |
this.model.on("change", this.changeType, this).on("sync", this.syncType, this).on("remove", this.removeType, this) | |
}, | |
events: { | |
'click [data-action="edit"]': "editType", | |
'click [data-action="delete"]': "deleteType" | |
}, | |
render: function (container) { | |
var index = this.model.collection.indexOf(this.model), | |
children = $(container).children(); | |
if (index < children.length) { | |
children.eq(index).after(this.el) | |
} else { | |
container.append(this.el) | |
} | |
this.$el.append($("<td>", { | |
"class": "col-md-8" | |
}).html(this.model.get("ShortDescription")), $("<td>", { | |
"class": "col-md-4" | |
}).append($("<div>", { | |
"class": "btn-group-spaced pull-right" | |
}).append($("<a>", { | |
"class": "btn btn-default bb-btn-secondary btn-xs", | |
"data-action": "notifications", | |
href: Task.Us.getUrlById(52859, "cid=18&cv=" + this.model.get("OfficialNoteTypeId") + "&aid=9&btnc=1&tid=-1&st=-1&clid=20&ct=" + this.model.get("ShortDescription")) | |
}).html("E-mail Notifications"), $("<button>", { | |
"class": "btn btn-default bb-btn-secondary btn-xs", | |
"data-action": "edit" | |
}).html($("<i>", { | |
"class": "fa fa-pencil" | |
})), (this.model.get("CanDelete")) ? $("<button>", { | |
"class": "btn btn-default bb-btn-secondary btn-xs", | |
"data-action": "delete" | |
}).html($("<i>", { | |
"class": "fa fa-trash" | |
})) : $("<button>", { | |
"class": "btn btn-default bb-btn-secondary btn-xs" | |
}).html($("<i>", { | |
"class": "fa fa-lock" | |
}))))) | |
}, | |
editType: function (event) { | |
this.model.fetch({ | |
success: function (model) { | |
p3.rV(new OfficialNotes.Vs.TypeModal({ | |
model: model | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}) | |
}, | |
deleteType: function (event) { | |
var view = this; | |
p3.showConfirm("Delete Official Note Type", "Are you sure you want to remove this official note type?", null, function () { | |
view.model.destroy({ | |
wait: true, | |
success: function () { | |
view.remove(); | |
p3.displaySiteMessage("Official note type deleted successfully.", "alert-success") | |
} | |
}) | |
}) | |
}, | |
changeType: function (model, resposne, options) { | |
if (resposne.refreshTypes) { | |
this.syncType(model, {}, { | |
isSave: true | |
}) | |
} | |
}, | |
syncType: function (model, resposne, options) { | |
var collection; | |
if (options.isSave) { | |
if (model.hasChanged("ShortDescription") || model.hasChanged("Inactive") || model.hasChanged("CanDelete")) { | |
if (model.get("Inactive")) { | |
model.set({ | |
ShortDescription: model.get("ShortDescription") + " (Inactive)" | |
}, { | |
silent: true | |
}) | |
} | |
collection = model.collection; | |
collection.remove(model); | |
collection.add(model) | |
} | |
} else { | |
model.set({ | |
CanDelete: model.previousAttributes().CanDelete | |
}, { | |
silent: true | |
}) | |
} | |
}, | |
removeType: function (model) { | |
this.remove(); | |
this.dispose() | |
}, | |
dispose: function () { | |
this.model.off() | |
} | |
}); | |
OfficialNotes.Vs.TypeModal = Bb.View.extend({ | |
template: "officialnote/officialnote.type.modal.template.html", | |
events: { | |
'click button[data-action="save"]': "saveType", | |
'click button[data-action="another"]': "saveType", | |
'click button[data-action="access"].active': "accessOff", | |
'click button[data-action="access"]:not(.active)': "accessOn", | |
'click button[data-action="template"].active': "templateOff", | |
'click button[data-action="template"]:not(.active)': "templateOn" | |
}, | |
initialize: function (options) { | |
Bb.Validation.bind(this); | |
this.model.bind("validated:invalid", this.invalidModel, this); | |
this.saveAccess = new Bbc(this.model.get("AccessGroupList")); | |
this.saveTemplate = new Bbc(this.model.get("Templates")); | |
this.listAccess = new OfficialNotes.Cs.AccessGroupList().on("reset", this.renderTemplate, this); | |
this.listTemplate = new OfficialNotes.Cs.TemplateList().on("reset", this.renderTemplate, this); | |
this.listAccess.fetch({ | |
data: { | |
categoryId: 34 | |
}, | |
success: function (collection) { | |
collection.isLoaded = true | |
} | |
}); | |
this.listTemplate.fetch({ | |
success: function (collection) { | |
collection.isLoaded = true | |
} | |
}) | |
}, | |
render: function (container) { | |
$(container).append(this.el) | |
}, | |
renderTemplate: function (collection) { | |
if (this.listAccess.isLoaded || this.listTemplate.isLoaded) { | |
this.saveTemplate.each(function (template) { | |
_.each(this.listTemplate.where({ | |
TemplateId: template.get("id") | |
}), function (item) { | |
item.set({ | |
Selected: true | |
}, { | |
silent: true | |
}) | |
}) | |
}, this); | |
this.saveAccess.each(function (access) { | |
_.each(this.listAccess.where({ | |
AccessGroupId: access.get("id") | |
}), function (item) { | |
item.set({ | |
Display: access.get("display"), | |
Required: access.get("required"), | |
Email: access.get("email") | |
}, { | |
silent: true | |
}) | |
}) | |
}, this); | |
var view = this; | |
p3.fT(view.template, function (tmpl) { | |
view.$el.html(tmpl({ | |
model: view.model.toJSON(), | |
access: view.listAccess.toJSON(), | |
template: view.listTemplate.toJSON() | |
})); | |
view.$el.find(".required-indicator").tooltip(); | |
p3.showModal(p3.Layout.Containers.Modal); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
} | |
}, | |
saveType: function (event) { | |
this.model.save({ | |
CategoryId: 34, | |
ShortDescription: this.$('[name="ShortDescription"]').val(), | |
Inactive: (this.$('[name="Inactive"] > .active').attr("data-value") == 1) ? true : false, | |
validateAccess: JSON.stringify(this.saveAccess), | |
AccessGroupList: this.saveAccess, | |
Templates: this.saveTemplate | |
}, { | |
wait: true, | |
isSave: true, | |
addAnother: ($(event.currentTarget).attr("data-action") === "another") ? true : false, | |
success: function (model, response) { | |
p3.showModal(p3.Layout.Containers.Modal, "hide") | |
} | |
}) | |
}, | |
accessOff: function (event) { | |
var button = $(event.currentTarget); | |
this.saveAccess.find(function (item) { | |
return item.get("id") == button.val() | |
}).set(button.attr("data-access-value"), false) | |
}, | |
accessOn: function (event) { | |
var button = $(event.currentTarget), | |
model = { | |
id: button.val() | |
}; | |
model[button.attr("data-access-value")] = true; | |
this.saveAccess.update(model, { | |
remove: false | |
}) | |
}, | |
templateOff: function (event) { | |
this.saveTemplate.remove(this.saveTemplate.get($(event.currentTarget).val())) | |
}, | |
templateOn: function (event) { | |
this.saveTemplate.add({ | |
id: $(event.currentTarget).val() | |
}) | |
}, | |
invalidModel: function (model, error) { | |
this.$("#infomessage-error").remove(); | |
if (error.validateAccess) { | |
InfoMessage.ErrorBox(error.validateAccess, ".modal-body", false); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
}, | |
dispose: function () { | |
this.listAccess.off(); | |
this.listTemplate.off(); | |
Bb.Validation.unbind(this) | |
} | |
}); | |
OfficialNotes.Vs.DeleteOfficialNotes = Bb.View.extend({ | |
template: "officialnote/officialnote.adm.deleteofficialnotes.html", | |
events: { | |
"click .checkbox-sky-input": "updateModel" | |
}, | |
initialize: function () { | |
var view = this; | |
view.model = new OfficialNotes.Ms.AdmissionOptions({ | |
SchoolId: p3.Data.SchoolContext.attributes.SchoolInfo.SchoolId | |
}) | |
}, | |
render: function (container) { | |
var view = this; | |
$(container).html(view.el); | |
view.renderData() | |
}, | |
renderData: function () { | |
var view = this; | |
p3.fT(view.template, function (tmpl) { | |
view.model.fetch({ | |
cache: false, | |
success: function (model, response) { | |
view.$el.html(tmpl({ | |
model: view.model.toJSON() | |
})) | |
}, | |
error: function (model, response, options) { | |
p3.displayError("Error loading admissions options") | |
} | |
}) | |
}) | |
}, | |
updateModel: function (event) { | |
var view = this, | |
$thisTarget = $(event.currentTarget), | |
thisSelector = $thisTarget.children("input").attr("name"), | |
thisValue = $thisTarget.children("input").is(":checked") ? true : false, | |
data = {}; | |
data[thisSelector] = thisValue; | |
view.model.set(data); | |
view.model.save() | |
} | |
}); | |
OfficialNotes.Vs.Monitors = Bb.View.extend({ | |
className: function () { | |
var className = ""; | |
return className | |
}, | |
attributes: { | |
style: "padding:20px;" | |
}, | |
events: { | |
'click button[data-action="add-new"]': "addNew" | |
}, | |
initialize: function (options) { | |
this.Containers = { | |
TeamList: $("<div>") | |
}; | |
this.model = new OfficialNotes.Ms.MonitorTeam().on("sync", this.syncMonitorTeam, this); | |
this.collection = new OfficialNotes.Cs.MonitorTeamList().on("add", this.addMonitorTeam, this).on("sync", this.syncMonitorTeam, this).on("destroy", this.deleteTeam, this); | |
this.fetchCollection() | |
}, | |
render: function (container) { | |
var view = this; | |
view.$el.appendTo(container).append(view.Containers.TeamList); | |
view.$el.css("padding", "0px"); | |
$("#add-team-button").bind("click", function (e) { | |
view.addNew(e) | |
}) | |
}, | |
addNew: function () { | |
p3.rV(new OfficialNotes.Vs.MonitorTeamModal({ | |
model: this.model | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
addMonitorTeam: function (model) { | |
p3.rV(new OfficialNotes.Vs.MonitorTeam({ | |
model: model | |
}), this.Containers.TeamList, false) | |
}, | |
deleteTeam: function () { | |
this.options.settings.set("refreshTypes", true) | |
}, | |
fetchCollection: function () { | |
this.collection.fetch({ | |
data: { | |
categoryId: 34 | |
}, | |
update: true | |
}) | |
}, | |
syncMonitorTeam: function (model, response, options) { | |
if (options.fetch) { | |
this.fetchCollection(); | |
this.options.settings.set("refreshTypes", true) | |
} | |
if (options.addAnother) { | |
this.addNew() | |
} | |
}, | |
dispose: function () { | |
this.model.off(); | |
this.collection.off() | |
} | |
}); | |
OfficialNotes.Vs.MonitorTeam = Bb.View.extend({ | |
attributes: { | |
style: "margin-top:10px;" | |
}, | |
events: { | |
'click [data-action="delete"]': "deleteTeam", | |
'click [data-action="edit"]': "editTeam" | |
}, | |
initialize: function (options) { | |
this.Containers = { | |
Tbody: $("<tbody>") | |
}; | |
this.model.on("change", this.changeTeam, this).on("remove", this.removeTeam, this); | |
this.collection = new Bbc([], { | |
model: OfficialNotes.Ms.MonitorTeamMemberDelete | |
}).on("add", this.addMember, this); | |
this.collection.update(this.model.get("TeamMemberList")) | |
}, | |
render: function (container) { | |
var index = this.model.collection.indexOf(this.model), | |
children = $(container).children(); | |
if (index < children.length) { | |
children.eq(index).before(this.el) | |
} else { | |
container.append(this.el) | |
} | |
this.$el.append($("<div>").append($("<div>", { | |
"class": "btn-group-spaced pull-right", | |
style: "margin:0px 5px 5px 0px;" | |
}).append($("<button>", { | |
type: "button", | |
"class": "btn btn-default btn-sm", | |
"data-action": "edit" | |
}).html($("<i>", { | |
"class": "fa fa-pencil", | |
style: "margin:0px" | |
})), $("<button>", { | |
type: "button", | |
"class": "btn btn-default btn-sm", | |
"data-action": "delete" | |
}).html($("<i>", { | |
"class": "fa fa-trash", | |
style: "margin:0px" | |
}))), $("<h4>", { | |
style: "margin: 6px 5px;" | |
}).html(this.model.get("MonitorTeamDescription"))), $("<table>", { | |
"class": "table table-striped table-condensed" | |
}).append(this.Containers.Tbody)) | |
}, | |
addMember: function (model) { | |
p3.rV(new OfficialNotes.Vs.MonitorTeamMember({ | |
model: model | |
}), this.Containers.Tbody, false) | |
}, | |
deleteTeam: function (event) { | |
var view = this; | |
p3.showConfirm("Delete Monitoring Team", "Are you sure you want to remove this team?", null, function () { | |
view.model.destroy({ | |
wait: true, | |
success: function (model, response, options) { | |
p3.displaySiteMessage("Monitoring Team deleted successfully.", "alert-success") | |
}, | |
error: function () { | |
p3.displayError("Error deleting Monitoring Team") | |
} | |
}) | |
}) | |
}, | |
editTeam: function () { | |
p3.rV(new OfficialNotes.Vs.MonitorTeamModal({ | |
model: this.model | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
changeTeam: function (model, response, options) { | |
if (response.update) { | |
model.collection.remove(model).add(model) | |
} | |
}, | |
removeTeam: function () { | |
this.remove() | |
}, | |
dispose: function () { | |
this.collection.off() | |
} | |
}); | |
OfficialNotes.Vs.MonitorTeamMember = Bb.View.extend({ | |
tagName: "TR", | |
events: { | |
'click [data-action="delete-member"]': "deleteMember" | |
}, | |
initialize: function (options) { | |
this.model.on("remove", this.removeMember, this) | |
}, | |
render: function (container) { | |
this.$el.appendTo(container).append($("<TD>").html(this.model.get("MemberName")), $("<TD>").append($("<button>", { | |
type: "button", | |
"class": "btn btn-default btn-sm pull-right", | |
"data-action": "delete-member" | |
}).html($("<i>", { | |
"class": "fa fa-trash", | |
style: "margin:0px" | |
})))) | |
}, | |
deleteMember: function (event) { | |
var view = this; | |
p3.showConfirm("Delete Monitoring Team Member", "Are you sure you want to remove this team member?", null, function () { | |
view.model.save({}, { | |
wait: true, | |
success: function (model, response, options) { | |
p3.displaySiteMessage("Monitoring Team Member deleted successfully.", "alert-success"); | |
model.collection.remove(model) | |
}, | |
error: function () { | |
p3.displayError("Error deleting Monitoring Team Member") | |
} | |
}) | |
}) | |
}, | |
removeMember: function (model) { | |
this.remove() | |
}, | |
dispose: function () { | |
this.model.off() | |
} | |
}); | |
OfficialNotes.Vs.MonitorTeamModal = Bb.View.extend({ | |
template: "OfficialNote/officialnote.monitoring.team.modal.html", | |
events: { | |
'click button[data-action="select-all"]': "selectAllBtn", | |
"click .type-list-item": "handleTypeListItem", | |
'click button[data-action="another"]': "save", | |
'click button[data-action="save"]': "save" | |
}, | |
initialize: function (options) { | |
this.options.typeList = new OfficialNotes.Cs.TypeList(); | |
this.options.membersList = new Bbc(); | |
Bb.Validation.bind(this); | |
this.model.bind("validated:invalid", this.invalidModel, this) | |
}, | |
render: function (container) { | |
$(container).append(this.el); | |
var view = this; | |
p3.fT(view.template, function (tmpl) { | |
view.$el.html(tmpl({ | |
model: view.model.toJSON() | |
})); | |
view.Containers = { | |
TypeTbody: view.$el.find(".type-list tbody:last"), | |
MemberTbody: view.$el.find(".member-list tbody:last") | |
}; | |
view.$(".required-indicator").tooltip(); | |
view.fetchTypeCollection(); | |
if (view.model.get("MonitorTeamId") > 0) { | |
new OfficialNotes.Cs.MonitoringMemberGet().fetch({ | |
data: { | |
monitorTeamId: view.model.get("MonitorTeamId") | |
}, | |
success: function (collection) { | |
collection.each(function (model) { | |
view.options.membersList.add(new Bbm({ | |
Id: model.get("MemberUserId"), | |
Name: model.get("MemberName") | |
})); | |
model.set({ | |
id: model.get("MemberUserId"), | |
name: model.get("MemberName") | |
}); | |
p3.rV(new OfficialNotes.Vs.MonitoringTeamMember({ | |
model: model.toJSON(), | |
membersList: view.options.membersList | |
}), $(".member-list tbody:last"), false) | |
}) | |
} | |
}) | |
} | |
p3.showModal(p3.Layout.Containers.Modal); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.TokenInput, view.initializeTokenInput, view) | |
}) | |
}, | |
initializeTokenInput: function (view) { | |
$.ajax({ | |
url: aP + "DataDirect/UsersGet?format=json", | |
cache: false, | |
success: function (data) { | |
var prePopulateData = null; | |
$("#members-search").tokenInput(data, { | |
minChars: 2, | |
searchDelay: 100, | |
preventDuplicates: true, | |
animateDropdown: false, | |
classes: { | |
tokenList: "token-input-list span4 col-md-4", | |
dropdown: "token-input-dropdown input-xlarge span4 col-md-4" | |
}, | |
resultsFormatter: function (item) { | |
var result = ""; | |
if (item.thumb_filename) { | |
result += '<img class="img-small" src="' + p3.Config.FtpImagePath + "/user/" + item.thumb_filename + '"/> ' | |
} | |
result += item.name; | |
return "<li>" + result + "</li>" | |
}, | |
tokenFormatter: function (item) { | |
return "<li></li>" | |
}, | |
hintText: "To Add a member search for a name", | |
onAdd: function (item) { | |
$("li.token-input-token").remove(); | |
var canAdd = true; | |
view.options.membersList.each(function (model) { | |
var modelValue; | |
if (typeof model.get("Id") === "string") { | |
modelValue = model.get("Id").split("_")[1] | |
} else { | |
modelValue = model.get("Id") | |
} | |
if (modelValue == parseInt(item.id.split("_")[1], 10)) { | |
canAdd = false | |
} | |
}); | |
if (canAdd) { | |
view.options.membersList.add(new Bbm({ | |
Id: item.id, | |
Name: item.name | |
})); | |
p3.rV(new OfficialNotes.Vs.MonitoringTeamMember({ | |
model: item, | |
membersList: view.options.membersList | |
}), $(".member-list tbody:last"), false); | |
if (view.$(".alert-error").length > 0) { | |
view.$(".alert-error").remove() | |
} | |
} else { | |
if (view.$(".alert-error").length === 0) { | |
InfoMessage.ErrorBox("This member has already been selected.", ".modal-body", false) | |
} | |
} | |
}, | |
prePopulate: prePopulateData | |
}) | |
} | |
}) | |
}, | |
invalidModel: function () { | |
this.$(".modal-footer BUTTON").button("reset") | |
}, | |
fetchTypeCollection: function () { | |
var view = this; | |
view.$('button[data-action="save"]').hide(); | |
view.$('button[data-action="another"]').hide(); | |
this.options.typeList.fetch({ | |
data: { | |
categoryId: 34 | |
}, | |
success: function () { | |
if (view.model.get("MonitorTeamId") > 0) { | |
new OfficialNotes.Cs.MonitoringCommentTypeGet().fetch({ | |
data: { | |
monitorTeamId: view.model.get("MonitorTeamId") | |
}, | |
cache: false, | |
wait: true, | |
success: function (collection) { | |
view.options.typeList.each(function (model, count) { | |
collection.each(function (item) { | |
if (item.get("CommentTypeId") == model.get("OfficialNoteTypeId")) { | |
if (!model.has("Active")) { | |
model.set({ | |
Active: true | |
}, { | |
silent: true | |
}) | |
} else { | |
if (model.get("Active")) { | |
model.set({ | |
Active: false | |
}, { | |
silent: true | |
}) | |
} else { | |
model.set({ | |
Active: true | |
}, { | |
silent: true | |
}) | |
} | |
} | |
} | |
}); | |
model.set({ | |
Index: count | |
}); | |
view.addTypeRow(model) | |
}); | |
view.$('button[data-action="save"]').show(); | |
view.$('button[data-action="another"]').show() | |
} | |
}) | |
} else { | |
view.options.typeList.each(function (model, count) { | |
model.set({ | |
Index: count | |
}); | |
view.addTypeRow(model) | |
}); | |
view.$('button[data-action="save"]').show(); | |
view.$('button[data-action="another"]').show() | |
} | |
} | |
}) | |
}, | |
addTypeRow: function (model) { | |
p3.rV(new OfficialNotes.Vs.MonitorTeamModalTypeRow({ | |
model: model | |
}), this.Containers.TypeTbody, false); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
selectAllBtn: function (e) { | |
this.options.typeList.each(function (model) { | |
model.set({ | |
Active: true | |
}, { | |
silent: true | |
}) | |
}); | |
$(e.target).closest("div").find("table td button").addClass("active"); | |
return false | |
}, | |
handleTypeListItem: function (e) { | |
var model = this.options.typeList.at(parseInt($(e.target).closest("button").attr("data-index"), 10)); | |
if (!model.has("Active")) { | |
model.set({ | |
Active: true | |
}, { | |
silent: true | |
}) | |
} else { | |
if (model.get("Active")) { | |
model.set({ | |
Active: false | |
}, { | |
silent: true | |
}) | |
} else { | |
model.set({ | |
Active: true | |
}, { | |
silent: true | |
}) | |
} | |
} | |
}, | |
save: function (e) { | |
var $btnClicked = $(e.target), | |
commentTypes = []; | |
$btnClicked.button("loading"); | |
this.options.typeList.each(function (model) { | |
if (model.get("Active")) { | |
commentTypes.push({ | |
Id: model.get("OfficialNoteTypeId") | |
}) | |
} | |
}); | |
this.options.membersList.each(function (model) { | |
var value; | |
if (typeof model.get("Id") === "string") { | |
value = model.get("Id").split("_")[1] | |
} else { | |
value = model.get("Id") | |
} | |
model.set({ | |
MemberId: parseInt(value, 10) | |
}) | |
}); | |
this.model.save({ | |
SortOrder: parseInt(this.$("#SortOrder").val(), 10), | |
ShortDescription: this.$("#ShortDescription").val(), | |
EmailAccess: (this.$(".email-access.active").attr("data-value") === "yes") ? true : false, | |
ApprovalAccess: false, | |
TeamMemberList: (this.options.membersList.length > 0) ? this.options.membersList.toJSON() : null, | |
CommentTypes: (commentTypes.length > 0) ? commentTypes : null, | |
CategoryId: 34 | |
}, { | |
wait: true, | |
fetch: true, | |
addAnother: ($btnClicked.attr("data-action") === "another") ? true : false, | |
success: function () { | |
p3.showModal(p3.Layout.Containers.Modal, "hide"); | |
p3.displaySiteMessage("Your Monitoring Team has been saved.", "alert-success") | |
}, | |
error: function () { | |
p3.displayError("Error saving Monitoring Team") | |
} | |
}) | |
}, | |
dispose: function () { | |
if ((!this.model.has("MonitorTeamId")) || (this.model.get("MonitorTeamId") == 0)) { | |
this.model.clear() | |
} | |
this.options.typeList.remove(); | |
$(".token-input-dropdown").remove() | |
} | |
}); | |
OfficialNotes.Vs.MonitorTeamModalTypeRow = Bb.View.extend({ | |
tagName: "TR", | |
events: { | |
"click button": "handleBtn" | |
}, | |
render: function (container) { | |
var classList = "btn btn-default btn-mini btn-sm btn-approve type-list-item"; | |
if (this.model.get("Active")) { | |
classList = classList + " active" | |
} | |
this.$el.appendTo(container).append($("<td>").html($("<button>", { | |
type: "button", | |
"data-toggle": "button", | |
"class": classList, | |
style: "margin-right:10px", | |
"data-index": this.model.get("Index") | |
}).html('<i class="p3icon-check"></i>'))); | |
this.$el.find("td button").after(this.model.get("ShortDescription")) | |
}, | |
handleBtn: function (e) { | |
e.preventDefault() | |
} | |
}); | |
OfficialNotes.Vs.MonitoringTeamMember = Bb.View.extend({ | |
tagName: "TR", | |
events: { | |
"click button": "removeItem" | |
}, | |
render: function (container) { | |
this.$el.appendTo(container).append($("<td>").html($("<button>", { | |
"class": "btn btn-default btn-mini pull-right" | |
}).html($("<i>", { | |
"class": "fa fa-trash" | |
})))); | |
this.$el.find("td button").after(this.model.name); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}, | |
removeItem: function (e) { | |
this.options.membersList.each(function (item) { | |
if (item.get("Id") == this.model.id) { | |
item.destroy() | |
} | |
}, this); | |
this.remove(); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
}); | |
OfficialNotes.Us.GetPlaceholders = function (text, placeHolderList) { | |
var list = []; | |
placeHolderList.each(function (model) { | |
if (text.indexOf("[" + model.get("DisplayName") + "]") > -1) { | |
list.push({ | |
PlaceholderId: model.get("PlaceholderId") | |
}) | |
} | |
}); | |
return list | |
}; | |
p3.router().route("onBoardofficialnotes", "officialnotes", function () { | |
p3.renderMainPage(new OfficialNotes.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/officialnotes"))); | |
(function (a) { | |
a.Ms.Inquiry = Bbm.extend({}); | |
a.Cs.Inquiries = Bbc.extend({ | |
model: a.Ms.Inquiry, | |
url: function () { | |
return aP + "AdmProcess/SubmittedForms/" | |
} | |
}); | |
a.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.header.template.html", | |
dispose: function () { | |
p3.closeFixedSidebar() | |
}, | |
render: function (b) { | |
var c = this; | |
p3.setTitle("Process " + a.Data.FormType); | |
$(b).append(c.el); | |
c.renderData() | |
}, | |
renderData: function () { | |
var b = this; | |
p3.fT(b.template, function (c) { | |
b.$el.html(c({})); | |
p3.renderFixedSidebar(new a.Vs.Sidebar({})); | |
$("BODY.sidebar-fixed").css("background-color", "#ffffff").css("background-image", "none") | |
}) | |
} | |
}); | |
a.Vs.Sidebar = Bb.View.extend({ | |
template: "process/process.sidebar.template.html", | |
className: "process-sidebar", | |
initialize: function (b) { | |
var c = this; | |
switch (a.Data.FormTypeId) { | |
case 1: | |
break; | |
case 2: | |
break; | |
case 4: | |
c.collection = new a.Cs.Inquiries(); | |
break | |
} | |
c.collection.bind("add", function (d) { | |
var e = new a.Vs.SidebarItem({ | |
model: d | |
}); | |
d.bind("sync", c.renderData, c); | |
p3.rV(e, c.$(".process-sidebar-content"), false) | |
}, c) | |
}, | |
events: { | |
renderdata: "renderData" | |
}, | |
render: function (b) { | |
var c = this; | |
$(b).append(c.el); | |
c.renderData() | |
}, | |
renderData: function () { | |
var b = this; | |
p3.fT(b.template, function (c) { | |
b.$el.html(c({ | |
formType: a.Data.FormType | |
})); | |
b.collection.fetch({ | |
data: { | |
formId: null, | |
formTypeId: a.Data.FormTypeId | |
}, | |
update: true, | |
cache: false, | |
complete: function () { | |
b.$(".process-sidebar-header .badge").html(b.collection.length); | |
b.$(".process-sidebar-item").first().click() | |
} | |
}) | |
}) | |
} | |
}); | |
a.Vs.SidebarItem = Bb.View.extend({ | |
className: "process-sidebar-item", | |
initialize: function (b) { | |
var c = this; | |
switch (a.Data.FormTypeId) { | |
case 1: | |
c.template = "process/process.sidebar.item.template.html"; | |
break; | |
case 2: | |
c.template = "process/process.sidebar.item.template.html"; | |
break; | |
case 4: | |
c.template = "process/process.sidebar.item.template.html"; | |
break | |
} | |
}, | |
events: { | |
click: "showContent" | |
}, | |
render: function (b) { | |
var c = this; | |
$(b).append(c.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var b = this; | |
p3.log(b.template); | |
p3.fT(b.template, function (c) { | |
b.$el.html(c({ | |
model: b.model.toJSON() | |
})); | |
b.$el.after('<div style="margin:0px 20px; padding:0px;"><hr class="divider"></hr></div>') | |
}) | |
}, | |
showContent: function (b) { | |
var c = this; | |
c.$el.siblings(".process-sidebar-item").removeClass("active pri-100-bgc"); | |
c.$el.addClass("active pri-100-bgc"); | |
switch (a.Data.FormTypeId) { | |
case 1: | |
break; | |
case 2: | |
break; | |
case 4: | |
p3.rV(new a.Vs.InquiryContent({ | |
model: c.model | |
}), $(".col-center"), true); | |
break | |
} | |
} | |
}) | |
}(p3.module("admissions/processforms"))); | |
(function (c) { | |
var d = p3.module("utilities/smodal"), | |
f = p3.Us, | |
e = p3.Us.Tools, | |
a = p3.module("shared/base"), | |
b = p3.Us.Enum; | |
c.Ms.Recommendation = Bbm.extend({ | |
sync: a.DataParamSync, | |
url: function () { | |
return this.id ? aP + "ProspectChecklist/SecureRecommendation/" + this.id + "/" : aP + "ProspectChecklist/SecureRecommendation/" | |
} | |
}); | |
c.Cs.ManagerGroupAccess = Bbc.extend({ | |
url: function () { | |
return aP + "DataDirect/ManagerGroupAccess/" | |
} | |
}); | |
c.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.template.html", | |
initialize: function () { | |
var g = this; | |
g.model = new c.Ms.Recommendation() | |
}, | |
dispose: function () { | |
$("BODY").removeClass("background-gray-texture") | |
}, | |
render: function (g) { | |
var h = this; | |
$("BODY").addClass("background-gray-texture"); | |
p3.setTitle(b.FormType.RECOMMENDATION.Name); | |
$(g).html(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var h = this, | |
g; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({ | |
model: h.model.toJSON() | |
})); | |
$("#site-main").prepend('<div id="site-top-spacer" style="height:70px"></div>'); | |
h.model.fetch({ | |
data: { | |
schoolKey: c.Data.schoolkey, | |
recommendKey: c.Data.recommendkey, | |
authKey: c.Data.authkey, | |
declineInd: c.Data.declineind | |
}, | |
success: function () { | |
p3.rV(new c.Vs.SiteHeader({ | |
model: h.model | |
}), $("#app > div"), false); | |
if (h.model.get("RequestExpired")) { | |
g = "This link has expired" | |
} else { | |
if (h.model.get("DataCollectionTypeId") === b.DataCollectionType.RECOMMENDATIONFORM && (h.model.get("RecommendStatusDescription") === "Completed" || h.model.get("RecommendStatusDescription") === "Submitted")) { | |
g = "This recommendation has already been submitted" | |
} else { | |
if (h.model.get("RecommendationUpload").Processed) { | |
g = "This recommendation has already been submitted and processed" | |
} else { | |
if (h.model.get("Decline")) { | |
g = "This recommendation has already been declined" | |
} | |
} | |
} | |
} | |
if (e.stringToInt(c.Data.declineind)) { | |
p3.rV(new c.Vs.Decline({ | |
model: h.model, | |
errorMsg: g | |
}), h.$(".col-center"), true) | |
} else { | |
p3.rV(new c.Vs.Accept({ | |
model: h.model, | |
errorMsg: g | |
}), h.$(".col-center"), true) | |
} | |
}, | |
error: function (k, j) { | |
g = "Unauthorized Access"; | |
p3.rV(new c.Vs.Unauthorized({ | |
model: h.model, | |
errorMsg: g | |
}), h.$(".col-center"), true) | |
} | |
}) | |
}) | |
} | |
}); | |
c.Vs.SiteHeader = Bb.View.extend({ | |
template: "recommend/recommend.siteheader.template.html", | |
id: "site-header-parent-container", | |
render: function (g) { | |
var h = this; | |
$(g).append(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var g = this; | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({ | |
model: g.model.toJSON() | |
})); | |
g.renderSchoolContext() | |
}) | |
}, | |
renderSchoolContext: function () { | |
var l = this, | |
g = l.$("#site-logo"), | |
j = p3.Data.SchoolContext.get("SchoolInfo"), | |
k = p3.Data.SchoolContext.get("Style"), | |
i, h = true; | |
if (k && k.Logo && k.Logo.length > 0) { | |
g.addClass("logoimg"); | |
i = '<img src="' + k.Logo + '"/>'; | |
h = false | |
} else { | |
if (j) { | |
i = j.SchoolName | |
} | |
} | |
if (k.LogoNavUrl) { | |
g.html('<a href="' + k.LogoNavUrl + '" class="white-fgc">' + i + "</a>") | |
} else { | |
g.html(i) | |
} | |
if (h) { | |
g.fitText(1.5, { | |
minFontSize: "12px", | |
maxFontSize: "28px" | |
}) | |
} | |
} | |
}); | |
c.Vs.Accept = Bb.View.extend({ | |
template: "recommend/recommend.accept.template.html", | |
initialize: function () { | |
var g = this; | |
g.selector = "name"; | |
Bb.Validation.bind(g, { | |
forceUpdate: true, | |
selector: g.selector | |
}) | |
}, | |
events: { | |
"click .save": "saveRecommend", | |
"click .recommendationProceedBtn": "proceedToRecommendationForm" | |
}, | |
render: function (g) { | |
var h = this; | |
$(g).html(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var g = this; | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({ | |
model: g.model.toJSON(), | |
errorMsg: g.options.errorMsg | |
})); | |
if (!g.options.errorMsg) { | |
if (g.model.get("DataCollectionTypeId") === b.DataCollectionType.RECOMMENDATIONFORM) { | |
p3.Us.Captcha.Initialize({}) | |
} else { | |
if (g.model.get("DataCollectionTypeId") === b.DataCollectionType.REFERENCE) { | |
g.initializeFileUpload_File() | |
} | |
} | |
} | |
}) | |
}, | |
initializeFileUpload_File: function (h) { | |
var i = this, | |
g = i.model.get("AuthToken"); | |
h = (!h) ? 1 : h; | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.FileUpload, function () { | |
$(document).on("drop dragover", function (j) { | |
j.preventDefault() | |
}); | |
window.setTimeout(function () { | |
i.$(".attachment").each(function () { | |
var j = (!$(this).data("filetype")) ? p3.Us.Enum.UploadType.All : p3.Us.Enum.UploadType[$(this).data("filetype").toUpperCase()]; | |
$(this).fileupload({ | |
url: p3.Config.RootPath + "utilities/FileTransferHandler.ashx", | |
autoUpload: true, | |
acceptFileTypes: j.ValidExtensions, | |
formData: { | |
safeName: true | |
}, | |
dropZone: $(this), | |
maxNumberOfFiles: h, | |
add: function (l, k) { | |
var m = f.FileTools.isValidFile(j, k.files[0].name); | |
if (m) { | |
Bb.Validation.callbacks.valid(i, "AttachmentFile", i.selector); | |
k.submit() | |
} else { | |
Bb.Validation.callbacks.invalid(i, "AttachmentFile", f.InfoMessageLibrary.Assignment.FileTypeUnsupported, i.selector) | |
} | |
}, | |
beforeSend: function (l, k) { | |
if (g) { | |
l.setRequestHeader("App-Auth-Id", "Recommendation"); | |
l.setRequestHeader("App-Auth-Token", g) | |
} | |
} | |
}).on("fileuploaddone", function (m, l) { | |
var k = $(m.currentTarget), | |
n = k.attr(i.selector); | |
k.find(".attachment-view .attachment-name").html(l.result[0].original_name); | |
d.Us.setPropByString(i.model.attributes, n + ".Attachment", l.result[0].original_name); | |
d.Us.setPropByString(i.model.attributes, n + ".AttachmentTemp", l.result[0].name); | |
k.find(".attachment-view").show(); | |
k.find(".attachment-add").hide() | |
}).on("click", ".attachment-delete", function (n) { | |
n.stopPropagation(); | |
var k = $(n.currentTarget).parents(".attachment"), | |
o = k.attr(i.selector), | |
l = d.Us.getPropByString(i.model.attributes, o + ".Attachment"), | |
m = d.Us.getPropByString(i.model.attributes, o + ".AttachmentTemp"); | |
if (m) { | |
d.Us.setPropByString(i.model.attributes, o + ".AttachmentTemp", null); | |
d.Us.setPropByString(i.model.attributes, o + ".Attachment", null) | |
} else { | |
d.Us.setPropByString(i.model.attributes, o + ".AttachmentRemove", l); | |
d.Us.setPropByString(i.model.attributes, o + ".Attachment", null) | |
} | |
k.find(".attachment-view").hide(); | |
k.find(".attachment-add").show() | |
}) | |
}) | |
}, 1000) | |
}) | |
}) | |
}, | |
saveRecommend: function (g) { | |
g.preventDefault(); | |
g.stopPropagation(); | |
var h = this; | |
if (!h.options.errorMsg) { | |
h.model.save({}, { | |
success: function (i, j) { | |
h.$(".recommend").hide(); | |
h.$(".recommend-success").show() | |
}, | |
error: function (j, i) { | |
p3.displayError("Error saving recommendation") | |
} | |
}) | |
} | |
}, | |
proceedToRecommendationForm: function (h) { | |
h.stopPropagation(); | |
var j = this, | |
g = p3.Us.Captcha.GetResponse(), | |
i = j.$("#recommendation-proceed-form"); | |
p3.Us.Captcha.HideError(); | |
if (!g) { | |
h.preventDefault(); | |
p3.Us.Captcha.DisplayError() | |
} else { | |
i.submit(function (k) { | |
i.append('<input type="hidden" name="applicationFormId" value="' + j.model.get("ApplicationFormId") + '">'); | |
i.append('<input type="hidden" name="checklistRecommendId" value="' + j.model.get("RecommendationId") + '">'); | |
i.append('<input type="hidden" name="authToken" value="' + encodeURIComponent(j.model.get("AuthToken")) + '">'); | |
i.append('<input type="hidden" name="captchaResponse" value="' + g + '">') | |
}) | |
} | |
} | |
}); | |
c.Vs.Decline = Bb.View.extend({ | |
template: "recommend/recommend.decline.template.html", | |
events: { | |
"change input": "updateModel", | |
"click .decline": "declineConfirm" | |
}, | |
render: function (g) { | |
var h = this; | |
$(g).html(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var g = this; | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({ | |
model: g.model.toJSON(), | |
errorMsg: g.options.errorMsg | |
})) | |
}) | |
}, | |
updateModel: function (h) { | |
h.preventDefault(); | |
var i = this, | |
g = $(h.currentTarget); | |
if (g.attr("name") === "RecommendationDisallowed") { | |
i.model.set("RecommendationDisallowed", g.prop("checked")) | |
} | |
}, | |
declineConfirm: function (g) { | |
g.preventDefault(); | |
var i = this, | |
h = "Are you sure you want to decline the " + i.model.get("ChecklistItemDesc") + " for " + i.model.get("StudentName") + "?"; | |
if (i.model.get("RecommendationDisallowed")) { | |
h += "<br><br>This response will be sent to this school as well as the family." | |
} else { | |
h += "<br><br>This response will only be sent to the family." | |
} | |
if (!i.options.errorMsg) { | |
i.model.set("Decline", true); | |
i.declineConfirmModal = d.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.confirm.html", | |
model: i.model, | |
variables: { | |
title: "Decline " + i.model.get("ChecklistItemDesc"), | |
text: h, | |
cancelText: "Cancel", | |
confirmText: "Decline" | |
}, | |
dataParam: { | |
authKey: c.Data.authkey | |
}, | |
modalRendered: function () { | |
var j = this; | |
j.setFocus() | |
}, | |
modalSavedSuccess: function () { | |
_.defer(function () { | |
i.$(".recommend").hide(); | |
i.$(".recommend-success").show() | |
}) | |
}, | |
modalSavedError: function () { | |
_.defer(function () { | |
p3.displayError("Error saving recommendation") | |
}) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new i.declineConfirmModal(), p3.Layout.Containers.Modal, true) | |
} | |
} | |
}); | |
c.Vs.Unauthorized = Bb.View.extend({ | |
template: "recommend/recommend.unauthorized.template.html", | |
render: function (g) { | |
var h = this; | |
$(g).html(h.el); | |
h.renderData() | |
}, | |
renderData: function () { | |
var g = this; | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({ | |
errorMsg: g.options.errorMsg, | |
model: g.model.toJSON() | |
})) | |
}) | |
} | |
}); | |
p3.router().route("admissions/recommend/:schoolkey/:recommendkey/:authkey/:declineind", "admissions/recommend", function (j, i, g, h) { | |
c.Data.schoolkey = j; | |
c.Data.recommendkey = i; | |
c.Data.authkey = g; | |
c.Data.declineind = h; | |
p3.renderMainPage(new c.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/recommend"))); | |
(function (f) { | |
var a = p3.module("shared/base"), | |
g = p3.module("utilities/smodal"), | |
d = p3.module("utilities/filter"), | |
e = p3.module("utilities/multifetch"), | |
b = p3.Us.Culture, | |
c = p3.Us.Enum, | |
h = p3.Us.Tools; | |
f.Ms.Fee = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ApplicationDataId", | |
url: function () { | |
return this.id ? aP + "onlineapplication/ApplicationUpdateHandledInd/" + this.id + "/" : aP + "onlineapplication/ApplicationUpdateHandledInd/" | |
} | |
}); | |
f.Cs.ReconcileList = Bbc.extend({ | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, d.Us.CollectionFilter)) | |
}, | |
preFilter: function (i) { | |
_.each(i, function (j) { | |
j.DatePaidShort = b.getDateString(j.DatePaid) | |
}) | |
}, | |
model: f.Ms.Fee, | |
url: function () { | |
return aP + "OnlineApplication/ApplicationList/" | |
} | |
}); | |
f.Cs.ReconcileApplicationsList = Bbc.extend({ | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, d.Us.CollectionFilter)) | |
}, | |
preFilter: function (i) { | |
_.each(i, function (j) { | |
j.DatePaidShort = b.getDateString(j.DatePaid) | |
}) | |
}, | |
model: f.Ms.Fee, | |
url: function () { | |
return aP + "OnlineApplication/ApplicationFees/" | |
} | |
}); | |
f.Cs.ReconcileContractsList = Bbc.extend({ | |
initialize: function () { | |
_.extend(this, $.extend(true, {}, d.Us.CollectionFilter)) | |
}, | |
preFilter: function (i) { | |
_.each(i, function (j) { | |
j.DatePaidShort = b.getDateString(j.DatePaid) | |
}) | |
}, | |
model: f.Ms.Fee, | |
url: function () { | |
return aP + "OnlineApplication/ContractDeposits/" | |
} | |
}); | |
f.Cs.RoleList = Bbc.extend({ | |
url: function () { | |
return aP + "Role/" | |
} | |
}); | |
f.Vs.Layout = Bb.View.extend({ | |
template: "page/page.10-2.header.template.html", | |
initialize: function () { | |
var i = this; | |
i.Containers = {}; | |
i.forms = [] | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).html(j.el); | |
e.Us.Fetch({ | |
RoleCollection: { | |
data: new f.Cs.RoleList(), | |
dataParams: { | |
userId: p3.Data.Context.attributes.UserInfo.UserId | |
} | |
}, | |
ADMPaymentStatus: { | |
data: new e.Cs.Dictionary(), | |
dataParams: c.DictionaryData.ADMPaymentStatus | |
} | |
}, function (k, m, l) { | |
if (l) { | |
p3.displayError("There was an error loading data.") | |
} | |
f.Data.dictionaries.ADMPaymentStatus = k.ADMPaymentStatus; | |
j.renderData() | |
}) | |
}, | |
renderData: function () { | |
var l = this, | |
j, k, i; | |
p3.fT(l.template, function (m) { | |
l.$el.html(m({})); | |
l.Containers = { | |
Header: l.$(".header"), | |
LeftColumn: l.$(".col-left"), | |
RightColumn: l.$(".col-right") | |
}; | |
p3.rV(new f.Vs.Header(), l.Containers.Header, false); | |
p3.rV(new f.Vs.Error(), l.Containers.LeftColumn, false); | |
if (f.Data.FormType.Type === "Application") { | |
p3.setTitle("Reconcile Fees"); | |
j = new f.Cs.ReconcileApplicationsList() | |
} | |
if (f.Data.FormType.Type === "Contract") { | |
p3.setTitle("Reconcile Deposits"); | |
j = new f.Cs.ReconcileContractsList() | |
} | |
j.updateSearch("ReconcileType", 0); | |
j.updateSearch("PaymentStatus", 1); | |
j.filterReturnType("model"); | |
j.filterParse(false); | |
k = new f.Vs.Fees({ | |
collection: j | |
}); | |
p3.rV(k, l.Containers.LeftColumn, false); | |
i = d.Vs.Filter.extend({ | |
template: "reconcilefees/reconcilefees.filter.template.html", | |
collection: j, | |
variables: { | |
dictionaries: f.Data.dictionaries, | |
forms: l.forms | |
}, | |
preFilter: function (r) { | |
var o = r.eventCurrentTarget, | |
p = o.attr("name"), | |
n = $("#date-error"), | |
q; | |
if (o.hasClass("date-input")) { | |
q = new Date(); | |
q.setDate(1); | |
q.setMonth(q.getMonth() - 18); | |
q.setDate(0); | |
q = b.getDateString(q); | |
if (b.dateCompare(o.val(), q, "<=")) { | |
Bb.Validation.callbacks.invalid(this, p, "Date can only be 18 months in the past.", "name") | |
} else { | |
Bb.Validation.callbacks.valid(this, p, "name") | |
} | |
if (l.$("input.date-input").hasClass("box-validate")) { | |
n.show() | |
} else { | |
n.hide() | |
} | |
} | |
}, | |
postFilter: function (o) { | |
var n = o.eventCurrentTarget; | |
if (n.hasClass("db")) { | |
k.renderData() | |
} else { | |
k.refreshTemplate() | |
} | |
} | |
}); | |
p3.rV(new i(), l.Containers.RightColumn, false) | |
}) | |
} | |
}); | |
f.Vs.Error = Bb.View.extend({ | |
id: "date-error", | |
className: "collapse", | |
render: function (i) { | |
var j = this; | |
$(i).html(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
i.$el.html('<div class="alert alert-error">Payment data is only searchable for the past 18 months.</div>') | |
} | |
}); | |
f.Vs.Header = Bb.View.extend({ | |
template: "reconcilefees/reconcilefees.header.template.html", | |
render: function (i) { | |
var j = this; | |
$(i).html(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
if (f.Data.FormType.Type === "Application") { | |
i.$el.html(j({ | |
header: "Reconcile Fees" | |
})) | |
} | |
if (f.Data.FormType.Type === "Contract") { | |
i.$el.html(j({ | |
header: "Reconcile Deposits" | |
})) | |
} | |
}) | |
} | |
}); | |
f.Vs.Fees = Bb.View.extend({ | |
template: "reconcilefees/reconcilefees.fees.template.html", | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
j.renderData() | |
}, | |
renderData: function () { | |
var l = this, | |
k = "", | |
i, j; | |
l.collection.reset(); | |
p3.fT(l.template, function (m) { | |
k = h.stringToInt(l.collection._searches.ReconcileType) === 0 ? "Unhandled" : "Handled"; | |
l.$el.html(m({ | |
reconcileTypeName: k | |
})); | |
i = l.$("#loading"); | |
j = l.$("#reconcilefees"); | |
i.show(); | |
j.hide(); | |
l.collection.fetch({ | |
cache: false, | |
data: { | |
reconcileType: l.collection._searches.ReconcileType, | |
paymentStatus: l.collection._searches.PaymentStatus | |
}, | |
success: function (n, p, o) { | |
_.each(l.collection.filter(), function (r) { | |
var q = new f.Vs.Fee({ | |
model: r | |
}); | |
r.bind("sync", l.refreshTemplate, l); | |
p3.rV(q, j, false) | |
}); | |
i.hide(); | |
j.show() | |
} | |
}) | |
}) | |
}, | |
refreshTemplate: function () { | |
var l = this, | |
k, i, j; | |
p3.fT(l.template, function (m) { | |
k = h.stringToInt(l.collection._searches.ReconcileType) === 0 ? "Unhandled" : "Handled"; | |
l.$el.html(m({ | |
reconcileTypeName: k | |
})); | |
i = l.$("#loading"); | |
j = l.$("#reconcilefees"); | |
i.show(); | |
j.hide(); | |
_.each(l.collection.filter(), function (o) { | |
var n = new f.Vs.Fee({ | |
model: o | |
}); | |
o.bind("sync", l.refreshTemplate, l); | |
p3.rV(n, j, false) | |
}); | |
i.hide(); | |
j.show() | |
}) | |
} | |
}); | |
f.Vs.Fee = Bb.View.extend({ | |
template: "reconcilefees/reconcilefees.fee.template.html", | |
tagName: "tr", | |
events: { | |
"click a.togglebutton": "toggleInfo", | |
"click .edit": "editDetails", | |
"click .delete": "deleteFee" | |
}, | |
render: function (i) { | |
var j = this; | |
$(i).append(j.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var i = this; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
model: i.model.toJSON() | |
})) | |
}) | |
}, | |
toggleInfo: function (j) { | |
var k = this, | |
i = $(j.currentTarget); | |
k.$(".toggleinfo").slideToggle("fast"); | |
if (i.hasClass("active")) { | |
i.removeClass("active") | |
} else { | |
i.addClass("active") | |
} | |
return false | |
}, | |
editDetails: function (j) { | |
j.stopPropagation(); | |
j.preventDefault(); | |
var l = this, | |
i, k; | |
if (l.model.get("ReconcileType") === 1) { | |
i = { | |
handledInd: 0 | |
} | |
} else { | |
i = { | |
handledInd: 1 | |
} | |
} | |
if ((l.model.attributes.AmountPaid == 0 || l.model.attributes.AmountPaid == null) && l.model.attributes.FailedMsg == "") { | |
k = "reconcilefees/reconcilefees.waiver.edit.template.html" | |
} else { | |
k = "reconcilefees/reconcilefees.fee.edit.template.html" | |
} | |
l.modal2Extend = g.Vs.Modal2.extend({ | |
template: k, | |
model: l.model, | |
dataParam: i, | |
size: "md", | |
modalRendered: function () { | |
var m = this; | |
m.model.set({ | |
ReconcileType: i.handledInd | |
}) | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new l.modal2Extend({}), p3.Layout.Containers.Modal, true) | |
}, | |
deleteFee: function (i) { | |
var k = this, | |
j; | |
j = g.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.confirm.html", | |
model: k.model, | |
variables: { | |
title: "Delete Fee", | |
errorText: "Wait a minute. Are you really sure you want to delete this fee?", | |
cancelText: "Cancel", | |
confirmText: "Confirm" | |
}, | |
dataParam: { | |
handledInd: -99 | |
}, | |
modalRendered: function () { | |
var l = this; | |
l.model.set({ | |
ReconcileType: -99 | |
}) | |
}, | |
modalSavedSuccess: function () { | |
k.deleteElement() | |
}, | |
modalSavedError: function () { | |
p3.displayError("Error deleting fee") | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new j({}), p3.Layout.Containers.Modal, true) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
p3.router().route("process/fees", "reconcilefees", function () { | |
f.Data.dictionaries = {}; | |
p3.renderMainPage(new f.Vs.Layout({})) | |
}); | |
p3.router().route("process/applicationfees", "processapplicationfees", function () { | |
f.Data.dictionaries = {}; | |
f.Data.FormType = c.FormType.APPLICATION; | |
p3.renderMainPage(new f.Vs.Layout({})) | |
}); | |
p3.router().route("process/contractdeposits", "processcontractdeposits", function () { | |
f.Data.dictionaries = {}; | |
f.Data.FormType = c.FormType.CONTRACT; | |
p3.renderMainPage(new f.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/reconcilefees"))); | |
(function (d) { | |
var b = p3.module("shared/base"), | |
a = p3.module("admissions/admissionsscheduling"), | |
c = p3.Us.Culture, | |
e = p3.Us.Tools; | |
d.Ms.Assignment = Bbm.extend({}); | |
d.Ms.RecentlyViewed = Bbm.extend({}); | |
d.Ms.RecentlyAdded = Bbm.extend({}); | |
d.Ms.ListItem = Bbm.extend({}); | |
d.Ms.Schedule = Bbm.extend({}); | |
d.Ms.Reminder = Bbm.extend({ | |
idAttribute: "ReminderDismissId", | |
url: function () { | |
return this.id ? aP + "ProspectChecklist/Reminder/" + this.id + "/" : aP + "ProspectChecklist/Reminder/" | |
} | |
}); | |
d.Ms.ChecklistVisit = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "VisitId", | |
url: function () { | |
return this.id ? aP + "Admissions/ParentProspectVisit/" + this.id + "/" : aP + "Admissions/ParentProspectVisit/" | |
} | |
}); | |
d.Ms.ChecklistInterview = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "InterviewId", | |
url: function () { | |
return this.id ? aP + "Admissions/ParentProspectInterview/" + this.id + "/" : aP + "Admissions/ParentProspectInterview/" | |
} | |
}); | |
d.Cs.Assignments = Bbc.extend({ | |
model: d.Ms.Assignment, | |
url: function () { | |
return aP + "datadirect/ParentStudentUserAssignments/" | |
} | |
}); | |
d.Cs.RecentlyViewed = Bbc.extend({ | |
model: d.Ms.RecentlyViewed, | |
url: function () { | |
return aP + "datadirect/UserLastViewed/" | |
} | |
}); | |
d.Cs.RecentlyAdded = Bbc.extend({ | |
model: d.Ms.RecentlyAdded, | |
url: function () { | |
return aP + "datadirect/CandidatesLastAdded/" | |
} | |
}); | |
d.Cs.FindACandidate = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/CandidateSearch/" | |
} | |
}); | |
d.Cs.FindACandidateUsers = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/DashboardFindMeNowUserGet/" | |
} | |
}); | |
d.Cs.Schedules = Bbc.extend({ | |
model: d.Ms.Schedule, | |
url: function () { | |
return aP + "datadirect/AdmissionSchedulingGet/" | |
} | |
}); | |
d.Cs.ReminderGroups = Bbc.extend({ | |
model: d.Ms.Reminder, | |
url: function () { | |
return aP + "ProspectChecklist/Reminder/" | |
} | |
}); | |
d.Cs.ListItems = Bbc.extend({ | |
model: d.Ms.ListItem | |
}); | |
d.Cs.EventAttendees = Bbc.extend({ | |
url: "admissions/AdmissionEventRegistrantGroupGet" | |
}); | |
d.Vs.Layout = Bb.View.extend({ | |
template: "admissions/onboard.layout.template.html", | |
initialize: function () { | |
this.subs = {}; | |
this.todayDate = c.localDateTime() | |
}, | |
render: function (f) { | |
var g = this; | |
p3.setTitle("Scheduling"); | |
$(f).html(g.el); | |
g.renderData() | |
}, | |
renderData: function () { | |
var f = this; | |
p3.fT(f.template, function (g) { | |
f.$el.html(g()); | |
f.Containers = { | |
leftColumn: f.$el.find("#page-2col-wideleft"), | |
rightColumn: f.$el.find("#page-2col-slimright") | |
}; | |
p3.rV(new d.Vs.SchedulesList(), f.Containers.leftColumn, false); | |
p3.rV(new d.Vs.FindACandidate(), f.Containers.rightColumn, true) | |
}) | |
} | |
}); | |
d.Vs.FindACandidate = Bb.View.extend({ | |
template: "admissions/onboard.findacandidate.template.html", | |
className: "row-fluid", | |
events: { | |
"click .tab": "switchTab" | |
}, | |
render: function (f) { | |
var g = this; | |
g.$el.appendTo(f); | |
g.renderTemplate() | |
}, | |
renderTemplate: function () { | |
var f = this; | |
p3.fT(f.template, function (g) { | |
f.$el.html(g()); | |
p3.rV(new d.Vs.RecentCandidates(), f.$("#recentlyViewed"), false); | |
p3.rV(new d.Vs.RecentlyAdded(), f.$("#recentlyAdded"), false); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
f.initializeAutoComplete() | |
}) | |
}) | |
}, | |
switchTab: function (g) { | |
g.stopPropagation(); | |
g.preventDefault(); | |
var i = this, | |
f = $(g.currentTarget), | |
h; | |
i.$(".tab").removeClass("active"); | |
f.addClass("active"); | |
h = f.attr("data-toggle"); | |
i.$(".tab-pane").removeClass("active"); | |
$("#" + h).addClass("active") | |
}, | |
initializeAutoComplete: function () { | |
var f = $("#candidateSearch"); | |
if (f.length) { | |
f.autocomplete({ | |
candidatesAll: null, | |
minLength: 2, | |
previousSearch: "", | |
source: function (h, i) { | |
var g = this; | |
g.collection = new d.Cs.FindACandidate(); | |
g.fetchComplete = function (j) { | |
var r = new RegExp($.ui.autocomplete.escapeRegex(e.removeDiacritics(this.term)), "i"), | |
k = j.where({ | |
TypeParentRoleId: 554 | |
}), | |
m = j.where({ | |
TypeParentRoleId: 22 | |
}), | |
p = j.where({ | |
TypeParentRoleId: 555 | |
}), | |
o = j.where({ | |
TypeParentRoleId: 563 | |
}), | |
n = j.where({ | |
TypeParentRoleId: 23 | |
}), | |
q = j.where({ | |
TypeParentRoleId: 564 | |
}), | |
l = []; | |
l = l.concat(k); | |
l = l.concat(m); | |
l = l.concat(p); | |
l = l.concat(o); | |
l = l.concat(n); | |
l = l.concat(q); | |
i($.map(l, function (t) { | |
if (e.removeDiacritics(t.attributes.SearchFirstName).match(r) || e.removeDiacritics(t.attributes.SearchLastName).match(r)) { | |
var u = "", | |
s = []; | |
if (t.attributes.TypeParentRoleId == 563 || t.attributes.TypeParentRoleId == 23 || t.attributes.TypeParentRoleId == 564) { | |
if (t.attributes.SearchFirstName != "") { | |
u += t.attributes.SearchFirstName | |
} | |
if (t.attributes.SearchLastName != "") { | |
u += " " + t.attributes.SearchLastName | |
} | |
s.push({ | |
value: u, | |
obj: t, | |
parent: true | |
}); | |
u = "" | |
} | |
if (t.attributes.DisplayFirstName != "") { | |
u += t.attributes.DisplayFirstName | |
} | |
if (t.attributes.DisplayLastName != "") { | |
u += " " + t.attributes.DisplayLastName | |
} | |
s.push({ | |
value: u, | |
obj: t, | |
parent: false, | |
userId: t.attributes.DisplayUserId | |
}); | |
return s | |
} | |
})) | |
}; | |
g.collection.fetch({ | |
cache: false, | |
data: { | |
searchString: $("#candidateSearch").prop("value").slice(0, 2), | |
searchType: 0 | |
}, | |
success: function (j) { | |
g.fetchComplete(j) | |
} | |
}) | |
}, | |
select: function (g, h) { | |
if (!h.item.parent) { | |
window.location.href = "#candidate/" + h.item.userId + "/record" | |
} | |
return false | |
}, | |
appendTo: "#searchResults" | |
}).data("ui-autocomplete")._renderItem = function (h, g) { | |
if (g.parent) { | |
return $("<li></li>").addClass("ui-autocomplete-category").append(g.label).appendTo(h) | |
} | |
return $("<li></li>").append(g.label).appendTo(h) | |
}; | |
f.focus(function () { | |
var g = $(this); | |
if (g.val().length > 1) { | |
g.autocomplete("search") | |
} | |
}) | |
} | |
} | |
}); | |
d.Vs.RecentCandidates = Bb.View.extend({ | |
template: "admissions/onboard.recentlyviewed.template.html", | |
id: "candidate-recent", | |
tagName: "tbody", | |
initialize: function () { | |
var f = this; | |
f.collection = new d.Cs.RecentlyViewed() | |
}, | |
render: function (f) { | |
var g = this; | |
$(f).append(g.el); | |
g.renderData() | |
}, | |
renderData: function () { | |
var f = this; | |
p3.loadingIcon(this.$el.html('<div style="padding: 15px 15px 25px 0px></div>"')); | |
f.collection.fetch({ | |
cache: false, | |
data: { | |
viewerId: p3.Data.Context.get("UserInfo").UserId, | |
viewType: 1 | |
}, | |
success: function (g) { | |
p3.fT(f.template, function (h) { | |
f.$el.html(h({ | |
collection: g.toJSON(), | |
photoRefresh: new Date().getTime() | |
})) | |
}) | |
} | |
}) | |
} | |
}); | |
d.Vs.RecentlyAdded = Bb.View.extend({ | |
template: "admissions/onboard.recentlyadded.template.html", | |
id: "candidate-recent", | |
tagName: "tbody", | |
initialize: function () { | |
var f = this; | |
f.collection = new d.Cs.RecentlyAdded() | |
}, | |
render: function (f) { | |
var g = this; | |
$(f).append(g.el); | |
g.renderData() | |
}, | |
renderData: function () { | |
var f = this; | |
p3.loadingIcon(this.$el.html('<div style="padding: 15px 15px 25px 0px></div>"')); | |
f.collection.fetch({ | |
cache: false, | |
data: {}, | |
success: function (g) { | |
p3.fT(f.template, function (h) { | |
f.$el.html(h({ | |
collection: g.toJSON(), | |
photoRefresh: new Date().getTime() | |
})) | |
}) | |
} | |
}) | |
} | |
}); | |
d.Vs.SchedulesList = Bb.View.extend({ | |
template: "admissions/onboard.scheduling.scheduleslist.template.html", | |
initialize: function () { | |
var f = this; | |
f.collection = new d.Cs.Schedules(); | |
f.reminders = new d.Cs.ReminderGroups(); | |
f.date = c.getDateString(c.localDateTime()).ApiFormat(); | |
f.listenTo(f.collection, "reset", f.renderData); | |
this.sort = {} | |
}, | |
events: { | |
"listRefresh #assignment-center-assignment-items": "fetchData", | |
"click .schedule-date .prev": "datePrev", | |
"click .schedule-date .next": "dateNext", | |
"click .schedule-date .today": "dateToday", | |
"refreshData #sort-table": "fetchData" | |
}, | |
render: function (f) { | |
var g = this; | |
$(f).append(g.el); | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({})); | |
g.Containers = { | |
tBody: g.$("tbody") | |
}; | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.TableSort, function (k) { | |
k.$("#sort-table").stupidtable(); | |
k.fetchData(); | |
var j = "sorting-asc", | |
i = "sorting-desc"; | |
k.$("#sort-table").on("aftertablesort", { | |
sort: k.sort | |
}, function (m, l) { | |
m.data.sort.column = l.column; | |
m.data.sort.direction = l.direction; | |
$(m.currentTarget).find("th").removeClass(j).removeClass(i).eq(l.column).addClass((l.direction === "asc") ? j : i) | |
}) | |
}, g) | |
}) | |
}, | |
fetchData: function () { | |
this.$("h4").html(c.displayDateFromInvariant(this.date, "longDate")); | |
this.$(".today").attr("disabled", c.isSameDay(this.date, c.getDateString(c.localDateTime()).ApiFormat())); | |
p3.clearContainer(this.Containers.tBody); | |
this.collection.fetch({ | |
data: { | |
date: this.date | |
} | |
}); | |
this.renderReminders(false) | |
}, | |
renderData: function (f, g) { | |
var h = jQuery.Event("aftertablesort"), | |
j = this.$("tfoot"), | |
i = _.sortBy(f.reject(function (k) { | |
return k.get("ScheduleType").includes("O") | |
}), function (k) { | |
switch (this.sort.column) { | |
case 2: | |
switch (k.get("ScheduleType")) { | |
case "I": | |
return "Interview"; | |
case "R": | |
return "Event"; | |
case "V": | |
return "Visit" | |
} | |
break; | |
case 3: | |
return k.get("ScheduleDesc"); | |
case 4: | |
return k.get("AttendeeCount") || k.get("Name"); | |
case 5: | |
return k.get("ScheduledWith"); | |
default: | |
return k.get("ScheduleDateTicks") | |
} | |
}, this); | |
if (f.length === 0) { | |
j.show() | |
} else { | |
j.hide() | |
} | |
_.each((this.sort.direction === "desc") ? i.reverse() : i, function (k) { | |
p3.rV(new d.Vs.ScheduleRow({ | |
model: k | |
}), this.Containers.tBody, false) | |
}, this); | |
if (_.isEmpty(this.sort)) { | |
h.data = { | |
sort: this.sort | |
}; | |
this.$("#sort-table").trigger(h, { | |
column: 1, | |
direction: "desc" | |
}) | |
} | |
}, | |
renderReminders: function (f) { | |
var g = this; | |
g.reminders.fetch({ | |
cache: false, | |
data: { | |
targetDate: g.date | |
}, | |
success: function (i, k) { | |
var h = g.$(".adm-schedule"), | |
j; | |
if (g.reminders.length) { | |
j = new d.Vs.Reminders({ | |
collection: g.reminders, | |
date: g.date, | |
expand: f | |
}); | |
h.parent().parent().show(); | |
p3.rV(j, h, true); | |
g.listenTo(j, "ReminderDismissed", function () { | |
g.renderReminders(true) | |
}) | |
} else { | |
h.empty(); | |
h.parent().parent().hide() | |
} | |
} | |
}) | |
}, | |
datePrev: function (f) { | |
f.stopPropagation(); | |
f.preventDefault(); | |
var g = this; | |
g.date = new Date(g.date); | |
g.date.setDate(g.date.getDate() - 1); | |
g.date = c.getDateString(g.date).ApiFormat(); | |
g.fetchData() | |
}, | |
dateNext: function (f) { | |
f.stopPropagation(); | |
f.preventDefault(); | |
var g = this; | |
g.date = new Date(g.date); | |
g.date.setDate(g.date.getDate() + 1); | |
g.date = c.getDateString(g.date).ApiFormat(); | |
g.fetchData() | |
}, | |
dateToday: function (f) { | |
f.stopPropagation(); | |
f.preventDefault(); | |
var g = this; | |
g.date = c.getDateString(c.localDateTime()).ApiFormat(); | |
g.fetchData() | |
} | |
}); | |
d.Vs.ScheduleRow = Bb.View.extend({ | |
tagName: "tr", | |
template: "admissions/onboard.scheduling.schedule.row.template.html", | |
events: { | |
'click [data-action="manage-schedule"]': "clickManage", | |
'click [data-action="delete-schedule"]': "clickDelete", | |
'click [value="schedule-attendee"]': "clickAttendees", | |
"click .agenda": "showAgenda" | |
}, | |
render: function (f) { | |
var g = this; | |
p3.fT(g.template, function (h) { | |
g.$el.appendTo(f).html(h({ | |
model: g.model.toJSON() | |
})) | |
}) | |
}, | |
clickManage: function (f) { | |
f.preventDefault(); | |
switch (this.model.get("ScheduleType")) { | |
case "I": | |
a.Us.EditInterview(this.model.get("ScheduleId"), this.model.get("ProspectInstanceId")); | |
break; | |
case "V": | |
a.Us.EditVisit(this.model.get("ScheduleId"), this.model.get("ProspectInstanceId")); | |
break | |
} | |
}, | |
clickDelete: function (f) { | |
f.preventDefault(); | |
var h = this, | |
g; | |
switch (h.model.get("ScheduleType")) { | |
case "I": | |
g = new a.Ms.Interview({ | |
InterviewId: h.model.get("ScheduleId") | |
}); | |
break; | |
case "V": | |
g = new a.Ms.Visit({ | |
VisitId: h.model.get("ScheduleId") | |
}); | |
break | |
} | |
g.set({ | |
prospectInstanceId: h.model.get("ProspectInstanceId") | |
}); | |
this.listenTo(g, "destroy", function () { | |
h.remove() | |
}); | |
a.Us.DeleteAppointment(g) | |
}, | |
clickAttendees: function () { | |
p3.rV(new d.Vs.ScheduleAttendees({ | |
model: this.model | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
showAgenda: function () { | |
var g = this, | |
f; | |
switch (g.model.get("ScheduleType")) { | |
case "I": | |
f = 7; | |
break; | |
case "V": | |
f = 12; | |
break | |
} | |
a.Us.AgendaModal(f, g.model.get("ScheduleId"), g.model.get("ProspectInstanceId"), g.model.get("Name")) | |
} | |
}); | |
d.Vs.ScheduleAttendees = Bb.View.extend({ | |
className: "modal-dialog", | |
template: "admissions/onboard.scheduling.schedule.attendees.template.html", | |
render: function (f) { | |
var g = this; | |
new d.Cs.EventAttendees().fetch({ | |
data: { | |
registrationId: this.model.get("ScheduleId") | |
}, | |
success: function (h) { | |
p3.fT(g.template, function (i) { | |
g.$el.appendTo(f).html(i({ | |
model: g.model.toJSON(), | |
collection: _.sortBy(h.toJSON(), function (k) { | |
var j = _.findWhere(k.AttendeeGroupList, { | |
Attendee: "Candidate" | |
}); | |
if (j) { | |
return j.Lastname + " " + j.Firstname | |
} | |
}) | |
})); | |
p3.showModal(p3.Layout.Containers.Modal) | |
}) | |
} | |
}) | |
} | |
}); | |
d.Vs.Reminders = Bb.View.extend({ | |
template: "admissions/onboard.scheduling.reminders.template.html", | |
initialize: function (f) { | |
var g = this; | |
g.date = f.date; | |
g.expand = f.expand || false | |
}, | |
events: { | |
"click .toggleinfo": "toggleInfo" | |
}, | |
render: function (f) { | |
$(f).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var f = this; | |
p3.fT(f.template, function (g) { | |
f.$el.html(g({ | |
collection: f.collection.toJSON(), | |
totalReminders: f.collection.length ? f.collection.at(0).get("TotalUniqueReminders") : 0, | |
expand: f.expand | |
})); | |
f.collection.each(function (h) { | |
var i = h.get("Reminders"); | |
_(i).each(function (k) { | |
var j = f.$(".adm-schedule-reminders[data-id=" + h.get("AdmOfficerId") + "]"), | |
l = new d.Vs.Reminder({ | |
model: new d.Ms.Reminder(k) | |
}); | |
p3.rV(l, j, false); | |
f.listenTo(l, "ReminderDismissed", function (m) { | |
f.trigger("ReminderDismissed", m) | |
}) | |
}) | |
}) | |
}) | |
}, | |
toggleInfo: function (f) { | |
var g = this; | |
f.stopPropagation(); | |
f.preventDefault(); | |
if (g.collection.length) { | |
g.$(".info").slideToggle("fast") | |
} | |
} | |
}); | |
d.Vs.Reminder = Bb.View.extend({ | |
template: "admissions/onboard.scheduling.reminder.template.html", | |
tagName: "table", | |
className: "table table-condensed white-bgc mb-0", | |
events: { | |
"click .dismiss": "dismissReminder" | |
}, | |
render: function (f) { | |
$(f).append(this.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var f = this; | |
p3.fT(f.template, function (g) { | |
f.$el.html(g({ | |
model: f.model.toJSON(), | |
args: f.model.get("ProspectUserId") + "/checklist" | |
})) | |
}) | |
}, | |
dismissReminder: function (f) { | |
var g = this; | |
f.stopPropagation(); | |
f.preventDefault(); | |
g.model.save({ | |
DismissInd: true | |
}, { | |
success: function () { | |
g.trigger("ReminderDismissed", g.model) | |
} | |
}) | |
} | |
}) | |
}(p3.module("admissions/scheduling"))); | |
(function (e) { | |
var f = p3.module("utilities/smodal"), | |
a = p3.module("shared/base"), | |
d = p3.module("utilities/multifetch"), | |
g = p3.Us.Tools, | |
b = p3.Us.Enum, | |
c = p3.Us.InfoMessageLibrary; | |
e.Ms.Decision = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "AdmDecisionId", | |
url: function () { | |
return this.id ? aP + "AdmDecision/Edit/" + this.id + "/" : aP + "AdmDecision/Edit/" | |
}, | |
validation: { | |
AdmDecisionName: [{ | |
required: true, | |
msg: c.P3.RequiredInfoNotEntered | |
}], | |
AdmDecisionTypeId: [{ | |
required: true, | |
msg: c.P3.RequiredInfoNotEntered | |
}] | |
} | |
}); | |
e.Ms.CandidateDecision = Bbm.extend({ | |
idAttribute: "CandDecisionId", | |
validation: { | |
CandDecisionName: [{ | |
required: true, | |
msg: c.P3.RequiredInfoNotEntered | |
}], | |
CandDecisionTypeId: [{ | |
required: true, | |
msg: c.P3.RequiredInfoNotEntered | |
}] | |
} | |
}); | |
e.Cs.Decisions = Bbc.extend({ | |
useSort: false, | |
sync: a.DataParamSync, | |
model: e.Ms.Decision, | |
url: function () { | |
if (this.useSort) { | |
this.useSort = false; | |
return aP + "AdmDecision/EditSort/" | |
} | |
return aP + "AdmDecision/List/" | |
} | |
}); | |
e.Cs.CandidateDecisions = Bbc.extend({ | |
model: e.Ms.CandidateDecision | |
}); | |
e.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.template.html", | |
initialize: function (h) { | |
var i = this; | |
i.Containers = {}; | |
i.collection = new e.Cs.Decisions() | |
}, | |
render: function (i) { | |
var j = this, | |
h; | |
p3.setTitle("Decisions"); | |
$(i).html(j.el); | |
h = $.extend({}, b.DictionaryData.ADMCommTempActiveUserTemp); | |
h.inputParam = h.inputParam.replace("@user_id=0[i]", "@user_id=" + p3.Data.Context.attributes.UserInfo.UserId + "[i]"); | |
d.Us.Fetch({ | |
ADMDecisionPlaceholder: { | |
data: new d.Cs.Dictionary(), | |
dataParams: b.DictionaryData.ADMDecisionPlaceholder | |
}, | |
ADMDecisionType: { | |
data: new d.Cs.Dictionary(), | |
dataParams: b.DictionaryData.ADMDecisionType | |
}, | |
ADMCommTempActiveUserTemp: { | |
data: new d.Cs.Dictionary(), | |
dataParams: h | |
}, | |
ADMCandDecisionType: { | |
data: new d.Cs.Dictionary(), | |
dataParams: b.DictionaryData.ADMCandDecisionType | |
} | |
}, function (k, m, l) { | |
if (l) { | |
p3.displayError("There was an error loading data.") | |
} | |
e.Data.Dictionaries = k; | |
j.renderData() | |
}) | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({})); | |
p3.rV(new e.Vs.Main({ | |
collection: h.collection | |
}), h.$(".col-center"), false) | |
}) | |
} | |
}); | |
e.Vs.Main = Bb.View.extend({ | |
template: "schooldecisions/schooldecisions.main.template.html", | |
className: "subhead", | |
events: { | |
"click #add-decision": "addDecision" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).html(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i()); | |
p3.rV(new e.Vs.Decisions({ | |
collection: h.collection | |
}), h.$(".school-decisions-container"), true) | |
}) | |
}, | |
addDecision: function (i) { | |
i.preventDefault(); | |
var j = this, | |
h = new e.Vs.DecisionModal({ | |
model: new e.Ms.Decision({ | |
CandDecisions: [{ | |
"$type": "clBLL.nAdmissions.CandDecision, clBLL" | |
}] | |
}), | |
dictionaries: e.Data.Dictionaries | |
}); | |
j.listenToOnce(h, "modelSaved", function () { | |
j.collection.add(h.model) | |
}); | |
f.Us.renderModal(h) | |
} | |
}); | |
e.Vs.Decisions = Bb.View.extend({ | |
template: "schooldecisions/schooldecisions.decisions.template.html", | |
initialize: function (h) { | |
var i = this; | |
i.collection.bind("add", function (k) { | |
var j = new e.Vs.Decision({ | |
model: k, | |
parentView: i | |
}); | |
p3.rV(j, i.$(".decisions-table tbody"), false) | |
}, this) | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({})); | |
h.collection.fetch({ | |
update: true, | |
cache: false, | |
complete: function () { | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
_.defer(function () { | |
h.initSortable() | |
}) | |
}) | |
} | |
}) | |
}) | |
}, | |
initSortable: function () { | |
var h = this; | |
h.$(".ui-sortable").sortable({ | |
items: ".sort-drag-block", | |
axis: "y", | |
distance: 5, | |
containment: ".ui-sortable", | |
appendTo: "#school-decisions-holder", | |
placeholder: "sortable-placeholder", | |
helper: function (j, k) { | |
var i = '<table class="table table-striped sort-drag-block-helper"><tbody>' + k.context.outerHTML + "</tbody></table>"; | |
return i | |
}, | |
update: function (j, m) { | |
var i = $(m.item), | |
k = i.index(), | |
l = m.item.triggerHandler("sortorder"); | |
h.collection.remove(h.collection.at(h.collection.indexOf(l))); | |
h.collection.add(l, { | |
at: k, | |
silent: true | |
}); | |
h.collection.useSort = true; | |
h.collection.save({}) | |
} | |
}).disableSelection() | |
} | |
}); | |
e.Vs.Decision = Bb.View.extend({ | |
template: "schooldecisions/schooldecisions.decision.template.html", | |
tagName: "tr", | |
className: "sort-drag-block", | |
initialize: function () { | |
var h = this; | |
Bb.Validation.bind(this, { | |
forceUpdate: true, | |
selector: "name" | |
}); | |
h.model.bind("sync", h.renderData, h); | |
_.bind(h.getModel, h) | |
}, | |
events: { | |
"click .edit": "editDecision", | |
"click .delete:not(:disabled)": "deleteDecision", | |
sortorder: "getModel" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var j = this, | |
h = "", | |
i = ""; | |
p3.fT(j.template, function (k) { | |
_.each(j.model.get("CandDecisions"), function (l) { | |
h += l.CandDecisionName + "<br />" | |
}); | |
i += j.model.get("DisplayContractAfterAccept") ? "Display contract only when candidate has accepted. <br />" : ""; | |
i += j.model.get("DisplayDeclineReason") ? "When a candidate declines, show Reason for Declining list. <br />" : ""; | |
i += j.model.get("DisplayDeclineSchool") ? "When a candidate declines, show Chosen School list. <br />" : ""; | |
j.$el.html(k({ | |
model: j.model.toJSON(), | |
candDecisions: h, | |
displayOptions: i | |
})); | |
$(".tooltip-link").tooltip() | |
}) | |
}, | |
editDecision: function (i) { | |
i.preventDefault(); | |
var j = this, | |
h = new e.Vs.DecisionModal({ | |
model: j.model, | |
dictionaries: e.Data.Dictionaries | |
}); | |
f.Us.renderModal(h) | |
}, | |
deleteDecision: function (i) { | |
var j = this, | |
h = j.$(".delete"); | |
h.prop("disabled", true); | |
p3.showConfirm("Delete Decision", "Wait a minute. Are you really sure you want to delete " + j.model.get("AdmDecisionName") + "?", null, function () { | |
j.model.destroy({ | |
success: function () { | |
j.deleteElement() | |
}, | |
error: function () { | |
p3.displayError("Error deleting decision"); | |
h.prop("disabled", false) | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
}, | |
getModel: function () { | |
var h = this; | |
return h.model | |
} | |
}); | |
e.Vs.DecisionModal = f.Vs.Modal2.extend({ | |
template: "schooldecisions/schooldecisions.edit.template.html", | |
events: { | |
"click .add": "addCandidateDecision" | |
}, | |
initSortable: function () { | |
var h = this; | |
h.$(".ui-sortable").sortable({ | |
startIndex: 0, | |
stopIndex: 0, | |
items: ".sort-drag-block", | |
axis: "y", | |
distance: 5, | |
containment: ".ui-sortable", | |
appendTo: "#candidate-decisions-holder", | |
placeholder: "sortable-placeholder", | |
helper: function (j, k) { | |
var i = '<table class="table table-striped sort-drag-block-helper"><tbody>' + k.context.outerHTML + "</tbody></table>"; | |
return i | |
}, | |
start: function (i, j) { | |
this.startIndex = j.item.index() | |
}, | |
update: function (i, j) { | |
this.stopIndex = j.item.index(); | |
h.candidateDecision.models = g.arrayMove(h.candidateDecision.models, this.startIndex, this.stopIndex) | |
} | |
}).disableSelection() | |
}, | |
modalInitialized: function () { | |
var h = this; | |
h.candidateDecision = new e.Cs.CandidateDecisions(); | |
h.candidateDecision.bind("add", function (i) { | |
p3.rV(new e.Vs.CandidateDecision({ | |
model: i | |
}), h.$("#candidate-decisions-holder tbody"), false) | |
}, h) | |
}, | |
modalDispose: function () { | |
var h = this; | |
$.each(h.$(".tinyeditor"), function () { | |
var i = tinyMCE.get(this.id); | |
if (i) { | |
i.remove() | |
} | |
}) | |
}, | |
modalRendered: function () { | |
var h = this; | |
f.Us.showHtmlEditor(h, "tinyeditor"); | |
h.candidateDecision.add(h.model.get("CandDecisions")); | |
p3.Us.PluginManager.Load(p3.Us.PluginManager.Plugins.jQueryUI, function () { | |
_.defer(function () { | |
h.initSortable() | |
}) | |
}); | |
h.setFocus() | |
}, | |
modalUpdate: function (l) { | |
var i = this, | |
h = l.eventCurrentTarget, | |
j = h.attr("name"), | |
m = h.val(), | |
k; | |
if (h.hasClass("placeholder")) { | |
tinyMCE.execCommand("mceReplaceContent", false, h.data("value")) | |
} else { | |
if (j === "AdmDecisionTypeId") { | |
k = g.stringToInt(m) !== 1; | |
i.$(".accepted-options").toggleClass("hide", k); | |
if (k) { | |
i.$(".accepted-options button").removeClass("active"); | |
i.model.set({ | |
DisplayContractAfterAccept: false, | |
DisplayDeclineReason: false, | |
DisplayDeclineSchool: false | |
}) | |
} | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
} | |
} | |
}, | |
modalSave: function () { | |
var i = this, | |
h = true; | |
$.each(i.$(".tinyeditor"), function () { | |
var j = {}; | |
j[this.name] = tinyMCE.get(this.id).save(); | |
i.model.set(j) | |
}); | |
h = _.every(i.candidateDecision.models, function (j) { | |
return j.isValid(true) | |
}); | |
if (h) { | |
i.model.set({ | |
CandDecisions: i.candidateDecision.toJSON() | |
}) | |
} else { | |
return false | |
} | |
}, | |
modalSavedSuccess: function () { | |
var h = this; | |
h.trigger("modelSaved") | |
}, | |
addCandidateDecision: function (i) { | |
var j = this, | |
h = { | |
"$type": "clBLL.nAdmissions.CandDecision, clBLL", | |
AdmDecisionId: j.model.get("AdmDecisionId"), | |
CandDecisionName: "", | |
CandDecisionTypeId: "", | |
DeleteInd: false, | |
InUse: false, | |
Publish: false | |
}; | |
j.candidateDecision.add(h) | |
} | |
}); | |
e.Vs.CandidateDecision = Bb.View.extend({ | |
template: "schooldecisions/schooldecisions.edit.candidatedecision.template.html", | |
tagName: "tr", | |
className: "sort-drag-block", | |
initialize: function (h) { | |
Bb.Validation.bind(this, { | |
forceUpdate: true, | |
selector: "name" | |
}) | |
}, | |
events: { | |
"change input": "updateCandidateDecision", | |
"change select": "updateCandidateDecision", | |
"click .checkbox-input": "updateCandidateDecision" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({ | |
model: h.model.toJSON(), | |
dictionaries: e.Data.Dictionaries | |
})) | |
}) | |
}, | |
updateCandidateDecision: function (h) { | |
f.Us.updateModel(h, this.model, "name") | |
} | |
}); | |
p3.router().route("settings/schooldecisions", "settings/schooldecisions", function () { | |
e.Data.Dictionaries = {}; | |
p3.renderMainPage(new e.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/SchoolDecisions"))); | |
(function (e) { | |
var d = p3.module("admissions/formrender/form"), | |
c = p3.module("shared/filesreview"), | |
a = p3.module("shared/base"), | |
f = p3.module("utilities/smodal"), | |
g = p3.Us.Tools, | |
b = p3.Us.Enum; | |
e.Ms.SelectSchoolFamily = Bbm.extend({ | |
sync: a.DataParamSync, | |
url: function () { | |
return aP + "SmartTuition/SelectSchoolFamily/" | |
} | |
}, { | |
type: "SmartAccount.Ms.SelectSchoolFamily" | |
}); | |
e.Ms.Login = Bbm.extend({ | |
url: function () { | |
return aP + "SmartTuition/FamilyLogin/" | |
} | |
}, { | |
type: "SmartAccount.Ms.Login" | |
}); | |
e.Ms.GenerateSchoolFamilyId = Bbm.extend({ | |
sync: a.DataParamSync, | |
url: function () { | |
return aP + "SmartTuition/GenerateSchoolFamilyId/" | |
} | |
}, { | |
type: "SmartAccount.Ms.GenerateSchoolFamilyId" | |
}); | |
e.Ms.ExistingPayer = Bbm.extend({ | |
sync: a.DataParamSync, | |
url: function () { | |
return aP + "SmartTuition/GetExistingPayer" | |
} | |
}, { | |
type: "SmartAccount.Ms.ExistingPayer" | |
}); | |
e.Ms.LinkExistingFamily = Bbm.extend({ | |
sync: a.DataParamSync, | |
url: function () { | |
return aP + "SmartTuition/LinkExistingFamily" | |
} | |
}, { | |
type: "SmartAccount.Ms.LinkExistingFamily" | |
}); | |
e.Ms.PasswordUrl = Bbm.extend({ | |
sync: a.DataParamSync, | |
url: function () { | |
return aP + "SmartTuition/GetPasswordResetUrl" | |
} | |
}, { | |
type: "SmartAccount.Ms.PasswordUrl" | |
}); | |
e.Cs.SmartFamilySnapshotsByUserId = Bbc.extend({ | |
sync: a.DataParamSync, | |
url: function () { | |
return aP + "SmartTuition/SmartSchoolFamilyCheck/" | |
} | |
}, { | |
type: "SmartAccount.Cs.SmartFamilySnapshotsByUserId" | |
}); | |
e.Cs.SmartFamilySnapshotsByPhoneEmail = Bbc.extend({ | |
sync: a.DataParamSync, | |
url: function () { | |
return aP + "SmartTuition/FamilySearchPhoneEmail/" | |
} | |
}, { | |
type: "SmartAccount.Cs.SmartFamilySnapshotsByPhoneEmail" | |
}); | |
e.Vs.SmartAccount = Bb.View.extend({ | |
template: "form/form.smart.account.template.html", | |
events: { | |
"click .radio-input": "hasAccount", | |
"click #continue-to-contract:not(.disabled)": "continueToContract", | |
"click #proceed-with-this-account": "continueToContractWithValidatedAccount", | |
"click #sign-in-to-a-different-account": "resetSignInForm" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var i = this, | |
h = new e.Ms.PasswordUrl(); | |
h.fetch({ | |
data: { | |
schoolYearLabel: i.model.get("SchoolYear") | |
}, | |
success: function (j, k) { | |
p3.fT(i.template, function (l) { | |
i.$el.html(l({ | |
form: i.model.toJSON(), | |
schoolName: p3.Data.SchoolContext.get("SchoolInfo").SchoolName, | |
url: h.get("PasswordURL"), | |
rejectMessage: i.options.rejectMessage | |
})); | |
i.options.rejectMessage = undefined; | |
if (i.options.triggerSelection === "yes") { | |
document.getElementById("btn-yes-to-account").click() | |
} | |
if (i.options.triggerSelection === "no") { | |
document.getElementById("btn-no-to-account").click() | |
} | |
}) | |
}, | |
error: function (k, j) { | |
p3.displayError("Error getting smart password url") | |
} | |
}) | |
}, | |
hasAccount: function (j) { | |
var k = this, | |
h = $("#has-smart-holder"), | |
i = $("#no-smart-holder"); | |
$("#continue-btn-holder").show(); | |
$("#different-smart-account-selected-holder").hide(); | |
$("#proceed-or-not-btn-holder").hide(); | |
e.Us.VerifySmartSetupType(k.options.smartSetupTypeId, function () { | |
k.hasAccount = g.stringToBoolean($(j.currentTarget).children("input").prop("value")); | |
$("#continue-to-contract").removeClass("disabled"); | |
h.toggle(k.hasAccount); | |
i.toggle(!k.hasAccount) | |
}) | |
}, | |
continueToContract: function (h) { | |
var i = this; | |
e.Us.VerifySmartSetupType(i.options.smartSetupTypeId, function () { | |
if (i.hasAccount) { | |
i.signIn() | |
} else { | |
i.createAccount() | |
} | |
}) | |
}, | |
resetSignInForm: function () { | |
$("#user-name-box").val(""); | |
$("#password-box").val(""); | |
$("#has-smart-holder").toggle(true); | |
$("#continue-btn-holder").show(); | |
$("#different-smart-account-selected-holder").hide(); | |
$("#proceed-or-not-btn-holder").hide(); | |
$("#continue-to-contract").removeClass("disabled") | |
}, | |
signIn: function () { | |
var p = this, | |
j = $("#user-name-box"), | |
n = j.val(), | |
k = $("#password-box"), | |
m = k.val(), | |
o = true, | |
i = $("#error-msg"), | |
h = p.$("#continue-to-contract"), | |
l; | |
i.hide(); | |
p.$(".control-group").removeClass("error"); | |
p.$(".form-control").removeClass("box-validate"); | |
if (n.length === 0) { | |
o = false; | |
$("#user-name-group").addClass("error"); | |
j.addClass("box-validate"); | |
i.html("Please enter a username and password").show() | |
} | |
if (m.length === 0) { | |
o = false; | |
$("#password-group").addClass("error"); | |
k.addClass("box-validate"); | |
i.html("Please enter a username and password").show() | |
} | |
if (o) { | |
h.addClass("disabled"); | |
l = new e.Ms.Login({ | |
schoolYearLabel: p.model.get("SchoolYear"), | |
userName: n, | |
password: m, | |
contractId: p.options.KeyId, | |
skipFamilyIdSave: !g.isEmpty(p.model.get("EmailPhoneMatchSnapshotSelected")) | |
}); | |
l.save({}, { | |
success: function (q, r) { | |
p.model.attributes.ValidatedLoginResponseSnapshot = r; | |
if (jQuery.isEmptyObject(r)) { | |
h.removeClass("disabled"); | |
i.html("Invalid username/password").show() | |
} else { | |
if (!r.SchoolFamilyId) { | |
p.createAccount() | |
} else { | |
if (!g.isEmpty(p.model.get("EmailPhoneMatchSnapshotSelected"))) { | |
if (p.model.get("EmailPhoneMatchSnapshotSelected").FamilyId !== r.FamilyId) { | |
$("#has-smart-holder").toggle(false); | |
$("#continue-btn-holder").hide(); | |
$("#different-smart-account-selected-holder").show(); | |
$("#proceed-or-not-btn-holder").show(); | |
$("#validated-smart-account").text(r.FirstName + " " + r.LastName + " - " + r.FamilyId) | |
} else { | |
p.continueToContractWithValidatedAccount() | |
} | |
} else { | |
p.loadContract() | |
} | |
} | |
} | |
}, | |
error: function (q, r) { | |
var s = e.Us.ParseErrorResponse(r.responseText, "SMART-ID-REJECTED:") || "Error logging in to smart"; | |
h.removeClass("disabled"); | |
i.text(s).show() | |
} | |
}) | |
} | |
}, | |
continueToContractWithValidatedAccount: function (i) { | |
var k = this, | |
j = new e.Ms.SelectSchoolFamily(k.model.get("ValidatedLoginResponseSnapshot")), | |
h = $("#continue-to-contract"); | |
h.addClass("disabled"); | |
e.Us.VerifySmartSetupType(k.options.smartSetupTypeId, function () { | |
j.save({}, { | |
dataParam: { | |
contractId: e.Data.KeyId | |
}, | |
success: function (l, m) { | |
window.location.replace("#contract/" + e.Data.FormId + "/keyid=" + e.Data.KeyId) | |
}, | |
error: function (m, l) { | |
h.removeClass("disabled"); | |
p3.displayError("Error saving smart tuition family") | |
} | |
}) | |
}) | |
}, | |
createAccount: function () { | |
var j = this, | |
h = j.$("#continue-to-contract"), | |
i = new e.Ms.GenerateSchoolFamilyId(); | |
h.addClass("disabled"); | |
i.fetch({ | |
data: { | |
contractId: j.options.KeyId, | |
secondPayer: false | |
}, | |
success: function (k, l) { | |
j.loadContract() | |
}, | |
error: function (l, k) { | |
h.removeClass("disabled"); | |
p3.displayError("Error generating family id") | |
} | |
}) | |
}, | |
loadContract: function () { | |
var h = this; | |
window.location.replace("#contract/" + h.options.ApplicationFormId + "/keyid=" + h.options.KeyId) | |
} | |
}); | |
e.Vs.SmartAccountMultiple = Bb.View.extend({ | |
template: "form/form.smart.account.multiple.template.html", | |
events: { | |
"click .radio-sky-input": "selectAccount", | |
"click #continue-to-contract:not(.disabled)": "continueToContract", | |
"click #email-phone-match-yes-btn:not(.disabled)": "returnToSmartAccountViewAndSelectYes", | |
"click #email-phone-match-no-btn": "returnToSmartAccountViewAndSelectNo" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({ | |
schoolName: p3.Data.SchoolContext.get("SchoolInfo").SchoolName, | |
form: h.model.toJSON(), | |
collection: h.collection.toJSON() | |
})) | |
}) | |
}, | |
selectAccount: function (i) { | |
var k = this, | |
h = $(i.currentTarget), | |
j = h.children("input").prop("value"); | |
k.snapshot = _.findWhere(k.collection.toJSON(), { | |
FamilyId: j | |
}); | |
$("#sign-in-notice").show(); | |
$("#continue-to-contract").removeClass("disabled"); | |
$("#email-phone-match-yes-btn").removeClass("disabled") | |
}, | |
continueToContract: function (i) { | |
var k = this, | |
j = new e.Ms.SelectSchoolFamily(k.snapshot), | |
h = $("#continue-to-contract"); | |
h.addClass("disabled"); | |
e.Us.VerifySmartSetupType(k.options.smartSetupTypeId, function () { | |
j.save({}, { | |
dataParam: { | |
contractId: e.Data.KeyId | |
}, | |
success: function (l, m) { | |
window.location.replace("#contract/" + e.Data.FormId + "/keyid=" + e.Data.KeyId) | |
}, | |
error: function (m, l) { | |
h.removeClass("disabled"); | |
p3.displayError("Error saving smart tuition family") | |
} | |
}) | |
}) | |
}, | |
returnToSmartAccountViewAndSelectYes: function () { | |
var h = this; | |
h.model.attributes.EmailPhoneMatchSnapshotSelected = h.snapshot; | |
p3.renderMainPage(new e.Vs.SmartAccount({ | |
ApplicationFormId: h.options.ApplicationFormId, | |
KeyId: h.options.KeyId, | |
model: h.model, | |
smartSetupTypeId: h.options.smartSetupTypeId, | |
triggerSelection: "yes" | |
})) | |
}, | |
returnToSmartAccountViewAndSelectNo: function () { | |
var h = this; | |
p3.renderMainPage(new e.Vs.SmartAccount({ | |
ApplicationFormId: h.options.ApplicationFormId, | |
KeyId: h.options.KeyId, | |
model: h.model, | |
smartSetupTypeId: h.options.smartSetupTypeId, | |
triggerSelection: "no" | |
})) | |
} | |
}); | |
e.Vs.ExistingPayer = Bb.View.extend({ | |
template: "form/form.smart.second.payer.template.html", | |
events: { | |
"click #new-account-button": "createAccount", | |
"click #existing-account-button": "useExisting" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var i = this, | |
h = new e.Ms.ExistingPayer(); | |
h.fetch({ | |
data: { | |
contractId: i.options.KeyId | |
}, | |
success: function () { | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
form: i.model.toJSON(), | |
ExistingUser: h.get("FirstName") + " " + h.get("LastName") | |
})) | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error checking existing payer") | |
} | |
}) | |
}, | |
createAccount: function (i) { | |
var j = this, | |
h; | |
e.Us.VerifySmartSetupType(j.options.SetupTypeId, function () { | |
h = f.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.confirm.html", | |
size: "md", | |
variables: { | |
title: "Joint or split accounts", | |
text: "<p><b>Are you sure you want to have a different Smart Tuition account than the other person responsible for paying tuition and fees for this student?</b><p><p>If yes, an account will be set up for 50% of the tuition and fees due. If your school charges a tuition deposit or enrollment fees, the first payer completing the contract will be responsible for paying 100% of those at the time the contract is completed. If you need to change this arrangement, please contact your school directly.", | |
cancelText: "Cancel", | |
confirmText: "Yes, create a second Smart Tuition Account" | |
}, | |
modalSave: function () { | |
p3.Layout.Containers.Modal.modal("hide"); | |
j.$(".smart-option-content-section").hide(); | |
j.$(".smart-option-loading").show(); | |
e.Us.CheckForSmartAccountByUserId(j.model, j.options.ApplicationFormId, j.options.KeyId); | |
return false | |
} | |
}); | |
f.Us.renderModal(new h({})) | |
}) | |
}, | |
useExisting: function (h) { | |
var i = this; | |
e.Us.VerifySmartSetupType(i.options.SetupTypeId, function () { | |
i.$(".smart-option-loading").show(); | |
i.$(".smart-option-container").hide(); | |
e.Us.AddSecondPayerToSmartFamily(i.options.ApplicationFormId, i.options.KeyId) | |
}) | |
} | |
}); | |
e.Vs.SecondChild = Bb.View.extend({ | |
template: "form/form.smart.second.child.template.html", | |
events: { | |
"click #new-account-button": "createAccount", | |
"click #existing-account-button": "useExisting" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var i = this, | |
h = p3.Data.SchoolContext.get("SchoolInfo").SchoolName; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
form: i.model.toJSON(), | |
schoolName: h | |
})) | |
}) | |
}, | |
createAccount: function (i) { | |
var j = this, | |
h; | |
e.Us.VerifySmartSetupType(j.options.SetupTypeId, function () { | |
h = f.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.confirm.html", | |
size: "md", | |
variables: { | |
title: "Create a second Smart Tuition account", | |
text: "<p><b>Are you sure you want to create a separate Smart Tuition account for this child?</b><p><p>Only choose to create a separate Smart Tuition account if there will be different responsible payers, different payment plans or different payment methods for each child.<p><p>Having separate Smart Tuition accounts means your children's school expenses will appear on different invoices. Also, if your payment plans charge an administrative fee, you will need to pay it for each child.<p>", | |
cancelText: "Cancel", | |
confirmText: "Yes, create a second Smart Tuition Account" | |
}, | |
modalSave: function () { | |
p3.Layout.Containers.Modal.modal("hide"); | |
j.$(".smart-option-loading").show(); | |
j.$(".bb-tile-content-section").hide(); | |
e.Us.CheckForSmartAccountByUserId(j.model, j.options.ApplicationFormId, j.options.KeyId, b.SmartFamilySetupMode.Enroll2ndStudentSeparate.Value); | |
return false | |
} | |
}); | |
f.Us.renderModal(new h({})) | |
}) | |
}, | |
useExisting: function (h) { | |
var i = this; | |
e.Us.VerifySmartSetupType(i.options.SetupTypeId, function () { | |
i.$(".smart-option-loading").show(); | |
i.$(".bb-tile-content-section").hide(); | |
e.Us.LinkSmartFamilyToContract(i.model, i.options.KeyId, i.options.SetupTypeId) | |
}) | |
} | |
}); | |
e.Vs.SecondParentNoSplit = Bb.View.extend({ | |
template: "form/form.smart.second.payer.nosplit.template.html", | |
events: { | |
"click #continue-button": "addPayer" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.renderData() | |
}, | |
renderData: function () { | |
var i = this, | |
h = new e.Ms.ExistingPayer(); | |
h.fetch({ | |
data: { | |
contractId: i.options.KeyId | |
}, | |
success: function () { | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({ | |
form: i.model.toJSON(), | |
ExistingUser: h.get("FirstName") + " " + h.get("LastName") | |
})) | |
}) | |
}, | |
error: function () { | |
p3.displayError("Error checking existing payer") | |
} | |
}) | |
}, | |
addPayer: function (h) { | |
var i = this; | |
e.Us.AddSecondPayerToSmartFamily(i.options.ApplicationFormId, i.options.KeyId) | |
} | |
}); | |
e.Us.AddSecondPayerToSmartFamily = function (h, j) { | |
var i = new e.Ms.GenerateSchoolFamilyId(); | |
i.fetch({ | |
data: { | |
contractId: j, | |
secondPayer: true | |
}, | |
success: function (k, l) { | |
window.location.replace("#contract/" + h + "/keyid=" + j) | |
}, | |
error: function (k, l) { | |
$("#site-main .smart-option-loading").hide(); | |
$("#site-main .smart-option-container").show(); | |
p3.displayError("Error adding second payer to school family id") | |
} | |
}) | |
}; | |
e.Us.CreateFamilyForSecondPayer = function (h, j) { | |
var i = new e.Ms.GenerateSchoolFamilyId(); | |
i.fetch({ | |
data: { | |
contractId: j, | |
secondPayer: false | |
}, | |
success: function (k, l) { | |
window.location.replace("#contract/" + h + "/keyid=" + j) | |
}, | |
error: function (k, l) { | |
$("#site-main .smart-option-loading").hide(); | |
$("#site-main .smart-option-container").show(); | |
p3.displayError("Error creating family for second payer") | |
} | |
}) | |
}; | |
e.Us.LinkSmartFamilyToContract = function (i, j, l) { | |
var k = new e.Ms.LinkExistingFamily(), | |
h = i.get("ApplicationFormId"); | |
k.save({}, { | |
dataParam: { | |
contractId: j, | |
setupTypeId: l | |
}, | |
success: function (m, n) { | |
if (!n || !n.SchoolFamilyId) { | |
e.Us.CheckForSmartAccountByUserId(i, h, j) | |
} else { | |
window.location.replace("#contract/" + h + "/keyid=" + j) | |
} | |
}, | |
error: function (n, m) { | |
$("#site-main .smart-option-loading").hide(); | |
$("#site-main .smart-option-container").show(); | |
p3.displayError("Error linking smart family") | |
} | |
}) | |
}; | |
e.Us.CheckForSmartAccountByUserId = function (i, h, j, k) { | |
var l = new e.Cs.SmartFamilySnapshotsByUserId(); | |
l.fetch({ | |
data: { | |
schoolYearLabel: i.get("SchoolYear"), | |
contractId: j, | |
smartSetupTypeId: k | |
}, | |
success: function (m, n) { | |
if (n.length === 0) { | |
e.Us.CheckForSmartAccountByPhoneEmail(i, h, j, k) | |
} else { | |
if (n.length === 1) { | |
window.location.replace("#contract/" + h + "/keyid=" + j) | |
} else { | |
if (n.length > 1) { | |
p3.renderMainPage(new e.Vs.SmartAccountMultiple({ | |
ApplicationFormId: h, | |
KeyId: j, | |
model: i, | |
collection: l, | |
smartSetupTypeId: k | |
})) | |
} | |
} | |
} | |
}, | |
error: function (m, n) { | |
var o = e.Us.ParseErrorResponse(n.responseText, "SMART-ID-REJECTED:"); | |
$("#site-main .smart-option-loading").hide(); | |
$("#site-main .smart-option-container").show(); | |
if (o) { | |
p3.renderMainPage(new e.Vs.SmartAccount({ | |
ApplicationFormId: h, | |
KeyId: j, | |
model: i, | |
rejectMessage: o, | |
smartSetupTypeId: k | |
})) | |
} else { | |
p3.displayError("Error checking smart family") | |
} | |
} | |
}) | |
}; | |
e.Us.CheckForSmartAccountByPhoneEmail = function (i, h, j, k) { | |
var l = new e.Cs.SmartFamilySnapshotsByPhoneEmail(); | |
l.fetch({ | |
data: { | |
schoolYearLabel: i.get("SchoolYear"), | |
contractId: j | |
}, | |
success: function (m, n) { | |
if (n.length === 0) { | |
p3.renderMainPage(new e.Vs.SmartAccount({ | |
ApplicationFormId: h, | |
KeyId: j, | |
model: i, | |
smartSetupTypeId: k | |
})) | |
} else { | |
if (n.length === 1) { | |
i.attributes.PhoneOrEmailMatched = true; | |
p3.renderMainPage(new e.Vs.SmartAccountMultiple({ | |
ApplicationFormId: h, | |
KeyId: j, | |
model: i, | |
collection: l, | |
smartSetupTypeId: k | |
})) | |
} else { | |
if (n.length > 1) { | |
i.attributes.PhoneOrEmailMatched = true; | |
p3.renderMainPage(new e.Vs.SmartAccountMultiple({ | |
ApplicationFormId: h, | |
KeyId: j, | |
model: i, | |
collection: l, | |
smartSetupTypeId: k | |
})) | |
} | |
} | |
} | |
}, | |
error: function (m, n) { | |
var o = e.Us.ParseErrorResponse(n.responseText, "SMART-ID-REJECTED:"); | |
$("#site-main .smart-option-loading").hide(); | |
$("#site-main .smart-option-container").show(); | |
if (o) { | |
p3.renderMainPage(new e.Vs.SmartAccount({ | |
ApplicationFormId: h, | |
KeyId: j, | |
model: i, | |
rejectMessage: o, | |
smartSetupTypeId: k | |
})) | |
} else { | |
p3.displayError("Error checking smart family") | |
} | |
} | |
}) | |
}; | |
e.Us.VerifySmartSetupType = function (m, h) { | |
var i, l, j, k; | |
if (m) { | |
l = new c.Ms.SmartTuitionContractSetup(); | |
l.fetch({ | |
data: { | |
contractId: e.Data.KeyId | |
}, | |
success: function (n, o) { | |
i = l.get("SmartSetupTypeId"); | |
if (i === m || (i === b.SmartFamilySetupMode.Enroll2ndStudent.Value && m === b.SmartFamilySetupMode.Enroll2ndStudentSeparate.Value)) { | |
h() | |
} else { | |
k = f.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.message.html", | |
size: "md", | |
variables: { | |
title: "Smart Tuition setup has changed", | |
infoText: "Your Smart Tuition contract setup has changed since this page was displayed. Please click OK to view new options.", | |
cancelText: "OK" | |
}, | |
modalCanceled: function () { | |
j = "#smartaccount/" + e.Data.FormId + "/" + e.Data.KeyId + "/" + i; | |
p3.router().navigate(j, true) | |
} | |
}); | |
f.Us.renderModal(new k({})) | |
} | |
}, | |
error: function (o, n) { | |
p3.displayError("Error loading Smart Tuition family setup type") | |
} | |
}) | |
} else { | |
h() | |
} | |
}; | |
e.Us.ParseErrorResponse = function (m, j, h) { | |
var k = m.indexOf(j), | |
l = (k >= 0) ? k + j.length : -1, | |
i; | |
h = h || "."; | |
if (l >= 0) { | |
i = m.substring(l, 1 + m.indexOf(h, l)) | |
} | |
return i | |
}; | |
p3.router().route("smartaccount/:formid/:keyid/:smartSetupTypeId", "contract", function (h, j, m) { | |
var i = new d.Ms.ApplicationForm({ | |
ApplicationFormId: h | |
}), | |
k = g.stringToInt(m), | |
l = b.SmartFamilySetupMode; | |
e.Data.FormId = g.stringToInt(h); | |
e.Data.KeyId = g.stringToInt(j); | |
i.fetch({ | |
cache: false, | |
success: function (n, o) { | |
if (k === l.Enroll2ndStudent.Value) { | |
p3.renderMainPage(new e.Vs.SecondChild({ | |
ApplicationFormId: h, | |
KeyId: j, | |
SetupTypeId: k, | |
model: i | |
})) | |
} else { | |
if (k === l.ForceParent2Split.Value) { | |
e.Us.CheckForSmartAccountByUserId(i, h, j, k) | |
} else { | |
if (k === l.EnrollParent2NoSplit.Value) { | |
p3.renderMainPage(new e.Vs.SecondParentNoSplit({ | |
ApplicationFormId: h, | |
KeyId: j, | |
model: i | |
})) | |
} else { | |
if (k === l.PromptParent2Split.Value) { | |
p3.renderMainPage(new e.Vs.ExistingPayer({ | |
ApplicationFormId: h, | |
KeyId: j, | |
SetupTypeId: k, | |
model: i | |
})) | |
} else { | |
if (k === l.EnrollParent2OneAccount.Value) { | |
e.Us.AddSecondPayerToSmartFamily(h, j) | |
} else { | |
if (k === l.LinkFamilyToContract.Value) { | |
p3.renderMainPage(new e.Vs.SecondChild({ | |
ApplicationFormId: h, | |
KeyId: j, | |
SetupTypeId: k, | |
model: i | |
})) | |
} else { | |
e.Us.CheckForSmartAccountByUserId(i, h, j, k) | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
error: function () { | |
p3.displayError("Error loading form") | |
} | |
}) | |
}) | |
}(p3.module("admissions/SmartAccount"))); | |
(function (b) { | |
var a = p3.module("shared/base"); | |
b.Ms.Log = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ApplicationFormId" | |
}); | |
b.Cs.Logs = Bbc.extend({ | |
sync: a.DataParamSync, | |
model: b.Ms.Log, | |
url: function () { | |
return aP + "SmartTuition/APILogBrowse/" | |
} | |
}); | |
b.Vs.Layout = Bb.View.extend({ | |
template: "page/page.10-2.header.template.html", | |
render: function (c) { | |
var d = this; | |
p3.setTitle("Smart Log"); | |
$(c).append(d.el); | |
d.renderData() | |
}, | |
renderData: function () { | |
var c = this; | |
p3.fT(c.template, function (d) { | |
c.$el.html(d({})); | |
p3.rV(new b.Vs.Header(), c.$(".header"), false); | |
p3.rV(new b.Vs.Logs(), c.$(".col-left"), false) | |
}) | |
} | |
}); | |
b.Vs.Header = Bb.View.extend({ | |
className: "subhead", | |
render: function (c) { | |
var d = this; | |
$(c).html(d.el); | |
d.renderData() | |
}, | |
renderData: function () { | |
p3.log("Header") | |
} | |
}); | |
b.Vs.Logs = Bb.View.extend({ | |
className: "subhead", | |
render: function (c) { | |
var d = this; | |
$(c).html(d.el); | |
d.renderData() | |
}, | |
renderData: function () { | |
p3.log("Logs") | |
} | |
}); | |
b.Vs.Log = Bb.View.extend({ | |
className: "subhead", | |
render: function (c) { | |
var d = this; | |
$(c).html(d.el); | |
d.renderData() | |
}, | |
renderData: function () { | |
p3.log("Log") | |
} | |
}); | |
p3.router().route("smartlog", "smartlog", function () { | |
p3.renderMainPage(new b.Vs.Layout()) | |
}) | |
}(p3.module("admissions/smartlog"))); | |
(function (e) { | |
var d = p3.module("utilities/smodal"), | |
a = p3.module("shared/base"), | |
c = p3.module("utilities/multifetch"), | |
b = p3.Us.Enum; | |
e.Ms.SsatbSettingType = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ProfileSettingTypeId" | |
}); | |
e.Cs.ProfileSettingTypes = Bbc.extend({ | |
sync: a.DataParamSync, | |
model: e.Ms.SsatbSettingType, | |
url: function () { | |
return aP + "Ssatb/SettingTypeList/" | |
} | |
}); | |
e.Vs.Layout = Bb.View.extend({ | |
template: "page/page.12.template.html", | |
render: function (f) { | |
var g = this; | |
p3.setTitle("Candidate Profile Settings"); | |
$(f).html(g.el); | |
g.renderData() | |
}, | |
renderData: function () { | |
var f = this; | |
p3.fT(f.template, function (g) { | |
f.$el.html(g({})); | |
p3.rV(new e.Vs.Main(), f.$(".col-center"), false) | |
}) | |
} | |
}); | |
e.Vs.Main = Bb.View.extend({ | |
template: "ssatb/ssatb.main.template.html", | |
render: function (f) { | |
var g = this; | |
$(f).append(g.el); | |
g.renderData() | |
}, | |
renderData: function () { | |
var g = this, | |
f; | |
p3.fT(g.template, function (h) { | |
g.$el.html(h({})); | |
f = g.$(".candidate-settings-table tbody"); | |
p3.rV(new e.Vs.Type({ | |
collection: new e.Cs.ProfileSettingTypes(), | |
settingType: b.SsatbSettingTypes.ETHNICITY, | |
dictionaryEnum: b.DictionaryData.EthnicityTypes | |
}), f, false); | |
p3.rV(new e.Vs.Type({ | |
collection: new e.Cs.ProfileSettingTypes(), | |
settingType: b.SsatbSettingTypes.GRADE, | |
dictionaryEnum: b.DictionaryData.GradeLevel | |
}), f, false); | |
p3.rV(new e.Vs.Type({ | |
collection: new e.Cs.ProfileSettingTypes(), | |
settingType: b.SsatbSettingTypes.RELATIONSHIP, | |
dictionaryEnum: b.DictionaryData.ADMConnectionsRelTypes | |
}), f, false) | |
}) | |
} | |
}); | |
e.Vs.Type = Bb.View.extend({ | |
template: "ssatb/ssatb.type.template.html", | |
tagName: "tr", | |
events: { | |
"click .edit": "edit", | |
"click .toggleLink": "toggleSection" | |
}, | |
render: function (f) { | |
var g = this; | |
g.settingOpen = false; | |
$(f).append(g.el); | |
c.Us.Fetch({ | |
Mapping: { | |
data: new c.Cs.Dictionary(), | |
dataParams: g.options.dictionaryEnum | |
} | |
}, function (h, j, i) { | |
if (i) { | |
p3.displayError("There was an error loading data.") | |
} | |
g.dictionaries = h; | |
g.renderData() | |
}) | |
}, | |
renderData: function () { | |
var f = this; | |
p3.fT(f.template, function (g) { | |
f.collection.fetch({ | |
data: { | |
settingTypeId: f.options.settingType.Value | |
}, | |
update: true, | |
cache: false, | |
success: function (h, i) { | |
f.$el.html(g({ | |
collection: f.collection.toJSON(), | |
settingName: f.options.settingType.Name, | |
dictionaries: f.dictionaries, | |
settingOpen: f.settingOpen | |
})) | |
} | |
}) | |
}) | |
}, | |
edit: function (f) { | |
var h = this, | |
g; | |
g = d.Vs.Modal2.extend({ | |
template: "ssatb/ssatb.type.edit.template.html", | |
collection: h.collection, | |
variables: { | |
settingName: h.options.settingType.Name | |
}, | |
modalRendered: function (j) { | |
var i = this; | |
i.collection.each(function (l) { | |
var k = new e.Vs.EditType({ | |
model: l, | |
selector: i.selector, | |
dictionaries: h.dictionaries | |
}); | |
p3.rV(k, i.$("#edit-types-holder tbody"), false) | |
}) | |
}, | |
modalUpdate: function (i) { | |
return false | |
}, | |
saveModel: function () { | |
var j = this, | |
i = true; | |
i = _.every(j.collection.models, function (k) { | |
return k.isValid(true) | |
}); | |
if (i) { | |
j.collection.save({ | |
dataParam: { | |
settingTypeId: h.options.settingType.Value, | |
returnModel: true | |
}, | |
success: function (k) { | |
p3.fT(h.template, function (l) { | |
h.$(h.el).empty(); | |
h.collection.reset(k); | |
h.$el.html(l({ | |
collection: h.collection.toJSON(), | |
settingName: h.options.settingType.Name, | |
dictionaries: h.dictionaries, | |
settingOpen: h.settingOpen | |
})) | |
}); | |
p3.Layout.Containers.Modal.modal("hide") | |
}, | |
error: function (l, k) { | |
h.$(".save").button("reset") | |
} | |
}) | |
} | |
return false | |
} | |
}); | |
d.Us.renderModal(new g()) | |
}, | |
toggleSection: function (g) { | |
g.preventDefault(); | |
g.stopPropagation(); | |
var h = this, | |
f = $(g.currentTarget); | |
f.siblings(".toggledetail").slideToggle("fast"); | |
f.find("i").toggleClass("p3icon-downArrow p3icon-sideArrow"); | |
if (f.hasClass("active")) { | |
f.removeClass("active"); | |
h.settingOpen = false | |
} else { | |
f.addClass("active"); | |
h.settingOpen = true | |
} | |
} | |
}); | |
e.Vs.EditType = Bb.View.extend({ | |
template: "ssatb/ssatb.type.edit.row.template.html", | |
tagName: "tr", | |
events: { | |
'change [name="MappingSettingTypeId"]': "setMapping" | |
}, | |
render: function (f) { | |
var g = this; | |
$(f).append(g.el); | |
g.renderData() | |
}, | |
renderData: function () { | |
var f = this; | |
p3.fT(f.template, function (g) { | |
f.$el.html(g({ | |
model: f.model.toJSON(), | |
dictionaries: f.options.dictionaries | |
})); | |
p3.setModalHeight(p3.Layout.Containers.Modal) | |
}) | |
}, | |
setMapping: function (f) { | |
var g = this; | |
_.defer(function () { | |
g.model.set({ | |
MappingSettingTypeId: $(f.currentTarget).prop("value") | |
}) | |
}) | |
} | |
}); | |
p3.router().route("settings/sao", "settings/sao", function () { | |
e.Data.Dictionaries = {}; | |
p3.renderMainPage(new e.Vs.Layout({})) | |
}) | |
}(p3.module("admissions/SSATBSettings"))); | |
(function (d) { | |
var b = p3.module("shared/base"), | |
f = p3.module("shared/datepicker"), | |
n = p3.module("shared/timepicker"), | |
c = p3.module("admissions/managecandidates"), | |
a = p3.module("admissions/admissionsscheduling"), | |
e = p3.module("admissions/candidateprofile"), | |
k = p3.module("admissions/candidate/schools"), | |
g = p3.module("utilities/dictionary"), | |
l = p3.module("utilities/smodal"), | |
h = p3.Us.Enum, | |
o = p3.Us.Tools, | |
i = p3.Us.InfoMessageLibrary, | |
m = p3.module("shared/task"), | |
j = p3.module("utilities/multifetch"); | |
d.Ms.Checklist = Bbm.extend({ | |
sync: b.DataParamSync, | |
getChecklistSteps: function () { | |
var p = this.get("ProspectChecklistStep"); | |
if (p && p.length) { | |
p = new d.Cs.ChecklistSteps(p) | |
} | |
return p | |
}, | |
url: function () { | |
return aP + "admissions/ProspectCheckListADM/" | |
} | |
}); | |
d.Ms.ChecklistStep = Bbm.extend({ | |
sync: b.DataParamSync, | |
getChecklistItems: function () { | |
var p = this.get("ProspectChecklistItem"); | |
if (p && p.length) { | |
p = new d.Cs.ChecklistItems(p) | |
} | |
return p | |
}, | |
url: function () { | |
return aP + "admissions/ProspectCheckListADM/" | |
} | |
}); | |
d.Ms.ChecklistItem = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ChecklistItemId", | |
validation: { | |
Comment: [{ | |
required: false, | |
maxLength: 4000, | |
msg: i.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return aP + "admissions/ProspectCheckListItem/" + this.id | |
} | |
}); | |
d.Ms.ChangeChecklist = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "CheckListId", | |
url: function () { | |
return aP + "admissions/ProspectCheckListADM/" + this.id | |
} | |
}); | |
d.Ms.Decision = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "DecisionId", | |
validation: { | |
AdmDecisionDate: [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}, { | |
date: true | |
}], | |
AdmDecisionId: [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}], | |
PublishDate: [{ | |
fn: function (t, r, s) { | |
var p = $("#PublishDate"), | |
q = $("#PublishTime"); | |
if ((p.val() == "" && q.val() != "") || (p.val() != "" && q.val() == "")) { | |
return i.P3.RequiredInfoNotEntered | |
} | |
} | |
}, { | |
date: true | |
}], | |
ExpireDate: [{ | |
date: true | |
}], | |
CandDecisionDate: [{ | |
date: true | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/prospectdecision/" + this.id + "/" : aP + "admissions/prospectdecision/" | |
} | |
}); | |
d.Ms.Application = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ProspectApplicationId", | |
validation: { | |
Description: [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}], | |
"AttachmentFile.Attachment": [{ | |
required: true, | |
msg: i.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/ProspectApplication/" + this.id + "/" : aP + "admissions/ProspectApplication/" | |
} | |
}); | |
d.Ms.ApplicationResubmit = Bbm.extend({ | |
idAttribute: "ApplicationId", | |
url: function () { | |
return this.id ? aP + "Schoolform/Unsubmit/" + this.id + "/" : aP + "Schoolform/Unsubmit/" | |
} | |
}); | |
d.Ms.CommitteeProspect = Bbm.extend({ | |
url: function () { | |
return aP + "CommitteeReview/CommitteeProspectNameGet" | |
} | |
}); | |
d.Cs.ChecklistSteps = Bbc.extend({ | |
model: d.Ms.ChecklistStep | |
}); | |
d.Cs.ChecklistItems = Bbc.extend({ | |
model: d.Ms.ChecklistItem | |
}); | |
d.Cs.Decisions = Bbc.extend({ | |
model: d.Ms.Decision, | |
url: function () { | |
return aP + "admissions/ProspectDecisionList/" | |
} | |
}); | |
d.Cs.Acknowledgements = Bbc.extend({ | |
url: function () { | |
return aP + "datadirect/AcknowledgementsGet/" | |
} | |
}); | |
d.Cs.Applications = Bbc.extend({ | |
model: d.Ms.Application, | |
url: function () { | |
return aP + "admissions/ProspectApplicationList/" | |
} | |
}); | |
d.Cs.ProspectCommitteeReviews = Bbc.extend({ | |
url: function () { | |
return aP + "admissions/ProspectCommitteeReviewsGet/" | |
} | |
}); | |
d.Cs.CommitteeProspectSubmittedReviews = Bbc.extend({ | |
url: "CommitteeReview/CommitteeProspectSubmittedReviews" | |
}); | |
d.Cs.SchoolFormIds = Bbm.extend({ | |
url: function () { | |
return aP + "DataDirect/SchoolFormIdsGetByUser" | |
} | |
}); | |
d.Us.ChangeChecklist = function (p) { | |
d.Data.ChangeChecklist = false; | |
_.each(p, function (q) { | |
_.each(q.ProspectChecklistItem, function (r) { | |
if (r.StepCompletedInd) { | |
d.Data.ChangeChecklist = true | |
} | |
}) | |
}) | |
}; | |
d.Us.CommentIcon = function (p, q) { | |
if (q) { | |
p.removeClass("text-muted") | |
} else { | |
p.addClass("text-muted") | |
} | |
}; | |
d.Functions = { | |
openCommitteeReviewDetailsModal: function (s) { | |
s.preventDefault(); | |
var r = $(s.currentTarget).data("id"), | |
p, q; | |
if (!o.isEmpty(r)) { | |
j.Us.Fetch({ | |
SubmittedReviews: { | |
data: new d.Cs.CommitteeProspectSubmittedReviews(), | |
dataParams: { | |
committeeProspectId: r | |
} | |
}, | |
CommitteeProspect: { | |
data: new d.Ms.CommitteeProspect(), | |
dataParams: { | |
committeeProspectId: r | |
} | |
} | |
}, function (t, v, u) { | |
if (v) { | |
if (t.SubmittedReviews.models === undefined || t.SubmittedReviews.models.length === 0) { | |
p = true | |
} | |
if (t.CommitteeProspect !== undefined && t.CommitteeProspect.attributes !== undefined && t.CommitteeProspect.attributes.ProspectUser !== undefined) { | |
q = t.CommitteeProspect.attributes.ProspectUser.FirstName + " " + t.CommitteeProspect.attributes.ProspectUser.LastName | |
} | |
l.Us.renderModal(new d.Vs.CommitteeReviewDetailsModal({ | |
variables: { | |
areThereZeroReviews: p, | |
candidateName: q | |
}, | |
collection: t.SubmittedReviews | |
})) | |
} | |
}) | |
} | |
} | |
}; | |
d.Vs.Layout = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.template.html", | |
events: { | |
renderdata: "renderData" | |
}, | |
initialize: function () { | |
var p = this; | |
if (p.options) { | |
p.userId = p.options.userId | |
} | |
d.Data.Filter = ["All"]; | |
d.Data.prospectInstanceId = this.options.instanceId; | |
d.Data.userId = this.options.userId; | |
d.Data.ChangeChecklist = false; | |
d.Data.enteringYear = p.options.enteringYear; | |
d.Data.enteringGrade = p.options.enteringGrade | |
}, | |
render: function (p) { | |
var q = this; | |
p3.setTitle("Candidate Checklist"); | |
$(p).html(q.el); | |
g.Us.FetchAll({ | |
ADMCandidateDataCollectionStatuses: h.DictionaryData.ADMCandidateDataCollectionStatuses | |
}, function (r) { | |
d.Data.dictionaries = r; | |
q.renderData() | |
}) | |
}, | |
renderData: function () { | |
var p = this; | |
p3.fT(p.template, function (r) { | |
p.$el.html(r({})); | |
var q = new d.Vs.Checklist({ | |
instanceId: p.options.instanceId, | |
userId: p.options.userId, | |
layoutView: p | |
}); | |
q.on("filterItems", function () { | |
p.renderData() | |
}); | |
p3.rV(q, $("#content"), false) | |
}) | |
} | |
}); | |
d.Vs.Checklist = Bb.View.extend({ | |
template: "candidatechecklist/candidate.detail.checklist.template.html", | |
initialize: function () { | |
var p = this; | |
p.model = new d.Ms.Checklist() | |
}, | |
events: { | |
"click .changechecklistbtn": "changeChecklist", | |
"click .toggleMilestones": "toggleMilestones", | |
"click .status-filter": "statusFilterClicked" | |
}, | |
render: function (p) { | |
var r = this, | |
q = 0; | |
$(p).append(r.el); | |
r.dictionaries = { | |
dictionary_112: { | |
id: 112, | |
keyName: "dd_id", | |
valueName: "dd_description", | |
inputParam: "@active_only=1[i]", | |
dictionary: {} | |
} | |
}; | |
_.each(r.dictionaries, function (s) { | |
var t = new e.Cs.Dictionary(); | |
t.fetch({ | |
data: { | |
dictionaryId: s.id, | |
key: "pk", | |
value: "short_description", | |
inputParam: s.inputParam | |
}, | |
success: function (u) { | |
s.dictionary = u.toJSON(); | |
q++; | |
if (q === _.size(r.dictionaries)) { | |
r.renderData() | |
} | |
} | |
}) | |
}) | |
}, | |
renderData: function () { | |
var s = this, | |
p = true, | |
q = m.Us.getUrlById(53703) !== "#" ? true : false, | |
r = true; | |
s.model.off("sync"); | |
p3.fT(s.template, function (t) { | |
s.model.fetch({ | |
cache: false, | |
data: { | |
prospectInstanceId: d.Data.prospectInstanceId | |
}, | |
success: function (v, w) { | |
d.Us.ChangeChecklist(v.get("ProspectChecklistStep")); | |
s.$el.html(t({ | |
model: v.toJSON(), | |
changeChecklistDisabled: d.Data.ChangeChecklist, | |
statusList: d.Data.Filter.join(",") | |
})); | |
var u = v.getChecklistSteps(); | |
p3.rV(new d.Vs.ChecklistSteps({ | |
collection: u | |
}), s.$("#checkliststeps"), false); | |
if (p) { | |
p3.rV(new d.Vs.Applications({ | |
layoutView: s.options.layoutView | |
}), $("#checklistApplication"), true) | |
} | |
if (q) { | |
p3.rV(new d.Vs.CommitteeReviewSummary(), $("#checklistCommitteeReviewSummary"), true) | |
} | |
if (r) { | |
p3.rV(new d.Vs.Decisions({ | |
instanceId: d.Data.prospectInstanceId, | |
userId: d.Data.userId | |
}), $("#checklistDecision"), true) | |
} | |
}, | |
complete: function () { | |
s.model.on("sync", s.renderData, s) | |
} | |
}) | |
}) | |
}, | |
changeChecklist: function (p) { | |
p.stopPropagation(); | |
p.preventDefault(); | |
var q = this; | |
if (d.Data.ChangeChecklist) { | |
q.modal2Extend = l.Vs.Modal2.extend({ | |
template: "utilities/utilities.smodal.message.html", | |
variables: { | |
title: "Change Checklist", | |
infoText: "The current checklist cannot be changed because checklist items have been completed or waived." | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new q.modal2Extend(), p3.Layout.Containers.Modal, true) | |
} else { | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "candidatechecklist/candidate.detail.checklist.edit.template.html", | |
model: new d.Ms.ChangeChecklist(q.model.get("CheckList")), | |
dictionaries: q.dictionaries, | |
dataParam: { | |
prospectInstanceId: d.Data.prospectInstanceId | |
} | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}, | |
toggleMilestones: function (q) { | |
var p = $(q.currentTarget); | |
q.preventDefault(); | |
if (p.hasClass("active")) { | |
p.removeClass("active"); | |
$("thead").addClass("hide"); | |
d.Data.showMilestones = false; | |
p.addClass("fa-chevron-down").removeClass("fa-chevron-up") | |
} else { | |
p.addClass("active"); | |
$("thead").removeClass("hide"); | |
d.Data.showMilestones = true; | |
p.addClass("fa-chevron-up").removeClass("fa-chevron-down") | |
} | |
}, | |
filterItems: function (p) { | |
p.preventDefault(); | |
var q = this; | |
q.trigger("filterItems") | |
}, | |
statusFilterClicked: function (p) { | |
if ($(p.currentTarget).data("status-id") === "All") { | |
if ($.inArray("All", d.Data.Filter) === -1) { | |
d.Data.Filter = ["All"] | |
} | |
} else { | |
if ($.inArray($(p.currentTarget).data("status-id"), d.Data.Filter) > -1) { | |
d.Data.Filter.splice($.inArray($(p.currentTarget).data("status-id"), d.Data.Filter), 1); | |
if (d.Data.Filter.length === 0) { | |
d.Data.Filter.push("All") | |
} | |
} else { | |
if ($.inArray("All", d.Data.Filter) > -1) { | |
d.Data.Filter.splice($.inArray("All", d.Data.Filter), 1) | |
} | |
d.Data.Filter.push($(p.currentTarget).data("status-id")) | |
} | |
} | |
this.filterItems(p) | |
} | |
}); | |
d.Vs.ChecklistSteps = Bb.View.extend({ | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var p = this; | |
p.$el.html(); | |
_.each(p.collection.models, function (q) { | |
p3.rV(new d.Vs.ChecklistStep({ | |
model: q | |
}), p.$el, false) | |
}) | |
} | |
}); | |
d.Vs.ChecklistStep = Bb.View.extend({ | |
template: "candidatechecklist/candidate.detail.checkliststep.template.html", | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var p = this; | |
p3.fT(p.template, function (r) { | |
p.$el.html(r({ | |
model: p.model.toJSON() | |
})); | |
var q = new d.Cs.ChecklistItems(p.model.get("ProspectChecklistItem")); | |
p3.rV(new d.Vs.ChecklistItems({ | |
collection: q | |
}), p.$(".checklistitems"), false) | |
}) | |
} | |
}); | |
d.Vs.ChecklistItems = Bb.View.extend({ | |
tagName: "tbody", | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var s = this, | |
r, q, p; | |
s.$el.html(); | |
_.each(s.collection.models, function (t) { | |
if (d.Data.Filter[0] === "All") { | |
p3.rV(new d.Vs.ChecklistItem({ | |
model: t | |
}), s.$el, false) | |
} else { | |
for (r = 0; r < d.Data.Filter.length; r++) { | |
if (t.attributes.StepInd == d.Data.Filter[r]) { | |
p3.rV(new d.Vs.ChecklistItem({ | |
model: t | |
}), s.$el, false) | |
} | |
} | |
} | |
}); | |
q = $(".toggleMilestones"); | |
p = q.find(".fa"); | |
if (d.Data.showMilestones) { | |
q.addClass("active"); | |
$("thead").removeClass("hide"); | |
p.addClass("fa-chevron-up").removeClass("fa-chevron-down") | |
} else { | |
p.addClass("fa-chevron-down").removeClass("fa-chevron-up") | |
} | |
} | |
}); | |
d.Vs.ChecklistItem = Bb.View.extend({ | |
template: "candidatechecklist/candidate.detail.checklistitem.template.html", | |
tagName: "tr", | |
initialize: function () { | |
var p = this; | |
Bb.Validation.bind(p, { | |
forceUpdate: true, | |
selector: "name" | |
}) | |
}, | |
events: { | |
"click .dataCollection": "updateDataCollection", | |
"click .checklistStatus": "updateStatus", | |
"change textarea": "updateModel", | |
"click a.togglebutton": "toggleInfo", | |
"blur textarea": "closeInfo", | |
"keyup .checklistComment": "updateCharacterCounter", | |
"click .inline-edit": "openInlineEdit", | |
"blur .inline-edit .inline-update input": "closeInlineEdit", | |
"blur .inline-edit .inline-update select": "closeInlineEdit", | |
"change .inline-update select": "updateModel", | |
"change .inline-update input": "updateModel", | |
"mouseover .inline-edit": "inlineEditOver", | |
"mouseout .inline-edit": "inlineEditOut", | |
"click #printSchoolFormBtn": "printSchoolForm" | |
}, | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var r = this, | |
p = r.model.get("DataCollectionTypeId"), | |
q = [2, 4, 6, 7, 11, 12, 17, 18]; | |
if (q.indexOf(p) != -1) { | |
if (r.model.get("DataCollectionPk")) { | |
r.model.set({ | |
DataCollectionAction: "Edit" | |
}) | |
} else { | |
r.model.set({ | |
DataCollectionAction: "Add" | |
}) | |
} | |
} | |
p3.fT(r.template, function (s) { | |
r.$el.html(s({ | |
model: r.model.toJSON(), | |
cid: r.model.cid, | |
statusDictionary: p3.Data.SchoolContext.hasAppCategory(p3.Us.Enum.AppCategories.ADMISSIONSSCHEDULING) ? _.reject(d.Data.dictionaries.ADMCandidateDataCollectionStatuses.dictionary, function (t) { | |
return ((t.dd_data === 7 || t.dd_data === 12) && (t.dd_id < 4)) | |
}) : d.Data.dictionaries.ADMCandidateDataCollectionStatuses.dictionary | |
})); | |
r.$(".checklistComment").trigger(jQuery.Event("keyup")); | |
f.Us.initialize(".date-input", { | |
yearRange: "-30:+20" | |
}); | |
$(".dropdown-toggle").dropdown() | |
}) | |
}, | |
updateDataCollection: function (v) { | |
v.stopPropagation(); | |
v.preventDefault(); | |
var w = this, | |
r = w.model.get("DataCollectionTypeId"), | |
q = w.model.get("DataCollectionPk"), | |
p = w.model.get("ChecklistItemId"), | |
s, u, t; | |
switch (r) { | |
case 2: | |
if (q) { | |
u = new e.Ms.TestScore({ | |
disabled: true | |
}) | |
} else { | |
u = new e.Ms.TestScore({ | |
disabled: true, | |
ChecklistItemId: p, | |
userId: d.Data.userId, | |
prospectInstanceId: d.Data.prospectInstanceId, | |
Test: { | |
"$type": "clBLL.nAdmissions.Test, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} | |
s = "admissions/candidate.detail.profile.testscore.edit.template.html"; | |
t = { | |
dictionary_105: h.DictionaryData.ADMTestTypes, | |
dictionary_102: h.DictionaryData.ADMStaff | |
}; | |
break; | |
case 4: | |
if (q) { | |
u = new e.Ms.Recommendation({ | |
disabled: true | |
}) | |
} else { | |
u = new e.Ms.Recommendation({ | |
disabled: true, | |
ChecklistItemId: p, | |
ProspectInstanceId: d.Data.prospectInstanceId, | |
ReferenceType: { | |
"$type": "clBLL.nAdmissions.ReferenceType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} | |
s = "candidate/candidate.record.recommendation.edit.template.html"; | |
t = { | |
dictionary_20: h.DictionaryData.Country, | |
ADMReferenceTypes: h.DictionaryData.ADMReferenceTypes, | |
dictionary_123: h.DictionaryData.StatesPlusArmyPO | |
}; | |
break; | |
case 6: | |
if (q) { | |
u = new d.Ms.Decision({ | |
disabled: true | |
}) | |
} else { | |
u = new d.Ms.Decision({ | |
disabled: true, | |
ChecklistItemId: p, | |
prospectInstanceId: d.Data.prospectInstanceId, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} | |
s = "candidatechecklist/candidate.detail.checklist.decision.edit.template.html"; | |
t = { | |
ADMReasonsDeclinedAll: h.DictionaryData.ADMReasonsDeclinedAll, | |
ADMDecisionTypeNoAll: h.DictionaryData.ADMDecisionTypeNoAll, | |
TransferSchool: { | |
id: 94, | |
inputParam: "@chosen_inq=1[i]" | |
} | |
}; | |
break; | |
case 7: | |
if (q) { | |
u = new e.Ms.Interview({ | |
disabled: true | |
}) | |
} else { | |
u = new e.Ms.Interview({ | |
disabled: true, | |
ChecklistItemId: p, | |
ProspectInstanceId: d.Data.prospectInstanceId, | |
InterviewType: { | |
"$type": "clBLL.nAdmissions.InterviewType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} | |
s = "candidate/candidate.record.interview.edit.template.html"; | |
t = { | |
ADMInterviewTypes: h.DictionaryData.ADMInterviewTypes, | |
dictionary_102: h.DictionaryData.ADMStaff | |
}; | |
break; | |
case 11: | |
if (q) { | |
u = new k.Ms.ProspectSendingSchools({ | |
disabled: true | |
}) | |
} else { | |
u = new k.Ms.ProspectSendingSchools({ | |
disabled: true, | |
ChecklistItemId: p, | |
userId: d.Data.userId, | |
prospectInstanceId: d.Data.prospectInstanceId, | |
TransferSchool: { | |
"$type": "clBLL.nSchoolInfo.TransferSchool, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
}, | |
SendingSchoolType: { | |
"$type": "clBLL.nAdmissions.SendingSchoolType, clBLL" | |
}, | |
SendingGrade: { | |
"$type": "clBLL.nAdmissions.SendingGrade, clBLL" | |
} | |
}) | |
} | |
s = "candidate/candidate.schools.school.edit.template.html"; | |
t = { | |
dictionary_20: h.DictionaryData.Country, | |
dictionary_56: h.DictionaryData.StatesAndProvinces, | |
dictionary_83: h.DictionaryData.SchoolYearCurrent, | |
dictionary_106: h.DictionaryData.ApplicationCurrentGrade, | |
ADMSchoolTypes: h.DictionaryData.ADMSchoolTypes | |
}; | |
break; | |
case 12: | |
if (q) { | |
u = new e.Ms.Visit({ | |
disabled: true | |
}) | |
} else { | |
u = new e.Ms.Visit({ | |
disabled: true, | |
ChecklistItemId: p, | |
prospectInstanceId: d.Data.prospectInstanceId, | |
VisitType: { | |
"$type": "clBLL.nAdmissions.VisitType, clBLL" | |
}, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}) | |
} | |
s = "candidate/candidate.record.visit.edit.template.html"; | |
t = { | |
ADMVisitTypes: h.DictionaryData.ADMVisitTypes, | |
dictionary_102: h.DictionaryData.ADMStaff | |
}; | |
break; | |
case 17: | |
if (q) { | |
u = new e.Ms.Event({ | |
disabled: true | |
}) | |
} else { | |
u = new e.Ms.Event({ | |
disabled: true, | |
ChecklistItemId: p, | |
prospectInstanceId: d.Data.prospectInstanceId, | |
EventType: { | |
"$type": "clBLL.nAdmissions.EventType, clBLL" | |
} | |
}) | |
} | |
s = "candidate/candidate.record.event.edit.template.html"; | |
t = { | |
ADMEventTypes: h.DictionaryData.ADMEventTypes | |
}; | |
break; | |
case 18: | |
if (q) { | |
u = new e.Ms.MiscellaneousFile({ | |
disabled: true | |
}) | |
} else { | |
u = new e.Ms.MiscellaneousFile({ | |
disabled: true, | |
ChecklistItemId: p, | |
userId: d.Data.userId, | |
prospectInstanceId: d.Data.prospectInstanceId, | |
AttachmentFile: {} | |
}) | |
} | |
s = "candidate/candidate.record.miscellaneous.file.edit.template.html"; | |
t = { | |
dictionary_152: h.DictionaryData.ProspectFileType | |
}; | |
break | |
} | |
g.Us.FetchAll(t, function (x) { | |
if (r === 17) { | |
x.ADMEventTypes = x.ADMEventTypes.dictionary | |
} | |
d.Data.dictionaries = x; | |
if (q) { | |
u.fetch({ | |
data: { | |
prospectInstanceId: d.Data.prospectInstanceId, | |
id: q, | |
userId: d.Data.userId | |
}, | |
success: function (y) { | |
e.Us.ChecklistDictionaryGet(d.Data.prospectInstanceId, r, q, function (z) { | |
d.Data.dictionaries.dictionary_127 = z.dictionary_127; | |
d.Data.dictionaries.dictionary_128 = z.dictionary_128; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
if (r === 6) { | |
w.showDecisionEdit(u, s) | |
} else { | |
if (r === 7) { | |
if (p3.Data.Context.findByTaskId(53624)) { | |
a.Us.EditInterview(q, d.Data.prospectInstanceId) | |
} else { | |
p3.rV(new c.Vs.Modal({ | |
template: s, | |
model: u, | |
dictionaries: d.Data.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
} | |
} else { | |
if (r === 11) { | |
w.showSchoolEdit(u) | |
} else { | |
if (r === 12) { | |
if (p3.Data.Context.findByTaskId(53624)) { | |
a.Us.EditVisit(q, d.Data.prospectInstanceId) | |
} else { | |
p3.rV(new c.Vs.Modal({ | |
template: s, | |
model: u, | |
dictionaries: d.Data.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
} | |
} else { | |
if (r === 17) { | |
w.showEventEdit(u) | |
} else { | |
if (r === 18) { | |
w.showMiscFileEdit(u) | |
} else { | |
p3.rV(new c.Vs.Modal({ | |
template: s, | |
model: u, | |
dictionaries: d.Data.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
} | |
} | |
} | |
} | |
} | |
} | |
}) | |
} | |
}) | |
} else { | |
e.Us.ChecklistDictionaryGet(d.Data.prospectInstanceId, r, q, function (y) { | |
d.Data.dictionaries.dictionary_127 = y.dictionary_127; | |
d.Data.dictionaries.dictionary_128 = y.dictionary_128; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
if (r === 6) { | |
w.showDecisionEdit(u, s) | |
} else { | |
if (r === 7) { | |
if (p3.Data.Context.findByTaskId(53624)) { | |
a.Us.AddInterview(null, d.Data.prospectInstanceId) | |
} else { | |
p3.rV(new c.Vs.Modal({ | |
template: s, | |
model: u, | |
dictionaries: d.Data.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
} | |
} else { | |
if (r === 11) { | |
w.showSchoolEdit(u) | |
} else { | |
if (r === 12) { | |
if (p3.Data.Context.findByTaskId(53624)) { | |
a.Us.AddVisit(null, d.Data.prospectInstanceId) | |
} else { | |
p3.rV(new c.Vs.Modal({ | |
template: s, | |
model: u, | |
dictionaries: d.Data.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
} | |
} else { | |
if (r === 17) { | |
w.showEventEdit(u) | |
} else { | |
if (r === 18) { | |
w.showMiscFileEdit(u) | |
} else { | |
p3.rV(new c.Vs.Modal({ | |
template: s, | |
model: u, | |
dictionaries: d.Data.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
} | |
} | |
} | |
} | |
} | |
} | |
}) | |
} | |
}) | |
}, | |
showSchoolEdit: function (p) { | |
var r = this, | |
q = new k.Cs.TransferSchools(); | |
q.fetch({ | |
success: function (s, t) { | |
d.Data.dictionaries.TransferSchools = {}; | |
d.Data.dictionaries.TransferSchools.dictionary = t; | |
k.Us.getDefaultCountry(d.Data.dictionaries.dictionary_20, function (u) { | |
if (p.isNew()) { | |
p.set("Country", u) | |
} | |
var v = new k.Vs.SchoolEdit({ | |
model: p, | |
dictionaries: d.Data.dictionaries | |
}); | |
v.on("modelSaved", function () { | |
$(".candidate-header").parent().parent().trigger("renderdata") | |
}, r); | |
p3.rV(v, p3.Layout.Containers.Modal, true) | |
}) | |
} | |
}) | |
}, | |
showEventEdit: function (p) { | |
var r = this, | |
q = new e.Vs.EventEditModal({ | |
model: p, | |
dictionaries: d.Data.dictionaries | |
}); | |
q.on("modelSaved", function () { | |
$(".candidate-header").parent().parent().trigger("renderdata") | |
}, r); | |
p3.rV(q, p3.Layout.Containers.Modal, true) | |
}, | |
showDecisionEdit: function (r, p) { | |
var q = new d.Vs.DecisionModal({ | |
model: r, | |
dictionaries: d.Data.dictionaries, | |
template: p, | |
variables: { | |
enteringYear: d.Data.enteringYear, | |
enteringGrade: d.Data.enteringGrade, | |
profilePage: true | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(q, p3.Layout.Containers.Modal, true) | |
}, | |
showMiscFileEdit: function (p) { | |
var r = this, | |
q = new e.Vs.MiscellaneousFileModal({ | |
model: p, | |
dictionaries: d.Data.dictionaries | |
}); | |
d.Data.dictionaries.FileTypes = d.Data.dictionaries.dictionary_152.dictionary; | |
q.on("modelSaved", function () { | |
$(".candidate-header").parent().parent().trigger("renderdata") | |
}, r); | |
p3.rV(q, p3.Layout.Containers.Modal, true) | |
}, | |
updateCharacterCounter: function (p) { | |
var q = this; | |
p.stopPropagation(); | |
p.preventDefault(); | |
q.$(p.currentTarget).siblings("p").find(".characterCounter").html($(p.currentTarget).val().length); | |
if ($(p.currentTarget).val().length > 4000) { | |
q.$(p.currentTarget).siblings("p").find(".characterCounter").addClass("badge-important") | |
} else { | |
q.$(p.currentTarget).siblings("p").find(".characterCounter").removeClass("badge-important") | |
} | |
}, | |
toggleInfo: function (q) { | |
var r = this, | |
p = r.$(".toggleinfo"); | |
q.stopPropagation(); | |
q.preventDefault(); | |
if (p.filter(":visible").length) { | |
if (r.model.isValid(true)) { | |
r.$el.find("textarea").blur(); | |
p.hide() | |
} | |
} else { | |
p.show(500); | |
r.$el.find("textarea").focus() | |
} | |
}, | |
closeInfo: function (p) { | |
var q = this; | |
p.stopPropagation(); | |
p.preventDefault(); | |
if (q.model.isValid(true)) { | |
q.$(".toggleinfo").hide(500) | |
} | |
}, | |
updateStatus: function (q) { | |
q.stopPropagation(); | |
q.preventDefault(); | |
var u = this, | |
s = $(q.currentTarget), | |
r = s.parents("ul").attr("name"), | |
t = s.data("value"), | |
p = {}; | |
u.model.defaults = $.extend(true, {}, u.model.attributes); | |
p[r] = t; | |
u.model.set(p); | |
if (u.model.isValid(true)) { | |
u.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(u.model.attributes, function (x, v, w) { | |
l.Us.setFieldsToNull(u.model, x, v, w, "") | |
}); | |
u.model.save({}, { | |
dataParam: {}, | |
success: function (v, w) { | |
u.renderData(); | |
u.changeChecklistButton(); | |
c.Data.pidCollection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: d.Data.userId, | |
alwaysReturn: true | |
}, | |
success: function (x, y) { | |
$(".candidate-header").parent().trigger("renderheader") | |
} | |
}) | |
}, | |
error: function (w, v) { | |
p3.displayError("Error saving") | |
} | |
}) | |
} | |
}, | |
inlineEditOver: function (p) { | |
p.stopPropagation(); | |
p.preventDefault(); | |
$(p.currentTarget).find("i").show() | |
}, | |
inlineEditOut: function (p) { | |
p.stopPropagation(); | |
p.preventDefault(); | |
$(p.currentTarget).find("i").hide() | |
}, | |
openInlineEdit: function (p) { | |
p.stopPropagation(); | |
p.preventDefault(); | |
var r = this, | |
q; | |
if (r.model.isValid(true)) { | |
q = $(p.currentTarget); | |
q.find(".inline-display").hide(); | |
q.find(".inline-update").show(); | |
if (q.find(".inline-update input").length > 0) { | |
q.find(".inline-update input").focus() | |
} else { | |
if (q.find(".inline-update select").length > 0) { | |
q.find(".inline-update select").focus() | |
} | |
} | |
} else { | |
p3.displayError("This form's settings must be updated before changing") | |
} | |
}, | |
closeInlineEdit: function (p) { | |
p.stopPropagation(); | |
p.preventDefault(); | |
var q = this; | |
if (q.model.isValid(true)) { | |
q.$(".inline-display").show(); | |
q.$(".inline-update").hide() | |
} | |
}, | |
changeChecklistButton: function () { | |
var p = this; | |
p.checklist = new d.Ms.Checklist(); | |
p.checklist.fetch({ | |
cache: false, | |
data: { | |
userId: d.Data.userId, | |
prospectInstanceId: d.Data.prospectInstanceId | |
}, | |
success: function () { | |
d.Us.ChangeChecklist(p.checklist.get("ProspectChecklistStep")) | |
} | |
}) | |
}, | |
updateModel: function (q) { | |
q.stopPropagation(); | |
q.preventDefault(); | |
var u = this, | |
s = $(q.currentTarget), | |
r = s.attr("name"), | |
t, p = {}; | |
u.model.defaults = $.extend(true, {}, u.model.attributes); | |
if (r === "DateDue") { | |
t = s.prop("value"); | |
if (t === "") { | |
t = null | |
} | |
} else { | |
if (r === "DateWaived") { | |
t = s.prop("value"); | |
if (t === "") { | |
t = null; | |
u.model.set({ | |
StepInd: "Awaiting" | |
}, { | |
silent: true | |
}) | |
} else { | |
u.model.set({ | |
StepInd: "Waived" | |
}, { | |
silent: true | |
}) | |
} | |
} else { | |
if (r === "DateCompleted") { | |
t = s.prop("value"); | |
if (t === "") { | |
t = null; | |
u.model.set({ | |
StepInd: "Awaiting" | |
}, { | |
silent: true | |
}) | |
} else { | |
u.model.set({ | |
StepInd: "Completed" | |
}, { | |
silent: true | |
}) | |
} | |
} else { | |
t = s.prop("value") | |
} | |
} | |
} | |
if (!_.contains(r, ".")) { | |
p[r] = t; | |
u.model.set(p) | |
} else { | |
l.Us.setPropByString(u.model.toJSON(), r, t); | |
if (u.model.isValid(r)) { | |
Bb.Validation.callbacks.valid(u, r, "name") | |
} else { | |
Bb.Validation.callbacks.invalid(u, r, "Entered value contains an error.", "name") | |
} | |
} | |
if (u.model.isValid(true)) { | |
u.model.set({ | |
FieldsToNull: [] | |
}); | |
_.each(u.model.attributes, function (x, v, w) { | |
l.Us.setFieldsToNull(u.model, x, v, w, "") | |
}); | |
u.model.save({}, { | |
dataParam: {}, | |
success: function (w, x) { | |
var v = u.$("a.togglebutton i"); | |
d.Us.CommentIcon(v, u.model.get("Comment")); | |
if (r === "DateDue") { | |
u.renderData() | |
} else { | |
if (r === "DateCompleted") { | |
u.renderData(); | |
u.changeChecklistButton(); | |
c.Data.pidCollection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: d.Data.userId, | |
alwaysReturn: true | |
}, | |
success: function (y, z) { | |
$(".candidate-header").parent().trigger("renderheader") | |
} | |
}) | |
} else { | |
if (r === "DateWaived") { | |
u.renderData() | |
} | |
} | |
} | |
}, | |
error: function (w, v) { | |
p3.displayError("Error saving field") | |
} | |
}) | |
} | |
}, | |
printSchoolForm: function (r) { | |
r.preventDefault(); | |
r.stopPropagation(); | |
var t = this, | |
p = r.target.getAttribute("data-application-form-id"), | |
q, s; | |
if (!t.schoolFormIds) { | |
t.schoolFormIds = new d.Cs.SchoolFormIds(); | |
t.schoolFormIds.fetch({ | |
data: { | |
id: d.Data.userId | |
}, | |
success: function (u) { | |
q = _.findWhere(u.toJSON(), { | |
oa_application_form_id: o.stringToInt(p) | |
}).oa_application_id; | |
s = "/podium/default.aspx?t=1691&wapp=1&ch=1&pk=502&ext=pdf&fid=" + p + "&appid=" + q; | |
window.open(s, "_blank") | |
}, | |
error: function () { | |
p3.displayError("An unexpected error occurred loading your school form. Please try again.") | |
} | |
}) | |
} else { | |
q = _.findWhere(t.schoolFormIds.toJSON(), { | |
oa_application_form_id: o.stringToInt(p) | |
}).oa_application_id; | |
s = "/podium/default.aspx?t=1691&wapp=1&ch=1&pk=502&ext=pdf&fid=" + p + "&appid=" + q; | |
window.open(s, "_blank") | |
} | |
} | |
}); | |
d.Vs.Applications = Bb.View.extend({ | |
template: "candidatechecklist/candidate.detail.checklist.applications.template.html", | |
initialize: function () { | |
var p = this; | |
p.collection = new d.Cs.Applications(); | |
this.collection.bind("add", function (r) { | |
var q = new d.Vs.Application({ | |
model: r, | |
prospectInstanceId: d.Data.prospectInstanceId | |
}); | |
r.bind("sync", p.renderData, p); | |
p3.rV(q, this.$("#applications"), false) | |
}, this) | |
}, | |
events: { | |
"click button.create": "createApplication", | |
"click a.toggleLink": "toggleSection" | |
}, | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var p = this; | |
p.collection.reset(); | |
p3.fT(p.template, function (q) { | |
p.$el.html(q({})); | |
p.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
id: d.Data.prospectInstanceId | |
} | |
}) | |
}) | |
}, | |
createApplication: function () { | |
var r = this, | |
q, p; | |
p = new d.Ms.Application({ | |
ProspectInstanceId: d.Data.prospectInstanceId, | |
UploadSource: 1, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}); | |
q = l.Vs.Modal2.extend({ | |
template: "candidatechecklist/candidate.detail.checklist.application.edit.template.html", | |
model: p, | |
dictionaries: r.options.dictionaries, | |
modalRendered: function () { | |
var s = this; | |
s.initializeFileUpload_File() | |
} | |
}); | |
p.bind("sync", r.renderData, r); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new q({}), p3.Layout.Containers.Modal, true) | |
}, | |
toggleSection: function (p) { | |
p.stopPropagation(); | |
p.preventDefault(); | |
$(p.currentTarget).siblings(".toggledetail").slideToggle("fast"); | |
if ($(p.currentTarget).hasClass("active")) { | |
$(p.currentTarget).removeClass("active") | |
} else { | |
$(p.currentTarget).addClass("active") | |
} | |
} | |
}); | |
d.Vs.Application = Bb.View.extend({ | |
template: "candidatechecklist/candidate.detail.checklist.application.template.html", | |
tagName: "tr", | |
initialize: function () { | |
this.model.bind("destroy", this.deleteElement, this); | |
this.model.bind("remove", this.deleteElement, this); | |
this.model.bind("sync", this.renderTemplate, this) | |
}, | |
events: { | |
"click .editapplication": "editApplication", | |
"click .deleteapplication:not(.disabled)": "deleteApplication", | |
"click .resubmit:not(.disabled)": "resubmitApplication" | |
}, | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var t = this, | |
s = t.model.get("UploadSource"), | |
p = t.model.get("Deleted"), | |
q = (s === 0 || (s === 3 && p)) ? false : true, | |
r = (s === 0 && t.model.get("ApplicationStatus") === 2) ? false : true; | |
p3.fT(t.template, function (u) { | |
t.$el.html(u({ | |
model: t.model.toJSON(), | |
oaDeleteDisabled: q, | |
oaResubmitDisabled: r | |
})); | |
if (q) { | |
t.$(".deleteapplication").tooltip() | |
} | |
if (r) { | |
t.$(".resubmit").tooltip() | |
} | |
}) | |
}, | |
editApplication: function (p) { | |
var r = this, | |
q; | |
q = l.Vs.Modal2.extend({ | |
template: "candidatechecklist/candidate.detail.checklist.application.edit.template.html", | |
model: r.model, | |
dictionaries: r.options.dictionaries, | |
modalRendered: function () { | |
var s = this; | |
s.initializeFileUpload_File() | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new q({}), p3.Layout.Containers.Modal, true) | |
}, | |
deleteApplication: function (p) { | |
var q = this; | |
p3.showConfirm("Delete Application", "Wait a minute. Are you really sure you want to delete this application information? This cannot be undone.", null, function () { | |
var r = { | |
formId: q.model.get("FormId") | |
}; | |
q.model.destroy({ | |
dataParam: r | |
}); | |
$(".candidate-header").parent().trigger("renderdata") | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
}, | |
resubmitApplication: function (q) { | |
var r = this, | |
p = new d.Ms.ApplicationResubmit({ | |
ApplicationId: r.model.id | |
}); | |
p3.showConfirm("Resubmit Application", "Resubmit will remove the signature from the application and allow the applicant to continue working on the application.<p><b>This cannot be undone.</b></p>", null, function () { | |
p.save({}, { | |
success: function () { | |
$(".candidate-header").parent().trigger("renderdata") | |
}, | |
error: function (t, s) { | |
p3.displayError("Error unsubmitting") | |
} | |
}) | |
}) | |
} | |
}); | |
d.Vs.CommitteeReviewSummary = Bb.View.extend({ | |
template: "Candidate/candidate.checklist.committeereview.summary.template.html", | |
initialize: function () { | |
var p = this; | |
p.collection = new d.Cs.ProspectCommitteeReviews() | |
}, | |
events: { | |
"click a.seeCommitteeReviewDetails": "openCommitteeReviewDetailsModal" | |
}, | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var q = this, | |
p; | |
q.collection.fetch({ | |
data: { | |
prospectInstanceId: d.Data.prospectInstanceId | |
}, | |
success: function (r, s) { | |
if (r.length === 0) { | |
p = true | |
} | |
p3.fT(q.template, function (t) { | |
q.$el.html(t({ | |
collection: r.toJSON(), | |
noSubmittedReviews: p | |
})) | |
}) | |
} | |
}) | |
}, | |
openCommitteeReviewDetailsModal: function (p) { | |
p.stopPropagation(); | |
p.preventDefault(); | |
d.Functions.openCommitteeReviewDetailsModal(p) | |
} | |
}); | |
d.Vs.Decisions = Bb.View.extend({ | |
template: "candidatechecklist/candidate.detail.checklist.decisions.template.html", | |
initialize: function () { | |
var p = this; | |
p.collection = new d.Cs.Decisions(); | |
this.collection.bind("add", function (r) { | |
var q = new d.Vs.Decision({ | |
model: r, | |
dictionaries: p.dictionaries, | |
prospectInstanceId: d.Data.prospectInstanceId | |
}); | |
r.bind("sync", p.renderData, p); | |
p3.rV(q, this.$("#decisions"), false) | |
}, this) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click button.create": "createDecision" | |
}, | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
g.Us.FetchAll({ | |
ADMReasonsDeclinedAll: h.DictionaryData.ADMReasonsDeclinedAll, | |
ADMDecisionTypeNoAll: h.DictionaryData.ADMDecisionTypeNoAll, | |
TransferSchool: { | |
id: 94, | |
inputParam: "@chosen_inq=1[i]" | |
} | |
}, function (r) { | |
q.dictionaries = r; | |
q.renderData() | |
}) | |
}, | |
renderData: function () { | |
var p = this; | |
p.collection.reset(); | |
p3.fT(p.template, function (q) { | |
p.$el.html(q({})); | |
p.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: d.Data.prospectInstanceId | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (p) { | |
$(p.currentTarget).siblings(".toggledetail").slideToggle("fast"); | |
if ($(p.currentTarget).hasClass("active")) { | |
$(p.currentTarget).removeClass("active") | |
} else { | |
$(p.currentTarget).addClass("active") | |
} | |
return false | |
}, | |
createDecision: function () { | |
var p = this; | |
e.Us.ChecklistDictionaryGet(d.Data.prospectInstanceId, 6, null, function (s) { | |
p.dictionaries.dictionary_127 = s.dictionary_127; | |
p.dictionaries.dictionary_128 = s.dictionary_128; | |
var q = new d.Ms.Decision({ | |
prospectInstanceId: d.Data.prospectInstanceId, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
} | |
}), | |
r = new d.Vs.DecisionModal({ | |
template: "candidatechecklist/candidate.detail.checklist.decision.edit.template.html", | |
model: q, | |
dictionaries: p.dictionaries, | |
variables: { | |
enteringYear: d.Data.enteringYear, | |
enteringGrade: d.Data.enteringGrade, | |
profilePage: true | |
} | |
}); | |
q.bind("sync", p.renderData, p); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(r, p3.Layout.Containers.Modal, true) | |
}) | |
} | |
}); | |
d.Vs.Decision = Bb.View.extend({ | |
template: "candidatechecklist/candidate.detail.checklist.decision.template.html", | |
tagName: "tr", | |
initialize: function () { | |
this.model.bind("destroy", this.deleteElement, this); | |
this.model.bind("remove", this.deleteElement, this); | |
this.model.bind("sync", this.renderTemplate, this) | |
}, | |
events: { | |
"click .editdecision": "editDecision", | |
"click .delete": "deleteDecision", | |
"click .togglebutton": "toggleInfo" | |
}, | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var r = this, | |
p = r.model.get("AttachmentFile"), | |
q = r.model.get("DecisionComment") || (p && p.hasOwnProperty("Attachment") && p.Attachment.length > 0); | |
p3.fT(r.template, function (s) { | |
r.$el.html(s({ | |
model: r.model.toJSON(), | |
hasSlider: q, | |
dictionaries: r.options.dictionaries | |
})) | |
}) | |
}, | |
toggleInfo: function (q) { | |
var r = this, | |
p = $(q.currentTarget); | |
r.$(".toggleinfo").slideToggle("fast"); | |
if ($(q.currentTarget).hasClass("active")) { | |
$(q.currentTarget).removeClass("active") | |
} else { | |
$(q.currentTarget).addClass("active") | |
} | |
if (p.hasClass("fa-chevron-up")) { | |
p.removeClass("fa-chevron-up").addClass("fa-chevron-down") | |
} else { | |
if (p.hasClass("fa-chevron-down")) { | |
p.removeClass("fa-chevron-down").addClass("fa-chevron-up") | |
} | |
} | |
return false | |
}, | |
editDecision: function (p) { | |
var q = this; | |
e.Us.ChecklistDictionaryGet(d.Data.prospectInstanceId, 6, q.model.get("DecisionId"), function (s) { | |
q.options.dictionaries.dictionary_127 = s.dictionary_127; | |
q.options.dictionaries.dictionary_128 = s.dictionary_128; | |
var r = new d.Vs.DecisionModal({ | |
template: "candidatechecklist/candidate.detail.checklist.decision.edit.template.html", | |
model: q.model, | |
dictionaries: q.options.dictionaries, | |
variables: { | |
enteringYear: d.Data.enteringYear, | |
enteringGrade: d.Data.enteringGrade, | |
profilePage: true | |
} | |
}); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(r, p3.Layout.Containers.Modal, true) | |
}) | |
}, | |
deleteDecision: function (p) { | |
var q = this; | |
p3.showConfirm("Delete Decision", "Wait a minute. Are you really sure you want to delete this decision information?", null, function () { | |
var r = { | |
prospectInstanceId: d.Data.prospectInstanceId | |
}; | |
q.model.destroy({ | |
dataParam: r, | |
success: function () { | |
c.Us.RenderMainPage() | |
} | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}); | |
d.Vs.CandidateDecisions = Bb.View.extend({ | |
template: "candidatechecklist/candidate.detail.candidate.decisions.template.html", | |
render: function (p) { | |
var q = this; | |
$(p).append(q.el); | |
q.renderData() | |
}, | |
renderData: function () { | |
var p = this; | |
p3.fT(p.template, function (q) { | |
p.$el.html(q({ | |
model: p.model.toJSON(), | |
collection: p.options.collection | |
})); | |
$(".modal-body").parent("div").trigger("changecanddecision"); | |
p.candDecision = $(".candDecision option:selected").attr("data"); | |
if (o.stringToInt(p.candDecision) === 2) { | |
$("#candDeclineReasonHolder").show() | |
} | |
}) | |
} | |
}); | |
d.Vs.CommitteeReviewDetailsModal = l.Vs.Modal2.extend({ | |
template: "Candidate/candidate.checklist.committeereview.details.template.html", | |
size: "lg" | |
}); | |
d.Vs.DecisionModal = l.Vs.Modal2.extend({ | |
template: "candidatechecklist/candidate.detail.checklist.decision.edit.template.html", | |
events: { | |
"change select.admDecision": "changeAdmDecision", | |
"change select.candDecision": "changeCandDecision", | |
changecanddecision: "changeCandDecision", | |
changeadmdecision: "changeAdmDecision", | |
'change select[name="ChecklistItemId"]': "toggleChecklistStatus" | |
}, | |
modalInitialized: function () { | |
var p = this; | |
p.profilePage = p.options.variables.profilePage | |
}, | |
modalDispose: function () { | |
var p = this; | |
$.each(p.$(".tinyeditor"), function () { | |
var q = tinyMCE.get(this.id); | |
if (q) { | |
q.remove() | |
} | |
}) | |
}, | |
modalRendered: function (q) { | |
var p = this; | |
p.changeAdmDecision(); | |
f.Us.initialize(".date-input", { | |
yearRange: "-30:+20" | |
}); | |
n.Us.initialize(".time-input"); | |
l.Us.showHtmlEditor(p, "tinyeditor"); | |
$(".required-indicator").tooltip(); | |
p.initializeFileUpload_File(); | |
if (p.$('[name="ChecklistItemId"] option:selected').val() != "") { | |
p.$(".checklist-status").removeClass("hide") | |
} | |
}, | |
modalSave: function () { | |
var p = this; | |
$.each(p.$(".tinyeditor"), function () { | |
var q = {}; | |
q[this.name] = tinyMCE.get(this.id).save(); | |
p.model.set(q) | |
}) | |
}, | |
modalSavedSuccess: function () { | |
var p = this; | |
if (p.profilePage) { | |
c.Us.RenderMainPage() | |
} | |
}, | |
changeAdmDecision: function (q) { | |
var r = this, | |
p; | |
if ($(".admDecision").val()) { | |
p = $(".admDecision").val(); | |
r.collection = new d.Cs.Acknowledgements(); | |
r.collection.reset(); | |
r.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
decisionId: p | |
}, | |
success: function (s) { | |
p3.rV(new d.Vs.CandidateDecisions({ | |
model: r.model, | |
collection: s.toJSON() | |
}), $(".candDecisionHolder"), true); | |
$("#candDeclineHolder div").html("") | |
} | |
}) | |
} else { | |
$(".candDecisionHolder").html('<p style="padding-top:5px;"><em>No Items</em></p>'); | |
$("#candDeclineHolder div").html("") | |
} | |
}, | |
changeCandDecision: function (p) { | |
var q = this; | |
q.candDecision = $(".candDecision option:selected").attr("data"); | |
if (o.stringToInt(q.candDecision) === 2) { | |
$("#candDeclineReasonHolder").show() | |
} else { | |
$('[name="DeclinedId"]').val(""); | |
$('[name="ChosenSchool"]').val(""); | |
$("#candDeclineReasonHolder").hide() | |
} | |
}, | |
toggleChecklistStatus: function (p) { | |
var q = this; | |
if (q.$(p.target).prop("value") == "") { | |
q.$('[name="ChecklistItemId"]').val(""); | |
q.$(".checklist-status").addClass("hide") | |
} else { | |
q.$(".checklist-status").removeClass("hide") | |
} | |
} | |
}); | |
Hb.registerHelper("getChecklistStatusIcon", function (q) { | |
var p = ""; | |
switch (q) { | |
case 0: | |
p = '<i class="fa fa-circle p3Blue-Awaiting"></i>'; | |
break; | |
case 1: | |
p = '<i class="fa fa-circle p3Yellow-Started"></i>'; | |
break; | |
case 2: | |
p = '<i class="fa fa-calendar p3Orange"></i>'; | |
break; | |
case 3: | |
p = '<i class="p3icon-requested"></i>'; | |
break; | |
case 4: | |
p = '<i class="p3icon-waived"></i>'; | |
break; | |
case 5: | |
p = '<i class="fa fa-check p3Green-Complete" style="visibility:visible;"></i>'; | |
break | |
} | |
return new Hb.SafeString(p) | |
}) | |
}(p3.module("admissions/candidate/checklist"))); | |
(function (d) { | |
var b = p3.module("admissions/managecandidates"), | |
c = p3.module("admissions/candidateprofile"), | |
g = p3.module("utilities/multifetch"), | |
a = p3.module("shared/base"), | |
e = p3.Us.Enum, | |
f = p3.Us.InfoMessageLibrary; | |
d.Ms.DictionaryItem = Bbm.extend({}); | |
d.Cs.Dictionary = Bbc.extend({ | |
model: c.Ms.DictionaryItem, | |
url: "datadirect/DictionaryGet/" | |
}); | |
d.Ms.Connections = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "ConnectionsId", | |
validation: { | |
"ConnectionsType.ConnectionsTypeId": [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}], | |
Name: [{ | |
required: true, | |
msg: f.P3.RequiredInfoNotEntered | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/prospectconnections/" + this.id + "/" : aP + "admissions/prospectconnections/" | |
} | |
}); | |
d.Ms.HistoricConnection = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "special_relationship_id", | |
url: function () { | |
return this.id ? aP + "admissions/HistoricConnections/" + this.id + "/" : aP + "admissions/HistoricConnections/" | |
} | |
}); | |
d.Ms.CommunityConnection = Bbm.extend({ | |
sync: a.DataParamSync, | |
idAttribute: "special_relationship_id", | |
url: function () { | |
return this.id ? aP + "admissions/CommunityConnections/" + this.id + "/" : aP + "admissions/CommunityConnections/" | |
} | |
}); | |
d.Cs.Connections = Bbc.extend({ | |
model: d.Ms.Connections, | |
url: function () { | |
return aP + "admissions/ProspectConnections/" | |
} | |
}); | |
d.Cs.HistoricConnections = Bbc.extend({ | |
model: d.Ms.HistoricConnection, | |
url: function () { | |
return aP + "DataDirect/HistoricConnections/" | |
} | |
}); | |
d.Cs.CommunityConnections = Bbc.extend({ | |
model: d.Ms.CommunityConnection, | |
url: function () { | |
return aP + "DataDirect/CommunityConnections/" | |
} | |
}); | |
d.Vs.Layout = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.template.html", | |
events: { | |
renderdata: "renderData" | |
}, | |
initialize: function () { | |
var h = this; | |
if (h.options) { | |
d.Data.UserId = h.options.userId; | |
d.Data.ProspectInstanceId = h.options.instanceId | |
} | |
}, | |
render: function (h) { | |
var i = this; | |
p3.setTitle("Candidate Connections"); | |
$(h).html(i.el); | |
g.Us.Fetch({ | |
ADMSpecialRelationships: { | |
data: new g.Cs.Dictionary(), | |
dataParams: e.DictionaryData.ADMSpecialRelationships | |
}, | |
ADMConnectionsRelTypes: { | |
data: new g.Cs.Dictionary(), | |
dataParams: e.DictionaryData.ADMConnectionsRelTypes | |
}, | |
ADMConnectionsTypes: { | |
data: new g.Cs.Dictionary(), | |
dataParams: e.DictionaryData.ADMConnectionsTypes | |
}, | |
GraduationYear: { | |
data: new g.Cs.Dictionary(), | |
dataParams: e.DictionaryData.GraduationYear | |
} | |
}, function (j, l, k) { | |
d.Data.Dictionaries = j; | |
i.renderData() | |
}) | |
}, | |
renderData: function () { | |
var i = this, | |
h; | |
p3.fT(i.template, function (j) { | |
i.$el.html(j({})); | |
h = $("#content"); | |
p3.rV(new d.Vs.Connections({ | |
collection: new d.Cs.Connections(), | |
type: "Connections" | |
}), h, false); | |
p3.rV(new d.Vs.Connections({ | |
collection: new d.Cs.HistoricConnections(), | |
type: "Historic Connections" | |
}), h, false); | |
p3.rV(new d.Vs.Connections({ | |
collection: new d.Cs.CommunityConnections(), | |
type: "Community Connections" | |
}), h, false) | |
}) | |
} | |
}); | |
d.Vs.Connections = Bb.View.extend({ | |
template: "candidate/candidate.connections.connections.template.html", | |
initialize: function () { | |
var i = this, | |
h = "candidate/candidate.connections.connection.template.html"; | |
this.collection.bind("add", function (k) { | |
switch (i.options.type) { | |
case "Connections": | |
h = "candidate/candidate.connections.connection.template.html"; | |
break; | |
case "Historic Connections": | |
h = "candidate/candidate.connections.connection.historic.template.html"; | |
break; | |
case "Community Connections": | |
h = "candidate/candidate.connections.connection.community.template.html"; | |
break | |
} | |
var j = new d.Vs.Connection({ | |
model: k, | |
template: h, | |
ui3: true, | |
dictionaries: d.Data.Dictionaries | |
}); | |
k.bind("sync", i.renderData, i); | |
p3.rV(j, this.$('[name="connections"]'), false) | |
}, this) | |
}, | |
events: { | |
"click button.create": "createConnection", | |
"click .toggleLink": "toggleSection" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
i.$el.hide(); | |
i.renderData() | |
}, | |
renderData: function () { | |
var h = this; | |
h.collection.reset(); | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({ | |
type: h.options.type | |
})); | |
h.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
prospectInstanceId: d.Data.ProspectInstanceId | |
}, | |
success: function (j) { | |
if (h.options.type === "Connections" || h.collection.models.length > 0) { | |
h.$el.show() | |
} | |
} | |
}) | |
}) | |
}, | |
createConnection: function () { | |
var i = this, | |
h = new d.Ms.Connections({ | |
prospectInstanceId: d.Data.ProspectInstanceId, | |
ConnectionsRelType: { | |
"$type": "clBLL.nAdmissions.ConnectionsRelType, clBLL" | |
}, | |
ConnectionsType: { | |
"$type": "clBLL.nAdmissions.ConnectionsType, clBLL" | |
}, | |
SpecialRelType: { | |
"$type": "clBLL.nAdmissions.SpecialRelType, clBLL" | |
} | |
}); | |
h.bind("sync", i.renderData, i); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new b.Vs.Modal({ | |
template: "candidate/candidate.connections.connection.edit.template.html", | |
model: h, | |
dictionaries: d.Data.Dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
toggleSection: function (k) { | |
var i, j, h = $(k.currentTarget); | |
k.stopPropagation(); | |
k.preventDefault(); | |
i = h.closest(".bb-tile").find(".toggledetail"); | |
j = h.find(".toggleImage"); | |
i.slideToggle("fast"); | |
if (j.hasClass("fa-chevron-up")) { | |
j.removeClass("fa-chevron-up"); | |
j.addClass("fa-chevron-down") | |
} else { | |
if (j.hasClass("fa-chevron-down")) { | |
j.removeClass("fa-chevron-down"); | |
j.addClass("fa-chevron-up") | |
} | |
} | |
} | |
}); | |
d.Vs.Connection = Bb.View.extend({ | |
tagName: "tr", | |
initialize: function () { | |
var h = this; | |
h.template = h.options.template; | |
h.model.bind("destroy", h.deleteElement, h); | |
h.model.bind("remove", h.deleteElement, h) | |
}, | |
events: { | |
"click .edit": "editConnection", | |
"click .delete": "deleteConnection", | |
"click .delete-historic": "deleteHistoricConnection", | |
"click .togglebutton": "toggleInfo" | |
}, | |
render: function (h) { | |
var i = this; | |
$(h).append(i.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var h = this; | |
p3.fT(h.template, function (i) { | |
h.$el.html(i({ | |
model: h.model.toJSON(), | |
dictionaries: h.options.dictionaries | |
})) | |
}) | |
}, | |
toggleInfo: function (i) { | |
var j = this, | |
h = $(i.currentTarget); | |
i.stopPropagation(); | |
i.preventDefault(); | |
j.$(".toggleinfo").slideToggle("fast"); | |
if (h.hasClass("active")) { | |
h.removeClass("active") | |
} else { | |
h.addClass("active") | |
} | |
if (h.hasClass("fa-chevron-up")) { | |
h.removeClass("fa-chevron-up"); | |
h.addClass("fa-chevron-down") | |
} else { | |
if (h.hasClass("fa-chevron-down")) { | |
h.removeClass("fa-chevron-down"); | |
h.addClass("fa-chevron-up") | |
} | |
} | |
}, | |
editConnection: function () { | |
var h = this; | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new b.Vs.Modal({ | |
template: "candidate/candidate.connections.connection.edit.template.html", | |
model: h.model, | |
dictionaries: h.options.dictionaries | |
}), p3.Layout.Containers.Modal, true) | |
}, | |
deleteConnection: function (h) { | |
var i = this; | |
p3.showConfirm("Delete Connection", "Wait a minute. Are you really sure you want to delete this connection information?", null, function () { | |
var j = { | |
prospectInstanceId: d.Data.ProspectInstanceId | |
}; | |
i.model.destroy({ | |
dataParam: j | |
}) | |
}) | |
}, | |
deleteHistoricConnection: function (h) { | |
var i = this; | |
p3.showConfirm("Delete Connection", "Wait a minute. Are you really sure you want to delete this connection information?", null, function () { | |
p3.log(i.model); | |
var j = { | |
userId: d.Data.UserId | |
}; | |
i.model.destroy({ | |
dataParam: j | |
}) | |
}) | |
}, | |
deleteElement: function () { | |
$(this.el).remove() | |
} | |
}) | |
}(p3.module("admissions/candidate/connections"))); | |
(function (c) { | |
var a = p3.module("app"), | |
e = p3.module("shared/datepicker"), | |
l = p3.module("shared/timepicker"), | |
d = p3.module("admissions/candidateprofile"), | |
i = p3.module("shared/profilecontactcard"), | |
b = p3.module("shared/base"), | |
m = p3.module("utilities/validate"), | |
j = p3.module("utilities/smodal"), | |
h = p3.module("utilities/multifetch"), | |
f = p3.Us.Enum, | |
g = p3.Us.InfoMessageLibrary, | |
k = p3.module("shared/task"); | |
c.Ms.Contract = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ContractId", | |
validation: { | |
SchoolYearLabel: [{ | |
required: true, | |
msg: g.P3.RequiredInfoNotEntered | |
}], | |
"ContractType.ContractTypeId": [{ | |
required: true, | |
msg: g.P3.RequiredInfoNotEntered | |
}], | |
AmountDue: [{ | |
required: false, | |
pattern: "number", | |
msg: g.P3.NotNumeric | |
}], | |
AmountPaid: [{ | |
required: false, | |
pattern: "number", | |
msg: g.P3.NotNumeric | |
}], | |
DepositAmtDue: [{ | |
required: false, | |
pattern: "number", | |
msg: g.P3.NotNumeric | |
}], | |
DepositAmountReceived: [{ | |
required: false, | |
pattern: "number", | |
msg: g.P3.NotNumeric | |
}], | |
SendDate: [{ | |
date: true | |
}], | |
ReturnDate: [{ | |
date: true | |
}], | |
DepositReceivedDate: [{ | |
date: true | |
}], | |
Hold: [{ | |
fn: function (p, n, o) { | |
if ($("#Hold").prop("checked") == true && $("#HoldTypeId").val() == "") { | |
return "Hold type must be selected." | |
} | |
} | |
}], | |
HoldTypeId: [{ | |
fn: function (p, n, o) { | |
if ($("#Hold").prop("checked") == true && $("#HoldTypeId").val() == "") { | |
return "Hold type must be selected." | |
} | |
} | |
}], | |
NoReturnDate: [{ | |
date: true | |
}], | |
EffectiveDate: [{ | |
date: true | |
}], | |
EndDate: [{ | |
date: true | |
}], | |
DueDate: [{ | |
date: true | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/ProspectContract/" + this.id + "/" : aP + "admissions/ProspectContract/" | |
} | |
}); | |
c.Ms.ContractDelete = Bbm.extend({ | |
sync: b.DataParamSync, | |
idAttribute: "ContractId", | |
validation: { | |
DeleteReason: [{ | |
required: true, | |
msg: g.P3.RequiredInfoNotEntered | |
}, { | |
maxLength: 1000, | |
msg: g.P3.MaxLengthExceeded | |
}] | |
}, | |
url: function () { | |
return this.id ? aP + "admissions/ProspectContract/" + this.id + "/" : aP + "admissions/ProspectContract/" | |
} | |
}); | |
c.Cs.Contracts = Bbc.extend({ | |
model: c.Ms.Contract, | |
url: function () { | |
return aP + "admissions/ProspectContractList/" | |
} | |
}); | |
c.Cs.HoldTypes = Bbc.extend({ | |
url: "DataDirect/ContractHoldTypesGet/", | |
comparator: "Name" | |
}); | |
c.Cs.PaymentPlans = Bbc.extend({ | |
url: "EnrollmentContract/PaymentPlanList/", | |
comparator: "Name" | |
}); | |
c.Cs.ContractTypes = Bbc.extend({ | |
url: function () { | |
return aP + "enrollmentcontract/ContractTypeList/" | |
} | |
}); | |
c.Cs.OnBoardUsers = Bbc.extend({ | |
url: function () { | |
return aP + "DataDirect/OnBoardUsersGet/" | |
} | |
}); | |
c.Vs.Layout = Bb.View.extend({ | |
template: "admissions/candidate.detail.profile.template.html", | |
events: { | |
renderdata: "renderData" | |
}, | |
initialize: function () { | |
if (this.options) { | |
this.userId = this.options.userId | |
} | |
}, | |
render: function (n) { | |
var o = this; | |
p3.setTitle("Candidate Contracts"); | |
$(n).html(o.el); | |
o.renderData() | |
}, | |
renderData: function () { | |
var n = this; | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({})); | |
p3.rV(new c.Vs.Contracts({ | |
instanceId: n.options.instanceId, | |
userId: n.options.userId | |
}), $("#content"), false) | |
}) | |
} | |
}); | |
c.Vs.Contracts = Bb.View.extend({ | |
template: "candidate/candidate.contracts.contracts.template.html", | |
initialize: function () { | |
var n = this; | |
this.collection = new c.Cs.Contracts(); | |
this.collection.bind("add", function (p) { | |
var o = new c.Vs.Contract({ | |
model: p, | |
dictionaries: n.dictionaries, | |
userId: n.options.userId | |
}); | |
p.bind("sync", n.renderData, n); | |
p3.rV(o, this.$("#candidateContracts"), false) | |
}, this) | |
}, | |
events: { | |
"click a.toggleLink": "toggleSection", | |
"click button.create": "createContract" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
h.Us.Fetch({ | |
ADMContracts: { | |
data: new h.Cs.Dictionary(), | |
dataParams: f.DictionaryData.ADMContracts | |
}, | |
SchoolYearCurrent: { | |
data: new h.Cs.Dictionary(), | |
dataParams: f.DictionaryData.SchoolYearCurrent | |
}, | |
HoldTypes: { | |
data: new c.Cs.HoldTypes() | |
}, | |
PaymentPlans: { | |
data: new c.Cs.PaymentPlans() | |
}, | |
OnBoardUsers: { | |
data: new c.Cs.OnBoardUsers() | |
} | |
}, function (p, r, q) { | |
if (q) { | |
p3.displayError("There was an error loading data.") | |
} | |
p.SchoolYearCurrent = _.sortBy(p.SchoolYearCurrent, "dd_id").reverse(); | |
p.HoldTypes = p.HoldTypes.toJSON(); | |
p.PaymentPlans = p.PaymentPlans.toJSON(); | |
p.OnBoardUsers = p.OnBoardUsers.toJSON(); | |
o.dictionaries = p; | |
o.renderData() | |
}) | |
}, | |
renderData: function () { | |
var n = this; | |
n.collection.reset(); | |
p3.fT(n.template, function (o) { | |
n.$el.html(o({})); | |
n.collection.fetch({ | |
update: true, | |
cache: false, | |
data: { | |
userId: n.options.userId | |
} | |
}) | |
}) | |
}, | |
toggleSection: function (n) { | |
$(n.currentTarget).siblings(".toggledetail").slideToggle("fast"); | |
if ($(n.currentTarget).hasClass("active")) { | |
$(n.currentTarget).removeClass("active") | |
} else { | |
$(n.currentTarget).addClass("active") | |
} | |
return false | |
}, | |
createContract: function () { | |
var o = this, | |
n = new c.Ms.Contract({ | |
userId: o.options.userId, | |
AttachmentFile: { | |
"$type": "clBLL.nAdmissions.AttachmentFile, clBLL" | |
}, | |
ContractType: { | |
"$type": "clBLL.nAdmissions.ContractType, clBLL" | |
} | |
}); | |
n.bind("sync", o.renderData, o); | |
p3.showModal(p3.Layout.Containers.Modal, { | |
backOnHide: false | |
}); | |
p3.rV(new c.Vs.Modal({ | |
template: "candidate/candidate.contracts.edit.template.html", | |
model: n, | |
userContracts: o.collection, | |
dictionaries: o.dictionaries, | |
layoutView: o.options.layoutView | |
}), p3.Layout.Containers.Modal, true) | |
} | |
}); | |
c.Vs.Contract = Bb.View.extend({ | |
template: "candidate/candidate.contracts.contract.template.html", | |
tagName: "tr", | |
initialize: function () { | |
this.model.bind("sync", this.renderData, this) | |
}, | |
events: { | |
"click .edit": "editContract", | |
"click .delete": "deleteContract", | |
"click .togglebutton": "toggleInfo" | |
}, | |
render: function (n) { | |
var o = this; | |
$(n).append(o.el); | |
this.renderData() | |
}, | |
renderData: function () { | |
var p = this, | |
n = p.model.get("AttachmentFile"), | |
o = p.model.get("Comment") || (n && n.hasOwnProperty("Attachment") && n.Attachment.length > 0); | |
if (p.model.get("FormTypeId") === 512 && p.model.get("ContractStatu |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment