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

Unified Diff: gm/rebaseline_server/static/loader.js

Issue 28903008: rebaseline_server: add tabs, and ability to submit new baselines to the server (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: tabs_to_spaces Created 7 years, 2 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | gm/rebaseline_server/static/view.css » ('j') | gm/rebaseline_server/static/view.html » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/rebaseline_server/static/loader.js
===================================================================
--- gm/rebaseline_server/static/loader.js (revision 11868)
+++ gm/rebaseline_server/static/loader.js (working copy)
@@ -15,12 +15,14 @@
Loader.filter(
'removeHiddenItems',
function() {
- return function(unfilteredItems, hiddenResultTypes, hiddenConfigs) {
+ return function(unfilteredItems, hiddenResultTypes, hiddenConfigs,
+ viewingTab) {
var filteredItems = [];
for (var i = 0; i < unfilteredItems.length; i++) {
var item = unfilteredItems[i];
if (!(true == hiddenResultTypes[item.resultType]) &&
- !(true == hiddenConfigs[item.config])) {
+ !(true == hiddenConfigs[item.config]) &&
+ (viewingTab == item.tab)) {
filteredItems.push(item);
}
}
@@ -45,10 +47,24 @@
$scope.categories = data.categories;
$scope.testData = data.testData;
$scope.sortColumn = 'test';
- $scope.showTodos = true;
+ $scope.showTodos = false;
+ // Create the list of tabs (lists into which the user can file each
+ // test). This may vary, depending on isEditable.
+ $scope.tabs = [
+ 'Unfiled', 'Hidden'
+ ];
+ if (data.header.isEditable) {
+ $scope.tabs = $scope.tabs.concat(
+ ['Pending Approval']);
epoger 2013/10/19 01:15:56 So, if run without --editable, you still have two
+ }
+ $scope.defaultTab = $scope.tabs[0];
+ $scope.viewingTab = $scope.defaultTab;
+
+ // Add index and tab fields to all records.
for (var i = 0; i < $scope.testData.length; i++) {
$scope.testData[i].index = i;
+ $scope.testData[i].tab = $scope.defaultTab;
epoger 2013/10/19 01:15:56 Each test result belongs to a single tab.
}
$scope.hiddenResultTypes = {
@@ -57,7 +73,7 @@
'succeeded': true,
};
$scope.hiddenConfigs = {};
- $scope.selectedItems = {};
+ $scope.selectedItems = [];
$scope.updateResults();
$scope.loadingMessage = "";
@@ -72,13 +88,14 @@
);
$scope.isItemSelected = function(index) {
- return (true == $scope.selectedItems[index]);
+ return (-1 != $scope.selectedItems.indexOf(index));
epoger 2013/10/19 01:15:56 Maintaining $scope.isItemSelected as an array made
}
$scope.toggleItemSelected = function(index) {
- if (true == $scope.selectedItems[index]) {
- delete $scope.selectedItems[index];
+ var i = $scope.selectedItems.indexOf(index);
+ if (-1 == i) {
+ $scope.selectedItems.push(index);
} else {
- $scope.selectedItems[index] = true;
+ $scope.selectedItems.splice(i, 1);
}
// unlike other toggle methods below, does not set
// $scope.areUpdatesPending = true;
@@ -113,27 +130,58 @@
$scope.areUpdatesPending = true;
}
+ $scope.setViewingTab = function(tab) {
+ $scope.viewingTab = tab;
+ $scope.updateResults();
+ }
+
$scope.localTimeString = function(secondsPastEpoch) {
var d = new Date(secondsPastEpoch * 1000);
return d.toString();
}
+ $scope.moveSelectedItems = function() {
+ var itemIndex;
+ var selectedItemsLength = $scope.selectedItems.length;
+ for (var i = 0; i < selectedItemsLength; i++) {
+ itemIndex = $scope.selectedItems[i];
+ $scope.testData[itemIndex].tab = $scope.newTab;
+ }
+ $scope.selectedItems = [];
+ $scope.updateResults();
+ }
+
$scope.updateResults = function() {
$scope.displayLimit = $scope.displayLimitPending;
// TODO(epoger): Every time we apply a filter, AngularJS creates
// another copy of the array. Is there a way we can filter out
// the items as they are displayed, rather than storing multiple
// array copies? (For better performance.)
- $scope.filteredTestData =
- $filter("orderBy")(
- $filter("removeHiddenItems")(
- $scope.testData,
- $scope.hiddenResultTypes,
- $scope.hiddenConfigs
- ),
- $scope.sortColumn);
- $scope.limitedTestData = $filter("limitTo")(
- $scope.filteredTestData, $scope.displayLimit);
+
+ if ($scope.viewingTab == $scope.defaultTab) {
+ $scope.filteredTestData =
+ $filter("orderBy")(
+ $filter("removeHiddenItems")(
+ $scope.testData,
+ $scope.hiddenResultTypes,
+ $scope.hiddenConfigs,
+ $scope.viewingTab
+ ),
+ $scope.sortColumn);
+ $scope.limitedTestData = $filter("limitTo")(
+ $scope.filteredTestData, $scope.displayLimit);
+ } else {
+ $scope.filteredTestData =
+ $filter("orderBy")(
+ $filter("filter")(
epoger 2013/10/19 01:15:56 In the tabs other than "Unfiled", we don't allow t
+ $scope.testData,
+ {tab: $scope.viewingTab},
+ true
+ ),
+ $scope.sortColumn);
+ $scope.limitedTestData = $filter("limitTo")(
+ $scope.filteredTestData, $scope.displayLimit);
+ }
$scope.imageSize = $scope.imageSizePending;
$scope.areUpdatesPending = false;
}
« no previous file with comments | « no previous file | gm/rebaseline_server/static/view.css » ('j') | gm/rebaseline_server/static/view.html » ('J')

Powered by Google App Engine
This is Rietveld 408576698