diff --git a/main/webapp/modules/core/scripts/project.js b/main/webapp/modules/core/scripts/project.js index 65d99904e..ab86a449a 100644 --- a/main/webapp/modules/core/scripts/project.js +++ b/main/webapp/modules/core/scripts/project.js @@ -178,7 +178,7 @@ Refine.reinitializeProjectData = function(f, fError) { $.getJSON( "command/core/get-project-metadata?" + $.param({ project: theProject.id }), null, function(data) { - if (data.status == 'error') { + if (data.status == "error") { alert(data.message); if (fError) { fError(); @@ -220,7 +220,7 @@ Refine._renameProject = function() { data: { "project" : theProject.id, "name" : name }, dataType: "json", success: function (data) { - if (data && typeof data.code != 'undefined' && data.code == "ok") { + if (data && typeof data.code != "undefined" && data.code == "ok") { theProject.metadata.name = name; Refine.setTitle(); } else { @@ -425,9 +425,12 @@ Refine.fetchRows = function(start, limit, onDone, sorting) { } $.post( - "command/core/get-rows?" + $.param({ project: theProject.id, start: start, limit: limit }) + "&callback=?", + "command/core/get-rows?" + $.param({ project: theProject.id, start: start, limit: limit }), body, function(data) { + if(data.code === "error") { + data = theProject.rowModel; + } theProject.rowModel = data; // Un-pool objects @@ -445,7 +448,7 @@ Refine.fetchRows = function(start, limit, onDone, sorting) { onDone(); } }, - "jsonp" + "json" ); }; diff --git a/main/webapp/modules/core/scripts/project/browsing-engine.js b/main/webapp/modules/core/scripts/project/browsing-engine.js index 04bc571b2..d75a097a4 100644 --- a/main/webapp/modules/core/scripts/project/browsing-engine.js +++ b/main/webapp/modules/core/scripts/project/browsing-engine.js @@ -33,7 +33,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. function BrowsingEngine(div, facetConfigs) { this._div = div; - this._mode = theProject.recordModel.hasRecords ? 'record-based' : 'row-based'; + this._mode = theProject.recordModel.hasRecords ? "record-based" : "row-based"; this._facets = []; this._initializeUI(); @@ -101,6 +101,7 @@ BrowsingEngine.prototype._initializeUI = function() { '

'+$.i18n._('core-project')["not-sure"]+'
'+$.i18n._('core-project')["watch-cast"]+'

' + '' + '
' + + '
' + '
' + ' '+$.i18n._('core-project')["refreshing-facet"]+'' + '
' + @@ -240,19 +241,31 @@ BrowsingEngine.prototype.update = function(onDone) { this._elmts.header.show(); this._elmts.controls.css("visibility", "hidden"); - this._elmts.indicator.css("visibility", "visible"); + this._elmts.indicator.css("display", "block"); $.post( "command/core/compute-facets?" + $.param({ project: theProject.id }), { engine: JSON.stringify(this.getJSON(true)) }, function(data) { + if(data.code === "error") { + var clearErr = $('#err-text').remove(); + var err = $('
') + .text(data.message) + .appendTo(self._elmts.errors); + self._elmts.errors.css("display", "block"); + if (onDone) { + onDone(); + } + return; + } var facetData = data.facets; for (var i = 0; i < facetData.length; i++) { self._facets[i].facet.updateState(facetData[i]); } - self._elmts.indicator.css("visibility", "hidden"); + self._elmts.indicator.css("display", "none"); + self._elmts.errors.css("display", "none"); if (self._facets.length > 0) { self._elmts.header.show(); self._elmts.controls.css("visibility", "visible"); diff --git a/main/webapp/modules/core/styles/project/sidebar.less b/main/webapp/modules/core/styles/project/sidebar.less index 482fe93e8..9d8c36d4b 100644 --- a/main/webapp/modules/core/styles/project/sidebar.less +++ b/main/webapp/modules/core/styles/project/sidebar.less @@ -38,9 +38,23 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. display: none; } +.browsing-panel-errors { + display: none; + position: relative; + height: auto; + margin: 5px; + text-align: center; + background: #fff0f4; + color: #c51244; + padding: 4px 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border: 1px solid #ccc; + } + .browsing-panel-indicator { - visibility: hidden; - position: absolute; + display: none; + position: relative; width: 50%; margin: 5px; top: 0em;