Added nvmrc, updated readme, sample.json, devcontainer

This commit is contained in:
Hugo Bernier 2023-09-20 23:17:21 -04:00
parent 2a3f9657df
commit 1928b8c1aa
5 changed files with 178 additions and 29 deletions

View File

@ -0,0 +1,39 @@
// For more information on how to run this SPFx project in a VS Code Remote Container, please visit https://aka.ms/spfx-devcontainer
{
"name": "SPFx 1.17.4",
"image": "docker.io/m365pnp/spfx:1.17.4",
// Set *default* container specific settings.json values on container create.
"settings": {},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint"
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [
4321,
35729
],
"portsAttributes": {
"4321": {
"protocol": "https",
"label": "Manifest",
"onAutoForward": "silent",
"requireLocalPort": true
},
// Not needed for SPFx>= 1.12.1
// "5432": {
// "protocol": "https",
// "label": "Workbench",
// "onAutoForward": "silent"
// },
"35729": {
"protocol": "https",
"label": "LiveReload",
"onAutoForward": "silent",
"requireLocalPort": true
}
},
"postCreateCommand": "bash .devcontainer/spfx-startup.sh",
"remoteUser": "node"
}

View File

@ -0,0 +1,33 @@
echo
echo -e "\e[1;94mInstalling Node dependencies\e[0m"
npm install
## commands to create dev certificate and copy it to the root folder of the project
echo
echo -e "\e[1;94mGenerating dev certificate\e[0m"
gulp trust-dev-cert
# Convert the generated PEM certificate to a CER certificate
openssl x509 -inform PEM -in ~/.rushstack/rushstack-serve.pem -outform DER -out ./spfx-dev-cert.cer
# Copy the PEM ecrtificate for non-Windows hosts
cp ~/.rushstack/rushstack-serve.pem ./spfx-dev-cert.pem
## add *.cer to .gitignore to prevent certificates from being saved in repo
if ! grep -Fxq '*.cer' ./.gitignore
then
echo "# .CER Certificates" >> .gitignore
echo "*.cer" >> .gitignore
fi
## add *.pem to .gitignore to prevent certificates from being saved in repo
if ! grep -Fxq '*.pem' ./.gitignore
then
echo "# .PEM Certificates" >> .gitignore
echo "*.pem" >> .gitignore
fi
echo
echo -e "\e[1;92mReady!\e[0m"
echo -e "\n\e[1;94m**********\nOptional: if you plan on using gulp serve, don't forget to add the container certificate to your local machine. Please visit https://aka.ms/spfx-devcontainer for more information\n**********"

View File

@ -0,0 +1 @@
v16.13.0

View File

