diff --git a/scripts/system/html/js/entityList.js b/scripts/system/html/js/entityList.js index 9e6eb3311a..89b56c7f7b 100644 --- a/scripts/system/html/js/entityList.js +++ b/scripts/system/html/js/entityList.js @@ -23,6 +23,7 @@ const SCROLLBAR_WIDTH = 20; const RESIZER_WIDTH = 10; const DELTA_X_MOVE_COLUMNS_THRESHOLD = 2; const DELTA_X_COLUMN_SWAP_POSITION = 5; +const CERTIFIED_PLACEHOLDER = "** Certified **"; const COLUMNS = { type: { @@ -635,10 +636,11 @@ function loaded() { id: entity.id, name: entity.name, type: type, - url: filename, - fullUrl: entity.url, + url: entity.certificateID === "" ? filename : "" + CERTIFIED_PLACEHOLDER + "", + fullUrl: entity.certificateID === "" ? filename : CERTIFIED_PLACEHOLDER, locked: entity.locked, visible: entity.visible, + certificateID: entity.certificateID, verticesCount: displayIfNonZero(entity.verticesCount), texturesCount: displayIfNonZero(entity.texturesCount), texturesSize: decimalMegabytes(entity.texturesSize), @@ -876,7 +878,7 @@ function loaded() { if (column.data.glyph) { elCell.innerHTML = itemData[column.data.propertyID] ? column.data.columnHeader : null; } else { - elCell.innerText = itemData[column.data.propertyID]; + elCell.innerHTML = itemData[column.data.propertyID]; } elCell.style = "min-width:" + column.widthPx + "px;" + "max-width:" + column.widthPx + "px;"; elCell.className = createColumnClassName(column.columnID); diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index 84a1ab2a12..c39761e311 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -390,7 +390,9 @@ const GROUPS = [ { label: "Model", type: "string", + placeholder: "URL", propertyID: "modelURL", + hideIfCertified: true, }, { label: "Collision Shape", @@ -404,11 +406,13 @@ const GROUPS = [ label: "Compound Shape", type: "string", propertyID: "compoundShapeURL", + hideIfCertified: true, }, { label: "Animation", type: "string", propertyID: "animation.url", + hideIfCertified: true, }, { label: "Play Automatically", @@ -460,6 +464,7 @@ const GROUPS = [ type: "textarea", propertyID: "originalTextures", readOnly: true, + hideIfCertified: true, }, ] }, @@ -1181,6 +1186,7 @@ const GROUPS = [ buttons: [ { id: "reload", label: "F", className: "glyph", onClick: reloadScripts } ], propertyID: "script", placeholder: "URL", + hideIfCertified: true, }, { label: "Server Script", @@ -1267,6 +1273,7 @@ const GROUPS = [ placeholder: "URL", propertyID: "collisionSoundURL", showPropertyRule: { "collisionless": "false" }, + hideIfCertified: true, }, { label: "Dynamic", @@ -3084,6 +3091,15 @@ function loaded() { showGroupsForType(selectedEntityProperties.type); + if (selectedEntityProperties.locked) { + disableProperties(); + getPropertyInputElement("locked").removeAttribute('disabled'); + } else { + enableProperties(); + disableSaveUserDataButton(); + disableSaveMaterialDataButton() + } + for (let propertyID in properties) { let property = properties[propertyID]; let propertyData = property.data; @@ -3094,6 +3110,14 @@ function loaded() { if (propertyValue === undefined && !isSubProperty) { continue; } + + if (propertyData.hideIfCertified) { + let shouldHide = selectedEntityProperties.certificateID !== ""; + if (shouldHide) { + propertyValue = "** Certified **"; + } + property.elInput.disabled = shouldHide; + } let isPropertyNotNumber = false; switch (propertyData.type) { @@ -3272,15 +3296,6 @@ function loaded() { hideMaterialDataSaved(); } - if (selectedEntityProperties.locked) { - disableProperties(); - getPropertyInputElement("locked").removeAttribute('disabled'); - } else { - enableProperties(); - disableSaveUserDataButton(); - disableSaveMaterialDataButton() - } - let activeElement = document.activeElement; if (doSelectElement && typeof activeElement.select !== "undefined") { activeElement.select(); diff --git a/scripts/system/libraries/entityList.js b/scripts/system/libraries/entityList.js index eeb16fd60d..f27ab6caf2 100644 --- a/scripts/system/libraries/entityList.js +++ b/scripts/system/libraries/entityList.js @@ -164,7 +164,7 @@ EntityListTool = function(shouldUseEditTabletApp) { var cameraPosition = Camera.position; PROFILE("getMultipleProperties", function () { var multipleProperties = Entities.getMultipleEntityProperties(ids, ['name', 'type', 'locked', - 'visible', 'renderInfo', 'modelURL', 'materialURL', 'script']); + 'visible', 'renderInfo', 'modelURL', 'materialURL', 'script', 'certificateID']); for (var i = 0; i < multipleProperties.length; i++) { var properties = multipleProperties[i]; @@ -182,6 +182,7 @@ EntityListTool = function(shouldUseEditTabletApp) { url: url, locked: properties.locked, visible: properties.visible, + certificateID: properties.certificateID, verticesCount: (properties.renderInfo !== undefined ? valueIfDefined(properties.renderInfo.verticesCount) : ""), texturesCount: (properties.renderInfo !== undefined ?