diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-12-15 22:47:28 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-12-15 22:47:28 +0100 |
| commit | a53a598461a25e8bf1d0bd3e63c47642e3213aef (patch) | |
| tree | 25fd8abc3d5ad1bbef9eeb96d86e0170d6f55dc6 | |
| parent | f91c6d8e870bd3b2c69a130e4b1ed8f6be250b92 (diff) | |
client stuff
| -rw-r--r-- | client/actions.js | 8 | ||||
| -rw-r--r-- | client/index.js | 60 | ||||
| -rw-r--r-- | client/session.js | 6 | ||||
| -rw-r--r-- | client/store.js | 26 | ||||
| -rw-r--r-- | client/util.js | 2 | ||||
| -rw-r--r-- | megapixels/app/server/api.py | 26 | ||||
| -rw-r--r-- | megapixels/cli_flask.py | 1 | ||||
| -rw-r--r-- | site/templates/research.html | 4 |
8 files changed, 98 insertions, 35 deletions
diff --git a/client/actions.js b/client/actions.js index ba899f06..3fd86e0d 100644 --- a/client/actions.js +++ b/client/actions.js @@ -1,9 +1,9 @@ import * as search from './search/search.actions' -import * as review from './review/review.actions' -import * as metadata from './metadata/metadata.actions' +// import * as review from './review/review.actions' +// import * as metadata from './metadata/metadata.actions' export { search, - review, - metadata, + // review, + // metadata, } diff --git a/client/index.js b/client/index.js index eddc5fb2..03015988 100644 --- a/client/index.js +++ b/client/index.js @@ -3,17 +3,55 @@ import ReactDOM from 'react-dom' import { AppContainer } from 'react-hot-loader' import { Provider } from 'react-redux' -import App from './app' +// import App from './app' -import { store, history } from './store' +import { store } from './store' -const container = document.createElement('div') -document.body.appendChild(container) +// const container = document.createElement('div') +// document.body.appendChild(container) -ReactDOM.render( - <AppContainer> - <Provider store={store}> - <App history={history} /> - </Provider> - </AppContainer>, container -) +toArray(document.querySelectorAll('.applet')).forEach(el => { + try { + const payload = JSON.parse(el.dataSet.getItem('payload')) + } catch(e) { + return + } + switch (payload.command) { + case 'load file': + append_tabulator(el, payload) + break + default: + append_react_applet(el, payload) + break + } +}) + +function append_react_applet(el, payload) { + ReactDOM.render( + <AppContainer> + <Provider store={store}> + <App command={payload} /> + </Provider> + </AppContainer>, el + ) +} +function append_tabulator(el, payload) { + const table = new Tabulator(el, { + height:"311px", + layout:"fitColumns", + placeholder:"No Data Set", + columns:[ + // {title:"Name", field:"name", sorter:"string", width:200}, + // {title:"Progress", field:"progress", sorter:"number", formatter:"progress"}, + // {title:"Gender", field:"gender", sorter:"string"}, + // {title:"Rating", field:"rating", formatter:"star", align:"center", width:100}, + // {title:"Favourite Color", field:"col", sorter:"string", sortable:false}, + // {title:"Date Of Birth", field:"dob", sorter:"date", align:"center"}, + // {title:"Driver", field:"car", align:"center", formatter:"tickCross", sorter:"boolean"}, + ], + }) + const columns = payload.fields.split(', ') + console.log(columns) + if () + table.setData(path) +}
\ No newline at end of file diff --git a/client/session.js b/client/session.js index 5bfae7eb..0fae31d2 100644 --- a/client/session.js +++ b/client/session.js @@ -1,5 +1,5 @@ -import Storage from 'store2' +// import Storage from 'store2' -const session = Storage.namespace('vcat.search') +// const session = Storage.namespace('vcat.search') -export default session +// export default session diff --git a/client/store.js b/client/store.js index 043af351..9c0f78cd 100644 --- a/client/store.js +++ b/client/store.js @@ -1,30 +1,25 @@ import { applyMiddleware, compose, combineReducers, createStore } from 'redux' -import { connectRouter, routerMiddleware } from 'connected-react-router' -import { createBrowserHistory } from 'history' import thunk from 'redux-thunk' -import { login } from './util' -import metadataReducer from './metadata/metadata.reducer' -import searchReducer from './search/search.reducer' -import reviewReducer from './review/review.reducer' +// import metadataReducer from './metadata/metadata.reducer' +// import searchReducer from './search/search.reducer' +// import reviewReducer from './review/review.reducer' const rootReducer = combineReducers({ - auth: (state = login()) => state, - metadata: metadataReducer, - search: searchReducer, - review: reviewReducer, + // auth: (state = login()) => state, + // metadata: metadataReducer, + // search: searchReducer, + // review: reviewReducer, }) -function configureStore(initialState = {}, history) { +function configureStore(initialState = {}) { const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose const store = createStore( - connectRouter(history)(rootReducer), // new root reducer with router state initialState, composeEnhancers( applyMiddleware( thunk, - routerMiddleware(history) ), ), ) @@ -32,7 +27,6 @@ function configureStore(initialState = {}, history) { return store } -const history = createBrowserHistory() -const store = configureStore({}, history) +const store = configureStore({}) -export { store, history } +export { store } diff --git a/client/util.js b/client/util.js index ad303c64..92b4addc 100644 --- a/client/util.js +++ b/client/util.js @@ -6,6 +6,8 @@ export const isAndroid = !!(navigator.userAgent.match(/Android/i)) export const isMobile = isiPhone || isiPad || isAndroid export const isDesktop = !isMobile +export const toArray = a => Array.prototype.slice.apply(a) + const htmlClassList = document.body.parentNode.classList htmlClassList.add(isDesktop ? 'desktop' : 'mobile') diff --git a/megapixels/app/server/api.py b/megapixels/app/server/api.py index c5e27dd2..cd2b950b 100644 --- a/megapixels/app/server/api.py +++ b/megapixels/app/server/api.py @@ -23,8 +23,10 @@ def show(name): else: return jsonify({ 'status': 404 }) -@api.route('/dataset/<dataset>/face', methods=['POST']) +@api.route('/dataset/<name>/face', methods=['POST']) def upload(name): + start = time.time() + dataset = get_dataset(name) file = request.files['query_img'] fn = file.filename if fn.endswith('blob'): @@ -42,6 +44,28 @@ def upload(name): # print(vec.shape) # results = db.search(vec, limit=limit) + # with the result we have an ID + # query the sql dataset for the UUID etc here + + query = { + 'timing': time.time() - start, + } + results = [] + + print(results) + return jsonify({ + 'query': query, + 'results': results, + }) + +@api.route('/dataset/<name>/name', methods=['GET']) +def name_lookup(dataset): + start = time.time() + dataset = get_dataset(name) + + # we have a query from the request query string... + # use this to do a like* query on the identities_meta table + query = { 'timing': time.time() - start, } diff --git a/megapixels/cli_flask.py b/megapixels/cli_flask.py index 369bec01..e80526c6 100644 --- a/megapixels/cli_flask.py +++ b/megapixels/cli_flask.py @@ -1,5 +1,6 @@ # -------------------------------------------------------- # wrapper for flask CLI API +# NB: python cli_flask.py run # -------------------------------------------------------- import click diff --git a/site/templates/research.html b/site/templates/research.html index 0bb9fa30..b2ea3a6b 100644 --- a/site/templates/research.html +++ b/site/templates/research.html @@ -21,3 +21,7 @@ {{ content }} {% endblock %} + +{% block scripts %} +<script src="/assets/js/applets.js"></script> +{% endblock %}
\ No newline at end of file |
