Skip to main content
gautams4173
July 14, 2023
Solved

FileUpload Validation

  • July 14, 2023
  • 9 replies
  • 0 views

I am implementing a gridRowLayout. Inside the gridRowLayout I am implementing a fileUpload field. 

So that I can add a new row dynamically and for each row I can upload 1 document.

But the demand here is ... I cant upload same files again and again (i.e. I cant upload same files in different rows) . But I am not quite sure how to do the validation for it. Can anyone help me with this ? 

This validation I have added for fileName. But as you see I could upload same files. I need validation to say that File Already Uploaded. Is there a way to do this validation ?

Best answer by shikhat

There is no validation defined here , but sharing a sample code which you can try.

{
  a!fileUploadField(
    label: "File Upload",
    labelPosition: "ABOVE",
    target: cons!DOCUMENTFOLDERCONSTANT,
    value: ri!documents,
    saveInto: ri!documents,
    validations: reject(
      fn!isnull,
      a!forEach(
        items: union({ fv!files.name }, { fv!files.name }),
        expression: if(
          count(wherecontains(fv!item, { fv!files.name })) > 1,
          fv!item & " is uploaded by you earlier please remove it",
          null
        )
      )
    ),
    buttonDisplay: "LABEL"
  )
}/* documents RI is of type document and array type*/

9 replies

shikhat
July 14, 2023

Hi,

Can you share your code snippet?

gautams4173
July 14, 2023

a!localVariables(
local!uploadedDocuments: index(ri!data, "uploadedFiles", null),
a!gridLayout(
label: "UPLOAD FILES",
headerCells: {
..
},
columnConfigs: {
..
},
rows: {
a!forEach(
items: local!uploadedDocuments,
expression: {
a!gridRowLayout(
contents: {
a!fileUploadField(
target: cons!TargetFolder,
label: "Attach Documents",
labelPosition: "ABOVE",
maxSelections: 1,
value: ..,
saveInto: {..},
),
a!richTextDisplayField(
value: a!richTextIcon(
icon: "times",
link: a!dynamicLink(
saveInto: {..}
),
linkStyle: "STANDALONE",
color: "NEGATIVE"
),
showWhen: not(ri!readOnly)
)
}
)
}
)
},
addRowLink: a!dynamicLink(
label: "Attach New Document ",
saveInto: {..},
showWhen: not(ri!readOnly)
)
),
)

shikhat
shikhatAnswer
July 14, 2023

There is no validation defined here , but sharing a sample code which you can try.

{
  a!fileUploadField(
    label: "File Upload",
    labelPosition: "ABOVE",
    target: cons!DOCUMENTFOLDERCONSTANT,
    value: ri!documents,
    saveInto: ri!documents,
    validations: reject(
      fn!isnull,
      a!forEach(
        items: union({ fv!files.name }, { fv!files.name }),
        expression: if(
          count(wherecontains(fv!item, { fv!files.name })) > 1,
          fv!item & " is uploaded by you earlier please remove it",
          null
        )
      )
    ),
    buttonDisplay: "LABEL"
  )
}/* documents RI is of type document and array type*/