this is the code related to start form
a!localVariables( local!groups,a!formLayout( label: if(ri!readOnly,"Meeting Information","Request New Meeting"), contents: { a!columnsLayout( columns: { a!columnLayout( contents: { if(ri!readOnly, a!textField( label: "Meeting Subject ", labelPosition:"ADJACENT", value: ri!MMS_Meetinginfo.subject, saveInto: ri!MMS_Meetinginfo.subject, readOnly:true ), a!textField( label: "Meeting Subject ", labelPosition:"ABOVE", value: ri!MMS_Meetinginfo.subject, saveInto: ri!MMS_Meetinginfo.subject, required: true, validations: if( len( ri!MMS_Meetinginfo.subject ) > 50, "Value may not be longer than 50 characters. You have entered " & len( ri!MMS_Meetinginfo.subject ) & " characters.", null ) ) ), if( ri!readOnly, a!paragraphField( label: "Meeting Body", labelPosition: "ADJACENT", value: ri!MMS_Meetinginfo.body, saveInto: ri!MMS_Meetinginfo.body, refreshAfter: "UNFOCUS", height: "MEDIUM", readOnly: true ), a!paragraphField( label: "Meeting Body", labelPosition: "ABOVE", value: ri!MMS_Meetinginfo.body, saveInto: ri!MMS_Meetinginfo.body, refreshAfter: "UNFOCUS", height: "MEDIUM", required: true ) ), if( ri!readOnly, a!textField( label: "Location", labelPosition:"ADJACENT", value: ri!MMS_Meetinginfo.location, saveInto: ri!MMS_Meetinginfo.location, readOnly:true ), a!textField( label: "Location", labelPosition: "ABOVE", value: ri!MMS_Meetinginfo.location, saveInto: ri!MMS_Meetinginfo.location, required: true, validations: if( len( ri!MMS_Meetinginfo.location ) > 50, "Value may not be longer than 50 characters. You have entered " & len( ri!MMS_Meetinginfo.location ) & " characters.", null ) ) ) } ), a!columnLayout( contents: { if( ri!readOnly, a!pickerFieldGroups( label: "Attendees", labelPosition: "ADJACENT", maxSelections: 2, value:local!groups, saveInto:local!groups, readOnly: true ), a!pickerFieldGroups( label: "Attendees", labelPosition: "ABOVE", maxSelections: 2, value:local!groups, saveInto:local!groups, required: true
) ), if( ri!readOnly, a!dateTimeField( label: "Start Time", labelPosition:"ADJACENT", value: ri!MMS_Meetinginfo.startTime, saveInto: ri!MMS_Meetinginfo.startTime, readOnly:true ), a!dateTimeField( label: "Start Time", labelPosition:"ABOVE", value: ri!MMS_Meetinginfo.startTime, saveInto: ri!MMS_Meetinginfo.startTime, required: true, validations: if(ri!MMS_Meetinginfo.startTime>now(),null,"start date time must not be past date time ") ) ), if( ri!readOnly, a!dateTimeField( label: "End Time", labelPosition:"ADJACENT", value: ri!MMS_Meetinginfo.endTime, saveInto: ri!MMS_Meetinginfo.endTime, readOnly:true() ), a!dateTimeField( label: "End Time", labelPosition:"ABOVE", value: ri!MMS_Meetinginfo.endTime, saveInto: ri!MMS_Meetinginfo.endTime, required: true, validations: validations: if(ri!MMS_Meetinginfo.endTime>now(),null,"end date time must not be past date time ") ) ) } ) } ) }, buttons:{ a!buttonLayout( primaryButtons: { a!buttonWidget( label: "Request New Meeting", icon: "envelope", saveInto: { a!forEach( local!groups, a!save(ri!attendees,append(ri!attendees,{groupid:tointeger(fv!item)})) ), a!save(ri!MMS_Meetinginfo.startTime,gmt(ri!MMS_Meetinginfo.startTime,"IST")), a!save(ri!MMS_Meetinginfo.endTime,gmt(ri!MMS_Meetinginfo.endTime,"IST")), a!save(ri!MMS_Meetinginfo.createdBy,loggedInUser()), a!save(ri!readOnly,true) }, submit: true, style: "PRIMARY" ) }, secondaryButtons: { a!buttonWidget( label: "CANCEL MEETING", icon: "times-circle", value: true, saveInto: ri!cancel, submit: true, style: "NORMAL", validate: false ) }, showWhen: or( isnull( ri!readOnly ), not( ri!readOnly ) ) ), a!buttonLayout( primaryButtons: a!buttonWidget( label:"CHECKIN", icon: "user", saveInto:{ a!save(ri!CheckinAndFeedbackInfo.checkintime,gmt(now(),"IST")), a!save(ri!CheckinAndFeedbackInfo.user,loggedInUser()) }, style:"PRIMARY" ), showWhen:ri!readOnly ) }))
Discussion posts and replies are publicly visible
thank you