From 48a8aa14a3552b4767500549d19f0753166967bc Mon Sep 17 00:00:00 2001 From: ddm Date: Tue, 27 Aug 2013 10:51:21 +0200 Subject: [PATCH] SEO keywords must be unique bzr revid: ddm@openerp.com-20130827085121-2vkxscag56dze107 --- addons/website/static/src/js/website.js | 19 ++++++++++++++++--- addons/website/static/src/xml/website.xml | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index e785b0f18d7..d5b1cadcef8 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -248,6 +248,16 @@ this.$el.modal(); }, + listKeywords: function () { + var result = []; + this.$el.find('.js_seo_keyword').each(function () { + result.push($(this).text()); + }) + return _.uniq(result); + }, + existsKeyword: function (word) { + return _.contains(this.listKeywords(), word); + }, confirmKeyword: function (e) { if (e.keyCode == 13) { this.addKeyword(); @@ -256,11 +266,14 @@ }, addKeyword: function () { var word = this.$el.find('input[name=seo_page_keywords]').val(); - new website.seo.Keyword({ - keyword: word - }).appendTo(this.$el.find('.js_seo_keywords_list')); + if (!this.existsKeyword(word)) { + new website.seo.Keyword({ + keyword: word + }).appendTo(this.$el.find('.js_seo_keywords_list')); + } }, update: function () { + console.log(this.listKeywords()); // TODO: Persist changes }, close: function () { diff --git a/addons/website/static/src/xml/website.xml b/addons/website/static/src/xml/website.xml index 978c1b22591..d3bab78faf9 100644 --- a/addons/website/static/src/xml/website.xml +++ b/addons/website/static/src/xml/website.xml @@ -99,7 +99,7 @@ -
  • +