1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>JSON Viewer</title>
- <style>
- #jsonInput {
- width: 45%;
- height: 300px;
- margin-bottom: 10px;
- }
- #jsonOutput {
- width: 45%;
- height: 300px;
- margin-bottom: 10px;
- }
- #updateButton {
- display: block;
- margin-top: 10px;
- }
- </style>
- <script defer src="pretty-json-custom-element.js"></script>
- </head>
- <body>
- <h1>JSON Viewer</h1>
- <p><a href="https://github.com/wekan/wekan/issues/4877#issuecomment-2105688702">Source</a></p>
- <textarea id="jsonInput" placeholder="Enter Trello-JSON here: (Ctrl+V) In Trello go to ... menu and select 'Print, Export and Share' Select 'Export as JSON' Copy the whole text (Ctrl+A, Ctrl+C)"></textarea><br>
- <button id="updateButton">Convert from Trello to Wekan</button><br>
- <textarea id="jsonOutput" placeholder="Copy JSON for Wekan from here: (Ctrl+A, Ctrl+C) In Wekan go to 'all Boards', 'Add Board', 'Import', 'From Trello'" readonly></textarea>
- <script>
- document.getElementById("updateButton").addEventListener("click", function() {
- try {
- var jsonInput = document.getElementById("jsonInput").value;
- // replace colors with replaceAll
- jsonInput = jsonInput.replaceAll("green_dark", "green");
- jsonInput = jsonInput.replaceAll("red_dark", "red");
- // alter the json file structure
- var parsedJson = JSON.parse(jsonInput);
-
- // Iterate through the actions array
- parsedJson.actions.forEach(function(action) {
- // Check if the type is "addAttachmentToCard"
- if (action.type === "addAttachmentToCard") {
- // Store the value of data.attachment
- action.data.text = "**" + action.memberCreator.fullName + "**";
- action.data.text += "\nAdded: " + action.data.attachment.name + " " + action.data.attachment.url;
- action.data.textData = {};
- action.data.textData.emoji = {};
- delete action.data.attachment;
- action.type = "commentCard";
- } else if (action.type === "deleteAttachmentFromCard") {
- // Store the value of data.attachment
- action.data.text = "**" + action.memberCreator.fullName + "**";
- action.data.text += "\nRemoved: " + action.data.attachment.name;
- action.data.textData = {};
- action.data.textData.emoji = {};
- delete action.data.attachment;
- action.type = "commentCard";
- } else if (action.type === "commentCard") {
- action.data.text = "**" + action.memberCreator.fullName + "**\n" + action.data.text;
- }
- });
- // Iterate through the actions array
- parsedJson.cards.forEach(function(card) {
- for (var i=0; i<card.badges.attachments; i++) {
- card.desc += "\nAttachment: " + card.attachments[i].name + " " + card.attachments[i].url;
- }
- });
- var formattedJson = JSON.stringify(parsedJson, null, 4);
- document.getElementById("jsonOutput").value = formattedJson;
- } catch (error) {
- document.getElementById("jsonOutput").value = "Invalid JSON format!";
- }
- });
- </script>
- </body>
- </html>
|