Skip to content

Commit 99d1e84

Browse files
committed
Widget admin submit rating
1 parent ab57079 commit 99d1e84

File tree

3 files changed

+100
-9
lines changed

3 files changed

+100
-9
lines changed

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

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
$scope.editTitle = {};
77
$scope.editZone = {};
88
$scope.package = {};
9+
$scope.selectedRating = 0;
10+
$scope.author = UserVars.Name;
911
$scope.IsPrimary = $rootScope.SiteVars.IsPrimary == "True";
1012

1113
$scope.load = function () {
@@ -69,8 +71,8 @@
6971
dataService.getItems('/api/packages/' + id)
7072
.success(function (data) {
7173
angular.copy(data, $scope.package);
72-
//$scope.selectedRating = $scope.package.Rating;
73-
//$scope.removeEmptyReviews();
74+
$scope.selectedRating = $scope.package.Rating;
75+
$scope.removeEmptyReviews();
7476
})
7577
.error(function () {
7678
toastr.error($rootScope.lbl.errorLoadingPackages);
@@ -81,7 +83,8 @@
8183
$scope.closeEditForm = function () {
8284
$("#edit-widget").modal("hide");
8385
}
84-
// reset to default classes when modal will close.
86+
87+
// reset to default classes when modal will close
8588
$('#edit-widget').on('hidden.bs.modal', function (e) {
8689
document.getElementById("edit-widget").className = 'modal fade';
8790
});
@@ -141,6 +144,55 @@
141144
}
142145
}
143146

147+
$scope.removeEmptyReviews = function () {
148+
if ($scope.package.Extra != null && $scope.package.Extra.Reviews != null) {
149+
var reviews = [];
150+
for (var i = 0; i < $scope.package.Extra.Reviews.length; i++) {
151+
var review = $scope.package.Extra.Reviews[i];
152+
if (review.Body.length > 0) {
153+
reviews.push(review);
154+
}
155+
}
156+
$scope.package.Extra.Reviews = reviews;
157+
}
158+
}
159+
160+
$scope.setRating = function (rating) {
161+
$scope.selectedRating = rating;
162+
}
163+
164+
$scope.submitRating = function () {
165+
var author = $("#txtAuthor").val().length > 0 ? $("#txtAuthor").val() : $scope.author;
166+
var review = { "Name": author, "Rating": $scope.selectedRating, "Body": $("#txtReview").val() };
167+
168+
dataService.updateItem("/api/packages/rate/" + $scope.package.Extra.Id, review)
169+
.success(function (data) {
170+
if (data.length === 0) {
171+
toastr.success($rootScope.lbl.completed);
172+
}
173+
else {
174+
toastr.error(data);
175+
}
176+
$("#modal-info").modal("hide");
177+
})
178+
.error(function () {
179+
toastr.error($rootScope.lbl.failed);
180+
$("#modal-info").modal("hide");
181+
});
182+
}
183+
184+
$scope.upgradePackage = function (pkgId) {
185+
spinOn();
186+
dataService.updateItem("/api/packages/uninstall/" + pkgId, pkgId)
187+
.success(function (data) {
188+
$scope.installPackage(pkgId);
189+
})
190+
.error(function () {
191+
toastr.error($rootScope.lbl.failed);
192+
spinOff();
193+
});
194+
}
195+
144196
$scope.load();
145197

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

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@
9696
});
9797
}
9898

