Index: third_party/WebKit/Source/devtools/front_end/resources/DatabaseTableView.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/DatabaseTableView.js b/third_party/WebKit/Source/devtools/front_end/resources/DatabaseTableView.js |
index c80329d1a7cc419f1f0fbebc94263aea68426d0a..d8a69ba5a811e60fbd70ef10004b161543128e63 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/resources/DatabaseTableView.js |
+++ b/third_party/WebKit/Source/devtools/front_end/resources/DatabaseTableView.js |
@@ -22,126 +22,121 @@ |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
- |
/** |
- * @constructor |
- * @extends {WebInspector.SimpleView} |
+ * @unrestricted |
*/ |
-WebInspector.DatabaseTableView = function(database, tableName) |
-{ |
- WebInspector.SimpleView.call(this, WebInspector.UIString("Database")); |
+WebInspector.DatabaseTableView = class extends WebInspector.SimpleView { |
+ constructor(database, tableName) { |
+ super(WebInspector.UIString('Database')); |
this.database = database; |
this.tableName = tableName; |
- this.element.classList.add("storage-view", "table"); |
- |
- this._visibleColumnsSetting = WebInspector.settings.createSetting("databaseTableViewVisibleColumns", {}); |
- |
- this.refreshButton = new WebInspector.ToolbarButton(WebInspector.UIString("Refresh"), "refresh-toolbar-item"); |
- this.refreshButton.addEventListener("click", this._refreshButtonClicked, this); |
- this._visibleColumnsInput = new WebInspector.ToolbarInput(WebInspector.UIString("Visible columns"), 1); |
- this._visibleColumnsInput.addEventListener(WebInspector.ToolbarInput.Event.TextChanged, this._onVisibleColumnsChanged, this); |
-}; |
- |
-WebInspector.DatabaseTableView.prototype = { |
- wasShown: function() |
- { |
- this.update(); |
- }, |
- |
- /** |
- * @override |
- * @return {!Array.<!WebInspector.ToolbarItem>} |
- */ |
- syncToolbarItems: function() |
- { |
- return [this.refreshButton, this._visibleColumnsInput]; |
- }, |
- |
- /** |
- * @param {string} tableName |
- * @return {string} |
- */ |
- _escapeTableName: function(tableName) |
- { |
- return tableName.replace(/\"/g, "\"\""); |
- }, |
- |
- update: function() |
- { |
- this.database.executeSql("SELECT rowid, * FROM \"" + this._escapeTableName(this.tableName) + "\"", this._queryFinished.bind(this), this._queryError.bind(this)); |
- }, |
- |
- _queryFinished: function(columnNames, values) |
- { |
- this.detachChildWidgets(); |
- this.element.removeChildren(); |
- |
- this._dataGrid = WebInspector.SortableDataGrid.create(columnNames, values); |
- this._visibleColumnsInput.setVisible(!!this._dataGrid); |
- if (!this._dataGrid) { |
- this._emptyWidget = new WebInspector.EmptyWidget(WebInspector.UIString("The “%s”\ntable is empty.", this.tableName)); |
- this._emptyWidget.show(this.element); |
- return; |
- } |
- this._dataGrid.asWidget().show(this.element); |
- this._dataGrid.autoSizeColumns(5); |
- |
- this._columnsMap = new Map(); |
- for (var i = 1; i < columnNames.length; ++i) |
- this._columnsMap.set(columnNames[i], String(i)); |
- this._lastVisibleColumns = ""; |
- var visibleColumnsText = this._visibleColumnsSetting.get()[this.tableName] || ""; |
- this._visibleColumnsInput.setValue(visibleColumnsText); |
- this._onVisibleColumnsChanged(); |
- }, |
- |
- _onVisibleColumnsChanged: function() |
- { |
- if (!this._dataGrid) |
- return; |
- var text = this._visibleColumnsInput.value(); |
- var parts = text.split(/[\s,]+/); |
- var matches = new Set(); |
- var columnsVisibility = {}; |
- columnsVisibility["0"] = true; |
- for (var i = 0; i < parts.length; ++i) { |
- var part = parts[i]; |
- if (this._columnsMap.has(part)) { |
- matches.add(part); |
- columnsVisibility[this._columnsMap.get(part)] = true; |
- } |
- } |
- var newVisibleColumns = matches.valuesArray().sort().join(", "); |
- if (newVisibleColumns.length === 0) { |
- for (var v of this._columnsMap.values()) |
- columnsVisibility[v] = true; |
- } |
- if (newVisibleColumns === this._lastVisibleColumns) |
- return; |
- var visibleColumnsRegistry = this._visibleColumnsSetting.get(); |
- visibleColumnsRegistry[this.tableName] = text; |
- this._visibleColumnsSetting.set(visibleColumnsRegistry); |
- this._dataGrid.setColumnsVisiblity(columnsVisibility); |
- this._lastVisibleColumns = newVisibleColumns; |
- }, |
- |
- _queryError: function(error) |
- { |
- this.detachChildWidgets(); |
- this.element.removeChildren(); |
- |
- var errorMsgElement = createElement("div"); |
- errorMsgElement.className = "storage-table-error"; |
- errorMsgElement.textContent = WebInspector.UIString("An error occurred trying to\nread the “%s” table.", this.tableName); |
- this.element.appendChild(errorMsgElement); |
- }, |
- |
- _refreshButtonClicked: function(event) |
- { |
- this.update(); |
- }, |
- |
- __proto__: WebInspector.SimpleView.prototype |
+ this.element.classList.add('storage-view', 'table'); |
+ |
+ this._visibleColumnsSetting = WebInspector.settings.createSetting('databaseTableViewVisibleColumns', {}); |
+ |
+ this.refreshButton = new WebInspector.ToolbarButton(WebInspector.UIString('Refresh'), 'refresh-toolbar-item'); |
+ this.refreshButton.addEventListener('click', this._refreshButtonClicked, this); |
+ this._visibleColumnsInput = new WebInspector.ToolbarInput(WebInspector.UIString('Visible columns'), 1); |
+ this._visibleColumnsInput.addEventListener( |
+ WebInspector.ToolbarInput.Event.TextChanged, this._onVisibleColumnsChanged, this); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ wasShown() { |
+ this.update(); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {!Array.<!WebInspector.ToolbarItem>} |
+ */ |
+ syncToolbarItems() { |
+ return [this.refreshButton, this._visibleColumnsInput]; |
+ } |
+ |
+ /** |
+ * @param {string} tableName |
+ * @return {string} |
+ */ |
+ _escapeTableName(tableName) { |
+ return tableName.replace(/\"/g, '""'); |
+ } |
+ |
+ update() { |
+ this.database.executeSql( |
+ 'SELECT rowid, * FROM "' + this._escapeTableName(this.tableName) + '"', this._queryFinished.bind(this), |
+ this._queryError.bind(this)); |
+ } |
+ |
+ _queryFinished(columnNames, values) { |
+ this.detachChildWidgets(); |
+ this.element.removeChildren(); |
+ |
+ this._dataGrid = WebInspector.SortableDataGrid.create(columnNames, values); |
+ this._visibleColumnsInput.setVisible(!!this._dataGrid); |
+ if (!this._dataGrid) { |
+ this._emptyWidget = |
+ new WebInspector.EmptyWidget(WebInspector.UIString('The “%s”\ntable is empty.', this.tableName)); |
+ this._emptyWidget.show(this.element); |
+ return; |
+ } |
+ this._dataGrid.asWidget().show(this.element); |
+ this._dataGrid.autoSizeColumns(5); |
+ |
+ this._columnsMap = new Map(); |
+ for (var i = 1; i < columnNames.length; ++i) |
+ this._columnsMap.set(columnNames[i], String(i)); |
+ this._lastVisibleColumns = ''; |
+ var visibleColumnsText = this._visibleColumnsSetting.get()[this.tableName] || ''; |
+ this._visibleColumnsInput.setValue(visibleColumnsText); |
+ this._onVisibleColumnsChanged(); |
+ } |
+ |
+ _onVisibleColumnsChanged() { |
+ if (!this._dataGrid) |
+ return; |
+ var text = this._visibleColumnsInput.value(); |
+ var parts = text.split(/[\s,]+/); |
+ var matches = new Set(); |
+ var columnsVisibility = {}; |
+ columnsVisibility['0'] = true; |
+ for (var i = 0; i < parts.length; ++i) { |
+ var part = parts[i]; |
+ if (this._columnsMap.has(part)) { |
+ matches.add(part); |
+ columnsVisibility[this._columnsMap.get(part)] = true; |
+ } |
+ } |
+ var newVisibleColumns = matches.valuesArray().sort().join(', '); |
+ if (newVisibleColumns.length === 0) { |
+ for (var v of this._columnsMap.values()) |
+ columnsVisibility[v] = true; |
+ } |
+ if (newVisibleColumns === this._lastVisibleColumns) |
+ return; |
+ var visibleColumnsRegistry = this._visibleColumnsSetting.get(); |
+ visibleColumnsRegistry[this.tableName] = text; |
+ this._visibleColumnsSetting.set(visibleColumnsRegistry); |
+ this._dataGrid.setColumnsVisiblity(columnsVisibility); |
+ this._lastVisibleColumns = newVisibleColumns; |
+ } |
+ |
+ _queryError(error) { |
+ this.detachChildWidgets(); |
+ this.element.removeChildren(); |
+ |
+ var errorMsgElement = createElement('div'); |
+ errorMsgElement.className = 'storage-table-error'; |
+ errorMsgElement.textContent = |
+ WebInspector.UIString('An error occurred trying to\nread the “%s” table.', this.tableName); |
+ this.element.appendChild(errorMsgElement); |
+ } |
+ |
+ _refreshButtonClicked(event) { |
+ this.update(); |
+ } |
}; |