Merge pull request #21831 from owncloud/move-descriptive-tag-to-core
Move getDescriptiveTag to core
This commit is contained in:
commit
d4ff71c1b6
|
@ -45,6 +45,7 @@
|
|||
"mimetypelist.js",
|
||||
"files/fileinfo.js",
|
||||
"files/client.js",
|
||||
"systemtags/systemtags.js",
|
||||
"systemtags/systemtagmodel.js",
|
||||
"systemtags/systemtagscollection.js",
|
||||
"systemtags/systemtagsmappingcollection.js",
|
||||
|
|
|
@ -43,9 +43,6 @@
|
|||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @namespace
|
||||
*/
|
||||
OC.SystemTags = OC.SystemTags || {};
|
||||
OC.SystemTags.SystemTagModel = SystemTagModel;
|
||||
})(OC);
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Copyright (c) 2016
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
(function(OC) {
|
||||
/**
|
||||
* @namespace
|
||||
*/
|
||||
OC.SystemTags = {
|
||||
/**
|
||||
*
|
||||
* @param {OC.SystemTags.SystemTagModel|Object|String} tag
|
||||
* @return {jQuery}
|
||||
*/
|
||||
getDescriptiveTag: function(tag) {
|
||||
if (_.isUndefined(tag.name) && !_.isUndefined(tag.toJSON)) {
|
||||
tag = tag.toJSON();
|
||||
}
|
||||
|
||||
if (_.isUndefined(tag.name)) {
|
||||
return $('<span>').addClass('non-existing-tag').text(
|
||||
t('core', 'Non-existing tag #{tag}', {
|
||||
tag: tag
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
var $span = $('<span>'),
|
||||
$tag = $('<em>').text(
|
||||
t('core', '({uservisible}, {userassignable})', {
|
||||
uservisible: tag.userVisible ? t('core', 'visible') : t('core', 'invisible'),
|
||||
userassignable: tag.userAssignable ? t('core', 'assignable') : t('core', 'not assignable')
|
||||
})
|
||||
);
|
||||
$span.append(escapeHTML(tag.name) + ' ');
|
||||
$span.append($tag);
|
||||
return $span;
|
||||
}
|
||||
};
|
||||
})(OC);
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* ownCloud
|
||||
*
|
||||
* @author Joas Schilling
|
||||
* @copyright 2016 Joas Schilling <nickvergessen@owncloud.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
describe('OC.SystemTags tests', function() {
|
||||
it('describes non existing tag', function() {
|
||||
var $return = OC.SystemTags.getDescriptiveTag('23');
|
||||
expect($return.text()).toEqual('Non-existing tag #23');
|
||||
expect($return.hasClass('non-existing-tag')).toEqual(true);
|
||||
});
|
||||
|
||||
it('describes SystemTagModel', function() {
|
||||
var tag = new OC.SystemTags.SystemTagModel({
|
||||
id: 23,
|
||||
name: 'Twenty Three',
|
||||
userAssignable: true,
|
||||
userVisible: true
|
||||
});
|
||||
var $return = OC.SystemTags.getDescriptiveTag(tag);
|
||||
expect($return.text()).toEqual('Twenty Three (visible, assignable)');
|
||||
expect($return.hasClass('non-existing-tag')).toEqual(false);
|
||||
});
|
||||
|
||||
it('describes JSON tag object', function() {
|
||||
var $return = OC.SystemTags.getDescriptiveTag({
|
||||
id: 42,
|
||||
name: 'Fourty Two',
|
||||
userAssignable: false,
|
||||
userVisible: false
|
||||
});
|
||||
expect($return.text()).toEqual('Fourty Two (invisible, not assignable)');
|
||||
expect($return.hasClass('non-existing-tag')).toEqual(false);
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue