Compare commits
2 commits
5aa89b0524
...
d9a36437b6
| Author | SHA1 | Date | |
|---|---|---|---|
| d9a36437b6 | |||
| 9f21b0bd3b |
5 changed files with 522 additions and 88 deletions
7
.idea/dictionaries/Tom.xml
generated
Normal file
7
.idea/dictionaries/Tom.xml
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<component name="ProjectDictionaryState">
|
||||||
|
<dictionary name="Tom">
|
||||||
|
<words>
|
||||||
|
<w>deparse</w>
|
||||||
|
</words>
|
||||||
|
</dictionary>
|
||||||
|
</component>
|
||||||
337
index.html
337
index.html
|
|
@ -27,6 +27,7 @@
|
||||||
<a id="nav-travel-data" class="nav-item nav-link" data-toggle="tab" href="#tab-travel-data">Travel Data</a>
|
<a id="nav-travel-data" class="nav-item nav-link" data-toggle="tab" href="#tab-travel-data">Travel Data</a>
|
||||||
<a id="nav-shared-log" class="nav-item nav-link" data-toggle="tab" href="#tab-shared-log">Shared Log</a>
|
<a id="nav-shared-log" class="nav-item nav-link" data-toggle="tab" href="#tab-shared-log">Shared Log</a>
|
||||||
<a id="nav-databases" class="nav-item nav-link" data-toggle="tab" href="#tab-databases">Databases</a>
|
<a id="nav-databases" class="nav-item nav-link" data-toggle="tab" href="#tab-databases">Databases</a>
|
||||||
|
<a id="nav-servers" class="nav-item nav-link" data-toggle="tab" href="#tab-servers">Servers</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-content" id="tab-content">
|
<div class="tab-content" id="tab-content">
|
||||||
<div class="tab-pane fade show active" id="tab-config">
|
<div class="tab-pane fade show active" id="tab-config">
|
||||||
|
|
@ -41,13 +42,16 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="BaseServerArgs" class="col-sm-2 col-form-label">Base Server Args</label>
|
<label for="BaseServerArgs" class="col-sm-2 col-form-label">Base Server Args</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<textarea id="BaseServerArgs" data-bind="value: BaseServerArgs" rows="3" class="form-control"></textarea>
|
<textarea id="BaseServerArgs" data-bind="value: BaseServerArgs" rows="3"
|
||||||
|
class="form-control"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="AdditionalCmdLineParams" class="col-sm-2 col-form-label">Additional CLI Params</label>
|
<label for="AdditionalCmdLineParams" class="col-sm-2 col-form-label">Additional CLI
|
||||||
|
Params</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<textarea id="AdditionalCmdLineParams" data-bind="value: AdditionalCmdLineParams" rows="3" class="form-control"></textarea>
|
<textarea id="AdditionalCmdLineParams" data-bind="value: AdditionalCmdLineParams" rows="3"
|
||||||
|
class="form-control"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -56,7 +60,8 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="WorldFriendlyName" class="col-sm-2 col-form-label">Friendly Name</label>
|
<label for="WorldFriendlyName" class="col-sm-2 col-form-label">Friendly Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="WorldFriendlyName" data-bind="value: WorldFriendlyName" type="text" class="form-control">
|
<input id="WorldFriendlyName" data-bind="value: WorldFriendlyName" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
|
|
@ -68,7 +73,8 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="WorldAtlasPassword" class="col-sm-2 col-form-label">Password</label>
|
<label for="WorldAtlasPassword" class="col-sm-2 col-form-label">Password</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="WorldAtlasPassword" data-bind="value: WorldAtlasPassword" type="text" class="form-control">
|
<input id="WorldAtlasPassword" data-bind="value: WorldAtlasPassword" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -77,25 +83,29 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="gridSize" class="col-sm-2 col-form-label">Grid Size</label>
|
<label for="gridSize" class="col-sm-2 col-form-label">Grid Size</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="gridSize" data-bind="numericValue: gridSize" type="number" step="0.1" class="form-control">
|
<input id="gridSize" data-bind="numericValue: gridSize" type="number" step="0.1"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="coordsScaling" class="col-sm-2 col-form-label">Coords Scaling</label>
|
<label for="coordsScaling" class="col-sm-2 col-form-label">Coords Scaling</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="coordsScaling" data-bind="value: coordsScaling" type="number" step="0.000000000001" class="form-control">
|
<input id="coordsScaling" data-bind="value: coordsScaling" type="number"
|
||||||
|
step="0.000000000001" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="totalGridsX" class="col-sm-2 col-form-label">No. Grids X</label>
|
<label for="totalGridsX" class="col-sm-2 col-form-label">No. Grids X</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="totalGridsX" data-bind="numericValue: totalGridsX" type="number" class="form-control">
|
<input id="totalGridsX" data-bind="numericValue: totalGridsX" type="number"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="totalGridsY" class="col-sm-2 col-form-label">No. Grids Y</label>
|
<label for="totalGridsY" class="col-sm-2 col-form-label">No. Grids Y</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="totalGridsY" data-bind="numericValue: totalGridsY" type="number" class="form-control">
|
<input id="totalGridsY" data-bind="numericValue: totalGridsY" type="number"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -104,13 +114,15 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="backgroundImgPath" class="col-sm-2 col-form-label">Background Image</label>
|
<label for="backgroundImgPath" class="col-sm-2 col-form-label">Background Image</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="backgroundImgPath" data-bind="value: backgroundImgPath" type="text" class="form-control">
|
<input id="backgroundImgPath" data-bind="value: backgroundImgPath" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="discoZonesImagePath" class="col-sm-2 col-form-label">Discovery Zones Image</label>
|
<label for="discoZonesImagePath" class="col-sm-2 col-form-label">Discovery Zones Image</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="discoZonesImagePath" data-bind="value: discoZonesImagePath" type="text" class="form-control">
|
<input id="discoZonesImagePath" data-bind="value: discoZonesImagePath" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -147,19 +159,22 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="bUseUTCTime" class="col-sm-2 col-form-label">Use UTC Time</label>
|
<label for="bUseUTCTime" class="col-sm-2 col-form-label">Use UTC Time</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="bUseUTCTime" data-bind="checked: bUseUTCTime" type="checkbox" class="form-control">
|
<input id="bUseUTCTime" data-bind="checked: bUseUTCTime" type="checkbox"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="columnUTCOffset" class="col-sm-2 col-form-label">UTC Offset</label>
|
<label for="columnUTCOffset" class="col-sm-2 col-form-label">UTC Offset</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="columnUTCOffset" data-bind="numericValue: columnUTCOffset" type="number" step="0.1" class="form-control">
|
<input id="columnUTCOffset" data-bind="numericValue: columnUTCOffset" type="number"
|
||||||
|
step="0.1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="lastImageOverride" class="col-sm-2 col-form-label">Day Zero</label>
|
<label for="lastImageOverride" class="col-sm-2 col-form-label">Day Zero</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="lastImageOverride" data-bind="value: lastImageOverride" type="text" class="form-control">
|
<input id="lastImageOverride" data-bind="value: lastImageOverride" type="text"
|
||||||
|
class="form-control">
|
||||||
<small class="text-muted">Format: YYYY-mm-DDTHH:MM:SS - Note different to Day Zero!</small>
|
<small class="text-muted">Format: YYYY-mm-DDTHH:MM:SS - Note different to Day Zero!</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -169,25 +184,29 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="showServerInfo" class="col-sm-2 col-form-label">Show Server Info</label>
|
<label for="showServerInfo" class="col-sm-2 col-form-label">Show Server Info</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="showServerInfo" data-bind="checked: showServerInfo" type="checkbox" class="form-control">
|
<input id="showServerInfo" data-bind="checked: showServerInfo" type="checkbox"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="showDiscoZoneInfo" class="col-sm-2 col-form-label">Show Discovery Zone Info</label>
|
<label for="showDiscoZoneInfo" class="col-sm-2 col-form-label">Show Discovery Zone Info</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="showDiscoZoneInfo" data-bind="checked: showDiscoZoneInfo" type="checkbox" class="form-control">
|
<input id="showDiscoZoneInfo" data-bind="checked: showDiscoZoneInfo" type="checkbox"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="showShipPathsInfo" class="col-sm-2 col-form-label">Show Ship Path Info</label>
|
<label for="showShipPathsInfo" class="col-sm-2 col-form-label">Show Ship Path Info</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="showShipPathsInfo" data-bind="checked: showShipPathsInfo" type="checkbox" class="form-control">
|
<input id="showShipPathsInfo" data-bind="checked: showShipPathsInfo" type="checkbox"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="showIslandNames" class="col-sm-2 col-form-label">Show Island Names</label>
|
<label for="showIslandNames" class="col-sm-2 col-form-label">Show Island Names</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="showIslandNames" data-bind="checked: showIslandNames" type="checkbox" class="form-control">
|
<input id="showIslandNames" data-bind="checked: showIslandNames" type="checkbox"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
|
|
@ -199,7 +218,8 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="showBackground" class="col-sm-2 col-form-label">Show Background</label>
|
<label for="showBackground" class="col-sm-2 col-form-label">Show Background</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="showBackground" data-bind="checked: showBackground" type="checkbox" class="form-control">
|
<input id="showBackground" data-bind="checked: showBackground" type="checkbox"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -214,19 +234,22 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="LocalS3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
<label for="LocalS3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="LocalS3AccessKeyId" data-bind="value: LocalS3AccessKeyId" type="text" class="form-control">
|
<input id="LocalS3AccessKeyId" data-bind="value: LocalS3AccessKeyId" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="LocalS3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
<label for="LocalS3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="LocalS3SecretKey" data-bind="value: LocalS3SecretKey" type="text" class="form-control">
|
<input id="LocalS3SecretKey" data-bind="value: LocalS3SecretKey" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="LocalS3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
<label for="LocalS3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="LocalS3BucketName" data-bind="value: LocalS3BucketName" type="text" class="form-control">
|
<input id="LocalS3BucketName" data-bind="value: LocalS3BucketName" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
|
|
@ -241,25 +264,30 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="globalGameplaySetup" class="col-sm-2 col-form-label">Gameplay Setup</label>
|
<label for="globalGameplaySetup" class="col-sm-2 col-form-label">Gameplay Setup</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="globalGameplaySetup" data-bind="value: globalGameplaySetup" type="text" class="form-control">
|
<input id="globalGameplaySetup" data-bind="value: globalGameplaySetup" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="shipPathsIdGenerator" class="col-sm-2 col-form-label">Ship Paths ID Generator</label>
|
<label for="shipPathsIdGenerator" class="col-sm-2 col-form-label">Ship Paths ID
|
||||||
|
Generator</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="shipPathsIdGenerator" data-bind="numericValue: shipPathsIdGenerator" type="number" step="1" class="form-control">
|
<input id="shipPathsIdGenerator" data-bind="numericValue: shipPathsIdGenerator"
|
||||||
|
type="number" step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="idGenerator" class="col-sm-2 col-form-label">ID Generator</label>
|
<label for="idGenerator" class="col-sm-2 col-form-label">ID Generator</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="idGenerator" data-bind="numericValue: idGenerator" type="number" step="1" class="form-control">
|
<input id="idGenerator" data-bind="numericValue: idGenerator" type="number" step="1"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="regionsIdGenerator" class="col-sm-2 col-form-label">Regions ID Generator</label>
|
<label for="regionsIdGenerator" class="col-sm-2 col-form-label">Regions ID Generator</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="regionsIdGenerator" data-bind="numericValue: regionsIdGenerator" type="number" step="1" class="form-control">
|
<input id="regionsIdGenerator" data-bind="numericValue: regionsIdGenerator" type="number"
|
||||||
|
step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -272,31 +300,36 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-MaxRedisEntries" class="col-sm-2 col-form-label">Max Redis Entries</label>
|
<label for="Tribe-MaxRedisEntries" class="col-sm-2 col-form-label">Max Redis Entries</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Tribe-MaxRedisEntries" data-bind="numericValue: $data.MaxRedisEntries" type="number" step="1" class="form-control">
|
<input id="Tribe-MaxRedisEntries" data-bind="numericValue: $data.MaxRedisEntries"
|
||||||
|
type="number" step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
<label for="Tribe-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<select id="Tribe-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode" class="form-control"></select>
|
<select id="Tribe-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode"
|
||||||
|
class="form-control"></select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
<label for="Tribe-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Tribe-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory" type="number" step="1" class="form-control">
|
<input id="Tribe-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory"
|
||||||
|
type="number" step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
<label for="Tribe-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Tribe-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text" class="form-control">
|
<input id="Tribe-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
<label for="Tribe-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Tribe-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text" class="form-control">
|
<input id="Tribe-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -311,25 +344,29 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
<label for="Tribe-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Tribe-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text" class="form-control">
|
<input id="Tribe-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
<label for="Tribe-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Tribe-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text" class="form-control">
|
<input id="Tribe-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
<label for="Tribe-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Tribe-S3BucketName" data-bind="value: $data.S3BucketName" type="text" class="form-control">
|
<input id="Tribe-S3BucketName" data-bind="value: $data.S3BucketName" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Tribe-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
<label for="Tribe-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Tribe-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text" class="form-control">
|
<input id="Tribe-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -342,25 +379,29 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Travel-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
<label for="Travel-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<select id="Travel-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode" class="form-control"></select>
|
<select id="Travel-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode"
|
||||||
|
class="form-control"></select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Travel-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
<label for="Travel-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Travel-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory" type="number" step="1" class="form-control">
|
<input id="Travel-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory"
|
||||||
|
type="number" step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Travel-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
<label for="Travel-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Travel-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text" class="form-control">
|
<input id="Travel-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Travel-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
<label for="Travel-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Travel-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text" class="form-control">
|
<input id="Travel-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -375,25 +416,29 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Travel-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
<label for="Travel-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Travel-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text" class="form-control">
|
<input id="Travel-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Travel-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
<label for="Travel-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Travel-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text" class="form-control">
|
<input id="Travel-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Travel-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
<label for="Travel-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Travel-S3BucketName" data-bind="value: $data.S3BucketName" type="text" class="form-control">
|
<input id="Travel-S3BucketName" data-bind="value: $data.S3BucketName" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Travel-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
<label for="Travel-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Travel-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text" class="form-control">
|
<input id="Travel-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -406,49 +451,61 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-FetchRateSec" class="col-sm-2 col-form-label">Fetch Rate (Seconds)</label>
|
<label for="Shared-FetchRateSec" class="col-sm-2 col-form-label">Fetch Rate (Seconds)</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-FetchRateSec" data-bind="numericValue: $data.FetchRateSec" type="number" step="1" class="form-control">
|
<input id="Shared-FetchRateSec" data-bind="numericValue: $data.FetchRateSec" type="number"
|
||||||
|
step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-SnapshotCleanupSec" class="col-sm-2 col-form-label">Snapshot Cleanup (Seconds)</label>
|
<label for="Shared-SnapshotCleanupSec" class="col-sm-2 col-form-label">Snapshot Cleanup
|
||||||
|
(Seconds)</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-SnapshotCleanupSec" data-bind="numericValue: $data.SnapshotCleanupSec" type="number" step="1" class="form-control">
|
<input id="Shared-SnapshotCleanupSec" data-bind="numericValue: $data.SnapshotCleanupSec"
|
||||||
|
type="number" step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-SnapshotRateSec" class="col-sm-2 col-form-label">Snapshot Rate (Seconds)</label>
|
<label for="Shared-SnapshotRateSec" class="col-sm-2 col-form-label">Snapshot Rate
|
||||||
|
(Seconds)</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-SnapshotRateSec" data-bind="numericValue: $data.SnapshotRateSec" type="number" step="1" class="form-control">
|
<input id="Shared-SnapshotRateSec" data-bind="numericValue: $data.SnapshotRateSec"
|
||||||
|
type="number" step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-SnapshotExpirationHours" class="col-sm-2 col-form-label">Snapshot Expiration (Hours)</label>
|
<label for="Shared-SnapshotExpirationHours" class="col-sm-2 col-form-label">Snapshot Expiration
|
||||||
|
(Hours)</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-SnapshotExpirationHours" data-bind="numericValue: $data.SnapshotExpirationHours" type="number" step="1" class="form-control">
|
<input id="Shared-SnapshotExpirationHours"
|
||||||
|
data-bind="numericValue: $data.SnapshotExpirationHours" type="number" step="1"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
<label for="Shared-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<select id="Shared-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode" class="form-control"></select>
|
<select id="Shared-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode"
|
||||||
|
class="form-control"></select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
<label for="Shared-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory" type="number" step="1" class="form-control">
|
<input id="Shared-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory"
|
||||||
|
type="number" step="1" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
<label for="Shared-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text" class="form-control">
|
<input id="Shared-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
<label for="Shared-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text" class="form-control">
|
<input id="Shared-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -463,25 +520,29 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
<label for="Shared-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text" class="form-control">
|
<input id="Shared-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
<label for="Shared-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text" class="form-control">
|
<input id="Shared-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
<label for="Shared-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-S3BucketName" data-bind="value: $data.S3BucketName" type="text" class="form-control">
|
<input id="Shared-S3BucketName" data-bind="value: $data.S3BucketName" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="Shared-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
<label for="Shared-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input id="Shared-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text" class="form-control">
|
<input id="Shared-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
@ -492,35 +553,177 @@
|
||||||
<!-- ko foreach: DatabaseConnections -->
|
<!-- ko foreach: DatabaseConnections -->
|
||||||
<form>
|
<form>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>DB Connection: <span data-bind="text: $data.Name"></span> <button class="btn btn-danger pull-right" data-bind="click: removeDatabase">Remove Database</button></legend>
|
<legend>DB Connection: <span data-bind="text: $data.Name"></span>
|
||||||
|
<button class="btn btn-danger pull-right" data-bind="click: removeDatabase">Remove Database
|
||||||
|
</button>
|
||||||
|
</legend>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label data-bind="attr: { for: $index() + '-DB-Name' }" class="col-sm-2 col-form-label">Name</label>
|
<label data-bind="attr: { for: $index() + '-DB-Name' }"
|
||||||
|
class="col-sm-2 col-form-label">Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input data-bind="attr: { id: $index() + '-DB-Name' }, value: $data.Name" type="text" class="form-control">
|
<input data-bind="attr: { id: $index() + '-DB-Name' }, value: $data.Name" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label data-bind="attr: { for: $index() + '-DB-URL' }" class="col-sm-2 col-form-label">URL</label>
|
<label data-bind="attr: { for: $index() + '-DB-URL' }"
|
||||||
|
class="col-sm-2 col-form-label">URL</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input data-bind="attr: { id: $index() + '-DB-URL' }, value: $data.URL" type="text" class="form-control">
|
<input data-bind="attr: { id: $index() + '-DB-URL' }, value: $data.URL" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label data-bind="attr: { for: $index() + '-DB-Port' }" class="col-sm-2 col-form-label">Port</label>
|
<label data-bind="attr: { for: $index() + '-DB-Port' }"
|
||||||
|
class="col-sm-2 col-form-label">Port</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input data-bind="attr: { id: $index() + '-DB-Port' }, numericValue: $data.Port" type="text" class="form-control">
|
<input data-bind="attr: { id: $index() + '-DB-Port' }, numericValue: $data.Port" type="text"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label data-bind="attr: { for: $index() + '-DB-Password' }" class="col-sm-2 col-form-label">Password</label>
|
<label data-bind="attr: { for: $index() + '-DB-Password' }" class="col-sm-2 col-form-label">Password</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input data-bind="attr: { id: $index() + '-DB-Password' }, value: $data.Password" type="text" class="form-control">
|
<input data-bind="attr: { id: $index() + '-DB-Password' }, value: $data.Password"
|
||||||
|
type="text" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<!-- /ko -->
|
<!-- /ko -->
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tab-pane fade" id="tab-servers">
|
||||||
|
<button class="btn btn-primary" data-bind="click: addServer">Add Server</button>
|
||||||
|
<div class="row" data-bind="foreach: servers">
|
||||||
|
<div class="col-3 m-1">
|
||||||
|
<a class="btn btn-success" data-bind="attr: { href: '#server-tab-' + $index() }">
|
||||||
|
<span data-bind="text: $data.name "></span> - (<span data-bind="text: $data.gridX "></span>,
|
||||||
|
<span data-bind="text: $data.gridY "></span>)
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- ko foreach: servers -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<a data-bind="attr: { id: 'server-tab-' + $index() }"><h2><span data-bind="text: $data.name "></span> - (<span data-bind="text: $data.gridX "></span>,
|
||||||
|
<span data-bind="text: $data.gridY "></span>)</h2></a>
|
||||||
|
<form>
|
||||||
|
<fieldset>
|
||||||
|
<legend>Basic Data</legend>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-name-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Name</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-name-' + $index() }, value: $data.name"
|
||||||
|
type="text"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-serverTemplateName-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Template Name</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-serverTemplateName-' + $index() }, value: $data.serverTemplateName"
|
||||||
|
type="text"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-ip-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">IP</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-ip-' + $index() }, value: $data.ip"
|
||||||
|
type="text"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-port-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Port</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-port-' + $index() }, numericValue: $data.port"
|
||||||
|
type="number"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-gamePort-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Game Port</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-gamePort-' + $index() }, numericValue: $data.gamePort"
|
||||||
|
type="number"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-seamlessDataPort-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Seamless Data Port</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-seamlessDataPort-' + $index() }, numericValue: $data.seamlessDataPort"
|
||||||
|
type="number"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-gridX-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Grid X</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-gridX-' + $index() }, numericValue: $data.gridX"
|
||||||
|
type="number"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-gridY-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Grid Y</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-gridY-' + $index() }, numericValue: $data.gridY"
|
||||||
|
type="number"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-MachineIdTag-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Machine ID Tag</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-MachineIdTag-' + $index() }, value: $data.MachineIdTag"
|
||||||
|
type="text"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-isHomeServer-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Is Home Server</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input data-bind="attr: { id: 'Server-isHomeServer-' + $index() }, checked: $data.isHomeServer"
|
||||||
|
type="checkbox"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend>Biome Options</legend>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label data-bind="attr: { for: 'Server-GlobalBiomeSeamlessServerGridPreOffsetValues-' + $index() }"
|
||||||
|
class="col-sm-2 col-form-label">Offset Values</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<div class="input-group">
|
||||||
|
<input data-bind="attr: { id: 'Server-GlobalBiomeSeamlessServerGridPreOffsetValues-' + $index() }, value: $data.GlobalBiomeSeamlessServerGridPreOffsetValues"
|
||||||
|
type="text"
|
||||||
|
class="form-control" disabled>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-outline-primary" data-bind="click: deparseEdit.bind($data, 'GlobalBiomeSeamlessServerGridPreOffsetValues')">Edit</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<small class="form-text text-muted">GlobalBiomeSeamlessServerGridPreOffsetValues</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /ko -->
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
70
js/main.js
70
js/main.js
|
|
@ -19,7 +19,13 @@ ko.bindingHandlers.numericValue = {
|
||||||
|
|
||||||
var editor = ace.edit("config-editor");
|
var editor = ace.edit("config-editor");
|
||||||
editor.setTheme("ace/theme/monokai");
|
editor.setTheme("ace/theme/monokai");
|
||||||
editor.session.setMode("ace/mode/javascript");
|
editor.session.setMode("ace/mode/json");
|
||||||
|
|
||||||
|
var parser;
|
||||||
|
|
||||||
|
$.get('js/atlas.pegjs', function(data) {
|
||||||
|
parser = PEG.buildParser(data);
|
||||||
|
});
|
||||||
|
|
||||||
var viewmodel = ko.mapping.fromJS({
|
var viewmodel = ko.mapping.fromJS({
|
||||||
// Server Argument Section
|
// Server Argument Section
|
||||||
|
|
@ -162,24 +168,33 @@ var viewmodel = ko.mapping.fromJS({
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
|
// Servers Tab
|
||||||
"servers": [
|
"servers": [
|
||||||
{
|
{
|
||||||
"gridX": 4,
|
// Basic Data
|
||||||
"gridY": 5,
|
"name": "Server Name",
|
||||||
"MachineIdTag": "",
|
"serverTemplateName": "No Build PVE",
|
||||||
"ip": "51.68.68.225",
|
"ip": "127.0.0.1",
|
||||||
"name": "The Crystal Sea",
|
"port": 29145,
|
||||||
"port": 29145,
|
"gamePort": 3045,
|
||||||
"gamePort": 3045,
|
"seamlessDataPort": 31029,
|
||||||
"seamlessDataPort": 31029,
|
"gridX": 0,
|
||||||
"isHomeServer": false,
|
"gridY": 0,
|
||||||
"AdditionalCmdLineParams": "",
|
"MachineIdTag": "",
|
||||||
"OverrideShooterGameModeDefaultGameIni": {},
|
"isHomeServer": false,
|
||||||
"floorZDist": 0,
|
|
||||||
|
|
||||||
|
"AdditionalCmdLineParams": "",
|
||||||
|
|
||||||
|
"floorZDist": 0,
|
||||||
"utcOffset": 0,
|
"utcOffset": 0,
|
||||||
"transitionMinZ": 0,
|
"transitionMinZ": 0,
|
||||||
"GlobalBiomeSeamlessServerGridPreOffsetValues": "(BiomeZoneName=\"Temperate At Land\",PreOffsetMaxDistanceFromShore=100000.000000,PreOffsetTemperatureMultiplier=1.000000,PreOffsetTemperatureMultiplierMaxDistanceFromShore=1.000000,PreOffsetTemperatureAdditionMaxDistanceFromShore=-9.000000,PreOffsetTemperatureAddition=0.000000,PreOffsetTemperatureExponent=1.000000,PreOffsetTemperatureExponentMaxDistanceFromShore=1.000000,BiomeZoneNameAltDistanceName=\"Temperate Open Water\",BiomeZoneNameAltDistanceAmount=0.000000)",
|
|
||||||
"GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater": "(BiomeZoneName=\"Temperate Ocean Water\",PreOffsetMaxDistanceFromShore=17500.000000,PreOffsetTemperatureMultiplier=1.000000,PreOffsetTemperatureMultiplierMaxDistanceFromShore=1.000000,PreOffsetTemperatureAdditionMaxDistanceFromShore=-31.000000,PreOffsetTemperatureAddition=-5.000000,PreOffsetTemperatureExponent=1.000000,PreOffsetTemperatureExponentMaxDistanceFromShore=1.000000,BiomeZoneNameAltDistanceName=\"Temperate Deep Ocean\",BiomeZoneNameAltDistanceAmount=0.500000)",
|
// Biome Options
|
||||||
|
"GlobalBiomeSeamlessServerGridPreOffsetValues": "(BiomeZoneName=\"Temperate At Land\",PreOffsetMaxDistanceFromShore=100000.000000,PreOffsetTemperatureMultiplier=1.000000,PreOffsetTemperatureMultiplierMaxDistanceFromShore=1.000000,PreOffsetTemperatureAdditionMaxDistanceFromShore=-9.000000,PreOffsetTemperatureAddition=0.000000,PreOffsetTemperatureExponent=1.000000,PreOffsetTemperatureExponentMaxDistanceFromShore=1.000000,BiomeZoneNameAltDistanceName=\"Temperate Open Water\",BiomeZoneNameAltDistanceAmount=0.000000)",
|
||||||
|
"GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater": "(BiomeZoneName=\"Temperate Ocean Water\",PreOffsetMaxDistanceFromShore=17500.000000,PreOffsetTemperatureMultiplier=1.000000,PreOffsetTemperatureMultiplierMaxDistanceFromShore=1.000000,PreOffsetTemperatureAdditionMaxDistanceFromShore=-31.000000,PreOffsetTemperatureAddition=-5.000000,PreOffsetTemperatureExponent=1.000000,PreOffsetTemperatureExponentMaxDistanceFromShore=1.000000,BiomeZoneNameAltDistanceName=\"Temperate Deep Ocean\",BiomeZoneNameAltDistanceAmount=0.500000)",
|
||||||
|
|
||||||
|
// Override Options
|
||||||
"OceanDinoDepthEntriesOverride": "",
|
"OceanDinoDepthEntriesOverride": "",
|
||||||
"OceanEpicSpawnEntriesOverrideValues": "(NPCSpawnEntries=((NPCsToSpawn=(BlueprintGeneratedClass'/Game/Atlas/Creatures/MeanWhale/MeanWhale_Character_BP.MeanWhale_Character_BP_C'),NPCsSpawnOffsets=((X=0.000000,Y=0.000000,Z=-700.000000)),NPCsToSpawnPercentageChance=(1.000000)),(NPCsToSpawn=(BlueprintGeneratedClass'/Game/Atlas/Creatures/MeanWhale/MeanWhale_SeaMonster_Character_BP.MeanWhale_SeaMonster_Character_BP_C'),NPCsSpawnOffsets=((X=0.000000,Y=0.000000,Z=-700.000000)),NPCsToSpawnPercentageChance=(1.000000))),NPCSpawnLimits=,MaxDesiredNumEnemiesMultiplier=4.000000)",
|
"OceanEpicSpawnEntriesOverrideValues": "(NPCSpawnEntries=((NPCsToSpawn=(BlueprintGeneratedClass'/Game/Atlas/Creatures/MeanWhale/MeanWhale_Character_BP.MeanWhale_Character_BP_C'),NPCsSpawnOffsets=((X=0.000000,Y=0.000000,Z=-700.000000)),NPCsToSpawnPercentageChance=(1.000000)),(NPCsToSpawn=(BlueprintGeneratedClass'/Game/Atlas/Creatures/MeanWhale/MeanWhale_SeaMonster_Character_BP.MeanWhale_SeaMonster_Character_BP_C'),NPCsSpawnOffsets=((X=0.000000,Y=0.000000,Z=-700.000000)),NPCsToSpawnPercentageChance=(1.000000))),NPCSpawnLimits=,MaxDesiredNumEnemiesMultiplier=4.000000)",
|
||||||
"oceanFloatsamCratesOverride": "",
|
"oceanFloatsamCratesOverride": "",
|
||||||
|
|
@ -187,10 +202,14 @@ var viewmodel = ko.mapping.fromJS({
|
||||||
"oceanEpicSpawnEntriesOverrideTemplateName": "",
|
"oceanEpicSpawnEntriesOverrideTemplateName": "",
|
||||||
"NPCShipSpawnEntriesOverrideTemplateName": "",
|
"NPCShipSpawnEntriesOverrideTemplateName": "",
|
||||||
"regionOverrides": "",
|
"regionOverrides": "",
|
||||||
|
|
||||||
|
// Style Options
|
||||||
"waterColorR": 0.0,
|
"waterColorR": 0.0,
|
||||||
"waterColorG": 0.0,
|
"waterColorG": 0.0,
|
||||||
"waterColorB": 0.0,
|
"waterColorB": 0.0,
|
||||||
"skyStyleIndex": 0,
|
"skyStyleIndex": 0,
|
||||||
|
|
||||||
|
|
||||||
"serverIslandPointsMultiplier": 1.0,
|
"serverIslandPointsMultiplier": 1.0,
|
||||||
"sublevels": [
|
"sublevels": [
|
||||||
{
|
{
|
||||||
|
|
@ -389,7 +408,9 @@ var viewmodel = ko.mapping.fromJS({
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"spawnRegions": [],
|
"spawnRegions": [],
|
||||||
"serverTemplateName": "No Build PVE"
|
|
||||||
|
// ???
|
||||||
|
"OverrideShooterGameModeDefaultGameIni": {}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"spawnerOverrideTemplates": [],
|
"spawnerOverrideTemplates": [],
|
||||||
|
|
@ -435,10 +456,17 @@ function removeDatabase(obj) {
|
||||||
viewmodel.DatabaseConnections.remove(obj);
|
viewmodel.DatabaseConnections.remove(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
var parser;
|
function addServer() {
|
||||||
|
console.log('boo');
|
||||||
|
}
|
||||||
|
|
||||||
$.get('js/atlas.pegjs', function(data) {
|
function removeServer() {
|
||||||
|
console.log('boo2');
|
||||||
|
}
|
||||||
|
|
||||||
|
function deparseEdit(key, data, event) {
|
||||||
|
console.log('boop');
|
||||||
console.log(data);
|
console.log(data);
|
||||||
parser = PEG.buildParser(data);
|
console.log(key);
|
||||||
console.log(parser.parse(viewmodel.servers()[0].GlobalBiomeSeamlessServerGridPreOffsetValues()));
|
console.log(parser.parse(data[key]()));
|
||||||
});
|
}
|
||||||
128
js/parser_test.js
Normal file
128
js/parser_test.js
Normal file
|
|
@ -0,0 +1,128 @@
|
||||||
|
var atlasEditor = ace.edit("atlas-config-editor");
|
||||||
|
atlasEditor.setTheme("ace/theme/monokai");
|
||||||
|
atlasEditor.session.setMode("ace/mode/text");
|
||||||
|
atlasEditor.session.setUseWrapMode(true);
|
||||||
|
|
||||||
|
var jsonEditor = ace.edit("json-config-editor");
|
||||||
|
jsonEditor.setTheme("ace/theme/monokai");
|
||||||
|
jsonEditor.session.setMode("ace/mode/json");
|
||||||
|
|
||||||
|
var parser;
|
||||||
|
|
||||||
|
$.get('js/atlas.pegjs', function (data) {
|
||||||
|
parser = PEG.buildParser(data);
|
||||||
|
});
|
||||||
|
|
||||||
|
ko.applyBindings({});
|
||||||
|
|
||||||
|
function fromAtlasToJson() {
|
||||||
|
var input = atlasEditor.getValue();
|
||||||
|
var output = parser.parse(input);
|
||||||
|
jsonEditor.setValue(ko.toJSON(output, null, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
function fromJsonToAtlas() {
|
||||||
|
var input = JSON.parse(jsonEditor.getValue());
|
||||||
|
|
||||||
|
console.log(input);
|
||||||
|
|
||||||
|
var output = deparseJson(input);
|
||||||
|
|
||||||
|
console.log(output);
|
||||||
|
atlasEditor.setValue(output);
|
||||||
|
}
|
||||||
|
|
||||||
|
function deparseJson(input) {
|
||||||
|
switch (typeof input) {
|
||||||
|
case "object":
|
||||||
|
return deparseObject(input);
|
||||||
|
case "number":
|
||||||
|
return deparseNumber(input);
|
||||||
|
case "string":
|
||||||
|
return deparseString(input);
|
||||||
|
case "undefined":
|
||||||
|
return "";
|
||||||
|
case "boolean":
|
||||||
|
return deparseBoolean(input);
|
||||||
|
default:
|
||||||
|
console.log("Unknown type for input", input);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function deparseObject(input) {
|
||||||
|
if (Array.isArray(input)) {
|
||||||
|
return deparseArray(input);
|
||||||
|
}
|
||||||
|
if (input === null) {
|
||||||
|
return "None";
|
||||||
|
}
|
||||||
|
|
||||||
|
var beginObject = '(';
|
||||||
|
var endObject = ')';
|
||||||
|
var nameSeparator = '=';
|
||||||
|
var valueSeparator = ',';
|
||||||
|
|
||||||
|
var output = '';
|
||||||
|
output += beginObject;
|
||||||
|
|
||||||
|
Object.keys(input).forEach(function (key, idx, array) {
|
||||||
|
output += key;
|
||||||
|
output += nameSeparator;
|
||||||
|
output += deparseJson(input[key]);
|
||||||
|
|
||||||
|
if (idx !== array.length - 1) {
|
||||||
|
// Not the last item
|
||||||
|
output += valueSeparator
|
||||||
|
}
|
||||||
|
});
|
||||||
|
output += endObject;
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
function deparseArray(input) {
|
||||||
|
// We have one funky array option, where its 2 values and one of them is a recognised class.
|
||||||
|
if (input[0] === "BlueprintGeneratedClass") {
|
||||||
|
return "BlueprintGeneratedClass" + "'" + input[1] + "'";
|
||||||
|
}
|
||||||
|
if (input[0] === "SoundWave") {
|
||||||
|
return "SoundWave" + "'" + input[1] + "'"
|
||||||
|
}
|
||||||
|
|
||||||
|
var beginObject = '(';
|
||||||
|
var endObject = ')';
|
||||||
|
var valueSeparator = ',';
|
||||||
|
|
||||||
|
var output = '';
|
||||||
|
output += beginObject;
|
||||||
|
|
||||||
|
input.forEach(function (data, idx, array) {
|
||||||
|
output += deparseJson(data);
|
||||||
|
|
||||||
|
if (idx !== array.length - 1) {
|
||||||
|
output += valueSeparator;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
output += endObject;
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
function deparseNumber(input) {
|
||||||
|
// All numbers seem to be a string to 6 decimal places
|
||||||
|
return Number(input).toFixed(6);
|
||||||
|
}
|
||||||
|
|
||||||
|
function deparseString(input) {
|
||||||
|
// We need to re-encode the strings properly
|
||||||
|
return JSON.stringify(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
function deparseBoolean(input) {
|
||||||
|
if ( input ) {
|
||||||
|
return 'True';
|
||||||
|
} else {
|
||||||
|
return 'False';
|
||||||
|
}
|
||||||
|
}
|
||||||
68
parser_test.html
Normal file
68
parser_test.html
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Parser Testing</title>
|
||||||
|
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
|
||||||
|
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
|
||||||
|
crossorigin="anonymous">
|
||||||
|
<style>
|
||||||
|
#atlas-config-editor, #json-config-editor {
|
||||||
|
width: 100%;
|
||||||
|
height: 40vh;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<nav class="navbar bg-light">
|
||||||
|
<a class="navbar-brand" href="#">Atlas Config Parser Test</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<span>Atlas Crazy Config</span>
|
||||||
|
<div id="atlas-config-editor">(SoundOverrides=(NavalCombatMusicDay=SoundWave'/Game/Atlas/Music/ATL_SeaCombatArcticDay_v1.ATL_SeaCombatArcticDay_v1',NavalCombatMusicNight=SoundWave'/Game/Atlas/Music/ATL_SeaCombatArcticNight_v1.ATL_SeaCombatArcticNight_v1',CombatMusicDay=SoundWave'/Game/Atlas/Music/ATL_LandCombatArcticDay_v2.ATL_LandCombatArcticDay_v2',CombatMusicNight=SoundWave'/Game/Atlas/Music/ATL_LandCombatArcticNight_v1.ATL_LandCombatArcticNight_v1',CombatMusicDay_Heavy=SoundWave'/Game/Atlas/Music/ATL_LandCombatArcticDay_v2.ATL_LandCombatArcticDay_v2',CombatMusicNight_Heavy=SoundWave'/Game/Atlas/Music/ATL_LandCombatArcticNight_v1.ATL_LandCombatArcticNight_v1',Sound_TransitionToMorning=SoundWave'/Game/Atlas/Stingers/ATL_Sting_ArcticMorning.ATL_Sting_ArcticMorning',Sound_TransitionToMidDay=SoundWave'/Game/Atlas/Stingers/ATL_Sting_ArcticNoon.ATL_Sting_ArcticNoon',Sound_TransitionToNight=SoundWave'/Game/Atlas/Stingers/ATL_Sting_ArcticNight.ATL_Sting_ArcticNight',Sound_SetSail=SoundWave'/Game/Atlas/Stingers/ATL_Sting_ArcticSetSail.ATL_Sting_ArcticSetSail',Sound_Respawn=None,Sound_CreateNewCharacter=None),OceanHarvestEntriesOverrides=((RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Tall_35.OceanHarvestable_Seaweed_Tall_35_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/HerbHarvestComponent_RedAlgae.HerbHarvestComponent_RedAlgae_C',Weight=0.100000,RandomOffsetPercentageOfPlacementInterval=3.000000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Tall_36.OceanHarvestable_Seaweed_Tall_36_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/HerbHarvestComponent_RedAlgae.HerbHarvestComponent_RedAlgae_C',Weight=0.010000,RandomOffsetPercentageOfPlacementInterval=5.400000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Tall_37.OceanHarvestable_Seaweed_Tall_37_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.200000,RandomOffsetPercentageOfPlacementInterval=2.100000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_16.OceanHarvestable_Seaweed_Short_16_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.010000,RandomOffsetPercentageOfPlacementInterval=1.400000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_40.OceanHarvestable_Seaweed_Short_40_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.050000,RandomOffsetPercentageOfPlacementInterval=4.000000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_41.OceanHarvestable_Seaweed_Short_41_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.400000,RandomOffsetPercentageOfPlacementInterval=0.600000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_42.OceanHarvestable_Seaweed_Short_42_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.800000,RandomOffsetPercentageOfPlacementInterval=0.800000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Seaweed_Short_43.OceanHarvestable_Seaweed_Short_43_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/FiberHarvestComponent_Seaweed.FiberHarvestComponent_Seaweed_C',Weight=0.400000,RandomOffsetPercentageOfPlacementInterval=0.500000),(RenderComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/Render_Components/OceanHarvestable_Coral_Brain.OceanHarvestable_Coral_Brain_C',HarvestComponent=BlueprintGeneratedClass'/Game/Atlas/AtlasCoreBP/HarvestComponents/00_OceanFloor/CoralHarvestComponent_Brain.CoralHarvestComponent_Brain_C',Weight=0.500000,RandomOffsetPercentageOfPlacementInterval=10.000000)),bDisableClaimFlags=False)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<button class="btn btn-primary" data-bind="click: fromAtlasToJson">From Atlas to JSON</button>
|
||||||
|
<button class="btn btn-primary" data-bind="click: fromJsonToAtlas">From JSON to Atlas</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<span>JSON Interpretation</span>
|
||||||
|
<div id="json-config-editor"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
|
||||||
|
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
|
||||||
|
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
|
||||||
|
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.5/ace.js"
|
||||||
|
integrity="sha256-5Xkhn3k/1rbXB+Q/DX/2RuAtaB4dRRyQvMs83prFjpM="
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.0/knockout-min.js"
|
||||||
|
integrity="sha256-Tjl7WVgF1hgGMgUKZZfzmxOrtoSf8qltZ9wMujjGNQk="
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js"
|
||||||
|
integrity="sha256-gaGobNk1cPaj0abcVmyZxUYgCPsueCJwN5i4DjC4BS0="
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/pegjs/0.9.0/peg.js"
|
||||||
|
integrity="sha256-cwfR02g6XnRmRxZLIwyChnsn4ODrS2uSl6eODJkjrnY="
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="js/parser_test.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Add table
Reference in a new issue