Forum Discussion

Candice_Osborne's avatar
Candice_Osborne
Copper Contributor
Jan 17, 2023
Solved

Looking for App that allows employees to upload photos & description

We have an employee intranet that 99% of the employee are readers only.  We are looking for a SharePoint app or solution that will allow the readers only to upload photos (pending approval) to a SharePoint list or folder with a description & submitter name

  • Hi Candice_Osborne ,

    well you could just create a document library

     

    1) Create a Document Library
    2) Add a column "My Description" and make that column required.

    3) Apply this view formatting json to the view

    {
      "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
      "hideSelection": true,
      "hideColumnHeader": true,
      "rowFormatter": {
        "elmType": "a",
        "attributes": {
          "class": "ms-borderColor-neutralLight",
          "href": "[$FileRef]"
        },
        "style": {
          "float": "left"
        },
        "children": [
          {
            "elmType": "div",
            "attributes": {
              "class": "ms-bgColor-themeLighterAlt ms-bgColor-themePrimary--hover ms-fontColor-white--hover"
            },
            "style": {
              "display": "flex",
              "flex-wrap": "wrap",
              "flex-direction": "column",
              "align-items": "stretch",
              "padding": "1px",
              "margin": "10px",
              "max-width": "930px",
              "box-shadow": "2px 2px 4px darkgrey"
            },
            "children": [
              {
                "elmType": "img",
                "attributes": {
                  "src": "=@currentWeb + '/_layouts/15/getpreview.ashx?path='+[$FileRef]"
                },
                "style": {
                  "width": "auto",
                  "height": "300px"
                },
                "children": [
                  {
                    "elmType": "span",
                    "txtContent": "[$FileName]",
                    "style": {
                      "margin-bottom": "1px"
                    },
                    "attributes": {
                      "class": "ms-fontSize-m ms-fontWeight-regular ms-fontColor-neutralSecondary"
                    }
                  }
                ]
              },
    		   {
                "elmType": "div", 
    			"txtContent": "[$MyDescription]"
    			}
            ]
          }
        ]
      }
    }

    Now you get this

    3) Give Users write access to that library ("Gear->Library Settings->Permissions for this document library-> Stop inheriting Permissions" and after that Grant Permissions to your user group)

    4) Now go to Gear->Library Settings-> Versioning Settings and make these Settings


    Now you get a new View "Approve/reject Items".

    If a user uploads a new Image, it will be stored in the document library.
    But it will be only visible for the user and Site Collection Admins.
    Admins now can go into the "Approve/reject Items" View and either approve or reject an item. Only then it will be visible to all other users.

    If you want to be notified of new items that need approval, you now just have to create a flow that sends you an email, if a new item is created.

    Best Regards,
    Sven

1 Reply

  • SvenSieverding's avatar
    SvenSieverding
    Bronze Contributor

    Hi Candice_Osborne ,

    well you could just create a document library

     

    1) Create a Document Library
    2) Add a column "My Description" and make that column required.

    3) Apply this view formatting json to the view

    {
      "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
      "hideSelection": true,
      "hideColumnHeader": true,
      "rowFormatter": {
        "elmType": "a",
        "attributes": {
          "class": "ms-borderColor-neutralLight",
          "href": "[$FileRef]"
        },
        "style": {
          "float": "left"
        },
        "children": [
          {
            "elmType": "div",
            "attributes": {
              "class": "ms-bgColor-themeLighterAlt ms-bgColor-themePrimary--hover ms-fontColor-white--hover"
            },
            "style": {
              "display": "flex",
              "flex-wrap": "wrap",
              "flex-direction": "column",
              "align-items": "stretch",
              "padding": "1px",
              "margin": "10px",
              "max-width": "930px",
              "box-shadow": "2px 2px 4px darkgrey"
            },
            "children": [
              {
                "elmType": "img",
                "attributes": {
                  "src": "=@currentWeb + '/_layouts/15/getpreview.ashx?path='+[$FileRef]"
                },
                "style": {
                  "width": "auto",
                  "height": "300px"
                },
                "children": [
                  {
                    "elmType": "span",
                    "txtContent": "[$FileName]",
                    "style": {
                      "margin-bottom": "1px"
                    },
                    "attributes": {
                      "class": "ms-fontSize-m ms-fontWeight-regular ms-fontColor-neutralSecondary"
                    }
                  }
                ]
              },
    		   {
                "elmType": "div", 
    			"txtContent": "[$MyDescription]"
    			}
            ]
          }
        ]
      }
    }

    Now you get this

    3) Give Users write access to that library ("Gear->Library Settings->Permissions for this document library-> Stop inheriting Permissions" and after that Grant Permissions to your user group)

    4) Now go to Gear->Library Settings-> Versioning Settings and make these Settings


    Now you get a new View "Approve/reject Items".

    If a user uploads a new Image, it will be stored in the document library.
    But it will be only visible for the user and Site Collection Admins.
    Admins now can go into the "Approve/reject Items" View and either approve or reject an item. Only then it will be visible to all other users.

    If you want to be notified of new items that need approval, you now just have to create a flow that sends you an email, if a new item is created.

    Best Regards,
    Sven

Resources