| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 /** | 30 /** |
| 31 * @implements {WebInspector.ListWidget.Delegate} | 31 * @implements {UI.ListWidget.Delegate} |
| 32 * @unrestricted | 32 * @unrestricted |
| 33 */ | 33 */ |
| 34 WebInspector.EditFileSystemView = class extends WebInspector.VBox { | 34 Settings.EditFileSystemView = class extends UI.VBox { |
| 35 /** | 35 /** |
| 36 * @param {string} fileSystemPath | 36 * @param {string} fileSystemPath |
| 37 */ | 37 */ |
| 38 constructor(fileSystemPath) { | 38 constructor(fileSystemPath) { |
| 39 super(true); | 39 super(true); |
| 40 this.registerRequiredCSS('settings/editFileSystemView.css'); | 40 this.registerRequiredCSS('settings/editFileSystemView.css'); |
| 41 this._fileSystemPath = fileSystemPath; | 41 this._fileSystemPath = fileSystemPath; |
| 42 | 42 |
| 43 this._eventListeners = [ | 43 this._eventListeners = [ |
| 44 WebInspector.fileSystemMapping.addEventListener( | 44 Workspace.fileSystemMapping.addEventListener( |
| 45 WebInspector.FileSystemMapping.Events.FileMappingAdded, this._update,
this), | 45 Workspace.FileSystemMapping.Events.FileMappingAdded, this._update, thi
s), |
| 46 WebInspector.fileSystemMapping.addEventListener( | 46 Workspace.fileSystemMapping.addEventListener( |
| 47 WebInspector.FileSystemMapping.Events.FileMappingRemoved, this._update
, this), | 47 Workspace.FileSystemMapping.Events.FileMappingRemoved, this._update, t
his), |
| 48 WebInspector.isolatedFileSystemManager.addEventListener( | 48 Workspace.isolatedFileSystemManager.addEventListener( |
| 49 WebInspector.IsolatedFileSystemManager.Events.ExcludedFolderAdded, thi
s._update, this), | 49 Workspace.IsolatedFileSystemManager.Events.ExcludedFolderAdded, this._
update, this), |
| 50 WebInspector.isolatedFileSystemManager.addEventListener( | 50 Workspace.isolatedFileSystemManager.addEventListener( |
| 51 WebInspector.IsolatedFileSystemManager.Events.ExcludedFolderRemoved, t
his._update, this) | 51 Workspace.IsolatedFileSystemManager.Events.ExcludedFolderRemoved, this
._update, this) |
| 52 ]; | 52 ]; |
| 53 | 53 |
| 54 this._mappingsList = new WebInspector.ListWidget(this); | 54 this._mappingsList = new UI.ListWidget(this); |
| 55 this._mappingsList.element.classList.add('file-system-list'); | 55 this._mappingsList.element.classList.add('file-system-list'); |
| 56 this._mappingsList.registerRequiredCSS('settings/editFileSystemView.css'); | 56 this._mappingsList.registerRequiredCSS('settings/editFileSystemView.css'); |
| 57 var mappingsPlaceholder = createElementWithClass('div', 'file-system-list-em
pty'); | 57 var mappingsPlaceholder = createElementWithClass('div', 'file-system-list-em
pty'); |
| 58 var mappingsHeader = this.contentElement.createChild('div', 'file-system-hea
der'); | 58 var mappingsHeader = this.contentElement.createChild('div', 'file-system-hea
der'); |
| 59 mappingsHeader.createChild('div', 'file-system-header-text').textContent = W
ebInspector.UIString('Mappings'); | 59 mappingsHeader.createChild('div', 'file-system-header-text').textContent = C
ommon.UIString('Mappings'); |
| 60 if (Runtime.experiments.isEnabled('persistence2')) { | 60 if (Runtime.experiments.isEnabled('persistence2')) { |
| 61 var div = mappingsPlaceholder.createChild('div'); | 61 var div = mappingsPlaceholder.createChild('div'); |
| 62 div.createTextChild( | 62 div.createTextChild( |
| 63 WebInspector.UIString('Mappings are inferred automatically via the \'P
ersistence 2.0\' experiment. Please ')); | 63 Common.UIString('Mappings are inferred automatically via the \'Persist
ence 2.0\' experiment. Please ')); |
| 64 div.appendChild(WebInspector.linkifyURLAsNode( | 64 div.appendChild(UI.linkifyURLAsNode( |
| 65 'https://bugs.chromium.org/p/chromium/issues/entry?template=Defect%20r
eport%20from%20user&components=Platform%3EDevTools%3EAuthoring&comment=DevTools%
20failed%20to%20link%20network%20resource%20to%20filesystem.%0A%0APlatform%3A%20
%3CLinux%2FWin%2FMac%3E%0AChrome%20version%3A%20%3Cyour%20chrome%20version%3E%0A
%0AWhat%20are%20the%20details%20of%20your%20project%3F%0A-%20Source%20code%20(if
%20any)%3A%20http%3A%2F%2Fgithub.com%2Fexample%2Fexample%0A-%20Build%20System%3A
%20gulp%2Fgrunt%2Fwebpack%2Frollup%2F...%0A-%20HTTP%20server%3A%20node%20HTTP%2F
nginx%2Fapache...%0A%0AAssets%20failed%20to%20link%20(or%20incorrectly%20linked)
%3A%0A1.%0A2.%0A3.%0A%0AIf%20possible%2C%20please%20attach%20a%20screenshot%20of
%20network%20sources%20navigator%20which%20should%0Ashow%20which%20resources%20f
ailed%20to%20map', | 65 'https://bugs.chromium.org/p/chromium/issues/entry?template=Defect%20r
eport%20from%20user&components=Platform%3EDevTools%3EAuthoring&comment=DevTools%
20failed%20to%20link%20network%20resource%20to%20filesystem.%0A%0APlatform%3A%20
%3CLinux%2FWin%2FMac%3E%0AChrome%20version%3A%20%3Cyour%20chrome%20version%3E%0A
%0AWhat%20are%20the%20details%20of%20your%20project%3F%0A-%20Source%20code%20(if
%20any)%3A%20http%3A%2F%2Fgithub.com%2Fexample%2Fexample%0A-%20Build%20System%3A
%20gulp%2Fgrunt%2Fwebpack%2Frollup%2F...%0A-%20HTTP%20server%3A%20node%20HTTP%2F
nginx%2Fapache...%0A%0AAssets%20failed%20to%20link%20(or%20incorrectly%20linked)
%3A%0A1.%0A2.%0A3.%0A%0AIf%20possible%2C%20please%20attach%20a%20screenshot%20of
%20network%20sources%20navigator%20which%20should%0Ashow%20which%20resources%20f
ailed%20to%20map', |
| 66 WebInspector.UIString('report'), undefined, true)); | 66 Common.UIString('report'), undefined, true)); |
| 67 div.createTextChild(WebInspector.UIString(' any bugs.')); | 67 div.createTextChild(Common.UIString(' any bugs.')); |
| 68 } else { | 68 } else { |
| 69 mappingsPlaceholder.textContent = WebInspector.UIString('No mappings'); | 69 mappingsPlaceholder.textContent = Common.UIString('No mappings'); |
| 70 mappingsHeader.appendChild( | 70 mappingsHeader.appendChild( |
| 71 createTextButton(WebInspector.UIString('Add'), this._addMappingButtonC
licked.bind(this), 'add-button')); | 71 createTextButton(Common.UIString('Add'), this._addMappingButtonClicked
.bind(this), 'add-button')); |
| 72 } | 72 } |
| 73 this._mappingsList.setEmptyPlaceholder(mappingsPlaceholder); | 73 this._mappingsList.setEmptyPlaceholder(mappingsPlaceholder); |
| 74 this._mappingsList.show(this.contentElement); | 74 this._mappingsList.show(this.contentElement); |
| 75 | 75 |
| 76 var excludedFoldersHeader = this.contentElement.createChild('div', 'file-sys
tem-header'); | 76 var excludedFoldersHeader = this.contentElement.createChild('div', 'file-sys
tem-header'); |
| 77 excludedFoldersHeader.createChild('div', 'file-system-header-text').textCont
ent = | 77 excludedFoldersHeader.createChild('div', 'file-system-header-text').textCont
ent = |
| 78 WebInspector.UIString('Excluded folders'); | 78 Common.UIString('Excluded folders'); |
| 79 excludedFoldersHeader.appendChild( | 79 excludedFoldersHeader.appendChild( |
| 80 createTextButton(WebInspector.UIString('Add'), this._addExcludedFolderBu
ttonClicked.bind(this), 'add-button')); | 80 createTextButton(Common.UIString('Add'), this._addExcludedFolderButtonCl
icked.bind(this), 'add-button')); |
| 81 this._excludedFoldersList = new WebInspector.ListWidget(this); | 81 this._excludedFoldersList = new UI.ListWidget(this); |
| 82 this._excludedFoldersList.element.classList.add('file-system-list'); | 82 this._excludedFoldersList.element.classList.add('file-system-list'); |
| 83 this._excludedFoldersList.registerRequiredCSS('settings/editFileSystemView.c
ss'); | 83 this._excludedFoldersList.registerRequiredCSS('settings/editFileSystemView.c
ss'); |
| 84 var excludedFoldersPlaceholder = createElementWithClass('div', 'file-system-
list-empty'); | 84 var excludedFoldersPlaceholder = createElementWithClass('div', 'file-system-
list-empty'); |
| 85 excludedFoldersPlaceholder.textContent = WebInspector.UIString('No excluded
folders'); | 85 excludedFoldersPlaceholder.textContent = Common.UIString('No excluded folder
s'); |
| 86 this._excludedFoldersList.setEmptyPlaceholder(excludedFoldersPlaceholder); | 86 this._excludedFoldersList.setEmptyPlaceholder(excludedFoldersPlaceholder); |
| 87 this._excludedFoldersList.show(this.contentElement); | 87 this._excludedFoldersList.show(this.contentElement); |
| 88 | 88 |
| 89 this.contentElement.tabIndex = 0; | 89 this.contentElement.tabIndex = 0; |
| 90 this._update(); | 90 this._update(); |
| 91 } | 91 } |
| 92 | 92 |
| 93 dispose() { | 93 dispose() { |
| 94 WebInspector.EventTarget.removeEventListeners(this._eventListeners); | 94 Common.EventTarget.removeEventListeners(this._eventListeners); |
| 95 } | 95 } |
| 96 | 96 |
| 97 _update() { | 97 _update() { |
| 98 if (this._muteUpdate) | 98 if (this._muteUpdate) |
| 99 return; | 99 return; |
| 100 | 100 |
| 101 this._mappingsList.clear(); | 101 this._mappingsList.clear(); |
| 102 this._mappings = []; | 102 this._mappings = []; |
| 103 if (Runtime.experiments.isEnabled('persistence2')) | 103 if (Runtime.experiments.isEnabled('persistence2')) |
| 104 return; | 104 return; |
| 105 var mappings = WebInspector.fileSystemMapping.mappingEntries(this._fileSyste
mPath); | 105 var mappings = Workspace.fileSystemMapping.mappingEntries(this._fileSystemPa
th); |
| 106 for (var entry of mappings) { | 106 for (var entry of mappings) { |
| 107 if (entry.configurable) { | 107 if (entry.configurable) { |
| 108 this._mappingsList.appendItem(entry, true); | 108 this._mappingsList.appendItem(entry, true); |
| 109 this._mappings.push(entry); | 109 this._mappings.push(entry); |
| 110 } | 110 } |
| 111 } | 111 } |
| 112 for (var entry of mappings) { | 112 for (var entry of mappings) { |
| 113 if (!entry.configurable) { | 113 if (!entry.configurable) { |
| 114 this._mappingsList.appendItem(entry, false); | 114 this._mappingsList.appendItem(entry, false); |
| 115 this._mappings.push(entry); | 115 this._mappings.push(entry); |
| 116 } | 116 } |
| 117 } | 117 } |
| 118 | 118 |
| 119 this._excludedFoldersList.clear(); | 119 this._excludedFoldersList.clear(); |
| 120 this._excludedFolders = []; | 120 this._excludedFolders = []; |
| 121 for (var folder of WebInspector.isolatedFileSystemManager.fileSystem(this._f
ileSystemPath) | 121 for (var folder of Workspace.isolatedFileSystemManager.fileSystem(this._file
SystemPath) |
| 122 .excludedFolders() | 122 .excludedFolders() |
| 123 .values()) { | 123 .values()) { |
| 124 this._excludedFolders.push(folder); | 124 this._excludedFolders.push(folder); |
| 125 this._excludedFoldersList.appendItem(folder, true); | 125 this._excludedFoldersList.appendItem(folder, true); |
| 126 } | 126 } |
| 127 for (var folder of WebInspector.isolatedFileSystemManager.fileSystem(this._f
ileSystemPath) | 127 for (var folder of Workspace.isolatedFileSystemManager.fileSystem(this._file
SystemPath) |
| 128 .nonConfigurableExcludedFolders() | 128 .nonConfigurableExcludedFolders() |
| 129 .values()) { | 129 .values()) { |
| 130 this._excludedFolders.push(folder); | 130 this._excludedFolders.push(folder); |
| 131 this._excludedFoldersList.appendItem(folder, false); | 131 this._excludedFoldersList.appendItem(folder, false); |
| 132 } | 132 } |
| 133 } | 133 } |
| 134 | 134 |
| 135 _addMappingButtonClicked() { | 135 _addMappingButtonClicked() { |
| 136 var entry = new WebInspector.FileSystemMapping.Entry(this._fileSystemPath, '
', '', true); | 136 var entry = new Workspace.FileSystemMapping.Entry(this._fileSystemPath, '',
'', true); |
| 137 this._mappingsList.addNewItem(0, entry); | 137 this._mappingsList.addNewItem(0, entry); |
| 138 } | 138 } |
| 139 | 139 |
| 140 _addExcludedFolderButtonClicked() { | 140 _addExcludedFolderButtonClicked() { |
| 141 this._excludedFoldersList.addNewItem(0, ''); | 141 this._excludedFoldersList.addNewItem(0, ''); |
| 142 } | 142 } |
| 143 | 143 |
| 144 /** | 144 /** |
| 145 * @override | 145 * @override |
| 146 * @param {*} item | 146 * @param {*} item |
| 147 * @param {boolean} editable | 147 * @param {boolean} editable |
| 148 * @return {!Element} | 148 * @return {!Element} |
| 149 */ | 149 */ |
| 150 renderItem(item, editable) { | 150 renderItem(item, editable) { |
| 151 var element = createElementWithClass('div', 'file-system-list-item'); | 151 var element = createElementWithClass('div', 'file-system-list-item'); |
| 152 if (!editable) | 152 if (!editable) |
| 153 element.classList.add('locked'); | 153 element.classList.add('locked'); |
| 154 if (item instanceof WebInspector.FileSystemMapping.Entry) { | 154 if (item instanceof Workspace.FileSystemMapping.Entry) { |
| 155 var entry = /** @type {!WebInspector.FileSystemMapping.Entry} */ (item); | 155 var entry = /** @type {!Workspace.FileSystemMapping.Entry} */ (item); |
| 156 var urlPrefix = | 156 var urlPrefix = |
| 157 entry.configurable ? entry.urlPrefix : WebInspector.UIString('%s (via
.devtools)', entry.urlPrefix); | 157 entry.configurable ? entry.urlPrefix : Common.UIString('%s (via .devto
ols)', entry.urlPrefix); |
| 158 var urlPrefixElement = element.createChild('div', 'file-system-value'); | 158 var urlPrefixElement = element.createChild('div', 'file-system-value'); |
| 159 urlPrefixElement.textContent = urlPrefix; | 159 urlPrefixElement.textContent = urlPrefix; |
| 160 urlPrefixElement.title = urlPrefix; | 160 urlPrefixElement.title = urlPrefix; |
| 161 element.createChild('div', 'file-system-separator'); | 161 element.createChild('div', 'file-system-separator'); |
| 162 var pathPrefixElement = element.createChild('div', 'file-system-value'); | 162 var pathPrefixElement = element.createChild('div', 'file-system-value'); |
| 163 pathPrefixElement.textContent = entry.pathPrefix; | 163 pathPrefixElement.textContent = entry.pathPrefix; |
| 164 pathPrefixElement.title = entry.pathPrefix; | 164 pathPrefixElement.title = entry.pathPrefix; |
| 165 } else { | 165 } else { |
| 166 var pathPrefix = /** @type {string} */ (editable ? item : WebInspector.UIS
tring('%s (via .devtools)', item)); | 166 var pathPrefix = /** @type {string} */ (editable ? item : Common.UIString(
'%s (via .devtools)', item)); |
| 167 var pathPrefixElement = element.createChild('div', 'file-system-value'); | 167 var pathPrefixElement = element.createChild('div', 'file-system-value'); |
| 168 pathPrefixElement.textContent = pathPrefix; | 168 pathPrefixElement.textContent = pathPrefix; |
| 169 pathPrefixElement.title = pathPrefix; | 169 pathPrefixElement.title = pathPrefix; |
| 170 } | 170 } |
| 171 element.createChild('div', 'file-system-locked').title = WebInspector.UIStri
ng('From .devtools file'); | 171 element.createChild('div', 'file-system-locked').title = Common.UIString('Fr
om .devtools file'); |
| 172 return element; | 172 return element; |
| 173 } | 173 } |
| 174 | 174 |
| 175 /** | 175 /** |
| 176 * @override | 176 * @override |
| 177 * @param {*} item | 177 * @param {*} item |
| 178 * @param {number} index | 178 * @param {number} index |
| 179 */ | 179 */ |
| 180 removeItemRequested(item, index) { | 180 removeItemRequested(item, index) { |
| 181 if (item instanceof WebInspector.FileSystemMapping.Entry) { | 181 if (item instanceof Workspace.FileSystemMapping.Entry) { |
| 182 var entry = this._mappings[index]; | 182 var entry = this._mappings[index]; |
| 183 WebInspector.fileSystemMapping.removeFileMapping(entry.fileSystemPath, ent
ry.urlPrefix, entry.pathPrefix); | 183 Workspace.fileSystemMapping.removeFileMapping(entry.fileSystemPath, entry.
urlPrefix, entry.pathPrefix); |
| 184 } else { | 184 } else { |
| 185 WebInspector.isolatedFileSystemManager.fileSystem(this._fileSystemPath) | 185 Workspace.isolatedFileSystemManager.fileSystem(this._fileSystemPath) |
| 186 .removeExcludedFolder(this._excludedFolders[index]); | 186 .removeExcludedFolder(this._excludedFolders[index]); |
| 187 } | 187 } |
| 188 } | 188 } |
| 189 | 189 |
| 190 /** | 190 /** |
| 191 * @override | 191 * @override |
| 192 * @param {*} item | 192 * @param {*} item |
| 193 * @param {!WebInspector.ListWidget.Editor} editor | 193 * @param {!UI.ListWidget.Editor} editor |
| 194 * @param {boolean} isNew | 194 * @param {boolean} isNew |
| 195 */ | 195 */ |
| 196 commitEdit(item, editor, isNew) { | 196 commitEdit(item, editor, isNew) { |
| 197 this._muteUpdate = true; | 197 this._muteUpdate = true; |
| 198 if (item instanceof WebInspector.FileSystemMapping.Entry) { | 198 if (item instanceof Workspace.FileSystemMapping.Entry) { |
| 199 var entry = /** @type {!WebInspector.FileSystemMapping.Entry} */ (item); | 199 var entry = /** @type {!Workspace.FileSystemMapping.Entry} */ (item); |
| 200 if (!isNew) | 200 if (!isNew) |
| 201 WebInspector.fileSystemMapping.removeFileMapping(this._fileSystemPath, e
ntry.urlPrefix, entry.pathPrefix); | 201 Workspace.fileSystemMapping.removeFileMapping(this._fileSystemPath, entr
y.urlPrefix, entry.pathPrefix); |
| 202 WebInspector.fileSystemMapping.addFileMapping( | 202 Workspace.fileSystemMapping.addFileMapping( |
| 203 this._fileSystemPath, this._normalizePrefix(editor.control('urlPrefix'
).value), | 203 this._fileSystemPath, this._normalizePrefix(editor.control('urlPrefix'
).value), |
| 204 this._normalizePrefix(editor.control('pathPrefix').value)); | 204 this._normalizePrefix(editor.control('pathPrefix').value)); |
| 205 } else { | 205 } else { |
| 206 if (!isNew) | 206 if (!isNew) |
| 207 WebInspector.isolatedFileSystemManager.fileSystem(this._fileSystemPath) | 207 Workspace.isolatedFileSystemManager.fileSystem(this._fileSystemPath) |
| 208 .removeExcludedFolder(/** @type {string} */ (item)); | 208 .removeExcludedFolder(/** @type {string} */ (item)); |
| 209 WebInspector.isolatedFileSystemManager.fileSystem(this._fileSystemPath) | 209 Workspace.isolatedFileSystemManager.fileSystem(this._fileSystemPath) |
| 210 .addExcludedFolder(this._normalizePrefix(editor.control('pathPrefix').
value)); | 210 .addExcludedFolder(this._normalizePrefix(editor.control('pathPrefix').
value)); |
| 211 } | 211 } |
| 212 this._muteUpdate = false; | 212 this._muteUpdate = false; |
| 213 this._update(); | 213 this._update(); |
| 214 } | 214 } |
| 215 | 215 |
| 216 /** | 216 /** |
| 217 * @override | 217 * @override |
| 218 * @param {*} item | 218 * @param {*} item |
| 219 * @return {!WebInspector.ListWidget.Editor} | 219 * @return {!UI.ListWidget.Editor} |
| 220 */ | 220 */ |
| 221 beginEdit(item) { | 221 beginEdit(item) { |
| 222 if (item instanceof WebInspector.FileSystemMapping.Entry) { | 222 if (item instanceof Workspace.FileSystemMapping.Entry) { |
| 223 var entry = /** @type {!WebInspector.FileSystemMapping.Entry} */ (item); | 223 var entry = /** @type {!Workspace.FileSystemMapping.Entry} */ (item); |
| 224 var editor = this._createMappingEditor(); | 224 var editor = this._createMappingEditor(); |
| 225 editor.control('urlPrefix').value = entry.urlPrefix; | 225 editor.control('urlPrefix').value = entry.urlPrefix; |
| 226 editor.control('pathPrefix').value = entry.pathPrefix; | 226 editor.control('pathPrefix').value = entry.pathPrefix; |
| 227 return editor; | 227 return editor; |
| 228 } else { | 228 } else { |
| 229 var editor = this._createExcludedFolderEditor(); | 229 var editor = this._createExcludedFolderEditor(); |
| 230 editor.control('pathPrefix').value = item; | 230 editor.control('pathPrefix').value = item; |
| 231 return editor; | 231 return editor; |
| 232 } | 232 } |
| 233 } | 233 } |
| 234 | 234 |
| 235 /** | 235 /** |
| 236 * @return {!WebInspector.ListWidget.Editor} | 236 * @return {!UI.ListWidget.Editor} |
| 237 */ | 237 */ |
| 238 _createMappingEditor() { | 238 _createMappingEditor() { |
| 239 if (this._mappingEditor) | 239 if (this._mappingEditor) |
| 240 return this._mappingEditor; | 240 return this._mappingEditor; |
| 241 | 241 |
| 242 var editor = new WebInspector.ListWidget.Editor(); | 242 var editor = new UI.ListWidget.Editor(); |
| 243 this._mappingEditor = editor; | 243 this._mappingEditor = editor; |
| 244 var content = editor.contentElement(); | 244 var content = editor.contentElement(); |
| 245 | 245 |
| 246 var titles = content.createChild('div', 'file-system-edit-row'); | 246 var titles = content.createChild('div', 'file-system-edit-row'); |
| 247 titles.createChild('div', 'file-system-value').textContent = WebInspector.UI
String('URL prefix'); | 247 titles.createChild('div', 'file-system-value').textContent = Common.UIString
('URL prefix'); |
| 248 titles.createChild('div', 'file-system-separator file-system-separator-invis
ible'); | 248 titles.createChild('div', 'file-system-separator file-system-separator-invis
ible'); |
| 249 titles.createChild('div', 'file-system-value').textContent = WebInspector.UI
String('Folder path'); | 249 titles.createChild('div', 'file-system-value').textContent = Common.UIString
('Folder path'); |
| 250 | 250 |
| 251 var fields = content.createChild('div', 'file-system-edit-row'); | 251 var fields = content.createChild('div', 'file-system-edit-row'); |
| 252 fields.createChild('div', 'file-system-value') | 252 fields.createChild('div', 'file-system-value') |
| 253 .appendChild( | 253 .appendChild( |
| 254 editor.createInput('urlPrefix', 'text', 'http://localhost:8000/url',
urlPrefixValidator.bind(this))); | 254 editor.createInput('urlPrefix', 'text', 'http://localhost:8000/url',
urlPrefixValidator.bind(this))); |
| 255 fields.createChild('div', 'file-system-separator file-system-separator-invis
ible'); | 255 fields.createChild('div', 'file-system-separator file-system-separator-invis
ible'); |
| 256 fields.createChild('div', 'file-system-value') | 256 fields.createChild('div', 'file-system-value') |
| 257 .appendChild(editor.createInput('pathPrefix', 'text', '/path/to/folder/'
, pathPrefixValidator.bind(this))); | 257 .appendChild(editor.createInput('pathPrefix', 'text', '/path/to/folder/'
, pathPrefixValidator.bind(this))); |
| 258 | 258 |
| 259 return editor; | 259 return editor; |
| 260 | 260 |
| 261 /** | 261 /** |
| 262 * @param {*} item | 262 * @param {*} item |
| 263 * @param {number} index | 263 * @param {number} index |
| 264 * @param {!HTMLInputElement|!HTMLSelectElement} input | 264 * @param {!HTMLInputElement|!HTMLSelectElement} input |
| 265 * @return {boolean} | 265 * @return {boolean} |
| 266 * @this {WebInspector.EditFileSystemView} | 266 * @this {Settings.EditFileSystemView} |
| 267 */ | 267 */ |
| 268 function urlPrefixValidator(item, index, input) { | 268 function urlPrefixValidator(item, index, input) { |
| 269 var prefix = this._normalizePrefix(input.value); | 269 var prefix = this._normalizePrefix(input.value); |
| 270 for (var i = 0; i < this._mappings.length; ++i) { | 270 for (var i = 0; i < this._mappings.length; ++i) { |
| 271 if (i !== index && this._mappings[i].configurable && this._mappings[i].u
rlPrefix === prefix) | 271 if (i !== index && this._mappings[i].configurable && this._mappings[i].u
rlPrefix === prefix) |
| 272 return false; | 272 return false; |
| 273 } | 273 } |
| 274 return !!prefix; | 274 return !!prefix; |
| 275 } | 275 } |
| 276 | 276 |
| 277 /** | 277 /** |
| 278 * @param {*} item | 278 * @param {*} item |
| 279 * @param {number} index | 279 * @param {number} index |
| 280 * @param {!HTMLInputElement|!HTMLSelectElement} input | 280 * @param {!HTMLInputElement|!HTMLSelectElement} input |
| 281 * @return {boolean} | 281 * @return {boolean} |
| 282 * @this {WebInspector.EditFileSystemView} | 282 * @this {Settings.EditFileSystemView} |
| 283 */ | 283 */ |
| 284 function pathPrefixValidator(item, index, input) { | 284 function pathPrefixValidator(item, index, input) { |
| 285 var prefix = this._normalizePrefix(input.value); | 285 var prefix = this._normalizePrefix(input.value); |
| 286 for (var i = 0; i < this._mappings.length; ++i) { | 286 for (var i = 0; i < this._mappings.length; ++i) { |
| 287 if (i !== index && this._mappings[i].configurable && this._mappings[i].p
athPrefix === prefix) | 287 if (i !== index && this._mappings[i].configurable && this._mappings[i].p
athPrefix === prefix) |
| 288 return false; | 288 return false; |
| 289 } | 289 } |
| 290 return !!prefix; | 290 return !!prefix; |
| 291 } | 291 } |
| 292 } | 292 } |
| 293 | 293 |
| 294 /** | 294 /** |
| 295 * @return {!WebInspector.ListWidget.Editor} | 295 * @return {!UI.ListWidget.Editor} |
| 296 */ | 296 */ |
| 297 _createExcludedFolderEditor() { | 297 _createExcludedFolderEditor() { |
| 298 if (this._excludedFolderEditor) | 298 if (this._excludedFolderEditor) |
| 299 return this._excludedFolderEditor; | 299 return this._excludedFolderEditor; |
| 300 | 300 |
| 301 var editor = new WebInspector.ListWidget.Editor(); | 301 var editor = new UI.ListWidget.Editor(); |
| 302 this._excludedFolderEditor = editor; | 302 this._excludedFolderEditor = editor; |
| 303 var content = editor.contentElement(); | 303 var content = editor.contentElement(); |
| 304 | 304 |
| 305 var titles = content.createChild('div', 'file-system-edit-row'); | 305 var titles = content.createChild('div', 'file-system-edit-row'); |
| 306 titles.createChild('div', 'file-system-value').textContent = WebInspector.UI
String('Folder path'); | 306 titles.createChild('div', 'file-system-value').textContent = Common.UIString
('Folder path'); |
| 307 | 307 |
| 308 var fields = content.createChild('div', 'file-system-edit-row'); | 308 var fields = content.createChild('div', 'file-system-edit-row'); |
| 309 fields.createChild('div', 'file-system-value') | 309 fields.createChild('div', 'file-system-value') |
| 310 .appendChild(editor.createInput('pathPrefix', 'text', '/path/to/folder/'
, pathPrefixValidator.bind(this))); | 310 .appendChild(editor.createInput('pathPrefix', 'text', '/path/to/folder/'
, pathPrefixValidator.bind(this))); |
| 311 | 311 |
| 312 return editor; | 312 return editor; |
| 313 | 313 |
| 314 /** | 314 /** |
| 315 * @param {*} item | 315 * @param {*} item |
| 316 * @param {number} index | 316 * @param {number} index |
| 317 * @param {!HTMLInputElement|!HTMLSelectElement} input | 317 * @param {!HTMLInputElement|!HTMLSelectElement} input |
| 318 * @return {boolean} | 318 * @return {boolean} |
| 319 * @this {WebInspector.EditFileSystemView} | 319 * @this {Settings.EditFileSystemView} |
| 320 */ | 320 */ |
| 321 function pathPrefixValidator(item, index, input) { | 321 function pathPrefixValidator(item, index, input) { |
| 322 var prefix = this._normalizePrefix(input.value); | 322 var prefix = this._normalizePrefix(input.value); |
| 323 var configurableCount = | 323 var configurableCount = |
| 324 WebInspector.isolatedFileSystemManager.fileSystem(this._fileSystemPath
).excludedFolders().size; | 324 Workspace.isolatedFileSystemManager.fileSystem(this._fileSystemPath).e
xcludedFolders().size; |
| 325 for (var i = 0; i < configurableCount; ++i) { | 325 for (var i = 0; i < configurableCount; ++i) { |
| 326 if (i !== index && this._excludedFolders[i] === prefix) | 326 if (i !== index && this._excludedFolders[i] === prefix) |
| 327 return false; | 327 return false; |
| 328 } | 328 } |
| 329 return !!prefix; | 329 return !!prefix; |
| 330 } | 330 } |
| 331 } | 331 } |
| 332 | 332 |
| 333 /** | 333 /** |
| 334 * @param {string} prefix | 334 * @param {string} prefix |
| 335 * @return {string} | 335 * @return {string} |
| 336 */ | 336 */ |
| 337 _normalizePrefix(prefix) { | 337 _normalizePrefix(prefix) { |
| 338 if (!prefix) | 338 if (!prefix) |
| 339 return ''; | 339 return ''; |
| 340 return prefix + (prefix[prefix.length - 1] === '/' ? '' : '/'); | 340 return prefix + (prefix[prefix.length - 1] === '/' ? '' : '/'); |
| 341 } | 341 } |
| 342 }; | 342 }; |
| OLD | NEW |