Skip to content

Commit 1095420

Browse files
committed
add download action on submit
1 parent d765fbf commit 1095420

File tree

3 files changed

+35
-15
lines changed

3 files changed

+35
-15
lines changed

content/create.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,3 @@ title: "Create a CodeMeta file"
44
---
55

66
{{< react-schema >}}
7-
Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,47 @@
1-
<div id="app"></div>
1+
<div id="app"></div>
22

3-
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.4.2/umd/react.production.min.js"></script>
4-
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.4.2/umd/react-dom.production.min.js"></script>
5-
<script src="https://unpkg.com/react-jsonschema-form/dist/react-jsonschema-form.js"></script>
6-
<script type="text/javascript" src="/schema.json"></script>
7-
<script type="text/javascript" src="/uiSchema.json"></script>
3+
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.4.2/umd/react.production.min.js"></script>
4+
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.4.2/umd/react-dom.production.min.js"></script>
5+
<script src="https://unpkg.com/react-jsonschema-form/dist/react-jsonschema-form.js"></script>
6+
<script type="text/javascript" src="/schema.json"></script>
7+
<script type="text/javascript" src="/uiSchema.json"></script>
88

9-
<script>
10-
const Form = JSONSchemaForm.default;
9+
<script>
10+
const Form = JSONSchemaForm.default;
11+
1112

1213

1314
const formData= {
14-
15+
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
16+
"@type": "SoftwareSouceCode"
1517
}
1618

17-
const log = (type) => console.log.bind(console, type);
19+
const log = (type) => console.log.bind(console, type);
1820

19-
ReactDOM.render(React.createElement(Form, {
21+
function saveData(data, fileName) {
22+
log("submitted")
23+
var content = JSON.stringify(data, null, 2);
24+
var a = document.createElement("a");
25+
var file = new Blob([content], {type: "application/json"});
26+
a.href = URL.createObjectURL(file);
27+
a.download = fileName;
28+
a.click();
29+
};
30+
const onSubmit = ({formData}) => saveData(formData, "codemeta.json");
31+
32+
33+
var fileName = "codemeta.json";
34+
ReactDOM.render(React.createElement(Form, {
2035
schema: schema,
2136
uiSchema: uiSchema,
2237
formData: formData,
2338
onChange: log("changed"),
24-
onSubmit: log("submitted"),
39+
onSubmit: onSubmit,
2540
onError: log("errors")
2641
}), document.getElementById("app"));
27-
</script>
42+
43+
44+
45+
46+
47+
</script>

static/schema.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ const schema = {
55
"media": {"type": "application/json;profile=http://schema.org/SoftwareSourceCode"},
66
"type": "object",
77
"properties": {
8-
8+
"@context": {"type": "string", "format": "uri"},
9+
"@type": {"type": "string"},
910
"name": {"type": "string", "description": "Name of the software"},
1011
"codeRepository": {
1112
"type": "string",

0 commit comments

Comments
 (0)