Polished list facet a bit more to look like James' design.
git-svn-id: http://google-refine.googlecode.com/svn/trunk@460 7d457c2a-affb-35e4-300a-418c747d4874
This commit is contained in:
parent
93a6be6ac6
commit
a0b119b346
@ -106,20 +106,19 @@ ListFacet.prototype.render = function() {
|
|||||||
scrollTop = this._div[0].childNodes[1].scrollTop;
|
scrollTop = this._div[0].childNodes[1].scrollTop;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
var container = this._div.empty();
|
|
||||||
|
|
||||||
var headerDiv = $('<div></div>').addClass("facet-title").appendTo(container);
|
var container = this._div.empty().html(
|
||||||
$('<span></span>').text(this._config.name).appendTo(headerDiv);
|
'<div class="facet-title">' +
|
||||||
|
'<img src="images/close.png" title="Remove this facet" class="facet-choice-link" bind="removeButton"/>' +
|
||||||
|
'<span bind="titleSpan"></span>' +
|
||||||
|
'</div>'
|
||||||
|
);
|
||||||
|
var elmts = DOM.bind(container);
|
||||||
|
|
||||||
var removeButton = $('<img>')
|
elmts.titleSpan.text(this._config.name);
|
||||||
.attr("src", "images/close.png")
|
elmts.removeButton.click(function() { self._remove(); });
|
||||||
.attr("title", "Remove this facet")
|
|
||||||
.addClass("facet-choice-link")
|
|
||||||
.click(function() {
|
|
||||||
self._remove();
|
|
||||||
}).prependTo(headerDiv);
|
|
||||||
|
|
||||||
var bodyDiv = $('<div></div>').addClass("facet-body");
|
var bodyDiv = $('<div>').addClass("facet-body");
|
||||||
if (!("scroll" in this._options) || this._options.scroll) {
|
if (!("scroll" in this._options) || this._options.scroll) {
|
||||||
bodyDiv.addClass("facet-body-scrollable");
|
bodyDiv.addClass("facet-body-scrollable");
|
||||||
}
|
}
|
||||||
@ -127,23 +126,79 @@ ListFacet.prototype.render = function() {
|
|||||||
if (!this._data) {
|
if (!this._data) {
|
||||||
$('<div>').text("Loading...").addClass("facet-body-message").appendTo(bodyDiv);
|
$('<div>').text("Loading...").addClass("facet-body-message").appendTo(bodyDiv);
|
||||||
bodyDiv.appendTo(container);
|
bodyDiv.appendTo(container);
|
||||||
|
|
||||||
} else if ("error" in this._data) {
|
} else if ("error" in this._data) {
|
||||||
$('<div>').text(this._data.error).addClass("facet-body-message").appendTo(bodyDiv);
|
$('<div>').text(this._data.error).addClass("facet-body-message").appendTo(bodyDiv);
|
||||||
bodyDiv.appendTo(container);
|
bodyDiv.appendTo(container);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
var choices = this._data.choices;
|
||||||
var selectionCount = this._selection.length +
|
var selectionCount = this._selection.length +
|
||||||
(this._blankChoice !== null && this._blankChoice.s ? 1 : 0) +
|
(this._blankChoice !== null && this._blankChoice.s ? 1 : 0) +
|
||||||
(this._errorChoice !== null && this._errorChoice.s ? 1 : 0);
|
(this._errorChoice !== null && this._errorChoice.s ? 1 : 0);
|
||||||
|
|
||||||
if (selectionCount > 0) {
|
/*
|
||||||
var reset = function() {
|
* Status
|
||||||
self._reset();
|
*/
|
||||||
};
|
var statusDiv = $(
|
||||||
removeButton.after(
|
'<div class="facet-status"><div class="grid-layout layout-tightest layout-full">' +
|
||||||
$('<a href="javascript:{}"></a>').addClass("facet-choice-link").text("reset").click(reset)
|
'<table><tr>' +
|
||||||
);
|
'<td>' + choices.length + ' choices</td>' +
|
||||||
|
'<td width="1%"><a href="javascript:{}" class="action" bind="clusterLink">Cluster</a></td>' +
|
||||||
|
'</tr></table>' +
|
||||||
|
'</div></div>'
|
||||||
|
).appendTo(container);
|
||||||
|
|
||||||
|
var statusElmts = DOM.bind(statusDiv);
|
||||||
|
if (this._config.expression == "value") {
|
||||||
|
statusElmts.clusterLink.click(function() { self._doEdit(); });
|
||||||
|
} else {
|
||||||
|
statusElmts.clusterLink.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Controls
|
||||||
|
*/
|
||||||
|
var controlsDiv = $(
|
||||||
|
'<div class="facet-controls"><div class="grid-layout layout-tightest layout-full">' +
|
||||||
|
'<table><tr>' +
|
||||||
|
'<td>Sort by ' +
|
||||||
|
'<a href="javascript:{}" bind="sortByNameLink" class="facet-mode-link">Name</a> ' +
|
||||||
|
'<a href="javascript:{}" bind="sortByCountLink" class="facet-mode-link">Count</a>' +
|
||||||
|
'</td>' +
|
||||||
|
'<td width="1%">' +
|
||||||
|
'<a href="javascript:{}" class="action" bind="resetButton">Reset</a>' +
|
||||||
|
'</td>' +
|
||||||
|
'</tr></table>' +
|
||||||
|
'</div></div>'
|
||||||
|
).appendTo(container);
|
||||||
|
|
||||||
|
var controlsElmts = DOM.bind(controlsDiv);
|
||||||
|
if (selectionCount > 0) {
|
||||||
|
controlsElmts.resetButton.click(function() { self._reset(); });
|
||||||
|
} else {
|
||||||
|
controlsElmts.resetButton.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._options.sort == "name") {
|
||||||
|
controlsElmts.sortByNameLink.addClass("facet-mode-link-selected");
|
||||||
|
controlsElmts.sortByCountLink.click(function() {
|
||||||
|
self._options.sort = "count";
|
||||||
|
self._reSortChoices();
|
||||||
|
self.render();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
controlsElmts.sortByCountLink.addClass("facet-mode-link-selected");
|
||||||
|
controlsElmts.sortByNameLink.click(function() {
|
||||||
|
self._options.sort = "name";
|
||||||
|
self._reSortChoices();
|
||||||
|
self.render();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Body
|
||||||
|
*/
|
||||||
var renderEdit = this._config.expression == "value";
|
var renderEdit = this._config.expression == "value";
|
||||||
var renderChoice = function(choice, customLabel) {
|
var renderChoice = function(choice, customLabel) {
|
||||||
var label = customLabel || choice.v.l;
|
var label = customLabel || choice.v.l;
|
||||||
@ -226,7 +281,6 @@ ListFacet.prototype.render = function() {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var choices = this._data.choices;
|
|
||||||
for (var i = 0; i < choices.length; i++) {
|
for (var i = 0; i < choices.length; i++) {
|
||||||
renderChoice(choices[i]);
|
renderChoice(choices[i]);
|
||||||
}
|
}
|
||||||
@ -239,30 +293,6 @@ ListFacet.prototype.render = function() {
|
|||||||
|
|
||||||
bodyDiv.appendTo(container);
|
bodyDiv.appendTo(container);
|
||||||
bodyDiv[0].scrollTop = scrollTop;
|
bodyDiv[0].scrollTop = scrollTop;
|
||||||
|
|
||||||
var footerDiv = $('<div></div>').addClass("facet-footer").appendTo(container);
|
|
||||||
|
|
||||||
$('<span>').text(choices.length + " choices: ").appendTo(footerDiv);
|
|
||||||
if (this._options.sort == "name") {
|
|
||||||
$('<a href="javascript:{}"></a>').addClass("action").text("re-sort by count").click(function() {
|
|
||||||
self._options.sort = "count";
|
|
||||||
self._reSortChoices();
|
|
||||||
self.render();
|
|
||||||
}).appendTo(footerDiv);
|
|
||||||
} else {
|
|
||||||
$('<a href="javascript:{}"></a>').addClass("action").text("re-sort by name").click(function() {
|
|
||||||
self._options.sort = "name";
|
|
||||||
self._reSortChoices();
|
|
||||||
self.render();
|
|
||||||
}).appendTo(footerDiv);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this._config.expression == "value") {
|
|
||||||
$('<span>').html(" • ").appendTo(footerDiv);
|
|
||||||
$('<a href="javascript:{}"></a>').addClass("action").text("cluster").click(function() {
|
|
||||||
self._doEdit();
|
|
||||||
}).appendTo(footerDiv);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -107,12 +107,10 @@ body {
|
|||||||
.left-panel .ui-tabs .ui-tabs-panel {
|
.left-panel .ui-tabs .ui-tabs-panel {
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 7px;
|
padding: 7px;
|
||||||
|
border: 1px solid #DBE8EB;
|
||||||
background: #DBE8EB;
|
background: #DBE8EB;
|
||||||
|
-moz-border-radius-bottomleft: 7px;
|
||||||
-moz-border-radius: 7px;
|
-webkit-border-bottom-left-radius: 7px;
|
||||||
-webkit-border-radius: 7px;
|
|
||||||
-moz-border-radius-topleft: 0px;
|
|
||||||
-webkit-border-top-left-radius: 0px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.facet-panel {
|
.facet-panel {
|
||||||
|
@ -21,11 +21,14 @@ li.facet-container {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
background: white;
|
background: white;
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #bbb;
|
||||||
|
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 7px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 7px;
|
||||||
border-radius: 5px 5px;
|
border-radius: 7px 7px;
|
||||||
|
|
||||||
|
-moz-border-radius-bottomright: 0px;
|
||||||
|
-webkit-border-bottom-right-radius: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.facet-title {
|
.facet-title {
|
||||||
@ -34,6 +37,35 @@ li.facet-container {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
cursor: move;
|
cursor: move;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.facet-status {
|
||||||
|
font-size: 90%;
|
||||||
|
padding: 2px 5px;
|
||||||
|
}
|
||||||
|
.facet-controls {
|
||||||
|
font-size: 90%;
|
||||||
|
padding: 5px 5px;
|
||||||
|
background: #F4F7FA;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
a.facet-mode-link {
|
||||||
|
text-decoration: none;
|
||||||
|
padding: 2px;
|
||||||
|
margin 0px 2px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
a.facet-mode-link:hover {
|
||||||
|
background: #666;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
a.facet-mode-link.facet-mode-link-selected {
|
||||||
|
background: #888;
|
||||||
|
color: #eee;
|
||||||
|
color: default;
|
||||||
|
}
|
||||||
|
|
||||||
.facet-body {
|
.facet-body {
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
}
|
}
|
||||||
@ -45,11 +77,7 @@ li.facet-container {
|
|||||||
height: 20em;
|
height: 20em;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
.facet-footer {
|
|
||||||
padding: 1px;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.facet-choice {
|
.facet-choice {
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
|
Loading…
Reference in New Issue
Block a user