Skip to content

Commit 0853899

Browse files
committed
Uninstall widget functionality, TwitterTimeline added from testing (3.2.2.1)
1 parent 99d1e84 commit 0853899

File tree

13 files changed

+144
-7
lines changed

13 files changed

+144
-7
lines changed

BlogEngine/BlogEngine.Core/Data/ViewModels/WidgetsVM.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ public WidgetsVM()
2323
AvailableWidgets = new List<WidgetItem>();
2424
foreach (var pk in packages)
2525
{
26-
AvailableWidgets.Add(new WidgetItem { Id = pk.Id, Name = pk.Title, Title = pk.Title, ShowTitle = false });
26+
var showUninstall = !string.IsNullOrEmpty(pk.OnlineVersion);
27+
AvailableWidgets.Add(new WidgetItem { Id = pk.Id, Name = pk.Title, Title = pk.Title, ShowTitle = false, ShowUnistall = showUninstall });
2728
}
2829

2930
WidgetZones = new List<WidgetZone>();
@@ -125,5 +126,9 @@ public class WidgetItem
125126
/// Show title
126127
/// </summary>
127128
public bool ShowTitle { get; set; }
129+
/// <summary>
130+
/// Show uninstall widget button if was installed from gallery
131+
/// </summary>
132+
public bool ShowUnistall { get; set; }
128133
}
129134
}

BlogEngine/BlogEngine.Core/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@
1919
[assembly: CLSCompliant(false)]
2020
[assembly: ComVisible(false)]
2121
[assembly: AllowPartiallyTrustedCallers]
22-
[assembly: AssemblyVersion("3.2.2.0")]
22+
[assembly: AssemblyVersion("3.2.2.1")]
2323
[assembly: SecurityRules(SecurityRuleSet.Level1)]

BlogEngine/BlogEngine.Core/Web/BlogCulture.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,7 @@ void AddJavaScriptResources()
497497
AddResource("incorrectSimpleCaptcha");
498498
AddResource("indent");
499499
AddResource("industry");
500+
AddResource("information");
500501
AddResource("insertImage");
501502
AddResource("insertVideo");
502503
AddResource("install");

BlogEngine/BlogEngine.NET/App_Data/datastore/widgets/be_WIDGET_ZONE.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
<widget id="5bf32012-4aa3-4031-8346-4d36f0fda6d9" title="Post List" showTitle="True">PostList</widget>
88
<widget id="abde36cb-9ba6-4645-afc3-c0e4292ce72e" title="Newsletter" showTitle="True">Newsletter</widget>
99
<widget id="4b7cb5e1-b090-4779-b7bc-24898a269477" title="Comment List" showTitle="True">CommentList</widget>
10-
<widget id="fb6b97ea-7d73-4821-a2a3-3aaf13e233d3" title="Link List" showTitle="True">LinkList</widget>
1110
<widget id="4cb23700-ca29-4c88-a46c-9a262a9f4240" title="Month List" showTitle="True">MonthList</widget>
11+
<widget id="bc66120b-0835-48b3-9a36-13fe2e878869" title="TwitterTimeline" showTitle="True">TwitterTimeline</widget>
1212
</widgets>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
22
<InstalledPackageFiles>
3+
<item id="TwitterTimeline" fileorder="1" filepath="Custom\Widgets\TwitterTimeline" isdirectory="True" />
4+
<item id="TwitterTimeline" fileorder="2" filepath="Custom\Widgets\TwitterTimeline\edit.cshtml" isdirectory="False" />
5+
<item id="TwitterTimeline" fileorder="3" filepath="Custom\Widgets\TwitterTimeline\widget.cshtml" isdirectory="False" />
6+
<item id="TwitterTimeline" fileorder="4" filepath="Custom\Widgets\TwitterTimeline\widget.xml" isdirectory="False" />
37
</InstalledPackageFiles>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
22
<InstalledPackages>
3+
<item id="TwitterTimeline" version="3.3.0.0" />
34
</InstalledPackages>

