Commit edf1259a authored by Weblate's avatar Weblate

Merge remote-tracking branch 'origin/master'

parents 2a1e430f 187c59e1
var MACHINE_TRANSLATION_SERVICES = [{% if machine_services %}'{{ machine_services|join:"','" }}'{% endif %}];
......@@ -19,7 +19,6 @@
<script src="{% get_media_prefix %}bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<script src="{% get_media_prefix %}loader-bootstrap.js" type="text/javascript"></script>
<script src="{% url 'js-catalog' %}" type="text/javascript"></script>
<script src="{% url 'js-config' %}" type="text/javascript"></script>
<script src="{% get_media_prefix %}js/bootstrap-datepicker.js" type="text/javascript"></script>
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
......
......@@ -421,6 +421,7 @@
</div>
<a href="{% url 'js-translate' unit_id=unit.id %}" class="hidden" id="js-translate"></a>
<a href="{% url 'js-mt-services' %}" class="hidden" id="js-mt-services"></a>
{% if update_lock %}
<a href="{% url 'js-lock' project=unit.translation.subproject.project.slug subproject=unit.translation.subproject.slug lang=unit.translation.language.code %}" class="hidden" id="js-lock"></a>
{% endif %}
......
......@@ -135,6 +135,19 @@ function failed_machine_translation(jqXHR, textStatus, errorThrown) {
);
}
function load_mt_translations(data, textStatus, jqXHR) {
dec_loading();
data.forEach(function (el, idx, ar) {
inc_loading();
$.ajax({
url: $('#js-translate').attr('href') + '?service=' + el,
success: process_machine_translation,
error: failed_machine_translation,
dataType: 'json'
});
});
}
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
......@@ -280,14 +293,12 @@ $(function () {
return;
}
mt_loaded = true;
MACHINE_TRANSLATION_SERVICES.forEach(function (el, idx, ar) {
inc_loading();
$.ajax({
url: $('#js-translate').attr('href') + '?service=' + el,
success: process_machine_translation,
error: failed_machine_translation,
dataType: 'json'
});
inc_loading();
$.ajax({
url: $('#js-mt-services').attr('href'),
success: load_mt_translations,
error: failed_machine_translation,
dataType: 'json'
});
});
......
......@@ -97,10 +97,9 @@ class JSViewsTest(ViewTestCase):
)
self.assertContains(response, 'href="/exports/rss/')
def test_js_config(self):
response = self.client.get(reverse('js-config'))
def test_mt_services(self):
response = self.client.get(reverse('js-mt-services'))
self.assertEqual(response.status_code, 200)
data = json.loads(response.content)
# Check we have dummy service listed
self.assertContains(
response,
"'dummy'"
)
self.assertIn('dummy', data)
......@@ -173,21 +173,16 @@ def git_status_translation(request, project, subproject, lang):
)
def js_config(request):
def mt_services(request):
'''
Generates settings for javascript. Includes things like
translaiton services.
Generates list of installed machine translation services in JSON.
'''
# Machine translation
machine_services = MACHINE_TRANSLATION_SERVICES.keys()
return render(
request,
'js/config.js',
{
'machine_services': machine_services,
},
content_type='application/javascript'
return HttpResponse(
json.dumps(machine_services),
content_type='application/json'
)
......
......@@ -587,9 +587,9 @@ urlpatterns = patterns(
name='js-catalog'
),
url(
r'^js/config/$',
'weblate.trans.views.js.js_config',
name='js-config',
r'^js/mt-services/$',
'weblate.trans.views.js.mt_services',
name='js-mt-services',
),
url(
r'^js/translate/(?P<unit_id>[0-9]+)/$',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment