Generate legacy image placeholder text by taking first letters

https://github.com/nextcloud/server/issues/19335
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
This commit is contained in:
Sergey Shliakhov 2020-02-11 07:12:42 +01:00 committed by npmbuildbot[bot]
parent a1c1b354fc
commit 09ecf4b4eb
4 changed files with 47 additions and 3 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,43 @@
/**
* Copyright (c) 2019 Serhii Shliakhov <shlyakhov.up@gmail.com>
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
describe('jquery.placeholder tests', function() {
var $div;
beforeEach(function() {
$('#testArea').append($('<div id="placeholderdiv">'));
$div = $('#placeholderdiv');
});
afterEach(function() {
$div.remove();
});
describe('placeholder text', function() {
it('shows one first letter if one word in a input text', function() {
spyOn($div, 'html');
$div.imageplaceholder('Seed', 'Name')
expect($div.html).toHaveBeenCalledWith('N');
});
it('shows two first letters if two words in a input text', function() {
spyOn($div, 'html');
$div.imageplaceholder('Seed', 'First Second')
expect($div.html).toHaveBeenCalledWith('FS');
});
it('shows two first letters if more then two words in a input text', function() {
spyOn($div, 'html');
$div.imageplaceholder('Seed', 'First Second Middle')
expect($div.html).toHaveBeenCalledWith('FS');
});
});
});

View File

@ -158,7 +158,8 @@ $.fn.imageplaceholder = function(seed, text, size) {
this.css('font-size', (height * 0.55) + 'px')
if (seed !== null && seed.length) {
this.html(text[0].toUpperCase())
var placeholderText = text.split(' ', 2).map((word) => word[0].toUpperCase()).join('')
this.html(placeholderText);
}
}