From 73c61941e28579dc92ea094fdf3272bcb68ae437 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Wed, 2 Sep 2015 19:02:06 +0200 Subject: [PATCH] Tags in FileInfo map must be an array Fixes FileList.elementToFile to make an array for the tags instead of keeping the original joined string --- apps/files/js/tagsplugin.js | 8 +++++++- apps/files/tests/js/tagspluginspec.js | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js index ed1105a170..609e38ca9a 100644 --- a/apps/files/js/tagsplugin.js +++ b/apps/files/js/tagsplugin.js @@ -150,7 +150,13 @@ var oldElementToFile = fileList.elementToFile; fileList.elementToFile = function($el) { var fileInfo = oldElementToFile.apply(this, arguments); - fileInfo.tags = $el.attr('data-tags') || []; + var tags = $el.attr('data-tags'); + if (_.isUndefined(tags)) { + tags = ''; + } + tags = tags.split('|'); + tags = _.without(tags, ''); + fileInfo.tags = tags; return fileInfo; }; }, diff --git a/apps/files/tests/js/tagspluginspec.js b/apps/files/tests/js/tagspluginspec.js index 5309973cf4..950fb75425 100644 --- a/apps/files/tests/js/tagspluginspec.js +++ b/apps/files/tests/js/tagspluginspec.js @@ -112,4 +112,19 @@ describe('OCA.Files.TagsPlugin tests', function() { expect($action.find('img').attr('src')).toEqual(OC.imagePath('core', 'actions/star')); }); }); + describe('elementToFile', function() { + it('returns tags', function() { + fileList.setFiles(testFiles); + var $tr = fileList.findFileEl('One.txt'); + var data = fileList.elementToFile($tr); + expect(data.tags).toEqual(['tag1', 'tag2']); + }); + it('returns empty array when no tags present', function() { + delete testFiles[0].tags; + fileList.setFiles(testFiles); + var $tr = fileList.findFileEl('One.txt'); + var data = fileList.elementToFile($tr); + expect(data.tags).toEqual([]); + }); + }); });