@ -6,31 +6,43 @@ This sample empowers users to effortlessly download multiple documents as a sing
![screenshot](./assets/screenshot1.png) ![screenshot](./assets/screenshot1.png)
## Demo
![demo](./assets/MultipleDownloadsWebPartDemo.gif) ![demo](./assets/MultipleDownloadsWebPartDemo.gif)
## Used SharePoint Framework Version ## Compatibility
![version](https://img.shields.io/badge/version-1.17.4-green.svg) | :warning: Important |
|:---------------------------|
| Every SPFx version is optimally compatible with specific versions of Node.js. In order to be able to build this sample, you need to ensure that the version of Node on your workstation matches one of the versions listed in this section. This sample will not work on a different version of Node.|
|Refer to <https://aka.ms/spfx-matrix> for more information on SPFx compatibility. |
This sample is optimally compatible with the following environment configuration:
![SPFx 1.17.4](https://img.shields.io/badge/SPFx-1.17.4-green.svg)
![Node.js v16.13+](https://img.shields.io/badge/Node.js-v16.13+-green.svg)
![Compatible with SharePoint Online](https://img.shields.io/badge/SharePoint%20Online-Compatible-green.svg)
![Does not work with SharePoint 2019](https://img.shields.io/badge/SharePoint%20Server%202019-Incompatible-red.svg "SharePoint Server 2019 requires SPFx 1.4.1 or lower")
![Does not work with SharePoint 2016 (Feature Pack 2)](https://img.shields.io/badge/SharePoint%20Server%202016%20(Feature%20Pack%202)-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1")
![Local Workbench Unsupported](https://img.shields.io/badge/Local%20Workbench-Unsupported-red.svg "Local workbench is no longer available as of SPFx 1.13 and above")
![Hosted Workbench Compatible](https://img.shields.io/badge/Hosted%20Workbench-Compatible-green.svg)
![Compatible with Remote Containers](https://img.shields.io/badge/Remote%20Containers-Compatible-green.svg)
Tested using Node.js v16.13.0
## Applies to ## Applies to
- [SharePoint Framework](https://aka.ms/spfx) - [SharePoint Framework](https://aka.ms/spfx)
- [Microsoft 365 tenant](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant) - [Microsoft 365 tenant](https://docs.microsoft.com/sharepoint/dev/spfx/set-up-your-developer-tenant)
> Get your own free development tenant by subscribing to [Microsoft 365 developer program](http://aka.ms/o365devprogram) > Get your own free development tenant by subscribing to [Microsoft 365 developer program](http://aka.ms/m365devprogram)
## Prerequisites ## Prerequisites
* [JSZIP](https://github.com/Stuk/jszip) - [JSZIP](https://github.com/Stuk/jszip)
* [spfx-property-controls](https://pnp.github.io/sp-dev-fx-property-controls/) - [spfx-property-controls](https://pnp.github.io/sp-dev-fx-property-controls/)
## Solution ## Contributors
| Solution | Author(s) | - [Ramin Ahmadi](https://github.com/AhmadiRamin) |
| ----------- | ------------------------------------------------------- |
| react-download-multiple-documents | [Ramin Ahmadi](https://codingwithramin.com) |
## Version history ## Version history
@ -38,29 +50,21 @@ This sample empowers users to effortlessly download multiple documents as a sing
| ------- | ---------------- | --------------- | | ------- | ---------------- | --------------- |
| 1.0 | September 09, 2023 | Initial release | | 1.0 | September 09, 2023 | Initial release |
## Disclaimer
**THIS CODE IS PROVIDED _AS IS_ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**
---
## Minimal Path to Awesome ## Minimal Path to Awesome
- Clone this repository - Clone this repository (or [download this solution as a .ZIP file](https://pnp.github.io/download-partial/?url=https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-download-multiple-documents) then unzip it)
- Ensure that you are at the solution folder - From your command line, change your current directory to the directory containing this sample (`react-download-multiple-documents`, located under `samples`)
- in the command-line run: - in the command line run:
- **npm install** - `npm install`
- **gulp serve** - `gulp serve`
> Include any additional steps as needed.
## Features ## Features
* Seamless Integration: This SPFx web part seamlessly integrates with your SharePoint environment, allowing you to select multiple documents from document libraries or lists. - Seamless Integration: This SPFx web part seamlessly integrates with your SharePoint environment, allowing you to select multiple documents from document libraries or lists.
* Batch Download: Select multiple documents, and with a single click, generate and download a ZIP file containing all the selected documents. - Batch Download: Select multiple documents, and with a single click, generate and download a ZIP file containing all the selected documents.
* Efficient Compression: The web part leverages the jszip library, a popular JavaScript library for working with ZIP files. It efficiently compresses your selected documents while preserving their folder structure. - Efficient Compression: The web part leverages the jszip library, a popular JavaScript library for working with ZIP files. It efficiently compresses your selected documents while preserving their folder structure.
## References ## References
@ -69,3 +73,25 @@ This sample empowers users to effortlessly download multiple documents as a sing
- [Use Microsoft Graph in your solution](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using-microsoft-graph-apis) - [Use Microsoft Graph in your solution](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using-microsoft-graph-apis)
- [Publish SharePoint Framework applications to the Marketplace](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/publish-to-marketplace-overview) - [Publish SharePoint Framework applications to the Marketplace](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/publish-to-marketplace-overview)
- [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) - Guidance, tooling, samples and open-source controls for your Microsoft 365 development - [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) - Guidance, tooling, samples and open-source controls for your Microsoft 365 development
## Help
We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues.
If you're having issues building the solution, please run [spfx doctor](https://pnp.github.io/cli-microsoft365/cmd/spfx/spfx-doctor/) from within the solution folder to diagnose incompatibility issues with your environment.
You can try looking at [issues related to this sample](https://github.com/pnp/sp-dev-fx-webparts/issues?q=label%3A%22sample%3A%20react-download-multiple-documents%22) to see if anybody else is having the same issues.
You can also try looking at [discussions related to this sample](https://github.com/pnp/sp-dev-fx-webparts/discussions?discussions_q=react-download-multiple-documents) and see what the community is saying.
If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected%2Csample%3A%20react-download-multiple-documents&template=bug-report.yml&sample=react-download-multiple-documents&authors=@AhmadiRamin&title=react-download-multiple-documents%20-%20).
For questions regarding this sample, [create a new question](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Aquestion%2Csample%3A%20react-download-multiple-documents&template=question.yml&sample=react-download-multiple-documents&authors=@AhmadiRamin&title=react-download-multiple-documents%20-%20).
Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Aenhancement%2Csample%3A%20react-download-multiple-documents&template=suggestion.yml&sample=react-download-multiple-documents&authors=@AhmadiRamin&title=react-download-multiple-documents%20-%20).
## Disclaimer
**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**
<img src="https://m365-visitor-stats.azurewebsites.net/sp-dev-fx-webparts/samples/react-download-multiple-documents" />

View File

@ -0,0 +1,50 @@
[
{
"name": "pnp-sp-dev-spfx-web-parts-react-download-multiple-documents",
"source": "pnp",
"title": "Download Multiple Documents",
"shortDescription": "This sample empowers users to effortlessly download multiple documents as a single compressed ZIP file.",
"url": "https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-download-multiple-documents",
"downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-download-multiple-documents",
"longDescription": [
"This sample empowers users to effortlessly download multiple documents as a single compressed ZIP file."
],
"creationDateTime": "2023-09-09",
"updateDateTime": "2023-09-09",
"products": [
"SharePoint"
],
"metadata": [
{
"key": "CLIENT-SIDE-DEV",
"value": "React"
},
{
"key": "SPFX-VERSION",
"value": "1.17.4"
}
],
"thumbnails": [
{
"type": "image",
"order": 100,
"url": "https://github.com/pnp/sp-dev-fx-webparts/raw/main/samples/react-download-multiple-documents/assets/MultipleDownloadsWebPartDemo.gif",
"alt": "Web Part Preview"
}
],
"authors": [
{
"gitHubAccount": "AhmadiRamin",
"pictureUrl": "https://github.com/AhmadiRamin.png",
"name": "Ramin Ahmadi"
}
],
"references": [
{
"name": "Build your first SharePoint client-side web part",
"description": "Client-side web parts are client-side components that run in the context of a SharePoint page. Client-side web parts can be deployed to SharePoint environments that support the SharePoint Framework. You can also use modern JavaScript web frameworks, tools, and libraries to build them.",
"url": "https://docs.microsoft.com/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part"
}
]
}
]