From 40b4010ce4a03dc8b9834b72380e6577ebb3b419 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 8 Feb 2016 14:34:44 -0500 Subject: [PATCH] update metadata editor --- .../metadataeditor/metadataeditor.js | 49 +++----------- .../components/metadataeditor/personeditor.js | 65 +++++++++++++++++++ .../metadataeditor/personeditor.template.html | 38 +++++++++++ 3 files changed, 113 insertions(+), 39 deletions(-) create mode 100644 dashboard-ui/components/metadataeditor/personeditor.js create mode 100644 dashboard-ui/components/metadataeditor/personeditor.template.html diff --git a/dashboard-ui/components/metadataeditor/metadataeditor.js b/dashboard-ui/components/metadataeditor/metadataeditor.js index c661b036f3..3bfa8ca0d7 100644 --- a/dashboard-ui/components/metadataeditor/metadataeditor.js +++ b/dashboard-ui/components/metadataeditor/metadataeditor.js @@ -81,48 +81,19 @@ function editPerson(context, person, index) { - $('#popupEditPerson', context).popup("open"); + require(['components/metadataeditor/personeditor'], function (personeditor) { - $('#txtPersonName', context).val(person.Name || ''); - $('#selectPersonType', context).val(person.Type || ''); - $('#txtPersonRole', context).val(person.Role || ''); + personeditor.show(person).then(function (updatedPerson) { - if (index == null) { - index = ''; - } + var isNew = index == -1; - $("#fldPersonIndex", context).val(index); - } + if (isNew) { + currentItem.People.push(updatedPerson); + } - function savePersonInfo(page) { - - $('#popupEditPerson', page).popup("close"); - - var index = $("#fldPersonIndex", page).val(); - var person; - - var isNew = true; - - if (index) { - - isNew = false; - index = parseInt(index); - - person = currentItem.People[index]; - - } else { - person = {}; - } - - person.Name = $('#txtPersonName', page).val(); - person.Type = $('#selectPersonType', page).val(); - person.Role = $('#txtPersonRole', page).val(); - - if (isNew) { - currentItem.People.push(person); - } - - populatePeople(page, currentItem.People); + populatePeople(context, currentItem.People); + }); + }); } function init(context) { @@ -159,7 +130,7 @@ $("#btnAddPerson", context).on('click', function (event, data) { - editPerson(context, {}); + editPerson(context, {}, -1); }); } diff --git a/dashboard-ui/components/metadataeditor/personeditor.js b/dashboard-ui/components/metadataeditor/personeditor.js new file mode 100644 index 0000000000..293723f625 --- /dev/null +++ b/dashboard-ui/components/metadataeditor/personeditor.js @@ -0,0 +1,65 @@ +define(['paperdialoghelper'], function (paperDialogHelper) { + + return { + show: function (person) { + return new Promise(function (resolve, reject) { + + var xhr = new XMLHttpRequest(); + xhr.open('GET', 'components/metadataeditor/personeditor.template.html', true); + + xhr.onload = function (e) { + + var template = this.response; + var dlg = paperDialogHelper.createDialog({ + removeOnClose: true, + size: 'small' + }); + + dlg.classList.add('ui-body-b'); + dlg.classList.add('background-theme-b'); + + dlg.classList.add('formDialog'); + + var html = ''; + var submitted = false; + + html += Globalize.translateDocument(template); + + dlg.innerHTML = html; + document.body.appendChild(dlg); + + $('#txtPersonName', dlg).val(person.Name || ''); + $('#selectPersonType', dlg).val(person.Type || ''); + $('#txtPersonRole', dlg).val(person.Role || ''); + + paperDialogHelper.open(dlg); + + dlg.addEventListener('iron-overlay-closed', function () { + + if (submitted) { + resolve(person); + } else { + reject(); + } + }); + + dlg.querySelector('form').addEventListener('submit', function (e) { + + submitted = true; + + person.Name = $('#txtPersonName', dlg).val(); + person.Type = $('#selectPersonType', dlg).val(); + person.Role = $('#txtPersonRole', dlg).val() || null; + + paperDialogHelper.close(dlg); + + e.preventDefault(); + return false; + }); + } + + xhr.send(); + }); + } + }; +}); \ No newline at end of file diff --git a/dashboard-ui/components/metadataeditor/personeditor.template.html b/dashboard-ui/components/metadataeditor/personeditor.template.html new file mode 100644 index 0000000000..a730c529c2 --- /dev/null +++ b/dashboard-ui/components/metadataeditor/personeditor.template.html @@ -0,0 +1,38 @@ +
+ +
+ ${ButtonEdit} +
+
+ +
+ +
+ +
+ +
+
+ + +
+
+ +
${LabelPersonRoleHelp}
+
+
+ +

+ +

+
\ No newline at end of file