You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2021/05/20 04:36:57 UTC
[syncope] branch 2_1_X updated: Supporting YAML in
BinaryTextPreviewer
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_1_X by this push:
new d051420 Supporting YAML in BinaryTextPreviewer
d051420 is described below
commit d0514202ed96d1970aee2b107f0d3087b7758026
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu May 20 06:32:30 2021 +0200
Supporting YAML in BinaryTextPreviewer
---
.../html/form/preview/BinaryTextPreviewer.java | 28 +++++++++++++++-------
client/console/src/main/resources/MIMETypes.json | 3 +++
.../html/form/preview/BinaryTextPreviewer.html | 5 ++--
3 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/preview/BinaryTextPreviewer.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/preview/BinaryTextPreviewer.java
index 33558d1..b37bd59 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/preview/BinaryTextPreviewer.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/preview/BinaryTextPreviewer.java
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.io.InputStream;
import javax.ws.rs.core.MediaType;
import org.apache.syncope.client.console.annotations.BinaryPreview;
+import org.apache.syncope.common.rest.api.RESTHeaders;
import org.apache.wicket.Component;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnLoadHeaderItem;
@@ -32,12 +33,13 @@ import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.io.IOUtils;
-@BinaryPreview(mimeTypes = { "application/json", "application/xml" })
+@BinaryPreview(mimeTypes = { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
+ RESTHeaders.APPLICATION_YAML, "application/x-yaml", "text/x-yaml", "text/yaml" })
public class BinaryTextPreviewer extends AbstractBinaryPreviewer {
private static final long serialVersionUID = 3808379310090668773L;
- private String jsonEditorInfoId;
+ private String previewerId;
public BinaryTextPreviewer(final String id, final String mimeType) {
super(id, mimeType);
@@ -51,11 +53,10 @@ public class BinaryTextPreviewer extends AbstractBinaryPreviewer {
try {
fragment = new Fragment("preview", "previewFragment", this);
InputStream stream = new ByteArrayInputStream(uploadedBytes);
- TextArea<String> jsonEditor =
- new TextArea<>("jsonEditorInfo", new Model<>(IOUtils.toString(stream)));
- jsonEditor.setOutputMarkupPlaceholderTag(true);
- jsonEditorInfoId = jsonEditor.getMarkupId();
- fragment.add(jsonEditor);
+ TextArea<String> previewer = new TextArea<>("previewer", Model.of(IOUtils.toString(stream)));
+ previewer.setOutputMarkupPlaceholderTag(true);
+ previewerId = previewer.getMarkupId();
+ fragment.add(previewer);
} catch (IOException e) {
LOG.error("Error evaluating text file", e);
}
@@ -76,21 +77,30 @@ public class BinaryTextPreviewer extends AbstractBinaryPreviewer {
case MediaType.APPLICATION_JSON:
options = "matchBrackets: true, autoCloseBrackets: true,";
break;
+
case MediaType.APPLICATION_XML:
options = "autoCloseTags: true, mode: 'text/html',";
break;
+
+ case RESTHeaders.APPLICATION_YAML:
+ case "application/x-yaml":
+ case "text/x-yaml":
+ case "text/yaml":
+ options = "mode: 'yaml',";
+ break;
+
default:
options = "mode: 'text/html',";
}
response.render(OnLoadHeaderItem.forScript(
- "var editor = CodeMirror.fromTextArea(document.getElementById('" + jsonEditorInfoId + "'), {"
+ "var editor = CodeMirror.fromTextArea(document.getElementById('" + previewerId + "'), {"
+ " readOnly: true, "
+ " lineNumbers: true, "
+ " lineWrapping: false, "
+ options
+ " autoRefresh: true"
+ "});"
- + "editor.setSize('500', 100)"));
+ + "editor.setSize('900', 250)"));
}
}
diff --git a/client/console/src/main/resources/MIMETypes.json b/client/console/src/main/resources/MIMETypes.json
index b49ceca..f49a5a1 100644
--- a/client/console/src/main/resources/MIMETypes.json
+++ b/client/console/src/main/resources/MIMETypes.json
@@ -691,6 +691,9 @@
"name": "application/x-zip-compressed"
},
{
+ "name": "application/yaml"
+ },
+ {
"name": "application/zip"
},
{
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/preview/BinaryTextPreviewer.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/preview/BinaryTextPreviewer.html
index aa730cf..0a75022 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/preview/BinaryTextPreviewer.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/preview/BinaryTextPreviewer.html
@@ -21,6 +21,7 @@ under the License.
<link rel="stylesheet" type="text/css" href="webjars/codemirror/${codemirror.version}/lib/codemirror.css"/>
<script type="text/javascript" src="webjars/codemirror/${codemirror.version}/lib/codemirror.js"></script>
<script type="text/javascript" src="webjars/codemirror/${codemirror.version}/mode/javascript/javascript.js"></script>
+ <script type="text/javascript" src="webjars/codemirror/${codemirror.version}/mode/yaml/yaml.js"></script>
<script type="text/javascript" src="webjars/codemirror/${codemirror.version}/addon/display/autorefresh.js"></script>
<script type="text/javascript" src="webjars/codemirror/${codemirror.version}/addon/search/search.js"></script>
<script type="text/javascript" src="webjars/codemirror/${codemirror.version}/addon/search/searchcursor.js"></script>
@@ -41,8 +42,8 @@ under the License.
<span wicket:id="preview"/>
</div>
<wicket:fragment wicket:id="previewFragment">
- <div style="w_content_3">
- <textarea wicket:id="jsonEditorInfo" name="jsonEditorInfo" ></textarea>
+ <div class="w_content_3">
+ <textarea wicket:id="previewer" name="previewer"></textarea>
</div>
</wicket:fragment>
<wicket:fragment wicket:id="noPreviewFragment">