Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * FileManager constructor. | 6 * FileManager constructor. |
| 7 * | 7 * |
| 8 * FileManager objects encapsulate the functionality of the file selector | 8 * FileManager objects encapsulate the functionality of the file selector |
| 9 * dialogs, as well as the full screen file manager application (though the | 9 * dialogs, as well as the full screen file manager application (though the |
| 10 * latter is not yet implemented). | 10 * latter is not yet implemented). |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 74 var DOWNLOADS_FAQ_URL = | 74 var DOWNLOADS_FAQ_URL = |
| 75 'http://support.google.com/chromeos/bin/answer.py?answer=1061547'; | 75 'http://support.google.com/chromeos/bin/answer.py?answer=1061547'; |
| 76 | 76 |
| 77 /** | 77 /** |
| 78 * Location of the FAQ about Google Drive. | 78 * Location of the FAQ about Google Drive. |
| 79 */ | 79 */ |
| 80 var GOOGLE_DRIVE_FAQ_URL = | 80 var GOOGLE_DRIVE_FAQ_URL = |
| 81 'https://support.google.com/chromeos/?p=filemanager_drive'; | 81 'https://support.google.com/chromeos/?p=filemanager_drive'; |
| 82 | 82 |
| 83 /** | 83 /** |
| 84 * Location of the Chromebook information page. | |
| 85 */ | |
| 86 var CHROMEBOOK_INFO_URL = 'http://google.com/chromebook'; | |
| 87 | |
| 88 /** | |
| 84 * Location of the page to buy more storage for Google Drive. | 89 * Location of the page to buy more storage for Google Drive. |
| 85 */ | 90 */ |
| 86 var GOOGLE_DRIVE_BUY_STORAGE = | 91 var GOOGLE_DRIVE_BUY_STORAGE = |
| 87 'https://www.google.com/settings/storage'; | 92 'https://www.google.com/settings/storage'; |
| 88 | 93 |
| 89 /** | 94 /** |
| 90 * Location of Google Drive specific help. | 95 * Location of Google Drive specific help. |
| 91 */ | 96 */ |
| 92 var GOOGLE_DRIVE_HELP = | 97 var GOOGLE_DRIVE_HELP = |
| 93 'https://support.google.com/chromeos/?p=filemanager_drivehelp'; | 98 'https://support.google.com/chromeos/?p=filemanager_drivehelp'; |
| (...skipping 3930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4024 }; | 4029 }; |
| 4025 | 4030 |
| 4026 FileManager.prototype.showGDataWelcome_ = function(type) { | 4031 FileManager.prototype.showGDataWelcome_ = function(type) { |
| 4027 if (this.dialogContainer_.getAttribute('gdrive-welcome') != type) { | 4032 if (this.dialogContainer_.getAttribute('gdrive-welcome') != type) { |
| 4028 this.dialogContainer_.setAttribute('gdrive-welcome', type); | 4033 this.dialogContainer_.setAttribute('gdrive-welcome', type); |
| 4029 this.requestResize_(200); // Resize only after the animation is done. | 4034 this.requestResize_(200); // Resize only after the animation is done. |
| 4030 } | 4035 } |
| 4031 }; | 4036 }; |
| 4032 | 4037 |
| 4033 FileManager.prototype.createGDataWelcomeHandler_ = function() { | 4038 FileManager.prototype.createGDataWelcomeHandler_ = function() { |
| 4039 var board = str('CHROMEOS_RELEASE_BOARD'); | |
| 4040 var new_welcome = board.match(/^(stumpy|lumpy)/i); | |
| 4041 | |
| 4034 var WELCOME_HEADER_COUNTER_KEY = 'gdataWelcomeHeaderCounter'; | 4042 var WELCOME_HEADER_COUNTER_KEY = 'gdataWelcomeHeaderCounter'; |
| 4035 var WELCOME_HEADER_COUNTER_LIMIT = 5; | 4043 var WELCOME_HEADER_COUNTER_LIMIT = 5; |
| 4036 | 4044 |
| 4037 function getHeaderCounter() { | 4045 function getHeaderCounter() { |
| 4038 return parseInt(localStorage[WELCOME_HEADER_COUNTER_KEY] || '0'); | 4046 return parseInt(localStorage[WELCOME_HEADER_COUNTER_KEY] || '0'); |
| 4039 } | 4047 } |
| 4040 | 4048 |
| 4041 if (getHeaderCounter() >= WELCOME_HEADER_COUNTER_LIMIT) | 4049 if (getHeaderCounter() >= WELCOME_HEADER_COUNTER_LIMIT) |
| 4042 return null; | 4050 return null; |
| 4043 | 4051 |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 4064 self.showGDataWelcome_(type); | 4072 self.showGDataWelcome_(type); |
| 4065 | 4073 |
| 4066 var container = self.dialogDom_.querySelector('.gdrive-welcome.' + type); | 4074 var container = self.dialogDom_.querySelector('.gdrive-welcome.' + type); |
| 4067 if (container.firstElementChild) | 4075 if (container.firstElementChild) |
| 4068 return; // Do not re-create. | 4076 return; // Do not re-create. |
| 4069 | 4077 |
| 4070 var wrapper = createDiv('gdrive-welcome-wrapper', container); | 4078 var wrapper = createDiv('gdrive-welcome-wrapper', container); |
| 4071 createDiv('gdrive-welcome-icon', wrapper); | 4079 createDiv('gdrive-welcome-icon', wrapper); |
| 4072 | 4080 |
| 4073 var close = createDiv('cr-dialog-close', wrapper); | 4081 var close = createDiv('cr-dialog-close', wrapper); |
| 4074 close.addEventListener('click', closeBanner); | 4082 close.addEventListener('click', dismissBanner); |
| 4075 | 4083 |
| 4076 var message = createDiv('gdrive-welcome-message', wrapper); | 4084 var message = createDiv('gdrive-welcome-message', wrapper); |
| 4077 | 4085 |
| 4078 var title = createDiv('gdrive-welcome-title', message); | 4086 var title = createDiv('gdrive-welcome-title', message); |
| 4079 title.textContent = str('GDATA_WELCOME_TITLE'); | |
| 4080 | 4087 |
| 4081 var text = createDiv('gdrive-welcome-text', message); | 4088 var text = createDiv('gdrive-welcome-text', message); |
| 4082 text.innerHTML = str(messageId); | 4089 text.innerHTML = str(messageId); |
| 4083 | 4090 |
| 4084 var links = createDiv('gdrive-welcome-links', message); | 4091 var links = createDiv('gdrive-welcome-links', message); |
| 4085 | 4092 |
| 4086 var more = createDiv('gdrive-welcome-more plain-link', links); | 4093 var more; |
| 4087 more.textContent = str('GDATA_LEARN_MORE'); | 4094 if (new_welcome) { |
| 4088 more.addEventListener('click', | 4095 title.textContent = str('GDATA_WELCOME_TITLE_ALTERNATIVE'); |
| 4089 self.onExternalLinkClick_.bind(self, GOOGLE_DRIVE_FAQ_URL)); | 4096 more = links.ownerDocument.createElement('a'); |
|
Dmitry Zvorygin
2012/07/25 15:15:46
Why not to use this.document(or self.document, alt
Vladislav Kaznacheev
2012/07/25 16:45:13
Changed to self.document_
On 2012/07/25 15:15:46,
| |
| 4097 more.className = 'gdata-welcome-button gdata-welcome-start'; | |
| 4098 more.textContent = str('GDATA_WELCOME_GET_STARTED'); | |
| 4099 more.addEventListener('click', | |
| 4100 self.onExternalLinkClick_.bind(self, CHROMEBOOK_INFO_URL)); | |
| 4101 more.addEventListener('click', hideBanner); | |
| 4102 } else { | |
| 4103 title.textContent = str('GDATA_WELCOME_TITLE'); | |
| 4104 more = links.ownerDocument.createElement('div'); | |
| 4105 more.className = 'plain-link'; | |
| 4106 more.textContent = str('GDATA_LEARN_MORE'); | |
| 4107 more.addEventListener('click', | |
| 4108 self.onExternalLinkClick_.bind(self, GOOGLE_DRIVE_FAQ_URL)); | |
| 4109 } | |
| 4110 links.appendChild(more); | |
| 4090 | 4111 |
| 4091 var dismiss = createDiv('gdrive-welcome-dismiss plain-link', links); | 4112 var dismiss; |
| 4113 if (new_welcome) { | |
| 4114 dismiss = links.ownerDocument.createElement('a'); | |
| 4115 dismiss.className = 'gdata-welcome-button'; | |
| 4116 } else { | |
| 4117 dismiss = links.ownerDocument.createElement('div'); | |
| 4118 dismiss.className = 'plain-link'; | |
| 4119 } | |
| 4120 dismiss.classList.add('gdrive-welcome-dismiss'); | |
| 4092 dismiss.textContent = str('GDATA_WELCOME_DISMISS'); | 4121 dismiss.textContent = str('GDATA_WELCOME_DISMISS'); |
| 4093 dismiss.addEventListener('click', closeBanner); | 4122 dismiss.addEventListener('click', dismissBanner); |
| 4123 links.appendChild(dismiss); | |
| 4094 } | 4124 } |
| 4095 | 4125 |
| 4096 var previousDirWasOnGData = false; | 4126 var previousDirWasOnGData = false; |
| 4097 | 4127 |
| 4098 function maybeShowBanner() { | 4128 function maybeShowBanner() { |
| 4099 if (!self.isOnGData()) { | 4129 if (!self.isOnGData()) { |
| 4100 self.showGDataWelcome_('none'); | 4130 self.showGDataWelcome_('none'); |
| 4101 previousDirWasOnGData = false; | 4131 previousDirWasOnGData = false; |
| 4102 return; | 4132 return; |
| 4103 } | 4133 } |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 4115 showBanner('page', 'GDATA_WELCOME_TEXT_LONG'); | 4145 showBanner('page', 'GDATA_WELCOME_TEXT_LONG'); |
| 4116 }, 2000); | 4146 }, 2000); |
| 4117 } else if (counter < WELCOME_HEADER_COUNTER_LIMIT) { | 4147 } else if (counter < WELCOME_HEADER_COUNTER_LIMIT) { |
| 4118 // We do not want to increment the counter when the user navigates | 4148 // We do not want to increment the counter when the user navigates |
| 4119 // between different directories on GDrive, but we increment the counter | 4149 // between different directories on GDrive, but we increment the counter |
| 4120 // once anyway to prevent the full page banner from showing. | 4150 // once anyway to prevent the full page banner from showing. |
| 4121 if (!previousDirWasOnGData || counter == 0) | 4151 if (!previousDirWasOnGData || counter == 0) |
| 4122 localStorage[WELCOME_HEADER_COUNTER_KEY] = ++counter; | 4152 localStorage[WELCOME_HEADER_COUNTER_KEY] = ++counter; |
| 4123 showBanner('header', 'GDATA_WELCOME_TEXT_SHORT'); | 4153 showBanner('header', 'GDATA_WELCOME_TEXT_SHORT'); |
| 4124 } else { | 4154 } else { |
| 4125 closeBanner(); | 4155 dismissBanner(); |
| 4126 } | 4156 } |
| 4127 previousDirWasOnGData = true; | 4157 previousDirWasOnGData = true; |
| 4128 } | 4158 } |
| 4129 | 4159 |
| 4130 function closeBanner() { | 4160 function hideBanner() { |
| 4131 self.cleanupGDataWelcome_(); | 4161 self.cleanupGDataWelcome_(); |
| 4132 // Stop showing the welcome banner. | 4162 } |
| 4163 | |
| 4164 // Hide the welcome banner and prevent it from showing again. | |
| 4165 function dismissBanner() { | |
| 4166 hideBanner(); | |
| 4133 localStorage[WELCOME_HEADER_COUNTER_KEY] = WELCOME_HEADER_COUNTER_LIMIT; | 4167 localStorage[WELCOME_HEADER_COUNTER_KEY] = WELCOME_HEADER_COUNTER_LIMIT; |
| 4134 } | 4168 } |
| 4135 | 4169 |
| 4136 return maybeShowBanner; | 4170 function checkSpaceAndShowBanner() { |
| 4171 if (new_welcome && self.isOnGData()) | |
| 4172 chrome.fileBrowserPrivate.getSizeStats(self.getCurrentDirectoryURL(), | |
| 4173 function(result) { | |
| 4174 if (result.totalSizeKB < 100 * 1024 * 1024) | |
|
Dmitry Zvorygin
2012/07/25 15:15:46
Consider using util.SCALE.
Vladislav Kaznacheev
2012/07/25 16:45:13
I tried and it looks even less readable. Added a c
| |
| 4175 maybeShowBanner(); | |
| 4176 else | |
| 4177 dismissBanner(); | |
| 4178 }); | |
| 4179 else | |
| 4180 maybeShowBanner(); | |
| 4181 } | |
| 4182 | |
| 4183 return checkSpaceAndShowBanner; | |
| 4137 }; | 4184 }; |
| 4138 | 4185 |
| 4139 /** | 4186 /** |
| 4140 * Listener invoked on gdata menu show event, to update gdata free/total | 4187 * Listener invoked on gdata menu show event, to update gdata free/total |
| 4141 * space info in opened menu. | 4188 * space info in opened menu. |
| 4142 * @private | 4189 * @private |
| 4143 */ | 4190 */ |
| 4144 FileManager.prototype.onGDataMenuShow_ = function() { | 4191 FileManager.prototype.onGDataMenuShow_ = function() { |
| 4145 this.updateCommands_(); | 4192 this.updateCommands_(); |
| 4146 this.gdataSpaceInfoBar_.setAttribute('pending', ''); | 4193 this.gdataSpaceInfoBar_.setAttribute('pending', ''); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4178 this.defaultActionMenuItem_.taskId = taskItem.taskId; | 4225 this.defaultActionMenuItem_.taskId = taskItem.taskId; |
| 4179 } | 4226 } |
| 4180 | 4227 |
| 4181 var defaultActionSeparator = | 4228 var defaultActionSeparator = |
| 4182 this.dialogDom_.querySelector('#default-action-separator'); | 4229 this.dialogDom_.querySelector('#default-action-separator'); |
| 4183 | 4230 |
| 4184 this.defaultActionMenuItem_.hidden = !taskItem; | 4231 this.defaultActionMenuItem_.hidden = !taskItem; |
| 4185 defaultActionSeparator.hidden = !taskItem; | 4232 defaultActionSeparator.hidden = !taskItem; |
| 4186 } | 4233 } |
| 4187 })(); | 4234 })(); |
| OLD | NEW |