| 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();
|
| + }
|
| };
|
|
|