Skip to content

Commit

Permalink
feat(@cubejs-client/playground): security context editing (#1986)
Browse files Browse the repository at this point in the history
* feat(@cubejs-client/playground): security context editing

* wip

* fixes

* fixes

* removed console logs

* final fixes

* remove unused hook
  • Loading branch information
vasilev-alex committed Feb 8, 2021
1 parent 988bfe5 commit 90f2365
Show file tree
Hide file tree
Showing 39 changed files with 615 additions and 249 deletions.
21 changes: 17 additions & 4 deletions examples/dynamic-angular-dashboard/src/app/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { APP_INITIALIZER, NgModule } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatTabsModule } from '@angular/material/tabs';
import { MatGridListModule } from '@angular/material/grid-list';
Expand Down Expand Up @@ -48,6 +48,13 @@ const cubejsOptions = {
},
};

export function cubejsClientFactory(http: HttpClient) {
return () =>
new Promise((resolve) => {
setTimeout(() => resolve({ token: '100500' }), 2000);
});
}

@NgModule({
declarations: [
AppComponent,
Expand All @@ -61,7 +68,7 @@ const cubejsOptions = {
SettingsDialogComponent,
AddToDashboardDialogComponent,
FilterGroupComponent,
FilterComponent
FilterComponent,
],
entryComponents: [SettingsDialogComponent, AddToDashboardDialogComponent],
imports: [
Expand All @@ -87,7 +94,7 @@ const cubejsOptions = {
MatListModule,
AppRoutingModule,
MatMenuModule,
GridsterModule
GridsterModule,
],
providers: [
QueryBuilderService,
Expand All @@ -96,6 +103,12 @@ const cubejsOptions = {
useFactory: () => apolloClient,
deps: [HttpLink],
},
{
provide: APP_INITIALIZER,
useFactory: cubejsClientFactory,
deps: [HttpClient],
multi: true,
},
],
bootstrap: [AppComponent],
})
Expand Down
4 changes: 2 additions & 2 deletions packages/cubejs-client-react/src/hooks/cube-query.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import CubeContext from '../CubeContext';
import isQueryPresent from '../isQueryPresent';
import useDeepCompareMemoize from './deep-compare-memoize';

export default (query, options = {}) => {
export default function useCubeQuery(query, options = {}) {
const mutexRef = useRef({});
const [currentQuery, setCurrentQuery] = useState(null);
const [isLoading, setLoading] = useState(false);
Expand Down Expand Up @@ -112,4 +112,4 @@ export default (query, options = {}) => {
error,
progress,
};
};
}
4 changes: 2 additions & 2 deletions packages/cubejs-playground/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ module.exports = {
2,
{
ignoreUrls: true,
ignoreComments: false,
ignoreComments: true,
ignoreRegExpLiterals: true,
ignoreStrings: true,
ignoreTemplateLiterals: true
ignoreTemplateLiterals: true,
}
],
'no-trailing-spaces': ['error', { skipBlankLines: true }],
Expand Down
6 changes: 0 additions & 6 deletions packages/cubejs-playground/charts-gen/react/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,6 @@ const packages = [
{
appPath: reactChartsPath,
packagesPath,
},
{
credentials: {
apiUrl: 'http://localhost:4000/cubejs-api/v1',
cubejsToken: 'secret',
},
}
);

Expand Down
1 change: 1 addition & 0 deletions packages/cubejs-playground/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"fast-deep-equal": "^3.1.3",
"fetch-retry": "^4.0.1",
"history": "^4.9.0",
"jwt-decode": "^3.1.2",
"less": "^3.10.3",
"less-loader": "^5.0.0",
"moment": "^2.24.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="en"><head><base href="/"/><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><link href="/chart-renderers/react/static/css/2.b1b7ac30.chunk.css" rel="stylesheet"><link href="/chart-renderers/react/static/css/main.85b3ce99.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],s=0,p=[];s<i.length;s++)a=i[s],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var c=t[i];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+"static/js/"+({}[e]||e)+"."+{3:"df7d2c1b"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/",a.oe=function(e){throw console.error(e),e};var i=this["webpackJsonpreact-charts"]=this["webpackJsonpreact-charts"]||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var f=c;t()}([])</script><script src="/chart-renderers/react/static/js/2.a95b5048.chunk.js"></script><script src="/chart-renderers/react/static/js/main.b116c057.chunk.js"></script></body></html>
<!doctype html><html lang="en"><head><base href="/"/><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><link href="/chart-renderers/react/static/css/2.1e081a10.chunk.css" rel="stylesheet"><link href="/chart-renderers/react/static/css/main.85b3ce99.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],s=0,p=[];s<i.length;s++)a=i[s],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var c=t[i];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+"static/js/"+({}[e]||e)+"."+{3:"991b9c57"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/",a.oe=function(e){throw console.error(e),e};var i=this["webpackJsonpreact-charts"]=this["webpackJsonpreact-charts"]||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var f=c;t()}([])</script><script src="/chart-renderers/react/static/js/2.6dab2d42.chunk.js"></script><script src="/chart-renderers/react/static/js/main.0edc5849.chunk.js"></script></body></html>

Large diffs are not rendered by default.

This file was deleted.

Large diffs are not rendered by default.

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Large diffs are not rendered by default.

This file was deleted.

0 comments on commit 90f2365

Please sign in to comment.