From 1d501de6c49eed2c153d3530a9a8bb0946113bbd Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 21 Dec 2014 13:58:17 -0500 Subject: [PATCH] start on content type setting --- dashboard-ui/edititemmetadata.html | 4 ++ dashboard-ui/scripts/edititemmetadata.js | 57 ++++++++++++++++++++++-- 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/dashboard-ui/edititemmetadata.html b/dashboard-ui/edititemmetadata.html index f4068d16fe..8c19b91888 100644 --- a/dashboard-ui/edititemmetadata.html +++ b/dashboard-ui/edititemmetadata.html @@ -44,6 +44,10 @@
+
diff --git a/dashboard-ui/scripts/edititemmetadata.js b/dashboard-ui/scripts/edititemmetadata.js index 76a6301dba..6758b736cf 100644 --- a/dashboard-ui/scripts/edititemmetadata.js +++ b/dashboard-ui/scripts/edititemmetadata.js @@ -1,6 +1,7 @@ (function ($, document, window) { var currentItem; + var metadataEditorInfo; function updateTabs(page, item) { @@ -21,6 +22,7 @@ $.when(promise1, promise2).done(function (response1, response2) { var item = response1[0]; + metadataEditorInfo = response2[0]; currentItem = item; @@ -31,10 +33,11 @@ $('.editPageInnerContent', page).show(); } - var metadataEditorInfo = response2[0]; var languages = metadataEditorInfo.Cultures; var countries = metadataEditorInfo.Countries; + renderContentTypeOptions(page, metadataEditorInfo); + loadExternalIds(page, item, metadataEditorInfo.ExternalIdInfos); Dashboard.populateLanguages($('#selectLanguage', page), languages); @@ -99,6 +102,24 @@ }); } + function renderContentTypeOptions(page, metadataInfo) { + + if (metadataInfo.ContentTypeOptions.length) { + $('#fldContentType', page).show(); + } else { + $('#fldContentType', page).hide(); + } + + var html = metadataInfo.ContentTypeOptions.map(function (i) { + + + return ''; + + }).join(''); + + $('#selectContentType', page).html(html).val(metadataInfo.ContentType || '').selectmenu('refresh'); + } + function onExternalIdChange() { var formatString = this.getAttribute('data-formatstring'); @@ -871,17 +892,45 @@ var tagline = $('#txtTagline', form).val(); item.Taglines = tagline ? [tagline] : []; - ApiClient.updateItem(item).done(function () { + self.submitUpdatedItem(form, item); + + return false; + }; + + self.submitUpdatedItem = function (form, item) { + + function afterContentTypeUpdated() { Dashboard.alert(Globalize.translate('MessageItemSaved')); MetadataEditor.getItemPromise().done(function (i) { $(form).parents('.page').trigger('itemsaved', [i]); }); + } + + ApiClient.updateItem(item).done(function () { + + var newContentType = $('#selectContentType', form).val() || ''; + + if ((metadataEditorInfo.ContentType || '') != newContentType) { + + ApiClient.ajax({ + + url: ApiClient.getUrl('Items/' + item.Id + '/ContentType', { + ContentType: newContentType + }), + + type: 'POST' + + }).done(function () { + afterContentTypeUpdated(); + }); + + } else { + afterContentTypeUpdated(); + } }); - - return false; }; self.getDateFromForm = function (form, element, property) {