return hashIndex >= 0 ? url.substring(0, hashIndex) : url;
},
title: function () {
- return ($('title').length > 0) && $('title').text() && $('title').text().trim();
+ var $title = $('title');
+ return ($title.length > 0) && $title.text() && $title.text().trim();
},
changeTitle: function (title) {
// TODO create tag if missing
},
description: function () {
var $description = $('meta[name=description]');
- return ($description.length > 0) && $description.attr('value') && $description.attr('value').trim();
+ return ($description.length > 0) && ($description.attr('value') && $description.attr('value').trim());
},
changeDescription: function (description) {
// TODO create tag if missing
$modal.find('.js_seo_page_url').text(htmlPage.url());
$modal.find('input[name=seo_page_title]').val(htmlPage.title());
$modal.find('textarea[name=seo_page_description]').val(htmlPage.description());
- self.suggestImprovements();
- self.imageList = new website.seo.ImageList(self, { page: htmlPage });
- if (htmlPage.images().length === 0) {
- $modal.find('.js_image_section').remove();
- } else {
- self.imageList.appendTo($modal.find('.js_seo_image_list'));
- }
+ // self.suggestImprovements();
+ // self.imageList = new website.seo.ImageList(self, { page: htmlPage });
+ // if (htmlPage.images().length === 0) {
+ // $modal.find('.js_image_section').remove();
+ // } else {
+ // self.imageList.appendTo($modal.find('.js_seo_image_list'));
+ // }
self.keywordList = new website.seo.KeywordList(self, { page: htmlPage });
self.keywordList.on('list-full', self, function () {
$modal.find('input[name=seo_page_keywords]')
self.keywordList.add(word);
});
self.keywordList.appendTo($modal.find('.js_seo_keywords_list'));
+ self.disableUnsavableFields();
$modal.modal();
},
+ disableUnsavableFields: function () {
+ var $modal = this.$el;
+ this.loadMetaData().then(function (data) {
+ var canEditTitle = data && ('website_meta_title' in data);
+ var canEditDescription = data && ('website_meta_description' in data);
+ var canEditKeywords = data && ('website_meta_keywords' in data);
+ if (!canEditTitle) {
+ $modal.find('input[name=seo_page_title]').attr('disabled', true);
+ }
+ if (!canEditDescription) {
+ $modal.find('textarea[name=seo_page_description]').attr('disabled', true);
+ }
+ if (!canEditTitle && !canEditDescription && !canEditKeywords) {
+ $modal.find('button[data-action=update]').attr('disabled', true);
+ }
+ });
+ },
suggestImprovements: function () {
var tips = [];
var self = this;
},
update: function () {
var self = this;
- var data = {
- website_meta_title: self.htmlPage.title(),
- website_meta_description: self.htmlPage.description(),
- website_meta_keywords: self.keywordList.keywords().join(", "),
- };
+ var data = {};
+ if (!this.htmlPage.isTitleEditable()) {
+ data.website_meta_title = self.htmlPage.title();
+ }
+ if (!this.htmlPage.isDescriptionEditable()) {
+ data.website_meta_description = self.htmlPage.description();
+ }
+ if (!this.htmlPage.isKeywordsEditable()) {
+ data.website_meta_keywords = self.keywordList.keywords().join(", ");
+ }
self.saveMetaData(data).then(function () {
self.$el.modal('hide');
});