Major work and first attempt online
This commit is contained in:
parent
f564a454fe
commit
9e7db8f5c3
5 changed files with 654 additions and 8 deletions
2
.idea/jsLibraryMappings.xml
generated
2
.idea/jsLibraryMappings.xml
generated
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptLibraryMappings">
|
||||
<file url="PROJECT" libraries="{jquery-3.4.1}" />
|
||||
<file url="PROJECT" libraries="{@types/knockout, @types/knockout.mapping, ace, bootstrap, jquery-3.4.1, knockout, knockout.mapping, popper}" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -5,5 +5,12 @@
|
|||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="jquery-3.4.1" level="application" />
|
||||
<orderEntry type="library" name="popper" level="application" />
|
||||
<orderEntry type="library" name="bootstrap" level="application" />
|
||||
<orderEntry type="library" name="ace" level="application" />
|
||||
<orderEntry type="library" name="knockout" level="application" />
|
||||
<orderEntry type="library" name="@types/knockout" level="application" />
|
||||
<orderEntry type="library" name="knockout.mapping" level="application" />
|
||||
<orderEntry type="library" name="@types/knockout.mapping" level="application" />
|
||||
</component>
|
||||
</module>
|
||||
4
css/main.css
Normal file
4
css/main.css
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#config-editor {
|
||||
width: 100%;
|
||||
height: 75vh;
|
||||
}
|
||||
493
index.html
493
index.html
|
|
@ -11,23 +11,502 @@
|
|||
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
|
||||
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
|
||||
crossorigin="anonymous">
|
||||
<link rel="stylesheet"
|
||||
href="css/main.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Add your site or application content here -->
|
||||
<p>Hello world! This is HTML5 Boilerplate.</p>
|
||||
<nav class="navbar bg-light">
|
||||
<a class="navbar-brand" href="#">Atlas Config Generator</a>
|
||||
</nav>
|
||||
<div class="container-fluid">
|
||||
<div class="nav nav-tabs">
|
||||
<a id="nav-config" class="nav-item nav-link active" data-toggle="tab" href="#tab-config">Config</a>
|
||||
<a id="nav-basic" class="nav-item nav-link" data-toggle="tab" href="#tab-basic">Basic Options</a>
|
||||
<a id="nav-tribe-log" class="nav-item nav-link" data-toggle="tab" href="#tab-tribe-log">Tribe Log</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>
|
||||
</div>
|
||||
<div class="tab-content" id="tab-content">
|
||||
<div class="tab-pane fade show active" id="tab-config">
|
||||
<span>Paste your server config in here, or use tabs to modify settings</span>
|
||||
<div id="config-editor"></div>
|
||||
<span>Note, coordsScaling may need modifying from a string to a number - Javascript Limitation...</span>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab-basic">
|
||||
<form>
|
||||
<fieldset>
|
||||
<legend>Server Arguments</legend>
|
||||
<div class="form-group row">
|
||||
<label for="BaseServerArgs" class="col-sm-2 col-form-label">Base Server Args</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea id="BaseServerArgs" data-bind="value: BaseServerArgs" rows="3" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="AdditionalCmdLineParams" class="col-sm-2 col-form-label">Additional CLI Params</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea id="AdditionalCmdLineParams" data-bind="value: AdditionalCmdLineParams" rows="3" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>World Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="WorldFriendlyName" class="col-sm-2 col-form-label">Friendly Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="WorldFriendlyName" data-bind="value: WorldFriendlyName" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="WorldAtlasId" class="col-sm-2 col-form-label">Atlas ID</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="WorldAtlasId" data-bind="value: WorldAtlasId" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="WorldAtlasPassword" class="col-sm-2 col-form-label">Password</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="WorldAtlasPassword" data-bind="value: WorldAtlasPassword" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Grid Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="gridSize" class="col-sm-2 col-form-label">Grid Size</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="gridSize" data-bind="numericValue: gridSize" type="number" step="0.1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="coordsScaling" class="col-sm-2 col-form-label">Coords Scaling</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="coordsScaling" data-bind="value: coordsScaling" type="number" step="0.000000000001" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="totalGridsX" class="col-sm-2 col-form-label">No. Grids X</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="totalGridsX" data-bind="numericValue: totalGridsX" type="number" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="totalGridsY" class="col-sm-2 col-form-label">No. Grids Y</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="totalGridsY" data-bind="numericValue: totalGridsY" type="number" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Image Paths</legend>
|
||||
<div class="form-group row">
|
||||
<label for="backgroundImgPath" class="col-sm-2 col-form-label">Background Image</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="backgroundImgPath" data-bind="value: backgroundImgPath" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="discoZonesImagePath" class="col-sm-2 col-form-label">Discovery Zones Image</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="discoZonesImagePath" data-bind="value: discoZonesImagePath" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>URL Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="MetaWorldURL" class="col-sm-2 col-form-label">Meta World URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="MetaWorldURL" data-bind="value: MetaWorldURL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="AuthListURL" class="col-sm-2 col-form-label">Auth List URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="AuthListURL" data-bind="value: AuthListURL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="MapImageURL" class="col-sm-2 col-form-label">Map Image URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="MapImageURL" data-bind="value: MapImageURL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Time Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="Day0" class="col-sm-2 col-form-label">Day Zero</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Day0" data-bind="value: Day0" type="text" class="form-control">
|
||||
<small class="text-muted">Format: YYYY-mm-DD HH:MM:SS</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="bUseUTCTime" class="col-sm-2 col-form-label">Use UTC Time</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="bUseUTCTime" data-bind="checked: bUseUTCTime" type="checkbox" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="columnUTCOffset" class="col-sm-2 col-form-label">UTC Offset</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="columnUTCOffset" data-bind="numericValue: columnUTCOffset" type="number" step="0.1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="lastImageOverride" class="col-sm-2 col-form-label">Day Zero</label>
|
||||
<div class="col-sm-10">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Info Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="showServerInfo" class="col-sm-2 col-form-label">Show Server Info</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="showServerInfo" data-bind="checked: showServerInfo" type="checkbox" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="showDiscoZoneInfo" class="col-sm-2 col-form-label">Show Discovery Zone Info</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="showDiscoZoneInfo" data-bind="checked: showDiscoZoneInfo" type="checkbox" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="showShipPathsInfo" class="col-sm-2 col-form-label">Show Ship Path Info</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="showShipPathsInfo" data-bind="checked: showShipPathsInfo" type="checkbox" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="showIslandNames" class="col-sm-2 col-form-label">Show Island Names</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="showIslandNames" data-bind="checked: showIslandNames" type="checkbox" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="showLines" class="col-sm-2 col-form-label">Show Lines</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="showLines" data-bind="checked: showLines" type="checkbox" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="showBackground" class="col-sm-2 col-form-label">Show Background</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="showBackground" data-bind="checked: showBackground" type="checkbox" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>S3 Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="LocalS3URL" class="col-sm-2 col-form-label">URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="LocalS3URL" data-bind="value: LocalS3URL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="LocalS3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="LocalS3AccessKeyId" data-bind="value: LocalS3AccessKeyId" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="LocalS3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="LocalS3SecretKey" data-bind="value: LocalS3SecretKey" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="LocalS3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="LocalS3BucketName" data-bind="value: LocalS3BucketName" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="LocalS3Region" class="col-sm-2 col-form-label">Region</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="LocalS3Region" data-bind="value: LocalS3Region" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Misc Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="globalGameplaySetup" class="col-sm-2 col-form-label">Gameplay Setup</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="globalGameplaySetup" data-bind="value: globalGameplaySetup" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="shipPathsIdGenerator" class="col-sm-2 col-form-label">Ship Paths ID Generator</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="shipPathsIdGenerator" data-bind="numericValue: shipPathsIdGenerator" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="idGenerator" class="col-sm-2 col-form-label">ID Generator</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="idGenerator" data-bind="numericValue: idGenerator" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="regionsIdGenerator" class="col-sm-2 col-form-label">Regions ID Generator</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="regionsIdGenerator" data-bind="numericValue: regionsIdGenerator" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab-tribe-log">
|
||||
<form data-bind="with: TribeLogConfig">
|
||||
<fieldset>
|
||||
<legend>Main Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-MaxRedisEntries" class="col-sm-2 col-form-label">Max Redis Entries</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-MaxRedisEntries" data-bind="numericValue: $data.MaxRedisEntries" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
||||
<div class="col-sm-10">
|
||||
<select id="Tribe-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode" class="form-control"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>S3 Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-S3URL" class="col-sm-2 col-form-label">URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-S3URL" data-bind="value: $data.S3URL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-S3BucketName" data-bind="value: $data.S3BucketName" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Tribe-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Tribe-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab-travel-data">
|
||||
<form data-bind="with: TravelDataConfig">
|
||||
<fieldset>
|
||||
<legend>Main Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
||||
<div class="col-sm-10">
|
||||
<select id="Travel-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode" class="form-control"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Travel-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Travel-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Travel-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>S3 Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-S3URL" class="col-sm-2 col-form-label">URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Travel-S3URL" data-bind="value: $data.S3URL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Travel-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Travel-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Travel-S3BucketName" data-bind="value: $data.S3BucketName" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Travel-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Travel-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab-shared-log">
|
||||
<form data-bind="with: SharedLogConfig">
|
||||
<fieldset>
|
||||
<legend>Main Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-FetchRateSec" class="col-sm-2 col-form-label">Fetch Rate (Seconds)</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-FetchRateSec" data-bind="numericValue: $data.FetchRateSec" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-SnapshotCleanupSec" class="col-sm-2 col-form-label">Snapshot Cleanup (Seconds)</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-SnapshotCleanupSec" data-bind="numericValue: $data.SnapshotCleanupSec" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-SnapshotRateSec" class="col-sm-2 col-form-label">Snapshot Rate (Seconds)</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-SnapshotRateSec" data-bind="numericValue: $data.SnapshotRateSec" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-SnapshotExpirationHours" class="col-sm-2 col-form-label">Snapshot Expiration (Hours)</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-SnapshotExpirationHours" data-bind="numericValue: $data.SnapshotExpirationHours" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-BackupMode" class="col-sm-2 col-form-label">Backup Mode</label>
|
||||
<div class="col-sm-10">
|
||||
<select id="Shared-BackupMode" data-bind="options: ['off', 'on'], value: $data.BackupMode" class="form-control"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-MaxFileHistory" class="col-sm-2 col-form-label">Max File History</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-MaxFileHistory" data-bind="numericValue: $data.MaxFileHistory" type="number" step="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-HttpBackupURL" class="col-sm-2 col-form-label">Backup URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-HttpBackupURL" data-bind="value: $data.HttpBackupURL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-HttpAPIKey" class="col-sm-2 col-form-label">API Key</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-HttpAPIKey" data-bind="value: $data.HttpAPIKey" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>S3 Options</legend>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-S3URL" class="col-sm-2 col-form-label">URL</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-S3URL" data-bind="value: $data.S3URL" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-S3AccessKeyId" class="col-sm-2 col-form-label">Access Key ID</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-S3AccessKeyId" data-bind="value: $data.S3AccessKeyId" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-S3SecretKey" class="col-sm-2 col-form-label">Secret Key</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-S3SecretKey" data-bind="value: $data.S3SecretKey" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-S3BucketName" class="col-sm-2 col-form-label">Bucket Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-S3BucketName" data-bind="value: $data.S3BucketName" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="Shared-S3KeyPrefix" class="col-sm-2 col-form-label">Key Prefix</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="Shared-S3KeyPrefix" data-bind="value: $data.S3KeyPrefix" type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</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.15.0/esm/popper.min.js"
|
||||
integrity="sha256-3Iu0zFU6cPS92RSC3Pe4DBwjIV/9XKyzYTqKZzly6A8="
|
||||
<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="js/main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
|||
156
js/main.js
156
js/main.js
|
|
@ -0,0 +1,156 @@
|
|||
// True numeric value binding
|
||||
ko.bindingHandlers.numericValue = {
|
||||
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
|
||||
var underlyingObservable = valueAccessor();
|
||||
var interceptor = ko.dependentObservable({
|
||||
read: underlyingObservable,
|
||||
write: function (value) {
|
||||
if (!isNaN(value)) {
|
||||
underlyingObservable(parseFloat(value));
|
||||
}
|
||||
}
|
||||
});
|
||||
ko.bindingHandlers.value.init(element, function () {
|
||||
return interceptor
|
||||
}, allBindingsAccessor, viewModel, bindingContext);
|
||||
},
|
||||
update: ko.bindingHandlers.value.update
|
||||
};
|
||||
|
||||
var editor = ace.edit("config-editor");
|
||||
editor.setTheme("ace/theme/monokai");
|
||||
editor.session.setMode("ace/mode/javascript");
|
||||
|
||||
var viewmodel = ko.mapping.fromJS({
|
||||
// Server Argument Section
|
||||
"BaseServerArgs": "",
|
||||
"AdditionalCmdLineParams": "",
|
||||
|
||||
// World Options
|
||||
"WorldFriendlyName": "New Server",
|
||||
"WorldAtlasId": "",
|
||||
"WorldAtlasPassword": "",
|
||||
"ModIDs": "",
|
||||
|
||||
// Grid Options
|
||||
"gridSize": 1000,
|
||||
"totalGridsX": 1,
|
||||
"totalGridsY": 1,
|
||||
"coordsScaling": 0.000000000001,
|
||||
"globalTransitionMinZ": 0.0,
|
||||
|
||||
// Image Paths
|
||||
"backgroundImgPath": "image.png",
|
||||
"discoZonesImagePath": "image.png",
|
||||
|
||||
// URL Options
|
||||
"MetaWorldURL": "",
|
||||
"AuthListURL": "",
|
||||
"MapImageURL": "",
|
||||
|
||||
// Time Options
|
||||
"Day0": "2019-01-09 20:28:56",
|
||||
"bUseUTCTime": false,
|
||||
"columnUTCOffset": 0.0,
|
||||
"lastImageOverride": "0001-01-01T00:00:00",
|
||||
|
||||
// Info Options
|
||||
"showServerInfo": false,
|
||||
"showDiscoZoneInfo": false,
|
||||
"showShipPathsInfo": false,
|
||||
"showIslandNames": false,
|
||||
"showLines": false,
|
||||
"showBackground": false,
|
||||
|
||||
// S3 Options
|
||||
"LocalS3URL": "",
|
||||
"LocalS3AccessKeyId": "",
|
||||
"LocalS3SecretKey": "",
|
||||
"LocalS3BucketName": "",
|
||||
"LocalS3Region": "",
|
||||
|
||||
// Unsorted...
|
||||
"globalGameplaySetup": "",
|
||||
"shipPathsIdGenerator": 1,
|
||||
"idGenerator": 127,
|
||||
"regionsIdGenerator": 0,
|
||||
|
||||
// Tribe Log Tab
|
||||
"TribeLogConfig": {
|
||||
// Main Options
|
||||
"MaxRedisEntries": 1000,
|
||||
"BackupMode": "off",
|
||||
"MaxFileHistory": 10,
|
||||
"HttpBackupURL": "",
|
||||
"HttpAPIKey": "",
|
||||
|
||||
//S3 Options
|
||||
"S3URL": "",
|
||||
"S3AccessKeyId": "",
|
||||
"S3SecretKey": "",
|
||||
"S3BucketName": "",
|
||||
"S3KeyPrefix": ""
|
||||
},
|
||||
|
||||
// Travel Data Tab
|
||||
"TravelDataConfig": {
|
||||
// Main Options
|
||||
"BackupMode": "off",
|
||||
"MaxFileHistory": 10,
|
||||
"HttpBackupURL": "",
|
||||
"HttpAPIKey": "",
|
||||
|
||||
//S3 Options
|
||||
"S3URL": "",
|
||||
"S3AccessKeyId": "",
|
||||
"S3SecretKey": "",
|
||||
"S3BucketName": "",
|
||||
"S3KeyPrefix": ""
|
||||
},
|
||||
|
||||
"SharedLogConfig": {
|
||||
"FetchRateSec": 60,
|
||||
"SnapshotCleanupSec": 900,
|
||||
"SnapshotRateSec": 1800,
|
||||
"SnapshotExpirationHours": 48,
|
||||
"BackupMode": "off",
|
||||
"MaxFileHistory": 10,
|
||||
"HttpBackupURL": "",
|
||||
"HttpAPIKey": "",
|
||||
"S3URL": "",
|
||||
"S3AccessKeyId": "",
|
||||
"S3SecretKey": "",
|
||||
"S3BucketName": "",
|
||||
"S3KeyPrefix": ""
|
||||
},
|
||||
|
||||
"DatabaseConnections": [],
|
||||
"servers": [],
|
||||
"spawnerOverrideTemplates": [],
|
||||
"shipPaths": [],
|
||||
"serverTemplates": [],
|
||||
|
||||
// ?!?!
|
||||
"OverrideShooterGameModeDefaultGameIni": {}
|
||||
});
|
||||
ko.applyBindings(viewmodel);
|
||||
|
||||
updateEditor();
|
||||
|
||||
ko.computed(function () {
|
||||
return ko.toJSON(viewmodel);
|
||||
}).subscribe(function () {
|
||||
updateEditor();
|
||||
});
|
||||
|
||||
editor.on("change", function () {
|
||||
setTimeout(function () {
|
||||
ko.mapping.fromJSON(editor.getValue(), viewmodel);
|
||||
}, 100);
|
||||
});
|
||||
|
||||
function updateEditor() {
|
||||
var interim = ko.mapping.toJS(viewmodel);
|
||||
interim.coordsScaling = Number(interim.coordsScaling).toFixed(12);
|
||||
editor.setValue(ko.toJSON(interim, null, 2));
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue