From 136b89218172e5824746d764db5fb2b405ec97ab Mon Sep 17 00:00:00 2001 From: Alexandr Nesterenko Date: Tue, 22 Aug 2017 20:22:52 +0000 Subject: [PATCH] posts html preview --- frontend/frontend/setup_tool_ext.py | 15 +++++++-- .../frontend/assets/js/setup-tool-ext.js | 33 ++++++++++++++++++- .../frontend/templates/frontend/setup.html | 22 +++++++------ frontend/frontend/views.py | 8 ++--- 4 files changed, 60 insertions(+), 18 deletions(-) diff --git a/frontend/frontend/setup_tool_ext.py b/frontend/frontend/setup_tool_ext.py index 988e5f0..af0710c 100644 --- a/frontend/frontend/setup_tool_ext.py +++ b/frontend/frontend/setup_tool_ext.py @@ -19,6 +19,8 @@ def build_xpath_results(selectors, file_name): feed_result = None field_results = {} + extracted_posts = [] + success = True post_elems = None try: @@ -30,6 +32,7 @@ def build_xpath_results(selectors, file_name): for elem in post_elems: selected_required = True selected_link = True + extracted_post = {} for name, xpath in field_xpathes.iteritems(): if not (name in field_results): field_results[name] = {} @@ -39,15 +42,19 @@ def build_xpath_results(selectors, file_name): if name == 'link': if not extracts: selected_link = False + else: + extracted_post[name] = u''.join(extracts) else: if not extracts: selected_required = False + else: + extracted_post[name] = u''.join(extracts) except ValueError as ex: success = False field_results[name]['error'] = ex.message - for name, xpath in field_xpathes.iteritems(): - if selected_required: + if selected_required: + for name, xpath in field_xpathes.iteritems(): if name == 'link': if selected_link: if 'count' in field_results[name]: @@ -59,6 +66,8 @@ def build_xpath_results(selectors, file_name): field_results[name]['count'] += 1 else: field_results[name]['count'] = 1 + + extracted_posts.append(extracted_post) else: for name, xpath in field_xpathes.iteritems(): xpath = xpath.strip() @@ -75,4 +84,4 @@ def build_xpath_results(selectors, file_name): feed_result = {'error': ex.message} success = False - return [[feed_result, field_results], success] + return [[feed_result, field_results], extracted_posts, success] diff --git a/frontend/frontend/static/frontend/assets/js/setup-tool-ext.js b/frontend/frontend/static/frontend/assets/js/setup-tool-ext.js index ec39180..f3c80bd 100644 --- a/frontend/frontend/static/frontend/assets/js/setup-tool-ext.js +++ b/frontend/frontend/static/frontend/assets/js/setup-tool-ext.js @@ -116,6 +116,34 @@ function changed() { return ch; } +function showPosts(posts) { + $('.ext-result:not(:first)').remove(); // clear results + $post_tpl = $('.ext-result:first'); + posts.forEach(function(post){ + var i = 0; + var $post = $post_tpl.clone(); + var $post_fields = $post.find('dl > dd > pre'); + var $post_dts = $post.find('dl > dt'); + var $post_dds = $post.find('dl > dd'); + + ['title', 'link', 'description'].forEach(function(name){ + if (name in post) { + $($post_fields[i]).text(post[name].trim()); + $($post_fields[i]).addClass('prettyprint'); + } + else { + $($post_dts[i]).remove(); + $($post_dds[i]).remove(); + } + i++; + }); + $post.appendTo($post_tpl.parent()); + $post[0].style.display = null; // show + }); + $('#ext-results')[0].style.display = posts.length > 0 ? 'block' : 'none'; + PR.prettyPrint(); +} + function active() { return _active; } @@ -139,6 +167,9 @@ function show_ext(show) { $("#st-clicker-trigger")[0].style.display = show ? "inline-block" : "none"; $("#st-extended")[0].style.display = show ? "block" : "none"; $("#st-clicker")[0].style.display = !show ? "block" : "none"; + + if (!show) + $('#ext-results')[0].style.display = 'none'; _active = show; } @@ -196,6 +227,7 @@ $(document).ready(function(){ loader(true); validateSelectors().then(function(res){ ET.updateUIMessages(res.messages); + showPosts(res.posts); hide_check_show_create(res.success); //unfreez UI loader(false); @@ -218,7 +250,6 @@ $(document).ready(function(){ return true; });*/ - PR.prettyPrint() }); diff --git a/frontend/frontend/templates/frontend/setup.html b/frontend/frontend/templates/frontend/setup.html index 8eb9961..a018dfb 100644 --- a/frontend/frontend/templates/frontend/setup.html +++ b/frontend/frontend/templates/frontend/setup.html @@ -123,7 +123,7 @@ -
+