SharePoint JSGrid - JackHu88/Comm GitHub Wiki
https://chuvash.eu/2014/11/27/jsgrid-basics/
https://www.codeproject.com/Articles/813090/Master-detail-with-JSGrid
(function () {
window.SP.SOD.executeOrDelayUntilScriptLoaded(function () {
window.SP.GanttControl.WaitForGanttCreation(function (controller) {
var days = {
Jan: "-02-01",
Feb: "-03-01",
Mar: "-04-01",
Apr: "-05-01",
May: "-06-01",
Jun: "-07-01",
Jul: "-08-01",
Aug: "-09-01",
Sep: "-10-01",
Oct: "-11-01",
Nov: "-12-01",
Dec: "-01-01",
}
for (var i = 0; i < ctx.ListSchema.Field.length; i++) {
var field = ctx.ListSchema.Field[i];
var currentYear = (new Date()).getFullYear();
var editDate = (new Date()).setDate((new Date().getDate()) + 3);
switch (field.FieldTitle) {
case "Year":
field.AllowGridEditing = false;
break;
default:
if (days[field.FieldTitle]) {
if (field.FieldTitle == "Dec") {
currentYear = currentYear + 1;
}
if (editDate > new Date(currentYear + days[field.FieldTitle])) {
field.AllowGridEditing = false;
}
}
break;
}
}
controller.AttachRowChanged(function (recordkey) {
var currentYear = (new Date()).format("yyyy");
controller.ReadValue(recordkey, "Year", updateYear);
function updateYear(exsit, result) {
if (exsit) {
if (result.hasLocalizedValue && result.localizedValue == currentYear) {
return;
}
else {
var updates = [];
updates.push(SP.JsGrid.CreateValidatedPropertyUpdate(recordkey, "Year", currentYear, currentYear));
controller.UpdateProperties(updates);
}
}
}
});
});
}, "spgantt.js");
})();