Merge pull request #3477 from martinlingstuyl/copy-views-sorting

Copy-Views webpart - Add Sorting to list and view pickers
This commit is contained in:
Hugo Bernier 2023-02-18 16:22:27 -05:00 committed by GitHub
commit ec010eb94d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 16 deletions

View File

@ -1,4 +1,4 @@
http://aka.ms/m365devprogramhttp://aka.ms/m365devprogramhttp://aka.ms/m365devprogramhttp://aka.ms/m365devprogram# Copy Views # Copy Views
## Summary ## Summary
@ -31,10 +31,11 @@ This sample is optimally compatible with the following environment configuration
- [SharePoint Framework](https://aka.ms/spfx) - [SharePoint Framework](https://aka.ms/spfx)
- [Microsoft 365 tenant](https://learn.microsoft.com/sharepoint/dev/spfx/set-up-your-developer-tenant) - [Microsoft 365 tenant](https://learn.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)
## Authors ## Contributors
[Martin Lingstuyl](https://github.com/martinlingstuyl) ([@martinlingstuyl](https://twitter.com/martinlingstuyl)), I4-YOU Business Solutions b.v.
- [Martin Lingstuyl](https://github.com/martinlingstuyl) ([@martinlingstuyl](https://twitter.com/martinlingstuyl)), I4-YOU Business Solutions b.v.
## Version history ## Version history
@ -54,7 +55,7 @@ This sample is optimally compatible with the following environment configuration
- Use `gulp bundle --ship` & `gulp package-solution --ship` - Use `gulp bundle --ship` & `gulp package-solution --ship`
- Add the `.sppkg` to your SharePoint App Catalog - Add the `.sppkg` to your SharePoint App Catalog
> This sample can also be opened with [VS Code Remote Development](https://code.visualstudio.com/docs/remote/remote-overview). Visit https://aka.ms/spfx-devcontainer for further instructions. > This sample can also be opened with [VS Code Remote Development](https://code.visualstudio.com/docs/remote/remote-overview). Visit <https://aka.ms/spfx-devcontainer> for further instructions.
## Features ## Features
@ -89,7 +90,7 @@ Finally, if you have an idea for improvement, [make a suggestion](https://github
## Disclaimer ## 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.** **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.**
--- ---

View File

@ -3,7 +3,7 @@
"solution": { "solution": {
"name": "copy-views-client-side-solution", "name": "copy-views-client-side-solution",
"id": "f9a94606-ce1c-487c-ab87-550b240421de", "id": "f9a94606-ce1c-487c-ab87-550b240421de",
"version": "1.0.2.0", "version": "1.0.2.1",
"includeClientSideAssets": true, "includeClientSideAssets": true,
"skipFeatureDeployment": true, "skipFeatureDeployment": true,
"isDomainIsolated": false, "isDomainIsolated": false,

View File

@ -43,7 +43,7 @@ export class ListViewsService implements IListViewsService {
const web = Web([this._sp.web, siteUrl]); const web = Web([this._sp.web, siteUrl]);
const views = await web.lists.getById(listId).views.select("Id", "Title", "ServerRelativeUrl", "ViewType2")(); const views = await web.lists.getById(listId).views.orderBy("Title", true).select("Id", "Title", "ServerRelativeUrl", "ViewType2")();
return views.map((view: IViewInfo) => { return views.map((view: IViewInfo) => {
const viewFileName = view.ServerRelativeUrl.substring(view.ServerRelativeUrl.lastIndexOf('/') + 1); const viewFileName = view.ServerRelativeUrl.substring(view.ServerRelativeUrl.lastIndexOf('/') + 1);

View File

@ -51,7 +51,7 @@ export class ListsService implements IListsService {
"EntityTypeName ne 'FormServerTemplates'" // Exclude the Form Templates library "EntityTypeName ne 'FormServerTemplates'" // Exclude the Form Templates library
]; ];
const lists = await web.lists.expand("RootFolder").select("Id", "Title", "BaseType", "RootFolder/ServerRelativeUrl").filter(filterConditions.join(" and "))(); const lists = await web.lists.expand("RootFolder").select("Id", "Title", "BaseType", "RootFolder/ServerRelativeUrl").orderBy("Title", true).filter(filterConditions.join(" and "))();
return lists return lists
.filter(l => l.BaseType === 1 || l.BaseType === 0) .filter(l => l.BaseType === 1 || l.BaseType === 0)
@ -105,8 +105,9 @@ export class ListsService implements IListsService {
} }
}); });
// Sort on title to help list selection. Sorting on title is impossible serverside because Title is not sortable.
return mappedResults.sort((a, b) => { return mappedResults.sort((a, b) => {
if (a.siteUrl < b.siteUrl) { return -1; } else if (a.siteUrl > b.siteUrl) { return 1; } else { return 0; } if (a.title < b.title) { return -1; } else if (a.title > b.title) { return 1; } else { return 0; }
}); });
} }