Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(341)

Side by Side Diff: gm/rebaseline_server/static/loader.js

Issue 106453002: rebaseline_server: start HTTP server immediately, auto-reload once results are available (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gm/rebaseline_server/server.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Loader: 2 * Loader:
3 * Reads GM result reports written out by results.py, and imports 3 * Reads GM result reports written out by results.py, and imports
4 * them into $scope.categories and $scope.testData . 4 * them into $scope.categories and $scope.testData .
5 */ 5 */
6 var Loader = angular.module( 6 var Loader = angular.module(
7 'Loader', 7 'Loader',
8 [] 8 []
9 ); 9 );
10 10
(...skipping 22 matching lines...) Expand all
33 } 33 }
34 } 34 }
35 return filteredItems; 35 return filteredItems;
36 }; 36 };
37 } 37 }
38 ); 38 );
39 39
40 40
41 Loader.controller( 41 Loader.controller(
42 'Loader.Controller', 42 'Loader.Controller',
43 function($scope, $http, $filter, $location) { 43 function($scope, $http, $filter, $location, $timeout) {
44 $scope.windowTitle = "Loading GM Results..."; 44 $scope.windowTitle = "Loading GM Results...";
45 var resultsToLoad = $location.search().resultsToLoad; 45 var resultsToLoad = $location.search().resultsToLoad;
46 $scope.loadingMessage = "Loading results of type '" + resultsToLoad + 46 $scope.loadingMessage = "Loading results of type '" + resultsToLoad +
47 "', please wait..."; 47 "', please wait...";
48 48
49 /** 49 /**
50 * On initial page load, load a full dictionary of results. 50 * On initial page load, load a full dictionary of results.
51 * Once the dictionary is loaded, unhide the page elements so they can 51 * Once the dictionary is loaded, unhide the page elements so they can
52 * render the data. 52 * render the data.
53 */ 53 */
54 $http.get("/results/" + resultsToLoad).success( 54 $http.get("/results/" + resultsToLoad).success(
55 function(data, status, header, config) { 55 function(data, status, header, config) {
56 $scope.loadingMessage = "Processing data, please wait..."; 56 if (data.header.resultsStillLoading) {
57 $scope.loadingMessage =
58 "Server is still loading initial results; will retry at " +
59 $scope.localTimeString(data.header.timeNextUpdateAvailable);
60 $timeout(
61 function(){location.reload();},
62 (data.header.timeNextUpdateAvailable * 1000) - new Date().getTime( ));
63 } else {
64 $scope.loadingMessage = "Processing data, please wait...";
57 65
58 $scope.header = data.header; 66 $scope.header = data.header;
59 $scope.categories = data.categories; 67 $scope.categories = data.categories;
60 $scope.testData = data.testData; 68 $scope.testData = data.testData;
61 $scope.sortColumn = 'weightedDiffMeasure'; 69 $scope.sortColumn = 'weightedDiffMeasure';
62 $scope.showTodos = false; 70 $scope.showTodos = false;
63 71
64 $scope.showSubmitAdvancedSettings = false; 72 $scope.showSubmitAdvancedSettings = false;
65 $scope.submitAdvancedSettings = {}; 73 $scope.submitAdvancedSettings = {};
66 $scope.submitAdvancedSettings['reviewed-by-human'] = true; 74 $scope.submitAdvancedSettings['reviewed-by-human'] = true;
67 $scope.submitAdvancedSettings['ignore-failure'] = false; 75 $scope.submitAdvancedSettings['ignore-failure'] = false;
68 $scope.submitAdvancedSettings['bug'] = ''; 76 $scope.submitAdvancedSettings['bug'] = '';
69 77
70 // Create the list of tabs (lists into which the user can file each 78 // Create the list of tabs (lists into which the user can file each
71 // test). This may vary, depending on isEditable. 79 // test). This may vary, depending on isEditable.
72 $scope.tabs = [ 80 $scope.tabs = [
epoger 2013/12/05 11:51:22 This section is modified only by indentation. I d
73 'Unfiled', 'Hidden' 81 'Unfiled', 'Hidden'
74 ]; 82 ];
75 if (data.header.isEditable) { 83 if (data.header.isEditable) {
76 $scope.tabs = $scope.tabs.concat( 84 $scope.tabs = $scope.tabs.concat(
77 ['Pending Approval']); 85 ['Pending Approval']);
86 }
87 $scope.defaultTab = $scope.tabs[0];
88 $scope.viewingTab = $scope.defaultTab;
89
90 // Track the number of results on each tab.
91 $scope.numResultsPerTab = {};
92 for (var i = 0; i < $scope.tabs.length; i++) {
93 $scope.numResultsPerTab[$scope.tabs[i]] = 0;
94 }
95 $scope.numResultsPerTab[$scope.defaultTab] = $scope.testData.length;
96
97 // Add index and tab fields to all records.
98 for (var i = 0; i < $scope.testData.length; i++) {
99 $scope.testData[i].index = i;
100 $scope.testData[i].tab = $scope.defaultTab;
101 }
102
103 // Arrays within which the user can toggle individual elements.
104 $scope.selectedItems = [];
105
106 // Sets within which the user can toggle individual elements.
107 $scope.hiddenResultTypes = {
108 'failure-ignored': true,
109 'no-comparison': true,
110 'succeeded': true,
111 };
112 $scope.allResultTypes = Object.keys(data.categories['resultType']);
113 $scope.hiddenConfigs = {};
114 $scope.allConfigs = Object.keys(data.categories['config']);
115
116 // Associative array of partial string matches per category.
117 $scope.categoryValueMatch = {};
118 $scope.categoryValueMatch.builder = "";
119 $scope.categoryValueMatch.test = "";
120
121 $scope.updateResults();
122 $scope.loadingMessage = "";
123 $scope.windowTitle = "Current GM Results";
78 } 124 }
79 $scope.defaultTab = $scope.tabs[0];
80 $scope.viewingTab = $scope.defaultTab;
81
82 // Track the number of results on each tab.
83 $scope.numResultsPerTab = {};
84 for (var i = 0; i < $scope.tabs.length; i++) {
85 $scope.numResultsPerTab[$scope.tabs[i]] = 0;
86 }
87 $scope.numResultsPerTab[$scope.defaultTab] = $scope.testData.length;
88
89 // Add index and tab fields to all records.
90 for (var i = 0; i < $scope.testData.length; i++) {
91 $scope.testData[i].index = i;
92 $scope.testData[i].tab = $scope.defaultTab;
93 }
94
95 // Arrays within which the user can toggle individual elements.
96 $scope.selectedItems = [];
97
98 // Sets within which the user can toggle individual elements.
99 $scope.hiddenResultTypes = {
100 'failure-ignored': true,
101 'no-comparison': true,
102 'succeeded': true,
103 };
104 $scope.allResultTypes = Object.keys(data.categories['resultType']);
105 $scope.hiddenConfigs = {};
106 $scope.allConfigs = Object.keys(data.categories['config']);
107
108 // Associative array of partial string matches per category.
109 $scope.categoryValueMatch = {};
110 $scope.categoryValueMatch.builder = "";
111 $scope.categoryValueMatch.test = "";
112
113 $scope.updateResults();
114 $scope.loadingMessage = "";
115 $scope.windowTitle = "Current GM Results";
116 } 125 }
117 ).error( 126 ).error(
118 function(data, status, header, config) { 127 function(data, status, header, config) {
119 $scope.loadingMessage = "Failed to load results of type '" 128 $scope.loadingMessage = "Failed to load results of type '"
120 + resultsToLoad + "'"; 129 + resultsToLoad + "'";
121 $scope.windowTitle = "Failed to Load GM Results"; 130 $scope.windowTitle = "Failed to Load GM Results";
122 } 131 }
123 ); 132 );
124 133
125 134
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 * 517 *
509 * @param secondsPastEpoch (numeric): seconds past epoch in UTC 518 * @param secondsPastEpoch (numeric): seconds past epoch in UTC
510 */ 519 */
511 $scope.localTimeString = function(secondsPastEpoch) { 520 $scope.localTimeString = function(secondsPastEpoch) {
512 var d = new Date(secondsPastEpoch * 1000); 521 var d = new Date(secondsPastEpoch * 1000);
513 return d.toString(); 522 return d.toString();
514 } 523 }
515 524
516 } 525 }
517 ); 526 );
OLDNEW
« no previous file with comments | « gm/rebaseline_server/server.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698