BlogEngine/BlogEngine.NET/BlogEngine.NET.csproj

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -585,19 +585,33 @@
585585
<Content Include="Custom\Themes\Standard\theme.png" />
586586
<Content Include="Custom\Themes\Standard\theme.xml" />
587587
<Content Include="Custom\Themes\Standard\WidgetContainer.ascx" />
588+
<Content Include="Custom\Widgets\Administration\screenshot.png" />
588589
<Content Include="Custom\Widgets\Administration\widget.xml" />
590+
<Content Include="Custom\Widgets\AuthorList\screenshot.png" />
589591
<Content Include="Custom\Widgets\AuthorList\widget.xml" />
592+
<Content Include="Custom\Widgets\BlogList\screenshot.png" />
590593
<Content Include="Custom\Widgets\BlogList\widget.xml" />
594+
<Content Include="Custom\Widgets\BlogRoll\screenshot.png" />
591595
<Content Include="Custom\Widgets\BlogRoll\widget.xml" />
596+
<Content Include="Custom\Widgets\CategoryList\screenshot.png" />
592597
<Content Include="Custom\Widgets\CategoryList\widget.xml" />
598+
<Content Include="Custom\Widgets\CommentList\screenshot.png" />
593599
<Content Include="Custom\Widgets\CommentList\widget.xml" />
600+
<Content Include="Custom\Widgets\LinkList\screenshot.png" />
594601
<Content Include="Custom\Widgets\LinkList\widget.xml" />
602+
<Content Include="Custom\Widgets\MonthList\screenshot.png" />
595603
<Content Include="Custom\Widgets\MonthList\widget.xml" />
604+
<Content Include="Custom\Widgets\Newsletter\screenshot.png" />
596605
<Content Include="Custom\Widgets\Newsletter\widget.xml" />
606+
<Content Include="Custom\Widgets\PageList\screenshot.png" />
597607
<Content Include="Custom\Widgets\PageList\widget.xml" />
608+
<Content Include="Custom\Widgets\PostList\screenshot.png" />
598609
<Content Include="Custom\Widgets\PostList\widget.xml" />
610+
<Content Include="Custom\Widgets\Search\screenshot.png" />
599611
<Content Include="Custom\Widgets\Search\widget.xml" />
612+
<Content Include="Custom\Widgets\TagCloud\screenshot.png" />
600613
<Content Include="Custom\Widgets\TagCloud\widget.xml" />
614+
<Content Include="Custom\Widgets\TextBox\screenshot.png" />
601615
<Content Include="Custom\Widgets\TextBox\widget.xml" />
602616
<Content Include="fonts\fontawesome-webfont.svg" />
603617
<Content Include="fonts\glyphicons-halflings-regular.svg" />
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
@using BlogEngine.NET.Custom.Widgets
2+
@{
3+
var appId = "717752735521636352";
4+
var twitId = "blogenginenet";
5+
6+
var widgetId = Request.QueryString["id"];
7+
var settings = Common.GetSettings(widgetId);
8+
9+
Validation.Add("txtAppId", Validator.Required("Field is required"));
10+
Validation.Add("txtTwitId", Validator.Required("Field is required"));
11+
12+
if (IsPost)
13+
{
14+
if (Validation.IsValid())
15+
{
16+
settings["appId"] = Request.Form["txtAppId"];
17+
settings["twitId"] = Request.Form["txtTwitId"];
18+
19+
Common.SaveSettings(settings, widgetId);
20+
@:<script type="text/javascript">window.parent.toastr.success("Completed");</script>
21+
}
22+
}
23+
if (settings != null && settings.Count > 0)
24+
{
25+
appId = settings["appId"];
26+
twitId = settings["twitId"];
27+
}
28+
}
29+
<!DOCTYPE html>
30+
<html>
31+
<head>
32+
<link rel="stylesheet" href="~/Content/bootstrap.min.css">
33+
<link rel="stylesheet" href="~/Content/font-awesome.min.css">
34+
<link rel="stylesheet" href="~/admin/themes/standard/css/styles.css">
35+
</head>
36+
<body class="widget-edit">
37+
<div class="widget-edit-commentlist">
38+
<form method="post">
39+
<div class="form-group">
40+
<label>Application Key</label>
41+
<input type="text" class="form-control" id="txtAppId" name="txtAppId" value="@appId" />
42+
@Html.ValidationMessage("txtAppId")
43+
</div>
44+
<div class="form-group">
45+
<label>Twitter ID</label>
46+
<input type="text" class="form-control" id="txtTwitId" name="txtTwitId" value="@twitId" />
47+
@Html.ValidationMessage("txtTwitId")
48+
</div>
49+
<button type="submit" class="btn btn-success">@Resources.labels.save</button>
50+
</form>
51+
</div>
52+
</body>
53+
</html>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
@using BlogEngine.NET.Custom.Widgets
2+
@{
3+
var settings = Common.GetSettings(Model.Id);
4+
var TwitId = "blogenginenet";
5+
var AppId = "717752735521636352";
6+
if (settings != null && settings.Count > 0)
7+
{
8+
TwitId = HttpUtility.HtmlDecode(settings["TwitId"]);
9+
AppId = HttpUtility.HtmlDecode(settings["AppId"]);
10+
}
11+
}
12+
<div class="widget textbox">
13+
@if (!string.IsNullOrEmpty(TwitId))
14+
{
15+
<a class="twitter-timeline" href="https://twitter.com/@TwitId" data-widget-id="@AppId">Tweets by @TwitId</a>
16+
<script>
17+
!function (d, s, id) {
18+
var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? 'http' : 'https';
19+
if (!d.getElementById(id)) {
20+
js = d.createElement(s);
21+
js.id = id;
22+
js.src = p + "://platform.twitter.com/widgets.js";
23+
fjs.parentNode.insertBefore(js, fjs);
24+
}
25+
}(document, "script", "twitter-wjs");
26+
</script>
27+
}
28+
</div>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2+
<metadata>
3+
<id>TwitterTimeline</id>
4+
<description>Twitter Timeline widget for BlogEngine.NET 3.3 and above</description>
5+
<authors>BlogEngine.NET</authors>
6+
<website />
7+
<version>3.3.0.0</version>
8+
<iconurl>http://dnbe.net/v01/images/TwitterTimeline.png</iconurl>
9+
</metadata>

