diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json index 44713accdb..5cacad0670 100644 --- a/domain-server/resources/describe-settings.json +++ b/domain-server/resources/describe-settings.json @@ -1,6 +1,12 @@ { "version": 1.8, "settings": [ + { + "name": "label", + "label": "Label", + "settings": [ + ] + }, { "name": "metaverse", "label": "Metaverse / Networking", diff --git a/domain-server/resources/web/settings/index.shtml b/domain-server/resources/web/settings/index.shtml index 038b5a822e..d4c716f6f2 100644 --- a/domain-server/resources/web/settings/index.shtml +++ b/domain-server/resources/web/settings/index.shtml @@ -25,14 +25,14 @@ - +
@@ -43,7 +43,7 @@ <% _.each(descriptions, function(group){ %> <% var settings = _.partition(group.settings, function(value, index) { return !value.deprecated })[0] %> <% split_settings = _.partition(settings, function(value, index) { return !value.advanced }) %> - <% isAdvanced = _.isEmpty(split_settings[0]) %> + <% isAdvanced = _.isEmpty(split_settings[0]) && !_.isEmpty(split_settings[1]) %> <% if (isAdvanced) { %> <% $("a[href=#" + group.name + "]").addClass('advanced-setting').hide() %> <% } %> diff --git a/domain-server/resources/web/settings/js/settings.js b/domain-server/resources/web/settings/js/settings.js index e44f3578a3..8de48fa666 100644 --- a/domain-server/resources/web/settings/js/settings.js +++ b/domain-server/resources/web/settings/js/settings.js @@ -493,8 +493,10 @@ function setupHFAccountButton() { var el; if (hasAccessToken) { - el = ""; + el = "

"; + el += ""; el += ""; + el += "

"; el = $(el); } else { // setup an object for the settings we want our button to have @@ -563,14 +565,8 @@ function prepareAccessTokenPrompt() { console.log("Prepping access token prompt"); - // if the user doesn't have a domain ID set, give them the option to create one now - if (!Settings.data.values.metaverse.id) { - // show domain ID selection alert - showDomainIDChoiceAlert(); - } else { - swal.close(); - saveSettings(); - } + swal.close(); + saveSettings(); }); } @@ -633,6 +629,8 @@ function showDomainCreationAlert(justConnected) { }); } +//function createDomainID() + function createNewDomainID(description, justConnected) { // get the JSON object ready that we'll use to create a new domain var domainJSON = { @@ -732,13 +730,14 @@ function domainIDIsSet() { } function setupDomainLabelSetting() { - if (!domainIDIsSet()) { + if (!domainIDIsSet() || !accessTokenIsSet()) { + $(".panel#label").hide(); return; } var html = "
" html += "Specify a label for your domain"; - html += ""; + html += ""; html += "
"; var link = $("Edit"); @@ -747,9 +746,9 @@ function setupDomainLabelSetting() { ev.preventDefault(); var label = "temp"; - var modal_body = "
"; + var modal_body = "
"; modal_body += ""; - modal_body += ""; + modal_body += ""; modal_body += "
"; modal_body += "
"; @@ -770,7 +769,7 @@ function setupDomainLabelSetting() { className: 'edit-label-save-btn btn btn-primary', callback: function() { var data = { - label: $('#domain-label-input').val() + description: $('#domain-label-input').val() }; $('.edit-label-cancel-btn').attr('disabled', 'disabled'); @@ -817,8 +816,15 @@ function setupDomainLabelSetting() { html = $(html).append(link); - var autoNetworkingEl = $('div[data-keypath="metaverse.automatic_networking"]'); - autoNetworkingEl.after(html); + var spinner = createDomainSpinner(); + var errorEl = createDomainLoadingError("Error loading label."); + + html.append(spinner); + html.append(errorEl); + + $('div#label .panel-body').append(errorEl); + $('div#label .panel-body').append(html); + console.log($('div#label .panel-body')); } function setupDomainNetworkingSettings() { @@ -1032,6 +1038,7 @@ function placeTableRow(name, path, isTemporary, placeID) { sendUpdatePlaceRequest( placeID, '', + null, true, function() { reloadDomainInfo(); @@ -1109,12 +1116,14 @@ function reloadDomainInfo() { var row = $(" "); row.find(".place-add").click(function(ev) { - chooseFromHighFidelityPlaces(null, function() { + chooseFromHighFidelityPlaces(Settings.initialValues.metaverse.access_token, null, function() { reloadDomainInfo(); }); }); - $('#network-label').val(data.domain.label); + var label = data.domain.description; + label = label === null ? '' : label; + $('#network-label').val(label); var autoNetworkingSetting = Settings.data.values.metaverse.automatic_networking; var address = data.domain.network_address === null ? "" : data.domain.network_address; var port = data.domain.network_port === null ? "" : data.domain.network_port; @@ -1152,11 +1161,30 @@ function showDomainSettingsModal(clickedButton) { }) } -function sendUpdatePlaceRequest(id, path, clearDomainID, onSuccess, onError) { +function sendCreateDomainRequest(onSuccess, onError) { + $.ajax({ + url: '/api/domains', + type: 'POST', + data: { label: "TEST" }, + success: function(data) { + //if (data.status === 'success') { + onSuccess(data.domain_id); + //} else { + //onError(); + //} + }, + error: onError + }); +} + +function sendUpdatePlaceRequest(id, path, domainID, clearDomainID, onSuccess, onError) { var data = { place_id: id, path: path }; + if (domainID) { + data.domain_id = domainID; + } if (clearDomainID) { data.domain_id = null; } @@ -1201,6 +1229,7 @@ function editHighFidelityPlace(placeID, name, path) { sendUpdatePlaceRequest( placeID, placePath, + null, false, function() { dialog.modal('hide') @@ -1239,8 +1268,8 @@ function showLoadingDialog() { }); } -function chooseFromHighFidelityPlaces(forcePathTo, onSuccessfullyAdded) { - if (Settings.initialValues.metaverse.access_token) { +function chooseFromHighFidelityPlaces(accessToken, forcePathTo, onSuccessfullyAdded) { + if (accessToken) { var loadingDialog = showLoadingDialog(); @@ -1313,23 +1342,43 @@ function chooseFromHighFidelityPlaces(forcePathTo, onSuccessfullyAdded) { $('.add-place-confirm-button').html(Strings.ADD_PLACE_CONFIRM_BUTTON_PENDING); $('.add-place-cancel-button').attr('disabled', 'disabled'); - sendUpdatePlaceRequest( - placeID, - placePath, - false, - function(data) { - dialog.modal('hide') - if (onSuccessfullyAdded) { - onSuccessfullyAdded(); + function finishSettingUpPlace(domainID) { + sendUpdatePlaceRequest( + placeID, + placePath, + domainID, + false, + function(data) { + $(Settings.DOMAIN_ID_SELECTOR).val(domainID).change(); + dialog.modal('hide') + if (onSuccessfullyAdded) { + onSuccessfullyAdded(places_by_id[placeID].name); + } + saveSettings(); + }, + function(data) { + $('.add-place-confirm-button').removeAttr('disabled'); + $('.add-place-confirm-button').html(Strings.ADD_PLACE_CONFIRM_BUTTON); + $('.add-place-cancel-button').removeAttr('disabled'); + bootbox.alert(Strings.ADD_PLACE_UNKNOWN_ERROR); } - }, - function(data) { + ); + } + + if (domainIDIsSet()) { + finishSettingUpPlace(); + } else { + sendCreateDomainRequest(function(domainID) { + finishSettingUpPlace(domainID); + }, function() { $('.add-place-confirm-button').removeAttr('disabled'); $('.add-place-confirm-button').html(Strings.ADD_PLACE_CONFIRM_BUTTON); $('.add-place-cancel-button').removeAttr('disabled'); bootbox.alert(Strings.ADD_PLACE_UNKNOWN_ERROR); - } - ); + bootbox.alert("FAIL"); + }); + } + return false; } diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 1fb83611ef..aac921c90a 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -56,6 +56,12 @@ const QString ICE_SERVER_DEFAULT_HOSTNAME = "ice.highfidelity.com"; const QString ICE_SERVER_DEFAULT_HOSTNAME = "dev-ice.highfidelity.com"; #endif +bool forwardMetaverseAPIRequest(HTTPConnection* connection, const QString metaversePath, + std::vector> dataWhitelist) { + + return false; +} + DomainServer::DomainServer(int argc, char* argv[]) : QCoreApplication(argc, argv), _gatekeeper(this), @@ -2069,16 +2075,16 @@ bool DomainServer::handleHTTPRequest(HTTPConnection* connection, const QUrl& url auto params = connection->parseUrlEncodedForm(); - auto it = params.find("private_description"); + auto it = params.find("label"); if (it == params.end()) { - connection->respond(HTTPConnection::StatusCode400); + connection->respond(HTTPConnection::StatusCode400, "Missing label"); return true; } QJsonObject root { {"access_token", accessTokenVariant->toString()}, {"domain", - QJsonObject({ { "private_description", it.value() } }) + QJsonObject({ { "description", it.value() } }) } }; QJsonDocument doc { root }; @@ -2156,9 +2162,9 @@ bool DomainServer::handleHTTPRequest(HTTPConnection* connection, const QUrl& url domainObj["network_port"] = port.isEmpty() ? QJsonValue::Null : QJsonValue(port); } - it = params.find("private_description"); + it = params.find("description"); if (it != params.end()) { - domainObj["private_description"] = it.value(); + domainObj["description"] = it.value(); }