Improve item name generation from channel (#660)

Fixes #549 (hopefully for good this time?).

Signed-off-by: Yannick Schaus <github@schaus.net>
pull/675/head
Yannick Schaus 2020-12-17 19:22:43 +01:00 committed by GitHub
parent e037b6d49a
commit 36ba1a555f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 5 deletions

View File

@ -187,8 +187,8 @@ export default {
let newItemName = (this.newItemsPrefix) ? this.newItemsPrefix : diacritic.clean(this.thing.label).replace(/[^0-9a-z]/gi, '')
newItemName += '_'
let suffix = channel.label || channelType.label || channel.id
if (this.thing.channels.filter((c) => c.label === suffix).length > 1 || this.channelTypes.filter((c) => c.label === suffix).length > 1) {
suffix = channel.id.replace('#', '_')
if (this.thing.channels.filter((c) => c.label === suffix || (c.channelTypeUID && this.channelTypesMap[c.channelTypeUID] && this.channelTypesMap[c.channelTypeUID].label === suffix)).length > 1) {
suffix = channel.id.replace('#', '_').replace(/(^\w{1})|(_+\w{1})/g, letter => letter.toUpperCase())
}
newItemName += diacritic.clean(suffix).replace(/[^0-9a-z_]/gi, '')
const defaultTags = (channel.defaultTags.length > 0) ? channel.defaultTags : channelType.tags

View File

@ -63,7 +63,7 @@
</f7-block-footer>
<channel-list :thing="selectedThing" :thingType="selectedThingType" :channelTypes="selectedThingChannelTypes"
:multiple-links-mode="true" :new-items-prefix="(createEquipment) ? newEquipmentItem.name : (parentGroup) ? parentGroup.name : ''"
@selected="(channel) => toggleSelect(channel)" :new-items="newPointItems" />
:new-items="newPointItems" />
</div>
</f7-col>
</f7-block>

View File

@ -27,8 +27,8 @@ export default (thing, channelTypes, newEquipmentItem, parentGroupsForEquipment,
let newItemName = (newEquipmentItem) ? newEquipmentItem.name : diacritic.clean(thing.label).replace(/[^0-9a-z]/gi, '')
newItemName += '_'
let suffix = channel.label || channel.id
if (thing.channels.filter((c) => c.label === suffix).length > 1) {
suffix = channel.id.replace('#', '_')
if (thing.channels.filter((c) => c.label === suffix || (c.channelTypeUID && channelTypesMap[c.channelTypeUID] && channelTypesMap[c.channelTypeUID].label === suffix)).length > 1) {
suffix = channel.id.replace('#', '_').replace(/(^\w{1})|(_+\w{1})/g, letter => letter.toUpperCase())
}
newItemName += diacritic.clean(suffix).replace(/[^0-9a-z_]/gi, '')
const defaultTags = (channel.defaultTags.length > 0) ? channel.defaultTags : channelType.tags