Browse Source

Re-introduce menu on the result page

Gaël Métais 10 years ago
parent
commit
ed4f448370

+ 2 - 1
front/src/js/app.js

@@ -6,7 +6,8 @@ var yltApp = angular.module('YellowLabTools', [
     'queueCtrl',
     'runsFactory',
     'resultsFactory',
-    'gradeDirective'
+    'menuService',
+    'gradeDirective',
 ]);
 
 yltApp.config(['$routeProvider', '$locationProvider',

+ 4 - 3
front/src/js/controllers/dashboardCtrl.js

@@ -1,8 +1,9 @@
-var dashboardCtrl = angular.module('dashboardCtrl', ['resultsFactory']);
+var dashboardCtrl = angular.module('dashboardCtrl', ['resultsFactory', 'menuService']);
 
-dashboardCtrl.controller('DashboardCtrl', ['$scope', '$routeParams', 'Results', function($scope, $routeParams, Results) {
-    $scope.dashboard = "this is a dashboard";
+dashboardCtrl.controller('DashboardCtrl', ['$scope', '$routeParams', 'Results', 'Menu', function($scope, $routeParams, Results, Menu) {
     $scope.runId = $routeParams.runId;
+    $scope.Menu = Menu.setCurrentPage('dashboard', $scope.runId);
+    
     Results.get({runId: $routeParams.runId}, function(result) {
         $scope.result = result;
         console.log(result);

+ 34 - 0
front/src/js/services/menuService.js

@@ -0,0 +1,34 @@
+var menuService = angular.module('menuService', []);
+
+menuService.factory('Menu', ['$location', function($location) {
+
+    var currentPage, currentRunId;
+
+    return {
+        getCurrentPage: function() {
+            return currentPage;
+        },
+        setCurrentPage: function(page, runId) {
+            currentPage = page;
+            currentRunId = runId;
+
+            return this;
+        },
+        changePage: function(page) {
+            switch (page) {
+                case 'index':
+                    $location.path('/');
+                    break;
+                case 'dashboard':
+                    $location.path('/result/' + currentRunId);
+                    break;
+                case 'timeline':
+                    $location.path('/result/' + currentRunId + '/timeline');
+                    break;
+                default:
+                    console.err('Undefined Menu.changePage() destination');
+            }
+        }
+    }
+
+}]);

+ 1 - 0
front/src/main.html

@@ -20,6 +20,7 @@
     <script src="/front/js/controllers/queueCtrl.js"></script>
     <script src="/front/js/models/resultsFactory.js"></script>
     <script src="/front/js/models/runsFactory.js"></script>
+    <script src="/front/js/services/menuService.js"></script>
     <script src="/front/js/directives/gradeDirective.js"></script>
 <head>
 

+ 1 - 0
front/src/views/dashboard.html

@@ -1,3 +1,4 @@
+<div ng-include="'/front/views/resultSubHeader.html'"></div>
 <div class="summary">
     <h2>Grades</h2>
 

+ 7 - 0
front/src/views/resultSubHeader.html

@@ -0,0 +1,7 @@
+<div>Tested url: &nbsp; <a href="{{result.params.url}}" target="_blank" class="testedUrl">{{result.params.url}}</a></div>
+
+<div class="resultsMenu">
+    <a class="menuItem back" href="/"><div class="icon-back"></div><span>New test<span></a>
+    <div class="menuItem" ng-class="{active: Menu.getCurrentPage() == 'dashboard'}" ng-click="Menu.changePage('dashboard')"><div class="icon-summary"></div><span>Grades</span></div>
+    <div class="menuItem" ng-class="{active: Menu.getCurrentPage() == 'timeline'}" ng-click="Menu.changePage('timeline')"><div class="icon-spaghetti"></div><span>JS Timeline</span></div>
+</div>

+ 1 - 1
server_config/settings.json

@@ -6,5 +6,5 @@
         "1234567890": "contact@gaelmetais.com"
     },
     "maxAnonymousRunsPerDay": 50,
-    "maxAnonymousCallsPerDay": 1000
+    "maxAnonymousCallsPerDay": 2000
 }