BlogEngine/BlogEngine.NET/admin/app/custom/widgets/widgetController.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,19 @@
193193
});
194194
}
195195

196+
$scope.uninstallPackage = function (pkgId) {
197+
spinOn();
198+
dataService.updateItem("/api/packages/uninstall/" + pkgId, pkgId)
199+
.success(function (data) {
200+
toastr.success($rootScope.lbl.completed);
201+
$scope.load();
202+
})
203+
.error(function () {
204+
toastr.error($rootScope.lbl.failed);
205+
spinOff();
206+
});
207+
}
208+
196209
$scope.load();
197210

198211
$(document).ready(function () {

BlogEngine/BlogEngine.NET/admin/app/custom/widgets/widgetGalleryController.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@
100100
$scope.selectedRating = rating;
101101
}
102102

103+
$scope.checkStar = function (item, rating) {
104+
if (item === rating) {
105+
return true;
106+
}
107+
return false;
108+
}
109+
103110
$scope.load();
104111

105112
$(document).ready(function () {

BlogEngine/BlogEngine.NET/admin/app/custom/widgets/widgetView.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,20 +96,22 @@ <h2 class="page-title pull-left">{{lbl.widgets}}</h2>
9696
</div>
9797
<div class="content-inner">
9898
<div class="row">
99-
<div class="col-sm-2">
99+
<div class="col-sm-3">
100100
<h4>Available Widgets</h4>
101101
<ul class="widgets-list">
102102
<li class="draggable" ng-repeat="iw in vm.AvailableWidgets" draggable="iw" draggable-target=".sortable">
103103
{{ iw.Title }}
104-
<div class="item-buttons pull-right" style="width: 50px !important">
105-
<button ng-click="loadInfoForm(iw.Id, iw.Name, iw.Title, widgetZones.titles[0])" title="{{lbl.edit}}">
104+
<div class="item-buttons pull-right">
105+
<button ng-if="iw.ShowUnistall" ng-click="uninstallPackage(iw.Id)" title="{{lbl.remove}}">
106+
<i class="fa fa-trash"></i>
107+
</button>
106108
<i class="fa fa-info-circle"></i>
107109
</button>
108110
</div>
109111
</li>
110112
</ul>
111113
</div>
112-
<div class="col-sm-10" id="w-zones">
114+
<div class="col-sm-9" id="w-zones">
113115
<div class="row">
114116
<div class="col-sm-4" ng-if="widgetZones.titles && widgetZones.titles.length > 0">
115117
<h4>Widget Zone <span>({{widgetZones.titles[0]}})</span></h4>

0 commit comments

Comments
 (0)