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 25 matching lines...) Expand all Loading... |
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', closeBanner); |
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 = self.document_.createElement('a'); |
| 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 } else { |
| 4102 title.textContent = str('GDATA_WELCOME_TITLE'); |
| 4103 more = self.document_.createElement('div'); |
| 4104 more.className = 'plain-link'; |
| 4105 more.textContent = str('GDATA_LEARN_MORE'); |
| 4106 more.addEventListener('click', |
| 4107 self.onExternalLinkClick_.bind(self, GOOGLE_DRIVE_FAQ_URL)); |
| 4108 } |
| 4109 links.appendChild(more); |
4090 | 4110 |
4091 var dismiss = createDiv('gdrive-welcome-dismiss plain-link', links); | 4111 var dismiss; |
| 4112 if (new_welcome) { |
| 4113 dismiss = self.document_.createElement('a'); |
| 4114 dismiss.className = 'gdata-welcome-button'; |
| 4115 } else { |
| 4116 dismiss = self.document_.createElement('div'); |
| 4117 dismiss.className = 'plain-link'; |
| 4118 } |
| 4119 dismiss.classList.add('gdrive-welcome-dismiss'); |
4092 dismiss.textContent = str('GDATA_WELCOME_DISMISS'); | 4120 dismiss.textContent = str('GDATA_WELCOME_DISMISS'); |
4093 dismiss.addEventListener('click', closeBanner); | 4121 dismiss.addEventListener('click', closeBanner); |
| 4122 links.appendChild(dismiss); |
4094 } | 4123 } |
4095 | 4124 |
4096 var previousDirWasOnGData = false; | 4125 var previousDirWasOnGData = false; |
4097 | 4126 |
4098 function maybeShowBanner() { | 4127 function maybeShowBanner() { |
4099 if (!self.isOnGData()) { | 4128 if (!self.isOnGData()) { |
4100 self.showGDataWelcome_('none'); | 4129 self.showGDataWelcome_('none'); |
4101 previousDirWasOnGData = false; | 4130 previousDirWasOnGData = false; |
4102 return; | 4131 return; |
4103 } | 4132 } |
(...skipping 22 matching lines...) Expand all Loading... |
4126 } | 4155 } |
4127 previousDirWasOnGData = true; | 4156 previousDirWasOnGData = true; |
4128 } | 4157 } |
4129 | 4158 |
4130 function closeBanner() { | 4159 function closeBanner() { |
4131 self.cleanupGDataWelcome_(); | 4160 self.cleanupGDataWelcome_(); |
4132 // Stop showing the welcome banner. | 4161 // Stop showing the welcome banner. |
4133 localStorage[WELCOME_HEADER_COUNTER_KEY] = WELCOME_HEADER_COUNTER_LIMIT; | 4162 localStorage[WELCOME_HEADER_COUNTER_KEY] = WELCOME_HEADER_COUNTER_LIMIT; |
4134 } | 4163 } |
4135 | 4164 |
4136 return maybeShowBanner; | 4165 function checkSpaceAndShowBanner() { |
| 4166 if (new_welcome && self.isOnGData()) |
| 4167 chrome.fileBrowserPrivate.getSizeStats(self.getCurrentDirectoryURL(), |
| 4168 function(result) { |
| 4169 if (result.totalSizeKB >= 100 * 1024 * 1024) // Already >= 100 GB. |
| 4170 new_welcome = false; |
| 4171 maybeShowBanner(); |
| 4172 }); |
| 4173 else |
| 4174 maybeShowBanner(); |
| 4175 } |
| 4176 |
| 4177 return checkSpaceAndShowBanner; |
4137 }; | 4178 }; |
4138 | 4179 |
4139 /** | 4180 /** |
4140 * Listener invoked on gdata menu show event, to update gdata free/total | 4181 * Listener invoked on gdata menu show event, to update gdata free/total |
4141 * space info in opened menu. | 4182 * space info in opened menu. |
4142 * @private | 4183 * @private |
4143 */ | 4184 */ |
4144 FileManager.prototype.onGDataMenuShow_ = function() { | 4185 FileManager.prototype.onGDataMenuShow_ = function() { |
4145 this.updateCommands_(); | 4186 this.updateCommands_(); |
4146 this.gdataSpaceInfoBar_.setAttribute('pending', ''); | 4187 this.gdataSpaceInfoBar_.setAttribute('pending', ''); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4178 this.defaultActionMenuItem_.taskId = taskItem.taskId; | 4219 this.defaultActionMenuItem_.taskId = taskItem.taskId; |
4179 } | 4220 } |
4180 | 4221 |
4181 var defaultActionSeparator = | 4222 var defaultActionSeparator = |
4182 this.dialogDom_.querySelector('#default-action-separator'); | 4223 this.dialogDom_.querySelector('#default-action-separator'); |
4183 | 4224 |
4184 this.defaultActionMenuItem_.hidden = !taskItem; | 4225 this.defaultActionMenuItem_.hidden = !taskItem; |
4185 defaultActionSeparator.hidden = !taskItem; | 4226 defaultActionSeparator.hidden = !taskItem; |
4186 } | 4227 } |
4187 })(); | 4228 })(); |
OLD | NEW |