diff options
-rw-r--r-- | askbot/media/js/utils.js | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/askbot/media/js/utils.js b/askbot/media/js/utils.js index 8aa582b2..dfec46cc 100644 --- a/askbot/media/js/utils.js +++ b/askbot/media/js/utils.js @@ -1690,28 +1690,36 @@ GroupDropdown.prototype.decorate = function(element){ }; GroupDropdown.prototype.insertGroup = function(group_name, url){ - var new_group_li = this.makeElement('li'); - new_group_a = this.makeElement('a'); - new_group_a.attr('href', url); - new_group_a.attr('class', 'group-name'); - new_group_a.text(group_name); - new_group_li.append(new_group_a); - links_array = this._element.find('a') - for (i=1; i < links_array.length; i++){ - var value = links_array[i]; - if (value.text.toLowerCase() < group_name.toLowerCase()){ - if (i == links_array.length - 1){ - new_group_li.insertAfter(this._element.find('li')[i-1]) - break; - } else{ - continue; - } - } else { - new_group_li.insertAfter(this._element.find('li')[i-1]) - break; + var new_group_li = this.makeElement('li'); + new_group_a = this.makeElement('a'); + new_group_a.attr('href', url); + new_group_a.attr('class', 'group-name'); + new_group_a.text(group_name); + new_group_li.append(new_group_a); + links_array = this._element.find('a') + for (i=1; i < links_array.length; i++){ + var listedName = links_array[i].text; + var cleanedListedName = listedName.toLowerCase(); + var cleanedNewName = group_name.toLowerCase() + if (listedName < newName) { + if (i == links_array.length - 1){ + new_group_li.insertAfter(this._element.find('li')[i-1]) + break; + } else { + continue; + } + } else if (cleanedNewName === cleanedNewName) { + var message = interpolate(gettext( + 'Group %(name)s already exists. Group names are case-insensitive.' + ), {'name': listedName}, true + ); + notify.show(message); + return; + } else { + new_group_li.insertAfter(this._element.find('li')[i-1]) + break; + } } - - } }; GroupDropdown.prototype._add_group_handler = function(group_name){ |