From 4fb1dab42a682f776c3276477431fbd67f9a35b7 Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sat, 22 Jun 2024 14:59:37 -0300 Subject: [PATCH 01/12] WIP support api V2 --- kilink/static/js/main.js | 106 ++++++++++++++++++++++++++------------- 1 file changed, 72 insertions(+), 34 deletions(-) diff --git a/kilink/static/js/main.js b/kilink/static/js/main.js index a61c8ce..9eb6289 100644 --- a/kilink/static/js/main.js +++ b/kilink/static/js/main.js @@ -75,52 +75,90 @@ var linkode = (function (){ } } + const LinkodeCreationParamsPrototype = { + toJSON() { + return JSON.stringify({ + content: this.content, + text_type: this.text_type, + }); + }, + }; + + function LinkodeCreationParams(content, text_type) { + this.content = content; + this.text_type = text_type; + } + Object.assign(LinkodeCreationParams.prototype, LinkodeCreationParamsPrototype); + /** * Post the new linkode * @param {string} */ function api_post(current_retry){ - var api_post_url = API_URL; + var api_post_url = URL_BASE + "/api/2/linkode/"; var text_type = $("#selectlang").val().replace("auto_", ""); - var post_data = { - 'content': editor.val(), - 'text_type': text_type - }; + var creation_params = new LinkodeCreationParams(editor.val(), text_type); if(first_load_success && linkode_id_val()){ api_post_url = api_post_url + linkode_id_val(); post_data.parent = linkode_id_val(); } - $.post(api_post_url,post_data) - .done(function(data) { - var posted_linkode = data; - if(first_load_success){ - linkode_id_val(posted_linkode.revno); - $("#selectlang").val(text_type); - editor.selectMode(); - api_after_post_get(posted_linkode.revno); - $("#btn-submit").text(text_update_submit); - show_success_noty(posted_linkode.revno); - } - else{ - window.location.replace(URL_BASE + "/#" + posted_linkode.revno); - } - }) - .fail(function(data, error) { - current_retry = current_retry ? current_retry : 0; - if (current_retry < RETRY_TIMES && data.status != 404 && data.status != 413){ - retry_delay = RETRY_DELAYS[current_retry]; - current_retry++; - show_retry_noty(retry_delay); - setTimeout(function(){ - api_post(current_retry); - }, retry_delay); - } - else{ - show_error_noty(data.status, true, api_post, []); - } - }); + var jqxhr = $.ajax({ + url: api_post_url, + type: "POST", + data: creation_params.toJSON(), + contentType: "application/json; charset=utf-8", + dataType: "json", + + }) + .done(function(data, textStatus, jqXHR) { + console.log("Llegó", data); + if(first_load_success){ + linkode_id_val(data.linkode_id); + $("#selectlang").val(text_type); + editor.selectMode(); + api_after_post_get(data.linkode_id); + $("#btn-submit").text(text_update_submit); + show_success_noty(data.linkode_id); + } + else{ + window.location.replace(URL_BASE + "/#" + data.linkode_id); + } + }) + .fail(function(jqXHR, textStatus, errorThrown) { + console.log(textStatus, errorThrown); + }) + + // $.post(api_post_url,post_data) + // .done(function(data) { + // var posted_linkode = data; + // if(first_load_success){ + // linkode_id_val(posted_linkode.revno); + // $("#selectlang").val(text_type); + // editor.selectMode(); + // api_after_post_get(posted_linkode.revno); + // $("#btn-submit").text(text_update_submit); + // show_success_noty(posted_linkode.revno); + // } + // else{ + // window.location.replace(URL_BASE + "/#" + posted_linkode.revno); + // } + // }) + // .fail(function(data, error) { + // current_retry = current_retry ? current_retry : 0; + // if (current_retry < RETRY_TIMES && data.status != 404 && data.status != 413){ + // retry_delay = RETRY_DELAYS[current_retry]; + // current_retry++; + // show_retry_noty(retry_delay); + // setTimeout(function(){ + // api_post(current_retry); + // }, retry_delay); + // } + // else{ + // show_error_noty(data.status, true, api_post, []); + // } + // }); } /** From bbc645e6907bfb7238ee14ea6a4e741e83368c46 Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sat, 22 Jun 2024 16:01:51 -0300 Subject: [PATCH 02/12] Create from API v2 --- kilink/static/js/main.js | 75 ++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 46 deletions(-) diff --git a/kilink/static/js/main.js b/kilink/static/js/main.js index 9eb6289..dda13ef 100644 --- a/kilink/static/js/main.js +++ b/kilink/static/js/main.js @@ -54,8 +54,7 @@ var linkode = (function (){ if (new_linkode_id) { window.location.hash = new_linkode_id; current_linkode_id = new_linkode_id; - } - else { + } else { if(!current_linkode_id){ hash = window.location.hash.replace("#", ""); path = window.location.pathname.split("/").pop(); @@ -75,15 +74,17 @@ var linkode = (function (){ } } + /** + * Object definition to handle parameters to send to the API for Linkode creation. + */ const LinkodeCreationParamsPrototype = { toJSON() { - return JSON.stringify({ + return JSON.stringify({ content: this.content, text_type: this.text_type, - }); + }); }, - }; - + }; function LinkodeCreationParams(content, text_type) { this.content = content; this.text_type = text_type; @@ -95,7 +96,7 @@ var linkode = (function (){ * @param {string} */ function api_post(current_retry){ - var api_post_url = URL_BASE + "/api/2/linkode/"; + var api_post_url = API_URL; var text_type = $("#selectlang").val().replace("auto_", ""); var creation_params = new LinkodeCreationParams(editor.val(), text_type); @@ -104,16 +105,14 @@ var linkode = (function (){ post_data.parent = linkode_id_val(); } - var jqxhr = $.ajax({ + $.ajax({ url: api_post_url, type: "POST", data: creation_params.toJSON(), contentType: "application/json; charset=utf-8", dataType: "json", - }) .done(function(data, textStatus, jqXHR) { - console.log("Llegó", data); if(first_load_success){ linkode_id_val(data.linkode_id); $("#selectlang").val(text_type); @@ -127,38 +126,19 @@ var linkode = (function (){ } }) .fail(function(jqXHR, textStatus, errorThrown) { - console.log(textStatus, errorThrown); + current_retry = current_retry ? current_retry : 0; + if (current_retry < RETRY_TIMES && jqXHR.status != 404 && jqXHR.status != 413){ + var retry_delay = RETRY_DELAYS[current_retry]; + current_retry++; + show_retry_noty(retry_delay); + setTimeout(function(){ + api_post(current_retry); + }, retry_delay); + } + else{ + show_error_noty(jqXHR.status, true, api_post, []); + } }) - - // $.post(api_post_url,post_data) - // .done(function(data) { - // var posted_linkode = data; - // if(first_load_success){ - // linkode_id_val(posted_linkode.revno); - // $("#selectlang").val(text_type); - // editor.selectMode(); - // api_after_post_get(posted_linkode.revno); - // $("#btn-submit").text(text_update_submit); - // show_success_noty(posted_linkode.revno); - // } - // else{ - // window.location.replace(URL_BASE + "/#" + posted_linkode.revno); - // } - // }) - // .fail(function(data, error) { - // current_retry = current_retry ? current_retry : 0; - // if (current_retry < RETRY_TIMES && data.status != 404 && data.status != 413){ - // retry_delay = RETRY_DELAYS[current_retry]; - // current_retry++; - // show_retry_noty(retry_delay); - // setTimeout(function(){ - // api_post(current_retry); - // }, retry_delay); - // } - // else{ - // show_error_noty(data.status, true, api_post, []); - // } - // }); } /** @@ -167,13 +147,14 @@ var linkode = (function (){ */ function api_after_post_get(linkode_id){ var api_get_url = API_URL + linkode_id; + // TODO: use the API V2 URL return $.get(api_get_url) .done(function(data) { node_list = data.tree; $("#tree-toggle-panel").show(); if (node_list !== false) { $(".klk-tree").empty(); - create_tree(linkode_id); + create_tree(linkode_id, node_list); if(node_list.children){ toggleTree(true); } @@ -198,7 +179,7 @@ var linkode = (function (){ node_list = data.tree; if (node_list !== false) { $(".klk-tree").empty(); - create_tree(linkode_id); + create_tree(linkode_id, node_list); $("#tree-toggle-panel").show(); // Only if nodes >= 2 @@ -264,6 +245,7 @@ var linkode = (function (){ */ function load_linkode(content, text_type, timestamp){ //Reset the auto option. + console.log("DATA HERE", timestamp); $("#selectlang option[value^='auto']").text("auto"); $("#selectlang option[value^='auto']").val("auto"); $("#selectlang").val(text_type); @@ -300,9 +282,10 @@ var linkode = (function (){ /** * Generate the Tree Node - * @param {string} + * @param {string} linkode_id + * @param {string} node_list */ - function create_tree(linkode_id){ + function create_tree(linkode_id, node_list){ var tree_size = {}; var layout_size = {}; tree_size.width = 200; @@ -520,7 +503,7 @@ var linkode = (function (){ // constants var URL_BASE = window.location.protocol + "//" + window.location.host; - var API_URL = URL_BASE + "/api/1/linkodes/"; + var API_URL = URL_BASE + "/api/2/linkode/"; var RETRY_TIMES = 3; var RETRY_DELAYS = [2000, 10000, 30000]; // in miliseconds From 39ec3c259244d038b4ac6c8c70ed2e83680b2378 Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sat, 22 Jun 2024 16:02:31 -0300 Subject: [PATCH 03/12] support pyenv in gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 20951b7..b3b1acb 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ tmp/ .fuse* .directory .idea/ +.python-version From 7f67cb01829889397e191752fea9fef5aefd3a3b Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 11:15:08 -0300 Subject: [PATCH 04/12] WIP --- kilink/static/js/main.js | 75 +++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 32 deletions(-) diff --git a/kilink/static/js/main.js b/kilink/static/js/main.js index dda13ef..9b3c27b 100644 --- a/kilink/static/js/main.js +++ b/kilink/static/js/main.js @@ -102,7 +102,7 @@ var linkode = (function (){ if(first_load_success && linkode_id_val()){ api_post_url = api_post_url + linkode_id_val(); - post_data.parent = linkode_id_val(); + //post_data.parent = linkode_id_val(); } $.ajax({ @@ -138,7 +138,7 @@ var linkode = (function (){ else{ show_error_noty(jqXHR.status, true, api_post, []); } - }) + }); } /** @@ -150,19 +150,43 @@ var linkode = (function (){ // TODO: use the API V2 URL return $.get(api_get_url) .done(function(data) { - node_list = data.tree; $("#tree-toggle-panel").show(); - if (node_list !== false) { - $(".klk-tree").empty(); - create_tree(linkode_id, node_list); - if(node_list.children){ - toggleTree(true); - } - } + fetch_and_render_tree(linkode_id, data.root_id); set_timestamp(data.timestamp); }); } + + function fetch_and_render_tree(linkode_id, root_id) { + $.ajax({ + url: TREE_URL + root_id, + type: "GET" + }) + .done(function(tree, textStatus, jqXHR) { + console.log("Tis the tree", tree); + $(".klk-tree").empty(); + if(tree.children.length > 0){ + toggleTree(true); + } + + if (tree !== false) { + $(".klk-tree").empty(); + + display_tree(linkode_id, root_id, tree); + $("#tree-toggle-panel").show(); + + // Only if nodes >= 2 + if(tree.children){ + toggleTree(); + } + } + + }) + .fail(function(jqXHR, textStatus, errorThrown) { + }); + + + } /** * Get the linkode * @param {string} @@ -176,21 +200,11 @@ var linkode = (function (){ .done(function(data) { load_linkode(data.content, data.text_type, data.timestamp); if(include_tree){ - node_list = data.tree; - if (node_list !== false) { - $(".klk-tree").empty(); - create_tree(linkode_id, node_list); - $("#tree-toggle-panel").show(); - - // Only if nodes >= 2 - if(node_list.children){ - toggleTree(); - } - } - } - else{ + fetch_and_render_tree(linkode_id, data.root_id); + } else { color_node(linkode_id); } + if(!first_load){ linkode_id_val(linkode_id); } @@ -206,7 +220,7 @@ var linkode = (function (){ else{ current_retry = current_retry ? current_retry : 0; if (current_retry < RETRY_TIMES){ - retry_delay = RETRY_DELAYS[current_retry]; + var retry_delay = RETRY_DELAYS[current_retry]; current_retry++; show_retry_noty(retry_delay); setTimeout(function(){ @@ -245,7 +259,6 @@ var linkode = (function (){ */ function load_linkode(content, text_type, timestamp){ //Reset the auto option. - console.log("DATA HERE", timestamp); $("#selectlang option[value^='auto']").text("auto"); $("#selectlang option[value^='auto']").val("auto"); $("#selectlang").val(text_type); @@ -285,7 +298,7 @@ var linkode = (function (){ * @param {string} linkode_id * @param {string} node_list */ - function create_tree(linkode_id, node_list){ + function display_tree(linkode_id, root_id, tree){ var tree_size = {}; var layout_size = {}; tree_size.width = 200; @@ -295,13 +308,10 @@ var linkode = (function (){ var tree = d3.layout.tree() .sort(null) - .size([tree_size.width, tree_size.height]) - .children(function(d){ - return (!d.contents || d.contents.length === 0) ? null : d.contents; - }); + .size([tree_size.width, tree_size.height]); - var nodes = tree.nodes(node_list); - var links = tree.links(nodes); + var nodes = tree.nodes(tree); + //var links = tree.links(nodes); var layoutRoot = d3.select(".klk-tree") @@ -504,6 +514,7 @@ var linkode = (function (){ // constants var URL_BASE = window.location.protocol + "//" + window.location.host; var API_URL = URL_BASE + "/api/2/linkode/"; + var TREE_URL = URL_BASE + "/api/2/tree/"; var RETRY_TIMES = 3; var RETRY_DELAYS = [2000, 10000, 30000]; // in miliseconds From 320cc2ced09375a8b99b3c811d67446d06898827 Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 12:19:51 -0300 Subject: [PATCH 05/12] Backend for frontend: tree display --- kilink/views_v2.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/kilink/views_v2.py b/kilink/views_v2.py index a141207..b6f192e 100644 --- a/kilink/views_v2.py +++ b/kilink/views_v2.py @@ -156,3 +156,23 @@ def get_tree(linkode_id, revno=None): ret_json = jsonify(tree) return ret_json, HTTPStatus.OK + + +@linkode_v2.route('/tree_bff/', methods=['GET']) +def api_get(linkode_id, revno=None): + """Get the kilink and revno content.""" + logger.debug("API get; linkode_id=%r revno=%r", linkode_id, revno) + if revno is not None: + # the linkode_id to get the info from is the second token + linkode_id = revno + + klnk = kilinkbackend.get_kilink(linkode_id) + + # get the tree + tree, nodeq = kilinkbackend.build_tree(linkode_id) + + logger.debug("API get done; type=%r size=%d len_tree=%d", + klnk.text_type, len(klnk.content), nodeq) + + ret_json = jsonify(tree) + return ret_json From 074d73cb54c4afb62bf86150841a22cdb6f039bf Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 12:20:23 -0300 Subject: [PATCH 06/12] WIP, removing unnecessary data from API --- kilink/backend.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kilink/backend.py b/kilink/backend.py index 316d67a..dd50c16 100644 --- a/kilink/backend.py +++ b/kilink/backend.py @@ -230,9 +230,9 @@ def build_tree(self, linkode_id): node = { 'order': treenode.order, 'parent': treenode.parent, - 'revno': treenode.linkode_id, + #'revno': treenode.linkode_id, 'url': url, - 'timestamp': str(treenode.timestamp), + #'timestamp': str(treenode.timestamp), 'selected': treenode.linkode_id == linkode_id, 'linkode_id': treenode.linkode_id, } @@ -246,6 +246,7 @@ def build_tree(self, linkode_id): children = [n for n in nodes if n['parent'] == node['linkode_id']] node['contents'] = children + del node["parent"] fringe.extend(children) return root_node, len(nodes) From b28b582727ee4ce441919cff39328abcdafffb10 Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 12:21:07 -0300 Subject: [PATCH 07/12] WIP on frotnend based on API v2 --- kilink/static/js/main.js | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/kilink/static/js/main.js b/kilink/static/js/main.js index 9b3c27b..bd9e07b 100644 --- a/kilink/static/js/main.js +++ b/kilink/static/js/main.js @@ -150,7 +150,7 @@ var linkode = (function (){ // TODO: use the API V2 URL return $.get(api_get_url) .done(function(data) { - $("#tree-toggle-panel").show(); + //$("#tree-toggle-panel").show(); fetch_and_render_tree(linkode_id, data.root_id); set_timestamp(data.timestamp); }); @@ -162,27 +162,30 @@ var linkode = (function (){ url: TREE_URL + root_id, type: "GET" }) - .done(function(tree, textStatus, jqXHR) { - console.log("Tis the tree", tree); + .done(function(data, textStatus, jqXHR) { $(".klk-tree").empty(); - if(tree.children.length > 0){ - toggleTree(true); - } - if (tree !== false) { + if (data !== false) { $(".klk-tree").empty(); - - display_tree(linkode_id, root_id, tree); + display_tree(linkode_id, root_id, data); $("#tree-toggle-panel").show(); - // Only if nodes >= 2 - if(tree.children){ - toggleTree(); + if(data.contents.length > 0){ + // Open only if there are children in the tree + toggleTree(true); } } }) .fail(function(jqXHR, textStatus, errorThrown) { + $(".klk-tree").empty(); + toggleTree(true); + toggleTree(); + new Noty({ + type: 'warning', + text: "Tree not available. Try again.", + killer: true + }).show(); }); @@ -298,7 +301,7 @@ var linkode = (function (){ * @param {string} linkode_id * @param {string} node_list */ - function display_tree(linkode_id, root_id, tree){ + function display_tree(linkode_id, root_id, data){ var tree_size = {}; var layout_size = {}; tree_size.width = 200; @@ -308,10 +311,13 @@ var linkode = (function (){ var tree = d3.layout.tree() .sort(null) - .size([tree_size.width, tree_size.height]); + .size([tree_size.width, tree_size.height]) + .children(function(d){ + return (!d.contents || d.contents.length === 0) ? null : d.contents; + }); - var nodes = tree.nodes(tree); - //var links = tree.links(nodes); + var nodes = tree.nodes(data); + var links = tree.links(nodes); var layoutRoot = d3.select(".klk-tree") @@ -514,7 +520,7 @@ var linkode = (function (){ // constants var URL_BASE = window.location.protocol + "//" + window.location.host; var API_URL = URL_BASE + "/api/2/linkode/"; - var TREE_URL = URL_BASE + "/api/2/tree/"; + var TREE_URL = URL_BASE + "/api/2/tree_bff/"; var RETRY_TIMES = 3; var RETRY_DELAYS = [2000, 10000, 30000]; // in miliseconds From 7563b6468800b956dddf231d23eb25971297f586 Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 13:32:27 -0300 Subject: [PATCH 08/12] cleanup --- kilink/backend.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kilink/backend.py b/kilink/backend.py index dd50c16..d8055b0 100644 --- a/kilink/backend.py +++ b/kilink/backend.py @@ -230,9 +230,9 @@ def build_tree(self, linkode_id): node = { 'order': treenode.order, 'parent': treenode.parent, - #'revno': treenode.linkode_id, + 'revno': treenode.linkode_id, 'url': url, - #'timestamp': str(treenode.timestamp), + 'timestamp': str(treenode.timestamp), 'selected': treenode.linkode_id == linkode_id, 'linkode_id': treenode.linkode_id, } @@ -246,7 +246,6 @@ def build_tree(self, linkode_id): children = [n for n in nodes if n['parent'] == node['linkode_id']] node['contents'] = children - del node["parent"] fringe.extend(children) return root_node, len(nodes) @@ -267,6 +266,7 @@ def build_tree_from_root_id(self, linkode_id): 'timestamp': str(treenode.timestamp), 'linkode_id': treenode.linkode_id, 'parent': treenode.parent, + 'order': treenode.order, } if treenode.parent is None: root_node = node_dict From 897f42c2ebd2365afe683c5696ab0228737fbd8f Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 13:32:51 -0300 Subject: [PATCH 09/12] Use the children attribute that now the api v2 sends --- kilink/static/js/main.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/kilink/static/js/main.js b/kilink/static/js/main.js index bd9e07b..b55ce52 100644 --- a/kilink/static/js/main.js +++ b/kilink/static/js/main.js @@ -170,7 +170,7 @@ var linkode = (function (){ display_tree(linkode_id, root_id, data); $("#tree-toggle-panel").show(); - if(data.contents.length > 0){ + if(data.children.length > 0){ // Open only if there are children in the tree toggleTree(true); } @@ -311,10 +311,7 @@ var linkode = (function (){ var tree = d3.layout.tree() .sort(null) - .size([tree_size.width, tree_size.height]) - .children(function(d){ - return (!d.contents || d.contents.length === 0) ? null : d.contents; - }); + .size([tree_size.width, tree_size.height]); var nodes = tree.nodes(data); var links = tree.links(nodes); @@ -520,7 +517,7 @@ var linkode = (function (){ // constants var URL_BASE = window.location.protocol + "//" + window.location.host; var API_URL = URL_BASE + "/api/2/linkode/"; - var TREE_URL = URL_BASE + "/api/2/tree_bff/"; + var TREE_URL = URL_BASE + "/api/2/tree/"; var RETRY_TIMES = 3; var RETRY_DELAYS = [2000, 10000, 30000]; // in miliseconds From 59f47d1a67b4a39975c652901a76d4687ca2c864 Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 13:55:04 -0300 Subject: [PATCH 10/12] cleanup --- kilink/static/js/main.js | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/kilink/static/js/main.js b/kilink/static/js/main.js index b55ce52..a9a990d 100644 --- a/kilink/static/js/main.js +++ b/kilink/static/js/main.js @@ -74,23 +74,6 @@ var linkode = (function (){ } } - /** - * Object definition to handle parameters to send to the API for Linkode creation. - */ - const LinkodeCreationParamsPrototype = { - toJSON() { - return JSON.stringify({ - content: this.content, - text_type: this.text_type, - }); - }, - }; - function LinkodeCreationParams(content, text_type) { - this.content = content; - this.text_type = text_type; - } - Object.assign(LinkodeCreationParams.prototype, LinkodeCreationParamsPrototype); - /** * Post the new linkode * @param {string} @@ -98,17 +81,19 @@ var linkode = (function (){ function api_post(current_retry){ var api_post_url = API_URL; var text_type = $("#selectlang").val().replace("auto_", ""); - var creation_params = new LinkodeCreationParams(editor.val(), text_type); + var creation_params = { + content: editor.val(), + text_type: text_type, + }; if(first_load_success && linkode_id_val()){ api_post_url = api_post_url + linkode_id_val(); - //post_data.parent = linkode_id_val(); } $.ajax({ url: api_post_url, type: "POST", - data: creation_params.toJSON(), + data: JSON.stringify(creation_params), contentType: "application/json; charset=utf-8", dataType: "json", }) @@ -162,12 +147,12 @@ var linkode = (function (){ url: TREE_URL + root_id, type: "GET" }) - .done(function(data, textStatus, jqXHR) { + .done(function(data) { $(".klk-tree").empty(); if (data !== false) { $(".klk-tree").empty(); - display_tree(linkode_id, root_id, data); + display_tree(linkode_id, data); $("#tree-toggle-panel").show(); if(data.children.length > 0){ @@ -177,7 +162,7 @@ var linkode = (function (){ } }) - .fail(function(jqXHR, textStatus, errorThrown) { + .fail(function() { $(".klk-tree").empty(); toggleTree(true); toggleTree(); @@ -298,10 +283,10 @@ var linkode = (function (){ /** * Generate the Tree Node - * @param {string} linkode_id - * @param {string} node_list + * @param {string} linkode_id, to paint the proper node + * @param {string} data, with all the nodes */ - function display_tree(linkode_id, root_id, data){ + function display_tree(linkode_id, data){ var tree_size = {}; var layout_size = {}; tree_size.width = 200; From a44e619826eaf519fd49c4d80d30626185e3fffb Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 13:55:26 -0300 Subject: [PATCH 11/12] Delete unused dev endpoint --- kilink/views_v2.py | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/kilink/views_v2.py b/kilink/views_v2.py index b6f192e..a141207 100644 --- a/kilink/views_v2.py +++ b/kilink/views_v2.py @@ -156,23 +156,3 @@ def get_tree(linkode_id, revno=None): ret_json = jsonify(tree) return ret_json, HTTPStatus.OK - - -@linkode_v2.route('/tree_bff/', methods=['GET']) -def api_get(linkode_id, revno=None): - """Get the kilink and revno content.""" - logger.debug("API get; linkode_id=%r revno=%r", linkode_id, revno) - if revno is not None: - # the linkode_id to get the info from is the second token - linkode_id = revno - - klnk = kilinkbackend.get_kilink(linkode_id) - - # get the tree - tree, nodeq = kilinkbackend.build_tree(linkode_id) - - logger.debug("API get done; type=%r size=%d len_tree=%d", - klnk.text_type, len(klnk.content), nodeq) - - ret_json = jsonify(tree) - return ret_json From 9a09f831d275e977e748d6aba52ba9bb20f2f3c1 Mon Sep 17 00:00:00 2001 From: Carlos de la Torre Date: Sun, 23 Jun 2024 13:55:43 -0300 Subject: [PATCH 12/12] update tests --- tests/test_views_v2.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/test_views_v2.py b/tests/test_views_v2.py index 9fb0418..bc43cba 100644 --- a/tests/test_views_v2.py +++ b/tests/test_views_v2.py @@ -118,22 +118,26 @@ def test_get_tree_happy_path(self): assert response.json == { "linkode_id": parent.linkode_id, "timestamp": str(parent.timestamp), + "order": 1, "children": [ { "linkode_id": child_1.linkode_id, "timestamp": str(child_1.timestamp), + "order": 2, "children": [ { "linkode_id": grandchild.linkode_id, "timestamp": str(grandchild.timestamp), - "children": [] + "children": [], + "order": 4, } ], }, { "linkode_id": child_2.linkode_id, "timestamp": str(child_2.timestamp), - "children": [] + "children": [], + "order": 3, } ] }