Backend b2note_api
upgraded to Python 3 and Eve framework. Frontend b2note_app
replaced by HTML,JS rendered by Aurelia JS and Webpack.
Changes addressed in this release:
- [BI-7] implement UI - Create annotation context - option to manually insert target URI (downloadable URI and landing page, i.e. human readable metadata or containing dataset/folder web page)
- [BI-8] implement UI - Search annotation context - variants of search dialogs - recursive dialog vs array vs dropdown (default) of items and last item dialog, prefferred way can be selected in account page
- [BI-9] implement UI - other context (Account,Help,Logout) - All sub pages are accessible by clicking small icon in header of annotation panel
- [BI-10] backend - extend validation to 'Annotation.target' - validation is made against schema upon newly inserted annotation
- [BI-11] Fix CI travis configuration for development branch - Travis CI now builds and test commit to any branches
- [BI-12] implement UI - download context - download is realized by creating Blob object, jsonld and rdf/nquads are supported by JS libraries
- [BI-13] enhance UI - Account context add ability to review/edit user info data for user - User now can review/edit it’s profile including nickname, annotator experience etc. in account tab
- [BI-14] implement AJAX api for UI context - AJAX api calls are concentrated in src/component/annotationapi.js - all subsequent component should use singleton of this component
- [BI-15] implement different options for web components - b2note can be integrated as custom-element following webcomponent standard. See Webcomponent section further.
- [BI-16] implement UI - dropdown search variant - dropdown search variant is default in search tab
- [BI-18] configure and enable automatic E2E tests - Protractor and Jasmine frameworks are used, see b2note_app tests
- [BI-19] implement UI - search annotations - query to backend API - query to backend API chained as API calls
- [BI-21] document Web Components usage in b2note documentation - new section howto integrate b2note as webcomponent is in b2note_app/README.md and in b2note documentation https://b2note-docs.readthedocs.io/en/latest/
- [BI-22] backend,frontend - protect POST request with OAUTH, B2ACCESS integration - B2ACCESS integration is default, Google auth was tested and is available. WSGI needs to explicitly allow authorization headers to pass - otherwise unauthorized is returned on each request, in apache conf: WSGIPassAuthorization On,
- [BI-23] install OpenAPI extension to EVE framework and [BI-31] frontend - generate UI for openapi docs - used swagger extension and added as /b2note/swagger-ui.html - https://b2note.bsc.es/b2note/swagger-ui.html
- [BI-24] implement UI - enable router-view in webcomponent - fixed. Now all tabs are rendered in webcomponent
- [BI-25] backend - configure WSGI - mod_wsgi changed in python3 - using distribution from pip, requires gcc during installation, old mod_wsgi needs to be disabled in apache configuration and new one configuration is simplified reffering venv from ‘python-home’
- [BI-26] deployment - update bootstrap scripts for oauth settings - devel-sample.sh script is created in B2NOTE-VirtualMachine and if coppied into devel.sh and modified settings for oauth, these are automatically used for local deployment in vagrant scripts
- [BI-28] frontend - add url parser to get target url and source params - annotation target source and id can be specified in GET request as parameters in form id=...&source=...&type=... e.g.: http://localhost/b2note/#/b2note_home/id=https:/someurl/sdf&source=http://someurl&type=SpecificResource
- [BI-29] frontend,backend - backward compatibility to POST request to interface_main.html - backward compatible POST request is implemented by python redirect service which translates post parameters to GET parameters as in task BI-28. Apache configuration forwards the POST calls to api
- [BI-30] frontend - finalize overview of my annotation and annotation about this file in home page - number of annotation per type and aggregation per tag are made in UI. Firts instance can be edited or deleted
- [BI-32] frontend - implement autocomplete feature when creating semantic tag - used to query SOLR index - reduced ammount of request and data transfer by at least 50-75%
- [BI-33] backend - disable oauth2 SSL validation for test instance - development instance of b2access certificate may expire - disabled in vagrant scripts. Left in dev and prod servers
- [BI-34] frontend - recommend semantic tag when keyword tag was found in index - shows existence and number of semantic tags if detected. If user selects ‘semantic’, UI is switched to ‘semantic’ and autocomplete is filled by previously found tags
- [BI-35] frontend - cache cause that annotation list is not updated after editing annotation - updated by specifying incremental parameter after each modification or edit, any request is cached by browser or updated if changes are made
- [BI-36] deployment - deploy RC to devel server for further testing - deployed in https://b2note.bsc.es
- [BI-37] frontend - login in iframe blocked - iframe login is made by pop up window, which after authentication sends message to parent iframe and is closed
- [BI-38] frontend - search dialog, update query, show results, autocomplete - autocomplete added into search tab - queries and results updated accordingly
- [BI-39] backend - migrate data and users cause errors - script to migrate user profiles introduced in upgrade/mongoupgrade-sample.sh. Routine detecting whether user needs migration after first login implemented in b2note_auth.py. Data filled by B2Note v1 may not be valid with schema - therefore UI triggers appropriate changes in src/components/annotations.js