Files
pathfinder/public/templates/view/setup.html
Exodus4D 1ef19439c9 - added "document_root", "port", "protocol" and "PHP framework version" to /setup page
- added new "shattered" wormhole types to "signature table", closed #182, #179
2016-06-22 19:43:43 +02:00

785 lines
44 KiB
HTML

{* splash page *}
<include href="templates/ui/splash.html"/>
<section>
<div class="container">
<div class="row text-center">
<div class="col-md-6 col-md-offset-3">
<h2><span class="text-primary">Setup</span> and Bootstrapping</h2>
<p class="lead">
The following steps will guide you through the database bootstrapping/update process for <em>PATHFINDER</em>.
</p>
</div>
</div>
{* Errors *}
<check if="{{ @errorData }}">
<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><i class="fa fa-close"></i></button>
<span class="txt-color txt-color-danger">({{ @errorData->code }}) {{ @errorData->status }}</span>
<small> {{ @errorData->message }}</small>
</div>
</check>
{* Success *}
<check if="{{ @successData }}">
<repeat group="{{ @successData }}" value="{{ @success }}">
<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><i class="fa fa-close"></i></button>
<span class="txt-color txt-color-success">{{ @success.status }}</span>
<small> {{ @success.message }}</small>
</div>
</repeat>
</check>
<h4><i class="fa fa-fw fa-server"></i> Environment</h4>
<div class="row text-center">
<div class="col-xs-12 col-md-6 pf-landing-pricing-panel">
{* Information *}
<div class="panel panel-default pricing-big">
<div class="panel-heading text-left">
<h3 class="panel-title">Information</h3>
</div>
<div class="panel-body no-padding text-align-center">
<table class="table">
<thead>
<tr>
<td>Installation</td>
<td class="text-right col-md-8">{{ @PATHFINDER.NAME }}</td>
</tr>
</thead>
<tbody>
<tr>
<td>Version</td>
<td class="text-right">
<kbd>{{ @PATHFINDER.VERSION }}</kbd>
</td>
</tr>
<tr>
<td>Package</td>
<td class="text-right">
<kbd>{{ @PACKAGE }} {{ @VERSION }}</kbd>
</td>
</tr>
<tr>
<td>Contact</td>
<td class="text-right"><a href="{{ @PATHFINDER.CONTACT }}" target="_blank">{{ @PATHFINDER.CONTACT }}</a></td>
</tr>
<tr>
<td>Repository</td>
<td class="text-right"><a href="{{ @PATHFINDER.REPO }}" target="_blank">{{ @PATHFINDER.REPO }}</a></td>
</tr>
</tbody>
</table>
</div>
</div>
{* Framework requirements (PHP) *}
{* Check if all requirements are fulfilled *}
<set requirementsFulfilled="OK" />
<div class="panel panel-default pricing-big">
<div class="panel-heading text-left">
<h3 class="panel-title">Rquirements</h3>
</div>
<div class="panel-body no-padding text-align-center">
<table class="table">
<thead>
<tr>
<td>Feature</td>
<td class="text-right col-md-3">required</td>
<td class="text-right col-md-3">installed</td>
<td class="text-right col-md-1"></td>
</tr>
</thead>
<tbody>
<repeat group="{{ @checkRequirements }}" value="{{ @requirement }}">
<tr>
<td>
{{@requirement.label}}
<check if="{{ @requirement.tooltip }}">
<i class="fa fa-fw fa-question-circle" title="{{ @requirement.tooltip }}"></i>
</check>
</td>
<td class="text-right">
<check if="{{ @requirement.required }}">
<kbd>{{@requirement.required}}</kbd>
</check>
</td>
<td class="text-right">
<check if="{{ @requirement.check }}">
<true>
<kbd class="txt-color txt-color-success">{{@requirement.version}}</kbd>
</true>
<false>
<kbd class="txt-color txt-color-warning">{{@requirement.version}}</kbd>
{* Check failed *}
<set requirementsFulfilled="Warnings" />
</false>
</check>
</td>
<td class="text-right">
<check if="{{ @requirement.check }}">
<true>
<i class="fa fa-lg fa-fw fa-check txt-color txt-color-success"></i>
</true>
<false>
<i class="fa fa-lg fa-fw fa-warning txt-color txt-color-warning"></i>
</false>
</check>
</td>
</tr>
</repeat>
</tbody>
</table>
</div>
<div class="panel-footer text-align-center">
<check if="{{ @requirementsFulfilled == 'OK' }}">
<true>
<h3 class="panel-title txt-color txt-color-green">{{ @requirementsFulfilled }}</h3>
</true>
<false>
<h3 class="panel-title txt-color txt-color-warning">{{ @requirementsFulfilled }}</h3>
</false>
</check>
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 pf-landing-pricing-panel">
{* Server *}
<div class="panel panel-default pricing-big">
<div class="panel-heading text-left">
<h3 class="panel-title">Server</h3>
</div>
<div class="panel-body no-padding text-align-center">
<table class="table">
<tbody>
<repeat group="{{ @serverInformation }}" value="{{ @information }}">
<tr>
<td>{{@information.label}}</td>
<td class="text-right col-md-8">{{@information.value}}</td>
</tr>
</repeat>
</tbody>
</table>
</div>
</div>
{* Directories *}
<div class="panel panel-default pricing-big">
<div class="panel-heading text-left">
<h3 class="panel-title">Directories</h3>
</div>
<div class="panel-body no-padding text-align-center">
<table class="table">
<thead>
<tr>
<td class="col-md-3">TEMP (Cache)</td>
<td class="text-right col-md-8">
<kbd>{{ @TEMP }}</kbd>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>LOGS</td>
<td class="text-right">
<kbd>{{ @LOGS }}</kbd>
</td>
</tr>
<tr>
<td>UI</td>
<td class="text-right">
<kbd>{{ @UI }}</kbd>
</td>
</tr>
<tr>
<td>AUTOLOAD</td>
<td class="text-right">
<kbd>{{ @AUTOLOAD }}</kbd>
</td>
</tr>
<tr>
<td>FAVICON</td>
<td class="text-right">
<kbd>{{ @FAVICON }}</kbd>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<h4><i class="fa fa-fw fa-sliders"></i> Settings</h4>
<div class="row text-center">
<div class="col-xs-12 col-md-6 pf-landing-pricing-panel">
<div class="panel panel-default pricing-big">
<div class="panel-heading text-left">
<h3 class="panel-title">Configuration</h3>
</div>
<div class="panel-body no-padding text-align-center">
<table class="table">
<tbody>
<repeat group="{{ @environmentInformation }}" value="{{ @environmentData }}">
<tr>
<td>{{@environmentData.label}}</td>
<td class="text-right col-md-8">
<check if="{{ @environmentData.check }}">
<true>
<kbd>{{@environmentData.value | raw}}</kbd>
</true>
<false>
<kbd class="txt-color txt-color-danger">{{@environmentData.value | raw}}</kbd>
</false>
</check>
</td>
</tr>
</repeat>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 pf-landing-pricing-panel">
{* Settings *}
<div class="panel panel-default pricing-big">
<div class="panel-heading text-left">
<h3 class="panel-title">Map restrictions</h3>
</div>
<div class="panel-body no-padding text-align-center">
<table class="table">
<thead>
<tr>
<td>Max. count of private maps/user</td>
<td class="text-right col-md-2"><kbd>{{ @PATHFINDER.MAX_MAPS_PRIVATE }}</kbd></td>
</tr>
</thead>
<tbody>
<tr>
<td>Max. count of corporation maps/user</td>
<td class="text-right"><kbd>{{ @PATHFINDER.MAX_MAPS_CORPORATION }}</kbd></td>
</tr>
<tr>
<td>Max. count of alliance maps/user</td>
<td class="text-right"><kbd>{{ @PATHFINDER.MAX_MAPS_ALLIANCE }}</kbd></td>
</tr>
</tbody>
</table>
<div class="panel-footer text-left">
<h3 class="panel-title">Map share limits</h3>
</div>
<table class="table">
<thead>
<tr>
<td>Max. shared users (private map)</td>
<td class="text-right col-md-2"><kbd>{{ @PATHFINDER.MAX_SHARED_USER }}</kbd></td>
</tr>
</thead>
<tbody>
<tr>
<td>Max. shared users (corporation map)</td>
<td class="text-right"><kbd>{{ @PATHFINDER.MAX_SHARED_CORPORATION }}</kbd></td>
</tr>
<tr>
<td>Max. shared users (alliance map)</td>
<td class="text-right"><kbd>{{ @PATHFINDER.MAX_SHARED_ALLIANCE }}</kbd></td>
</tr>
</tbody>
</table>
<div class="panel-footer text-left">
<h3 class="panel-title">Map lifetime (days)</h3>
</div>
<table class="table">
<thead>
<tr>
<td>Private map</td>
<td class="text-right col-md-2"><kbd>{{ @PATHFINDER.MAP.PRIVATE.LIFETIME }}</kbd></td>
</tr>
</thead>
<tbody>
<tr>
<td>Corporation map</td>
<td class="text-right"><kbd>{{ @PATHFINDER.MAP.CORPORATION.LIFETIME }}</kbd></td>
</tr>
<tr>
<td>Alliance map</td>
<td class="text-right"><kbd>{{ @PATHFINDER.MAP.ALLIANCE.LIFETIME }}</kbd></td>
</tr>
</tbody>
</table>
<div class="panel-footer text-left">
<h3 class="panel-title">Registration</h3>
</div>
<table class="table">
<thead>
<tr>
<td>Status</td>
<td class="text-right col-md-2">
<check if="{{ @PATHFINDER.REGISTRATION.STATUS }}">
<true>
<kbd class="txt-color txt-color-success">enabled</kbd>
</true>
<false>
<kbd class="txt-color txt-color-warning">disabled</kbd>
</false>
</check>
</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
<h4 id="pf-setup-database"><i class="fa fa-fw fa-database"></i> Database</h4>
<div class="row text-center">
<repeat group="{{ @checkDatabase }}" key="{{ @dbKey }}" value="{{ @dbInformation }}">
{* Check if DB is connected and up2date *}
<set dbConnectionStatus="OK" />
<set dbStatusCheck="OK" />
<div class="col-xs-12 col-md-6 pf-landing-pricing-panel">
<div class="panel panel-default pricing-big">
<div class="panel-heading text-left">
<h3 class="panel-title">{{ @dbInformation.info.label }}</h3>
</div>
<div class="panel-body no-padding text-align-center">
<table class="table">
<thead>
<tr>
<td>DB driver</td>
<td class="text-right col-sm-6 col-md-3" colspan="2">{{ @dbInformation.info.driver }}</td>
<td class="text-right col-sm-1 col-md-1"></td>
</tr>
</thead>
<tbody>
<tr>
<td>DB name</td>
<td class="text-right col-sm-3 col-md-3" colspan="2"><kbd>{{ @dbInformation.info.name }}</kbd></td>
<td class="text-right col-sm-1 col-md-1"></td>
</tr>
<tr>
<td>DB user</td>
<td class="text-right col-sm-3 col-md-3" colspan="2"><kbd>{{ @dbInformation.info.user }}</kbd></td>
<td class="text-right col-sm-1 col-md-1"></td>
</tr>
<tr>
<td>DB status</td>
<td class="text-right col-sm-3 col-md-3"></td>
<td class="text-right col-sm-3 col-md-3">
<check if="{{ @dbInformation.info.connected }}">
<true>
<kbd class="txt-color txt-color-success">connected</kbd>
</true>
<false>
<kbd class="txt-color txt-color-danger">failed</kbd>
<set dbConnectionStatus="Connection failed" />
</false>
</check>
</td>
<td class="text-right">
<check if="{{ @dbInformation.info.connected }}">
<true>
<i class="fa fa-lg fa-fw fa-check txt-color txt-color-success"></i>
</true>
<false>
<i class="fa fa-lg fa-fw fa-warning txt-color txt-color-danger"></i>
</false>
</check>
</td>
</tr>
<tr>
<td></td>
<td class="text-right">required</td>
<td class="text-right">installed</td>
<td class="text-right"></td>
</tr>
<repeat group="{{ @dbInformation.info.dbConfig }}" value="{{ @setting }}">
<tr>
<td>{{ @setting.label }}</td>
<td class="text-right">
<check if="{{ @setting.required }}">
<kbd>{{ @setting.required }}</kbd>
</check>
</td>
<td class="text-right">
<check if="{{ @setting.check }}">
<true>
<kbd class="txt-color txt-color-success">{{ @setting.version }}</kbd>
</true>
<false>
<kbd class="txt-color txt-color-warning">{{ @setting.version }}</kbd>
</false>
</check>
</td>
<td class="text-right">
<check if="{{ @setting.check }}">
<true>
<i class="fa fa-lg fa-fw fa-check txt-color txt-color-success"></i>
</true>
<false>
<i class="fa fa-lg fa-fw fa-warning txt-color txt-color-warning"></i>
<set dbStatusCheck="DB warning" />
</false>
</check>
</td>
</tr>
</repeat>
</tbody>
</table>
<div class="panel-footer text-align-center">
<check if="{{ @dbConnectionStatus == 'OK' }}">
<true>
<check if="{{ @dbStatusCheck == 'OK' }}">
<true>
<h3 class="panel-title txt-color txt-color-green">{{ @dbConnectionStatus }}</h3>
</true>
<false>
<h3 class="panel-title txt-color txt-color-warning">{{ @dbStatusCheck }}</h3>
</false>
</check>
</true>
<false>
<h3 class="panel-title txt-color txt-color-danger">{{ @dbConnectionStatus }}</h3>
</false>
</check>
</div>
<table class="table">
<thead>
<tr>
<th class="text-center col-sm-1 col-md-1">
<i class="fa fa-fw fa-hashtag"></i>
</th>
<th>table</th>
<th class="col-sm-1 col-md-1 text-center">exist</th>
<th class="col-sm-3 col-md-3">&nbsp;</th>
<th class="col-sm-1 col-md-1 text-center">
<i class="fa fa-fw fa-battery-half"></i>
</th>
<th class="col-sm-1 col-md-1"></th>
<th class="col-sm-1 col-md-1">&nbsp;</th>
</tr>
</thead>
<tbody>
{* Show Tables *}
<repeat group="{{ @dbInformation.info.tableData }}" key="{{ @tableName }}" value="{{ @tableData }}" counter="{{ @countTable }}">
<tr>
<check if="{{ @tableData.fieldConf }}">
<true>
<td class="text-center" data-target=".{{ @tableName }}_col" data-toggle="collapse" aria-expanded="false" aria-controls="{{ @tableName }}_col">
<i class="fa fa-fw fa-chevron-right pf-animate-rotate"></i>
</td>
</true>
<false>
<td class="text-right">{{ @countTable }}.</td>
</false>
</check>
<td>{{ @tableName }}</td>
<td class="text-center">
<check if="{{ @tableData.exists }}">
<true>
<i class="fa fa-fw fa-check txt-color txt-color-success"></i>
</true>
<false>
<i class="fa fa-fw fa-ban txt-color txt-color-danger" title="table missing"></i>
</false>
</check>
</td>
<td>&nbsp;</td>
<td class="text-center">
<check if="{{ @tableData.empty === true }}">
<true>
<i class="fa fa-fw fa-battery-empty txt-color txt-color-warning" title="table empty"></i>
</true>
<false>
<i class="fa fa-fw fa-battery-full" title="table filled"></i>
</false>
</check>
</td>
<td></td>
<td class="text-center">
<check if="{{ @tableData.statusCheckCount == 0 && @tableData.exists }}">
<true>
<i class="fa fa-lg fa-fw fa-check txt-color txt-color-success"></i>
</true>
<false>
<i class="fa fa-lg fa-fw fa-warning txt-color txt-color-warning"></i>
</false>
</check>
</td>
</tr>
{* Show Columns *}
<check if="{{ @tableData.fieldConf }}">
<tr class="{{ @tableName }}_col collapse">
<td class="text-center bg-color bg-color-tealDarkest">
<i class="fa fa-fw fa-hashtag"></i>
</td>
<td class="bg-color bg-color-tealDarkest">column</td>
<td class="bg-color bg-color-tealDarkest text-center">exist</td>
<td class="bg-color bg-color-tealDarkest" title="data type">type</td>
<td class="bg-color bg-color-tealDarkest text-center" title="index">I</td>
<td class="bg-color bg-color-tealDarkest text-center" title="unique">U</td>
<td class="bg-color bg-color-tealDarkest text-center"></td>
</tr>
<repeat group="{{ @tableData.fieldConf }}" key="{{ @columnName }}" value="{{ @columnData }}" counter="{{ @countCol }}">
<check if="{{ @columnData.type }}">
<tr class="{{ @tableName }}_col collapse">
<td class="text-right bg-color bg-color-tealDarker">{{@countCol}}.</td>
<td class="bg-color bg-color-tealDarker">{{ @columnName }}</td>
<td class="bg-color bg-color-tealDarker text-center">
<check if="{{ @columnData.exists }}">
<true>
<i class="fa fa-fw fa-check txt-color txt-color-success"></i>
</true>
<false>
<i class="fa fa-fw fa-ban txt-color txt-color-danger" title="column missing"></i>
</false>
</check>
</td>
<td class="bg-color bg-color-tealDarker">
<check if="{{ @columnData.exists }}">
<true>
<check if="{{ @columnData.changedType }}">
<true>
<kbd class="txt-color txt-color-warning" title="{{ @columnData.requiredType }}">{{ @columnData.currentType }}</kbd>
</true>
<false>
<kbd class="txt-color txt-color-success">{{ @columnData.currentType }}</kbd>
</false>
</check>
</true>
<false>
<i class="fa fa-fw fa-ellipsis-h txt-color txt-color-danger" title="{{ @columnData.requiredType }}"></i>
</false>
</check>
</td>
<td class="bg-color bg-color-tealDarker text-center">
<check if="{{ @columnData.exists }}">
<true>
<check if="{{ @columnData.changedIndex }}">
<true>
<kbd class="txt-color txt-color-warning" title="{{ @columnData.requiredIndex }}">{{ @columnData.currentIndex }}</kbd>
</true>
<false>
<kbd class="txt-color txt-color-success">{{ @columnData.currentIndex }}</kbd>
</false>
</check>
</true>
<false>
<i class="fa fa-fw fa-ellipsis-h txt-color txt-color-danger" title="{{ @columnData.requiredIndex }}"></i>
</false>
</check>
</td>
<td class="bg-color bg-color-tealDarker text-center">
<check if="{{ @columnData.exists }}">
<true>
<check if="{{ @columnData.changedUnique }}">
<true>
<kbd class="txt-color txt-color-warning" title="{{ @columnData.requiredUnique }}">{{ @columnData.currentUnique }}</kbd>
</true>
<false>
<kbd class="txt-color txt-color-success">{{ @columnData.currentUnique }}</kbd>
</false>
</check>
</true>
<false>
<i class="fa fa-fw fa-ellipsis-h txt-color txt-color-danger" title="{{ @columnData.requiredUnique }}"></i>
</false>
</check>
</td>
<td class="bg-color bg-color-tealDarker text-center">
<check if="{{ @columnData.statusCheck }}">
<true>
<i class="fa fa-lg fa-fw fa-check txt-color txt-color-success"></i>
</true>
<false>
<i class="fa fa-lg fa-fw fa-warning txt-color txt-color-warning"></i>
</false>
</check>
</td>
</tr>
</check>
</repeat>
</check>
{* Show Foreign Keys *}
<check if="{{ @tableData.foreignKeys }}">
<tr class="{{ @tableName }}_col collapse">
<td class="text-center bg-color bg-color-tealDarkest">
<i class="fa fa-fw fa-hashtag"></i>
</td>
<td class="bg-color bg-color-tealDarkest">foreign key</td>
<td class="bg-color bg-color-tealDarkest"></td>
<td class="bg-color bg-color-tealDarkest"></td>
<td class="bg-color bg-color-tealDarkest"></td>
<td class="bg-color bg-color-tealDarkest"></td>
<td class="bg-color bg-color-tealDarkest"></td>
</tr>
<repeat group="{{ @tableData.foreignKeys }}" value="{{ @keyData }}" counter="{{ @countForeignKey }}">
<tr class="{{ @tableName }}_col collapse">
<td class="text-center bg-color bg-color-tealDarker">{{@countForeignKey}}.</td>
<td class="bg-color bg-color-tealDarker" colspan="5">{{ @keyData.keyName }}</td>
<td class="bg-color bg-color-tealDarker text-center">
<check if="{{ @keyData.exists }}">
<true>
<i class="fa fa-lg fa-fw fa-check txt-color txt-color-success"></i>
</true>
<false>
<i class="fa fa-lg fa-fw fa-ban txt-color txt-color-danger" title="key missing"></i>
</false>
</check>
</td>
</tr>
</repeat>
</check>
</repeat>
</tbody>
</table>
</div>
<check if="{{ @dbConnectionStatus == 'OK'}}">
<div class="panel-footer text-align-center">
<check if="{{ @dbInformation.info.statusCheckCount > 0 }}">
<true>
<h3 class="panel-title txt-color txt-color-warning">{{ @dbInformation.info.statusCheckCount }} warning</h3>
</true>
<false>
<h3 class="panel-title txt-color txt-color-green">{{ @dbConnectionStatus }}</h3>
</false>
</check>
</div>
</check>
{* DB queries for manual column fixes *}
<check if="{{ @dbConnectionStatus == 'OK' && @dbInformation.info.columnQueries}}">
<div class="panel-body no-padding">
<table class="table">
<thead>
<tr>
<th class="text-center col-sm-1 col-md-1">
<i class="fa fa-fw fa-hashtag"></i>
</th>
<th>query</th>
</tr>
</thead>
<tbody>
<repeat group="{{ @dbInformation.info.columnQueries }}" value="{{ @columnQuery }}" counter="{{ @countQuery }}">
<tr>
<td class="text-right col-sm-1 col-md-1">{{ @countQuery }}.</td>
<td>{{ @columnQuery }}</td>
</tr>
</repeat>
</tbody>
</table>
</div>
</check>
<div class="panel-footer btn-group btn-group-justified">
<a href="?db={{ @dbKey }}#pf-setup-database" class="btn btn-primary {{ (@dbInformation.info.setupEnable && @dbConnectionStatus == 'OK') ?'':'disabled' }}">
<i class="fa fa-fw fa-refresh"></i> Setup tables
</a>
<a href="?fixCols=1#pf-setup-database" class="btn btn-default {{ @dbInformation.info.columnQueries ?'':'disabled' }}">
<i class="fa fa-fw fa-magic"></i> Fix columns/keys
</a>
</div>
</div>
</div>
</repeat>
</div>
<h4><i class="fa fa-fw fa-wrench"></i> Administration</h4>
<div class="row text-center">
<div class="col-xs-12 col-md-6 pf-landing-pricing-panel">
{* Cache *}
<div class="panel panel-default pricing-big">
<div class="panel-heading text-left">
<h3 class="panel-title">Cache
<span class="pull-right">
<check if="{{ @cacheSize }}">
<true>
{{ @cacheSize }}&nbsp;
<i class="fa fa-fw fa-battery-half txt-color txt-color-success"></i>
</true>
<false>
0 KB&nbsp;
<i class="fa fa-fw fa-battery-empty txt-color txt-color-warning" title="" data-original-title="empty cache"></i>
</false>
</check>
</span>
</h3>
</div>
<div class="panel-footer btn-group btn-group-justified">
<a href="?clearCache=1" class="btn btn-warning {{ (@cacheSize) ?'':'disabled' }}">
<i class="fa fa-fw fa-times"></i> Clear cache
</a>
</div>
</div>
</div>
</div>
</div>
</section>