99+
$scope.setRating = function (rating) {
100+
$scope.selectedRating = rating;
101+
}
102+
99103
$scope.load();
100104

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

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

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ <h4 class="modal-title">{{package.Title}}</h4>
3232
<div class="modal-widgets-info" style="padding: 40px; border-bottom: 1px solid #eee;">
3333
<p class="item-desc" ng-bind-html="package.Description"></p>
3434
<div class="form-horizontal">
35-
<div class="form-group" ng-if="package.Authors"><span class="col-md-3">{{lbl.author}}</span><div class="col-md-9"><span ng-bind-html="package.Authors"></span></div></div>
36-
<div class="form-group" ng-if="package.Website"><span class="col-md-3">{{lbl.website}}</span> <div class="col-md-9"><a href="{{package.Website}}" title="Author website" target="_blank">{{package.Website}}</a></div></div>
37-
<div class="form-group" ng-if="package.Tags"><span class="col-md-3">{{lbl.tags}}</span> <div class="col-md-9"><span ng-bind-html="package.Tags"></span></div></div>
38-
<div class="form-group" ng-if="package.LastUpdated"><span class="col-md-3">{{lbl.date}}</span> <div class="col-md-9"><span ng-bind-html="package.LastUpdated"></span></div></div>
39-
<div class="form-group" ng-if="package.DownloadCount"><span class="col-md-3">{{lbl.downloads}}</span> <div class="col-md-9">{{package.DownloadCount}}</div> </div>
35+
<div class="form-group" style="margin-bottom: 1px; font-size: 13px;" ng-if="package.Authors"><span class="col-md-3">{{lbl.author}}</span><div class="col-md-9"><span ng-bind-html="package.Authors"></span></div></div>
36+
<div class="form-group" style="margin-bottom: 1px; font-size: 13px;" ng-if="package.Website"><span class="col-md-3">{{lbl.website}}</span> <div class="col-md-9"><a href="{{package.Website}}" title="Author website" target="_blank">{{package.Website}}</a></div></div>
37+
<div class="form-group" style="margin-bottom: 1px; font-size: 13px;" ng-if="package.Tags"><span class="col-md-3">{{lbl.tags}}</span> <div class="col-md-9"><span ng-bind-html="package.Tags"></span></div></div>
38+
<div class="form-group" style="margin-bottom: 1px; font-size: 13px;" ng-if="package.LastUpdated"><span class="col-md-3">{{lbl.date}}</span> <div class="col-md-9"><span ng-bind-html="package.LastUpdated"></span></div></div>
39+
<div class="form-group" style="margin-bottom: 1px; font-size: 13px;" ng-if="package.DownloadCount"><span class="col-md-3">{{lbl.downloads}}</span> <div class="col-md-9">{{package.DownloadCount}}</div> </div>
4040
</div>
4141
</div>
4242
<div ng-if="package.OnlineVersion.length > 0 && package.OnlineVersion > package.LocalVersion" class="item-alert">
@@ -45,11 +45,46 @@ <h4 class="modal-title">{{package.Title}}</h4>
4545
<button ng-click="upgradePackage(package.Id)" class="btn btn-sm btn-warning pull-right">Update</button>
4646
</div>
4747
</div>
48-
<div class="modal-widget-image" style="padding: 40px; border-bottom: 1px solid #eee;">
48+
<div class="modal-widget-image" style="padding: 40px; border-bottom: 1px solid #eee; text-align: center">
4949
<img ng-if="!package.PackageUrl" ng-src="{{package.IconUrl}}" alt="Package image" />
5050
<a ng-if="package.PackageUrl" href="{{package.PackageUrl}}" target="_blank"> <img class="pkg-img" ng-src="{{package.IconUrl}}" alt="Package image" /> </a>
5151
</div>
5252

53+
<div class="modal-widget-review" ng-if="package.Extra != null" style="background: #eee none repeat scroll 0 0; padding: 40px">
54+
<div class="panel panel-default">
55+
<div class="panel-heading"><div class="panel-title">{{lbl.writeReview}}</div></div>
56+
<div class="panel-body">
57+
<div class="form-group">
58+
<input class="form-control ltr-dir" ng-model="author" id="txtAuthor" name="txtAuthor" focus-me="focusInput" type="text" placeholder="Name">
59+
</div>
60+
<div class="form-group">
61+
<textarea rows="3" maxlength="450" class="form-control" id="txtReview" placeholder="{{lbl.typeHere}}..."></textarea>
62+
</div>
63+
<div class="clearfix">
64+
<div class="star-rating pull-left">
65+
<input type="radio" name="rated" value="1" ng-checked="selectedRating == 1" ng-click="setRating(1)"><i></i>
66+
<input type="radio" name="rated" value="2" ng-checked="selectedRating == 2" ng-click="setRating(2)"><i></i>
67+
<input type="radio" name="rated" value="3" ng-checked="selectedRating == 3" ng-click="setRating(3)"><i></i>
68+
<input type="radio" name="rated" value="4" ng-checked="selectedRating == 4" ng-click="setRating(4)"><i></i>
69+
<input type="radio" name="rated" value="5" ng-checked="selectedRating == 5" ng-click="setRating(5)"><i></i>
70+
</div>
71+
<button data-ng-click="submitRating()" class="pull-right btn btn-success btn-sm">Submit</button>
72+
</div>
73+
</div>
74+
</div>
75+
<div class="panel panel-default" ng-if="package.Extra.Reviews != null && package.Extra.Reviews.length > 0">
76+
<div class="panel-heading">
77+
<div class="panel-title">user</div>
78+
</div>
79+
<ul class="list-group">
80+
<li ng-repeat="review in package.Extra.Reviews" class="list-group-item">
81+
<span class="badge">{{review.Rating}}</span>
82+
<b>{{review.Name}}:</b> {{review.Body}}
83+
</li>
84+
</ul>
85+
</div>
86+
</div>
87+
5388
</div>
5489
</div>
5590
</div>

0 commit comments

Comments
 (0)