Skip to content

Commit ae2cbed

Browse files
committed
Updates to newsletter widget
1 parent b54651d commit ae2cbed

File tree

7 files changed

+75
-69
lines changed

7 files changed

+75
-69
lines changed

Blogifier.Web/Views/Blogifier/Admin/Packages/Widgets.cshtml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111
<input class="custom-control-input" type="checkbox" id="selectAll" name="selectAll">
1212
<span class="item-control custom-control-indicator"></span>
1313
</label>
14-
<a asp-controller="Packages" asp-action="Widgets" class="btn btn-outline-secondary btn-sm btn-rounded" style="padding: 0 20px; margin-right: 20px">
15-
<i class="fa fa-arrow-left mr-2"></i> Back
16-
</a>
1714
<div id="multiActionBtns" class="btn-group mr-3">
1815
<button type="button" class="btn btn-outline-secondary btn-icon btn-sm btn-rounded" disabled="disabled" data-tooltip onclick="return packagesController.enable()" title="Enable"><i class="fa fa-check"></i></button>
1916
<button type="button" class="btn btn-outline-secondary btn-icon btn-sm btn-rounded" disabled="disabled" data-tooltip onclick="return packagesController.disable()" title="Disable"><i class="fa fa-minus"></i></button>
@@ -35,7 +32,7 @@
3532
</label>
3633
@if (item.HasSettings)
3734
{
38-
<a class="bf-list-item-link" href="~/admin/packages/widgets/@item.Title">@item.Description</a>
35+
<a class="bf-list-item-link" href="~/blogifier/widgets/@item.Title/settings">@item.Description</a>
3936
}
4037
else
4138
{

Blogifier.Web/Views/Blogifier/Themes/OneFour/Index.cshtml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,7 @@
4444
}
4545
}
4646
@Html.Partial($"~/{ApplicationSettings.BlogThemesFolder}/OneFour/_Shared/_Pager.cshtml", Model.Pager)
47+
48+
@await helper.InvokeAsync(Component, "Newsletter")
4749
</div>
4850
</div>

Blogifier.Web/wwwroot/widgets/newsletter/settings.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ var newsletter = function (dataService) {
55
$('.loading').fadeIn();
66

77
$('input:checkbox.item-checkbox:checked').each(function () {
8-
dataService.put('blogifier/api/newsletter/remove/' + $(this).val(), obj, done, fail);
8+
var url = 'blogifier/widgets/newsletter/remove/' + $(this).val();
9+
dataService.put(url, obj, done, fail);
910
});
1011
}
1112

1213
function done(data) {
1314
setTimeout(function () {
14-
window.location.href = getUrl('admin/packages/widgets/newsletter');
15+
window.location.href = root + 'blogifier/widgets/newsletter/settings';
1516
}, 2000);
1617
}
1718

Blogifier.Web/wwwroot/widgets/newsletter/widget.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var newsletter = function () {
1515
}
1616

