<!--// entityList.html//// Created by Ryan Huffman on November 19th, 2014// Copyright 2014 High Fidelity, Inc.// Copyright 2020 Vircadia contributors.// Copyright 2024-2025 Overte e.V.//// Distributed under the Apache License, Version 2.0.// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html--><html> <head> <title>Entity List</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/css" href="../../../html/css/edit-style.css"> <script type="text/javascript" src="qrc:///qtwebchannel/qwebchannel.js"></script> <script type="text/javascript" src="../../../html/js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="../../../html/js/eventBridgeLoader.js"></script> <script type="text/javascript" src="../../../html/js/spinButtons.js"></script> <script type="text/javascript" src="../../../html/js/utils.js"></script> <script type="text/javascript" src="../../../html/js/includes.js"></script> <script type="text/javascript" src="js/listView.js"></script> <script type="text/javascript" src="js/entityListContextMenu.js"></script> <script type="text/javascript" src="js/entityList.js"></script> </head> <body onload='loaded();' id="entity-list-body"> <div id="entity-list-menubar"> <input type="button" class="entity-list-menutitle" id="actions" value="Edit▾" /> <input type="button" class="entity-list-menutitle" id="selection" value="Select▾" /> <input type="button" class="entity-list-menutitle" id="transform" value="Transform▾" /> <input type="button" class="entity-list-menutitle" id="tools" value="Tools▾" /> </div> <div id="entity-list-header"> <input type="button" class="glyph" id="refresh" value="F" /> <div> <input type="button" id="locked" class="glyph" value="" /> <input type="button" id="visible" class="glyph" value="" /> </div> <button id="toggle-space-mode" class="hifi-edit-button space-mode-local">Local</button> <input type="button" class="vglyph" id="hmdmultiselect" value="I" style="display: none;" /> <input type="button" class="localEntity glyph" id="localEntityFilter" value="" /> <input type="button" class="red glyph" id="delete" value="{" /> </div> <div id="entity-list"> <div id="filter-area"> <div id="filter-type-multiselect" class="multiselect"> <div id="filter-type-multiselect-box" class="multiselect-box"> <select> <option id="filter-type-text">All Types</option> </select> <div class="over-select"></div> </div> <div id="filter-type-options" class="multiselect-options"> <!-- type options with checkbox, icon, and label are added at runtime in entityList --> <div id="filter-type-options-buttons"> <input type="button" id="filter-type-select-all" value="Select All"/> <input type="button" id="filter-type-clear-all" value="Clear All"/> </div> </div> </div> <div id="filter-search-and-icon"> <span class="icon-input"><input type="search" class="search" id="filter-search" placeholder="Search" /><span>Y</span></span> </div> <input type="button" id="filter-in-view" class="glyph" value="" /> <div id="filter-radius-and-unit" class="number"> <span class="icon-input-radius"><input type="text" id="filter-radius" maxlength="8" value="100" /><span>D</span><label>m</label></span> </div> </div> <div id="entity-table-scroll"> <table id="entity-table"> <!-- rows and columns are added at runtime in entityList / listView --> <thead id="entity-table-header"/> <tbody class="list" id="entity-table-body"/> </table> <div id="entity-table-columns-multiselect" class="multiselect"> <div id="entity-table-columns-multiselect-box" class="multiselect-box"> <select> <option id="entity-table-columns-toggle"></option> </select> <div class="over-select"></div> </div> <div id="entity-table-columns-options" class="multiselect-options"> <!-- column options are added at runtime in entityList --> </div> </div> <div id="no-entities"> There are no entities to display. Please check your filters or create an entity to begin. </div> </div> </div> <div id="entity-list-footer"> <div> <input type="button" id="export" value="Export Selection" /> <div id="footer-text"> <b><span id="selected-entities-count">0</span> of <span id="visible-entities-count">0</span></b> selected </div> </div> </div> <div class="entity-list-menu" id="actions-menu" > <button class="menu-button" id="undo" > <div class = "menu-item"> <div class = "menu-item-caption">Undo</div> <div class = "menu-item-shortcut">Ctrl-Z</div> </div> </button> <button class="menu-button" id="redo" > <div class = "menu-item"> <div class = "menu-item-caption">Redo</div> <div class = "menu-item-shortcut">Ctrl-Y</div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="hmdcut" > <div class = "menu-item"> <div class = "menu-item-caption">Cut</div> <div class = "menu-item-shortcut">Ctrl-X</div> </div> </button> <button class="menu-button" id="hmdcopy" > <div class = "menu-item"> <div class = "menu-item-caption">Copy</div> <div class = "menu-item-shortcut">Ctrl-C</div> </div> </button> <button class="menu-button" id="hmdcopyid" > <div class = "menu-item"> <div class = "menu-item-caption">Copy ID(s)</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="hmdpaste" > <div class = "menu-item"> <div class = "menu-item-caption">Paste</div> <div class = "menu-item-shortcut">Ctrl-V</div> </div> </button> <button class="menu-button" id="hmdduplicate" > <div class = "menu-item"> <div class = "menu-item-caption">Duplicate</div> <div class = "menu-item-shortcut">Ctrl-D</div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="parent" > <div class = "menu-item"> <div class = "menu-item-caption">Parent Entities to the Last Selected</div> <div class = "menu-item-shortcut">Ctrl-P</div> </div> </button> <button class="menu-button" id="unparent" > <div class = "menu-item"> <div class = "menu-item-caption">Unparent Entity</div> <div class = "menu-item-shortcut">Ctrl-Shift-P</div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="exportSelectedEntities" > <div class = "menu-item"> <div class = "menu-item-caption">Export Selected Entities</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="importEntitiesFromFile" > <div class = "menu-item"> <div class = "menu-item-caption">Import Entities (.json) From a File</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="importEntitiesFromUrl" > <div class = "menu-item"> <div class = "menu-item-caption">Import Entities (.json) From a URL</div> <div class = "menu-item-shortcut"></div> </div> </button> </div> <div class="entity-list-menu" id="selection-menu" > <button class="menu-button" id="selectall" > <div class = "menu-item"> <div class = "menu-item-caption">Select All (in List)</div> <div class = "menu-item-shortcut">Ctrl-A</div> </div> </button> <button class="menu-button" id="selectnone" > <div class = "menu-item"> <div class = "menu-item-caption">Select None</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="selectinverse" > <div class = "menu-item"> <div class = "menu-item-caption">Inverse Selection (in List)</div> <div class = "menu-item-shortcut">Ctrl-I</div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="selectallinbox" > <div class = "menu-item"> <div class = "menu-item-caption">Select All Entities In Box</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="selectalltouchingbox" > <div class = "menu-item"> <div class = "menu-item-caption">Select All Entities Touching Box</div> <div class = "menu-item-shortcut"></div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="selectparent" > <div class = "menu-item"> <div class = "menu-item-caption">Select Parent</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="selecttopparent" > <div class = "menu-item"> <div class = "menu-item-caption">Select Top Parent</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="addchildrentoselection" > <div class = "menu-item"> <div class = "menu-item-caption">Add Children To Selection</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="selectfamily" > <div class = "menu-item"> <div class = "menu-item-caption">Select Parent And All Its Children</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="selecttopfamily" > <div class = "menu-item"> <div class = "menu-item-caption">Select Top Parent And All Its Children</div> <div class = "menu-item-shortcut"></div> </div> </button> </div> <div class="entity-list-menu" id="transform-menu" > <button class="menu-button" id="moveEntitySelectionToAvatar" > <div class = "menu-item"> <div class = "menu-item-caption">Move Selected Entities to Avatar</div> <div class = "menu-item-shortcut"></div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="rotateAsTheNextClickedSurface" > <div class = "menu-item"> <div class = "menu-item-caption">Snap To Next Clicked Surface</div> <div class = "menu-item-shortcut">0</div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="quickRotate90x" > <div class = "menu-item"> <div class = "menu-item-caption">Rotate 90° on X axis</div> <div class = "menu-item-shortcut">7</div> </div> </button> <button class="menu-button" id="quickRotate90y" > <div class = "menu-item"> <div class = "menu-item-caption">Rotate 90° on Y axis</div> <div class = "menu-item-shortcut">8</div> </div> </button> <button class="menu-button" id="quickRotate90z" > <div class = "menu-item"> <div class = "menu-item-caption">Rotate 90° on Z axis</div> <div class = "menu-item-shortcut">9</div> </div> </button> </div> <div class="entity-list-menu" id="tools-menu" > <button class="menu-button" id="setCameraFocusToSelection" > <div class = "menu-item"> <div class = "menu-item-caption">Set Camera Focus To Selection</div> <div class = "menu-item-shortcut">F</div> </div> </button> <button class="menu-button" id="teleport-to-entity" > <div class = "menu-item"> <div class = "menu-item-caption">Teleport To Selected Entities</div> <div class = "menu-item-shortcut"></div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="toggleLocalWorldMode" > <div class = "menu-item"> <div class = "menu-item-caption">Toggle Local/World Transform</div> <div class = "menu-item-shortcut">T</div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="gridActivator" > <div class = "menu-item"> <div class = "menu-item-caption">Toggle Grid</div> <div class = "menu-item-shortcut">G</div> </div> </button> <button class="menu-button" id="snapToGridActivator" > <div class = "menu-item"> <div class = "menu-item-caption" id="snapToGridActivatorCaption">Activate Snap to Grid</div> <div class = "menu-item-shortcut">H</div> </div> </button> <button class="menu-button" id="alignGridToSelection" > <div class = "menu-item"> <div class = "menu-item-caption">Align Grid to Selected Entities</div> <div class = "menu-item-shortcut">J</div> </div> </button> <button class="menu-button" id="alignGridToAvatar" > <div class = "menu-item"> <div class = "menu-item-caption">Align Grid to Avatar</div> <div class = "menu-item-shortcut">K</div> </div> </button> <div class="menu-separator"></div> <button class="menu-button" id="brokenURLReport" > <div class = "menu-item"> <div class = "menu-item-caption">Generate Broken URL Report</div> <div class = "menu-item-shortcut"></div> </div> </button> <button class="menu-button" id="renderWithZonesManager" > <div class = "menu-item"> <div class = "menu-item-caption">RenderWithZones Manager</div> <div class = "menu-item-shortcut"></div> </div> </button> </div> <div id="menuBackgroundOverlay" ></div> </body></html>
<!--
// entityList.html
//
// Created by Ryan Huffman on November 19th, 2014
// Copyright 2014 High Fidelity, Inc.
// Copyright 2020 Vircadia contributors.
// Copyright 2024-2025 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
-->
<html>
<head>
<title>Entity List</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="../../../html/css/edit-style.css">
<script type="text/javascript" src="qrc:///qtwebchannel/qwebchannel.js"></script>
<script type="text/javascript" src="../../../html/js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="../../../html/js/eventBridgeLoader.js"></script>
<script type="text/javascript" src="../../../html/js/spinButtons.js"></script>
<script type="text/javascript" src="../../../html/js/utils.js"></script>
<script type="text/javascript" src="../../../html/js/includes.js"></script>
<script type="text/javascript" src="js/listView.js"></script>
<script type="text/javascript" src="js/entityListContextMenu.js"></script>
<script type="text/javascript" src="js/entityList.js"></script>
</head>
<body onload='loaded();' id="entity-list-body">
<div id="entity-list-menubar">
<input type="button" class="entity-list-menutitle" id="actions" value="Edit▾" />
<input type="button" class="entity-list-menutitle" id="selection" value="Select▾" />
<input type="button" class="entity-list-menutitle" id="transform" value="Transform▾" />
<input type="button" class="entity-list-menutitle" id="tools" value="Tools▾" />
</div>
<div id="entity-list-header">
<input type="button" class="glyph" id="refresh" value="F" />
<div>
<input type="button" id="locked" class="glyph" value="" />
<input type="button" id="visible" class="glyph" value="" />
</div>
<button id="toggle-space-mode" class="hifi-edit-button space-mode-local">Local</button>
<input type="button" class="vglyph" id="hmdmultiselect" value="I" style="display: none;" />
<input type="button" class="localEntity glyph" id="localEntityFilter" value="" />
<input type="button" class="red glyph" id="delete" value="{" />
</div>
<div id="entity-list">
<div id="filter-area">
<div id="filter-type-multiselect" class="multiselect">
<div id="filter-type-multiselect-box" class="multiselect-box">
<select>
<option id="filter-type-text">All Types</option>
</select>
<div class="over-select"></div>
</div>
<div id="filter-type-options" class="multiselect-options">
<!-- type options with checkbox, icon, and label are added at runtime in entityList -->
<div id="filter-type-options-buttons">
<input type="button" id="filter-type-select-all" value="Select All"/>
<input type="button" id="filter-type-clear-all" value="Clear All"/>
</div>
</div>
</div>
<div id="filter-search-and-icon">
<span class="icon-input"><input type="search" class="search" id="filter-search" placeholder="Search" /><span>Y</span></span>
</div>
<input type="button" id="filter-in-view" class="glyph" value="" />
<div id="filter-radius-and-unit" class="number">
<span class="icon-input-radius"><input type="text" id="filter-radius" maxlength="8" value="100" /><span>D</span><label>m</label></span>
</div>
</div>
<div id="entity-table-scroll">
<table id="entity-table">
<!-- rows and columns are added at runtime in entityList / listView -->
<thead id="entity-table-header"/>
<tbody class="list" id="entity-table-body"/>
</table>
<div id="entity-table-columns-multiselect" class="multiselect">
<div id="entity-table-columns-multiselect-box" class="multiselect-box">
<select>
<option id="entity-table-columns-toggle"></option>
</select>
<div class="over-select"></div>
</div>
<div id="entity-table-columns-options" class="multiselect-options">
<!-- column options are added at runtime in entityList -->
</div>
</div>
<div id="no-entities">
There are no entities to display. Please check your filters or create an entity to begin.
</div>
</div>
</div>
<div id="entity-list-footer">
<div>
<input type="button" id="export" value="Export Selection" />
<div id="footer-text">
<b><span id="selected-entities-count">0</span> of <span id="visible-entities-count">0</span></b> selected
</div>
</div>
</div>
<div class="entity-list-menu" id="actions-menu" >
<button class="menu-button" id="undo" >
<div class = "menu-item">
<div class = "menu-item-caption">Undo</div>
<div class = "menu-item-shortcut">Ctrl-Z</div>
</div>
</button>
<button class="menu-button" id="redo" >
<div class = "menu-item">
<div class = "menu-item-caption">Redo</div>
<div class = "menu-item-shortcut">Ctrl-Y</div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="hmdcut" >
<div class = "menu-item">
<div class = "menu-item-caption">Cut</div>
<div class = "menu-item-shortcut">Ctrl-X</div>
</div>
</button>
<button class="menu-button" id="hmdcopy" >
<div class = "menu-item">
<div class = "menu-item-caption">Copy</div>
<div class = "menu-item-shortcut">Ctrl-C</div>
</div>
</button>
<button class="menu-button" id="hmdcopyid" >
<div class = "menu-item">
<div class = "menu-item-caption">Copy ID(s)</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="hmdpaste" >
<div class = "menu-item">
<div class = "menu-item-caption">Paste</div>
<div class = "menu-item-shortcut">Ctrl-V</div>
</div>
</button>
<button class="menu-button" id="hmdduplicate" >
<div class = "menu-item">
<div class = "menu-item-caption">Duplicate</div>
<div class = "menu-item-shortcut">Ctrl-D</div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="parent" >
<div class = "menu-item">
<div class = "menu-item-caption">Parent Entities to the Last Selected</div>
<div class = "menu-item-shortcut">Ctrl-P</div>
</div>
</button>
<button class="menu-button" id="unparent" >
<div class = "menu-item">
<div class = "menu-item-caption">Unparent Entity</div>
<div class = "menu-item-shortcut">Ctrl-Shift-P</div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="exportSelectedEntities" >
<div class = "menu-item">
<div class = "menu-item-caption">Export Selected Entities</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="importEntitiesFromFile" >
<div class = "menu-item">
<div class = "menu-item-caption">Import Entities (.json) From a File</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="importEntitiesFromUrl" >
<div class = "menu-item">
<div class = "menu-item-caption">Import Entities (.json) From a URL</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
</div>
<div class="entity-list-menu" id="selection-menu" >
<button class="menu-button" id="selectall" >
<div class = "menu-item">
<div class = "menu-item-caption">Select All (in List)</div>
<div class = "menu-item-shortcut">Ctrl-A</div>
</div>
</button>
<button class="menu-button" id="selectnone" >
<div class = "menu-item">
<div class = "menu-item-caption">Select None</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="selectinverse" >
<div class = "menu-item">
<div class = "menu-item-caption">Inverse Selection (in List)</div>
<div class = "menu-item-shortcut">Ctrl-I</div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="selectallinbox" >
<div class = "menu-item">
<div class = "menu-item-caption">Select All Entities In Box</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="selectalltouchingbox" >
<div class = "menu-item">
<div class = "menu-item-caption">Select All Entities Touching Box</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="selectparent" >
<div class = "menu-item">
<div class = "menu-item-caption">Select Parent</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="selecttopparent" >
<div class = "menu-item">
<div class = "menu-item-caption">Select Top Parent</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="addchildrentoselection" >
<div class = "menu-item">
<div class = "menu-item-caption">Add Children To Selection</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="selectfamily" >
<div class = "menu-item">
<div class = "menu-item-caption">Select Parent And All Its Children</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="selecttopfamily" >
<div class = "menu-item">
<div class = "menu-item-caption">Select Top Parent And All Its Children</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
</div>
<div class="entity-list-menu" id="transform-menu" >
<button class="menu-button" id="moveEntitySelectionToAvatar" >
<div class = "menu-item">
<div class = "menu-item-caption">Move Selected Entities to Avatar</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="rotateAsTheNextClickedSurface" >
<div class = "menu-item">
<div class = "menu-item-caption">Snap To Next Clicked Surface</div>
<div class = "menu-item-shortcut">0</div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="quickRotate90x" >
<div class = "menu-item">
<div class = "menu-item-caption">Rotate 90° on X axis</div>
<div class = "menu-item-shortcut">7</div>
</div>
</button>
<button class="menu-button" id="quickRotate90y" >
<div class = "menu-item">
<div class = "menu-item-caption">Rotate 90° on Y axis</div>
<div class = "menu-item-shortcut">8</div>
</div>
</button>
<button class="menu-button" id="quickRotate90z" >
<div class = "menu-item">
<div class = "menu-item-caption">Rotate 90° on Z axis</div>
<div class = "menu-item-shortcut">9</div>
</div>
</button>
</div>
<div class="entity-list-menu" id="tools-menu" >
<button class="menu-button" id="setCameraFocusToSelection" >
<div class = "menu-item">
<div class = "menu-item-caption">Set Camera Focus To Selection</div>
<div class = "menu-item-shortcut">F</div>
</div>
</button>
<button class="menu-button" id="teleport-to-entity" >
<div class = "menu-item">
<div class = "menu-item-caption">Teleport To Selected Entities</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="toggleLocalWorldMode" >
<div class = "menu-item">
<div class = "menu-item-caption">Toggle Local/World Transform</div>
<div class = "menu-item-shortcut">T</div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="gridActivator" >
<div class = "menu-item">
<div class = "menu-item-caption">Toggle Grid</div>
<div class = "menu-item-shortcut">G</div>
</div>
</button>
<button class="menu-button" id="snapToGridActivator" >
<div class = "menu-item">
<div class = "menu-item-caption" id="snapToGridActivatorCaption">Activate Snap to Grid</div>
<div class = "menu-item-shortcut">H</div>
</div>
</button>
<button class="menu-button" id="alignGridToSelection" >
<div class = "menu-item">
<div class = "menu-item-caption">Align Grid to Selected Entities</div>
<div class = "menu-item-shortcut">J</div>
</div>
</button>
<button class="menu-button" id="alignGridToAvatar" >
<div class = "menu-item">
<div class = "menu-item-caption">Align Grid to Avatar</div>
<div class = "menu-item-shortcut">K</div>
</div>
</button>
<div class="menu-separator"></div>
<button class="menu-button" id="brokenURLReport" >
<div class = "menu-item">
<div class = "menu-item-caption">Generate Broken URL Report</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
<button class="menu-button" id="renderWithZonesManager" >
<div class = "menu-item">
<div class = "menu-item-caption">RenderWithZones Manager</div>
<div class = "menu-item-shortcut"></div>
</div>
</button>
</div>
<div id="menuBackgroundOverlay" ></div>
</body>
</html>