diff --git a/qcms-manifest.json b/qcms-manifest.json index ff389c5..630db5c 100644 --- a/qcms-manifest.json +++ b/qcms-manifest.json @@ -22,14 +22,15 @@ } ], "header": { - "title": "Data Transport", + "title": "Data Wrangler Workbench", "subtitle": "Open Workbench: Read, write & wrangle data"}, "index": "index.html", "on": { "load": { "pane": [ "www/html/menu.html" - ] + ], + "studio-intro":["www/html/about.html"] } }, "order": { @@ -45,7 +46,7 @@ "apply", "version" ], - "register":["get","add"], + "register":["get","add","technologies"], "io": [ "read", "open", "write" ] diff --git a/www/html/_assets/images/python.png b/www/html/_assets/images/python.png index 6cd76a9..fa09908 100644 Binary files a/www/html/_assets/images/python.png and b/www/html/_assets/images/python.png differ diff --git a/www/html/_assets/js/studio.js b/www/html/_assets/js/studio.js index b922c6d..753f2eb 100644 --- a/www/html/_assets/js/studio.js +++ b/www/html/_assets/js/studio.js @@ -351,6 +351,7 @@ studio.frame = function (_args){ } }) + _pythonCode = ('
') _openFile = $('
') $(_openFile).on('click',()=>{ var _id = '.'+_args.label+' .open-file' @@ -391,8 +392,8 @@ studio.frame = function (_args){ spreadsheet.refresh() }) - var _buttons = $('
 
') - _buttons.append(_openFile,_saveFile,_wizButton,_xbutton,_expandButton) + var _buttons = $('
 
') + _buttons.append(_pythonCode,_openFile,_saveFile,_wizButton,_xbutton,_expandButton) // _frame = $('
'.replace(/:label/,this._args.label)) var _frame = $('
') .addClass(this._args.label) diff --git a/www/html/_plugins/io.py b/www/html/_plugins/io.py index b6d4c87..1654e69 100644 --- a/www/html/_plugins/io.py +++ b/www/html/_plugins/io.py @@ -10,6 +10,7 @@ import numpy as np import json import base64 from flask import make_response, send_file +import copy @cms.Plugin(mimetype="application/json",method="POST") def read(**_args) : @@ -48,6 +49,9 @@ def open(**_args): return spreadsheet #{"Workbook":{"sheets":[{"usedRange":{"colIndex":1,"rowIndex":3},"name":"Sheet1","rows":[{"cells":[{"value":"name"},{"value":"age"}]},{"cells":[{"value":"steve"},{"value":"44"}]},{"cells":[{"value":"elon"},{"value":"9"}]},{"cells":[{"value":"nico"},{"value":"33"}]}],"standardHeight":20}]}}) @cms.Plugin(mimetype="application/octet-stream",method="POST") def write(**_args) : + """ + This functon generates an excel file, by returning the encoded 64bit stream + """ _request = _args['request'] _object = _request.json _sheets = None @@ -69,4 +73,9 @@ def write(**_args) : # Write each DataFrame to a different sheet _excelFile.seek(0) _stream= _excelFile.read() #send_file(_excelFile,as_attachment=True,download_name=f'{_label}-export.xlsx', mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') - return base64.b64encode(_stream).decode('utf-8') \ No newline at end of file + return base64.b64encode(_stream).decode('utf-8') + +@cms.Plugin(mimetype="text/plain") +def version (**_args) : + return transport.__edition__+ ' Edition '+transport.__version__ + diff --git a/www/html/_plugins/register.py b/www/html/_plugins/register.py index f40bf11..ea0b33a 100644 --- a/www/html/_plugins/register.py +++ b/www/html/_plugins/register.py @@ -16,7 +16,6 @@ def get (**_args) : for _key in _data : if _key not in ['default','email','version'] : - print (_key) _provider = _data[_key]['provider'] _name = None if 'table' in _data[_key] : @@ -49,3 +48,7 @@ def add(**_args): # # now we can/should get the rest of the list return get(**_args) + +@cms.Plugin(mimetype="application/json",method="GET") +def technologies(**_args): + return transport.supported().to_html(index=0) \ No newline at end of file diff --git a/www/html/about.html b/www/html/about.html index 24268d6..b7dfa7b 100644 --- a/www/html/about.html +++ b/www/html/about.html @@ -1,6 +1,120 @@ + + + + +
+
+

Supported Technologies

+
+
+ +
+
+
+ +
+ Your system is missing a database registry +
Click + + here to get started +
+
+

+ Credit +

+ +

+

License

+ +

+

+

Component Attribution

+

+ +
+
\ No newline at end of file diff --git a/www/html/index.html b/www/html/index.html index efd4fa9..0bf36a5 100644 --- a/www/html/index.html +++ b/www/html/index.html @@ -45,15 +45,22 @@ var http = HttpClient.instance() uri = 'api/dbe/version' http.get(uri,(x)=>{ - var _html = ('
data-transport '+x.responseText+'
') + var _html = ('
Powered By data-transport '+x.responseText+'
') $ $('.footer').html(_html) + sessionStorage.wb_powered = x.responseText }) } + $(document).ready(function (){ + $('.studio-pane').css({display:'none'}) Initialize() $('.footer').css({'grid-template-columns':'100%','font-weight':'bold'}) }) -
\ No newline at end of file + +
+
+
+
\ No newline at end of file diff --git a/www/html/menu.html b/www/html/menu.html index ef49be0..b77c059 100644 --- a/www/html/menu.html +++ b/www/html/menu.html @@ -41,7 +41,11 @@ $('.search-results .labels').empty() http.get(uri,function (x){ var labels = JSON.parse(x.responseText) - + if (labels.length == 0){ + $('.get-started').css({display:'grid'}) + }else{ + $('.get-started').css({display:'none'}) + } labels.forEach(_data => { _icon = $('').attr('src',_data.icon) //'www/html/_assets/images/'+_data.provider+'.png') @@ -55,6 +59,7 @@ // $('.studio').slideUp('fast',()=>{ // }) + $('.studio-pane').css({display:'grid'}) if ($(_id).length == 0){ // _object = new studio.frame(this._data) // _object.render() @@ -64,7 +69,10 @@ } // var _label = this._data.label - this.work_bench.show() + $('.studio-intro').slideUp(()=>{ + this.work_bench.show() + }) + } $('.search-results .labels').append(_div) @@ -146,7 +154,7 @@

- Create a new database connection + Create a new database connection
@@ -157,8 +165,5 @@
-
- Credits & Thanks -
Attributions -

+
\ No newline at end of file diff --git a/www/html/wizard.html b/www/html/wizard.html index 92412a3..19850cb 100644 --- a/www/html/wizard.html +++ b/www/html/wizard.html @@ -26,20 +26,6 @@ var form = new ProviderInputForm(_provider) form.build('.db-form-input') - // $('.db-provider').slideUp('fast',function(){ - // $('.db-form').slideDown() - // _title = '.::. '+_provider - // $('.db-form-title').html(_title) - // $('.db-form-title').attr('provider',_provider) - // if (_provider.match(/sqlite|duckdb|databricks|bigquery/)){ - // $('.db-form .database').attr('placeholder','Absolute to database') - // if (_provider.match(/databricks|bigquery/)){ - // $('.db-form .database').attr('placeholder','Absolute to service account file') - // } - // $('.db-form .server').slideUp() - // $('.db-form .auth').slideUp() - // } - // }) })