Show app feedback form in appstore

Fixes #461
This commit is contained in:
Johannes Zellner
2015-08-06 18:30:46 +02:00
parent d861d6d6e4
commit fdbee427ee
3 changed files with 75 additions and 0 deletions

View File

@@ -98,6 +98,24 @@
<a href="" class="appstore-category-link" ng-click="showCategory($event);" ng-class="{'category-active': category === 'wiki' }" category="wiki">Wiki</a>
<br/>
<a href="" class="appstore-category-link" ng-click="showCategory($event);" ng-class="{'category-active': category === 'testing' }" category="testing" ng-show="config.developerMode">Testing</a>
<br/>
<br/>
<br/>
<div class="appstore-category-missing shadow">
<div ng-show="!feedback.success">
<form name="feedbackForm" ng-submit="submitFeedback()">
<p>
Missing an app? Let us know.
</p>
<textarea class="form-control" cols="3" ng-model="feedback.description" ng-minlength="1" required placeholder="Name, Category, Links ..."></textarea>
<div ng-show="feedback.error" class="text-danger text-bold">{{feedback.error}}</div>
<button class="btn btn-success" type="submit" ng-disabled="feedbackForm.$invalid || feedback.busy"><i class="fa fa-fw fa-paper-plane"></i> Submit</button>
</form>
</div>
<div ng-show="feedback.success" class="text-success text-bold">
Thank You!
</div>
</div>
</div>
<div class="col-md-10" ng-show="ready && apps.length">
<div class="row-no-margin">

View File

@@ -21,6 +21,38 @@ angular.module('Application').controller('AppStoreController', ['$scope', '$loca
};
$scope.feedback = {
error: null,
success: false,
subject: 'App feedback',
description: '',
type: 'app'
};
function resetFeedback() {
$scope.feedback.description = '';
$scope.feedbackForm.$setUntouched();
$scope.feedbackForm.$setPristine();
}
$scope.submitFeedback = function () {
$scope.feedback.busy = true;
$scope.feedback.success = false;
$scope.feedback.error = null;
Client.feedback($scope.feedback.type, $scope.feedback.subject, $scope.feedback.description, function (error) {
if (error) {
$scope.feedback.error = error;
} else {
$scope.feedback.success = true;
resetFeedback();
}
$scope.feedback.busy = false;
});
};
function getAppList(callback) {
AppStore.getApps(function (error, apps) {
if (error) return callback(error);