Commit f507e4f9 authored by Weblate's avatar Weblate

Merge remote-tracking branch 'origin/master'

parents 623b49cb a7802a74
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
{{ unit.1.checksum }} {{ unit.1.checksum }}
{{ unit.1.target }} {{ unit.1.target }}
<br /> <br />
{{ unit.1.fuzzy }}<label for="id_{{ unit.0.checksum }}_fuzzy">{% trans "Fuzzy" context "Message is fuzzy" %}</label> {{ unit.1.fuzzy }} <label for="id_{{ unit.0.checksum }}_fuzzy">{% trans "Fuzzy" context "Message is fuzzy" %}</label>
</form> </form>
</td> </td>
</tr> </tr>
......
...@@ -182,14 +182,15 @@ function zen_editor(e) { ...@@ -182,14 +182,15 @@ function zen_editor(e) {
$row.addClass('translation-modified'); $row.addClass('translation-modified');
var form = $row.find('form'); var form = $row.find('form');
$('#loading-' + checksum).show(); var statusdiv = $('#status-' + checksum).hide();
var loadingdiv = $('#loading-' + checksum).show();
$.post( $.post(
form.attr('action'), form.attr('action'),
form.serialize(), form.serialize(),
function (data) { function (data) {
var messages = $('<div>' + data + '</div>'); var messages = $('<div>' + data + '</div>');
var statusdiv = $('#status-' + checksum); loadingdiv.hide();
$('#loading-' + checksum).hide(); statusdiv.show();
if (messages.find('.alert-danger').length > 0) { if (messages.find('.alert-danger').length > 0) {
statusdiv.attr('class', 'glyphicon-remove-sign text-danger'); statusdiv.attr('class', 'glyphicon-remove-sign text-danger');
} else if (messages.find('.alert-warning').length > 0) { } else if (messages.find('.alert-warning').length > 0) {
...@@ -199,10 +200,13 @@ function zen_editor(e) { ...@@ -199,10 +200,13 @@ function zen_editor(e) {
} else { } else {
statusdiv.attr('class', 'glyphicon-ok-sign text-success'); statusdiv.attr('class', 'glyphicon-ok-sign text-success');
} }
statusdiv.addClass('glyphicon').tooltip({ statusdiv.addClass('glyphicon').tooltip('destroy');
'html': true, if (data.trim() !== '') {
'title': data statusdiv.tooltip({
}); 'html': true,
'title': data
});
};
$row.removeClass('translation-modified').addClass('translation-saved'); $row.removeClass('translation-modified').addClass('translation-saved');
} }
); );
......
...@@ -302,6 +302,7 @@ class TranslationForm(ChecksumForm): ...@@ -302,6 +302,7 @@ class TranslationForm(ChecksumForm):
), ),
'fuzzy': unit.fuzzy, 'fuzzy': unit.fuzzy,
} }
kwargs['auto_id'] = 'id_{0}_%s'.format(unit.checksum)
tabindex = kwargs.pop('tabindex', 100) tabindex = kwargs.pop('tabindex', 100)
super(TranslationForm, self).__init__( super(TranslationForm, self).__init__(
translation, *args, **kwargs translation, *args, **kwargs
......
...@@ -27,6 +27,7 @@ from whoosh.filedb.filestore import FileStorage ...@@ -27,6 +27,7 @@ from whoosh.filedb.filestore import FileStorage
from whoosh import qparser from whoosh import qparser
from django.db.models.signals import post_syncdb from django.db.models.signals import post_syncdb
from django.db.utils import IntegrityError from django.db.utils import IntegrityError
from django.db import transaction
from weblate import appsettings from weblate import appsettings
from whoosh.writing import AsyncWriter, BufferedWriter from whoosh.writing import AsyncWriter, BufferedWriter
from django.dispatch import receiver from django.dispatch import receiver
...@@ -158,10 +159,11 @@ def update_index_unit(unit, source=True): ...@@ -158,10 +159,11 @@ def update_index_unit(unit, source=True):
if appsettings.OFFLOAD_INDEXING: if appsettings.OFFLOAD_INDEXING:
from weblate.trans.models.search import IndexUpdate from weblate.trans.models.search import IndexUpdate
try: try:
IndexUpdate.objects.create( with transaction.atomic():
unit=unit, IndexUpdate.objects.create(
source=source, unit=unit,
) source=source,
)
except IntegrityError: except IntegrityError:
update = IndexUpdate.objects.get(unit=unit) update = IndexUpdate.objects.get(unit=unit)
if not update.source and source: if not update.source and source:
......
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