1717
$.ajax({
18-
url: '/blogifier/api/newsletter/subscribe',
18+
url: root + 'blogifier/widgets/newsletter/subscribe',
1919
type: 'PUT',
2020
contentType: 'application/json',
2121
data: JSON.stringify(json),

Packages/Widgets/Newsletter/NewsletterController.cs

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,39 @@
1111

1212
namespace Newsletter
1313
{
14-
[Authorize]
15-
[Route("admin/[controller]")]
16-
public class PackagesController : Controller
14+
[Route("blogifier/widgets/[controller]")]
15+
public class NewsletterController : Controller
1716
{
1817
IUnitOfWork _db;
1918
static readonly string key = "NEWSLETTER";
2019

21-
public PackagesController(IUnitOfWork db)
20+
public NewsletterController(IUnitOfWork db)
2221
{
2322
_db = db;
2423
}
2524

26-
[VerifyProfile]
27-
[HttpGet("widgets/Newsletter")]
25+
[HttpPut("subscribe")]
26+
public async Task Subscribe([FromBody]CustomFieldItem item)
27+
{
28+
var emails = Emails();
29+
30+
if (emails != null)
31+
{
32+
if (!emails.Contains(item.CustomValue))
33+
{
34+
emails.Add(item.CustomValue);
35+
await _db.CustomFields.SetCustomField(CustomType.Application, 0, item.CustomKey, string.Join(",", emails));
36+
}
37+
}
38+
else
39+
{
40+
await _db.CustomFields.SetCustomField(CustomType.Application, 0, item.CustomKey, item.CustomValue);
41+
}
42+
}
43+
44+
[Authorize]
45+
[MustBeAdmin]
46+
[HttpGet("settings")]
2847
public IActionResult Settings(string search = "")
2948
{
3049
var profile = _db.Profiles.Single(b => b.IdentityName == User.Identity.Name);
@@ -46,26 +65,9 @@ public IActionResult Settings(string search = "")
4665
return View("~/Views/Shared/Components/Newsletter/Settings.cshtml", model);
4766
}
4867

49-
[HttpPut("blogifier/api/newsletter/subscribe")]
50-
public async Task Subscribe([FromBody]CustomFieldItem item)
51-
{
52-
var emails = Emails();
53-
54-
if (emails != null)
55-
{
56-
if (!emails.Contains(item.CustomValue))
57-
{
58-
emails.Add(item.CustomValue);
59-
await _db.CustomFields.SetCustomField(CustomType.Application, 0, item.CustomKey, string.Join(",", emails));
60-
}
61-
}
62-
else
63-
{
64-
await _db.CustomFields.SetCustomField(CustomType.Application, 0, item.CustomKey, item.CustomValue);
65-
}
66-
}
67-
68-
[HttpPut("blogifier/api/newsletter/remove/{id}")]
68+
[Authorize]
69+
[MustBeAdmin]
70+
[HttpPut("remove/{id}")]
6971
public async Task Remove(string id)
7072
{
7173
var emails = Emails();

Packages/Widgets/Newsletter/Views/Shared/Components/Newsletter/Default.cshtml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,7 @@
1515
Thank you!
1616
</div>
1717
</section>
18+
<script>
19+
var root = '@Url.Content("~/")';
20+
</script>
1821
<script src="~/widgets/newsletter/widget.js"></script>

Packages/Widgets/Newsletter/Views/Shared/Components/Newsletter/Settings.cshtml

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,45 @@
55
var emails = (List<string>)ComponentHelper.GetValue(Model.Settings, "Emails");
66
}
77

8-
<div class="bf-settings bf-settings-users" data-page-title="newsletter">
9-
<!-- Toolbar -->
10-
<div class="bf-toolbar d-flex">
11-
<label class="custom-control custom-checkbox my-auto mr-3"><input class="custom-control-input item-checkbox" type="checkbox" id="selectAll" name="selectAll"><span class="item-control custom-control-indicator"></span></label>
12-
<div id="postActionButtons" class="btn-group mr-3">
13-
<a asp-controller="Packages" asp-action="Widgets" class="btn btn-outline-secondary btn-sm btn-rounded" style="padding: 0 20px">
14-
<i class="fa fa-arrow-left"></i> &nbsp; Back
15-
</a>
16-
</div>
17-
<div id="postActionButtons" class="btn-group mr-3">
18-
<button type="button" class="btn btn-outline-secondary btn-icon btn-sm btn-rounded" disabled="disabled" data-tooltip onclick="return newsletter.remove()" title="Remove"><i class="fa fa-trash"></i></button>
19-
</div>
20-
<div class="loading loading-sm mr-3"><div class="loading-dot-1"></div><div class="loading-dot-2"></div><div class="loading-dot-3"></div></div>
8+
<!-- Toolbar -->
9+
<div class="bf-toolbar d-flex">
10+
<label class="custom-control custom-checkbox my-auto mr-3"><input class="custom-control-input item-checkbox" type="checkbox" id="selectAll" name="selectAll"><span class="item-control custom-control-indicator"></span></label>
11+
<div id="postActionButtons" class="btn-group mr-3">
12+
<a asp-controller="Packages" asp-action="Widgets" class="btn btn-outline-secondary btn-sm btn-rounded" style="padding: 0 20px">
13+
<i class="fa fa-arrow-left"></i> &nbsp; Back
14+
</a>
2115
</div>
22-
<!--/Toolbar -->
23-
24-
@if (emails != null && emails.Any())
25-
{
26-
<ul class="bf-users-list d-block" aria-label="newsletter">
27-
@foreach (var item in emails)
28-
{
29-
<li class="post-list-item d-flex">
30-
<label class="item-select custom-control custom-checkbox mr-3 my-auto">
31-
<input type="checkbox" value="@item" class="item-checkbox custom-control-input">
32-
<span class="item-control custom-control-indicator"></span>
33-
</label>
34-
<div class="bf-posts-empty" style="margin-top: 13px">@item</div>
35-
</li>
36-
}
37-
</ul>
38-
}
39-
else
40-
{
41-
<div class="bf-posts-empty">
42-
No subscribers found!
43-
</div>
44-
}
16+
<div id="postActionButtons" class="btn-group mr-3">
17+
<button type="button" class="btn btn-outline-secondary btn-icon btn-sm btn-rounded" disabled="disabled" data-tooltip onclick="return newsletter.remove()" title="Remove"><i class="fa fa-trash"></i></button>
18+
</div>
19+
<div class="loading loading-sm mr-3"><div class="loading-dot-1"></div><div class="loading-dot-2"></div><div class="loading-dot-3"></div></div>
4520
</div>
21+
<!--/Toolbar -->
22+
23+
@if (emails != null && emails.Any())
24+
{
25+
<ul class="bf-users-list d-block" aria-label="newsletter">
26+
@foreach (var item in emails)
27+
{
28+
<li class="post-list-item d-flex">
29+
<label class="item-select custom-control custom-checkbox mr-3 my-auto">
30+
<input type="checkbox" value="@item" class="item-checkbox custom-control-input">
31+
<span class="item-control custom-control-indicator"></span>
32+
</label>
33+
<div class="bf-posts-empty" style="margin-top: 13px">@item</div>
34+
</li>
35+
}
36+
</ul>
37+
}
38+
else
39+
{
40+
<div class="bf-list-empty">
41+
No subscribers found!
42+
</div>
43+
}
44+
<script>
45+
var root = '@Url.Content("~/")';
46+
</script>
4647

4748
@section Scripts{
4849
<script src="~/widgets/newsletter/settings.js"></script>

0 commit comments

Comments
 (0)