Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Unified Diff: chrome/browser/resources/options/search_engine_manager_engine_list.js

Issue 6248015: DOMUI Prefs: Split search engines into two lists (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/options/search_engine_manager.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/options/search_engine_manager_engine_list.js
diff --git a/chrome/browser/resources/options/search_engine_manager_engine_list.js b/chrome/browser/resources/options/search_engine_manager_engine_list.js
index d67a35e85f776a33138c852ffd723255bd82e29f..f536926c31896869a2fc9db53178628e2adcd493 100644
--- a/chrome/browser/resources/options/search_engine_manager_engine_list.js
+++ b/chrome/browser/resources/options/search_engine_manager_engine_list.js
@@ -5,8 +5,7 @@
cr.define('options.search_engines', function() {
const InlineEditableItemList = options.InlineEditableItemList;
const InlineEditableItem = options.InlineEditableItem;
- const ListInlineHeaderSelectionController =
- options.ListInlineHeaderSelectionController;
+ const ListSelectionController = cr.ui.ListSelectionController;
/**
* Creates a new search engine list item.
@@ -90,50 +89,37 @@ cr.define('options.search_engines', function() {
this.currentlyValid_ = !this.isPlaceholder_;
- if (engine['heading']) {
- this.classList.add('heading');
- this.editable = false;
- } else if (engine['default']) {
+ if (engine['default'])
this.classList.add('default');
- }
this.deletable = engine['canBeRemoved'];
- var nameText = engine['name'];
- var keywordText = engine['keyword'];
- var urlText = engine['url'];
- if (engine['heading']) {
- nameText = engine['heading'];
- keywordText = localStrings.getString('searchEngineTableKeywordHeader');
- urlText = localStrings.getString('searchEngineTableURLHeader');
- }
-
// Construct the name column.
var nameColEl = this.ownerDocument.createElement('div');
nameColEl.className = 'name-column';
this.contentElement.appendChild(nameColEl);
- // For non-heading rows, start with a favicon.
- if (!engine['heading']) {
- var faviconDivEl = this.ownerDocument.createElement('div');
- faviconDivEl.className = 'favicon';
- var imgEl = this.ownerDocument.createElement('img');
- imgEl.src = 'chrome://favicon/iconurl/' + engine['iconURL'];
- faviconDivEl.appendChild(imgEl);
- nameColEl.appendChild(faviconDivEl);
- }
+ // Add the favicon.
+ var faviconDivEl = this.ownerDocument.createElement('div');
+ faviconDivEl.className = 'favicon';
+ var imgEl = this.ownerDocument.createElement('img');
+ imgEl.src = 'chrome://favicon/iconurl/' + engine['iconURL'];
+ faviconDivEl.appendChild(imgEl);
+ nameColEl.appendChild(faviconDivEl);
- var nameEl = this.createEditableTextCell(nameText, this.isPlaceholder_);
+ var nameEl = this.createEditableTextCell(engine['name'],
+ this.isPlaceholder_);
nameColEl.appendChild(nameEl);
// Then the keyword column.
- var keywordEl = this.createEditableTextCell(keywordText,
+ var keywordEl = this.createEditableTextCell(engine['keyword'],
this.isPlaceholder_);
keywordEl.className = 'keyword-column';
this.contentElement.appendChild(keywordEl);
// And the URL column.
- var urlEl = this.createEditableTextCell(urlText, this.isPlaceholder_);
+ var urlEl = this.createEditableTextCell(engine['url'],
+ this.isPlaceholder_);
var urlWithButtonEl = this.ownerDocument.createElement('div');
urlWithButtonEl.appendChild(urlEl);
urlWithButtonEl.className = 'url-column';
@@ -142,6 +128,7 @@ cr.define('options.search_engines', function() {
// is implemented. When this is removed, remove the extra div above.
if (engine['canBeDefault']) {
var makeDefaultButtonEl = this.ownerDocument.createElement('button');
+ makeDefaultButtonEl.className = "raw-button";
makeDefaultButtonEl.textContent =
templateData.makeDefaultSearchEngineButton;
makeDefaultButtonEl.onclick = function(e) {
@@ -155,27 +142,25 @@ cr.define('options.search_engines', function() {
}
// Do final adjustment to the input fields.
- if (!engine['heading']) {
- this.nameField_ = nameEl.querySelector('input');
- this.keywordField_ = keywordEl.querySelector('input');
- this.urlField_ = urlEl.querySelector('input');
-
- if (engine['urlLocked'])
- this.urlField_.disabled = true;
-
- if (this.isPlaceholder_) {
- this.nameField_.placeholder =
- localStrings.getString('searchEngineTableNamePlaceholder');
- this.keywordField_.placeholder =
- localStrings.getString('searchEngineTableKeywordPlaceholder');
- this.urlField_.placeholder =
- localStrings.getString('searchEngineTableURLPlaceholder');
- }
-
- var fields = [ this.nameField_, this.keywordField_, this.urlField_ ];
- for (var i = 0; i < fields.length; i++) {
- fields[i].oninput = this.startFieldValidation_.bind(this);
- }
+ this.nameField_ = nameEl.querySelector('input');
+ this.keywordField_ = keywordEl.querySelector('input');
+ this.urlField_ = urlEl.querySelector('input');
+
+ if (engine['urlLocked'])
+ this.urlField_.disabled = true;
+
+ if (this.isPlaceholder_) {
+ this.nameField_.placeholder =
+ localStrings.getString('searchEngineTableNamePlaceholder');
+ this.keywordField_.placeholder =
+ localStrings.getString('searchEngineTableKeywordPlaceholder');
+ this.urlField_.placeholder =
+ localStrings.getString('searchEngineTableURLPlaceholder');
+ }
+
+ var fields = [ this.nameField_, this.keywordField_, this.urlField_ ];
+ for (var i = 0; i < fields.length; i++) {
+ fields[i].oninput = this.startFieldValidation_.bind(this);
}
// Listen for edit events.
@@ -303,25 +288,12 @@ cr.define('options.search_engines', function() {
},
/** @inheritDoc */
- createSelectionController: function(sm) {
- return new ListInlineHeaderSelectionController(sm, this);
- },
-
- /** @inheritDoc */
deleteItemAtIndex: function(index) {
var modelIndex = this.dataModel.item(index)['modelIndex']
chrome.send('removeSearchEngine', [String(modelIndex)]);
},
/**
- * Returns true if the given item is selectable.
- * @param {number} index The index to check.
- */
- canSelectIndex: function(index) {
- return !this.dataModel.item(index).hasOwnProperty('heading');
- },
-
- /**
* Passes the results of an input validation check to the requesting row
* if it's still being edited.
* @param {number} modelIndex The model index of the item that was checked.
@@ -330,6 +302,8 @@ cr.define('options.search_engines', function() {
validationComplete: function(validity, modelIndex) {
// If it's not still being edited, it no longer matters.
var currentSelection = this.selectedItem;
+ if (!currentSelection)
+ return;
var listItem = this.getListItem(currentSelection);
if (listItem.editing && currentSelection['modelIndex'] == modelIndex)
listItem.validationComplete(validity);
« no previous file with comments | « chrome/browser/resources/options/search_engine_manager.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698