nitcc: tests script return non-zero on failure (print is not enough)
[nit.git] / share / nitweb / javascripts / grades.js
index bddf1e1..96ede05 100644 (file)
 
 (function() {
        angular
-               .module('grades', ['ngSanitize', 'model'])
+               .module('grades', ['ngSanitize'])
 
                .config(function($stateProvider, $locationProvider) {
                        $stateProvider
+                               .state('doc.entity.grades', {
+                                       url: '/grades',
+                                       templateUrl: 'views/doc/grades.html',
+                                       resolve: {
+                                               metrics: function(Feedback, $q, $stateParams, $state) {
+                                                       var d = $q.defer();
+                                                       Feedback.loadEntityStars($stateParams.id, d.resolve,
+                                                               function() {
+                                                                       $state.go('404', null, { location: false })
+                                                               });
+                                                       return d.promise;
+                                               }
+                                       },
+                                       controller: function(mentity, metrics) {
+                                               this.mentity = mentity;
+                                               this.metrics = metrics;
+                                       },
+                                       controllerAs: 'vm',
+                               })
                                .state('grades', {
                                        url: '/grades',
                                        templateUrl: 'views/grades.html',
                                })
                })
 
+               .factory('Feedback', [ '$http', function($http) {
+                       return {
+                               loadEntityStars: function(id, cb, cbErr) {
+                                       $http.get('/api/feedback/stars/' + id)
+                                               .success(cb)
+                                               .error(cbErr);
+                               },
+                               loadEntityStarsDimension: function(id, dimension, cb, cbErr) {
+                                       $http.get('/api/feedback/stars/' + id + '/dimension/' + dimension)
+                                               .success(cb)
+                                               .error(cbErr);
+                               },
+                               postEntityStarDimension: function(id, dimension, rating, cb, cbErr) {
+                                       $http.post('/api/feedback/stars/' + id + '/dimension/' + dimension,
+                                               {rating: rating})
+                                               .success(cb)
+                                               .error(cbErr);
+                               },
+                               loadMostRated: function(cb, cbErr) {
+                                       $http.get('/api/feedback/grades/most')
+                                               .success(cb)
+                                               .error(cbErr);
+                               },
+                               loadBestRated: function(cb, cbErr) {
+                                       $http.get('/api/feedback/grades/best')
+                                               .success(cb)
+                                               .error(cbErr);
+                               },
+                               loadWorstRated: function(cb, cbErr) {
+                                       $http.get('/api/feedback/grades/worst')
+                                               .success(cb)
+                                               .error(cbErr);
+                               },
+                               loadUsersRatings: function(cb, cbErr) {
+                                       $http.get('/api/feedback/grades/users')
+                                               .success(cb)
+                                               .error(cbErr);
+                               },
+                       }
+               }])
+
                .controller('GradesCtrl', ['Feedback', '$scope', function(Feedback, $scope) {
 
                        this.loadMostRated = function() {