Skip to content

Commit 28dfefb

Browse files
committed
Move to SurveyJS Library V2
1 parent 53eebc3 commit 28dfefb

File tree

3 files changed

+24
-31
lines changed

3 files changed

+24
-31
lines changed

Views/Home/EditForm.cshtml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
@model EditFormModel
2-
<script src="https://unpkg.com/[email protected]/build/output/knockout-latest.js"></script>
32
<script src="https://unpkg.com/survey-core/survey.core.min.js"></script>
43
<script src="https://unpkg.com/survey-core/survey.i18n.min.js"></script>
5-
<script src="https://unpkg.com/survey-knockout-ui/survey-knockout-ui.min.js"></script>
4+
<script src="https://unpkg.com/survey-js-ui/survey-js-ui.min.js"></script>
65
<script src="https://unpkg.com/survey-creator-core/survey-creator-core.min.js"></script>
76
<script src="https://unpkg.com/survey-creator-core/survey-creator-core.i18n.min.js"></script>
8-
<script src="https://unpkg.com/survey-creator-knockout/survey-creator-knockout.min.js"></script>
9-
<link rel="stylesheet" href="https://unpkg.com/survey-core/defaultV2.min.css" />
7+
<script src="https://unpkg.com/survey-creator-js/survey-creator-js.min.js"></script>
8+
<link rel="stylesheet" href="https://unpkg.com/survey-core/survey-core.min.css" />
109
<link rel="stylesheet" href="https://unpkg.com/survey-creator-core/survey-creator-core.css" />
1110
<script src="~/js/form_api.js" asp-append-version="true"></script>
1211
<script src="~/js/creatorjs.js" asp-append-version="true"></script>

Views/Home/FormResponse.cshtml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,23 @@
11
@model FormResponseModel
2-
<script src="https://unpkg.com/[email protected]/build/output/knockout-latest.js"></script>
32
<script src="https://unpkg.com/survey-core/survey.core.min.js"></script>
43
<script src="https://unpkg.com/survey-core/survey.i18n.min.js"></script>
5-
<script src="https://unpkg.com/survey-knockout-ui/survey-knockout-ui.min.js"></script>
6-
<link rel="stylesheet" href="https://unpkg.com/survey-core/defaultV2.min.css" />
4+
<script src="https://unpkg.com/survey-js-ui/survey-js-ui.min.js"></script>
5+
<link rel="stylesheet" href="https://unpkg.com/survey-core/survey-core.min.css" />
76
<script src="~/js/form_api.js" asp-append-version="true"></script>
87
<script src="~/js/surveyjs.js" asp-append-version="true"></script>
98
@{
109
ViewData["Title"] = "Fill Out a Form: " + Model.FormName;
1110
}
1211
<div id="surveyElement" style="display: inline-block; width: 100%;">
13-
<div id="idLoading">Loading...</div>
14-
<survey params="survey: model"></survey>
1512
</div>
1613
<script>
1714
loadFormAndData("@Model.FormName", "@Model.Id", showForm);
15+
const survey = new Survey.SurveyModel();
16+
survey.beginLoading();
1817
function showForm(json, data) {
19-
document.getElementById("idLoading").style.display = "none";
20-
const survey = new SurveyKnockout.SurveyModel(json);
18+
survey.fromJSON(json);
2119
setupSurveyModel(survey, "@Model.FormName");
2220
survey.data = data;
23-
ko.applyBindings({
24-
model: survey
25-
}, document.getElementById("surveyElement"));
21+
survey.render(document.getElementById("surveyElement"));
2622
}
2723
</script>

wwwroot/js/creatorjs.js

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -67,27 +67,25 @@ function setupCreatorForContentManager(creator) {
6767
});
6868
}
6969

70-
const SERVER_CODE_TAB_COMPONENT_NAME = "svc-tab-servercode";
70+
const SERVER_CODE_TAB_COMPONENT_NAME = "SERVER_CODE_TAB_COMPONENT_NAME";
7171

7272
// Product managers can make any changes in a form JSON schema.
7373
// If these changes require server-side code modification, backend developers can use generated code to adjust domain models.
7474
function setupCreatorForProductManager(creator) {
75-
// Register a component that displays server-side code generated based upon the form JSON schema
76-
ko.components.register(SERVER_CODE_TAB_COMPONENT_NAME, {
77-
viewModel: {
78-
createViewModel: (params) => {
79-
const creator = params.creator;
80-
var model = {
81-
generatedCode: generateDomainModelsCode(creator.survey)
82-
};
83-
return model;
84-
}
85-
},
86-
template: `
87-
<textarea data-bind="value:generatedCode" style="width:100%;height:100%;padding:'5px'">
88-
</textarea>
89-
`
90-
});
75+
class DomainCodeGeneratorTabComponent extends SurveyUI.Component {
76+
render() {
77+
const textAreaStyle = { width: "100%", heigth: "100%", padding: "5px" };
78+
const generatedCode = generateDomainModelsCode(this.props.creator.survey)
79+
return React.createElement("textarea", { style: textAreaStyle, value: generatedCode });
80+
}
81+
}
82+
window.React = { createElement: SurveyUI.createElement };
83+
SurveyUI.ReactElementFactory.Instance.registerElement(
84+
SERVER_CODE_TAB_COMPONENT_NAME,
85+
(props) => {
86+
return React.createElement(DomainCodeGeneratorTabComponent, props);
87+
}
88+
);
9189
creator.onPropertyValidationCustomError.add((_, options) => {
9290
if (options.propertyName !== "name") return;
9391
// Validate the `name` property for the survey, questions, and matrix columns

0 commit comments

Comments
 (0)