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 @@ ...@@ -19,7 +19,6 @@
<script src="{% get_media_prefix %}bootstrap/js/bootstrap.min.js" type="text/javascript"></script> <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="{% get_media_prefix %}loader-bootstrap.js" type="text/javascript"></script>
<script src="{% url 'js-catalog' %}" 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> <script src="{% get_media_prefix %}js/bootstrap-datepicker.js" type="text/javascript"></script>
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
......
...@@ -421,6 +421,7 @@ ...@@ -421,6 +421,7 @@
</div> </div>
<a href="{% url 'js-translate' unit_id=unit.id %}" class="hidden" id="js-translate"></a> <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 %} {% 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> <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 %} {% endif %}
......
...@@ -135,6 +135,19 @@ function failed_machine_translation(jqXHR, textStatus, errorThrown) { ...@@ -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) { function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n); return !isNaN(parseFloat(n)) && isFinite(n);
} }
...@@ -280,16 +293,14 @@ $(function () { ...@@ -280,16 +293,14 @@ $(function () {
return; return;
} }
mt_loaded = true; mt_loaded = true;
MACHINE_TRANSLATION_SERVICES.forEach(function (el, idx, ar) {
inc_loading(); inc_loading();
$.ajax({ $.ajax({
url: $('#js-translate').attr('href') + '?service=' + el, url: $('#js-mt-services').attr('href'),
success: process_machine_translation, success: load_mt_translations,
error: failed_machine_translation, error: failed_machine_translation,
dataType: 'json' dataType: 'json'
}); });
}); });
});
/* Git commit tooltip */ /* Git commit tooltip */
$(document).tooltip({ $(document).tooltip({
......
...@@ -97,10 +97,9 @@ class JSViewsTest(ViewTestCase): ...@@ -97,10 +97,9 @@ class JSViewsTest(ViewTestCase):
) )
self.assertContains(response, 'href="/exports/rss/') self.assertContains(response, 'href="/exports/rss/')
def test_js_config(self): def test_mt_services(self):
response = self.client.get(reverse('js-config')) 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 # Check we have dummy service listed
self.assertContains( self.assertIn('dummy', data)
response,
"'dummy'"
)
...@@ -173,21 +173,16 @@ def git_status_translation(request, project, subproject, lang): ...@@ -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 Generates list of installed machine translation services in JSON.
translaiton services.
''' '''
# Machine translation # Machine translation
machine_services = MACHINE_TRANSLATION_SERVICES.keys() machine_services = MACHINE_TRANSLATION_SERVICES.keys()
return render( return HttpResponse(
request, json.dumps(machine_services),
'js/config.js', content_type='application/json'
{
'machine_services': machine_services,
},
content_type='application/javascript'
) )
......
...@@ -587,9 +587,9 @@ urlpatterns = patterns( ...@@ -587,9 +587,9 @@ urlpatterns = patterns(
name='js-catalog' name='js-catalog'
), ),
url( url(
r'^js/config/$', r'^js/mt-services/$',
'weblate.trans.views.js.js_config', 'weblate.trans.views.js.mt_services',
name='js-config', name='js-mt-services',
), ),
url( url(
r'^js/translate/(?P<unit_id>[0-9]+)/$', 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