// ~sitecollectionlayouts/AFDI/TestJSlink/customForm.js //Form Template Name = CSRListForm //CSR Render Mode = standard layout (function () { if (typeof SPClientTemplates === 'undefined') return; var formTemplateCtx = {}; formTemplateCtx.Templates = {}; //formTemplateCtx.Templates.NewForm = NewAndEditTemplate; //ormTemplateCtx.Templates.EditForm = NewAndEditTemplate; formTemplateCtx.Templates.Item = DisplayTemplate; //debugger; //register the template to render our field SPClientTemplates.TemplateManager.RegisterTemplateOverrides(formTemplateCtx); })(); //function called when an item with our field is in edit mode or new mode. function DisplayTemplate(ctx) { if (ctx == null) return ''; var formCtx = SPClientTemplates.Utility.GetFormContextForCurrentField(ctx); if (formCtx == null) return ''; //render the display controls for the ingredient var html = RenderDisplayFields(ctx, formCtx); return html; } function RenderDisplayFields(ctx, formCtx){ var formTable = "".concat("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "
 
reload
{{TitleCtrl}}
Choice
{{ChoiceCtrl}}
Link
{{LinkCtrl}}
Check
{{CheckCtrl}}
Rich text
{{RichCtrl}}
current user login
{{CurrentUser}}
current user id
{{CurrentId}}
current user Email
{{CurrentEmail}}
current user IsSiteAdmin
{{CurrentIsSiteAdmin}}
current user Title
{{CurrentTitle}}
"); /* "", "", "", */ //Replace the tokens with the default sharepoint controls formTable = formTable.replace("{{TitleCtrl}}", getSPFieldRender(ctx, "Title")); formTable = formTable.replace("{{ChoiceCtrl}}", getSPFieldRender(ctx, "aFdiChoice")); formTable = formTable.replace("{{LinkCtrl}}", getSPFieldRender(ctx, "aFDiLink")); formTable = formTable.replace("{{CheckCtrl}}", getSPFieldRender(ctx, "aFdiCheck")); //formTable = formTable.replace("{{RichCtrl}}", getSPFieldRender(ctx, "aFdiRich")); var currentUser; //asynchrone call to get current user datas $.ajax({ async: false, headers: { "accept": "application/json; odata=verbose" }, method: "GET", url: formCtx.webAttributes.WebUrl + "/_api/web/CurrentUser", success: function (data) { // Set the current user currentUser = data.d; } }); formTable = formTable.replace("{{CurrentUser}}", currentUser.LoginName); formTable = formTable.replace("{{CurrentId}}", currentUser.Id); formTable = formTable.replace("{{CurrentEmail}}", currentUser.Email); formTable = formTable.replace("{{CurrentIsSiteAdmin}}", currentUser.IsSiteAdmin); formTable = formTable.replace("{{CurrentTitle}}", currentUser.Title); return formTable; } //This function code set the required properties and call the OOTB (default) function that use to render Sharepoint Fields function getSPFieldRender(ctx, fieldName) { var fieldContext = ctx; //Get the filed Schema var result = ctx.ListSchema.Field.filter(function(obj) { return obj.Name == fieldName; }); //Set the field Schema & default value fieldContext.CurrentFieldSchema = result[0]; fieldContext.CurrentFieldValue = ctx.ListData.Items[0][fieldName]; //Call OOTB field render function return ctx.Templates.Fields[fieldName](fieldContext); }