@nu-art/bug-report-frontend 0.400.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/module-pack.d.ts +3 -0
- package/core/module-pack.js +25 -0
- package/index.d.ts +2 -0
- package/index.js +20 -0
- package/modules/ModuleFE_BugReport.d.ts +12 -0
- package/modules/ModuleFE_BugReport.js +43 -0
- package/modules/ModuleFE_BugReportAdmin.d.ts +13 -0
- package/modules/ModuleFE_BugReportAdmin.js +60 -0
- package/package.json +75 -0
- package/ui/AdminBR.d.ts +8 -0
- package/ui/AdminBR.js +40 -0
- package/ui/BugReport.d.ts +1 -0
- package/ui/BugReport.js +218 -0
- package/ui/Dialog_JiraOpened.d.ts +1 -0
- package/ui/Dialog_JiraOpened.js +55 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const ModulePack_Frontend_BugReport: (import("../modules/ModuleFE_BugReport.js").ModuleFE_BugReport_Class | import("../modules/ModuleFE_BugReportAdmin.js").ModuleFE_BugReportAdmin_Class)[];
|
|
2
|
+
export * from '../modules/ModuleFE_BugReport.js';
|
|
3
|
+
export * from '../modules/ModuleFE_BugReportAdmin.js';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Allow the user to file a bug report directly from your app
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { ModuleFE_BugReport } from '../modules/ModuleFE_BugReport.js';
|
|
19
|
+
import { ModuleFE_BugReportAdmin } from '../modules/ModuleFE_BugReportAdmin.js';
|
|
20
|
+
export const ModulePack_Frontend_BugReport = [
|
|
21
|
+
ModuleFE_BugReport,
|
|
22
|
+
ModuleFE_BugReportAdmin
|
|
23
|
+
];
|
|
24
|
+
export * from '../modules/ModuleFE_BugReport.js';
|
|
25
|
+
export * from '../modules/ModuleFE_BugReportAdmin.js';
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Permissions management system, define access level for each of
|
|
3
|
+
* your server apis, and restrict users by giving them access levels
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
export * from './core/module-pack.js';
|
|
20
|
+
export * from './ui/AdminBR.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Module } from '@nu-art/ts-common';
|
|
2
|
+
import { ApiDefCaller } from '@nu-art/thunderstorm-shared';
|
|
3
|
+
import { ApiStruct_BugReport } from '@nu-art/bug-report-shared/api';
|
|
4
|
+
export declare const RequestKey_BugReportApi = "BugReport";
|
|
5
|
+
export declare class ModuleFE_BugReport_Class extends Module {
|
|
6
|
+
private readonly reports;
|
|
7
|
+
readonly v1: ApiDefCaller<ApiStruct_BugReport>['v1'];
|
|
8
|
+
constructor();
|
|
9
|
+
protected init(): void;
|
|
10
|
+
private sendBugReportCallback;
|
|
11
|
+
}
|
|
12
|
+
export declare const ModuleFE_BugReport: ModuleFE_BugReport_Class;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Allow the user to file a bug report directly from your app
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { addItemToArray, BeLogged, LogClient_MemBuffer, LogLevel, LogLevelOrdinal, Module } from '@nu-art/ts-common';
|
|
19
|
+
import { apiWithBody } from '@nu-art/thunderstorm-frontend/index';
|
|
20
|
+
import { ApiDef_BugReport } from '@nu-art/bug-report-shared/api';
|
|
21
|
+
export const RequestKey_BugReportApi = 'BugReport';
|
|
22
|
+
export class ModuleFE_BugReport_Class extends Module {
|
|
23
|
+
reports = [];
|
|
24
|
+
v1;
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
addItemToArray(this.reports, new LogClient_MemBuffer('default'));
|
|
28
|
+
addItemToArray(this.reports, new LogClient_MemBuffer('info')
|
|
29
|
+
.setFilter(level => LogLevelOrdinal.indexOf(level) >= LogLevelOrdinal.indexOf(LogLevel.Info)));
|
|
30
|
+
this.v1 = {
|
|
31
|
+
sendBugReport: apiWithBody(ApiDef_BugReport.v1.sendBugReport, this.sendBugReportCallback),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
init() {
|
|
35
|
+
this.reports.forEach(report => BeLogged.addClient(report));
|
|
36
|
+
}
|
|
37
|
+
sendBugReportCallback = async (response) => {
|
|
38
|
+
// const jiraTicket = response.find(ticket => ticket.platform === Platform_Jira);
|
|
39
|
+
// if(jiraTicket)
|
|
40
|
+
// Dialog_JiraOpened.show(jiraTicket.issueId)
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export const ModuleFE_BugReport = new ModuleFE_BugReport_Class();
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Module } from '@nu-art/ts-common';
|
|
2
|
+
import { ApiDefCaller } from '@nu-art/thunderstorm-shared';
|
|
3
|
+
import { ApiStruct_AdminBugReport, DB_BugReport, ReportLogFile } from '@nu-art/bug-report-shared/api';
|
|
4
|
+
export declare const RequestKey_GetLog = "GetLog";
|
|
5
|
+
export declare const RequestKey_PostPath = "PostPath";
|
|
6
|
+
export declare class ModuleFE_BugReportAdmin_Class extends Module {
|
|
7
|
+
readonly v1: ApiDefCaller<ApiStruct_AdminBugReport>['v1'];
|
|
8
|
+
constructor();
|
|
9
|
+
private logs;
|
|
10
|
+
downloadMultiLogs: (reports: ReportLogFile[]) => void;
|
|
11
|
+
getLogs: () => DB_BugReport[];
|
|
12
|
+
}
|
|
13
|
+
export declare const ModuleFE_BugReportAdmin: ModuleFE_BugReportAdmin_Class;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Allow the user to file a bug report directly from your app
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { Module } from '@nu-art/ts-common';
|
|
19
|
+
import { apiWithBody, apiWithQuery } from '@nu-art/thunderstorm-frontend/index';
|
|
20
|
+
import { ApiDef_AdminBugReport } from '@nu-art/bug-report-shared/api';
|
|
21
|
+
export const RequestKey_GetLog = 'GetLog';
|
|
22
|
+
export const RequestKey_PostPath = 'PostPath';
|
|
23
|
+
export class ModuleFE_BugReportAdmin_Class extends Module {
|
|
24
|
+
v1;
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
this.v1 = {
|
|
28
|
+
downloadLogs: apiWithBody(ApiDef_AdminBugReport.v1.downloadLogs),
|
|
29
|
+
retrieveLogs: apiWithQuery(ApiDef_AdminBugReport.v1.retrieveLogs),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
logs = [];
|
|
33
|
+
// public retrieveLogs = () => {
|
|
34
|
+
// this.logInfo('getting logs from firestore...');
|
|
35
|
+
// ModuleFE_XHR
|
|
36
|
+
// .createRequest<ApiGetLog>(HttpMethod.GET, RequestKey_GetLog)
|
|
37
|
+
// .setRelativeUrl('v1/bug-reports/get-logs')
|
|
38
|
+
// .setOnError(`Error getting new message from backend`)
|
|
39
|
+
// .execute(async response => {
|
|
40
|
+
// this.logs = response;
|
|
41
|
+
// });
|
|
42
|
+
//
|
|
43
|
+
// this.logInfo('continue... will receive an event once request is completed..');
|
|
44
|
+
// };
|
|
45
|
+
// public downloadLogs = (path: string) => {
|
|
46
|
+
// this.logInfo('downloading the logs to the client..');
|
|
47
|
+
// const bodyObject: Paths = {path: path};
|
|
48
|
+
// ModuleFE_XHR
|
|
49
|
+
// .createRequest<ApiPostPath>(HttpMethod.POST, RequestKey_PostPath)
|
|
50
|
+
// .setBodyAsJson(bodyObject)
|
|
51
|
+
// .setRelativeUrl('v1/bug-reports/download-logs')
|
|
52
|
+
// .setOnError(`Error getting new message from backend`)
|
|
53
|
+
// .execute();
|
|
54
|
+
// };
|
|
55
|
+
downloadMultiLogs = (reports) => {
|
|
56
|
+
reports.forEach(report => this.v1.downloadLogs({ path: report.path }).execute());
|
|
57
|
+
};
|
|
58
|
+
getLogs = () => this.logs;
|
|
59
|
+
}
|
|
60
|
+
export const ModuleFE_BugReportAdmin = new ModuleFE_BugReportAdmin_Class();
|
package/package.json
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nu-art/bug-report-frontend",
|
|
3
|
+
"version": "0.400.7",
|
|
4
|
+
"description": "Bug Report Frontend",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"TacB0sS",
|
|
7
|
+
"express",
|
|
8
|
+
"infra",
|
|
9
|
+
"bug-report",
|
|
10
|
+
"nu-art",
|
|
11
|
+
"thunderstorm",
|
|
12
|
+
"typescript"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://github.com/nu-art-js/bug-report",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/nu-art-js/bug-report/issues"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+ssh://git@github.com:nu-art-js/bug-report.git"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"directory": "dist",
|
|
24
|
+
"linkDirectory": true
|
|
25
|
+
},
|
|
26
|
+
"license": "Apache-2.0",
|
|
27
|
+
"author": "TacB0sS",
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@nu-art/bug-report-shared": "0.400.7",
|
|
33
|
+
"@nu-art/firebase-frontend": "0.400.7",
|
|
34
|
+
"@nu-art/firebase-shared": "0.400.7",
|
|
35
|
+
"@nu-art/jira-shared": "0.400.7",
|
|
36
|
+
"@nu-art/slack-frontend": "0.400.7",
|
|
37
|
+
"@nu-art/slack-shared": "0.400.7",
|
|
38
|
+
"@nu-art/thunderstorm-frontend": "0.400.7",
|
|
39
|
+
"@nu-art/thunderstorm-shared": "0.400.7",
|
|
40
|
+
"@nu-art/ts-common": "0.400.7",
|
|
41
|
+
"@nu-art/user-account-frontend": "0.400.7",
|
|
42
|
+
"@nu-art/user-account-shared": "0.400.7",
|
|
43
|
+
"express": "^4.18.2",
|
|
44
|
+
"firebase": "^11.9.0",
|
|
45
|
+
"firebase-admin": "13.4.0",
|
|
46
|
+
"jszip": "^3.3.0",
|
|
47
|
+
"moment": "^2.29.4",
|
|
48
|
+
"react": "^18.0.0",
|
|
49
|
+
"react-dom": "^18.0.0",
|
|
50
|
+
"react-router-dom": "^6.9.0",
|
|
51
|
+
"request": "^2.88.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/express": "^4.17.17",
|
|
55
|
+
"@types/file-saver": "^2.0.1",
|
|
56
|
+
"@types/history": "^4.7.2",
|
|
57
|
+
"@types/jszip": "^3.1.7",
|
|
58
|
+
"@types/react": "^18.0.0",
|
|
59
|
+
"@types/request": "^2.48.1"
|
|
60
|
+
},
|
|
61
|
+
"unitConfig": {
|
|
62
|
+
"type": "typescript-lib"
|
|
63
|
+
},
|
|
64
|
+
"type": "module",
|
|
65
|
+
"exports": {
|
|
66
|
+
".": {
|
|
67
|
+
"types": "./index.d.ts",
|
|
68
|
+
"import": "./index.js"
|
|
69
|
+
},
|
|
70
|
+
"./*": {
|
|
71
|
+
"types": "./*.d.ts",
|
|
72
|
+
"import": "./*.js"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
package/ui/AdminBR.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ComponentSync } from '@nu-art/thunderstorm-frontend/index';
|
|
2
|
+
import { OnRequestListener } from '@nu-art/thunderstorm-shared';
|
|
3
|
+
export declare class AdminBR extends ComponentSync implements OnRequestListener {
|
|
4
|
+
protected deriveStateFromProps(nextProps: any): any;
|
|
5
|
+
render(): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
private createRow;
|
|
7
|
+
__onRequestCompleted: (key: string, success: boolean) => void;
|
|
8
|
+
}
|
package/ui/AdminBR.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Permissions management system, define access level for each of
|
|
4
|
+
* your server apis, and restrict users by giving them access levels
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
* you may not use this file except in compliance with the License.
|
|
10
|
+
* You may obtain a copy of the License at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
* See the License for the specific language governing permissions and
|
|
18
|
+
* limitations under the License.
|
|
19
|
+
*/
|
|
20
|
+
import { ComponentSync, } from '@nu-art/thunderstorm-frontend/index';
|
|
21
|
+
import { __stringify } from '@nu-art/ts-common';
|
|
22
|
+
import { ModuleFE_BugReportAdmin, RequestKey_GetLog } from '../modules/ModuleFE_BugReportAdmin.js';
|
|
23
|
+
export class AdminBR extends ComponentSync {
|
|
24
|
+
deriveStateFromProps(nextProps) {
|
|
25
|
+
return { ...nextProps };
|
|
26
|
+
}
|
|
27
|
+
render() {
|
|
28
|
+
const logs = ModuleFE_BugReportAdmin.getLogs();
|
|
29
|
+
return (_jsxs("div", { children: [_jsx("button", { onClick: () => ModuleFE_BugReportAdmin.v1.retrieveLogs({}).execute(), children: "click to display logs" }), _jsx("div", { children: _jsx("table", { style: { width: '100%' }, children: logs.map(this.createRow) }) })] }));
|
|
30
|
+
}
|
|
31
|
+
createRow = (report) => _jsxs("tr", { children: [_jsx("td", { style: { padding: '15px', textAlign: 'left', border: '1px solid #ddd', fontSize: '15px' }, children: report.description }), _jsx("td", { style: { padding: '15px', textAlign: 'left', border: '1px solid #ddd', fontSize: '15px' }, children: report.reports[0].path }), _jsx("td", { style: { padding: '15px', textAlign: 'left', border: '1px solid #ddd', fontSize: '15px' }, children: __stringify(report.tickets) }), _jsx("td", { style: { padding: '15px', textAlign: 'left', border: '1px solid #ddd', fontSize: '15px' }, children: _jsx("button", { onClick: () => ModuleFE_BugReportAdmin.downloadMultiLogs(report.reports), children: "download" }) })] });
|
|
32
|
+
__onRequestCompleted = (key, success) => {
|
|
33
|
+
switch (key) {
|
|
34
|
+
default:
|
|
35
|
+
return;
|
|
36
|
+
case RequestKey_GetLog:
|
|
37
|
+
this.forceUpdate();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/ui/BugReport.js
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
// /*
|
|
3
|
+
// * Permissions management system, define access level for each of
|
|
4
|
+
// * your server apis, and restrict users by giving them access levels
|
|
5
|
+
// *
|
|
6
|
+
// * Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
7
|
+
// *
|
|
8
|
+
// * Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
// * you may not use this file except in compliance with the License.
|
|
10
|
+
// * You may obtain a copy of the License at
|
|
11
|
+
// *
|
|
12
|
+
// * http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
// *
|
|
14
|
+
// * Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
// * distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
// * See the License for the specific language governing permissions and
|
|
18
|
+
// * limitations under the License.
|
|
19
|
+
// */
|
|
20
|
+
//
|
|
21
|
+
// import * as React from 'react';
|
|
22
|
+
// import {CSSProperties} from 'react';
|
|
23
|
+
// import {BugReportModule} from '../modules/BugReportModule.js';
|
|
24
|
+
// import {ModuleFE_Dialog, ModuleFE_Toaster, TS_Input, TS_TextArea} from '@nu-art/thunderstorm-frontend/index';
|
|
25
|
+
// import {generateHex} from '@nu-art/ts-common';
|
|
26
|
+
// import {Platform_Jira, Platform_Slack} from '@nu-art/bug-report-shared/api';
|
|
27
|
+
//
|
|
28
|
+
// type Props = {
|
|
29
|
+
// shared-components?: React.ReactNode
|
|
30
|
+
// }
|
|
31
|
+
// const style: React.CSSProperties = {
|
|
32
|
+
// cursor: 'pointer',
|
|
33
|
+
// display: 'flex',
|
|
34
|
+
// alignItems: 'center',
|
|
35
|
+
// justifyContent: 'center',
|
|
36
|
+
// position: 'fixed',
|
|
37
|
+
// width: '50px',
|
|
38
|
+
// height: '50px',
|
|
39
|
+
// bottom: '30px',
|
|
40
|
+
// right: '10px',
|
|
41
|
+
// backgroundColor: '#5b7bd6',
|
|
42
|
+
// color: 'white',
|
|
43
|
+
// borderRadius: '50%',
|
|
44
|
+
// borderColor: 'transparent'
|
|
45
|
+
// };
|
|
46
|
+
// type State = {
|
|
47
|
+
// error?: Error,
|
|
48
|
+
// errorInfo?: React.ErrorInfo
|
|
49
|
+
// description?: string
|
|
50
|
+
// subject?: string
|
|
51
|
+
// }
|
|
52
|
+
//
|
|
53
|
+
// export class BugReport
|
|
54
|
+
// extends React.Component<Props, State> {
|
|
55
|
+
//
|
|
56
|
+
// constructor(props: Props) {
|
|
57
|
+
// super(props);
|
|
58
|
+
// this.state = {};
|
|
59
|
+
// }
|
|
60
|
+
//
|
|
61
|
+
// componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
|
|
62
|
+
// BugReportModule.sendBugReport('Automatic submission', 'these logs were triggered by a UI failure', [Platform_Slack]);
|
|
63
|
+
// this.setState({
|
|
64
|
+
// error: error,
|
|
65
|
+
// errorInfo: errorInfo
|
|
66
|
+
// });
|
|
67
|
+
// }
|
|
68
|
+
//
|
|
69
|
+
// showAppConfirmationDialogExample = () => {
|
|
70
|
+
// const title = 'Bug Report';
|
|
71
|
+
//
|
|
72
|
+
// const onSubmit = () => {
|
|
73
|
+
// if (!this.state.subject)
|
|
74
|
+
// return ModuleFE_Toaster.toastError('you must first add a subject');
|
|
75
|
+
// if (!this.state.description)
|
|
76
|
+
// return ModuleFE_Toaster.toastError('you must first add a description');
|
|
77
|
+
// BugReportModule.sendBugReport(this.state.subject, this.state.description || '', [Platform_Jira]);
|
|
78
|
+
// this.setState({subject: undefined, description: undefined});
|
|
79
|
+
// ModuleFE_Dialog.close();
|
|
80
|
+
// };
|
|
81
|
+
//
|
|
82
|
+
// const content =
|
|
83
|
+
// <div className={'ll_v_c'}>
|
|
84
|
+
// <div style={{
|
|
85
|
+
// border: `1px solid darkslategray`,
|
|
86
|
+
// marginBottom: '5px',
|
|
87
|
+
// width: '91%',
|
|
88
|
+
// margin: '8px'
|
|
89
|
+
// }}>
|
|
90
|
+
// <TS_Input
|
|
91
|
+
// id={'bug-report-subject'}
|
|
92
|
+
// type={'text'}
|
|
93
|
+
// value={this.state.subject || ''}
|
|
94
|
+
// placeholder={'type bug name here'}
|
|
95
|
+
// name={generateHex(8)}
|
|
96
|
+
// onChange={(subject: string) => this.setState({subject})}
|
|
97
|
+
// />
|
|
98
|
+
// </div>
|
|
99
|
+
// <TS_TextArea
|
|
100
|
+
// id={'bug-report-description'}
|
|
101
|
+
// type="text"
|
|
102
|
+
// style={{height: '110px', margin: '8px', width: '100%', outline: 'none'}}
|
|
103
|
+
// value={this.state.description || ''}
|
|
104
|
+
// placeholder={'type bug description here'}
|
|
105
|
+
// onChange={(description: string) => this.setState({description})}/>
|
|
106
|
+
// </div>;
|
|
107
|
+
//
|
|
108
|
+
//
|
|
109
|
+
// // new Dialog_Builder(content)
|
|
110
|
+
// // .setTitle(title)
|
|
111
|
+
// // .addButton(DialogButton_Cancel(() => {
|
|
112
|
+
// // this.setState({description: undefined, subject: undefined});
|
|
113
|
+
// // ModuleFE_Dialog.close();
|
|
114
|
+
// // }))
|
|
115
|
+
// // .addButton(DialogButton_Submit(() => onSubmit(), 'Submit'))
|
|
116
|
+
// // .setOverlayColor('rgba(102, 255, 255, 0.4)')
|
|
117
|
+
// // .show();
|
|
118
|
+
// };
|
|
119
|
+
//
|
|
120
|
+
// render() {
|
|
121
|
+
// if (this.state.errorInfo) {
|
|
122
|
+
// return (
|
|
123
|
+
// <div>
|
|
124
|
+
// <h2>Something went wrong!!</h2>
|
|
125
|
+
// <details style={{whiteSpace: 'pre-wrap'}}>
|
|
126
|
+
// {this.state.error && this.state.error.toString()}
|
|
127
|
+
// <br/>
|
|
128
|
+
// {this.state.errorInfo.componentStack}
|
|
129
|
+
// </details>
|
|
130
|
+
// <button style={style} onClick={() => window.location.reload()}>reload!</button>
|
|
131
|
+
// </div>
|
|
132
|
+
// );
|
|
133
|
+
// }
|
|
134
|
+
//
|
|
135
|
+
// return (
|
|
136
|
+
// <>
|
|
137
|
+
// {this.props.children}
|
|
138
|
+
// <div
|
|
139
|
+
// onClick={this.showAppConfirmationDialogExample}>
|
|
140
|
+
// {this.props.shared-components ||
|
|
141
|
+
// <button style={style}>+</button>}
|
|
142
|
+
// </div>
|
|
143
|
+
// </>
|
|
144
|
+
// );
|
|
145
|
+
// }
|
|
146
|
+
// }
|
|
147
|
+
//
|
|
148
|
+
//
|
|
149
|
+
// //todo To remove:
|
|
150
|
+
//
|
|
151
|
+
// export class DialogButton_Builder
|
|
152
|
+
// extends StylableBuilder {
|
|
153
|
+
//
|
|
154
|
+
// content!: React.ReactNode;
|
|
155
|
+
// action!: () => void;
|
|
156
|
+
// associatedKeys: string[] = [];
|
|
157
|
+
//
|
|
158
|
+
//
|
|
159
|
+
// setContent(content: React.ReactNode) {
|
|
160
|
+
// this.content = content;
|
|
161
|
+
// return this;
|
|
162
|
+
// }
|
|
163
|
+
//
|
|
164
|
+
// setAction(action: () => void) {
|
|
165
|
+
// this.action = action;
|
|
166
|
+
// return this;
|
|
167
|
+
// }
|
|
168
|
+
//
|
|
169
|
+
// setAssociatedKeys(associatedKeys: string[]) {
|
|
170
|
+
// this.associatedKeys = associatedKeys;
|
|
171
|
+
// return this;
|
|
172
|
+
// }
|
|
173
|
+
//
|
|
174
|
+
// build(): DialogButtonModel {
|
|
175
|
+
// return {
|
|
176
|
+
// style: this.style,
|
|
177
|
+
// className: this.className,
|
|
178
|
+
// content: this.content,
|
|
179
|
+
// action: this.action,
|
|
180
|
+
// associatedKeys: this.associatedKeys,
|
|
181
|
+
// };
|
|
182
|
+
// }
|
|
183
|
+
// }
|
|
184
|
+
//
|
|
185
|
+
// export type DialogButtonModel = Stylable & {
|
|
186
|
+
// content: React.ReactNode;
|
|
187
|
+
// associatedKeys: string[];
|
|
188
|
+
// action: () => void;
|
|
189
|
+
// }
|
|
190
|
+
// const defaultButtonStyle: CSSProperties = {
|
|
191
|
+
// borderRadius: '4px',
|
|
192
|
+
// color: 'white',
|
|
193
|
+
// fontSize: '11px',
|
|
194
|
+
// letterSpacing: '-0.18px',
|
|
195
|
+
// outline: 'none',
|
|
196
|
+
// margin: '0px 6px',
|
|
197
|
+
// height: '23px',
|
|
198
|
+
// width: '68px'
|
|
199
|
+
// };
|
|
200
|
+
//
|
|
201
|
+
// const defaultSubmitStyle: CSSProperties = {
|
|
202
|
+
// backgroundColor: '#00b5ff'
|
|
203
|
+
// };
|
|
204
|
+
//
|
|
205
|
+
// const defaultCancelStyle: CSSProperties = {
|
|
206
|
+
// backgroundColor: '#d9d9d9'
|
|
207
|
+
// };
|
|
208
|
+
// export const DialogButton_Cancel = (onSubmit?: () => void, label?: React.ReactNode) =>
|
|
209
|
+
// new DialogButton_Builder()
|
|
210
|
+
// .setStyle({...defaultCancelStyle, ...defaultButtonStyle})
|
|
211
|
+
// .setContent(label || 'Cancel')
|
|
212
|
+
// .setAction(onSubmit || ModuleFE_Dialog.close);
|
|
213
|
+
//
|
|
214
|
+
// export const DialogButton_Submit = (onSubmit: () => void, label?: React.ReactNode) =>
|
|
215
|
+
// new DialogButton_Builder()
|
|
216
|
+
// .setStyle({...defaultSubmitStyle, ...defaultButtonStyle})
|
|
217
|
+
// .setContent(label || 'Submit')
|
|
218
|
+
// .setAction(onSubmit);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
// import {Dialog_Builder} from '@nu-art/thunderstorm-frontend/modules/dialog/ModuleFE_Dialog';
|
|
3
|
+
// import {ComponentSync} from '@nu-art/thunderstorm-frontend/core/ComponentSync';
|
|
4
|
+
// import * as React from 'react';
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
// type Props = {
|
|
8
|
+
// url: string
|
|
9
|
+
// }
|
|
10
|
+
//
|
|
11
|
+
// export class Dialog_JiraOpened
|
|
12
|
+
// extends ComponentSync<Props, {}> {
|
|
13
|
+
//
|
|
14
|
+
// protected deriveStateFromProps(nextProps: Props) {
|
|
15
|
+
// return {};
|
|
16
|
+
// }
|
|
17
|
+
//
|
|
18
|
+
// public static show(url: string) {
|
|
19
|
+
// new Dialog_Builder(<Dialog_JiraOpened url={url}/>)
|
|
20
|
+
// .setcloseOverlayOnClick(true)
|
|
21
|
+
// .show();
|
|
22
|
+
// }
|
|
23
|
+
//
|
|
24
|
+
// redirectToJira = () => {
|
|
25
|
+
// if (this.props.url)
|
|
26
|
+
// window.open(this.props.url);
|
|
27
|
+
// };
|
|
28
|
+
//
|
|
29
|
+
// render() {
|
|
30
|
+
// return <div className={'ll_v_s fill'} style={{width: 344}}>
|
|
31
|
+
// <div className={'ll_v_s'} style={{flex: 1, position: 'relative'}}>
|
|
32
|
+
// <div style={{textAlign: 'center', padding: '10px', fontSize: '16px', color: 'darkslategray'}}>Success</div>
|
|
33
|
+
// <div style={{textAlign: 'center', padding: '5px', fontSize: '14px', color: 'darkslategray'}}>Bug report submitted successfully</div>
|
|
34
|
+
// <div style={{position: 'relative', height: '40px'}}>
|
|
35
|
+
// <div
|
|
36
|
+
// className={'clickable ll_h_c'}
|
|
37
|
+
// style={{
|
|
38
|
+
// background: 'DeepSkyBlue',
|
|
39
|
+
// height: 32,
|
|
40
|
+
// paddingRight: 10,
|
|
41
|
+
// paddingLeft: 10,
|
|
42
|
+
// borderRadius: 16,
|
|
43
|
+
// fontSize: '14px',
|
|
44
|
+
// color: 'darkslategray',
|
|
45
|
+
// position: 'absolute',
|
|
46
|
+
// right: '35%'
|
|
47
|
+
// }}
|
|
48
|
+
// onClick={() => this.redirectToJira()}>
|
|
49
|
+
// Take me to jira
|
|
50
|
+
// </div>
|
|
51
|
+
// </div>
|
|
52
|
+
// </div>
|
|
53
|
+
// </div>;
|
|
54
|
+
// }
|
|
55
|
+
// }
|