Skip to content

Commit 62baf77

Browse files
committed
doc: Update README
1 parent 6c3caa4 commit 62baf77

File tree

1 file changed

+111
-26
lines changed

1 file changed

+111
-26
lines changed

.github/README.md

Lines changed: 111 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
1-
# Umbraco.Community.SimpleTrees
2-
3-
[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco-Marketplace-%233544B1?style=flat&logo=umbraco)](https://marketplace.umbraco.com/package/Umbraco.Community.SimpleTrees)
4-
[![License](https://img.shields.io/github/license/jcdcdev/Umbraco.Community.SimpleTrees?color=8AB803&label=License&logo=github)](https://github.com/jcdcdev/Umbraco.Community.SimpleTrees?tab=MIT-1-ov-file)
5-
[![NuGet Downloads](https://img.shields.io/nuget/dt/Umbraco.Community.SimpleTrees?color=cc9900&label=Downloads&logo=nuget)](https://www.nuget.org/packages/Umbraco.Community.SimpleTrees)
6-
[![Project Website](https://img.shields.io/badge/Project%20Website-jcdc.dev-jcdcdev?style=flat&color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==)](https://jcdc.dev/umbraco-packages/simple-trees)
7-
8-
1+
# Umbraco.Community.SimpleTrees
2+
3+
[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco-Marketplace-%233544B1?style=flat&logo=umbraco)](https://marketplace.umbraco.com/package/Umbraco.Community.SimpleTrees)
4+
[![License](https://img.shields.io/github/license/jcdcdev/Umbraco.Community.SimpleTrees?color=8AB803&label=License&logo=github)](https://github.com/jcdcdev/Umbraco.Community.SimpleTrees?tab=MIT-1-ov-file)
5+
[![NuGet Downloads](https://img.shields.io/nuget/dt/Umbraco.Community.SimpleTrees?color=cc9900&label=Downloads&logo=nuget)](https://www.nuget.org/packages/Umbraco.Community.SimpleTrees)
6+
[![Project Website](https://img.shields.io/badge/Project%20Website-jcdc.dev-jcdcdev?style=flat&color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==)](https://jcdc.dev/umbraco-packages/simple-trees)
7+
8+
99
This packages aims to help developers quickly put together Umbraco Trees using C#.
1010

1111
## Features
1212

1313
- C# custom tree creation
1414
- No javascript or umbraco-package.json files required
1515
- Supports both Views & View Components
16-
- Easy to define section permissions
17-
18-
## Quick Start
19-
16+
- Easy to define section permissions
17+
- ✨ Custom Entity Actions!
18+
19+
## Quick Start
20+
2021
### Install Package
2122

2223
```csharp
@@ -29,7 +30,7 @@ By default, this will display in the content section.
2930

3031
```csharp title="ExampleTree.cs"
3132
using Umbraco.Cms.Core.Models;
32-
using Umbraco.Community.SimpleTrees.Models;
33+
using Umbraco.Community.SimpleTrees.Core.Models;
3334

3435
namespace Umbraco.Community.SimpleTrees.TestSite.Trees;
3536

@@ -78,17 +79,101 @@ public class MyTree : SimpleTree
7879
</table>
7980
</div>
8081
</uui-box>
81-
```
82-
83-
84-
85-
## Contributing
86-
87-
Contributions to this package are most welcome! Please visit the [Contributing](https://github.com/jcdcdev/Umbraco.Community.SimpleTrees/contribute) page.
88-
89-
## Acknowledgements (Thanks)
90-
91-
- LottePitcher - [opinionated-package-starter](https://github.com/LottePitcher/opinionated-package-starter)
92-
93-
82+
```
83+
84+
85+
## Extending
86+
87+
### Entity Actions
88+
89+
It is possible to implement two Entity Actions
90+
91+
#### Url Actions
92+
93+
When clicked, the user will be taken to the specific URL.
94+
95+
```csharp title="NuGetPackageItemEntityUrlAction.cs"
96+
using Umbraco.Community.SimpleTrees.Core.Models;
97+
98+
namespace Umbraco.Community.SimpleTrees.TestSite.Trees;
99+
100+
public class NuGetPackageItemEntityUrlAction : SimpleEntityUrlAction
101+
{
102+
public override string Icon => "icon-link";
103+
public override string Name => "Go to Package";
104+
public override Type[] ForTreeItems => [typeof(NuGetPackageTree)];
105+
public override Type[] ForSimpleEntityTypes => [typeof(NuGetPackageVersionEntityType)];
106+
107+
public override Task<Uri> GetUrlAsync(string unique, string entityType)
108+
{
109+
var uri = new Uri("https://www.nuget.org/packages/" + unique);
110+
return Task.FromResult(uri);
111+
}
112+
}
113+
```
114+
115+
#### Execute Actions
116+
117+
When clicked, you custom logic will be executed. You can also return a helpful response to the user.
118+
119+
```csharp title="NuGetPackageItemEntityExecuteAction"
120+
using System.Net.Http.Headers;
121+
using Umbraco.Community.SimpleTrees.Core.Models;
122+
using Umbraco.Community.SimpleTrees.Web.Models;
123+
124+
namespace Umbraco.Community.SimpleTrees.TestSite.Trees;
125+
126+
public class NuGetPackageItemEntityExecuteAction : SimpleEntityExecuteAction
127+
{
128+
private readonly HttpClient _client;
129+
130+
public NuGetPackageItemEntityExecuteAction(HttpClient client)
131+
{
132+
var url = "https://functions.marketplace.umbraco.com/api/";
133+
client.BaseAddress = new Uri(url);
134+
client.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("Umbraco.Community.SimpleTrees.TestSite", "1.0"));
135+
_client = client;
136+
}
137+
138+
public override string Icon => "icon-refresh";
139+
public override string Name => "Sync Package";
140+
public override Type[] ForTreeItems => [typeof(NuGetPackageTree)];
141+
142+
public override async Task<SimpleEntityActionExecuteResponse> ExecuteAsync(string unique, string entityType)
143+
{
144+
try
145+
{
146+
var split = unique.Split('_');
147+
var packageId = split[0];
148+
var model = new MarketplaceRequest
149+
{
150+
PackageId = packageId,
151+
};
152+
153+
var result = await _client.PostAsJsonAsync("InitiateSinglePackageSyncFunction", model);
154+
if (!result.IsSuccessStatusCode)
155+
{
156+
return SimpleEntityActionExecuteResponse.Error("Failed to initiate package update", $"Status Code: {result.StatusCode}, Reason: {result.ReasonPhrase}");
157+
}
158+
159+
var message = $"Package {packageId} update has been initiated. You can check the progress in the Umbraco Marketplace.";
160+
return SimpleEntityActionExecuteResponse.Success("Package update initiated successfully", message);
161+
}
162+
catch (Exception ex)
163+
{
164+
return SimpleEntityActionExecuteResponse.Error("An error occurred while initiating the package update", ex.Message);
165+
}
166+
}
167+
}
168+
```
169+
170+
## Contributing
171+
172+
Contributions to this package are most welcome! Please visit the [Contributing](https://github.com/jcdcdev/Umbraco.Community.SimpleTrees/contribute) page.
173+
174+
## Acknowledgements (Thanks)
175+
176+
- LottePitcher - [opinionated-package-starter](https://github.com/LottePitcher/opinionated-package-starter)
177+
178+
94179

0 commit comments

Comments
 (0)