mirror of
https://github.com/taroved/pol
synced 2025-05-29 12:30:09 -07:00
xpath editor in progress
This commit is contained in:
parent
84c6b96838
commit
afd10fdf6d
Binary file not shown.
@ -93,7 +93,7 @@ msgstr "Предпросмотр"
|
|||||||
|
|
||||||
#: templates/frontend/setup.html:46
|
#: templates/frontend/setup.html:46
|
||||||
msgid "xpath.link"
|
msgid "xpath.link"
|
||||||
msgstr ""
|
msgstr "http://zvon.org/xxl/XPathTutorial/Output_rus/examples.html"
|
||||||
|
|
||||||
#: templates/frontend/setup.html:54
|
#: templates/frontend/setup.html:54
|
||||||
msgid "setup.you_are_creating_feed_with"
|
msgid "setup.you_are_creating_feed_with"
|
||||||
|
@ -161,5 +161,6 @@ def build_xpathes_for_items(item_tag_ids, html_json):
|
|||||||
item_xpathes[name] = '/'.join([repr(path_item) for path_item in selection_pathes[name]])
|
item_xpathes[name] = '/'.join([repr(path_item) for path_item in selection_pathes[name]])
|
||||||
else:
|
else:
|
||||||
item_xpathes[name] = '.'
|
item_xpathes[name] = '.'
|
||||||
|
item_xpathes[name] += '/child::node()'
|
||||||
|
|
||||||
return [feed_xpath, item_xpathes]
|
return [feed_xpath, item_xpathes]
|
||||||
|
@ -37,25 +37,37 @@ function check_pathes(pathes) {
|
|||||||
|
|
||||||
var _config = ['', {}];
|
var _config = ['', {}];
|
||||||
var _active = false;
|
var _active = false;
|
||||||
|
var _validated = false;
|
||||||
|
|
||||||
function updateSelector(name, messages) {
|
function updateSelector(name, messages) {
|
||||||
var control_group = $('#ste-'+ name).parent().parent();
|
var control_group = $('#ste-'+ name).parent().parent();
|
||||||
var help_text = control_group.find('.help-inline');
|
var help_text = control_group.find('.help-inline');
|
||||||
|
|
||||||
if ('error' in messages) {
|
if ('error' in messages) {
|
||||||
control_group.removeClass('info').addClass('error');
|
control_group.removeClass('info').addClass('error');
|
||||||
help_text.text(messages['error']);
|
help_text.text(messages['error']);
|
||||||
}
|
}
|
||||||
else {
|
else if ('count' in messages || $('#ste-'+ name).val().trim()) {
|
||||||
|
if (!('count' in messages))
|
||||||
|
messages['count'] = 0;
|
||||||
control_group.removeClass('error').addClass('info');
|
control_group.removeClass('error').addClass('info');
|
||||||
help_text.text(help_text.attr('count-tpl').replace('%s', messages['count']));
|
help_text.text(help_text.attr('count-tpl').replace('%s', messages['count']));
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
control_group.removeClass('error').removeClass('info');
|
||||||
|
help_text.text('');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// show status and error messages
|
// show status and error messages
|
||||||
function updateUIMessages(data) {
|
function updateUIMessages(data) {
|
||||||
updateSelector('parent', data[0]);
|
updateSelector('parent', data[0]);
|
||||||
for (name in data[1])
|
['title', 'description', 'link'].forEach(function(name){
|
||||||
updateSelector(name, data[1][name]);
|
if (name in data[1])
|
||||||
|
updateSelector(name, data[1][name]);
|
||||||
|
else
|
||||||
|
updateSelector(name, {});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateUI(config) {
|
function updateUI(config) {
|
||||||
@ -103,6 +115,9 @@ function changed() {
|
|||||||
function active() {
|
function active() {
|
||||||
return _active;
|
return _active;
|
||||||
}
|
}
|
||||||
|
function validate() {
|
||||||
|
return _validate;
|
||||||
|
}
|
||||||
|
|
||||||
window.ET = {
|
window.ET = {
|
||||||
'showIcon': showIcon,
|
'showIcon': showIcon,
|
||||||
@ -111,7 +126,8 @@ window.ET = {
|
|||||||
'updateUI': updateUI,
|
'updateUI': updateUI,
|
||||||
'updateUIMessages': updateUIMessages,
|
'updateUIMessages': updateUIMessages,
|
||||||
'getUIConfig': getUIConfig,
|
'getUIConfig': getUIConfig,
|
||||||
'active': active
|
'active': active,
|
||||||
|
'validate': validate
|
||||||
};
|
};
|
||||||
|
|
||||||
function show_ext(show) {
|
function show_ext(show) {
|
||||||
@ -137,6 +153,10 @@ $(document).ready(function(){
|
|||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("input[id^='ste-']").keyup(function(){
|
||||||
|
$("#check")[0].style.display = changed() ? 'inline-block' : 'none';
|
||||||
|
});
|
||||||
|
|
||||||
/*var cfg = read('xpathes')
|
/*var cfg = read('xpathes')
|
||||||
if (cfg) {
|
if (cfg) {
|
||||||
updateUI(cfg);
|
updateUI(cfg);
|
||||||
|
@ -60,14 +60,16 @@
|
|||||||
<div id="st-extended" style="float:left; display:none">
|
<div id="st-extended" style="float:left; display:none">
|
||||||
<form class="form-horizontal">
|
<form class="form-horizontal">
|
||||||
<div class="control-group info">
|
<div class="control-group info">
|
||||||
<label class="control-label"><a href="{{ xpath_link }}" target="_blank">{% trans 'setup.item_xpath' %}</a>:</label>
|
<label class="control-label">
|
||||||
|
<a class="label label-info" href="{{ xpath_link }}" target="_blank">?</a>
|
||||||
|
{% trans 'setup.item_xpath' %}:</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="ste-parent" placeholder="{% trans 'setup.skipped' %}" autocomplete="off"/>
|
<input type="text" id="ste-parent" class="input-xxlarge" placeholder="{% trans 'setup.skipped' %}" autocomplete="off"/>
|
||||||
<span class="help-inline" count-tpl="{% trans 'setup.Selected' %}"></span>
|
<span class="help-inline" count-tpl="{% trans 'setup.Selected' %}"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group info">
|
<div class="control-group info">
|
||||||
<label class="control-label"><a href="{{ xpath_link }}" target="_blank">{% trans 'setup.title_xpath' %}</a>:</label>
|
<label class="control-label">{% trans 'setup.title_xpath' %}:</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select disabled>
|
<select disabled>
|
||||||
<option selected="selected">{% trans 'setup.Required' %}</option>
|
<option selected="selected">{% trans 'setup.Required' %}</option>
|
||||||
@ -78,7 +80,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group info">
|
<div class="control-group info">
|
||||||
<label class="control-label"><a href="{{ xpath_link }}" target="_blank">{% trans 'setup.link_xpath' %}</a>:</label>
|
<label class="control-label">{% trans 'setup.link_xpath' %}:</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select style="width:100px" disabled>
|
<select style="width:100px" disabled>
|
||||||
<option>{% trans 'setup.Required' %}</option>
|
<option>{% trans 'setup.Required' %}</option>
|
||||||
@ -89,7 +91,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group info">
|
<div class="control-group info">
|
||||||
<label class="control-label"><a href="{{ xpath_link }}" target="_blank">{% trans 'setup.description_xpath' %}</a>:</label>
|
<label class="control-label">{% trans 'setup.description_xpath' %}:</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select style="width:100px" disabled>
|
<select style="width:100px" disabled>
|
||||||
<option selected="selected">{% trans 'setup.Required' %}</option>
|
<option selected="selected">{% trans 'setup.Required' %}</option>
|
||||||
@ -107,7 +109,8 @@
|
|||||||
confirm-text="You may loose your changes. Are you shure?"><img src="{% static 'frontend/images/target48.png' %}" /></a>
|
confirm-text="You may loose your changes. Are you shure?"><img src="{% static 'frontend/images/target48.png' %}" /></a>
|
||||||
<a id="st-ext-trigger" href="javascript:void(0)" style="display:none" class="has-tooltip" title="{% trans 'setup.extended_tip' %}"
|
<a id="st-ext-trigger" href="javascript:void(0)" style="display:none" class="has-tooltip" title="{% trans 'setup.extended_tip' %}"
|
||||||
data-trigger="hover focus manual" data-animation="true"><img src="{% static 'frontend/images/wrench48.png' %}" /></a>
|
data-trigger="hover focus manual" data-animation="true"><img src="{% static 'frontend/images/wrench48.png' %}" /></a>
|
||||||
<button id="create" class="btn btn-large btn-primary disabled" style="" data-page-url="{{ page_url }}" data-feed-page-url="{{ feed_page_url }}">{% trans 'setup.create' %} <i class="icon-arrow-right icon-white" style="margin-top: 3px"></i></button>
|
<button id="check" class="btn btn-large btn-primary" style="display:none">{% trans 'setup.check' %} <i class="icon-check icon-white" style="margin-top: 3px"></i></button>
|
||||||
|
<button id="create" class="btn btn-large btn-primary disabled" data-page-url="{{ page_url }}" data-feed-page-url="{{ feed_page_url }}">{% trans 'setup.create' %} <i class="icon-arrow-right icon-white" style="margin-top: 3px"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,7 +88,11 @@ def setup_get_selected_ids(request):
|
|||||||
return HttpResponse(json.dumps(resp))
|
return HttpResponse(json.dumps(resp))
|
||||||
|
|
||||||
def _get_link_xpath(title_xpath):
|
def _get_link_xpath(title_xpath):
|
||||||
return '('+ title_xpath +')[1]/ancestor-or-self::node()[name()="a"]/@href'
|
if title_xpath == './child::node()':
|
||||||
|
return './ancestor-or-self::node()[name()="a"]/@href'
|
||||||
|
else:
|
||||||
|
xpath = title_xpath[:len(title_xpath)-len('/child::node()')]
|
||||||
|
return xpath +'/ancestor-or-self::node()/@href'
|
||||||
|
|
||||||
def _create_feed(url, xpathes):
|
def _create_feed(url, xpathes):
|
||||||
feed_xpath = xpathes[0]
|
feed_xpath = xpathes[0]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user