datopian / datahub Goto Github PK
View Code? Open in Web Editor NEW๐ Rapidly build rich data portals using a modern frontend framework
Home Page: https://datahub.io/opensource
License: MIT License
๐ Rapidly build rich data portals using a modern frontend framework
Home Page: https://datahub.io/opensource
License: MIT License
Currently have one view test. Should have more.
Replace jquery-ui with Bootstrap modal ... (think that is all we use jquery-ui for!)
Update:
So question is: do we need draggability on our dialogs?
Create view for managing entire DataExplorer.
Child of #34 - Data Query support
Query support would involve supporting things like:
This will clearly depend on backend capabilities.
NB: It would be up to specific backends how to implement and support this query object. Different backends might choose to implement things differently or not support certain features.
Propose to base directly ElasticSearch query language. Query object would therefore have following key attributes:
Additions:
{ q: 'quick brown fox', filters: { 'owner': 'jones' } }
A query object will have the following attributes:
2012-01-10 move notification from util into view, simplify and boostrapify.
2012-01-09 auto draw something in the graph view so it isn't blank when you start (or give instructions ...) - done in #85
2012-01-05 p:? Move bulk transform / update onto Dataset / Backend object ... WONTFIX for the present
2012-01-06 p:med generate basic code docs with docco - now in #33
2012-01-06 p:high Move to having richer header attributes (?)
2012-01-06 p:low remove unwanted vendor deps (sammy, microevent (?), jquery.couch2.js (?), traverse (?))
2012-01-05 p:low pagination ... (at least offset) - see #27 for pagination
2012-01-05 p:low Tests for costco especially TransformPreview - not done but now in #114
support for using url to configure state of the explorer (e.g. displaying data table or visualizations)
Import for various backends.
Could be nice to update theme (e.g. using bootstrap or jquery UI as in old data explorer).
Do we want to support this? Undo is impossible.
At the moment jsonp requests in Backends don't raise errors (because of nature of JSONP). We may wish to wrap in timeouts as a crude way to catch these
var timeout = 10000; var timer = setTimeout(function error() { callback({ error: { title: 'Request Error', message: 'Had timeout with Backend (probably error) ' + (timeout / 1000) + ' seconds' } }); }, timeout); // later $.ajax({ url: url, dataType: 'jsonp', success: function(data) { clearTimeout(timer); callback(data); } });
Depends on #9 (BackendCouch)
Get tests setup and write a few example.
Use qunit and sinon
Super ticket: #5
Connect to http://wiki.ckan.org/Webstore
This would likely focus on CSV file import since that is all we could easily parse in browser. Could extend to more complex formats via pushing file out to online conversion service (gut based or otherwise).
Extracted from #13.
fields: (aka columns) is the array of fields (column) to display. Each entry in fields is a hash having:
Do we need data_key?
Create recline.js in base directory
Build script (or instructions for creating: cat src/*.js > recline.js !). Automated build of this if possible ...
Create documentation (suggest using docco) and deploy on project website at http://okfnlabs.org/recline/
for doing maths on crazy big numbers during transforms
Create Backend (and hence data source support) for DataProxy.
This will allow us to display data from any CSV or XLS file that is on the public internet!
Super ticket: #5
Use CouchDB as backend.
Support for read-only mode where all editing options are disabled
Make it possible to individually enable and disable the display of columns in the table.
UI: There should be another drop-down in the top-left corner of the table with a list of checkable column names.
This would allow for cell values to be innerHTML so we can have links, tooltips etc.
CellRenderer is a function that takes two arguments:
It must returns html or a jquery element object suitable for rendering into the view.
May want to aim for simplicity, at least in first pass!
tabular: http://wiki.ckan.org/Data_Formats#Formats_-_Tabular
Dataset
Super ticket: #5
Replace our current hardcoding into models of use of local data with a proper Backend: BackendMemory.
We went with option 3
Backend as Backend / DataProvider
Backend as a single DataSource (e.g. a single spreadsheet or database)
var backend = MyBackend(backendOnlyConfig) // optional - add to backend registry recline.Model.backends[backend-id] = backend; // either directly or some time later var dataset = Dataset(metadata, backend); // Note: backend may be a backend instance or a backend id (string) // Info about where backend should get data will be in Dataset 'metadata' (e.g. the url field!)
Somewhere else in the system:
var backend = MyBackend(backendOnlyConfig) my.backends[backend-id] = backend; // at some point later var dataset = Dataset(metadata); dataset.backendConfig = { type: 'my-backend', url: http://mybackend.org/api }
initialize:
this.backend_config = backend_config; this.backend = my.backends[backend_config.type]; // all subsequent code will just use this.backend // of course backends can access model.backend_config and, of course, model (if they want!)
var backend = MyBackend(backendConfig) What is backendConfig? = backendOnly, datasetRelated (e.g. dataset api url) var dataset = Dataset(metadataConfig, backend) metadata = id, title, url
dataset = Dataset(metadata = {}, backend_config={}) [dataset = CKANDataset(metdata)]
JC: i construct a dataset (and I don't need to know about backends ...) -- why wouldn't sufficient information to create / find its relevant backend.
Either in metadata:
url = backend url
api_url =
backend_type
At the moment only one backend can be in use at a given time. With a small amount of refactoring we can change this so sync switches on backend.
This would require Datasets to be configured with info about their relevant backend but this also a good idea in that we would then be able to do something like:
var dataset = new Dataset(); dataset.backend = { type: 'webstore', url: 'http://....' }
Which is cleaner and more intuitive than current setup (where you set dataset endpoints in backend!
This change owes much to discussion with @jamescasbon
Export / save options including:
You can use data URIs!
document.location.href = 'data:text/csv;charset=utf-8,' + encodeURIComponent(csvData);
Note IE8 & IE9 only allow data URIs for images: http://msdn.microsoft.com/en-us/library/cc848897(v=vs.85).aspx
Can only do this with HTML5 file apis and then only to a specific area (not anywhere on disk).
This thread http://stackoverflow.com/questions/2897619/using-html5-javascript-to-generate-and-save-a-file outlines some useful options including a data:uri hack that works for files < 256kb in FF and chrome and a mention of a flash app that can help: https://github.com/dcneiner/Downloadify
generate basic code docs with docco
Can already configure total number of rows / documents to show but also want to:
Questions:
Add in simple graph widget using flot to data explorer (can base it on one in http://github.com/okfn/dataexplorer)
Support for no visualization mode where no visualizations are disabled and hidden
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.