summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorharuki@chromium.org <haruki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-11 04:37:34 +0000
committerharuki@chromium.org <haruki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-11 04:37:34 +0000
commitcd3ffdf8d846efcb2e63d2771becc4291feb746f (patch)
tree8fae4bb818b972f5647af80c4b5ed20ac1eab0f1
parentad59b8735db3584d8ae196abd0d1c99483344893 (diff)
downloadchromium_src-cd3ffdf8d846efcb2e63d2771becc4291feb746f.zip
chromium_src-cd3ffdf8d846efcb2e63d2771becc4291feb746f.tar.gz
chromium_src-cd3ffdf8d846efcb2e63d2771becc4291feb746f.tar.bz2
filemanager: Show the new left nav items when avaiable.
They are special searches and meaningless for dialogs to save a file. BUG=168739,168741,168742 TEST=Open Files App and verify the left nav items work. Review URL: https://chromiumcodereview.appspot.com/14031002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193572 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/resources/file_manager/js/directory_model.js30
-rw-r--r--chrome/browser/resources/file_manager/js/file_manager.js8
2 files changed, 30 insertions, 8 deletions
diff --git a/chrome/browser/resources/file_manager/js/directory_model.js b/chrome/browser/resources/file_manager/js/directory_model.js
index 627fae63..95bae86 100644
--- a/chrome/browser/resources/file_manager/js/directory_model.js
+++ b/chrome/browser/resources/file_manager/js/directory_model.js
@@ -20,10 +20,13 @@ var SHORT_RESCAN_INTERVAL = 100;
* @param {MetadataCache} metadataCache The metadata cache service.
* @param {VolumeManager} volumeManager The volume manager.
* @param {boolean} isDriveEnabled True if DRIVE enabled (initial value).
+ * @param {boolean} showSpecialSearchRoots True if special-search roots are
+ * available. They should be hidden for the dialogs to save files.
* @constructor
*/
function DirectoryModel(root, singleSelection, fileFilter,
- metadataCache, volumeManager, isDriveEnabled) {
+ metadataCache, volumeManager, isDriveEnabled,
+ showSpecialSearchRoots) {
this.root_ = root;
this.fileListSelection_ = singleSelection ?
new cr.ui.ListSingleSelectionModel() : new cr.ui.ListSelectionModel();
@@ -33,6 +36,7 @@ function DirectoryModel(root, singleSelection, fileFilter,
this.rescanTime_ = null;
this.scanFailures_ = 0;
this.driveEnabled_ = isDriveEnabled;
+ this.showSpecialSearchRoots_ = showSpecialSearchRoots;
this.fileFilter_ = fileFilter;
this.fileFilter_.addEventListener('changed',
@@ -87,6 +91,19 @@ DirectoryModel.fakeDriveSharedWithMeEntry_ = {
isDirectory: true
};
+
+/**
+ * List of fake entries for special searches.
+ * TODO(haruki): Add the entry for "Recent".
+ *
+ * @type {Array.<Object>}
+ * @const
+ * @private
+ */
+DirectoryModel.fakeDriveSpecialSearchEntries_ =
+ [DirectoryModel.fakeDriveSharedWithMeEntry_,
+ DirectoryModel.fakeDriveOfflineEntry_];
+
/**
* DirectoryModel extends cr.EventTarget.
*/
@@ -989,7 +1006,7 @@ DirectoryModel.prototype.resolveRoots_ = function(callback) {
archives: null,
removables: null,
drive: null,
- driveFakeRoots: null
+ driveSpecialSearchRoots: null
};
var self = this;
@@ -1001,7 +1018,7 @@ DirectoryModel.prototype.resolveRoots_ = function(callback) {
callback(groups.downloads.
concat(groups.drive).
- concat(groups.driveFakeRoots).
+ concat(groups.driveSpecialSearchRoots).
concat(groups.archives).
concat(groups.removables));
metrics.recordInterval('Load.Roots');
@@ -1037,9 +1054,8 @@ DirectoryModel.prototype.resolveRoots_ = function(callback) {
append.bind(this, 'removables'));
if (this.driveEnabled_) {
- // TODO(haruki): Add fake special search entries.
- // http://crbug.com/168742 http://crbug.com/168741 http://crbug.com/168739.
- groups.driveFakeRoots = [];
+ groups.driveSpecialSearchRoots = this.showSpecialSearchRoots_ ?
+ DirectoryModel.fakeDriveSpecialSearchEntries_ : [];
var fake = [DirectoryModel.fakeDriveEntry_];
if (this.isDriveMounted()) {
readSingle(DirectoryModel.fakeDriveEntry_.fullPath, 'drive', fake);
@@ -1048,7 +1064,7 @@ DirectoryModel.prototype.resolveRoots_ = function(callback) {
done();
}
} else {
- groups.driveFakeRoots = [];
+ groups.driveSpecialSearchRoots = [];
groups.drive = [];
done();
}
diff --git a/chrome/browser/resources/file_manager/js/file_manager.js b/chrome/browser/resources/file_manager/js/file_manager.js
index 655f354..ab97097 100644
--- a/chrome/browser/resources/file_manager/js/file_manager.js
+++ b/chrome/browser/resources/file_manager/js/file_manager.js
@@ -897,6 +897,11 @@ DialogType.isModal = function(type) {
this.dialogType == DialogType.SELECT_FOLDER ||
this.dialogType == DialogType.SELECT_SAVEAS_FILE;
+ var showSpecialSearchRoots =
+ this.dialogType == DialogType.SELECT_OPEN_FILE ||
+ this.dialogType == DialogType.SELECT_OPEN_MULTI_FILE ||
+ this.dialogType == DialogType.FULL_PAGE;
+
this.fileFilter_ = new FileFilter(
this.metadataCache_,
false /* Don't show dot files by default. */);
@@ -907,7 +912,8 @@ DialogType.isModal = function(type) {
this.fileFilter_,
this.metadataCache_,
this.volumeManager_,
- this.isDriveEnabled());
+ this.isDriveEnabled(),
+ showSpecialSearchRoots);
this.directoryModel_.start();