diff --git a/client/components/ExternalLibs/ExternalLibs.vue b/client/components/ExternalLibs/ExternalLibs.vue index b1f067de..2d8b54d2 100644 --- a/client/components/ExternalLibs/ExternalLibs.vue +++ b/client/components/ExternalLibs/ExternalLibs.vue @@ -420,9 +420,15 @@ class ExternalLibs extends Vue { } } - okAddBookmark() { + async okAddBookmark() { const link = this.addProtocol(this.bookmarkLink); - let index = this.getRootIndexByUrl(this.libs.groups, link); + let index = -1; + try { + index = this.getRootIndexByUrl(this.libs.groups, link); + } catch (e) { + await this.$root.stdDialog.alert('Неверный формат ссылки', 'Ошибка'); + return; + } //есть группа в закладках if (index >= 0) { @@ -431,17 +437,30 @@ class ExternalLibs extends Vue { if (!item || item.c != this.bookmarkDesc) { //добавляем let libs = _.cloneDeep(this.libs); + + if (libs.groups[index].list.length >= 100) { + await this.$root.stdDialog.alert('Достигнут предел количества закладок для этого сайта', 'Ошибка'); + return; + } + libs.groups[index].list.push({l: link, c: this.bookmarkDesc}); this.commitLibs(libs); } } else {//нет группы в закладках - //добавляем сначала группу let libs = _.cloneDeep(this.libs); + + if (libs.groups.length >= 100) { + await this.$root.stdDialog.alert('Достигнут предел количества различных сайтов в закладках', 'Ошибка'); + return; + } + + //добавляем сначала группу libs.groups.push({r: this.getOrigin(link), s: link, list: []}); index = this.getRootIndexByUrl(libs.groups, link); if (index >= 0) libs.groups[index].list.push({l: link, c: this.bookmarkDesc}); + this.commitLibs(libs); }