Skip to content

Commit

Permalink
Merge branch 'master' into enhancement-1792-api-logic
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Mar 1, 2012
2 parents 09401c9 + 687c5a1 commit acf9f13
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 85 deletions.
3 changes: 2 additions & 1 deletion ckan/public/scripts/application.js
Expand Up @@ -899,7 +899,8 @@ CKAN.View.ResourceAddLink = Backbone.View.extend({
}

if (resourceData.webstore_url) {
var dataset = new recline.Model.Dataset(resourceData, 'webstore');
resourceData.elasticsearch_url = '/api/data/' + resourceData.id;
var dataset = new recline.Model.Dataset(resourceData, 'elasticsearch');
initializeDataExplorer(dataset);
}
else if (resourceData.formatNormalized in {'csv': '', 'xls': ''}) {
Expand Down
58 changes: 1 addition & 57 deletions ckan/public/scripts/vendor/recline/css/data-explorer.css
Expand Up @@ -55,70 +55,14 @@
}

.header .recline-query-editor form .btn {
margin-top: -23px;
vertical-align: top;
}

.data-view-container {
display: block;
clear: both;
}

/* bootstrap btn */
.btn {
cursor: pointer;
display: inline-block;
background-color: #e6e6e6;
background-repeat: no-repeat;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
padding: 5px 14px 6px;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
color: #333;
font-size: 13px;
line-height: normal;
border: 1px solid #ccc;
border-bottom-color: #bbb;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-webkit-transition: 0.1s linear all;
-moz-transition: 0.1s linear all;
-ms-transition: 0.1s linear all;
-o-transition: 0.1s linear all;
transition: 0.1s linear all;
}
.btn:hover {
background-position: 0 -15px;
color: #333;
text-decoration: none;
}
.btn:focus {
outline: 1px dotted #666;
}

/* twitter btn.disabled but for button link that is active. used in navigation */
.active .btn {
cursor: default;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
filter: alpha(opacity=65);
-khtml-opacity: 0.65;
-moz-opacity: 0.65;
opacity: 0.65;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}


/**********************************************************
* Notifications
*********************************************************/
Expand Down
60 changes: 33 additions & 27 deletions ckan/public/scripts/vendor/recline/recline.js
Expand Up @@ -1092,17 +1092,30 @@ my.DataExplorer = Backbone.View.extend({
this.router = new Backbone.Router();
this.setupRouting();

this.model.bind('query:start', function(eventName) {
this.model.bind('query:start', function() {
my.notify('Loading data', {loader: true});
});
this.model.bind('query:done', function(eventName) {
this.model.bind('query:done', function() {
my.clearNotifications();
self.el.find('.doc-count').text(self.model.docCount || 'Unknown');
my.notify('Data loaded', {category: 'success'});
});
this.model.bind('query:fail', function(eventName, error) {
this.model.bind('query:fail', function(error) {
my.clearNotifications();
my.notify(error.message, {category: 'error', persist: true});
var msg = '';
if (typeof(error) == 'string') {
msg = error;
} else if (typeof(error) == 'object') {
if (error.title) {
msg = error.title + ': ';
}
if (error.message) {
msg += error.message;
}
} else {
msg = 'There was an error querying the backend';
}
my.notify(msg, {category: 'error', persist: true});
});

// retrieve basic data like fields etc
Expand Down Expand Up @@ -1152,8 +1165,10 @@ my.DataExplorer = Backbone.View.extend({

updateNav: function(pageName, queryString) {
this.el.find('.navigation li').removeClass('active');
this.el.find('.navigation li a').removeClass('disabled');
var $el = this.el.find('.navigation li a[href=#' + pageName + ']');
$el.parent().addClass('active');
$el.addClass('disabled');
// show the specific page
_.each(this.pageViews, function(view, idx) {
if (view.id === pageName) {
Expand Down Expand Up @@ -1592,29 +1607,10 @@ this.recline.Backend = this.recline.Backend || {};
var self = this;
if (method === "read") {
if (model.__type__ == 'Dataset') {
var base = self.get('dataproxy_url');
// TODO: should we cache for extra efficiency
var data = {
url: model.get('url')
, 'max-results': 1
, type: model.get('format') || 'csv'
};
var jqxhr = $.ajax({
url: base
, data: data
, dataType: 'jsonp'
});
// Do nothing as we will get fields in query step (and no metadata to
// retrieve)
var dfd = $.Deferred();
my.wrapInTimeout(jqxhr).done(function(results) {
model.fields.reset(_.map(results.fields, function(fieldId) {
return {id: fieldId};
})
);
dfd.resolve(model, jqxhr);
})
.fail(function(arguments) {
dfd.reject(arguments);
});
dfd.resolve(model);
return dfd.promise();
}
} else {
Expand All @@ -1634,7 +1630,14 @@ this.recline.Backend = this.recline.Backend || {};
, dataType: 'jsonp'
});
var dfd = $.Deferred();
jqxhr.done(function(results) {
my.wrapInTimeout(jqxhr).done(function(results) {
if (results.error) {
dfd.reject(results.error);
}
dataset.fields.reset(_.map(results.fields, function(fieldId) {
return {id: fieldId};
})
);
var _out = _.map(results.data, function(doc) {
var tmp = {};
_.each(results.fields, function(key, idx) {
Expand All @@ -1643,6 +1646,9 @@ this.recline.Backend = this.recline.Backend || {};
return tmp;
});
dfd.resolve(_out);
})
.fail(function(arguments) {
dfd.reject(arguments);
});
return dfd.promise();
}
Expand Down
16 changes: 16 additions & 0 deletions ckan/templates/package/resource_read.html
Expand Up @@ -15,6 +15,22 @@
<!-- data preview -->
<link rel="stylesheet" href="${h.url_for_static('/scripts/vendor/recline/css/data-explorer.css')}" />
<link rel="stylesheet" href="${h.url_for_static('/scripts/vendor/recline/css/graph-flot.css')}" />
<style type="text/css">
.header .recline-query-editor input.text-query {
margin-right: 5px;
margin-top: 2px;
height: 18px;
}

.header .recline-query-editor .pagination input {
margin-top: auto;
margin-bottom: 2px;
}
.recline-query-editor .pagination ul {
margin: 0;
padding: 0;
}
</style>
<!-- /data preview -->
<script type="text/javascript">
var preload_resource = ${h.literal(c.resource_json)};
Expand Down

0 comments on commit acf9f13

Please sign in to comment.