Skip to content

Commit 37aa43e

Browse files
committed
Fix issue sillsdev/web-languageforge/#102 Display sentence translations
User requested "List View" to also display translations of the example sentence. Former-commit-id: 70bdea6
1 parent df2c5a5 commit 37aa43e

File tree

6 files changed

+42
-8
lines changed

6 files changed

+42
-8
lines changed

src/angular-app/languageforge/lexicon/directive/dc-rendered.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<span class="dc-rendered-definition" ng-bind-html="sense.meaning"></span>
1111
<span class="dc-rendered-exampleContainer" ng-repeat="example in sense.examples">
1212
<span class="dc-rendered-exampleSentence" ng-bind-html="example.sentence"></span>
13+
<span class="dc-rendered-exampleSentenceTranslation" ng-bind-html="example.sentenceTranslation"></span>
1314
</span>
1415
</span>
15-
</div>
16+
</div>

src/angular-app/languageforge/lexicon/directive/dc-rendered.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@ angular.module('palaso.ui.dc.rendered', ['lexicon.services'])
4141
angular.forEach(senseModel.examples, function (exampleModel) {
4242
sense.examples.push({
4343
sentence:
44-
utils.getExampleSentence($scope.config.fields.senses.fields.examples, exampleModel)
45-
});
44+
utils.getExample($scope.config.fields.senses.fields.examples,
45+
exampleModel, 'sentence') }, {
46+
sentenceTranslation:
47+
utils.getExample($scope.config.fields.senses.fields.examples,
48+
exampleModel, 'translation') });
4649
});
4750

4851
$scope.entry.senses.push(sense);

src/angular-app/languageforge/lexicon/directive/dc-rendered.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
}
1515
.dc-rendered-exampleContainer {}
1616
.dc-rendered-exampleSentence {
17-
margin: 0 3px 0 3px;
17+
margin: 0 1px 0 1px;
1818
font-style: italic;
1919
}
20+
.dc-rendered-exampleSentenceTranslation {
21+
margin: 0 1px 0 1px;
22+
font-style: normal;
23+
}

src/angular-app/languageforge/lexicon/directive/dc-sense.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ angular.module('palaso.ui.dc.sense', ['palaso.ui.dc.fieldrepeat', 'palaso.ui.dc.
2626

2727
$scope.deleteExample = function deleteExample(index) {
2828
var deletemsg = "Are you sure you want to delete the example <b>' " +
29-
utils.getExampleSentence($scope.config.fields.examples, $scope.model.examples[index]) +
30-
" '</b>";
29+
utils.getExample($scope.config.fields.examples, $scope.model.examples[index],
30+
'sentence') + " '</b>";
3131
modal.showModalSimple('Delete Example', deletemsg, 'Cancel', 'Delete Example')
3232
.then(function () {
3333
$scope.model.examples.splice(index, 1);

src/angular-app/languageforge/lexicon/js/lexicon.services.utils.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,15 @@ angular.module('lexicon.services')
127127
return meaning;
128128
};
129129

130-
this.getExampleSentence = function getExampleSentence(config, example) {
131-
return getFields(config, example, 'sentence');
130+
/**
131+
* @param config example config obj
132+
* @param example
133+
* @field string 'sentence' or 'translation'
134+
*/
135+
this.getExample = function getExampleSentence(config, example, field) {
136+
if (field == 'sentence' || field == 'translation') {
137+
return getFields(config, example, field);
138+
}
132139
};
133140

134141
this.getPartOfSpeechAbbreviation = function getPartOfSpeechAbbreviation(posModel, optionlists) {

test/app/languageforge/lexicon/editor/e2e/editor-entry.spec.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,25 @@ describe('Editor List and Entry', function () {
384384
editorPage.edit.senses.first().click();
385385
});
386386

387+
it('dictionary citation reflects example sentences and translations', function () {
388+
expect(editorPage.edit.renderedDiv.getText()).toContain(
389+
constants.testMultipleMeaningEntry1.senses[0].examples[0].sentence.th.value);
390+
expect(editorPage.edit.renderedDiv.getText()).toContain(
391+
constants.testMultipleMeaningEntry1.senses[0].examples[0].translation.en.value);
392+
expect(editorPage.edit.renderedDiv.getText()).toContain(
393+
constants.testMultipleMeaningEntry1.senses[0].examples[1].sentence.th.value);
394+
expect(editorPage.edit.renderedDiv.getText()).toContain(
395+
constants.testMultipleMeaningEntry1.senses[0].examples[1].translation.en.value);
396+
expect(editorPage.edit.renderedDiv.getText()).toContain(
397+
constants.testMultipleMeaningEntry1.senses[1].examples[0].sentence.th.value);
398+
expect(editorPage.edit.renderedDiv.getText()).toContain(
399+
constants.testMultipleMeaningEntry1.senses[1].examples[0].translation.en.value);
400+
expect(editorPage.edit.renderedDiv.getText()).toContain(
401+
constants.testMultipleMeaningEntry1.senses[1].examples[1].sentence.th.value);
402+
expect(editorPage.edit.renderedDiv.getText()).toContain(
403+
constants.testMultipleMeaningEntry1.senses[1].examples[1].translation.en.value);
404+
});
405+
387406
it('word with multiple definitions: edit page has correct definitions, parts of speech',
388407
function () {
389408
expect(editorPage.edit.getFieldValues('Definition')).toEqual([

0 commit comments

Comments
 (0)