Initial
This commit is contained in:
134
resources/app/templates/sidebar/apps/av-config.html
Normal file
134
resources/app/templates/sidebar/apps/av-config.html
Normal file
@@ -0,0 +1,134 @@
|
||||
{{#*inline "deviceList"}}
|
||||
<div class="form-group stacked">
|
||||
<label>{{localize label}}:</label>
|
||||
<select name="{{name}}">
|
||||
{{#if disabledLabel}}
|
||||
<option value="disabled" {{#if disabled}}selected{{/if}}>{{localize disabledLabel}}</option>
|
||||
{{/if}}
|
||||
{{#select device}}
|
||||
<option value="default">{{localize "WEBRTC.DefaultSource"}}</option>
|
||||
{{#each deviceList as |label d|}}
|
||||
<option value="{{d}}">{{label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{#if unavailable}}
|
||||
<option value="{{device}}" selected>{{localize "WEBRTC.UnavailableDevice"}}</option>
|
||||
{{/if}}
|
||||
</select>
|
||||
<p class="notes">{{localize notes}}</p>
|
||||
</div>
|
||||
{{/inline}}
|
||||
|
||||
<form>
|
||||
<!-- Sheet Navigation Tabs -->
|
||||
<nav class="sheet-tabs tabs" aria-role="{{localize 'SHEETS.FormNavLabel'}}">
|
||||
<a class="item" data-tab="general">
|
||||
<i class="fas fa-headset"></i> {{localize "WEBRTC.GeneralTab"}}
|
||||
</a>
|
||||
<a class="item" data-tab="devices">
|
||||
<i class="fas fa-headset"></i> {{localize "WEBRTC.DevicesTab"}}
|
||||
</a>
|
||||
{{#if user.isGM}}
|
||||
<a class="item" data-tab="server">
|
||||
<i class="fas fa-server"></i> {{localize "WEBRTC.ServerTab"}}
|
||||
</a>
|
||||
{{/if}}
|
||||
</nav>
|
||||
|
||||
<!-- General Tab -->
|
||||
<div class="tab" data-tab="general">
|
||||
<div class="form-group stacked">
|
||||
<label>{{localize "WEBRTC.AVMode"}}:</label>
|
||||
<select name="world.mode" data-dtype="Number" {{#unless canSelectMode}}disabled{{/unless}}>
|
||||
{{selectOptions modes selected=settings.world.mode localize=true}}
|
||||
</select>
|
||||
<p class="notes">{{ localize "WEBRTC.AVModeNotes" }}</p>
|
||||
{{#if noSSL}}
|
||||
<p class="notification error">{{ localize "WEBRTC.NoSSLError" }}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{localize "WEBRTC.VoiceMode"}}</label>
|
||||
<select name="client.voice.mode">
|
||||
{{selectOptions voiceModes selected=settings.client.voice.mode localize=true}}
|
||||
</select>
|
||||
<p class="notes">{{ localize "WEBRTC.VoiceModeNotes" }}</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{localize "WEBRTC.DockPosition"}}</label>
|
||||
<select name="client.dockPosition">
|
||||
{{selectOptions dockPositions selected=settings.client.dockPosition}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{localize "WEBRTC.Nameplates"}}</label>
|
||||
<select name="client.nameplates" data-dtype="Number">
|
||||
{{selectOptions nameplates selected=nameplateSetting localize=true}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>{{localize "WEBRTC.BorderColors"}}</label>
|
||||
<input type="checkbox" name="client.borderColors" {{checked settings.client.borderColors}}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Devices Tab -->
|
||||
<div class="tab" data-tab="devices">
|
||||
<div class="form-group stacked">
|
||||
<label>{{localize WEBRTC.VideoDevice}}</label>
|
||||
<select name="client.videoSrc">
|
||||
{{selectOptions videoSourceOptions selected=settings.client.videoSrc}}
|
||||
</select>
|
||||
<p class="notes">{{localize "WEBRTC.VideoDeviceNotes"}}</p>
|
||||
</div>
|
||||
<div class="form-group stacked">
|
||||
<label>{{localize WEBRTC.AudioDevice}}</label>
|
||||
<select name="client.audioSrc">
|
||||
{{selectOptions audioSourceOptions selected=settings.client.audioSrc}}
|
||||
</select>
|
||||
<p class="notes">{{localize "WEBRTC.VideoDeviceNotes"}}</p>
|
||||
</div>
|
||||
<div class="form-group stacked">
|
||||
<label>{{localize WEBRTC.AudioOutput}}</label>
|
||||
<select name="client.audioSink">
|
||||
{{selectOptions audioSinkOptions selected=settings.client.audioSink}}
|
||||
</select>
|
||||
<p class="notes">{{localize "WEBRTC.AudioOutputNotes"}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Server Tab -->
|
||||
{{#if user.isGM}}
|
||||
<div class="tab" data-tab="server">
|
||||
<div class="form-group">
|
||||
<label>{{localize "WEBRTC.WebRTCTurnServer"}}:</label>
|
||||
<select name="world.turn.type">
|
||||
{{selectOptions turnTypes selected=settings.world.turn.type localize=true}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="webrtc-custom-turn-config">
|
||||
<div class="form-group">
|
||||
<label>{{localize "WEBRTC.WebRTCTURNURL"}}:</label>
|
||||
<input type="text" name="world.turn.url" value="{{settings.world.turn.url}}"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "WEBRTC.WebRTCTurnUsername"}}:</label>
|
||||
<input type="text" name="world.turn.username" value="{{settings.world.turn.username}}"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "WEBRTC.WebRTCTurnPassword"}}:</label>
|
||||
<input type="password" name="world.turn.password" value="{{settings.world.turn.password}}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<button type="submit" {{#if noSSL}}disabled{{/if}}>
|
||||
<i class="far fa-save"></i> {{localize "Save Changes"}}
|
||||
</button>
|
||||
</form>
|
||||
17
resources/app/templates/sidebar/apps/compendium-import.html
Normal file
17
resources/app/templates/sidebar/apps/compendium-import.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<form autocomplete="off">
|
||||
<p class="notes">{{localize "COMPENDIUM.ImportAllHint"}}</p>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "FOLDER.ExportExistingFolder" }}</label>
|
||||
<select name="folder">
|
||||
{{ selectOptions folders valueAttr="id" labelAttr="name" blank="" }}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "FOLDER.ExportNewFolder"}}</label>
|
||||
<input type="text" name="folderName" value="{{folderName}}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "FOLDER.ExportKeepId"}}</label>
|
||||
<input type="checkbox" name="keepId" {{ checked keepId }}>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,10 @@
|
||||
<form class="compendium-ownership-dialog">
|
||||
{{#each roles as |config role|}}
|
||||
<div class="form-group">
|
||||
<label>{{localize config.label}}</label>
|
||||
<select name="{{role}}">
|
||||
{{selectOptions config.levels selected=config.value}}
|
||||
</select>
|
||||
</div>
|
||||
{{/each}}
|
||||
</form>
|
||||
@@ -0,0 +1,11 @@
|
||||
<h2 class="border">{{title}}</h2>
|
||||
{{#each subTypes}}
|
||||
<div class="form-group">
|
||||
<label>{{name}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="{{../id}}.{{type}}">
|
||||
{{selectOptions defaultClasses selected=defaultClass}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
34
resources/app/templates/sidebar/apps/folder-export.html
Normal file
34
resources/app/templates/sidebar/apps/folder-export.html
Normal file
@@ -0,0 +1,34 @@
|
||||
<form autocomplete="off">
|
||||
<p class="notes">{{ localize "FOLDER.ExportHint" }}</p>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "FOLDER.ExportDestination" }}</label>
|
||||
<div class="form-fields">
|
||||
<select name="pack">
|
||||
{{selectOptions packs selected=pack blank=""}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "DOCUMENT.Folder" }}</label>
|
||||
<div class="form-fields">
|
||||
<select name="folder" {{#unless hasFolders}}disabled{{/unless}}>
|
||||
{{selectOptions folders valueAttr="id" labelAttr="name" selected=folder blank=""}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset>
|
||||
<legend>{{ localize "FOLDER.ExportOptions" }}</legend>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "FOLDER.ExportMerge" }}</label>
|
||||
<input type="checkbox" name="merge" {{ checked merge }}/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "FOLDER.ExportKeepId" }}</label>
|
||||
<input type="checkbox" name="keepId" {{ checked keepId }}/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ localize "FOLDER.ExportKeepFolders" }}</label>
|
||||
<input type="checkbox" name="keepFolders" {{ checked keepFolders }}/>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
71
resources/app/templates/sidebar/apps/font-config.html
Normal file
71
resources/app/templates/sidebar/apps/font-config.html
Normal file
@@ -0,0 +1,71 @@
|
||||
<form>
|
||||
<!-- Font Preview -->
|
||||
<div style="font-family: '{{family}}'; font-weight: {{selected.weight}}; font-style: {{selected.style}};"
|
||||
class="font-preview">
|
||||
<p contenteditable="true" data-edit="preview">{{{font.preview}}}</p>
|
||||
</div>
|
||||
|
||||
{{#if fonts}}
|
||||
<hr>
|
||||
{{/if}}
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
{{#each fonts}}
|
||||
<div class="control custom-font {{#if selected}}selected{{/if}}" data-family="{{family}}" data-index="{{index}}"
|
||||
data-action="select">
|
||||
<span>{{{font}}}</span>
|
||||
<a class="control" data-action="delete" title="{{localize "FONTS.RemoveFont"}}">
|
||||
<i class="fa-solid fa-xmark"></i>
|
||||
</a>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
<hr>
|
||||
|
||||
<!-- Add a Font -->
|
||||
<div class="form-group">
|
||||
<label>{{localize "FONTS.Type"}}</label>
|
||||
<div class="form-fields">
|
||||
<label class="checkbox">
|
||||
<input type="radio" name="type" value="file" checked>
|
||||
{{localize "FONTS.TypeFile"}}
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="radio" name="type" value="system">
|
||||
{{localize "FONTS.TypeSystem"}}
|
||||
</label>
|
||||
</div>
|
||||
<p class="hint">{{localize "FONTS.TypeHint"}}</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "FONTS.Family"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="family" value="{{font.family}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "FONTS.Weight"}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="weight" data-dtype="Number">
|
||||
{{selectOptions weights selected=font.weight valueAttr="value" labelAttr="label"}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "FONTS.Style"}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="style">
|
||||
{{selectOptions styles selected=font.style}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group picker">
|
||||
<label>{{localize "FONTS.File"}}</label>
|
||||
<div class="form-fields">
|
||||
<file-picker name="src" type="font" value="{{font.src}}"></file-picker>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" name="add-font" class="control" data-action="add">
|
||||
<i class="fa-solid fa-plus"></i> {{localize "FONTS.AddFont"}}
|
||||
</button>
|
||||
</form>
|
||||
34
resources/app/templates/sidebar/apps/invitation-links.html
Normal file
34
resources/app/templates/sidebar/apps/invitation-links.html
Normal file
@@ -0,0 +1,34 @@
|
||||
<form>
|
||||
<p class="notes">{{localize 'INVITATIONS.Instructions'}}</p>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="local"><i class="fas fa-ethernet"></i> {{localize 'INVITATIONS.Local'}}</label>
|
||||
{{#if local}}
|
||||
<input type="text" class="invite-link" name="local" value="{{local}}" readonly/>
|
||||
{{else}}
|
||||
<input type="text" class="invite-link" name="local" value="Unknown" disabled/>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="remote" data-tooltip="{{remoteTitle}}">
|
||||
<i class="fas fa-wifi"></i> {{localize 'INVITATIONS.Internet'}}
|
||||
{{#if remoteClass}}
|
||||
{{#if canConnect}}
|
||||
<i class="fas fa-check-circle connection open"></i>
|
||||
{{else if failedCheck}}
|
||||
<i class="fas fa-exclamation-circle connection unknown"></i>
|
||||
{{else}}
|
||||
<i class="fas fa-times-circle connection closed"></i>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<i class="fas fa-sync refresh"></i>
|
||||
</label>
|
||||
{{#if remote}}
|
||||
<input type="password" id="remote-link" class="invite-link" name="remote" value="{{remote}}" readonly/>
|
||||
<i class="far fa-eye show-hide show-link"></i>
|
||||
{{else}}
|
||||
<input type="text" class="invite-link" name="remote" value="{{localize "Unknown"}}" disabled
|
||||
data-tooltip="{{localize "INVITATIONS.DiscoveryFailed"}}">
|
||||
{{/if}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,48 @@
|
||||
<h2 class="category-title">{{this.title}}</h2>
|
||||
|
||||
{{#each this.actions as |action| }}
|
||||
<div class="form-group action {{action.cssClass}}" data-action-id="{{action.id}}">
|
||||
<label class="action-title">{{action.name}}</label>
|
||||
<ol class="action-bindings flexcol">
|
||||
{{#if action.noBindings}}
|
||||
<li class="binding flexrow" data-binding-id="empty">
|
||||
<span></span>
|
||||
<div class="binding-controls flexrow">
|
||||
<a class="control" title="{{localize 'KEYBINDINGS.AddBinding'}}" data-action="add"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#each action.bindings as |binding|}}
|
||||
<li class="binding flexrow" data-binding-id="{{binding.id}}">
|
||||
{{#if binding.isEditable}}
|
||||
<span class="key editable-binding {{binding.cssClasses}}">{{binding.display}}</span>
|
||||
<div class="editable-binding hidden">
|
||||
<div class="form-fields binding-fields">
|
||||
<input type="text" class="binding-input" name="{{binding.id}}" id="{{binding.id}}" value="{{binding.display}}" readonly>
|
||||
<i class="far fa-keyboard binding-input-icon"></i>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<span class="key {{binding.cssClasses}}">{{binding.display}}</span>
|
||||
{{/if}}
|
||||
<div class="binding-controls flexrow">
|
||||
{{#if binding.hasConflicts}}
|
||||
<div class="control conflicts" title="{{binding.conflicts}}"><i class="fas fa-exclamation-triangle"></i></div>
|
||||
{{/if}}
|
||||
{{#if binding.isFirst}}
|
||||
<a class="control" title="{{localize 'KEYBINDINGS.AddBinding'}}" data-action="add"><i class="fas fa-plus"></i></a>
|
||||
{{/if}}
|
||||
{{#if binding.isEditable}}
|
||||
<a class="control save-edit hidden" title="{{localize 'KEYBINDINGS.SaveBinding'}}" data-action="save"><i class="fas fa-save"></i></a>
|
||||
<a class="control save-edit" title="{{localize 'KEYBINDINGS.EditBinding'}}" data-action="edit"><i class="fas fa-edit"></i></a>
|
||||
<a class="control" title="{{localize 'KEYBINDINGS.DeleteBinding'}}" data-action="delete"><i class="fas fa-trash-alt"></i></a>
|
||||
{{else}}
|
||||
<div class="control uneditable" title="{{localize 'KEYBINDINGS.Uneditable'}}"><i class="fas fa-lock"></i></div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{#if action.notes}}<p class="notes">{{{action.notes}}}</p>{{/if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
75
resources/app/templates/sidebar/apps/module-management.html
Normal file
75
resources/app/templates/sidebar/apps/module-management.html
Normal file
@@ -0,0 +1,75 @@
|
||||
<form autocomplete="off">
|
||||
<p class="notes">
|
||||
{{#if editable }}
|
||||
{{localize 'MODMANAGE.Instructions'}}
|
||||
{{else}}
|
||||
{{localize 'MODMANAGE.View'}}
|
||||
{{/if}}
|
||||
</p>
|
||||
|
||||
<nav class="list-filters" aria-label="{{localize 'MODMANAGE.NavLabel'}}">
|
||||
<input type="search" name="search" placeholder="{{localize 'MODMANAGE.Search'}}" value=""/>
|
||||
{{#each filters}}
|
||||
<a class="filter" data-filter="{{ this.id }}">{{ this.label }} ({{ this.count }})</a>
|
||||
{{/each}}
|
||||
<button type="button" class="expand">
|
||||
<i class="fa"></i>
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
<ul id="module-list" class="directory-list package-list">
|
||||
{{#each modules}}
|
||||
<li class="package flexcol{{css}}" data-module-id="{{this.id}}">
|
||||
<div class="package-overview flexrow" {{#if this.tooltip}}data-tooltip="{{this.tooltip}}"{{/if}}>
|
||||
<label class="package-title checkbox">
|
||||
<input type="checkbox" class="active" name="{{this.id}}" data-dtype="Boolean" {{checked this.active}}
|
||||
{{#if this.disabled}} disabled {{/if}}/>
|
||||
<div class="title-group">
|
||||
<div class="title">{{~this.title~}}</div>
|
||||
{{#if this.documents}}
|
||||
<div class="subtitle">{{{this.documents}}}</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</label>
|
||||
{{> templates/setup/parts/package-tags.hbs versionLabel="PACKAGE.TagVersion" package=this }}
|
||||
</div>
|
||||
<div class="package-description" >
|
||||
{{{this.description}}}
|
||||
<ul class="package-metadata">
|
||||
<li><strong>{{labels.authors}}:</strong> <span class="author">{{{authors}}}</span></li>
|
||||
{{#if this.url}}
|
||||
<li><strong>{{localize "URL"}}:</strong> <a href="{{this.url}}" target="_blank">{{this.url}}</a></li>
|
||||
{{/if}}
|
||||
{{#if this.readme}}
|
||||
<li><strong>{{localize "MODMANAGE.Readme"}}:</strong> <a href="{{this.readme}}" target="_blank">{{this.readme}}</a></li>
|
||||
{{/if}}
|
||||
{{#if this.bugs}}
|
||||
<li><strong>{{localize "MODMANAGE.Bugs"}}:</strong> <a href="{{this.bugs}}" target="_blank">{{this.bugs}}</a></li>
|
||||
{{/if}}
|
||||
{{#if this.relationships.requires}}
|
||||
<li>
|
||||
<strong>{{ localize "MODMANAGE.Dependencies" }}:</strong>
|
||||
{{#each this.relationships.requires}}
|
||||
<span class="tag {{this.class}}" data-tooltip="{{this.message}}">{{ this.id }}</span>
|
||||
{{/each}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
{{ else }}
|
||||
{{#unless editable}}<p class="notes">{{ localize "MODMANAGE.None" }}</p>{{/unless}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
{{#if editable}}
|
||||
<footer class="flexrow">
|
||||
<button type="submit">
|
||||
<i class="far fa-save"></i> {{localize 'MODMANAGE.Submit'}}
|
||||
</button>
|
||||
<button type="button" name="deactivate">
|
||||
<i class="fas fa-ban"></i> {{localize 'MODMANAGE.DeactivateAll'}}
|
||||
</button>
|
||||
</footer>
|
||||
{{/if}}
|
||||
</form>
|
||||
@@ -0,0 +1,37 @@
|
||||
<div class="flexrow">
|
||||
<aside class="sidebar flexcol">
|
||||
<div class="entry-filter form-group">
|
||||
<input name="filter" type="search" placeholder="{{localize "PACKAGECONFIG.Filter"}}" value=""/>
|
||||
</div>
|
||||
<nav class="tabs" aria-label="{{localize 'PACKAGECONFIG.NavLabel'}}">
|
||||
<a class="item category-tab category-all" data-tab="all">
|
||||
{{localize "PACKAGECONFIG.All"}}
|
||||
<span class="count">[{{ total }}]</span>
|
||||
</a>
|
||||
{{#each categories as |category|}}
|
||||
<a class="item category-tab" data-tab="{{category.id}}">
|
||||
{{category.title}}
|
||||
<span class="count">[{{ category.count }}]</span>
|
||||
</a>
|
||||
{{/each}}
|
||||
</nav>
|
||||
<button class="reset-all" type="button">
|
||||
<i class="fas fa-undo"></i> {{localize 'PACKAGECONFIG.Reset'}}
|
||||
</button>
|
||||
</aside>
|
||||
|
||||
<form class="categories flexcol" autocomplete="off">
|
||||
<div class="scrollable">
|
||||
{{#each categories as |category|}}
|
||||
<section class="tab category" data-tab="{{category.id}}" data-category="{{category.id}}">
|
||||
{{> (lookup @root "categoryTemplate")}}
|
||||
</section>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{#if submitButton}}
|
||||
<footer>
|
||||
<button type="submit"><i class="fas fa-save"></i> {{localize "SETTINGS.Save"}}</button>
|
||||
</footer>
|
||||
{{/if}}
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
{{ localize 'Foundry Virtual Tabletop' }}: {{ report.coreVersion }}
|
||||
{{ localize 'WORLD.GameSystem' }}: {{ report.systemVersion }}
|
||||
{{ localize 'MODMANAGE.FilterActive' }}: {{ report.activeModuleCount }}
|
||||
{{ localize 'SETTINGS.PerformanceModeN' }}: {{ report.performanceMode }}
|
||||
|
||||
{{ localize 'SUPPORT.OS' }}: {{ report.os }}
|
||||
{{ localize 'SUPPORT.Client' }}: {{ report.client }}
|
||||
{{ localize 'SUPPORT.GPU' }}: {{ report.gpu }}
|
||||
{{ localize 'SUPPORT.MaxTextureSize' }}: {{ report.maxTextureSize }}
|
||||
|
||||
{{#if report.hasViewedScene }}
|
||||
{{ localize 'DOCUMENT.Scene' }}: {{ report.sceneDimensions }} | {{ localize 'SCENES.GridSize' }}: {{ report.grid }} | {{ localize 'SCENES.Padding' }}: {{ report.padding }}
|
||||
{{ localize 'DOCUMENT.Walls' }}: {{ report.walls }} | {{ localize 'DOCUMENT.AmbientLights' }}: {{ report.lights }} | {{ localize 'DOCUMENT.AmbientSounds' }}: {{ report.sounds }} | {{ localize 'DOCUMENT.Tiles' }}: {{ report.tiles }} | {{ localize 'DOCUMENT.Tokens' }}: {{ report.tokens }}
|
||||
{{#with report.largestTexture}}
|
||||
{{#if (or width height)}}
|
||||
{{ localize "SUPPORT.LargestTexture" }}: {{ width }} x {{ height }} {{#if src}}"{{ src }}"{{/if}}
|
||||
{{/if}}
|
||||
{{/with}}
|
||||
{{else}}
|
||||
{{ localize 'SUPPORT.NoViewedScene' }}
|
||||
{{/if }}
|
||||
|
||||
{{ localize 'DOCUMENT.Actors' }}: {{ report.actors }} | {{ localize 'DOCUMENT.Items' }}: {{report.items }} | {{ localize 'DOCUMENT.JournalEntries' }}: {{ report.journal }} | {{ localize 'DOCUMENT.RollTables' }}: {{ report.tables }} |
|
||||
{{ localize 'PLAYLIST.VolPlaylist' }}: {{ report.playlists }} | {{ localize 'SIDEBAR.TabCompendium' }}: {{ report.packs }} | {{ localize 'DOCUMENT.ChatMessages' }}: {{ report.messages }}
|
||||
|
||||
{{ localize "SUPPORT.WorldScripts" }}: {{ report.worldScripts }}
|
||||
@@ -0,0 +1,47 @@
|
||||
<h2 class="border">{{this.title}}</h2>
|
||||
{{#each this.menus}}
|
||||
<div class="form-group submenu">
|
||||
<label>{{ localize this.name }}</label>
|
||||
<button type="button" data-key="{{ this.key }}">
|
||||
{{#if this.icon}}<i class="{{ this.icon }}"></i>{{/if}}
|
||||
<label>{{ localize this.label }}</label>
|
||||
</button>
|
||||
{{#if this.hint}}<p class="notes">{{ localize this.hint }}</p>{{/if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
{{#each this.settings}}
|
||||
<div class="form-group" data-setting-id="{{this.id}}">
|
||||
<label>{{this.name}}</label>
|
||||
<div class="form-fields">
|
||||
|
||||
{{#if this.dataField}}
|
||||
{{formInput this.dataField value=this.value input=this.input localize=true}}
|
||||
|
||||
{{else if this.isCheckbox}}
|
||||
<input type="checkbox" name="{{this.id}}" data-dtype="Boolean" {{checked this.value}}/>
|
||||
|
||||
{{else if this.isSelect}}
|
||||
<select name="{{this.id}}" data-dtype="{{this.type}}">
|
||||
{{selectOptions this.choices selected=this.value localize=true}}
|
||||
</select>
|
||||
|
||||
{{else if this.isRange}}
|
||||
<input type="range" name="{{this.id}}" data-dtype="Number" value="{{ this.value }}"
|
||||
min="{{ this.range.min }}" max="{{ this.range.max }}" step="{{ this.range.step }}"/>
|
||||
<span class="range-value">{{this.value}}</span>
|
||||
|
||||
{{else if this.filePicker}}
|
||||
<file-picker name="{{this.id}}" type="{{this.filePickerType}}" value="{{this.value}}"></file-picker>
|
||||
|
||||
{{else if this.isNumber}}
|
||||
{{numberInput this.value name=this.id}}
|
||||
|
||||
{{else}}
|
||||
<input type="text" name="{{this.id}}" value="{{this.value}}" data-dtype="{{this.type}}"/>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<p class="notes">{{this.hint}}</p>
|
||||
</div>
|
||||
{{/each}}
|
||||
105
resources/app/templates/sidebar/apps/support-details.html
Normal file
105
resources/app/templates/sidebar/apps/support-details.html
Normal file
@@ -0,0 +1,105 @@
|
||||
<article class="flexcol">
|
||||
<!-- Support & Issues Tabs -->
|
||||
<nav class="sheet-tabs tabs" data-group="main">
|
||||
<a class="item" data-tab="support">
|
||||
<i class="fas fa-hands-helping"></i> {{localize "SUPPORT.Title"}}
|
||||
</a>
|
||||
<a class="item" data-tab="documents">
|
||||
<i class="fa-solid fa-file-circle-exclamation"></i> {{localize "SUPPORT.DocumentIssues"}}
|
||||
</a>
|
||||
<a class="item" data-tab="client">
|
||||
<i class="fa-regular fa-window"></i> {{localize "SUPPORT.ClientIssues"}}
|
||||
</a>
|
||||
<a class="item" data-tab="modules">
|
||||
<i class="fa-solid fa-box-open"></i> {{localize "SUPPORT.ModuleIssues"}}
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<!-- Support Details Report -->
|
||||
<div class="tab" data-group="main" data-tab="support">
|
||||
<h2>{{ localize 'SUPPORT.Places' }}</h2>
|
||||
<p class="notes">
|
||||
{{ localize 'SUPPORT.Discord' }} <a href="https://discord.gg/foundryvtt" target="_blank" rel="nofollow" title="FoundryVTT Discord">https://discord.gg/foundryvtt</a>
|
||||
</p>
|
||||
<p class="notes">
|
||||
{{ localize 'SUPPORT.BugReporting' }} <a href="https://foundryvtt.com/contact-us?category=bug" target="_blank" rel="nofollow" title="FoundryVTT Contact Us">https://foundryvtt.com/contact-us/</a>
|
||||
</p>
|
||||
|
||||
<h2>{{ localize 'SUPPORT.Details' }}</h2>
|
||||
<p class="notes">{{ localize 'SUPPORT.ReportPrelude' }}</p>
|
||||
|
||||
<pre tabindex="0" id="support-report">{{> supportDetailsReport }}</pre>
|
||||
|
||||
<div class="flexrow">
|
||||
<button type="button" data-action="copy">
|
||||
<i class="fas fa-copy"></i> {{ localize 'SUPPORT.CopyReport' }}
|
||||
</button>
|
||||
<button type="button" data-action="fullReport" data-tooltip="SUPPORT.GenerateFullReportHint">
|
||||
<i class="fas fa-file-lines"></i>
|
||||
<span>{{ localize "SUPPORT.GenerateFullReport" }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Document Issues -->
|
||||
<div class="tab" data-group="main" data-tab="documents">
|
||||
<ul class="summary-tree summary-tree-root">
|
||||
{{#each documentIssues}}
|
||||
<li>
|
||||
<details>
|
||||
<summary>{{label}}</summary>
|
||||
<ul>
|
||||
{{#each documents}}
|
||||
<li>
|
||||
<details>
|
||||
<summary>{{name}}</summary>
|
||||
{{{validationError}}}
|
||||
</details>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</details>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Client Issues -->
|
||||
<div class="tab" data-group="main" data-tab="client">
|
||||
<ul class="issues">
|
||||
{{#each clientIssues}}
|
||||
<li class="issue notification {{severity}}">{{{message}}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Module Issues -->
|
||||
{{#*inline "moduleIssue"}}
|
||||
<li>
|
||||
<details>
|
||||
<summary>{{label}}</summary>
|
||||
<ul>
|
||||
{{#each issues}}
|
||||
<li>
|
||||
<details>
|
||||
<summary>{{label}}</summary>
|
||||
<ul class="issues">
|
||||
{{#each issues}}
|
||||
<li class="issue notification {{severity}}">{{message}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</details>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</details>
|
||||
</li>
|
||||
{{/inline}}
|
||||
<div class="tab" data-group="main" data-tab="modules">
|
||||
<ul>
|
||||
{{#each moduleIssues}}
|
||||
{{> moduleIssue}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</article>
|
||||
@@ -0,0 +1,18 @@
|
||||
<h2 class="category-title">{{this.title}}</h2>
|
||||
{{#each this.tours as |tour| }}
|
||||
<div class="form-group tour {{tour.cssClass}}" data-tour="{{tour.id}}">
|
||||
<label class="tour-title">{{tour.title}} <span class="status">({{tour.status}})</span></label>
|
||||
<div class="form-fields controls">
|
||||
{{#if tour.canBePlayed}}
|
||||
<a class="control" data-action="play" data-tooltip="{{startOrResume}}">
|
||||
<i class="fas fa-play"></i></a>
|
||||
{{/if}}
|
||||
{{#if tour.canBeReset}}
|
||||
<a class="control" data-action="reset" data-tooltip="{{localize 'TOURS.Reset'}}">
|
||||
<i class="fas fa-arrow-rotate-left"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if tour.notes}}<p class="notes">{{{tour.notes}}}</p>{{/if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
56
resources/app/templates/sidebar/apps/tours-management.html
Normal file
56
resources/app/templates/sidebar/apps/tours-management.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<form class="flexrow" autocomplete="off">
|
||||
<nav class="filters" aria-label="{{localize 'TOURS.NavLabel'}}">
|
||||
<h3 class="noborder">{{ localize "TOURS.TourCategories" }}</h3>
|
||||
<div class="category-filter all {{#if allActive}}active{{/if}}">
|
||||
<a class="filter" data-category="all">{{ localize "TOURS.AllTours" }}</a>
|
||||
<span class="count">[{{ total }}]</span>
|
||||
</div>
|
||||
{{#each categories as |category|}}
|
||||
<div class="category-filter {{ category.id }} {{#if category.active}}active{{/if}}">
|
||||
<a class="filter" data-category="{{ category.id }}">{{ category.title }}</a>
|
||||
<span class="count">[{{ category.count }}]</span>
|
||||
</div>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<div class="categories flexcol">
|
||||
<div class="tour-filter form-group">
|
||||
<button class="reset-all" type="button">
|
||||
<i class="fas fa-undo" title="{{localize 'SETTINGS.Reset'}}"></i> {{localize 'TOURS.ResetAll'}}
|
||||
</button>
|
||||
<label>{{localize "TOURS.TourFilter"}}</label>
|
||||
<input name="filter" type="search" placeholder="{{localize 'TOURS.TourName'}}" value=""/>
|
||||
</div>
|
||||
|
||||
<div class="category-list">
|
||||
{{#each categories as |category|}}
|
||||
{{#unless category.hidden}}
|
||||
<section class="category" data-category-id="{{category.id}}">
|
||||
<header class="category-header flexrow">
|
||||
<h3 class="category-title noborder">{{this.title}}</h3>
|
||||
<span class="category-collapse" title="Collapse"><i class="fas fa-chevron-down"></i></span>
|
||||
<span class="category-collapse hidden" title="Expand"><i class="fas fa-chevron-up"></i></span>
|
||||
</header>
|
||||
<ol class="tour-list">
|
||||
{{#each this.tours as |tour| }}
|
||||
<li class="tour {{tour.cssClass}} flexrow" data-tour-id="{{tour.id}}">
|
||||
<h4 class="tour-title">{{tour.title}}</h4>
|
||||
<div class="flexrow">
|
||||
<span>{{tour.status}}</span>
|
||||
<div class="controls flexrow">
|
||||
{{#if tour.canBePlayed}}
|
||||
<a class="control" title="{{startOrResume}}" data-action="play"><i class="fas fa-play"></i></a>
|
||||
{{/if}}
|
||||
<a class="control" title="{{localize 'TOURS.Reset'}}" data-action="reset"><i class="fas fa-arrow-rotate-left"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{#if tour.description}}<p class="notes">{{{tour.description}}}</p>{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</section>
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
Reference in New Issue
Block a user